
/* ================================================================
   MIKE DAVIS: landing v4 "Back to the Future" (dossier / scrapbook)
   Colours resolve to mkd-tokens.json (MKD group only, Chinese walls):
     navy.500 #193155 · red.500 #DB261B · cream.500 #F5F2EA · cream.300 #FAF8F3
     navy.700 #12233D · gray.700 #454C55
   Documented artwork exceptions (not new UI tokens, like a photograph):
     ink blue #22417D  -> handwriting ink of the dossier (Bastarda language)
     tape/kraft tones  -> analog-archive props (tape, corners, paper grid)
   Type stacks: system-only, no webfonts.
     slab "varsity"  -> Rockwell / Roboto Slab / Georgia (bold headings)
     brand sans      -> Aptos stack (mkd-tokens font.family.brand) for body
     handwriting     -> Bradley Hand / Segoe Print (blue asides)
   Phase 1b: full-width bands (cream / navy), wide container,
   shop and club given their own bands. Same tokens, same components.
   ================================================================ */
:root{
  --navy:#193155; --navy-700:#12233D; --navy-900:#0B1626;
  --red:#DB261B; --red-700:#A81C14;
  --cream:#F5F2EA; --cream-300:#FAF8F3; --white:#fff;
  --gray-700:#454C55; --gray-500:#6E7681;
  --ink:#22417D;               /* handwriting ink: artwork exception */
  --tape:rgba(206,180,120,.38);/* kraft tape: artwork exception */
  --paper-line:rgba(25,49,85,.07);
  --slab:"Rockwell","Rockwell Nova","Roboto Slab","Bitstream Vera Serif",Georgia,"Times New Roman",serif;
  --sans:"Aptos","Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --hand:"Bradley Hand","Segoe Print","Comic Sans MS",cursive;
}
*{box-sizing:border-box}
figure{margin:0}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:var(--sans); color:var(--navy);
  background-color:var(--cream);
  background-image:
    radial-gradient(1200px 700px at 78% -8%, rgba(219,38,27,.05), transparent 60%),
    radial-gradient(900px 600px at 8% 108%, rgba(25,49,85,.06), transparent 55%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--red-700); color:var(--cream-300)}
a:focus-visible{outline:3px solid var(--red); outline-offset:3px}
.wrap{max-width:1280px; margin:0 auto; padding:0 40px}

/* dossier side tabs (decorative) */
.tabs{position:fixed; top:130px; left:0; z-index:5; display:flex; flex-direction:column; gap:8px}
.tabs span{
  writing-mode:vertical-rl; transform:rotate(180deg);
  background:var(--navy); color:var(--cream-300);
  font:600 11px/1 var(--sans); letter-spacing:.18em; text-transform:uppercase;
  padding:14px 6px; border-radius:0 6px 6px 0; box-shadow:2px 2px 0 rgba(11,22,38,.18), 0 0 0 1px rgba(245,242,234,.35);
}
.tabs span:nth-child(2){background:var(--red)}
.tabs span:nth-child(3){background:var(--navy-700)}
@media(max-width:1000px){.tabs{display:none}}

/* ---------- top bar ---------- */
.topbar{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:26px 0 18px; flex-wrap:wrap;
}
.topbar img{height:34px; width:auto; display:block}
.seal{
  font:700 12px/1.15 var(--slab); letter-spacing:.14em; color:var(--red-700);
  text-transform:uppercase; text-align:center;
  border:2px solid var(--red-700); border-radius:999px;
  padding:8px 16px; transform:rotate(-3deg);
  background:rgba(255,255,255,.55); box-shadow:1px 2px 0 rgba(168,28,20,.25);
}
.rule{height:3px; background:var(--navy); border:0; margin:0}

/* ---------- buttons (stamp language, straightened) ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font:700 15px/1 var(--slab); letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  padding:15px 22px; border:2px solid var(--red-700); color:var(--cream-300); background:var(--red-700);
  box-shadow:3px 3px 0 rgba(11,22,38,.22);
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.btn:hover{background:var(--red); border-color:var(--red)}
.btn:active{transform:translate(2px,2px); box-shadow:1px 1px 0 rgba(11,22,38,.22)}
.btn-ghost{flex-wrap:wrap; background:transparent; color:var(--navy); border-color:var(--navy); text-transform:none; letter-spacing:-.3px; font-size:19px; padding:12px 20px}
.btn-ghost:hover{background:var(--cream-300); border-color:var(--navy)}
.lockup-inline .p76,.lockup .p76{color:var(--red)} .lockup-inline .md,.lockup .md{color:var(--navy)} .lockup-inline .club,.lockup .club{color:var(--red)}
.btn .arrow{font-family:var(--sans); font-weight:600; letter-spacing:0}


/* ---------- "brevemente" state for external CTAs ----------
   Each CTA to mikedavis.shop / mikedavis.club carries data-live="false"
   and its real address in data-live-href. While false it shows the
   landing stamp "brevemente" and never links out (both domains still
   301 to mikedavis.pt). Launch day: set data-live="true" on the CTA. */
