:root{
  --ink:#0e0b0a;
  --ink-soft:#8b7f74;
  --cerise:#c6274b;
  --cerise-deep:#8f1934;
  --champagne:#c9a227;
  --bone:#ede6da;
  --bone-dim:#e2d9c8;
  --card:#ffffff;
  --line:rgba(14,11,10,0.12);
  --shadow:0 30px 60px -30px rgba(14,11,10,0.45);
  --display:"Arial Narrow","Helvetica Neue Condensed",Helvetica,Arial,sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --mono:"SF Mono","JetBrains Mono","Courier New",monospace;
  --ease:cubic-bezier(.16,1,.3,1);
}
@media (prefers-color-scheme: dark){
  :root{
    --ink:#f3ede2; --ink-soft:#a89b8c;
    --bone:#0e0b0a; --bone-dim:#171310;
    --card:#171310; --line:rgba(243,237,226,0.14);
    --shadow:0 30px 60px -30px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --ink:#f3ede2; --ink-soft:#a89b8c;
  --bone:#0e0b0a; --bone-dim:#171310;
  --card:#171310; --line:rgba(243,237,226,0.14);
  --shadow:0 30px 60px -30px rgba(0,0,0,.7);
}
:root[data-theme="light"]{
  --ink:#0e0b0a; --ink-soft:#8b7f74;
  --bone:#ede6da; --bone-dim:#e2d9c8;
  --card:#ffffff; --line:rgba(14,11,10,0.12);
  --shadow:0 30px 60px -30px rgba(14,11,10,0.45);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation:none !important; transition:none !important;} }
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}

.eyebrow{font-family:var(--mono);font-size:0.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cerise);}
.btn{
  display:inline-flex;align-items:center;gap:10px;border:1.5px solid var(--ink);background:none;color:var(--ink);
  padding:15px 28px;font-size:0.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),transform .2s var(--ease);white-space:nowrap;
}
.btn:hover{background:var(--ink);color:var(--bone);transform:translateY(-2px);}
.btn-solid{background:var(--cerise);border-color:var(--cerise);color:#fff;}
.btn-solid:hover{background:var(--cerise-deep);border-color:var(--cerise-deep);color:#fff;}
.btn-ghost{border-color:var(--line);}
.wrap{max-width:1320px;margin:0 auto;padding:0 40px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

/* ---------- lace signature motifs ---------- */
.lace-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;}
.lace-orb{position:absolute;opacity:.55;filter:drop-shadow(0 12px 30px rgba(0,0,0,.35));transform-style:preserve-3d;}
.lace-orb svg{width:100%;height:100%;}
.lace-orb circle,.lace-orb path{stroke:var(--champagne);}
@keyframes lace-spin{from{transform:perspective(900px) rotateX(58deg) rotateZ(0deg);}to{transform:perspective(900px) rotateX(58deg) rotateZ(360deg);}}
@keyframes lace-drift{0%,100%{transform:perspective(900px) rotateX(62deg) rotateY(-8deg) translateY(0);}50%{transform:perspective(900px) rotateX(66deg) rotateY(8deg) translateY(-10px);}}
.lace-spin{animation:lace-spin 34s linear infinite;}
.lace-drift{animation:lace-drift 12s ease-in-out infinite;}
.lace-veil{position:absolute;inset:0;opacity:.14;mix-blend-mode:soft-light;pointer-events:none;}

/* ---------- brand rail (signature) ---------- */
.rail{
  position:fixed;left:0;top:0;bottom:0;width:44px;z-index:60;
  display:flex;align-items:center;justify-content:center;pointer-events:none;
  border-right:1px solid var(--line);
}
.rail span{
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-family:var(--display);font-size:0.95rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:700;
}
@media(max-width:900px){.rail{display:none;}}
body{padding-left:44px;}
@media(max-width:900px){ body{padding-left:0;} }

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--bone) 82%, transparent);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line);}
.topline{background:var(--ink);color:var(--bone);font-family:var(--mono);font-size:0.68rem;letter-spacing:.1em;text-align:center;padding:8px 12px;text-transform:uppercase;}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:20px 40px;gap:24px;}
@media(max-width:640px){.navbar{padding:16px 20px;}}
.logo{font-family:var(--display);font-size:1.9rem;letter-spacing:-0.01em;font-weight:800;text-transform:uppercase;}
nav.links{display:flex;gap:28px;font-size:0.8rem;letter-spacing:.02em;font-weight:600;}
nav.links a{position:relative;padding-bottom:4px;}
nav.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--cerise);transition:width .3s var(--ease);}
nav.links a:hover::after{width:100%;}
.icons{display:flex;align-items:center;gap:16px;}
.icon-btn{background:none;border:none;cursor:pointer;color:var(--ink);position:relative;padding:6px;}
.icon-btn svg{width:21px;height:21px;stroke:var(--ink);fill:none;stroke-width:1.5;}
.cart-count{position:absolute;top:-2px;right:-4px;background:var(--cerise);color:#fff;font-size:0.62rem;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);}
.avatar-chip{width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--bone);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:0.72rem;font-weight:700;}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.menu-toggle svg{width:24px;height:24px;stroke:var(--ink);fill:none;stroke-width:1.6;}
@media(max-width:980px){
  nav.links{display:none;}
  .menu-toggle{display:block;}
}
/* Menu mobile : élément indépendant en fin de <body> (pas un descendant du
   header) pour que sa containing block reste le viewport — un ancêtre avec
   backdrop-filter/transform transformerait un descendant fixed en overlay
   mal positionné. */
