/* ==========================================================================
   Locally Yours — production stylesheet
   Consolidated from the locked prototypes in CLAUDE_PROTOYPES_/.
   Fonts loaded ONCE from /fonts (no base64). Section CSS is scoped under a
   root class so shared class names (.frame/.intro/.wrap/.eyebrow) don't clash.
   ========================================================================== */

/* ---------- 1. Fonts (single load) --------------------------------------- */
@font-face{font-family:'Sohne';src:url('../../fonts/sohne/Söhne-Buch.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Sohne';src:url('../../fonts/sohne/Söhne-Dreiviertelfett.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'SohneFett';src:url('../../fonts/sohne/Söhne-Fett.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Tiempos';src:url('../../fonts/tiempos/TiemposText-SemiboldItalic.otf') format('opentype');font-weight:600;font-style:italic;font-display:swap;}
@font-face{font-family:'Neokurat';src:url('../../fonts/neokurat/NeokuratPlakat.otf') format('opentype');font-weight:900;font-style:normal;font-display:swap;}

/* ---------- 2. Tokens + reset -------------------------------------------- */
:root{
  --cream:#FFF6ED;--orange:#FF4506;--ink:#1A1A1A;--night:#25273D;
  --orchid:#6D0087;--twilight:#4D61BC;--blush:#FAA49C;--marigold:#FFB700;
  --lemonlime:#BAE300;--lemon:#FFF12E;--merlot:#5E1A38;--sand:#DD9C7C;--green:#6FAA7E;
  /* section tints */
  --tint-blush:#FEE9E0;--tint-twilight:#DBD8E3;--tint-sage:#E8EADB;--offblack:#15120D;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--cream);font-family:'Sohne',sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;color:var(--ink);}
body.lock{overflow:hidden;}
img{max-width:100%;display:block;}

/* ---------- 3. Grain helper (shared texture) ----------------------------- */
.grain{position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;opacity:.55;}

/* ---------- 4. Animations: rise & settle + color-pop --------------------- */
/* base (matches deliver/experiences/clients/howitworks) */
.rise{opacity:0;transform:translateY(48px);}
.rise.in{opacity:1;transform:translateY(0);transition:opacity .8s ease, transform .95s cubic-bezier(.2,.9,.2,1.08);}
/* per-section timing variants preserved from prototypes */
.slogan .rise,.work .rise{transform:translateY(40px);}
.slogan .rise.in,.work .rise.in{transition:opacity .8s ease, transform .9s cubic-bezier(.2,.9,.2,1.08);}
.payoff .rise{transform:translateY(48px);}
.payoff .rise.in{transition:opacity .85s ease, transform 1.0s cubic-bezier(.2,.9,.2,1.06);}
.why .rise{transform:translateY(46px);}
.why .rise.in{transition:opacity .85s ease, transform .95s cubic-bezier(.2,.9,.2,1.08);}
.cities .rise{transform:translateY(46px);}
.cities .rise.in{transition:opacity .8s ease, transform .9s cubic-bezier(.2,.9,.2,1.08);}

/* ---------- 5. Eyebrow pill (shared; payoff overrides to plain text) ------ */
.eyebrow{display:inline-block;background:var(--orange);color:var(--cream);font-family:'Neokurat';font-weight:900;
  font-size:15px;letter-spacing:.09em;text-transform:uppercase;padding:7px 16px;border-radius:30px;transform:rotate(-2deg);margin-bottom:30px;}

/* ---------- 6. Shared button primitives ---------------------------------- */
.btn-ink{display:inline-flex;align-items:center;gap:11px;background:var(--ink);color:var(--cream);
  padding:16px 30px;border-radius:44px;font-family:'Sohne';font-weight:600;font-size:15px;cursor:pointer;
  text-decoration:none;border:none;transition:background .2s;}
.btn-ink:hover{background:var(--orange);}
.btn-ink svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;}
.btn-orange{display:inline-flex;align-items:center;gap:11px;background:var(--orange);color:#fff;
  padding:18px 34px;border-radius:46px;font-family:'Sohne';font-weight:600;font-size:17px;cursor:pointer;
  text-decoration:none;border:none;transition:background .2s;}
.btn-orange:hover{background:var(--ink);}
.btn-orange svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;}

/* ---------- 7. Navigation (shared) --------------------------------------- */
.nav{position:absolute;top:0;left:0;right:0;z-index:30;background:transparent;
  display:flex;align-items:center;justify-content:space-between;padding:26px 46px;}
.nav .lg{display:block;height:30px;width:52px;
  -webkit-mask:url('../../LY_MainLogo_Working.svg') left center/contain no-repeat;
  mask:url('../../LY_MainLogo_Working.svg') left center/contain no-repeat;}
.nav .links{display:flex;align-items:center;gap:28px;}
.nav .links a{font-family:'Sohne';font-size:13px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;}
.nav .book{padding:12px 26px;border-radius:40px;font-weight:600;font-size:13px;}
.nav .burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px;}
.nav .burger span{display:block;width:24px;height:2px;border-radius:2px;}

/* over-video variant (hero): cream text, legibility text-shadow (sanctioned) */
.nav.over-video .lg{background:var(--cream);}
.nav.over-video .links a{color:var(--cream);opacity:.95;text-shadow:0 1px 8px rgba(0,0,0,.4);}
.nav.over-video .book{background:var(--orange);color:#fff;opacity:1;text-shadow:none;}
.nav.over-video .burger span{background:var(--cream);}

/* on-light variant (subpages): ink text, no shadow */
.nav.on-light{position:relative;max-width:1500px;margin:0 auto;}
.nav.on-light .lg{background:var(--ink);}
.nav.on-light .links a{color:var(--ink);opacity:.85;}
.nav.on-light .links a:hover{opacity:1;color:var(--orange);}
.nav.on-light .book{background:var(--orange);color:#fff;opacity:1;}
.nav.on-light .book:hover{color:#fff;}
.nav.on-light .burger span{background:var(--ink);}

@media(max-width:820px){
  .nav{padding:20px 22px;}
  .nav .burger{display:flex;}
  .nav .links{position:absolute;top:100%;right:22px;left:22px;flex-direction:column;align-items:stretch;gap:0;
    background:var(--cream);border-radius:16px;padding:8px;overflow:hidden;
    max-height:0;opacity:0;pointer-events:none;transition:max-height .3s ease,opacity .3s ease;
    box-shadow:none;border:1px solid rgba(26,26,26,.10);}
  .nav .links.open{max-height:420px;opacity:1;pointer-events:auto;}
  .nav .links a{color:var(--ink)!important;text-shadow:none!important;opacity:.9;padding:13px 14px;border-radius:10px;}
  .nav .links a:hover{background:rgba(26,26,26,.05);}
  .nav .book{background:var(--orange)!important;color:#fff!important;text-align:center;margin-top:4px;}
}

/* ---------- 8. Experience modal (shared: Experiences + city pages) -------- */
.backdrop{position:fixed;inset:0;background:rgba(20,18,24,.55);backdrop-filter:blur(4px);opacity:0;pointer-events:none;
  transition:opacity .35s ease;z-index:80;}
.backdrop.show{opacity:1;pointer-events:auto;}
.modal{position:fixed;z-index:90;top:50%;left:50%;width:min(960px,92vw);max-height:88vh;overflow:auto;
  transform:translate(-50%,calc(-50% + 40px));opacity:0;pointer-events:none;
  background:var(--cream);border-radius:22px;
  transition:opacity .5s ease, transform .6s cubic-bezier(.2,.9,.2,1.08);
  display:grid;grid-template-columns:.92fr 1.08fr;}
.modal.show{opacity:1;transform:translate(-50%,-50%);pointer-events:auto;}
.m-photo{position:relative;min-height:340px;}
.m-photo .img{position:absolute;inset:0;background:radial-gradient(120% 130% at 30% 16%, #ddccb4, #b6a487 58%, #87765f);background-size:cover;background-position:center;}
.m-photo .wash{position:absolute;inset:0;background:var(--mwash);mix-blend-mode:multiply;opacity:.5;}
.m-photo .grain{opacity:.55;}
.m-photo .ename{left:26px;bottom:24px;}
.m-photo .ename .main{font-size:clamp(32px,3vw,48px);}
.ename{position:absolute;left:24px;bottom:20px;z-index:4;color:var(--cream);line-height:.92;}
.ename .the{display:block;font-family:'Tiempos';font-weight:600;font-style:italic;font-size:clamp(16px,1.3vw,22px);opacity:.96;margin-bottom:3px;}
.ename .main{display:block;font-family:'Neokurat';font-size:clamp(30px,3.3vw,50px);letter-spacing:-.02em;text-transform:uppercase;}
.m-info{padding:40px 42px 44px;}
.m-city{display:inline-block;font-family:'Neokurat';font-weight:900;font-size:15px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--cream);background:var(--maccent);padding:6px 14px;border-radius:30px;margin-bottom:16px;}
.m-tag{font-family:'Tiempos';font-weight:600;font-style:italic;font-size:clamp(20px,2vw,28px);line-height:1.28;color:var(--ink);margin-bottom:14px;}
.m-price{font-family:'Sohne';font-weight:600;font-size:15px;letter-spacing:.02em;color:var(--orange);margin:0 0 24px;}
.m-stats{display:flex;gap:34px;flex-wrap:wrap;padding:18px 0;border-top:1px solid rgba(26,26,26,.12);border-bottom:1px solid rgba(26,26,26,.12);}
.m-stats .lbl{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9a8f82;margin-bottom:5px;}
.m-stats .val{font-family:'SohneFett';font-size:clamp(18px,1.5vw,22px);letter-spacing:-.01em;}
.m-body{font-size:clamp(15.5px,1.1vw,17.5px);line-height:1.62;color:#2e2a26;margin:22px 0 8px;}
.m-block{margin-top:20px;}
.m-block .lbl{font-family:'SohneFett';font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--maccent);margin-bottom:5px;}
.m-block p{font-size:clamp(15px,1.05vw,16.5px);line-height:1.55;color:#3a342f;}
.m-cta{display:inline-flex;align-items:center;gap:9px;margin-top:30px;background:var(--ink);color:var(--cream);
  padding:14px 26px;border-radius:44px;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s;text-decoration:none;}
.m-cta:hover{background:var(--maccent);}
.mclose{position:fixed;z-index:95;top:20px;right:20px;width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;
  background:var(--ink);color:var(--cream);font-size:22px;line-height:1;display:none;}
.mclose.show{display:block;}

/* ==========================================================================
   9. HERO (LY_hero_video_3)
   ========================================================================== */
.hero{position:relative;height:100vh;width:100%;overflow:hidden;display:flex;align-items:center;justify-content:center;
  --pool:.55;--top:.45;--mid:.38;--bot:.62;}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.hero .overlay{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(ellipse 62% 58% at center,rgba(0,0,0,var(--pool)),rgba(0,0,0,0) 70%),
    linear-gradient(180deg,rgba(0,0,0,var(--top)) 0%,rgba(0,0,0,var(--mid)) 45%,rgba(0,0,0,var(--bot)) 100%);}
.hero .logowrap{position:relative;z-index:5;width:min(76%,860px);}
.hero #logoSvg{width:100%;height:auto;display:block;}
.hero .lp{opacity:0;}
.hero .dot{position:absolute;border-radius:50%;z-index:6;}
.hero .dot.y{width:14px;height:14px;background:var(--marigold);bottom:9%;left:4%;box-shadow:0 0 18px rgba(0,0,0,.3);}
.hero .dot.p{width:14px;height:14px;background:var(--blush);top:15%;right:5%;box-shadow:0 0 18px rgba(0,0,0,.3);}
.hero .scrollcue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:6;opacity:.9;animation:bob 1.8s ease-in-out infinite;}
.hero .scrollcue svg{width:28px;height:28px;stroke:var(--cream);fill:none;stroke-width:2;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55));}
@keyframes bob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(7px);}}

/* ==========================================================================
   10. SLOGAN (LY_slogan) — pale blush
   ========================================================================== */
.slogan{background:var(--tint-blush);}
.slogan .inner{max-width:1000px;margin:0 auto;padding:128px 48px 120px;text-align:center;}
/* new opening: intro / Solari board / closer */
.slogan .inner.op{max-width:1140px;}
.slogan .op-intro{font-family:'SohneFett';font-size:clamp(28px,3.6vw,50px);line-height:1.12;letter-spacing:-.02em;color:var(--ink);text-wrap:pretty;max-width:1100px;margin:0 auto;}
.slogan .op-solari{font-family:'SohneFett';font-size:clamp(21px,2.7vw,36px);line-height:1.55;letter-spacing:-.01em;color:var(--ink);max-width:960px;margin:46px auto 0;text-wrap:balance;}
.slogan .op-closer{font-family:'Sohne';font-weight:400;font-size:clamp(20px,1.9vw,28px);line-height:1.55;color:#4a423c;max-width:840px;margin:44px auto 0;text-wrap:pretty;}
.slogan .cta{margin-top:46px;}

/* Solari split-flap cell (true flip-clock flick) */
.slogan .solari{display:inline-block;position:relative;vertical-align:middle;margin:0 .08em;height:1.12em;line-height:1.12em;border-radius:.16em;overflow:hidden;background:#e83f0a;perspective:150px;font-family:'SohneFett';text-transform:uppercase;letter-spacing:.02em;color:var(--cream);font-size:.82em;}
.slogan .solari .half,.slogan .solari .fold{position:absolute;left:0;width:100%;height:calc(50% - 1px);overflow:hidden;background:var(--orange);backface-visibility:hidden;}
.slogan .solari .t,.slogan .solari .ft{top:0;border-radius:.16em .16em 0 0;}
.slogan .solari .b,.slogan .solari .fb{bottom:0;border-radius:0 0 .16em .16em;}
.slogan .solari .txt{position:absolute;left:0;width:100%;height:1.12em;line-height:1.12em;text-align:center;white-space:nowrap;}
.slogan .solari .t .txt,.slogan .solari .ft .txt{top:0;}
.slogan .solari .b .txt,.slogan .solari .fb .txt{bottom:0;}
.slogan .solari .fold{z-index:2;}
.slogan .solari .ft{transform-origin:50% 100%;}
.slogan .solari .fb{transform-origin:50% 0%;transform:rotateX(90deg);}
@media(max-width:680px){.slogan .inner{padding:84px 24px 84px;}}

/* ==========================================================================
   11. THE PAYOFF (LY_payoff_editorial) — cream, sizzle band on top
   ========================================================================== */
.payoff-vidband{height:72vh;position:relative;overflow:hidden;background:var(--cream);}
.payoff-vidband video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.payoff{position:relative;overflow:hidden;background:var(--cream);}
.payoff .blob{position:absolute;width:520px;height:520px;border-radius:50%;background:var(--orchid);opacity:.09;top:30px;right:-120px;pointer-events:none;z-index:0;}
.payoff .wrap{max-width:1560px;margin:0 auto;padding:120px 16px 130px 40px;position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1fr) min(50%,680px);column-gap:88px;align-items:start;}
.payoff .col{position:relative;z-index:1;}
.payoff .shot{align-self:start;aspect-ratio:1/1;border-radius:14px;overflow:hidden;}
.payoff .shot img{width:100%;height:100%;object-fit:cover;display:block;}
.payoff .eyebrow{background:none;color:var(--orange);padding:0;border-radius:0;transform:none;
  font-size:15px;letter-spacing:.09em;margin-bottom:46px;}
.payoff .narr{position:relative;padding-left:70px;}
.payoff .narr::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--orange);border-radius:3px;}
.payoff .line{font-family:'Sohne';font-weight:600;font-size:clamp(26px,3.3vw,48px);line-height:1.14;letter-spacing:-.018em;margin-bottom:12px;position:relative;}
.payoff .line .tick{position:absolute;left:-38px;top:.55em;width:12px;height:12px;border-radius:50%;}
.payoff .line.accent{color:var(--orange);}
.payoff .reflect{font-family:'Sohne';font-weight:600;font-size:clamp(19px,2.2vw,29px);line-height:1.34;color:#6e645a;margin:46px 0 54px;padding-left:70px;}
.payoff .closer{font-family:'Sohne';font-weight:600;font-size:clamp(24px,2.5vw,42px);line-height:1.08;letter-spacing:-.022em;padding-left:70px;white-space:nowrap;}
.payoff .closer .pop{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:var(--ink);transition:color .7s ease;}
.payoff .closer .pop.lit{color:var(--orange);}
@media(max-width:960px){
  .payoff .wrap{grid-template-columns:1fr;column-gap:0;}
  .payoff .shot{margin-top:34px !important;}
  .payoff .closer{white-space:normal;}
}
@media(max-width:680px){
  .payoff .wrap{padding:72px 22px 90px;}
  .payoff .eyebrow{margin-bottom:34px;}
  .payoff .narr{padding-left:42px;}
  .payoff .line{font-size:clamp(23px,7vw,32px);margin-bottom:14px;}
  .payoff .line .tick{left:-26px;width:10px;height:10px;top:.5em;}
  .payoff .reflect{padding-left:42px;font-size:clamp(18px,5vw,22px);margin:36px 0 42px;}
  .payoff .closer{padding-left:42px;font-size:clamp(28px,8vw,38px);}
  .payoff .blob{width:300px;height:300px;top:20px;right:-70px;}
  .payoff-vidband{height:46vh;}
}

/* ==========================================================================
   12. WHAT WE DELIVER (LY_deliver_v2) — OFF-BLACK
   ========================================================================== */
.deliver{background:var(--offblack);color:var(--cream);}
.deliver .inner{max-width:1280px;margin:0 auto;padding:120px 48px 140px;}
.deliver .intro{font-family:'SohneFett';font-size:clamp(32px,4.6vw,68px);line-height:1.02;letter-spacing:-.022em;max-width:1040px;margin-bottom:30px;}
.deliver .intro .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:var(--cream);transition:color .6s ease;}
.deliver .intro .acc.lit{color:var(--orange);}
.deliver .scene{display:grid;grid-template-columns:1.12fr .88fr;gap:54px;align-items:center;margin-top:120px;}
.deliver .scene.flip{grid-template-columns:.88fr 1.12fr;}
.deliver .scene.flip .photo{order:2;}
.deliver .scene.flip .text{order:1;}
.deliver .photo{position:relative;}
.deliver .frame{position:relative;aspect-ratio:5/4;border-radius:18px;overflow:hidden;}
/* photo is set as an inline background-image on each .img (document-relative,
   so it resolves under file://, http root, sub-path, and Vercel alike) */
.deliver .frame .img{position:absolute;inset:0;background-size:cover;background-position:center;}
.deliver .frame .grain{opacity:.55;}
.deliver .num{position:absolute;top:-26px;right:18px;z-index:4;font-family:'Neokurat';font-size:clamp(72px,8vw,150px);line-height:.78;letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:2px var(--cream);text-stroke:2px var(--cream);}
.deliver .title{position:absolute;left:24px;bottom:22px;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:9px;}
.deliver .pill{font-family:'Neokurat';font-size:clamp(36px,4.8vw,74px);line-height:.96;letter-spacing:-.01em;text-transform:uppercase;
  text-shadow:0 2px 16px rgba(0,0,0,.45);color:var(--cream);}
.deliver .title .pill:nth-child(2){margin-left:34px;}
.deliver .text{padding-top:6px;}
.deliver .body{font-family:'Sohne';font-weight:400;font-size:clamp(17px,1.25vw,20px);line-height:1.6;color:#cbc2b6;max-width:460px;}
.deliver .punch{font-family:'SohneFett';font-size:clamp(24px,2.3vw,38px);line-height:1.06;letter-spacing:-.015em;margin-top:26px;
  color:var(--cream);transition:color .55s ease;}
.deliver .punch.lit{color:var(--popc,var(--orange));}
.deliver .result{margin-top:130px;border-top:2px solid rgba(255,246,237,.16);padding-top:48px;display:flex;flex-wrap:wrap;align-items:baseline;gap:18px 40px;}
.deliver .result .rlabel{font-family:'Neokurat';text-transform:uppercase;font-size:clamp(38px,5vw,80px);line-height:.98;letter-spacing:-.03em;}
.deliver .result .rbody{font-family:'SohneFett';font-size:clamp(22px,2.3vw,34px);line-height:1.16;letter-spacing:-.015em;color:#b3a99e;max-width:720px;}
.deliver .result .rbody .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:#cbc2b6;transition:color .6s ease;}
.deliver .result .rbody .acc.lit{color:var(--orange);}
@media(max-width:820px){
  .deliver .inner{padding:80px 22px 100px;}
  .deliver .scene,.deliver .scene.flip{grid-template-columns:1fr;gap:0;margin-top:90px;}
  .deliver .scene.flip .photo{order:0;} .deliver .scene.flip .text{order:0;}
  .deliver .title{position:relative;left:0;bottom:0;margin-top:-22px;margin-bottom:18px;flex-direction:row;flex-wrap:wrap;gap:8px;}
  .deliver .title .pill:nth-child(2){margin-left:0;}
  .deliver .num{font-size:84px;top:-22px;}
  .deliver .text{padding-top:30px;}
  .deliver .result{margin-top:80px;}
}

/* ==========================================================================
   13. EXAMPLE EXPERIENCES (LY_experiences) — cream, tiles → modal
   ========================================================================== */
.exp{background:var(--cream);}
.exp .inner{max-width:1240px;margin:0 auto;padding:120px 48px 140px;}
.exp .intro{font-family:'SohneFett';font-size:clamp(30px,4.2vw,62px);line-height:1.03;letter-spacing:-.022em;max-width:920px;margin-bottom:74px;}
.exp .intro .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:var(--ink);transition:color .6s ease;}
.exp .intro .acc.lit{color:var(--orange);}
.exp .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;align-items:start;}
.exp .tile:nth-child(2){margin-top:70px;} .exp .tile:nth-child(3){margin-top:30px;}
.exp .tile{appearance:none;border:none;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;display:block;}
.exp .frame{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.9,.2,1.05);}
.exp .tile:hover .frame{transform:translateY(-8px);}
.exp .frame .img{position:absolute;inset:0;background:radial-gradient(120% 130% at 30% 16%, #ddccb4, #b6a487 58%, #87765f);}
.exp .frame .wash{position:absolute;inset:0;background:var(--wash);mix-blend-mode:multiply;opacity:.5;transition:opacity .35s ease;}
.exp .tile:hover .frame .wash{opacity:.34;}
.exp .frame .grain{opacity:.55;}
.exp .tmeta{padding:20px 4px 0;}
.exp .ttag{font-family:'Tiempos';font-weight:600;font-style:italic;font-size:clamp(17px,1.45vw,21px);line-height:1.3;color:var(--ink);display:block;}
.exp .trow{margin-top:12px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#8a8178;}
.exp .topen{display:inline-block;margin-top:14px;font-family:'Sohne';font-weight:600;font-size:13px;letter-spacing:.04em;color:var(--ink);
  border-bottom:2px solid var(--accent,var(--orange));padding-bottom:2px;}
.exp .more{margin-top:96px;}
@media(max-width:860px){
  .exp .inner{padding:80px 22px 100px;}
  .exp .gallery{grid-template-columns:1fr;gap:46px;}
  .exp .tile:nth-child(2),.exp .tile:nth-child(3){margin-top:0;}
  .exp .frame{aspect-ratio:4/3;}
}
/* modal mobile (shared) */
@media(max-width:860px){
  .modal{grid-template-columns:1fr;width:94vw;}
  .m-photo{min-height:230px;aspect-ratio:16/10;}
  .m-info{padding:30px 24px 34px;}
}

/* ==========================================================================
   14. WHAT CLIENTS SAY (LY_clients) — pale twilight
   ========================================================================== */
.clients{position:relative;overflow:hidden;background:var(--tint-twilight);color:var(--ink);}
.clients .grain{background-size:220px 220px;opacity:.4;z-index:1;}
.clients .wrap{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:130px 48px 140px;}
.clients .eyebrow{margin-bottom:8px;}
.clients .qmark{font-family:'SohneFett';font-size:clamp(120px,18vw,300px);line-height:.6;color:var(--twilight);opacity:.9;display:block;margin:-10px 0 -30px -8px;}
.clients .quotes{margin-top:10px;}
.clients .q{max-width:880px;margin-bottom:88px;}
.clients .q.r{margin-left:auto;text-align:right;}
.clients .qt{font-family:'Sohne';font-weight:600;line-height:1.14;letter-spacing:-.015em;text-wrap:balance;}
.clients .q1 .qt{font-size:clamp(26px,3.6vw,52px);}
.clients .q2 .qt{font-size:clamp(22px,2.8vw,41px);}
.clients .q3 .qt{font-size:clamp(24px,3.2vw,46px);}
.clients .pop{color:var(--ink);transition:color .55s ease;}
.clients .pop.lit{color:var(--popc,var(--marigold));}
.clients .by{margin-top:22px;font-family:'Sohne';font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#6e645a;}
.clients .by .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bydot,var(--marigold));margin-right:10px;vertical-align:middle;}
.clients .note{margin-top:8px;font-family:'Tiempos';font-style:italic;font-weight:600;font-size:14px;color:#8a8178;}
@media(max-width:680px){
  .clients .wrap{padding:84px 22px 96px;}
  .clients .q,.clients .q.r{text-align:left;margin-left:0;margin-bottom:60px;}
  .clients .qmark{font-size:120px;margin-bottom:-18px;}
}

/* ==========================================================================
   15. WHY LOCALLY YOURS (LY_whylocallyyours) — MERLOT
   ========================================================================== */
.why{position:relative;overflow:hidden;background:var(--merlot);color:var(--cream);}
.why .grain{background-size:220px 220px;opacity:.42;z-index:1;}
.why .wrap{position:relative;z-index:2;max-width:1500px;margin:0 auto;padding:130px 56px 140px;
  display:grid;grid-template-columns:minmax(0,1fr) min(46%,680px);column-gap:72px;align-items:center;}
.why .col{min-width:0;}
.why .vframe{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#3a1024;
  border:1px solid rgba(255,246,237,.16);display:flex;align-items:center;justify-content:center;}
.why .vframe video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.why .vframe .play{width:70px;height:70px;border-radius:50%;background:rgba(255,246,237,.14);display:flex;align-items:center;justify-content:center;}
.why .vframe .play svg{width:24px;height:24px;margin-left:3px;fill:var(--cream);}
.why .eyebrow{margin-bottom:38px;}
.why .headline{font-family:'Neokurat';text-transform:uppercase;font-size:clamp(44px,7vw,108px);line-height:.92;letter-spacing:-.01em;max-width:14ch;margin-bottom:48px;text-wrap:balance;}
.why .headline .pop{color:var(--cream);transition:color .6s ease;}
.why .headline .pop.lit{color:var(--lemon);}
.why .lede{font-family:'Sohne';font-weight:600;font-size:clamp(18px,1.8vw,25px);line-height:1.5;color:rgba(255,246,237,.72);max-width:760px;margin-bottom:46px;text-wrap:pretty;}
.why .statement{font-family:'SohneFett';font-size:clamp(26px,3.3vw,48px);line-height:1.1;letter-spacing:-.02em;max-width:920px;margin-bottom:22px;text-wrap:balance;}
.why .closer{font-family:'SohneFett';font-size:clamp(26px,3.3vw,48px);line-height:1.1;letter-spacing:-.02em;max-width:920px;}
.why .closer .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:var(--cream);transition:color .6s ease;}
.why .closer .acc.lit{color:var(--lemon);}
@media(max-width:880px){.why .wrap{grid-template-columns:1fr;column-gap:0;} .why .vframe{margin-top:40px;max-width:520px;}}
@media(max-width:680px){.why .wrap{padding:88px 24px 96px;} .why .headline{margin-bottom:34px;} .why .lede{margin-bottom:34px;}}

/* ==========================================================================
   16. NINE CITIES (LY_cities) — cream mosaic, tiles → city pages
   ========================================================================== */
.cities{background:var(--cream);}
.cities .inner{max-width:1320px;margin:0 auto;padding:120px 40px 140px;}
.cities .intro{font-family:'SohneFett';font-size:clamp(30px,4.2vw,62px);line-height:1.03;letter-spacing:-.022em;max-width:900px;margin-bottom:14px;text-wrap:balance;}
.cities .intro .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:var(--ink);transition:color .6s ease;}
.cities .intro .acc.lit{color:var(--orange);}
.cities .kick{font-family:'Sohne';font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#9a8f82;margin-bottom:46px;}
.cities .grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(190px,22vw,310px);gap:14px;}
.cities .tile{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;border:none;padding:0;display:block;color:var(--cream);font:inherit;text-decoration:none;}
.cities .tile .img{position:absolute;inset:0;background:radial-gradient(125% 130% at 30% 18%, #ddccb4, #b3a386 60%, #84745e);transition:transform .6s cubic-bezier(.2,.9,.2,1.03);}
.cities .tile .wash{position:absolute;inset:0;background:var(--w);mix-blend-mode:multiply;opacity:.34;transition:opacity .4s ease;}
.cities .tile .grain{opacity:.5;}
.cities .tile .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 42%,rgba(0,0,0,.52));}
.cities .tile .cname{position:absolute;inset:0;padding:16px;z-index:3;font-family:'Neokurat';text-transform:uppercase;font-size:clamp(26px,2.6vw,44px);
  letter-spacing:-.015em;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;}
.cities .tile .arrow{font-family:'Sohne';font-weight:600;text-transform:none;font-size:.62em;opacity:0;transform:translate(-6px,0);transition:opacity .3s ease,transform .3s ease;}
.cities .tile:hover .img{transform:scale(1.05);}
.cities .tile:hover .wash{opacity:.2;}
.cities .tile:hover .arrow{opacity:1;transform:translate(0,0);}
.cities .tile:hover .cname{color:var(--cream);}
@media(max-width:880px){
  .cities .inner{padding:84px 22px 100px;}
  .cities .grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(150px,40vw,230px);}
  .cities .tile{grid-column:span 1 !important;}
}
@media(max-width:520px){.cities .grid{grid-template-columns:1fr;}}

