/*
 * The Bridal Edit — page templates (v0.2).
 *
 * 1. Shared page parts       6. Card designer
 * 2. Forms & enquiries       7. The Little Edit & gifting
 * 3. Rent                    8. Product personalisation
 * 4. Stitched to order       9. Help pages
 * 5. Wedding cards          10. Responsive
 */

/* 1. Shared page parts ----------------------------------------------------- */
.tbe-admin-bar-note { background: #8E2F2F; color: #fff; text-align: center; font-size: 13px; padding: 8px var(--tbe-gutter); }
.tbe-admin-bar-note a { color: #fff; font-weight: 500; }

.tbe-new-badge { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--tbe-gold-deep); color: var(--tbe-ivory); font-family: var(--tbe-sans); font-size: 10px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; line-height: 1.5; vertical-align: 2px; }
.tbe-path__label .tbe-new-badge { vertical-align: 1px; }

.tbe-breadcrumb { font-size: 13px; letter-spacing: .08em; color: var(--tbe-muted); margin: 0 0 28px; }
.tbe-breadcrumb a { color: var(--tbe-muted); text-decoration: none; }
.tbe-breadcrumb a:hover { color: var(--tbe-ink); text-decoration: underline; }

.tbe-section--linen { background: var(--tbe-linen); }

.tbe-page-hero { padding-block: clamp(28px, 4vw, 48px) clamp(40px, 6vw, 72px); }
.tbe-page-hero--compact { padding-bottom: clamp(24px, 3vw, 40px); }
.tbe-page-hero__title { font-size: clamp(48px, 7vw, 88px); line-height: .98; margin-bottom: 20px; }
.tbe-page-hero__title--xl { font-size: clamp(52px, 7.4vw, 104px); }
.tbe-page-hero__title em { display: block; }
.tbe-page-hero__lead { font-size: 19px; max-width: 560px; color: var(--tbe-muted); margin-bottom: 32px; }
.tbe-page-hero--split { padding-bottom: var(--tbe-section); }

.tbe-split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.tbe-split__visual { min-width: 0; }
.tbe-split__copy .tbe-section__title { margin-bottom: 24px; }
.tbe-section--linen .woocommerce ul.products li.product a img { background-color: var(--tbe-bg); }
.tbe-split__copy > p:not(.tbe-kicker):not(.tbe-page-hero__lead) { color: inherit; }
.tbe-band .tbe-split__copy .tbe-promise__lead { margin-bottom: 28px; }

.tbe-arch-frame__inner--rose { background: var(--tbe-rose); }
.tbe-arch-frame__inner--rose .tbe-arch-frame__mark { color: var(--tbe-ivory); }

.tbe-trust { list-style: none; margin: 32px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: 14px; color: var(--tbe-muted); letter-spacing: .04em; }
.tbe-trust li::before { content: "✦"; color: var(--tbe-gold-deep); margin-right: 8px; }

.tbe-paths__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.tbe-path__title { font-size: 34px; }
.tbe-path--ivory .tbe-path__media { background: var(--tbe-blush); }
.tbe-path__media .tbe-path__invite { width: 54%; box-shadow: 0 18px 40px rgba(43, 26, 46, .18); }

.tbe-button--small { min-height: 46px; padding: 10px 22px; font-size: 12px; }

.tbe-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.tbe-tile { display: flex; flex-direction: column; gap: 6px; color: var(--tbe-ink); text-decoration: none; }
.tbe-tile__media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 5; margin-bottom: 14px; overflow: hidden; border-radius: var(--tbe-arch); background: var(--tbe-emerald); transition: transform .4s ease; }
.tbe-tile:hover .tbe-tile__media { transform: translateY(-4px); }
.tbe-tile--rose .tbe-tile__media { background: var(--tbe-rose); }
.tbe-tile--plum .tbe-tile__media { background: var(--tbe-plum); }
.tbe-tile--sand .tbe-tile__media { background: var(--tbe-sand); }
.tbe-tile--oat .tbe-tile__media { background: var(--tbe-cream); }
.tbe-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tbe-tile__mark { width: 26%; color: var(--tbe-gold); }
.tbe-tile--rose .tbe-tile__mark, .tbe-tile--plum .tbe-tile__mark { color: var(--tbe-ivory); }
.tbe-tile--sand .tbe-tile__mark { color: var(--tbe-gold-ink); }
.tbe-tile--oat .tbe-tile__mark { color: var(--tbe-sage); }
.tbe-tile__tag { position: absolute; top: 14px; left: 14px; z-index: 2; padding: 6px 12px; border-radius: 999px; background: #DCE4D7; color: var(--tbe-cocoa); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; line-height: 1.3; }
.tbe-tile__title { font-family: var(--tbe-serif); font-size: 30px; font-weight: 500; line-height: 1.05; }
.tbe-tile__note { color: var(--tbe-muted); font-size: 16px; }
.tbe-tile__price { font-size: 14px; letter-spacing: .04em; color: var(--tbe-ink); margin-top: 2px; }

.tbe-steps__list--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.tbe-empty { text-align: center; padding: 56px 24px; border: 1px dashed var(--tbe-line); border-radius: 24px; }
.tbe-empty__mark { width: 44px; margin: 0 auto 18px; }
.tbe-empty__title { font-family: var(--tbe-serif); font-size: 32px; margin-bottom: 8px; }

.tbe-notice { padding: 14px 18px; border-radius: 12px; background: var(--tbe-linen); font-size: 15px; }

.tbe-contact-link { display: inline-flex; align-items: center; gap: 10px; color: var(--tbe-ink); font-weight: 500; text-decoration: none; }
.tbe-contact-link .tbe-icon { color: var(--tbe-emerald); }
.tbe-contact-link:hover { text-decoration: underline; }

/* Invitation card (drawn in CSS; sizes follow the card's own width) */
.tbe-invite {
	--inv-bg: #FFFDF9; --inv-ink: var(--tbe-aubergine); --inv-acc: var(--tbe-gold-deep); --inv-sub: var(--tbe-plum); --inv-border: 1px solid var(--tbe-gold);
	container-type: inline-size;
	position: relative; width: 100%; aspect-ratio: 5 / 7; padding: 4.5%;
	background: var(--inv-bg); color: var(--inv-ink);
	border-radius: 3px; box-shadow: 0 14px 34px rgba(43, 26, 46, .16);
	transition: background-color .3s ease, color .3s ease;
}
.tbe-invite--arch { --inv-bg: var(--tbe-emerald); --inv-ink: var(--tbe-ivory); --inv-acc: var(--tbe-gold); --inv-sub: var(--tbe-sand); --inv-border: 0; }
.tbe-invite--rose { --inv-bg: #F1DDD6; --inv-border: 0; }
.tbe-invite--midnight { --inv-bg: var(--tbe-aubergine); --inv-ink: var(--tbe-ivory); --inv-acc: var(--tbe-gold); --inv-sub: var(--tbe-sand); --inv-border: 1px solid var(--tbe-plum); }
.tbe-invite__inner { position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.4cqi; padding: 6cqi; border: var(--inv-border); text-align: center; overflow: hidden; }
.tbe-invite p { margin: 0; }
.tbe-invite [hidden] { display: none !important; }
.tbe-invite__arch, .tbe-invite__flora { position: absolute; pointer-events: none; display: none; color: var(--inv-acc); }
.tbe-invite__arch { inset: 5cqi 7cqi 0; width: auto; height: auto; max-width: none; }
.tbe-invite--arch .tbe-invite__arch { display: block; width: calc(100% - 14cqi); height: calc(100% - 5cqi); }
.tbe-invite__flora { left: 8%; width: 84%; height: auto; color: var(--tbe-rose-deep); opacity: .75; }
.tbe-invite__flora--top { top: 3cqi; }
.tbe-invite__flora--bottom { bottom: 3cqi; }
.tbe-invite--rose .tbe-invite__flora { display: block; }
.tbe-invite__bismillah { font-family: "Amiri", var(--tbe-serif); font-size: 7.2cqi; line-height: 1.5; color: var(--inv-acc); margin-bottom: 1cqi !important; }
.tbe-invite__lead, .tbe-invite__event { font-family: var(--tbe-sans); font-size: 2.9cqi; letter-spacing: .14em; text-transform: uppercase; line-height: 1.6; color: var(--inv-sub); }
.tbe-invite__name { font-family: var(--tbe-serif); font-style: italic; font-size: 12.5cqi; line-height: 1.02; color: var(--inv-ink); overflow-wrap: anywhere; }
.tbe-invite--midnight .tbe-invite__name { font-style: normal; font-size: 10cqi; letter-spacing: .08em; text-transform: uppercase; }
.tbe-invite__amp { font-family: var(--tbe-serif); font-style: italic; font-size: 6cqi; line-height: 1; color: var(--inv-acc); }
.tbe-invite__rule { display: block; width: 12cqi; height: 1px; margin: 1.6cqi 0; background: var(--inv-acc); }
.tbe-invite__venue { font-family: var(--tbe-serif); font-style: italic; font-size: 4.2cqi; color: var(--inv-sub); }

.tbe-card-stack { position: relative; width: 100%; max-width: 540px; margin-inline: auto; aspect-ratio: 1 / 1.02; }
.tbe-card-stack .tbe-invite { position: absolute; width: 56%; }
.tbe-card-stack__back { left: 0; top: 7%; transform: rotate(-7deg); }
.tbe-card-stack__front { left: 34%; top: 0; transform: rotate(3deg); z-index: 2; box-shadow: 0 30px 60px rgba(43, 26, 46, .26); }
.tbe-save-date { position: absolute; z-index: 3; left: 12%; bottom: 0; width: 44%; aspect-ratio: 7 / 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; background: var(--tbe-blush); border-radius: 3px; box-shadow: 0 16px 36px rgba(43, 26, 46, .18); transform: rotate(-3deg); container-type: inline-size; }
.tbe-save-date__title { font-family: var(--tbe-serif); font-size: 13cqi; line-height: 1; }
.tbe-save-date__title em { font-style: italic; color: var(--tbe-gold-deep); }
.tbe-save-date__date { font-size: 4.4cqi; letter-spacing: .24em; color: var(--tbe-plum); }

/* 2. Forms & enquiries ----------------------------------------------------- */
.tbe-card-panel { padding: clamp(24px, 4vw, 44px); border: 1px solid var(--tbe-line); border-radius: 24px; background: #FFFDF9; box-shadow: 0 20px 50px rgba(43, 26, 46, .06); }
.tbe-card-panel__title { font-size: 34px; margin-bottom: 24px; }

.tbe-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; margin-bottom: 24px; }
.tbe-field { margin: 0; min-width: 0; border: 0; padding: 0; }
.tbe-field--wide { grid-column: 1 / -1; }
.tbe-field__label { display: block; margin-bottom: 8px; padding: 0; font-size: 14px; font-weight: 500; letter-spacing: .04em; color: var(--tbe-ink); }
.tbe-req { color: var(--tbe-rose-deep); }
.tbe-input { width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid var(--tbe-line); border-radius: var(--tbe-radius); background: #FFFDF9; font: inherit; font-size: 16px; color: var(--tbe-ink); }
textarea.tbe-input { min-height: 110px; resize: vertical; }
select.tbe-input { appearance: none; padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232B1A2E' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; }
.tbe-input:focus { outline: 2px solid var(--tbe-gold-deep); outline-offset: 1px; border-color: var(--tbe-gold-deep); }
.tbe-input::placeholder { color: #8A7C86; }

.tbe-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.tbe-pill { position: relative; cursor: pointer; }
.tbe-pill input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.tbe-pill span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--tbe-ink); border-radius: 999px; font-size: 15px; letter-spacing: .04em; color: var(--tbe-ink); background: transparent; transition: background-color .15s ease, color .15s ease; }
.tbe-pill input:checked + span { background: var(--tbe-ink); color: var(--tbe-bg); }
.tbe-pill input:focus-visible + span { outline: 2px solid var(--tbe-gold-deep); outline-offset: 3px; }
.tbe-pill:hover span { background: var(--tbe-linen); }
.tbe-pill:hover input:checked + span { background: var(--tbe-plum); }
.tbe-field--checks .tbe-pill span { padding-inline: 16px; }
.tbe-field--checks .tbe-pill input:checked + span::before { content: "✓"; margin-right: 8px; }

.tbe-check { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 16px; line-height: 1.4; }
.tbe-check input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--tbe-aubergine); }

.tbe-form__note { margin: 14px 0 0; font-size: 14px; color: var(--tbe-muted); }
.tbe-form-error { padding: 14px 18px; margin-bottom: 20px; border-radius: 12px; background: #F5E1DC; color: #6E1F1F; font-size: 15px; }
.tbe-form__divider { display: flex; align-items: center; gap: 16px; margin: 8px 0 22px; font-family: var(--tbe-serif); font-style: italic; font-size: 22px; color: var(--tbe-muted); }
.tbe-form__divider::after { content: ""; flex: 1; height: 1px; background: var(--tbe-line); }
.tbe-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.tbe-thanks { text-align: center; padding: 24px 8px; }
.tbe-thanks__mark { width: 40px; margin: 0 auto 18px; }
.tbe-thanks__title { font-size: 40px; }
.tbe-thanks p { color: var(--tbe-muted); max-width: 440px; margin: 0 auto 24px; }

.tbe-enquire__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 88px); align-items: start; }
.tbe-enquire__copy > p:not(.tbe-kicker) { font-size: 19px; color: var(--tbe-muted); margin: 20px 0 28px; max-width: 460px; }
.tbe-enquire__copy .tbe-page-hero__lead { margin-top: 0; }

