/* ═══════════════════════════════════════════════
   CHORBANE v4 — Ultra Premium
   Dark/Light · Typographie aérée · Éditorial
   ═══════════════════════════════════════════════ */

/* ── TOKENS — MODE SOMBRE (défaut) ─────────────── */
:root {
  --g-950:#060C06; --g-900:#0A1509; --g-800:#0E1A0D;
  --g-750:#121F11; --g-700:#1C2B1A; --g-600:#2D4A2A;
  --g-500:#3A5E38; --g-400:#4A6741; --g-300:#7A9E76;
  --g-200:#B5C8B2;
  --amber:#C9862A; --amber-lt:#E0A848; --amber-dk:#8A5A14;
  /* Sémantique dark */
  --bg-page:#0E1A0D; --bg-alt:#121F11; --bg-stone:#161C13;
  --bg-warm:#141410;
  --bg-card:rgba(28,43,26,.6); --bg-card-ft:rgba(44,74,42,.18);
  --bd-card:rgba(122,158,118,.1); --bd-card-h:rgba(122,158,118,.26);
  --tx-head:#EAE4D8; --tx-body:#C4BAA8;
  --tx-muted:#7A8A78; --tx-faint:#4E5A4C;
  --tx-accent:#C9862A; --cream:#F5EFE3; --cream-dk:#E8DEC9;
  /* Shadows */
  --sh-sm:0 4px 16px rgba(0,0,0,.35);
  --sh-md:0 12px 40px rgba(0,0,0,.45);
  --sh-lg:0 24px 64px rgba(0,0,0,.55);
  /* Typo scale +12% */
  --text-xs:.72rem; --text-sm:.84rem; --text-base:.96rem;
  --text-md:1.05rem; --text-lg:1.18rem; --text-xl:1.35rem;
  --nav-h:76px;
  /* Fonts */
  --f-serif:'Playfair Display',Georgia,serif;
  --f-elegant:'Cormorant Garamond',Georgia,serif;
  --f-sans:'Jost',Helvetica,sans-serif;
  --ease:cubic-bezier(.25,.1,.25,1);
  --ease-out:cubic-bezier(.0,.0,.2,1);
  --spring:cubic-bezier(.34,1.56,.64,1);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.032'/%3E%3C/svg%3E");
}

/* ── MODE CLAIR ──────────────────────────────── */
[data-theme="light"] {
  --bg-page:#EDE6D4; --bg-alt:#E6DEC9; --bg-stone:#E2D9C2; --bg-warm:#DDD3B8;
  --bg-card:rgba(210,198,172,.55); --bg-card-ft:rgba(180,160,110,.14);
  --bd-card:rgba(120,90,40,.12); --bd-card-h:rgba(120,90,40,.3);
  --tx-head:#1E1508; --tx-body:#3A2C14;
  --tx-muted:#6A5530; --tx-faint:#9A8055;
  --tx-accent:#9A5A08; --cream:#1E1508; --cream-dk:#2A1E0A;
  --sh-sm:0 4px 16px rgba(60,40,10,.12);
  --sh-md:0 12px 40px rgba(60,40,10,.18);
  --sh-lg:0 24px 64px rgba(60,40,10,.22);
  --g-300:#5A7A50; --g-400:#3A5830; --g-500:#2A4820;
  --amber:#A06010; --amber-lt:#C07820;
}

/* ── THEME TRANSITION ────────────────────────── */
html { transition: background-color .35s, color .35s; }
body, header, footer, section, div, article, nav, aside, main {
  transition: background-color .35s, border-color .35s, color .35s;
}
/* Exclude animation props */
.ai,.fu,.fl,.fr,.bfill,.bottle-svg,.page-loader,.cursor,.back-top { transition: none; }
.ai,.fu { transition: opacity .85s var(--ease-out), transform .85s var(--ease-out) !important; }
.fl { transition: opacity .85s var(--ease-out), transform .85s var(--ease-out) !important; }
.fr { transition: opacity .85s var(--ease-out), transform .85s var(--ease-out) !important; }
.bfill { transition: transform 1.1s var(--ease-out) .3s !important; }
.bottle-svg { transition: transform .55s var(--ease) !important; }

/* ── RESET ───────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:17px; }
body {
  background:var(--bg-page); color:var(--tx-body);
  font-family:var(--f-sans); font-weight:300;
  line-height:1.82; overflow-x:hidden; cursor:none;
}
[data-theme="light"] body { cursor:auto; }
::selection { background:var(--g-500); color:#F5EFE3; }
a { color:inherit; text-decoration:none; }
address { font-style:normal; }
img,svg { display:block; max-width:100%; }
::-webkit-scrollbar { width:3px; }
::-webkit-scrollbar-track { background:var(--bg-page); }
::-webkit-scrollbar-thumb { background:var(--g-500); border-radius:2px; }

/* ── CURSOR ──────────────────────────────────── */
.cursor {
  position:fixed; width:10px; height:10px; background:var(--g-300);
  border-radius:50%; pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); mix-blend-mode:difference;
  transition:width .18s,height .18s,opacity .2s !important;
}
.cursor.hover { width:28px; height:28px; opacity:.6; }
.cursor.click { width:6px; height:6px; }
@media(pointer:coarse){ .cursor{display:none;} body{cursor:auto;} }
[data-theme="light"] .cursor { display:none; }

/* ── PAGE LOADER ─────────────────────────────── */
.page-loader {
  position:fixed; inset:0; background:#060C06; z-index:9000;
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:1.6rem;
}
.page-loader.done { opacity:0; visibility:hidden; pointer-events:none; transition:opacity .55s,visibility .55s !important; }
.loader-content { display:flex; flex-direction:column; align-items:center; gap:1rem; }
.loader-hex { width:48px; height:48px; color:var(--g-300); animation:hexSpin 2.5s linear infinite; }
@keyframes hexSpin { to{transform:rotate(360deg);} }
.loader-content span { font-family:var(--f-sans); font-size:.68rem; letter-spacing:.44em; color:var(--g-300); }
.loader-bar { width:150px; height:1px; background:rgba(255,255,255,.06); overflow:hidden; }
.loader-fill { height:100%; background:linear-gradient(to right,var(--g-400),var(--amber)); animation:loaderFill 1.7s var(--ease-out) forwards; width:0; }
@keyframes loaderFill { to{width:100%;} }
.page-wrap { animation:pageFadeIn .5s var(--ease-out) both; }
@keyframes pageFadeIn { from{opacity:0;transform:translateY(12px);} to{opacity:1;transform:none;} }
body.page-leaving { opacity:0; transition:opacity .25s !important; }

