/* ==============================================
   RESET
   ============================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,system-ui,sans-serif;
  background:#fff;color:#111;line-height:1.6;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-synthesis:none;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ==============================================
   TOKENS
   ============================================== */
:root{
  /* Brand green. Sourced from the logo mark (#0b4401) so that the mark,
     the interface, and the favicons all sit on one hue. Previously the
     interface ran on a teal (#0b4401) that the logo never used. */
  --green:      #0b4401;
  --green-h:    #146006;
  --green-dim:  #083001;
  --green-pale: #f3f8f2;
  --green-rule: #cfe2ca;
  --green-on-dark: #7fbf5f;  /* accent for text and marks sitting on the dark bands */

  /* Legacy aliases. The stylesheet references --teal* in roughly a hundred
     places; these keep those working without a risky mass rename. */
  --teal:      var(--green);
  --teal-h:    var(--green-h);
  --teal-dim:  var(--green-dim);
  --teal-pale: var(--green-pale);
  --teal-rule: var(--green-rule);

  --ink:   #0f1310;
  --body:  #383b36;
  --muted: #6a6e67;
  --rule:  #e0dedd;
  --stone: #f4f3f0;
  --white: #ffffff;
  --navy:      #0e3008;   /* proof strip band. Was referenced but never defined. */
  --teal-lt:   var(--green-pale);  /* consultation CTA tint. Was referenced but never defined. */

  --nav-h:    80px;
  --max:   1140px;
  --px:    48px;

  --serif: 'Fraunces',Georgia,serif;
  --sans:  'Inter',system-ui,sans-serif;
}

/* ── Font inheritance — all sections inherit body font ── */
.proof-strip, .proof-strip *,
.deadline-bar, .deadline-bar *,
.testimonials-sec, .testimonials-sec *,
.portal-sec, .portal-sec *,
.who-cta-line, .who-cta-line *,
.client-portal, .client-portal * {
  font-family: var(--sans);
}
/* Re-apply serif for headings within these sections */
.proof-strip h2, .testimonials-sec h2,
.portal-sec h2, .portal-sec h3 {
  font-family: var(--serif);
}

@media(max-width:640px){:root{--px:20px}}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--px)}

/* ==============================================
   TYPOGRAPHY
   ============================================== */
.label{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--teal);letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:10px}
.h1{font-family:var(--serif);font-size:clamp(40px,5.5vw,72px);font-weight:300;line-height:1.08;letter-spacing:-.025em;color:var(--ink)}
.h1 em{font-style:italic}
.h2{font-family:var(--serif);font-size:clamp(26px,3vw,42px);font-weight:300;line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin-bottom:12px}
.h2 em{font-style:italic}
.h3{font-family:var(--serif);font-size:clamp(20px,2vw,26px);font-weight:300;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}
.body{font-size:14.5px;color:var(--body);line-height:1.82;font-weight:300}
.caption{font-size:13px;color:var(--muted);line-height:1.72;font-weight:300}

/* ==============================================
   BUTTONS
   ============================================== */