.tbe-contact-list { list-style: none; margin: 8px 0 32px; padding: 0; display: grid; gap: 4px; }
.tbe-contact-list a { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--tbe-line); color: var(--tbe-ink); text-decoration: none; }
.tbe-contact-list a:hover strong { text-decoration: underline; }
.tbe-contact-list .tbe-icon { color: var(--tbe-gold-deep); }
.tbe-contact-list strong { font-weight: 500; margin-left: 6px; }
.tbe-visit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.tbe-visit__title { font-family: var(--tbe-sans); font-size: 13px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: var(--tbe-muted); margin-bottom: 10px; }

/* 3. Rent ------------------------------------------------------------------ */
.tbe-rent__browse { padding-bottom: clamp(48px, 6vw, 80px); }
.tbe-filter { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 32px; padding: 0 0 28px; margin-bottom: 24px; border-bottom: 1px solid var(--tbe-line); }
.tbe-filter__occasions { border: 0; margin: 0; padding: 0; min-width: 0; max-width: 100%; }
.tbe-filter__tools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 20px; }
.tbe-filter__tools p { margin: 0; }
.tbe-filter__tools label:not(.tbe-check) { display: block; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--tbe-muted); margin-bottom: 6px; }
.tbe-filter__date .tbe-input { width: 190px; min-height: 46px; border-radius: 999px; padding-block: 8px; }
.tbe-filter__sort .tbe-input { width: 210px; min-height: 46px; border-radius: 999px; padding-block: 8px; }
.tbe-filter__free { min-height: 46px; align-items: center; font-size: 15px; }
.js .tbe-filter__submit { display: none; }
.tbe-rent__count { font-size: 15px; color: var(--tbe-muted); margin-bottom: 32px; }
.tbe-rent__count strong { font-weight: 500; color: var(--tbe-emerald); }