.cta-soon{display:inline-flex; align-items:center; gap:12px 16px; flex-wrap:wrap}
.cta-soon .stamp-soon{margin:0; transform:rotate(-6deg); background:var(--cream-300)}
[data-live="true"] .stamp-soon,[data-live="true"] + .stamp-soon{display:none}
a[data-live="false"]:not([href]){cursor:default}
a.btn[data-live="false"]:not([href]):hover{background:var(--red-700); border-color:var(--red-700)}
a.btn[data-live="false"]:not([href]):active{transform:none; box-shadow:3px 3px 0 rgba(11,22,38,.22)}
.shop-url[data-live="false"]:not([href]):hover{color:transparent}
.stamp-inline{transform:rotate(-4deg); margin:0 0 0 10px; vertical-align:middle; font-size:11px; padding:5px 8px}
.soon-tag{display:block; font:400 13px/1 var(--hand); letter-spacing:0; text-transform:none; margin-top:4px; color:var(--cream)}

/* ---------- club band: dark, in the club colours ----------
   semantic.dark of mkd-tokens (reserved for the club): background navy.900,
   text cream.300, red.500 only on large elements (76' and Club, >= 3:1). */
.band-club{background:var(--navy-900); color:var(--cream-300); border-top:3px solid var(--red)}
.band-club .kicker{color:var(--cream)}
.band-club .lockup-xl .md{color:var(--cream-300)}
.band-club .club-lede{color:var(--cream-300)}
.band-club .club-lines li{color:var(--cream); border-top-color:rgba(245,242,234,.22)}
.band-club .stamp{color:var(--cream-300); border-color:var(--cream-300); background:var(--red-700); box-shadow:inset 0 0 0 1px rgba(250,248,243,.35); opacity:1}
.band-club .btn-ghost{color:var(--cream-300); border-color:var(--cream-300); box-shadow:3px 3px 0 rgba(0,0,0,.35)}
.band-club .btn-ghost .lockup-inline .md{color:var(--cream-300)}
.band-club a.btn-ghost[data-live="false"]:not([href]):hover{background:transparent}
.band-club .cta-soon .stamp-soon{background:var(--red-700)}
.band-club .photo{box-shadow:4px 8px 22px rgba(0,0,0,.45); border-color:rgba(250,248,243,.2)}

/* persistent shop access */
.shop-float{
  position:fixed; right:24px; bottom:24px; z-index:20;
  font:700 14px/1 var(--slab); letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  color:var(--cream-300); background:var(--red-700); border:2px solid var(--cream-300);
  padding:14px 20px; border-radius:999px; box-shadow:0 6px 18px rgba(11,22,38,.3);
  transition:transform .18s ease, background-color .18s ease;
}
.shop-float:hover{background:var(--red)}
.shop-float.is-hidden{opacity:0; transform:translateY(12px); pointer-events:none; visibility:hidden; transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s}
.shop-float{transition:opacity .2s ease, transform .2s ease, background-color .18s ease, visibility 0s}
.shop-float:active{transform:scale(.97)}

/* ---------- hero ---------- */
.hero{min-height:calc(100svh - 82px); display:flex; align-items:center; padding:40px 0 56px; position:relative}
.hero-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:center; width:100%}
.eyebrow{
  font:var(--hand); font-size:20px; color:var(--ink); transform:rotate(-2deg);
  display:inline-block; margin:0 0 10px;
}
h1.headline{
  font-family:var(--slab); font-weight:700; color:var(--navy);
  font-size:clamp(38px,6vw,86px); line-height:.96; letter-spacing:-.5px;
  margin:0 0 26px; text-transform:lowercase;
}
h1.headline .fifty{color:var(--red)}
.lede{font-size:clamp(17px,1.5vw,20px); color:var(--navy); max-width:38ch; margin:0 0 8px}
.lede strong{color:var(--red-700)}
.hand-aside{
  font-family:var(--hand); color:var(--ink); font-size:22px; line-height:1.3;
  transform:rotate(-1.5deg); margin-top:22px; position:relative; display:inline-block;
}
.hand-aside svg{position:absolute; left:-6px; bottom:-14px; width:230px; height:22px}
.hero-ctas{display:flex; flex-wrap:wrap; gap:16px 18px; align-items:center; margin-top:40px}

