/* ============================================================
   daycrunch® — design system
   Brand: Performance Buildings AG
   Colours, type scale, radii and components per brand guide
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

:root{
  /* --- Brand accents --- */
  --orange:#F16D2D;
  --orange-deep:#d65a1e;
  --blue:#01B8CA;
  --blue-deep:#0a9aa9;

  /* --- Core background palette (brand guide) --- */
  --cream:#F2EDE7;       /* primary surface  242 237 231 */
  --sand:#DBD7D1;        /* secondary        219 215 209 */
  --mist:#ACBDC4;        /* tertiary blue-gray 172 189 196 */

  /* --- Ink / neutrals --- */
  --ink:#23211E;
  --ink-soft:#4e4a44;
  --ink-faint:#8a847b;
  --line:rgba(35,33,30,.12);
  --line-soft:rgba(35,33,30,.07);
  --white:#fffdfb;

  /* --- Site / location accent colours (brand guide) --- */
  --site-alba:#C27A6A;
  --site-denkmal:#7BA7C6;
  --site-grosspeter:#AF9DBC;
  --site-rhodaine:#A5B99D;
  --site-kriens:#4DE1C1;
  --site-maegenwil:#7FB342;
  --site-airportal:#AF9DBC;
  --site-tecdeck:#D8A542;

  /* --- Radii (4mm interactive / 1mm static) --- */
  --r-btn:13px;
  --r-img:4px;
  --r-card:6px;

  /* --- Type scale (32/24/14/9pt → web, proportional) --- */
  --t1:clamp(2.6rem, 1.4rem + 4vw, 4.6rem);   /* hero */
  --t2:clamp(1.7rem, 1.1rem + 1.8vw, 2.6rem); /* section */
  --t3:1.0625rem;                              /* panel / labels */
  --t4:1.0625rem;                              /* body */

  --maxw:1240px;
  --gut:clamp(20px, 5vw, 64px);
  --shadow:0 2px 6px rgba(35,33,30,.05), 0 14px 40px -18px rgba(35,33,30,.22);
  --shadow-sm:0 1px 3px rgba(35,33,30,.07), 0 8px 24px -16px rgba(35,33,30,.2);
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Libre Baskerville',Georgia,serif;
  font-size:var(--t4);
  line-height:1.65;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4,p{margin:0;}
