/* ==========================================================================
   Nireston & Heritage Capital — house stylesheet
   "Ledger Terminal" art direction
   class scheme: nhc.<region>-<element> (dot literal in class attr,
   escaped as \. in selectors below) — see /partials for usage examples.
   ========================================================================== */

:root{
  /* shared tokens consumed by cookie-consent widget & other injected UI */
  --site-bg:#0B0B0C;
  --site-surface:#161616;
  --site-text:#FFFFFF;
  --site-muted:#8A8A85;
  --site-accent:#C6FF00;

  /* internal tokens */
  --nhc-accent2:#1F3D33;
  --nhc-line:rgba(255,255,255,.12);
  --nhc-line-soft:rgba(255,255,255,.08);
  --nhc-container:1140px;
  --nhc-radius-card:16px;
  --nhc-section-pad:80px;
  --nhc-font-head:'JetBrains Mono', ui-monospace, monospace;
  --nhc-font-body:'IBM Plex Sans', system-ui, sans-serif;
  --nhc-shadow:0 14px 32px -12px rgba(0,0,0,.55);
}

/* ---------------------------------------------------------------------- */
/* Reset / base                                                           */
/* ---------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;
  background:var(--site-bg);
  color:var(--site-text);
  font-family:var(--nhc-font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block;}
ul,ol{list-style:none;margin:0;padding:0;}
a{color:inherit;}
button{font:inherit;}
input,textarea,select{font-family:inherit;font-size:1rem;color:inherit;}

h1,h2,h3,h4{
  font-family:var(--nhc-font-head);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.18;
  margin:0 0 .5em;
}
h1{font-size:clamp(2.3rem,4vw + 1rem,4.2rem);}
h2{font-size:clamp(1.7rem,2.6vw + .8rem,2.6rem);}
h3{font-size:clamp(1.25rem,1.4vw + .8rem,1.6rem);}
p{margin:0 0 1em;color:inherit;}

:focus-visible{outline:2px solid var(--site-accent);outline-offset:3px;border-radius:2px;}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ---------------------------------------------------------------------- */
/* Layout primitives                                                      */
/* ---------------------------------------------------------------------- */
.nhc\.container{width:100%;max-width:var(--nhc-container);margin:0 auto;padding:0 24px;}
.nhc\.section{padding:var(--nhc-section-pad) 0;}
.nhc\.section-tight{padding:56px 0;}
.nhc\.section-bg-surface{background:var(--site-surface);}
.nhc\.section-bg-accent2{background:var(--nhc-accent2);color:#E4F3DD;}
.nhc\.section-bg-accent{background:var(--site-accent);color:#0B0B0C;}
.nhc\.section-bg-base{background:var(--site-bg);}
.nhc\.section-bg-accent2 .nhc\.eyebrow,
.nhc\.section-bg-accent2 h2,
.nhc\.section-bg-accent2 .nhc\.stat-value{color:var(--site-accent);}
.nhc\.section-bg-accent h2,
.nhc\.section-bg-accent .nhc\.eyebrow{color:#0B0B0C;}

.nhc\.rule{border:none;border-top:1px solid var(--nhc-line);margin:0;}

.nhc\.section-head{max-width:660px;margin-bottom:48px;}
.nhc\.section-head p{color:var(--site-muted);}

@media (max-width:768px){
  :root{--nhc-section-pad:56px;}
  .nhc\.container{padding:0 18px;}
}

/* ---------------------------------------------------------------------- */
/* Signature typographic elements: bracket eyebrow + cursor, tags, pills  */
/* ---------------------------------------------------------------------- */
.nhc\.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--nhc-font-head);
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--site-accent);margin-bottom:16px;
}
.nhc\.eyebrow::before{content:"[";color:var(--site-muted);}
.nhc\.eyebrow::after{content:"]";color:var(--site-muted);}
.nhc\.eyebrow-cursor{
  display:inline-block;width:.5em;height:1em;background:var(--site-accent);
  animation:nhcBlink 1.1s steps(1) infinite;
}
@keyframes nhcBlink{50%{opacity:0;}}

.nhc\.tag{
  display:inline-flex;align-items:center;
  padding:.32em .85em;border-radius:9999px;
  background:rgba(198,255,0,.08);color:var(--site-accent);
  font-family:var(--nhc-font-head);font-size:.68rem;
  letter-spacing:.08em;text-transform:uppercase;
}
.nhc\.tag::before{content:"[";margin-right:.3em;opacity:.55;}
.nhc\.tag::after{content:"]";margin-left:.3em;opacity:.55;}