/* hero photo cluster */
.hero-photos{position:relative; min-height:540px}
.photo{
  background:var(--white); padding:10px 10px 14px; border:1px solid rgba(25,49,85,.12);
  box-shadow:3px 6px 18px rgba(11,22,38,.22); position:relative;
}
.photo img{display:block; width:100%; height:auto}
.photo .cap{
  font-family:var(--hand); color:var(--ink); font-size:16px; text-align:center;
  padding-top:8px; line-height:1.15;
}
.tape{
  position:absolute; width:96px; height:30px; background:var(--tape);
  border-left:1px dashed rgba(140,110,60,.35); border-right:1px dashed rgba(140,110,60,.35);
  box-shadow:0 1px 2px rgba(0,0,0,.08);
}
.hero-photos .p-red{position:absolute; right:0; top:0; width:68%; transform:rotate(2.5deg); z-index:2}
.hero-photos .p-red .tape{left:38%; top:-14px; transform:rotate(-6deg)}
.hero-photos .p-color{position:absolute; left:0; bottom:6px; width:52%; transform:rotate(-4deg); z-index:3}
.hero-photos .p-color .tape{left:30%; top:-13px; transform:rotate(4deg)}

/* ---------- bands ---------- */
.band{padding:104px 0}
.band-paper{background:var(--cream-300); border-top:1px solid rgba(25,49,85,.1); border-bottom:1px solid rgba(25,49,85,.1)}
.band-rule{border-top:3px solid var(--navy)}
.sec-head{margin-bottom:8px}
.kicker{font-family:var(--hand); color:var(--ink); font-size:21px; transform:rotate(-1.5deg); display:inline-block; margin-bottom:4px}
h2{
  font-family:var(--slab); font-weight:700; color:var(--navy);
  font-size:clamp(30px,3.8vw,54px); line-height:1.02; margin:0 0 12px; letter-spacing:-.3px;
}
.sec-intro{max-width:60ch; color:var(--gray-700); font-size:18px; margin:0 0 30px}

/* archive collage */
.collage{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:flex-start;
  gap:40px 44px; padding:30px 0 10px;
}
.collage .photo{width:228px}
.collage .wide{width:360px}
.collage .c1{transform:rotate(-3deg)}
.collage .c2{transform:rotate(2deg); margin-top:34px}
.collage .c3{transform:rotate(-1.5deg); margin-top:8px}
.collage .c4{transform:rotate(3deg); margin-top:22px}
.collage .photo .tape{left:34%; top:-13px}
.collage .c1 .tape{transform:rotate(-7deg)}
.collage .c2 .tape{transform:rotate(5deg)}
.collage .c3 .tape{transform:rotate(-3deg)}
.collage .c4 .tape{transform:rotate(8deg); left:24%}
.clip{position:absolute; top:-10px; right:14px; width:20px; height:44px; border:3px solid var(--gray-500); border-radius:12px; border-bottom:none; z-index:4}

/* what's coming (dossier notes) */
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:30px}
.note{
  background:var(--cream-300); border:1px solid rgba(25,49,85,.14); padding:28px 26px 26px;
  box-shadow:3px 5px 14px rgba(11,22,38,.12); position:relative; color:inherit; text-decoration:none; display:block;
  background-image:repeating-linear-gradient(var(--paper-line) 0 1px, transparent 1px 26px);
  transition:transform .2s ease, box-shadow .2s ease;
}
.grid3 .note:nth-child(1){transform:rotate(-1deg)}
.grid3 .note:nth-child(2){transform:rotate(.6deg)}
.grid3 .note:nth-child(3){transform:rotate(-.6deg)}
a.note:hover{box-shadow:5px 9px 20px rgba(11,22,38,.18)}
.note .pin,.note-open .pin{position:absolute; top:-9px; left:50%; transform:translateX(-50%); width:16px; height:16px; border-radius:50%; background:var(--red); box-shadow:0 2px 4px rgba(0,0,0,.3), inset 0 -3px 4px rgba(0,0,0,.25)}
.note h3{font-family:var(--slab); font-weight:700; font-size:22px; color:var(--navy); margin:6px 0 12px; line-height:1.1}
.note p{font-size:16px; color:var(--gray-700); margin:0}
.stamp{
  display:inline-block; font:700 12px/1 var(--slab); letter-spacing:.12em;
  color:var(--red-700); text-transform:uppercase; border:2px solid var(--red-700);
  padding:6px 10px; transform:rotate(-6deg); opacity:.9; margin-bottom:6px;
  box-shadow:inset 0 0 0 1px rgba(168,28,20,.25);
}
.lockup{font-family:var(--slab); font-weight:700; font-size:27px; letter-spacing:-.5px; margin:4px 0 12px; line-height:1}

