/* ==========================================================================
   Box Trees Flowers theme
   1. Tokens and base       5. Page header and content
   2. Header                6. Components (homepage, contact, about, gallery)
   3. Mobile menu           7. WooCommerce
   4. Buttons and motion    8. Footer
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens and base
   -------------------------------------------------------------------------- */

:root {
	--bt-ink: #1f1c21;
	--bt-text: #3a363c;
	--bt-muted: #77717a;
	--bt-plum: #59565e;          /* original brand grey */
	--bt-mauve: #232026;         /* header and footer: the brand grey taken 40% towards black */
	--bt-black: #0f0e10;
	--bt-rose: #c2416f;          /* refined from the old #f16095 "Order now" pink */
	--bt-rose-deep: #a5345c;
	--bt-rose-light: #f2b8cc;
	--bt-blush: #f6ecef;
	--bt-cream: #faf7f4;
	--bt-line: #e9e3e5;
	--bt-serif: "Playfair Display", Georgia, serif;
	--bt-sans: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif;
	--bt-ease: cubic-bezier(.2, .7, .2, 1);
	--bt-shadow: 0 22px 44px -26px rgba(31, 28, 33, .45);
	--bt-gutter: clamp(20px, 4vw, 48px);
	--bt-max: 1240px;
	--bt-text-max: 760px;
	--bt-header-h: 92px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: 100px;
}

body {
	margin: 0;
	font-family: var(--bt-sans);
	font-size: 18px;
	line-height: 1.65;
	color: var(--bt-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img,
video,
svg,
iframe {
	max-width: 100%;
}

img {
	height: auto;
	vertical-align: middle;
}

a {
	color: var(--bt-rose);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

a:hover {
	color: var(--bt-rose-deep);
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	font-family: var(--bt-serif);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--bt-ink);
}

h1 { font-size: clamp(36px, 4.6vw, 56px); }
h2 { font-size: clamp(28px, 3.4vw, 42px); }
h3 { font-size: clamp(22px, 2.2vw, 28px); }
h4 { font-size: 20px; }

p, ul, ol, dl, table, blockquote, figure, address {
	margin: 0 0 1.1em;
}

address {
	font-style: normal;
}

hr {
	height: 1px;
	margin: 48px 0;
	border: 0;
	background: var(--bt-line);
}

::selection {
	background: var(--bt-blush);
	color: var(--bt-ink);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--bt-rose);
	outline-offset: 3px;
}

input,
select,
textarea,
button {
	font: inherit;
	color: inherit;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
input[type="date"],
input[type="url"],
select,
textarea {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	font-size: 16px;
	color: var(--bt-ink);
	background: #fff;
	border: 1px solid var(--bt-line);
	border-radius: 0;
	transition: border-color .25s, box-shadow .25s;
}

input:focus,
select:focus,
textarea:focus {
	outline: 0;
	border-color: var(--bt-rose);
	box-shadow: 0 0 0 3px rgba(194, 65, 111, .15);
}

table {
	width: 100%;
	border-collapse: collapse;
}

th,
td {
	padding: 12px 14px;
	text-align: left;
	border-bottom: 1px solid var(--bt-line);
}

.bt-sr,
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.bt-skip {
	position: absolute;
	z-index: 1000;
	top: -100px;
	left: 16px;
	padding: 12px 18px;
	color: #fff;
	background: var(--bt-ink);
}

.bt-skip:focus {
	top: 16px;
}

.bt-eyebrow {
	margin: 0 0 14px;
	font-family: var(--bt-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--bt-rose);
}

.bt-icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	vertical-align: middle;
}

.bt-section {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 120px) var(--bt-gutter);
}

.bt-section__head {
	max-width: 720px;
	margin: 0 auto clamp(36px, 5vw, 56px);
	text-align: center;
}

.bt-section__title {
	margin: 0;
	font-size: clamp(30px, 3.6vw, 46px);
	font-weight: 500;
	line-height: 1.12;
}

.bt-section__lede {
	margin: 18px 0 0;
	font-size: 18px;
	color: var(--bt-muted);
}

/* --------------------------------------------------------------------------
   2. Header: logo left, menu right, sticky, shrinks on scroll
   -------------------------------------------------------------------------- */

.bt-announce {
	position: relative;
	z-index: 101;
	padding: 10px var(--bt-gutter);
	font-size: 14px;
	letter-spacing: .04em;
	text-align: center;
	color: #fff;
	background: var(--bt-rose);
}

.bt-announce p {
	margin: 0;
}

.bt-announce a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	text-decoration: none;
}

.bt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--bt-mauve);
	transition: background .4s, box-shadow .4s;
}

.admin-bar .bt-header {
	top: 32px;
}

.bt-header.is-scrolled {
	background: rgba(35, 32, 38, .96);
	box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .7);
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
}

.bt-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 14px var(--bt-gutter);
	transition: padding .4s var(--bt-ease);
}

.bt-header.is-scrolled .bt-header__inner {
	padding-top: 9px;
	padding-bottom: 9px;
}

.bt-header__logo {
	flex: none;
	margin-right: auto;
}

.bt-header__logo img {
	display: block;
	width: auto;
	height: 64px;
	transition: height .4s var(--bt-ease);
}

.bt-header.is-scrolled .bt-header__logo img {
	height: 46px;
}

.bt-nav__list {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-nav__list > li {
	position: relative;
	margin: 0;
}

.bt-nav__list > li > a {
	position: relative;
	display: flex;
	align-items: center;
	height: 44px;
	padding: 0 13px;
	font-size: 12.5px;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
	text-decoration: none;
	color: rgba(255, 255, 255, .86);
	transition: color .25s;
}

.bt-nav__list > li > a:hover,
.bt-nav__list > li.current-menu-item > a {
	color: #fff;
}

/* Underline that grows from the centre */
.bt-nav__list > li:not(.ordernow):not(.menu-item-home) > a::after {
	content: "";
	position: absolute;
	left: 13px;
	right: 13px;
	bottom: 8px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transition: transform .35s var(--bt-ease);
}

.bt-nav__list > li:not(.ordernow) > a:hover::after,
.bt-nav__list > li.current-menu-item:not(.ordernow) > a::after {
	transform: scaleX(1);
}

.bt-nav__list .menu-item-home .bt-icon {
	width: 24px;
	height: 24px;
	stroke-width: 1.4;
}

/* "Order now" is the call to action */
.bt-nav__list > li.ordernow > a {
	height: 38px;
	margin: 0 8px;
	padding: 0 16px;
	color: #fff;
	background: var(--bt-rose);
	transition: background .3s var(--bt-ease);
}

.bt-nav__list > li.ordernow > a:hover {
	background: var(--bt-rose-deep);
}

/* Small "New" label on items with the bt-nav-new class (24 Flower) */
.bt-nav__list > li.bt-nav-new > a::before {
	content: "New";
	position: absolute;
	top: 1px;
	right: 0;
	padding: 1px 4px;
	font-size: 7px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.4;
	color: #fff;
	background: var(--bt-rose);
}

.bt-header__basket {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: #fff;
	text-decoration: none;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
	transition: background .3s, border-color .3s;
}

.bt-header__basket:hover {
	color: #fff;
	background: rgba(255, 255, 255, .08);
	border-color: rgba(255, 255, 255, .45);
}

.bt-header__basket .bt-icon {
	width: 22px;
	height: 22px;
}

.bt-header__count {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	font-size: 11px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
	color: #fff;
	background: var(--bt-rose);
	border-radius: 10px;
}

.bt-header__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: #fff;
	background: none;
	border: 0;
	cursor: pointer;
}

.bt-header__toggle .bt-icon {
	width: 28px;
	height: 28px;
}

@media (max-width: 1099px) {
	.bt-nav {
		display: none;
	}

	.bt-header__toggle {
		display: flex;
	}

	.bt-header__inner {
		gap: 10px;
	}

	.bt-header__logo img {
		height: 50px;
	}

	.bt-header.is-scrolled .bt-header__logo img {
		height: 40px;
	}
}

/* --------------------------------------------------------------------------
   3. Mobile menu (full-screen panel)
   -------------------------------------------------------------------------- */

.bt-mobile-nav {
	position: fixed;
	z-index: 200;
	inset: 0;
	display: flex;
	flex-direction: column;
	padding: 16px var(--bt-gutter) 32px;
	overflow-y: auto;
	color: #fff;
	background: var(--bt-mauve);
	opacity: 0;
	transform: translateY(-12px);
	transition: opacity .35s var(--bt-ease), transform .45s var(--bt-ease);
}

.bt-mobile-nav[hidden] {
	display: none;
}

.bt-mobile-nav.is-open {
	opacity: 1;
	transform: none;
}

.bt-mobile-nav__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 32px;
}

.bt-mobile-nav__top img {
	width: auto;
	height: 50px;
}

.bt-mobile-nav__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	color: #fff;
	background: none;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	cursor: pointer;
}

.bt-mobile-nav__close .bt-icon {
	width: 24px;
	height: 24px;
}

.bt-mobile-nav__list {
	margin: 0 0 auto;
	padding: 0;
	list-style: none;
}

.bt-mobile-nav__list li {
	margin: 0;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.bt-mobile-nav__list a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 0;
	font-family: var(--bt-serif);
	font-size: 28px;
	line-height: 1.2;
	text-decoration: none;
	color: #fff;
}

.bt-mobile-nav__list .bt-icon {
	width: 26px;
	height: 26px;
}

.bt-mobile-nav__list li.ordernow a {
	color: var(--bt-rose-light);
}

.bt-mobile-nav__list li.bt-nav-new a::after {
	content: "New";
	padding: 2px 6px;
	font-family: var(--bt-sans);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	background: var(--bt-rose);
}

@media (prefers-reduced-motion: no-preference) {
	.bt-mobile-nav.is-open .bt-mobile-nav__list li {
		animation: bt-rise .6s var(--bt-ease) both;
	}

	.bt-mobile-nav.is-open .bt-mobile-nav__list li:nth-child(2) { animation-delay: .04s; }
	.bt-mobile-nav.is-open .bt-mobile-nav__list li:nth-child(3) { animation-delay: .08s; }
	.bt-mobile-nav.is-open .bt-mobile-nav__list li:nth-child(4) { animation-delay: .12s; }
	.bt-mobile-nav.is-open .bt-mobile-nav__list li:nth-child(5) { animation-delay: .16s; }
	.bt-mobile-nav.is-open .bt-mobile-nav__list li:nth-child(6) { animation-delay: .2s; }
	.bt-mobile-nav.is-open .bt-mobile-nav__list li:nth-child(7) { animation-delay: .24s; }
}

.bt-mobile-nav__contact {
	display: grid;
	gap: 14px;
	margin-top: 32px;
	font-size: 16px;
}

.bt-mobile-nav__contact a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, .85);
	text-decoration: none;
}

body.bt-menu-open {
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   4. Buttons
   -------------------------------------------------------------------------- */

.bt-btn,
.button,
button.button,
input[type="submit"],
.wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 14px 30px;
	font-family: var(--bt-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background: var(--bt-ink);
	border: 1px solid transparent;
	border-radius: 0;
	cursor: pointer;
	transition: transform .35s var(--bt-ease), box-shadow .35s var(--bt-ease), background-color .3s, color .3s, border-color .3s;
}

.bt-btn:hover,
.button:hover,
button.button:hover,
input[type="submit"]:hover,
.wpcf7-submit:hover {
	color: #fff;
	background: var(--bt-rose);
	transform: translateY(-2px);
}

.bt-btn .bt-icon {
	transition: transform .35s var(--bt-ease);
}

.bt-btn:hover .bt-icon:last-child {
	transform: translateX(4px);
}

.bt-btn--dark {
	background: var(--bt-ink);
}

.bt-btn--rose {
	color: #fff;
	background: var(--bt-rose);
}

.bt-btn--rose:hover {
	background: var(--bt-rose-deep);
	box-shadow: 0 18px 34px -18px rgba(194, 65, 111, .8);
}

.bt-btn--light {
	color: var(--bt-ink);
	background: #fff;
}

.bt-btn--light:hover {
	color: var(--bt-ink);
	background: #fff;
	box-shadow: 0 18px 34px -20px rgba(0, 0, 0, .55);
}

.bt-btn--ghost {
	color: #fff;
	background: transparent;
	border-color: rgba(255, 255, 255, .55);
}

.bt-btn--ghost:hover {
	background: rgba(255, 255, 255, .1);
	border-color: #fff;
}

.bt-btn--outline {
	color: var(--bt-ink);
	background: #fff;
	border-color: var(--bt-line);
}

.bt-btn--outline:hover {
	color: var(--bt-ink);
	background: #fff;
	border-color: var(--bt-ink);
	box-shadow: var(--bt-shadow);
}

/* --------------------------------------------------------------------------
   5. Page header and content
   -------------------------------------------------------------------------- */

.bt-page-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 220px;
	padding: clamp(56px, 7vw, 88px) var(--bt-gutter) clamp(40px, 5vw, 64px);
	text-align: center;
	background: var(--bt-cream);
	border-bottom: 1px solid var(--bt-line);
}

.bt-page-hero--image {
	align-items: center;
	min-height: clamp(260px, 30vw, 380px);
	color: #fff;
	background: var(--bt-black);
	border-bottom: 0;
	overflow: hidden;
	isolation: isolate;
}