/* pills: nav items, badges, buttons */
.nhc\.pill{
  display:inline-flex;align-items:center;gap:.4em;
  padding:.55em 1.1em;border-radius:9999px;
  border:1px solid var(--nhc-line);
  font-family:var(--nhc-font-head);font-size:.72rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--site-muted);
}

/* ---------------------------------------------------------------------- */
/* Buttons                                                                */
/* ---------------------------------------------------------------------- */
.nhc\.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  padding:.95em 1.7em;border-radius:9999px;
  font-family:var(--nhc-font-head);font-size:.8rem;letter-spacing:.06em;
  text-transform:uppercase;border:1px solid transparent;cursor:pointer;
  text-decoration:none;transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
  min-height:44px;
}
.nhc\.btn-primary{background:var(--site-accent);color:#0B0B0C;}
.nhc\.btn-primary:hover{transform:translateY(-2px);background:#d8ff52;}
.nhc\.btn-ghost{background:transparent;color:var(--site-text);border-color:var(--nhc-line);}
.nhc\.btn-ghost:hover{border-color:var(--site-accent);color:var(--site-accent);}

/* ---------------------------------------------------------------------- */
/* Media frame — shared image treatment (fills box, mono w/ rim light)    */
/* ---------------------------------------------------------------------- */
.nhc\.media-frame{position:relative;overflow:hidden;border-radius:var(--nhc-radius-card);background:var(--site-surface);}
.nhc\.media-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.08);transition:filter .35s ease;}
.nhc\.media-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(198,255,0,.28), inset 10px 0 34px -18px rgba(198,255,0,.65);
}
.nhc\.media-frame:hover img{filter:grayscale(.15) contrast(1.05);}

/* ---------------------------------------------------------------------- */
/* Header — thin utility ticker + big pill nav                            */
/* ---------------------------------------------------------------------- */
#page-header-v2t{position:sticky;top:0;z-index:200;}

.nhc\.utility-bar{
  background:var(--nhc-accent2);color:#CFE8C9;
  border-bottom:1px solid var(--nhc-line-soft);overflow:hidden;
}
.nhc\.utility-track{
  display:flex;white-space:nowrap;padding:8px 0;
  font-family:var(--nhc-font-head);font-size:.7rem;letter-spacing:.08em;
  animation:nhcTicker 26s linear infinite;
}
.nhc\.utility-track span{display:inline-flex;align-items:center;gap:28px;padding-right:48px;}
@keyframes nhcTicker{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.nhc\.utility-track{animation:none;}}

.nhc\.nav-shell{
  background:rgba(11,11,12,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--nhc-line-soft);
  transition:box-shadow .25s ease;
}
#page-header-v2t.is-scrolled .nhc\.nav-shell{box-shadow:0 10px 26px rgba(0,0,0,.45);}

.nhc\.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;transition:padding .25s ease;}
#page-header-v2t.is-scrolled .nhc\.nav-inner{padding:12px 24px;}

.nhc\.brand-mark{display:inline-flex;align-items:baseline;gap:.55em;text-decoration:none;color:var(--site-text);}
.nhc\.brand-mark svg{width:32px;height:32px;flex-shrink:0;align-self:center;color:var(--site-accent);}
.nhc\.brand-word{font-family:var(--nhc-font-head);font-size:1.02rem;letter-spacing:.03em;text-transform:uppercase;}

.nhc\.nav-primary{display:flex;align-items:center;gap:6px;}
.nhc\.nav-primary a{
  display:inline-flex;align-items:center;padding:.62em 1.15em;border-radius:9999px;
  font-family:var(--nhc-font-head);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--site-muted);text-decoration:none;transition:all .2s ease;
}
.nhc\.nav-primary a:hover,
.nhc\.nav-primary a.is-active{background:var(--site-accent);color:#0B0B0C;}

.nhc\.nav-actions{display:flex;align-items:center;gap:14px;}

#burger-wmd{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;background:transparent;border:1px solid var(--nhc-line);
  border-radius:9999px;cursor:pointer;
}
#burger-wmd span{width:18px;height:2px;background:var(--site-text);margin:0 auto;display:block;}

.nhc\.nav-overlay{
  position:fixed;inset:0;background:rgba(4,4,4,.65);
  opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:390;
}
.nhc\.nav-overlay.is-open{opacity:1;pointer-events:auto;}

