/* ============================================================
   ESCORTS OF AMSTERDAM, "CITY BOLD", inner pages
   White / #111111 / #E4002B, Big Shoulders Display + Figtree
   ============================================================ */
:root{
  --red:#E4002B;--red-deep:#b80023;--ink:#111111;--paper:#ffffff;--paper-2:#f6f5f3;
  --grey:#555555;--grey-2:#b9b9b9;
  --disp:'Big Shoulders Display','Big Shoulders','Arial Narrow',Impact,sans-serif;
  --body:'Figtree','Segoe UI',Helvetica,Arial,sans-serif;
  --line:2px solid var(--ink);
  --pad:clamp(1.25rem,4vw,3rem);
  --sec:clamp(4rem,8vw,7rem);
  --shadow:8px 8px 0 var(--ink);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
html,body{overflow-x:hidden;max-width:100%}
@supports (overflow:clip){html,body{overflow-x:clip}}
body{font-family:var(--body);font-weight:400;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
::selection{background:var(--red);color:#fff}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
img,svg,video{max-width:100%}
img{height:auto}
[hidden]{display:none!important}
ul,ol{list-style:none}
h1,h2,h3,h4,dd,dt,summary{overflow-wrap:anywhere}
.x{width:1em;height:1em;display:inline-block;vertical-align:-.12em;flex:none}
.wrap{width:min(1240px,100% - 2*var(--pad));margin-inline:auto}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:.5rem;z-index:100;background:var(--red);color:#fff;border:var(--line);padding:.7em 1.1em;font-weight:800;text-decoration:none}
.skip:focus{left:.5rem}
html.menu-open,html.lb-open{overflow:hidden}

/* ---------- reveal: heroes on load, sections on scroll ---------- */
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.phero .rv,.pro .rv{opacity:0;animation:rise .85s var(--ease) forwards;animation-delay:var(--d,0s)}
@supports (animation-timeline: view()){
  .sec .rv{animation:rise .1s var(--ease) backwards;animation-timeline:view();animation-range:entry 4% entry 38%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .phero .rv,.pro .rv,.sec .rv{opacity:1;transform:none}
}

/* ---------- type helpers ---------- */
.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:.65em;font-weight:800;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:1.4rem}
.kicker .idx{color:var(--ink);letter-spacing:.1em}
.dark .kicker .idx{color:#fff}
.kicker::after{content:"";height:2px;background:currentColor;width:3.5rem}
h2{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-size:clamp(2.4rem,6.2vw,4.6rem);line-height:.95;letter-spacing:.005em;margin-bottom:1.4rem}
.lede{max-width:62ch;font-size:clamp(1rem,1.4vw,1.15rem);color:var(--grey)}
.dark .lede{color:var(--grey-2)}
.stroke{position:relative;display:inline-block;z-index:0;white-space:nowrap}
.stroke::after{content:"";position:absolute;left:-.05em;right:-.05em;bottom:.015em;height:.16em;background:var(--red);transform:skewX(-14deg);z-index:-1}
@media (max-width:640px){.stroke{white-space:normal}}
.xxx{display:inline-flex;gap:.45em;color:var(--red);font-size:1rem;line-height:1}
.xxx .x{width:1em;height:1em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;max-width:100%;font-family:var(--body);font-weight:800;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;text-align:center;padding:1.05em 1.7em;border:var(--line);background:var(--red);color:#fff;box-shadow:6px 6px 0 var(--ink);cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:9px 9px 0 var(--ink)}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn--ghost{background:var(--paper);color:var(--ink)}
.btn--ghost:hover{background:var(--paper-2)}
.dark .btn{border-color:#fff;box-shadow:6px 6px 0 rgba(255,255,255,.95)}
.dark .btn:hover{box-shadow:9px 9px 0 rgba(255,255,255,.95)}
.dark .btn:active{box-shadow:2px 2px 0 rgba(255,255,255,.95)}
.dark .btn--ghost{background:var(--ink);color:#fff}
.dark .btn--ghost:hover{background:#222}
.btn .x{width:.85em;height:.85em}
.mini{position:relative;text-decoration:none;color:var(--red);font-weight:800;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;padding-bottom:.15em;background:linear-gradient(var(--red),var(--red)) left bottom / 0 2px no-repeat;transition:background-size .25s var(--ease)}
.mini:hover,.card:hover .mini{background-size:100% 2px}

/* ============================================================ NAV */
.nav{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:var(--line);transition:box-shadow .25s}
.nav.scrolled{box-shadow:0 6px 0 rgba(17,17,17,.06)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:72px}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-width:0}
.logo .xxx{font-size:.85rem}
.logo b{font-family:var(--disp);font-weight:800;font-size:1.25rem;letter-spacing:.06em;text-transform:uppercase;line-height:1;white-space:nowrap}
.logo b em{font-style:normal;color:var(--red)}
.nav-links{display:flex;gap:2rem}
.nav-links a{position:relative;text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;padding:.3em 0;white-space:nowrap}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--red);transition:right .22s var(--ease)}
.nav-links a:hover::after,.nav-links a[aria-current]::after{right:0}
.nav-links a[aria-current]{color:var(--red)}
.nav--more .nav-links{gap:1.35rem}
.nav-act{display:flex;align-items:center;gap:.8rem;flex:none}
.nav .btn{padding:.75em 1.15em;font-size:.8rem;box-shadow:4px 4px 0 var(--ink)}
.nav .btn:hover{box-shadow:6px 6px 0 var(--ink)}
.burger{display:none;width:46px;height:46px;align-items:center;justify-content:center;border:var(--line);background:var(--paper);cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.burger:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.burger-bars{position:relative;display:block;width:20px;height:14px}
.burger-bars i{position:absolute;left:0;width:100%;height:3px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s,top .25s var(--ease),background .2s}
.burger-bars i:nth-child(1){top:0}
.burger-bars i:nth-child(2){top:5.5px}
.burger-bars i:nth-child(3){top:11px}
.burger[aria-expanded="true"] .burger-bars i{background:var(--red)}
.burger[aria-expanded="true"] .burger-bars i:nth-child(1){top:5.5px;transform:rotate(45deg)}
.burger[aria-expanded="true"] .burger-bars i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .burger-bars i:nth-child(3){top:5.5px;transform:rotate(-45deg)}
.menu{border-top:var(--line);background:var(--paper);max-height:calc(100vh - 74px);overflow-y:auto}
.menu-list li{border-bottom:1px solid rgba(17,17,17,.14)}
.menu-list a{display:flex;align-items:center;gap:1rem;padding:1rem 0;text-decoration:none;font-family:var(--disp);font-weight:800;font-size:1.9rem;letter-spacing:.04em;text-transform:uppercase;line-height:1}
.menu-n{font-family:var(--body);font-size:.75rem;letter-spacing:.14em;color:var(--red)}
.menu-list a .x{margin-left:auto;width:.55em;height:.55em;color:var(--red);transition:transform .25s var(--ease)}
.menu-list a:hover .x,.menu-list a[aria-current] .x{transform:rotate(90deg)}
.menu-list a[aria-current] .menu-t{color:var(--red)}
.menu-tag{display:flex;align-items:center;gap:.8rem;margin:1.3rem 0;font-size:.9rem;color:var(--grey)}
.menu-cta{display:flex;flex-wrap:wrap;gap:1rem;padding-bottom:1.8rem}
@media (max-width:1180px){.nav--more .nav-links{gap:1rem}.nav--more .nav-links a{font-size:.8rem}}
@media (max-width:900px){.nav-links{display:none}.burger{display:inline-flex}}
@media (min-width:901px){.menu{display:none!important}}
@media (max-width:480px){.nav-wa-t{display:none}.nav .nav-wa{padding:.72em}.logo .xxx{display:none}.logo b{font-size:1.12rem}.nav-act{gap:.6rem}}

/* ============================================================ BREADCRUMBS */
.crumbs{background:var(--paper-2);border-bottom:var(--line)}
.crumbs-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 2rem;padding:.8rem 0}
.crumbs-list{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .7rem;font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.crumbs-list li{display:flex;align-items:center;gap:.7rem;min-width:0}
.crumbs-list li+li::before{content:"";flex:none;width:.6rem;height:.6rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 4.5 19.5 19.5M19.5 4.5 4.5 19.5' stroke='%23E4002B' stroke-width='4.6' stroke-linecap='square' fill='none'/%3E%3C/svg%3E") center / contain no-repeat}
.crumbs-list a{color:var(--grey);text-decoration:none}
.crumbs-list a:hover{color:var(--red)}
.crumbs-list [aria-current]{color:var(--ink)}
.crumbs-tag{font-size:.82rem;color:var(--grey)}
@media (max-width:700px){.crumbs-tag{display:none}}

/* ============================================================ PAGE HERO */
.phero{position:relative;overflow:clip;border-bottom:var(--line);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath d='M18 18l20 20M38 18L18 38' stroke='%23111111' stroke-opacity='.05' stroke-width='6'/%3E%3C/svg%3E"),var(--paper);padding:clamp(3.2rem,6.5vw,6rem) 0 clamp(2.8rem,5.5vw,4.8rem)}
.phero-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:stretch}
.phero-copy{min-width:0;max-width:940px}
.phero h1,.pro h1{font-family:var(--disp);font-weight:900;text-transform:uppercase;line-height:.92;letter-spacing:.005em;margin:0 0 1.6rem;font-size:clamp(2.7rem,7.6vw,6.6rem)}
.phero-intro{display:grid;gap:1rem;margin-bottom:2.1rem}
.lede a,.prose a,.faq-a a,.step a,.rate-row a,.final-text a{color:inherit;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px;font-weight:600}
.lede a:hover,.prose a:hover,.faq-a a:hover,.step a:hover{color:var(--red)}
.hero-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.9em 1.2em;font-family:var(--disp);font-weight:700;font-size:1.05rem;letter-spacing:.09em;text-transform:uppercase}
.hero-chips .x{color:var(--red);width:.75em;height:.75em}
.hero-ctas{display:flex;flex-wrap:wrap;gap:1.1rem;margin:0 0 1rem}
.flag{display:flex;flex-direction:column;width:clamp(64px,7vw,96px);min-height:240px;border:var(--line)}
.flag .band{flex:1.1;background:var(--red)}
.flag .mid{flex:2.6;background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,2vw,24px)}
.flag .mid .x{width:clamp(20px,2.4vw,30px);height:clamp(20px,2.4vw,30px)}
@media (max-width:820px){.phero-grid{grid-template-columns:minmax(0,1fr)}.flag{display:none}}

/* ============================================================ SECTIONS */
.sec{padding:var(--sec) 0}
.sec-head{margin-bottom:clamp(2.2rem,4.5vw,3.6rem)}
.sec.alt{background:var(--paper-2);border-top:var(--line);border-bottom:var(--line)}
.sec.dark{background:var(--ink);color:#fff}
.sec-copy{padding:clamp(3.5rem,7vw,6rem) 0}
.sec.alt+.sec.alt,.sec.dark+.sec.alt{border-top:0}
.copy{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.copy-head{position:sticky;top:104px;min-width:0}
.copy-head h2{font-size:clamp(2.2rem,4.4vw,3.7rem);margin-bottom:0}
.prose{min-width:0;max-width:68ch;font-size:clamp(1rem,1.3vw,1.1rem);color:#2b2b2b}
.prose p+p,.prose p+ul,.prose ul+p,.prose p+ol{margin-top:1.1em}
.prose>p:first-child::first-letter{float:left;font-family:var(--disp);font-weight:900;font-size:3.7em;line-height:.8;margin:.07em .12em 0 0;color:var(--red)}
@media (max-width:860px){.copy{grid-template-columns:minmax(0,1fr)}.copy-head{position:static}}

/* ============================================================ CARDS + GRID */
.grid{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,255px),1fr))}
.grid--four{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
.card{position:relative;background:var(--paper);border:var(--line);display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.card:hover,.card:focus-visible{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.art{position:relative;aspect-ratio:3/4.05;overflow:hidden;border-bottom:var(--line);background:linear-gradient(var(--ga,140deg),var(--c1,#ffffff) 0%,var(--c2,#ffd9e0) 100%)}
.art::after{content:"";position:absolute;inset:-20% -35%;background:linear-gradient(115deg,transparent 42%,rgba(228,0,43,.10) 46%,rgba(228,0,43,.10) 54%,transparent 58%);transform:translateX(-130%);transition:transform .55s var(--ease)}
.card:hover .art::after{transform:translateX(130%)}
.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.card:hover .ph{transform:scale(1.045)}
.ph--alt{opacity:0;transition:opacity .4s var(--ease),transform .5s var(--ease)}
.card:hover .ph--alt.ok,.card:focus-within .ph--alt.ok,.card:focus .ph--alt.ok{opacity:1}
.xs{position:absolute;display:flex;gap:7px;color:var(--red)}
.xs .x{width:15px;height:15px;filter:drop-shadow(1px 1px 0 rgba(255,255,255,.55))}
.art--a .xs{top:14px;right:14px;flex-direction:column}
.art--b .xs{bottom:14px;right:14px}
.art--c .xs{bottom:14px;left:14px}
.tag{position:absolute;top:12px;left:12px;z-index:2;max-width:calc(100% - 24px);background:var(--red);color:#fff;font-weight:800;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:.5em .75em;box-shadow:3px 3px 0 var(--ink)}
.meta{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.45rem}
.meta h3{font-family:var(--disp);font-weight:800;font-size:1.65rem;line-height:1;letter-spacing:.04em;text-transform:uppercase;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}
.meta h3 span{color:var(--red);font-size:.72em}
.loc{display:flex;align-items:center;gap:.5em;font-size:.85rem;color:var(--grey)}
.loc .x{color:var(--red);width:.7em;height:.7em}
.meta .row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.35rem;padding-top:.75rem;border-top:1px solid rgba(17,17,17,.14)}
.price{font-weight:800;font-size:.95rem;letter-spacing:.02em}
.price em{font-style:normal;font-weight:600;color:var(--grey);font-size:.85em}
.roster-note{margin-top:2.6rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem}
.roster-note p{font-size:.92rem;color:var(--grey);max-width:52ch}
@media (max-width:430px){.grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- district filter ---------- */
.filters{margin-bottom:2.2rem}
.chips{display:flex;flex-wrap:wrap;gap:.9rem}
.chip{display:flex;max-width:100%;border:var(--line);background:var(--paper);box-shadow:4px 4px 0 var(--ink);transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s}
.chip:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.chip-btn{display:flex;align-items:center;gap:.6em;min-width:0;padding:.75em 1em;border:0;background:none;color:var(--ink);cursor:pointer;font-family:var(--body);font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;text-align:left}
.chip-btn b{font-family:var(--disp);font-weight:900;font-size:1.2rem;letter-spacing:.02em;color:var(--red)}
.chip-go{display:flex;align-items:center;padding:0 .85em;border-left:var(--line);text-decoration:none;font-weight:800;transition:background .18s,color .18s}
.chip-go:hover{background:var(--ink);color:#fff}
.chip.is-on{background:var(--red)}
.chip.is-on .chip-btn,.chip.is-on .chip-btn b,.chip.is-on .chip-go{color:#fff}
.filters-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 2rem;margin-top:1.4rem;font-size:.9rem;color:var(--grey)}
.filters-travel{display:flex;flex-wrap:wrap;align-items:center;gap:.35em .5em}
.filters-travel .x{color:var(--red);width:.7em;height:.7em}
.filters-travel a{font-weight:700;color:var(--ink);text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px}
.filters-count b{display:inline-block;font-family:var(--disp);font-weight:900;font-size:1.45rem;color:var(--ink)}
.filters-count b.flip{animation:flip .35s var(--ease)}
@keyframes flip{from{opacity:0;transform:translateY(-45%)}to{opacity:1;transform:none}}

/* ============================================================ TICKER */
.tick{overflow:hidden;border-bottom:var(--line);background:var(--paper)}
.tick-track{display:flex;width:max-content;animation:tick 30s linear infinite}
.tick ul{display:flex;align-items:center;gap:2.2rem;padding:.85rem 1.1rem;font-family:var(--disp);font-weight:700;font-size:1.25rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.tick .x{color:var(--red);width:.8em;height:.8em}
@keyframes tick{to{transform:translateX(-50%)}}
.tick:hover .tick-track{animation-play-state:paused}

/* ============================================================ RATES */
.rates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.ratebig{position:relative;border:var(--line);padding:2rem 2rem 2.2rem;background:var(--paper);box-shadow:var(--shadow)}
.ratebig .from{font-weight:800;font-size:.85rem;letter-spacing:.28em;text-transform:uppercase;color:var(--red)}
.ratebig .eur{font-family:var(--disp);font-weight:900;line-height:.9;font-size:clamp(5rem,13vw,9.5rem);letter-spacing:.01em}
.ratebig .per{font-family:var(--disp);font-weight:700;font-size:1.4rem;letter-spacing:.14em;text-transform:uppercase}
.ratebig .xxx{position:absolute;top:1.4rem;right:1.4rem;font-size:.85rem}
.ratebig-note{margin-top:1.4rem;padding-top:1rem;border-top:1px solid rgba(17,17,17,.14);font-size:.92rem;color:var(--grey)}
.rate-rows{display:flex;flex-direction:column}
.rate-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1.4rem;padding:1.15rem 0;border-top:var(--line);text-decoration:none;color:inherit}
.rate-rows .rate-row:last-child{border-bottom:var(--line)}
.rate-l{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.rate-row b{font-family:var(--disp);font-weight:800;font-size:1.55rem;line-height:1.05;letter-spacing:.05em;text-transform:uppercase}
.rate-row small{font-size:.88rem;color:var(--grey)}
.rate-row>span{font-weight:700;font-size:.95rem;color:var(--grey);text-align:right}
.rate-row>span.hot{color:var(--red)}
.rate-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.8rem}
.rate-rows--links{max-width:860px}
a.rate-row{transition:padding .2s var(--ease),color .2s}
a.rate-row:hover{padding-left:.8rem;color:var(--red)}
a.rate-row:hover>span{color:var(--red)}
@media (max-width:900px){.rates{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.rate-row>span{text-align:left}.ratebig{padding:1.6rem 1.3rem 1.8rem}}

/* ============================================================ STEPS */
.steps{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.step{background:var(--paper);border:var(--line);padding:2rem 1.7rem 2.1rem;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.step:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.step .num{display:block;font-family:var(--disp);font-weight:900;font-size:clamp(3.6rem,6vw,5rem);line-height:1;color:var(--red);margin-bottom:1rem}
.step h3{font-family:var(--disp);font-weight:800;font-size:1.75rem;line-height:1;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.8rem}
.step p{font-size:.95rem;color:var(--grey)}

/* ============================================================ FAQ */
.faq-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:clamp(2rem,5vw,4rem);align-items:start}
.faq{max-width:860px;min-width:0}
.faq details{border-top:var(--line)}
.faq details:last-of-type{border-bottom:var(--line)}
.faq summary{display:flex;align-items:center;gap:1.2rem;padding:1.35rem 0;cursor:pointer;list-style:none;font-family:var(--disp);font-weight:700;font-size:clamp(1.25rem,2.6vw,1.7rem);letter-spacing:.04em;text-transform:uppercase;line-height:1.1}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red)}
.faq-n{flex:none;min-width:2ch;font-family:var(--body);font-weight:800;font-size:.75rem;letter-spacing:.14em;color:var(--red)}
.faq-q{flex:1;min-width:0}
.faq .plus{flex:none;position:relative;width:1.6rem;height:1.6rem;color:var(--red);transition:transform .25s var(--ease)}
.faq .plus::before,.faq .plus::after{content:"";position:absolute;inset:0;margin:auto;background:currentColor}
.faq .plus::before{width:100%;height:3px}
.faq .plus::after{width:3px;height:100%}
.faq details[open] .plus{transform:rotate(45deg)}
.faq-a{padding:0 0 1.5rem calc(2ch + 1.4rem)}
.faq-a p{max-width:68ch;color:var(--grey)}
.faq--solo{max-width:900px}
.faq-side{position:sticky;top:104px}
.faq-card{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;border:var(--line);background:var(--paper-2);padding:1.8rem 1.6rem;box-shadow:var(--shadow)}
.faq-card-big{font-family:var(--disp);font-weight:900;font-size:2.6rem;line-height:.95;text-transform:uppercase}
.faq-card p:not(.faq-card-big){font-size:.95rem;color:var(--grey)}
@media (max-width:900px){.faq-wrap{grid-template-columns:minmax(0,1fr)}.faq-side{position:static}}
@media (max-width:520px){.faq-a{padding-left:0}}

/* ============================================================ AREAS */
.areas{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
.areas>li{display:flex;min-width:0}
.area{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem;border:2px solid #fff;padding:1.45rem 3rem 1.5rem 1.3rem;color:#fff;text-decoration:none;transition:background .2s,transform .2s var(--ease),box-shadow .2s var(--ease)}
.area b{font-family:var(--disp);font-weight:800;font-size:1.6rem;line-height:1;letter-spacing:.05em;text-transform:uppercase}
.area span{font-size:.82rem;color:var(--grey-2)}
.area:hover,.area:focus-visible{background:var(--red);transform:translate(-3px,-3px);box-shadow:6px 6px 0 #fff}
.area:hover span{color:#ffd0da}
.area.is-current{background:#fff;color:var(--ink)}
.area-go{position:absolute;top:1.25rem;right:1.1rem;color:var(--red);font-size:.9rem;line-height:1;transition:transform .3s var(--ease),color .2s}
.area:hover .area-go{color:#fff;transform:rotate(90deg)}
.area-count{margin-top:.6rem;font-style:normal;font-family:var(--disp);font-weight:800;font-size:1rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.area:hover .area-count{color:#fff}
.area-faces{display:flex;margin-top:.9rem}
.area-faces img{width:46px;height:58px;object-fit:cover;border:2px solid #fff;margin-right:-10px;background:#222}
.sec-areas--hub .areas{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}

/* ============================================================ FINAL CTA */
.final{position:relative;overflow:clip}
.final .wrap{position:relative}
.final .big{position:relative;font-family:var(--disp);font-weight:900;text-transform:uppercase;line-height:.9;font-size:clamp(2.9rem,9vw,7.4rem);margin:1.2rem 0 1.6rem}
.final .big .stroke::after{bottom:.03em}
.final-text{max-width:56ch;margin-bottom:2.2rem;font-size:clamp(1rem,1.4vw,1.15rem);color:var(--grey-2)}
.final-ctas{display:flex;flex-wrap:wrap;gap:1.1rem}
.final .sub{display:flex;flex-wrap:wrap;align-items:center;gap:.8em 1.1em;margin-top:2.2rem;font-family:var(--disp);font-weight:700;font-size:1.05rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-2)}
.final .sub .x{color:var(--red);width:.75em;height:.75em}
.final .ghost-xxx{position:absolute;right:-4%;top:50%;transform:translateY(-50%);display:flex;gap:1.6rem;pointer-events:none}
.final .ghost-xxx .x{width:clamp(90px,16vw,220px);height:clamp(90px,16vw,220px);color:rgba(255,255,255,.06)}
.final-pro{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.final-pro-photo{max-width:420px;aspect-ratio:3/4;overflow:hidden;border:2px solid #fff;box-shadow:10px 10px 0 var(--red)}
.final-pro-photo img{display:block;width:100%;height:100%;object-fit:cover}
.final-pro-copy{min-width:0}
.final--pro .big{font-size:clamp(2.7rem,7vw,6rem)}
@media (max-width:820px){.final-pro{grid-template-columns:minmax(0,1fr)}.final-pro-photo{max-width:240px}}
@media (max-width:430px){.final-ctas .btn,.hero-ctas .btn,.pro-ctas .btn,.rate-cta .btn,.roster-note .btn,.related-links .btn{width:100%}}

/* ============================================================ PROFILE */
.pro{position:relative;overflow:clip;border-bottom:var(--line);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath d='M18 18l20 20M38 18L18 38' stroke='%23111111' stroke-opacity='.05' stroke-width='6'/%3E%3C/svg%3E"),var(--paper);padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(3rem,6vw,5rem)}
.pro-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.pro-photo{position:relative;margin:0;min-width:0}
.pro-frame{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border:var(--line);background:linear-gradient(140deg,#ffffff,#ffd6de);box-shadow:12px 12px 0 var(--ink);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.pro-frame:hover{transform:translate(-4px,-4px);box-shadow:16px 16px 0 var(--ink)}
.pro-img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.pro-frame:hover .pro-img{transform:scale(1.03)}
.pro-frame .xs{top:16px;right:16px;flex-direction:column}
.pro-photo .tag{top:16px;left:16px}
.pro-cap{display:flex;align-items:center;gap:.6em;margin-top:1.4rem;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--grey)}
.pro-cap .x{color:var(--red);width:.75em;height:.75em}
.pro-info{min-width:0}
.pro h1{font-size:clamp(2.5rem,5.4vw,4.8rem)}
.pro-tagline{margin-bottom:1.8rem}
.facts{margin-bottom:2rem;border:var(--line);background:var(--paper);box-shadow:var(--shadow)}
.facts-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.1rem;background:var(--ink);color:#fff;font-family:var(--disp);font-weight:800;font-size:1.1rem;letter-spacing:.14em;text-transform:uppercase}
.facts-head .xxx{order:2;font-size:.7rem}
.facts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.facts-row{min-width:0;padding:.8rem 1.1rem;border-top:1px solid rgba(17,17,17,.14)}
.facts-row:nth-child(-n+2){border-top:0}
.facts-row:nth-child(even){border-left:1px solid rgba(17,17,17,.14)}
.facts-row dt{margin-bottom:.15rem;font-weight:800;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.facts-row dd{font-weight:600;font-size:.95rem;line-height:1.35}
.facts-row dd a{text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px}
.facts-row dd a:hover{color:var(--red)}
.pro-ctas{display:flex;flex-wrap:wrap;gap:1rem}
@media (max-width:900px){.pro-grid{grid-template-columns:minmax(0,1fr)}.pro-photo{max-width:520px}}
@media (max-width:480px){.facts-list{grid-template-columns:minmax(0,1fr)}.facts-row:nth-child(2){border-top:1px solid rgba(17,17,17,.14)}.facts-row:nth-child(even){border-left:0}.pro-frame{box-shadow:8px 8px 0 var(--ink)}}

.shots{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.shots--few{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.shot{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;border:var(--line);background:var(--paper-2);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.shot:hover,.shot:focus-visible{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.shot:hover img{transform:scale(1.045)}
.shot-n{position:absolute;top:10px;left:10px;padding:.45em .65em;background:var(--ink);color:#fff;font-weight:800;font-size:.7rem;letter-spacing:.12em}
.shot-open{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:.5em;padding:.7em;background:var(--red);color:#fff;font-weight:800;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;transform:translateY(101%);transition:transform .25s var(--ease)}
.shot-open .x{width:.8em;height:.8em}
.shot:hover .shot-open,.shot:focus-visible .shot-open{transform:none}
@media (hover:none){.shot-open{transform:none}}

.notes{margin-top:2rem;padding:1.4rem 1.4rem 1.5rem;border:var(--line);background:var(--paper);box-shadow:6px 6px 0 var(--red)}
.notes-head{margin-bottom:.9rem;font-weight:800;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.notes-list{display:grid;gap:.7rem}
.notes-list li{display:flex;align-items:baseline;gap:.7rem;font-weight:600;line-height:1.4}
.notes-list .x{flex:none;width:.7em;height:.7em;color:var(--red)}
.related-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}
.relx{display:grid;gap:2rem;margin-top:3rem;padding-top:2.4rem;border-top:var(--line)}

.pn{border-top:var(--line);background:var(--paper-2)}
.pn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;padding:2.4rem 0}
.pn-link{display:flex;align-items:center;gap:1.2rem;min-width:0;padding:.8rem;border:var(--line);background:var(--paper);text-decoration:none;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.pn-link:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.pn-link--next{flex-direction:row-reverse;text-align:right}
.pn-img{flex:none;width:72px;height:96px;object-fit:cover;border:var(--line)}
.pn-t{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.pn-t small{font-weight:800;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.pn-t b{font-family:var(--disp);font-weight:900;font-size:2rem;line-height:1;text-transform:uppercase}
.pn-t em{font-style:normal;font-size:.85rem;color:var(--grey)}
@media (max-width:560px){.pn-grid{grid-template-columns:minmax(0,1fr)}.pn-t b{font-size:1.6rem}}

/* ============================================================ PHOTO VIEWER */
.lb{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:rgba(17,17,17,.97);color:#fff}
.lb-top{display:flex;align-items:center;gap:1rem;padding:.9rem clamp(1rem,3vw,2rem);border-bottom:2px solid rgba(255,255,255,.18)}
.lb-count{font-family:var(--disp);font-weight:800;font-size:1.3rem;letter-spacing:.1em}
.lb-count b{color:var(--red)}
.lb-cap{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;color:var(--grey-2)}
.lb-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:2px solid #fff;background:var(--red);color:#fff;cursor:pointer;box-shadow:4px 4px 0 #fff;transition:transform .2s var(--ease)}
.lb-close:hover{transform:rotate(90deg)}
.lb-close .x{width:18px;height:18px}
.lb-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem}
.lb-fig{flex:1;min-width:0;height:100%;display:flex;align-items:center;justify-content:center;margin:0}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border:2px solid #fff}
.lb-img.in{animation:lbIn .35s var(--ease)}
@keyframes lbIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.lb-arrow{flex:none;width:54px;height:54px;border:2px solid #fff;background:transparent;color:#fff;font-size:1.5rem;font-weight:800;cursor:pointer;transition:background .18s,transform .18s var(--ease),box-shadow .18s var(--ease)}
.lb-arrow:hover{background:var(--red);transform:translate(-2px,-2px);box-shadow:4px 4px 0 #fff}
.lb-strip{display:flex;justify-content:center;gap:6px;padding:.4rem}
.lb-strip i{width:22px;height:4px;background:rgba(255,255,255,.25)}
.lb-strip i.on{background:var(--red)}
.lb-hint{padding:.3rem 0 1rem;text-align:center;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-2)}
.lb--one .lb-arrow,.lb--one .lb-strip{display:none}
@media (max-width:640px){.lb-stage{padding:.5rem}.lb-arrow{position:absolute;bottom:.8rem;width:46px;height:46px;background:rgba(17,17,17,.75)}.lb-arrow--l{left:.8rem}.lb-arrow--r{right:.8rem}}

/* ============================================================ FOOTER */
.foot{border-top:var(--line);background:var(--paper)}
.foot a{text-decoration:none}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:2.5rem;padding:3.5rem 0 2.5rem}
.foot-grid h4,.foot-more h4{margin-bottom:1rem;font-family:var(--disp);font-weight:800;font-size:1.15rem;letter-spacing:.12em;text-transform:uppercase}
.foot-grid p,.foot-grid li,.foot-more li{font-size:.9rem;color:var(--grey)}
.foot-grid ul,.foot-more ul{display:flex;flex-direction:column;gap:.45rem}
.foot-grid a:hover,.foot-more a:hover{color:var(--red)}
.foot-grid small{font-size:.76rem;color:var(--grey-2)}
.foot-brand .logo{margin-bottom:1rem}
.foot-brand p{max-width:44ch}
.foot-contact{margin-top:1.2rem}
.foot-contact a{display:inline-flex;align-items:center;gap:.5em;font-weight:700;color:var(--ink)}
.foot-contact .x{color:var(--red)}
.foot-more{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2.5rem;padding:2.2rem 0;border-top:1px solid rgba(17,17,17,.15)}
.foot-more .foot-cols{display:block;columns:2 14rem;column-gap:2rem}
.foot-more .foot-cols li{break-inside:avoid;margin-bottom:.45rem}
.legal{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;padding:1.4rem 0 2rem;border-top:1px solid rgba(17,17,17,.15);font-size:.82rem;color:var(--grey)}
.badge21{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:var(--line);font-family:var(--disp);font-weight:900;font-size:1rem;color:var(--red)}
@media (max-width:1000px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}
@media (max-width:560px){.foot-grid,.foot-more{grid-template-columns:minmax(0,1fr)}}

/* ============================================================ 404 */
.nf-code{display:flex;align-items:center;margin-bottom:1rem;font-family:var(--disp);font-weight:900;font-size:clamp(6rem,20vw,13rem);line-height:.85}
.nf-code span{display:inline-flex;margin:0 .04em;color:var(--red)}
.nf-code .x{width:.72em;height:.72em;animation:spinx 8s linear infinite}
@keyframes spinx{to{transform:rotate(360deg)}}

/* ============================================================ LINK LISTS (guides, services, types) */
.list-label{display:flex;align-items:center;gap:.5em;margin:0 0 .9rem;font-weight:800;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.list-label .x{width:.7em;height:.7em}
.toc{margin:.4rem 0 1rem;border-top:var(--line)}
.toc li{border-bottom:1px solid rgba(17,17,17,.14)}
.prose .toc a,.toc a{display:flex;align-items:baseline;gap:1rem;padding:.75rem 0;text-decoration:none;font-weight:700}
.toc a:hover{color:var(--red)}
.toc-n{font-weight:800;font-size:.75rem;letter-spacing:.12em;color:var(--red)}
.tagchips{display:flex;flex-wrap:wrap;gap:.7rem;margin:.2rem 0 1rem}
.prose .tagchips a,.tagchips a{display:inline-block;padding:.5em .9em;border:var(--line);background:var(--paper);box-shadow:3px 3px 0 var(--ink);font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s}
.tagchips a:hover{background:var(--red);color:#fff;transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.linkcards{display:grid;gap:1.2rem;margin:.4rem 0 1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.linkcards>li{display:flex;min-width:0}
.prose .linkcard,.linkcard{flex:1;display:flex;flex-direction:column;gap:.5rem;padding:1.2rem 1.2rem 1.3rem;border:var(--line);background:var(--paper);color:inherit;text-decoration:none;font-weight:inherit;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.linkcard:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.linkcard-meta{font-weight:800;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.linkcard-t{font-family:var(--disp);font-weight:800;font-size:1.5rem;line-height:1.05;letter-spacing:.03em;text-transform:uppercase}
.linkcard-ex{font-size:.92rem;line-height:1.5;color:var(--grey)}
.linkcard .mini{margin-top:auto;align-self:flex-start}
.prose .v2x-bullets{display:grid;gap:.6rem;margin:1.1em 0;padding:0;list-style:none}
.prose .v2x-bullets li{position:relative;display:block;margin:0;padding-left:1.5em}
.prose .v2x-bullets li::before{content:"";position:absolute;left:0;top:.45em;width:.7em;height:.7em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 4.5 19.5 19.5M19.5 4.5 4.5 19.5' stroke='%23E4002B' stroke-width='4.6' stroke-linecap='square' fill='none'/%3E%3C/svg%3E") center / contain no-repeat}

/* ============================================================ V2 SHARED */
.gd-prose a,.gd-stand a,.gd-tip a,.typ-where a{color:inherit;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px;font-weight:600}
.gd-prose a:hover,.gd-stand a:hover,.gd-tip a:hover,.typ-where a:hover{color:var(--red)}
.pins,.gd-tip{margin-top:1.8rem;padding:1.3rem 1.4rem 1.4rem;border:var(--line);background:var(--paper);box-shadow:6px 6px 0 var(--red)}
.gd-tip{background:var(--paper-2)}
.pins-head{display:flex;align-items:center;gap:.8rem;margin:0 0 .95rem;font-weight:800;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.pins-head .xxx{font-size:.6rem}
.pins-list{display:grid;gap:.75rem}
.pins-list li{position:relative;padding-left:1.7em;font-size:1rem;font-weight:500;line-height:1.55;color:var(--ink)}
.pins-list li::before{content:"";position:absolute;left:0;top:.42em;width:.78em;height:.78em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 4.5 19.5 19.5M19.5 4.5 4.5 19.5' stroke='%23E4002B' stroke-width='4.6' stroke-linecap='square' fill='none'/%3E%3C/svg%3E") center / contain no-repeat}
.faces{display:flex;flex:none;padding-right:10px}
.faces img{display:block;width:40px;height:52px;object-fit:cover;border:2px solid var(--ink);margin-right:-10px;background:var(--paper-2)}
.gd-lead:hover .mini,.typ-tile:hover .mini,.gd-card:hover .mini{background-size:100% 2px}
.phero--service h1,.phero--category h1{font-size:clamp(2.5rem,6vw,5.6rem)}

/* ============================================================ SERVICES HUB */
.svc-board{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
.svc-board>li{display:flex;min-width:0}
.svc-tile{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:.55rem;padding:1.6rem 1.5rem 1.3rem;border:var(--line);background:var(--paper);color:inherit;text-decoration:none;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.svc-tile:hover,.svc-tile:focus-visible{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.svc-tile-n{font-family:var(--disp);font-weight:900;font-size:clamp(3rem,5vw,4.2rem);line-height:.9;color:var(--red)}
.svc-tile-type{font-weight:800;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}
.svc-tile h3{font-family:var(--disp);font-weight:900;font-size:clamp(1.8rem,3vw,2.35rem);line-height:.95;letter-spacing:.02em;text-transform:uppercase}
.svc-tile-ex{font-size:.94rem;line-height:1.55;color:var(--grey)}
.svc-tile-foot{display:flex;align-items:center;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid rgba(17,17,17,.14)}
.svc-tile-foot em{font-style:normal;font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.svc-go{margin-left:auto;color:var(--red);font-size:.95rem;line-height:1;transition:transform .3s var(--ease)}
.svc-tile:hover .svc-go{transform:rotate(90deg)}

/* ============================================================ SERVICE */
.svc-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.svc-card{min-width:0;border:var(--line);background:var(--paper);box-shadow:var(--shadow)}
.svc-dl>div{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:baseline;gap:1rem;padding:.8rem 1.1rem;border-top:1px solid rgba(17,17,17,.14)}
.svc-dl>div:first-child{border-top:0}
.svc-dl dt{font-weight:800;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.svc-dl dd{font-weight:600;font-size:.93rem;line-height:1.35;text-align:right}
.svc-card-faces{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem;border-top:var(--line);background:var(--paper-2);color:var(--red);text-decoration:none;font-weight:800;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;transition:background .18s,color .18s}
.svc-card-faces:hover{background:var(--red);color:#fff}
.rail{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.rail>li{display:flex;min-width:0}
.rail-link{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:1.1rem;padding:1.1rem 3rem 1.1rem 1.2rem;border:var(--line);background:var(--paper);color:inherit;text-decoration:none;transition:background .2s,color .2s,transform .2s var(--ease),box-shadow .2s var(--ease)}
.rail-link:hover,.rail-link:focus-visible{background:var(--ink);color:#fff;transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--red)}
.rail-n{flex:none;font-family:var(--disp);font-weight:900;font-size:2.3rem;line-height:1;color:var(--red)}
.rail-t{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.rail-t b{font-family:var(--disp);font-weight:800;font-size:1.5rem;line-height:1;letter-spacing:.04em;text-transform:uppercase}
.rail-t small{font-size:.8rem;color:var(--grey)}
.rail-link:hover small{color:var(--grey-2)}
.rail-go{position:absolute;top:50%;right:1.1rem;margin-top:-.5em;color:var(--red);font-size:.9rem;line-height:1;transition:transform .3s var(--ease)}
.rail-link:hover .rail-go{transform:rotate(90deg)}
@media (max-width:900px){.svc-hero{grid-template-columns:minmax(0,1fr)}.svc-card{max-width:520px}}
@media (max-width:400px){.svc-dl>div{grid-template-columns:minmax(0,1fr);gap:.15rem}.svc-dl dd{text-align:left}}

/* ============================================================ TYPES HUB + TYPE */
.typ-board{display:grid;gap:clamp(2.2rem,4vw,3.2rem)}
.typ-grid{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.typ-grid>li{display:flex;min-width:0}
.typ-tile{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem;padding:1.3rem 1.3rem 1.25rem;border:var(--line);background:var(--paper);color:inherit;text-decoration:none;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.typ-tile:hover,.typ-tile:focus-visible{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.typ-tile .faces{margin-bottom:.3rem}
.typ-count{position:absolute;top:1rem;right:1.1rem;font-family:var(--disp);font-weight:900;font-size:2.5rem;line-height:1;color:var(--red)}
.typ-tile h3{font-family:var(--disp);font-weight:900;font-size:1.8rem;line-height:1;letter-spacing:.03em;text-transform:uppercase}
.typ-ex{font-size:.92rem;line-height:1.5;color:var(--grey)}
.typ-tile .mini{margin-top:auto;align-self:flex-start}
.typ-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.typ-mosaic{position:relative;display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:8px;padding:8px;border:var(--line);background:var(--ink);box-shadow:10px 10px 0 var(--red)}
.typ-mosaic img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.typ-mosaic .xs{top:18px;right:18px;flex-direction:column}
.typ-where{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:-1rem 0 2rem;font-size:.9rem;color:var(--grey)}
.typ-where>.x{color:var(--red);width:.7em;height:.7em}
.typ-where>span{font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.typ-where a{display:inline-flex;align-items:baseline;gap:.35em;color:var(--ink)}
.typ-where a b{font-family:var(--disp);font-weight:900;color:var(--red)}
.sibs{display:grid;gap:1.8rem}
.sib-list{display:flex;flex-wrap:wrap;gap:.8rem}
.sib-list>li{display:flex;max-width:100%}
.sib{display:inline-flex;align-items:stretch;max-width:100%;border:var(--line);background:var(--paper);box-shadow:4px 4px 0 var(--ink);color:inherit;text-decoration:none;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s,color .18s}
.sib b{min-width:0;padding:.72em 1em;font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.sib em{display:flex;align-items:center;padding:0 .8em;border-left:var(--line);font-style:normal;font-family:var(--disp);font-weight:900;font-size:1.2rem;color:var(--red)}
.sib:hover,.sib:focus-visible{background:var(--red);color:#fff;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.sib:hover em{color:#fff}
@media (max-width:820px){.typ-hero{grid-template-columns:minmax(0,1fr)}.typ-mosaic{grid-template-columns:repeat(var(--mcols,4),minmax(0,1fr));max-width:420px;box-shadow:6px 6px 0 var(--red)}.typ-mosaic .xs{display:none}}

/* ============================================================ CITY GUIDE HUB */
.gd-lead{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);margin-bottom:2.4rem;border:var(--line);background:var(--paper);color:inherit;text-decoration:none;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.gd-lead:hover,.gd-lead:focus-visible{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.gd-lead--plain{grid-template-columns:minmax(0,1fr)}
.gd-lead-img{position:relative;display:block;min-height:340px;overflow:hidden;border-right:var(--line);background:linear-gradient(140deg,#ffffff,#ffd6de)}
.gd-lead-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;transition:transform .5s var(--ease)}
.gd-lead:hover .gd-lead-img img{transform:scale(1.04)}
.gd-lead-img .xs{top:16px;right:16px;flex-direction:column}
.gd-lead-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1.1rem;min-width:0;padding:clamp(1.6rem,4vw,3.2rem)}
.gd-flagline{display:flex;flex-wrap:wrap;align-items:center;gap:.6em;font-weight:800;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.gd-flagline .x{width:.65em;height:.65em}
.gd-lead-copy h3{font-family:var(--disp);font-weight:900;font-size:clamp(2rem,4vw,3.4rem);line-height:.95;text-transform:uppercase}
.gd-lead-ex{max-width:52ch;font-size:1rem;line-height:1.6;color:var(--grey)}
.gd-index{border-top:var(--line)}
.gd-index>li{border-bottom:var(--line)}
.gd-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,3vw,2.2rem);padding:1.4rem 0;color:inherit;text-decoration:none;transition:padding .2s var(--ease),background .2s}
.gd-row:hover,.gd-row:focus-visible{padding-inline:.9rem;background:var(--paper-2)}
.gd-row-n{min-width:2ch;font-family:var(--disp);font-weight:900;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;color:var(--red)}
.gd-row-copy{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.gd-row-copy small{font-weight:800;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.gd-row-copy b{font-family:var(--disp);font-weight:800;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1;letter-spacing:.03em;text-transform:uppercase;transition:color .2s}
.gd-row:hover b{color:var(--red)}
.gd-row-copy>span{max-width:70ch;font-size:.94rem;line-height:1.55;color:var(--grey)}
.gd-row-img{display:block;width:96px;height:120px;object-fit:cover;border:var(--line)}
@media (max-width:820px){.gd-lead{grid-template-columns:minmax(0,1fr)}.gd-lead-img{min-height:0;aspect-ratio:4/3;border-right:0;border-bottom:var(--line)}}
@media (max-width:600px){.gd-row{grid-template-columns:auto minmax(0,1fr)}.gd-row-img{display:none}}

/* ============================================================ CITY GUIDE ARTICLE */
.gd-progress{position:fixed;top:0;left:0;right:0;z-index:70;height:4px;pointer-events:none}
.gd-progress i{display:block;height:100%;background:var(--red);transform:scaleX(0);transform-origin:0 50%}
.gd-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.gd-hero--flag{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.phero--guide h1{font-size:clamp(2.4rem,5.6vw,5.1rem)}
.gd-stand{max-width:60ch;margin-bottom:1.8rem;padding-left:1.1rem;border-left:4px solid var(--red);font-size:clamp(1.08rem,1.6vw,1.3rem);line-height:1.5;color:#2b2b2b}
.gd-meta{display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;font-family:var(--disp);font-weight:700;font-size:1.05rem;letter-spacing:.09em;text-transform:uppercase}
.gd-meta li{display:flex;align-items:center;gap:.55em}
.gd-meta .x{color:var(--red);width:.75em;height:.75em}
.gd-photo{position:relative;margin:0;aspect-ratio:4/5;overflow:hidden;border:var(--line);background:linear-gradient(140deg,#ffffff,#ffd6de);box-shadow:12px 12px 0 var(--ink)}
.gd-photo-img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.gd-photo .xs{top:16px;right:16px;flex-direction:column}
.gd-body{padding:clamp(3rem,6vw,5.5rem) 0 clamp(3.5rem,7vw,6rem)}
.gd-grid{display:grid;grid-template-columns:minmax(0,290px) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.gd-aside{position:sticky;top:96px;display:grid;gap:1.4rem;max-height:calc(100vh - 116px);overflow-y:auto;padding:0 10px 10px 0}
.gd-toc{border:var(--line);background:var(--paper);box-shadow:6px 6px 0 var(--ink)}
.gd-toc-head{display:flex;align-items:center;gap:.8rem;padding:.75rem 1rem;background:var(--ink);color:#fff;font-family:var(--disp);font-weight:800;font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase}
.gd-toc-head .xxx{font-size:.6rem}
.gd-toc-list li+li{border-top:1px solid rgba(17,17,17,.14)}
.gd-toc-list a{display:flex;align-items:baseline;gap:.8rem;padding:.7rem 1rem;color:inherit;text-decoration:none;font-weight:600;font-size:.9rem;line-height:1.35;transition:background .18s,color .18s,box-shadow .18s}
.gd-toc-list a:hover{color:var(--red)}
.gd-toc-list a.is-on{background:var(--paper-2);color:var(--red);box-shadow:inset 4px 0 0 var(--red)}
.gd-toc-n{flex:none;font-weight:800;font-size:.7rem;letter-spacing:.12em;color:var(--red)}
.gd-toc-foot{padding:.6rem 1rem;border-top:var(--line);font-weight:800;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.gd-aside-card{display:grid;gap:.9rem;padding:1.1rem 1rem 1.2rem;border:var(--line);background:var(--paper-2)}
.gd-aside-card p{font-family:var(--disp);font-weight:800;font-size:1.4rem;line-height:1;text-transform:uppercase}
.gd-aside-card .btn{width:100%;padding:.85em 1em;box-shadow:4px 4px 0 var(--ink)}
.gd-article{min-width:0;max-width:70ch}
.gd-sec+.gd-sec,.gd-note+.gd-sec{margin-top:clamp(2.8rem,5vw,4rem)}
.gd-sec-n{display:flex;align-items:center;gap:.65em;margin-bottom:.8rem;font-weight:800;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.gd-sec-n span{color:var(--ink);letter-spacing:.1em}
.gd-sec-n::after{content:"";width:2.6rem;height:2px;background:currentColor}
.gd-sec h2{font-size:clamp(1.9rem,3.8vw,2.9rem);line-height:.98;margin-bottom:1.2rem}
.gd-prose{font-size:clamp(1.02rem,1.25vw,1.12rem);line-height:1.75;color:#2b2b2b}
.gd-prose p+p{margin-top:1.15em}
.gd-prose--first>p:first-child::first-letter{float:left;font-family:var(--disp);font-weight:900;font-size:3.9em;line-height:.8;margin:.07em .12em 0 0;color:var(--red)}
.gd-note{position:relative;overflow:hidden;margin-top:clamp(2.8rem,5vw,4rem);padding:1.8rem 1.6rem 1.9rem;border:var(--line);background:var(--ink);color:#fff}
.gd-note-x{position:absolute;right:-1.4rem;bottom:-2.2rem;color:rgba(255,255,255,.07);pointer-events:none}
.gd-note-x .x{width:9rem;height:9rem}
.gd-note-big{position:relative;margin-bottom:.9rem;font-family:var(--disp);font-weight:900;font-size:clamp(1.9rem,3.6vw,2.6rem);line-height:.95;text-transform:uppercase}
.gd-note-t{position:relative;max-width:52ch;margin-bottom:1.4rem;color:var(--grey-2)}
.gd-note-cta{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem}
.gd-note .btn{border-color:#fff;box-shadow:5px 5px 0 rgba(255,255,255,.95)}
.gd-note .btn:hover{box-shadow:8px 8px 0 rgba(255,255,255,.95)}
.gd-note .mini{color:#fff}
.gd-body+.sec-faq{border-top:var(--line)}
.gd-cards{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.gd-cards>li{display:flex;min-width:0}
.gd-card{flex:1;min-width:0;display:flex;flex-direction:column;border:var(--line);background:var(--paper);color:inherit;text-decoration:none;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.gd-card:hover,.gd-card:focus-visible{transform:translate(-4px,-4px);box-shadow:var(--shadow)}
.gd-card-img{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;border-bottom:var(--line);background:linear-gradient(140deg,#ffffff,#ffd6de)}
.gd-card-img img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 22%;transition:transform .5s var(--ease)}
.gd-card:hover .gd-card-img img{transform:scale(1.045)}
.gd-card-img--x{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--red)}
.gd-card-img--x .x{width:2rem;height:2rem}
.gd-card-body{flex:1;display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1.2rem 1.3rem}
.gd-card-body small{font-weight:800;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.gd-card-body b{font-family:var(--disp);font-weight:800;font-size:1.6rem;line-height:1;letter-spacing:.03em;text-transform:uppercase}
.gd-card-ex{font-size:.92rem;line-height:1.5;color:var(--grey)}
.gd-card .mini{margin-top:auto;align-self:flex-start}
@media (max-width:960px){.gd-grid{grid-template-columns:minmax(0,1fr)}.gd-aside{position:static;max-height:none;overflow:visible;padding:0}.gd-aside-card{display:none}}
@media (max-width:900px){.gd-hero{grid-template-columns:minmax(0,1fr)}.gd-photo{max-width:420px;aspect-ratio:5/4;box-shadow:8px 8px 0 var(--ink)}}
@media (max-width:430px){.gd-note-cta .btn,.svc-hero .hero-ctas .btn{width:100%}.gd-note{padding:1.5rem 1.2rem}.pins,.gd-tip{padding:1.1rem 1.1rem 1.2rem}}