.bt-page-hero__img {
	position: absolute;
	z-index: -2;
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
}

.bt-page-hero--image::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(0deg, rgba(25, 21, 27, .72), rgba(25, 21, 27, .35));
}

@media (prefers-reduced-motion: no-preference) {
	.bt-page-hero__img {
		animation: bt-settle 2.4s var(--bt-ease) both;
	}
}

@keyframes bt-settle {
	from { transform: scale(1.06); }
}

.bt-page-hero__inner {
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}

.bt-page-hero__title {
	margin: 0;
	font-size: clamp(36px, 5vw, 60px);
	line-height: 1.08;
}

.bt-page-hero--image .bt-page-hero__title {
	color: #fff;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .25);
}

.bt-page-hero__subtitle {
	margin: 12px 0 0;
	font-size: clamp(17px, 1.6vw, 21px);
	color: var(--bt-muted);
}

.bt-page-hero--image .bt-page-hero__subtitle {
	color: rgba(255, 255, 255, .85);
}

@media (prefers-reduced-motion: no-preference) {
	.bt-js .bt-page-hero__inner > * {
		animation: bt-rise 1s var(--bt-ease) both;
	}

	.bt-js .bt-page-hero__inner > :nth-child(2) { animation-delay: .1s; }
	.bt-js .bt-page-hero__inner > :nth-child(3) { animation-delay: .2s; }
}

/* Breadcrumbs */
.bt-crumbs {
	margin: 0 0 14px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-muted);
}

.bt-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-crumbs li + li::before {
	content: "/";
	margin-right: 10px;
	opacity: .5;
}

.bt-crumbs a {
	color: inherit;
	text-decoration: none;
}

.bt-crumbs a:hover {
	text-decoration: underline;
}

.bt-page-hero--image .bt-crumbs {
	color: rgba(255, 255, 255, .75);
}

/* Page content. Old page-builder rows render as .bt-row / .bt-col (inc/compat.php). */
.bt-entry > :where(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, table, figure, address, hr, .bt-text, .wp-block-image, .wp-block-group) {
	max-width: var(--bt-text-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--bt-gutter);
	padding-right: var(--bt-gutter);
}

.bt-entry > :where(p, h1, h2, h3, ul, ol):first-child {
	margin-top: clamp(48px, 6vw, 80px);
}

.bt-entry > :where(p, ul, ol, table, .bt-text):last-child {
	margin-bottom: clamp(56px, 7vw, 96px);
}

.bt-row {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	max-width: var(--bt-max);
	margin: clamp(40px, 5vw, 64px) auto;
	padding: 0 var(--bt-gutter);
}

.bt-row--full {
	display: block;
	max-width: none;
	margin: 0;
	padding: 0;
}

.bt-col { flex: 1 1 100%; min-width: 0; }
.bt-col--half { flex-basis: calc(50% - 16px); }
.bt-col--third { flex-basis: calc(33.333% - 22px); }
.bt-col--two-thirds { flex-basis: calc(66.666% - 11px); }
.bt-col--quarter { flex-basis: calc(25% - 24px); }
.bt-col--three-quarters { flex-basis: calc(75% - 8px); }
.bt-col--empty { display: none; }

@media (max-width: 767px) {
	.bt-col { flex-basis: 100%; }
}

.bt-text {
	max-width: var(--bt-text-max);
	margin: 0 auto;
}

.bt-row .bt-text {
	padding: 0;
}

.bt-text > :last-child {
	margin-bottom: 0;
}

.bt-compat-button {
	margin: 0;
}

.bt-align-center {
	text-align: center;
}

.bt-align-right {
	text-align: right;
}

.bt-compat-heading {
	font-size: 14px;
	font-family: var(--bt-sans);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.bt-entry--article {
	padding-bottom: clamp(56px, 7vw, 96px);
}

/* Blog / archive listing */
.bt-posts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 32px;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 80px) var(--bt-gutter);
}

.bt-post__img img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin-bottom: 18px;
}

.bt-post__title {
	font-size: 26px;
}

.bt-post__title a {
	color: var(--bt-ink);
	text-decoration: none;
}

.bt-posts .nav-links {
	grid-column: 1 / -1;
	display: flex;
	gap: 8px;
}

.bt-404 .bt-cta__actions {
	justify-content: center;
}

/* --------------------------------------------------------------------------
   6. Components (lifted from the refresh)
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Scroll reveal (only hides things when JS is running and motion is allowed)
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.bt-js .bt-reveal {
		opacity: 0;
		transform: translateY(26px);
		transition: opacity .9s var(--bt-ease), transform .9s var(--bt-ease);
		transition-delay: calc(var(--bt-i, 0) * 90ms);
	}

	.bt-js .bt-reveal.is-in {
		opacity: 1;
		transform: none;
	}

	.bt-js .bt-hero__in {
		opacity: 0;
		transform: translateY(18px);
		animation: bt-rise 1.1s var(--bt-ease) forwards;
	}

	.bt-js .bt-hero__in:nth-child(2) { animation-delay: .12s; }
	.bt-js .bt-hero__in:nth-child(3) { animation-delay: .24s; }
	.bt-js .bt-hero__in:nth-child(4) { animation-delay: .36s; }
	.bt-js .bt-hero__in:nth-child(5) { animation-delay: .48s; }
}

@keyframes bt-rise {
	to {
		opacity: 1;
		transform: none;
	}
}


/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.bt-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: min(86vh, 820px);
	min-height: min(86svh, 820px);
	overflow: hidden;
	color: #fff;
	background: var(--bt-ink);
	isolation: isolate;
}

.bt-hero__media,
.bt-hero__slide,
.bt-hero__video,
.bt-hero__scrim {
	position: absolute;
	inset: 0;
	margin: 0;
}

.bt-hero__slide {
	opacity: 0;
	transition: opacity 1.6s ease;
}

.bt-hero__slide.is-active {
	opacity: 1;
}

.bt-hero__img,
.bt-hero__video {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
}

@media (prefers-reduced-motion: no-preference) {
	.bt-hero__slide .bt-hero__img {
		transform: scale(1.08);
		transition: transform 9s linear;
	}

	.bt-hero__slide.is-active .bt-hero__img {
		transform: scale(1);
	}
}

.bt-hero__scrim {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(25, 21, 27, .84) 0%, rgba(25, 21, 27, .62) 38%, rgba(25, 21, 27, .12) 72%),
		linear-gradient(0deg, rgba(25, 21, 27, .5) 0%, rgba(25, 21, 27, 0) 40%);
}

.bt-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 120px var(--bt-gutter) 110px;
}

.bt-hero .bt-eyebrow {
	color: rgba(255, 255, 255, .85);
}

.bt-hero__title {
	max-width: 12ch;
	margin: 0 0 22px !important;
	font-family: var(--bt-serif);
	font-size: clamp(42px, 6.2vw, 80px) !important;
	font-weight: 500;
	line-height: 1.04 !important;
	color: #fff;
}

.bt-hero__text {
	max-width: 520px;
	margin: 0 0 34px;
	font-size: clamp(17px, 1.4vw, 20px);
	line-height: 1.6;
	color: rgba(255, 255, 255, .88);
}

.bt-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.bt-hero__scroll {
	position: absolute;
	z-index: 2;
	left: 50%;
	bottom: 28px;
	width: 26px;
	height: 42px;
	margin-left: -13px;
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: 14px;
}

.bt-hero__scroll span {
	position: absolute;
	top: 8px;
	left: 50%;
	width: 2px;
	height: 8px;
	margin-left: -1px;
	background: #fff;
	border-radius: 2px;
}

@media (prefers-reduced-motion: no-preference) {
	.bt-hero__scroll span {
		animation: bt-scroll 2s var(--bt-ease) infinite;
	}
}

@keyframes bt-scroll {
	0% { opacity: 0; transform: translateY(0); }
	30% { opacity: 1; }
	100% { opacity: 0; transform: translateY(14px); }
}

@media (max-width: 767px) {
	.bt-hero {
		align-items: flex-end;
		min-height: 78vh;
		min-height: 78svh;
	}

	.bt-hero__scrim {
		background: linear-gradient(0deg, rgba(25, 21, 27, .88) 0%, rgba(25, 21, 27, .5) 50%, rgba(25, 21, 27, .1) 100%);
	}

	.bt-hero__content {
		padding: 120px var(--bt-gutter) 64px;
	}

	.bt-hero__scroll {
		display: none;
	}

	.bt-hero__actions .bt-btn {
		flex: 1 1 100%;
	}
}

/* --------------------------------------------------------------------------
   Trust strip
   -------------------------------------------------------------------------- */

.bt-trust {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--bt-line);
}

.bt-trust__item {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 !important;
	padding: 28px 22px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--bt-muted);
}

.bt-trust__item + .bt-trust__item {
	border-left: 1px solid var(--bt-line);
}

.bt-trust__item .bt-icon {
	width: 28px;
	height: 28px;
	color: var(--bt-rose);
}

.bt-trust__item strong {
	display: block;
	margin-bottom: 2px;
	font-size: 15px;
	color: var(--bt-ink);
}

@media (max-width: 959px) {
	.bt-trust {
		grid-template-columns: repeat(2, 1fr);
	}

	.bt-trust__item:nth-child(3) {
		border-left: 0;
	}

	.bt-trust__item:nth-child(n+3) {
		border-top: 1px solid var(--bt-line);
	}
}

@media (max-width: 480px) {
	.bt-trust__item {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
		padding: 22px 16px;
	}
}

/* --------------------------------------------------------------------------
   Steps
   -------------------------------------------------------------------------- */

.bt-steps {
	padding-top: clamp(40px, 6vw, 72px);
}

.bt-steps__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(24px, 4vw, 56px);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.bt-steps__item {
	position: relative;
	margin: 0 !important;
	padding-top: 26px;
	border-top: 1px solid var(--bt-line);
}

.bt-steps__item::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 48px;
	height: 2px;
	background: var(--bt-rose);
	transform-origin: left;
	transition: transform 1s var(--bt-ease) .3s;
}

/* Only while waiting to be revealed: once the reveal classes are tidied away the line stays drawn */
.bt-js .bt-steps__item.bt-reveal:not(.is-in)::before {
	transform: scaleX(0);
}

.bt-steps__num {
	display: block;
	margin-bottom: 14px;
	font-family: var(--bt-serif);
	font-size: 15px;
	font-style: italic;
	color: var(--bt-rose);
}

.bt-steps__item h3 {
	margin: 0 0 10px;
	font-size: 24px;
	font-weight: 500;
}

.bt-steps__item p {
	margin: 0;
	color: var(--bt-muted);
}

@media (max-width: 767px) {
	.bt-steps__list {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   Bouquet sizes
   -------------------------------------------------------------------------- */

.bt-sizes {
	padding-top: 0;
}

.bt-toggle {
	display: inline-flex;
	margin-top: 28px;
	padding: 4px;
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
}

.bt-toggle__btn {
	padding: 10px 20px;
	font-family: var(--bt-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-muted);
	background: transparent;
	border: 0;
	cursor: pointer;
	transition: background .3s var(--bt-ease), color .3s;
}

.bt-toggle__btn.is-active {
	color: #fff;
	background: var(--bt-ink);
}

.bt-sizes__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-size {
	margin: 0 !important;
}

.bt-size__link {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 26px 14px 22px;
	text-align: center;
	text-decoration: none !important;
	color: var(--bt-ink) !important;
	background: #fff;
	border: 1px solid var(--bt-line);
	transition: transform .45s var(--bt-ease), box-shadow .45s var(--bt-ease), border-color .3s;
}

.bt-size__link:hover {
	transform: translateY(-6px);
	border-color: transparent;
	box-shadow: var(--bt-shadow);
}

.bt-size__bloom {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 64px;
	margin-bottom: 14px;
	color: var(--bt-rose);
}

.bt-size__bloom svg {
	width: 56px;
	height: 56px;
	transform: scale(var(--bt-scale, 1));
	transform-origin: bottom center;
	transition: transform .5s var(--bt-ease);
}

.bt-size__link:hover .bt-size__bloom svg {
	transform: scale(calc(var(--bt-scale, 1) * 1.12)) rotate(-4deg);
}

.bt-size__name {
	font-family: var(--bt-serif);
	font-size: 20px;
	line-height: 1.2;
}

.bt-size__price {
	margin-top: 4px;
	font-size: 15px;
	color: var(--bt-muted);
}

.bt-size__go {
	margin-top: 14px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-rose);
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .3s, transform .35s var(--bt-ease);
}

.bt-size__link:hover .bt-size__go,
.bt-size__link:focus-visible .bt-size__go {
	opacity: 1;
	transform: none;
}

@media (max-width: 1023px) {
	.bt-sizes__grid {
		grid-template-columns: repeat(10, minmax(150px, 1fr));
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--bt-gutter);
		margin: 0 calc(var(--bt-gutter) * -1);
		padding: 8px var(--bt-gutter) 20px;
		scrollbar-width: none;
	}

	.bt-sizes__grid::-webkit-scrollbar {
		display: none;
	}

	.bt-size {
		scroll-snap-align: start;
	}

	.bt-size__go {
		opacity: 1;
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   24Flower homepage panel
   -------------------------------------------------------------------------- */

.bt-24panel {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	align-items: stretch;
	color: #fff;
	background: #0e0e0f;
	font-family: "Jost", var(--bt-sans);
}

.bt-24panel__media {
	position: relative;
	min-height: 440px;
	overflow: hidden;
}

.bt-24panel__media img:not(.bt-24panel__roundel) {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.6s var(--bt-ease);
}

.bt-24panel:hover .bt-24panel__media img:not(.bt-24panel__roundel) {
	transform: scale(1.04);
}

.bt-24panel__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(14, 14, 15, 0) 55%, #0e0e0f 100%);
}

.bt-24panel__roundel {
	position: absolute;
	z-index: 1;
	left: 28px;
	bottom: 28px;
	width: 74px;
	height: auto;
}

@media (prefers-reduced-motion: no-preference) {
	.bt-24panel__roundel {
		animation: bt-float 6s ease-in-out infinite;
	}
}

@keyframes bt-float {
	50% { transform: translateY(-8px) rotate(-6deg); }
}

.bt-24panel__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(48px, 7vw, 96px) var(--bt-gutter);
}