.nhc\.nav-drawer{
  position:fixed;top:0;right:0;height:100vh;width:min(320px,86vw);
  background:var(--site-surface);border-left:1px solid var(--nhc-line);
  padding:26px 24px;transform:translateX(100%);transition:transform .32s ease;
  z-index:400;display:flex;flex-direction:column;gap:28px;overflow-y:auto;
}
.nhc\.nav-drawer.is-open{transform:translateX(0);}
.nhc\.nav-drawer-head{display:flex;align-items:center;justify-content:space-between;}
#drawer-close-ot9{
  width:38px;height:38px;border-radius:9999px;border:1px solid var(--nhc-line);
  background:transparent;color:var(--site-text);cursor:pointer;font-size:1.1rem;
}
.nhc\.nav-drawer-list{display:flex;flex-direction:column;gap:8px;}
.nhc\.nav-drawer-list a{
  display:block;padding:.85em 1.1em;border-radius:9999px;
  font-family:var(--nhc-font-head);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;
  color:var(--site-text);text-decoration:none;border:1px solid var(--nhc-line);
}
.nhc\.nav-drawer-list a:hover{border-color:var(--site-accent);color:var(--site-accent);}

@media (max-width:900px){
  .nhc\.nav-primary{display:none;}
  #burger-wmd{display:flex;}
}

/* ---------------------------------------------------------------------- */
/* Hero — inline stat row baked into headline                             */
/* ---------------------------------------------------------------------- */
.nhc\.hero-lede{padding:110px 0 0;border-bottom:1px solid var(--nhc-line-soft);position:relative;}
.nhc\.hero-inner{max-width:840px;}
.nhc\.hero-headline{margin:16px 0 22px;}
.nhc\.hero-sub{color:var(--site-muted);font-size:1.06rem;max-width:58ch;margin-bottom:36px;}
.nhc\.hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:0;}

.nhc\.hero-stat-strip{
  margin-top:56px;
  display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--nhc-line);border-bottom:none;
  border-radius:16px 16px 0 0;
  background:var(--site-surface);
}
.nhc\.hero-stat{padding:28px 26px;border-right:1px solid var(--nhc-line-soft);}
.nhc\.hero-stat:last-child{border-right:none;}
.nhc\.stat-value{display:block;font-family:var(--nhc-font-head);font-size:clamp(1.5rem,2.3vw,2.3rem);color:var(--site-accent);}
.nhc\.stat-label{display:block;margin-top:8px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--site-muted);}
.nhc\.stat-label::before{content:"[ ";}
.nhc\.stat-label::after{content:" ]";}

@media (max-width:768px){
  .nhc\.hero-lede{padding:96px 0 0;}
  .nhc\.hero-stat-strip{grid-template-columns:1fr;}
  .nhc\.hero-stat{border-right:none;border-bottom:1px solid var(--nhc-line-soft);}
}

/* ---------------------------------------------------------------------- */
/* Split feature — alternating image/text rows                           */
/* ---------------------------------------------------------------------- */
.nhc\.split-feature{padding:56px 0;border-bottom:1px solid var(--nhc-line-soft);}
.nhc\.split-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.nhc\.split-row.--reverse .nhc\.split-media{order:2;}
.nhc\.split-row.--reverse .nhc\.split-text{order:1;}
.nhc\.split-media{aspect-ratio:4/3;}
.nhc\.split-text .nhc\.eyebrow{margin-bottom:12px;}
@media (max-width:768px){
  .nhc\.split-row{grid-template-columns:1fr;gap:28px;}
  .nhc\.split-row.--reverse .nhc\.split-media,
  .nhc\.split-row.--reverse .nhc\.split-text{order:initial;}
}

/* ---------------------------------------------------------------------- */
/* Gallery — captioned project cards                                      */
/* ---------------------------------------------------------------------- */
.nhc\.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;}
.nhc\.card-project{
  background:var(--site-surface);border-radius:var(--nhc-radius-card);overflow:hidden;
  border:1px solid var(--nhc-line-soft);box-shadow:var(--nhc-shadow);
}
.nhc\.card-project-media{aspect-ratio:16/10;border-radius:0;}
.nhc\.card-project-body{padding:20px 22px 24px;}
.nhc\.card-project-cap{display:block;margin-bottom:8px;}
.nhc\.card-project-body h3{margin-bottom:6px;}
.nhc\.card-project-body p{color:var(--site-muted);margin-bottom:0;font-size:.92rem;}

/* ---------------------------------------------------------------------- */
/* Case study — three-act layout                                         */
/* ---------------------------------------------------------------------- */
.nhc\.case-study{
  display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-card);overflow:hidden;
}
.nhc\.case-act{padding:44px 34px;border-right:1px solid var(--nhc-line-soft);}
.nhc\.case-act:last-child{border-right:none;}
.nhc\.case-act-num{display:block;font-family:var(--nhc-font-head);color:var(--site-accent);font-size:.78rem;margin-bottom:14px;letter-spacing:.1em;}
.nhc\.case-act p{color:var(--site-muted);}
@media (max-width:900px){
  .nhc\.case-study{grid-template-columns:1fr;}
  .nhc\.case-act{border-right:none;border-bottom:1px solid var(--nhc-line-soft);}
  .nhc\.case-act:last-child{border-bottom:none;}
}

