/* ==========================================================================
   HOME PAGE SECTIONS — Hero, Trust Strip, Video, Booking Section (more
   sections will be appended here as they're built, section by section).
   Everything is scoped under .nd-home, which nests inside the theme's
   .nd-page wrapper from header.php/footer.php.

   Every selector here was run through a scoping pass that prefixes bare
   single-class selectors with an extra .nd-home ancestor — this avoids a
   nasty CSS specificity bug where a plain class like `.footer-h4` loses
   to a compound reset selector like `.nd-page h4` regardless of source
   order (found and fixed in the header/footer round; applied proactively
   here so it never bites again).
   ========================================================================== */

.nd-home{
  --red:#e5342b; --red-dark:#c02219;
  --ink:#141414; --ink-soft:#4a4a4a;
  --red-soft:#ff8a82;
  --wa-green:#25c665;
  --line:#e9e9e9; --paper:#fff; --mist:#f6f5f3;
  --radius:16px; --shadow:0 18px 50px -22px rgba(20,20,20,.28);
  --shadow-soft:0 8px 30px -18px rgba(20,20,20,.22);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased;
  position:relative; overflow-x:clip; width:100%; max-width:100vw;
}
/* mobile overflow guard: nothing inside the component may exceed the viewport */
.nd-home>*{max-width:100vw}
.nd-home .nd-strip{max-width:100vw}
.nd-home,
.nd-home *{box-sizing:border-box;margin:0;padding:0}
.nd-home img{max-width:100%;display:block;height:auto}
.nd-home h1,
.nd-home h2,
.nd-home h3,
.nd-home h4{font-family:'Sora','Segoe UI',system-ui,-apple-system,sans-serif;line-height:1.1;letter-spacing:-.02em;color:var(--ink);font-weight:800}
.nd-home a{color:inherit;text-decoration:none}
.nd-home ul{list-style:none}
.nd-home p{margin:0}
/* .nd-wrap is defined once, in theme.css, shared by header/footer/sections */
.nd-home .nd-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'Sora',sans-serif;font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.nd-home .nd-eyebrow::before{content:"";width:22px;height:2px;background:var(--red);display:inline-block}