/* ── HEADER ──────────────────────────────────── */
.site-header { position:fixed; top:0; left:0; right:0; z-index:500; }
.navbar {
  display:flex; align-items:center; gap:1.5rem;
  padding:1.6rem 4rem;
  transition:padding .4s var(--ease),background .4s,backdrop-filter .4s !important;
}
.site-header.scrolled .navbar {
  padding:.95rem 4rem;
  background:rgba(10,21,9,.96);
  backdrop-filter:blur(24px);
  border-bottom:1px solid var(--bd-card);
}
[data-theme="light"] .site-header.scrolled .navbar {
  background:rgba(225,212,185,.97);
}
.nav-logo {
  display:flex; align-items:center; gap:.7rem; flex-shrink:0;
  font-family:var(--f-sans); font-size:.76rem; font-weight:500;
  letter-spacing:.44em; color:var(--tx-head);
}
.nav-logo svg { width:20px; height:20px; color:var(--g-300); }
.nav-links { display:flex; align-items:center; gap:2.2rem; list-style:none; }
.nav-links a {
  font-family:var(--f-sans); font-size:var(--text-xs); font-weight:400;
  letter-spacing:.16em; text-transform:uppercase; color:var(--tx-muted);
  position:relative;
  transition:color .3s !important;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px;
  background:var(--g-300); transition:width .32s var(--ease) !important;
}
.nav-links a:hover,.nav-links a.active { color:var(--tx-head); }
.nav-links a:hover::after,.nav-links a.active::after { width:100%; }
.nav-cta {
  border:1px solid rgba(122,158,118,.4) !important;
  padding:.48rem 1.3rem !important; color:var(--g-200) !important;
  transition:all .3s !important;
}
.nav-cta:hover { background:rgba(74,103,65,.3) !important; border-color:var(--g-300) !important; color:var(--tx-head) !important; }
.nav-cta::after { display:none !important; }
.nav-right { display:flex; align-items:center; gap:.7rem; margin-left:auto; }
.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; }
.nav-toggle span { display:block; width:22px; height:1px; background:var(--tx-head); transition:all .3s !important; }

/* ── THEME TOGGLE ────────────────────────────── */
.theme-toggle {
  background:none; border:1px solid var(--bd-card); color:var(--tx-muted);
  cursor:pointer; width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:border-color .3s,color .3s !important;
}
.theme-toggle:hover { border-color:var(--g-300); color:var(--tx-head); }
.theme-toggle svg { width:15px; height:15px; }
.icon-sun { display:none; }
.icon-moon { display:block; }
[data-theme="light"] .icon-sun  { display:block; }
[data-theme="light"] .icon-moon { display:none; }

/* ── CART ICON ───────────────────────────────── */
.cart-btn {
  background:none; border:1px solid var(--bd-card); color:var(--tx-muted);
  cursor:pointer; width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  position:relative; transition:border-color .3s,color .3s !important;
}
.cart-btn:hover { border-color:var(--g-300); color:var(--tx-head); }
.cart-btn svg { width:15px; height:15px; }
.cart-badge {
  position:absolute; top:-5px; right:-5px;
  background:var(--amber); color:#fff;
  font-family:var(--f-sans); font-size:.55rem; font-weight:600;
  width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(0);
  transition:opacity .25s,transform .25s var(--spring) !important;
}
.cart-badge.show { opacity:1; transform:scale(1); }