/* ---------------------------------------------------------------------- */
/* Quote feature                                                          */
/* ---------------------------------------------------------------------- */
.nhc\.quote-feature{max-width:820px;margin:0 auto;text-align:center;}
.nhc\.quote-text{font-family:var(--nhc-font-head);font-size:clamp(1.4rem,1.6vw + 1rem,2.2rem);line-height:1.45;font-weight:500;text-transform:none;}
.nhc\.quote-text::before{content:"\201C";color:var(--site-accent);}
.nhc\.quote-text::after{content:"\201D";color:var(--site-accent);}
.nhc\.quote-rule{width:64px;height:2px;background:var(--site-accent);margin:28px auto 16px;border:none;}
.nhc\.quote-attrib{font-family:var(--nhc-font-head);font-size:.78rem;text-transform:uppercase;color:var(--site-muted);letter-spacing:.06em;}

/* ---------------------------------------------------------------------- */
/* Team — person cards                                                    */
/* ---------------------------------------------------------------------- */
.nhc\.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;}
.nhc\.card-person{background:var(--site-surface);border-radius:var(--nhc-radius-card);overflow:hidden;border:1px solid var(--nhc-line-soft);box-shadow:var(--nhc-shadow);}
.nhc\.card-person-photo{aspect-ratio:3/4;border-radius:0;}
.nhc\.card-person-body{padding:18px 20px 22px;}
.nhc\.card-person-name{font-size:1rem;margin-bottom:4px;}
.nhc\.card-person-role{display:block;font-family:var(--nhc-font-head);color:var(--site-accent);font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;}