.mobile-nav{
  position:fixed;inset:0;background:#0e0b0a;z-index:120;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:36px;
  transform:translateY(-100%);transition:transform .4s var(--ease);
}
.mobile-nav.show{transform:translateY(0);}
.mobile-nav a{color:#f3ede2;font-family:var(--display);text-transform:uppercase;font-size:1.6rem;font-weight:800;position:relative;padding-bottom:4px;}
.mobile-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--cerise);transition:width .3s var(--ease);}
.mobile-nav a:hover::after,.mobile-nav a:focus-visible::after{width:100%;}
.mobile-nav-close{position:absolute;top:22px;right:28px;background:none;border:none;color:#f3ede2;font-size:1.8rem;cursor:pointer;line-height:1;}
@media(min-width:981px){ .mobile-nav{display:none;} }

/* ---------- hero ---------- */
.hero{position:relative;padding:64px 0 0;}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:0;align-items:stretch;}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;}}
.hero-text{position:relative;padding:20px 40px 60px;display:flex;flex-direction:column;justify-content:center;gap:22px;z-index:2;}
@media(max-width:640px){.hero-text{padding:10px 20px 40px;}}
.hero-text h1{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(3.4rem,7.4vw,6.4rem);line-height:.92;letter-spacing:-0.02em;margin:0;
}
.hero-text h1 em{font-style:normal;color:var(--cerise);}
.hero-sub{max-width:38ch;color:var(--ink-soft);font-size:1.02rem;line-height:1.6;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.hero-media{position:relative;overflow:hidden;min-height:420px;}
.hero-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.hero-badge{
  position:absolute;bottom:22px;left:22px;background:var(--cerise);color:#fff;z-index:2;
  font-family:var(--mono);font-size:0.72rem;letter-spacing:.06em;padding:10px 16px;
  display:flex;align-items:center;gap:8px;
}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.8s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}

