/* Etheva Healthcare Consultants — site styles
   Layout: white editorial pages, midnight-navy photo heroes, angled "e" ribbon cut as the signature. */
:root {
  --midnight: #071833;
  --navy: #0B3B82;
  --navy-2: #1E4C93;
  --action: #C41E50;
  --action-dark: #A3163F;
  --ribbon-a: #E52E5D;
  --ribbon-b: #A11A6C;
  --pink-soft: #F2B8C9;
  --pink-text: #F2547B;
  --ink: #101C33;
  --slate: #4A5670;
  --mist: #F3F5FA;
  --tint: #EEF2FA;
  --line: #DCE2EE;
  --line-strong: #C3CCDD;
  --on-dark: #C9D3E6;
  --on-dark-2: #9FB0CF;
  --white: #FFFFFF;
  --font-display: 'Sora', 'Segoe UI', system-ui, sans-serif;
  --font-body: 'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --ribbon: linear-gradient(110deg, var(--ribbon-a), var(--ribbon-b));
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
.step { display: flex; flex-direction: column; gap: 28px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body { margin: 0; background: var(--white); color: var(--ink); font-family: var(--font-body); font-size: 17px; line-height: 1.6; }
img { max-width: 100%; display: block; }
a { color: var(--navy); }
a:hover { color: var(--action); }
:focus-visible { outline: 3px solid var(--ribbon-a); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; text-wrap: balance; margin: 0; }
p { margin: 0; }
.skip { position: absolute; left: -999px; top: 0; background: var(--white); padding: 10px 16px; z-index: 100; }
.skip:focus { left: 16px; top: 16px; }

.wrap { max-width: 1240px; margin: 0 auto; padding-inline: 24px; }
.section { padding-block: 104px; }
.section.mist { background: var(--mist); }
.section.tight { padding-block: 72px; }
.stack { display: flex; flex-direction: column; gap: 16px; }
.muted { color: var(--slate); }

/* Type */
.eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--font-display); font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--action); }
.eyebrow::before { content: ""; width: 32px; height: 6px; background: var(--ribbon); clip-path: polygon(0 0, 100% 0, 82% 100%, 0 100%); flex: 0 0 auto; }
.eyebrow.plain::before { display: none; }
.eyebrow.light { color: var(--pink-soft); }
.display { font-size: clamp(38px, 5.4vw, 64px); line-height: 1.05; letter-spacing: -0.025em; }
.h2 { font-size: clamp(30px, 3.6vw, 44px); line-height: 1.12; letter-spacing: -0.02em; color: var(--navy); }
.h3 { font-size: 22px; line-height: 1.25; color: var(--navy); }
.lead { font-size: clamp(18px, 1.6vw, 20px); line-height: 1.55; color: var(--slate); max-width: 620px; }
.accent { color: var(--pink-text); }
.head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 56px; }
.head-row > div { flex: 1 1 520px; display: flex; flex-direction: column; gap: 16px; }
.head-row > p { flex: 1 1 340px; max-width: 440px; color: var(--slate); }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 28px; font-family: var(--font-display); font-size: 16px; font-weight: 600; text-decoration: none; border: 0; cursor: pointer; transition: background .2s, color .2s; }
.btn-primary { background: var(--action); color: var(--white); padding-right: 38px; clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); }
.btn-primary:hover { background: var(--action-dark); color: var(--white); }
.btn-outline { border: 1.5px solid var(--navy); color: var(--navy); background: transparent; }
.btn-outline:hover { background: var(--navy); color: var(--white); }
.btn-ghost { border: 1.5px solid rgba(255,255,255,0.6); color: var(--white); background: transparent; }
.btn-ghost:hover { background: rgba(255,255,255,0.1); color: var(--white); }
.btn-light { background: var(--white); color: var(--ribbon-b); }
.btn-light:hover { background: var(--mist); color: var(--ribbon-b); }
.btn-sm { min-height: 44px; font-size: 15px; padding: 0 20px; }
.btn-sm.btn-primary { padding-right: 30px; }
.btn-row { display: flex; flex-wrap: wrap; gap: 16px; }
.text-link { font-family: var(--font-display); font-size: 15px; font-weight: 600; text-decoration: none; }