::selection{background:var(--orange);color:#fff;}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);}
.wrap-wide{max-width:1440px;margin:0 auto;padding-inline:var(--gut);}

/* ---------- type helpers ---------- */
.eyebrow{
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-family:Georgia,serif;font-weight:700;color:var(--orange);
}
.eyebrow.blue{color:var(--blue-deep);}
.eyebrow.muted{color:var(--ink-faint);}
.display{font-size:var(--t1);line-height:1.04;font-weight:700;letter-spacing:-.01em;text-wrap:balance;}
.display em{font-style:italic;color:var(--orange);font-weight:700;}
.h2{font-size:var(--t2);line-height:1.1;font-weight:700;letter-spacing:-.005em;text-wrap:balance;}
.h2 em{font-style:italic;color:var(--orange);}
.lead{font-size:clamp(1.05rem,.98rem + .4vw,1.25rem);line-height:1.6;color:var(--ink-soft);max-width:44ch;text-wrap:pretty;}
.muted{color:var(--ink-soft);}
.center{text-align:center;}
.center .lead{margin-inline:auto;}

/* ============================================================
   Buttons (4mm radius — interactive)
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:Georgia,serif;font-weight:700;font-size:.84rem;letter-spacing:.04em;
  padding:.92em 1.5em;border-radius:var(--r-btn);border:1.5px solid transparent;
  line-height:1;transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
  white-space:nowrap;
}
.btn .arw{transition:transform .3s ease;}
.btn:hover .arw{transform:translateX(4px);}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 22px -12px var(--orange);}
.btn-primary:hover{background:var(--orange-deep);transform:translateY(-2px);}
.btn-blue{background:var(--blue);color:#063b40;}
.btn-blue:hover{background:var(--blue-deep);color:#fff;transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--ink);padding-inline:0;}
.btn-ghost .arw{margin-left:.1em;}
.btn-ghost:hover{color:var(--orange);}
.btn-on-dark{border-color:rgba(255,255,255,.4);color:#fff;}
.btn-on-dark:hover{background:#fff;color:var(--ink);border-color:#fff;}
.btn-sm{padding:.7em 1.1em;font-size:.78rem;}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-family:Georgia,serif;font-weight:700;font-size:.82rem;letter-spacing:.03em;color:var(--ink);border-bottom:1.5px solid var(--orange);padding-bottom:2px;transition:gap .25s ease,color .25s ease;}
.link-arrow:hover{gap:.7em;color:var(--orange);}

/* ============================================================
   Header / navigation
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(242,237,231,.82);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.nav{display:flex;align-items:center;gap:2rem;height:76px;}
.brand{display:flex;align-items:center;gap:.6rem;flex-shrink:0;}
.brand .mark{width:34px;height:34px;flex-shrink:0;}
.brand .word{font-size:1.5rem;line-height:1;letter-spacing:-.01em;}
.brand .word .d{font-style:italic;font-weight:700;color:var(--orange);}
.brand .word .c{font-weight:400;color:var(--blue);}
.brand .word sup{font-size:.5em;font-weight:400;color:var(--ink-faint);}
.nav-links{display:flex;align-items:center;gap:1.9rem;margin-left:auto;}
.nav-links a{
  font-family:Georgia,serif;font-weight:700;font-size:.8rem;letter-spacing:.05em;white-space:nowrap;
  color:var(--ink);position:relative;padding:.3em 0;transition:color .2s ease;
}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1.5px;background:var(--orange);transition:right .28s ease;}
.nav-links a:hover{color:var(--orange);}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{right:0;}
.nav-links a[aria-current="page"]{color:var(--orange);}
.nav-tools{display:flex;align-items:center;gap:1rem;flex-shrink:0;}
/* Language selector (EN / DE / FR / IT) */
.lang-select{position:relative;}
.lang-btn{display:flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--line);border-radius:var(--r-btn);padding:.5em .7em;font-family:Georgia,serif;font-weight:700;font-size:.74rem;letter-spacing:.06em;color:var(--ink);transition:border-color .2s,background .2s;}
.lang-btn:hover{border-color:var(--ink);}
.lang-btn .globe{opacity:.65;}
.lang-btn .chev{opacity:.55;transition:transform .25s;}
.lang-select.open .lang-btn .chev{transform:rotate(180deg);}
.lang-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:.4rem;min-width:176px;display:flex;flex-direction:column;gap:2px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s,transform .2s;z-index:80;}
.lang-select.open .lang-menu{opacity:1;transform:none;pointer-events:auto;}
.lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:transparent;border:none;text-align:left;font-family:'Libre Baskerville',serif;font-size:.92rem;color:var(--ink);padding:.55em .7em;border-radius:8px;transition:background .18s;cursor:pointer;}
.lang-menu button:hover{background:var(--cream);}
.lang-menu button.on{background:color-mix(in srgb,var(--orange) 12%,white);color:var(--orange-deep);font-weight:700;}
.lang-menu button em{font-style:normal;font-family:Georgia,serif;font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);background:var(--sand);padding:.28em .5em;border-radius:4px;}
.m-tools .lang-menu{right:auto;left:0;}
.checkin-btn{background:var(--orange);color:#fff;border:none;border-radius:var(--r-btn);font-family:Georgia,serif;font-weight:700;font-size:.78rem;letter-spacing:.07em;padding:.72em 1.2em;display:inline-flex;align-items:center;gap:.5em;transition:background .25s,transform .25s;}
.checkin-btn:hover{background:var(--orange-deep);transform:translateY(-1px);}
.checkin-btn .dot{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:pulse 2.4s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55);}70%{box-shadow:0 0 0 7px rgba(255,255,255,0);}100%{box-shadow:0 0 0 0 rgba(255,255,255,0);}}
.hamburger{display:none;background:none;border:none;width:42px;height:42px;flex-direction:column;justify-content:center;gap:5px;align-items:center;}
.hamburger span{display:block;width:22px;height:2px;background:var(--ink);transition:transform .3s,opacity .3s;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* mobile drawer */
.mobile-nav{position:fixed;inset:76px 0 0;background:var(--cream);z-index:55;transform:translateY(-12px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,transform .3s,visibility .3s;padding:2rem var(--gut);display:flex;flex-direction:column;gap:.4rem;overflow-y:auto;}
.mobile-nav.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;}
.mobile-nav a{font-size:1.6rem;font-weight:700;padding:.55rem 0;border-bottom:1px solid var(--line-soft);}
.mobile-nav a em{font-style:italic;color:var(--orange);}
.mobile-nav .m-tools{margin-top:1.4rem;display:flex;gap:1rem;align-items:center;}

/* ============================================================
   Sections & layout primitives
   ============================================================ */
section{position:relative;}
.sec{padding-block:clamp(56px,8vw,120px);}
.sec-tight{padding-block:clamp(40px,5vw,72px);}
.bg-cream{background:var(--cream);}
.bg-sand{background:var(--sand);}
.bg-mist{background:var(--mist);}
.bg-ink{background:var(--ink);color:var(--cream);}
.sec-head{max-width:640px;margin-bottom:clamp(32px,4vw,56px);}
.sec-head.center{margin-inline:auto;}
.grid{display:grid;gap:clamp(20px,2.4vw,34px);}
.divider{height:1px;background:var(--line);border:0;margin:0;}

/* ============================================================
   Image placeholders (labelled, brand tones)
   ============================================================ */
.ph{
  position:relative;border-radius:var(--r-img);overflow:hidden;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--ph,#cfc8bd) 92%, white), color-mix(in srgb, var(--ph,#cfc8bd) 78%, black 6%));
  display:flex;align-items:center;justify-content:center;color:rgba(35,33,30,.5);
  min-height:120px;
}
.ph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:26px 26px;opacity:.25;}
.ph .ph-ic{width:34px;height:34px;opacity:.55;margin-bottom:.4rem;}
.ph .ph-label{position:relative;display:flex;flex-direction:column;align-items:center;gap:.1rem;font-family:Georgia,serif;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;text-align:center;}
.ph .ph-tag{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.78);color:var(--ink-soft);font-family:Georgia,serif;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:.32em .6em;border-radius:3px;}
.ph.tall{aspect-ratio:3/4;}
.ph.wide{aspect-ratio:16/9;}
.ph.sq{aspect-ratio:1;}