/* shop band */
.shop-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center}
.shop-url{
  display:block; overflow-wrap:anywhere; font-family:var(--slab); font-weight:700; text-transform:lowercase; text-decoration:none;
  font-size:clamp(30px,4.2vw,60px); line-height:1; letter-spacing:.5px; margin:10px 0 26px;
  color:transparent; -webkit-text-stroke:2px var(--red); text-stroke:2px var(--red);
  transition:color .2s ease;
}
.shop-url:hover{color:var(--red)}
.shop-copy{font-size:19px; color:var(--navy); max-width:36ch; margin:0 0 10px}
.shop-stores{font-family:var(--hand); color:var(--ink); font-size:23px; transform:rotate(-1.5deg); display:inline-block; margin:6px 0 30px}
.shop-photos{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 30px; max-width:540px; width:100%; justify-self:center}
.shop-photos .photo .tape{left:28%; top:-13px}
.shop-photos .s1{transform:rotate(-2.5deg)}
.shop-photos .s2{transform:rotate(2deg); margin-top:46px}
.shop-photos .s3{transform:rotate(-1deg); margin-top:-16px}
.shop-photos .s4{transform:rotate(3deg); margin-top:30px}
.shop-photos .s1 .tape{transform:rotate(-6deg)}
.shop-photos .s2 .tape{transform:rotate(5deg)}
.shop-photos .s3 .tape{transform:rotate(-2deg)}
.shop-photos .s4 .tape{transform:rotate(7deg)}

/* club band */
.club-grid{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:64px; align-items:center}
.club-head{margin-bottom:8px}
.lockup-xl{font-family:var(--slab); font-weight:700; font-size:clamp(30px,7.4vw,108px); letter-spacing:-1.5px; line-height:.95; margin:14px 0 26px}
.lockup-xl .p76{color:var(--red)} .lockup-xl .md{color:var(--navy)} .lockup-xl .club{color:var(--red)}
.club-lede{font-family:var(--slab); font-weight:700; font-size:clamp(21px,2.1vw,28px); line-height:1.25; color:var(--navy); max-width:30ch; margin:0 0 28px}
.club-lines{list-style:none; margin:0 0 34px; padding:0; max-width:52ch}
.club-lines li{font-size:17px; color:var(--gray-700); padding:12px 0 12px 34px; border-top:1px dashed rgba(25,49,85,.22); position:relative}
.club-lines li::before{content:""; position:absolute; left:4px; top:22px; width:14px; height:3px; background:var(--red); transform:rotate(-8deg)}
.club-photos{position:relative; min-height:600px}
.club-photos .k1{position:absolute; right:0; top:0; width:64%; transform:rotate(2.5deg); z-index:2}
.club-photos .k2{position:absolute; left:0; bottom:0; width:56%; transform:rotate(-3.5deg); z-index:3}
.club-photos .photo .tape{left:32%; top:-13px}
.club-photos .k1 .tape{transform:rotate(-5deg)}
.club-photos .k2 .tape{transform:rotate(4deg)}