/* Header */
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--white); border-bottom: 1px solid var(--line); }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 76px; }
.logo img { height: 44px; width: auto; }
.nav { display: flex; align-items: center; gap: 30px; font-family: var(--font-display); font-size: 15px; font-weight: 500; }
.nav a { color: var(--ink); text-decoration: none; padding-block: 8px; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--action); }
.nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--action); }
.header-cta { display: flex; align-items: center; gap: 12px; }
.menu-btn { display: none; width: 44px; height: 44px; border: 1px solid var(--line); background: var(--white); color: var(--navy); cursor: pointer; align-items: center; justify-content: center; }
@media (max-width: 960px) {
  .menu-btn { display: inline-flex; }
  .nav { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch; gap: 0; background: var(--white); border-bottom: 1px solid var(--line); padding: 8px 24px 20px; }
  .nav.open { display: flex; }
  .nav a { padding-block: 14px; border-bottom: 1px solid var(--line); }
  .nav a[aria-current="page"] { box-shadow: none; }
  .header-cta .btn { display: none; }
}

/* Photo treatment: brand color wash + a faded abstract shape from the logo's ring and ribbon */
.ph { position: relative; overflow: hidden; isolation: isolate; }
.ph > img { display: block; }
.ph::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(135deg, rgba(11,59,130,0.96) 0%, rgba(11,59,130,0.21) 50%, rgba(196,30,80,0.66) 100%);
  mix-blend-mode: multiply; }