/* ==========================================================================
   17. HOW IT WORKS (LY_howitworks) — cream, color-block panels
   ========================================================================== */
.hiw{background:var(--cream);}
.hiw .inner{max-width:1280px;margin:0 auto;padding:120px 48px 140px;}
.hiw .bighead{font-family:'Neokurat';text-transform:uppercase;font-size:clamp(54px,9.5vw,150px);line-height:.88;letter-spacing:-.01em;color:var(--ink);margin-bottom:6px;}
.hiw .scene{display:grid;grid-template-columns:1.12fr .88fr;gap:54px;align-items:center;margin-top:110px;}
.hiw .scene.flip{grid-template-columns:.88fr 1.12fr;}
.hiw .scene.flip .panel{order:2;}
.hiw .scene.flip .text{order:1;}
.hiw .panel{position:relative;}
.hiw .frame{position:relative;aspect-ratio:5/4;border-radius:18px;overflow:hidden;}
.hiw .frame .img{position:absolute;inset:0;background-size:cover;background-position:center;}
.hiw .frame .block{position:absolute;inset:0;background:var(--c);mix-blend-mode:multiply;opacity:.5;}
.hiw .frame .grain{opacity:.5;}
.hiw .num{position:absolute;top:-26px;right:18px;z-index:4;font-family:'Neokurat';font-size:clamp(72px,8vw,150px);line-height:.78;letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:2px var(--ink);text-stroke:2px var(--ink);}
.hiw .title{position:absolute;left:26px;bottom:24px;z-index:5;font-family:'Neokurat';text-transform:uppercase;color:var(--fg);
  font-size:clamp(34px,4.4vw,66px);line-height:.92;letter-spacing:-.01em;}