/* ── CART DRAWER ─────────────────────────────── */
.cart-drawer {
  position:fixed; top:0; right:-440px; width:420px; max-width:95vw;
  height:100vh; background:var(--bg-alt); border-left:1px solid var(--bd-card);
  z-index:700; display:flex; flex-direction:column;
  transition:right .4s var(--ease) !important;
  box-shadow:-20px 0 60px rgba(0,0,0,.4);
}
.cart-drawer.open { right:0; }
.cart-drawer-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.6rem 1.8rem 1.4rem; border-bottom:1px solid var(--bd-card);
}
.cart-drawer-head h2 { font-family:var(--f-serif); font-size:1.15rem; font-weight:400; color:var(--tx-head); }
.cart-close { background:none; border:none; color:var(--tx-muted); font-size:1.5rem; cursor:pointer; line-height:1; padding:.2rem; transition:color .25s !important; }
.cart-close:hover { color:var(--tx-head); }
.cart-items { flex:1; overflow-y:auto; padding:1.2rem 1.8rem; }
.cart-items::-webkit-scrollbar { width:2px; }
.cart-items::-webkit-scrollbar-thumb { background:var(--g-500); }
.cart-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; height:100%; color:var(--tx-faint); }
.cart-empty svg { width:44px; height:44px; opacity:.3; }
.cart-empty p { font-family:var(--f-elegant); font-size:1.1rem; font-style:italic; }
.cart-item { display:grid; grid-template-columns:52px 1fr auto; gap:.9rem; align-items:start; padding:1rem 0; border-bottom:1px solid var(--bd-card); }
.cart-item:last-child { border-bottom:none; }
.ci-thumb { width:52px; height:72px; background:var(--bg-card); border:1px solid var(--bd-card); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ci-thumb svg { width:26px; height:auto; }
.ci-info { min-width:0; }
.ci-name { font-family:var(--f-serif); font-size:.95rem; color:var(--tx-head); line-height:1.25; margin-bottom:.15rem; }
.ci-name em { font-style:italic; }
.ci-size { font-family:var(--f-sans); font-size:.66rem; letter-spacing:.1em; color:var(--tx-faint); text-transform:uppercase; }
.ci-price { font-family:var(--f-elegant); font-size:.95rem; color:var(--tx-head); white-space:nowrap; line-height:1; padding-top:.15rem; }
.ci-qty { display:flex; align-items:center; gap:.45rem; margin-top:.35rem; }
.ci-qty button { background:none; border:1px solid var(--bd-card); color:var(--tx-muted); width:22px; height:22px; font-size:.9rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .2s !important; }
.ci-qty button:hover { border-color:var(--g-300); color:var(--tx-head); }
.ci-qty span { font-family:var(--f-sans); font-size:.82rem; color:var(--tx-body); min-width:1.2rem; text-align:center; }
.ci-remove { background:none; border:none; color:var(--tx-faint); cursor:pointer; font-size:1rem; padding:.1rem; transition:color .2s !important; align-self:flex-start; }
.ci-remove:hover { color:#e07070; }
.cart-foot { padding:1.4rem 1.8rem; border-top:1px solid var(--bd-card); }
.cart-total { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:1.2rem; }
.cart-total span { font-family:var(--f-sans); font-size:var(--text-xs); letter-spacing:.15em; text-transform:uppercase; color:var(--tx-muted); }
.cart-total strong { font-family:var(--f-elegant); font-size:1.4rem; color:var(--tx-head); }
.btn-checkout { display:block; width:100%; background:var(--g-500); color:var(--tx-head); border:none; cursor:pointer; font-family:var(--f-sans); font-size:var(--text-xs); font-weight:500; letter-spacing:.15em; text-transform:uppercase; padding:1rem; text-align:center; transition:background .3s,transform .3s !important; }
.btn-checkout:hover { background:var(--g-400); transform:translateY(-2px); }
.btn-checkout:disabled { opacity:.35; cursor:not-allowed; transform:none; }
.cart-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:650; opacity:0; visibility:hidden; transition:opacity .4s,visibility .4s !important; }
.cart-overlay.show { opacity:1; visibility:visible; }

/* ── MOBILE DRAWER ───────────────────────────── */
.mobile-drawer {
  position:fixed; top:0; right:-100%; width:80%; max-width:320px;
  height:100vh; background:var(--bg-alt); z-index:600;
  display:flex; flex-direction:column; justify-content:center;
  padding:3rem 2.5rem; border-left:1px solid var(--bd-card);
  box-shadow:-20px 0 60px rgba(0,0,0,.4);
  transition:right .4s var(--ease) !important;
}
.mobile-drawer.open { right:0; }
.mobile-drawer ul { list-style:none; display:flex; flex-direction:column; gap:1.8rem; }
.mobile-drawer a { font-family:var(--f-elegant); font-size:1.5rem; font-style:italic; color:var(--tx-head); display:block; transition:color .3s !important; }
.mobile-drawer a:hover,.mobile-drawer a.active { color:var(--g-300); }
.drawer-close { position:absolute; top:1.5rem; right:1.5rem; background:none; border:none; color:var(--tx-muted); font-size:1.6rem; cursor:pointer; line-height:1; transition:color .3s !important; }
.drawer-close:hover { color:var(--tx-head); }
.drawer-lang { display:flex; gap:.8rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--bd-card); }
.drawer-info { margin-top:1.5rem; display:flex; flex-direction:column; gap:.35rem; font-family:var(--f-sans); font-size:var(--text-xs); letter-spacing:.1em; color:var(--tx-faint); }
.drawer-info a { color:var(--g-300); }
.drawer-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:550; opacity:0; visibility:hidden; transition:opacity .4s,visibility .4s !important; }
.drawer-overlay.show { opacity:1; visibility:visible; }

/* ── LANG SWITCHER ───────────────────────────── */
.lang-sw { display:flex; align-items:center; gap:.35rem; }
.ls-btn { background:none; border:none; cursor:pointer; font-family:var(--f-sans); font-size:.6rem; font-weight:400; letter-spacing:.08em; text-transform:uppercase; color:var(--tx-faint); padding:.2rem .05rem; line-height:1; transition:color .25s !important; }
.ls-btn.active { color:var(--g-300); font-weight:500; }
.ls-btn:hover { color:var(--tx-head); }
.ls-sep { color:var(--tx-faint); opacity:.3; font-size:.55rem; user-select:none; }
.drawer-lang .ls-btn { font-size:.72rem; padding:.3rem .65rem; border:1px solid var(--bd-card); color:var(--tx-muted); }
.drawer-lang .ls-btn.active { border-color:var(--g-300); color:var(--g-300); }
@media(max-width:960px){ .navbar .lang-sw { display:none; } }

/* ── REVEAL ──────────────────────────────────── */
.ai,.fu { opacity:0; transform:translateY(28px); transition-delay:var(--d,0s) !important; }
.fl     { opacity:0; transform:translateX(-28px); transition-delay:var(--d,0s) !important; }
.fr     { opacity:0; transform:translateX(28px);  transition-delay:var(--d,0s) !important; }
.ai.in,.fu.in,.fl.in,.fr.in { opacity:1; transform:none; }