/* collection (third note, opened) */
.collection-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; margin-top:30px}
.note-open{
  background:var(--cream-300); border:1px solid rgba(25,49,85,.14); padding:36px 34px 32px;
  box-shadow:3px 5px 14px rgba(11,22,38,.12); position:relative; transform:rotate(-.8deg);
  background-image:repeating-linear-gradient(var(--paper-line) 0 1px, transparent 1px 26px);
}
.note-open .open-lede{font-size:17px; line-height:26px; color:var(--navy); margin:8px 0 24px; max-width:42ch}
.lines{list-style:none; margin:0; padding:0}
.lines li{display:grid; grid-template-columns:118px 1fr; gap:16px; align-items:baseline; padding:12px 0; border-top:1px dashed rgba(25,49,85,.22)}
.lines li:first-child{border-top:0}
.lines .word{font-family:var(--hand); color:var(--ink); font-size:21px; line-height:1.1; transform:rotate(-2deg); display:inline-block}
.lines p{margin:0; font-size:15.5px; color:var(--gray-700)}
.note-open .hand-aside{margin-top:18px}
.note-open .hand-aside svg{width:150px}
.shop-link{margin-top:22px; display:flex; flex-wrap:wrap; gap:10px 26px}
.shop-link a{color:var(--red-700); text-decoration:none; font-weight:600; font-size:16px; border-bottom:2px solid rgba(168,28,20,.4); padding-bottom:2px}
.shop-link a:hover{color:var(--red); border-color:var(--red)}
.cluster{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 30px; padding-top:6px; max-width:560px; width:100%; justify-self:center}
.cluster .photo .tape{left:28%; top:-13px}
.cluster .k1{transform:rotate(2deg)}
.cluster .k2{transform:rotate(-2.5deg); margin-top:42px}
.cluster .k3{transform:rotate(-1.5deg); margin-top:10px}
.cluster .k4{transform:rotate(3deg); margin-top:50px}
.cluster .k1 .tape{transform:rotate(-6deg)}
.cluster .k2 .tape{transform:rotate(5deg)}
.cluster .k3 .tape{transform:rotate(-3deg)}
.cluster .k4 .tape{transform:rotate(7deg); left:40%}

/* campaign signature */
.signature{text-align:center; padding:96px 0 40px}
.sig-md-img{display:block;width:min(760px,86%);height:auto;margin:0 auto 1rem}
.sig-btf{
  font-family:var(--slab); font-weight:700; color:var(--navy);
  font-size:clamp(22px,3.4vw,46px); letter-spacing:.02em; margin:6px 0 0; text-transform:uppercase;
}
.sig-note{font-family:var(--hand); color:var(--ink); font-size:24px; transform:rotate(-1.5deg); margin:22px 0 0}

/* footer / contacts */
.foot{border-top:3px solid var(--navy); margin-top:40px; padding:40px 0 110px; text-align:center}
.stores{font-family:var(--slab); font-weight:700; font-size:clamp(20px,2.6vw,30px); color:var(--navy); margin:0 0 16px}
.contacts{display:flex; gap:10px 26px; justify-content:center; flex-wrap:wrap; margin-bottom:22px}
.contacts a{color:var(--red-700); text-decoration:none; font-weight:600; font-size:16px; border-bottom:2px solid rgba(168,28,20,.4); padding-bottom:2px}
.contacts a:hover{color:var(--red); border-color:var(--red)}
.copyright{font-size:13px; color:var(--gray-500); letter-spacing:.04em}
.copyright strong{color:var(--navy)}

/* reveal (degrades to fully visible without JS) */
.js .reveal{opacity:0; transform:translateY(18px)}
.js .reveal.in{opacity:1; transform:none; transition:opacity .7s ease, transform .7s ease}

/* responsive */