.nd-home .nd-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:'Sora','Segoe UI',system-ui,-apple-system,sans-serif;font-weight:600;font-size:15px;padding:15px 26px;border-radius:100px;border:0;cursor:pointer;line-height:1;transition:transform .15s ease,background .2s ease}
.nd-home .nd-btn svg{width:18px;height:18px;stroke:currentColor;fill:none}
.nd-home .nd-btn-red{background:var(--red);color:#fff}
.nd-home .nd-btn-red:hover{background:var(--red-dark);transform:translateY(-2px)}
.nd-home .nd-btn-dark{background:var(--ink);color:#fff}
.nd-home .nd-btn-dark:hover{transform:translateY(-2px)}
.nd-home .nd-btn-white{background:#fff;color:var(--ink)}
.nd-home .nd-btn-white:hover{transform:translateY(-2px)}
.nd-home .nd-btn-ghost{background:var(--ink);color:#fff;border:1.5px solid var(--ink)}
.nd-home .nd-btn-ghost:hover{background:#2b2b2b;transform:translateY(-2px)}
.nd-home .nd-btn-wa{background:#25d366;color:#0a2a17}
.nd-home .nd-btn-wa:hover{transform:translateY(-2px)}
.nd-home .nd-full{width:100%}

/* HERO */
.nd-home .nd-hero{position:relative;min-height:560px;display:flex;align-items:center;overflow:hidden;background:#141414}
.nd-home .nd-hero-bg{position:absolute;inset:0;z-index:0}
.nd-home .nd-hero-bg img{width:100%;height:100%;object-fit:cover}
.nd-home .nd-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,15,15,.78) 0%,rgba(15,15,15,.5) 48%,rgba(15,15,15,.12) 100%)}
.nd-home .nd-hero-inner{position:relative;z-index:1;padding:96px 0}
.nd-home .nd-hero-open{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:8px 16px;border-radius:100px;font-family:'Sora',sans-serif;font-weight:600;font-size:12.5px;letter-spacing:.04em;color:#fff}
.nd-home .nd-hdot{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(229,52,43,.6);animation:ndpulse 2s infinite}
@keyframes ndpulse{0%{box-shadow:0 0 0 0 rgba(229,52,43,.55)}70%{box-shadow:0 0 0 9px rgba(229,52,43,0)}100%{box-shadow:0 0 0 0 rgba(229,52,43,0)}}
.nd-home .nd-hero h1{color:#fff;font-size:clamp(36px,5.2vw,60px);margin:20px 0 0;max-width:640px}
.nd-home .nd-hero-sub{color:rgba(255,255,255,.82);font-size:18px;margin:18px 0 30px;max-width:520px}
.nd-home .nd-hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.nd-home .nd-hero-trust{display:flex;flex-wrap:wrap;gap:26px;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14)}
.nd-home .nd-hero-trust .t{color:#fff;font-family:'Sora',sans-serif;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.nd-home .nd-hero-trust .t svg{width:17px;height:17px;stroke:var(--red-soft);fill:none}

/* BOOKING WIDGET */
.nd-home .nd-book{background:var(--mist);padding:56px 0}
.nd-home .nd-book-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.nd-home .nd-book-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:20px}
.nd-home .nd-book-head h3{font-size:20px;font-weight:700}
.nd-home .nd-book-head .sub{font-size:13.5px;color:var(--ink-soft);margin-top:3px}
.nd-home .nd-book-slots{display:inline-flex;align-items:center;gap:8px;background:#f4e9e8;color:var(--red-dark);font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:12.5px;padding:8px 14px;border-radius:100px}
.nd-home .nd-book-slots .d{width:8px;height:8px;border-radius:50%;background:var(--red)}
.nd-home .nd-book-tabs{display:flex;gap:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.nd-home .nd-book-tab{display:flex;align-items:center;gap:9px;padding:12px 4px 14px;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:14px;color:#9a9a9a;border-bottom:2px solid transparent;margin-bottom:-1px}
.nd-home .nd-book-tab.active{color:var(--ink);border-bottom-color:var(--red)}
.nd-home .nd-book-tab .num{width:22px;height:22px;border-radius:50%;background:var(--mist);color:#9a9a9a;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nd-home .nd-book-tab.active .num{background:var(--red);color:#fff}
.nd-home .nd-book-fields{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:14px;align-items:end}
.nd-home .nd-book-field label{display:block;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#9a9a9a;margin-bottom:7px}
.nd-home .nd-book-field select,
.nd-home .nd-book-field input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);background-color:#fff;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}
.nd-home .nd-book-field input{background-image:none;padding-right:14px}
.nd-home .nd-book-confirm{white-space:nowrap}
@media(max-width:760px){.nd-home .nd-book-fields{grid-template-columns:1fr}.nd-home .nd-book-confirm{width:100%}}
/* Sidebar context (blog single template) is narrow even on wide
   desktop screens, so it needs this collapse regardless of viewport
   width — a plain media query wouldn't catch it. */
.nd-home .nd-blog-sidebar .nd-book-fields{grid-template-columns:1fr}
.nd-home .nd-blog-sidebar .nd-book-confirm{width:100%}
.nd-home .nd-blog-sidebar .nd-book-card{padding:20px}
.nd-home .nd-blog-sidebar .nd-book-tabs{gap:14px}
.nd-home .nd-blog-sidebar .nd-book-tab{font-size:13.5px}

.nd-home .nd-strip{background:var(--red);color:#fff;position:relative;overflow:hidden;overflow:clip;width:100%;max-width:100vw;contain:layout paint size;height:46px}
.nd-home .nd-strip-track{position:absolute;top:0;left:0;height:100%;display:flex;align-items:center;width:max-content;white-space:nowrap;animation:ndscroll 34s linear infinite;will-change:transform}
.nd-home .nd-strip-set{display:flex;align-items:center;flex:0 0 auto}
.nd-home .nd-strip-track span{flex:0 0 auto;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:13.5px;letter-spacing:.04em}
.nd-home .nd-strip-track span::after{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:currentColor;margin:0 26px;opacity:.55;vertical-align:middle}
@keyframes ndscroll{from{transform:translateX(0)}to{transform:translateX(var(--nd-strip-shift, -50%))}}

.nd-home .nd-sec{padding:90px 0}
.nd-home .nd-sec.mist{background:var(--mist)}
.nd-home .nd-sec-head{max-width:640px;margin:0 0 46px}
.nd-home .nd-sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.nd-home .nd-sec-head.center .nd-eyebrow{justify-content:center}
.nd-home .nd-sec-head h2{font-size:clamp(32px,4.2vw,48px);margin:14px 0 0}
.nd-home .nd-sec-head p{color:var(--ink-soft);font-size:17px;margin-top:14px}
/* .split: side-by-side heading + lead paragraph, used only by Services */
.nd-home .nd-sec-head.split{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;max-width:none}
.nd-home .nd-sec-head.split>div{max-width:640px}
.nd-home .nd-sec-head.split .lead{max-width:420px;color:var(--ink-soft);font-size:16px;line-height:1.6;flex-shrink:0;margin-top:0}

.nd-home .nd-treat{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.nd-home .nd-treat .card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;transition:transform .18s ease,box-shadow .18s ease}
.nd-home .nd-treat .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.nd-home .nd-treat .ic{width:46px;height:46px;border-radius:12px;background:var(--mist);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.nd-home .nd-treat .ic svg{width:24px;height:24px;stroke:var(--red);fill:none}
.nd-home .nd-treat h4{font-size:16px;font-weight:600}
.nd-home .nd-treat p{font-size:13.5px;color:var(--ink-soft);margin-top:6px}

.nd-home .nd-ba-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center}
.nd-home .nd-ba-copy .chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 8px}
.nd-home .nd-ba-copy .chip{font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:12.5px;padding:7px 14px;border-radius:100px;background:#fff;border:1px solid var(--line);cursor:pointer;color:var(--ink);transition:background .15s ease,border-color .15s ease,color .15s ease}
.nd-home .nd-ba-copy .chip:hover{border-color:var(--red)}
.nd-home .nd-ba-copy .chip.active{background:var(--red);border-color:var(--red);color:#fff}
.nd-home .nd-ba-copy p{color:var(--ink-soft);font-size:16px;margin:16px 0 26px;max-width:420px}
.nd-home .nd-ba-stage{position:relative;width:100%;padding-top:75%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);touch-action:none;background:#ddd}
.nd-home .nd-ba-layer{position:absolute;top:0;left:0;height:100%;width:100%}
.nd-home .nd-ba-layer img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.nd-home .nd-ba-after{z-index:1}
.nd-home .nd-ba-before{z-index:2;width:50%;overflow:hidden}
.nd-home .nd-ba-before .nd-ba-inner{position:absolute;top:0;left:0;height:100%}
.nd-home .nd-ba-before .nd-ba-inner img{width:auto;height:100%}
.nd-home .nd-ba-tag{position:absolute;bottom:16px;z-index:4;font-family:'Sora',sans-serif;font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:7px 13px;border-radius:100px;color:#fff;background:rgba(20,20,20,.62)}
.nd-home .nd-ba-tag.before{left:16px}
.nd-home .nd-ba-tag.after{right:16px;background:rgba(229,52,43,.88)}
.nd-home .nd-ba-handle{position:absolute;top:0;bottom:0;z-index:3;width:3px;background:#fff;left:50%;margin-left:-1.5px;box-shadow:0 0 12px rgba(0,0,0,.35);cursor:ew-resize}
.nd-home .nd-ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:center}
.nd-home .nd-ba-knob svg{width:22px;height:22px;stroke:var(--red);fill:none}
.nd-home .nd-ba-range{width:100%;margin-top:16px;accent-color:var(--red)}
.nd-home .nd-ba-note{font-size:12.5px;color:#9a9a9a;margin-top:10px}

.nd-home .nd-price{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.nd-home .nd-price .col{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column}
.nd-home .nd-price .col.feature{background:var(--ink)}
.nd-home .nd-price .col.feature h3,
.nd-home .nd-price .col.feature .amt{color:#fff}
.nd-home .nd-price .col.feature .amt small,
.nd-home .nd-price .col.feature li{color:rgba(255,255,255,.82)}
.nd-home .nd-price .badge{align-self:flex-start;font-family:'Sora',sans-serif;font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:var(--red);color:#fff;padding:5px 11px;border-radius:100px;margin-bottom:14px}
.nd-home .nd-price h3{font-size:19px;font-weight:600}
.nd-home .nd-price .amt{font-family:'Sora',sans-serif;font-weight:800;font-size:38px;margin:10px 0 2px}
.nd-home .nd-price .amt small{font-size:14px;font-weight:500;color:var(--ink-soft)}
.nd-home .nd-price ul{margin:20px 0 24px;display:flex;flex-direction:column;gap:11px}
.nd-home .nd-price li{font-size:14px;display:flex;gap:10px;align-items:flex-start;color:var(--ink-soft)}
.nd-home .nd-price li svg{width:18px;height:18px;flex:0 0 18px;stroke:var(--red);fill:none;margin-top:1px}
.nd-home .nd-price .col.feature li svg{stroke:var(--red-soft)}
.nd-home .nd-price .btn-slot{margin-top:auto}

.nd-home .nd-fin{background:var(--ink);border-radius:24px;padding:52px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;overflow:hidden}
.nd-home .nd-fin h2{color:#fff;font-size:clamp(26px,3.2vw,38px)}
.nd-home .nd-fin h2 .em{color:var(--red);font-style:italic}
.nd-home .nd-fin ul{margin:22px 0 0;display:flex;flex-direction:column;gap:12px}
.nd-home .nd-fin li{display:flex;gap:11px;align-items:center;font-size:15px;color:rgba(255,255,255,.85)}
.nd-home .nd-fin li svg{width:20px;height:20px;stroke:var(--red-soft);fill:none;flex:0 0 20px}
.nd-home .nd-fin-photo{border-radius:var(--radius);overflow:hidden;position:relative;padding-top:64%}
.nd-home .nd-fin-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.nd-home .nd-rev-top{margin-bottom:40px}
.nd-home .nd-rev-score{font-family:'Sora',sans-serif;font-weight:800;font-size:58px;line-height:1}
.nd-home .nd-stars{color:#f5a623;font-size:18px;letter-spacing:2px}
.nd-home .nd-rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.nd-home .nd-rev .card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.nd-home .nd-rev .card .cstars{color:#f5a623;font-size:14px;letter-spacing:2px;margin-bottom:12px}
.nd-home .nd-rev .card p{font-size:14px;color:var(--ink-soft);line-height:1.6}
.nd-home .nd-rev .who{display:flex;align-items:center;gap:11px;margin-top:16px}
.nd-home .nd-rev .av{width:36px;height:36px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:600;font-size:14px}
.nd-home .nd-rev .who b{font-size:14px;font-family:'Sora',sans-serif;font-weight:600}

.nd-home .nd-loc{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:stretch}
.nd-home .nd-loc .map{border-radius:var(--radius);overflow:hidden;min-height:340px;border:1px solid var(--line)}
.nd-home .nd-loc .map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.nd-home .nd-loc .info{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px}
.nd-home .nd-loc .info h3{font-size:22px;font-weight:700}
.nd-home .nd-loc .row{display:flex;gap:13px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.nd-home .nd-loc .row:last-of-type{border-bottom:0}
.nd-home .nd-loc .row svg{width:20px;height:20px;stroke:var(--red);fill:none;flex:0 0 20px;margin-top:2px}
.nd-home .nd-loc .k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#9a9a9a;font-family:'Sora',sans-serif}
.nd-home .nd-loc .v{font-size:15px;font-weight:500}
.nd-home .nd-loc .v a{color:var(--red)}

.nd-home .nd-areas{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.nd-home .nd-areas span,.nd-home .nd-areas a{display:block;background:#fff;border:1px solid var(--line);border-radius:100px;padding:11px 8px;text-align:center;font-size:13.5px;font-weight:500;color:var(--ink);transition:border-color .15s ease,color .15s ease}
.nd-home .nd-areas span:hover,.nd-home .nd-areas a:hover{border-color:var(--red);color:var(--red)}
.nd-home .nd-areas span.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:700}
.nd-home .nd-areas span.active:hover{color:#fff}

.nd-home .nd-faq{max-width:820px;margin:0 auto}
.nd-home .nd-faq .item{border-bottom:1px solid var(--line)}
.nd-home .nd-faq .q{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:22px 44px 22px 0;font-family:'Sora',sans-serif;font-weight:600;font-size:17px;color:var(--ink);position:relative}
.nd-home .nd-faq .q::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--red);font-weight:400}
.nd-home .nd-faq .item.open .q::after{content:"\2013"}
.nd-home .nd-faq .a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.nd-home .nd-faq .a p{color:var(--ink-soft);font-size:15px;padding:0 44px 24px 0}

.nd-home .nd-final{background:var(--ink);text-align:center;padding:94px 0;position:relative;overflow:hidden}
.nd-home .nd-final-addr{position:relative;display:inline-flex;align-items:center;gap:9px;margin-top:26px;color:#fff;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:14.5px;border-bottom:1.5px solid transparent;transition:.15s}
.nd-home .nd-final-addr svg{width:18px;height:18px;stroke:var(--wa-green);fill:none}
.nd-home .nd-final-addr:hover{border-bottom-color:var(--wa-green);color:#fff}
.nd-home .nd-final::after{content:"";position:absolute;left:50%;top:-120px;width:520px;height:520px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(229,52,43,.28),transparent 62%);pointer-events:none}
.nd-home .nd-final .nd-wrap{position:relative;z-index:1}
.nd-home .nd-final h2{color:#fff;font-size:clamp(32px,4.6vw,54px)}
.nd-home .nd-final h2 .out{color:var(--red)}
.nd-home .nd-final p{max-width:560px;margin:18px auto 30px;font-size:17px;color:rgba(255,255,255,.75)}
.nd-home .nd-final .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.nd-home .nd-final .nd-btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.nd-home .nd-final .nd-btn-ghost:hover{background:#fff;color:var(--ink)}

.nd-home .nd-reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.nd-home .nd-reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.nd-home .nd-reveal{opacity:1;transform:none;transition:none}.nd-home .nd-strip-track,
.nd-home .nd-hdot{animation:none}}

@media(max-width:960px){
  .nd-home .nd-ba-grid,
.nd-home .nd-fin,
.nd-home .nd-loc{grid-template-columns:1fr}
  .nd-home .nd-treat{grid-template-columns:repeat(2,1fr)}
  .nd-home .nd-price{grid-template-columns:1fr}
  .nd-home .nd-rev-grid{grid-template-columns:1fr}
  .nd-home .nd-areas{grid-template-columns:repeat(3,1fr)}
  .nd-home .nd-fin{padding:36px}
  .nd-home .nd-sec-head.split{flex-direction:column;align-items:flex-start;gap:14px}
  .nd-home .nd-sec-head.split .lead{max-width:100%}
}
@media(max-width:520px){
  .nd-home .nd-treat{grid-template-columns:1fr}
  .nd-home .nd-hero-inner{padding:64px 0}
  .nd-home .nd-hero h1{font-size:34px}
  .nd-home .nd-sec{padding:56px 0}
  .nd-home .nd-book{padding:40px 0}
  .nd-home .nd-book-card{padding:20px}
  .nd-home .nd-book-tabs{gap:16px}
  .nd-home .nd-areas{grid-template-columns:repeat(2,1fr)}
  .nd-home .nd-hero-trust{gap:14px}
  .nd-home .nd-final{padding:70px 0}
}

/* VIDEO */
.nd-home .nd-video{background:var(--ink);padding:92px 0}
.nd-home .nd-video-head{text-align:center;max-width:620px;margin:0 auto 40px}
.nd-home .nd-video-head .nd-eyebrow{justify-content:center}
.nd-home .nd-video-head h2{color:#fff;font-size:clamp(28px,3.6vw,42px);margin-top:14px}
.nd-home .nd-video-head p{color:rgba(255,255,255,.66);font-size:17px;margin-top:14px}
.nd-home .nd-video-stage{position:relative;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.nd-home .nd-video-ratio{position:relative;padding-top:52%}
.nd-home .nd-video-ratio img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nd-home .nd-video-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.5),rgba(0,0,0,.12))}
.nd-home .nd-play{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 40px rgba(229,52,43,.5);transition:transform .18s}
.nd-home .nd-video-stage:hover .nd-play{transform:translate(-50%,-50%) scale(1.08)}
.nd-home .nd-play svg{width:30px;height:30px;fill:#fff;margin-left:4px}
.nd-home .nd-video-stop{position:absolute;z-index:3;top:18px;right:18px;width:40px;height:40px;border-radius:50%;background:rgba(20,20,20,.55);border:0;color:#fff;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.nd-home .nd-video-stop:hover{background:rgba(20,20,20,.8)}
.nd-home .nd-video-stop svg{width:16px;height:16px;stroke:currentColor;fill:none}

/* ---- clean/booking-first hero + strip/video overrides ---- */
/* hero: light, centered */
/* ---- clean, booking-first hero ---- */
.nd-home .nd-hero-clean{background:#fff;padding:0;overflow:hidden}
.nd-home .nd-hero-clean-in{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding-top:70px;padding-bottom:72px}
/* background variation: a decorative photo panel peeking out from
   behind the booking card only — confined entirely to that column, so
   it can never interfere with the heading/copy on the left */
/* background variation: full-bleed photo behind the entire hero
   section, with a white fade over it so text stays legible. Uses
   fresh, unique class names (nd-hero-fullbg, not nd-hero-bg) to avoid
   colliding with the older unrelated dark-hero component's CSS. */
.nd-home .nd-hero-clean.has-fullbg{position:relative;overflow:hidden}
.nd-home .nd-hero-fullbg{position:absolute;inset:0;z-index:0}
.nd-home .nd-hero-fullbg img{width:100%;height:100%;object-fit:cover}
.nd-home .nd-hero-fullbg-fade{position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.75) 45%,rgba(255,255,255,.62) 75%,rgba(255,255,255,.5) 100%)}
.nd-home .nd-hero-clean .nd-hero-open{background:#f4f4f4;border:1px solid var(--line);color:var(--ink)}
.nd-home .nd-hero-clean h1{color:var(--ink);font-size:clamp(38px,4.6vw,58px);line-height:1.04;letter-spacing:-.02em;margin:20px 0 0;max-width:none}
.nd-home .nd-hero-clean h1 .hl{color:var(--red)}
.nd-home .nd-hero-clean .nd-hero-sub{color:var(--ink-soft);font-size:18px;margin:18px 0 22px;max-width:480px}
/* google reviews row */
.nd-home .nd-hero-trustrow{display:flex;align-items:center;gap:10px;margin-top:4px}
.nd-home .tr-rating{display:inline-flex;align-items:center;gap:8px;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:15px;color:var(--ink)}
.nd-home .tr-rating .stars{color:#f5a623;font-size:17px;letter-spacing:1.5px}
.nd-home .tr-rating b{color:var(--ink);font-weight:800}
/* address link */
.nd-home .nd-hero-addr-link{display:inline-flex;align-items:center;gap:9px;margin-top:20px;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:14.5px;color:var(--ink);border-bottom:1.5px solid transparent;transition:color .15s,border-color .15s}
.nd-home .nd-hero-addr-link svg{width:18px;height:18px;stroke:var(--wa-green);fill:none}
.nd-home .nd-hero-addr-link:hover{color:var(--wa-green);border-bottom-color:var(--wa-green)}
/* booking card */
.nd-home .nd-hero-booking{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:26px}
.nd-home .nd-hbk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.nd-home .nd-hbk-head h2{font-family:'Sora','Segoe UI',system-ui,sans-serif;font-size:20px;font-weight:800;color:var(--ink);margin:0}
.nd-home .nd-hbk-slots{display:inline-flex;align-items:center;gap:8px;background:#eafaf0;color:#0f9d58;font-family:'Sora',sans-serif;font-weight:600;font-size:12px;padding:7px 12px;border-radius:100px}
.nd-home .nd-hbk-slots .d{width:8px;height:8px;border-radius:50%;background:var(--wa-green)}
.nd-home .nd-hbk-field{display:block;margin-bottom:14px}
.nd-home .nd-hbk-field>span{display:block;font-family:'Sora',sans-serif;font-weight:600;font-size:13px;color:var(--ink);margin-bottom:7px}
.nd-home .nd-hbk-field select{width:100%;appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234a4a4a' stroke-width='2.4'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 14px center;border:1px solid var(--line);border-radius:12px;padding:13px 40px 13px 14px;font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);cursor:pointer}
.nd-home .nd-hbk-field select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(229,52,43,.12)}
.nd-home .nd-hbk-field input,.nd-home .nd-hbk-field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);background:#fff}
.nd-home .nd-hbk-field input:focus,.nd-home .nd-hbk-field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(229,52,43,.12)}
.nd-home .nd-hbk-field textarea{resize:vertical;font-family:inherit}

/* Radio-card service selector — home page + blog sidebar widgets only.
   Other pages keep the plain <select> above, untouched. */
.nd-service-cards{display:flex;flex-direction:column;gap:6px}
.nd-service-cards-loading{padding:14px;color:var(--ink-soft);font-size:14px;text-align:center}
.nd-svc-option{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}
.nd-svc-option:hover{border-color:#d8d8d8}
.nd-svc-option.selected{border-color:var(--red);background:rgba(229,52,43,.05)}
.nd-svc-option .checkbox{flex-shrink:0;width:17px;height:17px;margin-top:2px;border-radius:4px;border:2px solid var(--line);display:flex;align-items:center;justify-content:center}
.nd-svc-option .checkbox svg{width:10px;height:10px;stroke:#fff;fill:none;opacity:0;transition:opacity .1s}
.nd-svc-option.selected .checkbox{background:var(--red);border-color:var(--red)}
.nd-svc-option.selected .checkbox svg{opacity:1}
.nd-svc-option-body{flex:1;min-width:0;display:flex;flex-direction:column}
.nd-svc-option-body .title{font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.3}
.nd-svc-option-body .desc{font-size:11px;color:var(--ink-soft);line-height:1.3;margin-top:1px}
.nd-svc-option-meta{flex-shrink:0;font-size:11px;color:var(--ink-soft);white-space:nowrap;padding-top:2px}
.nd-home .nd-hbk-actions{margin-top:20px}
.nd-home .nd-hbk-go{width:100%;justify-content:center;font-size:16px;padding:15px}
.nd-home .nd-hbk-call{width:100%;justify-content:center;gap:9px;margin-top:12px;background:var(--ink);color:#fff;border:1.5px solid var(--ink);border-radius:100px;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:700;font-size:15px;padding:14px;transition:background .15s,transform .15s}
.nd-home .nd-hbk-call svg{width:17px;height:17px;stroke:var(--red);fill:none}
.nd-home .nd-hbk-call:hover{background:#2b2b2b;transform:translateY(-2px)}
/* mobile-only hero CTAs: quick-access "Book"/"Call" buttons shown only
   on mobile, giving an immediate tappable action before scrolling down
   to the full booking form (which stays visible at every screen size
   too, but sits below these on mobile). Hidden on desktop, where the
   booking widget already sits prominently alongside the hero copy. */
.nd-home .nd-hero-mobile-cta{display:none}
@media(max-width:960px){
  .nd-home .nd-hero-clean-in{grid-template-columns:1fr;gap:32px;padding-top:48px;padding-bottom:52px}
  /* center the hero copy on mobile */
  .nd-home .nd-hero-clean .nd-hero-copy{text-align:center}
  .nd-home .nd-hero-clean .nd-hero-open{margin-left:auto;margin-right:auto}
  .nd-home .nd-hero-clean .nd-hero-sub{margin-left:auto;margin-right:auto}
  .nd-home .nd-hero-clean .nd-hero-trustrow{justify-content:center}
  .nd-home .nd-hero-clean .nd-hero-addr-link{justify-content:center}
  .nd-home .nd-hero-mobile-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}
  .nd-home .nd-hero-mobile-cta .nd-btn-ghost{display:inline-flex;align-items:center;gap:8px}
  .nd-home .nd-hero-mobile-cta .nd-btn-ghost svg{width:16px;height:16px;stroke:currentColor;fill:none}
  /* the booking widget stays visible and full-width on mobile — it's the
     only way to book now, so it can't be hidden the way it used to be */
  .nd-home .nd-hero-booking{width:100%}
}
/* trust strip: black bg, white text */
.nd-home .nd-strip{background:var(--ink);color:#fff}
.nd-home .nd-strip-track span::after{opacity:.4}
/* video fold: light, not dark */
.nd-home .nd-video{background:#fff}
@media(max-width:960px){
  .nd-home .nd-video{background:var(--mist)}
}
.nd-home .nd-video.mist{background:var(--mist)}
.nd-home .nd-video-head h2{color:var(--ink)}
.nd-home .nd-video-head p{color:var(--ink-soft)}

/* ==========================================================================
   FUNCTIONAL BOOKING WIDGET — step 2 (patient info), alerts, loader.
   Not part of the static mockup, since the "Book directly online" section
   is a real, working multi-step form (see assets/js/booking.js).
   ========================================================================== */
.nd-home .nd-book-tab{background:none;border:0;cursor:pointer;font-family:inherit}
.nd-home .nd-book-step{width:100%}
.nd-home .nd-book-confirm-box{background:var(--mist);border-radius:12px;padding:16px 18px;margin-bottom:18px}
.nd-home .nd-book-confirm-box h4{font-family:'Sora',sans-serif;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.nd-home .nd-book-back{background:none;border:0;text-decoration:underline;font-size:13px;color:var(--ink-soft);cursor:pointer;font-family:inherit}
.nd-home .nd-book-confirm-box p{font-size:13.5px;color:var(--ink-soft);margin-top:4px}
.nd-home .nd-book-alert{background:#fdeceb;border:1px solid #f5c6c2;color:var(--red-dark);font-size:14px;padding:12px 16px;border-radius:10px;margin-bottom:18px}
.nd-home .nd-book-error{color:var(--red);font-size:12.5px;margin-top:6px}
.nd-home .nd-book-consent{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--ink-soft);margin-bottom:14px}
.nd-home .nd-book-consent input{margin-top:3px;width:auto}
.nd-home .nd-book-consent a{color:var(--red);text-decoration:underline}
.nd-home .nd-book-loader{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-soft);margin-top:16px}
.nd-home .nd-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--red);animation:nd-spin .7s linear infinite}
@keyframes nd-spin{to{transform:rotate(360deg)}}

.nd-home .nd-review-stars{color:#f5b400;font-size:13px;letter-spacing:2px;flex-shrink:0}

/* ==========================================================================
   SERVICES + REVIEWS — component CSS sourced from the reference stylesheet,
   remapped onto the existing design tokens (--red/--ink/etc.) instead of
   duplicating near-equivalents, and scoped the same safe way as everything
   else here. The section wrapper/heading/eyebrow around these components
   still uses the theme's existing .nd-sec/.nd-wrap/.nd-eyebrow classes for
   consistency with Hero/Video, rather than importing a second parallel
   ".nd-section/.nd-inner" wrapper system.
   ========================================================================== */
.nd-home .nd-services-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.nd-home .nd-service-card{
  background: #fff;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: background .18s;
}
.nd-home .nd-service-card:hover{ background: var(--red-tint); }
.nd-home .nd-service-card:hover .nd-service-icon{ border-color: var(--red); color: var(--red); }
.nd-home .nd-service-icon{
  width: 48px; height: 48px;
  border-radius: 12px;
  border: 1.5px solid var(--line);
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  color: var(--ink);
  transition: all .18s;
  flex-shrink: 0;
}
.nd-home .nd-service-icon svg{ display: block; }
.nd-home .nd-service-name{
  font-size: 12.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  line-height: 1.35;
  color: var(--ink);
}

.nd-home .nd-reviews-grid{
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 52px;
  align-items: start;
}
.nd-home .nd-reviews-summary{ position: sticky; top: 86px; }
.nd-home .nd-reviews-heading{font-size:40px;margin:14px 0 16px;max-width:380px}
.nd-home .nd-rating-big{
  font-size: 96px;
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1;
  color: var(--ink);
}
.nd-home .nd-rating-big small{ font-size: 22px; color: var(--ink-soft); font-weight: 500; letter-spacing: 0px; }
.nd-home .nd-review-list{ display: grid; gap: 14px; }
.nd-home .nd-review-card{
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px 26px;
  transition: box-shadow .18s;
}
.nd-home .nd-review-card:hover{ box-shadow: var(--shadow); }
.nd-home .nd-review-head{
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 12px;
}
.nd-home .nd-reviewer{ display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 14px; }
.nd-home .nd-reviewer-av{
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--red-tint); color: var(--red-dark);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px; flex-shrink: 0;
}
.nd-home .nd-review-card p{ font-size: 15px; color: var(--ink); line-height: 1.55; }
.nd-home .nd-review-when{ font-size: 12px; color: var(--ink-faint); margin-top: 10px; }
.nd-home .nd-badge{
  font-size: 10.5px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 5px 10px; border-radius: 7px;
  border: 1px solid var(--line); background: #fff; color: var(--ink-soft);
  display: inline-block;
}
/* Responsive behaviour for these two sections is consolidated into the
   theme's existing 960px/520px breakpoints above, rather than keeping a
   second, separately-numbered breakpoint system. */

/* ==========================================================================
   FLOATING RIBBON — appears after scrolling past the hero, hides again
   near the footer (see assets/js/main.js).
   ========================================================================== */
.nd-home .nd-ribbon{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--ink);color:#fff;transform:translateY(110%);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:0 -10px 40px rgba(0,0,0,.28)}
.nd-home .nd-ribbon.show{transform:translateY(0)}
.nd-home .nd-ribbon-in{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 24px;max-width:1200px;margin:0 auto;flex-wrap:wrap}
.nd-home .nd-ribbon-msg{font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:700;font-size:16px}
.nd-home .nd-ribbon-msg .em{color:var(--red-soft)}
.nd-home .nd-ribbon-cta{display:flex;gap:10px;flex-wrap:wrap}
.nd-home .nd-ribbon-trust{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.nd-home .nd-ribbon-trust .t{display:inline-flex;align-items:center;gap:8px;font-family:'Sora','Segoe UI',system-ui,sans-serif;font-weight:600;font-size:13.5px;color:#fff}
.nd-home .nd-ribbon-trust .t svg{width:16px;height:16px;stroke:var(--red-soft);fill:none}
@media(max-width:820px){.nd-home .nd-ribbon-trust{display:none}}
@media(max-width:640px){
  .nd-home .nd-ribbon-in{justify-content:center;text-align:center;padding:12px 16px}
  .nd-home .nd-ribbon-msg{width:100%;font-size:14.5px}
  .nd-home .nd-ribbon-cta{width:100%;justify-content:center}
  .nd-home .nd-ribbon-cta .nd-btn{flex:1}
}

/* ==========================================================================
   SERVICES + REVIEWS — responsive overrides. These must come after the
   base rules above (same specificity, and CSS resolves ties by source
   order) — that's exactly why these were never taking effect before: an
   earlier copy of these same overrides was positioned before the base
   rules elsewhere in this file, so the base rule always won regardless
   of screen width. Fixed by keeping the only copy here, after the base.
   ========================================================================== */
@media(max-width:960px){
  .nd-home .nd-services-grid{grid-template-columns:repeat(2,1fr)}
  .nd-home .nd-reviews-grid{grid-template-columns:1fr;gap:32px}
  .nd-home .nd-reviews-summary{position:static}
}
@media(max-width:520px){
  .nd-home .nd-services-grid{grid-template-columns:1fr}
}

/* ---- mobile-only standalone booking slot (after the video section) ----
   Only populated by JS below the hero's own 960px stacking breakpoint;
   empty (and taking up no space) above it. Needs the same max-width/
   padding as .nd-wrap since it sits as a direct child of .nd-home
   rather than inside a .nd-wrap container. ---- */
.nd-home #ndMobileBookingSlot:not(:empty){max-width:var(--max);margin:0 auto;padding:40px var(--pad)}
