:root{
    --green:#2E8B57; --green-cta:#2B8351; --green-deep:#246149; --green-dark:#06140d;
    --ink:#18181b; --zinc:#6a6a72; --mist:#e4e4e7; --fog:#f4f4f5; --paper:#ffffff;
    --mono:'JetBrains Mono',ui-monospace,monospace;
    --sans:'Outfit',ui-sans-serif,system-ui,-apple-system,sans-serif;
    --maxw:1080px; --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--sans);color:var(--ink);background:var(--paper);
    -webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden;}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  /* keyboard focus: visible ring everywhere; light ring over the dark nav */
  :focus-visible{outline:2px solid var(--green-cta);outline-offset:3px;border-radius:3px;}
  .nav :focus-visible{outline-color:#fff;}
  /* required-field marker + post-interaction validation */
  .req{color:var(--green-cta);margin-left:2px;}
  .field input:user-invalid,.field textarea:user-invalid{border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.14);}
  .form-note{font-size:13px;color:var(--zinc);letter-spacing:-.005em;margin-bottom:18px;}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}
  .mono{font-family:var(--mono);}
  .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--green);}

  /* ---------- buttons ---------- */
  .btn{display:inline-flex;align-items:center;gap:8px;background:var(--green-cta);color:#fff;
    font-size:16px;font-weight:700;letter-spacing:-.009em;padding:15px 28px;border-radius:9999px;
    border:none;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);}
  .btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(46,139,87,.32);background:#26794b;}
  .btn .arrow{transition:transform .25s var(--ease);}
  .btn:hover .arrow{transform:translateX(4px);}
  .btn.is-loading{opacity:.85;cursor:progress;pointer-events:none;transform:none;box-shadow:none;}
  .btn-spinner{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:btnspin .7s linear infinite;}
  @keyframes btnspin{to{transform:rotate(360deg);}}
  @media(prefers-reduced-motion:reduce){.btn-spinner{animation-duration:1.4s;}}
  .btn--sm{font-size:14px;padding:11px 20px;}

  /* ---------- nav ---------- */
  .nav-outer{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:center;
    padding:18px 16px;pointer-events:none;}
  .nav{pointer-events:auto;background:rgba(24,24,27,.92);backdrop-filter:blur(12px);
    border-radius:15px;padding:13px 16px 13px 22px;display:flex;align-items:center;
    justify-content:space-between;gap:24px;width:100%;max-width:var(--maxw);
    transform-origin:top center;
    transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
  .nav-outer.scrolled .nav{transform:scale(.97);box-shadow:0 12px 40px rgba(0,0,0,.28);}
  .brand{display:flex;align-items:center;gap:11px;}
  .brand img{height:30px;width:30px;}
  .brand span{color:#fff;font-size:17px;font-weight:700;letter-spacing:-.012em;}
  .nav-links{display:flex;align-items:center;gap:26px;font-size:14px;color:rgba(255,255,255,.6);letter-spacing:-.009em;}
  .nav-links a{transition:color .2s var(--ease);}
  .nav-links a:hover{color:#fff;}
  .nav-cta{display:flex;align-items:center;gap:14px;}
  .nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px;}
  .nav-toggle span{width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease);}

  /* ---------- hero ---------- */
  .hero{position:relative;min-height:100dvh;display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;padding:140px 40px 90px;overflow:hidden;}
  .hero-bg{position:absolute;inset:-10% 0;z-index:0;background-color:var(--green-dark);background-position:center;background-size:cover;will-change:transform;}
  .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,13,.15),rgba(6,20,13,.3) 55%,rgba(6,20,13,.6));}
  .hero-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;}
  .hero .kicker{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.6);text-transform:uppercase;margin-bottom:30px;}
  .hero h1{font-size:clamp(40px,7vw,66px);font-weight:400;line-height:1;letter-spacing:-.025em;color:#fff;max-width:780px;margin-bottom:24px;}
  .hero p{font-size:17px;line-height:1.4;letter-spacing:-.009em;color:rgba(255,255,255,.78);max-width:480px;margin-bottom:32px;}
  .hero-actions{display:flex;gap:18px;align-items:center;margin-bottom:30px;flex-wrap:wrap;justify-content:center;}
  .hero-actions .ghost{color:#fff;font-size:15px;letter-spacing:-.009em;}
  .badges{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:rgba(255,255,255,.6);text-transform:uppercase;}
  .scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:1;color:rgba(255,255,255,.5);font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;}
  .scroll-hint i{width:1px;height:30px;background:rgba(255,255,255,.4);animation:trace 1.8s var(--ease) infinite;}
  @keyframes trace{0%{transform:scaleY(0);transform-origin:top;}40%{transform:scaleY(1);transform-origin:top;}60%{transform:scaleY(1);transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}
  .trust-strip{overflow:hidden;border-bottom:1px solid var(--mist);background:#fff;}
  .trust-track{display:flex;width:max-content;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--zinc);animation:trustTicker 22s linear infinite;}
  .trust-group{display:flex;gap:42px;padding:18px 21px;}
  .trust-group span{white-space:nowrap;}
  .trust-group span:nth-child(1),.trust-group span:nth-child(4){color:var(--green-deep);}
  @keyframes trustTicker{to{transform:translateX(-50%);}}

  /* ---------- sections ---------- */
  section{position:relative;}
  .pad{padding:90px 0;}
  .pad-t{padding-top:90px;}
  h2.display{font-size:clamp(30px,5vw,45px);font-weight:400;line-height:1.13;letter-spacing:-.015em;}
  .intro h2{font-size:clamp(28px,4.5vw,45px);font-weight:400;line-height:1.13;letter-spacing:-.015em;max-width:840px;}
  .intro h2 em{font-style:normal;color:var(--green-cta);}

  .feature-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    grid-template-areas:"primary secondary" "primary tertiary";gap:1px;background:var(--mist);
    border-top:1px solid var(--mist);border-bottom:1px solid var(--mist);}
  .feature{padding:30px;background:var(--paper);border:0;min-height:170px;}
  .feature:nth-child(1){grid-area:primary;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;
    background:linear-gradient(160deg,rgba(6,20,13,.88),rgba(36,97,73,.92)),var(--green-deep);color:#fff;}
  .feature:nth-child(2){grid-area:secondary;}
  .feature:nth-child(3){grid-area:tertiary;}
  .feature .n{font-family:var(--mono);font-size:11px;color:var(--green);margin-bottom:18px;}
  .feature h3{font-size:22px;font-weight:400;letter-spacing:-.012em;margin-bottom:10px;}
  .feature p{font-size:15px;color:var(--zinc);letter-spacing:-.005em;}
  .feature:nth-child(1) h3{font-size:clamp(28px,4vw,42px);line-height:1.04;letter-spacing:-.018em;}
  .feature:nth-child(1) p{color:rgba(255,255,255,.78);font-size:17px;line-height:1.45;max-width:34ch;}

  /* care card band */
  .band{background:var(--fog);}
  .care-grid{display:grid;grid-template-columns:340px 1fr;gap:60px;align-items:center;}
  .care-card{border-radius:15px;overflow:hidden;box-shadow:0 2px 2px rgba(0,0,0,.05);aspect-ratio:3/3.6;
    background-color:var(--green-deep);background-position:center;background-size:cover;position:relative;
    transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
  .care-card:hover{transform:translateY(-6px) rotate(-.5deg);box-shadow:0 24px 50px rgba(46,139,87,.28);}
  .care-card .tag{position:absolute;top:18px;left:20px;font-family:var(--mono);font-size:12px;color:#fff;letter-spacing:.02em;}
  .care-card .price{position:absolute;bottom:20px;left:20px;color:#fff;}
  .care-card .price b{display:block;font-size:clamp(24px,2.6vw,30px);font-weight:400;letter-spacing:-.013em;line-height:1.02;max-width:8.5ch;}
  .care-card .price small{font-size:13px;opacity:.85;letter-spacing:-.009em;}
  .checks{display:flex;flex-direction:column;gap:11px;margin-top:26px;}
  .check{display:flex;align-items:center;gap:14px;}
  .check .tick{width:22px;height:22px;border-radius:7.5px;background:var(--green-cta);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
  .check span:last-child{font-size:19px;font-weight:400;letter-spacing:-.009em;}

  /* services / faq rows */
  .rowhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:30px;gap:24px;}
  .rowhead .link{font-family:var(--mono);font-size:13px;color:var(--zinc);}
  .section-note{font-size:16px;color:var(--zinc);letter-spacing:-.005em;margin-top:10px;max-width:460px;}
  .row{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;border-top:1px solid var(--mist);cursor:pointer;}
  .row:last-child{border-bottom:1px solid var(--mist);}
  .row .title{font-size:clamp(22px,3.2vw,30px);font-weight:400;letter-spacing:-.013em;transition:color .25s var(--ease),transform .3s var(--ease);}
  .row .more{font-size:13px;color:var(--zinc);flex-shrink:0;}
  .row:hover .title{color:var(--green-cta);transform:translateX(12px);}

  /* gallery - life at Kebfort */
  .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  .gallery .tile{position:relative;aspect-ratio:4/5;border-radius:12px;overflow:hidden;
    background-position:center;background-size:cover;transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
  .gallery .tile::after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(6,20,13,0) 40%,rgba(6,20,13,.78));}
  .gallery .tile figcaption{position:absolute;left:16px;right:16px;bottom:16px;z-index:1;
    color:#fff;font-size:14px;font-weight:600;letter-spacing:-.009em;line-height:1.3;
    transform:translateY(6px);opacity:.92;transition:transform .45s var(--ease),opacity .45s var(--ease);}
  .gallery .tile:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(6,20,13,.28);}
  .gallery .tile:hover figcaption{transform:none;opacity:1;}

  /* testimonial */
  .quote{font-size:clamp(24px,3.6vw,37px);font-weight:400;line-height:1.2;letter-spacing:-.013em;max-width:900px;margin-bottom:22px;}
  .quote-by{font-family:var(--mono);font-size:12px;color:var(--zinc);}

  /* journal */
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .card{border:1px solid var(--mist);border-radius:15px;overflow:hidden;background:#fff;
    transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
  .card:hover{transform:translateY(-8px);box-shadow:0 22px 48px rgba(24,24,27,.12);}
  .card .thumb{aspect-ratio:16/10;background-position:center;background-size:cover;transition:transform .5s var(--ease);}
  .card:hover .thumb{transform:scale(1.05);}
  .card .body{padding:19px;}
  .card .meta{font-family:var(--mono);font-size:11px;color:var(--zinc);letter-spacing:.02em;margin-bottom:12px;}
  .card h3{font-size:22px;font-weight:400;letter-spacing:-.012em;line-height:1.3;margin-bottom:10px;}
  .card p{font-size:15px;color:var(--zinc);letter-spacing:-.005em;margin-bottom:16px;}
  .card .read{font-size:13px;font-weight:700;letter-spacing:-.009em;color:var(--green-cta);}
  .cards--compact{gap:18px;}
  .insights-strip{background:#fff;}
  .insight-card{border-radius:12px;}
  .insight-card .thumb{aspect-ratio:16/9;}

  /* insights */
  .blog-lead{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:54px;align-items:end;margin-bottom:44px;}
  .blog-lead .eyebrow{align-self:start;margin-top:9px;}
  .blog-lead>p:last-child{font-size:18px;line-height:1.65;color:var(--zinc);letter-spacing:-.006em;max-width:560px;}
  .blog-feature{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1fr);gap:42px;align-items:center;border-top:1px solid var(--mist);border-bottom:1px solid var(--mist);padding:30px 0;}
  .blog-feature-img{display:block;min-height:390px;background-position:center;background-size:cover;border-radius:12px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
  .blog-feature-img:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(6,20,13,.2);}
  .blog-feature .meta{font-family:var(--mono);font-size:11px;color:var(--zinc);letter-spacing:.02em;margin-bottom:14px;text-transform:uppercase;}
  .blog-feature h3{font-size:clamp(30px,4.5vw,48px);font-weight:400;letter-spacing:-.018em;line-height:1.05;margin-bottom:18px;max-width:12ch;}
  .blog-feature p{font-size:17px;line-height:1.58;color:var(--zinc);letter-spacing:-.006em;margin-bottom:18px;max-width:560px;}
  .blog-feature .link{font-family:var(--mono);font-size:13px;color:var(--green-cta);}
  .blog-cards{align-items:stretch;}
  .blog-articles .wrap{display:grid;gap:54px;}
  .blog-article{display:grid;grid-template-columns:220px minmax(0,1fr);gap:54px;border-top:1px solid var(--mist);padding-top:44px;scroll-margin-top:110px;}
  .blog-article-meta{font-family:var(--mono);font-size:11px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;display:flex;flex-direction:column;gap:10px;}
  .blog-article .lead-copy{font-size:20px;color:var(--ink);line-height:1.5;margin-bottom:24px;}
  .article-hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;padding:150px 0 70px;overflow:hidden;background:var(--green-dark);}
  .article-hero-bg{position:absolute;inset:-10% 0;z-index:0;background-position:center;background-size:cover;}
  .article-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,13,.38),rgba(6,20,13,.78));}
  .article-hero .wrap{position:relative;z-index:1;}
  .article-hero-copy{max-width:760px;color:#fff;}
  .article-meta{display:flex;flex-wrap:wrap;gap:10px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.66);margin-bottom:18px;}
  .article-hero h1{font-size:clamp(38px,6.2vw,68px);font-weight:400;line-height:1;letter-spacing:-.024em;margin-bottom:22px;}
  .article-hero-copy>p{font-size:18px;line-height:1.55;color:rgba(255,255,255,.78);max-width:640px;letter-spacing:-.006em;}
  .article-layout{display:grid;grid-template-columns:240px minmax(0,720px);gap:70px;align-items:start;}
  .article-side{position:sticky;top:112px;display:grid;gap:28px;}
  .article-back{font-family:var(--mono);font-size:12px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;}
  .article-side-note{border-top:1px solid var(--mist);padding-top:20px;}
  .article-side-note span{display:block;font-family:var(--mono);font-size:11px;color:var(--green);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;}
  .article-side-note p{font-size:15px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;margin-bottom:12px;}
  .article-side-note .link{font-family:var(--mono);font-size:12px;color:var(--green-cta);}
  .article-body{max-width:720px;}
  .article-body p:first-child{font-size:20px;line-height:1.6;color:var(--ink);}
  .related-insights{background:#fff;}

  /* faq accordion */
  .faq-item{border-top:1px solid var(--mist);}
  .faq-item:last-child{border-bottom:1px solid var(--mist);}
  .faq-q{width:100%;background:none;border:none;cursor:pointer;text-align:left;display:flex;
    justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-family:var(--sans);}
  .faq-q .title{font-size:clamp(20px,3vw,30px);font-weight:400;letter-spacing:-.013em;color:var(--ink);transition:color .25s var(--ease);}
  .faq-q:hover .title{color:var(--green-cta);}
  .faq-q .ico{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1px solid var(--mist);
    position:relative;transition:background .25s var(--ease),border-color .25s var(--ease);}
  .faq-q .ico::before,.faq-q .ico::after{content:"";position:absolute;background:var(--ink);left:50%;top:50%;transition:transform .3s var(--ease),background .25s var(--ease);}
  .faq-q .ico::before{width:11px;height:1.5px;transform:translate(-50%,-50%);}
  .faq-q .ico::after{width:1.5px;height:11px;transform:translate(-50%,-50%);}
  .faq-item.open .faq-q .ico{background:var(--green);border-color:var(--green);}
  .faq-item.open .faq-q .ico::before,.faq-item.open .faq-q .ico::after{background:#fff;}
  .faq-item.open .faq-q .ico::after{transform:translate(-50%,-50%) scaleY(0);}
  /* accordion: click-triggered, not perf-critical (grid-rows alt unreliable in target renderer) */
  .faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
  .faq-a p{font-size:16px;line-height:1.55;color:var(--zinc);letter-spacing:-.005em;padding:0 0 24px;max-width:760px;}

  /* CTA band */
  .cta{position:relative;text-align:center;padding:110px 40px;overflow:hidden;}
  .cta-bg{position:absolute;inset:-10% 0;z-index:0;background-color:var(--green-dark);background-position:center;background-size:cover;will-change:transform;}
  .cta-bg::after{content:"";position:absolute;inset:0;background:rgba(6,20,13,.5);}
  .cta-inner{position:relative;z-index:1;}
  .cta h2{font-size:clamp(34px,5.5vw,56px);font-weight:400;line-height:1;letter-spacing:-.022em;color:#fff;margin-bottom:20px;}
  .cta p{font-size:17px;letter-spacing:-.009em;color:rgba(255,255,255,.72);max-width:440px;margin:0 auto 30px;}

  /* footer */
  footer{background:var(--fog);padding:60px 0 36px;}
  footer .brand span{color:var(--ink);font-size:16px;}
  footer .tagline{font-family:var(--mono);font-size:11px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;}
  .footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;align-items:start;}
  .footer-about{font-size:15px;color:var(--zinc);line-height:1.6;max-width:40ch;margin-top:14px;}
  .footer-col h3{font-family:var(--mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--zinc);margin-bottom:16px;}
  .footer-col a,.footer-col p{display:block;font-size:15px;color:var(--ink);letter-spacing:-.009em;margin-bottom:10px;}
  .footer-col a{transition:color .2s var(--ease);}
  .footer-col a:hover{color:var(--green-cta);}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--mist);margin-top:44px;padding-top:24px;}
  .footer-bottom .legal a{font-size:13px;color:var(--zinc);margin-right:18px;transition:color .2s var(--ease);}
  .footer-bottom .legal a:hover{color:var(--green-cta);}

  .bg-img-hero-dark{background-image:url('assets/img-hero-dark.webp');}
  .bg-img-hero-wide{background-image:url('assets/img-hero-wide.webp');}
  .bg-img-portrait{background-image:url('assets/img-portrait.webp');}
  .bg-img-soft{background-image:url('assets/img-soft.webp');}
  .bg-marble{background-image:url('assets/marble-emerald.webp');}
  /* homepage dedicated images */
  .bg-home-hero{background-image:url('assets/home-hero.webp');}
  .bg-home-cta{background-image:url('assets/home-cta.webp');}
  .bg-home-about{background-image:url('assets/home-about.webp');}
  .bg-gallery-1{background-image:url('assets/gallery-1.webp');}
  .bg-gallery-2{background-image:url('assets/gallery-2.webp');}
  .bg-gallery-3{background-image:url('assets/gallery-3.webp');}
  .bg-gallery-4{background-image:url('assets/gallery-4.webp');}
  .bg-journal-dementia{background-image:url('assets/journal-dementia.webp');}
  .bg-journal-options{background-image:url('assets/journal-options.webp');}
  .bg-journal-loneliness{background-image:url('assets/journal-loneliness.webp');}
  /* facility (the home itself) */
  .bg-facility-bedroom{background-image:url('assets/facility-bedroom.webp');}
  .bg-facility-lounge{background-image:url('assets/facility-lounge.webp');}
  .bg-facility-dining{background-image:url('assets/facility-dining.webp');}
  .bg-facility-garden{background-image:url('assets/facility-garden.webp');}

  /* ---------- reveal animation ---------- */
  /* reveal: pure-CSS load animation. animation-fill-mode 'both' ends at the
     visible state, so content can never ship blank (no JS / observer needed). */
  @keyframes revealUp{from{transform:translateY(20px);}to{transform:none;}}
  .reveal{animation:revealUp .7s var(--ease) both;}
  .stagger>*{animation:revealUp .6s var(--ease) both;}
  .stagger>*:nth-child(2){animation-delay:.07s;}
  .stagger>*:nth-child(3){animation-delay:.14s;}
  .stagger>*:nth-child(4){animation-delay:.21s;}
  .stagger>*:nth-child(5){animation-delay:.28s;}
  .stagger>*:nth-child(6){animation-delay:.35s;}

  /* ---------- values ---------- */
  .values{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}
  .value{border:1px solid var(--mist);border-radius:9999px;padding:11px 20px;font-size:15px;letter-spacing:-.009em;color:var(--ink);transition:border-color .25s var(--ease),color .25s var(--ease);}
  .value:hover{border-color:var(--green-cta);color:var(--green-cta);}

  /* ---------- facilities ---------- */
  .fac-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px;margin-top:8px;}
  .fac{display:flex;align-items:center;gap:14px;padding:16px 0;border-top:1px solid var(--mist);}
  .fac .tick{width:22px;height:22px;border-radius:7.5px;background:var(--green-cta);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
  .fac span:last-child{font-size:17px;letter-spacing:-.009em;}
  .fac-note{margin-top:26px;font-family:var(--mono);font-size:12px;color:var(--zinc);letter-spacing:.02em;}
  #facility-showcase{scroll-margin-top:128px;}
  .facility-showcase{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:44px;align-items:stretch;}
  .facility-copy{display:flex;flex-direction:column;justify-content:center;padding:18px 0;}
  .facility-copy h2{margin:14px 0 16px;max-width:520px;}
  .facility-copy p{font-size:17px;line-height:1.55;color:var(--zinc);letter-spacing:-.005em;max-width:520px;margin-bottom:24px;}
  .facility-tabs{display:flex;flex-direction:column;border-top:1px solid var(--mist);}
  .facility-tab{appearance:none;width:100%;background:transparent;border:none;border-bottom:1px solid var(--mist);cursor:pointer;text-align:left;font-family:var(--sans);padding:17px 0 17px 28px;position:relative;color:var(--ink);}
  .facility-tab::before{content:"";position:absolute;left:0;top:18px;width:9px;height:9px;border-radius:50%;border:1px solid var(--ash,#a1a1aa);background:#fff;transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);}
  .facility-tab::after{content:"";position:absolute;left:4px;top:36px;bottom:17px;width:1px;background:var(--mist);opacity:.9;}
  .facility-tab:last-child::after{display:none;}
  .facility-tab span{display:block;font-size:22px;font-weight:400;letter-spacing:-.012em;line-height:1.2;transition:color .25s var(--ease),transform .25s var(--ease);}
  .facility-tab small{display:block;font-size:14px;line-height:1.45;color:var(--zinc);letter-spacing:-.005em;margin-top:5px;max-width:38ch;}
  .facility-tab:hover span,.facility-tab.active span{color:var(--green-cta);transform:translateX(4px);}
  .facility-tab.active::before{background:var(--green-cta);border-color:var(--green-cta);transform:scale(1.25);}
  .facility-amenities{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
  .facility-amenities span{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--mist);border-radius:9999px;padding:8px 12px;font-size:13px;line-height:1.2;color:var(--zinc);letter-spacing:-.005em;}
  .facility-amenities span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green-cta);flex-shrink:0;}
  .facility-stage{position:relative;min-height:560px;border-radius:15px;overflow:hidden;background:var(--green-dark);box-shadow:0 22px 52px rgba(6,20,13,.18);}
  .facility-panel{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.03);transition:opacity .55s var(--ease),transform .85s var(--ease);}
  .facility-panel.active{opacity:1;transform:scale(1);}
  .facility-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,13,0) 42%,rgba(6,20,13,.82));}
  .facility-panel figcaption{position:absolute;left:24px;right:24px;bottom:24px;z-index:1;color:#fff;display:grid;gap:7px;max-width:460px;}
  .facility-panel figcaption b{font-size:clamp(24px,3vw,34px);font-weight:400;line-height:1.05;letter-spacing:-.015em;}
  .facility-panel figcaption span{font-size:15px;line-height:1.45;letter-spacing:-.005em;color:rgba(255,255,255,.78);}

  /* ---------- our promise ---------- */
  .promise h2{font-size:clamp(28px,4vw,37px);font-weight:400;letter-spacing:-.013em;line-height:1.13;margin-bottom:18px;max-width:840px;}
  .promise p{font-size:17px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;max-width:680px;}
  .promise .stamp{font-family:var(--mono);font-size:13px;color:var(--green-deep);margin-top:26px;letter-spacing:.02em;}

  /* ---------- about teaser ---------- */
  .about-teaser{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
  .about-teaser .media{aspect-ratio:4/3;border-radius:15px;background-position:center;background-size:cover;}
  .about-teaser h2{font-size:clamp(28px,4vw,37px);font-weight:400;letter-spacing:-.013em;line-height:1.13;margin-bottom:18px;}
  .about-teaser p{font-size:16px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;margin-bottom:16px;max-width:60ch;}
  .text-link{font-size:15px;font-weight:700;letter-spacing:-.009em;color:var(--green-cta);display:inline-flex;gap:6px;align-items:center;}
  .text-link .arrow{transition:transform .25s var(--ease);}
  .text-link:hover .arrow{transform:translateX(4px);}

  /* ---------- inner page hero ---------- */
  .page-hero{position:relative;min-height:42vh;display:flex;align-items:flex-end;padding:150px 0 56px;overflow:hidden;}
  .page-hero-bg{position:absolute;inset:-10% 0;z-index:0;background-color:var(--green-dark);background-position:center;background-size:cover;}
  .page-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,13,.45),rgba(6,20,13,.78));}
  .page-hero .wrap{position:relative;z-index:1;}
  .crumb{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.65);text-transform:uppercase;margin-bottom:18px;}
  .crumb a{color:rgba(255,255,255,.65);transition:color .2s var(--ease);}
  .crumb a:hover{color:#fff;}
  .page-hero h1{font-size:clamp(34px,5.5vw,56px);font-weight:400;line-height:1;letter-spacing:-.022em;color:#fff;max-width:860px;}
  .page-hero .sub{font-size:17px;line-height:1.5;letter-spacing:-.009em;color:rgba(255,255,255,.8);max-width:580px;margin-top:18px;}

  /* ---------- prose & lead ---------- */
  .prose{max-width:740px;}
  .prose p{font-size:17px;line-height:1.7;color:var(--zinc);letter-spacing:-.005em;margin-bottom:20px;}
  .prose h2{font-size:clamp(26px,3.6vw,37px);font-weight:400;letter-spacing:-.013em;line-height:1.15;margin:0 0 18px;color:var(--ink);}
  .prose h3{font-size:22px;font-weight:400;letter-spacing:-.012em;margin:34px 0 10px;}
  .lead{font-size:clamp(20px,2.6vw,26px);line-height:1.4;letter-spacing:-.012em;color:var(--ink);max-width:800px;}

  /* vision / mission duo */
  .duo{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
  .duo .cell{border-top:2px solid var(--green-cta);padding-top:22px;}
  .duo h3{font-size:22px;font-weight:400;letter-spacing:-.012em;margin-bottom:10px;}
  .duo p{font-size:16px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;}

  /* founder quote */
  .founder blockquote{font-size:clamp(22px,3vw,30px);font-weight:400;line-height:1.3;letter-spacing:-.013em;color:var(--ink);max-width:880px;margin:0 0 22px;}
  .founder .by{font-family:var(--mono);font-size:12px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;}

  /* team */
  .team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .member{border:1px solid var(--mist);border-radius:15px;overflow:hidden;background:#fff;transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
  .member:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(24,24,27,.10);}
  .member .photo{aspect-ratio:1;background:var(--fog) center/cover;}
  .member .info{padding:18px;}
  .member h3{font-size:19px;font-weight:400;letter-spacing:-.009em;margin-bottom:4px;}
  .member .role{font-family:var(--mono);font-size:11px;color:var(--green-cta);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;}
  .member p{font-size:14px;line-height:1.55;color:var(--zinc);letter-spacing:-.005em;}

  /* service detail */
  .svc-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:start;}
  .svc-aside{border:1px solid var(--mist);border-radius:15px;padding:24px;position:sticky;top:96px;}
  .svc-aside h2{font-size:11px;font-weight:500;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--zinc);margin-bottom:16px;}
  .svc-grid .prose h2{margin-top:8px;}
  .svc-aside .checks{margin-top:0;}
  .svc-aside .check span:last-child{font-size:16px;}
  .svc-aside .btn{margin-top:22px;width:100%;justify-content:center;}

  /* services master-detail: sidebar list + swapping content */
  .svc-switch{display:grid;grid-template-columns:300px 1fr;gap:54px;align-items:start;}
  .svc-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:96px;}
  .svc-nav-item{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;
    padding:16px 18px;border:1px solid var(--mist);border-radius:13px;background:#fff;cursor:pointer;
    font-family:var(--sans);font-size:16px;letter-spacing:-.01em;color:var(--ink);
    transition:border-color .18s ease,background .18s ease,color .18s ease;}
  .svc-nav-item:hover{border-color:var(--green);}
  .svc-nav-arrow{opacity:0;transform:translateX(-4px);transition:opacity .18s ease,transform .18s ease;color:var(--green-cta);}
  .svc-nav-item.is-active{background:var(--green-dark);border-color:var(--green-dark);color:#fff;}
  .svc-nav-item.is-active .svc-nav-arrow{opacity:1;transform:none;color:#fff;}
  .svc-panel[hidden]{display:none;}
  .svc-panel-title{font-size:clamp(28px,4vw,40px);font-weight:400;letter-spacing:-.02em;line-height:1.06;margin:0 0 8px;}
  .svc-panel-sub{font-size:17px;color:var(--zinc);letter-spacing:-.008em;margin:0 0 26px;max-width:60ch;}
  .svc-panel .svc-grid{margin-top:4px;}
  @media(max-width:860px){
    .svc-switch{grid-template-columns:1fr;gap:26px;}
    .svc-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;position:static;gap:8px;margin:0 -20px;padding:2px 20px;scroll-padding:20px;}
    .svc-nav-item{flex:0 0 auto;padding:12px 16px;font-size:15px;}
    .svc-nav-arrow{display:none;}
  }

  /* contact */
  .contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:start;}
  #booking{scroll-margin-top:118px;}
  .booking-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(440px,1.18fr);gap:54px;align-items:start;}
  .booking-layout>*,.contact-routes-grid>*{min-width:0;}
  .booking-copy{position:sticky;top:112px;padding-top:10px;}
  .booking-copy h2{margin:12px 0 16px;max-width:520px;}
  .booking-copy>p:not(.eyebrow){font-size:17px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;max-width:520px;}
  .booking-intro .booking-layout{display:block;}
  .booking-intro .booking-copy{position:static;display:grid;grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr);gap:0 54px;align-items:end;padding-top:0;}
  .booking-intro .booking-copy>.eyebrow,.booking-intro .booking-copy>h2,.booking-intro .booking-copy>p,.booking-intro .booking-actions{grid-column:1;}
  .booking-intro .booking-steps{grid-column:2;grid-row:1 / span 4;align-self:end;margin-top:0;}
  .booking-steps{display:grid;gap:0;margin-top:32px;border-top:1px solid var(--mist);}
  .booking-steps div{display:grid;grid-template-columns:72px 1fr;gap:0 18px;padding:18px 0;border-bottom:1px solid var(--mist);}
  .booking-steps span{grid-row:1 / span 2;font-family:var(--mono);font-size:12px;color:var(--green-cta);letter-spacing:.04em;padding-top:3px;}
  .booking-steps b{font-size:19px;font-weight:400;letter-spacing:-.012em;}
  .booking-steps p{font-size:15px;line-height:1.5;color:var(--zinc);letter-spacing:-.005em;margin-top:4px;}
  .booking-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:28px;}
  .booking-actions .ghost{font-size:15px;color:var(--zinc);letter-spacing:-.009em;}
  .booking-page{min-height:100dvh;padding:122px 0 46px;}
  .booking-page .wrap{max-width:1220px;}
  .booking-page .booking-layout{display:block;}
  .cal-shell{position:relative;height:calc(100dvh - 128px);min-height:760px;max-height:860px;border:1px solid var(--mist);border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 24px 55px rgba(24,24,27,.08);}
  .cal-frame{position:absolute;inset:0;background:#fff;}
  .cal-frame iframe{display:block;width:100%;height:100%;border:0;background:#fff;}
  .cal-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:42px;background:linear-gradient(135deg,#fff 0%,var(--fog) 100%);}
  .cal-placeholder h3{font-size:clamp(28px,4vw,42px);font-weight:400;line-height:1.05;letter-spacing:-.018em;margin:14px 0 14px;max-width:420px;}
  .cal-placeholder p{font-size:16px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;max-width:420px;margin-bottom:24px;}
  .cal-placeholder code{font-family:var(--mono);font-size:.92em;color:var(--green-deep);background:rgba(46,139,87,.08);border-radius:5px;padding:2px 5px;}
  .cal-shell.is-live .cal-placeholder{display:none;}
  .contact-routes{background:var(--fog);}
  .contact-routes-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start;}
  .field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;}
  .field label{font-size:14px;font-weight:600;letter-spacing:-.009em;color:var(--ink);}
  .field input,.field textarea,.field select{font-family:var(--sans);font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--mist);border-radius:10px;padding:13px 14px;width:100%;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);}
  .field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--green-cta);box-shadow:0 0 0 3px rgba(43,131,81,.15);}
  .field textarea{min-height:130px;resize:vertical;}
  .field small{font-size:13px;color:#a33b2f;line-height:1.35;}
  .field--full{grid-column:1 / -1;}
  .form-intro{font-size:17px;line-height:1.6;color:var(--zinc);letter-spacing:-.005em;max-width:460px;margin-top:18px;}
  .consultation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;background:#fff;border:1px solid var(--mist);border-radius:16px;padding:26px;box-shadow:0 18px 48px rgba(24,24,27,.06);}
  .consultation-form .form-note,.consultation-form .form-status,.consultation-form button{grid-column:1 / -1;}
  .consultation-form button{justify-self:start;margin-top:4px;}
  .form-status{display:grid;gap:4px;border-radius:12px;padding:14px 16px;margin-bottom:18px;border:1px solid var(--mist);}
  .form-status b{font-size:16px;letter-spacing:-.01em;}
  .form-status span{font-size:14px;color:var(--zinc);line-height:1.45;}
  .form-status.success{background:#eaf6ef;border-color:#cce8d7;color:#1f5f3d;}
  .form-status.error{background:#fff0f0;border-color:#f0caca;color:#8a1f1f;}
  .hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
  .contact-info .block{padding:18px 0;border-top:1px solid var(--mist);}
  .contact-info .block h3{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--zinc);margin-bottom:8px;}
  .contact-info .block a,.contact-info .block p{font-size:17px;color:var(--ink);letter-spacing:-.009em;}
  .contact-info .block a:hover{color:var(--green-cta);}
  .map-embed{margin-top:24px;aspect-ratio:16/9;border-radius:15px;background:var(--fog);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;color:var(--zinc);border:1px solid var(--mist);text-align:center;padding:20px;}

  /* ---------- testimonials ---------- */
  .t-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
  .tcard{border:1px solid var(--mist);border-radius:15px;padding:28px;background:#fff;}
  .tcard .stars{color:var(--green-cta);font-size:13px;letter-spacing:3px;margin-bottom:14px;}
  .tcard p{font-size:19px;line-height:1.5;letter-spacing:-.009em;color:var(--ink);margin-bottom:22px;}
  .tcard .who{display:flex;align-items:center;gap:12px;}
  .tcard .who .av{width:42px;height:42px;border-radius:50%;background:var(--fog) center/cover;flex-shrink:0;}
  .tcard .who .meta{font-family:var(--mono);font-size:11px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;line-height:1.5;}
  .testimonial-feature{padding:38px 0 6px;display:flex;flex-direction:column;align-items:center;text-align:center;}
  #testimonial-feature{scroll-margin-top:150px;}
  .testimonial-quote{position:relative;width:100%;max-width:820px;padding:0 36px;transition:opacity .24s var(--ease),filter .24s var(--ease),transform .24s var(--ease);}
  .testimonial-quote.is-changing{opacity:.08;filter:blur(4px);transform:scale(.985);}
  .testimonial-mark{position:absolute;left:0;top:-34px;font-size:96px;line-height:1;color:rgba(24,24,27,.07);font-family:Georgia,serif;pointer-events:none;user-select:none;}
  .testimonial-quote p{font-size:clamp(28px,4.8vw,52px);font-weight:400;line-height:1.06;letter-spacing:-.022em;color:var(--ink);margin:0;}
  .testimonial-role{font-family:var(--mono);font-size:12px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;margin-top:24px;transition:opacity .24s var(--ease),transform .24s var(--ease);}
  .testimonial-quote.is-changing .testimonial-role{opacity:0;transform:translateY(6px);}
  .testimonial-people{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;width:100%;margin-top:34px;}
  .testimonial-person{appearance:none;border:none;background:transparent;color:var(--ink);border-radius:9999px;cursor:pointer;font-family:var(--sans);display:flex;align-items:center;gap:0;padding:3px;min-height:42px;transition:background .35s var(--ease),padding .35s var(--ease),box-shadow .35s var(--ease),transform .25s var(--ease);}
  .testimonial-person:hover{background:var(--fog);transform:translateY(-1px);}
  .testimonial-person.active{background:var(--ink);box-shadow:0 12px 30px rgba(24,24,27,.14);padding:5px 14px 5px 5px;}
  .testimonial-person .av{width:34px;height:34px;border-radius:50%;background-color:var(--fog);background-position:center;background-size:cover;flex-shrink:0;transition:box-shadow .25s var(--ease),transform .25s var(--ease);}
  .testimonial-person:hover .av{transform:scale(1.05);}
  .testimonial-person.active .av{box-shadow:0 0 0 2px rgba(255,255,255,.22);}
  .testimonial-person span:last-child{display:block;max-width:0;opacity:0;margin-left:0;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:-.009em;line-height:1.1;transition:max-width .35s var(--ease),opacity .25s var(--ease),margin-left .35s var(--ease),color .25s var(--ease);}
  .testimonial-person:hover span:last-child,.testimonial-person.active span:last-child{max-width:120px;opacity:1;margin-left:9px;}
  .testimonial-person.active span:last-child{color:#fff;}

  /* ---------- trust & policies ---------- */
  .cqc{border:1px solid var(--mist);border-radius:15px;padding:28px;background:var(--paper);max-width:760px;}
  .cqc .row2{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--mist);}
  .cqc .row2:first-of-type{border-top:none;}
  .cqc .k{font-family:var(--mono);font-size:12px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;}
  .cqc .v{font-size:16px;letter-spacing:-.009em;color:var(--ink);text-align:right;}
  .policy-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 32px;margin-top:8px;}
  .policy{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-top:1px solid var(--mist);}
  .policy span:first-child{font-size:17px;letter-spacing:-.009em;}
  .policy .dl{font-family:var(--mono);font-size:12px;color:var(--zinc);flex-shrink:0;}

  /* ---------- cookie consent ---------- */
  .cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:80;max-width:var(--maxw);margin:0 auto;background:var(--ink);color:#fff;border-radius:15px;padding:18px 22px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between;box-shadow:0 12px 40px rgba(0,0,0,.28);}
  .cookie p{font-size:14px;line-height:1.5;color:rgba(255,255,255,.8);max-width:62ch;min-width:0;letter-spacing:-.005em;}
  .cookie p a{color:#fff;text-decoration:underline;}
  .cookie .actions{display:flex;gap:10px;flex-shrink:0;}
  .cookie .b{font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:-.009em;padding:10px 18px;border-radius:9999px;cursor:pointer;border:none;transition:transform .2s var(--ease);}
  .cookie .b:hover{transform:translateY(-1px);}
  .cookie .b-accept{background:var(--green-cta);color:#fff;}
  .cookie .b-decline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);}

  /* faq category spacing on dedicated page */
  .faq-cat{margin:48px 0 18px;font-size:clamp(20px,2.6vw,24px);font-weight:400;letter-spacing:-.012em;}
  .faq-cat:first-of-type{margin-top:8px;}

  /* ---------- interactive showcase (list + crossfading image) ---------- */
  .showcase{display:grid;grid-template-columns:.9fr 1.3fr;gap:44px;align-items:stretch;margin-top:8px;}
  .sc-tabs{display:flex;flex-direction:column;justify-content:center;}
  .sc-tab{text-align:left;background:none;border:none;border-top:1px solid var(--mist);padding:18px 0;font-family:var(--sans);font-size:clamp(18px,2.2vw,24px);font-weight:400;letter-spacing:-.012em;color:var(--zinc);cursor:pointer;display:flex;align-items:center;gap:14px;transition:color .25s var(--ease);}
  .sc-tab:last-child{border-bottom:1px solid var(--mist);}
  .sc-tab::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mist);flex-shrink:0;transition:background .3s var(--ease),transform .3s var(--ease);}
  .sc-tab:hover{color:var(--ink);}
  .sc-tab.is-active{color:var(--ink);}
  .sc-tab.is-active::before{background:var(--green-cta);transform:scale(1.5);}
  .sc-stage{position:relative;border-radius:15px;overflow:hidden;min-height:420px;background:var(--fog);box-shadow:0 2px 2px rgba(0,0,0,.05);}
  .sc-img{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transform:scale(1.04);transition:opacity .7s var(--ease),transform 5s linear;}
  .sc-img.is-active{opacity:1;transform:scale(1);}
  .sc-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:40px 22px 18px;color:#fff;font-size:15px;font-weight:600;letter-spacing:-.009em;background:linear-gradient(180deg,transparent,rgba(6,20,13,.72));}
  .sc-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}

  /* ---------- generic crossfade slider ---------- */
  .slider{display:grid;}
  .slider > .slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .5s var(--ease);}
  .slider > .slide.is-active{opacity:1;visibility:visible;}
  .dots{display:flex;gap:9px;justify-content:center;margin-top:26px;}
  .dots button{width:9px;height:9px;border-radius:50%;border:none;background:var(--mist);cursor:pointer;padding:0;transition:background .25s var(--ease),transform .25s var(--ease);}
  .dots button:hover{background:var(--ash-gray,#a1a1aa);}
  .dots button.is-active{background:var(--green-cta);transform:scale(1.35);}
  /* testimonial carousel */
  .tslider blockquote{margin:0;max-width:900px;}
  .tslider .t-slide p{font-size:clamp(24px,3.6vw,37px);font-weight:400;line-height:1.25;letter-spacing:-.013em;color:var(--ink);margin-bottom:20px;}
  .tslider cite{font-family:var(--mono);font-size:12px;color:var(--zinc);text-transform:uppercase;letter-spacing:.04em;font-style:normal;}
  /* gallery slider (single frame) */
  .gslider .g-slide{position:relative;aspect-ratio:16/9;border-radius:15px;overflow:hidden;background-position:center;background-size:cover;}
  .gslider .gcap{position:absolute;left:0;right:0;bottom:0;padding:44px 22px 18px;color:#fff;font-size:15px;font-weight:600;letter-spacing:-.009em;background:linear-gradient(180deg,transparent,rgba(6,20,13,.72));}
  /* belief band: promise + rotating values */
  .belief h2{font-size:clamp(28px,4vw,37px);font-weight:400;letter-spacing:-.013em;line-height:1.13;max-width:840px;margin-bottom:24px;}
  .belief .b-slide{font-size:19px;line-height:1.5;letter-spacing:-.009em;color:var(--zinc);max-width:700px;}
  .belief .b-slide b{color:var(--green-deep);font-weight:600;}
  .belief .dots{justify-content:flex-start;}

  /* ---------- responsive ---------- */
  @media(max-width:860px){
    html,body{width:100%;max-width:100%;overflow-x:hidden;}
    section,header,footer,.wrap{max-width:100%;overflow-x:hidden;}
    .hero{min-height:100dvh;width:100%;max-width:100vw;padding:118px 24px 82px;}
    .hero-inner{width:100%;max-width:min(318px,calc(100vw - 48px));min-width:0;margin:0 auto;}
    .hero .kicker{width:100%;font-size:10px;line-height:1.45;letter-spacing:.08em;margin-bottom:22px;max-width:100%;overflow-wrap:anywhere;}
    .hero h1{font-size:clamp(33px,9.4vw,39px);line-height:1.04;letter-spacing:-.018em;max-width:100%;overflow-wrap:break-word;text-wrap:balance;}
    .hero p{font-size:15.5px;line-height:1.45;max-width:100%;overflow-wrap:break-word;text-wrap:pretty;}
    .hero-actions{width:100%;max-width:100%;gap:14px;margin-bottom:0;}
    .hero-actions .btn{width:100%;max-width:100%;justify-content:center;padding-left:18px;padding-right:18px;white-space:nowrap;}
    .scroll-hint{display:none;}
    .trust-track{font-size:11px;animation-duration:18s;}
    .trust-group{gap:28px;padding:15px 14px;}
    .showcase{grid-template-columns:1fr;gap:18px;}
    .sc-stage{min-height:300px;order:-1;}
    .sc-tab{font-size:18px;padding:15px 0;}
    .t-grid{grid-template-columns:1fr;}
    .testimonial-feature{padding-top:20px;}
    .testimonial-quote{padding:0 10px;}
    .testimonial-mark{left:-8px;top:-28px;font-size:72px;}
    .testimonial-role{font-size:11px;margin-top:18px;}
    .testimonial-people{justify-content:flex-start;margin-top:26px;gap:7px;}
    .testimonial-person{padding:3px;min-height:40px;}
    .testimonial-person.active{padding:4px 12px 4px 4px;}
    .testimonial-person .av{width:32px;height:32px;}
    .policy-list{grid-template-columns:1fr;}
    .duo{grid-template-columns:1fr;gap:28px;}
    .team-grid{grid-template-columns:1fr;}
    .svc-grid{grid-template-columns:1fr;gap:32px;}
    .svc-aside{position:static;}
    .booking-layout,.contact-routes-grid{grid-template-columns:1fr;gap:22px;}
    .booking-section,.booking-layout,.booking-copy,.booking-steps,.cal-shell{max-width:100%;overflow-x:hidden;}
    .booking-copy{grid-template-columns:1fr;gap:18px;position:static;padding-top:0;}
    .booking-intro .booking-copy{grid-template-columns:1fr;gap:0;}
    .booking-intro .booking-copy>.eyebrow,.booking-intro .booking-copy>h2,.booking-intro .booking-copy>p,.booking-intro .booking-actions,.booking-intro .booking-steps{grid-column:auto;grid-row:auto;}
    .booking-copy h2,.booking-copy>p:not(.eyebrow),.cal-placeholder h3,.cal-placeholder p{max-width:100%;}
    .booking-copy h2{font-size:29px;line-height:1.08;overflow-wrap:break-word;text-wrap:balance;}
    .booking-copy>p:not(.eyebrow),.page-hero .sub{overflow-wrap:break-word;text-wrap:pretty;}
    .page-hero .wrap,.page-hero h1,.page-hero .sub,.blog-lead,.blog-lead>*,.blog-feature,.blog-feature>*,.blog-article,.blog-article>*{min-width:0;max-width:100%;}
    .page-hero h1,.page-hero .sub,.blog-lead h2,.blog-lead>p:last-child,.blog-feature h3,.blog-feature p{width:calc(100vw - 48px);max-width:calc(100vw - 48px);}
    .page-hero h1,.page-hero .sub,.blog-lead h2,.blog-lead p,.blog-feature h3,.blog-feature p,.blog-article h2,.blog-article p{overflow-wrap:anywhere;text-wrap:pretty;}
    .consultation-form{grid-template-columns:1fr;padding:20px;border-radius:14px;}
    .cal-shell{height:calc(100dvh - 96px);min-height:700px;max-height:820px;border-radius:12px;}
    .cal-placeholder{padding:28px;}
    .booking-steps{grid-template-columns:1fr;margin-top:0;}
    .booking-steps div{grid-template-columns:64px minmax(0,1fr);gap:0 16px;padding:15px 16px;}
    .booking-steps span{grid-row:1 / span 2;}
    .contact-grid{grid-template-columns:1fr;gap:32px;}
    .page-hero{min-height:auto;padding:128px 0 48px;}
    .wrap{padding:0 24px;}
    .nav-outer{padding-left:16px;padding-right:16px;max-width:100vw;overflow:visible;}
    .nav{width:100%;max-width:calc(100vw - 32px);min-width:0;padding:13px 14px 13px 18px;}
    .brand{min-width:0;}
    .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .nav-links,.nav-cta .ghost,.nav-cta .btn{display:none;}
    .nav-toggle{display:flex;}
    .nav-cta{display:flex;}
    .nav.open .nav-links{display:flex;position:absolute;top:calc(100% + 10px);left:0;right:0;
      flex-direction:column;align-items:flex-start;gap:18px;background:rgba(24,24,27,.97);
      backdrop-filter:blur(12px);border-radius:15px;padding:24px;}
    .nav.open .nav-links a{font-size:18px;color:#fff;}
    .nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .nav.open .nav-toggle span:nth-child(2){opacity:0;}
    .nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
    .feature-grid{display:block;background:transparent;border-top:1px solid var(--mist);border-bottom:1px solid var(--mist);}
    .feature{grid-area:auto!important;border-right:none;border-bottom:1px solid var(--mist);padding:24px 0;min-height:auto;background:transparent;}
    .feature:nth-child(1){grid-area:auto!important;min-height:auto;background:transparent;color:var(--ink);display:block;}
    .feature:nth-child(1) h3{font-size:22px;line-height:1.2;letter-spacing:-.012em;}
    .feature:nth-child(1) p{font-size:15px;line-height:1.5;color:var(--zinc);max-width:none;}
    .feature:last-child{border-bottom:none;}
    .care-grid{grid-template-columns:1fr;gap:32px;}
    .care-card{max-width:300px;}
    .gallery{grid-template-columns:repeat(2,1fr);}
    .cards{grid-template-columns:1fr;}
    .rowhead{align-items:flex-start;flex-direction:column;}
    .blog-lead,.blog-feature,.blog-article{grid-template-columns:1fr;gap:24px;}
    .article-hero{min-height:auto;padding:128px 0 58px;}
    .article-hero h1{font-size:34px;overflow-wrap:anywhere;}
    .article-hero-copy>p{font-size:16px;overflow-wrap:anywhere;}
    .article-layout{grid-template-columns:1fr;gap:30px;}
    .article-side{position:static;}
    .article-side-note{display:none;}
    .blog-feature-img{min-height:300px;}
    .blog-feature h3{max-width:none;font-size:30px;}
    .blog-article{padding-top:34px;scroll-margin-top:96px;}
    .blog-article-meta{flex-direction:row;gap:12px;flex-wrap:wrap;}
    .fac-grid{grid-template-columns:1fr;}
    .facility-showcase{grid-template-columns:1fr;gap:26px;}
    .facility-copy{padding:0;}
    .facility-copy p{margin-bottom:18px;}
    .facility-stage{min-height:430px;order:-1;}
    .facility-tab{padding:15px 0 15px 26px;}
    .facility-tab span{font-size:19px;}
    .facility-panel figcaption{left:18px;right:18px;bottom:18px;}
    .about-teaser{grid-template-columns:1fr;gap:28px;}
    .footer-grid{grid-template-columns:1fr;gap:28px;}
    .cookie{flex-direction:column;align-items:flex-start;gap:14px;}
    .cookie{left:12px;right:auto;bottom:12px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:14px 16px;border-radius:12px;overflow:hidden;}
    .cookie p{font-size:13px;line-height:1.45;max-width:100%;overflow-wrap:anywhere;}
    .cookie .actions{width:100%;flex-wrap:wrap;}
    .cookie .b{padding:9px 16px;}
    .pad{padding:64px 0;}
  }
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *{animation:none!important;}
    .reveal,.stagger>*{animation:none!important;opacity:1!important;transform:none!important;transition:none!important;}
    .hero-bg,.cta-bg{transform:none!important;}
    .sc-img{transition:opacity .2s linear!important;transform:none!important;}
    .trust-track{animation:none!important;transform:none!important;width:auto;}
    .trust-group{flex-wrap:wrap;justify-content:center;padding:14px 24px;}
    .trust-group[aria-hidden="true"]{display:none;}
  }