/* ============================================================
   Stat bar
   ============================================================ */
.statbar{display:grid;grid-template-columns:repeat(6,1fr);background:var(--blue);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-sm);}
.stat{padding:1.75rem 1.1rem;text-align:center;color:#fff;border-left:1px solid rgba(255,255,255,.22);}
.stat:first-child{border-left:none;}
.stat .n{font-size:clamp(1.9rem,1.2rem+1.5vw,2.7rem);line-height:1;font-weight:700;color:#fff;}
.stat .pre{display:block;font-family:Georgia,serif;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:.5rem;}
.stat .post{display:block;font-family:Georgia,serif;font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.92);margin-top:.55rem;}

/* ============================================================
   Feature grid (checkmark amenities)
   ============================================================ */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,40px) clamp(28px,3.4vw,64px);}
.feat{display:flex;gap:.9rem;}
.feat .tick{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#063b40;display:flex;align-items:center;justify-content:center;font-size:.8rem;margin-top:.15rem;}
.feat:nth-child(even) .tick{background:var(--orange);color:#fff;}
.feat h4{font-size:var(--t3);font-weight:700;margin-bottom:.25rem;}
.feat p{font-size:.92rem;color:var(--ink-soft);line-height:1.55;}

/* ============================================================
   Process cards (Automated / Digitalised / Secure)
   ============================================================ */
.proc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,28px);}
.proc{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-card);padding:2rem 1.7rem;transition:transform .3s,box-shadow .3s;}
.proc:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);}
.proc .ic{width:48px;height:48px;border-radius:12px;background:color-mix(in srgb,var(--blue) 16%,white);color:var(--blue-deep);display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem;}
.proc:nth-child(2) .ic{background:color-mix(in srgb,var(--orange) 16%,white);color:var(--orange-deep);}
.proc h4{font-size:var(--t3);font-weight:700;margin-bottom:.5rem;}
.proc p{font-size:.92rem;color:var(--ink-soft);}

/* ============================================================
   Site / location panels (carousel)
   ============================================================ */
.sites{position:relative;}
.sites-track{display:flex;gap:clamp(16px,2vw,26px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;scrollbar-width:none;}
.sites-track::-webkit-scrollbar{display:none;}
.site-card{scroll-snap-align:start;flex:0 0 clamp(280px,32vw,400px);background:var(--cream);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s;}
.site-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.site-card .pic{aspect-ratio:4/3;position:relative;--ph:var(--accent,#bdb6aa);}
.site-card .pic .accent-bar{position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--accent,#bdb6aa);}
.site-card .body{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.site-card .town{font-family:Georgia,serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);}
.site-card .name{font-size:1.4rem;font-weight:700;line-height:1.05;}
.site-card .name .accent-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--accent,#bdb6aa);margin-right:.4em;vertical-align:middle;}
.site-card .desc{font-size:.9rem;color:var(--ink-soft);line-height:1.5;flex:1;}
.site-card .foot{margin-top:.6rem;}
.carousel-ctrl{display:flex;align-items:center;gap:.7rem;margin-top:1.4rem;}
.carousel-ctrl .dots{display:flex;gap:.4rem;flex:1;flex-wrap:wrap;}
.carousel-ctrl .dots i{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .25s,width .25s;cursor:pointer;}
.carousel-ctrl .dots i.on{background:var(--orange);width:22px;border-radius:4px;}
.cbtn{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s,transform .25s;color:var(--ink);}
.cbtn:hover{background:var(--ink);color:var(--cream);}
.cbtn:disabled{opacity:.3;cursor:default;}
.cbtn:disabled:hover{background:transparent;color:var(--ink);}

/* ============================================================
   Amenity pillar labels (Work · Food · Life · Care · Play)
   Status: live (blue) · soon (orange) · planned (outline)
   ============================================================ */
.amenities{display:flex;flex-wrap:wrap;gap:5px;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line-soft);}
.am{display:inline-flex;align-items:center;gap:.42em;font-family:Georgia,serif;font-weight:700;font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;padding:.36em .62em;border-radius:20px;border:1px solid var(--line);color:var(--ink-faint);background:var(--white);white-space:nowrap;}
.am i{width:7px;height:7px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--ink-faint);background:transparent;}
.am-live{color:var(--blue-deep);border-color:color-mix(in srgb,var(--blue) 40%,white);background:color-mix(in srgb,var(--blue) 9%,white);}
.am-live i{background:var(--blue);border-color:var(--blue);}
.am-soon{color:var(--orange-deep);border-color:color-mix(in srgb,var(--orange) 40%,white);background:color-mix(in srgb,var(--orange) 9%,white);}
.am-soon i{border-color:var(--orange);background:linear-gradient(90deg,var(--orange) 0 50%,transparent 50% 100%);}
.am-plan{color:var(--ink-faint);}

/* legend */
.pillar-legend{display:flex;flex-wrap:wrap;gap:1.1rem;align-items:center;font-family:Georgia,serif;font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);}
.pillar-legend .lg{display:inline-flex;align-items:center;gap:.5em;}
.pillar-legend .lg i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink-faint);background:transparent;}
.pillar-legend .lg-live i{background:var(--blue);border-color:var(--blue);}
.pillar-legend .lg-soon i{border-color:var(--orange);background:linear-gradient(90deg,var(--orange) 0 50%,transparent 50% 100%);}