/* ── HERO ────────────────────────────────────── */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--bg-page); }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-shape { position:absolute; border-radius:50%; filter:blur(110px); }
.s1 { width:560px; height:560px; background:radial-gradient(circle,rgba(40,65,38,.42) 0%,transparent 70%); top:-8%; left:-14%; }
.s2 { width:360px; height:360px; background:radial-gradient(circle,rgba(55,80,52,.2) 0%,transparent 70%); bottom:8%; right:-5%; }
.s3 { width:260px; height:260px; background:radial-gradient(circle,rgba(175,115,28,.05) 0%,transparent 70%); top:35%; right:22%; }
[data-theme="light"] .s1 { background:radial-gradient(circle,rgba(80,120,60,.15) 0%,transparent 70%); }
[data-theme="light"] .s2 { background:radial-gradient(circle,rgba(60,100,40,.1) 0%,transparent 70%); }
[data-theme="light"] .s3 { opacity:0; }
.grain-overlay { position:absolute; inset:0; pointer-events:none; z-index:1; background-image:var(--grain); opacity:.5; }
.hero-branch { position:absolute; right:5%; top:4%; z-index:2; width:160px; height:520px; color:var(--g-300); animation:sway 9s ease-in-out infinite; }
@keyframes sway { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-12px) rotate(1.1deg)} }
.hero-content { position:relative; z-index:5; text-align:center; max-width:920px; padding:0 2rem; padding-top:var(--nav-h); }
.hero-eyebrow { display:flex; align-items:center; justify-content:center; gap:1rem; font-family:var(--f-sans); font-size:var(--text-xs); font-weight:400; letter-spacing:.26em; text-transform:uppercase; color:var(--g-300); margin-bottom:2rem; }
.rule { display:block; width:40px; height:1px; background:var(--g-300); opacity:.3; }
.hero-title { font-family:var(--f-serif); font-size:clamp(2.8rem,5.5vw,5.6rem); font-weight:400; line-height:1.1; color:var(--tx-head); margin-bottom:1.6rem; }
.hero-title span { display:block; }
.hero-title em { display:block; font-style:italic; color:var(--g-300); }
.hero-sub { font-family:var(--f-elegant); font-size:clamp(1.05rem,1.8vw,1.28rem); font-weight:300; font-style:italic; color:var(--tx-body); line-height:1.82; margin-bottom:2.6rem; }
.hero-btns { display:flex; align-items:center; justify-content:center; gap:1.6rem; flex-wrap:wrap; margin-bottom:3.5rem; }
.btn-primary { display:inline-flex; align-items:center; gap:.5rem; background:var(--g-500); color:var(--tx-head); font-family:var(--f-sans); font-size:var(--text-xs); font-weight:500; letter-spacing:.16em; text-transform:uppercase; padding:1rem 2.4rem; position:relative; overflow:hidden; transition:background .3s,transform .3s,box-shadow .3s !important; }
.btn-primary::before { content:''; position:absolute; inset:0; background:linear-gradient(to right,transparent,rgba(255,255,255,.06),transparent); transform:translateX(-100%); transition:transform .5s !important; }
.btn-primary:hover::before { transform:translateX(100%); }
.btn-primary:hover { background:var(--g-400); transform:translateY(-2px); box-shadow:0 12px 30px rgba(40,70,38,.3); }
.btn-ghost { font-family:var(--f-sans); font-size:var(--text-xs); font-weight:400; letter-spacing:.1em; color:var(--tx-body); border-bottom:1px solid rgba(200,190,165,.2); padding-bottom:.2rem; transition:color .3s,border-color .3s,letter-spacing .3s !important; }
.btn-ghost:hover { color:var(--tx-head); border-color:var(--g-300); letter-spacing:.14em; }
.hero-stats { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; }
.hst { text-align:center; padding:0 2.2rem; }
.hst strong { display:block; font-family:var(--f-serif); font-size:2rem; font-weight:600; color:var(--tx-head); line-height:1; }
.hst span { display:block; font-family:var(--f-sans); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--tx-faint); margin-top:.5rem; }
.hst-sep { width:1px; height:38px; background:var(--bd-card); flex-shrink:0; }
.scroll-hint { position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); z-index:5; display:flex; flex-direction:column; align-items:center; gap:.5rem; font-family:var(--f-sans); font-size:.56rem; letter-spacing:.22em; text-transform:uppercase; color:var(--tx-faint); animation:shBounce 2s ease-in-out infinite; }
.sh-line { width:1px; height:36px; background:linear-gradient(to bottom,transparent,var(--g-300)); animation:shLine 2s ease-in-out infinite; }
@keyframes shLine { 0%,100%{opacity:.2} 50%{opacity:.8} }
@keyframes shBounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(5px)} }
.dbr { display:none; }
@media(min-width:768px){ .dbr { display:block; } }

/* ── AWARDS STRIP ────────────────────────────── */
.awards-strip { background:var(--bg-alt); border-top:1px solid var(--bd-card); border-bottom:1px solid var(--bd-card); padding:1rem 0; }
.as-inner { display:flex; align-items:center; justify-content:center; gap:1.4rem; flex-wrap:wrap; padding:0 2rem; font-family:var(--f-sans); font-size:.68rem; font-weight:400; letter-spacing:.15em; text-transform:uppercase; color:var(--tx-faint); }
.sep { opacity:.35; }
.bio-badge { color:var(--g-300); }

/* ── SECTIONS ────────────────────────────────── */
.section { padding:8.5rem 0; }
.s-dark,.s-deep { background:var(--bg-page); }
.s-alt  { background:var(--bg-alt); }
.s-stone,.s-light { background:var(--bg-stone); }
.s-warm,.s-warm-dk { background:var(--bg-warm); }
.s-contact { background:var(--bg-page); }
.container { max-width:1260px; margin:0 auto; padding:0 4rem; }
.container-full { max-width:none; padding:0 4rem; }

.sec-label { display:flex; align-items:center; gap:1.2rem; margin-bottom:4rem; }
.sn { font-family:var(--f-sans); font-size:.6rem; font-weight:300; letter-spacing:.22em; color:var(--tx-accent); opacity:.7; }
.sl { font-family:var(--f-sans); font-size:.62rem; font-weight:500; letter-spacing:.26em; text-transform:uppercase; color:var(--tx-muted); }
.sr { flex:1; height:1px; background:linear-gradient(to right,var(--bd-card),transparent); }
.sec-label-lt .sn { color:var(--amber-lt); }
.sec-title { font-family:var(--f-serif); font-size:clamp(2rem,3.6vw,3.4rem); font-weight:400; line-height:1.18; color:var(--tx-head); letter-spacing:-.01em; }
.sec-title em { font-style:italic; color:var(--g-300); display:block; }
.sec-title-lt { color:var(--tx-head); }
.sec-title-c { text-align:center; margin-bottom:4.5rem; }
.sec-intro { font-family:var(--f-elegant); font-size:var(--text-lg); font-style:italic; text-align:center; color:var(--tx-body); margin-bottom:4.5rem; line-height:1.82; }
.t-lead { font-family:var(--f-elegant); font-size:var(--text-xl); font-weight:400; font-style:italic; color:var(--tx-body); line-height:1.78; margin:2rem 0 1.6rem; }
.t-body { font-family:var(--f-sans); font-size:var(--text-base); font-weight:300; line-height:1.92; color:var(--tx-muted); margin-bottom:1.3rem; }
.t-body em { color:var(--g-300); font-style:italic; }

/* ── PAGE HERO ───────────────────────────────── */
.page-hero { background:var(--bg-page); padding:9rem 0 4.5rem; position:relative; overflow:hidden; border-bottom:1px solid var(--bd-card); }
.page-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(42,68,40,.24) 0%,transparent 70%); pointer-events:none; }
[data-theme="light"] .page-hero::before { background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(80,120,60,.08) 0%,transparent 70%); }
.page-hero-inner { position:relative; z-index:2; text-align:center; }
.ph-eyebrow { font-family:var(--f-sans); font-size:var(--text-xs); font-weight:400; letter-spacing:.28em; text-transform:uppercase; color:var(--g-300); margin-bottom:1.4rem; }
.ph-title { font-family:var(--f-serif); font-size:clamp(2.4rem,5vw,4.6rem); font-weight:400; color:var(--tx-head); line-height:1.12; margin-bottom:1.4rem; }
.ph-title em { font-style:italic; color:var(--g-300); }
.ph-sub { font-family:var(--f-elegant); font-size:var(--text-lg); font-style:italic; color:var(--tx-body); opacity:.8; max-width:560px; margin:0 auto; line-height:1.78; }

