:root {
  --brand-orange: #d64b1c;
  --action: #b83c16;
  --action-dark: #8f2b0e;
  --gold: #e9aa46;
  --cocoa: #472b21;
  --cocoa-deep: #302019;
  --ink: #2d2521;
  --muted: #71645d;
  --cream: #fff8ee;
  --cream-deep: #f2e2cf;
  --sand: #ead8c2;
  --white: #fffdfa;
  --paper: #fdfaf5;
  --line: #e2d4c4;
  --line-dark: #cbb8a2;
  --success: #176b45;
  --error: #a32727;
  --whatsapp: #176744;
  --radius-sm: .65rem;
  --radius: 1rem;
  --radius-lg: 1.5rem;
  --radius-xl: 2rem;
  --shadow-sm: 0 10px 30px rgba(63, 38, 28, .07);
  --shadow: 0 20px 55px rgba(63, 38, 28, .11);
  --shadow-raised: 0 26px 70px rgba(63, 38, 28, .15);
  --shell: 78rem;
  --prose: 48rem;
  --header-offset: 6rem;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-offset); }
body { margin: 0; background: var(--white); color: var(--ink); font-family: Inter, "Noto Sans Devanagari", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1rem; line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .2em; }
a:hover { color: var(--action-dark); }
button, input, textarea, select { font: inherit; }
button, a, summary, input, textarea, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #7f2c13; outline-offset: 3px; box-shadow: none; border-radius: .25rem; }
main:focus { outline: none; }
[id] { scroll-margin-top: var(--header-offset); }

.shell { width: min(calc(100% - 2rem), var(--shell)); margin-inline: auto; }
.narrow, .narrow-copy { max-width: var(--prose); }
.prose-shell { width: min(100%, 58rem); }
.section { padding: 4.75rem 0; }
.section-tint { background: var(--cream); }