/* ---------- marquee strip ---------- */
.strip{overflow:hidden;background:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;}
.strip-track{display:flex;gap:48px;white-space:nowrap;animation:scrollx 26s linear infinite;width:max-content;}
@keyframes scrollx{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.strip-track span{font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:1.05rem;letter-spacing:.02em;color:var(--bone);display:flex;align-items:center;gap:20px;}
.strip-track span::after{content:"✶";color:var(--champagne);font-size:.8rem;}

section{padding:110px 0;position:relative;}
@media(max-width:640px){section{padding:70px 0;}}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:48px;flex-wrap:wrap;}
.sec-head h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(2rem,4.2vw,3.2rem);letter-spacing:-0.01em;line-height:1;margin:8px 0 0;}
.sec-head p{color:var(--ink-soft);max-width:44ch;font-size:0.95rem;line-height:1.6;}

/* ---------- categories: asymmetric bento (robust) ---------- */
.cat-bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:170px;gap:14px;}
.cat-card{grid-column:span 2;position:relative;overflow:hidden;cursor:pointer;border:1px solid var(--line);perspective:800px;}
.cat-card.big{grid-column:span 3;grid-row:span 2;}
@media(max-width:900px){
  .cat-bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}
  .cat-card{grid-column:span 1;}
  .cat-card.big{grid-column:span 2;grid-row:span 2;}
}
.cat-card .swatch{position:absolute;inset:0;transition:transform .5s var(--ease);transform-style:preserve-3d;}
.cat-card:hover .swatch{transform:scale(1.08);}
.cat-card .label{position:absolute;left:16px;bottom:14px;color:#fff;font-family:var(--display);text-transform:uppercase;font-weight:800;font-size:1.15rem;letter-spacing:-.01em;z-index:2;}
.cat-card .num{position:absolute;top:12px;right:14px;color:rgba(255,255,255,.7);font-family:var(--mono);font-size:0.68rem;z-index:2;}
.cat-card:focus-visible{outline:2px solid var(--champagne);outline-offset:2px;}

/* ---------- product rail / grid ---------- */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
.chip{border:1.5px solid var(--line);background:var(--card);padding:9px 20px;font-size:0.74rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;cursor:pointer;color:var(--ink-soft);transition:.25s var(--ease);}
.chip.active,.chip:hover{background:var(--ink);color:var(--bone);border-color:var(--ink);}
.rail-scroll{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;margin:0 -40px;padding-left:40px;padding-right:40px;}
@media(max-width:640px){.rail-scroll{margin:0 -20px;padding-left:20px;padding-right:20px;}}
.rail-scroll::-webkit-scrollbar{height:5px;}
.rail-scroll::-webkit-scrollbar-thumb{background:var(--line);}
.prod-grid-static{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;}
.prod-card{scroll-snap-align:start;flex:0 0 272px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease);perspective:900px;will-change:transform;}
.prod-grid-static .prod-card{flex:none;}
.prod-card:hover{box-shadow:var(--shadow);}
.prod-media{aspect-ratio:4/5;position:relative;overflow:hidden;cursor:pointer;}
.prod-media .swatch{position:absolute;inset:0;transition:transform .5s var(--ease);}
.prod-card:hover .prod-media .swatch{transform:scale(1.05);}
.prod-tag{position:absolute;top:10px;left:10px;background:var(--ink);color:var(--bone);font-family:var(--mono);font-size:0.62rem;letter-spacing:.04em;text-transform:uppercase;padding:5px 9px;}
.prod-fav{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;}
.prod-fav svg{width:16px;height:16px;stroke:var(--ink);fill:none;stroke-width:1.5;}
.prod-fav.is-fav svg{fill:var(--cerise);stroke:var(--cerise);}
.prod-body{padding:16px;display:flex;flex-direction:column;gap:5px;flex:1;}
.prod-brand{font-family:var(--mono);font-size:0.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cerise);}
.prod-name{font-family:var(--display);font-weight:800;font-size:1.05rem;text-transform:uppercase;letter-spacing:-.005em;cursor:pointer;}
.prod-sizes{font-family:var(--mono);font-size:0.68rem;color:var(--ink-soft);}
.prod-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:10px;}
.prod-price{font-family:var(--mono);font-size:1rem;font-weight:600;}
.add-btn{border:1.5px solid var(--ink);background:none;color:var(--ink);width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.25s var(--ease);}
.add-btn:hover{background:var(--cerise);border-color:var(--cerise);color:#fff;transform:rotate(90deg);}
.add-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;}