/* ── BUTTONS ─────────────────────────────────── */
.btn-sm { font-family:var(--f-sans); font-size:var(--text-xs); font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--g-300); border:1px solid rgba(122,158,118,.32); padding:.52rem 1.1rem; display:inline-block; transition:all .3s !important; }
.btn-sm:hover { background:var(--g-500); color:var(--tx-head); border-color:var(--g-500); }
.btn-sm-olive { color:var(--g-200); border-color:rgba(181,200,178,.3); }
.btn-sm-olive:hover { background:var(--g-400); border-color:var(--g-400); color:var(--tx-head); }

/* ── HISTOIRE ────────────────────────────────── */
.histoire-grid { display:grid; grid-template-columns:1fr 1fr; gap:5.5rem; align-items:start; }
.portrait-frame { position:relative; background:var(--bg-card); border:1px solid var(--bd-card); overflow:hidden; box-shadow:var(--sh-md); }
.portrait-frame::after { content:''; position:absolute; top:.8rem; left:.8rem; right:-.8rem; bottom:-.8rem; border:1px solid var(--bd-card); pointer-events:none; opacity:.5; }
.portrait-frame svg { width:100%; height:auto; display:block; }
.portrait-caption { padding:.8rem 1.2rem; font-family:var(--f-sans); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--tx-faint); text-align:center; border-top:1px solid var(--bd-card); background:var(--bg-alt); }
.stat-pill { position:absolute; bottom:-1.4rem; right:-1.4rem; background:var(--g-600); border:1px solid rgba(122,158,118,.22); padding:1rem 1.5rem; text-align:center; box-shadow:var(--sh-md); }
.stat-pill strong { display:block; font-family:var(--f-serif); font-size:2.2rem; font-weight:700; color:var(--tx-head); line-height:1; }
.stat-pill span { display:block; font-family:var(--f-sans); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--g-300); margin-top:.3rem; }
.h-visual { position:relative; padding-bottom:1.5rem; }
.h-text { padding-top:1rem; }
.iblock { font-family:var(--f-elegant); font-size:var(--text-lg); font-style:italic; line-height:1.75; color:var(--tx-body); padding:1.4rem 0 1.4rem 1.6rem; border-left:2px solid var(--g-400); margin:2rem 0; }
.iblock cite { display:block; margin-top:.6rem; font-family:var(--f-sans); font-size:.65rem; font-style:normal; letter-spacing:.12em; color:var(--tx-faint); }
.h-facts { display:flex; gap:2.5rem; margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--bd-card); }
.hf { text-align:center; }
.hf strong { display:block; font-family:var(--f-serif); font-size:2rem; font-weight:700; color:var(--g-300); line-height:1; }
.hf sup { font-size:.9rem; }
.hf span { display:block; font-family:var(--f-sans); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--tx-faint); margin-top:.4rem; }
.counter { font-variant-numeric:tabular-nums; }
.women-banner { margin-top:5.5rem; background:var(--bg-card); border:1px solid var(--bd-card); padding:2.8rem 3rem; display:flex; gap:2.2rem; align-items:flex-start; }
.wb-icon { width:54px; height:54px; flex-shrink:0; color:var(--g-300); }
.wb-icon svg { width:100%; height:100%; }
.wb-text h3 { font-family:var(--f-serif); font-size:var(--text-lg); font-weight:400; color:var(--tx-head); margin-bottom:.7rem; }
.wb-text p { font-family:var(--f-sans); font-size:var(--text-base); font-weight:300; color:var(--tx-muted); line-height:1.9; }

/* ── SAVOIR-FAIRE ────────────────────────────── */
.sf-tex { position:absolute; inset:0; background-image:var(--grain); pointer-events:none; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; list-style:none; margin-bottom:5rem; }
.pi { position:relative; padding:2.4rem 1.6rem; background:var(--bg-card); border:1px solid var(--bd-card); text-align:center; transition:border-color .3s,transform .4s var(--ease),box-shadow .4s !important; }
.pi:hover { border-color:var(--bd-card-h); transform:translateY(-7px); box-shadow:var(--sh-md); }
.pi-n { position:absolute; top:-.9rem; left:50%; transform:translateX(-50%); background:var(--g-500); color:var(--tx-head); font-family:var(--f-sans); font-size:.58rem; font-weight:600; letter-spacing:.12em; padding:.22rem .7rem; }
.pi-ico { width:68px; height:68px; margin:.5rem auto 1.4rem; color:var(--g-300); }
.pi-ico svg { width:100%; height:100%; }
.pi h3 { font-family:var(--f-serif); font-size:var(--text-md); font-weight:400; color:var(--tx-head); margin-bottom:.9rem; }
.pi p { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; line-height:1.9; color:var(--tx-muted); }
.sf-excel { background:var(--bg-card-ft); border:1px solid var(--bd-card); padding:3.2rem; }
.sfe-inner { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:start; }
.sfe-inner h3 { font-family:var(--f-serif); font-size:var(--text-xl); font-weight:400; font-style:italic; color:var(--tx-head); margin-bottom:1rem; }
.sfe-inner p { font-family:var(--f-sans); font-size:var(--text-base); font-weight:300; color:var(--tx-muted); line-height:1.95; }
.sfe-list { list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.sfe-list li { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; color:var(--tx-body); padding-left:1.2rem; position:relative; }
.sfe-list li::before { content:''; position:absolute; left:0; top:.6rem; width:5px; height:1px; background:var(--g-400); }

/* ── PRODUITS ÉDITORIAL ──────────────────────── */
.prod-editorial { display:flex; flex-direction:column; }
.prod-row { display:grid; grid-template-columns:1fr 1fr; min-height:520px; }
.prod-row:nth-child(even) .prod-visual { order:2; }
.prod-row:nth-child(even) .prod-text   { order:1; }
.prod-visual { position:relative; display:flex; align-items:center; justify-content:center; background:var(--bg-alt); overflow:hidden; min-height:480px; border:1px solid var(--bd-card); }
.prod-bottle-wrap { position:relative; z-index:2; padding:3rem; display:flex; align-items:center; justify-content:center; }
.prod-bottle-glow { position:absolute; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle,rgba(60,94,56,.12) 0%,transparent 70%); animation:gpulse 4s ease-in-out infinite; }
@keyframes gpulse { 0%,100%{opacity:.35;transform:scale(1)} 50%{opacity:.8;transform:scale(1.1)} }
.bottle-svg { width:110px; height:auto; position:relative; z-index:2; filter:drop-shadow(0 14px 28px rgba(0,0,0,.45)); }
.prod-visual:hover .bottle-svg { transform:translateY(-10px) rotate(-1.5deg); }
.prod-text { padding:4.5rem 4rem; display:flex; flex-direction:column; justify-content:center; background:var(--bg-page); border:1px solid var(--bd-card); border-left:none; }
.prod-row:nth-child(even) .prod-text { border-left:1px solid var(--bd-card); border-right:none; }
.prod-badge { display:inline-flex; align-items:center; gap:.5rem; font-family:var(--f-sans); font-size:.62rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--g-300); border:1px solid rgba(122,158,118,.28); padding:.2rem .75rem; margin-bottom:1.4rem; width:fit-content; }
.prod-badge.gold { color:var(--amber); border-color:rgba(200,130,40,.3); }
.prod-title { font-family:var(--f-serif); font-size:clamp(1.9rem,2.8vw,2.6rem); font-weight:400; color:var(--tx-head); line-height:1.15; margin-bottom:1.2rem; }
.prod-title em { font-style:italic; color:var(--g-300); }
.prod-desc { font-family:var(--f-sans); font-size:var(--text-base); font-weight:300; color:var(--tx-muted); line-height:1.92; margin-bottom:2rem; }