.bt-24panel__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 26px;
	padding: 6px 14px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .24em;
	text-transform: uppercase;
	border: 1px solid rgba(255, 255, 255, .28);
}

.bt-24panel__badge span,
.bt-24-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	background: #6ee09a;
	border-radius: 50%;
	box-shadow: 0 0 0 0 rgba(110, 224, 154, .6);
}

@media (prefers-reduced-motion: no-preference) {
	.bt-24panel__badge span,
	.bt-24-dot {
		animation: bt-pulse 2.2s infinite;
	}
}

@keyframes bt-pulse {
	70% { box-shadow: 0 0 0 9px rgba(110, 224, 154, 0); }
	100% { box-shadow: 0 0 0 0 rgba(110, 224, 154, 0); }
}

.bt-24panel__logo {
	width: min(320px, 80%);
	height: auto;
	margin-bottom: 30px;
}

.bt-24panel__title {
	margin: 0 0 16px !important;
	font-family: "Jost", var(--bt-sans) !important;
	font-size: clamp(28px, 3vw, 40px) !important;
	font-weight: 500;
	line-height: 1.15 !important;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #fff;
}

.bt-24panel__text {
	max-width: 460px;
	margin: 0 0 24px;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, .78);
}

.bt-24panel__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
	font-size: 15px;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, .9);
}

.bt-24panel__facts li {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

.bt-24panel .bt-btn {
	font-family: "Jost", var(--bt-sans);
	font-weight: 500;
}

.bt-24panel__soon {
	margin: 22px 0 0;
	font-size: 12px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
}

@media (max-width: 899px) {
	.bt-24panel {
		grid-template-columns: 1fr;
	}

	.bt-24panel__media {
		min-height: 300px;
		aspect-ratio: 4 / 3;
	}

	.bt-24panel__media::after {
		background: linear-gradient(0deg, #0e0e0f 0%, rgba(14, 14, 15, 0) 45%);
	}
}

/* --------------------------------------------------------------------------
   Tiles
   -------------------------------------------------------------------------- */

.bt-tiles {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) 0;
}

.bt-tile {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	color: #fff !important;
	text-decoration: none !important;
	background: var(--bt-ink);
}

.bt-tile__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.2s var(--bt-ease);
}

.bt-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(25, 21, 27, .82) 0%, rgba(25, 21, 27, .25) 48%, rgba(25, 21, 27, 0) 70%);
	transition: opacity .5s;
}

.bt-tile:hover .bt-tile__img {
	transform: scale(1.06);
}

.bt-tile__body {
	position: absolute;
	z-index: 1;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 28px;
}

.bt-tile__title {
	display: block;
	font-family: var(--bt-serif);
	font-size: 32px;
	line-height: 1.1;
}

.bt-tile__text {
	display: block;
	margin-top: 6px;
	font-size: 15px;
	color: rgba(255, 255, 255, .85);
}

.bt-tile__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	margin-top: 18px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 50%;
	transition: background .35s, color .35s, transform .45s var(--bt-ease);
}

.bt-tile:hover .bt-tile__arrow {
	color: var(--bt-ink);
	background: #fff;
	transform: translateX(6px);
}

@media (max-width: 767px) {
	.bt-tiles {
		grid-template-columns: 1fr;
	}

	.bt-tile {
		aspect-ratio: 16 / 11;
	}
}

/* --------------------------------------------------------------------------
   Visit band
   -------------------------------------------------------------------------- */

.bt-visit {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 520px;
	overflow: hidden;
	color: #fff;
	background: var(--bt-ink);
}

.bt-visit__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	opacity: .42;
}

.bt-visit__inner {
	position: relative;
	width: 100%;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 80px var(--bt-gutter);
}

.bt-visit .bt-eyebrow {
	color: rgba(255, 255, 255, .85);
}

.bt-visit__title {
	max-width: 14ch;
	margin: 0 0 16px !important;
	font-size: clamp(32px, 4vw, 52px) !important;
	font-weight: 500;
	color: #fff !important;
}

.bt-visit__text {
	max-width: 480px;
	margin: 0 0 18px;
	font-size: 18px;
	color: rgba(255, 255, 255, .85);
}

.bt-visit address {
	margin: 0 0 30px;
	font-style: normal;
	letter-spacing: .04em;
}

.bt-visit__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}.woocommerce-loop-product__title {
	font-family: var(--bt-serif) !important;
	font-weight: 500 !important;
}

/* Gallery could get stuck at partial opacity if its fade-in ran in the background */
.woocommerce-product-gallery {
	opacity: 1 !important;
}

.single-product .product_title {
	font-size: clamp(30px, 3vw, 40px) !important;
	font-weight: 500;
}

.single-product .summary .price {
	font-family: var(--bt-serif);
	font-size: 26px !important;
}

.single-product .woocommerce-product-details__short-description ul li {
	padding: 2px 0;
}

.single-product .summary select,
.single-product .summary input[type="text"],
.single-product .summary input[type="date"],
.single-product .tm-epo-field {
	min-height: 46px;
	border: 1px solid var(--bt-line) !important;
	background: #fff;
	transition: border-color .25s, box-shadow .25s;
}

.single-product .summary select:focus,
.single-product .summary input:focus,
.single-product .tm-epo-field:focus {
	border-color: var(--bt-rose) !important;
	box-shadow: 0 0 0 3px rgba(194, 65, 111, .15);
}

.woocommerce button.single_add_to_cart_button {
	padding: 14px 32px !important;
	letter-spacing: .14em;
	background: var(--bt-ink) !important;
}

.woocommerce button.single_add_to_cart_button:not(.disabled):hover {
	background: var(--bt-rose) !important;
	transform: translateY(-2px);
}

/* Order form flow. The extra-options plugin renders a hidden (visibility: hidden) copy
   of its fields above the real ones; it still took ~200px, which style.css tried to
   offset with negative margins. Collapse the hidden copy (kept in the DOM) and reset
   those offsets so the price sits under the size dropdown. */
.single-product form.variations_form > .tc-extra-product-options {
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

.single-product form.variations_form .single_variation_wrap,
.single-product form.variations_form [id^="tc-epo-form-"] {
	margin-top: 0 !important;
}

.single-product form.variations_form .woocommerce-variation-price {
	float: none !important;
	margin: 4px 0 18px !important;
}

/* Breadcrumb and meta mentioned "Uncategorized"; products are now in Bouquets */
.single-product .product_meta .sku_wrapper {
	display: none;
}

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	border: 1px solid var(--bt-line);
	background: #fff;
	transition: border-color .25s, box-shadow .25s;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	border-color: var(--bt-rose);
	box-shadow: 0 0 0 3px rgba(194, 65, 111, .15);
}


/* --------------------------------------------------------------------------
   Mobile call-to-action bar
   -------------------------------------------------------------------------- */

.bt-mobile-cta {
	display: none;
}

@media (max-width: 767px) {
	.bt-mobile-cta {
		position: fixed;
		z-index: 997;
		left: 12px;
		right: 12px;
		bottom: max(12px, env(safe-area-inset-bottom));
		display: flex;
		gap: 8px;
		transform: translateY(150%);
		transition: transform .45s var(--bt-ease);
	}

	.bt-mobile-cta.is-visible {
		transform: none;
	}

	.bt-mobile-cta a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		font-size: 13px;
		font-weight: 700;
		letter-spacing: .16em;
		text-transform: uppercase;
		text-decoration: none;
		color: #fff;
		box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .6);
	}

	.bt-mobile-cta__main {
		flex: 1;
		background: var(--bt-rose);
	}

	.bt-mobile-cta__call {
		width: 52px;
		background: var(--bt-ink);
	}

	.bt-mobile-cta__call .bt-icon {
		width: 22px;
		height: 22px;
	}}


/* --------------------------------------------------------------------------
   Image bands (How it works on the homepage, requests on the contact page)
   -------------------------------------------------------------------------- */

.bt-band {
	position: relative;
	overflow: hidden;
	color: #fff;
	background: var(--bt-ink);
	isolation: isolate;
}

.bt-band__img {
	position: absolute;
	z-index: -2;
	inset: -8% 0;
	width: 100% !important;
	height: 116% !important;
	max-width: none !important;
	object-fit: cover;
	will-change: transform;
}

.bt-band::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(180deg, rgba(25, 21, 27, .78) 0%, rgba(25, 21, 27, .62) 50%, rgba(25, 21, 27, .82) 100%);
}

.bt-band .bt-eyebrow {
	color: #f2b8cc;
}

.bt-band .bt-section__title,
.bt-band h3 {
	color: #fff !important;
}

.bt-band .bt-section__lede,
.bt-band p {
	color: rgba(255, 255, 255, .82);
}

.bt-band--steps .bt-steps {
	padding-top: clamp(72px, 10vw, 128px);
	padding-bottom: clamp(72px, 10vw, 128px);
}

.bt-band .bt-steps__item {
	border-top-color: rgba(255, 255, 255, .25);
}

.bt-band .bt-steps__item::before {
	background: #f2b8cc;
}

.bt-band .bt-steps__num {
	color: #f2b8cc;
}

.bt-band .bt-steps__item p {
	color: rgba(255, 255, 255, .78);
}/* --------------------------------------------------------------------------
   Basket and checkout
   -------------------------------------------------------------------------- */

.bt-page-intro {
	max-width: 720px;
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter) clamp(40px, 6vw, 72px);
	text-align: center;
}

.bt-page-intro__title {
	margin: 0 0 14px !important;
	font-size: clamp(40px, 5vw, 64px) !important;
	font-weight: 500;
	line-height: 1.05 !important;
}

.bt-page-intro__text {
	margin: 0;
	font-size: 18px;
	color: var(--bt-muted);
}

@media (prefers-reduced-motion: no-preference) {
	.bt-js .bt-page-intro > * {
		animation: bt-rise 1s var(--bt-ease) both;
	}

	.bt-js .bt-page-intro > :nth-child(2) { animation-delay: .1s; }
	.bt-js .bt-page-intro > :nth-child(3) { animation-delay: .2s; }
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	padding-bottom: clamp(64px, 9vw, 112px);
}

.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table {
	border: 1px solid var(--bt-line) !important;
	border-collapse: collapse;
}

.woocommerce-cart table.shop_table th,
.woocommerce-checkout table.shop_table th {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-muted);
	background: var(--bt-cream);
}

.woocommerce-cart .cart_totals h2,
.woocommerce-checkout h3 {
	font-size: 26px !important;
	font-weight: 500;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-cart .coupon input.input-text {
	min-height: 48px;
	border: 1px solid var(--bt-line);
	background: #fff;
	transition: border-color .25s, box-shadow .25s;
}

.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus {
	border-color: var(--bt-rose);
	box-shadow: 0 0 0 3px rgba(194, 65, 111, .15);
}

.woocommerce-cart .cart-empty {
	font-size: 18px;
	text-align: center;
	border: 0 !important;
	background: none !important;
}

.woocommerce-cart .return-to-shop {
	text-align: center;
}

.woocommerce a.checkout-button,
.woocommerce #place_order {
	padding: 18px 32px !important;
	font-size: 14px !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	background: var(--bt-rose) !important;
	color: #fff !important;
}

.woocommerce a.checkout-button:hover,
.woocommerce #place_order:hover {
	background: var(--bt-rose-deep) !important;
	transform: translateY(-2px);
}

/* --------------------------------------------------------------------------
   Contact page
   -------------------------------------------------------------------------- */

.bt-btn--outline {
	color: var(--bt-ink) !important;
	border-color: var(--bt-line);
	background: #fff;
}

.bt-btn--outline:hover {
	border-color: var(--bt-ink);
	box-shadow: var(--bt-shadow);
}

.bt-contact {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter);
}

.bt-contact__intro {
	max-width: 720px;
	margin: 0 auto clamp(48px, 6vw, 72px);
	text-align: center;
}

.bt-contact__quick {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 30px;
}

.bt-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

.bt-contact__details {
	display: grid;
	gap: 12px;
}

/* Detail cards are rows: icon on the left, details on the right */
.bt-contact__details .bt-card:not(.bt-card--24) {
	display: grid;
	grid-template-columns: 44px 1fr;
	column-gap: 18px;
	align-items: start;
}

.bt-contact__details .bt-card:not(.bt-card--24) .bt-card__icon {
	grid-row: span 3;
	margin-bottom: 0;
}

