:root {
      --ink: #202b35;
      --muted: #66717b;
      --paper: #f7f8f8;
      --white: #ffffff;
      --line: #dce1e4;
      --accent: #bf0a30;
      --accent-dark: #002868;
      --red-dark: #8f0724;
      --blue: #002868;
      --soft: #e8edf6;
      --max: 1160px;
    }
    * { box-sizing: border-box; }
    html { overflow-anchor:none; scroll-padding-top:84px; }
    @media (prefers-reduced-motion: no-preference) { html { scroll-behavior:smooth; } }
    body { padding-top:105px;
      margin: 0; background: var(--paper); color: var(--ink);
      font-family: Arial, Helvetica, sans-serif; line-height: 1.6;
      -webkit-font-smoothing: antialiased;
    }
    a { color: inherit; text-decoration: none; }
    /* Visible keyboard focus (mouse clicks don't trigger it) */
    a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline:3px solid var(--accent); outline-offset:3px; border-radius:2px; }
    .cta-band :focus-visible, .footer :focus-visible, .banner :focus-visible { outline-color:#fff; }
    .contact-form :focus-visible { outline-color:var(--accent); } /* the form card is white even inside the blue band */
    a:hover { color: var(--accent-dark); }
    .wrap { width: min(var(--max), calc(100% - 48px - 2 * max(env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)))); margin: 0 auto; }
    .topbar { position:fixed; top:0; left:0; right:0; z-index:100; border-bottom:1px solid var(--line); background:rgba(255,255,255,.94); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); transition:box-shadow .2s ease; }
    .topbar.scrolled { box-shadow:0 4px 18px rgba(0,40,104,.14); }
    .topbar.scrolled .nav { min-height:72px; }
    .topbar.scrolled .brand img { height:54px; }
    .nav, .brand img { transition:all .2s ease; }
    .menu-toggle, .nav-cta-m { display:none; }
    .menu-toggle { background:none; border:1px solid var(--line); border-radius:3px; width:46px; height:46px; padding:0; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
    .menu-toggle span { display:block; width:22px; height:2px; background:var(--blue); transition:transform .2s ease, opacity .2s ease; }
    .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
    .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
    .nav { min-height: 104px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
    .brand { font-size: 1.05rem; font-weight: 800; letter-spacing: -.04em; white-space:nowrap; }
    .navlinks { display:flex; gap:26px; align-items:center; font-size:.9rem; color:#3e4851; }
    .navlinks a { padding: 10px 0; }
    .nav-cta, .button { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:13px 19px; background:var(--blue); color:white; font-weight:700; font-size:.9rem; border:1px solid var(--blue); border-radius:3px; transition: .18s ease; }
    .nav-cta:hover, .button:hover { background:var(--accent); border-color:var(--accent); color:white; }
    .button.secondary { background:transparent; color:var(--ink); border-color:#aeb6bc; }
    .button.secondary:hover { background:white; border-color:var(--accent); color:var(--accent-dark); }
    .hero { padding:14px 0 74px; background:linear-gradient(120deg,#fff 0%,#f7f8f8 70%); border-bottom:1px solid var(--line); }
    .hero h1 { margin-top:0; }
    .hero-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(310px,.9fr); gap:44px; align-items:center; }
    h1 { font-size:clamp(2.8rem, 6vw, 5.4rem); line-height:.99; letter-spacing:-.065em; max-width:780px; margin:20px 0 24px; font-weight:750; }
    h1 em { color:var(--accent); font-style:normal; }
    .hero p { color:var(--muted); font-size:1.13rem; max-width:650px; margin:0 0 28px; }
    .hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
    section { padding:84px 0; }
    .section-head { display:flex; justify-content:space-between; gap:36px; align-items:end; margin-bottom:38px; }
    h2 { font-size:clamp(2rem,4vw,3.25rem); line-height:1.04; letter-spacing:-.055em; margin:12px 0 0; max-width:680px; }
    .section-head > p { max-width:390px; color:var(--muted); margin:0; }
    .services { background:var(--white); }
    .service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
    .service { display:flex; flex-direction:column; padding:27px 25px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); min-height:205px; }
    h3 { letter-spacing:-.03em; line-height:1.2; }
    .service-title { color:var(--accent); font-weight:800; font-size:1rem; letter-spacing:0; line-height:1.35; margin:0 0 16px; }
    .service p { color:var(--muted); font-size:.94rem; margin:0; }
    a.service:hover, a.service:focus-visible { background:var(--soft); }
    a.service:hover .service-title, a.service:focus-visible .service-title { color:var(--accent-dark); }
    a.service:focus-visible { outline:3px solid var(--accent); outline-offset:-3px; }
    .headshot { display:block; width:100%; max-height:420px; aspect-ratio:1/1; object-fit:cover; object-position:center 18%; border-radius:3px; margin-bottom:25px; }
    .split { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; align-items:start; }
    .bio-card { background:var(--soft); padding:34px; border-radius:3px; }
    .bio-card h3 { font-size:1.55rem; margin:0 0 4px; }
    .bio-card p { color:#59636b; margin:0 0 22px; }
    .bio-card .bio-title { margin:0; color:var(--accent-dark); font-weight:800; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; }
    .text-link { font-weight:800; font-size:.9rem; border-bottom:1px solid var(--accent); padding-bottom:4px; }
    .bio-copy p { color:var(--muted); max-width:700px; }
    .check-list { list-style:none; padding:0; margin:28px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
    .check-list li::before { content:"—"; color:var(--accent); font-weight:800; margin-right:9px; }
    .process { background:#eef2f8; }
    .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
    .step { border-top:2px solid var(--ink); padding-top:20px; }
    .step .stepno { font-size:.76rem; color:var(--accent-dark); font-weight:800; letter-spacing:.12em; }
    .step h3 { font-size:1.35rem; margin:13px 0 10px; }
    .step p { color:var(--muted); margin:0; }
    .testimonials { background:#fff; }
    .subhead { font-size:1.55rem; letter-spacing:-.03em; line-height:1.2; max-width:none; margin:0 0 28px; }
    .quote-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
    blockquote { margin:0; padding:30px; background:var(--paper); border:1px solid var(--line); }
    blockquote p { font-size:1.13rem; line-height:1.55; margin:0 0 22px; }
    blockquote footer { font-size:.86rem; color:var(--muted); }
    .quote-mark { color:var(--accent); font-size:2rem; line-height:1; }
    .blog-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:44px; }
    .featured-post { background:var(--soft); padding:35px; min-height:270px; display:flex; flex-direction:column; align-items:flex-start; }
    .post-meta { color:var(--accent-dark); font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
    .featured-post h3 { font-size:1.8rem; max-width:500px; margin:16px 0 12px; }
    .featured-post p { color:var(--muted); max-width:520px; }
    .featured-post a { margin-top:auto; }
    .post-list { border-top:1px solid var(--line); }
    .post { display:block; padding:22px 0; border-bottom:1px solid var(--line); }
    .post h3 { margin:6px 0; font-size:1.08rem; }
    .post p { color:var(--muted); font-size:.9rem; margin:0; }
    .cta-band { background:var(--blue); color:#fff; padding:65px 0; }
    .cta-band .cta-inner { display:flex; align-items:start; justify-content:space-between; gap:36px; }
    .cta-band h2 { max-width:690px; margin:10px 0 0; }
    .cta-band p { color:#c5cdd2; max-width:600px; }
    .cta-band .button { background:var(--accent); border-color:var(--accent); white-space:nowrap; }
    .cta-band .button:hover { background:#fff; border-color:#fff; color:var(--blue); }
    .footer { padding:35px 0; background:#001a45; border-top:4px solid var(--accent); color:#d4dbe0; font-size:.86rem; }
    .footer-inner { display:grid; grid-template-columns:auto repeat(3, minmax(0,1fr)); gap:28px 40px; align-items:start; }
    .footer-col { font-style:normal; line-height:1.7; }
    .footer-col p { margin:0; }
    .footer-col a { text-decoration:underline; text-underline-offset:3px; }
    .footer-label { text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:800; color:#a8b2b9; margin:0 0 8px !important; }
    .footer-links { list-style:none; margin:0; padding:0; }
    .footer-links a { text-decoration:underline; text-underline-offset:3px; }
    .footer-legal { display:flex; gap:22px; flex-wrap:wrap; }
    .footer-bottom { display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; grid-column:1 / -1; border-top:1px solid rgba(255,255,255,.18); padding-top:20px; }
    @media (max-width:850px) { .footer-inner { grid-template-columns:1fr; gap:24px; } }
    .footer a { color:#fff; }
    .footer .muted { color:#a8b2b9; }

    .brand img { display:block; height:84px; width:auto; max-width:60vw; }
    .banner { border-bottom:4px solid var(--accent); position:relative; min-height:clamp(260px,38vw,380px); overflow:hidden; display:flex; align-items:flex-end; color:#fff; margin-bottom:56px; background:#2a343d; }
    .banner-bg { position:absolute; left:0; right:0; top:-18%; bottom:-18%; background-size:cover; background-position:center; will-change:transform; }
    .banner::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,26,69,.85), rgba(0,40,104,.4) 60%, rgba(0,40,104,.25)); }
    .banner-text { position:relative; z-index:1; padding:48px 0 40px; }
    .banner h2 { color:#fff; max-width:780px; text-shadow:0 2px 18px rgba(0,0,0,.35); }
    section.has-banner { padding-top:0; }
    /* Scroll reveal: items start hidden only when the head script added .js. The hero is excluded so it paints immediately. */
    .js :is(.section-head, .service, .bio-card, .bio-copy, .step, blockquote, .featured-post, .post, .cta-inner > *, .approach-heading, .feature-card, .section-copy, .service-checks, #faq .wrap > h2, .faq-list details) { opacity:0; transform:translateY(16px); transition:opacity .35s ease-out, transform .35s ease-out; transition-delay:var(--d,0s); }
    .js :is(.section-head, .service, .bio-card, .bio-copy, .step, blockquote, .featured-post, .post, .cta-inner > *, .approach-heading, .feature-card, .section-copy, .service-checks, #faq .wrap > h2, .faq-list details).in { opacity:1; transform:none; }
    @media (prefers-reduced-motion: reduce) { .banner-bg { top:0; bottom:0; } }
    @media (max-width: 850px) {
      .nav { min-height:78px; }
      .brand img { height:56px; }
      .topbar.scrolled .nav { min-height:64px; }
      .topbar.scrolled .brand img { height:46px; }
      body { padding-top:79px; }
      .menu-toggle { display:flex; }
      .nav-cta { display:none; }
      .navlinks { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:#fff; border-top:1px solid var(--line); border-bottom:3px solid var(--accent); padding:8px 24px 18px; font-size:1rem; box-shadow:0 12px 24px rgba(0,40,104,.15); }
      .navlinks.open { display:flex; }
      .navlinks a { padding:14px 0; border-bottom:1px solid var(--line); }
      .navlinks .nav-cta-m { display:block; margin-top:14px; text-align:center; background:var(--blue); color:#fff; font-weight:700; border-radius:3px; border:0; }
      .hero { padding:10px 0 54px; }
      .hero-grid, .split, .blog-grid { grid-template-columns:1fr; gap:36px; }
      .service-grid { grid-template-columns:repeat(2,1fr); }
      .section-head { display:block; }
      .section-head > p { margin-top:18px; }
      .cta-band .cta-inner { align-items:flex-start; flex-direction:column; }
    }
    @media (max-width: 560px) {
      .wrap { width:min(var(--max), calc(100% - 32px - 2 * max(env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px)))); }
      .hero-grid { gap:30px; }
      .hero h1 { font-size:clamp(2.1rem, 9.5vw, 2.6rem); line-height:1.05; }
      section { padding:60px 0; }
      .service-grid, .steps, .quote-grid { grid-template-columns:1fr; }
      .service { min-height:unset; }
      .check-list { grid-template-columns:1fr; }
      .bio-card, .featured-post, blockquote { padding:24px; }
    }

    /* Interactive navigation and keyboard-friendly dropdown */
    .nav-dropdown { position:relative; }
    .nav-services-trigger { display:flex; align-items:center; gap:9px; border:0; background:transparent; padding:10px 0; color:inherit; font:inherit; cursor:pointer; }
    .nav-services-trigger:hover, .nav-services-trigger:focus-visible { color:var(--accent-dark); }
    .chevron { width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .18s; }
    .nav-dropdown.open .chevron { transform:rotate(225deg) translate(-2px,-1px); }
    .services-submenu { display:none; position:absolute; top:100%; left:-18px; width:300px; padding:10px; background:#fff; box-shadow:0 14px 32px rgba(0,40,104,.17); border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:0 0 4px 4px; z-index:120; }
    .nav-dropdown.open .services-submenu { display:block; }
    .services-submenu a { display:block; padding:10px 12px; line-height:1.3; border-radius:3px; color:var(--ink); }
    .services-submenu a:hover, .services-submenu a:focus-visible { background:var(--soft); color:var(--accent-dark); }
    .hero-visual { min-width:0; }
    .hero-visual img { display:block; max-width:100%; width:100%; height:auto; object-fit:contain; filter:drop-shadow(0 12px 24px rgba(0,40,104,.10)); }
    .bio-social { margin-top:28px; }
    @media (max-width:850px) {
      .nav-dropdown { width:100%; }
      .nav-services-trigger { width:100%; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); }
      .services-submenu { position:static; width:100%; box-shadow:none; border:0; border-left:3px solid var(--accent); border-radius:0; margin:2px 0 9px; padding:0 0 0 10px; }
      .nav-dropdown.open .services-submenu { display:block; }
      .services-submenu a { border:0; padding:10px 12px; font-size:.92rem; }
      .hero-visual { max-width:600px; margin:auto; }
    }

    /* Web3Forms inquiry form */
    .cta-band .cta-inner > div:first-child { flex:1 1 40%; }
    .contact-form { flex:1 1 52%; min-width:0; background:#fff; color:var(--ink); padding:26px; border-radius:4px; box-shadow:0 14px 35px rgba(0,0,0,.12); }
    .contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
    .form-field label { display:block; font-weight:700; font-size:.85rem; margin-bottom:6px; }
    .form-field input, .form-field textarea { width:100%; min-height:45px; border:1px solid #b6c0c9; padding:10px 12px; border-radius:3px; font:inherit; color:var(--ink); background:white; }
    .form-field input:focus, .form-field textarea:focus { outline:2px solid var(--accent); outline-offset:2px; }
    .form-field .optional { font-weight:400; color:var(--muted); }
    .form-field.full { grid-column:1 / -1; }
    .form-field textarea { min-height:110px; resize:vertical; }
    .form-status { margin:0; font-weight:700; }
    .form-status:not(:empty) { margin-top:16px; }
    .form-status.error { color:#a30d2d; }
    .contact-form.is-sent .contact-fields, .contact-form.is-sent .contact-submit { display:none; }
    .contact-form.is-sent .form-status { margin:0; font-size:1.15rem; line-height:1.5; color:var(--blue); }
    .contact-submit { margin-top:22px; width:100%; cursor:pointer; font:inherit; }
    .botcheck { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
    /* Review-platform graphics */
    .review-links { display:flex; flex-wrap:wrap; gap:20px 28px; align-items:center; justify-content:flex-start; margin:36px 0 0; }
    .review-links a { display:inline-flex; align-items:center; justify-content:center; padding:8px; border:1px solid var(--line); background:#fff; border-radius:5px; transition:transform .2s, box-shadow .2s; }
    .review-links a:hover, .review-links a:focus-visible { transform:translateY(-3px); box-shadow:0 6px 16px rgba(0,40,104,.12); }
    .review-links img { width:auto; max-width:min(260px,75vw); height:auto; max-height:90px; object-fit:contain; display:block; }
    @media (max-width:850px) { .cta-band .cta-inner > div:first-child, .contact-form { flex:0 0 auto; width:100%; } }
    @media (max-width:650px) { .contact-fields { grid-template-columns:1fr; } .contact-form { width:100%; padding:20px; } }

    #contact-form { scroll-margin-top:100px; }
    /* Footer branding */
    .footer-logo { display:block; width:auto; height:66px; max-width:min(300px,80vw); object-fit:contain; background:#fff; padding:7px 12px; border-radius:3px; box-sizing:content-box; }
    /* Appears below the hero on phones; intentionally absent on desktop. */
    .mobile-sticky-cta { display:none; }
    @media (max-width:850px) {
      .mobile-sticky-cta { position:fixed; left:calc(16px + env(safe-area-inset-left, 0px)); right:calc(16px + env(safe-area-inset-right, 0px)); bottom:calc(12px + env(safe-area-inset-bottom, 0px)); z-index:95; text-align:center; padding:14px 20px; background:var(--blue); color:white; border-radius:5px; font-weight:700; box-shadow:0 5px 22px rgba(0,0,0,.24); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px); transition:opacity .2s, transform .2s, visibility .2s; }
      .mobile-sticky-cta.is-visible { display:block; visibility:visible; opacity:1; pointer-events:auto; transform:none; }
      .mobile-sticky-cta:hover, .mobile-sticky-cta:focus-visible { background:var(--accent); color:white; }
      body.has-sticky-cta { padding-bottom:calc(78px + env(safe-area-inset-bottom, 0px)); }
    }
    @media (prefers-reduced-motion:reduce) { .mobile-sticky-cta { transition:none; transform:none; } }

    /* Keep the portrait and biography stacked on narrow viewports.
       This override follows the desktop .split rule to win the cascade. */
    @media (max-width: 950px) {
      #experience .split {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
      }
      #experience .bio-card {
        width: min(100%, 380px);
        justify-self: center;
      }
      #experience .headshot {
        width: 100%;
        max-height: 320px;
        object-fit: cover;
        object-position: center 18%;
      }
      #experience .bio-copy { min-width: 0; }
    }
    /* Desktop: the bio card stretches to the height of the text beside it, and the photo absorbs the difference. */
    @media (min-width: 951px) {
      #experience .split { align-items:stretch; }
      #experience .bio-card { display:flex; flex-direction:column; }
      #experience .headshot { flex:1 1 0; height:0; min-height:240px; max-height:none; aspect-ratio:auto; }
    }
    @media (max-width: 560px) {
      #experience .bio-card { width: min(100%, 320px); }
      #experience .headshot { max-height: 280px; }
    }
    @media (prefers-reduced-motion:reduce) { .review-links a { transition:none; } .review-links a:hover { transform:none; } }

    /* The Services label navigates to the section, while the adjacent caret keeps the submenu available. */
    .nav-services-row { display:flex; align-items:center; gap:7px; }
    .nav-services-link { display:inline-block; padding:10px 0; }
    .nav-services-trigger { padding:10px 8px; min-width:28px; justify-content:center; }
    @media (max-width:850px) {
      .nav-services-row { border-bottom:1px solid var(--line); }
      .nav-services-link { flex:1; padding:14px 0; border-bottom:0 !important; }
      .nav-services-trigger { flex:0 0 46px; width:46px; min-height:46px; padding:12px; border-bottom:0; }
    }
  
    /* Current-page markers in the navigation */
    .nav-services-link.is-current { text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:3px; text-underline-offset:8px; }
    .services-submenu a[aria-current="page"] { background:var(--soft); color:var(--accent-dark); font-weight:700; box-shadow:inset 3px 0 0 var(--accent); }
/* Service hero actions and breadcrumb */
.service-hero .service-hero-actions { margin-top:30px; }
.service-hero .button { background:var(--accent); border-color:var(--accent); color:#fff; }
.service-hero .button:hover { background:#fff; border-color:#fff; color:var(--blue); }
.service-hero .button.secondary { background:#fff; border-color:#fff; color:var(--blue); }
.service-hero .button.secondary:hover { background:var(--soft); border-color:var(--soft); color:var(--blue); }
.service-kicker a { text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(255,255,255,.6); }
.service-kicker a:hover, .service-kicker a:focus-visible { color:#fff; text-decoration-color:var(--accent); }
.service-kicker [aria-current="page"] { opacity:.85; }
/* Related services and testimonials */
.related h2 { margin-bottom:14px; }
.related .section-copy { margin-bottom:30px; }
.related .service-grid { margin-bottom:0; }
.all-services { margin:26px 0 0; font-weight:700; }
/* Service-page additions; shared core styles remain from the homepage. */
.service-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.section-copy { max-width:735px; margin:0 0 36px; color:var(--muted); font-size:1.03rem; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.feature-card { border:1px solid var(--line); background:white; padding:30px; }
.feature-card h3 { font-size:1.3rem; margin:16px 0 10px; }
.feature-card p { color:var(--muted); margin:0; font-size:.94rem; }
.service-checks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 25px; list-style:none; padding:0; margin:28px 0 0; }
.service-checks li { border-bottom:1px solid var(--line); padding:0 0 15px; font-weight:700; }
.service-checks li::before { content:'✓'; color:var(--accent); font-weight:900; margin-right:12px; }
.band-light { background:#fff; }
#faq { background:#eef2f8; }
.detail-split { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:65px; align-items:start; }
.detail-split p { color:var(--muted); }
.faq-list { max-width:920px; border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); padding:20px 0; }
.faq-list summary { cursor:pointer; font-weight:800; font-size:1.07rem; padding-right:20px; }
.faq-list p { color:var(--muted); max-width:780px; }
@media(max-width:950px) { .detail-split { grid-template-columns:1fr; gap:30px; } }
@media(max-width:850px) { .feature-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px) { .feature-grid,.service-checks { grid-template-columns:1fr; } .service-hero-actions .button { width:100%; } }

/* Full-width image hero replaces the former split hero/dashboard. */
.service-hero { padding:0 !important; background:var(--blue); border-bottom:0; }
.service-hero .service-hero-banner { min-height:clamp(420px,53vw,620px); height:auto; margin:0; display:flex; align-items:center; border-bottom:4px solid var(--accent); }
.service-hero .service-hero-content { padding:100px 0 88px; }
.service-hero .service-kicker { font-size:.82rem; letter-spacing:.09em; font-weight:700; text-transform:uppercase; color:#fff; margin-bottom:22px; }
.service-hero h1 { font-size:clamp(2.8rem,6vw,5.4rem); line-height:1.04; max-width:850px; margin:0 0 22px; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.25); }
.service-hero h1 em { font-style:normal; color:#ff8fa3; }
.service-hero p { max-width:720px; color:#fff; font-size:clamp(1rem,1.7vw,1.24rem); line-height:1.6; margin:0; text-shadow:0 1px 7px rgba(0,0,0,.35); }
#approach .approach-heading { margin-bottom:28px; }
#faq h2 { margin-bottom:38px; }
@media (max-width:850px) {
  .service-hero .service-hero-banner { min-height:400px; }
  .service-hero .service-hero-content { padding:78px 0 70px; }
}
@media (max-width:560px) {
  .service-hero .service-hero-content { padding:65px 0 60px; }
  .service-hero h1 { font-size:clamp(2.4rem,10vw,3.3rem); }
  .service-hero .service-kicker { font-size:.7rem; }
  #faq h2 { margin-bottom:30px; }
}