/* Barres sensorielles */
.bars { display:flex; flex-direction:column; gap:.6rem; margin-bottom:2rem; }
.bar-row { display:flex; align-items:center; gap:.9rem; }
.bar-row span { font-family:var(--f-sans); font-size:.62rem; letter-spacing:.06em; color:var(--tx-faint); min-width:68px; }
.bar { flex:1; height:2px; background:var(--bd-card); overflow:hidden; }
.bfill { height:100%; background:var(--g-400); transform:scaleX(0); transform-origin:left; }
.prod-row.bar-ready .bfill { transform:scaleX(1); transition:transform 1.1s var(--ease-out) .3s !important; }

/* Sélecteur de format */
.size-selector { margin-bottom:2rem; }
.size-lbl { font-family:var(--f-sans); font-size:.62rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--tx-muted); margin-bottom:.8rem; display:block; }
.size-options { display:flex; gap:.5rem; flex-wrap:wrap; }
.size-opt { background:none; border:1px solid var(--bd-card); color:var(--tx-muted); font-family:var(--f-sans); font-size:var(--text-sm); padding:.45rem 1rem; cursor:pointer; transition:all .25s !important; }
.size-opt:hover { border-color:var(--g-300); color:var(--tx-head); }
.size-opt.active { background:var(--g-600); border-color:var(--g-300); color:var(--tx-head); }

/* Prix + panier */
.prod-buy { display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.prod-price { font-family:var(--f-elegant); font-size:1.55rem; color:var(--tx-head); line-height:1; }
.prod-price-unit { font-size:.82rem; color:var(--tx-muted); margin-left:.3rem; }
.btn-add-cart { display:inline-flex; align-items:center; gap:.6rem; background:var(--g-500); color:var(--tx-head); border:none; cursor:pointer; font-family:var(--f-sans); font-size:var(--text-xs); font-weight:500; letter-spacing:.14em; text-transform:uppercase; padding:.85rem 1.8rem; transition:background .3s,transform .3s,box-shadow .3s !important; }
.btn-add-cart:hover { background:var(--g-400); transform:translateY(-2px); box-shadow:var(--sh-sm); }
.btn-add-cart.added { background:var(--g-600); }
.btn-add-cart svg { width:14px; height:14px; }

/* ── AUDIENCE ────────────────────────────────── */
.audience { background:var(--bg-card-ft); border:1px solid var(--bd-card); padding:3.2rem; margin-top:5rem; }
.audience h3 { font-family:var(--f-serif); font-size:var(--text-xl); font-weight:400; color:var(--tx-head); margin-bottom:2rem; }
.aud-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.aud-item { display:flex; gap:.9rem; align-items:flex-start; }
.aud-item > span { color:var(--g-400); font-size:.9rem; line-height:1.6; flex-shrink:0; }
.aud-item strong { display:block; font-family:var(--f-sans); font-size:var(--text-sm); font-weight:500; color:var(--tx-head); margin-bottom:.3rem; }
.aud-item p { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; color:var(--tx-muted); line-height:1.75; }

/* ── RÉCOMPENSES ─────────────────────────────── */
.medals-tex { position:absolute; inset:0; background-image:var(--grain); pointer-events:none; opacity:.5; }
.medals-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; margin-bottom:4.5rem; position:relative; z-index:1; }
.medal { background:var(--bg-card); border:1px solid var(--bd-card); padding:2.4rem 1.5rem; text-align:center; position:relative; overflow:hidden; transition:border-color .3s,box-shadow .3s !important; }
.medal::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:2px; background:linear-gradient(90deg,transparent,rgba(201,134,42,.5),transparent); transition:left .8s !important; }
.medal:hover::before { left:100%; }
.medal:hover { border-color:rgba(201,134,42,.22); box-shadow:var(--sh-sm); }
.medal-ico { width:88px; height:106px; margin:0 auto 1.4rem; }
.medal-ico svg { width:100%; height:100%; }
.medal h3 { font-family:var(--f-serif); font-size:var(--text-md); font-weight:400; color:var(--tx-head); margin-bottom:.35rem; }
.medal p { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; color:var(--tx-muted); }
.medal-tag { display:inline-block; margin-top:.9rem; font-family:var(--f-sans); font-size:.6rem; font-weight:600; letter-spacing:.15em; color:var(--amber); background:rgba(201,134,40,.08); padding:.22rem .8rem; }
.jury-quote { max-width:700px; margin:0 auto; text-align:center; padding:3.2rem; background:var(--bg-card); border:1px solid var(--bd-card); position:relative; z-index:1; }
.jq-mark { font-family:var(--f-serif); font-size:6rem; color:var(--g-300); opacity:.08; line-height:.4; margin-bottom:.8rem; font-style:italic; }
.jury-quote p { font-family:var(--f-elegant); font-size:var(--text-lg); font-style:italic; line-height:1.8; color:var(--tx-body); margin-bottom:1.1rem; }
.jury-quote cite { font-family:var(--f-sans); font-size:.62rem; letter-spacing:.16em; color:var(--amber); text-transform:uppercase; font-style:normal; opacity:.75; }