.bt-card {
	position: relative;
	padding: 24px 26px;
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
	transition: transform .45s var(--bt-ease), box-shadow .45s var(--bt-ease), background .3s;
}

.bt-card:hover {
	background: #fff;
	transform: translateY(-4px);
	box-shadow: var(--bt-shadow);
}

.bt-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 18px;
	color: var(--bt-rose);
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 6px 16px -10px rgba(31, 28, 33, .5);
}

.bt-card h3 {
	margin: 0 0 8px !important;
	font-size: 21px !important;
	font-weight: 500;
}

.bt-card p,
.bt-card address {
	margin: 0;
	font-size: 16px;
	font-style: normal;
	line-height: 1.6;
}

.bt-card a {
	color: var(--bt-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--bt-line);
	transition: border-color .25s, color .25s;
}

.bt-card a:hover {
	color: var(--bt-rose);
	border-color: var(--bt-rose);
}

.bt-card__muted {
	font-size: 14px;
	color: var(--bt-muted);
}

.bt-card__note {
	display: flex;
	gap: 8px;
	margin-top: 14px !important;
	font-size: 14px !important;
	color: var(--bt-muted);
}

.bt-card__note .bt-icon {
	margin-top: 2px;
	color: var(--bt-rose);
}

.bt-card--24 {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 20px 24px;
	color: #fff !important;
	text-decoration: none !important;
	background: #0e0e0f;
	border-color: #0e0e0f;
	font-family: "Jost", var(--bt-sans);
}

.bt-card--24:hover {
	background: #1b1b1e;
}

.bt-card--24 img {
	width: 52px;
	height: auto;
	flex: none;
}

.bt-card--24 span {
	flex: 1;
	font-size: 15px;
	line-height: 1.45;
	color: rgba(255, 255, 255, .78);
}

.bt-card--24 strong {
	display: block;
	font-weight: 500;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
}

.bt-card--24 .bt-icon {
	transition: transform .35s var(--bt-ease);
}

.bt-card--24:hover .bt-icon {
	transform: translateX(5px);
}

/* The form card */
.bt-contact__form {
	padding: clamp(28px, 4vw, 48px);
	background: #fff;
	border: 1px solid var(--bt-line);
	box-shadow: 0 40px 80px -50px rgba(31, 28, 33, .45);
	scroll-margin-top: 90px;
}

.bt-contact__form > h3 {
	margin: 0 0 4px !important;
	font-size: 30px !important;
	font-weight: 500;
}

.bt-contact__form > .bt-card__muted {
	margin: 0 0 26px;
}

.bt-form {
	display: grid;
	gap: 18px;
}

.bt-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.bt-field {
	display: block;
	margin: 0;
}

.bt-field__label {
	display: block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-ink);
}

.bt-form .wpcf7-form-control-wrap {
	display: block;
}

.bt-form input[type="text"],
.bt-form input[type="email"],
.bt-form input[type="tel"],
.bt-form input[type="date"],
.bt-form select,
.bt-form textarea {
	width: 100%;
	min-height: 50px;
	padding: 12px 14px;
	font-family: var(--bt-sans);
	font-size: 16px;
	color: var(--bt-ink);
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
	border-radius: 0;
	transition: border-color .25s, box-shadow .25s, background .25s;
	-webkit-appearance: none;
	appearance: none;
}

.bt-form select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f1c21' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 18px;
}

.bt-form textarea {
	min-height: 150px;
	resize: vertical;
}

.bt-form input:focus,
.bt-form select:focus,
.bt-form textarea:focus {
	outline: 0;
	background-color: #fff;
	border-color: var(--bt-rose);
	box-shadow: 0 0 0 3px rgba(194, 65, 111, .15);
}

.bt-form__note {
	margin: 0;
	font-size: 13px;
	color: var(--bt-muted);
}

.bt-form .wpcf7-submit,
.bt-form__submit {
	width: 100%;
	min-height: 56px;
	margin: 0;
	background: var(--bt-rose) !important;
	cursor: pointer;
}

.bt-form .wpcf7-submit:hover {
	background: var(--bt-rose-deep) !important;
}

.bt-contact .wpcf7-spinner {
	position: absolute;
}

.bt-contact .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: var(--bt-rose-deep);
}

.bt-contact .wpcf7 form .wpcf7-response-output {
	width: auto !important;
	margin: 18px 0 0;
	padding: 14px 16px;
	font-size: 15px;
	border-width: 1px;
}

/* Requests band */
.bt-band--requests {
	scroll-margin-top: 70px;
}

.bt-requests {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(80px, 11vw, 140px) var(--bt-gutter);
	text-align: center;
}

.bt-requests__topics {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 32px;
}

.bt-chip {
	padding: 12px 20px;
	font-family: var(--bt-sans);
	font-size: 13px;
	line-height: 1.2;
	background: transparent;
	cursor: pointer;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .5);
	transition: background .3s, color .3s, transform .35s var(--bt-ease), border-color .3s;
}

.bt-chip:hover {
	color: var(--bt-ink) !important;
	background: #fff;
	border-color: #fff;
	transform: translateY(-2px);
}

/* Map: muted until you hover, with a details card on top */
.bt-map {
	position: relative;
	height: clamp(380px, 45vw, 520px);
	background: var(--bt-cream);
}

.bt-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(1) contrast(1.05);
	transition: filter .8s var(--bt-ease);
}

.bt-map:hover iframe {
	filter: none;
}

.bt-map__card {
	position: absolute;
	left: max(var(--bt-gutter), calc((100% - var(--bt-max)) / 2));
	top: 50%;
	width: min(340px, calc(100% - 2 * var(--bt-gutter)));
	padding: 30px;
	background: #fff;
	box-shadow: var(--bt-shadow);
	transform: translateY(-50%);
}

.bt-js .bt-map__card.bt-reveal:not(.is-in) {
	transform: translateY(calc(-50% + 26px));
}

.bt-js .bt-map__card.bt-reveal.is-in {
	transform: translateY(-50%);
}

.bt-map__card p {
	margin: 0 0 20px;
	line-height: 1.6;
}

@media (max-width: 899px) {
	.bt-contact__grid {
		grid-template-columns: 1fr;
	}

	.bt-contact__form {
		order: -1;
	}
}

@media (max-width: 599px) {
	.bt-form__row {
		grid-template-columns: 1fr;
	}

	.bt-contact__quick .bt-btn {
		flex: 1 1 100%;
	}

	.bt-map {
		height: auto;
	}

	.bt-map iframe {
		height: 320px;
	}

	.bt-map__card,
	.bt-js .bt-map__card.bt-reveal.is-in,
	.bt-js .bt-map__card.bt-reveal:not(.is-in) {
		position: relative;
		left: auto;
		top: auto;
		width: auto;
		margin: -40px var(--bt-gutter) 0;
		transform: none;
	}
}/* --------------------------------------------------------------------------
   About page
   -------------------------------------------------------------------------- */

.bt-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(32px, 6vw, 88px);
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter);
}

.bt-split--reverse .bt-split__media {
	order: 2;
}

.bt-split__media {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--bt-cream);
}

.bt-split__media::after {
	content: "";
	position: absolute;
	inset: 18px;
	border: 1px solid rgba(255, 255, 255, .55);
	pointer-events: none;
}

.bt-split__media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	transition: transform 1.6s var(--bt-ease);
}

.bt-split__media:hover img {
	transform: scale(1.04);
}

.bt-split__body .bt-section__title {
	margin-bottom: 22px !important;
}

.bt-split__body p {
	color: var(--bt-muted);
}

.bt-split__lede {
	font-family: var(--bt-serif);
	font-size: clamp(20px, 1.8vw, 24px);
	line-height: 1.45;
	color: var(--bt-ink) !important;
}

.bt-values {
	padding-top: 0 !important;
}

.bt-values__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-value {
	margin: 0 !important;
	padding: 30px 26px;
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
	transition: transform .45s var(--bt-ease), box-shadow .45s var(--bt-ease), background .3s;
}

.bt-value:hover {
	background: #fff;
	transform: translateY(-4px);
	box-shadow: var(--bt-shadow);
}

.bt-value h3 {
	margin: 0 0 8px !important;
	font-size: 21px !important;
	font-weight: 500;
}

.bt-value p {
	margin: 0;
	font-size: 16px;
	color: var(--bt-muted);
}

.bt-band--quote {
	display: flex;
	align-items: center;
	min-height: clamp(380px, 48vw, 560px);
}

.bt-quote {
	max-width: 900px;
	margin: 0 auto;
	padding: 80px var(--bt-gutter);
	text-align: center;
}

.bt-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--bt-serif);
	font-size: clamp(28px, 3.6vw, 48px);
	font-style: italic;
	line-height: 1.25;
	color: #fff;
}

.bt-quote blockquote::before {
	content: "“";
	display: block;
	height: .55em;
	font-size: 2.2em;
	line-height: 1;
	color: #f2b8cc;
}

.bt-quote figcaption {
	margin-top: 26px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .7);
}

.bt-cta {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter);
	text-align: center;
}

.bt-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 30px;
}

.bt-cta--dark {
	max-width: none;
	color: #fff;
	background: var(--bt-black);
}

.bt-cta--dark .bt-section__title {
	max-width: 760px;
	margin-left: auto !important;
	margin-right: auto !important;
	color: #fff !important;
}

.bt-cta--dark .bt-eyebrow {
	color: #f2b8cc;
}

@media (max-width: 899px) {
	.bt-split {
		grid-template-columns: 1fr;
	}

	.bt-split--reverse .bt-split__media {
		order: 0;
	}

	.bt-split__media {
		aspect-ratio: 4 / 3;
	}

	.bt-values__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 520px) {
	.bt-values__grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   Gallery page
   -------------------------------------------------------------------------- */

.bt-gallery {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter);
}

/* Masonry with CSS columns, so mixed portrait/landscape photos sit naturally */
.bt-gallery__grid {
	columns: 4 220px;
	column-gap: 12px;
}

.bt-gallery__item {
	position: relative;
	display: block;
	margin: 0 0 12px;
	overflow: hidden;
	break-inside: avoid;
	background: var(--bt-cream);
	cursor: zoom-in;
}

.bt-gallery__item.is-hidden {
	display: none;
}

.bt-gallery__item img {
	display: block;
	width: 100% !important;
	height: auto !important;
	transition: transform 1s var(--bt-ease), filter .5s;
}

.bt-gallery__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(25, 21, 27, .45), rgba(25, 21, 27, 0) 55%);
	opacity: 0;
	transition: opacity .45s;
}

.bt-gallery__item:hover img {
	transform: scale(1.05);
}

.bt-gallery__item:hover::after,
.bt-gallery__item:focus-visible::after {
	opacity: 1;
}

.bt-gallery__zoom {
	position: absolute;
	z-index: 1;
	right: 14px;
	bottom: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	font-size: 22px;
	line-height: 1;
	color: var(--bt-ink);
	background: #fff;
	border-radius: 50%;
	opacity: 0;
	transform: scale(.7);
	transition: opacity .35s, transform .45s var(--bt-ease);
}

.bt-gallery__item:hover .bt-gallery__zoom,
.bt-gallery__item:focus-visible .bt-gallery__zoom {
	opacity: 1;
	transform: none;
}

.bt-gallery__item.is-revealing {
	animation: bt-rise .8s var(--bt-ease) both;
}

.bt-gallery__more {
	margin: 36px 0 0;
	text-align: center;
}

@media (max-width: 599px) {
	.bt-gallery__grid {
		columns: 2;
		column-gap: 8px;
	}

	.bt-gallery__item {
		margin-bottom: 8px;
	}
}

/* Lightbox (built by bt-motion.js) */
.bt-lightbox {
	width: 100vw;
	max-width: none;
	height: 100vh;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	color: #fff;
	background: rgba(15, 14, 16, .94);
}

.bt-lightbox::backdrop {
	background: transparent;
}

.bt-lightbox[open] {
	display: flex;
	align-items: center;
	justify-content: center;
}

.bt-lightbox__img {
	max-width: min(92vw, 1100px);
	max-height: 84vh;
	object-fit: contain;
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8);
	transition: opacity .3s;
}

.bt-lightbox__img.is-loading {
	opacity: .2;
}

.bt-lightbox button {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	font-size: 26px;
	line-height: 1;
	color: #fff;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	cursor: pointer;
	transition: background .3s, transform .35s var(--bt-ease);
}

.bt-lightbox button:hover {
	background: rgba(255, 255, 255, .2);
}

.bt-lightbox__close { top: 20px; right: 20px; }
.bt-lightbox__prev { left: 20px; top: 50%; margin-top: -26px; }
.bt-lightbox__next { right: 20px; top: 50%; margin-top: -26px; }
.bt-lightbox__prev:hover { transform: translateX(-3px); }
.bt-lightbox__next:hover { transform: translateX(3px); }

.bt-lightbox__count {
	position: absolute;
	left: 50%;
	bottom: 22px;
	font-size: 13px;
	letter-spacing: .2em;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, .7);
}

@media (max-width: 599px) {
	.bt-lightbox__prev,
	.bt-lightbox__next {
		top: auto;
		bottom: 16px;
		margin-top: 0;
	}
}

.bt-split__body p.bt-eyebrow {
	color: var(--bt-rose);
}

