/* ============================================================
   IN MY ELEMENT — Base & système de composants
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--sans);font-weight:300;font-size:var(--fs-body);
  line-height:1.6;color:var(--fg);background:var(--bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
ul{list-style:none}
::selection{background:var(--ime-green);color:var(--ink)}

/* — Typo — */
h1,h2,h3,h4{font-weight:400;line-height:1.05;letter-spacing:var(--track-tight)}
.eyebrow{
  font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;
  letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ink-2);
}
.eyebrow--gold{color:var(--gold-ink)}
.serif{font-family:var(--serif)}
.mono{font-family:var(--mono);font-size:max(.7rem,var(--fs-xs));letter-spacing:.08em}
.display{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:var(--track-wide);
  font-weight:400;line-height:.98;
}
.script{font-family:var(--serif);font-style:italic;font-weight:500;letter-spacing:0}
.lead{font-family:var(--serif);font-size:var(--fs-lead);line-height:1.5;color:var(--ink-2)}

/* — Layout — */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.wrap--read{max-width:calc(var(--maxw-read) + 6rem)}
.section{padding-block:var(--s-8)}
.section--tight{padding-block:var(--s-6)}
.rule{height:1px;background:var(--line);border:0}
.center{text-align:center}

/* ============================================================
   HEADER
   ============================================================ */
.header{
  position:fixed;top:var(--announce-h);left:0;right:0;z-index:100;
  transition:background var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
  color:var(--paper);
}
.header::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,15,17,.60) 0%,rgba(20,15,17,.28) 55%,rgba(20,15,17,0) 100%);
  transition:opacity var(--dur-1) var(--ease);
}
.header.is-solid::before{opacity:0}
.header__bar{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:space-between;
  height:var(--nav-h);padding-inline:var(--gutter);gap:var(--s-3);
}
.header.is-solid{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.header.is-solid .btn--ghost{border-color:var(--ink)}
.nav{display:flex;gap:var(--s-4);align-items:center}
.nav a{
  font-size:var(--fs-xs);letter-spacing:var(--track-mid);text-transform:uppercase;
  position:relative;padding-block:6px;
}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur-1) var(--ease);
}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.brandmark{
  font-family:var(--sans);text-transform:uppercase;font-weight:400;
  letter-spacing:.34em;font-size:1.05rem;white-space:nowrap;
}
.brandmark small{display:block;font-size:.5rem;letter-spacing:.5em;text-align:center;margin-top:3px;opacity:.75}
.header__side{display:flex;align-items:center;gap:var(--s-3);justify-content:flex-end;min-width:120px}
.icon-btn{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-xs);letter-spacing:var(--track-mid);text-transform:uppercase}
.cart-count{
  display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;
  background:var(--ime-green);color:var(--ink);border-radius:var(--r-pill);
  font-size:.62rem;letter-spacing:0;font-weight:500;
}
.header__side .col-left{min-width:120px}
.cur-switch{
  appearance:none;-webkit-appearance:none;background:transparent;border:0;color:inherit;
  font:inherit;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;
  padding:2px 14px 2px 2px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:right 4px top 50%,right 1px top 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;
}
.cur-switch option{color:var(--ink);background:var(--paper)}
.lang-switch{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-xs);letter-spacing:.06em}
.lang-switch button{padding:2px 5px;opacity:.5;transition:opacity var(--dur-1) var(--ease);text-transform:uppercase}
.lang-switch button.is-active{opacity:1;text-decoration:underline;text-underline-offset:4px}
.lang-switch button:hover{opacity:.85}
.lang-switch .sep{opacity:.35}
.burger{display:none;flex-direction:column;gap:5px;width:26px}
.burger span{height:1px;background:currentColor;transition:transform var(--dur-1) var(--ease),opacity var(--dur-1)}

/* Announcement bar */
.announce{
  background:var(--ink);color:var(--paper);text-align:center;
  font-size:var(--fs-xs);letter-spacing:var(--track-mid);text-transform:uppercase;
  padding:9px var(--gutter);position:fixed;top:0;left:0;right:0;z-index:101;
  display:flex;align-items:center;justify-content:center;gap:.5ch;flex-wrap:wrap;min-height:var(--announce-h);
}
.announce b{color:var(--ime-green);font-weight:400}

/* Mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:200;background:var(--paper);color:var(--ink);
  transform:translateX(100%);transition:transform var(--dur-2) var(--ease);
  display:flex;flex-direction:column;padding:var(--gutter);
}
.drawer.is-open{transform:translateX(0)}
.drawer__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-5)}
.drawer nav{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-4)}
.drawer nav a{font-family:var(--serif);font-size:2rem}

/* ============================================================
   BOUTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  font-size:var(--fs-xs);letter-spacing:var(--track-wide);text-transform:uppercase;
  padding:1.05rem 2.4rem;border:1px solid var(--ink);color:var(--ink);
  background:transparent;border-radius:var(--r-0);position:relative;overflow:hidden;
  transition:color var(--dur-1) var(--ease);z-index:0;
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;
  transform:translateY(101%);transition:transform var(--dur-1) var(--ease);
}
.btn:hover{color:var(--paper)}
.btn:hover::before{transform:translateY(0)}
.btn--fill{background:var(--ink);color:var(--paper)}
.btn--fill::before{background:var(--ime-green)}
.btn--fill:hover{color:var(--ink)}
.btn--green{border-color:var(--ime-green);background:var(--ime-green);color:var(--ink)}
.btn--green::before{background:var(--ink)}
.btn--green:hover{color:var(--paper)}
.btn--ghost{border-color:var(--paper);color:var(--paper)}
.btn--ghost::before{background:var(--paper)}
.btn--ghost:hover{color:var(--ink)}
.btn--block{width:100%}
.btn--sm{padding:.8rem 1.6rem}
.link-underline{position:relative;text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:var(--track-mid);padding-bottom:3px}
.link-underline::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-1) var(--ease)}
.link-underline:hover::after{transform:scaleX(1)}

/* ============================================================
   CARTE PRODUIT
   ============================================================ */
.p-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4) var(--s-3)}
.p-grid--3{grid-template-columns:repeat(3,1fr)}
.card{position:relative;display:flex;flex-direction:column}
.card__media{
  position:relative;overflow:hidden;background:var(--bone);aspect-ratio:3/4;
}
.card__media img{
  width:100%;height:100%;object-fit:cover;transition:opacity var(--dur-2) var(--ease),transform var(--dur-3) var(--ease);
}
.card__media img.alt{position:absolute;inset:0;opacity:0}
.card:hover .card__media img.main{opacity:0}
.card:hover .card__media img.alt{opacity:1;transform:scale(1.03)}
.card__tag{
  position:absolute;top:14px;left:14px;z-index:2;
  font-size:var(--fs-xs);letter-spacing:var(--track-mid);text-transform:uppercase;
  background:var(--paper);color:var(--ink);padding:5px 10px;
}
.card__tag--gold{background:var(--paper);color:var(--gold-ink);border:1px solid var(--gold)}
.card__tag--green{background:var(--ime-green);color:var(--ink)}
.card__fav{
  position:absolute;top:12px;right:12px;z-index:3;width:34px;height:34px;display:grid;place-items:center;
  background:rgba(244,241,233,.85);color:var(--ink-2);border-radius:var(--r-pill);
  backdrop-filter:blur(2px);transition:all var(--dur-1) var(--ease);line-height:0;
}
.card__fav:hover{color:var(--ime-green-ink);transform:scale(1.08)}
.card__fav.is-fav{color:var(--ime-green-ink)}
.card__fav.is-fav svg{fill:var(--ime-green)}
.card__quick{
  position:absolute;left:14px;right:14px;bottom:14px;z-index:2;
  opacity:0;transform:translateY(10px);transition:all var(--dur-1) var(--ease);
}
.card:hover .card__quick{opacity:1;transform:translateY(0)}
.card__body{padding-top:var(--s-2);display:flex;flex-direction:column;gap:4px}
.card__name{font-size:var(--fs-sm);letter-spacing:var(--track-tight);text-transform:uppercase}
.card__meta{font-size:var(--fs-xs);color:var(--ink-2);letter-spacing:var(--track-mid);text-transform:uppercase}
.u-green-bg .eyebrow,.signature .eyebrow{color:var(--ink)}
.price{display:flex;gap:.55rem;align-items:baseline;font-size:var(--fs-sm)}
.price del{color:var(--ink-3);text-decoration:line-through;font-size:.86em;opacity:.75}
.price ins{color:var(--ink);text-decoration:none}

