:root {
  color-scheme: light;
  --cream: #f8f2e8;
  --paper: #fffaf1;
  --paper-strong: #f2e8d8;
  --ink: #352b24;
  --muted: #786d61;
  --brown: #5a3829;
  --brown-deep: #37271f;
  --red: #873f34;
  --red-soft: #a95643;
  --honey: #d79a4e;
  --sage: #78806b;
  --line: rgba(80, 55, 37, .18);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Avenir Next', Avenir, 'Segoe UI', sans-serif;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 105px; }
body { margin: 0; min-width: 320px; background: var(--cream); }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, select, input { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }
::selection { background: #e6c99e; color: var(--brown-deep); }

.season-ribbon {
  min-height: 31px; display: flex; align-items: center; justify-content: center; gap: 12px;
  padding: 6px 16px; background: var(--brown-deep); color: #f8edda; font-size: 10px;
  text-transform: uppercase; letter-spacing: .17em; text-align: center;
}
.ribbon-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--honey); }
.site-header { position: sticky; z-index: 20; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 14px clamp(20px, 6vw, 88px); background: rgba(248, 242, 232, .94); border-bottom: 1px solid rgba(90, 56, 41, .13); backdrop-filter: blur(14px); }
.brand { display: inline-flex; align-items: center; gap: 9px; flex-shrink: 0; color: var(--brown); }
.brand-mark { width: 39px; height: 39px; }
.brand-name { display: flex; flex-direction: column; font-family: var(--serif); font-size: 18px; line-height: .95; letter-spacing: -.045em; }
.brand-name b { font-weight: 700; }
.brand-name small { margin-top: 5px; font: 700 7px/1 var(--sans); letter-spacing: .19em; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 3vw, 40px); color: #61564b; font-size: 12px; }
.main-nav a { position: relative; padding: 8px 0; transition: color .2s ease; }
.main-nav a::after { position: absolute; right: 0; bottom: 1px; left: 0; height: 1px; background: var(--red); content: ''; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--red); }
.main-nav a:hover::after, .main-nav a:focus-visible::after { transform: scaleX(1); }
.cart-trigger { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border: 1px solid rgba(90,56,41,.3); border-radius: 99px; background: transparent; cursor: pointer; font-size: 11px; transition: background .2s, color .2s; }
.cart-trigger:hover { background: var(--brown); color: var(--paper); }
.cart-trigger svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.cart-count { display: inline-grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; background: var(--red); color: white; font-size: 9px; }