/* --------------------------------------------------------------------------
   Homepage rhythm
   -------------------------------------------------------------------------- */

.bt-intro {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter) clamp(24px, 4vw, 40px);
	text-align: center;
}

.bt-intro h2 {
	font-size: clamp(30px, 3.6vw, 46px);
}

.bt-intro p:not(.bt-eyebrow) {
	font-size: 19px;
	line-height: 1.7;
	color: var(--bt-muted);
}

.bt-band + .bt-sizes,
.bt-row--full:has(.bt-band) + .bt-row--full .bt-sizes {
	padding-top: clamp(64px, 9vw, 112px);
}

.bt-band .bt-section__lede {
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
}

/* --------------------------------------------------------------------------
   7. WooCommerce (standard templates)
   -------------------------------------------------------------------------- */

.bt-woo {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 0 var(--bt-gutter) clamp(64px, 9vw, 112px);
}

.bt-woo--product {
	padding-top: 28px;
}

.bt-woo .bt-crumbs {
	text-align: left;
}

.bt-woo .bt-crumbs a,
.bt-woo .woocommerce-breadcrumb {
	color: var(--bt-muted);
}

/* Shop grid: two big cards */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: 28px 28px 32px;
	text-align: center;
	background: #fff;
	border: 1px solid var(--bt-line);
	transition: transform .45s var(--bt-ease), box-shadow .45s var(--bt-ease), border-color .3s;
}

.woocommerce ul.products li.product:hover {
	border-color: transparent;
	transform: translateY(-6px);
	box-shadow: var(--bt-shadow);
}

.woocommerce ul.products li.product a img {
	width: 100%;
	max-width: 320px;
	margin: 0 auto 20px;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	transition: transform 1s var(--bt-ease);
}

.woocommerce ul.products li.product:hover a img {
	transform: scale(1.03);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	font-size: 26px;
	color: var(--bt-ink);
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 6px 0 18px;
	font-size: 17px;
	color: var(--bt-muted);
}

.woocommerce ul.products li.product .button {
	margin-top: 0;
}

.woocommerce ul.products li.product a {
	text-decoration: none;
}

/* Single product */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(28px, 5vw, 64px);
	align-items: start;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
}

.woocommerce div.product .product_title {
	font-size: clamp(32px, 3.2vw, 44px);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--bt-serif);
	font-size: 26px;
	color: var(--bt-ink);
}

.woocommerce div.product form.cart .variations {
	margin-bottom: 8px;
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
	display: block;
	padding: 0 0 6px;
	border: 0;
}

.woocommerce div.product form.cart .variations label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-ink);
}

.woocommerce div.product form.cart .reset_variations {
	font-size: 13px;
	color: var(--bt-muted);
}

.woocommerce .quantity .qty {
	width: 72px;
	min-height: 48px;
	text-align: center;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}

.woocommerce button.single_add_to_cart_button {
	min-height: 52px;
	background: var(--bt-ink);
}

.woocommerce button.single_add_to_cart_button:not(.disabled):hover {
	background: var(--bt-rose);
}

.woocommerce button.button.disabled,
.woocommerce button.button:disabled {
	opacity: .45;
	cursor: not-allowed;
	transform: none;
}

/* Extra product options plugin: hide its running totals box (as on the old site) */
.tm-extra-product-options-totals {
	display: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	margin: 0 0 18px;
	padding: 0;
	border-bottom: 1px solid var(--bt-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 10px 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-ink);
	border-bottom: 2px solid var(--bt-rose);
}

.woocommerce .related > h2 {
	margin-top: 32px;
	font-size: 30px;
}

.woocommerce-product-gallery__trigger {
	z-index: 2;
}

/* Notices ("added to your basket", errors, info): a quiet cream panel with a small round icon,
   text and button vertically centred. WooCommerce focuses notices for screen readers, which drew
   the browser's blue focus ring; they are not clickable, so it is hidden. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: grid;
	grid-template-columns: 26px 1fr auto;
	align-items: center;
	gap: 12px 16px;
	margin: 0 0 28px;
	padding: 14px 18px;
	list-style: none;
	font-size: 16px;
	line-height: 1.5;
	color: var(--bt-ink);
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
	border-radius: 2px;
}

/* WooCommerce's clearfix would become an empty extra row (uneven space at the bottom). */
.woocommerce-message::after,
.woocommerce-info::after,
.woocommerce-error::after {
	display: none;
}

.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus,
.woocommerce-notices-wrapper:focus,
.woocommerce-NoticeGroup:focus {
	outline: none;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	position: static;
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin: 0;
	font: 700 13px/1 var(--bt-sans);
	color: #fff;
	background: var(--bt-rose);
	border-radius: 50%;
	content: "\2713";
}

.woocommerce-info::before {
	background: var(--bt-plum);
	font-family: var(--bt-serif);
	font-style: italic;
	content: "i";
}

/* Errors can list several problems: icon on the left, one line each. */
.woocommerce-error {
	position: relative;
	display: block;
	padding-left: 60px;
	background: var(--bt-blush);
	border-color: var(--bt-rose-light);
}

.woocommerce-error::before {
	position: absolute;
	top: 14px;
	left: 18px;
	background: var(--bt-rose-deep);
	content: "!";
}

.woocommerce-error li + li {
	margin-top: 6px;
}

body .woocommerce-message .button,
body .woocommerce-info .button {
	float: none;
	order: 2;
	min-height: 0;
	margin: 0;
	grid-row: 1;
	grid-column: 3;
	padding: 10px 18px;
	font-size: 11px;
}

@media (max-width: 600px) {
	.woocommerce-message,
	.woocommerce-info {
		grid-template-columns: 26px 1fr;
	}

	body .woocommerce-message .button,
	body .woocommerce-info .button {
		grid-row: 2;
		grid-column: 2;
		justify-self: start;
	}
}

/* Basket, checkout, account sit in the normal page width */
.bt-entry--own-heading .bt-row:not(.bt-row--full) {
	margin-top: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: min(100%, 480px);
	margin-left: auto;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: flex;
	width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	padding: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 10px 0;
	color: var(--bt-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--bt-line);
}

@media (max-width: 899px) {
	.woocommerce div.product {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   8. Footer: black band, then the mauve-grey
   -------------------------------------------------------------------------- */

.bt-footer {
	color: rgba(255, 255, 255, .72);
	background: var(--bt-mauve);
}

.bt-footer a {
	color: #fff;
}

.bt-footer__call {
	padding: clamp(28px, 4vw, 40px) var(--bt-gutter);
	text-align: center;
	background: var(--bt-black);
}

.bt-footer__call p {
	margin: 0;
	font-family: var(--bt-serif);
	font-size: clamp(24px, 2.6vw, 32px);
	color: #fff;
}

.bt-footer__call a {
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .3);
	transition: border-color .3s;
}

.bt-footer__call a:hover {
	color: #fff;
	border-color: #fff;
}

.bt-footer__main {
	display: grid;
	grid-template-columns: 1.2fr 1fr auto;
	align-items: start;
	gap: 40px;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(48px, 6vw, 72px) var(--bt-gutter);
}

.bt-footer__brand img {
	width: auto;
	height: 72px;
	margin-bottom: 20px;
}

.bt-footer__brand address {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
}

.bt-footer__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, max-content));
	gap: 10px 40px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-footer__list li {
	margin: 0;
}

.bt-footer__list a {
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none;
	color: rgba(255, 255, 255, .8);
	transition: color .25s;
}

.bt-footer__list a:hover {
	color: #fff;
}

.bt-footer__list .bt-icon {
	display: none;
}

.bt-footer__list .menu-item-home .bt-sr {
	position: static !important;
	width: auto;
	height: auto;
	clip: auto;
}

.bt-footer__24 {
	display: grid;
	justify-items: start;
	gap: 10px;
	text-decoration: none;
	font-family: "Jost", var(--bt-sans);
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .7);
}

.bt-footer__24 img {
	width: 180px;
	height: auto;
	transition: opacity .3s;
}

.bt-footer__24:hover img {
	opacity: .8;
}

.bt-footer__bottom {
	padding: 22px var(--bt-gutter);
	font-size: 13px;
	line-height: 1.8;
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, .08);
}

.bt-footer__bottom p {
	margin: 0;
}

.bt-footer__bottom a {
	text-underline-offset: 3px;
}

@media (max-width: 899px) {
	.bt-footer__main {
		grid-template-columns: 1fr 1fr;
	}

	.bt-footer__24 {
		grid-column: 1 / -1;
	}
}

@media (max-width: 599px) {
	.bt-footer__main {
		grid-template-columns: 1fr;
	}

	.bt-footer__bottom .bt-dot {
		display: none;
	}

	.bt-footer__bottom p {
		display: grid;
	}
}

@media (max-width: 767px) {
	body:has(.bt-mobile-cta) .bt-footer {
		padding-bottom: 76px;
	}
}

/* Parallax photos need a little extra height so drifting never uncovers an edge */
.bt-visit__img {
	inset: -8% 0 !important;
	height: 116% !important;
	will-change: transform;
}

/* Basket / checkout / account: use the full content width, with side padding */
.bt-entry--own-heading .bt-text {
	max-width: none;
}

.bt-entry > .woocommerce,
.bt-entry--own-heading > .bt-row:not(.bt-row--full) {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 0 var(--bt-gutter) clamp(64px, 9vw, 112px);
}

.bt-entry--own-heading > p:empty,
.bt-entry--own-heading > p:not(:has(*)):first-of-type {
	display: none;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 200px;
}

.woocommerce a.remove {
	color: var(--bt-muted) !important;
	font-weight: 400;
}

.woocommerce a.remove:hover {
	color: #fff !important;
	background: var(--bt-rose);
}

.woocommerce-cart table.cart td.product-name a {
	color: var(--bt-ink);
	text-decoration: none;
}

/* WooCommerce's own button colours outrank the base button rule */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	padding: 14px 26px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1.2;
	color: #fff;
	background: var(--bt-ink);
	border-radius: 0;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	color: #fff;
	background: var(--bt-rose);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var(--bt-rose);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--bt-rose-deep);
}

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
	padding: 14px 26px;
	color: var(--bt-muted);
	background: var(--bt-cream);
}

/* Two products: centre the cards rather than leaving a gap on the right */
.woocommerce ul.products {
	grid-template-columns: repeat(auto-fit, minmax(280px, 400px));
	justify-content: center;
}

/* Keep the layout steady when the menu locks scrolling (no jump as the scrollbar disappears) */
html {
	scrollbar-gutter: stable;
}

/* --------------------------------------------------------------------------
   Refinements (review round 1)
   -------------------------------------------------------------------------- */

/* Logo a touch bigger */
.bt-header__logo img { height: 72px; }
.bt-header.is-scrolled .bt-header__logo img { height: 50px; }

@media (max-width: 1099px) {
	.bt-header__logo img { height: 56px; }
	.bt-header.is-scrolled .bt-header__logo img { height: 44px; }
}

/* Underline stops at the end of the word: letter-spacing adds space after the last letter */
.bt-nav__list > li:not(.ordernow):not(.menu-item-home) > a::after {
	right: calc(13px + .14em);
}

/* Shorter hero, so the trust boxes show on first view; headline on three set lines */
.bt-hero {
	min-height: min(68vh, 660px);
	min-height: min(68svh, 660px);
}

.bt-hero__content {
	padding-top: 72px;
	padding-bottom: 72px;
}

.bt-hero__title {
	max-width: none;
	margin-bottom: 18px !important;
	font-size: clamp(40px, 4.8vw, 64px) !important;
	line-height: 1.04 !important;
}

.bt-hero__text {
	margin-bottom: 28px;
}

@media (max-width: 767px) {
	.bt-hero {
		min-height: 72svh;
	}

	.bt-hero__content {
		padding-top: 100px;
		padding-bottom: 48px;
	}
}

/* More room under the homepage intro before the photo band */
.bt-intro {
	padding-bottom: clamp(64px, 8vw, 104px);
}

/* Keep the hero headline to its three lines on small phones */
@media (max-width: 480px) {
	.bt-hero__title {
		font-size: 34px !important;
	}
}

/* Logo very slightly smaller, with a little more room below it (top stays as is) */
.bt-header__inner { padding-bottom: 20px; }
.bt-header__logo img { height: 68px; }
.bt-header.is-scrolled .bt-header__inner { padding-bottom: 12px; }

/* Three boxes: landscape rather than tall */
.bt-tile {
	aspect-ratio: 4 / 3;
}

.bt-tile__body {
	padding: 24px 26px;
}

.bt-tile__title {
	font-size: 28px;
}

.bt-tile__arrow {
	width: 38px;
	height: 38px;
	margin-top: 14px;
}

/* Menu and basket sit in the true vertical middle of the bar (the logo has extra room below) */
.bt-nav,
.bt-header__basket,
.bt-header__toggle {
	margin-top: 6px;
}

.bt-header.is-scrolled .bt-nav,
.bt-header.is-scrolled .bt-header__basket,
.bt-header.is-scrolled .bt-header__toggle {
	margin-top: 3px;
}

/* Proceed to checkout / Place order: text dead-centre vertically */
.woocommerce a.checkout-button,
.woocommerce #place_order {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	padding: 0 32px !important;
	line-height: 1.2 !important;
	margin-bottom: 0 !important;
}

/* Google's embed always shows its own place card top-left, duplicating ours.
   Make the map taller than its frame and shift it up so that card is cropped out. */