.ph::after { content: ""; position: absolute; z-index: 2; pointer-events: none; }
/* a: open ring, bottom right */
.ph-a::after { width: 70%; aspect-ratio: 1; right: -18%; bottom: -30%; border-radius: 50%;
  background: radial-gradient(circle, transparent 0 47%, rgba(229,46,93,0.85) 48% 63%, transparent 64%);
  -webkit-mask-image: linear-gradient(205deg, transparent 18%, #000 80%); mask-image: linear-gradient(205deg, transparent 18%, #000 80%);
  mix-blend-mode: screen; opacity: 1; }
/* b: angled ribbon across the lower third */
.ph-b::after { left: -10%; right: -10%; bottom: 14%; height: 26%; transform: rotate(-9deg);
  background: linear-gradient(90deg, rgba(229,46,93,0.9), rgba(161,26,108,0.9));
  clip-path: polygon(6% 0, 100% 0, 94% 100%, 0 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 5%, #000 55%, transparent 98%); mask-image: linear-gradient(90deg, transparent 5%, #000 55%, transparent 98%);
  mix-blend-mode: screen; opacity: 0.96; }
/* c: ring rising from top left */
.ph-c::after { width: 85%; aspect-ratio: 1; left: -32%; top: -40%; border-radius: 50%;
  background: radial-gradient(circle, transparent 0 50%, rgba(161,26,108,0.85) 51% 66%, transparent 67%);
  -webkit-mask-image: linear-gradient(30deg, transparent 20%, #000 85%); mask-image: linear-gradient(30deg, transparent 20%, #000 85%);
  mix-blend-mode: screen; opacity: 1; }
.prose-photo img { width: 100%; height: 380px; object-fit: cover; }
.prose-photo { margin-bottom: 12px; }

/* Home hero */
.hero { position: relative; overflow: hidden; background: var(--midnight); color: var(--white); }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 75% center; }
.hero-shade { position: absolute; inset: 0; background:
  linear-gradient(90deg, var(--midnight) 0%, var(--midnight) 36%, rgba(7,24,51,0.86) 48%, rgba(7,24,51,0.25) 72%, rgba(7,24,51,0) 100%),
  linear-gradient(160deg, rgba(11,59,130,0.61) 0%, rgba(196,30,80,0.53) 100%); }
.hero::after { content: ""; position: absolute; z-index: 1; pointer-events: none; width: 640px; aspect-ratio: 1; right: -140px; top: -170px; border-radius: 50%;
  background: radial-gradient(circle, transparent 0 50%, rgba(229,46,93,0.95) 51% 64%, transparent 65%);
  -webkit-mask-image: linear-gradient(225deg, #000 25%, transparent 80%); mask-image: linear-gradient(225deg, #000 25%, transparent 80%);
  mix-blend-mode: screen; opacity: 1; }
@media (max-width: 760px) { .hero::after { width: 380px; right: -160px; top: -120px; } }
.hero-inner { z-index: 2; }
.hero-ribbon { position: absolute; left: 0; bottom: 0; width: 44%; height: 14px; background: var(--ribbon); clip-path: polygon(0 0, 100% 0, 97% 100%, 0 100%); }
.hero-inner { position: relative; padding-block: 120px 200px; }
.hero-copy { max-width: 600px; display: flex; flex-direction: column; gap: 24px; }
.hero-copy .lead { color: var(--on-dark); }
.hero-note { font-size: 15px; color: var(--on-dark-2); margin-top: 16px; }
@media (max-width: 760px) {
  .hero-shade { background: linear-gradient(180deg, rgba(7,24,51,0.72) 0%, rgba(7,24,51,0.92) 55%, var(--midnight) 100%); }
  .hero-inner { padding-block: 72px 160px; }
}

/* Quick valuation bar */
.quickbar { position: relative; z-index: 2; padding-inline: 24px; }
.quickform { position: relative; max-width: 1192px; margin: -104px auto 0; background: var(--white); padding: 32px; box-shadow: 0 24px 60px rgba(7,24,51,0.22); display: flex; flex-wrap: wrap; align-items: flex-end; gap: 20px; }
.quickform::before { content: ""; position: absolute; left: 0; top: 0; width: 260px; height: 6px; background: var(--ribbon); clip-path: polygon(0 0, 100% 0, 97% 100%, 0 100%); }
.quickform .qf-title { flex: 1 1 240px; display: flex; flex-direction: column; gap: 4px; }
.quickform .field { flex: 1 1 180px; }

/* Interior page hero */
.page-hero { position: relative; overflow: hidden; background: var(--mist); }
.page-hero .panel { position: absolute; right: 0; top: 0; bottom: 0; width: 24%; background: var(--midnight); clip-path: polygon(28% 0, 100% 0, 100% 100%, 0 100%); }
.page-hero .panel { overflow: hidden; }
.page-hero .panel::after { content: ""; position: absolute; width: 360px; aspect-ratio: 1; right: -130px; bottom: -150px; border-radius: 50%;
  background: radial-gradient(circle, transparent 0 50%, rgba(229,46,93,0.95) 51% 64%, transparent 65%);
  -webkit-mask-image: linear-gradient(200deg, transparent 15%, #000 80%); mask-image: linear-gradient(200deg, transparent 15%, #000 80%); opacity: 0.8; }
.page-hero .inner { position: relative; z-index: 1; padding-block: 64px 88px; max-width: min(680px, calc(76vw - 140px)); display: flex; flex-direction: column; gap: 20px; }
@media (max-width: 860px) { .page-hero .inner { max-width: 100%; } }
.page-hero .display { color: var(--navy); font-size: clamp(36px, 4.6vw, 58px); }
.breadcrumb { font-size: 14px; color: var(--slate); }
.breadcrumb a { color: var(--slate); }
@media (max-width: 860px) { .page-hero .panel { display: none; } }
.page-hero.dark { background: var(--midnight); color: var(--white); }
.page-hero.dark .display { color: var(--white); }
.page-hero.dark .lead, .page-hero.dark .breadcrumb, .page-hero.dark .breadcrumb a { color: var(--on-dark); }

/* Cards */
.grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.card { display: flex; flex-direction: column; gap: 12px; padding: 0 0 28px; border: 1px solid var(--line); background: var(--white); color: var(--ink); text-decoration: none; transition: border-color .2s, transform .2s; }
.card:hover { border-color: var(--navy); transform: translateY(-2px); color: var(--ink); }
.card img { width: 100%; height: 210px; object-fit: cover; }
.card .card-body { padding: 8px 28px 0; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.card h3 { font-size: 20px; color: var(--navy); }
.card p { color: var(--slate); }
.card .more { margin-top: auto; padding-top: 6px; font-family: var(--font-display); font-size: 14px; font-weight: 600; color: var(--action); }
.tag { font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--action); }

/* Services list */
.svc-layout { display: flex; flex-wrap: wrap; gap: 64px; }
.svc-intro { flex: 1 1 340px; display: flex; flex-direction: column; gap: 20px; }
.svc-photo { margin-top: 20px; clip-path: polygon(0 0, 100% 0, 100% 100%, 14% 100%); }
.svc-photo img { width: 100%; height: 460px; object-fit: cover; object-position: center 40%; }
.svc-list { flex: 2 1 560px; min-width: 0; display: flex; flex-direction: column; }
.svc-row { display: flex; gap: 28px; align-items: flex-start; padding-block: 32px; border-top: 1px solid var(--line-strong); color: var(--ink); text-decoration: none; }
.svc-row:last-child { border-bottom: 1px solid var(--line-strong); }
.svc-row .num { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: var(--action); padding-top: 6px; min-width: 32px; }
.svc-row .body { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.svc-row h3 { font-size: 24px; color: var(--navy); }
.svc-row p { color: var(--slate); }
.svc-row .arrow { font-size: 24px; color: var(--navy); transition: transform .2s; }
.svc-row:hover .arrow { transform: translateX(6px); }
.svc-row:hover h3 { color: var(--action); }

/* Navy band */
.band { position: relative; overflow: hidden; background: var(--navy); color: var(--white); }
.band .band-photo { position: absolute; right: 0; top: 0; height: 100%; width: 34%; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); }
.band-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.band::after { content: ""; position: absolute; left: -60px; bottom: 0; width: 46%; height: 18px; background: var(--ribbon); clip-path: polygon(0 0, 100% 0, 97% 100%, 0 100%); }
.band .wrap { position: relative; padding-block: 96px; }
.band-content { max-width: 64%; display: flex; flex-direction: column; gap: 40px; }
.band h2 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.18; letter-spacing: -0.02em; }
.band h2 span { color: #FFB3C6; }
.band-points { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 28px; }
.band-points p:first-child { font-family: var(--font-display); font-weight: 600; font-size: 18px; margin-bottom: 6px; }
.band-points p + p { color: #D3DCEE; font-size: 16px; }
@media (max-width: 860px) { .band .band-photo { display: none; } .band-content { max-width: 100%; } }

/* Proof */
.proof { display: flex; flex-wrap: wrap; gap: 32px; }
.quote { flex: 1 1 480px; margin: 0; padding: 48px; background: var(--midnight); color: var(--white); display: flex; flex-direction: column; gap: 24px; }
.quote blockquote { margin: 0; font-family: var(--font-display); font-size: clamp(20px, 2vw, 26px); font-weight: 500; line-height: 1.4; }
.quote figcaption { color: var(--on-dark); }
.quote figcaption strong { color: var(--white); }
.stories { flex: 1 1 420px; display: flex; flex-direction: column; gap: 16px; }
.story { padding: 28px; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.story h3 { font-size: 19px; color: var(--navy); }
.story .mini { margin: 0; font-family: var(--font-display); font-size: 17px; font-weight: 500; line-height: 1.45; color: var(--ink); }
.sample-tag { align-self: flex-start; font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 10px; border: 1px dashed var(--pink-soft); color: var(--pink-soft); }
.sample-tag.dark { border-color: var(--action); color: var(--action); }

/* Offers */
.offers { display: flex; flex-wrap: wrap; gap: 32px; }
.offer { flex: 1 1 440px; position: relative; overflow: hidden; padding: 56px 48px; display: flex; flex-direction: column; gap: 20px; }
.offer.dark { background: var(--midnight); color: var(--white); }
.offer.dark::after { content: ""; position: absolute; right: -40px; top: 40px; width: 220px; height: 56px; background: var(--ribbon); clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%); }
.offer.light { background: var(--white); border: 1px solid var(--line); }
.offer.light::before { content: ""; position: absolute; left: 0; top: 0; width: 180px; height: 8px; background: var(--ribbon); clip-path: polygon(0 0, 100% 0, 96% 100%, 0 100%); }
.offer h3 { font-size: clamp(28px, 2.8vw, 34px); line-height: 1.15; position: relative; }
.offer.light h3 { color: var(--navy); }
.offer.dark p { color: var(--on-dark); }
.offer.light p { color: var(--slate); }
.offer .btn { align-self: flex-start; margin-top: 8px; }
.ticks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.ticks li { display: flex; gap: 12px; align-items: baseline; }
.ticks li::before { content: ""; flex: 0 0 14px; height: 4px; background: var(--ribbon-a); transform: translateY(-4px); }
.offer.light .ticks li::before { background: var(--navy); }
.offer.dark .ticks li { color: #E6ECF7; }

/* Bench */
.bench { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.bench > div { background: var(--white); padding: 48px 40px; min-height: 240px; display: flex; flex-direction: column; gap: 14px; }
.bench svg { color: var(--navy); width: 40px; height: 40px; margin-bottom: 8px; }
.bench h3 { font-size: 22px; color: var(--navy); }
.bench p { font-size: 17px; color: var(--slate); }
@media (max-width: 900px) { .bench { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .bench { grid-template-columns: minmax(0, 1fr); } .bench > div { min-height: 0; padding: 32px 24px; } }

/* CEO spotlight */
.ceo { display: flex; flex-wrap: wrap; gap: 64px; align-items: flex-start; }
.ceo-photo { flex: 0 0 auto; width: 300px; max-width: 100%; aspect-ratio: 1; padding: 8px; border-radius: 50%; background: var(--ribbon); box-shadow: 0 20px 48px rgba(7,24,51,0.18); }
.ceo-photo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 6px solid var(--white); }
.ceo-text { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.ceo-text > p:not(.eyebrow):not(.ceo-role) { color: var(--slate); max-width: 640px; }
.ceo-role { font-family: var(--font-display); font-size: 16px; font-weight: 600; color: var(--action); margin-top: -8px; }
.highlights { margin: 8px 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.highlights li { background: var(--white); padding: 18px 18px; display: flex; flex-direction: column; gap: 2px; }
.highlights strong { font-family: var(--font-display); font-size: 17px; color: var(--navy); }
.highlights span { font-size: 14px; color: var(--slate); }
@media (max-width: 600px) { .highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ceo { gap: 40px; } .ceo-photo { width: 220px; } }

/* CTA + newsletter */
.cta-split { display: flex; flex-wrap: wrap; gap: 32px; }
.cta-box { flex: 1 1 520px; background: linear-gradient(110deg, var(--action), #8E1760); color: var(--white); padding: 56px 48px; display: flex; flex-direction: column; gap: 20px; clip-path: polygon(0 0, 100% 0, calc(100% - 40px) 100%, 0 100%); }
.cta-box h2 { font-size: clamp(30px, 3.2vw, 40px); line-height: 1.15; }
.cta-box p { color: #FCE3EA; font-size: 18px; max-width: 440px; }
.cta-box .btn { align-self: flex-start; }
.news-box { flex: 1 1 380px; padding: 56px 48px; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 16px; }
.news-box h2 { font-size: 26px; color: var(--navy); }

/* Split image/text */
.split { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; padding-block: 72px; border-top: 1px solid var(--line); scroll-margin-top: 90px; }
.split:first-child { border-top: 0; }
.split.reverse { flex-direction: row-reverse; }
.split .split-img { flex: 1 1 420px; }
.split .split-img img { width: 100%; height: 420px; object-fit: cover; }
.split .split-text { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chips a { font-family: var(--font-display); font-size: 14px; font-weight: 600; text-decoration: none; padding: 8px 14px; border: 1px solid var(--line-strong); color: var(--navy); }
.chips a:hover { border-color: var(--navy); background: var(--tint); }

/* Service page */
.two-up { display: flex; flex-wrap: wrap; gap: 32px; }
.two-up > div { flex: 1 1 440px; padding: 48px; display: flex; flex-direction: column; gap: 16px; }
.two-up .light-box { border: 1px solid var(--line); }
.two-up .dark-box { background: var(--midnight); color: var(--white); }
.two-up .dark-box .ticks li { color: #E6ECF7; }
.two-up h2 { font-size: 28px; line-height: 1.2; }
.two-up .light-box h2 { color: var(--navy); }
.process { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; counter-reset: step; }
.process li { background: var(--white); padding: 28px 24px 32px; border-top: 6px solid var(--navy); display: flex; flex-direction: column; gap: 10px; counter-increment: step; }
.process li:last-child { border-top-color: var(--ribbon-a); }
.process li::before { content: "Step " counter(step); font-family: var(--font-display); font-size: 14px; font-weight: 600; color: var(--action); }
.process h3 { font-size: 19px; color: var(--navy); }
.process p { font-size: 15px; color: var(--slate); }
.faq-layout { display: flex; flex-wrap: wrap; gap: 64px; }
.faq-layout > div:first-child { flex: 1 1 340px; display: flex; flex-direction: column; gap: 16px; }
.faq { flex: 2 1 560px; min-width: 0; }
.faq details { border-top: 1px solid var(--line-strong); padding-block: 22px; }
.faq details:last-child { border-bottom: 1px solid var(--line-strong); }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; font-family: var(--font-display); font-size: 19px; font-weight: 600; color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--action); font-size: 22px; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin-top: 12px; color: var(--slate); max-width: 680px; }
.cta-strip { background: var(--midnight); color: var(--white); padding: 64px 56px; position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px; }
.cta-strip::after { content: ""; position: absolute; right: -40px; bottom: 0; width: 360px; height: 72px; background: var(--ribbon); clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); opacity: 0.85; }
.cta-strip > * { position: relative; z-index: 1; }
.cta-strip h2 { font-size: clamp(26px, 3vw, 36px); margin-bottom: 8px; }
.cta-strip p { color: var(--on-dark); font-size: 18px; }

/* Forms */
.field { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.field input, .field select, .field textarea { min-height: 50px; padding: 0 14px; border: 1px solid var(--line-strong); background: var(--white); color: var(--ink); font: inherit; font-weight: 400; font-size: 16px; border-radius: 0; }
.field textarea { min-height: 120px; padding: 12px 14px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--navy); outline: 2px solid var(--navy); outline-offset: 0; }
.field .hint { font-weight: 400; color: var(--slate); font-size: 13px; }
.form-layout { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.form-card { flex: 2 1 600px; min-width: 0; background: var(--white); padding: 48px; box-shadow: 0 24px 60px rgba(7,24,51,0.16); display: flex; flex-direction: column; gap: 28px; }
.form-pull { margin-top: -120px; position: relative; }
.form-card fieldset { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.form-card legend { padding: 0; margin-bottom: 16px; font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--navy); }
.form-card .full { grid-column: 1 / -1; }
.progress { display: flex; flex-direction: column; gap: 10px; }
.progress .labels { display: flex; justify-content: space-between; font-family: var(--font-display); font-size: 13px; font-weight: 600; color: var(--navy); }
.progress .labels span + span { color: var(--slate); }
.progress .bar { height: 6px; background: var(--tint); }
.progress .bar div { height: 6px; background: var(--ribbon); width: 50%; transition: width .3s; }
.pills { display: flex; flex-wrap: wrap; gap: 10px; }
.pills label { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; border: 1.5px solid var(--line-strong); font-size: 15px; font-weight: 500; cursor: pointer; }
.pills label:has(input:checked) { border-color: var(--navy); background: var(--tint); font-weight: 600; }
.pills input { accent-color: var(--navy); margin: 0; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; border-top: 1px solid var(--line); }
.form-actions p { font-size: 14px; color: var(--slate); max-width: 380px; }
.hidden-field { display: none; }
.aside { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.next-steps { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 22px; }
.next-steps li { display: flex; gap: 16px; }
.next-steps .n { flex: 0 0 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: var(--navy); color: var(--white); font-family: var(--font-display); font-weight: 600; clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); }
.next-steps li:last-child .n { background: linear-gradient(110deg, var(--action), #8E1760); }
.next-steps strong { display: block; }
.next-steps p { font-size: 15px; color: var(--slate); }
.note-box { padding: 28px; background: var(--mist); display: flex; flex-direction: column; gap: 10px; }
.form-status { font-weight: 600; color: var(--navy); }

/* Contact details */
.contact-list { display: flex; flex-direction: column; gap: 18px; }
.contact-list div { display: flex; flex-direction: column; gap: 2px; }
.contact-list span { font-family: var(--font-display); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
.contact-list strong, .contact-list a { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--navy); user-select: all; }

/* Article */
.prose { max-width: 700px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; font-size: 18px; line-height: 1.7; }
.prose h2 { font-size: 26px; color: var(--navy); margin-top: 12px; }
.placeholder { padding: 20px 24px; border: 1.5px dashed var(--line-strong); background: var(--mist); color: var(--slate); font-size: 16px; }

/* Footer */
.site-footer { background: var(--midnight); color: var(--on-dark); padding-block: 80px 40px; }
.foot-top { display: flex; flex-wrap: wrap; gap: 48px; justify-content: space-between; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,0.12); }
.foot-brand { flex: 1 1 300px; display: flex; flex-direction: column; gap: 20px; }
.foot-brand img { height: 52px; width: auto; align-self: flex-start; }
.foot-brand p { font-size: 15px; max-width: 320px; }
.foot-col { flex: 0 1 200px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.foot-col h2 { font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--white); margin-bottom: 6px; }
.foot-col a { color: var(--on-dark); text-decoration: none; }
.foot-col a:hover { color: var(--white); }
.foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 28px; font-size: 14px; color: var(--on-dark-2); }
.foot-bottom a { color: var(--on-dark); }

@media (max-width: 600px) {
  .section { padding-block: 72px; }
  .quickform, .form-card, .offer, .quote, .cta-box, .news-box, .two-up > div, .cta-strip { padding: 28px 22px; }
  .cta-box { clip-path: none; }
  .split .split-img img, .svc-photo img { height: 280px; }
  .svc-row { gap: 16px; }
  .form-pull { margin-top: -80px; }
}