.btn{display:inline-block;font-size:13px;font-weight:500;padding:10px 22px;border-radius:1px;transition:all .18s;white-space:nowrap;letter-spacing:.01em;font-family:var(--sans);cursor:pointer;border:none}
.btn-p{background:var(--teal);color:#fff}
.btn-p:hover{background:var(--teal-h)}
.btn-s{background:transparent;color:var(--muted);border-bottom:1px solid var(--rule);padding-left:0;padding-right:0;border-radius:0}
.btn-s:hover{color:var(--teal);border-color:var(--teal)}
.btn-w{background:#fff;color:var(--teal)}
.btn-w:hover{background:var(--stone)}

/* ==============================================
   NAV — white, clean, single 3px teal top border
   ============================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--nav-h);background:var(--white);
  border-bottom:1px solid var(--rule);
  border-top:3px solid var(--teal);
}
.nav-i{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav-logo{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;padding:6px 0}
.nav-wordmark{font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--green);letter-spacing:.01em;white-space:nowrap;line-height:1;text-align:center}
.nav-logo img{height:44px;width:auto;object-fit:contain;flex-shrink:0;display:block}
.nav-ul{display:flex;list-style:none;gap:0;align-items:center}
.nav-ul>li>a{display:block;padding:0 11px;height:var(--nav-h);line-height:var(--nav-h);font-size:12.5px;font-weight:400;color:var(--muted);white-space:nowrap;transition:color .15s}
.nav-ul>li>a:hover{color:var(--ink)}
.nav-ul>li>a::after{display:none}
/* active underline on hover */
.nav-ul>li{position:relative}
.nav-ul>li::after{content:'';position:absolute;bottom:0;left:11px;right:11px;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav-ul>li:hover::after{transform:scaleX(1)}
/* dropdown */
.nav-dd{position:relative}
.nav-dd>a::after{content:' ▾';font-size:8px;opacity:.4}
.dd{position:absolute;top:100%;left:0;background:var(--white);border:1px solid var(--rule);border-top:2px solid var(--teal);min-width:178px;list-style:none;padding:4px 0;box-shadow:0 8px 20px rgba(0,0,0,.07);opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .15s}
.nav-dd:hover .dd{opacity:1;visibility:visible;transform:translateY(0)}
.dd li a{display:block;padding:8px 16px;font-size:12.5px;color:var(--muted);transition:all .12s}
.dd li a:hover{color:var(--ink);background:var(--stone);padding-left:20px}
.nav-r{display:flex;align-items:center;gap:12px;flex-shrink:0}
.nav-ph{font-size:12.5px;color:var(--muted);transition:color .15s;white-space:nowrap}
.nav-ph:hover{color:var(--teal)}
/* hamburger */
/* flex-shrink:0 stops the nav row compressing the button on narrow screens,
   where it was collapsing to 8px wide. Sized as a 44px touch target. */
.ham{display:none;flex-direction:column;justify-content:center;gap:5px;
  background:none;border:none;cursor:pointer;padding:10px 7px;
  width:44px;height:44px;flex-shrink:0;margin-right:-7px}
.ham span{width:100%}
.ham span{display:block;height:1.5px;background:var(--ink);transition:all .25s;border-radius:1px}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.ham.open span:nth-child(2){opacity:0}
.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
/* mobile menu */
.mob{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--white);border-bottom:1px solid var(--rule);z-index:999;padding:10px 0 18px;box-shadow:0 8px 20px rgba(0,0,0,.07)}
.mob.open{display:block}
.mob ul{list-style:none;padding:0 var(--px)}
.mob ul li{border-bottom:1px solid var(--stone)}
.mob ul li a{display:block;padding:11px 0;font-size:14px;color:var(--body)}
.mob ul li a:hover{color:var(--teal)}
.mob-cta{display:block;margin:14px var(--px) 0;text-align:center}
@media(max-width:860px){.nav-ul,.nav-ph{display:none}.ham{display:flex}}
@media(min-width:861px){.ham,.mob{display:none!important}}

/* ── GLOBAL MOBILE ── */
@media(max-width:860px){
  .hero-geo{width:100%;opacity:.4}
  .hero-inner{grid-template-columns:1fr;min-height:auto}
  .hero-l{padding:40px 0 28px;border-right:none;border-bottom:1px solid var(--rule)}
  .hero-r{padding:28px 0 40px}
  .sh{grid-template-columns:1fr}
  .sh .body{max-width:100%}
  .team-sh{grid-template-columns:1fr}
  .ag{grid-template-columns:1fr;gap:32px}
      .cg{grid-template-columns:1fr;gap:28px}
  .cta-i{flex-direction:column;align-items:flex-start}
  .cta-btns{width:100%}
  .about-sec::before{font-size:clamp(40px,9vw,64px);right:-16px}
}
@media(max-width:680px){
  .svc-grid{grid-template-columns:1fr}
  .consult-grid{grid-template-columns:1fr}
  .who-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step:not(:last-child)::after{display:none}
}
@media(max-width:640px){
  .rates-grid{grid-template-columns:1fr 1fr}
  .tax-grid{grid-template-columns:1fr 1fr}
  .sw-grid{grid-template-columns:1fr 1fr}
  .tgrid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
  }
@media(max-width:480px){
  .rates-grid{grid-template-columns:1fr}
  .tax-grid{grid-template-columns:1fr}
  .sw-grid{grid-template-columns:1fr}
  .tgrid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
    .f2{grid-template-columns:1fr}
  .hero-tags{gap:4px}
  .tag{font-size:10.5px;padding:3px 8px}
  .h1{font-size:clamp(34px,9vw,52px)}
  .h2{font-size:clamp(22px,5.5vw,32px)}
  .rc-price{font-size:40px}
}

/* ==============================================
   HERO — full-bleed statement, not a startup split
   ============================================== */
.hero{
  padding-top:var(--nav-h);
  background:var(--white);
  border-bottom:1px solid var(--rule);
  position:relative;overflow:hidden;
}
/* Subtle SVG geometry — structural, not decorative */
.hero-geo{
  position:absolute;right:0;top:0;bottom:0;
  width:50%;pointer-events:none;overflow:hidden;
}
/* Single diagonal precision line — drafting/accuracy motif */
.hero-fg{
  position:absolute;inset:0;
}
.hero-fg::before{
  content:'';
  position:absolute;
  top:-10%;left:-5%;
  width:130%;height:130%;
  border-top:1px solid rgba(11,68,1,.12);
  transform:rotate(-22deg);
  transform-origin:top left;
}
.hero-fg::after{
  content:'';
  position:absolute;
  top:-10%;left:10%;
  width:130%;height:130%;
  border-top:1px solid rgba(11,68,1,.06);
  transform:rotate(-22deg);
  transform-origin:top left;
}
/* Logo watermark. Replaces the concentric circle seal motif.
   Aspect ratio is locked to the mark's own 2280:1848 so it cannot distort. */
.hero-arc{
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  width:min(430px,42vw);aspect-ratio:2280/1848;
  background:url("assets/logo.svg") no-repeat center/contain;
  opacity:.05;
  pointer-events:none;
  z-index:0;
}
@media(max-width:860px){
  .hero-arc{width:min(300px,60vw);right:-40px;opacity:.035}
}
.hero-inner{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr 1fr;
  min-height:calc(100vh - var(--nav-h));
  gap:0;
}
@media(max-width:860px){.hero-inner{grid-template-columns:1fr;min-height:auto}}
.hero-l{
  padding:52px 48px 52px 0;
  border-right:1px solid var(--rule);
  display:flex;flex-direction:column;justify-content:center;
}
@media(max-width:860px){.hero-l{padding:40px 0 28px;border-right:none;border-bottom:1px solid var(--rule)}}
/* Eyebrow with teal tick */
.hero-eyebrow{
  display:flex;align-items:center;gap:10px;
  font-size:11px;font-weight:500;color:var(--teal);font-family:var(--sans);
  letter-spacing:.16em;text-transform:uppercase;margin-bottom:20px;
}
.hero-eyebrow::before{content:'';width:20px;height:1.5px;background:var(--teal);flex-shrink:0}
.hero-sub{font-size:14.5px;color:var(--body);line-height:1.8;font-weight:300;margin:16px 0 26px;max-width:420px}
.hero-ctas{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
/* Credibility marks below CTA */

/* Hero right: structured overview panel */
.hero-r{
  padding:52px 0 52px 48px;
  display:flex;flex-direction:column;justify-content:center;
}
@media(max-width:860px){.hero-r{padding:28px 0 40px}}
.ov-table{width:100%;border-top:1px solid var(--rule)}
.ov-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--rule);gap:12px}
.ov-k{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.09em;text-transform:uppercase;flex-shrink:0}
.ov-v{font-size:13px;font-weight:500;color:var(--ink);text-align:right}
/* Service tags */
.hero-tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:11px;color:var(--muted);border:1px solid var(--rule);padding:4px 10px;letter-spacing:.02em}

/* ==============================================
   SECTION SHELL
   ============================================== */