/* ---------------------------------------------------------------------- */
/* CTA strip — full-width band / split / centered card                    */
/* ---------------------------------------------------------------------- */
.nhc\.cta-strip{background:var(--site-accent);color:#0B0B0C;padding:64px 0;text-align:center;}
.nhc\.cta-strip .nhc\.eyebrow{color:#0B0B0C;}
.nhc\.cta-strip .nhc\.eyebrow::before,.nhc\.cta-strip .nhc\.eyebrow::after{color:rgba(11,11,12,.5);}
.nhc\.cta-strip-title{margin-bottom:22px;}
.nhc\.cta-strip .nhc\.btn-primary{background:#0B0B0C;color:var(--site-accent);}
.nhc\.cta-strip .nhc\.btn-primary:hover{background:#1c1c1c;}

.nhc\.cta-split{
  display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;
  background:var(--nhc-accent2);border-radius:var(--nhc-radius-card);padding:52px;
}
.nhc\.cta-split-form{display:flex;gap:12px;flex-wrap:wrap;}
.nhc\.cta-split-form input{
  flex:1;min-width:180px;padding:.9em 1em;border-radius:9999px;
  border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.25);color:#fff;
}
@media (max-width:768px){.nhc\.cta-split{grid-template-columns:1fr;padding:34px;}}

.nhc\.cta-card{
  max-width:640px;margin:0 auto;text-align:center;
  background:var(--site-surface);border:1px solid var(--nhc-line);
  border-radius:var(--nhc-radius-card);padding:56px 40px;box-shadow:var(--nhc-shadow);
}

/* ---------------------------------------------------------------------- */
/* Page hero variants                                                     */
/* ---------------------------------------------------------------------- */
.nhc\.page-hero{padding:96px 0 64px;border-bottom:1px solid var(--nhc-line-soft);}

.nhc\.page-hero-split .nhc\.page-hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
.nhc\.page-hero-split-media{aspect-ratio:4/5;}
@media (max-width:768px){.nhc\.page-hero-split .nhc\.page-hero-inner{grid-template-columns:1fr;}}

.nhc\.page-hero-centered{text-align:center;}
.nhc\.page-hero-centered .nhc\.page-hero-inner{max-width:720px;margin:0 auto;}
.nhc\.page-hero-centered .nhc\.eyebrow{justify-content:center;}

.nhc\.page-hero-tinted{background:var(--nhc-accent2);}
.nhc\.page-hero-tinted .nhc\.eyebrow{color:var(--site-accent);}

/* ---------------------------------------------------------------------- */
/* Stats row                                                              */
/* ---------------------------------------------------------------------- */
.nhc\.stats-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-card);overflow:hidden;
}
.nhc\.stat-block{padding:38px 28px;border-right:1px solid var(--nhc-line-soft);text-align:center;}
.nhc\.stat-block:last-child{border-right:none;}
.nhc\.stat-block .nhc\.stat-value{font-size:clamp(1.7rem,2.6vw,2.5rem);}

/* ---------------------------------------------------------------------- */
/* Process — vertical timeline                                            */
/* ---------------------------------------------------------------------- */
.nhc\.process-line{position:relative;padding-left:48px;}
.nhc\.process-line::before{content:"";position:absolute;left:13px;top:6px;bottom:6px;width:1px;background:var(--nhc-line);}
.nhc\.process-step{position:relative;padding-bottom:44px;}
.nhc\.process-step:last-child{padding-bottom:0;}
.nhc\.process-step::before{
  content:"";position:absolute;left:-48px;top:4px;width:13px;height:13px;border-radius:50%;
  background:var(--site-accent);border:3px solid var(--site-bg);
}
.nhc\.process-step-num{display:block;font-family:var(--nhc-font-head);color:var(--site-accent);font-size:.72rem;letter-spacing:.08em;margin-bottom:6px;}
.nhc\.process-step p{color:var(--site-muted);margin-bottom:0;}

/* ---------------------------------------------------------------------- */
/* Checklist beside image                                                 */
/* ---------------------------------------------------------------------- */
.nhc\.checklist-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.nhc\.checklist-media{aspect-ratio:4/3;}
.nhc\.checklist-list{display:flex;flex-direction:column;gap:0;}
.nhc\.checklist-list li{
  display:flex;gap:12px;align-items:flex-start;padding:14px 0;
  border-bottom:1px dashed var(--nhc-line);
}
.nhc\.checklist-list li:last-child{border-bottom:none;}
.nhc\.checklist-list li::before{content:"\2713";color:var(--site-accent);font-family:var(--nhc-font-head);font-weight:700;}
@media (max-width:768px){.nhc\.checklist-row{grid-template-columns:1fr;}}

/* ---------------------------------------------------------------------- */
/* FAQ accordion (shared collapsible component)                          */
/* ---------------------------------------------------------------------- */
.nhc\.accordion-item{border-bottom:1px solid var(--nhc-line);break-inside:avoid;}
.nhc\.accordion-item:first-child{border-top:1px solid var(--nhc-line);}
.nhc\.accordion-head{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:22px 4px;background:transparent;border:none;color:var(--site-text);
  font-family:var(--nhc-font-head);font-size:.98rem;text-align:left;cursor:pointer;
}
.nhc\.accordion-icon{font-size:1.3rem;color:var(--site-accent);transition:transform .3s ease;flex-shrink:0;}
.nhc\.accordion-item.is-open .nhc\.accordion-icon{transform:rotate(45deg);}
.nhc\.accordion-body{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.nhc\.accordion-item.is-open .nhc\.accordion-body{max-height:600px;}
.nhc\.accordion-body-inner{padding:0 4px 22px;color:var(--site-muted);}

.nhc\.faq-columns{columns:2;column-gap:48px;}
@media (max-width:768px){.nhc\.faq-columns{columns:1;}}

/* ---------------------------------------------------------------------- */
/* Audience — two column yes/no                                          */
/* ---------------------------------------------------------------------- */
.nhc\.audience-cols{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-card);overflow:hidden;
}
.nhc\.audience-col{padding:44px 38px;}
.nhc\.audience-col.--yes{background:var(--nhc-accent2);}
.nhc\.audience-col.--no{background:var(--site-surface);}
.nhc\.audience-col h3{margin-bottom:18px;}
.nhc\.audience-col ul{display:flex;flex-direction:column;gap:12px;}
.nhc\.audience-col li{display:flex;gap:10px;color:var(--site-muted);}
.nhc\.audience-col.--yes li::before{content:"+";color:var(--site-accent);font-family:var(--nhc-font-head);}
.nhc\.audience-col.--no li::before{content:"\2013";color:var(--site-muted);font-family:var(--nhc-font-head);}
@media (max-width:768px){.nhc\.audience-cols{grid-template-columns:1fr;}}

/* ---------------------------------------------------------------------- */
/* Methodology — numbered phases with rule between                       */
/* ---------------------------------------------------------------------- */
.nhc\.methodology-phase{
  display:grid;grid-template-columns:120px 1fr;gap:32px;
  padding:40px 0;border-bottom:1px solid var(--nhc-line);
}
.nhc\.methodology-phase:last-child{border-bottom:none;}
.nhc\.phase-num{font-family:var(--nhc-font-head);font-size:2.2rem;color:var(--site-accent);}
.nhc\.methodology-phase p{color:var(--site-muted);margin-bottom:0;}
@media (max-width:640px){.nhc\.methodology-phase{grid-template-columns:1fr;gap:10px;}}

/* ---------------------------------------------------------------------- */
/* Testimonials — single large with photo                                 */
/* ---------------------------------------------------------------------- */
.nhc\.testimonial-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center;}
.nhc\.testimonial-photo{aspect-ratio:1/1;}
.nhc\.testimonial-quote{font-family:var(--nhc-font-head);font-size:clamp(1.25rem,1.6vw + 1rem,1.8rem);text-transform:none;line-height:1.5;margin-bottom:20px;}
.nhc\.testimonial-name{font-family:var(--nhc-font-head);font-size:.85rem;text-transform:uppercase;}
.nhc\.testimonial-role{color:var(--site-muted);font-size:.85rem;}
@media (max-width:768px){.nhc\.testimonial-feature{grid-template-columns:1fr;}}

