/* ===================================================================
   WILL I — Maison Afro Japan · Paris
   main.css — tokens, layout, composants
   Phase 0 : extrait de index.html, aucune modification de règle
   =================================================================== */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
:root{
  --ivory:#F2EEE8;--ivory2:#E8E4DC;--black:#0D0D0D;
  --gold:#C8A96E;--stone:#6B6560;
  --champagne:#D9C7A3;
  --indigo:#26324D;
  --serif:'Playfair Display',Georgia,serif;
  --voice:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
body{font-family:var(--sans);background:var(--ivory);color:var(--black);overflow-x:hidden;font-weight:300;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
picture{display:block;width:100%}
a{text-decoration:none;color:inherit}
.nav{position:fixed;top:0;left:0;right:0;z-index:900;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 40px;height:72px;transition:background .6s var(--ease),border-color .6s;border-bottom:1px solid transparent}
.nav.solid{background:rgba(242,238,232,.97);backdrop-filter:blur(12px);border-color:rgba(0,0,0,.08)}
.nav-left,.nav-right{display:flex;align-items:center;gap:32px}
.nav-right{justify-content:flex-end}
.nav-logo{font-family:var(--serif);font-size:18px;font-weight:300;letter-spacing:.15em;color:#fff;font-style:italic;text-transform:uppercase;transition:color .4s}
.nav.solid .nav-logo{color:var(--black)}
.nav-link{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.8);transition:all .3s;cursor:pointer}
.nav.solid .nav-link{color:var(--black)}
.nav-link:hover{color:#fff}
.nav.solid .nav-link:hover{opacity:.6}
.nav-icon{width:18px;height:18px;cursor:pointer;opacity:.8;transition:opacity .3s;stroke:#fff;fill:none}
.nav.solid .nav-icon{stroke:var(--black)}
.nav-icons{display:flex;align-items:center;gap:20px}
.nav-lang{font-size:10px;letter-spacing:.1em;opacity:.6;cursor:pointer;color:#fff;transition:all .3s}
.nav.solid .nav-lang{color:var(--black)}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}
.nav-burger span{display:block;width:20px;height:1px;background:#fff;transition:background .3s}
.nav.solid .nav-burger span{background:var(--black)}
.mob-nav{position:fixed;inset:0;z-index:950;background:var(--black);display:flex;flex-direction:column;justify-content:center;padding:60px 40px;transform:translateY(-100%);transition:transform .7s var(--ease-out)}
.mob-nav.open{transform:translateY(0)}
.mob-nav-close{position:absolute;top:28px;right:36px;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;font-family:var(--serif)}
.mob-links{display:flex;flex-direction:column}
.mob-link{font-family:var(--serif);font-style:italic;font-size:clamp(28px,7vw,52px);font-weight:300;color:rgba(255,255,255,.25);padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07);transition:color .3s;display:block}
.mob-link:hover{color:#fff}
.mob-nav-foot{margin-top:40px;display:flex;gap:20px}
.mob-nav-foot span{font-size:10px;letter-spacing:.1em;color:rgba(255,255,255,.3);text-transform:uppercase;cursor:pointer}
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden}
.hero picture{position:absolute;inset:0}
.hero picture img{object-position:center 20%;transition:transform 8s var(--ease)}
.hero picture img.loaded{transform:scale(1.03)}
.hero-veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.08) 0%,rgba(0,0,0,.42) 100%)}
.hero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 60px 80px}
.hero-eyebrow{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:20px}
.hero-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(68px,13vw,155px);line-height:.85;color:#fff;letter-spacing:-.02em;margin-bottom:10px}
.hero-title .punct{color:var(--gold)}
.hero-sub{font-family:var(--voice);font-style:italic;font-weight:300;font-size:clamp(14px,2vw,20px);color:rgba(255,255,255,.6);margin-bottom:44px;max-width:320px;line-height:1.5}
.hero-scroll{display:inline-flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45);background:none;border:none;cursor:pointer;font-family:var(--sans);padding:0;transition:color .3s}
.hero-scroll:hover{color:#fff}
.hero-scroll-line{width:40px;height:1px;background:currentColor;transition:width .4s}
.hero-scroll:hover .hero-scroll-line{width:60px}
.hero-tag{position:absolute;top:50%;right:44px;transform:translateY(-50%);writing-mode:vertical-rl;font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.28)}
.s-white{background:var(--ivory);color:var(--black)}
.s-dark{background:var(--black);color:var(--ivory)}
.s-cream{background:var(--ivory2);color:var(--black)}
.full-img{height:90svh;min-height:480px;overflow:hidden}
.s-header{padding:120px 60px 80px}
.s-eyebrow{font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.s-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(34px,6vw,78px);line-height:1;letter-spacing:-.01em}
.coll-intro{display:grid;grid-template-columns:1fr 1fr;min-height:100svh}
.coll-intro-img{overflow:hidden}
.coll-intro-img img{height:100%;object-position:center top}
.coll-intro-text{display:flex;flex-direction:column;justify-content:center;padding:80px 80px 80px 60px}
.coll-manifesto{font-family:var(--voice);font-style:italic;font-weight:300;font-size:clamp(17px,2.3vw,26px);line-height:1.65;color:var(--ivory);margin:36px 0 44px;border-left:1px solid var(--gold);padding-left:26px}
.coll-body{font-size:13px;line-height:1.9;color:rgba(255,255,255,.45);max-width:360px}
.coll-cta{margin-top:52px;display:inline-flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);border:none;background:none;cursor:pointer;font-family:var(--sans);padding:0;transition:gap .3s}
.coll-cta:hover{gap:24px}
.coll-cta-line{width:32px;height:1px;background:var(--gold);transition:width .3s}
.coll-cta:hover .coll-cta-line{width:48px}
.ed-grid{display:grid;gap:3px}
.ed-2{grid-template-columns:1fr 1fr}
.ed-img{overflow:hidden;position:relative}
.ed-img img{height:100%;min-height:400px;object-position:center top;transition:transform .8s var(--ease)}
.ed-img:hover img{transform:scale(1.03)}
.ed-caption{position:absolute;bottom:18px;left:18px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.phil{padding:160px 60px;max-width:860px;margin:0 auto;text-align:center}
.phil-q{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(58px,11vw,136px);line-height:.85;letter-spacing:-.03em;color:var(--black);margin-bottom:44px}
.phil-q .punct{color:var(--gold)}
.phil-rule{width:1px;height:72px;background:var(--gold);margin:0 auto 44px}
.phil-body{font-family:var(--voice);font-style:italic;font-weight:300;font-size:clamp(17px,2.3vw,25px);line-height:1.7;color:var(--stone);margin-bottom:28px}
.phil-answer{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,4vw,50px);color:var(--gold);letter-spacing:-.01em}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.08)}
.pillar{padding:80px 56px;border-right:1px solid rgba(255,255,255,.08)}
.pillar:last-child{border-right:none}
.pillar-num{font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:28px;display:block}
.pillar-name{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,3.2vw,42px);color:var(--ivory);margin-bottom:18px;line-height:1}
.pillar-text{font-size:12px;line-height:1.85;color:rgba(255,255,255,.38)}
.maison-split{display:grid;grid-template-columns:1fr 1fr;min-height:78svh}
.maison-img{overflow:hidden}
.maison-img img{height:100%;object-position:center top}
.maison-text{display:flex;flex-direction:column;justify-content:center;padding:80px}
.maison-pull{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(22px,3.2vw,42px);line-height:1.15;margin-bottom:28px;letter-spacing:-.01em}
.maison-body{font-size:13px;line-height:1.9;color:var(--stone);max-width:380px}
.shop-section{padding:0 0 120px}
.shop-controls{display:flex;justify-content:space-between;align-items:center;padding:44px 60px 36px;border-bottom:1px solid rgba(0,0,0,.07);flex-wrap:wrap;gap:14px}
.shop-count{font-size:11px;letter-spacing:.1em;color:var(--stone)}
.shop-filters{display:flex;gap:18px;flex-wrap:wrap}
.shop-filter{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--stone);cursor:pointer;padding:5px 0;border:none;border-bottom:1px solid transparent;background:none;transition:all .25s}
.shop-filter:hover,.shop-filter.active{color:var(--black);border-bottom-color:var(--black)}
.p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(0,0,0,.05);margin:1px}
.p-card{background:var(--ivory);display:flex;flex-direction:column;transition:background .3s}
.p-card:hover{background:#EDEBE4}
.p-img-wrap{position:relative;overflow:hidden;background:#F8F5F0;aspect-ratio:3/4}
.p-img{width:100%!important;height:100%!important;object-fit:contain!important;padding:20px;transition:transform .7s var(--ease)}
.p-card:hover .p-img{transform:scale(1.04)}
.p-badge{position:absolute;top:14px;left:14px;font-size:8px;letter-spacing:.15em;text-transform:uppercase;padding:4px 9px}
.p-lim{background:var(--black);color:var(--ivory)}
.p-pre{background:var(--gold);color:#fff}
.p-overlay{position:absolute;inset:0;background:rgba(13,13,13,0);display:flex;align-items:flex-end;justify-content:center;padding-bottom:22px;transition:background .4s}
.p-card:hover .p-overlay{background:rgba(13,13,13,.1)}
.p-cta{font-size:9px;letter-spacing:.2em;text-transform:uppercase;padding:10px 20px;background:var(--black);color:var(--ivory);opacity:0;transform:translateY(8px);transition:all .35s var(--ease);white-space:nowrap}
.p-card:hover .p-cta{opacity:1;transform:translateY(0)}
.p-meta{padding:18px 18px 24px}
.p-chapter{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:5px}
.p-name{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(15px,1.8vw,21px);margin-bottom:4px;line-height:1.1}
.p-desc{font-size:10px;color:var(--stone);line-height:1.6;margin-bottom:11px}
.p-foot{display:flex;justify-content:space-between;align-items:center}
.p-price{font-size:14px;font-weight:300;letter-spacing:.04em}
.p-btn-mob{display:none}
.newsletter{padding:140px 60px;text-align:center;border-top:1px solid rgba(0,0,0,.07)}
.newsletter-title{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,4vw,50px);margin-bottom:10px}
.newsletter-sub{font-size:13px;color:var(--stone);margin-bottom:36px}
.newsletter-form{display:flex;max-width:400px;margin:0 auto;border-bottom:1px solid var(--black)}
.newsletter-input{flex:1;background:none;border:none;outline:none;font-size:13px;font-family:var(--sans);padding:11px 0;color:var(--black);font-weight:300}
.newsletter-input::placeholder{color:var(--stone)}
.newsletter-btn{background:none;border:none;cursor:pointer;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--black);font-family:var(--sans);padding:11px 0 11px 14px;transition:color .3s}
.newsletter-btn:hover{color:var(--gold)}
footer{background:var(--black);color:rgba(255,255,255,.38);padding:80px 60px 44px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:56px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:36px}
.footer-brand{font-family:var(--serif);font-style:italic;font-size:21px;color:var(--ivory);margin-bottom:14px;font-weight:300}
.footer-tagline{font-size:11px;line-height:1.7;max-width:200px}
.footer-col h4{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.28);margin-bottom:18px}
.footer-col a{display:block;font-size:12px;margin-bottom:9px;color:rgba(255,255,255,.38);transition:color .3s}
.footer-col a:hover{color:var(--ivory)}
.footer-bot{display:flex;justify-content:space-between;align-items:center}
.footer-copy{font-size:10px}
.footer-socials{display:flex;gap:18px}
.footer-social{font-size:10px;letter-spacing:.1em;text-transform:uppercase;transition:color .3s;cursor:pointer}
.footer-social:hover{color:var(--ivory)}
.reveal{opacity:0;transform:translateY(36px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.15s}
.reveal-delay-2{transition-delay:.3s}
.reveal-delay-3{transition-delay:.45s}
@media(max-width:1024px){
  .coll-intro,.maison-split{grid-template-columns:1fr}
  .coll-intro-img,.maison-img{height:58svh}
  .pillars{grid-template-columns:1fr}
  .pillar{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}
  .footer-top{grid-template-columns:1fr 1fr;gap:36px}
  .p-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .nav{padding:0 22px;height:58px}
  .nav-left,.nav-icons,.nav-lang{display:none}
  .nav-burger{display:flex}
  .hero-content{padding:0 24px 52px}
  .hero-tag{display:none}
  .s-header{padding:68px 24px 44px}
  .shop-controls{padding:28px 22px}
  .p-grid{grid-template-columns:repeat(2,1fr)}
  .p-cta{display:none}
  .p-btn-mob{display:inline-block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;background:var(--black);color:var(--ivory)}
  .p-foot{flex-wrap:wrap;gap:7px}
  .phil{padding:90px 24px}
  .pillar{padding:44px 24px}
  .maison-text{padding:44px 24px}
  .newsletter{padding:72px 24px}
  .footer-top{grid-template-columns:1fr;gap:28px}
  footer{padding:56px 24px 32px}
  .footer-bot{flex-direction:column;gap:14px;text-align:center}
  .ed-2{grid-template-columns:1fr}
  .ed-img img{min-height:280px}
  .coll-intro-text{padding:44px 24px}
}
@media(prefers-reduced-motion:reduce){
  .reveal,.hero picture img,.p-img,.ed-img img{transition:none!important;transform:none!important;opacity:1!important}
}