.sec{padding:52px 0}
@media(max-width:640px){.sec{padding:40px 0}}
/* Section header — grid, always same alignment */
.sh{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;padding-bottom:20px;border-bottom:1px solid var(--rule);margin-bottom:28px}
@media(max-width:640px){.sh{grid-template-columns:1fr}}

/* ==============================================
   SVG ICON SYSTEM — 5 minimalist service icons
   Only used in services section to add structure
   ============================================== */
.svc-icon{width:36px;height:36px;margin-bottom:14px;flex-shrink:0}

/* ==============================================
   SERVICES
   ============================================== */
.svc-sec{background:var(--stone)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(max-width:860px){.svc-grid{grid-template-columns:1fr}}
.svc{background:var(--white);padding:28px 24px;position:relative;overflow:hidden;transition:background .2s}
.svc:hover{background:#fafaf9}
.svc::before{content:'';position:absolute;top:0;left:0;right:100%;height:2px;background:var(--teal);transition:right .3s ease}
.svc:hover::before{right:0}
.svc-n{font-size:10px;color:var(--muted);letter-spacing:.1em;display:block;margin-bottom:12px}
.svc-title{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em}
.svc-list{list-style:none;margin:12px 0 18px}
.svc-list li{font-size:12.5px;color:var(--muted);padding:5px 0;border-bottom:1px solid var(--stone);display:flex;align-items:center;gap:7px}
.svc-list li::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--teal);flex-shrink:0}
.svc-a{font-size:12.5px;font-weight:500;color:var(--teal);border-bottom:1px solid transparent;transition:border-color .15s}
.svc-a:hover{border-color:var(--teal)}

/* ==============================================
   TAX SERVICES
   ============================================== */
.tax-sec{background:var(--stone)}
.tax-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:24px}
@media(max-width:860px){.tax-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.tax-grid{grid-template-columns:1fr}}
.tax-card{background:var(--white);padding:22px 20px;border-top:2px solid var(--teal);transition:background .2s}
.tax-card:hover{background:var(--stone)}
.tax-h{font-family:var(--serif);font-size:17px;font-weight:300;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em}
.tax-list{list-style:none;margin-top:10px}
.tax-list li{font-size:12.5px;color:var(--muted);padding:4px 0;border-bottom:1px solid var(--stone);display:flex;align-items:center;gap:7px}
.tax-list li::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--teal);flex-shrink:0}

/* ==============================================
   RATE CARD — transparent pricing
   ============================================== */
.rates-sec{background:var(--stone)}
.rates-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:24px}
@media(max-width:900px){.rates-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.rates-grid{grid-template-columns:1fr}}
.rc{background:var(--white);padding:26px 22px;position:relative;display:flex;flex-direction:column;transition:box-shadow .2s}
.rc:hover{box-shadow:0 8px 24px rgba(0,0,0,.06);z-index:1}
.rc.ft{background:var(--teal)}
.rc-tier{font-size:10.5px;font-weight:600;color:var(--teal);letter-spacing:.15em;text-transform:uppercase;margin-bottom:10px}
.rc.ft .rc-tier{color:rgba(255,255,255,.55)}
.rc-price{font-family:var(--serif);font-size:48px;font-weight:300;line-height:1;color:var(--ink);letter-spacing:-.02em;margin-bottom:4px}
.rc-price sup{font-size:20px;vertical-align:top;margin-top:8px;display:inline-block}
.rc.ft .rc-price{color:#fff}
.rc-note{font-size:11.5px;color:var(--muted);font-weight:300;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.rc.ft .rc-note{color:rgba(255,255,255,.45);border-color:rgba(255,255,255,.15)}
.rc-list{list-style:none;flex:1;margin-bottom:20px}
.rc-list li{font-size:12.5px;color:var(--muted);padding:5px 0;border-bottom:1px solid var(--stone);display:flex;align-items:center;gap:7px}
.rc.ft .rc-list li{color:rgba(255,255,255,.72);border-color:rgba(255,255,255,.1)}
.rc-list li::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--teal);flex-shrink:0}
.rc.ft .rc-list li::before{background:rgba(255,255,255,.45)}
.rc-btn{display:block;text-align:center;font-size:12.5px;font-weight:500;padding:9px 14px;border-radius:1px;transition:all .15s;background:var(--teal-pale);color:var(--teal);border:1px solid var(--teal-rule)}
.rc-btn:hover{background:var(--teal);color:#fff}
.rc.ft .rc-btn{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.25)}
.rc.ft .rc-btn:hover{background:rgba(255,255,255,.28)}
.rc-badge{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:0 0 3px 3px;white-space:nowrap}

/* ==============================================
   SOFTWARE STRIP
   ============================================== */
.sw-sec{background:var(--white)}
/* Inline SVG logo chips */
.sw-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:24px}
@media(max-width:860px){.sw-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.sw-grid{grid-template-columns:1fr}}
.sw-card{background:var(--white);padding:22px 18px;display:flex;flex-direction:column;gap:6px;transition:background .18s}
.sw-card:hover{background:var(--stone)}
.sw-name{font-size:12.5px;font-weight:600;color:var(--ink)}
.sw-desc{font-size:11.5px;color:var(--muted);line-height:1.55;font-weight:300}

/* ==============================================
   FILE NOW — 3 steps
   ============================================== */
.file-sec{background:var(--white)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:24px}
@media(max-width:640px){.steps{grid-template-columns:1fr}}
.step{background:var(--stone);padding:24px 22px;position:relative}
/* SVG step connector line between cards */
.step:not(:last-child)::after{content:'→';position:absolute;right:-14px;top:30px;font-size:16px;color:var(--rule);z-index:2;display:none}
@media(min-width:641px){.step:not(:last-child)::after{display:block}}
.step-n{font-family:var(--serif);font-size:36px;font-weight:300;color:var(--green);line-height:1;margin-bottom:12px;opacity:.55}
.step-h{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px}
.step-p{font-size:12.5px;color:var(--muted);line-height:1.7;font-weight:300}