/* ============================================================
   REVEAL au scroll
   ============================================================ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity var(--dur-3) var(--ease),transform var(--dur-3) var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--noir);color:var(--paper);padding-block:var(--s-7) var(--s-4)}
.footer a{color:var(--paper)}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:var(--s-5)}
.footer__col h4{font-size:var(--fs-xs);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--ime-green);margin-bottom:var(--s-3)}
.footer__col ul{display:flex;flex-direction:column;gap:.7rem}
.footer__col a{font-size:var(--fs-sm);color:#D9CFC9;transition:color var(--dur-1)}
.footer__col a:hover{color:var(--paper)}
.footer__word{font-family:var(--sans);text-transform:uppercase;letter-spacing:.3em;font-size:1.4rem}
.footer__note{font-size:var(--fs-sm);color:#A49192;line-height:1.7;max-width:34ch}
.newsletter{display:flex;border-bottom:1px solid #3A2F32;padding-bottom:8px;margin-top:var(--s-2)}
.newsletter input{flex:1;background:none;border:0;color:var(--paper);font:inherit;font-size:var(--fs-sm);letter-spacing:.06em}
.newsletter input::placeholder{color:#694A51}
.newsletter button{color:var(--ime-green);letter-spacing:var(--track-mid);text-transform:uppercase;font-size:var(--fs-xs)}
.footer__base{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-6);padding-top:var(--s-3);border-top:1px solid #2C2427;flex-wrap:wrap}
.footer__base p{font-size:var(--fs-xs);color:#694A51;letter-spacing:.05em}
.footer__monogram{
  width:52px;height:52px;border:1px solid var(--gold);border-radius:var(--r-pill);
  display:grid;place-items:center;color:var(--gold);font-size:.7rem;letter-spacing:.1em;line-height:1;text-align:center
}

/* ============================================================
   MONOGRAMME IME (SVG-like en CSS)
   ============================================================ */
.monogram{display:inline-grid;place-items:center;border-radius:var(--r-pill);border:1px solid currentColor;font-family:var(--sans);letter-spacing:.06em}

/* ============================================================
   UTILITAIRES
   ============================================================ */
.u-green-bg{background:var(--ime-green);color:var(--ink)}
.u-noir-bg{background:var(--noir);color:var(--paper)}
.u-paper2-bg{background:var(--paper-2)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-6);align-items:center}
.stack{display:flex;flex-direction:column;gap:var(--s-3)}
.stack-sm{display:flex;flex-direction:column;gap:var(--s-1)}
.flow>*+*{margin-top:var(--s-3)}
.hide-mobile{display:initial}
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120%);
  background:var(--ink);color:var(--paper);padding:1rem 1.6rem;z-index:300;
  font-size:var(--fs-xs);letter-spacing:var(--track-mid);text-transform:uppercase;
  transition:transform var(--dur-2) var(--ease);box-shadow:var(--sh-3)
}
.toast.show{transform:translateX(-50%) translateY(0)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1080px){
  .p-grid{grid-template-columns:repeat(3,1fr)}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  :root{--nav-h:64px}
  .nav{display:none}
  .burger{display:flex;position:absolute;left:var(--gutter);top:50%;transform:translateY(-50%)}
  .header__bar{justify-content:flex-end}
  .header__side{min-width:auto;gap:var(--s-2)}
  .brandmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:.8rem;letter-spacing:.16em;white-space:nowrap}
  .brandmark small{font-size:.42rem;letter-spacing:.34em;margin-top:2px}
  .header .cur-switch,.header .lang-switch{display:none}   /* langue & devise → dans le tiroir sur mobile */
  .lang-switch button{padding:2px 3px}
  .header__side{gap:var(--s-3)}
  /* Tiroir : contrôles langue + devise en bas */
  .drawer-controls{margin-top:auto;padding-top:var(--s-4);border-top:1px solid var(--line);display:flex;gap:var(--s-5);align-items:center;flex-wrap:wrap}
  .drawer-controls .lang-switch,.drawer-controls .cur-switch{display:inline-flex}
  .drawer-controls .cur-switch{color:var(--ink)}
  .drawer nav a{font-size:2rem}
  /* moins de vide en tête de page sur mobile */
  .page-hero{padding-top:calc(var(--nav-h) + var(--s-3))}
  .grid-2{grid-template-columns:1fr;gap:var(--s-4)}
  .p-grid,.p-grid--3{grid-template-columns:repeat(2,1fr);gap:var(--s-3) var(--s-2)}
  .section{padding-block:var(--s-6)}
  .footer__grid{grid-template-columns:1fr;gap:var(--s-4)}
  .hide-mobile{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}