.hiw .text{padding-top:6px;}
.hiw .body{font-family:'Sohne';font-weight:600;font-size:clamp(22px,2.7vw,40px);line-height:1.18;letter-spacing:-.015em;color:var(--ink);max-width:480px;}
.hiw .result{margin-top:130px;border-top:2px solid rgba(26,26,26,.12);padding-top:48px;max-width:1000px;}
.hiw .result .rbody{font-family:'SohneFett';font-size:clamp(24px,3.1vw,48px);line-height:1.12;letter-spacing:-.02em;text-wrap:balance;}
.hiw .result .rbody .muted{color:#6e645a;}
.hiw .result .rbody .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:#6e645a;transition:color .6s ease;}
.hiw .result .rbody .acc.lit{color:var(--orange);}
@media(max-width:820px){
  .hiw .inner{padding:80px 22px 100px;}
  .hiw .scene,.hiw .scene.flip{grid-template-columns:1fr;gap:0;margin-top:84px;}
  .hiw .scene.flip .panel{order:0;} .hiw .scene.flip .text{order:0;}
  .hiw .num{font-size:84px;top:-22px;}
  .hiw .text{padding-top:30px;}
  .hiw .result{margin-top:80px;}
}

/* ==========================================================================
   18. THE WORK (LY_thework) — pale sage
   ========================================================================== */
.work{background:var(--tint-sage);}
.work .inner{max-width:1000px;margin:0 auto;padding:120px 48px 120px;text-align:center;}
.work .eyebrow{margin-bottom:50px;}
.work .stats{display:flex;flex-direction:column;gap:30px;}
.work .line{font-family:'SohneFett';font-size:clamp(26px,3.4vw,50px);line-height:1.14;letter-spacing:-.018em;text-wrap:balance;max-width:840px;margin:0 auto;}
.work .line .fig{font-family:'Neokurat';color:var(--orange);letter-spacing:-.01em;padding:0 .04em;}
.work .line .acc{font-family:'Tiempos';font-weight:600;font-style:italic;letter-spacing:0;color:var(--ink);transition:color .55s ease;}
.work .line .acc.lit{color:var(--orange);}
@media(max-width:680px){.work .inner{padding:84px 24px 84px;} .work .stats{gap:24px;}}

/* ==========================================================================
   19. START PLANNING / CONTACT (LY_contact) — cream, two-column form
   ========================================================================== */
.contact .wrap{max-width:1240px;margin:0 auto;padding:60px 46px 120px;display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:start;}
.contact .intro h1{font-family:'SohneFett';font-size:clamp(34px,3.8vw,58px);line-height:1.04;letter-spacing:-.022em;text-wrap:balance;}
.contact .intro .sub{font-family:'Sohne';font-weight:600;font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:#5b524a;margin-top:22px;max-width:440px;}
.contact .intro .promise{margin-top:40px;font-family:'Tiempos';font-style:italic;font-weight:600;font-size:18px;color:#7a6f66;}
.contact .form{background:#fff;border:1px solid rgba(26,26,26,.10);border-radius:20px;padding:38px 36px;}
.contact .field{margin-bottom:22px;}
.contact .field label{display:block;font-family:'Sohne';font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#8a8178;margin-bottom:8px;}
.contact .field input,.contact .field select,.contact .field textarea{width:100%;font-family:'Sohne';font-size:16px;color:var(--ink);background:var(--cream);
  border:1px solid rgba(26,26,26,.14);border-radius:12px;padding:14px 15px;outline:none;transition:border-color .2s;-webkit-appearance:none;}
.contact .field input:focus,.contact .field select:focus,.contact .field textarea:focus{border-color:var(--orange);}
.contact .field textarea{min-height:120px;resize:vertical;}
.contact .two{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.contact .submit{margin-top:8px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:11px;background:var(--orange);color:#fff;border:none;cursor:pointer;
  font-family:'Sohne';font-weight:600;font-size:16px;padding:17px 28px;border-radius:44px;transition:background .2s;}
.contact .submit:hover{background:var(--ink);}
.contact .submit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;}
.contact .note{margin-top:14px;font-size:12px;color:#a59a90;text-align:center;}
@media(max-width:880px){.contact .wrap{grid-template-columns:1fr;gap:40px;padding:40px 24px 90px;} .contact .two{grid-template-columns:1fr;}}

/* ==========================================================================
   20. CITY TEMPLATE (LY_city_newyork) — hero banner + tile grid → modal
   ========================================================================== */
.citypage .cityhero{position:relative;height:56vh;min-height:400px;overflow:hidden;display:flex;align-items:flex-end;}
.citypage .cityhero .img{position:absolute;inset:0;background:radial-gradient(120% 130% at 30% 16%,#cdbf9f,#9c8a6f 60%,#6f6049);background-size:cover;background-position:center;}
.citypage .cityhero .wash{position:absolute;inset:0;background:var(--cw,var(--twilight));mix-blend-mode:multiply;opacity:.3;}
.citypage .cityhero .grain{background-size:220px 220px;opacity:.5;}
.citypage .cityhero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,.55));}
.citypage .cityhero .htext{position:relative;z-index:3;padding:0 46px 46px;color:var(--cream);}
.citypage .cityhero .kicker{font-family:'Sohne';font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;opacity:.9;margin-bottom:8px;}
.citypage .cityhero .cityname{font-family:'Neokurat';text-transform:uppercase;font-size:clamp(56px,11vw,170px);line-height:.86;letter-spacing:-.01em;}
.citypage .exp-sec{max-width:1280px;margin:0 auto;padding:40px 46px 30px;}
.citypage .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.citypage .tile{appearance:none;border:none;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;display:block;}
.citypage .frame{position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.9,.2,1.05);}
.citypage .tile:hover .frame{transform:translateY(-6px);}
.citypage .frame .img{position:absolute;inset:0;background:radial-gradient(120% 130% at 30% 16%,#d9ccb4,#a08d72 60%,#6f6049);background-size:cover;background-position:center;}
.citypage .frame .wash{position:absolute;inset:0;background:var(--w);mix-blend-mode:multiply;opacity:.46;transition:opacity .35s ease;}
.citypage .tile:hover .frame .wash{opacity:.3;}
.citypage .frame .grain{opacity:.5;}
.citypage .frame .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 48%,rgba(0,0,0,.5));}
.citypage .ename{left:20px;bottom:18px;right:16px;text-shadow:0 2px 14px rgba(0,0,0,.38);}
.citypage .ename .the{font-size:clamp(15px,1.2vw,19px);opacity:.95;margin-bottom:2px;}
.citypage .ename .main{font-size:clamp(28px,2.6vw,40px);}
/* full editorial titles (real city experiences) */
.ename.efull .main{white-space:normal;line-height:1.0;letter-spacing:-.01em;}
.citypage .ename.efull .main{font-size:clamp(19px,2vw,30px);}
.exp .ename.efull .main{font-size:clamp(20px,2.1vw,32px);}
.m-photo .ename.efull .main{font-size:clamp(24px,2.5vw,38px);}
.citypage .tmeta{padding:14px 4px 0;}
.citypage .ttag{font-family:'Tiempos';font-style:italic;font-weight:600;font-size:clamp(15px,1.2vw,18px);line-height:1.3;color:var(--ink);display:block;}
.citypage .trow{margin-top:9px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#8a8178;}
.citypage .topen{display:inline-block;margin-top:11px;font-family:'Sohne';font-weight:600;font-size:12.5px;letter-spacing:.04em;color:var(--ink);border-bottom:2px solid var(--accent,var(--orange));padding-bottom:2px;}
.citypage .pcta{text-align:center;padding:96px 40px 120px;}
.citypage .pcta h2{font-family:'SohneFett';font-size:clamp(30px,4.6vw,70px);line-height:1.04;letter-spacing:-.025em;max-width:1000px;margin:0 auto;text-wrap:balance;}
.citypage .pcta .btn{margin-top:38px;}
@media(max-width:960px){.citypage .grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.citypage .grid{grid-template-columns:1fr;}}

/* ---------- Cities page dark theme (scoped to cities.html only) ----------- */
.cities-dark{background:var(--offblack);color:var(--cream);}
.cities-dark .cities{background:var(--offblack);}
.cities-dark .cities .intro{color:var(--cream);}
.cities-dark .cities .intro .acc{color:var(--cream);}       /* accent starts cream… */
.cities-dark .cities .intro .acc.lit{color:var(--orange);}  /* …and still pops to orange on scroll-in */
.cities-dark .cities .kick{color:#b3a99e;}
/* nav: cream text/mark so it reads on the off-black (eyebrow pill + tiles unchanged) */
.cities-dark .nav.on-light .lg{background:var(--cream);}
.cities-dark .nav.on-light .links a{color:var(--cream);}
.cities-dark .nav.on-light .burger span{background:var(--cream);}

/* ---------- Homepage bottom CTA band ------------------------------------- */
.home-cta{background:var(--cream);text-align:center;padding:112px 40px 120px;}

/* ---------- 21. Reduced motion ------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rise{opacity:1 !important;transform:none !important;}
  .rise.in{transition:none !important;}
  .hero .scrollcue{animation:none;}
  .hero .lp{opacity:1;}
  *{transition-duration:.001ms !important;}
}

/* --- Experience media: video tiles/modals fill the frame like a still --- */
.frame video.img, .m-photo video.img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* --- Experience media shows true colour: wash off on city tiles + modals --- */
/* Per Lina, 2026-08-27. Revert by deleting this block (originals: .citypage
   .frame .wash = .46, hover = .3, .m-photo .wash = .5). The .scrim stays -
   it is the dark gradient that keeps the tile title readable, not a colour. */
.citypage .frame .wash,
.citypage .tile:hover .frame .wash,
.exp .frame .wash,
.exp .tile:hover .frame .wash,
.m-photo .wash{opacity:0;}

/* Titles need the dark gradient the city tiles use, now that no wash backs them. */
.exp .frame .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 48%,rgba(0,0,0,.5));}

/* ==========================================================================
   EXPERIENCES PAGE (experiences.html) — Top carousel + All-by-city grid
   ========================================================================== */
.exppage{background:var(--cream);color:var(--ink);}
.exppage .expwrap{max-width:1320px;margin:0 auto;padding:0 46px;}
.exppage .kick{font-family:'Sohne';font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin:74px 0 10px;}
.exppage .big{font-family:'SohneFett';font-size:clamp(34px,5vw,72px);line-height:1;letter-spacing:-.02em;margin:0 0 26px;}
.exppage .big .pop{color:var(--ink);transition:color .55s ease;}
.exppage .big .pop.lit{color:var(--orange);}
.exppage .mi{border-radius:14px;overflow:hidden;position:relative;background:#e7ded1;}
.exppage .mi-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.2,.9,.2,1.03);}
.exppage video.mi-img{width:100%;height:100%;object-fit:cover;}
.exppage .mi-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.28));pointer-events:none;}
.exppage .mi.ph{display:flex;align-items:flex-end;padding:16px;}
.exppage .ph-t{font-family:'Neokurat';text-transform:uppercase;color:var(--cream);font-size:20px;line-height:1;}
.exppage .eb{font-family:'Sohne';font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);}
.exppage .cta{display:inline-block;font-family:'Sohne';font-weight:600;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);margin-top:9px;opacity:0;transform:translateX(-7px);transition:opacity .3s ease,transform .3s ease;}
/* carousel */
.exppage .caro{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 46px 30px;scrollbar-width:none;cursor:grab;}
.exppage .caro.drag{cursor:grabbing;scroll-snap-type:none;}
.exppage .caro::-webkit-scrollbar{display:none;}
.exppage .cc{flex:0 0 300px;scroll-snap-align:start;appearance:none;border:none;background:none;text-align:left;padding:0;cursor:pointer;color:inherit;transition:transform .4s cubic-bezier(.2,.9,.2,1.05);}
.exppage .cc .mi{aspect-ratio:4/5;}
.exppage .cc-m{padding:12px 2px 0;display:flex;flex-direction:column;}
.exppage .ct{font-family:'Neokurat';text-transform:uppercase;font-size:22px;line-height:1;margin-top:6px;transition:color .3s ease;}
.exppage .cc:hover{transform:translateY(-6px);}
.exppage .cc:hover .mi-img{transform:scale(1.05);}
.exppage .cc:hover .ct{color:var(--orange);}
.exppage .cc:hover .cta{opacity:1;transform:none;}
/* all-by-city grid */
.exppage .cityblock{margin:0 0 66px;}
.exppage .cityhd{font-family:'Neokurat';text-transform:uppercase;font-size:clamp(30px,4vw,58px);line-height:1;letter-spacing:-.01em;margin:0 0 24px;border-top:2px solid var(--ink);padding-top:18px;}
.exppage .ccount{font-family:'Sohne';font-weight:600;font-size:16px;vertical-align:super;color:var(--orange);margin-left:6px;}
.exppage .expwrap>.grid{margin-top:40px;}
.exppage .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.exppage .exp-more{max-width:820px;margin:0 auto;padding:78px 46px 104px;text-align:center;}
.exppage .exp-more .kick{color:var(--orange);margin:0 0 14px;}
.exppage .exp-more-line{font-family:'Sohne';font-weight:500;font-style:normal;font-size:clamp(21px,2.4vw,31px);line-height:1.32;color:var(--ink);margin:0 0 30px;}
.exppage .exp-more-line .pop{font-family:'Tiempos';font-weight:600;font-style:italic;color:var(--ink);transition:color .55s ease;}
.exppage .exp-more-line .pop.lit{color:var(--orange);}
.exppage .tl{appearance:none;border:none;background:none;text-align:left;padding:0;cursor:pointer;color:inherit;display:block;transition:transform .45s cubic-bezier(.2,.9,.2,1.03);}
.exppage .tl .mi{aspect-ratio:4/5;}
.exppage .tl-m{padding:12px 2px 0;display:flex;flex-direction:column;}
.exppage .tt{font-family:'Neokurat';text-transform:uppercase;font-size:18px;line-height:1;transition:color .3s ease;}
.exppage .tg{font-family:'Sohne';font-size:14px;color:#4a423c;line-height:1.35;margin-top:5px;}
.exppage .tl-price{font-family:'Sohne';font-weight:600;font-size:13px;letter-spacing:.02em;color:var(--orange);margin-top:7px;}
.exppage .tl:hover{transform:translateY(-5px);}
.exppage .tl:hover .mi-img{transform:scale(1.05);}
.exppage .tl:hover .tt{color:var(--orange);}
.exppage .tl:hover .cta{opacity:1;transform:none;}
.exppage .home-cta{padding:20px 46px 100px;text-align:center;}
@media(max-width:1000px){.exppage .grid{grid-template-columns:repeat(2,1fr);}.exppage .tl{margin-top:0 !important;}}
@media(max-width:680px){.exppage .expwrap{padding:0 24px;}.exppage .caro{padding-left:24px;padding-right:24px;}}

/* Experiences page — hero header (title left, small globe right) */
.exppage .exphero{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;max-width:1320px;margin:0 auto;padding:66px 46px 14px;}
.exppage .exphero .kick{margin:0 0 8px;}
.exppage .exphero-title{font-family:'SohneFett';font-size:clamp(32px,4.6vw,62px);line-height:1.02;letter-spacing:-.02em;margin:0 0 14px;text-wrap:balance;}
.exppage .exphero-title .pop{color:var(--ink);transition:color .55s ease;}
.exppage .exphero-title .pop.lit{color:var(--orange);}
.exppage .exphero-sub{font-family:'Sohne';font-size:clamp(16px,1.3vw,19px);line-height:1.5;color:#4a423c;max-width:420px;}
.exppage .exphero-globe{width:100%;max-width:360px;aspect-ratio:1;margin-left:auto;position:relative;cursor:grab;}
.exppage .exphero-globe.drag{cursor:grabbing;}
.exppage .exphero-globe canvas{width:100%;height:100%;display:block;touch-action:none;}
.exppage .exphero-globe{position:relative;}
.globe-tip{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 14px));pointer-events:none;
  background:var(--cream);border-radius:12px;padding:8px 8px 9px;box-shadow:0 10px 26px rgba(0,0,0,.22);
  width:132px;opacity:0;transition:opacity .16s ease;z-index:5;}
.globe-tip.show{opacity:1;}
.globe-tip .gt-img{display:block;width:100%;height:84px;border-radius:7px;background-size:cover;background-position:center;background-color:#e7ded1;}
.globe-tip .gt-t{display:block;font-family:'Neokurat';text-transform:uppercase;font-size:13px;line-height:1.05;color:var(--ink);margin-top:7px;}
@media(max-width:820px){.exppage .exphero{grid-template-columns:1fr;padding-top:40px;}.exppage .exphero-globe{max-width:280px;margin:6px auto 0;}}