/* ==============================================
   CONSULTING
   ============================================== */
.consult-sec{background:var(--stone)}
.consult-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:24px}
@media(max-width:680px){.consult-grid{grid-template-columns:1fr}}
.cc{background:var(--white);padding:22px 20px;border-top:2px solid var(--teal);transition:background .2s}
.cc:hover{background:#f0efec}
.cc-h{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px}
.cc-p{font-size:12.5px;color:var(--muted);line-height:1.72;font-weight:300;margin-bottom:12px}
.cc-list{list-style:none}
.cc-list li{font-size:12.5px;color:var(--muted);padding:4px 0;border-bottom:1px solid var(--stone);display:flex;align-items:center;gap:7px}
.cc-list li::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--teal);flex-shrink:0}

/* ==============================================
   ABOUT
   ============================================== */
.about-sec{background:var(--stone);position:relative;overflow:hidden}
/* Ghost watermark — vertical, far right edge, behind "Why Choose" column */
.about-sec::before{
  content:'WATERSMITH';
  position:absolute;
  right:-60px;
  top:50%;
  transform:translateY(-50%) rotate(90deg);
  transform-origin:center center;
  font-family:var(--serif);
  font-size:clamp(88px, 11vw, 148px);
  font-weight:300;
  letter-spacing:.22em;
  color:rgba(15,19,16,.045);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
  line-height:1;
}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;position:relative;z-index:1}
@media(max-width:860px){.ag{grid-template-columns:1fr;gap:36px}}
.vb{padding:12px 16px;border-left:2px solid var(--teal);background:var(--teal-pale);margin-bottom:10px}
.vb-t{font-size:10.5px;font-weight:600;color:var(--teal);letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px}
.vb-p{font-size:12.5px;color:var(--body);line-height:1.7;font-weight:300}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:18px}
@media(max-width:540px){.stats{grid-template-columns:1fr 1fr}}
.stat{background:var(--white);padding:16px 12px;text-align:center}
.stat-n{font-family:var(--serif);font-size:26px;font-weight:300;color:var(--teal);display:block;line-height:1;margin-bottom:2px}
.stat-l{font-size:10px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase}
.vals{list-style:none;border-top:1px solid var(--rule)}
.val{padding:15px 0;border-bottom:1px solid var(--rule);display:flex;gap:12px}
.val-dot{width:4px;height:4px;border-radius:50%;background:var(--teal);flex-shrink:0;margin-top:7px}
.val-h{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:2px}
.val-b{font-size:12.5px;color:var(--muted);line-height:1.65;font-weight:300}

/* ==============================================
   WHO WE HELP
   ============================================== */
.who-sec{background:var(--white)}
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
@media(max-width:680px){.who-grid{grid-template-columns:1fr}}
.wc{background:var(--stone);padding:24px 22px;border-top:2px solid var(--teal)}
.wc h3{font-family:var(--serif);font-size:22px;font-weight:300;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em}
.wc-list{list-style:none;margin-top:12px}
.wc-list li{font-size:12.5px;color:var(--muted);padding:5px 0;border-bottom:1px solid var(--rule);display:flex;gap:7px;align-items:center}
.wc-list li::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--teal);flex-shrink:0}

/* ==============================================
   TEAM
   ============================================== */