.section-shell { width: min(1240px, calc(100% - 64px)); margin-inline: auto; }
.hero { display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: clamp(36px, 7vw, 104px); min-height: 595px; padding-top: 52px; padding-bottom: 66px; }
.hero-copy { position: relative; z-index: 1; max-width: 590px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; color: var(--red); font-size: 9px; font-weight: 700; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; }
.eyebrow-line { display: inline-block; width: 26px; height: 1px; background: currentColor; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h1 { max-width: 600px; margin-bottom: 22px; font-size: clamp(44px, 5.6vw, 78px); letter-spacing: -.065em; line-height: .99; }
h1 em, h2 em, h3 em { color: var(--red); font-weight: 400; }
.hero-intro { max-width: 440px; margin-bottom: 27px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.hero-actions { display: flex; align-items: center; gap: 25px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 48px; padding: 0 21px; border: 1px solid transparent; border-radius: 2px; cursor: pointer; font-size: 11px; font-weight: 700; letter-spacing: .025em; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button:focus-visible, button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible { outline: 2px solid var(--honey); outline-offset: 3px; }
.button-primary { background: var(--red); color: #fffaf1; }
.button-primary:hover { background: var(--brown-deep); }
.button-primary span { font-size: 15px; font-weight: 400; }
.button-wide { width: 100%; }
.button-outline { min-height: 44px; border-color: rgba(90,56,41,.3); background: transparent; color: var(--brown); }
.button-outline:hover { border-color: var(--brown); background: var(--brown); color: var(--paper); }
.hero-price { display: flex; align-items: baseline; gap: 5px; color: var(--brown); }
.hero-price strong { font-family: var(--serif); font-size: 27px; font-weight: 400; }
.hero-price small { color: var(--muted); font-size: 11px; }
.hero-note { display: flex; align-items: center; gap: 9px; margin-top: 34px; color: var(--muted); font-size: 10px; letter-spacing: .04em; }
.sparkle { color: var(--honey); font-size: 17px; }
.hero-art { position: relative; max-width: 500px; margin-left: auto; }
.hero-photo-wrap { position: relative; width: min(100%, 442px); margin-inline: auto; padding: 15px 14px 28px; background: #eadac3; transform: rotate(1.3deg); }
.hero-photo-wrap::before { position: absolute; inset: 7px; border: 1px solid rgba(90,56,41,.14); content: ''; pointer-events: none; }
.hero-photo { height: 422px; object-fit: cover; object-position: 50% 58%; }
.photo-stamp { position: absolute; right: -22px; bottom: 31px; display: flex; align-items: center; gap: 7px; padding: 13px 15px; border: 1px solid rgba(255,250,241,.7); background: var(--red); color: var(--paper); font-family: var(--serif); font-size: 11px; line-height: 1.08; transform: rotate(-5deg); box-shadow: 0 8px 22px rgba(40,24,17,.16); }
.photo-stamp b { font-family: var(--sans); font-size: 19px; font-weight: 400; color: #efc787; }
.hero-caption { display: flex; align-items: center; gap: 10px; margin-top: 19px; color: var(--muted); font-size: 9px; letter-spacing: .06em; }
.hero-caption > span:last-child { color: var(--red); font-weight: 700; }
.caption-rule { width: 42px; height: 1px; background: var(--honey); }
.hero-deco { position: absolute; z-index: -1; top: -25px; right: -18px; color: #d5aa75; font-size: 64px; opacity: .6; }

.value-strip { border-block: 1px solid var(--line); background: #f2e9dc; }
.value-inner { display: grid; grid-template-columns: repeat(3, 1fr); width: min(1120px, calc(100% - 64px)); margin: 0 auto; }
.value-item { display: flex; align-items: center; gap: 14px; padding: 21px 23px; border-right: 1px solid var(--line); }
.value-item:first-child { border-left: 1px solid var(--line); }
.value-icon { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid rgba(135,63,52,.3); border-radius: 50%; color: var(--red); font-family: var(--serif); font-size: 12px; }
.value-item div { display: grid; gap: 4px; }
.value-item b { font-family: var(--serif); font-size: 14px; font-weight: 400; }
.value-item small { color: var(--muted); font-size: 9px; }

.order-section { padding-top: 110px; padding-bottom: 122px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 42px; }
.section-heading .eyebrow { margin-bottom: 12px; }
h2 { margin-bottom: 0; font-size: clamp(35px, 4vw, 54px); letter-spacing: -.055em; line-height: 1.05; }
.section-aside { max-width: 340px; margin: 0 3vw 4px 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.product-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: stretch; gap: clamp(30px, 6vw, 82px); }
.product-image-card { position: relative; min-height: 540px; overflow: hidden; background: #e6d5be; }
.product-image-card img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: 50% 42%; transition: transform .8s cubic-bezier(.2,.75,.25,1); }
.product-image-card:hover img { transform: scale(1.035); }
.product-image-label { position: absolute; right: 14px; bottom: 14px; left: 14px; display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; background: rgba(255,250,241,.92); color: var(--brown); font-family: var(--serif); font-size: 13px; }
.product-image-label b { color: var(--red); font-family: var(--sans); font-size: 19px; font-weight: 400; }
.product-config { align-self: center; padding: 18px 0; }
.product-kicker { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--sage); font-size: 9px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: #849072; }
.product-config h3 { margin-bottom: 14px; font-size: clamp(34px, 3.5vw, 48px); letter-spacing: -.05em; line-height: 1; }
.product-description { max-width: 410px; margin-bottom: 26px; color: var(--muted); font-size: 12px; line-height: 1.75; }
.field-label { display: block; margin: 0 0 8px; color: var(--brown); font-size: 10px; font-weight: 700; }
.select-wrap { position: relative; }
.select-wrap select { width: 100%; min-height: 46px; appearance: none; padding: 0 43px 0 13px; border: 1px solid rgba(90,56,41,.24); border-radius: 2px; background: rgba(255,250,241,.75); color: var(--ink); cursor: pointer; font-size: 11px; }
.select-wrap select:disabled { opacity: .72; cursor: default; }
.select-chevron { position: absolute; top: 50%; right: 14px; color: var(--red); font-family: var(--serif); font-size: 18px; line-height: 1; pointer-events: none; transform: translateY(-55%); }
.field-hint { margin: 7px 0 20px; color: #918477; font-size: 9px; line-height: 1.55; }
.portion-guide { display: grid; gap: 8px; margin: 0 0 16px; padding: 12px 14px; border-left: 2px solid var(--honey); background: var(--paper-strong); color: var(--brown); }
.portion-guide p { display: grid; gap: 4px; margin: 0; font-size: 10px; line-height: 1.5; }
.portion-guide strong { font-family: var(--serif); font-size: 12px; font-weight: 400; }
.portion-guide span { color: var(--muted); font-size: 9px; line-height: 1.6; }
.weight-quantity-row { display: grid; grid-template-columns: 1fr .8fr; gap: 16px; }
.quantity-control { display: flex; align-items: center; justify-content: space-between; min-height: 46px; border: 1px solid rgba(90,56,41,.24); background: rgba(255,250,241,.75); }
.quantity-control button { align-self: stretch; width: 38px; border: 0; background: transparent; color: var(--red); cursor: pointer; font-size: 19px; }
.quantity-control input { width: 38px; padding: 0; border: 0; background: transparent; color: var(--ink); text-align: center; font-size: 11px; appearance: textfield; -moz-appearance: textfield; }
.quantity-control input::-webkit-inner-spin-button, .quantity-control input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.price-line { display: flex; align-items: baseline; justify-content: space-between; margin-top: 25px; padding: 15px 0 11px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.price-line strong { color: var(--brown); font-family: var(--serif); font-size: 24px; font-weight: 400; }
.price-note { margin: 0 0 18px; color: #8d8173; font-size: 9px; line-height: 1.55; }
.demo-note { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.demo-note span { color: var(--red); }

.story-section { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 480px; background: var(--brown-deep); color: #f9f1e5; }
.story-image { position: relative; min-height: 410px; overflow: hidden; }
.story-image img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: 52% 47%; opacity: .83; }
.story-image::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 65%, rgba(55,39,31,.28)); content: ''; }
.story-image-note { position: absolute; z-index: 1; bottom: 22px; left: 25px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.48); color: white; font-family: var(--serif); font-size: 12px; }
.story-copy { align-self: center; max-width: 540px; padding: 60px clamp(34px, 7vw, 100px); }
.eyebrow-light { color: #e5bd7c; }
.story-copy h2 { margin: 0 0 20px; color: #fff7e9; font-size: clamp(36px, 4vw, 53px); }
.story-copy p:not(.eyebrow) { max-width: 390px; margin-bottom: 22px; color: #d7c9b8; font-size: 12px; line-height: 1.85; }
.story-copy .story-storage-note { display: grid; gap: 4px; margin: 0 0 22px; padding: 12px 14px; border-left: 2px solid #e5bd7c; background: rgba(255,255,255,.055); color: #f1cf98; font-family: var(--serif); font-size: 13px; line-height: 1.5; }
.story-copy .story-storage-note span { color: #d7c9b8; font-family: var(--sans); font-size: 10px; line-height: 1.7; }
.text-link { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 5px; border-bottom: 1px solid var(--honey); color: var(--red); font-size: 10px; font-weight: 700; }
.text-link:hover { color: var(--brown-deep); }
.story-copy .text-link { color: #f1cf98; }

.gift-section { display: grid; grid-template-columns: .85fr 1fr; align-items: center; gap: clamp(38px, 8vw, 120px); padding-top: 104px; padding-bottom: 106px; }
.gift-copy { max-width: 420px; }
.gift-copy .eyebrow { margin-bottom: 14px; }
.gift-copy h2 { margin-bottom: 16px; font-size: clamp(36px, 4vw, 52px); }
.gift-copy p:not(.eyebrow) { max-width: 350px; margin-bottom: 20px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.gift-photo { position: relative; padding: 13px 13px 32px; background: #e9dac5; transform: rotate(-1.5deg); }
.gift-photo img { height: 355px; object-fit: cover; object-position: 50% 60%; }
.gift-seal { position: absolute; top: -20px; right: -17px; display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid #f8f2e8; border-radius: 50%; background: var(--red); color: #fff5e2; font-family: var(--serif); font-size: 12px; line-height: 1.05; text-align: center; transform: rotate(8deg); }

.loyalty-section { padding: 60px 32px; background: #71806e; color: #f8f2e8; }
.loyalty-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 30px; width: min(1120px, 100%); margin: 0 auto; }
.loyalty-mark { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: #f4d49f; font-size: 27px; }
.loyalty-copy .eyebrow { margin-bottom: 10px; }
.loyalty-copy h2 { margin-bottom: 8px; font-size: clamp(29px, 3vw, 39px); }
.loyalty-copy p:not(.eyebrow) { max-width: 600px; margin-bottom: 0; color: #e2e7db; font-size: 11px; line-height: 1.7; }
.loyalty-tag { padding: 9px 13px; border: 1px solid rgba(255,255,255,.55); color: #fbf2e2; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.loyalty-stamps { display: flex; align-items: center; gap: 8px; margin-top: 15px; }
.loyalty-stamp { display: grid; place-items: center; width: 30px; height: 30px; border: 1px dashed rgba(255,255,255,.66); border-radius: 50%; color: #fff8e9; font-size: 9px; }
.loyalty-stamp-prize { width: 38px; height: 38px; border-style: solid; border-color: #f4d49f; background: #f4d49f; color: var(--brown-deep); font-family: var(--serif); font-size: 9px; }
.loyalty-copy .loyalty-note { margin-top: 8px; color: #d4dfd0; font-size: 9px; }

.label-section { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 65px; padding-top: 110px; padding-bottom: 115px; }
.label-intro { max-width: 480px; }
.label-intro .eyebrow { margin-bottom: 13px; }
.label-intro h2 { margin-bottom: 16px; }
.label-intro > p:not(.eyebrow) { max-width: 440px; margin-bottom: 23px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.label-intro .button-outline { gap: 11px; }
.label-preview-wrap { justify-self: center; width: min(100%, 430px); }
.printable-label { position: relative; aspect-ratio: 1.5; padding: 17px 19px 15px; border: 1px solid rgba(94,65,45,.26); background: #fffaf1; box-shadow: 0 13px 40px rgba(68,47,32,.1); }
.printable-label::before { position: absolute; inset: 7px; border: 1px solid rgba(135,63,52,.17); content: ''; pointer-events: none; }
.label-brandline { display: flex; align-items: center; gap: 6px; color: var(--brown); font-family: var(--serif); font-size: 15px; }
.label-brandline b { font-weight: 700; }
.label-mini-mark { color: var(--red); font-family: var(--sans); font-size: 18px; }
.label-content { display: flex; align-items: center; justify-content: space-between; gap: 14px; height: calc(100% - 45px); padding: 4px 13px 0 5px; }
.label-product { display: grid; gap: 6px; }
.label-product small { color: var(--red); font-size: 7px; font-weight: 700; letter-spacing: .15em; }
.label-product strong { color: var(--brown-deep); font-family: var(--serif); font-size: clamp(20px, 3vw, 30px); font-weight: 400; letter-spacing: -.04em; line-height: .95; }
.label-product span { color: var(--muted); font-family: var(--serif); font-size: 9px; font-style: italic; }
.label-qr { width: clamp(82px, 13vw, 118px); height: auto; padding: 5px; background: white; }
.label-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; border-top: 1px solid rgba(90,56,41,.18); color: var(--red); font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.label-bottom span:last-child { color: var(--muted); font-weight: 400; text-transform: none; }
.label-disclaimer { margin: 12px 0 0; color: #8d8173; font-size: 9px; text-align: center; }

.closing-band { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 4vw, 50px); padding: 22px 20px; background: #e8dac5; color: var(--muted); font-size: 10px; letter-spacing: .04em; }
.closing-band b { color: var(--red); font-family: var(--serif); font-size: 19px; font-weight: 400; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 23px clamp(20px, 6vw, 88px); background: var(--brown-deep); color: #eadbca; }
.brand-footer { color: #f1e4d2; }
.brand-footer .brand-mark { width: 34px; height: 34px; }
.brand-footer .brand-name { font-size: 15px; }
.brand-footer .brand-name small { font-size: 6px; }
.site-footer p { margin: 0; color: #bfae9d; font-size: 9px; }
.footer-top { color: #e6c995; font-size: 10px; }

.site-dialog { width: min(490px, calc(100% - 28px)); max-height: min(86vh, 720px); padding: 27px; border: 1px solid rgba(90,56,41,.2); background: var(--paper); color: var(--ink); box-shadow: 0 28px 100px rgba(36,25,18,.28); }
.site-dialog::backdrop { background: rgba(36,25,18,.56); backdrop-filter: blur(3px); }
.dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.dialog-head .eyebrow { margin-bottom: 8px; }
.dialog-head h2 { font-size: 37px; }
.dialog-close { display: grid; place-items: center; width: 33px; height: 33px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; font-size: 20px; }
.cart-items { display: grid; gap: 10px; max-height: 280px; overflow: auto; }
.cart-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 13px 0; border-top: 1px solid var(--line); }
.cart-row-main { display: grid; gap: 4px; }
.cart-row-main strong { font-family: var(--serif); font-size: 15px; font-weight: 400; }
.cart-row-main small { color: var(--muted); font-size: 10px; }
.cart-row-price { color: var(--brown); font-family: var(--serif); font-size: 16px; }
.cart-row-tools { display: flex; align-items: center; gap: 7px; margin-top: 4px; }
.cart-row-tools button { min-width: 24px; min-height: 24px; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.cart-row-tools span { min-width: 18px; color: var(--muted); font-size: 10px; text-align: center; }
.cart-row-tools .remove-item { margin-left: 5px; padding-inline: 7px; color: var(--red); font-size: 9px; }
.cart-empty { padding: 20px 8px; color: var(--muted); text-align: center; }
.cart-empty > span { color: var(--honey); font-size: 24px; }
.cart-empty p { margin: 5px 0 10px; font-family: var(--serif); font-size: 18px; }
.cart-total { display: flex; align-items: baseline; justify-content: space-between; margin-top: 13px; padding: 16px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.cart-total strong { color: var(--brown); font-family: var(--serif); font-size: 22px; font-weight: 400; }
.cart-demo-copy { margin: 0 0 12px; color: var(--muted); font-size: 9px; }
.order-dialog { text-align: center; }
.order-dialog .dialog-head { text-align: left; }
.order-preview-icon { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 14px; border: 1px solid #d5b685; border-radius: 50%; color: var(--red); font-size: 23px; }
.order-dialog > p:not(.dialog-small) { color: var(--muted); font-size: 12px; line-height: 1.8; }
.order-preview-total { padding: 12px; background: #f2e9dc; color: var(--brown) !important; }
.order-preview-total strong { color: var(--red); }
.checkout-steps { display: grid; gap: 8px; margin: 15px 0; text-align: left; }
.checkout-step { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid var(--line); background: rgba(242,232,216,.35); }
.checkout-step.is-current { border-color: rgba(135,63,52,.45); background: #f6ecde; }
.checkout-step-number { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(135,63,52,.28); border-radius: 50%; color: var(--red); font-family: var(--serif); font-size: 11px; }
.checkout-step-copy { display: grid; gap: 3px; }
.checkout-step-copy strong { color: var(--brown); font-family: var(--serif); font-size: 13px; font-weight: 400; }
.checkout-step-copy small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.handoff-options { margin: 14px 0; padding: 11px; border: 1px solid var(--line); text-align: left; }
.handoff-options legend { padding: 0 5px; color: var(--brown); font-family: var(--serif); font-size: 13px; }
.handoff-choice-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.handoff-choice { display: flex; align-items: flex-start; gap: 7px; min-height: 62px; padding: 9px; border: 1px solid var(--line); background: rgba(255,250,241,.75); cursor: pointer; }
.handoff-choice input { margin: 3px 0 0; accent-color: var(--red); }
.handoff-choice span { display: grid; gap: 4px; }
.handoff-choice strong { color: var(--brown); font-size: 10px; }
.handoff-choice small { color: var(--muted); font-size: 8px; line-height: 1.4; }
.handoff-hint { margin: 8px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.payment-note { margin: 14px 0; padding: 11px 13px; border-left: 2px solid var(--honey); background: #f2e9dc; text-align: left; font-size: 10px; line-height: 1.6; }
.payment-note strong { color: var(--brown); }
.payment-note p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.dialog-small { margin: 12px 0 0; color: #8d8173; font-size: 9px; }
.toast { position: fixed; z-index: 40; right: 22px; bottom: 22px; max-width: calc(100% - 44px); padding: 13px 18px; background: var(--brown-deep); color: #fffaf1; box-shadow: 0 8px 30px rgba(40,24,17,.2); font-size: 11px; opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .2s, transform .2s; }
.toast.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 920px) {
  .site-header { gap: 14px; padding-inline: 24px; }
  .main-nav { gap: 17px; font-size: 10px; }
  .hero { gap: 38px; min-height: 540px; }
  .hero-photo { height: 370px; }
  .product-layout { grid-template-columns: minmax(0, 1fr) minmax(330px, .95fr); gap: 34px; }
  .product-image-card { min-height: 480px; }
  .story-section { min-height: 410px; }
  .story-copy { padding-inline: 45px; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 126px; }
  .season-ribbon { gap: 8px; font-size: 8px; letter-spacing: .1em; }
  .site-header { position: sticky; flex-wrap: wrap; gap: 4px 12px; padding: 10px 18px 8px; }
  .brand-mark { width: 33px; height: 33px; }
  .brand-name { font-size: 16px; }
  .brand-name small { font-size: 6px; }
  .cart-trigger { margin-left: auto; min-height: 35px; padding: 6px 10px; font-size: 10px; }
  .cart-trigger svg { width: 14px; height: 14px; }
  .main-nav { order: 3; width: 100%; justify-content: flex-start; gap: 22px; overflow-x: auto; padding: 5px 0 2px; scrollbar-width: none; white-space: nowrap; }
  .main-nav::-webkit-scrollbar { display: none; }
  .main-nav a { font-size: 10px; }
  .section-shell { width: min(100% - 36px, 500px); }
  .hero { grid-template-columns: 1fr; gap: 29px; min-height: 0; padding-top: 50px; padding-bottom: 54px; }
  .hero-copy { max-width: none; }
  .eyebrow { margin-bottom: 16px; font-size: 8px; }
  h1 { margin-bottom: 17px; font-size: clamp(43px, 13vw, 66px); }
  .hero-intro { max-width: 430px; font-size: 12px; }
  .hero-actions { gap: 18px; }
  .button { min-height: 45px; padding-inline: 15px; font-size: 10px; }
  .hero-price strong { font-size: 24px; }
  .hero-note { margin-top: 22px; }
  .hero-art { width: min(100%, 390px); margin: 0 auto; }
  .hero-photo-wrap { width: calc(100% - 14px); margin: 0 auto; padding: 9px 9px 20px; }
  .hero-photo { height: clamp(285px, 92vw, 380px); }
  .photo-stamp { right: -9px; bottom: 20px; }
  .hero-deco { top: -17px; right: -8px; font-size: 48px; }
  .hero-caption { margin-top: 14px; }
  .value-inner { grid-template-columns: 1fr; width: min(100% - 36px, 500px); padding-block: 8px; }
  .value-item, .value-item:first-child { padding: 12px 6px; border: 0; border-bottom: 1px solid var(--line); }
  .value-item:last-child { border-bottom: 0; }
  .value-icon { width: 29px; height: 29px; flex-basis: 29px; font-size: 10px; }
  .order-section { padding-top: 69px; padding-bottom: 72px; }
  .section-heading { display: block; margin-bottom: 27px; }
  h2 { font-size: clamp(34px, 10vw, 46px); }
  .section-aside { margin: 14px 0 0; font-size: 11px; }
  .product-layout { grid-template-columns: 1fr; gap: 22px; }
  .product-image-card { min-height: 370px; }
  .product-image-card img { object-position: 50% 38%; }
  .product-config { padding: 4px 0; }
  .product-config h3 { font-size: 38px; }
  .product-description { margin-bottom: 22px; }
  .field-hint { margin-bottom: 16px; }
  .price-line { margin-top: 20px; }
  .story-section { grid-template-columns: 1fr; }
  .story-image { min-height: 300px; }
  .story-image img { object-position: 45% 50%; }
  .story-copy { padding: 39px 24px 44px; }
  .story-copy h2 { font-size: 39px; }
  .gift-section { grid-template-columns: 1fr; gap: 31px; padding-top: 70px; padding-bottom: 73px; }
  .gift-copy h2 { font-size: 40px; }
  .gift-photo img { height: 330px; }
  .loyalty-section { padding: 34px 20px; }
  .loyalty-inner { grid-template-columns: auto 1fr; gap: 15px; }
  .loyalty-mark { width: 43px; height: 43px; font-size: 19px; }
  .loyalty-copy h2 { font-size: 28px; }
  .loyalty-copy p:not(.eyebrow) { font-size: 10px; }
  .loyalty-tag { grid-column: 2; justify-self: start; margin-top: -3px; padding: 7px 9px; font-size: 8px; }
  .label-section { grid-template-columns: 1fr; gap: 32px; padding-top: 74px; padding-bottom: 76px; }
  .label-intro h2 { font-size: 39px; }
  .label-preview-wrap { width: min(100%, 390px); }
  .printable-label { padding: 14px 15px 12px; }
  .label-product strong { font-size: clamp(22px, 7vw, 28px); }
  .label-qr { width: clamp(82px, 25vw, 108px); }
  .closing-band { flex-wrap: wrap; gap: 6px 18px; padding-block: 17px; font-size: 9px; }
  .closing-band b { order: 3; width: 100%; text-align: center; }
  .site-footer { flex-wrap: wrap; gap: 12px; padding: 20px 18px; }
  .site-footer p { order: 3; width: 100%; line-height: 1.6; }
  .footer-top { margin-left: auto; }
  .site-dialog { padding: 22px 19px; }
}

@media (max-width: 380px) {
  .season-ribbon { font-size: 7px; }
  .weight-quantity-row { grid-template-columns: 1fr .78fr; gap: 10px; }
  .label-content { gap: 7px; padding-inline: 2px; }
  .label-product span { max-width: 150px; }
}

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

@media print {
  @page { size: 90mm 60mm; margin: 0; }
  body { width: 90mm; height: 60mm; min-width: 0; margin: 0; background: white; }
  body > * { display: none !important; }
  body > main { display: block !important; }
  main > * { display: none !important; }
  .label-section { display: block !important; width: 90mm; height: 60mm; margin: 0; padding: 0; }
  .label-section > * { display: none !important; }
  .label-preview-wrap { display: block !important; width: 90mm; height: 60mm; margin: 0; }
  .printable-label { display: block; width: 90mm; height: 60mm; aspect-ratio: auto; padding: 4mm 5mm 3mm; border: 0; box-shadow: none; }
  .printable-label::before { inset: 2mm; border-color: #d9cbb7; }
  .label-brandline { font-size: 12pt; }
  .label-content { height: calc(100% - 10mm); padding: 0 3mm; }
  .label-product small { font-size: 5pt; }
  .label-product strong { font-size: 20pt; }
  .label-product span { font-size: 6pt; }
  .label-qr { width: 28mm; height: 28mm; }
  .label-bottom { font-size: 6pt; }
  .label-disclaimer { display: none !important; }
}


/* Paiement Stripe test et historique privé */
.site-dialog { overflow-y: auto; }
.checkout-form { display: grid; gap: 12px; text-align: left; }
.checkout-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.checkout-field { display: grid; gap: 6px; color: var(--brown); font-size: 10px; }
.checkout-field input, .checkout-field select, .admin-token-row input { width: 100%; min-height: 42px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 0; background: #fffaf1; color: var(--ink); font: inherit; font-size: 12px; }
.checkout-field input:focus, .checkout-field select:focus, .admin-token-row input:focus { outline: 2px solid rgba(135,63,52,.38); outline-offset: 2px; }
.handoff-choice:has(input:checked) { border-color: var(--red); background: #f6ecde; box-shadow: inset 0 0 0 1px rgba(135,63,52,.16); }
.checkout-status { min-height: 0; margin: 0; color: var(--red); font-size: 10px; line-height: 1.5; }
.checkout-status:empty { display: none; }
.checkout-form button:disabled { opacity: .58; cursor: wait; }
.payment-return { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; width: min(1050px, calc(100% - 56px)); margin: 18px auto 0; padding: 16px 18px; border: 1px solid var(--line); background: #f2e9dc; color: var(--brown); }
.payment-return[hidden] { display: none !important; }
.payment-return strong { font-family: var(--serif); font-size: 19px; font-weight: 400; }
.payment-return p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.payment-return.is-success { border-color: #7d9b75; background: #edf4e9; }
.payment-return.is-pending { border-color: #d5b685; }
.payment-return.is-error { border-color: #b45a4e; background: #f8ece9; }
.payment-return-close { flex: 0 0 auto; width: 30px; height: 30px; border: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 18px; }

.admin-header { position: relative; }
.admin-header .brand-mark { display: grid; place-items: center; font-size: 28px; }
.admin-page { min-height: 70vh; padding-top: 52px; padding-bottom: 72px; }
.admin-card { padding: clamp(22px, 4vw, 44px); border: 1px solid var(--line); background: rgba(255,250,241,.74); }
.admin-card h1 { max-width: 780px; margin: 0 0 14px; font-family: var(--serif); font-size: clamp(38px, 7vw, 64px); font-weight: 400; letter-spacing: -.045em; line-height: .98; }
.admin-intro { max-width: 760px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.admin-access-form { max-width: 680px; margin-top: 24px; }
.admin-access-form > label { display: block; margin-bottom: 7px; color: var(--brown); font-size: 11px; font-weight: 700; }
.admin-token-row { display: grid; grid-template-columns: minmax(180px, 1fr) auto; gap: 10px; align-items: center; }
.admin-token-row .button { min-height: 42px; }
.admin-status { min-height: 20px; margin: 13px 0; color: var(--muted); font-size: 11px; }
.admin-logout { border: 0; background: transparent; cursor: pointer; }
.orders-table-wrap { margin-top: 28px; }
.orders-table-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 12px; color: var(--brown); }
.orders-table-heading h2 { margin: 0; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.orders-table-heading span { color: var(--muted); font-size: 10px; }
.orders-table-scroll { overflow-x: auto; border: 1px solid var(--line); }
.orders-table { width: 100%; min-width: 830px; border-collapse: collapse; background: #fffaf1; text-align: left; }
.orders-table th, .orders-table td { padding: 11px 10px; border-bottom: 1px solid var(--line); vertical-align: top; font-size: 10px; }
.orders-table th { background: #f2e9dc; color: var(--brown); font-weight: 700; }
.orders-table td { color: var(--muted); white-space: pre-line; }
.orders-table .order-id-cell, .orders-table .order-total-cell { color: var(--brown); font-weight: 700; }
.orders-table .order-items-cell ul { display: grid; gap: 4px; min-width: 170px; margin: 0; padding-left: 15px; }
.orders-table .status-paid { color: #496b43; }
.orders-table .status-payment_failed, .orders-table .status-checkout_error { color: var(--red); }
.admin-footnote { margin: 24px 0 0; color: #887966; font-size: 10px; line-height: 1.6; }

@media (max-width: 700px) {
  .checkout-fields { grid-template-columns: 1fr; }
  .handoff-choice-list { grid-template-columns: 1fr; }
  .site-dialog { max-height: 90vh; }
  .payment-return { width: calc(100% - 36px); margin-top: 12px; padding: 13px; }
  .admin-page { padding-top: 28px; }
  .admin-token-row { grid-template-columns: 1fr; }
  .orders-table-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
}


/* Points de vente, livraison locale et mentions légales provisoires */
.availability-section { padding-block: 82px; border-block: 1px solid var(--line); background: #f2e9dc; }
.availability-section .section-heading { margin-bottom: 28px; }
.availability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.availability-card { min-height: 210px; padding: 22px; border: 1px solid rgba(90,56,41,.16); background: #fffaf1; }
.availability-kicker { color: var(--red); font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.availability-card h3 { margin: 17px 0 10px; color: var(--brown-deep); font-family: var(--serif); font-size: 24px; font-weight: 400; line-height: 1.05; }
.availability-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.75; }
.availability-card .availability-fees { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--brown); font-size: 9px; font-weight: 700; }
.footer-links { display: flex; align-items: center; gap: 18px; }
.footer-links a { color: #e6c995; font-size: 9px; }
.footer-links a:hover { color: #fff7e9; }
.legal-draft-section { padding-top: 72px; padding-bottom: 76px; }
.legal-draft-card { padding: clamp(22px, 4vw, 42px); border: 1px solid rgba(90,56,41,.18); background: #f2e9dc; }
.legal-draft-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.legal-draft-heading h2 { margin: 0; color: var(--brown-deep); font-size: clamp(34px, 4vw, 46px); }
.legal-draft-badge { padding: 8px 11px; border: 1px solid rgba(135,63,52,.35); color: var(--red); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.legal-draft-alert { margin: 0; padding: 13px 15px; border-left: 3px solid var(--red); background: #fffaf1; color: var(--brown); font-size: 10px; line-height: 1.7; }
.legal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.legal-item { padding: 15px; border: 1px solid rgba(90,56,41,.13); background: rgba(255,250,241,.75); }
.legal-item-wide { grid-column: 1 / -1; }
.legal-item h3 { margin: 0 0 8px; color: var(--brown-deep); font-family: var(--serif); font-size: 16px; font-weight: 400; }
.legal-item p { margin: 0 0 6px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.legal-item p:last-child { margin-bottom: 0; }
.legal-item strong { color: var(--brown); }
.legal-draft-footnote { margin: 14px 0 0; color: #796d60; font-size: 9px; line-height: 1.6; }
.order-summary-items { margin: 8px 0 0; padding: 11px 12px; background: #f2e9dc; color: var(--brown) !important; text-align: left; }
.order-cost-summary { display: grid; gap: 8px; margin: 10px 0 14px; padding: 12px; border: 1px solid var(--line); background: #fffaf1; text-align: left; }
.order-cost-summary > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 10px; }
.order-cost-summary strong { color: var(--brown); font-family: var(--serif); font-size: 15px; font-weight: 400; text-align: right; }
.order-cost-summary .order-cost-total { margin-top: 3px; padding-top: 9px; border-top: 1px solid var(--line); color: var(--brown-deep); font-weight: 700; }
.order-cost-summary .order-cost-total strong { color: var(--red); font-size: 21px; }
.order-cost-summary .checkout-loyalty-row { color: #476148; font-weight: 700; }
.order-cost-summary .checkout-loyalty-row strong { color: #476148; }
.loyalty-gram-choice { display: grid; gap: 8px; padding: 14px; border: 1px solid rgba(77,101,73,.25); border-radius: 10px; background: #f0f4eb; color: #40583d; font-size: 11px; font-weight: 700; line-height: 1.5; }
.loyalty-gram-choice[hidden] { display: none !important; }
.loyalty-gram-choice select { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid rgba(77,101,73,.3); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.loyalty-gram-choice small { color: #5c6b58; font-size: 9px; font-weight: 400; line-height: 1.55; }
.meeting-point-field { display: grid; gap: 6px; }
.meeting-point-field[hidden] { display: none !important; }
.meeting-point-field > label { display: grid; gap: 6px; color: var(--brown); font-size: 10px; }
.meeting-point-field > small { color: var(--muted); font-size: 8px; line-height: 1.5; }

@media (max-width: 920px) {
  .main-nav { gap: 12px; font-size: 9px; }
  .availability-grid { grid-template-columns: 1fr 1fr; }
  .availability-card-delivery { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .availability-section { padding-block: 62px; }
  .availability-grid { grid-template-columns: 1fr; }
  .availability-card, .availability-card-delivery { grid-column: auto; min-height: 0; padding: 19px; }
  .legal-draft-section { padding-top: 56px; padding-bottom: 58px; }
  .legal-draft-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .legal-grid { grid-template-columns: 1fr; }
  .legal-item-wide { grid-column: auto; }
  .footer-links { width: 100%; justify-content: space-between; }
  .order-cost-summary > div { font-size: 9px; }
}


/* Thèmes saisonniers — mêmes variables sur la boutique et l’aperçu responsable. */
:root[data-theme="valentin"] {
  --cream: #f8efee; --paper: #fff9f7; --paper-strong: #f1e0df; --brown: #60343b; --brown-deep: #45212d;
  --red: #a84355; --red-soft: #c66172; --honey: #d19b80; --sage: #78806b; --line: rgba(96,52,59,.2);
}
:root[data-theme="epiphanie"] {
  --cream: #f3efe8; --paper: #fffaf0; --paper-strong: #e8dfcf; --brown: #45334e; --brown-deep: #26223d;
  --red: #6d4d91; --red-soft: #8869ab; --honey: #c79b3d; --sage: #687661; --line: rgba(69,51,78,.2);
}
:root[data-theme="carnaval"] {
  --cream: #fff4df; --paper: #fffaf0; --paper-strong: #f0e3c6; --brown: #5b382c; --brown-deep: #30263a;
  --red: #865126; --red-soft: #b26e34; --honey: #e5b846; --sage: #687451; --line: rgba(91,56,44,.2);
}
:root[data-theme="paques"] {
  --cream: #f3f2e8; --paper: #fffaf1; --paper-strong: #e7e7d4; --brown: #465744; --brown-deep: #34483b;
  --red: #587b5e; --red-soft: #78946c; --honey: #d8b257; --sage: #72866a; --line: rgba(70,87,68,.2);
}
:root[data-theme="grandmeres"] {
  --cream: #f5f0e9; --paper: #fffaf3; --paper-strong: #eadfe0; --brown: #59384a; --brown-deep: #37253a;
  --red: #88506d; --red-soft: #aa718d; --honey: #c18b68; --sage: #77806b; --line: rgba(89,56,74,.2);
}
:root[data-theme="printemps"] {
  --cream: #f2f2e7; --paper: #fffaf0; --paper-strong: #e4e8d7; --brown: #46553d; --brown-deep: #354431;
  --red: #55784e; --red-soft: #75956b; --honey: #dfb85d; --sage: #71886b; --line: rgba(70,85,61,.2);
}
:root[data-theme="meres"] {
  --cream: #f7f0eb; --paper: #fffaf5; --paper-strong: #efe0dc; --brown: #673c43; --brown-deep: #482b37;
  --red: #a4475d; --red-soft: #c56a79; --honey: #d29c73; --sage: #7a806e; --line: rgba(103,60,67,.2);
}
:root[data-theme="peres"] {
  --cream: #eef1f0; --paper: #f9fbf9; --paper-strong: #dfe7e6; --brown: #344b5a; --brown-deep: #263b4c;
  --red: #496d83; --red-soft: #66899b; --honey: #c28b55; --sage: #667d72; --line: rgba(52,75,90,.2);
}
:root[data-theme="grandperes"] {
  --cream: #f0f0e8; --paper: #fbfaf2; --paper-strong: #e4e4d5; --brown: #46574e; --brown-deep: #30433d;
  --red: #58766c; --red-soft: #78938a; --honey: #b98254; --sage: #77816b; --line: rgba(70,87,78,.2);
}
:root[data-theme="ete_village"] {
  --cream: #edf2ed; --paper: #fbfaf2; --paper-strong: #dce8e2; --brown: #37554f; --brown-deep: #28464b;
  --red: #267b7c; --red-soft: #4b9990; --honey: #d29a4f; --sage: #76846b; --line: rgba(55,85,79,.2);
}
:root[data-theme="rentree"] {
  --cream: #f2eee5; --paper: #fffaf1; --paper-strong: #e7dfd1; --brown: #3b4d60; --brown-deep: #263b52;
  --red: #355b7b; --red-soft: #567a96; --honey: #c58a43; --sage: #72806f; --line: rgba(59,77,96,.2);
}
:root[data-theme="automne"] {
  --cream: #f5eee2; --paper: #fff8ed; --paper-strong: #ebddc8; --brown: #5b3929; --brown-deep: #3c2b24;
  --red: #a74b27; --red-soft: #c56d35; --honey: #d59a43; --sage: #6d7251; --line: rgba(91,57,41,.22);
}
:root[data-theme="octobre"] {
  --cream: #f5eee1; --paper: #fff9ee; --paper-strong: #ebddc7; --brown: #5b3b29; --brown-deep: #3a2a22;
  --red: #a65c21; --red-soft: #c67b2d; --honey: #e0a343; --sage: #70764f; --line: rgba(91,59,41,.2);
}
:root[data-theme="octobre_rose"] {
  --cream: #f7eff2; --paper: #fff9fb; --paper-strong: #efdee5; --brown: #5c3446; --brown-deep: #3d263b;
  --red: #a83d68; --red-soft: #cb6c8d; --honey: #d4a075; --sage: #73806b; --line: rgba(92,52,70,.2);
}
:root[data-theme="halloween"] {
  --cream: #f5eee3; --paper: #fff9ef; --paper-strong: #eddfca; --brown: #553729; --brown-deep: #281b18;
  --red: #c65319; --red-soft: #e27525; --honey: #f0a536; --sage: #626b48; --line: rgba(85,55,41,.22);
}
:root[data-theme="movember"] {
  --cream: #f1eee7; --paper: #fcf9f2; --paper-strong: #e6ded0; --brown: #3c4d4d; --brown-deep: #263a40;
  --red: #48656a; --red-soft: #688589; --honey: #c58c50; --sage: #6f7e6c; --line: rgba(60,77,77,.2);
}
:root[data-theme="black_friday"] {
  --cream: #f0eee9; --paper: #fbfaf6; --paper-strong: #e3dfd6; --brown: #473b2d; --brown-deep: #282520;
  --red: #5d4b31; --red-soft: #806b45; --honey: #c9a45b; --sage: #6d7464; --line: rgba(71,59,45,.22);
}
:root[data-theme="noel"] {
  --cream: #f4f0e8; --paper: #fffaf3; --paper-strong: #e9e3d8; --brown: #44352d; --brown-deep: #263a30;
  --red: #8d3544; --red-soft: #a94e5a; --honey: #c9a05b; --sage: #5e745e; --line: rgba(60,67,53,.2);
}
.campaign-banner { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 13px 24px; background: var(--red); color: var(--paper); text-align: left; }
.campaign-banner > * { position: relative; z-index: 1; }
.campaign-banner[data-theme="halloween"] { background: linear-gradient(105deg, #281b18 0%, #a7461e 58%, #39202a 100%); }
.campaign-banner[data-theme="noel"] { background-image: radial-gradient(circle at 12% 20%, rgba(255,255,255,.2) 0 1px, transparent 1.5px), radial-gradient(circle at 84% 72%, rgba(255,255,255,.17) 0 1px, transparent 1.5px); background-size: 38px 38px, 53px 53px; }
.campaign-banner[data-theme="halloween"]::before, .campaign-banner[data-theme="halloween"]::after,
:root[data-theme="halloween"] .hero-art::before {
  content: ''; position: absolute; z-index: 0; width: 92px; height: 84px; pointer-events: none; opacity: .95;
  background: radial-gradient(circle at 0 0, transparent 0 15px, rgba(255,247,230,.98) 15.5px 17px, transparent 17.5px 29px, rgba(255,247,230,.92) 29.5px 31px, transparent 31.5px 43px, rgba(255,247,230,.86) 43.5px 45px, transparent 45.5px), repeating-conic-gradient(from 0deg at 0 0, rgba(255,247,230,.96) 0 1.5deg, transparent 2.1deg 15deg);
}
.campaign-banner[data-theme="halloween"]::before { top: 0; left: 0; }
.campaign-banner[data-theme="halloween"]::after { right: 0; bottom: 0; transform: rotate(180deg); }
:root[data-theme="halloween"] .hero-art::before { top: -7px; right: -10px; z-index: 3; width: 92px; height: 92px; }
.campaign-banner[data-theme="movember"] .campaign-sparkle { position: relative; width: 34px; height: 22px; flex: 0 0 34px; overflow: hidden; color: transparent; font-size: 0; }
.campaign-banner[data-theme="movember"] .campaign-sparkle::before, .campaign-banner[data-theme="movember"] .campaign-sparkle::after { position: absolute; top: 4px; width: 15px; height: 12px; border-bottom: 4px solid #f2d49b; border-radius: 0 0 70% 70%; content: ''; }
.campaign-banner[data-theme="movember"] .campaign-sparkle::before { left: 1px; transform: rotate(16deg); }
.campaign-banner[data-theme="movember"] .campaign-sparkle::after { right: 1px; transform: rotate(-16deg); }
.campaign-banner[hidden] { display: none !important; }
.campaign-sparkle { color: #f2d49b; font-size: 22px; }
.campaign-banner-copy { display: grid; gap: 3px; max-width: 900px; }
.campaign-banner-copy strong { font-family: var(--serif); font-size: 17px; font-weight: 400; }
.campaign-banner-copy p { margin: 0; color: rgba(255,250,241,.9); font-size: 10px; line-height: 1.5; }
.campaign-banner-copy small { color: #f2d49b; font-size: 8px; letter-spacing: .04em; }
.hero-price del, .price-values del { color: var(--muted); font-family: var(--sans); font-size: 11px; font-weight: 400; }
.price-values { display: inline-flex; align-items: baseline; gap: 10px; }
.price-values del { font-size: 10px; }
.button:disabled { opacity: .55; cursor: wait; transform: none; }
.admin-nav { display: flex; align-items: center; gap: 22px; }
.admin-warning { margin: 18px 0; padding: 13px 15px; border-left: 3px solid var(--honey); background: var(--paper-strong); color: var(--muted); font-size: 10px; line-height: 1.65; }
.admin-warning strong { color: var(--brown); }
.site-settings-form { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.settings-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.settings-heading .eyebrow { margin-bottom: 10px; }
.settings-heading h2 { color: var(--brown-deep); font-size: clamp(30px, 4vw, 42px); }
.campaign-state { padding: 8px 11px; border: 1px solid var(--line); color: var(--muted); font-size: 9px; }
.campaign-state.is-active { border-color: #829778; background: #edf4e9; color: #496b43; }
.campaign-state.is-scheduled { border-color: #d4b87e; background: #faf2df; color: #7a5d2e; }
.settings-group { min-width: 0; margin: 0 0 18px; padding: 19px; border: 1px solid var(--line); }
.settings-group legend { padding: 0 7px; color: var(--brown); font-family: var(--serif); font-size: 19px; }
.settings-help { margin: 0 0 14px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.settings-field { display: grid; gap: 7px; color: var(--brown); font-size: 12px; font-weight: 700; }
.settings-optional { color: var(--muted); font-size: 10px; font-weight: 400; }
.settings-field input, .settings-field select, .settings-field textarea { width: 100%; min-height: 42px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); font: inherit; font-size: 12px; }
.settings-field textarea { min-height: 88px; resize: vertical; line-height: 1.5; }
.settings-field small { color: var(--muted); font-size: 10px; font-weight: 400; line-height: 1.5; }
.settings-field-wide { grid-column: 1 / -1; }
.campaign-toggle { display: flex; align-items: flex-start; gap: 11px; margin: 0 0 18px; padding: 13px; border: 1px solid var(--line); background: var(--paper); color: var(--brown); cursor: pointer; }
.campaign-toggle input { margin-top: 2px; accent-color: var(--red); }
.campaign-toggle span { display: grid; gap: 5px; }
.campaign-toggle strong { font-size: 12px; }
.campaign-toggle small { color: var(--muted); font-size: 10px; line-height: 1.55; }
.settings-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.settings-actions .settings-help { max-width: 500px; margin: 0; }
.theme-preview { margin-top: 16px; padding: 14px; border: 1px solid var(--line); background: rgba(255,250,241,.55); }
.theme-preview-label { margin: 0 0 9px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.theme-preview-banner { min-height: 76px; justify-content: flex-start; }
.theme-preview-banner .campaign-banner-copy { max-width: 100%; }
.theme-preview-banner .campaign-banner-copy p { color: rgba(255,250,241,.92); }
.token-rotation { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--line); }
.token-rotation .settings-heading { margin-bottom: 14px; }
.token-rotation .settings-heading h2 { max-width: 620px; }
.token-rotation-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.token-rotation-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 9px; margin-top: 2px; }
.token-rotation-actions .button { min-height: 42px; padding-inline: 14px; }
.token-recovery-note { margin-bottom: 0; }
.token-recovery-note code { color: var(--brown); font-size: 10px; }

@media (max-width: 700px) {
  .campaign-banner { justify-content: flex-start; padding: 12px 18px; }
  .campaign-banner-copy strong { font-size: 15px; }
  .admin-nav { flex-wrap: wrap; justify-content: flex-end; gap: 9px 15px; }
  .admin-nav .text-link { font-size: 9px; }
  .settings-heading { align-items: flex-start; flex-direction: column; }
  .admin-form-grid { grid-template-columns: 1fr; }
  .settings-field-wide { grid-column: auto; }
  .settings-actions { align-items: stretch; flex-direction: column; }
  .settings-actions .button { width: 100%; }
  .settings-group { padding: 15px 12px; }
  .token-rotation-form { grid-template-columns: 1fr; }
  .token-rotation-actions { grid-column: auto; }
  .token-rotation-actions .button { width: 100%; }
  .theme-preview { padding: 10px; }
}


/* Univers saisonniers plein écran : chaque campagne transforme réellement les surfaces et les commandes. */
:root {
  --theme-page: var(--cream);
  --theme-overlay: none;
  --theme-wallpaper-image: radial-gradient(circle at 18px 22px, rgba(135,63,52,.09) 0 1px, transparent 1.8px), radial-gradient(circle at 86px 72px, rgba(215,154,78,.11) 0 2px, transparent 2.8px);
  --theme-wallpaper-size: 128px 128px, 176px 176px;
  --theme-wallpaper-repeat: repeat, repeat;
  --theme-mark: "✳";
  --theme-tab-radius: 999px;
  --theme-button-radius: 8px;
}
:root[data-theme="classic"] {
  --theme-page: #f8f2e8;
  --theme-wallpaper-image: radial-gradient(circle at 18px 22px, rgba(135,63,52,.08) 0 1px, transparent 1.8px), radial-gradient(circle at 86px 72px, rgba(215,154,78,.1) 0 2px, transparent 2.8px);
  --theme-wallpaper-size: 128px 128px, 176px 176px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✳"; --theme-tab-radius: 999px; --theme-button-radius: 6px;
}
:root[data-theme="valentin"] {
  --theme-page: #fae9e9; --theme-wallpaper-image: radial-gradient(ellipse at 18px 16px, rgba(168,67,85,.13) 0 5px, transparent 5.8px), radial-gradient(ellipse at 72px 64px, rgba(214,129,143,.16) 0 8px, transparent 8.8px);
  --theme-wallpaper-size: 104px 104px, 156px 156px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "♡"; --theme-tab-radius: 999px; --theme-button-radius: 999px;
}
:root[data-theme="epiphanie"] {
  --theme-page: #f3ebd8; --theme-wallpaper-image: radial-gradient(circle at 18px 18px, rgba(199,155,61,.2) 0 2px, transparent 2.8px), repeating-linear-gradient(45deg, transparent 0 28px, rgba(109,77,145,.045) 28px 29px);
  --theme-wallpaper-size: 96px 96px, 58px 58px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "♛"; --theme-tab-radius: 18px 18px 4px 4px; --theme-button-radius: 14px 14px 3px 3px;
}
:root[data-theme="carnaval"] {
  --theme-page: #fff0d4; --theme-wallpaper-image: repeating-linear-gradient(35deg, transparent 0 33px, rgba(178,110,52,.08) 34px 36px, transparent 37px 68px), radial-gradient(circle at 18px 20px, rgba(229,184,70,.24) 0 3px, transparent 4px);
  --theme-wallpaper-size: 78px 78px, 90px 90px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✦"; --theme-tab-radius: 8px 18px 8px 18px; --theme-button-radius: 12px 3px 12px 3px;
}
:root[data-theme="paques"] {
  --theme-page: #eef0df; --theme-wallpaper-image: radial-gradient(ellipse at 18px 18px, rgba(120,148,108,.16) 0 5px, transparent 5.8px), radial-gradient(ellipse at 70px 63px, rgba(216,178,87,.16) 0 7px, transparent 8px);
  --theme-wallpaper-size: 104px 116px, 156px 156px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "◌"; --theme-tab-radius: 45% 45% 42% 42%; --theme-button-radius: 28px 28px 18px 18px;
}
:root[data-theme="grandmeres"] {
  --theme-page: #f4e8e8; --theme-wallpaper-image: radial-gradient(circle at 18px 18px, rgba(170,113,141,.18) 0 2px, transparent 2.6px), radial-gradient(circle at 18px 11px, rgba(193,139,104,.15) 0 3px, transparent 3.7px), radial-gradient(circle at 25px 18px, rgba(193,139,104,.15) 0 3px, transparent 3.7px);
  --theme-wallpaper-size: 76px 76px, 76px 76px, 76px 76px; --theme-wallpaper-repeat: repeat, repeat, repeat; --theme-mark: "❀"; --theme-tab-radius: 22px 22px 6px 6px; --theme-button-radius: 18px 18px 5px 5px;
}
:root[data-theme="printemps"] {
  --theme-page: #edf0df; --theme-wallpaper-image: repeating-linear-gradient(130deg, transparent 0 34px, rgba(117,149,107,.08) 35px 37px, transparent 38px 70px), radial-gradient(ellipse at 25px 18px, rgba(223,184,93,.17) 0 4px, transparent 5px);
  --theme-wallpaper-size: 82px 82px, 112px 112px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✿"; --theme-tab-radius: 22px 4px 22px 4px; --theme-button-radius: 22px 5px 22px 5px;
}
:root[data-theme="meres"] {
  --theme-page: #f7e9e7; --theme-wallpaper-image: radial-gradient(circle at 20px 20px, rgba(197,106,121,.16) 0 4px, transparent 4.8px), radial-gradient(circle at 20px 12px, rgba(210,156,115,.15) 0 3px, transparent 3.8px), radial-gradient(circle at 28px 20px, rgba(210,156,115,.15) 0 3px, transparent 3.8px);
  --theme-wallpaper-size: 88px 88px, 88px 88px, 88px 88px; --theme-wallpaper-repeat: repeat, repeat, repeat; --theme-mark: "❀"; --theme-tab-radius: 999px; --theme-button-radius: 999px;
}
:root[data-theme="peres"] {
  --theme-page: #e8eff0; --theme-wallpaper-image: repeating-linear-gradient(135deg, transparent 0 20px, rgba(73,109,131,.075) 21px 23px, transparent 24px 42px), radial-gradient(circle at 18px 18px, rgba(194,139,85,.16) 0 2px, transparent 2.8px);
  --theme-wallpaper-size: 70px 70px, 108px 108px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "⌁"; --theme-tab-radius: 4px; --theme-button-radius: 4px;
}
:root[data-theme="grandperes"] {
  --theme-page: #e9ede5; --theme-wallpaper-image: repeating-linear-gradient(45deg, transparent 0 17px, rgba(88,118,108,.075) 18px 19px, transparent 20px 36px), radial-gradient(circle at 20px 20px, rgba(185,130,84,.14) 0 2px, transparent 2.8px);
  --theme-wallpaper-size: 72px 72px, 110px 110px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "〰"; --theme-tab-radius: 10px 10px 3px 3px; --theme-button-radius: 10px 10px 3px 3px;
}
:root[data-theme="ete_village"] {
  --theme-page: #e6f0eb; --theme-wallpaper-image: radial-gradient(ellipse at 18px 24px, rgba(38,123,124,.14) 0 9px, transparent 9.8px), repeating-linear-gradient(0deg, transparent 0 34px, rgba(75,153,144,.08) 35px 37px, transparent 38px 68px);
  --theme-wallpaper-size: 120px 84px, 116px 116px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✺"; --theme-tab-radius: 999px; --theme-button-radius: 999px;
}
:root[data-theme="rentree"] {
  --theme-page: #ebeef2; --theme-wallpaper-image: repeating-linear-gradient(0deg, transparent 0 25px, rgba(53,91,123,.09) 26px 27px), linear-gradient(90deg, transparent 0 38px, rgba(197,138,67,.12) 39px 41px, transparent 42px 100%);
  --theme-wallpaper-size: 100% 28px, 120px 100%; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✎"; --theme-tab-radius: 3px; --theme-button-radius: 3px;
}
:root[data-theme="automne"] {
  --theme-page: #f3e8d5; --theme-wallpaper-image: radial-gradient(ellipse at 18px 18px, rgba(197,109,53,.14) 0 4px, transparent 4.8px), radial-gradient(ellipse at 70px 64px, rgba(109,114,81,.14) 0 7px, transparent 8px), repeating-linear-gradient(45deg, transparent 0 44px, rgba(213,154,67,.06) 45px 47px);
  --theme-wallpaper-size: 92px 92px, 142px 142px, 74px 74px; --theme-wallpaper-repeat: repeat, repeat, repeat; --theme-mark: "❧"; --theme-tab-radius: 20px 4px 20px 4px; --theme-button-radius: 20px 5px 20px 5px;
}
:root[data-theme="octobre"] {
  --theme-page: #f5e6cf; --theme-wallpaper-image: repeating-linear-gradient(90deg, transparent 0 16px, rgba(198,108,37,.085) 17px 19px, transparent 20px 39px), radial-gradient(circle at 22px 20px, rgba(224,163,67,.2) 0 5px, transparent 6px);
  --theme-wallpaper-size: 78px 78px, 126px 126px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✦"; --theme-tab-radius: 42% 42% 48% 48% / 55% 55% 45% 45%; --theme-button-radius: 42% 42% 48% 48% / 55% 55% 45% 45%;
}
:root[data-theme="octobre_rose"] {
  --theme-page: #f6e8ed; --theme-wallpaper-image: radial-gradient(circle at 20px 20px, transparent 0 7px, rgba(203,108,141,.18) 7.5px 9px, transparent 9.5px), radial-gradient(circle at 64px 60px, rgba(212,160,117,.13) 0 3px, transparent 3.8px);
  --theme-wallpaper-size: 110px 110px, 96px 96px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "♡"; --theme-tab-radius: 999px; --theme-button-radius: 999px;
}
:root[data-theme="halloween"] {
  --theme-page: #f7a438;
  --theme-overlay: linear-gradient(rgba(247,164,56,.56), rgba(247,164,56,.56));
  --theme-wallpaper-image: url("/manus-storage/async-images/vc0SrcRxfNqg1vi4E445Gv/image-1.webp"), radial-gradient(circle at 18% 10%, rgba(255,229,164,.34), transparent 34%), repeating-linear-gradient(135deg, transparent 0 42px, rgba(71,35,22,.035) 43px 45px, transparent 46px 84px);
  --theme-wallpaper-size: 420px 420px, 100% 100%, 88px 88px; --theme-wallpaper-repeat: repeat, no-repeat, repeat; --theme-mark: "🎃"; --theme-tab-radius: 46% 46% 42% 42% / 59% 59% 41% 41%; --theme-button-radius: 46% 46% 42% 42% / 59% 59% 41% 41%;
}
:root[data-theme="movember"] {
  --theme-page: #e8eeee; --theme-wallpaper-image: radial-gradient(ellipse at 20px 24px, rgba(72,101,106,.15) 0 8px, transparent 8.8px), radial-gradient(ellipse at 68px 68px, rgba(197,140,80,.14) 0 3px, transparent 3.8px);
  --theme-wallpaper-size: 118px 72px, 104px 104px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "〰"; --theme-tab-radius: 12px 12px 4px 4px; --theme-button-radius: 12px 12px 4px 4px;
}
:root[data-theme="black_friday"] {
  --theme-page: #e8e4da; --theme-wallpaper-image: repeating-linear-gradient(135deg, transparent 0 23px, rgba(201,164,91,.11) 24px 26px, transparent 27px 49px), radial-gradient(circle at 20px 20px, rgba(93,75,49,.13) 0 2px, transparent 2.8px);
  --theme-wallpaper-size: 88px 88px, 104px 104px; --theme-wallpaper-repeat: repeat, repeat; --theme-mark: "✦"; --theme-tab-radius: 2px; --theme-button-radius: 2px;
}
:root[data-theme="noel"] {
  --theme-page: #e9eee6; --theme-wallpaper-image: radial-gradient(circle at 20px 20px, rgba(255,255,255,.72) 0 2px, transparent 2.8px), radial-gradient(circle at 68px 56px, rgba(201,160,91,.19) 0 3px, transparent 4px), repeating-linear-gradient(45deg, transparent 0 47px, rgba(141,53,68,.045) 48px 50px);
  --theme-wallpaper-size: 92px 92px, 142px 142px, 90px 90px; --theme-wallpaper-repeat: repeat, repeat, repeat; --theme-mark: "✧"; --theme-tab-radius: 18px 18px 5px 5px; --theme-button-radius: 14px 14px 4px 4px;
}

body {
  background-color: var(--theme-page);
  background-image: var(--theme-overlay), var(--theme-wallpaper-image);
  background-size: 100% 100%, var(--theme-wallpaper-size);
  background-repeat: no-repeat, var(--theme-wallpaper-repeat);
  background-position: center, 0 0;
  background-attachment: fixed;
}
.site-header { background: color-mix(in srgb, var(--paper) 92%, transparent); border-bottom-color: var(--line); }
.season-ribbon { background: var(--brown-deep); }
.main-nav { gap: clamp(8px, 1.4vw, 17px); }
.main-nav a {
  display: inline-flex; align-items: center; gap: 5px; min-height: 32px; padding: 7px 10px;
  border: 1px solid color-mix(in srgb, var(--red) 24%, transparent); border-radius: var(--theme-tab-radius);
  background: color-mix(in srgb, var(--paper) 88%, transparent); color: var(--brown); font-size: 10px;
  box-shadow: 0 2px 0 color-mix(in srgb, var(--brown-deep) 8%, transparent); transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.main-nav a::before { content: var(--theme-mark); color: var(--red); font-size: 11px; line-height: 1; }
.main-nav a::after { right: 12px; bottom: 3px; left: 12px; height: 1px; background: var(--honey); }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--brown-deep); background: var(--paper); transform: translateY(-2px); }
.cart-trigger { border-color: var(--line); border-radius: var(--theme-tab-radius); background: color-mix(in srgb, var(--paper) 84%, transparent); }
.button { border-radius: var(--theme-button-radius); box-shadow: 0 3px 0 color-mix(in srgb, var(--brown-deep) 12%, transparent); }
.button-primary { border-color: color-mix(in srgb, var(--brown-deep) 24%, transparent); background: var(--red); color: var(--paper); }
.button-primary:hover { background: var(--brown-deep); }
.button-outline { border-color: color-mix(in srgb, var(--red) 38%, transparent); background: color-mix(in srgb, var(--paper) 60%, transparent); color: var(--brown); }
.select-wrap select, .quantity-control { border-color: var(--line); border-radius: var(--theme-button-radius); background: color-mix(in srgb, var(--paper) 92%, transparent); }
.product-config { padding: clamp(18px, 2.5vw, 30px); border: 1px solid var(--line); border-radius: 18px; background: color-mix(in srgb, var(--paper) 94%, transparent); box-shadow: 0 16px 44px color-mix(in srgb, var(--brown-deep) 8%, transparent); }
.product-image-card { border: 1px solid color-mix(in srgb, var(--red) 24%, transparent); border-radius: 18px; }
.product-image-label, .printable-label, .availability-card, .legal-item { background-color: color-mix(in srgb, var(--paper) 94%, transparent); border-color: var(--line); }
.availability-card { border-top: 3px solid var(--red); border-radius: 4px 4px 16px 16px; box-shadow: 0 8px 24px color-mix(in srgb, var(--brown-deep) 6%, transparent); }
.value-strip, .availability-section, .closing-band { background-color: color-mix(in srgb, var(--paper-strong) 72%, var(--theme-page)); }
.story-section, .site-footer { background-color: var(--brown-deep); }
.loyalty-section { background: linear-gradient(135deg, color-mix(in srgb, var(--red) 44%, var(--brown-deep)), var(--brown-deep)); }
.site-dialog { border-color: var(--line); border-radius: 18px; }
.order-preview-total, .payment-note { background: color-mix(in srgb, var(--paper-strong) 76%, var(--theme-page)); }
.checkout-step, .handoff-choice { border-color: var(--line); border-radius: var(--theme-button-radius); background: color-mix(in srgb, var(--paper) 88%, transparent); }
.field-label, .settings-field, .settings-group legend { color: var(--brown); }
.settings-group, .theme-preview { border-color: var(--line); border-radius: 14px; background-color: color-mix(in srgb, var(--paper) 78%, transparent); }
.theme-preview-banner { background-color: var(--red); }
.theme-site-preview { margin-top: 12px; }

:root[data-theme] .hero h1,
:root[data-theme] .section-heading h2,
:root[data-theme] .product-config h3,
:root[data-theme] .story-copy h2,
:root[data-theme] .gift-copy h2,
:root[data-theme] .loyalty-copy h2,
:root[data-theme] .label-intro h2,
:root[data-theme] .legal-heading h2,
:root[data-theme] .admin-card h1,
:root[data-theme] .settings-heading h2 { position: relative; isolation: isolate; color: var(--brown-deep); }
:root[data-theme] .story-copy h2, :root[data-theme] .loyalty-copy h2 { color: var(--paper); }
:root[data-theme] .hero h1::after,
:root[data-theme] .section-heading h2::after,
:root[data-theme] .product-config h3::after,
:root[data-theme] .story-copy h2::after,
:root[data-theme] .gift-copy h2::after,
:root[data-theme] .loyalty-copy h2::after,
:root[data-theme] .label-intro h2::after,
:root[data-theme] .legal-heading h2::after,
:root[data-theme] .admin-card h1::after,
:root[data-theme] .settings-heading h2::after {
  position: absolute; z-index: -1; top: -.16em; right: 0; color: var(--honey); content: var(--theme-mark);
  font-family: var(--sans); font-size: .5em; line-height: 1; opacity: .34; pointer-events: none;
}
:root[data-theme] .eyebrow { color: var(--red); }
:root[data-theme] .value-icon, :root[data-theme] .loyalty-stamp-prize { border-color: color-mix(in srgb, var(--red) 40%, transparent); }
:root[data-theme] .loyalty-stamp-prize { background: var(--honey); color: var(--brown-deep); }

/* Halloween : citrouilles dans la navigation, toile sur les titres, orange partout et cartes ivoire lisibles. */
:root[data-theme="halloween"] .hero h1,
:root[data-theme="halloween"] .section-heading h2,
:root[data-theme="halloween"] .product-config h3,
:root[data-theme="halloween"] .story-copy h2,
:root[data-theme="halloween"] .gift-copy h2,
:root[data-theme="halloween"] .loyalty-copy h2,
:root[data-theme="halloween"] .label-intro h2,
:root[data-theme="halloween"] .legal-heading h2,
:root[data-theme="halloween"] .admin-card h1,
:root[data-theme="halloween"] .settings-heading h2 { color: #b94b13; text-shadow: 0 1px 0 rgba(255,255,255,.28); }
:root[data-theme="halloween"] .story-copy h2, :root[data-theme="halloween"] .loyalty-copy h2 { color: #ffb844; }
:root[data-theme="halloween"] h1 em, :root[data-theme="halloween"] h2 em, :root[data-theme="halloween"] h3 em { color: #e45f18; }
:root[data-theme="halloween"] .hero h1::after,
:root[data-theme="halloween"] .section-heading h2::after,
:root[data-theme="halloween"] .product-config h3::after,
:root[data-theme="halloween"] .story-copy h2::after,
:root[data-theme="halloween"] .gift-copy h2::after,
:root[data-theme="halloween"] .loyalty-copy h2::after,
:root[data-theme="halloween"] .label-intro h2::after,
:root[data-theme="halloween"] .legal-heading h2::after,
:root[data-theme="halloween"] .admin-card h1::after,
:root[data-theme="halloween"] .settings-heading h2::after {
  top: -.2em; right: 0; width: .78em; height: .78em; color: #542917; content: ""; opacity: .58;
  background: radial-gradient(circle at 100% 0, transparent 0 17%, currentColor 18% 20%, transparent 21% 38%, currentColor 39% 41%, transparent 42%), repeating-conic-gradient(from 0deg at 100% 0, currentColor 0deg 1.5deg, transparent 2deg 15deg);
}
:root[data-theme="halloween"] .main-nav { gap: clamp(6px, 1vw, 12px); }
:root[data-theme="halloween"] .main-nav a {
  position: relative; overflow: visible; margin-top: 4px; padding: 9px 11px; border: 1px solid #8b3b19;
  border-radius: 46% 46% 42% 42% / 59% 59% 41% 41%; background: linear-gradient(90deg, rgba(255,237,185,.42), transparent 24%, rgba(111,43,18,.12) 49%, transparent 74%, rgba(255,237,185,.34)), linear-gradient(#f9b544, #ed741c 72%, #d95616);
  color: #492519; font-weight: 800; box-shadow: inset 0 2px 2px rgba(255,255,255,.42), inset 0 -3px 4px rgba(107,42,18,.22), 0 4px 0 rgba(87,42,25,.14);
}
:root[data-theme="halloween"] .main-nav a::before { position: absolute; top: -5px; left: calc(50% - 4px); width: 8px; height: 7px; margin: 0; border-radius: 4px 2px 1px 1px; background: #556338; color: transparent; content: ""; transform: rotate(-12deg); }
:root[data-theme="halloween"] .main-nav a::after { right: 50%; bottom: 3px; left: 50%; height: 1px; background: rgba(87,42,25,.48); transform: scaleX(0); }
:root[data-theme="halloween"] .main-nav a:hover::after, :root[data-theme="halloween"] .main-nav a:focus-visible::after { transform: scaleX(1); }
:root[data-theme="halloween"] .button-primary {
  position: relative; overflow: visible; border-color: #8b3b19;
  border-radius: 46% 46% 42% 42% / 59% 59% 41% 41%;
  background: linear-gradient(90deg, rgba(255,237,185,.35), transparent 24%, rgba(111,43,18,.16) 50%, transparent 76%, rgba(255,237,185,.3)), linear-gradient(#f9b544, #ed741c 72%, #d95616);
  color: #422318; font-weight: 800; box-shadow: inset 0 2px 2px rgba(255,255,255,.35), inset 0 -3px 4px rgba(107,42,18,.22), 0 4px 0 rgba(87,42,25,.16);
}
:root[data-theme="halloween"] .button-primary:hover { background: linear-gradient(90deg, rgba(255,237,185,.35), transparent 24%, rgba(111,43,18,.16) 50%, transparent 76%, rgba(255,237,185,.3)), linear-gradient(#ffc75a, #f18424 72%, #df5d17); filter: saturate(1.08); }
:root[data-theme="halloween"] .button-primary::before { position: absolute; top: -5px; left: 50%; width: 10px; height: 7px; border-radius: 5px 2px 1px 1px; background: #556338; content: ""; transform: translateX(-50%) rotate(-11deg); }
:root[data-theme="halloween"] .cart-trigger, :root[data-theme="halloween"] .select-wrap select, :root[data-theme="halloween"] .quantity-control { border-color: #c66422; border-radius: 12px 12px 8px 8px; }
:root[data-theme="halloween"] .cart-trigger { background: #ffca69; color: #482619; }
:root[data-theme="halloween"] .product-config, :root[data-theme="halloween"] .admin-card { border: 1px solid rgba(129,61,25,.34); background: rgba(255,249,238,.96); box-shadow: 0 18px 50px rgba(84,41,23,.15); }
:root[data-theme="halloween"] .value-strip, :root[data-theme="halloween"] .availability-section, :root[data-theme="halloween"] .closing-band { background-color: rgba(255,226,179,.92); }
:root[data-theme="halloween"] .story-section { background-image: linear-gradient(rgba(45,25,18,.58), rgba(45,25,18,.58)), url("/manus-storage/async-images/vc0SrcRxfNqg1vi4E445Gv/image-1.webp"), linear-gradient(135deg, #392018, #251815); background-size: 100% 100%, 320px 320px, cover; background-repeat: no-repeat, repeat, no-repeat; }
:root[data-theme="halloween"] .loyalty-section { background: linear-gradient(125deg, #6e3218, #2b1a17 78%); }
:root[data-theme="halloween"] .availability-card { border-color: #c66422; }
:root[data-theme="halloween"] .availability-card h3, :root[data-theme="halloween"] .product-image-label b { color: #b94b13; }
:root[data-theme="halloween"] .campaign-banner[data-theme="halloween"] { background: linear-gradient(105deg, #281b18 0%, #a7461e 58%, #39202a 100%); }
:root[data-theme="halloween"] .hero-deco { color: #8f421c; opacity: .5; }

/* Motif et couleur de titre complémentaires pour les thèmes non-Halloween. */
:root[data-theme="valentin"] .button-primary, :root[data-theme="meres"] .button-primary { box-shadow: 0 4px 0 rgba(119,42,57,.15), 0 8px 20px rgba(168,67,85,.12); }
:root[data-theme="epiphanie"] .button-primary, :root[data-theme="noel"] .button-primary { box-shadow: 0 4px 0 rgba(57,42,51,.16), 0 0 0 2px color-mix(in srgb, var(--honey) 32%, transparent); }
:root[data-theme="carnaval"] .button-primary { box-shadow: 4px 4px 0 rgba(48,38,58,.14); }
:root[data-theme="paques"] .button-primary, :root[data-theme="printemps"] .button-primary { box-shadow: 0 4px 0 rgba(58,81,60,.15), 0 8px 20px rgba(85,120,78,.12); }
:root[data-theme="octobre_rose"] .button-primary { box-shadow: 0 4px 0 rgba(105,43,70,.16), 0 0 0 2px rgba(203,108,141,.12); }
:root[data-theme="black_friday"] .button-primary { color: #fff5da; box-shadow: 0 0 0 1px #c9a45b, 0 4px 0 rgba(40,37,32,.22); }
:root[data-theme="noel"] .season-ribbon, :root[data-theme="noel"] .site-footer { box-shadow: inset 0 3px 0 rgba(201,160,91,.42); }
:root[data-theme="rentree"] .section-heading h2, :root[data-theme="peres"] .section-heading h2 { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--honey) 60%, transparent); text-decoration-thickness: 2px; text-underline-offset: 7px; }

@media (max-width: 920px) {
  .main-nav { gap: 7px; }
  .main-nav a { padding-inline: 8px; font-size: 9px; }
}
@media (max-width: 700px) {
  body { background-attachment: scroll; }
  :root[data-theme="halloween"] { --theme-wallpaper-size: 300px 300px, 100% 100%, 88px 88px; }
  .main-nav { gap: 11px; padding-top: 10px; padding-bottom: 5px; }
  .main-nav a { flex: 0 0 auto; min-height: 33px; padding: 7px 10px; font-size: 9px; }
  .product-config { padding: 18px 15px; border-radius: 14px; }
  :root[data-theme="halloween"] .main-nav a { margin-top: 4px; }
  :root[data-theme="halloween"] .hero h1::after, :root[data-theme="halloween"] .section-heading h2::after,
  :root[data-theme="halloween"] .story-copy h2::after, :root[data-theme="halloween"] .gift-copy h2::after,
  :root[data-theme="halloween"] .loyalty-copy h2::after, :root[data-theme="halloween"] .label-intro h2::after { right: 0; }
}


/* Contraste maximal demandé : noir gras sur les fonds orange/clairs, blanc gras sur les surfaces sombres. */
:root[data-theme="halloween"] body { color: #15110e; font-weight: 700; }
:root[data-theme="halloween"] body :is(h1, h2, h3, h4, p, small, span, a, button, label, li, strong, b, em, legend, summary, input, select, textarea, th, td) {
  color: #15110e !important;
  font-weight: 700 !important;
}
:root[data-theme="halloween"] body :is(h1, h2, h3, h4) { font-weight: 800 !important; }
:root[data-theme="halloween"] body :is(.season-ribbon, #campaignBanner, .story-copy, .loyalty-section, .site-footer, .toast) :is(h1, h2, h3, h4, p, small, span, a, button, label, li, strong, b, em, legend, summary, input, select, textarea, th, td) {
  color: #fff !important;
  font-weight: 700 !important;
}
:root[data-theme="halloween"] .site-header :is(.brand-name, .brand-name small, .main-nav a, .cart-trigger, .cart-count) { color: #15110e !important; font-weight: 800 !important; }
:root[data-theme="halloween"] .hero-intro,
:root[data-theme="halloween"] .hero-note,
:root[data-theme="halloween"] .section-aside,
:root[data-theme="halloween"] .value-item small,
:root[data-theme="halloween"] .product-description,
:root[data-theme="halloween"] .field-hint,
:root[data-theme="halloween"] .portion-guide,
:root[data-theme="halloween"] .availability-card p,
:root[data-theme="halloween"] .legal-item p,
:root[data-theme="halloween"] .site-dialog p,
:root[data-theme="halloween"] .site-dialog small,
:root[data-theme="halloween"] .checkout-field,
:root[data-theme="halloween"] .settings-help,
:root[data-theme="halloween"] .admin-intro { color: #15110e !important; font-weight: 700 !important; }
:root[data-theme="halloween"] .hero h1,
:root[data-theme="halloween"] .hero h1 em,
:root[data-theme="halloween"] .section-heading h2,
:root[data-theme="halloween"] .product-config h3,
:root[data-theme="halloween"] .availability-card h3,
:root[data-theme="halloween"] .gift-copy h2,
:root[data-theme="halloween"] .label-intro h2,
:root[data-theme="halloween"] .legal-heading h2 { color: #15110e !important; font-weight: 800 !important; }
:root[data-theme="halloween"] .story-copy h2,
:root[data-theme="halloween"] .loyalty-copy h2 { color: #fff !important; font-weight: 800 !important; }
:root[data-theme="halloween"] .hero-price,
:root[data-theme="halloween"] .hero-price strong,
:root[data-theme="halloween"] .hero-price small,
:root[data-theme="halloween"] .price-line,
:root[data-theme="halloween"] .price-line strong { color: #15110e !important; font-weight: 800 !important; }
:root[data-theme="halloween"] .campaign-banner,
:root[data-theme="halloween"] .campaign-banner :is(strong, p, small, span),
:root[data-theme="halloween"] .season-ribbon,
:root[data-theme="halloween"] .season-ribbon span,
:root[data-theme="halloween"] .story-copy :is(p, small, span, a),
:root[data-theme="halloween"] .loyalty-section :is(p, small, span, a),
:root[data-theme="halloween"] .site-footer :is(p, small, span, a),
:root[data-theme="halloween"] .toast { color: #fff !important; font-weight: 700 !important; }
:root[data-theme="halloween"] .button,
:root[data-theme="halloween"] .main-nav a,
:root[data-theme="halloween"] .cart-trigger,
:root[data-theme="halloween"] .select-wrap select,
:root[data-theme="halloween"] .quantity-control,
:root[data-theme="halloween"] .handoff-choice,
:root[data-theme="halloween"] .checkout-step { color: #15110e !important; font-weight: 800 !important; }


/* Bandeau d’annonce présent sur tous les thèmes, Classique compris. */
.campaign-banner {
  width: min(1240px, calc(100% - 48px));
  min-height: 94px;
  margin: 18px auto 22px;
  padding: 20px clamp(24px, 4vw, 48px);
  border: 2px solid rgba(255, 250, 241, .62);
  border-radius: 999px;
  background: linear-gradient(112deg, #2c1d17, #5a3028);
  color: #fffdf8;
  box-shadow: 0 14px 36px rgba(40, 27, 24, .25);
  font-weight: 800;
}
.campaign-banner-copy { gap: 6px; }
.campaign-banner-copy strong {
  color: #fffdf8;
  font-family: var(--sans);
  font-size: clamp(19px, 2.1vw, 25px);
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.15;
}
.campaign-banner-copy p {
  color: #fffdf8;
  font-size: clamp(12px, 1.25vw, 15px);
  font-weight: 700;
  line-height: 1.45;
}
.campaign-banner-copy small {
  color: #fff0c8;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .035em;
}
.campaign-sparkle { flex: 0 0 auto; font-size: 28px; }
.theme-preview-banner { width: 100%; min-height: 82px; margin: 0; border-radius: 24px; }
.theme-preview-banner .campaign-banner-copy p { color: #fffdf8; }

/* Contact public : chaque demande arrive dans la boîte responsable privée. */
.contact-section {
  padding-block: clamp(54px, 8vw, 96px);
  background: var(--paper-strong);
}
.contact-panel {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(28px, 6vw, 82px);
  padding: clamp(22px, 4vw, 48px);
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--paper);
  box-shadow: 0 18px 48px rgba(40, 27, 24, .08);
}
.contact-copy h2 { margin: 0 0 18px; color: var(--brown-deep); font-size: clamp(32px, 4vw, 48px); }
.contact-copy > p:not(.eyebrow) { max-width: 480px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.contact-copy .contact-privacy-note { margin-top: 20px; padding: 13px 15px; border-left: 3px solid var(--honey); background: var(--paper-strong); color: var(--brown); font-size: 11px; font-weight: 600; line-height: 1.65; }
.contact-form { display: grid; gap: 14px; }
.contact-field { display: grid; gap: 7px; color: var(--brown); font-size: 12px; font-weight: 700; }
.contact-field input, .contact-field textarea {
  width: 100%;
  min-height: 46px;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper-strong);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
}
.contact-field textarea { min-height: 128px; resize: vertical; line-height: 1.55; }
.contact-field input:focus-visible, .contact-field textarea:focus-visible { outline: 3px solid var(--honey); outline-offset: 2px; }
.contact-form .button { justify-self: start; min-height: 48px; padding-inline: 22px; font-weight: 800; }
.contact-status { min-height: 1.5em; margin: 0; color: var(--brown-deep); font-size: 12px; font-weight: 700; line-height: 1.5; }
.contact-trap { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* Boîte de réception accessible uniquement après authentification responsable. */
.admin-messages { margin-top: 38px; padding-top: 30px; border-top: 1px solid var(--line); }
.admin-messages-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.admin-messages-heading h2 { color: var(--brown-deep); font-size: clamp(28px, 3.4vw, 40px); }
.admin-message-list { display: grid; gap: 12px; }
.admin-message-card { display: grid; gap: 12px; padding: clamp(16px, 2.5vw, 22px); border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.admin-message-card.is-unread { border-color: var(--red); box-shadow: inset 4px 0 0 var(--red); }
.admin-message-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--brown-deep); }
.admin-message-heading strong { font-size: 15px; font-weight: 800; }
.admin-message-state { padding: 5px 9px; border-radius: 999px; background: var(--paper-strong); color: var(--brown); font-size: 10px; font-weight: 800; }
.admin-message-card.is-unread .admin-message-state { background: var(--red); color: #fff; }
.admin-message-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; color: var(--muted); font-size: 11px; }
.admin-message-meta a { color: var(--red); font-weight: 700; overflow-wrap: anywhere; }
.admin-message-body { margin: 0; padding: 14px; border-radius: 12px; background: var(--paper-strong); color: var(--brown-deep); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; white-space: pre-wrap; }
.admin-message-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.admin-message-actions .button { min-height: 38px; padding: 8px 12px; font-size: 11px; }
.admin-unread-badge { display: inline-grid; min-width: 21px; height: 21px; margin-left: 5px; padding-inline: 6px; place-items: center; border-radius: 999px; background: var(--red); color: #fff; font-size: 10px; font-weight: 800; }
.admin-footnote { margin-top: 16px; color: var(--muted); font-size: 10px; line-height: 1.6; }

@media (max-width: 700px) {
  .campaign-banner { width: calc(100% - 24px); min-height: 86px; margin: 12px auto 16px; padding: 16px 19px; border-radius: 22px; justify-content: flex-start; }
  .campaign-banner-copy strong { font-size: 18px; }
  .campaign-banner-copy p { font-size: 12px; }
  .campaign-banner-copy small { font-size: 9px; }
  .campaign-sparkle { font-size: 23px; }
  .theme-preview-banner { width: 100%; min-height: 78px; margin: 0; border-radius: 18px; }
  .contact-section { padding-block: 52px; }
  .contact-panel { grid-template-columns: 1fr; gap: 22px; padding: 21px; border-radius: 20px; }
  .contact-copy h2 { font-size: 34px; }
  .contact-form .button { width: 100%; justify-content: center; }
  .admin-messages-heading { align-items: flex-start; flex-direction: column; }
  .admin-message-meta { align-items: flex-start; flex-direction: column; }
  .admin-message-actions .button { flex: 1 1 100%; justify-content: center; }
}


/* Navigation partagée entre les pages distinctes. */
.main-nav a[aria-current="page"] { color: var(--red); font-weight: 800; }
.main-nav a[aria-current="page"]::after { transform: scaleX(1); }
.site-header-cta { white-space: nowrap; }
.site-header-cta:hover,
.site-header-cta:focus-visible,
.site-header-cta:active {
  border-color: var(--red);
  background: var(--paper-strong);
  color: var(--red);
}

.home-discover { padding-block: 88px 104px; }
.home-discover > h2 { margin-bottom: 34px; }
.home-discover-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.home-discover-links a { position: relative; display: grid; grid-template-columns: 36px 1fr 24px; align-items: center; gap: 5px 14px; min-height: 92px; padding: 18px 12px; border-bottom: 1px solid var(--line); }
.home-discover-links a:nth-child(odd) { border-right: 1px solid var(--line); }
.home-discover-links a > span { grid-row: span 2; color: var(--red); font-size: 10px; font-weight: 800; }
.home-discover-links a strong { font-family: var(--serif); font-size: 19px; font-weight: 400; }
.home-discover-links a small { grid-column: 2; color: var(--muted); font-size: 11px; line-height: 1.5; }
.home-discover-links a > b { grid-column: 3; grid-row: 1 / span 2; color: var(--red); font-size: 18px; font-weight: 400; }
.home-discover-links a:hover { background: var(--paper-strong); }
.story-page-section { margin-top: 24px; }
.story-followup { padding-block: 76px 96px; }
.story-followup h2 { margin-bottom: 18px; }
.story-followup > p:not(.eyebrow) { max-width: 610px; margin: 18px 0 22px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.availability-page-section { padding-block: 64px 82px; }
.loyalty-page-section { margin-block: 24px; }
.contact-page-section { margin-block: 26px; }
.contact-copy h1 { margin-bottom: 18px; color: var(--brown-deep); font-size: clamp(34px, 4vw, 52px); }
.contact-form > label:not(.contact-honeypot) { display: grid; gap: 7px; color: var(--brown); font-size: 12px; font-weight: 700; }
.contact-form input, .contact-form textarea { width: 100%; min-height: 46px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-strong); color: var(--ink); font: inherit; font-size: 13px; }
.contact-form textarea { min-height: 128px; resize: vertical; line-height: 1.55; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { outline: 3px solid var(--honey); outline-offset: 2px; }
.contact-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.site-footer .footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 17px; max-width: 670px; }
.site-footer .footer-links a { font-size: 10px; }

@media (max-width: 1100px) {
  .site-header { gap: 14px; padding-inline: 24px; }
  .main-nav { gap: 12px; font-size: 10.5px; }
}
@media (max-width: 760px) {
  .site-header { flex-wrap: wrap; gap: 10px 14px; padding: 12px 18px 9px; }
  .brand-mark { width: 34px; height: 34px; }
  .brand-name { font-size: 16px; }
  .site-header-cta, .cart-trigger { margin-left: auto; }
  .main-nav { order: 3; width: 100%; justify-content: flex-start; gap: 19px; overflow-x: auto; padding: 7px 0 3px; border-top: 1px solid var(--line); font-size: 11px; scrollbar-width: thin; }
  .main-nav a { flex: 0 0 auto; }
  .home-discover { padding-block: 58px 68px; }
  .home-discover-links { grid-template-columns: 1fr; }
  .home-discover-links a:nth-child(odd) { border-right: 0; }
  .story-page-section, .loyalty-page-section, .contact-page-section { margin-block: 12px; }
  .story-followup { padding-block: 58px 68px; }
  .availability-page-section { padding-block: 44px 58px; }
  .site-footer { align-items: flex-start; }
  .site-footer .footer-links { justify-content: flex-start; }
}


/* Page Fidélité : transformer les trois tampons en explication claire du solde. */
.loyalty-page-section .loyalty-inner { display: block; width: min(920px, calc(100% - 48px)); margin-inline: auto; }
.loyalty-page-section .loyalty-copy { max-width: 920px; margin-inline: auto; }
.loyalty-page-section .loyalty-copy h1 { max-width: 760px; margin-bottom: 20px; color: #fff8ed; font-size: clamp(40px, 5vw, 67px); }
.loyalty-page-section .loyalty-copy h1 em { color: #f4d49f; }
.loyalty-page-section .loyalty-copy > p:not(.eyebrow):not(.loyalty-small-note) { max-width: 710px; color: #e2e7db; font-size: 13px; line-height: 1.8; }
.loyalty-stamp-track { display: flex; gap: 12px; margin: 24px 0 18px; }
.loyalty-page-section .loyalty-stamp { width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.7); background: rgba(255,255,255,.12); color: #fff8ed; font-family: var(--serif); font-size: 16px; }
.loyalty-reward-note { display: grid; gap: 7px; max-width: 680px; margin: 0; padding: 16px 18px; border-left: 3px solid #f4d49f; background: rgba(255,255,255,.09); }
.loyalty-reward-note strong { color: #fff8ed; font-family: var(--serif); font-size: 20px; font-weight: 400; }
.loyalty-reward-note span { color: #e2e7db; font-size: 11px; line-height: 1.7; }
.loyalty-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-block: 28px; }
.loyalty-benefit-grid article { min-height: 164px; padding: 18px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.07); }
.loyalty-benefit-grid article > span { display: block; margin-bottom: 16px; color: #f4d49f; font-size: 10px; font-weight: 800; }
.loyalty-benefit-grid article h2 { margin-bottom: 8px; color: #fff8ed; font-size: 21px; }
.loyalty-benefit-grid article p { margin: 0; color: #e2e7db; font-size: 10px; line-height: 1.7; }
.loyalty-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block: 26px 20px; }
.loyalty-small-note { max-width: 780px; margin: 0; color: #d4dfd0; font-size: 10px; line-height: 1.65; }
@media (max-width: 760px) {
  .loyalty-page-section .loyalty-inner { width: calc(100% - 36px); }
  .loyalty-benefit-grid { grid-template-columns: 1fr; gap: 9px; }
  .loyalty-benefit-grid article { min-height: 0; }
  .loyalty-actions { flex-direction: column; }
  .loyalty-actions .button { width: 100%; }
}


/* Noël : sapin, rouge-griotte, or, lumières, boules et neige sur toutes les pages. */
:root[data-theme="noel"] {
  --theme-page: #eaf2ed;
  --theme-overlay: linear-gradient(rgba(234, 242, 237, .16), rgba(234, 242, 237, .16));
  --theme-wallpaper-image:
    radial-gradient(circle at 18px 22px, rgba(255, 255, 255, .96) 0 1.5px, transparent 2.6px),
    radial-gradient(circle at 54px 69px, rgba(255, 255, 255, .76) 0 2px, transparent 3px),
    radial-gradient(ellipse at 12px 10px, rgba(28, 85, 58, .12) 0 3px, transparent 3.8px),
    repeating-linear-gradient(135deg, transparent 0 44px, rgba(165, 46, 62, .035) 45px 47px, transparent 48px 90px);
  --theme-wallpaper-size: 110px 120px, 170px 160px, 150px 140px, 108px 108px;
  --theme-wallpaper-repeat: repeat, repeat, repeat, repeat;
  --theme-mark: "❄";
  --theme-tab-radius: 15px 15px 999px 999px;
  --theme-button-radius: 999px;
  --brown: #20513d;
  --brown-deep: #12392d;
  --red: #a52f40;
  --red-soft: #c04651;
  --honey: #d4b36a;
  --sage: #547a5a;
  --line: rgba(25, 76, 53, .2);
}

:root[data-theme="noel"] body {
  background-image:
    var(--theme-overlay),
    url("/images/noel-snowflakes.svg"),
    url("/images/noel-festive-pattern.svg");
  background-size: 100% 100%, 320px 420px, 420px 460px;
  background-repeat: no-repeat, repeat, repeat;
  background-position: center, 12px -420px, 0 0;
  animation: noel-snowfall 24s linear infinite;
}
@keyframes noel-snowfall {
  to { background-position: center, 12px 0, 0 0; }
}

:root[data-theme="noel"] .season-ribbon {
  background: linear-gradient(100deg, #12392d, #1d573e 50%, #12392d);
  color: #fff8e8;
  box-shadow: inset 0 -1px 0 rgba(212, 179, 106, .8);
}
:root[data-theme="noel"] .ribbon-dot { background: #e0bd68; box-shadow: 0 0 8px rgba(255, 224, 133, .8); }
:root[data-theme="noel"] .site-header {
  position: sticky;
  isolation: isolate;
  background: rgba(247, 250, 246, .94);
  border-bottom: 2px solid rgba(165, 47, 64, .28);
  box-shadow: 0 8px 24px rgba(18, 57, 45, .09);
}
:root[data-theme="noel"] .brand { color: #174a37; }
.noel-garland { display: none; }
:root[data-theme="noel"] .noel-garland {
  position: absolute;
  z-index: 2;
  top: -2px;
  right: 7%;
  left: 26%;
  display: block;
  height: 25px;
  overflow: visible;
  pointer-events: none;
}
.noel-garland-wire {
  position: absolute;
  top: -4px;
  right: 0;
  left: 0;
  height: 23px;
  border-bottom: 2px solid #1d553b;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
}
.noel-garland-light {
  position: absolute;
  z-index: 1;
  width: 10px;
  height: 12px;
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: 48% 48% 50% 50%;
  box-shadow: 0 0 10px currentColor;
}
.noel-garland-light::before {
  position: absolute;
  top: -4px;
  left: 2px;
  width: 4px;
  height: 4px;
  border-radius: 2px 2px 0 0;
  background: #c5a55b;
  content: "";
}
.noel-garland-icon { position: absolute; z-index: 2; top: -4px; font-size: 17px; line-height: 1; filter: drop-shadow(0 1px 2px rgba(12, 48, 31, .2)); }
.noel-garland-tree-one { left: 1%; }
.noel-garland-tree-two { left: 48%; top: -1px; }
.noel-garland-santa { right: 1%; top: -7px; }
.noel-light-one { top: 5px; left: 7%; background: #b83243; color: #b83243; }
.noel-light-two { top: 9px; left: 19%; background: #f2cf69; color: #f2cf69; }
.noel-light-three { top: 13px; left: 31%; background: #397b4d; color: #397b4d; }
.noel-light-four { top: 15px; left: 43%; background: #c43b45; color: #c43b45; }
.noel-light-five { top: 15px; left: 55%; background: #e3c66c; color: #e3c66c; }
.noel-light-six { top: 13px; left: 67%; background: #32764b; color: #32764b; }
.noel-light-seven { top: 9px; left: 79%; background: #b83243; color: #b83243; }
.noel-light-eight { top: 5px; left: 91%; background: #f2cf69; color: #f2cf69; }

:root[data-theme="noel"] .main-nav { gap: clamp(5px, .85vw, 12px); }
:root[data-theme="noel"] .main-nav a {
  min-height: 35px;
  padding: 10px 11px 8px;
  border: 1px solid rgba(250, 244, 220, .76);
  border-radius: 15px 15px 999px 999px;
  background: linear-gradient(145deg, #c54651 0%, #a52f40 54%, #842534 100%);
  color: #fff9ee;
  font-weight: 800;
  box-shadow: inset 0 2px 2px rgba(255, 255, 255, .32), inset 0 -3px 5px rgba(66, 18, 26, .18), 0 3px 0 rgba(18, 57, 45, .16);
}
:root[data-theme="noel"] .main-nav a:nth-child(3n + 2) {
  background: linear-gradient(145deg, #4b8a5c, #246142 70%, #174b35);
}
:root[data-theme="noel"] .main-nav a:nth-child(3n) {
  border-color: #b08e43;
  background: linear-gradient(145deg, #f1d783, #d4b45f 68%, #b89545);
  color: #263d2e;
}
:root[data-theme="noel"] .main-nav a::before {
  position: absolute;
  top: 3px;
  left: calc(50% - 4px);
  width: 8px;
  height: 5px;
  margin: 0;
  border-radius: 2px 2px 0 0;
  background: #e6cb7c;
  color: transparent;
  content: "";
}
:root[data-theme="noel"] .main-nav a:hover,
:root[data-theme="noel"] .main-nav a:focus-visible,
:root[data-theme="noel"] .main-nav a[aria-current="page"] {
  filter: brightness(1.08);
  transform: translateY(-2px);
}
:root[data-theme="noel"] .main-nav a::after { background: rgba(255, 248, 230, .85); }
:root[data-theme="noel"] .cart-trigger {
  border-color: #a52f40;
  background: #a52f40;
  color: #fff9ee;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 3px 0 rgba(18, 57, 45, .15);
}
:root[data-theme="noel"] .cart-trigger:hover { background: #12392d; }
:root[data-theme="noel"] .cart-count { background: #e0bd68; color: #173c2d; }
:root[data-theme="noel"] .button-primary {
  border-color: #d2b15f;
  background: linear-gradient(135deg, #b73546, #8d2638);
  color: #fff9ee;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 4px 0 rgba(18, 57, 45, .16);
}
:root[data-theme="noel"] .button-primary:hover { background: linear-gradient(135deg, #246142, #12392d); }
:root[data-theme="noel"] .button-outline { border-color: #286046; color: #174a37; }
:root[data-theme="noel"] .button-outline:hover { background: #174a37; color: #fff9ee; }
:root[data-theme="noel"] .site-header-cta:hover,
:root[data-theme="noel"] .site-header-cta:focus-visible,
:root[data-theme="noel"] .site-header-cta:active {
  border-color: var(--red);
  background: var(--paper-strong);
  color: var(--red);
}
:root[data-theme="noel"] .hero h1,
:root[data-theme="noel"] .section-heading h2,
:root[data-theme="noel"] .product-config h3,
:root[data-theme="noel"] .availability-card h3,
:root[data-theme="noel"] .legal-heading h2,
:root[data-theme="noel"] .settings-heading h2 { color: #174a37; }
:root[data-theme="noel"] h1 em,
:root[data-theme="noel"] h2 em,
:root[data-theme="noel"] h3 em,
:root[data-theme="noel"] .eyebrow,
:root[data-theme="noel"] .hero-caption > span:last-child { color: #a52f40; }
:root[data-theme="noel"] .section-heading h2::before { display: inline-block; margin-right: .2em; content: "🎄"; font-size: .52em; vertical-align: .12em; }
:root[data-theme="noel"] .hero-deco { z-index: 0; color: #8bb3a1; opacity: .7; font-size: 0; }
:root[data-theme="noel"] .hero-deco::after { content: "❄"; font-size: 68px; }
:root[data-theme="noel"] .hero-photo-wrap,
:root[data-theme="noel"] .gift-photo { border: 1px solid #d4b36a; background: #f9f6eb; box-shadow: 0 10px 32px rgba(18, 57, 45, .12); }
:root[data-theme="noel"] .photo-stamp,
:root[data-theme="noel"] .gift-seal { border-color: #f0d98f; background: #a52f40; color: #fff9ee; }
:root[data-theme="noel"] .photo-stamp b { color: #f0d98f; }
.noel-santa-decoration { display: none; }
:root[data-theme="noel"] .noel-santa-decoration {
  position: absolute;
  z-index: 4;
  top: -36px;
  right: -16px;
  display: block;
  width: clamp(96px, 12vw, 142px);
  height: auto;
  filter: drop-shadow(0 7px 9px rgba(18, 57, 45, .2));
  pointer-events: none;
}
:root[data-theme="noel"] .value-strip,
:root[data-theme="noel"] .availability-section,
:root[data-theme="noel"] .closing-band { background-color: rgba(244, 248, 242, .94); }
:root[data-theme="noel"] .value-icon { border-color: rgba(165, 47, 64, .44); background: #fff9ee; color: #a52f40; }
:root[data-theme="noel"] .product-config,
:root[data-theme="noel"] .admin-card,
:root[data-theme="noel"] .contact-panel,
:root[data-theme="noel"] .legal-item,
:root[data-theme="noel"] .availability-card {
  border-color: rgba(32, 81, 61, .24);
  box-shadow: 0 14px 38px rgba(18, 57, 45, .1);
}
:root[data-theme="noel"] .story-section,
:root[data-theme="noel"] .site-footer {
  background-color: #12392d;
  background-image: radial-gradient(circle at 15% 15%, rgba(215, 190, 112, .14) 0 1.5px, transparent 2px), linear-gradient(125deg, #1c5039, #10352a 72%);
}
:root[data-theme="noel"] .story-copy h2,
:root[data-theme="noel"] .loyalty-copy h2 { color: #fff9ee; }
:root[data-theme="noel"] .loyalty-section { background: linear-gradient(125deg, #8e2939, #183f31 70%); }
:root[data-theme="noel"] .loyalty-stamp-prize { background: #e1c36f; color: #12392d; }
:root[data-theme="noel"] .campaign-banner[data-theme="noel"] {
  border-color: #d4b36a;
  background-image:
    radial-gradient(circle at 6% 9px, #e8cb70 0 4px, transparent 5px),
    radial-gradient(circle at 18% 9px, #d34c53 0 4px, transparent 5px),
    radial-gradient(circle at 30% 9px, #69a273 0 4px, transparent 5px),
    linear-gradient(105deg, #12392d 0%, #246142 48%, #8f293a 100%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
:root[data-theme="noel"] .campaign-banner[data-theme="noel"] .campaign-sparkle { filter: drop-shadow(0 0 5px rgba(255, 232, 161, .6)); }
:root[data-theme="noel"] .site-footer { border-top: 3px solid #c5a451; }
:root[data-theme="noel"] .site-footer::before {
  display: block;
  margin: 0 auto 18px;
  color: #f0d98f;
  content: "🎄   🎅   🎄   🎅   🎄";
  font-size: clamp(20px, 3vw, 28px);
  letter-spacing: .12em;
  text-align: center;
}

@media (max-width: 760px) {
  :root[data-theme="noel"] .noel-garland { top: -4px; right: 5%; left: 34%; height: 23px; }
  :root[data-theme="noel"] .noel-garland-light { width: 8px; height: 10px; }
  :root[data-theme="noel"] .noel-garland-icon { top: -2px; font-size: 12px; }
  :root[data-theme="noel"] .noel-garland-santa { top: -4px; }
  :root[data-theme="noel"] .main-nav { gap: 8px; }
  :root[data-theme="noel"] .main-nav a { padding: 9px 10px 7px; }
  :root[data-theme="noel"] .noel-santa-decoration { top: -24px; right: -5px; width: 92px; }
  :root[data-theme="noel"] .hero-deco::after { font-size: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  :root[data-theme="noel"] body { animation: none; background-position: center, 12px 0, 0 0; }
}

:root[data-theme="noel"] .campaign-banner[data-theme="noel"] {
  background-color: #12392d;
  color: #fff9ee;
}


/* Menu déroulant partagé et raccourci de compte dynamique. */
.site-header-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.site-menu-dropdown { position: relative; flex: 0 0 auto; }
.site-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-height: 42px;
  padding: 0 15px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--brown-deep);
  cursor: pointer;
  font: 800 11px/1 var(--sans);
  list-style: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.site-menu-toggle::-webkit-details-marker { display: none; }
.site-menu-toggle::marker { content: ''; }
.site-menu-toggle:hover, .site-menu-dropdown[open] > .site-menu-toggle {
  border-color: var(--red);
  background: var(--paper-strong);
  color: var(--red);
}
.site-menu-chevron { font-size: 14px; transition: transform .18s ease; }
.site-menu-dropdown[open] .site-menu-chevron { transform: rotate(180deg); }
.site-menu-dropdown .main-nav {
  position: absolute;
  z-index: 100;
  top: calc(100% + 11px);
  left: 0;
  display: grid;
  align-items: stretch;
  justify-content: stretch;
  gap: 4px;
  width: min(290px, calc(100vw - 36px));
  min-width: 235px;
  max-height: min(72vh, 520px);
  overflow: auto;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  box-shadow: 0 18px 46px rgba(32, 29, 24, .19);
  color: var(--ink);
  font-size: 12px;
}
.site-menu-dropdown:not([open]) > .main-nav { display: none; }
.site-menu-dropdown[open] > .main-nav { display: grid; }
.site-menu-dropdown .main-nav a {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 11px;
  color: var(--brown-deep);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  transition: background .16s ease, color .16s ease;
}
.site-menu-dropdown .main-nav a::after { display: none; }
.site-menu-dropdown .main-nav a:hover,
.site-menu-dropdown .main-nav a:focus-visible,
.site-menu-dropdown .main-nav a[aria-current="page"] {
  background: var(--paper-strong);
  color: var(--red);
}
.site-menu-dropdown .main-nav .main-nav-account {
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.site-account-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--brown-deep);
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.site-account-link:hover { border-color: var(--red); color: var(--red); transform: translateY(-1px); }
.site-account-link[aria-current="page"] { border-color: var(--red); }
.site-account-link.is-authenticated { width: 42px; min-width: 42px; height: 42px; padding: 3px; border-radius: 50%; }
.site-account-initials {
  display: grid;
  flex: 0 0 34px;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 50%;
  background: var(--red);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .03em;
}
.site-menu-dropdown .main-nav-account.is-authenticated { justify-content: flex-start; background: transparent; }
.site-menu-dropdown .main-nav-account.is-authenticated:hover { background: var(--paper-strong); }

:root[data-theme="noel"] .site-menu-toggle,
:root[data-theme="noel"] .site-account-link {
  border-color: #286244;
  background: linear-gradient(135deg, #f9fcf8 0%, #e3efe7 100%);
  color: #173f2d;
  box-shadow: 0 3px 9px rgba(28, 73, 49, .12);
}
:root[data-theme="noel"] .site-menu-dropdown .main-nav {
  border-color: #b08b4c;
  background: linear-gradient(180deg, #fffdf8 0%, #edf4ef 100%);
}
:root[data-theme="noel"] .site-menu-dropdown .main-nav a {
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px 999px 12px 12px;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.2);
}
:root[data-theme="noel"] .site-menu-dropdown .main-nav a:nth-child(odd) {
  background: linear-gradient(145deg, #28754d, #174b34);
}
:root[data-theme="noel"] .site-menu-dropdown .main-nav a:nth-child(even) {
  background: linear-gradient(145deg, #b9434c, #882b37);
}
:root[data-theme="noel"] .site-menu-dropdown .main-nav a:hover,
:root[data-theme="noel"] .site-menu-dropdown .main-nav a:focus-visible,
:root[data-theme="noel"] .site-menu-dropdown .main-nav a[aria-current="page"] {
  border-color: #f0ce82;
  color: #fff;
  filter: brightness(1.12);
}
:root[data-theme="noel"] .site-menu-dropdown .main-nav .main-nav-account {
  border-top-color: #c8aa72;
}
:root[data-theme="noel"] .site-account-initials { background: #9d303b; }

@media (max-width: 760px) {
  .site-header { flex-wrap: wrap; gap: 10px 12px; }
  .site-header-tools { flex: 1 0 100%; justify-content: space-between; gap: 8px; }
  .site-header-tools .site-header-cta,
  .site-header-tools .cart-trigger { margin-left: 0; }
  .site-menu-dropdown .main-nav { width: min(290px, calc(100vw - 36px)); }
  .site-account-link { min-height: 40px; padding-inline: 10px; font-size: 9px; }
  .site-account-link.is-authenticated { width: 40px; min-width: 40px; height: 40px; padding: 3px; }
}

/* Devis serveur, acompte et opérations administratives consignées. */
.promo-code-control { display: grid; gap: 7px; padding: 13px; border: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 84%, transparent); color: var(--brown); }
.promo-code-control > label { font-size: 10px; font-weight: 700; }
.promo-code-control > label small { color: var(--muted); font-size: 9px; font-weight: 400; }
.promo-code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.promo-code-row input { width: 100%; min-height: 42px; padding: 10px 11px; border: 1px solid var(--line); background: #fffaf1; color: var(--ink); font: inherit; font-size: 12px; text-transform: uppercase; }
.promo-code-row .button { min-height: 42px; padding-inline: 13px; font-size: 10px; }
.promo-code-status { min-height: 14px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.order-cost-summary .checkout-promo-row { color: #805436; font-weight: 700; }
.order-cost-summary .checkout-promo-row strong { color: #805436; }
.order-cost-summary .order-cost-deposit,
.order-cost-summary .order-cost-balance { padding: 9px 10px; border: 1px solid rgba(135,63,52,.22); background: #f8efe3; }
.order-cost-summary .order-cost-deposit { color: var(--red); font-weight: 700; }
.order-cost-summary .order-cost-deposit strong { color: var(--red); font-size: 18px; }
.order-cost-summary .order-cost-balance { color: var(--brown); }
.order-cost-summary .order-cost-balance strong { color: var(--brown-deep); }

.orders-table { min-width: 1450px; }
.orders-table .order-balance-cell { min-width: 145px; color: var(--brown); font-weight: 700; }
.orders-table .order-actions-cell { min-width: 270px; padding: 9px; }
.order-actions { display: grid; gap: 8px; min-width: 250px; }
.order-action-group { display: grid; gap: 4px; color: var(--brown); font-size: 9px; font-weight: 700; }
.order-action-group input,
.order-action-group select { width: 100%; min-height: 34px; padding: 7px 8px; border: 1px solid var(--line); background: #fffaf1; color: var(--ink); font: inherit; font-size: 10px; }
.order-actions .button { width: 100%; min-height: 35px; padding: 7px 9px; font-size: 9px; line-height: 1.25; white-space: normal; }
.order-refund-group { padding-top: 8px; border-top: 1px dashed var(--line); }
.order-actions small { color: var(--muted); font-size: 8px; line-height: 1.45; }

@media (max-width: 700px) {
  .promo-code-row { grid-template-columns: 1fr; }
  .promo-code-row .button { width: 100%; }
  .order-cost-summary .order-cost-deposit,
  .order-cost-summary .order-cost-balance { align-items: flex-start; flex-direction: column; gap: 3px; }
  .orders-table .order-actions-cell { min-width: 245px; }
}


/* Avertissement de commande : livraison locale uniquement. */
.order-attention.section-aside {
  box-sizing: border-box;
  width: min(100%, 540px);
  max-width: 540px;
  flex: 0 1 540px;
  margin: 0 3vw 4px 0;
  padding: 19px 22px;
  border: 2px solid #a51e28;
  border-left-width: 8px;
  border-radius: 16px;
  background: #fff2eb;
  color: #2f1d1b;
  box-shadow: 0 12px 28px rgba(75, 22, 23, .12);
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 700;
  line-height: 1.5;
}
.order-attention-title {
  display: block;
  margin-bottom: 8px;
  color: #a51e28;
  font-size: clamp(17px, 1.35vw, 20px);
  font-weight: 900;
  letter-spacing: .02em;
}
.order-attention-details { display: block; margin-top: 7px; }
.order-attention.section-aside strong:not(.order-attention-title) { color: #8c1720; font-weight: 900; }
:root[data-theme="halloween"] .order-attention.section-aside {
  background: #fff2eb !important;
  color: #2f1d1b !important;
  font-weight: 700 !important;
}
:root[data-theme="halloween"] .order-attention-title,
:root[data-theme="halloween"] .order-attention.section-aside strong:not(.order-attention-title) {
  color: #8c1720 !important;
  font-weight: 900 !important;
}
@media (max-width: 760px) {
  .order-attention.section-aside {
    width: 100%;
    max-width: none;
    margin: 14px 0 0;
    padding: 17px 18px;
    font-size: 16px;
  }
  .order-attention-title { font-size: 18px; }
}


/* Étiquette imprimable, visible uniquement dans l’espace responsable après authentification. */
.admin-label-section {
  grid-template-columns: minmax(0, 1fr) minmax(0, .95fr);
  align-items: center;
  gap: 34px;
  margin: 28px auto 0;
  padding: 40px 32px;
  border: 1px solid #e2d4bf;
  border-radius: 24px;
  background: #fffaf2;
  color: #28241e;
}
.admin-label-section .label-intro { max-width: 480px; }
.admin-label-section .label-preview-wrap { width: min(100%, 440px); margin-inline: auto; }
.admin-label-section .label-disclaimer { color: #655d51; font-size: 14px; line-height: 1.5; }

@media (max-width: 760px) {
  .admin-label-section { grid-template-columns: 1fr; gap: 24px; padding: 26px 18px; }
  .admin-label-section .label-preview-wrap { width: 100%; }
}

@media print {
  .admin-label-section { margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important; }
  .admin-label-section[hidden] { display: none !important; }
}