/* ---------------------------------------------------------------------- */
/* Services — alternating rows                                            */
/* ---------------------------------------------------------------------- */
.nhc\.service-row{
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
  padding:48px 0;border-bottom:1px solid var(--nhc-line-soft);
}
.nhc\.service-row:last-child{border-bottom:none;}
.nhc\.service-row.--reverse .nhc\.service-media{order:2;}
.nhc\.service-media{aspect-ratio:16/11;}
@media (max-width:768px){
  .nhc\.service-row{grid-template-columns:1fr;}
  .nhc\.service-row.--reverse .nhc\.service-media{order:initial;}
}

/* ---------------------------------------------------------------------- */
/* Credentials — mark tiles                                               */
/* ---------------------------------------------------------------------- */
.nhc\.credentials-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px;}
.nhc\.credential-tile{
  text-align:center;padding:26px 16px;border:1px solid var(--nhc-line);
  border-radius:var(--nhc-radius-card);background:var(--site-surface);
}
.nhc\.credential-tile img{max-height:38px;margin:0 auto 14px;filter:grayscale(1) invert(1) brightness(1.7);}
.nhc\.credential-tile span{display:block;font-family:var(--nhc-font-head);font-size:.7rem;text-transform:uppercase;color:var(--site-muted);letter-spacing:.06em;}

/* ---------------------------------------------------------------------- */
/* Comparison — us vs them                                                */
/* ---------------------------------------------------------------------- */
.nhc\.compare-cols{
  display:grid;grid-template-columns:1fr 1fr;
  border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-card);overflow:hidden;
}
.nhc\.compare-col{padding:38px 34px;}
.nhc\.compare-col.--us{background:var(--nhc-accent2);}
.nhc\.compare-col-head{font-family:var(--nhc-font-head);text-transform:uppercase;font-size:.85rem;margin-bottom:18px;letter-spacing:.06em;color:var(--site-accent);}
.nhc\.compare-col ul{display:flex;flex-direction:column;gap:12px;}
.nhc\.compare-col li{color:var(--site-muted);padding-bottom:12px;border-bottom:1px dashed var(--nhc-line);}
.nhc\.compare-col li:last-child{border-bottom:none;padding-bottom:0;}
@media (max-width:768px){.nhc\.compare-cols{grid-template-columns:1fr;}}

/* ---------------------------------------------------------------------- */
/* Contact form — two columns                                             */
/* ---------------------------------------------------------------------- */
.nhc\.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:flex-start;}
.nhc\.contact-reassure p{color:var(--site-muted);}
.nhc\.contact-reassure ul{margin-top:22px;display:flex;flex-direction:column;gap:12px;}
.nhc\.contact-reassure li{display:flex;gap:10px;color:var(--site-muted);}
.nhc\.contact-reassure li::before{content:"[+]";color:var(--site-accent);font-family:var(--nhc-font-head);font-size:.8rem;}
@media (max-width:900px){.nhc\.contact-grid{grid-template-columns:1fr;}}

/* Form fields (shared) */
.nhc\.form-contact{
  display:flex;flex-direction:column;gap:18px;
  background:var(--site-surface);padding:34px;border-radius:var(--nhc-radius-card);
  border:1px solid var(--nhc-line-soft);box-shadow:var(--nhc-shadow);
}
.nhc\.field{display:flex;flex-direction:column;gap:7px;}
.nhc\.field label{font-family:var(--nhc-font-head);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--site-muted);}
.nhc\.field input,.nhc\.field textarea{
  background:var(--site-bg);border:1px solid var(--nhc-line);border-radius:10px;
  padding:13px 14px;color:var(--site-text);font-family:var(--nhc-font-body);
  min-height:44px;
}
.nhc\.field textarea{min-height:130px;resize:vertical;}
.nhc\.field input:focus,.nhc\.field textarea:focus{border-color:var(--site-accent);}