.team-sec{background:var(--white)}
/* Key fix: top-aligned header */
.team-sh{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;padding-bottom:20px;border-bottom:1px solid var(--rule);margin-bottom:28px}
@media(max-width:640px){.team-sh{grid-template-columns:1fr}}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(max-width:960px){.tgrid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.tgrid{grid-template-columns:1fr}}
.tc{background:var(--stone);overflow:hidden}
.tc-photo{aspect-ratio:1;overflow:hidden;background:var(--stone);display:block}
.tc-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.tc:hover .tc-photo img{transform:scale(1.03)}
.tc-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:26px;color:var(--rule);aspect-ratio:1}
.tc-info{padding:16px 18px 20px;border-top:1px solid var(--rule);background:var(--white)}
.tc-name{font-family:var(--serif);font-size:15px;font-weight:300;color:var(--ink);margin-bottom:1px;letter-spacing:-.01em}
.tc-role{font-size:10.5px;font-weight:600;color:var(--teal);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.tc-bio{font-size:12px;color:var(--muted);line-height:1.6;font-weight:300}
.team-quote{margin-top:20px;padding:20px 26px;background:var(--stone);border:1px solid var(--rule);border-left:2px solid var(--teal)}
.tq-t{font-family:var(--serif);font-style:italic;font-size:16px;font-weight:300;color:var(--body);line-height:1.7;margin-bottom:8px}
.tq-a{font-size:10.5px;font-weight:600;color:var(--teal);letter-spacing:.1em;text-transform:uppercase}

/* ==============================================
   BOOKING / CALENDLY
   ============================================== */
@media(max-width:860px){}
@media(max-width:860px){}
.bk-steps{list-style:none;border-top:1px solid var(--rule);margin-top:18px}
.bk-s{padding:14px 0;border-bottom:1px solid var(--rule);display:flex;gap:12px}
.bk-n{font-size:10.5px;font-weight:600;color:var(--teal);letter-spacing:.1em;text-transform:uppercase;flex-shrink:0;min-width:20px;padding-top:2px}
.bk-h{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:2px}
.bk-p{font-size:12.5px;color:var(--muted);font-weight:300;line-height:1.6}
@media(max-width:860px){}
/* ==============================================
   CTA STRIP — teal, used ONCE, from original site
   ============================================== */
.cta-strip{background:var(--teal);padding:40px 0;position:relative;overflow:hidden}
.cta-i{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;position:relative;z-index:1}
.cta-h{font-family:var(--serif);font-size:clamp(20px,2.5vw,32px);font-weight:300;color:#fff;line-height:1.2;letter-spacing:-.01em}
.cta-sub{font-size:13px;color:rgba(255,255,255,.55);font-weight:300;margin-top:6px;max-width:380px;line-height:1.7}
.cta-btns{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}

/* ==============================================
   CONTACT
   ============================================== */
.contact-sec{background:var(--stone)}
.cg{display:grid;grid-template-columns:1fr 1.5fr;gap:56px;align-items:start}
@media(max-width:860px){.cg{grid-template-columns:1fr;gap:32px}}
.c-row{padding:12px 0;border-bottom:1px solid var(--stone)}
.c-row:first-child{border-top:1px solid var(--rule)}
.c-l{font-size:10.5px;font-weight:600;color:var(--teal);letter-spacing:.12em;text-transform:uppercase;margin-bottom:2px}
.c-v{font-size:14px;color:var(--ink);font-weight:400}
.c-v a{border-bottom:1px solid var(--rule);transition:color .15s,border-color .15s}
.c-v a:hover{color:var(--teal);border-color:var(--teal)}
.form-box{background:var(--white);padding:28px 28px 28px;border-top:2px solid var(--teal);border:1px solid var(--rule);border-top:2px solid var(--teal)}
.form-title{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--ink);margin-bottom:3px}
.form-sub{font-size:12.5px;color:var(--muted);font-weight:300;margin-bottom:18px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:480px){.f2{grid-template-columns:1fr}}
input,select,textarea{width:100%;padding:9px 11px;background:var(--stone);border:1px solid var(--rule);font-family:var(--sans);font-size:13px;color:var(--ink);outline:none;transition:border-color .15s;border-radius:1px}
input:focus,select:focus,textarea:focus{border-color:var(--teal);background:var(--white)}
textarea{resize:vertical;min-height:84px;margin-top:8px}
select{margin-top:8px;color:var(--muted)}
select option{color:var(--ink)}
.f-sub{margin-top:12px;border:none;cursor:pointer}
.form-ok{display:none;}

/* ==============================================
   FOOTER — deep teal, not black
   ============================================== */
footer{background:#092504;border-top:2px solid rgba(11,68,1,.45)}
.ft-main{padding:36px 0 28px;border-bottom:1px solid rgba(255,255,255,.07)}
.ft-grid{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 0.8fr 0.8fr;gap:24px}
@media(max-width:900px){.ft-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.ft-grid{grid-template-columns:1fr}}
.ft-logo{display:inline-flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:18px}
.ft-logo img{height:44px;width:auto;opacity:1;display:block;flex-shrink:0}
.ft-wm{font-family:var(--sans);font-size:12.5px;font-weight:700;color:rgba(255,255,255,.92);letter-spacing:.01em;white-space:nowrap;text-align:center;line-height:1}
.ft-desc{font-size:12.5px;color:rgba(255,255,255,.50);line-height:1.75;font-weight:300;max-width:210px;margin-bottom:12px}
.ft-addr{font-size:12px;color:rgba(255,255,255,.40);line-height:1.9;font-weight:300;font-style:normal}
.ft-addr a{color:inherit}
.ft-h{font-size:10px;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
.ft-ul{list-style:none}
.ft-ul li{margin-bottom:7px}
.ft-ul li a{font-size:12.5px;color:rgba(255,255,255,.55);font-weight:300;transition:color .15s}
.ft-ul li a:hover{color:rgba(255,255,255,.78)}
.ft-btm{padding:14px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.ft-copy{font-size:11px;color:rgba(255,255,255,.35);font-weight:300}
.ft-marks{display:flex;gap:6px;flex-wrap:wrap}
.ft-mark{font-size:9.5px;color:rgba(255,255,255,.40);padding:3px 8px;border:1px solid rgba(255,255,255,.15);letter-spacing:.06em;text-transform:uppercase}



/* File attachment field */
.file-field{margin-top:10px}
.file-label{display:block;font-size:11px;font-weight:500;color:var(--teal);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.file-label span{font-weight:300;color:var(--muted);text-transform:none;letter-spacing:0}
input[type="file"]{background:var(--stone);border:1px dashed var(--rule);padding:10px 12px;font-size:12.5px;color:var(--muted);cursor:pointer;width:100%}
input[type="file"]:hover{border-color:var(--teal)}


.ft-social{display:flex;gap:8px;margin-top:16px}
.ft-soc-link{
  width:30px;height:30px;border:1px solid rgba(255,255,255,.1);
  border-radius:2px;display:flex;align-items:center;justify-content:center;
  font-size:10.5px;font-weight:600;color:rgba(255,255,255,.35);
  font-family:var(--sans);letter-spacing:0;transition:all .15s;
}
.ft-soc-link:hover{color:rgba(255,255,255,.75);border-color:rgba(255,255,255,.25)}


/* WhatsApp chat button */
.wa-btn{
  position:fixed;bottom:24px;left:24px;z-index:9998;
  width:52px;height:52px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;
  justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.18);
  transition:transform .2s,box-shadow .2s;text-decoration:none;
}
.wa-btn:hover{transform:scale(1.08);box-shadow:0 6px 22px rgba(0,0,0,.22)}
.wa-btn svg{fill:#fff;width:26px;height:26px}
.wa-tooltip{
  position:absolute;left:62px;bottom:12px;
  background:#0f1310;color:#fff;font-size:12px;font-weight:500;
  padding:5px 10px;border-radius:4px;white-space:nowrap;
  opacity:0;transition:opacity .2s;pointer-events:none;font-family:var(--sans);
}
.wa-btn:hover .wa-tooltip{opacity:1}
@media(max-width:640px){.wa-btn{bottom:16px;left:16px;width:46px;height:46px}}



/* ==============================================
   RETURN TO TOP
   ============================================== */
.rtt{
  position:fixed;bottom:28px;right:28px;z-index:900;
  width:40px;height:40px;
  background:var(--white);border:1px solid var(--rule);
  border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .25s,visibility .25s,transform .25s,border-color .2s;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.rtt:hover{border-color:var(--teal)}
.rtt.show{opacity:1;visibility:visible;transform:translateY(0)}
.rtt svg{stroke:var(--muted);transition:stroke .2s}
.rtt:hover svg{stroke:var(--teal)}
@media(max-width:640px){.rtt{bottom:18px;right:18px;width:36px;height:36px}}


/* ==============================================
   CAREERS
   ============================================== */
.careers-sec{background:var(--stone)}
.careers-hero{
  background:var(--teal);padding:56px 0;
  position:relative;overflow:hidden;
}
.careers-hero::before{
  content:'';position:absolute;right:-80px;top:50%;
  transform:translateY(-50%) rotate(90deg);
  font-family:var(--serif);font-size:clamp(88px,11vw,148px);
  font-weight:300;letter-spacing:.22em;
  color:rgba(255,255,255,.055);white-space:nowrap;
  pointer-events:none;user-select:none;line-height:1;
}
.careers-hero-inner{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:center;
}
@media(max-width:860px){.careers-hero-inner{grid-template-columns:1fr}}
.careers-hero-h{
  font-family:var(--serif);
  font-size:clamp(28px,3.5vw,46px);
  font-weight:400;line-height:1.12;
  letter-spacing:-.02em;color:var(--white);
  margin-bottom:14px;
}
.careers-hero-h em{font-style:italic}
.careers-hero-sub{
  font-size:15px;color:rgba(255,255,255,.65);
  line-height:1.8;font-weight:300;margin-bottom:28px;max-width:420px;
}
.careers-hero-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--white);color:var(--teal);
  font-size:13px;font-weight:600;
  padding:11px 24px;border-radius:2px;
  transition:background .18s;text-decoration:none;
}
.careers-hero-cta:hover{background:var(--stone)}
.careers-hero-right{
  padding:28px 32px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-top:2px solid rgba(255,255,255,.3);
}
.careers-stat{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);
}
.careers-stat:last-child{border-bottom:none}
.careers-stat-k{font-size:11px;font-weight:500;color:rgba(255,255,255,.5);letter-spacing:.09em;text-transform:uppercase}
.careers-stat-v{font-size:13px;font-weight:500;color:var(--white);text-align:right}

/* Why Work cards */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:32px}
@media(max-width:860px){.why-grid{grid-template-columns:1fr}}
.why-card{
  background:var(--white);padding:32px 28px;
  border-top:2px solid var(--teal);transition:background .2s;
}
.why-card:hover{background:var(--stone)}
.why-icon{
  width:40px;height:40px;background:var(--teal-pale);
  border-radius:4px;display:flex;align-items:center;
  justify-content:center;margin-bottom:16px;flex-shrink:0;
}
.why-icon svg{width:20px;height:20px;display:block;stroke:var(--teal);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.why-h{font-family:var(--serif);font-size:18px;font-weight:400;color:var(--ink);margin-bottom:8px;letter-spacing:-.01em}
.why-p{font-size:13.5px;color:var(--muted);line-height:1.75;font-weight:300}

/* Culture block */
.culture-block{
  margin-top:32px;padding:24px 28px;
  border-left:2px solid var(--teal);background:var(--white);
}
.culture-p{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--body);line-height:1.7}

/* Opportunities */
.opps-sec{background:var(--white)}
.no-opps{
  margin-top:32px;padding:28px 32px;
  background:var(--stone);border:1px solid var(--rule);
  border-left:2px solid var(--teal);
}
.no-opps-h{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--ink);margin-bottom:10px}
.no-opps-p{font-size:14px;color:var(--muted);line-height:1.8;font-weight:300}

/* Resume form */
.resume-sec{background:var(--stone)}
.resume-box{background:var(--white);padding:36px;border-top:2px solid var(--teal);border:1px solid var(--rule);border-top:2px solid var(--teal)}
.resume-title{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);margin-bottom:4px}
.resume-sub{font-size:13px;color:var(--muted);font-weight:300;margin-bottom:20px}
#resume-ok{display:none;margin-top:10px;font-size:13px;font-weight:500;color:var(--teal)}