.skip-link { position: fixed; left: 1rem; top: -6rem; z-index: 1000; padding: .75rem 1rem; border-radius: .6rem; background: var(--cocoa-deep); color: white; font-weight: 800; }
.skip-link:focus { top: 1rem; color: white; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

h1, h2, h3 { margin-top: 0; color: var(--cocoa); font-family: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif; font-weight: 700; line-height: 1.06; letter-spacing: -.03em; }
h1 { margin-bottom: 1.15rem; font-size: clamp(2.65rem, 11vw, 5.65rem); }
h2 { margin-bottom: 1rem; font-size: clamp(2rem, 6vw, 3.55rem); }
h3 { margin-bottom: .55rem; font-size: 1.35rem; }
p { margin: 0 0 1rem; }
.eyebrow { margin: 0 0 .75rem; color: var(--action-dark); font-size: .76rem; font-weight: 900; letter-spacing: .145em; text-transform: uppercase; }
.eyebrow-light { color: #f6c876; }
.hero-lede, .lede { max-width: 44rem; color: #62534c; font-size: clamp(1.02rem, 2.5vw, 1.18rem); line-height: 1.68; }
.microcopy, .fine-print { color: var(--muted); font-size: .86rem; line-height: 1.5; }
.local-name { margin: .15rem 0 0; color: var(--muted); font-size: .95rem; }
.local-name-large { margin-top: -.35rem; font-size: 1.1rem; }
.rich-copy > :last-child { margin-bottom: 0; }

.button-row { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.button { min-height: 3rem; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .74rem 1.05rem; border: 1px solid transparent; border-radius: .82rem; font-weight: 850; line-height: 1.15; text-align: center; text-decoration: none; cursor: pointer; transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.button:hover { transform: translateY(-1px); }
.button-large { min-height: 3.35rem; padding-inline: 1.25rem; }
.button-primary { background: var(--action); color: white; box-shadow: 0 8px 22px rgba(184, 60, 22, .16); }
.button-primary:hover { background: var(--action-dark); color: white; box-shadow: 0 10px 26px rgba(143, 43, 14, .2); }
.button-secondary { border-color: var(--cocoa); background: transparent; color: var(--cocoa); }
.button-secondary:hover { background: var(--cream); color: var(--cocoa); }
.button-quiet { border-color: var(--line-dark); background: rgba(255, 253, 250, .72); color: var(--cocoa); }
.button-quiet:hover { background: white; color: var(--cocoa); }
.button-whatsapp { background: var(--whatsapp); color: white; }
.button-whatsapp:hover { background: #0f5336; color: white; }
.button-light { border-color: rgba(255,255,255,.48); background: #fff9ef; color: var(--cocoa); }
.button-light:hover { background: white; color: var(--cocoa); }
.button-small { min-height: 2.65rem; padding: .55rem .8rem; font-size: .9rem; }
.button-block { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: .38rem; color: var(--action-dark); font-weight: 850; text-decoration: none; }
.text-link:hover { gap: .52rem; }
.text-button { min-height: 2.55rem; border: 0; background: transparent; color: var(--action-dark); font-weight: 800; text-decoration: underline; cursor: pointer; }

.utility-bar { display: none; background: var(--cocoa-deep); color: #f7eee6; font-size: .76rem; }
.utility-inner { min-height: 2.1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.utility-location { font-weight: 850; letter-spacing: .02em; }
.utility-points { display: flex; align-items: center; gap: 1.4rem; color: #d9c9bc; }
.utility-points a { color: #fff4e8; font-weight: 750; text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(226, 212, 196, .82); background: rgba(255, 253, 250, .94); backdrop-filter: blur(14px); }
.header-inner { min-height: 5.15rem; display: flex; align-items: center; gap: .85rem; }
.brand { flex: 0 0 auto; margin-right: auto; }
.brand img { width: 8.9rem; height: auto; }
.desktop-nav { display: none; align-items: center; gap: 1.15rem; }
.desktop-nav a { position: relative; color: var(--cocoa); font-size: .9rem; font-weight: 800; text-decoration: none; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.4rem; height: 2px; border-radius: 2px; background: var(--action); transition: right .16s ease; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { display: none; align-items: center; gap: .55rem; margin-left: .5rem; }
.order-chip { min-height: 2.8rem; display: inline-flex; align-items: center; gap: .55rem; padding: .45rem .55rem .45rem .85rem; border: 1px solid var(--line-dark); border-radius: 999px; color: var(--cocoa); font-size: .84rem; font-weight: 850; text-decoration: none; }
.order-chip strong { min-width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: 999px; background: var(--cream-deep); font-size: .75rem; }
.header-whatsapp { min-height: 2.8rem; padding-inline: .9rem; font-size: .86rem; }
.mobile-nav { position: relative; margin-left: auto; }
.mobile-nav summary { min-height: 2.9rem; display: flex; align-items: center; gap: .55rem; padding: .55rem .75rem; border: 1px solid var(--line-dark); border-radius: .8rem; list-style: none; color: var(--cocoa); cursor: pointer; font-size: .9rem; font-weight: 850; }
.mobile-nav summary::-webkit-details-marker { display: none; }
.menu-glyph { font-size: 1.1rem; line-height: 1; }
.mobile-nav nav { position: absolute; top: calc(100% + .7rem); right: 0; width: min(21rem, calc(100vw - 2rem)); padding: .55rem; border: 1px solid var(--line); border-radius: 1rem; background: white; box-shadow: var(--shadow-raised); }
.mobile-nav nav a { min-height: 3rem; display: flex; flex-direction: column; justify-content: center; padding: .65rem .75rem; border-radius: .7rem; color: var(--cocoa); text-decoration: none; }
.mobile-nav nav a:hover { background: var(--cream); }
.mobile-nav nav a span { color: var(--muted); font-size: .76rem; font-weight: 500; }
.mobile-nav nav .mobile-whatsapp { margin-top: .35rem; background: #edf7f1; color: #15583c; }

.announcement { background: #f6d59e; color: var(--cocoa); padding: .65rem 0; font-size: .88rem; }
.announcement .shell { display: flex; gap: .7rem; }
.flash-stack { padding-top: .8rem; }
.flash { padding: .85rem 1rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--cream); }
.flash-success { border-color: #91bda5; background: #eef8f2; color: #125239; }
.flash-error { border-color: #dda8a8; background: #fff0f0; color: #7a1d1d; }

.home-hero { padding: 1.25rem 0 0; background: linear-gradient(180deg, #fffdf9 0%, #fffaf3 100%); }
.hero-stage { position: relative; isolation: isolate; overflow: hidden; display: grid; gap: 2rem; padding: 2rem 1.3rem; border: 1px solid #eadcc8; border-radius: var(--radius-xl); background: linear-gradient(140deg, #fff7e9 0%, #f6e6d1 100%); }
.hero-stage::before { content: ""; position: absolute; z-index: -1; width: 18rem; height: 18rem; right: -7rem; top: -7rem; border: 1px solid rgba(184, 60, 22, .12); border-radius: 50%; box-shadow: 0 0 0 3.2rem rgba(233, 170, 70, .05), 0 0 0 7rem rgba(184,60,22,.035); }
.hero-copy { align-self: center; }
.hero-copy h1 { max-width: 11ch; }
.hero-copy .hero-lede { max-width: 37rem; }
.hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1.8rem 0 0; padding-top: 1.25rem; border-top: 1px solid rgba(71,43,33,.18); }
.hero-facts div { min-width: 0; }
.hero-facts dt { color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.hero-facts dd { margin: .15rem 0 0; color: var(--cocoa); font-size: .9rem; font-weight: 850; line-height: 1.3; }
.hero-visual { position: relative; align-self: stretch; }
.hero-image-frame { overflow: hidden; height: 100%; min-height: 22rem; border: .45rem solid rgba(255,253,250,.85); border-radius: 1.65rem; background: var(--cream-deep); box-shadow: var(--shadow); }
.hero-image-frame img { width: 100%; height: 100%; object-fit: cover; }
.hero-note { position: absolute; left: .75rem; right: .75rem; bottom: .75rem; display: flex; align-items: center; gap: .7rem; padding: .72rem .85rem; border: 1px solid rgba(255,255,255,.48); border-radius: .85rem; background: rgba(48,32,25,.88); color: white; backdrop-filter: blur(8px); }
.hero-note-dot { flex: 0 0 auto; width: .62rem; height: .62rem; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 .25rem rgba(233,170,70,.18); }
.hero-note strong, .hero-note span { display: block; }
.hero-note strong { font-size: .83rem; }
.hero-note span { color: #e5d6ca; font-size: .72rem; }

.trust-band { margin-top: 1.25rem; background: var(--cocoa); color: #f8eee6; }
.trust-band-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trust-band-grid > div { padding: 1.25rem 1rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.trust-band-grid > div:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.1); }
.trust-band-grid span { display: block; margin-bottom: .3rem; color: #dcb679; font-size: .67rem; font-weight: 900; letter-spacing: .1em; }
.trust-band-grid strong { display: block; color: white; font-family: "Iowan Old Style", Georgia, serif; font-size: 1.05rem; }
.trust-band-grid p { display: none; margin: .35rem 0 0; color: #d9cbc1; font-size: .8rem; line-height: 1.45; }

.section-intro { max-width: 52rem; margin-bottom: 2rem; }
.section-intro h2 { max-width: 16ch; }
.section-intro > p:last-child { color: var(--muted); }
.section-intro-split { max-width: none; display: grid; gap: 1rem; align-items: end; }
.section-intro-split > div:last-child { max-width: 33rem; }
.section-featured { background: var(--white); }

.product-grid { display: grid; grid-template-columns: 1fr; gap: 2rem 1.3rem; }
.product-grid-featured { grid-auto-flow: column; grid-auto-columns: minmax(17.5rem, 82vw); grid-template-columns: none; gap: 1rem; overflow-x: auto; margin-right: -1rem; padding: .2rem 1rem .9rem 0; scroll-snap-type: x proximity; scrollbar-width: thin; }
.product-grid-featured .product-card { scroll-snap-align: start; }
.product-card { min-width: 0; }
.product-card-media-wrap { position: relative; overflow: hidden; border-radius: 1.35rem; background: var(--cream); box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease; }
.product-card:hover .product-card-media-wrap { transform: translateY(-3px); box-shadow: var(--shadow); }
.product-card-image { display: block; aspect-ratio: 1 / 1; overflow: hidden; }
.product-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.product-card:hover .product-card-image img { transform: scale(1.025); }
.product-category-badge { position: absolute; left: .75rem; top: .75rem; padding: .38rem .6rem; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; background: rgba(255,253,250,.9); color: var(--cocoa); font-size: .65rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; backdrop-filter: blur(6px); }
.product-card-body { padding: .9rem .2rem 0; }
.product-card-title { min-height: 4.2rem; }
.product-card h3 { margin: 0; font-family: inherit; font-size: 1.08rem; font-weight: 850; letter-spacing: -.012em; line-height: 1.35; }
.product-card h3 a { text-decoration: none; }
.product-card-price-row { display: flex; align-items: end; justify-content: space-between; gap: .8rem; margin-top: .65rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.price { display: flex; flex-direction: column; gap: .05rem; margin: 0; }
.price strong { color: var(--cocoa); font-size: 1.15rem; line-height: 1.1; }
.price span { color: var(--muted); font-size: .76rem; font-weight: 700; }
.product-card-cta { flex: 0 0 auto; color: var(--action-dark); font-size: .82rem; font-weight: 900; text-decoration: none; }
.product-card-note { margin: .55rem 0 0; max-width: 32ch; }
.product-image-fallback { width: 100%; height: 100%; display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #fff7de, var(--cream-deep)); color: var(--brand-orange); font-family: "Iowan Old Style", Georgia, serif; font-size: 1.5rem; font-weight: 800; }
.product-image-fallback.large { min-height: 26rem; }

.category-section { background: var(--cocoa-deep); color: #efe4dc; }
.category-layout { display: grid; gap: 2rem; }
.category-copy h2 { color: white; }
.category-copy p:last-child { color: #cfbeb2; }
.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.category-card { min-height: 5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 1rem; background: rgba(255,255,255,.055); color: white; font-family: "Iowan Old Style", Georgia, serif; font-size: 1.05rem; font-weight: 700; text-decoration: none; transition: background .16s ease, transform .16s ease; }
.category-card:hover { transform: translateY(-2px); background: rgba(255,255,255,.1); color: white; }
.category-card span:last-child { color: var(--gold); font-family: system-ui, sans-serif; }
.story-showcase { background: #f8ecde; }
.story-showcase-grid { display: grid; gap: 2rem; align-items: center; }
.story-photo-wrap { position: relative; width: min(100%, 33rem); justify-self: center; }
.story-photo-wrap::before { content: ""; position: absolute; inset: 1.2rem -1rem -1rem 1rem; z-index: 0; border-radius: 1.5rem; background: var(--gold); }
.story-photo-wrap img { position: relative; z-index: 1; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 1.5rem; box-shadow: var(--shadow); }
.story-photo-caption { position: absolute; z-index: 2; left: 1rem; right: 1rem; bottom: 1rem; padding: .65rem .8rem; border-radius: .7rem; background: rgba(48,32,25,.83); color: white; font-size: .76rem; font-weight: 750; backdrop-filter: blur(7px); }
.story-copy h2 { max-width: 13ch; }
.story-lede { color: #5d5049; font-size: 1.03rem; }
.order-section { background: var(--white); }
.steps-grid { position: relative; list-style: none; display: grid; gap: 1rem; padding: 0; margin: 2rem 0 0; }
.steps-grid li { position: relative; padding: 1.2rem 1.1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--white); }
.steps-grid li > span { display: inline-block; margin-bottom: .85rem; color: var(--action); font-size: .72rem; font-weight: 950; letter-spacing: .1em; }
.steps-grid strong { display: block; color: var(--cocoa); font-family: "Iowan Old Style", Georgia, serif; font-size: 1.22rem; }
.steps-grid p { margin: .35rem 0 0; color: var(--muted); font-size: .9rem; }
.center-action { margin-top: 2rem; text-align: center; }
.campaign-home { padding-top: 0; }
.campaign-home-card { display: grid; gap: 1.5rem; align-items: center; padding: 2rem; border-radius: 1.5rem; background: linear-gradient(135deg, var(--action-dark), var(--cocoa)); color: white; }
.campaign-home-card h2 { color: white; }
.campaign-home-card p:not(.eyebrow) { color: #ecdcd0; }
.enquiries-section { padding-top: 0; }
.enquiry-grid { display: grid; gap: 1rem; }
.enquiry-card { min-height: 20rem; display: flex; flex-direction: column; justify-content: end; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.5rem; }
.enquiry-card h2 { max-width: 12ch; font-size: clamp(2rem, 7vw, 3.1rem); }
.enquiry-card p { max-width: 35rem; }
.enquiry-card .button { align-self: flex-start; margin-top: .5rem; }
.enquiry-card-festive { background: linear-gradient(145deg, #fff8ec 0%, #f3d8ad 100%); }
.enquiry-card-bulk { border-color: transparent; background: linear-gradient(145deg, #503126 0%, #2f201a 100%); color: #efe0d6; }
.enquiry-card-bulk h2 { color: white; }
.enquiry-card-bulk p { color: #d8c7bc; }

.page-hero, .catalogue-hero, .order-builder-hero { position: relative; overflow: hidden; padding: 3.8rem 0; background: var(--cream); }
.page-hero::after, .catalogue-hero::after { content: ""; position: absolute; width: 18rem; height: 18rem; right: -7rem; bottom: -11rem; border: 1px solid rgba(184,60,22,.12); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(233,170,70,.06); }
.page-hero h1 { max-width: 13ch; font-size: clamp(2.8rem, 9vw, 5rem); }
.page-hero-warm { background: linear-gradient(145deg, #fff8eb 0%, #f5dfbf 100%); }
.inline-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .9rem; font-weight: 850; }

.catalogue-hero { padding-bottom: 2.7rem; }
.catalogue-hero-grid { display: grid; gap: 1.2rem; align-items: end; }
.catalogue-hero h1 { max-width: 11ch; margin-bottom: 0; font-size: clamp(2.9rem, 10vw, 5.2rem); }
.catalogue-legend { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; color: var(--cocoa); font-size: .82rem; font-weight: 800; }
.catalogue-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.legend-dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--action); }
.legend-rate { background: var(--gold); }
.catalogue-toolbar-wrap { position: relative; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(255,253,250,.96); }
.catalogue-toolbar { padding: .9rem 0 .2rem; }
.catalogue-tools { max-width: 38rem; margin-bottom: .7rem; }
.search-row { display: flex; gap: .5rem; }
.search-row input { min-width: 0; }
.category-row { display: flex; gap: .5rem; overflow-x: auto; padding: .15rem .05rem .7rem; scrollbar-width: thin; }
.category-pill { flex: 0 0 auto; min-height: 2.55rem; display: inline-flex; align-items: center; padding: .5rem .8rem; border: 1px solid var(--line); border-radius: 999px; background: white; color: var(--cocoa); font-size: .82rem; font-weight: 800; text-decoration: none; }
.category-pill:hover, .category-pill.is-selected { border-color: var(--action); background: #fff0e6; color: var(--action-dark); }
.menu-results-section { padding-top: 3rem; }
.results-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.65rem; }
.results-heading h2 { margin-bottom: 0; font-size: clamp(1.7rem, 4vw, 2.35rem); }
.results-meta { margin: 0 0 .25rem; color: var(--muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.catalogue-product-grid { gap-block: 2.4rem; }

input, textarea, select { width: 100%; min-height: 3.05rem; padding: .7rem .78rem; border: 1px solid #bda993; border-radius: .7rem; background: white; color: var(--ink); }
textarea { min-height: 7rem; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--action); }
.catalogue-tools label, .field label, fieldset legend, .variant-card label, .basket-update label { display: block; margin-bottom: .35rem; color: var(--cocoa); font-weight: 850; }
.field { min-width: 0; }
.field ul { list-style: none; margin: .3rem 0 0; padding: 0; }
.field li { margin: .3rem 0; }
.field li label { min-height: 2.75rem; display: flex; align-items: center; gap: .55rem; font-weight: 650; }
.field input[type="radio"] { width: 1.15rem; min-height: auto; height: 1.15rem; }
.errorlist { color: var(--error); margin: .3rem 0; padding-left: 1.2rem; }
.help-text { margin: .35rem 0 0; color: var(--muted); font-size: .84rem; }
.field-error input, .field-error textarea, .field-error select { border-color: var(--error); }
.field-error-text { margin: .35rem 0 0; color: var(--error); font-size: .88rem; }
.form-error-summary { padding: .9rem 1rem; border: 1px solid #dda8a8; border-radius: .75rem; background: #fff0f0; color: #7a1d1d; }
.form-error-summary ul { margin: .45rem 0 0; padding-left: 1.25rem; }
.form-error-summary a { color: inherit; font-weight: 750; }
.hp-wrap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.consent-field { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; }
.consent-field input[type="checkbox"] { width: 1.15rem; height: 1.15rem; min-height: 0; margin-top: .2rem; }
.consent-field label { color: var(--cocoa); font-weight: 700; }
.consent-field .field-error-text { grid-column: 2; }
.panel-form { padding: 1.25rem; border: 1px solid var(--line); border-radius: 1.2rem; background: white; box-shadow: var(--shadow-sm); }
.panel-form > * + * { margin-top: 1rem; }
.form-grid { display: grid; gap: 1rem; }
.required-mark { color: var(--error); }

.product-detail-section { padding: 1.6rem 0 5rem; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.2rem; color: var(--muted); font-size: .8rem; }
.breadcrumbs a { color: var(--cocoa); }
.product-detail-grid { display: grid; gap: 2rem; align-items: start; }
.product-detail-media-wrap { min-width: 0; }
.product-detail-media { overflow: hidden; aspect-ratio: 1 / 1; border-radius: 1.55rem; background: var(--cream); box-shadow: var(--shadow-sm); }
.product-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.media-caption { display: flex; justify-content: space-between; gap: 1rem; margin-top: .7rem; color: var(--muted); font-size: .73rem; font-weight: 750; }
.product-detail-copy { min-width: 0; }
.product-detail-copy h1 { margin-bottom: .65rem; font-size: clamp(2.7rem, 10vw, 4.75rem); }
.purchase-intro { margin: 1.6rem 0 1rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.purchase-intro span { display: block; color: var(--cocoa); font-weight: 900; }
.purchase-intro p { margin: .25rem 0 0; color: var(--muted); font-size: .88rem; }
.product-safety-note { margin: .8rem 0 1rem; padding: .9rem 1rem; border: 1px solid rgba(184, 76, 28, .2); border-radius: .9rem; background: #fff8ee; }
.product-safety-note strong { color: var(--cocoa); }
.product-safety-note p { margin: .22rem 0 .3rem; color: var(--muted); font-size: .84rem; }
.product-safety-note .text-link { font-size: .82rem; }
.variant-stack { display: grid; gap: .8rem; }
.variant-card { position: relative; overflow: hidden; padding: 1rem; border: 1px solid var(--line); border-radius: 1.05rem; background: white; }
.variant-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--action); }
.variant-card-rate::before { background: var(--gold); }
.variant-top { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.variant-type { display: block; color: var(--muted); font-size: .67rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.variant-label { margin: .15rem 0 0; color: var(--cocoa); font-weight: 850; }
.variant-price { margin: 0; color: var(--cocoa); font-size: 1.55rem; font-weight: 950; line-height: 1; }
.variant-price small { font-size: .72rem; font-weight: 800; }
.variant-explainer { margin: .75rem 0 0; }
.variant-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; margin-top: .9rem; }
.variant-input input { max-width: none; }
.order-assurance { margin-top: 1rem; padding: 1rem; border-radius: .9rem; background: var(--cream); }
.order-assurance strong { color: var(--cocoa); }
.order-assurance p { margin: .2rem 0 0; color: var(--muted); font-size: .88rem; }
.product-info-grid { display: grid; gap: 1rem; margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.product-info-card { padding: 1.4rem; border-radius: 1.15rem; background: var(--cream); }
.product-info-card h2 { font-size: clamp(1.7rem, 4vw, 2.25rem); }
.food-info { margin: 0; }
.food-info div { padding: .8rem 0; border-bottom: 1px solid var(--line); }
.food-info div:last-child { border-bottom: 0; }
.food-info dt { color: var(--cocoa); font-weight: 900; }
.food-info dd { margin: .2rem 0 0; color: #534841; }
.related-section { background: #faf4eb; }
.product-grid-related { grid-auto-flow: column; grid-auto-columns: minmax(16.5rem, 78vw); grid-template-columns: none; overflow-x: auto; padding-bottom: .8rem; scroll-snap-type: x proximity; }
.product-grid-related .product-card { scroll-snap-align: start; }

.order-builder-hero { padding: 3rem 0; background: linear-gradient(145deg, #fff7e9, #f5e1c3); }
.order-builder-head { display: grid; gap: 1.5rem; align-items: end; }
.order-builder-head h1 { max-width: 10ch; font-size: clamp(2.8rem, 9vw, 4.8rem); }
.builder-steps { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; margin: 0; padding: 0; }
.builder-steps li { display: flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .72rem; font-weight: 850; }
.builder-steps span { width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border: 1px solid var(--line-dark); border-radius: 50%; background: white; color: var(--cocoa); }
.builder-steps .is-current { color: var(--action-dark); }
.builder-steps .is-current span { border-color: var(--action); background: var(--action); color: white; }
.basket-section { background: var(--paper); }
.basket-layout { display: grid; gap: 1.5rem; }
.basket-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.basket-heading h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.4rem); }
.basket-lines { display: grid; gap: .75rem; }
.basket-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .85rem 1rem; padding: 1.05rem; border: 1px solid var(--line); border-radius: 1rem; background: white; }
.basket-line-main { display: flex; gap: .7rem; min-width: 0; }
.basket-line-index { flex: 0 0 auto; color: #b89b82; font-size: .68rem; font-weight: 900; letter-spacing: .08em; }
.basket-line h3 { margin: 0; font-family: inherit; font-size: 1rem; font-weight: 900; letter-spacing: -.01em; }
.basket-line p { margin: .2rem 0 0; color: var(--muted); font-size: .86rem; }
.basket-line-price { color: var(--cocoa); font-weight: 950; }
.basket-update { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; align-items: end; }
.basket-update label { font-size: .8rem; }
.basket-remove { grid-column: 1 / -1; }
.basket-summary { align-self: start; padding: 1.35rem; border: 1px solid #d8c4ae; border-radius: 1.2rem; background: #fff8ed; box-shadow: var(--shadow-sm); }
.summary-kicker { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; color: var(--cocoa); font-size: .82rem; font-weight: 900; }
.summary-kicker strong { min-width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: 50%; background: var(--cocoa); color: white; font-size: .7rem; }
.summary-row { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--line); }
.summary-note { margin: .8rem 0 0; }
.summary-divider { height: 1px; margin: 1.2rem 0; background: var(--line); }
.basket-summary h2 { margin-bottom: .8rem; font-family: inherit; font-size: 1.15rem; letter-spacing: 0; }
.stack-form { display: grid; gap: 1rem; }
.fulfilment-field ul { display: grid; grid-template-columns: 1fr; gap: .45rem; }
.fulfilment-field li label { padding: .55rem .65rem; border: 1px solid var(--line); border-radius: .7rem; background: white; }
.empty-state { grid-column: 1 / -1; padding: 2rem; border: 1px dashed var(--line-dark); border-radius: 1.2rem; background: var(--cream); }
.empty-state-large { min-height: 20rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }

.notice-card { max-width: 52rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.25rem; background: var(--cream); }
.campaign-grid { display: grid; gap: 1.25rem; }
.campaign-card { display: grid; overflow: hidden; border: 1px solid var(--line); border-radius: 1.35rem; background: white; box-shadow: var(--shadow-sm); }
.campaign-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--cream-deep); }
.campaign-media img { width: 100%; height: 100%; object-fit: cover; }
.campaign-copy { padding: 1.4rem; }
.campaign-copy h3 { font-size: clamp(1.65rem, 4vw, 2.35rem); }
.campaign-dates { padding: .75rem .9rem; border-radius: .7rem; background: var(--cream); }
.feature-grid-three { display: grid; gap: .8rem; }
.feature-card { padding: 1.25rem; border: 1px solid var(--line); border-radius: 1rem; background: white; }
.feature-card h2 { font-family: inherit; font-size: 1.12rem; font-weight: 900; letter-spacing: 0; }
.feature-number { display: inline-block; margin-bottom: .7rem; color: var(--action-dark); font-size: .72rem; font-weight: 950; letter-spacing: .1em; }
.form-layout { display: grid; gap: 1.75rem; align-items: start; }
.form-intro { max-width: 34rem; }
.form-intro h2 { max-width: 12ch; }
.about-hero-grid { display: grid; gap: 2rem; align-items: center; }
.about-portrait { position: relative; overflow: hidden; width: min(100%, 31rem); justify-self: center; border-radius: 1.5rem; background: var(--cream-deep); box-shadow: var(--shadow); }
.about-portrait img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.story-block { display: grid; gap: 1.4rem; padding: 1.5rem 0; }
.story-block + .story-block { border-top: 1px solid var(--line); }
.story-block img { width: 100%; max-height: 34rem; object-fit: cover; border-radius: 1rem; }
.timeline { display: grid; gap: 0; margin-top: 2rem; }
.timeline-item { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid var(--line); }
.timeline-item > span { color: var(--action-dark); font-size: .8rem; font-weight: 950; }
.timeline-item h3 { margin: 0; font-family: inherit; font-size: 1.05rem; font-weight: 900; letter-spacing: 0; }
.timeline-item p { margin: .25rem 0 0; color: var(--muted); }
.order-journey { list-style: none; display: grid; gap: 0; padding: 0; margin: 0; }
.order-journey li { display: grid; grid-template-columns: 2.6rem 1fr; gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid var(--line); }
.order-journey li > span { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; border-radius: 50%; background: var(--action); color: white; font-size: .78rem; font-weight: 950; }
.order-journey h2 { margin: .15rem 0 .3rem; font-family: inherit; font-size: 1.08rem; font-weight: 900; letter-spacing: 0; }
.order-journey p { margin: 0; color: var(--muted); }
.faq-layout { display: grid; gap: 1.75rem; align-items: start; }
.faq-stack { display: grid; gap: .65rem; }
.faq-stack details { border: 1px solid var(--line); border-radius: .9rem; background: white; }
.faq-stack summary { min-height: 3.35rem; display: flex; align-items: center; padding: .8rem 1rem; cursor: pointer; color: var(--cocoa); font-weight: 900; }
.faq-stack details > div { padding: 0 1rem 1rem; color: #554a43; }
.contact-grid { display: grid; gap: 2rem; align-items: start; }
.contact-details { display: grid; gap: .7rem; }
.contact-item { padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--cream); }
.contact-item > span { display: block; margin-bottom: .25rem; color: var(--muted); font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.contact-item a { color: var(--action-dark); font-weight: 850; }
.contact-item p { margin: 0; }
.contact-item small { display: block; margin-top: .35rem; color: var(--muted); }
.policy-grid { display: grid; gap: .8rem; }
.policy-card { display: block; padding: 1.2rem; border: 1px solid var(--line); border-radius: 1rem; background: white; text-decoration: none; transition: transform .16s ease, box-shadow .16s ease; }
.policy-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.policy-card span { color: var(--action-dark); font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.policy-card h2 { margin: .45rem 0; font-family: inherit; font-size: 1.08rem; font-weight: 900; letter-spacing: 0; }
.policy-card p { margin: 0; color: var(--muted); }
.policy-body { font-size: 1.02rem; }
.contact-band { padding-top: 0; }
.contact-band-inner { display: grid; gap: 1.25rem; align-items: center; padding: 1.7rem; border-radius: 1.35rem; background: linear-gradient(135deg, #f3c36d, #e7a944); }

.site-footer { padding: 0 0 5.5rem; background: var(--cocoa-deep); color: #eaded5; }
.footer-cta { display: grid; gap: 1.5rem; align-items: end; padding: 3rem 0 2.4rem; border-bottom: 1px solid rgba(255,255,255,.13); }
.footer-cta h2 { max-width: 13ch; color: white; font-size: clamp(2.1rem, 5vw, 3.2rem); }
.footer-cta p:not(.eyebrow) { max-width: 38rem; color: #d6c5b9; }
.footer-cta-actions { margin-top: 0; }
.footer-grid { display: grid; gap: 2rem; padding-top: 2.5rem; }
.footer-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: .42rem; }
.footer-grid h2 { margin: 0 0 .45rem; color: white; font-family: inherit; font-size: .82rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.footer-grid a { min-height: 2rem; display: inline-flex; align-items: center; color: #f3e8df; font-size: .9rem; text-decoration: none; }
.footer-brand p { max-width: 25rem; color: #d7c6ba; }
.footer-logo { width: 10rem; height: auto; margin-bottom: .4rem; }
.footer-fine { color: #bda99b; }
.footer-bottom { display: flex; flex-direction: column; gap: .3rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.12); color: #bba89b; font-size: .75rem; }
.mobile-basket-bar { position: fixed; z-index: 90; left: 1rem; right: 1rem; bottom: .75rem; min-height: 3.25rem; display: flex; align-items: center; justify-content: space-between; padding: .72rem 1rem; border: 1px solid rgba(255,255,255,.16); border-radius: .9rem; background: var(--cocoa-deep); color: white; box-shadow: var(--shadow-raised); font-weight: 900; text-decoration: none; }
.mobile-basket-bar strong { min-width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--cocoa-deep); font-size: .75rem; }
.mobile-basket-bar:hover { color: white; }

@media (min-width: 38rem) {
  .shell { width: min(calc(100% - 3rem), var(--shell)); }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-grid-featured { grid-auto-columns: minmax(18rem, 46vw); }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .variant-form { grid-template-columns: minmax(7rem, .4fr) minmax(12rem, 1fr); align-items: end; }
  .basket-update { grid-template-columns: minmax(8rem, .35fr) auto; justify-content: start; }
  .form-grid.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fulfilment-field ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 48rem) {
  :root { --header-offset: 6.3rem; }
  .utility-bar { display: block; }
  .header-inner { min-height: 5.7rem; }
  .brand img { width: 10.4rem; }
  .hero-stage { grid-template-columns: minmax(0, .95fr) minmax(20rem, 1.05fr); gap: 2.5rem; padding: 3rem 2.2rem; }
  .hero-image-frame { min-height: 31rem; }
  .trust-band-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trust-band-grid > div { padding: 1.35rem 1.1rem; border-right: 1px solid rgba(255,255,255,.1); border-bottom: 0; }
  .trust-band-grid > div:last-child { border-right: 0; }
  .trust-band-grid p { display: block; }
  .section-intro-split { grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr); }
  .category-layout { grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.3fr); align-items: start; }
  .story-showcase-grid { grid-template-columns: minmax(18rem, .85fr) minmax(0, 1.15fr); gap: 4rem; }
  .steps-grid-home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .enquiry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-home-card { grid-template-columns: minmax(0, 1fr) auto; padding: 2.3rem; }
  .catalogue-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); gap: 3rem; }
  .catalogue-toolbar { display: grid; grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr); gap: 1rem; align-items: end; padding-block: .8rem; }
  .catalogue-tools { margin: 0; }
  .category-row { justify-content: flex-end; padding-bottom: 0; }
  .product-detail-grid { grid-template-columns: minmax(0, 1.04fr) minmax(22rem, .96fr); gap: 3rem; }
  .product-detail-media-wrap { position: sticky; top: 7rem; }
  .product-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-grid-related { grid-auto-columns: minmax(17rem, 34vw); }
  .order-builder-head { grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr); gap: 3rem; }
  .basket-layout { grid-template-columns: minmax(0, 1.25fr) minmax(20rem, .75fr); gap: 2.25rem; }
  .basket-summary { position: sticky; top: 7rem; }
  .feature-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .form-layout { grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.3fr); gap: 3rem; }
  .about-hero-grid { grid-template-columns: minmax(0, 1.12fr) minmax(18rem, .88fr); gap: 3rem; }
  .faq-layout { grid-template-columns: minmax(15rem, .65fr) minmax(0, 1.35fr); gap: 3rem; }
  .contact-grid { grid-template-columns: minmax(18rem, .75fr) minmax(0, 1.25fr); gap: 3rem; }
  .footer-cta { grid-template-columns: minmax(0, 1.3fr) auto; }
  .footer-grid { grid-template-columns: 1.45fr .75fr 1fr .8fr; }
  .footer-bottom { flex-direction: row; justify-content: space-between; }
}

@media (min-width: 64rem) {
  .section { padding: 6rem 0; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap-inline: 1.55rem; }
  .product-grid-featured { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; margin-right: 0; padding-right: 0; }
  .catalogue-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-grid-related { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; }
  .steps-grid-home { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
  .steps-grid-home::before { content: ""; position: absolute; left: 8%; right: 8%; top: 1.68rem; height: 1px; background: var(--line); }
  .steps-grid-home li { border: 0; background: transparent; padding: 0 1rem 0 0; }
  .steps-grid-home li > span { position: relative; z-index: 1; width: 3.3rem; height: 3.3rem; display: grid; place-items: center; margin-bottom: 1rem; border: 1px solid var(--line-dark); border-radius: 50%; background: white; }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 70rem) {
  .desktop-nav, .header-actions { display: flex; }
  .mobile-nav { display: none; }
  .brand img { width: 11.6rem; }
  .header-inner { min-height: 6.15rem; }
  .catalogue-toolbar-wrap { position: sticky; top: 6.15rem; }
  .site-footer { padding-bottom: 3rem; }
  .mobile-basket-bar { display: none; }
}

@media (min-width: 82rem) {
  .hero-stage { padding: 4rem 3.8rem; }
  .hero-copy h1 { font-size: 5.45rem; }
  .hero-image-frame { min-height: 36rem; }
}

@media (max-width: 29rem) {
  .hero-facts { grid-template-columns: 1fr; }
  .hero-facts div { display: flex; justify-content: space-between; gap: 1rem; }
  .product-grid-featured { grid-auto-columns: 87vw; }
  .search-row { flex-direction: column; }
  .category-grid { grid-template-columns: 1fr; }
  .builder-steps { grid-template-columns: 1fr; }
}

@media (max-width: 69.999rem) {
  body.has-mobile-basket { padding-bottom: 5.25rem; }
  body.has-mobile-basket { scroll-padding-bottom: 5.25rem; }
}

@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight; outline-offset: 3px; }
  .button, .category-pill, .category-card, .product-card-media-wrap, .panel-form, .faq-stack details, .variant-card { border: 1px solid CanvasText; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Task 6A editorial UI revamp additions */
.page-hero-grid { position: relative; z-index: 1; display: grid; gap: 2rem; align-items: center; }
.food-collage { display: grid; grid-template-columns: 1.25fr .75fr; grid-template-rows: repeat(2, 1fr); gap: .55rem; width: min(100%, 31rem); justify-self: center; }
.food-collage img { width: 100%; height: 100%; min-height: 0; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 1rem; box-shadow: var(--shadow-sm); }
.food-collage .food-collage-main { grid-row: 1 / 3; aspect-ratio: auto; }
.hero-side-card { position: relative; z-index: 1; padding: 1.35rem; border: 1px solid rgba(71,43,33,.16); border-radius: 1.2rem; background: rgba(255,253,250,.76); box-shadow: var(--shadow-sm); backdrop-filter: blur(7px); }
.hero-side-card > span { display: block; margin-bottom: .45rem; color: var(--action-dark); font-size: .7rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.hero-side-card strong { display: block; color: var(--cocoa); font-family: "Iowan Old Style", Georgia, serif; font-size: 1.45rem; line-height: 1.15; }
.hero-side-card p { margin: .65rem 0 0; color: var(--muted); }
.hero-side-card .text-link { margin-top: .75rem; }
.form-assurance { display: grid; gap: .2rem; margin-top: 1.25rem; padding: 1rem; border-left: 3px solid var(--gold); background: rgba(255,255,255,.55); color: var(--cocoa); }
.form-assurance strong { font-size: .85rem; }
.form-assurance span { color: var(--muted); font-size: .82rem; }
.about-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .55rem; margin-top: 1.5rem; }
.about-facts div { padding: .8rem .75rem; border: 1px solid rgba(71,43,33,.14); border-radius: .75rem; background: rgba(255,253,250,.55); }
.about-facts span, .about-facts strong { display: block; }
.about-facts span { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.about-facts strong { margin-top: .15rem; color: var(--cocoa); font-size: .9rem; }
.about-portrait > span { position: absolute; left: .8rem; right: .8rem; bottom: .8rem; padding: .6rem .75rem; border-radius: .65rem; background: rgba(48,32,25,.82); color: white; font-size: .75rem; font-weight: 750; backdrop-filter: blur(6px); }
.order-guide-grid { display: grid; gap: 2rem; align-items: start; }
.order-guide-intro { max-width: 30rem; }
.form-title { margin-bottom: 1.2rem; font-size: clamp(1.65rem, 4vw, 2.2rem); }
.policy-card { position: relative; padding-right: 3.4rem; }
.policy-card-arrow { position: absolute; right: 1.2rem; top: 50%; transform: translateY(-50%); color: var(--action-dark); font-size: 1.35rem; }
.policy-hero { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
.policy-document { padding: 1.4rem; border: 1px solid var(--line); border-radius: 1.2rem; background: white; box-shadow: var(--shadow-sm); }
.policy-contact { margin-top: 2rem; padding-top: 1.3rem; border-top: 1px solid var(--line); }
.policy-contact strong { color: var(--cocoa); }
.policy-contact p { color: var(--muted); }
.error-hero { min-height: 32rem; display: flex; align-items: center; }

@media (min-width: 48rem) {
  .page-hero-grid { grid-template-columns: minmax(0, 1.05fr) minmax(19rem, .95fr); gap: 3rem; }
  .order-guide-grid { grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.3fr); gap: 4rem; }
  .order-guide-intro { position: sticky; top: 7rem; }
  .policy-hero { flex-direction: row; align-items: end; justify-content: space-between; gap: 2rem; }
  .policy-document { padding: 2rem; }
}
@media (min-width: 48rem) {
  .steps-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .campaign-card { grid-template-columns: minmax(15rem, .8fr) minmax(0, 1.2fr); }
  .campaign-media { aspect-ratio: auto; min-height: 20rem; }
}

/* Task 6C.1B - approved v3 core presentation layer
   Deliberately scoped to the global shell plus home/menu/product/basket surfaces.
   Supporting-page component redesign remains Task 6C.2. */
:root {
  --shell: 77.5rem;
  --header-offset: 5.2rem;
  --radius-xl: 1.55rem;
}

body { font-size: .98rem; }
.shell { width: min(calc(100% - 2rem), var(--shell)); }
.section { padding: 3.4rem 0; }
h1 { font-size: clamp(2.35rem, 6vw, 4.15rem); }
h2 { font-size: clamp(1.8rem, 4vw, 2.85rem); }
.hero-lede, .lede { font-size: clamp(.98rem, 2vw, 1.08rem); line-height: 1.58; }
.button { min-height: 2.8rem; padding: .66rem .95rem; }
.button-large { min-height: 3rem; }

/* Global shell / header */
.site-header { background: rgba(255, 253, 250, .975); box-shadow: 0 5px 22px rgba(63, 38, 28, .045); }
.header-inner { min-height: 5.05rem; gap: .9rem; }
.brand { display: inline-flex; align-items: center; }
.brand img { width: 5.55rem; height: auto; }
.desktop-nav { gap: 1rem; }
.desktop-nav a { font-size: .84rem; }
.order-chip { min-height: 2.65rem; padding: .4rem .5rem .4rem .75rem; font-size: .8rem; }
.header-whatsapp { min-height: 2.65rem; font-size: .82rem; }
.mobile-nav summary { min-height: 2.7rem; padding: .5rem .7rem; }

/* Homepage: compact opening and products immediately after hero */
.home-hero { padding: .85rem 0 0; }
.hero-stage { gap: 1.25rem; padding: 1.2rem; border-radius: 1.4rem; }
.hero-copy h1 { max-width: 13ch; margin-bottom: .8rem; font-size: clamp(2.35rem, 8vw, 3.85rem); }
.hero-copy .hero-lede { max-width: 34rem; }
.hero-actions { margin-top: 1.1rem; }
.hero-image-frame { min-height: 0; aspect-ratio: 4 / 3; border-width: .32rem; border-radius: 1.2rem; }
.hero-note { left: .55rem; right: .55rem; bottom: .55rem; padding: .62rem .72rem; }
.home-products-first { padding-top: 2.8rem; }
.section-intro { margin-bottom: 1.35rem; }
.section-intro h2 { max-width: 20ch; }
.trust-band { margin-top: 0; }
.trust-band-grid > div { padding: .9rem .8rem; }
.trust-band-grid strong { font-family: inherit; font-size: .94rem; font-weight: 900; }
.category-section { padding-block: 2.9rem; }
.category-layout { gap: 1.25rem; }
.category-copy h2 { max-width: 17ch; margin-bottom: 0; }
.category-grid { gap: .55rem; }
.category-card { min-height: 3.2rem; padding: .7rem .85rem; border-radius: .7rem; }
.story-showcase-grid { gap: 2rem; }
.story-photo-wrap { width: min(100%, 24rem); }
.story-photo-wrap img { aspect-ratio: 4 / 5; object-fit: cover; }
.story-photo-wrap::before { inset: .7rem -.55rem -.55rem .7rem; border-radius: 1rem; }
.story-copy h2 { max-width: 16ch; }
.steps-grid-home { gap: .65rem; }
.steps-grid-home::before { display: none; }
.steps-grid-home li { min-height: 0; padding: .9rem; border: 1px solid var(--line); border-radius: .8rem; background: white; }
.steps-grid-home li > span { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; margin-bottom: .55rem; border-radius: 50%; background: var(--cream-deep); color: var(--cocoa); }
.steps-grid-home h2, .steps-grid-home strong { font-size: .95rem; }
.steps-grid-home p { font-size: .82rem; }
.center-action { margin-top: 1.25rem; }
.campaign-home-card { padding: 1.35rem; border-radius: 1rem; }
.enquiry-card { min-height: 0; padding: 1.3rem; border-radius: 1rem; }
.enquiry-card h2 { font-size: clamp(1.6rem, 4vw, 2.2rem); }

/* Catalogue and product cards */
.catalogue-hero { padding: 2rem 0 1.5rem; }
.catalogue-hero-grid { gap: .8rem; }
.catalogue-hero h1 { max-width: none; margin-bottom: 0; font-size: clamp(2.35rem, 6vw, 3.6rem); }
.catalogue-hero .hero-lede { max-width: 42rem; margin-bottom: .65rem; }
.catalogue-legend { margin-top: .45rem; gap: .8rem; }
.catalogue-toolbar-wrap { position: relative; z-index: 20; }
.catalogue-toolbar { padding: .75rem 0 .65rem; }
.catalogue-tools { max-width: 32rem; margin-bottom: .55rem; }
.category-row { gap: .4rem; padding-bottom: .15rem; }
.category-pill { min-height: 2.35rem; padding: .48rem .72rem; font-size: .78rem; }
.menu-results-section { padding-top: 2.3rem; }
.results-heading { margin-bottom: 1.15rem; }
.results-heading h2 { font-size: clamp(1.55rem, 3vw, 2rem); }
.product-grid, .catalogue-product-grid, .product-grid-featured, .product-grid-related {
  grid-auto-flow: row;
  grid-auto-columns: auto;
  grid-template-columns: 1fr;
  gap: 1.35rem .8rem;
  overflow: visible;
  margin-right: 0;
  padding: 0;
}
.product-card-media-wrap { border-radius: .9rem; box-shadow: 0 7px 20px rgba(63, 38, 28, .07); }
.product-card-image { aspect-ratio: 4 / 3; }
.product-category-badge { left: .5rem; top: .5rem; padding: .28rem .45rem; font-size: .56rem; }
.product-card-body { padding: .62rem .05rem 0; }
.product-card-title { min-height: 3.25rem; }
.product-card h3 { font-size: .98rem; line-height: 1.25; }
.product-card .local-name { margin-top: .08rem; font-size: .78rem; line-height: 1.35; }
.product-card-price-row { gap: .45rem; margin-top: .42rem; padding-top: .48rem; }
.price strong { font-size: 1rem; }
.price span { font-size: .7rem; }
.product-card-cta { font-size: .74rem; white-space: nowrap; }

/* Product detail / fixed-pack vs rate UX */
.product-detail-section { padding: 1.05rem 0 3.25rem; }
.breadcrumbs { margin-bottom: .85rem; }
.product-detail-grid { gap: 1.5rem; }
.product-detail-media { aspect-ratio: 4 / 3; border-radius: 1.1rem; }
.media-caption { margin-top: .5rem; font-size: .69rem; }
.product-detail-copy h1 { margin-bottom: .45rem; font-size: clamp(2.25rem, 6vw, 3.45rem); }
.local-name-large { margin-top: -.15rem; font-size: 1rem; }
.purchase-intro { margin: 1.15rem 0 .75rem; padding-top: .9rem; }
.variant-stack { gap: .65rem; }
.variant-card { padding: .85rem; border-radius: .8rem; }
.variant-price { font-size: 1.32rem; }
.variant-form { margin-top: .7rem; }
.variant-form-pack { grid-template-columns: minmax(5.5rem, .32fr) minmax(10rem, .68fr); align-items: end; }
.variant-explainer { margin-top: .55rem; }
.weight-request-form { display: block; }
.weight-presets { margin-top: .75rem; }
.weight-presets-label { display: block; margin-bottom: .38rem; color: var(--cocoa); font-size: .72rem; font-weight: 850; }
.weight-preset-row { display: flex; flex-wrap: wrap; gap: .38rem; }
.weight-preset { min-height: 2.35rem; padding: .45rem .7rem; border: 1px solid var(--line-dark); border-radius: .65rem; background: var(--cream); color: var(--cocoa); font: inherit; font-size: .8rem; font-weight: 850; cursor: pointer; }
.weight-preset:hover { border-color: var(--action); background: #fff0e6; color: var(--action-dark); }
.weight-entry-row { display: grid; gap: .55rem; margin-top: .7rem; }
.weight-estimate { display: grid; gap: .15rem; margin-top: .65rem; padding: .65rem .75rem; border-radius: .65rem; background: var(--cream); color: var(--cocoa); }
.weight-estimate-label { color: var(--muted); font-size: .67rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.weight-estimate output { font-size: .84rem; font-weight: 850; }
.weight-small-note { color: #75501a; font-size: .76rem; line-height: 1.4; }
.order-assurance { margin-top: .75rem; padding: .8rem; }
.product-info-grid { margin-top: 2.2rem; padding-top: 1.5rem; }
.related-section { padding-top: 2.7rem; }

/* Basket: functional, compact and no duplicate mobile review bar on this page */
.order-builder-hero { padding: 1.8rem 0; }
.order-builder-head { gap: 1rem; }
.order-builder-head h1 { max-width: none; margin-bottom: .55rem; font-size: clamp(2.2rem, 6vw, 3.3rem); }
.builder-steps { max-width: 24rem; }
.basket-section { padding-top: 2.4rem; }
.basket-layout { gap: 1.25rem; }
.basket-heading { margin-bottom: .75rem; }
.basket-heading h2 { font-size: 1.65rem; }
.basket-lines { gap: .6rem; }
.basket-line { gap: .65rem .85rem; padding: .85rem; border-radius: .8rem; }
.basket-line-main { gap: .55rem; }
.basket-line-price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.basket-line-price span { color: var(--muted); font-size: .63rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.basket-line-price strong { font-size: .98rem; }
.basket-formula { font-size: .75rem !important; }
.basket-update { gap: .45rem; }
.basket-remove { align-self: center; }
.basket-summary { padding: 1.05rem; border-radius: .9rem; box-shadow: 0 8px 24px rgba(63, 38, 28, .07); }
.summary-divider { margin: .9rem 0; }
.stack-form { gap: .75rem; }

/* Compact footer */
.site-footer { padding: 0 0 2rem; }
.footer-cta { gap: 1rem; padding: 1.7rem 0 1.35rem; }
.footer-cta h2 { max-width: 26ch; margin-bottom: .45rem; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.footer-cta p:not(.eyebrow) { margin-bottom: 0; font-size: .88rem; }
.footer-grid { gap: 1.4rem; padding-top: 1.5rem; }
.footer-logo-badge { display: inline-flex; padding: .28rem .38rem; border-radius: .65rem; background: #fff8ee; }
.footer-logo { width: 5.2rem; margin: 0; }
.footer-brand p { margin-bottom: .45rem; font-size: .86rem; }
.footer-grid a { min-height: 1.75rem; font-size: .84rem; }
.footer-bottom { margin-top: 1.25rem; }

@media (min-width: 24rem) {
  .product-grid, .catalogue-product-grid, .product-grid-featured, .product-grid-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 38rem) {
  .shell { width: min(calc(100% - 3rem), var(--shell)); }
  .weight-entry-row { grid-template-columns: minmax(8rem, .42fr) minmax(12rem, .58fr); align-items: end; }
  .basket-update { grid-template-columns: minmax(8rem, .35fr) auto; justify-content: start; }
}

@media (min-width: 48rem) {
  :root { --header-offset: 5.35rem; }
  .header-inner { min-height: 5.2rem; }
  .brand img { width: 6rem; }
  .hero-stage { grid-template-columns: minmax(0, 1.04fr) minmax(19rem, .96fr); gap: 1.7rem; padding: 1.7rem; }
  .hero-image-frame { min-height: 0; }
  .trust-band-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trust-band-grid > div { padding: .95rem .85rem; }
  .section-intro-split { grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); gap: 1.5rem; }
  .category-layout { grid-template-columns: minmax(14rem, .55fr) minmax(0, 1.45fr); align-items: center; }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .story-showcase-grid { grid-template-columns: minmax(15rem, .65fr) minmax(0, 1.35fr); gap: 2.5rem; }
  .steps-grid-home { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .enquiry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-home-card { grid-template-columns: minmax(0, 1fr) auto; padding: 1.55rem; }
  .catalogue-hero-grid { grid-template-columns: minmax(12rem, .55fr) minmax(0, 1.45fr); gap: 2rem; align-items: center; }
  .catalogue-toolbar { display: grid; grid-template-columns: minmax(17rem, .75fr) minmax(0, 1.25fr); gap: 1rem; align-items: center; padding-block: .65rem; }
  .catalogue-tools { margin: 0; }
  .category-row { justify-content: flex-end; padding-bottom: 0; }
  .product-grid, .catalogue-product-grid, .product-grid-featured, .product-grid-related { grid-template-columns: repeat(3, minmax(0, 1fr)); gap-inline: 1rem; }
  .product-detail-grid { grid-template-columns: minmax(0, .88fr) minmax(22rem, 1.12fr); gap: 2.25rem; }
  .product-detail-media-wrap { position: sticky; top: 6rem; }
  .product-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .order-builder-head { grid-template-columns: minmax(0, 1.15fr) minmax(17rem, .85fr); gap: 2rem; }
  .basket-layout { grid-template-columns: minmax(0, 1.2fr) minmax(19rem, .8fr); gap: 1.5rem; }
  .basket-summary { position: sticky; top: 6rem; }
  .footer-cta { grid-template-columns: minmax(0, 1.3fr) auto; }
  .footer-grid { grid-template-columns: 1.35fr .75fr 1fr .75fr; }
  .footer-bottom { flex-direction: row; justify-content: space-between; }
}

@media (min-width: 70rem) {
  .desktop-nav, .header-actions { display: flex; }
  .mobile-nav { display: none; }
  .brand img { width: 6.35rem; }
  .header-inner { min-height: 5.3rem; }
  .catalogue-toolbar-wrap { position: relative; top: auto; }
  .product-grid, .catalogue-product-grid, .product-grid-featured, .product-grid-related { grid-template-columns: repeat(4, minmax(0, 1fr)); gap-inline: 1.15rem; }
  .site-footer { padding-bottom: 2rem; }
  .mobile-basket-bar { display: none; }
}

@media (min-width: 82rem) {
  .hero-stage { padding: 2rem; }
  .hero-copy h1 { font-size: 4rem; }
  .hero-image-frame { min-height: 0; }
}

@media (max-width: 23.999rem) {
  .product-grid, .catalogue-product-grid, .product-grid-featured, .product-grid-related { grid-template-columns: 1fr; }
}

@media (max-width: 37.999rem) {
  .search-row { flex-direction: row; }
  .search-row .button { padding-inline: .8rem; }
  .category-row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .category-pill { flex: 0 0 auto; }
  .variant-form-pack { grid-template-columns: minmax(5rem, .36fr) minmax(10rem, .64fr); }
}

.footer-cta-compact { align-items: center; }

/* Task 6C.1B.1 - visual acceptance polish from real desktop/mobile screenshots.
   Scope remains presentation-only: no catalogue/order data or backend behaviour changes. */

/* Make the tightly cropped mark visibly read as the brand without making the masthead taller. */
.brand img { width: 5.95rem; }

/* Honest missing-photo state: brand cue + explicit status, not a faux product image/link label. */
.product-image-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 1rem;
  text-align: center;
  text-decoration: none;
}
.product-fallback-logo { width: min(42%, 6.6rem); height: auto; opacity: .94; }
.product-fallback-copy {
  color: var(--muted);
  font-family: Inter, "Noto Sans Devanagari", system-ui, sans-serif;
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: 1.3;
  text-transform: uppercase;
}
.product-image-fallback.large .product-fallback-logo { width: min(34%, 8.25rem); }
.product-image-fallback.large .product-fallback-copy { font-size: .72rem; }

/* The opening should sell food quickly, not behave like a full landing-page billboard. */
.hero-image-frame { aspect-ratio: 5 / 3; }
.home-products-first { padding-top: 2.15rem; }
.home-products-first .section-intro { margin-bottom: 1rem; }
.home-products-first .section-intro h2 { font-size: clamp(1.7rem, 3vw, 2.35rem); }
.home-products-first .section-intro-split > div:last-child p { margin-bottom: .35rem; }

/* Order review should remain a compact three-step journey, including 440px phones. */
.order-builder-hero { padding: 1.35rem 0; }
.order-builder-head h1 { font-size: clamp(2.05rem, 5vw, 2.85rem); }
.builder-steps { max-width: none; }
.basket-section { padding-top: 1.9rem; }

@media (max-width: 37.999rem) {
  .home-hero { padding-top: .55rem; }
  .hero-stage { gap: .85rem; padding: 1rem; border-radius: 1.15rem; }
  .hero-copy h1 { max-width: 12ch; margin-bottom: .55rem; font-size: clamp(2rem, 9.2vw, 2.35rem); line-height: 1.01; }
  .hero-copy .hero-lede { font-size: .91rem; line-height: 1.48; }
  .hero-actions { gap: .45rem; margin-top: .8rem; }
  .hero-actions .button { min-height: 2.62rem; padding: .58rem .78rem; font-size: .88rem; }
  .hero-image-frame { aspect-ratio: 5 / 3; border-width: .25rem; border-radius: .95rem; }
  .hero-note { left: .4rem; right: .4rem; bottom: .4rem; gap: .5rem; padding: .45rem .55rem; border-radius: .62rem; }
  .hero-note-dot { width: .5rem; height: .5rem; }
  .hero-note strong { font-size: .73rem; }
  .hero-note span { font-size: .63rem; line-height: 1.35; }

  .home-products-first { padding-top: 1.55rem; }
  .home-products-first .section-intro { margin-bottom: .78rem; }
  .home-products-first .section-intro-split { gap: .35rem; }
  .home-products-first .section-intro h2 { margin-bottom: .15rem; font-size: 1.58rem; }
  .home-products-first .section-intro-split > div:last-child p { margin-bottom: .2rem; font-size: .8rem; line-height: 1.42; }
  .home-products-first .text-link { font-size: .84rem; }

  /* Override the older <=29rem one-column step rule. */
  .builder-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; }
  .builder-steps li { min-width: 0; flex-direction: column; align-items: flex-start; gap: .18rem; font-size: .64rem; line-height: 1.2; }
  .builder-steps span { width: 1.45rem; height: 1.45rem; font-size: .68rem; }
  .order-builder-hero { padding: 1.15rem 0 1.25rem; }
  .order-builder-head { gap: .85rem; }
  .order-builder-head h1 { margin-bottom: .4rem; font-size: 2rem; }
  .order-builder-head .hero-lede { margin-bottom: 0; font-size: .9rem; line-height: 1.5; }
  .basket-section { padding-top: 1.55rem; }
}

@media (min-width: 48rem) {
  .brand img { width: 6.45rem; }
  .hero-stage { padding: 1.45rem; }
  .hero-copy h1 { font-size: clamp(2.85rem, 4.25vw, 3.55rem); }
  .home-products-first { padding-top: 1.95rem; }
  .order-builder-hero { padding: 1.25rem 0; }
}

@media (min-width: 70rem) {
  .brand img { width: 6.85rem; }
  .hero-stage { gap: 1.55rem; padding: 1.55rem; }
  .home-products-first .section-intro { margin-bottom: .9rem; }
}

/* Fallback specificity guards: generic product-image rules must not crop the brand mark. */
.product-card-image { text-decoration: none; }
.product-card-image .product-fallback-logo,
.product-detail-media .product-fallback-logo {
  width: min(42%, 6.6rem);
  height: auto;
  object-fit: contain;
}
.product-detail-media .product-image-fallback.large { min-height: 0; }
.product-detail-media .product-image-fallback.large .product-fallback-logo { width: min(34%, 8.25rem); }
.product-card:hover .product-image-fallback .product-fallback-logo { transform: none; }

/* Task 6C.2 - supporting-page v3 presentation pass
   Uses the accepted 6C.1B shell/tokens while keeping all approved content,
   forms, policies, catalogue data and order semantics unchanged. */
.support-hero {
  padding: 2.35rem 0;
}
.support-hero::after {
  width: 14rem;
  height: 14rem;
  right: -5rem;
  bottom: -8rem;
  box-shadow: 0 0 0 2.25rem rgba(233,170,70,.05);
}
.support-hero-grid {
  gap: 1.5rem;
}
.support-hero h1 {
  max-width: 15ch;
  margin-bottom: .7rem;
  font-size: clamp(2.3rem, 4.5vw, 3.55rem);
}
.support-hero .hero-lede {
  max-width: 40rem;
  font-size: 1rem;
  line-height: 1.58;
}
.support-hero .button-row {
  margin-top: 1rem;
}
.support-hero .hero-side-card {
  padding: 1rem 1.05rem;
  border-radius: .9rem;
  box-shadow: 0 8px 24px rgba(63,38,28,.055);
}
.support-hero .hero-side-card > span {
  margin-bottom: .3rem;
  font-size: .66rem;
}
.support-hero .hero-side-card strong {
  font-size: 1.18rem;
  line-height: 1.2;
}
.support-hero .hero-side-card p {
  margin-top: .45rem;
  font-size: .88rem;
  line-height: 1.5;
}
.support-hero .hero-side-card .text-link {
  margin-top: .5rem;
  font-size: .88rem;
}
.support-section {
  padding: 2.8rem 0;
}
.support-section .section-intro {
  margin-bottom: 1rem;
}
.support-section .section-intro h2,
.support-section .form-intro h2,
.support-section .order-guide-intro h2 {
  margin-bottom: .65rem;
  font-size: clamp(1.65rem, 3vw, 2.3rem);
}
.support-section .section-intro > p:last-child,
.support-section .form-intro > p,
.support-section .order-guide-intro > p {
  font-size: .92rem;
  line-height: 1.55;
}

/* About: keep the person/story visible without turning the portrait into a poster. */
.support-hero-about .about-portrait {
  width: min(100%, 23rem);
  border-radius: 1.1rem;
  box-shadow: var(--shadow-sm);
}
.support-hero-about .about-portrait img {
  aspect-ratio: 4 / 5;
}
.support-hero-about .about-facts {
  gap: .45rem;
  margin-top: 1rem;
}
.support-hero-about .about-facts div {
  padding: .65rem;
}
.support-section .story-block {
  gap: 1rem;
  padding: 1rem 0;
}
.support-section .story-block h2 {
  margin-bottom: .6rem;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}
.support-section .timeline {
  margin-top: 1rem;
}
.support-section .timeline-item {
  padding: .9rem 0;
}
.support-contact-band .contact-band-inner {
  padding: 1.25rem;
  border-radius: 1rem;
}
.support-contact-band h2 {
  margin-bottom: 0;
  font-size: clamp(1.55rem, 3vw, 2rem);
}

/* Festive/gifting: food-led, but secondary to the enquiry purpose. */
.support-hero-festive .food-collage {
  width: min(100%, 25rem);
  gap: .4rem;
}
.support-hero-festive .food-collage img {
  border-radius: .8rem;
  box-shadow: 0 8px 24px rgba(63,38,28,.07);
}
.support-section .campaign-grid {
  gap: .9rem;
}
.support-section .campaign-card {
  border-radius: 1rem;
  box-shadow: 0 8px 24px rgba(63,38,28,.055);
}
.support-section .campaign-copy {
  padding: 1.05rem;
}
.support-section .campaign-copy h3 {
  margin-bottom: .45rem;
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
}
.support-section .campaign-media {
  min-height: 0;
}
.support-section .notice-card {
  padding: 1.2rem;
  border-radius: 1rem;
}
.support-section .notice-card h2 {
  margin-bottom: .6rem;
  font-size: clamp(1.65rem, 3vw, 2.2rem);
}
.support-section .steps-grid {
  gap: .7rem;
  margin-top: 1rem;
}
.support-section .steps-grid li {
  padding: .95rem;
  border-radius: .85rem;
}
.support-section .steps-grid li > span {
  margin-bottom: .5rem;
}
.support-section .steps-grid strong {
  font-size: 1rem;
}
.support-section .steps-grid p {
  font-size: .82rem;
  line-height: 1.5;
}

/* Bulk/enquiry forms: concise introduction, full-strength usable form controls. */
.support-section .feature-grid-three {
  gap: .7rem;
}
.support-section .feature-card {
  padding: 1rem;
  border-radius: .85rem;
}
.support-section .feature-card h2 {
  margin-bottom: .4rem;
  font-size: 1rem;
}
.support-section .feature-card p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.5;
}
.support-section .feature-number {
  margin-bottom: .45rem;
}
.support-form-layout {
  gap: 2rem;
}
.support-form-layout .form-intro {
  max-width: 29rem;
}
.support-form-layout .form-assurance {
  margin-top: 1rem;
  padding: .8rem .9rem;
}
.support-form-layout .panel-form {
  border-radius: 1rem;
  box-shadow: 0 8px 24px rgba(63,38,28,.055);
}

/* How to order: the nine steps become scannable cards while preserving their sequence. */
.support-order-guide {
  grid-template-columns: 1fr;
  gap: 1.2rem;
}
.support-order-guide .order-guide-intro {
  position: static;
  max-width: 46rem;
}
.support-order-guide .order-journey {
  gap: .7rem;
}
.support-order-guide .order-journey li {
  grid-template-columns: 2rem 1fr;
  gap: .7rem;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: white;
}
.support-order-guide .order-journey li > span {
  width: 1.9rem;
  height: 1.9rem;
  font-size: .7rem;
}
.support-order-guide .order-journey h2 {
  margin: .08rem 0 .28rem;
  font-size: .98rem;
  line-height: 1.25;
}
.support-order-guide .order-journey p {
  font-size: .82rem;
  line-height: 1.48;
}
.support-faq-layout {
  gap: 2rem;
}
.support-faq-layout .faq-stack details {
  border-radius: .8rem;
}
.support-faq-layout .faq-stack summary {
  min-height: 3rem;
  padding: .7rem .9rem;
  font-size: .9rem;
}
.support-faq-layout .faq-stack details > div {
  padding: 0 .9rem .9rem;
  font-size: .88rem;
}

/* Contact and policy surfaces: information-first, not oversized marketing panels. */
.support-contact-grid {
  gap: 2rem;
}
.support-contact-grid .contact-details {
  gap: .55rem;
}
.support-contact-grid .contact-item {
  padding: .8rem .9rem;
  border-radius: .8rem;
}
.support-contact-grid .contact-item a,
.support-contact-grid .contact-item p {
  font-size: .9rem;
}
.support-policy-grid {
  gap: .7rem;
}
.support-policy-grid .policy-card {
  min-height: 8.25rem;
  padding: 1rem 3rem 1rem 1rem;
  border-radius: .85rem;
  box-shadow: none;
}
.support-policy-grid .policy-card:hover {
  box-shadow: 0 8px 24px rgba(63,38,28,.06);
}
.support-policy-grid .policy-card h2 {
  margin: .35rem 0;
  font-size: 1rem;
}
.support-policy-grid .policy-card p {
  font-size: .82rem;
}
.support-policy-grid .policy-card-arrow {
  right: 1rem;
}
.support-policy-hero {
  gap: .65rem;
}
.support-policy-shell {
  width: min(100%, 50rem);
}
.support-policy-document {
  padding: 1.25rem;
  border-radius: 1rem;
  box-shadow: none;
}
.support-policy-document .policy-body {
  font-size: .96rem;
  line-height: 1.68;
}
.support-policy-document .policy-contact {
  margin-top: 1.5rem;
  padding-top: 1rem;
}

/* Error pages should recover quickly rather than fill the viewport. */
.support-error-hero {
  min-height: 20rem;
  padding: 3rem 0;
}
.support-error-hero .narrow {
  position: relative;
  z-index: 1;
}
.support-error-hero h1 {
  max-width: 16ch;
}

@media (min-width: 38rem) {
  .support-order-guide .order-journey {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 48rem) {
  .support-hero {
    padding: 2.4rem 0;
  }
  .support-hero-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr);
    gap: 2rem;
  }
  .support-hero-about .about-hero-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .75fr);
  }
  .support-form-layout {
    grid-template-columns: minmax(15rem, .72fr) minmax(0, 1.28fr);
    gap: 2rem;
  }
  .support-order-guide {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
  .support-order-guide .order-guide-intro {
    position: static;
  }
  .support-order-guide .order-journey {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .support-faq-layout {
    grid-template-columns: minmax(14rem, .6fr) minmax(0, 1.4fr);
    gap: 2rem;
  }
  .support-contact-grid {
    grid-template-columns: minmax(17rem, .75fr) minmax(0, 1.25fr);
    gap: 2rem;
  }
  .support-section .timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
  }
  .support-section .timeline-item {
    display: block;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: .85rem;
    background: white;
  }
  .support-section .timeline-item > span {
    display: block;
    margin-bottom: .4rem;
  }
  .support-section .campaign-card {
    grid-template-columns: minmax(14rem, .72fr) minmax(0, 1.28fr);
  }
  .support-section .campaign-media {
    min-height: 16rem;
  }
}

@media (max-width: 37.999rem) {
  .support-hero {
    padding: 1.55rem 0;
  }
  .support-hero-grid {
    gap: 1rem;
  }
  .support-hero h1 {
    margin-bottom: .55rem;
    font-size: 2.15rem;
  }
  .support-hero .hero-lede {
    font-size: .9rem;
    line-height: 1.5;
  }
  .support-hero .button-row {
    gap: .45rem;
    margin-top: .8rem;
  }
  .support-hero .button-large {
    min-height: 2.8rem;
    padding: .62rem .82rem;
    font-size: .86rem;
  }
  .support-hero .hero-side-card {
    padding: .85rem;
  }
  .support-hero-festive .food-collage {
    width: min(100%, 21rem);
  }
  .support-section {
    padding: 2.2rem 0;
  }
  .support-section .section-intro h2,
  .support-section .form-intro h2,
  .support-section .order-guide-intro h2 {
    font-size: 1.65rem;
  }
  .support-form-layout {
    gap: 1.25rem;
  }
  .support-form-layout .panel-form {
    padding: 1rem;
  }
  .support-policy-grid .policy-card {
    min-height: 0;
  }
  .support-policy-document {
    padding: 1rem;
  }
  .support-error-hero {
    min-height: 17rem;
    padding: 2.4rem 0;
  }
}

/* Task 6D.1A–C - source-backed product content + compact swipeable facts gallery */
.product-gallery { min-width: 0; }
.product-gallery-track {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  border-radius: 1.1rem;
}
.product-gallery-track:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.product-gallery-slide {
  flex: 0 0 100%;
  min-width: 100%;
  aspect-ratio: 4 / 3;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.product-gallery-photo .product-detail-media {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 1.1rem;
}
.product-gallery-facts {
  padding: .75rem;
  background: linear-gradient(145deg, #fff8ec, #f7e7ce);
  border: 1px solid var(--line);
  border-radius: 1.1rem;
}
.product-facts-panel {
  height: 100%;
  overflow-y: auto;
  padding: .2rem .25rem .2rem .1rem;
}
.product-facts-head { margin-bottom: .55rem; }
.product-facts-head .eyebrow { margin-bottom: .2rem; }
.product-facts-head h2 { margin: 0; font-size: clamp(1.3rem, 4vw, 1.7rem); }
.nutrition-block { padding: .65rem .7rem; border: 1px solid var(--line); border-radius: .75rem; background: rgba(255,255,255,.78); }
.nutrition-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem .6rem; margin-bottom: .35rem; }
.nutrition-heading strong { color: var(--cocoa); }
.nutrition-heading span { color: var(--muted); font-size: .66rem; line-height: 1.35; }
.nutrition-facts { margin: 0; }
.nutrition-facts div { display: flex; justify-content: space-between; gap: .8rem; padding: .26rem 0; border-top: 1px solid rgba(103,73,55,.14); }
.nutrition-facts div:first-child { border-top: 0; }
.nutrition-facts dt { color: var(--muted); font-size: .76rem; }
.nutrition-facts dd { margin: 0; color: var(--cocoa); font-size: .78rem; font-weight: 850; text-align: right; }
.gallery-food-info { display: grid; gap: .45rem; margin: .55rem 0 0; }
.gallery-food-info div { padding: .55rem .65rem; border-radius: .65rem; background: rgba(255,255,255,.58); }
.gallery-food-info dt { color: var(--cocoa); font-size: .67rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.gallery-food-info dd { margin: .18rem 0 0; color: #534841; font-size: .74rem; line-height: 1.4; }
.facts-note { margin: .55rem .15rem 0; color: var(--muted); font-size: .65rem; line-height: 1.4; }
.product-gallery-controls { display: flex; justify-content: center; align-items: center; gap: .55rem; margin-top: .6rem; }
.gallery-control { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border: 1px solid var(--line-dark); border-radius: 999px; background: white; color: var(--cocoa); font: inherit; font-weight: 900; cursor: pointer; }
.gallery-control:hover { border-color: var(--action); color: var(--action-dark); }
.gallery-status { min-width: 3.1rem; color: var(--muted); font-size: .74rem; font-weight: 850; text-align: center; }
.nutrition-info-card { grid-column: auto; }
.nutrition-info-list dd { font-weight: 800; }

@media (min-width: 48rem) {
  .product-gallery-facts { padding: .9rem; }
  .product-facts-panel { padding-right: .35rem; }
  .nutrition-facts div { padding-block: .32rem; }
  .nutrition-facts dt, .nutrition-facts dd { font-size: .82rem; }
}

@media (prefers-reduced-motion: reduce) {
  .product-gallery-track { scroll-behavior: auto; }
}

/* Task 6D.1D - gallery polish after real-content visual QA */
.product-gallery-track,
.product-facts-panel {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.product-gallery-track::-webkit-scrollbar,
.product-facts-panel::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

@media (min-width: 48rem) {
  .product-facts-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    grid-template-areas:
      "head head"
      "nutrition food"
      "note note";
    gap: .5rem .65rem;
    align-content: start;
    overflow: hidden;
    padding: 0;
  }
  .product-facts-head { grid-area: head; margin-bottom: 0; }
  .product-facts-panel .nutrition-block { grid-area: nutrition; }
  .product-facts-panel .gallery-food-info { grid-area: food; margin: 0; align-content: start; }
  .product-facts-panel .facts-note { grid-area: note; margin: 0 .1rem; }
  .product-facts-panel:not(:has(.nutrition-block)) {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "head"
      "food"
      "note";
  }
  .product-facts-panel:not(:has(.gallery-food-info)) {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "head"
      "nutrition"
      "note";
  }
}

@media (min-width: 70rem) {
  .product-info-grid:has(.nutrition-info-card) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .product-info-grid:has(.nutrition-info-card) .product-info-card {
    padding: 1.2rem;
  }
  .product-info-grid:has(.nutrition-info-card) .product-info-card h2 {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
  }
}

/* Task 6D.3 - founder/team story upgrade. Keeps the accepted v3 shell and density. */
.about-v3-hero {
  padding: clamp(2.4rem, 5vw, 4.5rem) 0;
  background:
    radial-gradient(circle at 92% 18%, rgba(230, 168, 68, .16), transparent 28%),
    linear-gradient(180deg, #fffaf3 0%, #fbf0e1 100%);
}
.about-v3-hero-grid,
.about-v3-story-grid,
.about-v3-team-grid,
.home-story-v3-grid {
  display: grid;
  gap: 2rem;
  align-items: center;
}
.about-v3-hero-copy h1 {
  max-width: 12ch;
  font-size: clamp(2.4rem, 6vw, 4.55rem);
}
.about-v3-hero-copy .hero-lede {
  max-width: 44rem;
}
.about-v3-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem;
  margin-top: 1.25rem;
}
.about-v3-facts > div {
  padding: .78rem .82rem;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: rgba(255, 253, 250, .72);
}
.about-v3-facts span,
.about-v3-facts strong {
  display: block;
}
.about-v3-facts span {
  margin-bottom: .18rem;
  color: var(--muted);
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.about-v3-facts strong {
  color: var(--cocoa);
  font-size: .9rem;
  line-height: 1.35;
}
.about-v3-founder-card {
  width: min(100%, 21rem);
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(71,43,33,.12);
  border-radius: 1.25rem;
  background: white;
  box-shadow: var(--shadow-sm);
}
.about-v3-founder-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.about-v3-founder-card figcaption {
  display: grid;
  gap: .08rem;
  padding: .8rem .9rem .9rem;
}
.about-v3-founder-card figcaption strong {
  color: var(--cocoa);
  font-size: .95rem;
}
.about-v3-founder-card figcaption span {
  color: var(--muted);
  font-size: .8rem;
}
.about-v3-story-section,
.about-v3-team-section {
  padding-block: 3.2rem;
}
.about-v3-story-media,
.about-v3-team-gallery {
  overflow: hidden;
  border-radius: 1.2rem;
}
.about-v3-story-media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.about-v3-story-copy h2,
.about-v3-team-copy h2,
.about-v3-mission-intro h2 {
  max-width: 16ch;
  font-size: clamp(1.9rem, 4vw, 3rem);
}
.about-v3-story-copy .rich-copy,
.about-v3-team-copy {
  color: #554a43;
}
.about-v3-story-copy .rich-copy p,
.about-v3-team-copy p {
  line-height: 1.65;
}
.about-v3-quote {
  margin: 1.4rem 0 0;
  padding: 1rem 1.1rem;
  border-left: 4px solid var(--gold);
  border-radius: 0 .8rem .8rem 0;
  background: var(--cream);
  color: var(--cocoa);
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.8vw, 1.75rem);
  line-height: 1.25;
}
.about-v3-mission-intro {
  max-width: 48rem;
}
.about-v3-value-grid {
  display: grid;
  gap: .75rem;
  margin-top: 1.25rem;
}
.about-v3-value-card {
  padding: 1.15rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: rgba(255,255,255,.74);
}
.about-v3-value-card > span {
  display: inline-block;
  margin-bottom: .7rem;
  color: var(--action-dark);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .1em;
}
.about-v3-value-card h3 {
  margin-bottom: .45rem;
  font-family: inherit;
  font-size: 1.02rem;
  font-weight: 900;
  letter-spacing: 0;
}
.about-v3-value-card p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.55;
}
.about-v3-team-copy .text-link {
  margin-top: .4rem;
}
.about-v3-team-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(6rem, .55fr);
  gap: .55rem;
  background: var(--cream-deep);
}
.about-v3-team-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-v3-team-main {
  aspect-ratio: 16 / 9;
}
.about-v3-team-small {
  aspect-ratio: 1 / 1;
}
.about-v3-cta .contact-band-inner {
  gap: 1rem;
}

.home-story-v3 {
  background: #f8ecde;
}
.home-story-v3-media {
  position: relative;
  overflow: hidden;
  border-radius: 1.2rem;
  background: var(--cream-deep);
  box-shadow: var(--shadow-sm);
}
.home-story-v3-media img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.home-story-v3-media > span {
  position: absolute;
  left: .75rem;
  bottom: .75rem;
  padding: .5rem .65rem;
  border-radius: .6rem;
  background: rgba(48,32,25,.82);
  color: white;
  font-size: .72rem;
  font-weight: 800;
  backdrop-filter: blur(6px);
}
.home-story-v3-copy h2 {
  max-width: 13ch;
  font-size: clamp(2rem, 4vw, 3rem);
}
.home-story-v3-copy > p:not(.eyebrow) {
  max-width: 39rem;
  color: #554a43;
  line-height: 1.65;
}

@media (min-width: 48rem) {
  .about-v3-hero-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .75fr);
    gap: 3rem;
  }
  .about-v3-founder-card {
    width: min(100%, 22rem);
    justify-self: end;
  }
  .about-v3-story-grid {
    grid-template-columns: minmax(20rem, .95fr) minmax(0, 1.05fr);
    gap: 3rem;
  }
  .about-v3-story-media img {
    min-height: 24rem;
  }
  .about-v3-value-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .about-v3-team-grid {
    grid-template-columns: minmax(17rem, .72fr) minmax(0, 1.28fr);
    gap: 3rem;
  }
  .home-story-v3-grid {
    grid-template-columns: minmax(20rem, 1.05fr) minmax(0, .95fr);
    gap: 3rem;
  }
  .about-v3-cta .contact-band-inner {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 47.99rem) {
  .about-v3-hero {
    padding-top: 2rem;
  }
  .about-v3-hero-grid {
    gap: 1.35rem;
  }
  .about-v3-hero-copy h1 {
    font-size: clamp(2.15rem, 11vw, 3rem);
  }
  .about-v3-founder-card {
    width: min(100%, 18rem);
  }
  .about-v3-story-section,
  .about-v3-team-section {
    padding-block: 2.4rem;
  }
  .about-v3-story-media img {
    aspect-ratio: 4 / 3;
  }
  .about-v3-team-gallery {
    grid-template-columns: minmax(0, 1.35fr) minmax(5rem, .65fr);
  }
  .about-v3-team-main {
    aspect-ratio: 4 / 3;
  }
  .home-story-v3-grid {
    gap: 1.4rem;
  }
  .home-story-v3-media img {
    aspect-ratio: 4 / 3;
  }
}

/* Task 6D.3.1 - story imagery should support the copy, not dominate it. */
.about-v3-founder-card {
  width: min(100%, 18rem);
}
.about-v3-founder-media {
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--cream-deep);
}
.about-v3-founder-card .about-v3-founder-media img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 50% 34%;
}
.about-v3-story-media {
  aspect-ratio: 3 / 2;
  background: var(--cream-deep);
}
.about-v3-story-media img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}
.home-story-v3-media {
  aspect-ratio: 16 / 10;
}
.home-story-v3-media img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}
.about-v3-team-gallery {
  position: relative;
  aspect-ratio: 16 / 8;
}
.about-v3-team-gallery img {
  min-width: 0;
}

@media (min-width: 48rem) {
  .about-v3-hero-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(15rem, .65fr);
    gap: 2.4rem;
  }
  .about-v3-founder-card {
    width: min(100%, 18rem);
  }
  .about-v3-story-grid {
    grid-template-columns: minmax(18rem, .88fr) minmax(0, 1.12fr);
    gap: 2.5rem;
  }
  .about-v3-story-media img {
    min-height: 0;
  }
  .home-story-v3-grid {
    grid-template-columns: minmax(18rem, .9fr) minmax(0, 1.1fr);
    gap: 2.5rem;
  }
}

@media (max-width: 47.99rem) {
  .about-v3-hero {
    padding: 1.7rem 0 2rem;
  }
  .about-v3-founder-card {
    width: min(100%, 15.5rem);
  }
  .about-v3-story-section,
  .about-v3-team-section {
    padding-block: 2rem;
  }
  .about-v3-story-media {
    aspect-ratio: 16 / 10;
  }
  .home-story-v3-media {
    aspect-ratio: 16 / 10;
  }
  .about-v3-team-gallery {
    display: block;
    aspect-ratio: 4 / 3;
    background: var(--cream-deep);
  }
  .about-v3-team-main {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
  }
  .about-v3-team-small {
    position: absolute;
    right: .65rem;
    bottom: .65rem;
    width: 31%;
    height: 40%;
    aspect-ratio: auto;
    border: 3px solid rgba(255, 253, 250, .96);
    border-radius: .75rem;
    box-shadow: var(--shadow-sm);
    object-fit: cover;
  }
  .home-story-v3-media > span {
    left: .55rem;
    bottom: .55rem;
    padding: .42rem .55rem;
    font-size: .64rem;
  }
}

/* Task 6D.4 - contextual customer-help links. */
.product-question-link {
  display: inline-flex;
  margin-top: .45rem;
}
.form-alt-contact {
  margin: .85rem 0 0;
  font-size: .95rem;
}
.form-alt-contact .text-link {
  display: inline;
}


/* Task 6F.2 - owner-managed product availability states. */
.product-availability-badge {
  position: absolute;
  top: .75rem;
  right: .75rem;
  z-index: 2;
  padding: .4rem .6rem;
  border-radius: 999px;
  background: #fff3d8;
  color: #6f1719;
  font-size: .72rem;
  font-weight: 800;
  box-shadow: 0 2px 8px rgba(63,31,23,.12);
}
.catalogue-unavailable-copy { font-size: .78rem; font-weight: 800; color: #7c4a21; }
.catalogue-availability-panel {
  margin: 1rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid #e9c48c;
  border-radius: .9rem;
  background: #fff8e8;
}
.catalogue-availability-panel strong { color: #7a3a13; }
.catalogue-availability-panel p { margin: .35rem 0 0; }

/* Task 6G.1 - make temporarily unavailable products visually obvious without hiding them. */
.product-card-image.is-temporarily-unavailable > img,
.product-detail-media.is-temporarily-unavailable > img {
  filter: grayscale(1);
  opacity: .7;
}
.product-card:hover .product-card-image.is-temporarily-unavailable > img {
  filter: grayscale(1);
}
@media (prefers-reduced-motion: reduce) {
  .product-card-image.is-temporarily-unavailable > img,
  .product-detail-media.is-temporarily-unavailable > img {
    transition: none;
  }
}


/* Task 6H.3B - live PIN serviceability feedback; never used as a rejection gate. */
.service-area-feedback{display:grid;gap:.28rem;margin:.15rem 0 1rem;padding:.9rem 1rem;border:1px solid var(--line-dark);border-left:4px solid var(--gold);border-radius:.8rem;background:#fffaf1;color:var(--cocoa);box-shadow:var(--shadow-sm);font-size:.86rem;line-height:1.5}
.service-area-feedback[hidden]{display:none}
.service-area-feedback strong{font-size:.94rem;color:var(--ink);line-height:1.35}
.service-area-feedback span{display:block}
.service-area-feedback[data-tone="positive"]{border-color:#9eb99b;border-left-color:var(--success);background:#f2f8f3}
.service-area-feedback[data-tone="positive"] strong{color:#14583b}
.service-area-feedback[data-tone="qualified"]{border-color:#d5ad67;border-left-color:#b67a18;background:#fff6e6}
.service-area-feedback[data-tone="qualified"] strong{color:#70470d}

/* Task 6H.4 - typing-aware first-party area/city suggestions. */
.address-suggest-field{position:relative}
.address-suggest-results{display:grid;margin:.35rem 0 0;border:1px solid var(--line-dark);border-radius:.8rem;background:#fff;box-shadow:var(--shadow-sm);overflow:hidden;max-height:17rem;overflow-y:auto;overscroll-behavior:contain;z-index:8}
.address-suggest-results[hidden]{display:none}
.address-suggest-option{display:grid;gap:.1rem;width:100%;min-height:3.15rem;padding:.62rem .75rem;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);text-align:left;cursor:pointer}
.address-suggest-option:last-child{border-bottom:0}
.address-suggest-option:hover,.address-suggest-option.is-active,.address-suggest-option[aria-selected="true"]{background:#fff8e8}
.address-suggest-option:focus-visible{position:relative;z-index:1;outline:3px solid var(--focus);outline-offset:-3px}
.address-suggest-primary{font-size:.88rem;font-weight:800;line-height:1.3}
.address-suggest-secondary{font-size:.75rem;color:var(--muted);line-height:1.35}
.address-suggest-hint{margin:.3rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.35}
@media (prefers-reduced-motion:reduce){.address-suggest-results{scroll-behavior:auto}}


/* S9A My Order refinement: compact static basket controls and denser desktop review. */
body[data-static-basket-page="true"] .basket-lines{gap:.65rem}
body[data-static-basket-page="true"] .static-basket-card{align-content:start;min-height:0;padding:.8rem}
body[data-static-basket-page="true"] .basket-line-copy{min-width:0}
body[data-static-basket-page="true"] .static-basket-controls{grid-column:1/-1;display:flex;align-items:end;gap:.55rem;flex-wrap:wrap;margin-top:.1rem;padding-top:.6rem;border-top:1px solid var(--line)}
body[data-static-basket-page="true"] .static-basket-size{width:6.6rem}
body[data-static-basket-page="true"] .static-basket-size label,
body[data-static-basket-page="true"] .static-basket-control-label{display:block;margin-bottom:.25rem;color:var(--cocoa);font-size:.7rem;font-weight:850}
body[data-static-basket-page="true"] .static-basket-size select{min-height:2.45rem;padding:.4rem .55rem}
body[data-static-basket-page="true"] .static-basket-quantity{flex:0 0 auto}
body[data-static-basket-page="true"] .static-basket-stepper{display:grid;grid-template-columns:2.45rem 2.5rem 2.45rem;align-items:center;overflow:hidden;border:1px solid var(--line-dark);border-radius:.7rem;background:white}
body[data-static-basket-page="true"] .static-basket-step{width:2.45rem;height:2.45rem;display:grid;place-items:center;border:0;background:var(--cream);color:var(--cocoa);font-size:1.1rem;font-weight:900;cursor:pointer}
body[data-static-basket-page="true"] .static-basket-step:hover:not(:disabled){background:#fff0e6;color:var(--action-dark)}
body[data-static-basket-page="true"] .static-basket-step:disabled{opacity:.38;cursor:not-allowed}
body[data-static-basket-page="true"] .static-basket-quantity-value{display:grid;place-items:center;min-height:2.45rem;color:var(--cocoa);font-size:.88rem;font-weight:900}
body[data-static-basket-page="true"] .static-basket-remove{margin-left:auto;align-self:end;padding-inline:.35rem}
body[data-static-basket-page="true"] .basket-more-products{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.75rem;padding:.8rem .9rem;border:1px dashed var(--line-dark);border-radius:.8rem;background:var(--cream)}
body[data-static-basket-page="true"] .basket-more-products strong,
body[data-static-basket-page="true"] .basket-more-products span{display:block}
body[data-static-basket-page="true"] .basket-more-products strong{color:var(--cocoa);font-size:.84rem}
body[data-static-basket-page="true"] .basket-more-products span{margin-top:.12rem;color:var(--muted);font-size:.74rem}
body[data-static-basket-page="true"] .empty-state-large{min-height:14rem}

@media (min-width:70rem){
  body[data-static-basket-page="true"] .basket-layout{grid-template-columns:minmax(0,1.38fr) minmax(22rem,.82fr);gap:1.35rem}
  body[data-static-basket-page="true"] .basket-lines{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  body[data-static-basket-page="true"] .static-basket-card{height:100%}
}

@media (max-width:37.999rem){
  body[data-static-basket-page="true"] .static-basket-controls{align-items:end}
  body[data-static-basket-page="true"] .static-basket-remove{margin-left:0}
  body[data-static-basket-page="true"] .basket-more-products{display:grid;align-items:start}
  body[data-static-basket-page="true"] .basket-more-products .button{width:100%}
}