.bt-map {
	overflow: hidden;
}

.bt-map iframe {
	height: calc(100% + 190px);
	margin-top: -190px;
}

@media (max-width: 599px) {
	.bt-map iframe {
		height: 510px;
	}
}

/* Footer: logo left, links centred, 24 Flower right */
.bt-footer__main {
	grid-template-columns: 1fr auto 1fr;
}

.bt-footer__links {
	justify-self: center;
}

.bt-footer__24 {
	justify-self: end;
	justify-items: end;
	text-align: right;
}

@media (max-width: 899px) {
	.bt-footer__main {
		grid-template-columns: 1fr 1fr;
	}

	.bt-footer__links {
		justify-self: start;
	}

	.bt-footer__24 {
		justify-self: start;
		justify-items: start;
		text-align: left;
	}
}

/* Shop pages: breathing room below the page banner */
.bt-woo {
	padding-top: clamp(48px, 6vw, 86px);
}

.bt-woo--product {
	padding-top: clamp(32px, 4vw, 48px);
}

/* --------------------------------------------------------------------------
   Mobile: two columns wherever it fits (review round 3)
   -------------------------------------------------------------------------- */

/* Bouquet sizes: a plain grid of cards instead of a sideways scroll */
@media (max-width: 1023px) {
	.bt-sizes__grid {
		grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
		overflow: visible;
		margin: 0;
		padding: 0;
	}
}

@media (max-width: 599px) {
	.bt-sizes__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.bt-size__link {
		padding: 20px 10px 18px;
	}

	.bt-size__bloom {
		height: 48px;
		margin-bottom: 10px;
	}

	.bt-size__bloom svg {
		width: 42px;
		height: 42px;
	}

	.bt-size__name {
		font-size: 18px;
	}

	.bt-size__go {
		margin-top: 10px;
		font-size: 10px;
		letter-spacing: .12em;
	}

	.bt-toggle {
		display: flex;
		max-width: 100%;
	}

	.bt-toggle__btn {
		flex: 1;
		padding: 10px 12px;
	}

	/* Shop: collection and delivery side by side */
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.woocommerce ul.products li.product {
		padding: 12px 12px 18px;
	}

	.woocommerce ul.products li.product a img {
		margin-bottom: 14px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 19px;
		line-height: 1.2;
	}

	.woocommerce ul.products li.product .price {
		margin: 4px 0 14px;
		font-size: 14px;
	}

	.woocommerce ul.products li.product .button {
		padding: 12px 10px;
		font-size: 11px;
		letter-spacing: .12em;
	}

	/* Footer: logo and address, then the links in two even columns, then 24 Flower */
	.bt-footer__main {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.bt-footer__links {
		justify-self: stretch;
		padding-top: 28px;
		border-top: 1px solid rgba(255, 255, 255, .08);
	}

	.bt-footer__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px 24px;
	}

	.bt-footer__list a {
		white-space: nowrap;
	}

	.bt-footer__24 {
		padding-top: 28px;
		border-top: 1px solid rgba(255, 255, 255, .08);
	}

	/* Company details: one per line */
	.bt-footer__bottom .bt-dot {
		display: block;
		height: 0;
		overflow: hidden;
	}
}

@media (max-width: 599px) {
	/* WooCommerce's phone stylesheet sets the cards to 48% width and floats them */
	.woocommerce ul.products[class*="columns-"] li.product,
	.woocommerce-page ul.products[class*="columns-"] li.product {
		float: none;
		width: auto;
		margin: 0;
	}

	.bt-footer__24 {
		justify-self: stretch;
	}
}

@media (max-width: 599px) {
	/* About values: 2 × 2 */
	.bt-values__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.bt-value {
		padding: 20px 16px;
	}

	.bt-value h3 {
		font-size: 18px !important;
	}

	.bt-value p {
		font-size: 14px;
		line-height: 1.55;
	}

	/* Photo tiles: first one wide, then two side by side */
	.bt-tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		padding-left: var(--bt-gutter);
		padding-right: var(--bt-gutter);
	}

	.bt-tile {
		aspect-ratio: 4 / 5;
	}

	.bt-tile:first-child {
		grid-column: 1 / -1;
		aspect-ratio: 16 / 10;
	}

	.bt-tile__body {
		padding: 16px;
	}

	.bt-tile__title {
		font-size: 22px;
	}

	.bt-tile:not(:first-child) .bt-tile__text {
		display: none;
	}

	.bt-tile__arrow {
		width: 32px;
		height: 32px;
		margin-top: 10px;
	}

	/* Paired buttons side by side */
	.bt-hero__actions,
	.bt-visit__actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.bt-hero__actions .bt-btn,
	.bt-visit__actions .bt-btn {
		justify-content: center;
		min-width: 0;
		padding-left: 10px;
		padding-right: 10px;
		white-space: nowrap;
	}
}

@media (max-width: 599px) {
	.bt-hero__actions .bt-btn,
	.bt-visit__actions .bt-btn {
		gap: 8px;
		font-size: 12px;
		letter-spacing: .1em;
	}
}

@media (max-width: 599px) {
	/* 24 Flower panel photo: let the 4:3 shape follow the screen width */
	.bt-24panel {
		grid-template-columns: minmax(0, 1fr);
	}

	.bt-24panel__media {
		min-height: 0;
	}
}

@media (max-width: 899px) {
	/* Contact: long email address can't push the column wider than the screen */
	.bt-contact__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.bt-contact__details .bt-card {
		min-width: 0;
		overflow-wrap: anywhere;
	}
}

/* Delivery / Collection tab on the bouquets */
.single-product #tab-bt_delivery > h2 {
	display: none;
}

.single-product #tab-bt_delivery .shop_attributes {
	max-width: 860px;
	margin: 8px 0 0;
	border: 0;
}

.single-product #tab-bt_delivery .shop_attributes tr,
.single-product #tab-bt_delivery .shop_attributes tr:nth-child(even) th,
.single-product #tab-bt_delivery .shop_attributes tr:nth-child(even) td {
	background: none;
}

.single-product #tab-bt_delivery .shop_attributes th,
.single-product #tab-bt_delivery .shop_attributes td {
	padding: 18px 0;
	border: 0;
	border-bottom: 1px solid var(--bt-line);
	vertical-align: top;
	line-height: 1.6;
}

.single-product #tab-bt_delivery .shop_attributes th {
	width: 210px;
	padding-right: 24px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bt-ink);
	padding-top: 21px;
}

.single-product #tab-bt_delivery .shop_attributes td {
	font-size: 16px;
	font-style: normal;
	color: var(--bt-muted);
}

.single-product #tab-bt_delivery .shop_attributes td p {
	margin: 0;
	padding: 0;
}

@media (max-width: 599px) {
	.single-product #tab-bt_delivery .shop_attributes th,
	.single-product #tab-bt_delivery .shop_attributes td {
		display: block;
		width: auto;
	}

	.single-product #tab-bt_delivery .shop_attributes th {
		padding: 18px 0 4px;
		border-bottom: 0;
	}

	.single-product #tab-bt_delivery .shop_attributes td {
		padding: 0 0 18px;
	}
}

/* Bouquet size picker: tags (name + price) instead of a dropdown */
.bt-swatches-field select {
	display: none !important;
}

.bt-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}

.bt-swatch {
	margin: 0;
	padding: 10px 15px;
	font-family: var(--bt-serif);
	font-size: 16px;
	line-height: 1.3;
	white-space: nowrap;
	color: var(--bt-ink);
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
	border-radius: 0;
	cursor: pointer;
	transition: background .25s, border-color .25s, color .25s, transform .3s var(--bt-ease);
}

.bt-swatch__price {
	margin-left: 2px;
	font-family: var(--bt-sans);
	font-size: 14px;
	color: var(--bt-rose);
	transition: color .25s;
}

.bt-swatch:hover {
	background: #fff;
	border-color: var(--bt-ink);
	transform: translateY(-2px);
}

.bt-swatch:focus-visible {
	outline: 2px solid var(--bt-rose);
	outline-offset: 2px;
}

.bt-swatch.is-selected {
	color: #fff;
	background: var(--bt-ink);
	border-color: var(--bt-ink);
	transform: none;
}

.bt-swatch.is-selected .bt-swatch__price {
	color: #f2b8cc;
}

@media (max-width: 599px) {
	.bt-swatches {
		gap: 6px;
	}

	.bt-swatch {
		padding: 9px 12px;
		font-size: 15px;
	}
}

/* Product photo thumbnails: share the full width of the main photo, all the same size */
.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	gap: 8px;
	margin: 8px 0 0;
	padding: 0;
}

.woocommerce div.product div.images .flex-control-thumbs::before,
.woocommerce div.product div.images .flex-control-thumbs::after {
	display: none;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	opacity: .55;
	transition: opacity .3s;
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
	opacity: 1;
}

/* Product summary: enquiry emails in a quiet panel above the order options */
.single-product .bt-enquiry-note {
	margin: 26px 0 30px;
	padding: 16px 20px;
	font-size: 14px;
	line-height: 1.65;
	color: var(--bt-muted);
	background: var(--bt-cream);
	border-left: 2px solid var(--bt-rose);
}

.single-product .bt-enquiry-note p {
	margin: 0;
}

.single-product .bt-enquiry-note .bt-enquiry-note__title {
	margin-bottom: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bt-ink);
}

.single-product .bt-enquiry-note a {
	color: var(--bt-ink);
	text-decoration-color: rgba(194, 65, 111, .5);
	text-underline-offset: 3px;
	overflow-wrap: anywhere;
}

.single-product .bt-enquiry-note a:hover {
	color: var(--bt-rose);
}

/* Related products: left-aligned under the heading, square photos */
.woocommerce .related ul.products {
	grid-template-columns: repeat(auto-fill, minmax(240px, 300px));
	justify-content: start;
}

.woocommerce .related ul.products li.product {
	padding: 16px 16px 24px;
}

.woocommerce .related ul.products li.product a img {
	aspect-ratio: 1;
	max-width: none;
	margin-bottom: 16px;
}

.woocommerce .related ul.products li.product .woocommerce-loop-product__title {
	font-size: 22px;
}

@media (max-width: 599px) {
	.woocommerce .related ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce .related ul.products li.product {
		padding: 10px 10px 16px;
	}

	.woocommerce .related ul.products li.product .woocommerce-loop-product__title {
		font-size: 18px;
	}
}

/* Bouquet pages: shorter main photo, and the "Prefer to collect?" card under the thumbnails */
.single-product .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	aspect-ratio: 20 / 23;
	object-fit: cover;
}

.woocommerce div.product .bt-product-media div.images {
	float: none;
	width: auto;
	margin: 0;
}

.woocommerce div.product .bt-product-media .related {
	margin-top: clamp(40px, 5vw, 56px);
	padding-top: clamp(28px, 3vw, 36px);
	border-top: 1px solid var(--bt-line);
}

.woocommerce div.product .bt-product-media .related > h2 {
	margin: 0 0 18px;
	font-size: 26px;
}

.woocommerce .bt-product-media .related ul.products {
	grid-template-columns: minmax(0, 1fr);
}

.woocommerce .bt-product-media .related ul.products li.product {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	column-gap: 24px;
	align-items: start;
	padding: 14px;
	text-align: left;
}

/* The product link wraps the photo, title and price: let them join the card's grid */
.woocommerce .bt-product-media .related ul.products li.product > a.woocommerce-LoopProduct-link {
	display: contents;
}

.woocommerce .bt-product-media .related ul.products li.product a img {
	grid-column: 1;
	grid-row: 1 / 4;
	width: 150px;
	max-width: none;
	margin: 0;
	aspect-ratio: 1;
}

.woocommerce .bt-product-media .related ul.products li.product .woocommerce-loop-product__title {
	grid-column: 2;
	margin-top: 8px;
	font-size: 22px;
}

.woocommerce .bt-product-media .related ul.products li.product .price {
	grid-column: 2;
	margin: 2px 0 12px;
	font-size: 15px;
}

.woocommerce .bt-product-media .related ul.products li.product .button {
	grid-column: 2;
	justify-self: start;
	align-self: start;
}

/* One column (tablet and phone): photos first, the card goes to the end of the page */
@media (max-width: 899px) {
	.woocommerce div.product .bt-product-media {
		display: contents;
	}

	.woocommerce div.product .bt-product-media .related {
		order: 10;
	}
}

@media (max-width: 599px) {
	.woocommerce .bt-product-media .related ul.products li.product {
		grid-template-columns: 110px minmax(0, 1fr);
		column-gap: 16px;
	}

	.woocommerce .bt-product-media .related ul.products li.product a img {
		width: 110px;
	}

	.woocommerce .bt-product-media .related ul.products li.product .woocommerce-loop-product__title {
		margin-top: 2px;
		font-size: 19px;
	}
}

@media (max-width: 899px) {
	.woocommerce div.product .bt-product-media .related {
		padding-top: 0;
		border-top: 0;
	}
}

/* Thumbnails only offer the other photos: the one showing above is hidden from the row.
   A steady one-third size, so a single thumbnail doesn't stretch across the column. */
.woocommerce div.product div.images .flex-control-thumbs {
	grid-auto-columns: calc((100% - 16px) / 3);
}