/* ==============================================
   REVEAL
   ============================================== */
.rv{transition:opacity .55s ease,transform .55s ease}
.js-loaded .rv{opacity:0;transform:translateY(14px)}
.js-loaded .rv.in{opacity:1;transform:translateY(0)}
.d1{transition-delay:.09s}.d2{transition-delay:.18s}.d3{transition-delay:.27s}

/* ==============================================
   SVG ICONS — inline, used in services
   ============================================== */
.icon-tax   { stroke:var(--teal); fill:none; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round }
.icon-cloud { stroke:var(--teal); fill:none; stroke-width:1.2; stroke-linecap:round }
.icon-brief { stroke:var(--teal); fill:none; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round }
/* ── BOOKING SECTION ── */
.book-sec{background:var(--white);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.book-grid{display:grid;grid-template-columns:1fr 1.55fr;align-items:stretch;max-width:var(--max);margin:0 auto}
.book-l{padding:48px var(--px) 48px var(--px);border-right:1px solid var(--rule);display:flex;flex-direction:column;justify-content:center}
.book-l-inner{max-width:480px}
.book-r{background:var(--stone);display:flex;flex-direction:column}
.cal-pad{padding:32px 32px 0 32px;flex:1;display:flex;flex-direction:column}
.cal-note{font-size:12.5px;color:var(--muted);font-weight:300;line-height:1.7;margin:8px 0 12px}
.calendly-inline-widget{width:100%;height:660px;min-width:300px}

@media(max-width:860px){
  .book-grid{grid-template-columns:1fr}
  .book-l{padding:40px var(--px) 28px;border-right:none;border-bottom:1px solid var(--rule)}
  .cal-pad{padding:24px 16px 0 16px}
  .calendly-inline-widget{height:580px}
}

/* ── CLIENT PORTAL SECTION ── */
.portal-sec{background:var(--stone);padding:80px 0;border-top:1px solid var(--rule)}
.portal-i{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.portal-text .h2{margin-bottom:12px}
.portal-features{display:flex;flex-direction:column;gap:10px;margin:20px 0 0}
.portal-feat{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--body)}
.portal-icon{width:18px;height:18px;flex-shrink:0;display:block}
.portal-icon svg,svg.portal-icon{width:18px;height:18px;display:block;
  stroke:var(--teal);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.portal-card{background:var(--white);border-radius:12px;border:1px solid var(--rule);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.06)}
.portal-card-header{background:var(--teal);padding:16px 20px;display:flex;align-items:center;gap:10px}
.portal-logo-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.7);display:inline-block}
.portal-card-title{color:var(--white);font-size:13px;font-weight:600;letter-spacing:.02em}
.portal-card-body{padding:20px}
.portal-stat{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--rule);font-size:13px}
.portal-stat:last-of-type{border-bottom:none}
.portal-stat-label{color:var(--muted);font-weight:500}
.portal-stat-val{color:var(--ink);font-weight:500}
.portal-green{color:#0b4401 !important}
.portal-card-cta{display:block;text-align:center;padding:14px;background:var(--stone);color:var(--teal);font-size:13.5px;font-weight:600;text-decoration:none;border-top:1px solid var(--rule);transition:background .2s}
.portal-card-cta:hover{background:var(--teal);color:var(--white)}

/* Client Login nav button */
.nav-client-login{background:transparent;color:var(--teal);border:1.5px solid var(--teal)}
.nav-client-login:hover{background:var(--teal);color:var(--white)}

@media(max-width:860px){
  .portal-i{grid-template-columns:1fr;gap:36px}
}

/* ── SOCIAL PROOF STRIP ── */
.proof-strip{background:var(--navy);padding:40px 0}
.proof-i{display:flex;align-items:center;justify-content:space-between;gap:0}
.proof-stat{text-align:center;flex:1}
.proof-num{font-family:var(--sans);font-size:40px;font-weight:700;color:var(--white);line-height:1;letter-spacing:-.03em}
.proof-num span{font-size:28px;color:var(--green-on-dark)}
.proof-label{font-family:var(--sans);font-size:12px;color:rgba(255,255,255,.5);margin-top:6px;letter-spacing:.02em}
.proof-div{width:1px;height:60px;background:rgba(255,255,255,.1);flex-shrink:0}
@media(max-width:680px){
  .proof-i{flex-wrap:wrap;gap:28px}
  .proof-div{display:none}
  .proof-stat{min-width:45%}
}

/* ── DEADLINE BANNER ── */
.deadline-bar{background:var(--navy);border-bottom:2px solid var(--green-on-dark);padding:14px 0}
.deadline-i{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.deadline-left{display:flex;align-items:center;gap:14px;flex:1}
.deadline-icon{width:22px;height:22px;flex-shrink:0;display:block;
  stroke:var(--green-on-dark);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.deadline-title{font-size:12px;font-weight:700;color:var(--green-on-dark);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
.deadline-title span{color:rgba(255,255,255,.55);font-weight:600;margin-left:6px}
.deadline-sub{font-family:var(--sans);font-size:13px;color:rgba(255,255,255,.75);line-height:1.4}
.deadline-sub strong{color:var(--white)}
.deadline-cta{white-space:nowrap;font-size:13px;padding:8px 16px;
  color:var(--white);border-color:rgba(255,255,255,.45)}
.deadline-cta:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.deadline-close{background:none;border:none;color:rgba(255,255,255,.4);font-size:20px;cursor:pointer;padding:4px 8px;line-height:1;flex-shrink:0}
.deadline-close:hover{color:white}
@media(max-width:680px){.deadline-bar{display:none}}

/* ── TESTIMONIALS ── */
.testimonials-sec{background:var(--stone);padding:80px 0;border-top:1px solid var(--rule)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tcard{background:var(--white);border-radius:12px;border:1px solid var(--rule);padding:28px;position:relative;transition:box-shadow .2s}
.tcard:hover{box-shadow:0 4px 20px rgba(0,0,0,.07)}
.tcard-quote{font-family:var(--serif);font-size:56px;color:var(--teal);opacity:.15;line-height:.8;margin-bottom:12px}
.tcard-text{font-family:var(--sans);font-size:14px;color:var(--body);line-height:1.7;margin-bottom:20px;font-style:italic}
.tcard-author{display:flex;align-items:center;gap:12px;border-top:1px solid var(--rule);padding-top:16px}
.tcard-avatar{width:38px;height:38px;border-radius:50%;background:var(--teal);color:white;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0}
.tcard-name{font-family:var(--sans);font-size:13.5px;font-weight:700;color:var(--ink)}
.tcard-role{font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:1px}
@media(max-width:900px){.testimonials-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.testimonials-grid{grid-template-columns:1fr}}

/* ── WHO WE HELP — 4 category cards ── */
.who-grid-4{grid-template-columns:repeat(4,1fr) !important}

/* Consultation CTA line */
.who-cta-line{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
  background:var(--teal-lt);border-radius:10px;
  padding:22px 28px;margin-top:32px;
  border:1px solid rgba(11,68,1,.15);
}
.who-cta-text{
  font-size:14px;color:var(--body);line-height:1.6;flex:1;
}
.who-cta-icon{font-size:20px;flex-shrink:0}

@media(max-width:1100px){.who-grid-4{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:580px){.who-grid-4{grid-template-columns:1fr !important}}
@media(max-width:680px){.who-cta-line{flex-direction:column;text-align:center}}

/* ── Logo mark: single inline SVG, recoloured per context ── */
.nav-logo .logo-mark,
.ft-logo .logo-mark{height:44px;width:auto;display:block;flex-shrink:0}
.nav-logo .logo-mark{color:var(--green)}
.ft-logo .logo-mark{color:#fff}

/* ── Form error message ── */
.form-error{display:none;margin-top:14px;padding:12px 14px;border-radius:4px;
  background:#FDECEA;border:1px solid #F5C2BC;color:#8A1C11;
  font-family:var(--sans);font-size:13.5px;line-height:1.55}

/* ── Status dot: replaces the U+25CF glyph, which sat on a different
      baseline in Chrome vs Edge and inherited emoji fallback ── */
.portal-dot{display:inline-block;width:7px;height:7px;border-radius:50%;
  background:currentColor;margin-right:7px;vertical-align:middle;position:relative;top:-1px}

/* ══ Legal pages: privacy policy, terms of use ══════════════════════════ */
/* Clear the fixed nav the same way .hero does, then add breathing room. */
.legal-hero{padding:calc(var(--nav-h) + 58px) 0 48px;
  background:var(--stone);border-bottom:1px solid var(--rule)}
@media(max-width:640px){.legal-hero{padding:calc(var(--nav-h) + 38px) 0 36px}}
.legal-h1{font-family:var(--serif);font-size:clamp(34px,5vw,52px);font-weight:300;
  color:var(--ink);line-height:1.1;letter-spacing:-.01em;margin:0}
.legal-updated{font-size:12.5px;color:var(--muted);margin-top:14px;
  text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.legal-intro{font-size:16px;line-height:1.7;color:var(--body);max-width:660px;margin-top:20px}

.legal-body{padding:60px 0 84px}
.legal-grid{display:grid;grid-template-columns:230px 1fr;gap:60px;align-items:start}
@media(max-width:900px){.legal-grid{grid-template-columns:1fr;gap:34px}}

.legal-toc{position:sticky;top:88px}
@media(max-width:900px){.legal-toc{position:static;padding-bottom:22px;border-bottom:1px solid var(--rule)}}
.legal-toc-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  color:var(--muted);margin-bottom:14px}
.legal-toc ul{list-style:none;padding:0;margin:0}
.legal-toc li{margin-bottom:9px}
.legal-toc a{font-size:13px;color:var(--body);text-decoration:none;line-height:1.45;
  display:block;border-left:2px solid var(--rule);padding-left:12px;transition:color .15s,border-color .15s}
.legal-toc a:hover{color:var(--green);border-left-color:var(--green)}
.legal-toc-alt{display:inline-block;margin-top:22px;font-size:13px;font-weight:600;
  color:var(--green);text-decoration:none;border-bottom:1px solid var(--green-rule);padding-bottom:2px}
.legal-toc-alt:hover{border-bottom-color:var(--green)}

.legal-content{max-width:720px}
.legal-sec{margin-bottom:44px;scroll-margin-top:96px}
.legal-sec:last-child{margin-bottom:0}
.legal-h2{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);
  line-height:1.3;margin-bottom:16px;display:flex;gap:14px;align-items:baseline}
.legal-n{font-family:var(--sans);font-size:12px;font-weight:700;color:var(--green);
  letter-spacing:.04em;flex-shrink:0;min-width:20px}
.legal-content p{font-size:15px;line-height:1.75;color:var(--body);margin-bottom:15px}
.legal-content p:last-child{margin-bottom:0}
.legal-content a{color:var(--green);text-decoration:underline;text-underline-offset:2px}
.legal-content a:hover{text-decoration-thickness:2px}
.legal-ul{margin:0 0 15px 0;padding-left:20px}
.legal-ul li{font-size:15px;line-height:1.7;color:var(--body);margin-bottom:8px}

.legal-contact{background:var(--green-pale);border:1px solid var(--green-rule);
  border-radius:6px;padding:22px 24px;margin-top:6px}
.legal-contact-h{font-weight:700;font-size:14.5px;color:var(--ink);margin-bottom:10px}
.legal-contact p{font-size:14px;margin-bottom:12px}
.legal-contact p:last-child{margin-bottom:0}

/* Footer Legal heading is now a link */
.ft-h a{color:inherit;text-decoration:none}
.ft-h a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* ══ Mobile touch targets and legibility ═══════════════════════════════════
   Standalone links in the nav, footer and page contents were 16 to 22px tall,
   under the 24px WCAG 2.2 minimum. Padding is added rather than font size, so
   nothing reflows on desktop. Inline links inside sentences are exempt from
   the rule and are deliberately left alone.
   ------------------------------------------------------------------------ */
@media(max-width:900px){
  .ml,
  .ft-ul a,
  .legal-toc a,
  .ft-soc-link{
    display:block;
    min-height:24px;
    padding-top:6px;
    padding-bottom:6px;
  }
  .ft-soc-link{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:34px;min-height:34px;padding:0;
  }
  .legal-toc-alt{min-height:24px;padding:6px 0}
  .nav-cta,.nav-login{min-height:44px;display:inline-flex;align-items:center}
}

/* Smallest text was 9.5px, below comfortable reading size on a phone. Raised
   to an 11px floor. Applied up to 900px, because 768px tablets were still
   rendering the original sizes. */
@media(max-width:900px){
  .svc-n,.stat-l,.proof-label{font-size:11px}
  .vb-t,.tc-role{font-size:11.5px}
  .tq-a,.bk-n,.c-l,.bk-badge span{font-size:11.5px}
  .file-label span{font-size:11.5px}
  .ft-h{font-size:11px}
  .ft-mark{font-size:11px}
  .ft-soc-link{font-size:11.5px}
  .ft-bottom,.ft-legal{font-size:11.5px}
}

/* ══ 404 page ══════════════════════════════════════════════════════════════ */
.nf-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.nf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:780px}
@media(max-width:720px){.nf-grid{grid-template-columns:1fr;gap:28px}}
.ft-h-alt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  color:var(--muted);margin-bottom:14px}
.nf-ul{list-style:none;padding:0;margin:0}
.nf-ul li{margin-bottom:4px}
.nf-ul a{font-size:14.5px;color:var(--body);text-decoration:none;
  display:block;padding:5px 0;min-height:24px;transition:color .15s}
.nf-ul a:hover{color:var(--green)}

/* The last four undersized targets, identified by measuring the rendered page
   rather than by guessing: the "View X services" card links, the telephone
   links in the contact block and footer address, and the footer Legal heading
   link. Padding only, so desktop layout is unchanged. */
@media(max-width:900px){
  .svc-a{display:inline-flex;align-items:center;min-height:24px;padding:5px 0}
  .c-v a,
  .ft-addr a{display:inline-flex;align-items:center;min-height:24px;padding:5px 0}
  .ft-h a{display:inline-block;min-height:24px;padding:5px 0}
}