/* ---------------------------------------------------------------------- */
/* Footer — big multi-column ledger                                       */
/* ---------------------------------------------------------------------- */
.nhc\.footer-ledger{background:var(--site-surface);border-top:1px solid var(--nhc-line);padding-top:72px;}
.nhc\.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;}
.nhc\.footer-col h4{
  font-family:var(--nhc-font-head);font-size:.78rem;text-transform:uppercase;
  letter-spacing:.09em;color:var(--site-accent);margin-bottom:18px;
  padding-bottom:10px;border-bottom:1px solid var(--nhc-line);
}
.nhc\.footer-brand p{color:var(--site-muted);max-width:32ch;}
.nhc\.footer-brand .nhc\.brand-mark{margin-bottom:18px;}
.nhc\.footer-line{
  display:flex;justify-content:space-between;gap:12px;padding:10px 0;
  border-bottom:1px dashed var(--nhc-line-soft);font-size:.84rem;color:var(--site-muted);
}
.nhc\.footer-line:last-child{border-bottom:none;}
.nhc\.footer-line a{color:var(--site-text);text-decoration:none;}
.nhc\.footer-line a:hover{color:var(--site-accent);}
.nhc\.footer-col ul{display:flex;flex-direction:column;}
.nhc\.footer-col ul li a{
  display:block;padding:9px 0;color:var(--site-muted);text-decoration:none;
  border-bottom:1px dashed var(--nhc-line-soft);font-size:.86rem;
}
.nhc\.footer-col ul li:last-child a{border-bottom:none;}
.nhc\.footer-col ul li a:hover{color:var(--site-accent);}

.nhc\.footer-bottom{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;
  padding:24px 0;border-top:1px solid var(--nhc-line);
  font-size:.78rem;color:var(--site-muted);
}
.nhc\.footer-legal a{color:var(--site-muted);text-decoration:none;margin-left:16px;}
.nhc\.footer-legal a:first-child{margin-left:0;}
.nhc\.footer-legal a:hover{color:var(--site-accent);}

@media (max-width:900px){
  .nhc\.footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .nhc\.footer-grid{grid-template-columns:1fr;}
  .nhc\.footer-bottom{flex-direction:column;align-items:flex-start;}
}

/* ---------------------------------------------------------------------- */
/* Swiper (carousel-z4w)                                                  */
/* ---------------------------------------------------------------------- */
.carousel-z4w{padding-bottom:52px;}
.carousel-z4w .swiper-slide{height:auto;}
.swiper-pagination-bullet{background:var(--site-muted);opacity:.5;border-radius:9999px;}
.swiper-pagination-bullet-active{background:var(--site-accent);opacity:1;}
.swiper-button-prev,.swiper-button-next{color:var(--site-accent);}
.swiper-button-prev:after,.swiper-button-next:after{font-size:1.1rem;}