.woocommerce div.product div.images .flex-control-thumbs li:has(img.flex-active) {
	display: none;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
	opacity: 1;
	cursor: pointer;
}

.woocommerce div.product div.images .flex-control-thumbs li img:hover {
	opacity: .8;
}

/* Bouquet pages: "Delivered to your door" / "Collect from Box Trees Farm" under the title */
.single-product .bt-product-mode {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: -4px 0 14px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bt-rose);
}

.single-product .bt-product-mode .bt-icon {
	width: 18px;
	height: 18px;
	flex: none;
}

/* Product pages have no breadcrumb now: a little more room under the header instead */
.bt-woo--product {
	padding-top: clamp(40px, 5vw, 64px);
}

/* Google box links to their reviews */
.bt-trust__link {
	display: flex;
	align-items: center;
	gap: 14px;
	color: inherit;
	text-decoration: none;
}

.bt-trust__link strong {
	transition: color .25s;
}

.bt-trust__link:hover strong {
	color: var(--bt-rose);
}

/* Customer reviews (Customiser → Box Trees → Customer reviews) */
.bt-review {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 30px 28px 26px;
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
}

.bt-review__stars {
	display: flex;
	gap: 3px;
	margin-bottom: 14px;
	color: var(--bt-rose);
}

.bt-review__stars .bt-icon {
	width: 15px;
	height: 15px;
	fill: currentColor;
}

.bt-review blockquote {
	flex: 1;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}

.bt-review blockquote p {
	margin: 0;
	font-family: var(--bt-serif);
	font-size: 19px;
	line-height: 1.5;
	color: var(--bt-ink);
}

.bt-review figcaption {
	font-size: 13px;
	letter-spacing: .04em;
	color: var(--bt-muted);
}

.bt-review figcaption strong {
	color: var(--bt-ink);
}

.bt-reviews {
	padding-top: clamp(56px, 7vw, 88px);
}

.bt-reviews__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}

.bt-reviews__more {
	margin: 26px 0 0;
	text-align: center;
}

.bt-reviews__more a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bt-ink);
	text-decoration: none;
}

.bt-reviews__more a:hover {
	color: var(--bt-rose);
}

/* Single review on the shop and product pages */
.bt-review--single {
	padding: 22px 24px 20px;
}

.bt-review--single blockquote p {
	font-size: 17px;
}

.bt-review--shop {
	max-width: 640px;
	margin: 36px auto clamp(40px, 5vw, 64px);
	text-align: center;
	align-items: center;
}

.single-product .bt-review--product {
	margin-top: 28px;
}

@media (max-width: 599px) {
	.bt-review {
		padding: 22px 20px 20px;
	}

	.bt-review blockquote p {
		font-size: 17px;
	}
}

/* Phones: hero text vertically centred, with the shading evened out behind it */
@media (max-width: 767px) {
	.bt-hero {
		align-items: center;
	}

	.bt-hero__content {
		padding-top: 56px;
		padding-bottom: 56px;
	}

	.bt-hero__scrim {
		background:
			linear-gradient(0deg, rgba(25, 21, 27, .7) 0%, rgba(25, 21, 27, .5) 30%, rgba(25, 21, 27, .5) 70%, rgba(25, 21, 27, .62) 100%);
	}
}

/* The welcome section below brings its own top spacing */
.bt-reviews {
	padding-bottom: 0;
}

/* --------------------------------------------------------------------------
   Visit section, calmer: text on cream, the shop photo framed beside it
   (replaces the full-width photo with text over it)
   -------------------------------------------------------------------------- */
.bt-visit {
	display: block;
	min-height: 0;
	overflow: visible;
	color: var(--bt-ink);
	background: var(--bt-cream);
}

.bt-visit__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(36px, 6vw, 88px);
	padding: clamp(64px, 8vw, 112px) var(--bt-gutter);
}

.bt-visit .bt-eyebrow {
	color: var(--bt-rose);
}

.bt-visit__title {
	color: var(--bt-ink) !important;
}

.bt-visit__text {
	color: var(--bt-muted);
}

.bt-visit address {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 30px;
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: 0;
	color: var(--bt-ink);
}

.bt-visit address .bt-icon {
	margin-top: 2px;
	color: var(--bt-rose);
}

.bt-visit__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.bt-visit__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--bt-ease);
}

.bt-visit__media:hover .bt-visit__photo {
	transform: scale(1.03);
}

@media (max-width: 899px) {
	.bt-visit__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.bt-visit__media {
		order: -1;
	}
}

/* Phones: the 24 roundel on the photo sits right and smaller, clear of the 24 Flower logo below */
@media (max-width: 767px) {
	.bt-24panel__roundel {
		left: auto;
		right: 18px;
		bottom: 22px;
		width: 54px;
	}
}

/* Bouquet size cards: border fades to rose on hover (lift and shadow unchanged) */
.bt-size__link:hover,
.bt-size__link:focus-visible {
	border-color: var(--bt-rose);
}

/* "Read all our reviews on Google" under single reviews: small caps link, bigger tap area on phones */
.bt-review__more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bt-ink);
	text-decoration: none;
	transition: color .25s;
}

.bt-review__more .bt-icon {
	width: 13px;
	height: 13px;
}

.bt-review__more:hover {
	color: var(--bt-rose);
}

@media (max-width: 767px) {
	.bt-review__more {
		margin-top: 6px;
		padding: 10px 0;
		font-size: 11px;
	}
}

/* Two tiles side by side (About / Gallery / Contact, minus the current page) */
.bt-tiles--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bt-tiles--2 .bt-tile {
	aspect-ratio: 16 / 9;
}

@media (max-width: 767px) {
	.bt-tiles--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bt-tiles--2 .bt-tile,
	.bt-tiles--2 .bt-tile:first-child {
		grid-column: auto;
		aspect-ratio: 4 / 5;
	}

	.bt-tiles--2 .bt-tile__text {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   Explore cards (About / Gallery / Contact): photo above, text below,
   in the same editorial style as the rest of the site. Replaces the old tiles.
   -------------------------------------------------------------------------- */
.bt-explore {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 40px);
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(64px, 9vw, 112px) var(--bt-gutter);
}

.bt-explore__card {
	display: flex;
	flex-direction: column;
	color: var(--bt-ink) !important;
	text-decoration: none !important;
}

.bt-explore__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--bt-cream);
}

.bt-explore__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--bt-ease);
}

.bt-explore__card:hover .bt-explore__img {
	transform: scale(1.04);
}

.bt-explore__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-top: 24px;
}

.bt-explore__body .bt-eyebrow {
	margin-bottom: 8px;
}

.bt-explore__title {
	font-family: var(--bt-serif);
	font-size: clamp(26px, 2.4vw, 32px);
	line-height: 1.15;
}

.bt-explore__text {
	margin-top: 6px;
	font-size: 16px;
	color: var(--bt-muted);
}

.bt-explore__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	transition: color .25s;
}

.bt-explore__more .bt-icon {
	width: 16px;
	height: 16px;
	transition: transform .35s var(--bt-ease);
}

.bt-explore__card:hover .bt-explore__more {
	color: var(--bt-rose);
}

.bt-explore__card:hover .bt-explore__more .bt-icon {
	transform: translateX(4px);
}

@media (max-width: 599px) {
	.bt-explore {
		gap: 14px;
	}

	.bt-explore__media {
		aspect-ratio: 4 / 5;
	}

	.bt-explore__body {
		padding-top: 14px;
	}

	.bt-explore__body .bt-eyebrow {
		font-size: 10px;
	}

	.bt-explore__title {
		font-size: 21px;
	}

	.bt-explore__text {
		display: none;
	}

	.bt-explore__more {
		margin-top: 8px;
		padding: 6px 0;
		font-size: 11px;
		letter-spacing: .12em;
	}
}

/* --------------------------------------------------------------------------
   Terms & Conditions ([bt_legal]): one readable column, "On this page" beside it
   -------------------------------------------------------------------------- */
.bt-legal {
	display: grid;
	grid-template-columns: 240px minmax(0, 720px);
	justify-content: center;
	gap: clamp(40px, 6vw, 96px);
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(56px, 7vw, 96px) var(--bt-gutter) clamp(40px, 5vw, 64px);
}

.bt-legal__toc {
	position: sticky;
	top: 120px;
	align-self: start;
}

.bt-legal__toc ol {
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 1px solid var(--bt-line);
}

.bt-legal__toc li {
	margin: 0;
}

.bt-legal__toc a {
	display: flex;
	gap: 12px;
	padding: 7px 0 7px 18px;
	font-size: 14px;
	color: var(--bt-muted);
	text-decoration: none;
	transition: color .25s;
}

.bt-legal__toc a span {
	min-width: 1.2em;
	color: var(--bt-rose);
	font-weight: 700;
	font-size: 12px;
	line-height: 1.9;
}

.bt-legal__toc a:hover {
	color: var(--bt-ink);
}

.bt-legal__section {
	scroll-margin-top: 110px;
	padding-bottom: 28px;
}

.bt-legal__section + .bt-legal__section {
	padding-top: 28px;
	border-top: 1px solid var(--bt-line);
}

.bt-legal__section h2 {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 18px !important;
	font-size: clamp(24px, 2.4vw, 30px) !important;
	font-weight: 500;
}

.bt-legal__section h2 span {
	font-family: var(--bt-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--bt-rose);
}

.bt-legal__section p {
	margin: 0 0 14px;
	font-size: 16px;
	line-height: 1.75;
	color: var(--bt-muted);
}

.bt-legal__num {
	display: inline-block;
	min-width: 2.6em;
	font-weight: 700;
	color: var(--bt-ink);
}

.bt-legal__note {
	margin-top: 20px;
}

.bt-legal__note a {
	color: var(--bt-ink);
	text-decoration-color: rgba(194, 65, 111, .5);
	text-underline-offset: 3px;
}

.bt-legal__note a:hover {
	color: var(--bt-rose);
}

@media (max-width: 899px) {
	.bt-legal {
		grid-template-columns: minmax(0, 1fr);
	}

	.bt-legal__toc {
		position: static;
	}

	.bt-legal__toc ol {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		border-left: 0;
	}

	.bt-legal__toc a {
		padding: 8px 0;
	}
}

/* The quiet note panel (product pages) reused at the end of the Terms */
.bt-legal .bt-enquiry-note {
	padding: 18px 22px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--bt-muted);
	background: var(--bt-cream);
	border-left: 2px solid var(--bt-rose);
}

.bt-legal .bt-enquiry-note p {
	margin: 0;
}

.bt-legal .bt-enquiry-note .bt-enquiry-note__title {
	margin-bottom: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--bt-ink);
}

/* --------------------------------------------------------------------------
   Delivery area landing pages (single-bt_area.php, archive-bt_area.php)
   -------------------------------------------------------------------------- */
.bt-area-hero .bt-crumbs {
	margin-bottom: 18px;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}

.bt-area-hero .bt-crumbs a {
	color: inherit;
	text-decoration: none;
}

.bt-area-hero .bt-crumbs a:hover {
	color: #fff;
}

/* Offer strip */
.bt-offer {
	color: #fff;
	background: var(--bt-rose);
}

.bt-offer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 18px;
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 16px var(--bt-gutter);
	text-align: center;
}

.bt-offer__text {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 12px;
	margin: 0;
	font-size: 16px;
}

.bt-offer__text strong {
	font-family: var(--bt-serif);
	font-size: 20px;
	font-weight: 500;
}

.bt-offer__code {
	padding: 3px 10px;
	font-family: var(--bt-sans);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--bt-ink);
	background: #fff;
}

.bt-offer__small {
	width: 100%;
	margin: 0;
	font-size: 12px;
	opacity: .85;
}

.bt-offer__tag {
	padding: 3px 8px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	border: 1px solid rgba(255, 255, 255, .7);
}

/* Local text + delivery facts */
.bt-area-local {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
	align-items: start;
	gap: clamp(36px, 6vw, 88px);
}

.bt-area-local__text p {
	font-size: 18px;
	line-height: 1.75;
	color: var(--bt-muted);
}

.bt-area-facts {
	padding: 30px 30px 26px;
	background: var(--bt-cream);
	border: 1px solid var(--bt-line);
}

.bt-area-facts ul {
	display: grid;
	gap: 18px;
	margin: 6px 0 0;
	padding: 0;
	list-style: none;
}

.bt-area-facts li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin: 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--bt-muted);
}

.bt-area-facts li .bt-icon {
	width: 24px;
	height: 24px;
	color: var(--bt-rose);
}

.bt-area-facts li strong {
	display: block;
	font-size: 15px;
	color: var(--bt-ink);
}

.bt-area-facts a {
	color: var(--bt-ink);
}

.bt-area-facts__places {
	margin: 22px 0 0;
	padding-top: 18px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--bt-muted);
	border-top: 1px solid var(--bt-line);
}

.bt-area-facts__places strong {
	color: var(--bt-ink);
}

.bt-area-sizes {
	scroll-margin-top: 90px;
}

/* FAQ */
.bt-faq__list {
	max-width: 820px;
	margin: 0 auto;
	border-top: 1px solid var(--bt-line);
}

.bt-faq__item {
	border-bottom: 1px solid var(--bt-line);
}

.bt-faq__item summary {
	position: relative;
	padding: 22px 44px 22px 0;
	font-family: var(--bt-serif);
	font-size: 20px;
	color: var(--bt-ink);
	list-style: none;
	cursor: pointer;
}