.tbe-avail { display: flex; align-items: center; gap: 8px; margin: -6px 0 14px; font-size: 14px; }
.tbe-avail::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
.tbe-avail--free { color: var(--tbe-emerald); }
.tbe-avail--free::before { background: var(--tbe-emerald); }
.tbe-avail--reserved { color: var(--tbe-rose-deep); }
.tbe-avail--reserved::before { border: 1.5px solid var(--tbe-rose-deep); }

.tbe-pagination { margin-top: 56px; display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.tbe-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; border-radius: 999px; color: var(--tbe-ink); text-decoration: none; }
.tbe-pagination .page-numbers.current { background: var(--tbe-ink); color: var(--tbe-ivory); }
.tbe-pagination a.page-numbers:hover { background: var(--tbe-linen); }

.tbe-assure { background: var(--tbe-linen); }
.tbe-assure__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.tbe-assure__grid li { border-top: 1px solid var(--tbe-line); padding-top: 24px; }
.tbe-assure__grid .tbe-icon { width: 30px; height: 30px; color: var(--tbe-gold-deep); margin-bottom: 14px; }
.tbe-assure__title { font-size: 30px; margin-bottom: 8px; }
.tbe-assure__grid p { color: var(--tbe-muted); margin: 0; }
.tbe-help-line { margin: 48px 0 0; text-align: center; font-size: 17px; }