.stores-strip{
  background:var(--cream-300); border:1px solid rgba(25,49,85,.14); padding:34px 36px 32px; margin-top:26px;
  box-shadow:3px 5px 14px rgba(11,22,38,.12); position:relative; transform:rotate(-.4deg);
  background-image:repeating-linear-gradient(var(--paper-line) 0 1px, transparent 1px 26px);
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:20px 40px; align-items:center;
}
.stores-strip .pin{position:absolute; top:-9px; left:50%; transform:translateX(-50%); width:16px; height:16px; border-radius:50%; background:var(--red); box-shadow:0 2px 4px rgba(0,0,0,.3), inset 0 -3px 4px rgba(0,0,0,.25)}
.stores-count{margin:0; display:flex; align-items:baseline; gap:12px}
.stores-count .n{font-family:var(--slab); font-weight:700; font-size:clamp(56px,6vw,84px); line-height:.9; color:var(--red)}
.stores-count .w{font-family:var(--hand); color:var(--ink); font-size:22px; transform:rotate(-2deg); display:inline-block}
.stores-cities{margin:0; font-family:var(--slab); font-weight:700; font-size:18px; line-height:1.55; color:var(--navy)}
.stores-cities span{white-space:nowrap}
.stores-cities span:not(:last-child)::after{content:"\00a0· "; white-space:normal; color:var(--red)}
.back-home{font-family:var(--hand); color:var(--ink); font-size:20px; text-decoration:none; border-bottom:2px solid rgba(219,38,27,.55); display:inline-block; transform:rotate(-1.5deg); margin:6px 0 0}
.back-home:hover{border-color:var(--red)}
.page-head{padding:64px 0 10px}
.page-lede{font-size:clamp(17px,1.5vw,20px); color:var(--navy); max-width:46ch; margin:0 0 6px}
.page-lede strong{color:var(--red-700)}
.topbar a.home{display:block}
/* ---------- physical stores (source: 00_information/lojas.md, 13/07/2026) ---------- */
.where{font-family:var(--hand); color:var(--ink); font-size:20px; text-decoration:none; border-bottom:2px solid rgba(219,38,27,.55); padding-bottom:1px; display:inline-block; transform:rotate(-1.5deg); margin:2px 0 0}
.where:hover{border-color:var(--red)}
.stores-sheet{
  background:var(--cream-300); border:1px solid rgba(25,49,85,.14); padding:40px 40px 34px; margin-top:30px;
  box-shadow:3px 5px 14px rgba(11,22,38,.12); position:relative; transform:rotate(-.4deg);
  background-image:repeating-linear-gradient(var(--paper-line) 0 1px, transparent 1px 26px);
}
.stores-sheet .pin{position:absolute; top:-9px; left:50%; transform:translateX(-50%); width:16px; height:16px; border-radius:50%; background:var(--red); box-shadow:0 2px 4px rgba(0,0,0,.3), inset 0 -3px 4px rgba(0,0,0,.25)}
.store-list{list-style:none; margin:0; padding:0; display:grid; grid-auto-flow:column; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(4,auto); column-gap:48px}
.store-list li{break-inside:avoid; padding:12px 0 14px; border-top:1px dashed rgba(25,49,85,.22)}
.store-city{display:block; font-family:var(--slab); font-weight:700; font-size:22px; line-height:1.15; color:var(--navy)}
.store-place{display:block; font-size:15.5px; color:var(--gray-700); margin-top:2px}
.store-list .stamp{font-size:10.5px; padding:4px 7px; margin:0 0 0 10px; vertical-align:3px}
.stores-foot{font-family:var(--hand); color:var(--ink); font-size:21px; transform:rotate(-1.5deg); display:inline-block; margin:22px 0 0}
.foot-where{margin:-4px 0 20px}
.foot-where a{color:var(--red-700); text-decoration:none; font-weight:600; font-size:16px; border-bottom:2px solid rgba(168,28,20,.4); padding-bottom:2px}
.foot-where a:hover{color:var(--red); border-color:var(--red)}

@media(max-width:1100px){
  .shop-photos{grid-template-columns:repeat(2,1fr)}
  .shop-photos .s2,.shop-photos .s4,.cluster .k2,.cluster .k4{margin-top:30px}
  .shop-photos .s3,.cluster .k3{margin-top:0}
}
@media(max-width:900px){
  .wrap{padding:0 24px}
  .band{padding:72px 0}
  .hero{min-height:auto; padding:40px 0 48px}
  .hero-grid,.shop-grid,.club-grid,.collection-grid{grid-template-columns:minmax(0,1fr); gap:40px}
  .hero-photos{min-height:auto; display:flex; gap:16px; margin-top:8px}
  .hero-photos .p-red,.hero-photos .p-color{position:static; width:50%}
  .club-photos{min-height:auto; display:flex; gap:16px}
  .club-photos .k1,.club-photos .k2{position:static; width:50%}
  .collage .photo{width:42%} .collage .wide{width:56%}
  .grid3{grid-template-columns:1fr}
  .grid3 .note:nth-child(n){transform:none}
  .note-open{transform:none; padding:30px 22px 26px}
  .store-list{grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(6,auto)}
  .stores-strip{grid-template-columns:1fr; transform:none; padding:30px 22px 26px}
  .stores-sheet{transform:none; padding:32px 22px 26px}
  .shop-url{color:var(--red); -webkit-text-stroke:0; text-stroke:0}
}
@media(max-width:480px){
  .collage{gap:22px 14px}
  .collage .photo,.collage .wide{width:82%}
  .collage .c1,.collage .c2,.collage .c3,.collage .c4{transform:none; margin-top:0}
  .seal{font-size:11px}
  .lines li{grid-template-columns:1fr; gap:4px}
  .store-list{grid-auto-flow:row; grid-template-columns:1fr; grid-template-rows:none}
  .shop-photos,.cluster{gap:24px 14px}
  .shop-photos .photo .tape,.cluster .photo .tape,.cluster .k4 .tape{left:22%}
  .hero-ctas .cta-soon{width:100%}
  .hero-ctas .btn{width:100%; justify-content:center}
  .shop-float{right:16px; bottom:16px; padding:12px 16px; font-size:13px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1 !important; transform:none !important; transition:none !important}
  .btn,.shop-float,.note,.shop-url{transition:none}
  .shop-float.is-hidden{transition:none; transform:none}
}