/* ── ENGAGEMENTS ─────────────────────────────── */
.eng-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:6.5rem; align-items:start; }
.eng-left { display:flex; flex-direction:column; gap:2rem; }
.eng-seal { width:175px; }
.eng-seal svg { width:100%; height:auto; animation:rotateSeal 32s linear infinite; }
@keyframes rotateSeal { from{transform:rotate(0)} to{transform:rotate(360deg)} }
.eng-items { display:flex; flex-direction:column; }
.ei { display:grid; grid-template-columns:auto 1fr; gap:1.3rem; align-items:start; padding:1.8rem 0; border-bottom:1px solid var(--bd-card); }
.ei:last-child { border-bottom:none; }
.ei-dot { width:6px; height:6px; border-radius:50%; background:var(--g-400); margin-top:.72rem; flex-shrink:0; }
.ei h4 { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:500; color:var(--tx-head); margin-bottom:.5rem; letter-spacing:.04em; }
.ei p { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; line-height:1.9; color:var(--tx-muted); }

/* ── CONTACT ─────────────────────────────────── */
.contact-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:5.5rem; align-items:start; }
.ct-addr { display:flex; flex-direction:column; gap:1.2rem; margin:2rem 0; }
.ca { display:flex; gap:1.1rem; align-items:flex-start; }
.ca > span svg { width:18px; height:18px; color:var(--g-300); margin-top:.15rem; flex-shrink:0; }
.ca strong { display:block; font-family:var(--f-sans); font-size:.62rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--g-300); margin-bottom:.2rem; }
.ca span,.ca a { font-family:var(--f-sans); font-size:var(--text-base); font-weight:300; color:var(--tx-muted); transition:color .3s !important; }
.ca a:hover { color:var(--g-300); }
.ct-social { display:flex; gap:1rem; }
.soc-btn { display:flex; align-items:center; gap:.5rem; font-family:var(--f-sans); font-size:.65rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--tx-muted); border:1px solid var(--bd-card); padding:.52rem 1.1rem; transition:all .3s !important; }
.soc-btn svg { width:14px; height:14px; }
.soc-btn:hover { border-color:var(--g-300); color:var(--tx-head); background:var(--bg-card); }
.ct-form-box { background:var(--bg-card); border:1px solid var(--bd-card); padding:3rem; }
.ct-form-box h3 { font-family:var(--f-serif); font-size:var(--text-xl); font-weight:400; font-style:italic; color:var(--tx-head); margin-bottom:2rem; padding-bottom:1.2rem; border-bottom:1px solid var(--bd-card); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field { margin-bottom:1.2rem; }
.field label { display:block; font-family:var(--f-sans); font-size:.62rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--g-300); margin-bottom:.5rem; }
.field input,.field select,.field textarea { width:100%; background:var(--bg-page); border:1px solid var(--bd-card); color:var(--tx-head); font-family:var(--f-sans); font-size:var(--text-base); font-weight:300; padding:.85rem 1.1rem; outline:none; resize:vertical; -webkit-appearance:none; transition:border-color .3s,box-shadow .3s !important; }
.field input::placeholder,.field textarea::placeholder { color:var(--tx-faint); }
.field select { cursor:pointer; color:var(--tx-muted); }
.field select option { background:var(--bg-alt); color:var(--tx-head); }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--g-400); box-shadow:0 0 0 3px rgba(74,103,65,.1); }
.btn-submit { width:100%; background:var(--g-500); color:var(--tx-head); border:none; font-family:var(--f-sans); font-size:var(--text-xs); font-weight:500; letter-spacing:.15em; text-transform:uppercase; padding:1.05rem; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.8rem; margin-top:.5rem; transition:background .3s,transform .3s !important; }
.btn-submit em { font-style:normal; transition:transform .3s !important; }
.btn-submit:hover { background:var(--g-400); transform:translateY(-2px); }
.btn-submit:hover em { transform:translateX(4px); }
.btn-submit.sending { opacity:.65; cursor:wait; }
.btn-submit.sent { background:var(--g-600); }
.form-fb { margin-top:.8rem; font-family:var(--f-sans); font-size:var(--text-sm); min-height:1.2em; text-align:center; }
.ct-map { margin-top:2.5rem; border:1px solid var(--bd-card); overflow:hidden; }
.ct-map svg { width:100%; height:auto; display:block; }
.ct-map-cap { padding:.6rem 1rem; font-family:var(--f-sans); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--tx-faint); background:var(--bg-alt); border-top:1px solid var(--bd-card); }
.ct-promise { display:flex; flex-direction:column; margin-top:1.5rem; border:1px solid var(--bd-card); }
.cp-item { display:flex; align-items:center; gap:1rem; padding:.9rem 1.2rem; border-bottom:1px solid var(--bd-card); font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; color:var(--tx-muted); }
.cp-item:last-child { border-bottom:none; }
.cp-item span:first-child { font-size:1.1rem; flex-shrink:0; }

/* ── PANIER / CHECKOUT ───────────────────────── */
.checkout-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:start; }
.checkout-summary { position:sticky; top:calc(var(--nav-h) + 2rem); }
.checkout-summary h2 { font-family:var(--f-serif); font-size:var(--text-xl); font-weight:400; color:var(--tx-head); margin-bottom:2rem; }
.co-items { display:flex; flex-direction:column; margin-bottom:2rem; }
.co-item { display:flex; gap:1rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--bd-card); }
.co-item-img { width:40px; height:56px; background:var(--bg-card); border:1px solid var(--bd-card); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.co-item-img svg { width:22px; height:auto; }
.co-item-info { flex:1; min-width:0; }
.co-item-name { font-family:var(--f-serif); font-size:.95rem; color:var(--tx-head); }
.co-item-meta { font-family:var(--f-sans); font-size:.68rem; color:var(--tx-faint); letter-spacing:.05em; }
.co-item-price { font-family:var(--f-elegant); font-size:1rem; color:var(--tx-head); white-space:nowrap; }
.co-empty { font-family:var(--f-elegant); font-style:italic; color:var(--tx-muted); font-size:1.05rem; text-align:center; padding:2rem 0; }
.co-subtotal { display:flex; flex-direction:column; gap:.6rem; padding:1.4rem 0; border-top:1px solid var(--bd-card); }
.co-line { display:flex; justify-content:space-between; font-family:var(--f-sans); font-size:var(--text-sm); color:var(--tx-muted); }
.co-total { display:flex; justify-content:space-between; align-items:baseline; padding-top:.8rem; border-top:1px solid var(--bd-card); }
.co-total span { font-family:var(--f-sans); font-size:var(--text-xs); letter-spacing:.15em; text-transform:uppercase; color:var(--tx-muted); }
.co-total strong { font-family:var(--f-elegant); font-size:1.6rem; color:var(--tx-head); }
.co-form-wrap { background:var(--bg-card); border:1px solid var(--bd-card); padding:2.8rem; }
.co-form-wrap h2 { font-family:var(--f-serif); font-size:1.35rem; font-weight:400; color:var(--tx-head); margin-bottom:1.8rem; padding-bottom:1.2rem; border-bottom:1px solid var(--bd-card); }
.co-section-label { font-family:var(--f-sans); font-size:.6rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--g-300); margin:1.8rem 0 1rem; display:block; }
.co-section-label:first-of-type { margin-top:0; }