/* 4. Stitched to order ----------------------------------------------------- */
.tbe-bedding__media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 5 / 4; overflow: hidden; border-radius: 24px; background: #183D33; }
.tbe-bedding__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tbe-bedding__pillow { position: relative; display: flex; align-items: center; justify-content: center; width: 70%; aspect-ratio: 3 / 2; border-radius: 22% / 34%; background: var(--tbe-ivory); box-shadow: 0 24px 50px rgba(0, 0, 0, .3); }
.tbe-bedding__pillow::before { content: ""; position: absolute; inset: 9%; border: 1.5px dashed var(--tbe-gold); border-radius: 18% / 30%; }
.tbe-bedding__pillow span { font-family: var(--tbe-serif); font-style: italic; font-size: clamp(36px, 5vw, 64px); color: var(--tbe-gold-deep); }
.tbe-bedding__price { font-size: 17px; color: var(--tbe-sand); margin-bottom: 28px; }
.tbe-bedding .tbe-split { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }

/* 5. Wedding cards --------------------------------------------------------- */
.tbe-collections { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.tbe-collection { display: flex; flex-direction: column; gap: 6px; color: var(--tbe-ink); text-decoration: none; }
.tbe-collection__card { display: flex; align-items: center; justify-content: center; padding: 14% 18%; margin-bottom: 14px; border-radius: 18px; background: var(--tbe-ivory); transition: transform .3s ease; }
.tbe-collection:hover .tbe-collection__card { transform: translateY(-4px); }
.tbe-collection__card .tbe-invite { box-shadow: 0 18px 36px rgba(43, 26, 46, .2); }
.tbe-collection__title { font-family: var(--tbe-serif); font-size: 30px; font-weight: 500; line-height: 1.05; }
.tbe-collection__note { color: var(--tbe-muted); font-size: 16px; }
.tbe-collection__price { font-size: 14px; color: var(--tbe-ink); }

.tbe-formats__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.tbe-format { padding: clamp(28px, 4vw, 52px); border-radius: 24px; }
.tbe-format--printed { background: #FFFDF9; border: 1px solid var(--tbe-gold); }
.tbe-format--digital { background: var(--tbe-emerald); color: var(--tbe-ivory); }
.tbe-format--digital .tbe-kicker { color: var(--tbe-sand); }
.tbe-format--digital h2 em { color: var(--tbe-sand); }
.tbe-format__title { font-size: clamp(40px, 4.6vw, 60px); margin-bottom: 24px; }
.tbe-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; font-size: 17px; }
.tbe-ticks li { display: flex; gap: 12px; }
.tbe-ticks li::before { content: "✦"; color: var(--tbe-gold-deep); }
.tbe-format--digital .tbe-ticks li::before { color: var(--tbe-gold); }

.tbe-wording-card { max-width: 440px; margin-inline: auto; padding: clamp(28px, 5vw, 56px) clamp(24px, 4vw, 48px); background: #FFFDF9; border: 1px solid var(--tbe-gold); outline: 1px solid var(--tbe-gold); outline-offset: -12px; box-shadow: 0 30px 70px rgba(43, 26, 46, .16); text-align: center; font-family: var(--tbe-serif); font-size: 19px; line-height: 1.5; color: var(--tbe-plum); }
.tbe-wording-card p { margin: 0 0 12px; }
.tbe-wording-card__ar { font-family: "Amiri", var(--tbe-serif); font-size: 30px; color: var(--tbe-gold-deep); }
.tbe-wording-card__small { font-family: var(--tbe-sans); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.tbe-wording-card__name { font-style: italic; font-size: 46px; line-height: 1; color: var(--tbe-aubergine); margin: 6px 0 !important; }
.tbe-wording-card__with { font-style: italic; color: var(--tbe-gold-deep); margin: 0 !important; }
.tbe-defs { margin: 32px 0 0; display: grid; gap: 0; }
.tbe-defs div { padding: 18px 0; border-top: 1px solid var(--tbe-line); }
.tbe-defs div:last-child { border-bottom: 1px solid var(--tbe-line); }
.tbe-defs dt { font-family: var(--tbe-serif); font-size: 26px; font-weight: 500; line-height: 1.1; }
.tbe-defs dd { margin: 4px 0 0; color: var(--tbe-muted); }

.tbe-set { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.tbe-set__item { display: flex; flex-direction: column; gap: 4px; }
.tbe-set__stage { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; margin-bottom: 12px; border-radius: 18px; background: var(--tbe-ivory); }
.tbe-set__shape { display: block; position: relative; box-shadow: 0 12px 26px rgba(43, 26, 46, .16); border-radius: 3px; }
.tbe-set__shape--portrait { width: 42%; aspect-ratio: 5 / 7; }
.tbe-set__shape--landscape { width: 58%; aspect-ratio: 7 / 5; }
.tbe-set__shape--blush { background: var(--tbe-blush); }
.tbe-set__shape--ivory { background: #FFFDF9; border: 1px solid var(--tbe-gold); }
.tbe-set__shape--emerald { background: var(--tbe-emerald); }
.tbe-set__shape--sand { background: var(--tbe-sand); }
.tbe-set__shape--envelope { width: 60%; aspect-ratio: 7 / 5; background: var(--tbe-aubergine); overflow: hidden; }
.tbe-set__shape--envelope::before { content: ""; position: absolute; inset: 0 0 38% 0; background: var(--tbe-plum); clip-path: polygon(0 0, 100% 0, 50% 100%); }
.tbe-set__shape--envelope::after { content: ""; position: absolute; left: 50%; top: 62%; width: 22%; aspect-ratio: 1; border-radius: 50%; background: var(--tbe-gold); transform: translate(-50%, -50%); box-shadow: inset 0 0 0 3px var(--tbe-gold-deep); }
.tbe-set__name { font-family: var(--tbe-serif); font-size: 24px; font-weight: 500; line-height: 1.1; }
.tbe-set__note { font-size: 15px; color: var(--tbe-muted); }

/* 6. Card designer --------------------------------------------------------- */
.tbe-studio__body { padding-bottom: var(--tbe-section); }
.tbe-studio__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.tbe-studio__preview { position: sticky; top: 110px; }
.admin-bar .tbe-studio__preview { top: 142px; }
.tbe-studio__stage { display: flex; align-items: center; justify-content: center; padding: clamp(28px, 6vw, 72px); border-radius: 28px; background: var(--tbe-linen); }
.tbe-studio__stage .tbe-invite { max-width: 420px; box-shadow: 0 30px 70px rgba(43, 26, 46, .28); }
.tbe-studio__caption { margin: 14px 0 0; text-align: center; font-size: 14px; color: var(--tbe-muted); }
.tbe-studio__form > .tbe-field { margin-bottom: 22px; }
.tbe-designs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tbe-design-option { position: relative; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 14px; border: 1px solid var(--tbe-line); border-radius: 12px; background: #FFFDF9; cursor: pointer; font-size: 15px; }
.tbe-design-option input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.tbe-design-option:has(input:checked) { border: 2px solid var(--tbe-ink); padding-inline: 13px; }
.tbe-design-option:has(input:focus-visible) { outline: 2px solid var(--tbe-gold-deep); outline-offset: 2px; }
.tbe-design-option__swatch { flex: none; width: 24px; height: 32px; border-radius: 3px; border: 1px solid var(--tbe-gold); }
.tbe-design-option__swatch--gold { background: #FFFDF9; border-color: var(--tbe-gold-deep); }
.tbe-design-option__swatch--arch { background: var(--tbe-emerald); }
.tbe-design-option__swatch--rose { background: #F1DDD6; border-color: var(--tbe-gold-deep); }
.tbe-design-option__swatch--midnight { background: var(--tbe-aubergine); }
.tbe-qty__control { display: inline-flex; align-items: center; gap: 8px; }
.tbe-qty__control .tbe-input { width: 110px; text-align: center; -moz-appearance: textfield; }
.tbe-qty__control .tbe-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.tbe-qty__btn { width: 46px; height: 46px; border: 1px solid var(--tbe-ink); border-radius: 50%; background: transparent; color: var(--tbe-ink); font-size: 22px; line-height: 1; cursor: pointer; }
.tbe-qty__btn:hover { background: var(--tbe-ink); color: var(--tbe-ivory); }
.tbe-qty[hidden] { display: none; }
.tbe-studio__summary { margin: 0 0 18px; padding: 14px 18px; border-radius: 12px; background: var(--tbe-linen); font-size: 15px; }
.tbe-studio__summary:empty { display: none; }

/* 7. The Little Edit & gifting -------------------------------------------- */
.tbe-little-page .tbe-little__mark { background: var(--tbe-oat); }
.tbe-little-hero__photo { overflow: hidden; border-radius: 50%; aspect-ratio: 1; max-width: 480px; margin-inline: auto; }
.tbe-little-hero__img { width: 100%; height: 100%; object-fit: cover; }
.tbe-safe { padding-block: clamp(40px, 5vw, 64px); }
.tbe-safe__inner { display: flex; align-items: center; gap: 28px; padding: clamp(24px, 4vw, 40px); border-radius: 24px; background: #EEF1EA; }
.tbe-safe__mark { flex: none; width: 56px; color: var(--tbe-sage); }
.tbe-safe__title { font-size: 34px; margin-bottom: 6px; }
.tbe-safe p { margin: 0; font-size: 17px; }

.tbe-pillow { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 100%; max-width: 480px; margin-inline: auto; aspect-ratio: 3 / 2; border-radius: 22% / 34%; background: var(--tbe-cream); box-shadow: 0 30px 60px rgba(74, 58, 51, .16); }
.tbe-pillow__stitch { position: absolute; inset: 9%; border: 1.5px dashed #D9C7B4; border-radius: 18% / 30%; }
.tbe-pillow__name { position: relative; max-width: 80%; font-family: var(--tbe-serif); font-style: italic; font-size: clamp(40px, 6vw, 72px); line-height: 1; color: var(--tbe-sage-deep); overflow-wrap: anywhere; text-align: center; }
.tbe-pillow__mark { position: relative; width: 26px; color: #C98A7E; }
.tbe-embroider .tbe-field { max-width: 340px; }
.tbe-embroider__price { margin-top: 14px; font-size: 15px; color: var(--tbe-muted); }

.tbe-gifts__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.tbe-gift-card { display: flex; flex-direction: column; align-items: center; justify-content: center; width: min(100%, 320px); aspect-ratio: 74 / 105; margin-inline: auto; padding: 32px 24px; background: #F3DDD7; color: var(--tbe-cocoa); text-align: center; border-radius: 4px; box-shadow: 0 30px 60px rgba(74, 58, 51, .2); transform: rotate(-4deg); }
.tbe-gift-card__mark { width: 30%; color: var(--tbe-sage-deep); margin-bottom: 22px; }
.tbe-gift-card__title { font-family: var(--tbe-serif); font-style: italic; font-size: 40px; line-height: 1; }
.tbe-gift-card__sub { margin-top: 8px; font-size: 15px; color: #6B5A52; }
.tbe-gift-card__brand { margin-top: 32px; font-family: var(--tbe-serif); font-size: 20px; }
.tbe-gift-ways { list-style: none; margin: 0; padding: 0; }
.tbe-gift-ways li { padding: 24px 0; border-top: 1px solid var(--tbe-line); }
.tbe-gift-ways li:last-child { border-bottom: 1px solid var(--tbe-line); }
.tbe-gift-ways h3 { font-size: 30px; margin-bottom: 6px; }
.tbe-gift-ways p { color: var(--tbe-muted); margin-bottom: 10px; }

/* 8. Product personalisation ---------------------------------------------- */
.tbe-personalise { flex: 1 1 100%; display: grid; gap: 18px; padding: 22px; margin-bottom: 4px; border-radius: 16px; background: var(--tbe-linen); }
.tbe-personalise p { margin: 0; }
.tbe-personalise label:not(.tbe-check) { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 500; letter-spacing: .04em; }
.tbe-personalise__price { font-weight: 400; color: var(--tbe-muted); }
.tbe-personalise__optional { font-weight: 400; font-size: 13px; color: var(--tbe-muted); }
.tbe-personalise__hint { display: block; margin-top: 6px; font-size: 13px; color: var(--tbe-muted); }
.tbe-personalise__reveal { margin-top: 14px !important; }
.js .tbe-personalise__reveal[hidden] { display: none; }

/* 9. Help pages ------------------------------------------------------------ */
.entry-content .wp-block-details { border-top: 1px solid var(--tbe-line); padding: 0; }
.entry-content .wp-block-details:last-of-type { border-bottom: 1px solid var(--tbe-line); }
.entry-content .wp-block-details summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; cursor: pointer; list-style: none; font-family: var(--tbe-serif); font-size: 24px; font-weight: 500; line-height: 1.2; }
.entry-content .wp-block-details summary::-webkit-details-marker { display: none; }
.entry-content .wp-block-details summary::after { content: "+"; flex: none; font-family: var(--tbe-sans); font-size: 26px; font-weight: 300; color: var(--tbe-gold-deep); transition: transform .2s ease; }
.entry-content .wp-block-details[open] summary::after { transform: rotate(45deg); }
.entry-content .wp-block-details > p { margin: 0 0 20px; color: var(--tbe-muted); }
.entry-content .wp-block-details + h2 { margin-top: 56px; }
.entry-content ul { padding-left: 1.2em; }
.tbe-ask { margin-top: 64px; padding: clamp(24px, 4vw, 40px); border-radius: 24px; background: var(--tbe-linen); }
.tbe-ask__title { font-family: var(--tbe-serif); font-size: 32px; margin-bottom: 6px; }

/* 10. Responsive ----------------------------------------------------------- */
@media (max-width: 1100px) {
	.tbe-paths__grid, .tbe-tiles, .tbe-collections { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tbe-set { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tbe-filter { flex-direction: column; align-items: stretch; }
}

@media (max-width: 959px) {
	.tbe-split, .tbe-bedding .tbe-split, .tbe-enquire__grid, .tbe-studio__grid, .tbe-gifts__grid, .tbe-formats__grid { grid-template-columns: 1fr; }
	.tbe-paths__grid { gap: 40px 16px; }
	.tbe-page-hero--split .tbe-split__visual { order: -1; max-width: 440px; width: 100%; justify-self: center; }
	.tbe-cards .tbe-page-hero--split .tbe-split__visual, .tbe-home-cards .tbe-split__visual { max-width: 400px; }
	.tbe-home-cards .tbe-split__visual, .tbe-embroider .tbe-split__visual { justify-self: center; width: 100%; }
	.tbe-studio__preview { position: static; }
	.tbe-studio__stage { padding: 28px; }
	.tbe-studio__stage .tbe-invite { max-width: 300px; }
	.tbe-assure__grid, .tbe-steps__list--three { grid-template-columns: 1fr; gap: 24px; }
	.tbe-gift-card { width: min(70%, 260px); }
	.tbe-card-stack { width: 86%; }
}

@media (max-width: 600px) {
	.tbe-paths__grid { grid-template-columns: 1fr; }
	.tbe-path__media { max-height: 460px; }
	.tbe-tiles, .tbe-collections { gap: 32px 14px; }
	.tbe-tile__title, .tbe-collection__title { font-size: 23px; }
	.tbe-tile__note, .tbe-collection__note { font-size: 14px; }
	.tbe-tile__tag { top: 10px; left: 10px; font-size: 10px; padding: 5px 9px; }
	.tbe-set { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
	.tbe-set__name { font-size: 20px; }
	.tbe-form__grid { grid-template-columns: 1fr; }
	.tbe-designs { grid-template-columns: 1fr 1fr; }
	.tbe-design-option { font-size: 14px; gap: 8px; padding-inline: 10px; }
	.tbe-filter__tools { display: grid; grid-template-columns: 1fr 1fr; }
	.tbe-filter__date .tbe-input, .tbe-filter__sort .tbe-input { width: 100%; }
	.tbe-filter__free { grid-column: 1 / -1; order: 3; }
	.tbe-filter__occasions .tbe-pills { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--tbe-gutter)); padding: 2px var(--tbe-gutter) 6px; scrollbar-width: none; }
	.tbe-pill span { white-space: nowrap; }
	.tbe-safe__inner { flex-direction: column; align-items: flex-start; gap: 16px; }
	.tbe-visit { grid-template-columns: 1fr; }
	.tbe-trust { gap: 8px 18px; font-size: 13px; }
	.tbe-card-panel { border-radius: 18px; }
	.tbe-thanks__title { font-size: 32px; }
}