/* pillar explainer strip */
.pillars{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.pillar-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-card);padding:1.4rem 1.25rem;display:flex;flex-direction:column;gap:.55rem;transition:transform .3s,box-shadow .3s;}
.pillar-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);}
.pillar-card.dim{opacity:.74;}
.pillar-card .pc-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.2rem;}
.pillar-card .pc-ic{width:30px;height:30px;color:var(--ink-soft);flex-shrink:0;}
.pillar-card h4{font-size:1.08rem;font-weight:700;}
.pillar-card p{font-size:.78rem;color:var(--ink-soft);line-height:1.55;}
@media (max-width:900px){.pillars{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.pillars{grid-template-columns:1fr;}}

/* ============================================================
   Cards / list items for spaces & guidelines
   ============================================================ */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;}
.split.rev .split-media{order:2;}
.space-row{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;padding-block:clamp(36px,5vw,64px);border-top:1px solid var(--line);}
.space-row:last-child{border-bottom:1px solid var(--line);}
.space-row .idx{font-family:Georgia,serif;font-size:.72rem;letter-spacing:.18em;color:var(--orange);font-weight:700;margin-bottom:.8rem;}
.space-row h3{font-size:clamp(1.5rem,1rem+1.4vw,2.1rem);font-weight:700;line-height:1.05;margin-bottom:.9rem;}
.space-row h3 em{font-style:italic;color:var(--orange);}
.space-row p{color:var(--ink-soft);margin-bottom:1.4rem;max-width:46ch;}
.space-row:nth-child(even) .space-media{order:-1;}

/* ============================================================
   City filter chips
   ============================================================ */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;}
.chip{font-family:Georgia,serif;font-weight:700;font-size:.8rem;letter-spacing:.03em;padding:.6em 1.15em;border-radius:var(--r-btn);border:1.5px solid var(--line);background:transparent;color:var(--ink);transition:background .22s,color .22s,border-color .22s;}
.chip:hover{border-color:var(--ink);}
.chip.on{background:var(--ink);color:var(--cream);border-color:var(--ink);}

/* ============================================================
   Contact / booking form
   ============================================================ */
.form-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(1.6rem,3vw,2.6rem);}
.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem;}
.field label{font-family:Georgia,serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.field input,.field textarea,.field select{
  font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--ink);
  background:var(--white);border:1.5px solid var(--line);border-radius:var(--r-btn);
  padding:.85em 1em;transition:border-color .2s,box-shadow .2s;width:100%;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 20%,transparent);}
.field textarea{resize:vertical;min-height:120px;}

/* ============================================================
   Map placeholder
   ============================================================ */