.section-stores{padding:18px 0 80px}
.store-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 30px; margin-top:34px}
.store-card{
  background:var(--cream-300); border:1px solid rgba(25,49,85,.14); padding:28px 24px 22px; position:relative;
  box-shadow:3px 5px 14px rgba(11,22,38,.12);
  background-image:repeating-linear-gradient(var(--paper-line) 0 1px, transparent 1px 26px);
}
.store-card:nth-child(3n+1){transform:rotate(-.7deg)}
.store-card:nth-child(3n+2){transform:rotate(.5deg)}
.store-card:nth-child(3n){transform:rotate(-.4deg)}
.store-card .pin{position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:14px; height:14px; border-radius:50%; background:var(--red); box-shadow:0 2px 4px rgba(0,0,0,.3), inset 0 -3px 4px rgba(0,0,0,.25)}
.sc-city{font-family:var(--slab); font-weight:700; font-size:23px; line-height:1.15; color:var(--navy); margin:4px 0 2px}
.sc-city .stamp{font-size:10.5px; padding:4px 7px; margin:0 0 0 10px; vertical-align:4px}
.sc-center{display:block; font-size:15px; color:var(--gray-700); font-weight:600}
.sc-addr{font-size:15.5px; color:var(--navy); margin:12px 0 10px; line-height:1.5}
.sc-hours{font-size:15px; color:var(--gray-700); margin:0; padding-top:10px; border-top:1px dashed rgba(25,49,85,.22)}
.sc-line{display:block}
.sc-label{display:block; font-family:var(--hand); color:var(--ink); font-size:18px; line-height:1.2}
.sc-tbc{font-family:var(--hand); color:var(--gray-700); font-size:18px; display:inline-block; transform:rotate(-1.5deg); border-bottom:1px dashed var(--gray-500)}
@media(max-width:1100px){.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.store-grid{grid-template-columns:1fr} .store-card:nth-child(n){transform:none}}
/* ---------- production additions (v1) ---------- */
/* photos without caption (feedback Rodrigo, 04/10: captions only in the archive): even frame, no empty strip */
figure.photo:not(:has(figcaption)){padding-bottom:10px}
.shop-photos .photo,.cluster .photo{align-self:start}
h1.page-title{font-family:var(--slab); font-weight:700; color:var(--navy); font-size:clamp(30px,3.8vw,54px); line-height:1.02; margin:0 0 12px; letter-spacing:-.3px}
.legal{margin:26px auto 0; max-width:760px; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; font-size:14px}
.legal a,.linkish{color:var(--navy); text-decoration:none; border-bottom:1px solid rgba(25,49,85,.35); padding-bottom:1px; font:inherit; font-size:14px; background:none; border-top:0; border-left:0; border-right:0; cursor:pointer}
.legal a:hover,.linkish:hover{border-bottom-color:var(--red)}
.company{font-size:13px; color:var(--gray-700); margin:14px 0 0}
.copyright{color:var(--gray-700)}
.placeholder{font-family:var(--hand); color:var(--ink); font-size:22px; transform:rotate(-1.5deg); display:inline-block; margin:18px 0 0}
.page-body{padding:10px 0 80px; max-width:68ch}
.page-body p{font-size:17px; color:var(--navy)}
/* consent banner (dossier note) */
.consent{position:fixed; right:24px; bottom:24px; z-index:30; max-width:520px; width:calc(100% - 48px);
  background:var(--cream-300); border:1px solid rgba(25,49,85,.18); padding:26px 24px 22px; box-shadow:4px 8px 24px rgba(11,22,38,.22);
  background-image:repeating-linear-gradient(var(--paper-line) 0 1px, transparent 1px 26px); transform:rotate(-.4deg)}
