:root {
      /* Brand */
      --brand-900: #04342C;
      --brand-800: #085041;
      --brand-700: #0F6E56;
      --brand-500: #2C9B7C;
      --brand-300: #5DCAA5;
      --brand-100: #C9EBDD;
      --brand-50:  #E1F5EE;

      /* Accent (careers / warmth) */
      --amber-900: #412402;
      --amber-700: #854F0B;
      --amber-500: #BA7517;
      --amber-100: #FAEEDA;

      /* Neutrals */
      --bg-primary: #FFFFFF;
      --bg-secondary: #FAFAF7;
      --bg-tertiary: #F2F2EC;

      --text-primary: #1A2421;
      --text-secondary: #4A5853;
      --text-tertiary: #647069;

      --border-subtle: #ECEBE3;
      --border-strong: #D7D6CC;

      --radius-sm: 6px;
      --radius-md: 10px;
      --radius-lg: 16px;
      --radius-xl: 22px;

      --shadow-sm: 0 1px 2px rgba(4,52,44,.06), 0 1px 1px rgba(4,52,44,.04);
      --shadow-md: 0 6px 18px rgba(4,52,44,.08), 0 2px 4px rgba(4,52,44,.04);
      --shadow-lg: 0 18px 40px rgba(4,52,44,.12), 0 4px 8px rgba(4,52,44,.06);

      --container: 1180px;
      --gutter: 20px;

      --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
      --font-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
    }

    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
    body {
      margin: 0;
      font-family: var(--font-sans);
      color: var(--text-primary);
      background: var(--bg-primary);
      line-height: 1.55;
      font-size: 16px;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    img, svg { max-width: 100%; display: block; }
    a { color: var(--brand-700); text-decoration: none; }
    a:hover { text-decoration: underline; }

    h1, h2, h3, h4 {
      font-family: var(--font-serif);
      font-weight: 500;
      letter-spacing: -0.01em;
      color: var(--brand-900);
      margin: 0 0 .5em;
      line-height: 1.15;
    }
    h1 { font-size: clamp(2rem, 5vw + 1rem, 3.4rem); }
    h2 { font-size: clamp(1.6rem, 2.5vw + 1rem, 2.4rem); }
    h3 { font-size: 1.15rem; }
    p  { margin: 0 0 1em; color: var(--text-secondary); }

    .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
    section { padding: 64px 0; }
    @media (min-width: 768px) { section { padding: 88px 0; } }

    .eyebrow {
      display: inline-block;
      font-size: .72rem;
      font-weight: 600;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--brand-700);
      margin-bottom: 12px;
    }

    /* Buttons */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 14px 22px;
      border-radius: var(--radius-md);
      font-weight: 600;
      font-size: .95rem;
      line-height: 1;
      text-decoration: none;
      border: 1.5px solid transparent;
      transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
      cursor: pointer;
      min-height: 48px;
    }
    .btn:hover { text-decoration: none; transform: translateY(-1px); }
    /* premium light-sweep on filled buttons */
    .btn-primary, .btn-amber { position: relative; overflow: hidden; }
    .btn-primary::after, .btn-amber::after {
      content: ''; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
      background: linear-gradient(100deg, transparent, rgba(255,255,255,.28), transparent);
      transform: skewX(-18deg); transition: left .6s cubic-bezier(.2,.6,.2,1); pointer-events: none;
    }
    .btn-primary:hover::after, .btn-amber:hover::after { left: 130%; }
    @media (prefers-reduced-motion: reduce) {
      .btn-primary::after, .btn-amber::after { transition: none; display: none; }
    }
    .btn-primary { background: var(--brand-700); color: #fff; box-shadow: var(--shadow-sm); }
    .btn-primary:hover { background: var(--brand-800); box-shadow: var(--shadow-md); }
    .btn-secondary { background: #fff; color: var(--brand-700); border-color: var(--brand-300); }
    .btn-secondary:hover { background: var(--brand-50); }
    .btn-light { background: #fff; color: var(--brand-700); }
    .btn-ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
    .btn-amber { background: #A86511; color: #fff; }
    .btn-amber:hover { background: var(--amber-700); }

    .pill {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 6px 12px;
      border-radius: 999px;
      font-size: .78rem;
      font-weight: 600;
      background: #fff;
      color: var(--brand-700);
      box-shadow: var(--shadow-sm);
    }

    /* TOP UTILITY BAR */
    .util-bar {
      background: var(--brand-900);
      color: var(--brand-100);
      font-size: .8rem;
    }
    .util-bar .container {
      display: flex; justify-content: space-between; align-items: center;
      padding-top: 10px; padding-bottom: 10px;
      flex-wrap: wrap; gap: 6px;
    }
    .util-right { display: flex; gap: 18px; }
    .util-right span { display: inline-flex; align-items: center; gap: 6px; }
    @media (max-width: 600px) {
      .util-right .desk-only { display: none; }
    }

    /* HEADER NAV */
    header.site-nav {
      position: sticky; top: 0; z-index: 50;
      background: rgba(255,255,255,.92);
      backdrop-filter: saturate(180%) blur(10px);
      border-bottom: 1px solid var(--border-subtle);
    }
    .nav-row {
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 0;
    }
    .brand { display: flex; align-items: center; gap: 10px; }
    .brand-mark {
      width: 40px; height: 40px; border-radius: 10px;
      background: var(--brand-700); color: #fff;
      display: grid; place-items: center;
      font-weight: 700; font-size: 17px;
      font-family: var(--font-sans);
    }
    .brand-name { font-weight: 600; font-size: .98rem; color: var(--text-primary); line-height: 1.1; }
    .brand-tag  { font-size: .72rem; color: var(--text-tertiary); line-height: 1.2; }

    .nav-links {
      display: none;
      gap: 22px;
      align-items: center;
      font-size: .92rem;
    }
    .nav-links a:not(.btn) { color: var(--text-primary); font-weight: 500; }
    .nav-links a:not(.btn):hover { color: var(--brand-700); text-decoration: none; }
    .nav-cta { display: flex; gap: 10px; align-items: center; }
    .nav-careers { color: var(--brand-700) !important; font-weight: 600 !important; }

    .hamburger {
      display: inline-flex;
      width: 44px; height: 44px;
      align-items: center; justify-content: center;
      background: var(--bg-tertiary);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
      cursor: pointer;
      color: var(--text-primary);
    }
    .hamburger i { font-size: 22px; }

    .mobile-menu {
      display: none;
      border-top: 1px solid var(--border-subtle);
      padding: 14px 0 22px;
      background: #fff;
    }
    .mobile-menu.open { display: block; }
    .mobile-menu a {
      display: block;
      padding: 12px 0;
      font-size: 1rem;
      color: var(--text-primary);
      border-bottom: 1px solid var(--border-subtle);
    }
    .mobile-menu .btn { margin-top: 14px; width: 100%; }

    @media (min-width: 960px) {
      .nav-links { display: flex; }
      .hamburger { display: none; }
    }

    /* HERO */
    .hero {
      background:
        radial-gradient(900px 600px at 110% -10%, rgba(93,202,165,.35), transparent 60%),
        radial-gradient(800px 500px at -10% 120%, rgba(201,235,221,.6), transparent 60%),
        linear-gradient(180deg, var(--brand-50), #F5FBF8 70%, #fff);
      padding: 48px 0 56px;
    }
    @media (min-width: 768px) { .hero { padding: 80px 0 96px; } }

    .hero-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 32px;
      align-items: center;
    }
    @media (min-width: 960px) {
      .hero-grid { grid-template-columns: 1.15fr 1fr; gap: 56px; }
    }
    .hero h1 {
      color: var(--brand-900);
      margin: 14px 0 18px;
    }
    .hero h1 em {
      font-style: italic;
      color: var(--brand-700);
    }
    .hero-lede {
      font-size: 1.08rem;
      color: var(--brand-800);
      max-width: 560px;
      margin-bottom: 28px;
    }
    .hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; }
    .hero-stats {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 18px;
      padding-top: 24px;
      border-top: 1px solid var(--brand-300);
    }
    @media (min-width: 560px) { .hero-stats { grid-template-columns: repeat(4, 1fr); } }
    .stat-num { font-family: var(--font-serif); font-size: 1.7rem; color: var(--brand-900); font-weight: 600; line-height: 1; }
    .stat-lbl { font-size: .82rem; color: var(--brand-800); margin-top: 4px; }

    /* HERO FORM CARD */
    .lead-card {
      background: #fff;
      border-radius: var(--radius-xl);
      padding: 24px;
      border: 1px solid var(--border-subtle);
      box-shadow: var(--shadow-lg);
    }
    .lead-card-eyebrow {
      font-size: .85rem;
      color: var(--brand-700);
      font-weight: 600;
      letter-spacing: .04em;
      margin-bottom: 4px;
    }
    .lead-card h2 {
      font-size: 1.3rem;
      margin: 0 0 6px;
    }
    .lead-card-sub { font-size: .9rem; color: var(--text-secondary); margin-bottom: 18px; }

    .lead-fields { display: flex; flex-direction: column; gap: 12px; }
    .field-row { display: grid; grid-template-columns: 1fr; gap: 12px; }
    @media (min-width: 480px) { .field-row { grid-template-columns: 1fr 1fr; } }

    .lead-card input, .lead-card select {
      width: 100%;
      padding: 14px 14px;
      font: inherit;
      font-size: .95rem;
      color: var(--text-primary);
      background: var(--bg-secondary);
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
      min-height: 48px;
    }
    .lead-card input:focus, .lead-card select:focus {
      outline: none;
      border-color: var(--brand-500);
      box-shadow: 0 0 0 3px rgba(44,155,124,.18);
      background: #fff;
    }

    .lead-card .btn-primary { width: 100%; margin-top: 4px; padding: 16px; font-size: 1rem; min-height: 52px; }
    .lead-card-foot {
      display: flex; align-items: center; justify-content: center; gap: 6px;
      font-size: .78rem; color: var(--text-tertiary);
      margin-top: 12px;
    }
    .lead-secondary {
      text-align: center;
      margin-top: 14px;
      padding-top: 14px;
      border-top: 1px dashed var(--border-subtle);
      font-size: .85rem;
      color: var(--text-secondary);
    }
    .lead-jobs-redirect {
      text-align: center;
      margin-top: 10px;
      font-size: .8rem;
      color: var(--text-tertiary);
    }
    .lead-jobs-redirect a { color: var(--amber-700); }
    .lead-status {
      margin-top: 4px;
      font-size: .88rem;
      text-align: center;
      min-height: 0;
    }
    .lead-status.success {
      padding: 14px 12px;
      border-radius: var(--radius-md);
      background: var(--brand-50);
      color: var(--brand-800);
      border: 1px solid var(--brand-300);
    }
    .lead-status.error {
      padding: 12px;
      border-radius: var(--radius-md);
      background: #FBEAF0;
      color: #993556;
      border: 1px solid #F2B3C7;
    }
    .lead-card.submitted .lead-fields > *:not(#leadStatus) { display: none; }
    .lead-card.submitted .lead-card-sub { display: none; }
    #leadSubmit[disabled] { opacity: .65; cursor: wait; }

    /* TRUST STRIP */
    .trust-strip { background: #fff; border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); }
    .trust-strip section { padding: 36px 0; }
    .trust-grid {
      display: grid;
      gap: 18px;
      grid-template-columns: repeat(2, 1fr);
    }
    @media (min-width: 640px) { .trust-grid { grid-template-columns: repeat(3, 1fr); } }
    @media (min-width: 960px) { .trust-grid { grid-template-columns: repeat(5, 1fr); } }
    .trust-item { display: flex; align-items: center; gap: 12px; }
    .trust-icon {
      width: 40px; height: 40px;
      border-radius: 50%;
      display: grid; place-items: center;
      font-size: 20px;
      flex-shrink: 0;
    }
    .ti-1 { background: #E6F1FB; color: #185FA5; }
    .ti-2 { background: var(--brand-50); color: var(--brand-700); }
    .ti-3 { background: var(--amber-100); color: var(--amber-700); }
    .ti-4 { background: #EEEDFE; color: #3C3489; }
    .ti-5 { background: #FBEAF0; color: #993556; }
    .trust-title { font-size: .9rem; font-weight: 600; color: var(--text-primary); }
    .trust-sub   { font-size: .78rem; color: var(--text-tertiary); }

    /* WHO WE HELP */
    .who-grid {
      display: grid; gap: 16px;
      grid-template-columns: 1fr;
      margin-top: 28px;
    }
    @media (min-width: 720px) { .who-grid { grid-template-columns: repeat(3, 1fr); } }
    .who-card {
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-lg);
      padding: 28px 24px;
      transition: transform .2s ease, box-shadow .2s ease;
    }
    .who-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
    .who-art {
      width: 56px; height: 56px;
      border-radius: 14px;
      background: linear-gradient(135deg, var(--brand-50), var(--brand-100));
      color: var(--brand-700);
      display: grid; place-items: center;
      font-size: 28px;
      margin-bottom: 18px;
    }
    .who-photo {
      margin: -28px -24px 18px;
      height: 190px; overflow: hidden;
      border-radius: var(--radius-lg) var(--radius-lg) 0 0;
      background: var(--brand-100);
    }
    .who-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%;
      transition: transform .5s cubic-bezier(.2,.6,.2,1); }
    .who-card:hover .who-photo img { transform: scale(1.05); }
    .funding-photo, .careers-photo {
      border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 20px;
      box-shadow: var(--shadow-sm);
    }
    .funding-photo { height: 240px; }
    .careers-photo { height: 230px; }
    .funding-photo img, .careers-photo img { width: 100%; height: 100%; object-fit: cover; }
    .funding-photo img { object-position: center 38%; }
    .careers-photo img { object-position: center 22%; }
    .who-card h3 { font-size: 1.2rem; margin-bottom: 8px; color: var(--brand-900); }
    .who-card p { font-size: .94rem; }
    .who-card ul {
      list-style: none; padding: 0; margin: 12px 0 0;
      font-size: .88rem; color: var(--text-secondary);
    }
    .who-card li { padding: 4px 0 4px 22px; position: relative; }
    .who-card li::before {
      content: "✓";
      position: absolute; left: 0; top: 4px;
      color: var(--brand-500); font-weight: 700;
    }

    /* SERVICES */
    .section-head { text-align: center; max-width: 640px; margin: 0 auto 36px; }
    .section-head h2 { margin-bottom: 12px; }
    .section-head p  { font-size: 1rem; color: var(--text-secondary); }

    .svc-grid {
      display: grid; gap: 14px;
      grid-template-columns: 1fr;
    }
    @media (min-width: 560px) { .svc-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 960px) { .svc-grid { grid-template-columns: repeat(3, 1fr); } }
    .svc-card {
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-lg);
      padding: 26px 22px;
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }
    .svc-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--brand-300); }
    .svc-icon {
      width: 44px; height: 44px; border-radius: 12px;
      background: var(--brand-50); color: var(--brand-700);
      display: grid; place-items: center;
      font-size: 22px; margin-bottom: 14px;
    }
    .svc-card h3 { font-size: 1.1rem; margin-bottom: 6px; color: var(--brand-900); }
    .svc-card p { font-size: .9rem; margin: 0; }

    /* HOW IT WORKS */
    .how { background: var(--bg-secondary); }
    .steps {
      display: grid; gap: 14px;
      grid-template-columns: 1fr;
    }
    @media (min-width: 640px) { .steps { grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 1024px) { .steps { grid-template-columns: repeat(4, 1fr); } }
    .step {
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-lg);
      padding: 24px;
      position: relative;
    }
    .step-num {
      font-family: var(--font-serif);
      font-size: 2.4rem;
      color: var(--brand-500);
      line-height: 1; margin-bottom: 12px;
      font-weight: 600;
    }
    .step h3 { font-size: 1rem; margin-bottom: 6px; }
    .step p  { font-size: .88rem; margin: 0; }

    /* FUNDING */
    .funding { background: linear-gradient(180deg, #fff, var(--bg-secondary)); }
    .funding-grid {
      display: grid; gap: 36px;
      grid-template-columns: 1fr;
      align-items: center;
    }
    @media (min-width: 900px) { .funding-grid { grid-template-columns: 1fr 1.15fr; } }
    .funding-steps {
      background: #fff; border-radius: var(--radius-lg);
      padding: 28px;
      border: 1px solid var(--border-subtle);
      box-shadow: var(--shadow-sm);
    }
    .fund-step { display: flex; gap: 14px; padding: 12px 0; }
    .fund-step + .fund-step { border-top: 1px dashed var(--border-subtle); }
    .fund-step-num {
      width: 32px; height: 32px; border-radius: 50%;
      background: var(--brand-50); color: var(--brand-700);
      display: grid; place-items: center;
      font-weight: 700; flex-shrink: 0;
    }
    .fund-step-title { font-weight: 600; font-size: .95rem; color: var(--text-primary); }
    .fund-step-sub   { font-size: .85rem; color: var(--text-secondary); }

    /* LEAD MAGNET */
    .magnet {
      background: linear-gradient(180deg, var(--bg-secondary), #fff);
    }
    .magnet-grid {
      display: grid; gap: 32px;
      grid-template-columns: 1fr;
      align-items: center;
    }
    @media (min-width: 900px) { .magnet-grid { grid-template-columns: 1fr 1.1fr; } }

    .magnet-preview {
      position: relative;
      background: var(--brand-50);
      border-radius: var(--radius-lg);
      padding: 28px;
      display: grid; place-items: center;
      aspect-ratio: 4 / 3;
      overflow: hidden;
      box-shadow: var(--shadow-md);
    }
    .magnet-preview svg { width: 100%; max-width: 320px; height: auto; }
    .magnet-preview .badge {
      position: absolute;
      top: 18px; right: 18px;
      background: var(--amber-100);
      color: var(--amber-700);
      font-size: .7rem;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      padding: 6px 12px;
      border-radius: 999px;
      box-shadow: var(--shadow-sm);
    }

    .magnet h2 { font-size: clamp(1.4rem, 2vw + 1rem, 1.95rem); }
    .magnet-bullets { list-style: none; padding: 0; margin: 14px 0 22px; }
    .magnet-bullets li {
      padding: 6px 0 6px 26px;
      position: relative;
      font-size: .95rem;
      color: var(--text-secondary);
    }
    .magnet-bullets li::before {
      content: "✓";
      position: absolute; left: 4px; top: 6px;
      color: var(--brand-500); font-weight: 700;
    }

    .magnet-form { display: flex; flex-direction: column; gap: 12px; }
    .magnet-form .field-row { display: grid; gap: 12px; grid-template-columns: 1fr; }
    @media (min-width: 480px) { .magnet-form .field-row { grid-template-columns: 1fr 1fr; } }
    .magnet-form input[type="text"], .magnet-form input[type="email"] {
      width: 100%;
      padding: 14px;
      font: inherit; font-size: .95rem;
      color: var(--text-primary);
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
      min-height: 48px;
    }
    .magnet-form input:focus {
      outline: none;
      border-color: var(--brand-500);
      box-shadow: 0 0 0 3px rgba(44,155,124,.18);
    }
    .magnet-consent {
      display: flex;
      gap: 10px;
      align-items: flex-start;
      font-size: .82rem;
      color: var(--text-secondary);
      cursor: pointer;
    }
    .magnet-consent input[type="checkbox"] {
      margin-top: 3px;
      width: 16px; height: 16px;
      accent-color: var(--brand-700);
      flex-shrink: 0;
    }
    .magnet-status {
      margin-top: 6px;
      font-size: .88rem;
      min-height: 0;
    }
    .magnet-status.success {
      padding: 14px;
      border-radius: var(--radius-md);
      background: var(--brand-50);
      color: var(--brand-800);
      border: 1px solid var(--brand-300);
    }
    .magnet-status.error {
      padding: 12px;
      border-radius: var(--radius-md);
      background: #FBEAF0;
      color: #993556;
      border: 1px solid #F2B3C7;
    }
    #magnetSubmit[disabled] { opacity: .65; cursor: wait; }

    /* PROMISE BAND */
    .promise {
      background: var(--brand-900);
      color: #fff;
      text-align: center;
      padding: 64px 0;
    }
    .promise-quote {
      font-family: var(--font-serif);
      font-size: clamp(1.4rem, 2.4vw + 1rem, 2.2rem);
      font-style: italic;
      color: #fff;
      max-width: 760px;
      margin: 0 auto 12px;
      line-height: 1.35;
    }
    .promise p { color: var(--brand-100); max-width: 600px; margin: 0 auto; }

    /* WHY CHOOSE US */
    .why { background: var(--bg-secondary); }
    .why-grid {
      display: grid; gap: 16px; grid-template-columns: 1fr;
      margin-top: 36px;
    }
    @media (min-width: 600px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 960px) { .why-grid { grid-template-columns: repeat(4, 1fr); } }
    .why-card {
      background: #fff; border: 1px solid var(--border-subtle);
      border-radius: var(--radius-lg); padding: 26px 22px; text-align: center;
      transition: transform .25s cubic-bezier(.2,.6,.2,1), box-shadow .25s ease;
    }
    .why-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
    .why-icon {
      width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 14px;
      background: linear-gradient(135deg, var(--brand-50), var(--brand-100));
      color: var(--brand-700); display: grid; place-items: center; font-size: 26px;
    }
    .why-card h3 { font-size: 1.05rem; margin-bottom: 8px; color: var(--brand-900); }
    .why-card p { font-size: .9rem; margin: 0; line-height: 1.6; }
    .why-contrast {
      max-width: 760px; margin: 36px auto 0; padding: 22px 26px;
      background: #fff; border: 1px solid var(--border-subtle);
      border-left: 4px solid var(--brand-700); border-radius: var(--radius-md);
      font-size: 1rem; color: var(--text-secondary); line-height: 1.65;
    }
    .why-contrast strong { color: var(--brand-900); }

    /* TESTIMONIALS */
    .testimonials { background: var(--brand-50); }
    .t-grid {
      display: grid; gap: 18px;
      grid-template-columns: 1fr;
    }
    @media (min-width: 768px) { .t-grid { grid-template-columns: repeat(3, 1fr); } }
    .t-card {
      background: #fff;
      border-radius: var(--radius-lg);
      padding: 26px;
      border: 1px solid var(--border-subtle);
      display: flex; flex-direction: column;
    }
    .t-quote {
      font-family: var(--font-serif);
      font-size: 1.05rem;
      line-height: 1.55;
      color: var(--brand-900);
      font-style: italic;
      margin: 0 0 18px;
      flex: 1;
    }
    .t-author { display: flex; align-items: center; gap: 12px; }
    .t-avatar {
      width: 40px; height: 40px;
      border-radius: 50%;
      background: var(--brand-500); color: #fff;
      display: grid; place-items: center;
      font-weight: 600; font-size: .9rem;
    }
    .t-name { font-size: .92rem; font-weight: 600; color: var(--brand-900); }
    .t-meta { font-size: .78rem; color: var(--brand-800); }

    /* CAREERS */
    .careers { background: var(--amber-100); }
    .careers-grid {
      display: grid; gap: 32px;
      grid-template-columns: 1fr;
    }
    @media (min-width: 900px) { .careers-grid { grid-template-columns: 1fr 1.2fr; } }
    .careers h2 { color: var(--amber-900); }
    .careers p { color: var(--amber-700); }
    .careers ul.benefits { list-style: none; padding: 0; margin: 14px 0 22px; }
    .careers ul.benefits li {
      padding: 6px 0 6px 26px; position: relative;
      font-size: .92rem; color: var(--amber-700);
    }
    .careers ul.benefits li::before {
      content: "✓";
      position: absolute; left: 0; top: 6px;
      color: var(--amber-500); font-weight: 700;
    }
    .jobs-head {
      font-size: .85rem; font-weight: 600;
      color: var(--amber-900); margin-bottom: 12px;
      letter-spacing: .04em; text-transform: uppercase;
    }
    .job-card {
      background: #fff;
      border-radius: var(--radius-md);
      padding: 16px 18px;
      display: flex; gap: 12px; align-items: center;
      justify-content: space-between;
      border: 1px solid #F0E1C2;
    }
    .job-card + .job-card { margin-top: 8px; }
    .job-title { font-size: .98rem; font-weight: 600; color: var(--amber-900); }
    .job-meta  { font-size: .82rem; color: var(--amber-700); margin-top: 2px; }
    .job-cta { color: var(--amber-500); font-weight: 600; font-size: .85rem; white-space: nowrap; }

    /* FAQ */
    .faq-wrap { max-width: 820px; margin: 0 auto; }
    .faq-item {
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
      margin-bottom: 10px;
      overflow: hidden;
    }
    .faq-item summary {
      list-style: none;
      cursor: pointer;
      padding: 18px 20px;
      font-weight: 600;
      color: var(--brand-900);
      display: flex; justify-content: space-between; align-items: center;
      gap: 16px;
      font-size: 1rem;
    }
    .faq-item summary::-webkit-details-marker { display: none; }
    .faq-item summary::after {
      content: "+";
      color: var(--brand-700);
      font-size: 26px;
      line-height: 1;
      font-weight: 400;
      transition: transform .2s ease;
    }
    .faq-item[open] summary::after { transform: rotate(45deg); }
    .faq-body {
      padding: 0 20px 20px;
      color: var(--text-secondary);
      font-size: .95rem;
      line-height: 1.6;
    }

    /* SERVICE AREA */
    .area { background: var(--bg-secondary); }
    .area-grid {
      display: grid; gap: 36px;
      grid-template-columns: 1fr;
      align-items: center;
    }
    @media (min-width: 900px) { .area-grid { grid-template-columns: 1fr 1.1fr; } }
    .cities {
      display: grid; gap: 12px;
      grid-template-columns: repeat(2, 1fr);
    }
    .city-card {
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-md);
      padding: 16px;
    }
    .city-card .name { font-weight: 600; font-size: 1rem; color: var(--brand-900); }
    .city-card .sub  { font-size: .82rem; color: var(--text-tertiary); margin-top: 2px; }
    .area-map {
      background: radial-gradient(120% 120% at 70% 10%, #fff 40%, var(--brand-50) 100%);
      border-radius: var(--radius-lg);
      border: 1px solid var(--border-subtle);
      padding: 24px;
      position: relative;
      aspect-ratio: 4 / 3;
      box-shadow: var(--shadow-md);
      overflow: hidden;
    }
    .area-map svg { width: 100%; height: 100%; }
    /* animated location pulses on the map */
    .map-pulse { transform-box: fill-box; transform-origin: center; animation: map-ping 2.8s ease-out infinite; }
    .map-pulse.d2 { animation-delay: .7s; }
    .map-pulse.d3 { animation-delay: 1.4s; }
    .map-pulse.d4 { animation-delay: 2.1s; }
    @keyframes map-ping {
      0%   { transform: scale(.5); opacity: .7; }
      70%  { transform: scale(2.4); opacity: 0; }
      100% { transform: scale(2.4); opacity: 0; }
    }
    /* the highway corridor line draws itself once in view */
    .map-corridor { stroke-dasharray: 360; stroke-dashoffset: 360; animation: corridor-draw 2.4s ease-out forwards; }
    @keyframes corridor-draw { to { stroke-dashoffset: 0; } }
    @media (prefers-reduced-motion: reduce) {
      .map-pulse { animation: none; opacity: 0; }
      .map-corridor { animation: none; stroke-dashoffset: 0; }
    }

    /* BLOG */
    .blog-head {
      display: flex; align-items: end; justify-content: space-between;
      flex-wrap: wrap; gap: 14px; margin-bottom: 28px;
    }
    .blog-grid {
      display: grid; gap: 16px;
      grid-template-columns: 1fr;
    }
    @media (min-width: 700px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 1024px) { .blog-grid { grid-template-columns: repeat(3, 1fr); } }
    .post-card {
      background: #fff;
      border: 1px solid var(--border-subtle);
      border-radius: var(--radius-lg);
      overflow: hidden;
      transition: transform .2s ease, box-shadow .2s ease;
      display: flex; flex-direction: column;
    }
    .post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
    .post-thumb {
      aspect-ratio: 16 / 9;
      background:
        radial-gradient(circle at 30% 30%, var(--brand-100), transparent 60%),
        linear-gradient(135deg, var(--brand-50), #fff);
      display: grid; place-items: center;
      color: var(--brand-500);
      font-size: 38px;
    }
    .post-thumb.alt-1 { background: linear-gradient(135deg, #EFE4D2, #FAF6EE); color: var(--amber-500); }
    .post-thumb.alt-2 { background: linear-gradient(135deg, #E6F1FB, #F5FAFE); color: #185FA5; }
    .post-body { padding: 20px 22px; flex: 1; display: flex; flex-direction: column; }
    .post-cat {
      font-size: .72rem; font-weight: 600;
      color: var(--brand-700); letter-spacing: .08em;
      text-transform: uppercase; margin-bottom: 8px;
    }
    .post-title {
      font-family: var(--font-serif);
      font-size: 1.1rem;
      color: var(--brand-900);
      font-weight: 600;
      margin: 0 0 8px;
      line-height: 1.35;
    }
    .post-desc { font-size: .88rem; color: var(--text-secondary); margin: 0 0 12px; flex: 1; }
    .post-meta { font-size: .78rem; color: var(--text-tertiary); }

    /* FINAL CTA */
    .final-cta {
      background:
        radial-gradient(700px 400px at 80% -10%, rgba(93,202,165,.35), transparent 60%),
        var(--brand-700);
      color: #fff;
      text-align: center;
    }
    .final-cta h2 { color: #fff; }
    .final-cta p { color: var(--brand-100); max-width: 540px; margin: 0 auto 26px; }
    .final-cta-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

    /* FOOTER */
    footer.site-foot { background: var(--bg-tertiary); border-top: 1px solid var(--border-subtle); padding: 48px 0 0; }
    .foot-grid {
      display: grid; gap: 32px;
      grid-template-columns: 1fr;
    }
    @media (min-width: 640px) { .foot-grid { grid-template-columns: 1.4fr 1fr 1fr; } }
    @media (min-width: 960px) { .foot-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; } }
    .foot-col h3 {
      font-family: var(--font-sans);
      font-size: .85rem;
      font-weight: 700;
      letter-spacing: .04em;
      text-transform: uppercase;
      color: var(--text-primary);
      margin: 0 0 14px;
    }
    .foot-col a { color: var(--text-secondary); display: block; padding: 4px 0; font-size: .9rem; }
    .foot-col a:hover { color: var(--brand-700); text-decoration: none; }
    .foot-brand-tagline { color: var(--text-secondary); font-size: .9rem; margin: 12px 0; max-width: 320px; }
    .foot-contact { display: flex; flex-direction: column; gap: 6px; font-size: .9rem; color: var(--text-secondary); }
    .foot-contact a { padding: 0; display: inline-flex; align-items: center; gap: 6px; }
    .foot-bottom {
      border-top: 1px solid var(--border-subtle);
      margin-top: 40px;
      padding: 18px 0 24px;
      font-size: .8rem;
      color: var(--text-tertiary);
      display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
    }
    .foot-bottom .links a { color: var(--text-tertiary); margin-left: 14px; font-size: .8rem; }

    /* FLOATING MOBILE CALL */
    .float-call {
      position: fixed;
      bottom: 16px; right: 16px;
      z-index: 60;
      background: var(--brand-700);
      color: #fff;
      padding: 12px 18px 12px 12px;
      border-radius: 999px;
      display: inline-flex;
      align-items: center; gap: 10px;
      font-weight: 600;
      font-size: .9rem;
      box-shadow: var(--shadow-lg);
      border: 2px solid #fff;
    }
    .float-call .ring {
      background: #fff; color: var(--brand-700);
      width: 30px; height: 30px;
      border-radius: 50%; display: grid; place-items: center;
      font-size: 16px;
    }
    @media (min-width: 960px) { .float-call { display: none; } }

    /* Utility */
    .center { text-align: center; }
    .hide-mobile { display: none; }
    @media (min-width: 768px) { .hide-mobile { display: inline; } }
    .small { font-size: .85rem; color: var(--text-tertiary); }

    /* ─── Effects ──────────────────────────────── */

    /* Scroll-reveal */
    .reveal {
      opacity: 0;
      transform: translateY(22px);
      transition: opacity .7s cubic-bezier(.2,.6,.2,1), transform .7s cubic-bezier(.2,.6,.2,1);
      will-change: opacity, transform;
    }
    .reveal.in {
      opacity: 1;
      transform: none;
    }
    @media (prefers-reduced-motion: reduce) {
      .reveal { opacity: 1; transform: none; transition: none; }
    }

    /* Top scroll-progress bar */
    .scroll-progress {
      position: fixed; top: 0; left: 0;
      height: 3px;
      width: 0%;
      background: linear-gradient(90deg, var(--brand-500), var(--brand-300));
      z-index: 100;
      pointer-events: none;
      transition: width .08s linear;
    }

    /* Phone-button pulse */
    .pulse-ring {
      position: relative;
    }
    .pulse-ring::after {
      content: '';
      position: absolute;
      inset: -4px;
      border-radius: inherit;
      border: 2px solid currentColor;
      opacity: 0;
      animation: pulse 2.4s ease-out infinite;
      pointer-events: none;
    }
    @keyframes pulse {
      0%   { transform: scale(.92); opacity: .55; }
      80%  { transform: scale(1.18); opacity: 0; }
      100% { transform: scale(1.18); opacity: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      .pulse-ring::after { animation: none; }
    }

    /* Back-to-top */
    .to-top {
      position: fixed;
      /* Sits cleanly ABOVE the floating CTA cluster, aligned to its right edge. */
      bottom: 200px; right: 16px;
      width: 40px; height: 40px;
      border-radius: 50%;
      background: #fff;
      color: var(--brand-700);
      border: 1px solid var(--border-subtle);
      box-shadow: var(--shadow-md);
      display: grid; place-items: center;
      cursor: pointer;
      opacity: 0; pointer-events: none;
      transform: translateY(8px);
      transition: opacity .25s ease, transform .25s ease, background .15s ease;
      z-index: 55;
    }
    .to-top.show { opacity: 1; pointer-events: auto; transform: none; }
    .to-top:hover { background: var(--brand-50); }
    .to-top i { font-size: 18px; }

    /* HERO ILLUSTRATION CARD */
    .hero {
      position: relative;
      overflow: hidden;
    }
    .hero-grid { position: relative; z-index: 2; }
    .hero-photo {
      position: absolute;
      bottom: -32px; right: -24px;
      width: 340px;
      aspect-ratio: 16 / 9;
      border-radius: 20px;
      overflow: hidden;
      transform: rotate(3deg);
      box-shadow: var(--shadow-lg);
      border: 8px solid #fff;
      display: none;
      z-index: 1;
      background: var(--brand-50);
    }
    .hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
    @media (min-width: 1100px) { .hero-photo { display: block; } }
    @media (min-width: 1280px) { .hero-photo { width: 400px; bottom: -40px; right: -32px; } }

    /* Illustration strip inside Inside-the-Team grid first card */
    .glimpse-card.illustration { background: var(--brand-50); }
    .glimpse-card.illustration img { object-fit: cover; object-position: center; }

    /* WHO-WE-HELP SVG illustrations */
    .who-art {
      width: 100%;
      max-width: 220px;
      height: 120px;
      border-radius: 14px;
      background: linear-gradient(135deg, var(--brand-50), var(--brand-100));
      margin-bottom: 18px;
      position: relative;
      overflow: hidden;
    }
    .who-art svg { width: 100%; height: 100%; display: block; }

    /* INSIDE-THE-TEAM SECTION */
    .glimpse { background: #fff; }
    .glimpse-grid {
      display: grid; gap: 16px;
      grid-template-columns: 1fr;
      margin-top: 28px;
    }
    @media (min-width: 720px) { .glimpse-grid { grid-template-columns: repeat(3, 1fr); } }
    .glimpse-card {
      position: relative;
      aspect-ratio: 4 / 5;
      border-radius: var(--radius-lg);
      overflow: hidden;
      box-shadow: var(--shadow-md);
      background: var(--brand-100);
    }
    .glimpse-card img {
      width: 100%; height: 100%; object-fit: cover;
      transition: transform .5s cubic-bezier(.2,.6,.2,1);
    }
    .glimpse-card:hover img { transform: scale(1.06); }
    .glimpse-cap {
      position: absolute; left: 0; right: 0; bottom: 0;
      padding: 18px 18px 16px;
      color: #fff;
      background: linear-gradient(180deg, rgba(4,52,44,0) 0%, rgba(4,52,44,.85) 100%);
      font-family: var(--font-serif);
      font-size: 1.05rem;
      line-height: 1.3;
    }
    .glimpse-cap small {
      display: block;
      font-family: var(--font-sans);
      font-size: .72rem;
      color: var(--brand-100);
      font-weight: 600;
      letter-spacing: .08em;
      text-transform: uppercase;
      margin-bottom: 4px;
    }

    /* BLOG POST PHOTO THUMBNAILS (override gradient) */
    .post-thumb.has-photo {
      background: var(--brand-100);
      padding: 0;
      aspect-ratio: 16 / 10;
    }
    .post-thumb.has-photo img { width: 100%; height: 100%; object-fit: cover; }
    .post-card:hover .post-thumb.has-photo img { transform: scale(1.05); }
    .post-thumb.has-photo img { transition: transform .5s ease; }

    /* Softer global hover transitions on cards already set; just enhance shadow lift */
    .svc-card, .who-card, .post-card { transition: transform .25s cubic-bezier(.2,.6,.2,1), box-shadow .25s ease, border-color .2s ease; }

    /* ─── Ambient motion ───────────────────────────────── */

    /* 1. Hero illustration float */
    @keyframes hero-float {
      0%, 100% { transform: rotate(3deg) translateY(0); }
      50%      { transform: rotate(3deg) translateY(-6px); }
    }
    .hero-photo {
      animation: hero-float 6s ease-in-out infinite;
    }

    /* 2. Hero background gradient breathing */
    .hero {
      background: linear-gradient(180deg, var(--brand-50), #F5FBF8 70%, #fff);
    }
    .hero::before, .hero::after {
      content: '';
      position: absolute;
      pointer-events: none;
      z-index: 0;
      filter: blur(2px);
    }
    .hero::before {
      width: 900px; height: 600px;
      top: -10%; right: -10%;
      background: radial-gradient(closest-side, rgba(93,202,165,.35), transparent 70%);
      animation: drift-a 14s ease-in-out infinite alternate;
    }
    .hero::after {
      width: 800px; height: 500px;
      bottom: -10%; left: -10%;
      background: radial-gradient(closest-side, rgba(201,235,221,.6), transparent 70%);
      animation: drift-b 18s ease-in-out infinite alternate;
    }
    @keyframes drift-a {
      0%   { transform: translate(0, 0) scale(1); opacity: .9; }
      100% { transform: translate(-30px, 20px) scale(1.08); opacity: 1; }
    }
    @keyframes drift-b {
      0%   { transform: translate(0, 0) scale(1); opacity: .85; }
      100% { transform: translate(40px, -30px) scale(1.1); opacity: 1; }
    }

    /* 3. SVG persona micro-motions */
    .who-art .pulse-heart {
      transform-box: fill-box;
      transform-origin: 50% 50%;
      animation: heart-beat 2.6s ease-in-out infinite;
    }
    @keyframes heart-beat {
      0%, 60%, 100% { transform: scale(1); }
      15%           { transform: scale(1.22); }
      30%           { transform: scale(1); }
      45%           { transform: scale(1.14); }
    }

    .who-art .ekg-line {
      stroke-dasharray: 80;
      stroke-dashoffset: 80;
      animation: ekg-trace 3.2s ease-in-out infinite;
    }
    @keyframes ekg-trace {
      0%   { stroke-dashoffset: 80; }
      45%  { stroke-dashoffset: 0; }
      65%  { stroke-dashoffset: 0; }
      100% { stroke-dashoffset: -80; }
    }

    .who-art .rocking {
      transform-box: fill-box;
      transform-origin: 50% 100%;
      animation: rock 3.4s ease-in-out infinite;
    }
    @keyframes rock {
      0%, 100% { transform: rotate(-1.8deg); }
      50%      { transform: rotate(1.8deg); }
    }

    /* Testimonial quote-mark gentle breathing */
    .t-card > .ti-quote {
      display: inline-block;
      transform-origin: center;
      animation: quote-breathe 4s ease-in-out infinite;
    }
    @keyframes quote-breathe {
      0%, 100% { transform: scale(1); opacity: .85; }
      50%      { transform: scale(1.08); opacity: 1; }
    }
    /* Staggered fade-in for testimonial cards */
    .t-grid > .t-card.reveal { transition-delay: 0ms; }
    .t-grid > .t-card.reveal:nth-child(2) { transition-delay: 150ms; }
    .t-grid > .t-card.reveal:nth-child(3) { transition-delay: 300ms; }
    @media (prefers-reduced-motion: reduce) {
      .t-card > .ti-quote { animation: none; }
      .t-grid > .t-card.reveal { transition-delay: 0ms !important; }
    }

    /* Floating CTA cluster (desktop + mobile) */
    .float-cta-cluster {
      position: fixed;
      bottom: 16px; right: 16px;
      z-index: 60;
      display: flex; flex-direction: column; gap: 8px;
      align-items: stretch;
      opacity: 0;
      transform: translateY(8px);
      pointer-events: none;
      transition: opacity .3s ease, transform .3s ease;
      min-width: 156px;
    }
    .float-cta-cluster.show {
      opacity: 1;
      transform: none;
      pointer-events: auto;
    }
    .float-cta-cluster a {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 10px 16px 10px 10px;
      border-radius: 999px;
      font-weight: 600;
      font-size: .88rem;
      line-height: 1;
      text-decoration: none;
      box-shadow: var(--shadow-lg);
      transition: transform .15s ease;
      white-space: nowrap;
    }
    .float-cta-cluster a:hover { transform: translateY(-2px); text-decoration: none; }
    .float-cta-cluster .ring {
      background: #fff; color: var(--brand-700);
      width: 30px; height: 30px;
      border-radius: 50%;
      display: grid; place-items: center;
      font-size: 15px;
      flex-shrink: 0;
    }
    .fcta-call {
      background: var(--brand-700);
      color: #fff;
      border: 2px solid #fff;
    }
    .fcta-request {
      background: #fff;
      color: var(--brand-900);
      border: 1.5px solid var(--brand-300);
    }
    .fcta-request .ring {
      background: var(--brand-700); color: #fff;
    }
    .fcta-text {
      background: var(--brand-50);
      color: var(--brand-900);
      border: 1.5px solid var(--brand-300);
    }
    .fcta-text .ring {
      background: var(--brand-700); color: #fff;
    }
    /* Tighten on small phones to keep cluster compact */
    @media (max-width: 420px) {
      .float-cta-cluster { gap: 6px; min-width: 0; }
      .float-cta-cluster a { padding: 9px 14px 9px 9px; font-size: .85rem; }
      .float-cta-cluster .ring { width: 28px; height: 28px; font-size: 14px; }
      .to-top { bottom: 184px; right: 16px; } /* keep above the shorter cluster on small phones */
    }
    /* On larger screens, give it a bit more presence */
    @media (min-width: 960px) {
      .float-cta-cluster { bottom: 20px; right: 20px; gap: 10px; }
      .float-cta-cluster a { padding: 11px 18px 11px 11px; font-size: .9rem; }
      .to-top { bottom: 214px; right: 20px; } /* above the taller desktop cluster, right edges aligned */
    }
    @media (prefers-reduced-motion: reduce) {
      .float-cta-cluster { transition: opacity .15s linear; }
      .float-cta-cluster a:hover { transform: none; }
    }

    /* 4. Animated nav underlines */
    .nav-links a:not(.btn):not(.nav-careers) {
      position: relative;
      padding-bottom: 3px;
    }
    .nav-links a:not(.btn):not(.nav-careers)::after {
      content: '';
      position: absolute;
      left: 0; right: 0; bottom: 0;
      height: 2px;
      background: var(--brand-700);
      transform: scaleX(0);
      transform-origin: left center;
      transition: transform .28s cubic-bezier(.2,.6,.2,1);
    }
    .nav-links a:not(.btn):not(.nav-careers):hover {
      text-decoration: none;
    }
    .nav-links a:not(.btn):not(.nav-careers):hover::after {
      transform: scaleX(1);
    }

    @media (prefers-reduced-motion: reduce) {
      .hero-photo, .hero::before, .hero::after,
      .who-art .pulse-heart, .who-art .ekg-line, .who-art .rocking {
        animation: none;
      }
      .nav-links a:not(.btn):not(.nav-careers)::after { transition: none; }
    }
  
    /* ---- Brand script tagline (Allura) — matches the printed flyer, added 2026-09-10 ---- */
    /* Allura is self-hosted in fonts/fonts.css. Its x-height is roughly half that of a
       text face at the same px, so every size below is set optically, not numerically. */
    .script-tagline {
      /* The stack deliberately does NOT end in the generic `cursive` keyword:
         Windows Chrome/Edge maps that to Comic Sans MS. If Allura ever fails to
         load the line degrades to the site's own serif register instead. */
      font-family: 'Allura', 'Snell Roundhand', 'Apple Chancery', Georgia, 'Times New Roman', serif;
      font-weight: 400;
      font-style: normal;
      font-synthesis: none;
      color: var(--brand-700, #0F6E56);
      line-height: 1.05;
      letter-spacing: .005em;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    /* a line may only break between sentences, never inside one */
    .script-tagline span { white-space: nowrap; }
    .foot-script {
      font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem);
      line-height: 1.25;   /* it wraps to two lines in narrow footer columns */
      margin: 0 0 10px;
      text-align: center;
    }

    /* the promise band sits on dark green — lift the script to mint so it stays legible */
    .promise .script-tagline { color: #8FE3C4; }
    .promise-quote.script-tagline {
      font-size: clamp(2.6rem, 1.4rem + 4.6vw, 4.6rem);
      font-style: normal;
      line-height: 1.18;
      margin: 0 auto 6px;
      max-width: 22ch;
    }
    .promise-rule {
      height: 2px; width: min(300px, 70%); margin: 0 auto 18px;
      background: linear-gradient(90deg, transparent, rgba(143,227,196,.8), transparent);
      border: 0;
    }
  
    /* links to the new service and city pages (2026-09-24) */
    .svc-card { position: relative; }
    .svc-card .card-link { color: inherit; text-decoration: none; }
    .svc-card .card-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
    .svc-card:has(.card-link:focus-visible) { outline: 2px solid var(--brand-700); outline-offset: 3px; }
    a.city-card { display: block; color: inherit; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
    a.city-card:hover { border-color: var(--brand-300); box-shadow: var(--shadow-sm); }
    a.city-card:focus-visible { outline: 2px solid var(--brand-700); outline-offset: 3px; }

/* ===== Interior pages: city, service, costs (added 2026-09-24) ===== */
.page-hero { padding: 44px 0 40px; background: radial-gradient(700px 360px at 90% -20%, rgba(93,202,165,.22), transparent 60%), var(--brand-50); border-bottom: 1px solid var(--brand-100); }
.page-hero .container { max-width: 880px; }
.page-hero h1 { font-size: clamp(1.9rem, 3.4vw + 1rem, 3rem); margin: 4px 0 14px; text-wrap: balance; }
.page-lede { font-size: 1.12rem; color: var(--text-secondary); max-width: 62ch; margin: 0 0 22px; }
.page-hero-ctas { display: flex; flex-wrap: wrap; gap: 10px; }
.page-hero-note { display: flex; align-items: center; gap: 8px; margin: 16px 0 0; font-size: .92rem; color: var(--brand-800); }
.breadcrumb { font-size: .85rem; color: var(--text-tertiary); margin-bottom: 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.breadcrumb a { color: var(--brand-700); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.page-section .section-head.left { text-align: left; margin: 0 0 22px; max-width: 720px; }
.page-section .section-head.left h2 { text-wrap: balance; }
.prose { max-width: 720px; }
.prose p { margin: 0 0 14px; color: var(--text-primary); }
.prose p:last-child { margin-bottom: 0; }
.page-section a:not(.btn):not(.card-link) { color: var(--brand-700); font-weight: 600; text-underline-offset: 3px; }
.checks { list-style: none; padding: 0; margin: 0; max-width: 760px; display: grid; gap: 12px; }
.checks li { position: relative; padding: 14px 16px 14px 48px; background: #fff; border: 1px solid var(--border-subtle); border-radius: var(--radius-md); }
.checks li::before { content: ""; position: absolute; left: 16px; top: 17px; width: 20px; height: 20px; border-radius: 50%; background: var(--brand-50); border: 1.5px solid var(--brand-300); }
.checks li::after { content: ""; position: absolute; left: 23px; top: 21px; width: 5px; height: 9px; border: solid var(--brand-700); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.svc-card { position: relative; }
.svc-card .card-link { color: inherit; text-decoration: none; }
.svc-card .card-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.svc-card .card-link:focus-visible { outline: none; }
.svc-card:has(.card-link:focus-visible) { outline: 2px solid var(--brand-700); outline-offset: 3px; }
.svc-card .card-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .9rem; font-weight: 600; color: var(--brand-700); }
.page-section .after-grid { max-width: 720px; margin-top: 22px; }
.faq-wrap .faq-body a { color: var(--brand-700); font-weight: 600; }
@media (max-width: 640px) {
  .page-hero { padding: 30px 0 30px; }
  .page-hero-ctas .btn { flex: 1 1 100%; }
}