.map{position:relative;border-radius:var(--r-img);overflow:hidden;background:linear-gradient(160deg,#dfe6e6,#c9d4d6);border:1px solid var(--line);min-height:280px;}
.map .roads{position:absolute;inset:0;opacity:.5;}
.map .pin{position:absolute;transform:translate(-50%,-100%);}
.map .pin .head{width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--orange);transform:rotate(-45deg);box-shadow:0 3px 8px rgba(0,0,0,.25);border:2px solid #fff;}
.map .pin.blue .head{background:var(--blue);}
.map .pin .lbl{position:absolute;left:50%;top:-8px;transform:translate(-50%,-100%);background:#fff;font-family:Georgia,serif;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.3em .55em;border-radius:4px;white-space:nowrap;box-shadow:var(--shadow-sm);opacity:0;transition:opacity .2s;}
.map .pin:hover .lbl{opacity:1;}
.map .map-tag{position:absolute;bottom:12px;right:12px;background:rgba(255,255,255,.8);font-family:Georgia,serif;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:.35em .7em;border-radius:4px;color:var(--ink-soft);}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{background:var(--ink);color:#cdc7bd;padding-block:clamp(48px,6vw,84px) 2rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(28px,4vw,56px);}
.footer-brand .mark{width:40px;height:40px;margin-bottom:1.1rem;}
.footer-brand .word{font-size:1.6rem;}
.footer-brand .word .d{font-style:italic;font-weight:700;color:var(--orange);}
.footer-brand .word .c{font-weight:400;color:var(--blue);}
.footer-brand p{font-size:.86rem;color:#9c958a;margin-top:1rem;max-width:30ch;}
.fcol h5{font-family:Georgia,serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:1.1rem;font-weight:700;}
.fcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;}
.fcol a,.fcol li{font-size:.86rem;color:#a7a096;transition:color .2s;}
.fcol a:hover{color:var(--orange);}
.fcol .muted-line{color:#7d766c;}
.footer-bottom{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.1);margin-top:clamp(36px,5vw,64px);padding-top:1.6rem;font-size:.76rem;color:#8a847a;}
.footer-bottom .legal{display:flex;gap:1.1rem;flex-wrap:wrap;}
.footer-bottom a:hover{color:var(--orange);}
.footer-bottom .pb{font-family:Georgia,serif;letter-spacing:.04em;}

/* ============================================================
   Booking modal
   ============================================================ */
.modal-scrim{position:fixed;inset:0;background:rgba(20,18,16,.55);backdrop-filter:blur(4px);z-index:100;opacity:0;pointer-events:none;transition:opacity .3s;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-scrim.open{opacity:1;pointer-events:auto;}
.modal{background:var(--cream);border-radius:var(--r-card);width:min(620px,100%);max-height:92vh;overflow:hidden;display:flex;flex-direction:column;transform:translateY(18px) scale(.98);transition:transform .35s cubic-bezier(.2,.8,.2,1);box-shadow:0 30px 80px -20px rgba(0,0,0,.5);}
.modal-scrim.open .modal{transform:none;}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.3rem 1.6rem;border-bottom:1px solid var(--line);}
.modal-head .title{display:flex;align-items:center;gap:.6rem;font-weight:700;}
.modal-head .title .mark{width:26px;height:26px;}
.modal-close{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.modal-close:hover{background:var(--sand);}
.modal-steps{display:flex;gap:.5rem;padding:1.1rem 1.6rem 0;}
.modal-steps .s{flex:1;height:4px;border-radius:2px;background:var(--line);transition:background .3s;}
.modal-steps .s.on{background:var(--orange);}
.modal-body{padding:1.4rem 1.6rem;overflow-y:auto;}
.modal-body h3{font-size:1.4rem;font-weight:700;margin-bottom:.3rem;}
.modal-body h3 em{font-style:italic;color:var(--orange);}
.modal-body .sub{color:var(--ink-soft);font-size:.92rem;margin-bottom:1.3rem;}
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
.opt{border:1.5px solid var(--line);border-radius:var(--r-btn);background:var(--white);padding:1rem;text-align:left;transition:border-color .2s,background .2s,transform .2s;display:flex;flex-direction:column;gap:.2rem;}
.opt:hover{border-color:var(--ink);transform:translateY(-2px);}
.opt.sel{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 8%,white);}
.opt .ot{font-weight:700;font-size:.98rem;}
.opt .od{font-size:.78rem;color:var(--ink-faint);font-family:Georgia,serif;letter-spacing:.02em;}
.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.6rem;border-top:1px solid var(--line);}
.confirm-card{text-align:center;padding:1rem 0 .4rem;}
.confirm-card .check{width:64px;height:64px;border-radius:50%;background:var(--blue);color:#063b40;display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;font-size:1.8rem;}
.summary{background:var(--white);border:1px solid var(--line);border-radius:var(--r-btn);padding:1.1rem 1.3rem;text-align:left;margin-top:1.2rem;}
.summary .row{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;font-size:.9rem;border-bottom:1px solid var(--line-soft);}
.summary .row:last-child{border-bottom:0;}
.summary .row span:first-child{color:var(--ink-faint);font-family:Georgia,serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;align-self:center;}
.summary .row span:last-child{font-weight:700;text-align:right;}

/* ============================================================
   Scroll reveal
   ============================================================ */
/* Entrance: content is always visible (no opacity animation) for reliable
   first paint, print and PDF. .reveal kept as a hook for optional motion. */
@media (prefers-reduced-motion:reduce){.checkin-btn .dot{animation:none;}}

/* ============================================================
   Hero
   ============================================================ */
.hero{position:relative;overflow:hidden;}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,72px);align-items:center;padding-block:clamp(48px,7vw,96px);}
.hero-copy .display{margin-bottom:1.4rem;}
.hero-copy .lead{margin-bottom:2rem;}
.hero-actions{display:flex;gap:.9rem;flex-wrap:wrap;align-items:center;}
.hero-media{position:relative;}
.hero-media .ph{aspect-ratio:4/5;--ph:var(--mist);}
.hero-media .float-stat{position:absolute;left:-26px;bottom:34px;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-card);padding:1rem 1.3rem;box-shadow:var(--shadow);}
.hero-media .float-stat .n{font-size:1.6rem;font-weight:700;color:var(--orange);line-height:1;}
.hero-media .float-stat .l{font-family:Georgia,serif;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-top:.3rem;}
.hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:color-mix(in srgb,var(--blue) 14%,white);color:var(--blue-deep);font-family:Georgia,serif;font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.5em 1em;border-radius:var(--r-btn);margin-bottom:1.4rem;}

/* page hero (interior pages) */
.page-hero{padding-block:clamp(48px,6vw,92px) clamp(32px,4vw,56px);}
.page-hero .display{max-width:16ch;margin-bottom:1.3rem;}
.page-hero .lead{max-width:52ch;}
.breadcrumb{display:flex;gap:.5rem;align-items:center;font-family:Georgia,serif;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.6rem;}
.breadcrumb a:hover{color:var(--orange);}

/* CTA band */
.cta-band{background:var(--ink);color:var(--cream);border-radius:var(--r-card);padding:clamp(2.2rem,5vw,4rem);text-align:center;position:relative;overflow:hidden;}
.cta-band .ring{position:absolute;width:340px;height:340px;border-radius:50%;border:1px solid rgba(255,255,255,.08);}
.cta-band .ring.r1{top:-120px;right:-80px;}
.cta-band .ring.r2{bottom:-160px;left:-60px;width:420px;height:420px;}
.cta-band h2{position:relative;color:#fff;margin-bottom:1rem;}
.cta-band h2 em{color:var(--orange);font-style:italic;}
.cta-band p{position:relative;color:#bdb6aa;max-width:48ch;margin:0 auto 2rem;}
.cta-band .actions{position:relative;display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1000px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px;}
  .footer-brand{grid-column:1/-1;}
}
@media (min-width:901px){
  .mobile-nav{display:none !important;}
}
@media (max-width:900px){
  .nav-links,.nav-tools .lang-select{display:none;}
  .hamburger{display:flex;}
  .nav{gap:1rem;}
  .hero-inner,.split,.split.rev .split-media{grid-template-columns:1fr;}
  .split.rev .split-media{order:0;}
  .hero-media{order:-1;max-width:460px;}
  .statbar{grid-template-columns:repeat(3,1fr);}
  .feat-grid{grid-template-columns:1fr 1fr;}
  .proc-grid{grid-template-columns:1fr;}
  .space-row{grid-template-columns:1fr;gap:20px;}
  .space-row .space-media{order:-1 !important;}
}
@media (max-width:560px){
  .statbar{grid-template-columns:1fr 1fr;}
  .feat-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .opt-grid{grid-template-columns:1fr;}
  .hero-media .float-stat{left:auto;right:14px;}
  .nav-tools .checkin-label{display:none;}
}

/* ============================================================
   WordPress child theme additions
   Overrides and additions for WordPress FSE context
   ============================================================ */

/* Reset WP site blocks padding */
.wp-site-blocks { padding-top: 0 !important; }

/* Colour preset mappings */
.has-cream-background-color     { background-color: var(--cream) !important; }
.has-sand-background-color,
.has-stone-background-color     { background-color: var(--sand) !important; }
.has-blue-gray-background-color { background-color: var(--mist) !important; }
.has-white-background-color     { background-color: var(--white) !important; }
.has-teal-background-color      { background-color: var(--blue) !important; }
.has-orange-background-color    { background-color: var(--orange) !important; }
.has-black-background-color     { background-color: var(--ink) !important; }

/* Override T25 button radius and font */
.wp-block-button__link,
.wp-element-button {
  border-radius: var(--r-btn) !important;
  font-family: Georgia, serif !important;
  font-weight: 700 !important;
}

/* WP block buttons → Claude Design style */
.wp-block-button:not([class*="is-style"]) .wp-block-button__link,
.wp-block-button.is-style-fill .wp-block-button__link {
  background: var(--orange) !important;
  color: #fff !important;
  border: 1.5px solid var(--orange) !important;
  box-shadow: 0 8px 22px -12px var(--orange);
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--ink) !important;
  border: 1.5px solid var(--ink) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--ink) !important;
  color: var(--cream) !important;
}

/* Header: glassmorphism cream */
header.wp-block-group,
header { background: rgba(242,237,231,.88) !important; }
header .wp-block-navigation a {
  font-family: Georgia, serif !important;
  font-weight: 700 !important; font-size: .8rem !important;
  letter-spacing: .05em !important; color: var(--ink) !important;
}
header .wp-block-navigation a:hover { color: var(--orange) !important; }
header .wp-block-site-title a {
  font-family: 'Libre Baskerville', Georgia, serif !important;
  font-size: 1.4rem !important; font-weight: 700 !important;
  font-style: italic !important; color: var(--orange) !important;
  text-decoration: none !important;
}

/* Footer: dark ink */
footer.wp-block-group, footer {
  background: var(--ink) !important;
  color: #cdc7bd !important;
}
footer .wp-block-paragraph,
footer .wp-block-paragraph a { color: #a7a096 !important; font-size: .86rem; }
footer .wp-block-paragraph a:hover { color: var(--orange) !important; }
footer p[style*="font-weight:700"] { color: #fff !important; }
footer .wp-block-navigation a { color: #a7a096 !important; font-size: .86rem !important; }
footer .wp-block-navigation a:hover { color: var(--orange) !important; }
/* Teal bottom bar */
footer .wp-block-group[style*="#0FBBCC"],
footer .wp-block-group[style*="0FBBCC"] { background: var(--blue) !important; }
footer .wp-block-group[style*="#0FBBCC"] p,
footer .wp-block-group[style*="0FBBCC"] p { color: #fff !important; }

/* CTA sections */
.dc-cta { background: var(--ink) !important; }
.dc-cta .wp-block-heading { color: #fff !important; }
.dc-cta .wp-block-heading em { color: var(--orange) !important; font-style: italic; }
.dc-cta .wp-block-paragraph { color: #bdb6aa !important; }
.dc-cta .wp-block-buttons { justify-content: center; }

/* ── Amenity pillar badges (also used in WP location cards) ─ */
/* Inherited from Claude Design CSS above — .am, .am-live, .am-soon, .am-plan */

/* ── Our custom WP node badge system (maps to Claude Design am system) ── */
.dc-loc-grid {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-bottom: 10px;
}
.dc-loc-card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-card); padding: 18px 20px;
  text-decoration: none; display: flex;
  justify-content: space-between; align-items: flex-start;
  transition: transform .35s, box-shadow .35s;
  color: inherit;
}
.dc-loc-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-sm); }
.dc-loc-card__name { font-size: 1rem; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
.dc-loc-card__city {
  font-family: Georgia, serif; font-size: .68rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-faint); margin-bottom: 10px;
}
.dc-loc-card__arr { font-size: 16px; color: var(--sand); flex-shrink: 0; margin-top: 2px; }
/* Node status badges → use Claude Design .am system */
.dc-loc-card__node { display: flex; flex-wrap: wrap; gap: 5px; margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--line-soft); }

/* ── Pillars strip ── */
.dc-pillars { padding: clamp(32px,4vw,56px) clamp(20px,5vw,64px); border-bottom: 1px solid var(--line); background: var(--cream); }
.dc-pillars-intro { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 16px; flex-wrap: wrap; }
.dc-pillars-intro p { font-size: .92rem; color: var(--ink-soft); line-height: 1.6; max-width: 540px; }
.dc-pillars-intro strong { color: var(--ink); }
.dc-pillars-intro a { font-family: Georgia, serif; font-size: .8rem; font-weight: 700; color: var(--ink-soft); border-bottom: 1.5px solid var(--orange); padding-bottom: 2px; white-space: nowrap; }
.dc-pillars-legend { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

/* ── Testimonials ── */
.dc-voices { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.dc-voice { border: 1px solid var(--line); border-radius: var(--r-card); padding: 1.4rem; background: var(--white); }
.dc-voice__q { font-size: .9rem; color: var(--ink-soft); font-style: italic; line-height: 1.65; margin-bottom: 12px; }
.dc-voice__n { font-size: .85rem; font-weight: 700; }
.dc-voice__r { font-family: Georgia, serif; font-size: .7rem; letter-spacing: .06em; color: var(--ink-faint); }

/* ── How-it-works steps ── */
.dc-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.dc-step { padding: 22px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--r-card); }
.dc-step__num { font-family: Georgia, serif; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--orange); margin-bottom: 10px; font-weight: 700; }
.dc-step__title { font-size: 1rem; font-weight: 700; margin-bottom: 5px; }
.dc-step__body { font-size: .9rem; color: var(--ink-soft); line-height: 1.6; }

/* ── Membership prose ── */
.dc-prose p { font-size: 1.05rem !important; color: var(--ink-soft) !important; line-height: 1.8 !important; max-width: 66ch; }
.dc-prose p strong { font-weight: 700; color: var(--ink); }
.dc-gets { display: flex; flex-direction: column; }
.dc-get { display: flex; gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line); align-items: flex-start; }
.dc-get:last-child { border-bottom: none; }
.dc-get__icon { font-size: 20px; width: 28px; text-align: center; flex-shrink: 0; }
.dc-get__title { font-size: 1rem; font-weight: 700; margin-bottom: 3px; }
.dc-get__body { font-size: .9rem; color: var(--ink-soft); line-height: 1.6; }
.dc-process { display: flex; flex-direction: column; }
.dc-process-step { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.dc-process-step:last-child { border-bottom: none; }
.dc-process-step__num { font-size: 2rem; font-weight: 700; color: var(--orange); font-style: italic; line-height: 1; }
.dc-process-step__title { font-size: 1.1rem; font-weight: 700; margin-bottom: 6px; }
.dc-process-step__body { font-size: .9rem; color: var(--ink-soft); line-height: 1.7; }
.dc-members-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.dc-member-q { font-size: .95rem; color: var(--ink-soft); font-style: italic; line-height: 1.65; margin-bottom: 12px; }
.dc-member-n { font-size: .85rem; font-weight: 700; }
.dc-member-r { font-family: Georgia, serif; font-size: .7rem; letter-spacing: .06em; color: var(--ink-faint); }
.dc-faq-item { border-bottom: 1px solid var(--line); padding: 18px 0; cursor: pointer; }
.dc-faq-item:first-child { border-top: 1px solid var(--line); }
.dc-faq-q { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.dc-faq-question { font-size: 1rem; font-weight: 700; }
.dc-faq-chevron { font-size: 18px; color: var(--ink-faint); transition: transform .2s; flex-shrink: 0; }
.dc-faq-chevron.is-open { transform: rotate(180deg); }
.dc-faq-a { font-size: .9rem; color: var(--ink-soft); line-height: 1.7; max-height: 0; overflow: hidden; transition: max-height .3s ease, padding .2s; }
.dc-faq-a.is-open { max-height: 300px; padding-top: 12px; }

/* Responsive */
@media (max-width: 700px) {
  .dc-loc-grid, .dc-steps, .dc-voices, .dc-members-row { grid-template-columns: 1fr; }
  .dc-pillars .pillars { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   LAYOUT FIXES — T25 FSE conflict resolution
   ============================================================ */

/* Remove ALL T25 padding from the site container */
.wp-site-blocks {
  padding-top:    0 !important;
  padding-bottom: 0 !important;
  padding-left:   0 !important;
  padding-right:  0 !important;
}

/* wp-block-html must be edge-to-edge — sections control their own width */
.wp-block-html {
  max-width: none !important;
  margin-left:  0 !important;
  margin-right: 0 !important;
  padding-left:  0 !important;
  padding-right: 0 !important;
}

/* Main content group — no extra padding */
main.wp-block-group {
  padding: 0 !important;
  margin:  0 !important;
}

/* T25 uses --wp--preset--spacing--50 as default inline padding.
   Override it to zero so our .wrap class is the sole width controller. */
.wp-site-blocks > * {
  padding-inline: 0 !important;
}

/* Ensure our .wrap always centers properly */
.wrap, .wrap-wide {
  box-sizing: border-box;
  width: 100%;
}

/* Fix: native WP blocks inside constrained groups
   should extend to wideSize (1240px), not contentSize (768px) */
.wp-block-group.alignwide,
.wp-block-columns.alignwide {
  max-width: var(--wp--style--global--wide-size, 1240px) !important;
}

/* Footer: dark ink background overriding inline cream style */
footer.wp-block-group {
  background-color: var(--ink) !important;
}
footer.wp-block-group .wp-block-paragraph,
footer.wp-block-group p {
  color: #a7a096 !important;
}
footer.wp-block-group p[style*="font-weight:700"],
footer.wp-block-group .wp-block-paragraph[style*="font-weight:700"] {
  color: #ffffff !important;
}
footer.wp-block-group a { color: #a7a096 !important; }
footer.wp-block-group a:hover { color: var(--orange) !important; }
footer.wp-block-group .wp-block-navigation a { color: #a7a096 !important; font-size: .86rem !important; }
footer.wp-block-group .wp-block-navigation a:hover { color: var(--orange) !important; }
/* Teal bottom bar */
footer.wp-block-group .wp-block-group[style*="0FBBCC"] p { color: #fff !important; }
footer.wp-block-group .wp-block-group[style*="0FBBCC"] a { color: #fff !important; opacity: .8; }

/* ============================================================
   MEMBERSHIP PAGE — constrained prose sections
   (membership patterns use dc-section / dc-section-inner)
   ============================================================ */
.dc-section {
  border-bottom: 1px solid var(--line);
}
.dc-section-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(56px,7vw,88px) clamp(20px,5vw,64px);
}
.dc-section-inner.dc-prose p {
  font-size: 1.05rem;
  color: var(--ink-soft);
  line-height: 1.8;
  max-width: 66ch;
}
.dc-section-inner.dc-prose p strong { font-weight: 700; color: var(--ink); }
.dc-section-inner.dc-prose p em { font-style: italic; }

/* Membership dark section (ink background) */
.wp-block-group[style*="background-color:#0f0f0f"] .dc-section-inner p,
.wp-block-group.has-black-background-color .dc-section-inner p {
  color: rgba(255,255,255,0.65) !important;
}
.wp-block-group[style*="background-color:#0f0f0f"] .dc-section-inner p strong,
.wp-block-group.has-black-background-color .dc-section-inner p strong {
  color: #fff !important;
}

/* ── Sticky footer — keeps footer at bottom on short pages ── */
html, body { height: 100%; }
.wp-site-blocks {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group[tagname="main"],
.wp-site-blocks > .wp-block-group:not(header):not(footer):not([tagname="header"]):not([tagname="footer"]) {
  flex: 1 0 auto;
}