.consent[hidden]{display:none}
.consent .stamp{margin-bottom:10px}
.consent h3{font-size:22px; margin:2px 0 8px}
.consent .consent-stamp{display:inline-block; margin:0 0 12px; font:700 12px/1 var(--slab)}
.consent-more{font-size:14px}
.consent-more a{color:var(--navy)}
.consent-layer[hidden]{display:none}
.switch-row{display:flex; gap:12px; align-items:flex-start; justify-content:space-between; font-size:15px; color:var(--navy); padding:9px 0; border-top:1px dashed rgba(25,49,85,.22)}
.switch-row strong{font-family:var(--slab)}
.switch-row small{display:block; color:var(--gray-700); font-size:13.5px; margin-top:2px}
.switch-row input{flex:0 0 auto; margin-top:4px; accent-color:var(--red-700); width:20px; height:20px}
.switch-row .always{flex:0 0 auto; font-size:13px; color:var(--gray-700); margin-top:3px}
mark.todo{background:rgba(219,38,27,.08); color:var(--red-700); font-weight:600; padding:0 3px; border-bottom:1px dashed var(--red-700)}
.legal-id{font-size:14px; color:var(--navy); margin:22px 0 0}
.lre{display:inline-flex; align-items:center; gap:12px; margin:18px 0 0; padding:10px 18px; border:2px solid var(--navy); background:var(--cream-300); color:var(--navy); text-decoration:none; box-shadow:3px 3px 0 rgba(11,22,38,.18)}
.lre svg{width:26px; height:26px; flex:0 0 auto}
.lre strong{display:block; font-family:var(--slab); font-size:17px; line-height:1.1}
.lre small{display:block; font-size:12.5px; color:var(--gray-700)}
.lre:hover{border-color:var(--red-700)}
.lre:focus-visible{outline:3px solid var(--red); outline-offset:3px}
.legal-page .page-body{max-width:72ch}
.legal-page h2{font-size:clamp(22px,2.2vw,28px); margin:34px 0 10px}
.legal-page h3{font-family:var(--slab); font-weight:700; font-size:19px; color:var(--navy); margin:22px 0 6px}
.legal-page p,.legal-list li{font-size:16.5px; line-height:1.65}
.legal-page a{color:var(--red-700); text-decoration:underline; text-underline-offset:3px}
.legal-page a.back-home{color:var(--ink); text-decoration:none}
.legal-list{padding-left:20px; margin:0 0 14px}
.legal-list li{color:var(--navy); margin:4px 0}
.doc-meta{font-size:14.5px !important; color:var(--gray-700) !important}
.table-wrap{overflow-x:auto; margin:8px 0 16px}
.cookie-table{border-collapse:collapse; width:100%; font-size:14.5px; color:var(--navy); background:var(--cream-300)}
.cookie-table th,.cookie-table td{border:1px solid rgba(25,49,85,.25); padding:8px 10px; text-align:left; vertical-align:top}
.cookie-table th{font-family:var(--slab); background:var(--cream)}
.consent p{font-size:15px; color:var(--gray-700); margin:0 0 14px; line-height:1.55}
.consent-actions{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px}
.btn-consent{font:700 14px/1 var(--slab); letter-spacing:.06em; text-transform:uppercase; padding:13px 10px; border:2px solid var(--navy); background:var(--cream-300); color:var(--navy); cursor:pointer; box-shadow:2px 2px 0 rgba(11,22,38,.18)}
.btn-consent:hover{background:var(--cream)}
.btn-consent:active{transform:translate(1px,1px); box-shadow:1px 1px 0 rgba(11,22,38,.18)}
.btn-consent:focus-visible,.legal .linkish:focus-visible{outline:3px solid var(--red); outline-offset:2px}
.consent-config{margin:4px 0 14px; padding:0; border:0}
.consent-config legend{font-family:var(--hand); color:var(--ink); font-size:19px; margin-bottom:6px}
.consent-config label{display:flex; gap:10px; align-items:flex-start; font-size:15px; color:var(--navy); padding:7px 0; border-top:1px dashed rgba(25,49,85,.22)}
.consent-config input{margin-top:4px; accent-color:var(--red-700); width:18px; height:18px}
.consent-config small{display:block; color:var(--gray-700); font-size:13.5px}
html.consent-open .shop-float{opacity:0; visibility:hidden; pointer-events:none}
@media(max-width:480px){.consent{right:12px; bottom:12px; width:calc(100% - 24px); padding:20px 16px 16px; max-height:calc(100vh - 24px); overflow-y:auto} .btn-consent{font-size:14px; letter-spacing:0; text-transform:none; padding:13px 4px} .consent-actions.l2{grid-template-columns:1fr}}
.page-head > .stamp{margin-bottom:14px}
@media(prefers-reduced-motion:reduce){.btn-consent{transition:none}}