/* ── FOOTER ──────────────────────────────────── */
.site-footer { background:var(--bg-page); border-top:1px solid var(--bd-card); padding:5.5rem 4rem 2.5rem; }
.ft-inner { display:grid; grid-template-columns:1fr 2fr; gap:4rem; margin-bottom:4rem; padding-bottom:3rem; border-bottom:1px solid var(--bd-card); }
.ft-brand { max-width:240px; }
.ft-logo { display:flex; align-items:center; gap:.65rem; font-family:var(--f-sans); font-size:.76rem; font-weight:500; letter-spacing:.4em; color:var(--tx-head); margin-bottom:.9rem; }
.ft-logo svg { width:20px; height:20px; color:var(--g-300); }
.ft-brand p { font-family:var(--f-elegant); font-size:var(--text-base); font-style:italic; color:var(--tx-muted); margin-bottom:.4rem; }
.ft-brand small { font-family:var(--f-sans); font-size:.62rem; color:var(--tx-faint); }
.ft-nav { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.ft-col { display:flex; flex-direction:column; gap:.55rem; }
.ft-col h4 { font-family:var(--f-sans); font-size:.62rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--g-300); margin-bottom:.4rem; }
.ft-col a,.ft-col span { font-family:var(--f-sans); font-size:var(--text-sm); font-weight:300; color:var(--tx-faint); transition:color .3s !important; }
.ft-col a:hover { color:var(--tx-head); }
.ft-social { display:flex; gap:.8rem; margin-top:.5rem; }
.ft-social a { color:var(--tx-faint); transition:color .3s !important; }
.ft-social a:hover { color:var(--g-300); }
.ft-social svg { width:18px; height:18px; }
.ft-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-family:var(--f-sans); font-size:.62rem; color:var(--tx-faint); opacity:.6; }

/* ── BACK TO TOP ─────────────────────────────── */
.back-top { position:fixed; bottom:2.2rem; right:2.2rem; z-index:400; width:44px; height:44px; background:var(--bg-alt); border:1px solid var(--bd-card); color:var(--tx-head); cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transform:translateY(12px); box-shadow:var(--sh-sm); transition:opacity .3s,visibility .3s,transform .3s,background .3s !important; }
.back-top.show { opacity:1; visibility:visible; transform:none; }
.back-top:hover { background:var(--g-600); }
.back-top svg { width:18px; height:18px; }

/* ── CHINESE FONT ────────────────────────────── */
body.lang-zh { font-family:'Jost','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif; }
body.lang-zh .sec-title,body.lang-zh .hero-title,body.lang-zh .ph-title,body.lang-zh h3 { font-family:'Playfair Display','PingFang SC','Microsoft YaHei',serif; }

/* ── RESPONSIVE ──────────────────────────────── */
@media(max-width:1100px){
  .navbar { padding:1.4rem 2.8rem; }
  .site-header.scrolled .navbar { padding:.95rem 2.8rem; }
  .container { padding:0 2.8rem; }
}
@media(max-width:960px){
  .nav-links { display:none; }
  .nav-toggle { display:flex; }
  .histoire-grid { grid-template-columns:1fr; gap:3.5rem; }
  .stat-pill { bottom:-.8rem; right:-.8rem; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .prod-row { grid-template-columns:1fr; min-height:auto; }
  .prod-row:nth-child(even) .prod-visual { order:1; }
  .prod-row:nth-child(even) .prod-text   { order:2; }
  .prod-text { border-left:1px solid var(--bd-card) !important; border-right:none !important; padding:3rem 2.5rem; }
  .medals-grid { grid-template-columns:1fr 1fr; }
  .eng-grid { grid-template-columns:1fr; gap:3.5rem; }
  .contact-grid { grid-template-columns:1fr; gap:3.5rem; }
  .checkout-grid { grid-template-columns:1fr; }
  .checkout-summary { position:static; }
  .ft-inner { grid-template-columns:1fr; gap:3rem; }
  .aud-grid { grid-template-columns:1fr; gap:1.5rem; }
  .sfe-inner { grid-template-columns:1fr; gap:2rem; }
  .women-banner { flex-direction:column; gap:1.5rem; }
  .h-facts { flex-direction:row; gap:1.5rem; }
}
@media(max-width:680px){
  html { font-size:16px; }
  .navbar { padding:1.2rem 1.5rem; }
  .site-header.scrolled .navbar { padding:.9rem 1.5rem; }
  .container { padding:0 1.5rem; }
  .section { padding:5.5rem 0; }
  .hero-title { font-size:2.5rem; }
  .hero-btns { flex-direction:column; gap:1.2rem; }
  .hst { padding:0 1rem; }
  .hst strong { font-size:1.65rem; }
  .hst-sep { display:none; }
  .process-grid { grid-template-columns:1fr; }
  .medals-grid { grid-template-columns:1fr; max-width:320px; margin:0 auto 4.5rem; }
  .h-facts { flex-direction:column; gap:1.2rem; }
  .ft-nav { grid-template-columns:1fr; }
  .site-footer { padding:4rem 1.5rem 2rem; }
  .field-row { grid-template-columns:1fr; }
  .hero-branch { display:none; }
  .cart-drawer { width:100vw; right:-100vw; }
  .prod-text { padding:2.5rem 1.5rem; }
  .co-form-wrap { padding:2rem 1.5rem; }
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .cursor { display:none; } body { cursor:auto; }
}