/* ---------- about split ---------- */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:0;border:1px solid var(--line);position:relative;}
@media(max-width:900px){.about{grid-template-columns:1fr;}}
.about-media{position:relative;min-height:460px;}
.about-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.about-copy{position:relative;padding:56px;display:flex;flex-direction:column;justify-content:center;gap:22px;background:var(--card);z-index:2;}
@media(max-width:640px){.about-copy{padding:32px 24px;}}
.about-copy h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1.02;letter-spacing:-.01em;}
.about-copy p.body{color:var(--ink-soft);line-height:1.7;max-width:48ch;}
.stat-row{display:flex;gap:0;border-top:1px solid var(--line);}
.stat{flex:1;padding:18px 0 0;border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
.stat b{display:block;font-family:var(--display);font-size:2.1rem;font-weight:800;color:var(--cerise);line-height:1;}
.stat span{font-family:var(--mono);font-size:0.68rem;letter-spacing:.04em;color:var(--ink-soft);text-transform:uppercase;}

/* ---------- cta ---------- */
.cta-band{background:var(--ink);color:var(--bone);overflow:hidden;}
.cta-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;}
@media(max-width:900px){.cta-inner{grid-template-columns:1fr;}}
.cta-band h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1;color:var(--bone);}
.cta-band p{color:#b6a99b;margin:16px 0 0;max-width:44ch;}
.subscribe{display:flex;border-bottom:1.5px solid rgba(243,237,226,.4);padding-bottom:10px;}
.subscribe input{flex:1;background:none;border:none;padding:12px 4px;color:var(--bone);font-family:var(--sans);font-size:1.1rem;}
.subscribe input::placeholder{color:#7d7266;}
.subscribe input:focus{outline:none;}
.subscribe button{background:none;border:none;color:var(--cerise);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:0.8rem;cursor:pointer;}

/* ---------- footer ---------- */
footer{padding:70px 0 26px;border-top:1px solid var(--line);}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
@media(max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;}}
.foot-grid h4{font-family:var(--mono);font-size:0.7rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;color:var(--cerise);}
.foot-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:0.86rem;color:var(--ink-soft);}
.foot-bottom{margin-top:56px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:0.7rem;color:var(--ink-soft);}

/* ---------- drawer / modal (shared) ---------- */
.overlay{position:fixed;inset:0;background:rgba(14,11,10,.5);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease);z-index:80;}
.overlay.show{opacity:1;pointer-events:auto;}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,92vw);background:var(--card);z-index:90;transform:translateX(100%);transition:transform .4s var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow);}
.drawer.show{transform:translateX(0);}
.drawer-head{padding:24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;}
.drawer-head h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.3rem;margin:0;}
.drawer-close{background:none;border:none;cursor:pointer;font-size:1.3rem;color:var(--ink);}
.drawer-items{flex:1;overflow-y:auto;padding:18px 24px;display:flex;flex-direction:column;gap:18px;}
.cart-line{display:flex;gap:14px;}
.cart-line .swatch{width:64px;height:78px;flex-shrink:0;}
.cart-line-body{flex:1;display:flex;flex-direction:column;gap:4px;}
.cart-line-body .name{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:0.95rem;}
.cart-line-body .meta{font-family:var(--mono);font-size:0.7rem;color:var(--ink-soft);}
.cart-line-body .row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;}
.qty-x{background:none;border:none;color:var(--cerise);font-family:var(--mono);font-size:0.68rem;cursor:pointer;letter-spacing:.05em;text-transform:uppercase;}
.drawer-empty{padding:60px 24px;text-align:center;color:var(--ink-soft);font-family:var(--mono);font-size:0.85rem;}
.drawer-foot{padding:20px 24px 26px;border-top:1px solid var(--line);}
.drawer-foot .row{display:flex;justify-content:space-between;font-family:var(--display);font-weight:800;font-size:1.15rem;margin-bottom:14px;text-transform:uppercase;}
.drawer-foot .btn{width:100%;justify-content:center;}

