:root {
    --ivory: #faf7f2;
    --cream: #f4ede4;
    --gold: #c6a15b;
    --light-gold: #dcc28d;
    --espresso: #2d1f1a;
    --black: #181513;
    --white: #fff;
    --error: #b42318;
    --success: #247a45;
    --button-bg:#2d1f1a;
    --button-text:#ffffff;
    --button-border:#2d1f1a;
    --button-secondary-bg:transparent;
    --button-secondary-text:#2d1f1a;
    --badge-bg:#ffffff;
    --badge-text:#2d1f1a;
    --serif: 'Playfair Display', Georgia, serif;
    --sans: Inter, Arial, sans-serif;
}

/* Admin-selectable customer storefront themes. */
body.theme-rose { --ivory:#fff7f7;--cream:#f8e8ea;--gold:#b87373;--light-gold:#d9a7a7;--espresso:#5d2836;--black:#32151e;--error:#a61b35;--success:#35745a;--button-bg:#8f3f56;--button-text:#fff8f8;--button-border:#8f3f56;--button-secondary-text:#5d2836;--badge-bg:#fff7f7;--badge-text:#7d3448; }
body.theme-midnight { --ivory:#111318;--cream:#1b1e25;--gold:#c9a85d;--light-gold:#e1c982;--espresso:#f4efe6;--black:#090a0d;--white:#171a20;--error:#ff8a8a;--success:#7ed7a5;--button-bg:#c9a85d;--button-text:#111318;--button-border:#c9a85d;--button-secondary-text:#f4efe6;--badge-bg:#c9a85d;--badge-text:#111318; }
body.theme-rose .site-header { background:rgba(255,247,247,.96); }
body.theme-midnight .site-header { background:rgba(17,19,24,.96);border-bottom-color:rgba(201,168,93,.45);box-shadow:0 10px 35px rgba(0,0,0,.35); }
body.theme-midnight .mega-panel,body.theme-midnight .header-search form,body.theme-midnight .product-section:nth-of-type(even),body.theme-midnight .review-section,body.theme-midnight .account-form,body.theme-midnight .account-cards>a,body.theme-midnight .wishlist-grid article { background:#171a20;color:#f4efe6; }
body.theme-midnight .hero::after { background:linear-gradient(90deg,rgba(17,19,24,.94),rgba(17,19,24,.2) 65%,transparent); }
body.theme-midnight .product-media,body.theme-midnight .catalogue-media,body.theme-midnight .category-visual { background:#222630; }
body.theme-midnight .category-card,body.theme-midnight .review-grid figure { background:#171a20;border-color:rgba(201,168,93,.28); }
body.theme-midnight .lead,body.theme-midnight .product-card p,body.theme-midnight .catalogue-hero>p:last-child,body.theme-midnight .footer-note { color:#bbb4aa; }
body.theme-champagne .button { letter-spacing:.04em; }
body.theme-rose .site-header,body.theme-rose .category-card,body.theme-rose .product-media,body.theme-rose .catalogue-media { border-radius:0 0 18px 18px; }
body.theme-rose .button { border-radius:999px;box-shadow:0 8px 24px rgba(93,40,54,.14); }
body.theme-rose .hero h1,body.theme-rose .section h2 { font-style:italic; }
body.theme-midnight .wordmark { color:var(--light-gold); }
body.theme-midnight .button { text-transform:uppercase;letter-spacing:.1em; }
body.theme-midnight .section-heading h2,body.theme-midnight .hero h1 { letter-spacing:-.045em; }
body.theme-midnight .site-navigation { letter-spacing:.16em; }

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--ivory); color: var(--espresso); font-family: var(--sans); line-height: 1.6; }
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { display: block; max-width: 100%; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: var(--black); color: #fff; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.eyebrow { margin: 0; text-transform: uppercase; letter-spacing: .18em; font-size: .7rem; font-weight: 600; color: #876a35; }
.wordmark { font: 600 1.9rem/1 var(--serif); letter-spacing: .28em; }
.logo-link { display: inline-flex; align-items: center; width: max-content; padding: .35rem .6rem; white-space: nowrap; background: #faf7f2; border: 1px solid rgba(198,161,91,.42); border-radius: 6px; }
.logo-link img { display: block; width: clamp(112px, 11vw, 155px); height: auto; }

.announcement { display: flex; justify-content: center; gap: .8rem; background: var(--espresso); color: #fff; padding: .5rem 1rem; text-align: center; font-size: .74rem; letter-spacing: .06em; }
.announcement a { border-bottom: 1px solid currentColor; font-weight: 600; }
.site-header { position: sticky; top: 0; z-index: 30; display: grid; grid-template-columns: 1fr auto 1fr; grid-template-areas: "menu logo actions" "nav nav nav"; align-items: center; min-height: 158px; padding: 0 clamp(1rem, 3vw, 3rem); background: rgba(250, 247, 242, .97); border-bottom: 1px solid rgba(198, 161, 91, .35); box-shadow: 0 8px 30px rgba(45,31,26,.035); backdrop-filter: blur(14px); }
.logo-link { grid-area: logo; justify-self: center; }
.site-navigation { grid-area: nav; display: flex; align-items: center; justify-content: center; align-self: end; gap: clamp(1rem, 2.25vw, 2.4rem); height: 48px; padding: 0 1rem; border-top: 1px solid rgba(198,161,91,.16); font-size: .72rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.site-navigation > a, .mega-menu > summary { min-height: 44px; display: flex; align-items: center; white-space: nowrap; }
.site-navigation > a:hover, .site-navigation > a:focus-visible, .mega-menu > summary:hover { color: #876a35; }
.header-mark { color: var(--gold); font-size: 1.2rem; }
.header-actions { grid-area: actions; justify-self: end; display: flex; align-items: center; gap: 1.25rem; }
.header-actions svg { width: 24px; height: 24px; flex: 0 0 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.customer-actions { display: flex; align-items: center; gap: 1.15rem; font-size: .82rem; font-weight: 500; white-space: nowrap; }
.customer-actions>a { position: relative; display: inline-flex; align-items: center; gap: .45rem; min-height: 48px; }
.customer-actions .action-count { position: absolute; top: 0; right: -10px; display: inline-grid; min-width: 19px; height: 19px; padding: 0 5px; place-items: center; border-radius: 20px; background: var(--espresso); color: #fff; font-size: .64rem; }
.store-flash { padding: .75rem 1rem; text-align: center; background: #edf8f1; color: var(--success); border-bottom: 1px solid #b9dac5; }
.menu-toggle { grid-area: menu; display: none; width: 52px; height: 44px; border: 0; background: transparent; padding: 8px 8px 8px 0; }
.menu-toggle span { display: block; height: 1px; margin: 6px 0; background: currentColor; transition: transform .2s, opacity .2s; }
.menu-toggle small { position: absolute; width: 1px; height: 1px; overflow: hidden; }
.mega-menu { position: static; }
.mega-menu summary { cursor: pointer; list-style: none; }
.mega-menu summary::-webkit-details-marker { display: none; }
.mega-menu summary::after { content: '⌄'; margin-left: .35rem; }
.mega-menu[open] summary::after { transform: rotate(180deg); }
.mega-panel { position: absolute; left: 0; right: 0; top: 100%; display: grid; grid-template-columns: minmax(210px, .7fr) 2fr; gap: 3rem; padding: 2.2rem clamp(2rem, 8vw, 8rem); background: #fff; border: 1px solid #e4d7c7; box-shadow: 0 20px 35px rgba(45, 31, 26, .08); }
.mega-feature { display: inline-block; margin-top: .7rem; font: 500 1.6rem var(--serif); }
.mega-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem 2rem; }
.mega-links a { padding: .3rem 0; border-bottom: 1px solid #eee6de; }

.hero { position: relative; min-height: min(760px, 78vh); display: grid; align-items: center; overflow: hidden; background: var(--cream); }
.hero picture, .hero picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero picture img { object-fit: cover; object-position: center; }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(250, 247, 242, .94), rgba(250, 247, 242, .22) 65%, transparent); }
.hero-copy { position: relative; z-index: 1; width: min(650px, 56vw); padding: clamp(3rem, 8vw, 9rem); }
.hero-position-centre .hero-copy { margin: auto; text-align: center; }
.hero-position-right .hero-copy { margin-left: auto; text-align: right; }
.hero h1, .hero h2, .section h2, .editorial h2, .newsletter h2, .login-card h1 { font: 500 clamp(2.7rem, 5.5vw, 5.7rem)/1.02 var(--serif); margin: .6rem 0 1.4rem; }
.hero-copy > p:not(.eyebrow) { max-width: 36rem; font-size: 1.05rem; }
.hero-position-right .hero-copy > p, .hero-position-centre .hero-copy > p { margin-left: auto; }
.hero-position-centre .hero-copy > p { margin-right: auto; }
.festival-slider{position:relative;overflow:hidden}.festival-track{position:relative}.festival-slide{transition:opacity .45s ease}.festival-slide[hidden]{display:none}.festival-controls{position:absolute;z-index:4;left:50%;bottom:1.15rem;transform:translateX(-50%);display:flex;align-items:center;gap:.7rem;padding:.35rem .5rem;background:rgba(250,247,242,.86);border:1px solid rgba(198,161,91,.45);backdrop-filter:blur(8px)}.festival-controls>button{width:34px;height:34px;border:0;background:transparent;cursor:pointer}.festival-controls>div{display:flex;gap:.4rem}.festival-controls [data-festival-dot]{width:8px;height:8px;padding:0;border:1px solid var(--espresso);border-radius:50%;background:transparent;cursor:pointer}.festival-controls [aria-current=true]{background:var(--espresso)}.festival-landing{display:grid;grid-template-columns:minmax(0,.8fr) minmax(380px,1.2fr);min-height:420px;background:color-mix(in srgb,var(--festival-accent) 13%,var(--ivory));border-block:1px solid color-mix(in srgb,var(--festival-accent) 45%,transparent)}.festival-landing>div{align-self:center;padding:clamp(2rem,6vw,6rem)}.festival-landing h2{font:500 clamp(2.5rem,4.5vw,4.8rem)/1.05 var(--serif);margin:.5rem 0 1rem}.festival-landing>img{width:100%;height:100%;min-height:420px;object-fit:cover}.festival-landing .eyebrow{color:var(--festival-accent)}
.uk-jewellery-campaign { position: relative; display: grid; grid-template-columns: minmax(420px, .82fr) minmax(0, 1.18fr); min-height: clamp(560px, 54vw, 720px); overflow: hidden; background: #f5eee5; }
.uk-jewellery-campaign > img { position: relative; grid-column: 2; grid-row: 1; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.uk-jewellery-campaign-copy { position: relative; z-index: 1; grid-column: 1; grid-row: 1; align-self: center; width: 100%; padding: clamp(3rem, 6vw, 6rem); }
.uk-jewellery-campaign-copy h2 { margin: .55rem 0 1.1rem; font: 500 clamp(3rem, 4.8vw, 5.2rem)/.98 var(--serif); letter-spacing: -.035em; white-space: nowrap; }
.uk-jewellery-campaign-copy > p:not(.eyebrow) { max-width: 29rem; }

.home-welcome { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(380px, .97fr); min-height: min(820px, 82vh); background: #f8f2eb; }
.home-welcome-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(3.5rem, 7vw, 8rem); }
.home-welcome-copy h1 { max-width: 720px; margin: .65rem 0 1.6rem; font: 500 clamp(3rem, 5.7vw, 6.2rem)/.97 var(--serif); letter-spacing: -.04em; }
.home-welcome-copy > p:not(.eyebrow) { max-width: 680px; margin: 0 0 .9rem; color: #5f554f; font-size: .95rem; line-height: 1.8; }
.home-welcome-copy .home-welcome-lead { color: var(--espresso); font-size: 1.08rem; }
.home-welcome-copy .home-welcome-signoff { margin-top: .5rem; color: #876a35; font-family: var(--serif); font-size: 1.15rem; font-style: italic; }
.home-welcome-signoff span { display: inline-block; margin-right: .35rem; color: var(--gold); }
.home-welcome-media { position: relative; min-height: 620px; overflow: hidden; }
.home-welcome-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 65%, rgba(45,31,26,.32)); }
.home-welcome-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-welcome-mark { position: absolute; z-index: 1; right: clamp(1.5rem, 4vw, 4rem); bottom: 2rem; color: #fff; font: 500 clamp(1rem, 2vw, 1.5rem)/1 var(--serif); letter-spacing: .42em; }

.why-delo { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr); gap: clamp(2rem, 7vw, 8rem); padding: clamp(4rem, 9vw, 9rem) clamp(1rem, 7vw, 7rem); background: var(--ivory); }
.why-delo-story { align-self: center; max-width: 720px; }
.why-delo-story h2 { margin: .6rem 0 1.8rem; font: 500 clamp(3rem, 5vw, 5.6rem)/1 var(--serif); letter-spacing: -.04em; }
.why-delo-story > p:not(.eyebrow) { color: #625852; line-height: 1.85; }
.why-delo-story .why-delo-lead { color: var(--espresso); font-size: 1.12rem; }
.delo-promise { position: relative; align-self: center; padding: clamp(2rem, 5vw, 4rem); overflow: hidden; background: var(--espresso); color: #fff; box-shadow: 22px 22px 0 var(--cream); }
.delo-promise::after { content: '♡'; position: absolute; right: -2rem; bottom: -7rem; color: rgba(255,255,255,.045); font: 18rem/1 var(--serif); }
.delo-promise > * { position: relative; z-index: 1; }
.delo-promise .eyebrow { color: var(--light-gold); }
.delo-promise .eyebrow span { margin-right: .3rem; }
.delo-promise h3 { margin: .5rem 0 1rem; font: 500 clamp(2.1rem, 3.3vw, 3.5rem)/1.08 var(--serif); }
.delo-promise > p:not(.eyebrow) { color: #e5ddd6; line-height: 1.75; }
.delo-promise .promise-label { margin: 1.6rem 0 .5rem; color: #fff; font-weight: 600; }
.delo-promise ul { display: grid; gap: .65rem; margin: 0 0 1.6rem; padding: 0; list-style: none; }
.delo-promise li { display: grid; grid-template-columns: 1.2rem 1fr; gap: .35rem; color: #f3ece5; }
.delo-promise li span { color: var(--light-gold); }
.delo-promise .promise-thanks { margin-bottom: 0; color: var(--light-gold); font-family: var(--serif); font-size: 1.08rem; font-style: italic; }

.button { display: inline-flex; justify-content: center; align-items: center; min-height: 50px; margin-top: 1rem; padding: .7rem 1.5rem; border: 1px solid var(--button-border); background: var(--button-bg); color: var(--button-text); cursor: pointer; transition: .2s; }
.button:hover, .button:focus-visible { background: var(--button-secondary-bg); color: var(--button-secondary-text); }
.btn-primary,.btn-secondary { display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.65rem 1.15rem;border:1px solid var(--button-border);cursor:pointer;text-decoration:none;transition:background .2s,color .2s,border-color .2s; }
.btn-primary { background:var(--button-bg);color:var(--button-text); }
.btn-secondary { background:var(--button-secondary-bg);color:var(--button-secondary-text); }
.btn-primary:hover,.btn-primary:focus-visible { filter:brightness(1.08); }
.btn-secondary:hover,.btn-secondary:focus-visible { background:var(--button-bg);color:var(--button-text); }
.btn-full { width:100%; }
.btn-sm { min-height:38px;padding:.4rem .8rem;font-size:.78rem; }
.btn-primary:disabled,.button:disabled,.quick-add-form button:disabled { opacity:.55;cursor:not-allowed;filter:none; }
body.theme-rose .btn-primary,body.theme-rose .btn-secondary { border-radius:999px; }

.section { padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 5vw, 5rem); }
.section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 2rem; }
.section-heading h2 { font-size: clamp(2.3rem, 4vw, 4rem); margin: .3rem 0; }
.lead { max-width: 620px; margin: .7rem 0 0; color: #6e625c; }
.category-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.category-card { display: flex; flex-direction: column; min-height: 340px; padding: 1rem; background: #fff; border: 1px solid rgba(198, 161, 91, .3); transition: transform .25s; }
.category-card:hover { transform: translateY(-5px); }
.category-card strong { margin-top: auto; font: 500 1.45rem var(--serif); }
.category-card > span:last-child { margin-top: .2rem; font-size: .8rem; }
.category-visual { height: 230px; margin-bottom: 1rem; overflow: hidden; background: var(--cream); }
.category-visual img { width: 100%; height: 100%; object-fit: cover; }
.category-shape { height: 100%; display: grid; place-items: center; }
.category-shape::after { content: '✦'; color: var(--gold); font: 4rem var(--serif); filter: drop-shadow(12px 14px 0 rgba(198, 161, 91, .13)); }
.shape-2::after { content: '○'; font-size: 7rem; }
.shape-3::after { content: '◇'; font-size: 7rem; }

.product-section:nth-of-type(even) { background: #fff; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.product-media { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--cream); }
.product-media img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s; }
.product-media:hover img { transform: scale(1.025); }
.product-badge { position: absolute; top: .8rem; left: .8rem; z-index: 1; padding: .28rem .55rem; background: #fff; font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; }
.product-card { position: relative; }.product-card h3 { margin: 1rem 0 .2rem; font: 500 1.2rem var(--serif); }
.product-card p { margin: 0; color: #6e625c; font-size: .84rem; }
.product-card del { margin-left: .3rem; }
.product-section > .text-link, .social-section > .text-link, .review-section > .text-link { margin-top: 2rem; }
.empty-copy { color: #756a63; }

.editorial { min-height: 550px; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; background: var(--cream); }
.editorial > div:first-child { align-self: center; max-width: 650px; padding: clamp(3rem, 8vw, 8rem); }
.editorial h2 { font-size: clamp(2.7rem, 5vw, 5rem); }
.editorial.dark { background: var(--espresso); color: #fff; }
.editorial-media { min-height: 420px; overflow: hidden; display: grid; place-items: center; }
.editorial-media picture, .editorial-media img { width: 100%; height: 100%; }
.editorial-media img { object-fit: cover; }
.text-link { display: inline-block; border-bottom: 1px solid var(--gold); padding-bottom: .25rem; }
.jewel-art { position: relative; width: 100%; height: 360px; display: grid; place-items: center; }
.jewel-art span { position: absolute; width: 190px; height: 190px; border: 2px solid var(--gold); border-radius: 50% 50% 5% 50%; transform: rotate(45deg); }
.jewel-art span:nth-child(2) { transform: translateX(85px) rotate(80deg); border-color: var(--light-gold); }
.jewel-art span:nth-child(3) { transform: translateX(-85px) rotate(10deg); border-color: var(--light-gold); }

.review-section { background: #fff; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.review-grid figure { margin: 0; padding: 2rem; border: 1px solid #e1d5c8; background: var(--ivory); }
.stars { color: #947123; letter-spacing: .12em; }
.review-grid blockquote { margin: 1rem 0; font: 500 1.45rem/1.45 var(--serif); }
.review-grid figcaption { font-size: .75rem; color: #6e625c; }
.social-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .7rem; }
.social-grid a { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--cream); }
.social-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.social-grid span { position: absolute; inset: auto 0 0; padding: 1rem .7rem .6rem; background: linear-gradient(transparent, rgba(24, 21, 19, .75)); color: #fff; font-size: .72rem; transform: translateY(100%); transition: transform .2s; }
.social-grid a:hover span, .social-grid a:focus-visible span { transform: translateY(0); }
.social-grid a:hover img { transform: scale(1.04); }
.newsletter { padding: clamp(4rem, 8vw, 7rem) 1rem; background: var(--cream); text-align: center; }
.newsletter h2 { font-size: clamp(2.3rem, 4vw, 4rem); }
.newsletter p:last-of-type { max-width: 650px; margin: 0 auto; }

.site-footer { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); gap: 2rem; padding: 4rem clamp(1rem, 5vw, 5rem) 2rem; background: var(--black); color: #fff; }
.site-footer h2 { margin: 0 0 1rem; font: 500 1.35rem var(--serif); }
.site-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; font-size: .82rem; }
.site-footer nav a:hover, .site-footer nav a:focus-visible { color: var(--light-gold); }
.footer-note, .site-footer > div:last-of-type p { max-width: 340px; color: #bdb5b0; font-size: .8rem; }
.copyright,.footer-legal { grid-column: 1 / -1; margin-top: 1rem; padding-top: 1.5rem; border-top: 1px solid #514a47; font-size: .72rem; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.35rem 1.5rem; color:#bdb5b0; }
.footer-legal p { margin:0; }
.footer-legal strong { color:#fff; font-weight:600; letter-spacing:.04em; }
.cookie-banner { position: fixed; z-index: 9999; right: 0; bottom: 0; left: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 15px 20px; background: #111; color: #fff; font-size: 14px; }
.cookie-banner-copy { max-width: 920px; }
.cookie-banner-action { flex: 0 0 auto; display: flex; gap: .6rem; }
.cookie-banner button { min-width: 82px; padding: 8px 16px; border: 0; border-radius: 4px; background: #fff; color: #111; cursor: pointer; font-weight: 700; }
.cookie-banner a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner .cookie-reject { border: 1px solid #777; background: transparent; color: #fff; }

/* Shared authentication presentation. */
.admin-auth { background: var(--cream); }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; }
.login-brand { display: flex; flex-direction: column; padding: 5vw; background: var(--espresso); color: #fff; }
.login-brand blockquote { margin: auto 0; font: 500 clamp(2.7rem, 5vw, 5rem)/1.15 var(--serif); }
.login-panel { display: grid; place-items: center; padding: 2rem; }
.login-card { width: min(500px, 100%); padding: clamp(2rem, 5vw, 4rem); background: #fff; border: 1px solid var(--light-gold); }
.login-card h1 { font-size: 3.2rem; }
.login-card form { display: grid; gap: .55rem; margin-top: 2rem; }
.login-card input { min-height: 50px; margin-bottom: .7rem; padding: .7rem; border: 1px solid #b9aea7; }
.login-card .button { width: 100%; }
.alert { margin: 1rem 0; padding: .8rem; border-left: 3px solid var(--error); background: #fff1ef; color: var(--error); }
.login-note { margin-top: 1.5rem; color: #766c67; text-align: center; font-size: .75rem; }

/* Customer account. */
.account-auth { min-height: 68vh; display: grid; place-items: center; padding: clamp(3rem,8vw,7rem) 1rem; background: linear-gradient(135deg,var(--cream),var(--ivory)); }
.account-auth-card { width: min(520px,100%); padding: clamp(2rem,5vw,4rem); background: #fff; border: 1px solid var(--light-gold); }
.account-auth-card.wide { width: min(720px,100%); }
.account-auth-card h1,.account-heading h1 { margin: .35rem 0 1rem; font: 500 clamp(2.5rem,5vw,4.8rem)/1.05 var(--serif); }
.account-auth-card form,.account-form { display: grid; gap: 1rem; margin-top: 1.7rem; }
.account-auth-card label,.account-form label { display: grid; gap: .35rem; font-size: .82rem; font-weight: 600; }
.account-auth-card input,.account-form input,.account-form select { min-height: 50px; width: 100%; padding: .7rem .8rem; border: 1px solid #b9aea7; background: #fff; }
.account-auth-card small,.account-form small { color: #746a64; font-weight: 400; }
.account-auth-card .button,.account-form .button { width: max-content; margin-top: .5rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.check-row { display: flex !important; grid-template-columns: none; align-items: flex-start; gap: .6rem !important; font-weight: 400 !important; }
.check-row input { width: 18px !important; min-height: 18px !important; margin-top: .2rem; accent-color: var(--espresso); }
.auth-links { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; font-size: .8rem; }
.auth-links a,.danger-link a,.card-actions a,.text-button { text-decoration: underline; text-underline-offset: .2em; }
.quick-auth-card { border-radius: 18px; box-shadow: 0 24px 70px rgba(69,35,43,.1); }
.quick-email-form .button { width: 100%; justify-content: center; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 22px 0; color: #8b777c; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.auth-divider::before,.auth-divider::after { content: ''; height: 1px; flex: 1; background: #e5d8da; }
.google-auth-button { min-height: 50px; padding: .75rem 1rem; border: 1px solid #cfc4c6; border-radius: 4px; display: flex; align-items: center; justify-content: center; gap: 10px; background: #fff; color: #35282b; font-weight: 600; transition: border-color .18s, box-shadow .18s, transform .18s; }
.google-auth-button:hover { border-color: #9a5364; box-shadow: 0 8px 24px rgba(69,35,43,.08); transform: translateY(-1px); }
.auth-legal,.auth-security-note { margin: 18px 0 0; color: #78696d; font-size: .76rem; line-height: 1.6; text-align: center; }
.auth-legal a,.auth-back-link { text-decoration: underline; text-underline-offset: .2em; }
.auth-back-link { display: inline-block; margin-bottom: 20px; color: #72515a; font-size: .8rem; }
.otp-form .otp-input { font-size: 1.65rem; font-weight: 700; letter-spacing: .42em; text-align: center; font-variant-numeric: tabular-nums; }
.otp-form .button { width: 100%; justify-content: center; }
.otp-resend-form { margin-top: 14px !important; text-align: center; }
.otp-resend-form .text-button { margin: 0 auto; border: 0; background: transparent; color: #7d3f50; cursor: pointer; }
.form-alert { margin: 1rem 0; padding: 1rem; border-left: 3px solid; }
.form-alert.error { background: #fff1ef; border-color: var(--error); color: var(--error); }
.form-alert.success { background: #edf8f1; border-color: var(--success); color: var(--success); }
.form-alert ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.account-shell { width: min(1180px,calc(100% - 2rem)); min-height: 62vh; margin: 0 auto; padding: clamp(3rem,7vw,7rem) 0; }
.account-heading { max-width: 720px; margin-bottom: 2rem; }.account-heading.split { max-width: none; display: flex; justify-content: space-between; align-items: end; gap: 1rem; }.account-heading p { color: #6f645e; }
.account-nav { display: flex; align-items: center; gap: 1.2rem; overflow-x: auto; margin-bottom: 2.5rem; padding: .7rem 0; border-block: 1px solid #dfd4c8; font-size: .78rem; white-space: nowrap; }.account-nav form { margin-left: auto; }.account-nav button,.text-button,.card-actions button { padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.verification-card { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin: 1.5rem 0; padding: 1.2rem; border: 1px solid var(--gold); background: #fff; }.verification-card p { margin: .25rem 0 0; }
.account-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }.account-cards>a { min-height: 220px; padding: 1.7rem; background: #fff; border: 1px solid #dfd4c8; }.account-cards span { color: var(--gold); font-size: .72rem; }.account-cards h2,.account-empty h2 { font: 500 1.8rem var(--serif); }
.account-form { max-width: 780px; padding: clamp(1.3rem,4vw,2.5rem); background: #fff; border: 1px solid #dfd4c8; }.account-form.narrow { max-width: 580px; }.danger-link { margin-top: 2rem; font-size: .8rem; color: var(--error); }.danger-panel { border-color: #e4b5af; }.danger-button { background: var(--error); border-color: var(--error); }
.address-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }.address-grid article { padding: 1.5rem; background: #fff; border: 1px solid #dfd4c8; }.address-label { display: flex; justify-content: space-between; margin-bottom: 1rem; }.address-label span { color: #876a35; font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; }.address-grid address { min-height: 170px; font-style: normal; }.card-actions { display: flex; gap: 1rem; border-top: 1px solid #eee4da; padding-top: 1rem; font-size: .78rem; }
.account-empty { padding: 5rem 1rem; text-align: center; background: var(--cream); }.account-empty>span { font-size: 3rem; color: var(--gold); }
.wishlist-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }.wishlist-grid article { display: grid; grid-template-columns: 180px 1fr; gap: 1.2rem; padding: 1rem; background: #fff; border: 1px solid #dfd4c8; }.wishlist-media { display: grid; place-items: center; aspect-ratio: 4/5; background: var(--cream); overflow: hidden; }.wishlist-media img { width: 100%;height: 100%;object-fit: contain; }.wishlist-grid h2 { margin: .4rem 0; font: 500 1.4rem var(--serif); }

@media (max-width: 1250px) {
    .site-header { grid-template-columns: 1fr auto 1fr; grid-template-areas: "menu logo actions"; min-height: 92px; }
    .logo-link img { width: 105px; }
    .menu-toggle { display: block; }
    .site-header > .logo-link { justify-self: center; }
    .header-search summary { font-size: 0; }.header-search summary::after { content: 'Search'; font-size: .82rem; font-weight: 500; }
    .site-navigation { position: absolute; left: 0; top: 100%; bottom: auto; width: min(340px, 84vw); height: calc(100svh - 92px); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; overflow-y: auto; padding: .85rem; background: var(--ivory); border: 0; border-right: 1px solid #e0d4c7; box-shadow: 15px 20px 30px rgba(45, 31, 26, .12); text-transform: none; letter-spacing: 0; }
    .js .site-navigation { visibility: hidden; transform: translateX(-105%); transition: transform .25s, visibility .25s; }
    .js body.nav-open .site-navigation { visibility: visible; transform: translateX(0); }
    .site-navigation > a, .mega-menu > summary { min-height: 46px; border-bottom: 1px solid #e5dbd1; font-size: .86rem; }
    .site-navigation > a, .mega-menu { width: 100%; min-width: 0; flex: 0 0 auto; }
    .mega-menu { overflow: clip; }
    .mega-menu > summary { width: 100%; min-width: 0; justify-content: space-between; }
    .mega-panel { position: static; display: block; width: 100%; max-width: 100%; min-width: 0; overflow: hidden; padding: .7rem 1rem 1.2rem; border: 0; box-shadow: none; background: #fff; }
    .mega-panel > div { min-width: 0; }
    .mega-feature { font-size: 1.2rem; }
    .mega-links { grid-template-columns: 1fr 1fr; margin-top: 1rem; }
    .mega-links a { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
    .category-grid { grid-template-columns: repeat(3, 1fr); }
    .social-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 800px) {
    .hero { min-height: clamp(500px, 76svh, 620px); align-items: end; }
    .hero::after { background: linear-gradient(0deg, rgba(250, 247, 242, .98), rgba(250, 247, 242, .25) 75%); }
    .hero-copy, .hero-position-right .hero-copy { width: 100%; padding: 3rem 1.4rem; text-align: left; }
    .hero h1, .hero h2 { font-size: clamp(2.35rem, 11vw, 3rem); }
    .home-welcome { grid-template-columns: 1fr; }
    .home-welcome-copy { padding: 4rem 1.4rem; }
    .home-welcome-copy h1 { font-size: clamp(3rem, 13vw, 4.7rem); }
    .home-welcome-media { min-height: min(115vw, 620px); order: -1; }
    .why-delo { grid-template-columns: 1fr; padding: 4rem 1.4rem; }
    .delo-promise { box-shadow: 10px 10px 0 var(--cream); }
    .category-grid, .product-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
    .category-card { min-width: min(72vw, 290px); scroll-snap-align: start; }
    .product-card { min-width: min(70vw, 280px); scroll-snap-align: start; }
    .editorial { grid-template-columns: 1fr; }
    .editorial-media { min-height: 360px; }
    .review-grid { grid-template-columns: 1fr; }
    .site-footer { grid-template-columns: 1fr 1fr; }
    .footer-brand, .copyright, .footer-legal { grid-column: 1 / -1; }
    .login-shell { grid-template-columns: 1fr; }
    .account-cards,.address-grid,.wishlist-grid { grid-template-columns: 1fr; }
    .login-brand { display: none; }
    .festival-landing{grid-template-columns:1fr}.festival-landing>img{min-height:320px;max-height:440px}.festival-controls{bottom:.65rem}
    .uk-jewellery-campaign { display: block; min-height: 680px; }
    .uk-jewellery-campaign > img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: 63% center; }
    .uk-jewellery-campaign::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(250,247,242,.97) 0%, rgba(250,247,242,.78) 30%, transparent 62%); }
    .uk-jewellery-campaign-copy { position: absolute; inset: auto 0 0; width: 100%; min-width: 0; max-width: 100%; padding: 2rem 1.25rem 3rem; }
    .uk-jewellery-campaign-copy h2 { font-size: clamp(2.75rem, 13vw, 4rem); white-space: normal; }
    .uk-jewellery-campaign-copy > p:not(.eyebrow) { width: 100%; max-width: 100%; overflow-wrap: anywhere; }
}

@media (max-width: 520px) {
    body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
    .announcement { flex-direction: column; gap: .1rem; overflow: hidden; padding: .4rem .65rem; font-size: .66rem; line-height: 1.35; letter-spacing: .025em; }
    .site-header { min-height: 78px; }
    .site-navigation { top: 100%; height: calc(100svh - 78px); }
    .hero { min-height: clamp(480px, 72svh, 560px); }
    .hero-copy, .hero-position-right .hero-copy { padding: 2rem 1.25rem 3.5rem; }
    .hero h1, .hero h2 { margin-bottom: 1rem; font-size: clamp(2.15rem, 10.5vw, 2.65rem); }
    .hero-copy > p:not(.eyebrow) { font-size: .92rem; line-height: 1.55; }
    .section { padding: 3rem 1rem; }
    .section-heading { align-items: flex-start; }
    .social-grid { grid-template-columns: 1fr 1fr; }
    .site-footer { grid-template-columns: 1fr; }
    .site-footer nav, .site-footer > div { grid-column: 1; }
    .footer-legal { display:grid; }
    .login-panel { padding: 1rem; }
    .login-card { padding: 2rem 1.4rem; }
    .site-header { grid-template-columns: 44px 1fr auto; padding-inline: .65rem; }
    .logo-link { padding: .25rem .4rem; }
    .logo-link img { width: 74px; }
    .header-actions svg { width: 22px; height: 22px; flex-basis: 22px; }
    .header-search summary::after { content: none; display: none; }
    .header-actions { position: fixed; right: 0; bottom: 0; left: 0; z-index: 40; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; min-height: calc(64px + env(safe-area-inset-bottom)); padding: 0 .35rem env(safe-area-inset-bottom); background: rgba(250,247,242,.98); border-top: 1px solid rgba(198,161,91,.45); box-shadow: 0 -8px 24px rgba(45,31,26,.08); backdrop-filter: blur(14px); }
    .header-search, .customer-actions { display: contents; }
    .header-search > summary, .customer-actions > a { min-width: 0; min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; }
    .header-search > summary span, .customer-actions .action-label { position: static; width: auto; height: auto; overflow: visible; font-size: .64rem; line-height: 1.1; }
    .customer-actions > a:first-child { display: flex; }
    .customer-actions .action-count { top: 5px; right: calc(50% - 22px); }
    .header-search form { position: fixed; right: .75rem; bottom: calc(72px + env(safe-area-inset-bottom)); left: .75rem; top: auto; width: auto; }
    .form-grid { grid-template-columns: 1fr; }.auth-links { flex-direction: column; }.account-heading.split { align-items: start; flex-direction: column; }.wishlist-grid article { grid-template-columns: 110px 1fr; }.verification-card { align-items: flex-start; flex-direction: column; }
    .site-navigation { width: 100%; max-width: none; padding: .65rem 1rem; }
    .mega-panel { padding: .45rem .5rem .9rem; }
    .mega-panel .eyebrow { font-size: .62rem; }
    .mega-feature { display: block; margin-top: .35rem; font-size: 1rem; line-height: 1.35; }
    .mega-links { display: flex; flex-direction: column; gap: 0; margin-top: .65rem; }
    .mega-links a { display: flex; min-height: 40px; align-items: center; padding: .45rem 0; font-size: .8rem; line-height: 1.35; }
    .festival-controls { bottom: .55rem; }
    .festival-landing > div { padding: 2.25rem 1.25rem; }
    .festival-landing h2 { font-size: 2.35rem; }
    .festival-landing > img { min-height: 260px; max-height: 300px; }
    .category-card { min-height: 290px; }
    .category-visual { height: 190px; }
    .editorial { min-height: 0; }
    .editorial > div:first-child { padding: 2.5rem 1.25rem; }
    .editorial h2 { font-size: 2.45rem; }
    .editorial-media { min-height: 280px; }
    .review-grid figure { padding: 1.4rem; }
    .newsletter { padding-block: 3rem; }
    .site-footer { gap: 1.5rem; padding-top: 3rem; }
    .cookie-banner { bottom: calc(64px + env(safe-area-inset-bottom)); align-items: stretch; gap: .75rem; padding: .85rem 1rem; font-size: .76rem; line-height: 1.45; }
    .cookie-banner-copy { min-width: 0; }
    .cookie-banner button { min-width: 72px; height: 40px; padding-inline: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ============================================================
   Phase 11 — Stripe Checkout
   ============================================================ */
.stripe-card-wrapper { margin-bottom: 1.25rem; }
.stripe-card-element { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: .8rem 1rem; margin-top: .4rem; }
.stripe-card-element.StripeElement--focus { border-color: var(--primary); outline: 1px solid var(--primary); }
.payment-error { color: hsl(0 60% 45%); font-size: .85rem; margin-top: .5rem; display: none; }
.pay-loading { display: inline-block; width: 1.2rem; height: 1.2rem; border: 2px solid rgba(255,255,255,0.3); border-radius: 50%; border-top-color: white; animation: spin 1s ease-in-out infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.hidden { display: none !important; }

/* ============================================================
   Phase 10 — Checkout & Orders
   ============================================================ */

/* Checkout shell */
.checkout-shell { min-height: 100vh; display: flex; flex-direction: column; }
.checkout-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 2rem; border-bottom: 1px solid var(--border); background: var(--surface); position: sticky; top: 0; z-index: 100; }
.checkout-brand { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 600; color: var(--text); text-decoration: none; }
.checkout-steps { display: flex; gap: 1.5rem; font-size: .85rem; }
.checkout-step { color: var(--muted); }
.checkout-step.active { color: var(--primary); font-weight: 600; }
.checkout-step.done { color: var(--text); }
.checkout-step.done a { color: var(--text); text-decoration: underline; }
.checkout-body { display: grid; grid-template-columns: 1fr 380px; gap: 2rem; max-width: 1100px; margin: 2rem auto; padding: 0 1.5rem; width: 100%; }
.checkout-form-col h1 { font-size: 1.6rem; margin-bottom: 1.5rem; }
.checkout-form-col fieldset { border: 1px solid var(--border); border-radius: 10px; padding: 1.25rem 1.5rem 1rem; margin-bottom: 1.25rem; }
.checkout-form-col legend { font-weight: 600; font-size: .9rem; padding: 0 .5rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.form-row.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.billing-toggle-group { margin: .5rem 0 .25rem; }
.billing-address-section { padding: 1.25rem 1.5rem; border: 1px solid var(--primary); border-radius: 10px; margin-bottom: 1.25rem; background: hsl(40 60% 98%); }
.billing-address-section h2 { font-size: 1rem; margin-bottom: 1rem; }
.address-book-selector { margin-bottom: 1.25rem; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.address-book-selector summary { padding: .75rem 1.25rem; font-weight: 600; cursor: pointer; user-select: none; background: var(--surface); }
.saved-address-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--border); }
.saved-address-item { width: 100%; text-align: left; padding: .75rem 1.25rem; background: none; border: none; border-bottom: 1px solid var(--border); cursor: pointer; font-size: .9rem; line-height: 1.5; transition: background .15s; }
.saved-address-item:hover { background: hsl(40 40% 97%); }

/* Order summary sidebar */
.checkout-summary-col { position: sticky; top: 80px; align-self: start; }
.checkout-order-summary { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; }
.checkout-order-summary h2 { font-size: 1rem; font-weight: 700; margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--border); }
.checkout-item-list { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .75rem; }
.checkout-item { display: grid; grid-template-columns: 56px 1fr auto; gap: .75rem; align-items: center; font-size: .85rem; }
.checkout-item img { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; }
.checkout-item .item-name { font-weight: 600; }
.checkout-item .item-variant, .checkout-item .item-qty { color: var(--muted); font-size: .8rem; }
.checkout-item .item-price { font-weight: 600; white-space: nowrap; }
.checkout-totals { display: flex; flex-direction: column; gap: .5rem; }
.total-row { display: flex; justify-content: space-between; font-size: .9rem; }
.total-row.discount { color: hsl(140 60% 35%); }
.total-row.grand { font-weight: 700; font-size: 1rem; padding-top: .5rem; border-top: 1px solid var(--border); margin-top: .25rem; }
.checkout-address-preview { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); font-size: .85rem; }
.checkout-address-preview .eyebrow { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: .3rem; }
.checkout-address-preview address { font-style: normal; line-height: 1.6; }
.checkout-address-preview .text-link { display: inline-block; margin-top: .5rem; font-size: .8rem; color: var(--primary); }

/* Shipping method cards */
.shipping-method-list { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-direction: column; gap: .75rem; }
.shipping-method-card label { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border: 2px solid var(--border); border-radius: 10px; cursor: pointer; transition: border-color .2s, background .2s; }
.shipping-method-card.selected label,
.shipping-method-card label:has(input:checked) { border-color: var(--primary); background: hsl(40 60% 98%); }
.shipping-method-card input[type="radio"] { flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--primary); }
.shipping-method-info { flex: 1; }
.shipping-method-name { font-weight: 600; margin-bottom: .15rem; }
.shipping-method-desc { font-size: .85rem; color: var(--muted); }
.shipping-method-eta { font-size: .8rem; color: var(--muted); }
.shipping-method-price { font-weight: 700; white-space: nowrap; }
.free-tag { color: hsl(140 60% 35%); font-weight: 700; }

/* Review page */
.review-section { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 1.25rem 1.5rem; margin-bottom: 1rem; }
.review-section h2 { font-size: 1rem; font-weight: 700; margin-bottom: .75rem; }
.review-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.review-section-header h2 { margin-bottom: 0; }
.review-address { font-style: normal; line-height: 1.7; font-size: .9rem; }
.review-shipping { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; font-size: .9rem; }
.review-shipping .shipping-desc { color: var(--muted); }
.review-shipping .shipping-price { font-weight: 700; }
.review-shipping .shipping-eta { color: var(--muted); font-size: .85rem; }
.review-item-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .75rem; }
.review-item { display: grid; grid-template-columns: 64px 1fr auto; gap: .75rem; align-items: center; }
.review-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.review-item-info .item-name { font-weight: 600; font-size: .9rem; }
.review-item-info .item-variant, .review-item-info .item-qty { font-size: .8rem; color: var(--muted); }
.review-item-price { font-weight: 700; font-size: .9rem; white-space: nowrap; }
.terms-group { margin: 1.25rem 0; }
.btn-place-order { font-size: 1.05rem; padding: .9rem 1.5rem; }
.btn-place-order:disabled { opacity: .6; cursor: not-allowed; }
.checkout-secure-note { text-align: center; font-size: .8rem; color: var(--muted); margin-top: .5rem; }
.gift-message-preview { font-style: italic; color: var(--muted); padding: .5rem .75rem; background: hsl(40 30% 97%); border-radius: 6px; }
.sticky-summary { position: sticky; top: 80px; }

/* Confirmation page */
.confirmation-shell { max-width: 760px; margin: 3rem auto; padding: 0 1.5rem; }
.confirmation-hero { text-align: center; padding: 2.5rem 1rem; }
.confirmation-icon { width: 72px; height: 72px; background: hsl(140 60% 45%); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2rem; margin: 0 auto 1.25rem; }
.confirmation-hero h1 { font-size: 2rem; margin-bottom: .5rem; }
.confirmation-subtitle { color: var(--muted); margin-bottom: .5rem; }
.confirmation-number { font-weight: 600; }
.confirmation-body { display: flex; flex-direction: column; gap: 1.25rem; }
.confirmation-section { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 1.25rem 1.5rem; }
.confirmation-section h2 { font-size: 1rem; font-weight: 700; margin-bottom: .75rem; }
.confirmation-item-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .75rem; }
.confirmation-item { display: grid; grid-template-columns: 64px 1fr auto; gap: .75rem; align-items: center; }
.confirmation-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; }
.confirmation-ctas { display: flex; gap: 1rem; justify-content: center; padding: 1rem 0 2rem; }

/* Order status badges */
.order-status-badge { display: inline-block; padding: .25rem .75rem; border-radius: 999px; font-size: .78rem; font-weight: 600; }
.status-pending  { background: hsl(45 90% 90%); color: hsl(45 60% 30%); }
.status-paid     { background: hsl(210 80% 90%); color: hsl(210 60% 25%); }
.status-processing{ background: hsl(270 60% 92%); color: hsl(270 50% 30%); }
.status-shipped  { background: hsl(180 60% 90%); color: hsl(180 50% 25%); }
.status-delivered{ background: hsl(140 60% 90%); color: hsl(140 50% 25%); }
.status-cancelled{ background: hsl(0 60% 92%); color: hsl(0 50% 35%); }
.status-return   { background: hsl(30 70% 91%); color: hsl(30 50% 28%); }
.status-default  { background: var(--surface); color: var(--muted); border: 1px solid var(--border); }

/* Orders list */
.orders-empty { text-align: center; padding: 3rem 1rem; }
.orders-empty p { color: var(--muted); margin-bottom: 1.5rem; }
.orders-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1rem; }
.order-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem 1.5rem; transition: box-shadow .2s; }
.order-card:hover { box-shadow: 0 4px 18px hsl(0 0% 0% / .08); }
.order-card-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: .75rem; }
.order-number { font-weight: 700; }
.order-date { font-size: .85rem; color: var(--muted); }
.order-card-body { display: flex; align-items: center; justify-content: space-between; }
.order-meta { display: flex; gap: 1.5rem; font-size: .9rem; color: var(--muted); }
.order-total { font-weight: 700; color: var(--text); }
.btn-sm { padding: .4rem .9rem; font-size: .85rem; }

/* Order detail */
.order-detail-grid { display: grid; grid-template-columns: 1fr 320px; gap: 2rem; margin-top: 1.5rem; }
.order-detail-main, .order-detail-aside { display: flex; flex-direction: column; gap: 1.25rem; }
.order-detail-section { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 1.25rem 1.5rem; }
.order-detail-section h2 { font-size: 1rem; font-weight: 700; margin-bottom: .75rem; }
.order-status-row { display: flex; align-items: center; gap: 1rem; }
.order-items-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .75rem; }
.order-detail-item { display: grid; grid-template-columns: 72px 1fr auto; gap: .75rem; align-items: center; }
.order-detail-item img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; }
.order-item-info a { font-weight: 600; color: var(--text); font-size: .9rem; }
.order-item-info .item-variant, .order-item-info .item-sku, .order-item-info .item-qty { font-size: .8rem; color: var(--muted); }
.order-item-price { text-align: right; font-size: .85rem; white-space: nowrap; }
.order-item-price .line-total { font-size: .95rem; }
.order-timeline { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.timeline-event { display: flex; gap: 1rem; padding-bottom: 1.25rem; position: relative; }
.timeline-event:not(:last-child)::before { content: ''; position: absolute; left: 7px; top: 16px; bottom: 0; width: 2px; background: var(--border); }
.timeline-dot { width: 16px; height: 16px; border-radius: 50%; background: var(--primary); flex-shrink: 0; margin-top: 2px; }
.timeline-status { font-weight: 600; font-size: .9rem; }
.timeline-date { font-size: .8rem; color: var(--muted); }
.timeline-note { font-size: .85rem; color: var(--muted); margin-top: .2rem; }
.shipping-eta { font-size: .85rem; color: var(--muted); }

/* Cart → checkout button */
.btn-checkout { display: block; width: 100%; text-align: center; text-decoration: none; }

@media (max-width: 860px) {
    .checkout-body { grid-template-columns: 1fr; }
    .checkout-summary-col { position: static; }
    .order-detail-grid { grid-template-columns: 1fr; }
    .order-detail-aside { order: -1; }
}

@media (max-width: 600px) {
    .checkout-header { flex-direction: column; gap: .5rem; }
    .checkout-steps { justify-content: center; }
    .form-row.two-col { grid-template-columns: 1fr; }
    .checkout-item, .review-item, .confirmation-item, .order-detail-item { grid-template-columns: 48px 1fr auto; }
    .confirmation-ctas { flex-direction: column; }
}
/* Editorial CMS and policy pages */
.info-page{background:var(--ivory)}.info-page-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);min-height:520px;background:#f2e9df}.info-page-heading{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(3rem,7vw,7rem)}.info-page-heading h1{font:500 clamp(3rem,7vw,6.5rem)/.98 var(--serif);margin:.5rem 0 1.25rem;max-width:760px}.info-page-heading>p:not(.eyebrow){max-width:620px;color:#675d57;line-height:1.75}.info-page-heading .button{margin-top:1rem}.info-page-hero figure{margin:0;min-height:420px;overflow:hidden}.info-page-hero img{width:100%;height:100%;object-fit:cover}.info-page-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,320px);justify-content:center;gap:clamp(3rem,7vw,7rem);padding:clamp(3rem,7vw,7rem) clamp(1rem,5vw,5rem)}.page-content{font-size:1rem;line-height:1.85;color:#433c38}.page-content h2{font:500 clamp(1.65rem,3vw,2.35rem) var(--serif);margin:2.5rem 0 .75rem;color:var(--espresso)}.page-content h2:first-child{margin-top:0}.page-content a{color:#745615;text-decoration:underline;text-underline-offset:3px}.info-page-aside{align-self:start;position:sticky;top:110px;padding:1.5rem;border:1px solid #dfd3c7;background:#fff}.info-page-aside h2{font:500 1.35rem var(--serif);margin:0 0 .7rem}.info-page-aside h2:not(:first-child){margin-top:2rem}.info-page-aside nav{display:grid}.info-page-aside nav a{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid #eee6de;font-size:.8rem}.external-reference{font-size:.78rem;text-decoration:underline;text-underline-offset:3px}.info-page-cta{text-align:center;padding:clamp(4rem,8vw,7rem) 1rem;background:var(--espresso);color:#fff}.info-page-cta h2{font:500 clamp(2.3rem,5vw,4.5rem) var(--serif);margin:.5rem 0}.info-page-cta p:not(.eyebrow){max-width:620px;margin:0 auto 1.5rem;color:#e6ddd5}.info-page-cta .button{background:#fff;color:var(--espresso)}
@media(max-width:800px){.info-page-hero{grid-template-columns:1fr}.info-page-heading{padding:3rem 1rem}.info-page-heading h1{font-size:clamp(2.7rem,14vw,4.5rem)}.info-page-hero figure{min-height:360px;max-height:520px}.info-page-layout{grid-template-columns:1fr;padding:3rem 1rem;gap:2.5rem}.info-page-aside{position:static}}
.our-story-page { background: var(--ivory); }
.our-story-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr); min-height: 690px; background: #f2e9df; }
.our-story-heading { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(3rem, 8vw, 8rem); }
.our-story-heading h1 { max-width: 820px; margin: .6rem 0 1.5rem; font: 500 clamp(3.4rem, 6.5vw, 7rem)/.95 var(--serif); letter-spacing: -.045em; }
.our-story-heading > p:not(.eyebrow) { max-width: 650px; color: #625852; font-size: 1.08rem; line-height: 1.8; }
.our-story-hero figure { min-height: 600px; margin: 0; overflow: hidden; }
.our-story-hero img { width: 100%; height: 100%; object-fit: cover; }
.our-story-body { display: grid; grid-template-columns: minmax(0, 760px) minmax(300px, 390px); justify-content: center; align-items: start; gap: clamp(3rem, 8vw, 9rem); padding: clamp(4rem, 9vw, 9rem) clamp(1rem, 6vw, 6rem); }
.story-narrative { color: #433c38; font-size: 1.03rem; line-height: 1.9; }
.story-narrative > p { margin: 0 0 1.5rem; }
.story-dropcap::first-letter { float: left; margin: .1rem .55rem 0 0; color: var(--gold); font: 500 4.7rem/.75 var(--serif); }
.story-narrative blockquote { margin: 3rem 0; padding: 1.7rem 0 1.7rem clamp(1.4rem, 4vw, 3rem); border-left: 2px solid var(--gold); }
.story-narrative blockquote p { margin: 0; color: var(--espresso); font: 500 clamp(1.8rem, 3vw, 2.8rem)/1.3 var(--serif); }
.story-narrative .story-emphasis { color: var(--espresso); font: 500 clamp(1.7rem, 2.6vw, 2.4rem)/1.25 var(--serif); }
.founder-signature { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #ded2c6; }
.founder-signature p { margin: 0 0 .4rem; font-family: var(--serif); font-style: italic; }
.founder-signature strong { display: block; color: var(--espresso); font: 500 2rem var(--serif); }
.founder-signature span { display: block; color: #7a6d65; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
.delo-values { position: sticky; top: 110px; padding: clamp(2rem, 4vw, 3.5rem); background: var(--espresso); color: #fff; box-shadow: 18px 18px 0 var(--cream); }
.delo-values .eyebrow { color: var(--light-gold); }
.delo-values h2 { margin: .5rem 0 1rem; font: 500 clamp(2.1rem, 3.3vw, 3.2rem)/1.1 var(--serif); }
.delo-values > p:not(.eyebrow) { color: #ddd3ca; }
.delo-values dl { margin: 2rem 0; }
.delo-values dl div { display: grid; grid-template-columns: 3.4rem 1fr; align-items: center; padding: .7rem 0; border-top: 1px solid rgba(255,255,255,.17); }
.delo-values dl div:last-child { border-bottom: 1px solid rgba(255,255,255,.17); }
.delo-values dt { color: var(--light-gold); font: 500 2rem var(--serif); }
.delo-values dd { margin: 0; font-family: var(--serif); font-size: 1.15rem; }
.delo-values .button { background: var(--light-gold); border-color: var(--light-gold); color: var(--black); }
@media(max-width:800px){.our-story-hero{grid-template-columns:1fr}.our-story-heading{padding:3.5rem 1.2rem}.our-story-heading h1{font-size:clamp(3.2rem,15vw,5rem)}.our-story-hero figure{min-height:115vw;max-height:620px}.our-story-body{grid-template-columns:1fr;padding:4rem 1.2rem}.delo-values{position:static;box-shadow:10px 10px 0 var(--cream)}}
.contact-page { background: var(--ivory); }
.contact-hero { position: relative; overflow: hidden; padding: clamp(4rem, 9vw, 9rem) 1rem; text-align: center; background: linear-gradient(135deg, #f2e8dc, var(--cream) 55%, #ead9c2); }
.contact-hero::before { content: '✉'; position: absolute; top: 50%; left: 50%; color: rgba(198,161,91,.1); font: clamp(16rem, 35vw, 34rem)/1 var(--serif); transform: translate(-50%,-50%); }
.contact-hero > * { position: relative; z-index: 1; }
.contact-hero h1 { max-width: 920px; margin: .5rem auto 1.2rem; font: 500 clamp(3.4rem, 7vw, 7rem)/.96 var(--serif); letter-spacing: -.045em; }
.contact-hero > p:last-child { max-width: 700px; margin: 0 auto; color: #625852; font-size: 1.05rem; line-height: 1.8; }
.contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(1180px, calc(100% - 2rem)); margin: clamp(3rem, 7vw, 7rem) auto; border-top: 1px solid #d8cabd; border-left: 1px solid #d8cabd; }
.contact-card { min-height: 430px; padding: clamp(2rem, 5vw, 4.5rem); border-right: 1px solid #d8cabd; border-bottom: 1px solid #d8cabd; background: #fff; }
.contact-card .contact-icon { display: block; margin-bottom: 2rem; color: var(--gold); font: 2.2rem/1 var(--serif); }
.contact-card h2 { margin: .45rem 0 1rem; font: 500 clamp(2.2rem, 4vw, 3.8rem)/1.05 var(--serif); }
.contact-card > p:not(.eyebrow) { max-width: 500px; color: #695e57; }
.contact-email-link { display: block; width: max-content; max-width: 100%; margin-top: 1.8rem; overflow-wrap: anywhere; color: #75591e; border-bottom: 1px solid var(--gold); font-size: 1.05rem; }
.contact-hours { background: var(--espresso); color: #fff; }
.contact-hours .eyebrow,.contact-hours .contact-icon { color: var(--light-gold); }
.contact-hours dl { margin: 2rem 0; }
.contact-hours dl div { display: flex; justify-content: space-between; gap: 1rem; padding: 1.2rem 0; border-block: 1px solid rgba(255,255,255,.18); }
.contact-hours dt { font-family: var(--serif); font-size: 1.2rem; }
.contact-hours dd { margin: 0; text-align: right; }
.contact-hours dd span { display: block; color: #c8bdb3; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.contact-hours .response-time { margin-top: 2rem; color: #ded5cd; }
.contact-hours .response-time strong { color: #fff; }
.contact-social { padding: clamp(4rem, 8vw, 7rem) 1rem; text-align: center; background: var(--cream); }
.contact-social h2 { margin: .5rem 0 1rem; font: 500 clamp(2.7rem, 5vw, 5rem)/1 var(--serif); }
.contact-social > p:not(.eyebrow) { max-width: 650px; margin: 0 auto; color: #625852; }
.contact-social > div { display: flex; justify-content: center; gap: .7rem; margin-top: 2rem; }
.contact-social > div span { padding: .7rem 1.2rem; border: 1px solid #bfae9c; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
@media(max-width:760px){.contact-hero{padding:4rem 1.2rem}.contact-hero h1{font-size:clamp(3.2rem,15vw,5rem)}.contact-details{grid-template-columns:1fr}.contact-card{min-height:0;padding:2.5rem 1.4rem}.contact-hours dl div{display:block}.contact-hours dd{margin-top:.5rem;text-align:left}.contact-social>div{flex-wrap:wrap}}
.service-policy-page { background: var(--ivory); }
.service-policy-hero { padding: clamp(4rem, 8vw, 8rem) 1rem; text-align: center; background: linear-gradient(135deg,#f2e8dc,var(--cream),#ead9c2); }
.service-policy-hero h1 { margin: .5rem 0 1.2rem; font: 500 clamp(3.5rem, 7vw, 7rem)/.96 var(--serif); letter-spacing: -.045em; }
.service-policy-hero > p:last-child { max-width: 730px; margin: auto; color: #625852; font-size: 1.05rem; line-height: 1.8; }
.service-policy-layout { display: grid; grid-template-columns: 260px minmax(0, 760px); justify-content: center; align-items: start; gap: clamp(3rem, 8vw, 8rem); padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 5vw, 5rem); }
.policy-index { position: sticky; top: 110px; display: grid; border-top: 1px solid #d7c9bc; }
.policy-index > p { margin: 0; padding: 1rem 0; color: #876a35; font-size: .67rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.policy-index a { display: flex; justify-content: space-between; gap: .5rem; padding: .8rem 0; border-top: 1px solid #e4d9cf; font-size: .78rem; }
.policy-copy section { position: relative; padding: 0 0 3.5rem; scroll-margin-top: 120px; }
.policy-copy section > span { color: var(--gold); font-size: .7rem; letter-spacing: .15em; }
.policy-copy h2 { margin: .25rem 0 1rem; font: 500 clamp(2.2rem, 4vw, 3.7rem)/1.05 var(--serif); }
.policy-copy h3 { margin-top: 1.5rem; font: 500 1.25rem var(--serif); }
.policy-copy p,.policy-copy li { color: #514944; line-height: 1.85; }
.policy-copy ul { display: grid; gap: .5rem; padding-left: 1.2rem; }
.policy-copy .policy-highlight { padding: 1.2rem 1.4rem; border-left: 2px solid var(--gold); background: var(--cream); }
.policy-copy aside { margin-top: 1.5rem; padding: 1.4rem; border: 1px solid #d8cabd; background: #fff; color: #655a53; font-size: .86rem; line-height: 1.75; }
.policy-copy .button { margin-top: 1.2rem; }
.policy-next { padding: clamp(4rem, 7vw, 6rem) 1rem; text-align: center; background: var(--espresso); color: #fff; }
.policy-next .eyebrow { color: var(--light-gold); }
.policy-next h2 { margin: .4rem 0 1rem; font: 500 clamp(2.7rem, 5vw, 5rem)/1 var(--serif); }
.policy-next .button { background: var(--light-gold); border-color: var(--light-gold); color: var(--black); }
@media(max-width:760px){.service-policy-hero{padding:4rem 1.2rem}.service-policy-layout{grid-template-columns:1fr;padding:3.5rem 1.2rem;gap:3rem}.policy-index{position:static}.policy-copy section{padding-bottom:2.5rem}}
.privacy-policy-page .service-policy-hero > p { max-width: 820px; margin: 0 auto 1rem; color: #625852; line-height: 1.8; }
.privacy-policy-page .service-policy-hero .policy-updated { width: max-content; margin: 0 auto 1.7rem; padding: .4rem .8rem; border: 1px solid #cdbda9; color: #75591e; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.privacy-policy-layout { grid-template-columns: 280px minmax(0, 800px); }
.privacy-policy-page .policy-copy a { color: #745615; text-decoration: underline; text-underline-offset: 3px; }
.privacy-policy-page .policy-copy address { padding: 1.4rem; border-left: 2px solid var(--gold); background: var(--cream); font-style: normal; line-height: 1.8; }
.cookie-type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cookie-type-grid article { padding: 1.4rem; border: 1px solid #d8cabd; background: #fff; }
.cookie-type-grid article h3 { margin-top: 0; }
.cookie-reset-button { font: inherit; }
@media(max-width:760px){.cookie-type-grid{grid-template-columns:1fr}.cookie-banner-action{flex-direction:column}.cookie-banner-action button{width:100%}}
.direct-products{position:relative;overflow:hidden}.direct-products .section-heading{padding-right:7rem}.direct-product-controls{position:absolute;right:clamp(1rem,4vw,4rem);top:clamp(2.8rem,6vw,5.2rem);display:flex;gap:.5rem}.direct-product-controls button{width:44px;height:44px;border:1px solid #cbbda9;border-radius:50%;background:#fff;color:var(--espresso);font-size:1.2rem;cursor:pointer}.direct-product-controls button:hover{background:var(--espresso);color:#fff}.direct-product-track{display:flex;gap:1.2rem;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:1rem}.direct-product-track::-webkit-scrollbar{display:none}.direct-product-track .product-card{flex:0 0 calc((100% - 4.8rem)/5);min-width:210px;scroll-snap-align:start}.direct-product-link{display:inline-block;margin-top:.75rem;font-size:.78rem;border-bottom:1px solid var(--gold)}
@media(max-width:900px){.direct-product-track .product-card{flex-basis:min(42vw,280px)}}@media(max-width:600px){.direct-products .section-heading{padding-right:0}.direct-product-controls{position:static;justify-content:flex-end;margin:-.5rem 0 1rem}.direct-product-track .product-card{flex-basis:min(72vw,280px)}}
.info-page-hero--text-only{grid-template-columns:1fr}

/* Polished storefront homepage */
.home-hero-slider { background: #f5eee6; border-bottom: 1px solid #ded1c3; }
.home-hero-slider .hero { min-height: clamp(640px, 77vh, 820px); }
.home-hero-slider .hero::after { background: linear-gradient(90deg, rgba(248,243,236,.98) 0%, rgba(248,243,236,.93) 32%, rgba(248,243,236,.38) 57%, transparent 76%); }
.home-hero-slider .hero-copy { width: min(720px, 57vw); padding: clamp(4rem, 7vw, 8rem); }
.home-hero-slider .hero-copy h1 { max-width: 650px; margin: .55rem 0 1.3rem; font: 500 clamp(3.8rem, 6vw, 6.6rem)/.94 var(--serif); letter-spacing: -.05em; }
.home-hero-slider .hero-copy > p:not(.eyebrow) { max-width: 560px; color: #514640; font-size: 1.03rem; line-height: 1.72; }
.home-hero-slider .hero-product-focus picture img { object-position: center; }
.home-hero-slider .hero-seasonal-focus picture img { object-position: center; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.3rem; margin-top: 1.5rem; }
.hero-actions .button { margin-top: 0; }
.hero-secondary-link { padding: .75rem 0; border-bottom: 1px solid var(--gold); font-size: .79rem; font-weight: 600; }
.home-hero-slider .festival-controls { bottom: 1.5rem; border-radius: 999px; box-shadow: 0 10px 30px rgba(45,31,26,.08); }

.home-trust-bar { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); max-width: 1500px; margin: auto; padding: 1.2rem clamp(1rem,5vw,5rem); background: #fff; border-bottom: 1px solid #e5dbd0; }
.home-trust-bar p { display: grid; grid-template-columns: auto 1fr; gap: .15rem .8rem; align-items: center; margin: 0; padding: .55rem clamp(.7rem,2vw,2rem); border-right: 1px solid #e8ddd2; }
.home-trust-bar p:last-child { border-right: 0; }
.home-trust-bar span { grid-row: 1 / 3; color: #9a783d; font: 500 1.2rem var(--serif); }
.home-trust-bar strong { font-size: .78rem; letter-spacing: .02em; }
.home-trust-bar small { color: #746962; font-size: .69rem; line-height: 1.45; }

.home-category-section { padding: clamp(4.5rem,8vw,8rem) clamp(1rem,4vw,4rem); background: var(--ivory); }
.home-section-intro { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.2rem; }
.home-section-intro h2 { max-width: 850px; margin: .35rem 0 0; font: 500 clamp(2.8rem,5vw,5.2rem)/.98 var(--serif); letter-spacing: -.04em; }
.home-section-intro .lead { max-width: 680px; color: #685e57; }
.home-category-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: clamp(.7rem,1.5vw,1.35rem); }
.home-category-card { position: relative; min-height: clamp(330px,36vw,570px); overflow: hidden; background: var(--cream); }
.home-category-card::after { content: ''; position: absolute; inset: 48% 0 0; background: linear-gradient(transparent,rgba(30,19,15,.76)); }
.home-category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.home-category-card:hover img,.home-category-card:focus-visible img { transform: scale(1.035); }
.home-category-card span { position: absolute; z-index: 1; right: 1.1rem; bottom: 1.15rem; left: 1.1rem; display: flex; justify-content: space-between; align-items: end; gap: .5rem; color: #fff; }
.home-category-card strong { font: 500 clamp(1.35rem,2vw,2rem) var(--serif); }
.home-category-card small { flex: 0 0 auto; padding-bottom: .18rem; font-size: .68rem; }

.home-product-edit { background: #fff; }
.home-product-edit .section-heading h2 { max-width: 900px; font-size: clamp(2.8rem,5vw,5rem); letter-spacing: -.04em; }
.home-product-edit .section-heading .lead { max-width: 650px; }
.home-product-edit > .text-link { display: table; margin: 2rem auto 0; }

.home-brand-story { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(460px,.95fr); gap: clamp(3rem,8vw,9rem); padding: clamp(5rem,9vw,9rem) clamp(1rem,7vw,7rem); background: #2d1f1a; color: #fff; }
.home-brand-story-copy { align-self: center; max-width: 760px; }
.home-brand-story-copy .eyebrow { color: var(--light-gold); }
.home-brand-story-copy h2 { margin: .6rem 0 1.6rem; font: 500 clamp(3.2rem,5.5vw,6rem)/.96 var(--serif); letter-spacing: -.045em; }
.home-brand-story-copy > p:not(.eyebrow) { max-width: 650px; color: #ded4ce; line-height: 1.85; }
.home-brand-story-copy .text-link { display: inline-block; margin-top: 1.2rem; color: #fff; border-color: var(--light-gold); }
.home-proof-grid { display: grid; align-self: center; border-top: 1px solid rgba(255,255,255,.22); }
.home-proof-grid article { display: grid; grid-template-columns: 2.4rem 1fr; gap: .35rem 1rem; padding: 1.7rem 0; border-bottom: 1px solid rgba(255,255,255,.22); }
.home-proof-grid span { grid-row: 1 / 3; color: var(--light-gold); font: 500 1.1rem var(--serif); }
.home-proof-grid h3 { margin: 0; font: 500 1.55rem var(--serif); }
.home-proof-grid p { margin: 0; color: #cfc4be; font-size: .84rem; line-height: 1.65; }

.home-icons { background: #f8f3ed; }
.home-icons .product-grid { margin-top: 2.5rem; }
.home-review-section { background: #fff; }
.home-review-section .review-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.home-review-section .review-grid figure { min-height: 260px; display: flex; flex-direction: column; justify-content: space-between; }
.home-newsletter { padding-block: clamp(5rem,9vw,9rem); background: linear-gradient(135deg,#efe0cf,#faf5ef 56%,#ead4c0); }
.home-newsletter > p:not(.eyebrow) { max-width: 650px; margin-inline: auto; }

@media (max-width: 1050px) {
    .home-category-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .home-category-card:nth-child(n+4) { min-height: 420px; }
    .home-brand-story { grid-template-columns: 1fr 1fr; gap: 3rem; padding-inline: 3rem; }
}

@media (max-width: 800px) {
    .home-hero-slider .festival-slide[hidden] { display: none; }
    .home-hero-slider .hero { display: grid; grid-template-rows: minmax(430px,61svh) auto; min-height: 0; align-items: stretch; }
    .home-hero-slider .hero::after { display: none; }
    .home-hero-slider .hero picture { position: relative; inset: auto; grid-row: 1; }
    .home-hero-slider .hero picture img { position: absolute; inset: 0; }
    .home-hero-slider .hero-product-focus picture img { object-position: 70% center; }
    .home-hero-slider .hero-seasonal-focus picture img { object-position: 69% center; }
    .home-hero-slider .hero-copy,.home-hero-slider .hero-position-right .hero-copy { grid-row: 2; width: 100%; padding: 2.2rem 1.25rem 5.1rem; background: #f7f1ea; text-align: left; }
    .home-hero-slider .hero-copy h1 { margin-bottom: 1rem; font-size: clamp(2.75rem,12vw,4rem); }
    .home-hero-slider .hero-copy > p:not(.eyebrow) { font-size: .92rem; line-height: 1.6; }
    .home-hero-slider .festival-controls { bottom: .8rem; }
    .home-trust-bar { display: flex; overflow-x: auto; padding: .85rem 0; scroll-snap-type: x mandatory; }
    .home-trust-bar p { flex: 0 0 82vw; border-right: 1px solid #e8ddd2; scroll-snap-align: start; }
    .home-category-section { padding: 4rem 1rem; }
    .home-section-intro { display: block; }
    .home-section-intro > .text-link { display: inline-block; margin-top: 1rem; }
    .home-category-grid { display: flex; overflow-x: auto; gap: .8rem; padding-bottom: .6rem; scroll-snap-type: x mandatory; }
    .home-category-card,.home-category-card:nth-child(n+4) { flex: 0 0 min(76vw,310px); min-height: 410px; scroll-snap-align: start; }
    .home-brand-story { grid-template-columns: 1fr; padding: 5rem 1.25rem; }
    .home-brand-story-copy h2 { font-size: clamp(3rem,13vw,4.8rem); }
    .home-review-section .review-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .home-hero-slider .hero { grid-template-rows: minmax(390px,56svh) auto; }
    .hero-actions { align-items: flex-start; flex-direction: column; }
    .home-section-intro h2,.home-product-edit .section-heading h2 { font-size: clamp(2.65rem,13vw,3.8rem); }
    .home-category-card,.home-category-card:nth-child(n+4) { min-height: 370px; }
    .home-proof-grid article { grid-template-columns: 2rem 1fr; }
}

/* Compact, premium storefront footer */
.site-footer { display: block; padding: 0; background: #32131d; color: #fff; }
.footer-shell { width: min(100%,1540px); margin: 0 auto; padding: 0 clamp(1.25rem,5vw,5rem); }
.footer-content { display: grid; grid-template-columns: 1.25fr .55fr .9fr 1.3fr; gap: clamp(2rem,4.5vw,5rem); align-items: start; padding: clamp(2.8rem,4.4vw,4.25rem) 0 clamp(2.2rem,3.5vw,3.4rem); }
.footer-kicker { margin: 0 0 .75rem; color: #d8bc87; font-size: .64rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.footer-newsletter h2 { max-width: 430px; margin: 0 0 .8rem; font: 500 clamp(1.8rem,2.5vw,2.65rem)/1.02 var(--serif); letter-spacing: -.035em; }
.footer-newsletter > p:not(.footer-kicker) { max-width: 440px; margin: 0 0 1rem; color: #d4c5c1; font-size: .76rem; line-height: 1.55; }
.footer-email-field { display: grid; grid-template-columns: minmax(0,1fr) auto; border-bottom: 1px solid rgba(255,255,255,.65); }
.footer-email-field input { min-width: 0; padding: .78rem 0; border: 0; background: transparent; color: #fff; font: inherit; outline: 0; }
.footer-email-field input::placeholder { color: #c9bbb7; opacity: 1; }
.footer-email-field:focus-within { border-color: #e0c58e; box-shadow: 0 1px 0 #e0c58e; }
.footer-email-field button { display: inline-flex; align-items: center; gap: .6rem; padding: .7rem 0 .7rem 1rem; border: 0; background: transparent; color: #fff; font: 700 .68rem var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.footer-email-field button span { color: #dec38b; font-size: 1.15rem; transition: transform .2s ease; }
.footer-email-field button:hover span,.footer-email-field button:focus-visible span { transform: translateX(4px); }
.footer-newsletter small { display: block; margin-top: .65rem; color: #a99894; font-size: .61rem; line-height: 1.45; }
.site-footer .footer-brand { max-width: 390px; }
.footer-logo { display: block; width: max-content; margin-bottom: 1.15rem; }
.footer-logo img { display: block; width: 108px; height: auto; }
.footer-brand-line { margin: 0 0 .65rem; color: #fff; font: 500 clamp(1.55rem,2vw,2rem)/1.15 var(--serif); }
.footer-brand-copy { max-width: 360px; margin: 0; color: #bfaeaa; font-size: .74rem; line-height: 1.65; }
.site-footer .footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; font-size: .72rem; }
.site-footer .footer-nav h2 { margin: 0 0 .5rem; color: #dec38b; font: 700 .64rem var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.site-footer .footer-nav a { position: relative; color: #eee5e2; line-height: 1.35; }
.site-footer .footer-nav a::after { content: ''; position: absolute; right: 0; bottom: -3px; left: 0; height: 1px; background: #dec38b; transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.site-footer .footer-nav a:hover,.site-footer .footer-nav a:focus-visible { color: #fff; }
.site-footer .footer-nav a:hover::after,.site-footer .footer-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.footer-assurance { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.footer-assurance > div { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: center; padding: 1rem clamp(.7rem,2vw,2rem); border-right: 1px solid rgba(255,255,255,.18); }
.footer-assurance > div:first-child { padding-left: 0; }
.footer-assurance > div:last-child { padding-right: 0; border-right: 0; }
.footer-assurance span { color: #dec38b; font: 500 1.35rem var(--serif); }
.footer-assurance p { margin: 0; }
.footer-assurance strong,.footer-assurance small { display: block; }
.footer-assurance strong { font-size: .76rem; letter-spacing: .02em; }
.footer-assurance small { margin-top: .25rem; color: #aa9995; font-size: .66rem; }
.site-footer .footer-legal { display: flex; grid-column: auto; justify-content: space-between; gap: 1rem 2rem; margin: 0; padding: 1rem 0 1.2rem; border-top: 0; color: #a99894; font-size: .62rem; letter-spacing: .025em; }
.site-footer .footer-legal p { max-width: none; margin: 0; color: inherit; font-size: inherit; }
.site-footer .footer-legal strong { color: #e8dedb; font-weight: 600; letter-spacing: .07em; }

@media (max-width: 900px) {
    .footer-content { grid-template-columns: 1fr 1fr; gap: 3rem 2rem; }
    .footer-newsletter h2 { max-width: 500px; }
}

@media (max-width: 600px) {
    .footer-shell { padding: 0 1.25rem; }
    .footer-content { grid-template-columns: 1fr 1.35fr; gap: 3rem 1.5rem; padding: 3.8rem 0 3rem; }
    .footer-brand,.footer-newsletter { grid-column: 1 / -1; }
    .footer-brand { order: 1; }
    .footer-nav { order: 2; }
    .footer-newsletter { order: 3; padding-top: .5rem; }
    .footer-newsletter h2 { font-size: clamp(2.35rem,11vw,3.3rem); }
    .footer-email-field { grid-template-columns: 1fr; }
    .footer-email-field button { justify-content: space-between; padding: .9rem 0; border-top: 1px solid rgba(255,255,255,.18); }
    .site-footer .footer-nav { grid-column: auto; gap: .65rem; }
    .footer-assurance { grid-template-columns: 1fr; }
    .footer-assurance > div,.footer-assurance > div:first-child,.footer-assurance > div:last-child { padding: 1.2rem 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.15); }
    .footer-assurance > div:last-child { border-bottom: 0; }
    .site-footer .footer-legal { display: grid; justify-content: start; line-height: 1.6; }
}

/* Compact mobile shortcuts: primary journeys remain one tap away. */
.mobile-quick-nav { display: none; }

@media (max-width: 520px) {
    body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
    .mobile-quick-nav {
        position: fixed;
        z-index: 80;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        min-height: calc(64px + env(safe-area-inset-bottom));
        padding-bottom: env(safe-area-inset-bottom);
        overflow: hidden;
        background: rgba(255,255,255,.98);
        border: 1px solid rgba(93,40,54,.15);
        border-bottom: 0;
        border-radius: 15px 15px 0 0;
        box-shadow: 0 -8px 28px rgba(45,31,26,.13);
        backdrop-filter: blur(16px);
    }
    .mobile-quick-nav a {
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 64px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .2rem;
        padding: .4rem .12rem .3rem;
        border-right: 1px solid rgba(93,40,54,.09);
        color: #685d58;
        text-align: center;
        -webkit-tap-highlight-color: transparent;
    }
    .mobile-quick-nav a:last-child { border-right: 0; }
    .mobile-quick-nav a[aria-current="page"] { background: #fff7f7; color: #5d2836; }
    .mobile-quick-nav a[aria-current="page"]::before { position: absolute; top: 0; right: 22%; left: 22%; height: 2px; background: #b87373; content: ''; }
    .mobile-quick-nav svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
    .mobile-quick-nav span { overflow: hidden; max-width: 100%; font-size: .58rem; font-weight: 600; line-height: 1.12; text-overflow: ellipsis; white-space: nowrap; }

    /* Search and bag stay available in the compact top header. */
    .header-actions { position: static; z-index: auto; display: flex; min-height: 0; justify-self: end; gap: .05rem; padding: 0; background: transparent; border: 0; box-shadow: none; backdrop-filter: none; }
    .header-search { display: block; }
    .customer-actions { display: flex; gap: .05rem; }
    .header-search > summary,.customer-actions > a { width: 38px; min-width: 38px; min-height: 44px; flex-direction: row; padding: 0; }
    .header-search > summary span,.customer-actions .action-label { position: absolute; width: 1px; height: 1px; overflow: hidden; }
    .customer-actions > a:first-child,.customer-actions > a:nth-child(2) { display: none; }
    .customer-actions > a:last-child { display: flex; }
    .customer-actions .action-count { top: 1px; right: -1px; }
    .header-search form { bottom: calc(72px + env(safe-area-inset-bottom)); }
    .cookie-banner { bottom: calc(64px + env(safe-area-inset-bottom)); }
}

/* Compact charcoal footer and larger mobile branding. */
.site-footer { background: #292929; color: #f4f4f4; }
.footer-content { gap: 2rem; padding-block: 2.5rem; }
.site-footer .footer-brand-copy,.site-footer .footer-newsletter > p,.site-footer .footer-newsletter small,.site-footer .footer-nav a,.footer-assurance small { color: #c5c5c5; }
.footer-newsletter h2 { font-size: clamp(1.7rem,2.4vw,2.3rem); }
.footer-store-details { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; padding: 1.5rem 0; }
.site-footer .footer-region { width: fit-content; margin: 0; padding: .65rem .8rem; border: 1px solid #5c5c5c; color: #eee; font-size: .75rem; }
.site-footer .footer-payments p { margin: 0 0 .6rem; color: #d5d5d5; font-size: .75rem; }
.footer-payments ul { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0; list-style: none; }
.footer-payments li { display: flex; align-items: center; justify-content: center; width: 45px; height: 28px; border: 1px solid #ddd; border-radius: 3px; background: #fff; line-height: 1; }
.payment-visa { color: #1434cb; font-size: .85rem; font-weight: 600; font-style: italic; }
.payment-mastercard svg { width: 36px; height: 24px; }
.footer-payments .payment-amex { background: #176bb0; color: white; font-size: .42rem; font-weight: 600; text-align: center; }
.site-footer .footer-legal { border-top: 1px solid #505050; padding-top: 1rem; color: #c5c5c5; }
@media (max-width: 700px) {
    .footer-content { gap: 1.7rem 1rem; padding: 2rem 0; }
    .footer-newsletter h2 { max-width: 340px; font-size: 1.9rem; }
    .footer-assurance > div,.footer-assurance > div:first-child,.footer-assurance > div:last-child { padding: .8rem 0; }
    .footer-store-details { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
    .site-header { grid-template-columns: minmax(44px,1fr) auto minmax(76px,1fr); min-height: 98px; }
    .site-header .logo-link { padding: .2rem; }
    .site-header .logo-link img { width: clamp(110px,30vw,140px); }
}

.footer-payments .payment-wallet { width: 70px; color: #202124; font-family: Arial, sans-serif; font-size: 11px; font-weight: 600; white-space: nowrap; }

/* Compact two-column category browsing on phones. */
@media (max-width: 800px) {
    .home-category-section { padding: 1.5rem 1rem; }
    .home-category-section .home-section-intro { margin-bottom: 1rem; }
    .home-category-section .home-section-intro h2 { font-size: clamp(1.7rem, 7vw, 2.3rem); }
    .home-category-section .home-section-intro > .text-link { margin-top: .5rem; }
    .home-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; overflow: visible; padding-bottom: 0; scroll-snap-type: none; }
    .home-category-card,.home-category-card:nth-child(n+4) { min-width: 0; min-height: 0; height: auto; border-radius: 6px; }
    .home-category-card::after { display: none; }
    .home-category-card img { display: block; width: 100%; height: clamp(100px, 18svh, 145px); object-fit: contain; background: #f6eee3; }
    .home-category-card span { position: static; display: flex; justify-content: center; padding: .45rem .3rem; color: var(--espresso); background: #fffaf5; }
    .home-category-card strong { font: 500 .85rem/1.3 var(--sans); text-align: center; }
    .home-category-card small { display: none; }
}

/* Match the footer brand mark to the header. */
.footer-logo.logo-link { display: inline-flex; padding: .35rem .6rem; }
.footer-logo.logo-link img { width: clamp(112px, 11vw, 155px); height: auto; }
@media (max-width: 700px) {
    .footer-logo.logo-link { padding: .2rem; }
    .footer-logo.logo-link img { width: clamp(110px, 30vw, 140px); }
}

/* Burgundy footer, connected social channels and compact category photos. */
.site-footer { background: #3b1020; color: #fff7f2; }
.site-footer .footer-social { margin-top: 1.4rem; }
.site-footer .footer-social h3 { margin: 0 0 .7rem; font: 600 .7rem var(--sans); letter-spacing: .12em; text-transform: uppercase; color: #fff7f2; }
.site-footer .footer-social ul { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; padding: 0; margin: 0; }
.site-footer .footer-social li { margin: 0; }
.site-footer .footer-social a { display: inline-flex; align-items: center; gap: .5rem; width: auto; min-height: 44px; height: auto; padding: .65rem .75rem; border: 1px solid #c595a6; border-radius: 5px; color: #fff7f2; font-size: .75rem; }
.site-footer .footer-social svg { width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; }
.site-footer .footer-social a:hover { background: #571a30; }
.site-footer .footer-social a:focus-visible,.whatsapp-contact:focus-visible { outline: 3px solid #e0c58e; outline-offset: 4px; }
.site-footer .footer-legal { border-color: #a15d76; }
.whatsapp-contact { position: fixed; right: 18px; bottom: 22px; z-index: 35; display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; border: 2px solid #fff; border-radius: 50%; background: #20c65a; color: #fff; box-shadow: 0 3px 12px #0003; }
.whatsapp-contact svg { width: 29px; height: 29px; fill: currentColor; }
.whatsapp-contact:hover { background: #169c46; }
@media (max-width: 800px) {
    .whatsapp-contact { right: 14px; bottom: calc(80px + env(safe-area-inset-bottom)); }
    .home-category-grid { max-width: 340px; margin-inline: auto; gap: .9rem 1.2rem; }
    .home-category-card,.home-category-card:nth-child(n+4) { overflow: visible; background: transparent; }
    .home-category-card img { width: clamp(88px, 25vw, 112px); height: clamp(88px, 25vw, 112px); margin-inline: auto; border-radius: 14px; object-fit: cover; }
    .home-category-card span { background: transparent; padding: .45rem .1rem; }
    .home-category-card strong { font-size: .75rem; }
}

/* Show jewellery worn by models in the mobile category thumbnails. */
.home-category-photo { display: block; height: 100%; }
@media (max-width: 800px) {
    .home-category-section { background: #fff; }
    .home-category-card .home-category-photo { position: relative; display: block; width: clamp(88px, 25vw, 112px); height: clamp(88px, 25vw, 112px); margin-inline: auto; overflow: hidden; border-radius: 14px; }
    .home-category-card .home-category-photo img { position: absolute; width: var(--photo-width, 100%); max-width: none; height: auto; left: var(--photo-left, 0); top: var(--photo-top, 0); margin: 0; border-radius: 0; }
    .home-category-card:hover img,.home-category-card:focus-visible img { transform: none; }
}

/* Keep the full supplied collage visible at every screen size. */
.home-hero-slider .hero-evergreen-focus { min-height: 0; padding: 0 0 55px; background: #f7f1ea; }
.home-hero-slider .hero-evergreen-focus:not([hidden]) { display: block; }
.home-hero-slider .hero-evergreen-focus::after { display: none; }
.home-hero-slider .hero-collage-link { display: block; width: 100%; }
.home-hero-slider .hero-collage-link picture { display: block; position: static; }
.home-hero-slider .hero-collage-link picture img { display: block; position: static; width: 100%; height: auto; object-fit: contain; }
.hero-collage-link:focus-visible { outline: 3px solid #651e38; outline-offset: -3px; }

/* One blush and burgundy palette across the storefront. */
body.theme-rose {
    --ivory: #fff7f7; --cream: #fff7f7; --espresso: #651e38;
    --gold: #92556a; --light-gold: #e6c8d2;
    --button-bg: #651e38; --button-border: #651e38; --button-text: #fff7f7;
    --button-secondary-text: #651e38;
}
body.theme-rose .announcement { background: #651e38 !important; color: #fff7f7 !important; }
body.theme-rose .home-hero-slider,
body.theme-rose .home-trust-bar,
body.theme-rose .home-category-section,
body.theme-rose .home-product-edit,
body.theme-rose .home-brand-story,
body.theme-rose .home-icons,
body.theme-rose .home-review-section,
body.theme-rose .home-newsletter,
body.theme-rose .home-hero-slider .hero-evergreen-focus,
body.theme-rose .home-hero-slider .hero-copy {
    background: #fff7f7; color: #651e38;
}
body.theme-rose .home-hero-slider .hero::after { background: linear-gradient(90deg, #fff7f7 0%, rgba(255,247,247,.93) 32%, rgba(255,247,247,.38) 57%, transparent 76%); }
body.theme-rose .home-brand-story-copy > p:not(.eyebrow),
body.theme-rose .home-proof-grid p,
body.theme-rose .home-trust-bar small { color: #74515e; }
body.theme-rose .home-brand-story-copy .eyebrow,
body.theme-rose .home-brand-story-copy .text-link,
body.theme-rose .home-proof-grid span { color: #92556a; }
body.theme-rose .home-proof-grid,
body.theme-rose .home-proof-grid article,
body.theme-rose .home-trust-bar,
body.theme-rose .home-trust-bar p { border-color: #e6c8d2; }
body.theme-rose .home-brand-story-copy .text-link { border-color: #92556a; }
body.theme-rose .home-review-section .review-grid figure { background: #fff7f7; border-color: #e6c8d2; }
body.theme-rose .home-hero-slider .festival-controls { background: #fff7f7; border-color: #e6c8d2; }
.site-footer { background: #3b1020; color: #fff7f7; }
.site-footer .footer-nav a,.site-footer .footer-newsletter > p,.site-footer .footer-newsletter small,.site-footer .footer-assurance small,.site-footer .footer-legal { color: #efdce3; }

@media (min-width: 1051px) { .home-category-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* Gold mobile navigation and borderless header logo. */
.site-header > .menu-toggle { color: #c6a15b; }
.site-header > .logo-link { border: 0; }

/* Desktop campaign: balanced copy and a full-height jewellery portrait. */
@media (min-width: 801px) {
    .home-hero-slider .hero-product-focus { min-height: clamp(460px, 64vh, 620px); background: #faf7f2; }
    .home-hero-slider .hero-product-focus::after { display: none; }
    .home-hero-slider .hero-product-focus picture { left: 44%; width: 56%; }
    .home-hero-slider .hero-product-focus picture img { object-position: 70% center; }
    .home-hero-slider .hero-product-focus .hero-copy { width: 44%; padding: 3rem clamp(2rem, 4vw, 5rem) 4.5rem; background: transparent; }
    .home-hero-slider .hero-product-focus .hero-copy h1 { font-size: clamp(3rem, 4.8vw, 4.8rem); line-height: 1.04; letter-spacing: -.035em; }
    .home-hero-slider .hero-product-focus .hero-copy > p:not(.eyebrow) { max-width: 25rem; font-size: .95rem; line-height: 1.65; }
    .home-hero-slider .hero-product-focus .hero-actions { align-items: flex-start; flex-direction: column; gap: .9rem; }
    body.theme-rose .home-hero-slider .hero-product-focus { background: #fff7f7; }
}
@media (min-width: 1051px) {
    .site-header { min-height: 128px; }
    .site-header .logo-link img { width: 112px; }
    .site-navigation { height: 42px; }
}

/* Keep category titles and links readable in the desktop grid. */
@media (min-width: 801px) {
    .home-category-card span { flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: .55rem; left: clamp(.75rem, 1.2vw, 1.1rem); right: clamp(.75rem, 1.2vw, 1.1rem); }
    .home-category-card strong { display: block; max-width: 100%; font-size: clamp(1.25rem, 1.7vw, 1.75rem); line-height: 1.15; overflow-wrap: anywhere; }
    .home-category-card small { display: block; padding: 0; line-height: 1.4; }
}

/* Keep the footer logo identical to the header at each screen size. */
.footer-logo.logo-link { border: 0; }
.footer-logo.logo-link img { width: 105px; }
@media (min-width: 1051px) {
    .footer-logo.logo-link img { width: 112px; }
}
@media (max-width: 700px) {
    .footer-logo.logo-link img { width: clamp(110px, 30vw, 140px); }
}