.bt-faq__item summary::-webkit-details-marker {
	display: none;
}

.bt-faq__item summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 6px;
	font-family: var(--bt-sans);
	font-size: 24px;
	color: var(--bt-rose);
	transform: translateY(-50%);
	transition: transform .3s var(--bt-ease);
}

.bt-faq__item[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.bt-faq__item p {
	margin: 0 0 22px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--bt-muted);
}

.bt-faq__item a {
	color: var(--bt-ink);
	text-underline-offset: 3px;
}

/* Follow */
.bt-follow {
	background: var(--bt-cream);
}

.bt-follow__inner {
	max-width: 640px;
	margin: 0 auto;
	padding: clamp(56px, 7vw, 88px) var(--bt-gutter);
	text-align: center;
}

.bt-follow__title {
	margin: 0 0 10px !important;
	font-size: clamp(28px, 3vw, 38px) !important;
	font-weight: 500;
}

.bt-follow__text {
	margin: 0 0 24px;
	color: var(--bt-muted);
}

.bt-follow__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.bt-follow__note {
	margin: 16px 0 0;
	font-size: 12px;
	color: var(--bt-rose);
}

/* Other areas */
.bt-area-nearby {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: clamp(40px, 5vw, 64px) var(--bt-gutter);
	text-align: center;
}

.bt-area-nearby ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-area-nearby li {
	margin: 0;
}

.bt-area-nearby a {
	display: inline-block;
	padding: 9px 16px;
	font-size: 14px;
	color: var(--bt-ink);
	text-decoration: none;
	border: 1px solid var(--bt-line);
	transition: border-color .25s, color .25s;
}

.bt-area-nearby a:hover {
	color: var(--bt-rose);
	border-color: var(--bt-rose);
}

/* Hub */
.bt-area-hub__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-area-hub__list li {
	margin: 0;
}

.bt-area-hub__list a {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	column-gap: 12px;
	padding: 22px 24px;
	color: var(--bt-ink);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--bt-line);
	transition: border-color .25s, transform .35s var(--bt-ease);
}

.bt-area-hub__list a:hover {
	border-color: var(--bt-rose);
	transform: translateY(-3px);
}

.bt-area-hub__name {
	font-family: var(--bt-serif);
	font-size: 22px;
}

.bt-area-hub__meta {
	grid-column: 1;
	font-size: 13px;
	color: var(--bt-muted);
}

.bt-area-hub__list .bt-icon {
	grid-column: 2;
	grid-row: 1 / 3;
	color: var(--bt-rose);
}

@media (max-width: 899px) {
	.bt-area-local {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 599px) {
	.bt-area-facts {
		padding: 24px 20px 20px;
	}

	.bt-area-local__text p {
		font-size: 17px;
	}

	.bt-faq__item summary {
		font-size: 18px;
	}
}

/* Area pages: reviews sit right above the "how it works" photo band, so they need their own bottom space */
.bt-area-page .bt-reviews {
	padding-bottom: clamp(64px, 8vw, 104px);
}

/* Offer strip: a touch more presence (same place and colour) */
.bt-offer__inner {
	gap: 8px 22px;
	padding: clamp(22px, 3vw, 30px) var(--bt-gutter);
}

.bt-offer__text {
	gap: 8px 16px;
	font-size: 17px;
}

.bt-offer__text strong {
	font-size: clamp(22px, 2.4vw, 28px);
}

.bt-offer__text .bt-icon {
	width: 24px;
	height: 24px;
}

.bt-offer__code {
	padding: 5px 14px;
	font-size: 15px;
	letter-spacing: .16em;
}

.bt-offer__small {
	margin-top: 2px;
	font-size: 13px;
}

/* Ad visitors on area pages: no header menu, so the page keeps their attention (logo and basket stay) */
.bt-ad-visit .bt-nav,
.bt-ad-visit .bt-header__toggle {
	display: none !important;
}

/* Area pages: space under "Fresh flowers for {Area}", and keep the small rose label above it */
.bt-area-local__text .bt-section__title {
	margin-bottom: 20px;
}

.bt-area-local__text p.bt-eyebrow {
	font-size: 12px;
	line-height: 1.4;
	color: var(--bt-rose);
}

/* Footer: Instagram and Facebook */
.bt-footer__social {
	display: flex;
	gap: 10px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

.bt-footer__social li {
	margin: 0;
}

.bt-footer__social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	color: rgba(255, 255, 255, .8);
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	transition: color .25s, border-color .25s, background .25s;
}

.bt-footer__social a:hover {
	color: #fff;
	border-color: var(--bt-rose);
	background: var(--bt-rose);
}

.bt-footer__social .bt-icon {
	width: 20px;
	height: 20px;
}

/* Contact page: Follow us card */
.bt-card__social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
}

.bt-card__social a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
}

.bt-card__social .bt-icon {
	width: 18px;
	height: 18px;
	color: var(--bt-rose);
}

.bt-review figcaption a {
	color: inherit;
	text-decoration: none;
}

.bt-review figcaption a:hover {
	color: var(--bt-rose);
}

/* --------------------------------------------------------------------------
   Offer strip, v2: centred and stacked (small line, serif headline, code line)
   -------------------------------------------------------------------------- */
.bt-offer__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	max-width: 760px;
	padding: clamp(28px, 4vw, 40px) var(--bt-gutter);
}

.bt-offer__label {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .9);
}

.bt-offer__label .bt-icon {
	width: 18px;
	height: 18px;
	opacity: .9;
}

.bt-offer__label .bt-icon:last-child {
	transform: scaleX(-1);
}

.bt-offer__headline {
	margin: 0;
	font-family: var(--bt-serif);
	font-size: clamp(26px, 3.2vw, 38px);
	line-height: 1.2;
	color: #fff;
}

.bt-offer__detail {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 14px;
	margin: 16px 0 0;
	font-size: 15px;
	color: rgba(255, 255, 255, .92);
}

.bt-offer__use {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.bt-offer .bt-offer__code {
	padding: 6px 12px 6px 14px; /* letter spacing adds space on the right */
	font-size: 14px;
	letter-spacing: .16em;
}

.bt-offer__detail .bt-offer__small {
	width: auto;
	margin: 0;
	font-size: 13px;
	opacity: .85;
}

.bt-offer__detail .bt-offer__use + .bt-offer__small::before {
	content: "·";
	margin-right: 14px;
}

@media (max-width: 599px) {
	.bt-offer__label {
		gap: 8px;
		font-size: 11px;
		letter-spacing: .18em;
	}

	.bt-offer__detail {
		flex-direction: column;
		gap: 10px;
	}

	.bt-offer__detail .bt-offer__use + .bt-offer__small::before {
		content: none;
	}
}

/* Even line breaks in the offer headline (no single word left on its own line) */
.bt-offer__headline {
	text-wrap: balance;
}

/* Hub: equal-height area boxes, names sized so "Hampton-in-Arden" fits on one line */
.bt-area-hub__list li,
.bt-area-hub__list a {
	height: 100%;
}

.bt-area-hub__name {
	font-size: 20px;
	white-space: nowrap;
}

@media (max-width: 599px) {
	.bt-area-hub__name {
		white-space: normal;
	}
}

/* Smooth colour change on plain text links too (anything with its own transition keeps it) */
a {
	transition: color .25s ease, text-decoration-color .25s ease;
}

.bt-header__basket {
	transition: background .3s, border-color .3s, color .3s;
}

.bt-footer__call a {
	transition: color .25s ease, border-color .25s ease, text-decoration-color .25s ease;
}

/* Gallery: an even grid of square thumbnails (photos cropped to fill), replacing the masonry columns.
   The lightbox still opens the whole uncropped photo. */
.bt-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	columns: auto;
}

.bt-gallery__item {
	margin: 0;
	aspect-ratio: 1;
}

.bt-gallery__item img {
	height: 100% !important;
	object-fit: cover;
}

@media (max-width: 899px) {
	.bt-gallery__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.bt-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.bt-gallery__item {
		margin: 0;
	}
}

/* --------------------------------------------------------------------------
   Client amends, 24 Oct 2026
   -------------------------------------------------------------------------- */

/* Trust bar footnote for "Within a five-mile radius*" */
.bt-trust__note {
	max-width: var(--bt-max);
	margin: 0 auto;
	padding: 12px var(--bt-gutter) 0;
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
	color: var(--bt-muted);
}

/* 24 Flower panel: the logo is the heading ("24 Flower by Box Trees Flowers"), strapline below */
.bt-24panel__heading {
	margin: 0 !important;
	line-height: 0;
}

.bt-24panel__heading .bt-24panel__logo {
	display: block;
}

/* Visit section: Get directions + both phone numbers */
.bt-visit__actions {
	flex-wrap: wrap;
}

@media (max-width: 599px) {
	.bt-visit__actions .bt-btn--dark {
		grid-column: 1 / -1;
	}
}

/* Product pages on phones and tablets: title, delivery line and price first, then the photos,
   then the description and order options (the summary's parts join the page grid). */
@media (max-width: 899px) {
	.woocommerce div.product {
		row-gap: 0;
	}

	.woocommerce div.product div.summary {
		display: contents;
	}

	.woocommerce div.product .product_title,
	.woocommerce div.product .bt-product-mode,
	.woocommerce div.product div.summary > p.price {
		order: -2;
	}

	.woocommerce div.product .product_title {
		margin-bottom: 8px !important;
	}

	.woocommerce div.product div.summary > p.price {
		margin-bottom: 22px;
	}

	.woocommerce div.product div.images {
		order: -1;
		margin-bottom: 28px;
	}
}

@media (max-width: 899px) {
	.woocommerce div.product .woocommerce-product-details__short-description {
		margin-top: 32px;
	}
}

/* Visit section: both phone numbers on one line under the address */
.bt-visit address {
	margin-bottom: 12px;
}

.bt-visit__phones {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 30px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--bt-ink);
}

.bt-visit__phones .bt-icon {
	margin-top: 2px;
	color: var(--bt-rose);
}

.bt-visit__phones a {
	color: var(--bt-ink);
	font-weight: 700;
	text-decoration-color: rgba(194, 65, 111, .5);
	text-underline-offset: 3px;
}

.bt-visit__phones a:hover {
	color: var(--bt-rose);
}

.bt-24panel__title {
	text-wrap: balance;
}

/* Contact: four quick buttons (both numbers, email, directions) fit on one line on desktop */
@media (min-width: 900px) {
	.bt-contact__quick .bt-btn {
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* Product page column can't be stretched by the photo slider (it keeps its old pixel width
   for a moment when the screen is resized or rotated) */
@media (max-width: 899px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce div.product div.images {
		max-width: 100%;
		overflow: hidden;
	}
}

/* Phones: footer company details left-aligned like the rest of the footer */
@media (max-width: 599px) {
	.bt-footer__bottom {
		text-align: left;
	}
}

/* Menu: the full menu shows whenever it fits beside the logo, otherwise the burger (decided by the
   small script in header.php). Without JavaScript the fixed 1099px breakpoint above still applies. */
.bt-nav {
	flex: none;
}

.bt-nav__list {
	flex-wrap: nowrap;
	white-space: nowrap;
}

@media (max-width: 1099px) {
	.bt-js .bt-nav {
		display: block;
	}

	.bt-js .bt-header__toggle {
		display: none;
	}
}

.bt-js.bt-nav-collapsed .bt-nav {
	display: none;
}

.bt-js.bt-nav-collapsed .bt-header__toggle {
	display: flex;
}

/* Marketing opt-in: WooCommerce's "(optional)" isn't needed after "unsubscribe at any time" */
.bt-marketing-optin .optional {
	display: none;
}

/* Bouquet size cards sit on a full-width light beige band so the white cards stand out (heading and text above stay on white).
   The band is drawn with a wide shadow clipped to the grid's height, so the cards keep their normal width. */
.bt-sizes .bt-sizes__grid {
	padding-block: clamp(28px, 4vw, 56px) clamp(48px, 7vw, 96px);
	padding-inline: 0;
	background: var(--bt-cream);
	box-shadow: 0 0 0 100vmax var(--bt-cream);
	clip-path: inset(0 -100vmax);
}

.bt-sizes {
	padding-bottom: 0;
}

@media (max-width: 1023px) {
	.bt-sizes .bt-sizes__grid {
		margin-inline: 0;
	}
}

/* Collection time (morning / afternoon) on the collection bouquet, styled like the option fields above it */
.bt-slot {
	margin: 0 0 24px;
	padding: 0;
	border: 0;
}

.bt-slot__label {
	margin-bottom: 10px;
	padding: 0;
	font-family: var(--bt-sans);
	font-size: 18px;
	color: rgb(58, 54, 60);
}

.bt-slot__label abbr {
	color: var(--bt-rose);
	text-decoration: none;
}

.bt-slot__options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.bt-slot__option {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	font-size: 15px;
	background: #fff;
	border: 1px solid var(--bt-line);
	cursor: pointer;
	transition: border-color .3s;
}

.bt-slot__option:hover,
.bt-slot__option:has(input:checked) {
	border-color: var(--bt-rose);
}

.bt-slot__option input {
	accent-color: var(--bt-rose);
	margin: 0;
}

@media (max-width: 599px) {
	.bt-slot__options {
		grid-template-columns: 1fr;
	}
}