.modal-backdrop{position:fixed;inset:0;background:rgba(14,11,10,.55);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:95;padding:20px;overflow-y:auto;}
.modal-backdrop.show{display:flex;}
.modal{background:var(--card);max-width:420px;width:100%;padding:40px 36px;position:relative;box-shadow:var(--shadow);border:1px solid var(--line);margin:auto;}
.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--ink);}
.modal h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.7rem;margin:0 0 6px;}
.modal p.sub{color:var(--ink-soft);font-size:0.85rem;margin:0 0 24px;}
.modal-tabs{display:flex;margin-bottom:24px;border-bottom:1px solid var(--line);}
.modal-tab{flex:1;background:none;border:none;padding:10px 0;font-family:var(--mono);font-size:0.72rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;color:var(--ink-soft);border-bottom:2px solid transparent;}
.modal-tab.active{color:var(--ink);border-color:var(--cerise);}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.field-row{display:flex;gap:12px;}
.field-row .field{flex:1;}
.field label{font-family:var(--mono);font-size:0.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
.field input{border:1.5px solid var(--line);background:var(--bone);padding:12px;font-family:var(--sans);font-size:0.9rem;color:var(--ink);width:100%;}
.field input:focus{outline:2px solid var(--cerise);outline-offset:1px;}
.modal .btn{width:100%;justify-content:center;margin-top:6px;}
.account-view{display:flex;flex-direction:column;gap:4px;}
.account-head{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.account-avatar{width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--bone);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:1.3rem;}
.account-name{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.15rem;}
.account-email{font-family:var(--mono);font-size:0.72rem;color:var(--ink-soft);}
.logout-link{font-family:var(--mono);font-size:0.72rem;color:var(--cerise);background:none;border:none;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;margin-top:14px;}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bone);padding:15px 24px;font-family:var(--mono);font-size:0.82rem;opacity:0;pointer-events:none;transition:.3s var(--ease);z-index:110;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

:focus-visible{outline:2px solid var(--cerise);outline-offset:2px;}

/* ---------- product detail page ---------- */
.breadcrumb{font-family:var(--mono);font-size:0.72rem;color:var(--ink-soft);letter-spacing:.03em;margin-bottom:28px;}
.breadcrumb a:hover{color:var(--cerise);}
.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
@media(max-width:860px){.pd-grid{grid-template-columns:1fr;}}
.pd-media{aspect-ratio:4/5;position:relative;overflow:hidden;perspective:1000px;border:1px solid var(--line);}
.pd-media .swatch{position:absolute;inset:0;}
.pd-info h1{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.01em;margin:8px 0 4px;}
.pd-price{font-family:var(--mono);font-size:1.4rem;margin:14px 0 24px;}
.pd-desc{color:var(--ink-soft);line-height:1.7;max-width:52ch;margin-bottom:28px;}
.pd-block{border-top:1px solid var(--line);padding:22px 0;}
.pd-block h4{font-family:var(--mono);font-size:0.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 14px;}
.size-row{display:flex;gap:10px;flex-wrap:wrap;}
.size-pill{border:1.5px solid var(--line);padding:9px 16px;font-family:var(--mono);font-size:0.78rem;background:none;color:var(--ink);cursor:pointer;transition:.2s var(--ease);}
.size-pill.active,.size-pill:hover{background:var(--ink);color:var(--bone);border-color:var(--ink);}
.pd-actions{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap;}
.pd-related{margin-top:20px;}