/* ---------------------------------------------------------------------- */
/* Modal — scroll-safe overlay                                            */
/* ---------------------------------------------------------------------- */
.site-modal{
  position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(6,6,7,.8);opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.site-modal.is-open{opacity:1;pointer-events:auto;}
.overlay-box-8pz{
  background:var(--site-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-card);
  max-width:560px;width:100%;padding:40px;position:relative;
  transform:translateY(14px);transition:transform .25s ease;
}
.site-modal.is-open .overlay-box-8pz{transform:translateY(0);}
[data-modal-close]{
  position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:9999px;
  background:transparent;border:1px solid var(--nhc-line);color:var(--site-muted);
  font-size:1.1rem;cursor:pointer;
}
[data-modal-close]:hover{color:var(--site-accent);border-color:var(--site-accent);}

/* ---------------------------------------------------------------------- */
/* Misc utilities                                                         */
/* ---------------------------------------------------------------------- */
.nhc\.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
@media (max-width:768px){.nhc\.grid-2{grid-template-columns:1fr;}}

/* overflow guard */
* { min-width:0; }


/* --- cookie consent (per-site) --- */
.consent-w3v-overlay{position:fixed;inset:0;opacity:0;visibility:hidden;transition:.25s;z-index:9998;}
.consent-w3v-overlay.is-open{opacity:1;visibility:visible;}
.consent-w3v-panel{position:fixed;background:var(--site-surface,#fff);color:var(--site-text,#1a1a1a);
  box-shadow:0 20px 60px rgba(0,0,0,.28);padding:24px;opacity:0;visibility:hidden;transition:.25s;z-index:9999;}
.consent-w3v-panel.is-open{opacity:1;visibility:visible;}
.consent-w3v-panel h3{margin:0 0 8px;font-size:1.2rem;}
.consent-w3v-panel>p{margin:0 0 16px;color:var(--site-muted,#666);font-size:.95rem;}
.consent-w3v-cat{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid rgba(128,128,128,.2);}
.consent-w3v-cat h4{margin:0 0 2px;font-size:.98rem;}
.consent-w3v-cat p{margin:0;color:var(--site-muted,#777);font-size:.85rem;}
.consent-w3v-switch{position:relative;flex:0 0 auto;width:44px;height:24px;}
.consent-w3v-switch input{opacity:0;width:0;height:0;position:absolute;}
.consent-w3v-switch span{position:absolute;inset:0;background:#c9c9c9;border-radius:999px;transition:.2s;cursor:pointer;}
.consent-w3v-switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.consent-w3v-switch input:checked+span{background:var(--site-accent,#2b7);}
.consent-w3v-switch input:checked+span::before{transform:translateX(20px);}
.consent-w3v-switch input:disabled+span{opacity:.6;cursor:not-allowed;}
.consent-w3v-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.consent-w3v-actions button{flex:1;min-width:140px;padding:11px 16px;border:none;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;}
.consent-w3v-actions #consent-w3v-all{background:var(--site-accent,#2b7);color:#fff;}
.consent-w3v-actions #consent-w3v-save{background:transparent;color:var(--site-text,#222);border:1px solid rgba(128,128,128,.4);}
.consent-w3v-links{display:flex;gap:16px;margin-top:14px;font-size:.85rem;}
.consent-w3v-links a{color:var(--site-accent,#2b7);text-decoration:underline;}
.consent-w3v-trigger{position:fixed;left:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:var(--site-surface,#fff);color:var(--site-accent,#2b7);box-shadow:0 6px 18px rgba(0,0,0,.2);z-index:9997;font-size:1.1rem;}

.consent-w3v-overlay{background:transparent;pointer-events:none;}
.consent-w3v-panel{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;transform:translateY(100%);}
.consent-w3v-panel>*{max-width:900px;margin-left:auto;margin-right:auto;}
.consent-w3v-panel.is-open{transform:translateY(0);}
@media(max-width:520px){.consent-w3v-actions button{min-width:100%;}}
#action-dock-8lj{left:auto !important;right:18px !important;}
@media(max-width:520px){#action-dock-8lj{right:12px !important;}}
html[data-cookie-open] #action-dock-8lj{bottom:min(46vh,260px) !important;}


/* --- safety net (deterministic) --- */
*,*::before,*::after{box-sizing:border-box;}
html,body{overflow-x:hidden;overflow-x:clip;max-width:100%;}
img,svg,video,iframe,canvas{max-width:100%;}
table{max-width:100%;}
/* simpleParallax оборачивает <img> в свой .simpleParallax — заставляем обёртку
   тянуться на всю высоту родителя, а фото внутри — cover. Проценты безопасны:
   при родителе без заданной высоты height:100% откатывается к auto (без коллапса). */
.simpleParallax{display:block;width:100%;height:100%;}
.simpleParallax img{width:100%;height:100%;object-fit:cover;}
/* Браузерный дефолт для <blockquote> и <figure> — margin: 1em 40px. Модель берёт
   эти семантические теги для отзывов и карточек с подписью, но сбросить поля
   забывает: внутри карточки в 267px текст сжимался до 131px (по 40px с каждой
   стороны) и переносился по одному слову, а между карточками зияли пустоты.
   Сбрасываем только горизонтальные поля — вертикальные обычно задуманы. */
blockquote, figure { margin-left: 0; margin-right: 0; }
/* Вложенные фигуры внутри сеток тоже не должны добавлять отступ сбоку. */
figure > blockquote, figure > figcaption { margin-left: 0; margin-right: 0; }
/* Если AOS не поднялся (CDN недоступен, блокировщик) — main.js вешает .no-aos.
   Без этого элементы с data-aos остались бы с opacity:0 из aos.css, то есть
   половина страницы была бы невидимой. */
html.no-aos [data-aos]{opacity:1 !important;transform:none !important;}
/* Пользователи с prefers-reduced-motion получают контент сразу, без анимаций. */
@media(prefers-reduced-motion:reduce){
  [data-aos]{opacity:1 !important;transform:none !important;transition:none !important;}
}
