/*
Theme Name: The Finance Squad
Theme URI: https://thefinancesquad.com
Author: The Finance Squad
Author URI: https://thefinancesquad.com
Description: Custom theme for The Finance Squad, a plug-and-play finance team (bookkeeping through CFO) for growing businesses. Refined build (v2.3.7): upscale Adriatica, deep navy and limestone, serif display, fine brass hairlines. Includes page templates for Home, Services, Industries, Results, Our Office, About, Contact and Privacy Policy, plus the fit check, free guide, month-end checklist and capability statement.
Version: 2.3.8
License: Proprietary
Text Domain: the-finance-squad
*/

/* ==========================================================================
   The Finance Squad, v2.1 refined: Adriatica, upscale
   Brand: navy #113D64, brass accents, Arial everywhere (no web serif).
   Mood: the village at dusk. Deep navy night, lantern-gold glow, limestone
   panels, terracotta kept to roofs and small accents.
   Rules baked in: sentence-case headings (no text-transform on headings or
   eyebrows), no arrows on buttons, motion respects prefers-reduced-motion.
   ========================================================================== */
:root {
  /* brand */
  --navy: #113D64;
  --navy-deep: #0a2842;
  --night: #061a2f;
  --night-2: #0a2540;
  --dusk: #0e3354;
  --accent: #9C7A3C;
  --accent-deep: #7d6230;
  --accent-bronze: #5c4820;
  --accent-light: #d4b878;
  --accent-text: #7A5C22;
  /* village light */
  --lantern: #f0be5b;
  --lantern-soft: #f6d58f;
  --brass: #c9962b;
  --glow: rgba(240, 190, 91, 0.34);
  --limestone: #efe7d4;
  --limestone-2: #e4d9bf;
  --stone: #cfc3a8;
  --terracotta: #b4532f;
  --terra-hi: #df835a;
  /* legacy names still used by form blocks and inline styles */
  --slate: #a3a7ad;
  --slate-dark: #5c6066;
  --body-text: #2b2e33;
  --cream: #ede7de;
  --white: #ffffff;
  --ink: #16232f;
  --neg-red: #a02c22;
  /* context colours (dark by default, flipped inside .limestone-section) */
  --fg: #e6e2d6;
  --fg-soft: #b4c0cd;
  --head: #ffffff;
  --eyebrow: var(--lantern);
  --line: rgba(212, 184, 120, 0.32);
  --line-soft: rgba(255, 255, 255, 0.12);
  --surface: rgba(255, 255, 255, 0.05);
  --surface-2: rgba(255, 255, 255, 0.09);
  --rule: 1px solid var(--line-soft);
  --font-display: Arial, Helvetica, sans-serif;
  --font-ui: Arial, Helvetica, sans-serif;
  --max: 1240px;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --head-h: 84px;
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
section[id] { scroll-margin-top: 110px; }
body {
  margin: 0;
  font-family: var(--font-display);
  color: var(--fg);
  background: var(--night);
  -webkit-font-smoothing: antialiased;
  line-height: 1.65;
  overflow-x: clip;
}
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; text-decoration: none; }
main { display: block; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 32px; position: relative; z-index: 2; }

/* ---------- context flip: limestone panels ---------- */
.limestone-section, .paper {
  --fg: #2b2e33;
  --fg-soft: #4f5560;
  --head: var(--navy);
  --eyebrow: #7a5c22;
  --line: rgba(17, 61, 100, 0.26);
  --line-soft: rgba(17, 61, 100, 0.14);
  --surface: rgba(255, 255, 255, 0.6);
  --surface-2: rgba(255, 255, 255, 0.85);
  color: var(--fg);
  background:
    radial-gradient(1200px 500px at 85% 0%, rgba(255, 255, 255, 0.55), transparent 60%),
    linear-gradient(180deg, var(--limestone), var(--limestone-2));
}

/* ---------- typography ---------- */
h1, h2, h3, h4 { font-family: var(--font-display); margin: 0; font-weight: 700; color: var(--head); text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 5.4vw, 5.6rem); line-height: 0.98; letter-spacing: -0.035em; }
h2 { font-size: clamp(2rem, 4.2vw, 3.9rem); line-height: 1.04; letter-spacing: -0.03em; }
h3 { font-size: 1.3rem; line-height: 1.3; letter-spacing: -0.01em; }
h4 { font-size: 1.05rem; line-height: 1.35; }
p { margin: 0 0 1.1em; color: var(--fg); }
.lede { font-size: clamp(1.1rem, 1.5vw, 1.32rem); line-height: 1.55; color: var(--fg); font-weight: 400; }
strong { font-weight: 700; }
.accent-text { color: var(--lantern); }
.limestone-section .accent-text { color: var(--accent-text); }
.result-line { margin-top: 22px; padding: 4px 0 4px 18px; border-left: 3px solid var(--lantern); color: var(--fg); }
.limestone-section .result-line { border-left-color: var(--accent); }
.result-line strong { color: var(--head); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--lantern); outline-offset: 3px;
}
.limestone-section a:focus-visible, .limestone-section button:focus-visible, .limestone-section input:focus-visible,
.limestone-section select:focus-visible, .limestone-section textarea:focus-visible { outline-color: var(--navy); }
::selection { background: var(--lantern); color: var(--night); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 1000; background: var(--lantern); color: var(--night); padding: 10px 18px; font-weight: 700; transition: top .2s; }
.skip-link:focus { top: 12px; }
.center { text-align: center; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 14px;
  font-family: var(--font-ui); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.16em;
  color: var(--eyebrow); margin-bottom: 18px; line-height: 1.3;
}
.eyebrow::before { content: ""; width: 34px; height: 2px; background: currentColor; flex: 0 0 auto; opacity: 0.8; }
.center .eyebrow, .section-head.center .eyebrow { justify-content: center; }

/* ---------- buttons (no arrows, ever) ---------- */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-ui); font-weight: 700; font-size: 0.98rem; letter-spacing: 0.01em; line-height: 1.2;
  padding: 16px 30px; border: 2px solid transparent; border-radius: 3px; cursor: pointer; overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s, color .3s, border-color .3s;
  text-align: center; isolation: isolate;
}
.btn::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s var(--ease); }
.btn:hover::after { transform: translateX(120%); }
.btn:hover { transform: translateY(-3px); }
.btn-solid, .btn-accent { background: linear-gradient(180deg, var(--lantern-soft), var(--brass)); color: #0a2038; border-color: var(--brass); box-shadow: 0 10px 30px -8px rgba(240,190,91,.55); }
.btn-solid:hover, .btn-accent:hover { box-shadow: 0 16px 44px -6px rgba(240,190,91,.75); }
.btn-solid-white { background: var(--limestone); color: var(--navy); border-color: var(--limestone); box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); }
.btn-solid-white:hover { background: #fff; box-shadow: 0 16px 40px -8px rgba(240,190,91,.5); }
.btn-outline { background: transparent; color: var(--lantern-soft); border-color: rgba(240,190,91,.65); }
.btn-outline:hover { background: var(--lantern); color: #0a2038; border-color: var(--lantern); }
.btn-outline-white { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.btn-outline-white:hover { background: #fff; color: var(--navy); border-color: #fff; }
.limestone-section .btn-outline { color: var(--navy); border-color: var(--navy); }
.limestone-section .btn-outline:hover { background: var(--navy); color: #fff; }
.limestone-section .btn-solid, .limestone-section .btn-accent { background: var(--navy); color: #fff; border-color: var(--navy); box-shadow: 0 12px 30px -10px rgba(17,61,100,.6); }
.limestone-section .btn-solid:hover, .limestone-section .btn-accent:hover { background: var(--navy-deep); }
.btn-hero { padding: 20px 40px; font-size: 1.08rem; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }

/* ---------- progress, header, nav ---------- */
.scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 400; background: linear-gradient(90deg, var(--terracotta), var(--lantern), var(--lantern-soft)); box-shadow: 0 0 12px var(--glow); }
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 300; padding: 18px 0; transition: padding .35s var(--ease), background .35s, box-shadow .35s, backdrop-filter .35s; background: linear-gradient(180deg, rgba(6,26,47,.78), rgba(6,26,47,0)); }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1360px; }
.site-header.is-scrolled { padding: 9px 0; background: rgba(6,26,47,.9); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); box-shadow: 0 1px 0 rgba(240,190,91,.45), 0 18px 40px -20px rgba(0,0,0,.7); }
.logo-mark { height: 50px; width: auto; transition: height .35s var(--ease); }
.site-header.is-scrolled .logo-mark { height: 38px; }
.main-nav { display: flex; align-items: center; gap: 4px; }
.main-nav a:not(.btn) { position: relative; padding: 10px 14px; font-size: 0.95rem; font-weight: 700; color: #e9e4d6; transition: color .25s; }
.main-nav a:not(.btn)::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 2px; background: var(--lantern); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.main-nav a:not(.btn):hover, .main-nav a.active { color: var(--lantern-soft); }
.main-nav a:not(.btn):hover::after, .main-nav a.active::after { transform: scaleX(1); }
.nav-cta { margin-left: 12px; padding: 12px 22px; }
.nav-toggle { display: none; background: transparent; border: 1.5px solid rgba(240,190,91,.6); color: var(--lantern-soft); font-size: 1.5rem; line-height: 1; width: 46px; height: 46px; border-radius: 3px; cursor: pointer; }

/* ---------- sticky call bar (built by script.js) ---------- */
.sticky-cta { position: fixed; left: 50%; bottom: 18px; z-index: 250; transform: translate(-50%, 140%); display: flex; align-items: center; gap: 18px; padding: 12px 14px 12px 24px; background: rgba(6,26,47,.94); border: 1px solid rgba(240,190,91,.55); border-radius: 4px; box-shadow: 0 20px 50px -10px rgba(0,0,0,.7), 0 0 40px -10px var(--glow); transition: transform .5s var(--ease); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); max-width: calc(100vw - 24px); }
.sticky-cta.is-shown { transform: translate(-50%, 0); }
.sticky-cta span { color: #fff; font-weight: 700; font-size: .95rem; }
.sticky-cta .btn { padding: 10px 20px; }
.sticky-close { background: none; border: 0; color: #cdd6df; font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 4px 8px; }

/* ---------- footer ---------- */
.site-footer { position: relative; background: var(--night); padding: 0 0 0; color: var(--fg); overflow: hidden; }
.footer-skyline { display: block; width: 100%; height: auto; color: var(--night-2); margin-bottom: -2px; }
.footer-skyline .lit { fill: var(--lantern); animation: tfsFlicker 5s infinite steps(1); }
.footer-skyline .lit:nth-child(3n) { animation-delay: -1.7s; } .footer-skyline .lit:nth-child(3n+1) { animation-delay: -3.1s; }
.site-footer .footer-body { background: linear-gradient(180deg, var(--night-2), var(--night)); padding: 56px 0 28px; border-top: 1px solid rgba(240,190,91,.35); }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 0.8fr; gap: 48px; }
.footer-logo { height: 62px; width: auto; margin-bottom: 18px; }
.footer-tag { color: var(--fg-soft); max-width: 36ch; font-size: .98rem; }
.footer-grid h4, .footer-grid .footer-h { color: var(--lantern); font-size: .95rem; letter-spacing: .1em; margin-bottom: 18px; }
.footer-grid a { display: block; color: #d7dde5; padding: 5px 0; font-size: .96rem; transition: color .2s, transform .3s var(--ease); }
.footer-grid a:hover { color: var(--lantern-soft); transform: translateX(6px); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--line-soft); font-size: .88rem; color: var(--fg-soft); padding-bottom: 8px; }
.footer-bottom a:hover { color: var(--lantern-soft); }
@keyframes tfsFlicker { 0%, 100% { opacity: 1; } 42% { opacity: .55; } 44% { opacity: 1; } 71% { opacity: .75; } 73% { opacity: 1; } }

/* ---------- scroll reveal (progressive enhancement; script adds .reveal) ---------- */
.reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.reveal-visible { opacity: 1; transform: none; }
.reveal-l { transform: translateX(-60px); } .reveal-r { transform: translateX(60px); }
/* ==========================================================================
   Hero: the village at dusk, seen through an arch
   ========================================================================== */
:root {
  --roof: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='26' viewBox='0 0 44 26'%3E%3Crect width='44' height='26' fill='%236d2c15'/%3E%3Cg fill='%23b4532f' stroke='%23e0825a' stroke-width='1' stroke-opacity='.45'%3E%3Cpath d='M-11 13H11V18A11 11 0 0 1-11 18Z'/%3E%3Cpath d='M11 13H33V18A11 11 0 0 1 11 18Z'/%3E%3Cpath d='M33 13H55V18A11 11 0 0 1 33 18Z'/%3E%3C/g%3E%3Cg fill='%23c9693f' stroke='%23f0a27c' stroke-width='1' stroke-opacity='.4'%3E%3Cpath d='M0 0H22V5A11 11 0 0 1 0 5Z'/%3E%3Cpath d='M22 0H44V5A11 11 0 0 1 22 5Z'/%3E%3C/g%3E%3C/svg%3E");
  --arch-r: 60px;
}
.hero-adriatica, .page-hero, .hero { position: relative; color: var(--fg); background: var(--night); isolation: isolate; }
.hero-adriatica { min-height: max(100svh, 760px); display: flex; align-items: center; padding: 150px 0 190px; overflow-x: clip; overflow-y: visible; }
.hero-media { position: absolute; inset: 0; overflow: hidden; z-index: -3; }
.hero-photo { position: absolute; inset: -4% 0 -4% 0; width: 100%; height: 108%; object-fit: cover; object-position: 40% 45%; max-width: none; animation: tfsZoom 26s ease-in-out infinite alternate; will-change: transform; }
@keyframes tfsZoom { from { scale: 1.02; } to { scale: 1.16; } }
.hero-shade { position: absolute; inset: 0; z-index: -2; background:
  linear-gradient(90deg, rgba(6,26,47,.94) 0%, rgba(6,26,47,.78) 38%, rgba(6,26,47,.3) 72%, rgba(6,26,47,.5) 100%),
  linear-gradient(180deg, rgba(6,26,47,.7) 0%, rgba(6,26,47,0) 28%, rgba(6,26,47,0) 62%, rgba(6,26,47,.92) 100%); }
.hero-glow { position: absolute; z-index: -1; right: -8%; top: -10%; width: 70vw; height: 90vh; background: radial-gradient(closest-side, rgba(240,190,91,.30), rgba(240,190,91,.08) 55%, transparent 75%); mix-blend-mode: screen; animation: tfsBreathe 7s ease-in-out infinite; pointer-events: none; }
@keyframes tfsBreathe { 0%,100% { opacity: .75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.06); } }
.fireflies span { position: absolute; z-index: -1; width: 5px; height: 5px; border-radius: 50%; background: var(--lantern-soft); box-shadow: 0 0 12px 3px rgba(240,190,91,.8); opacity: 0; animation: tfsFly 11s linear infinite; }
.fireflies span:nth-child(1){left:8%;bottom:18%;animation-delay:0s} .fireflies span:nth-child(2){left:19%;bottom:30%;animation-delay:-3s;animation-duration:13s}
.fireflies span:nth-child(3){left:33%;bottom:12%;animation-delay:-6s} .fireflies span:nth-child(4){left:47%;bottom:26%;animation-delay:-8s;animation-duration:15s}
.fireflies span:nth-child(5){left:58%;bottom:16%;animation-delay:-2s} .fireflies span:nth-child(6){left:66%;bottom:34%;animation-delay:-9s;animation-duration:12s}
.fireflies span:nth-child(7){left:76%;bottom:20%;animation-delay:-5s} .fireflies span:nth-child(8){left:88%;bottom:28%;animation-delay:-7s;animation-duration:14s}
@keyframes tfsFly { 0% { opacity: 0; transform: translate(0,0); } 12% { opacity: .95; } 50% { transform: translate(26px,-160px); opacity: .7; } 88% { opacity: .9; } 100% { opacity: 0; transform: translate(-14px,-300px); } }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(0, .72fr); gap: 40px; align-items: center; }
.hero-adriatica-inner { max-width: 900px; position: relative; z-index: 3; }
.hero-adriatica h1 { font-size: clamp(2.6rem, 5.5vw, 5.9rem); text-shadow: 0 6px 40px rgba(0,0,0,.45); margin-bottom: 28px; }
.hero-adriatica h1 .accent-text { color: var(--lantern); position: relative; white-space: nowrap; }
.hero-adriatica h1 .accent-text::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.06em; height: .09em; background: linear-gradient(90deg, var(--terracotta), var(--lantern)); transform-origin: left; animation: tfsRule 1.2s .9s var(--ease) both; border-radius: 2px; }
@keyframes tfsRule { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.hero-adriatica .lede { max-width: 56ch; color: #e8e4d8; margin-bottom: 34px; }
.hero-risk-reducer { margin: 24px 0 0; color: var(--lantern-soft); font-size: .98rem; display: flex; align-items: center; gap: 12px; }
.hero-risk-reducer::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--lantern); box-shadow: 0 0 14px 4px var(--glow); flex: 0 0 auto; }
.hero-adriatica .eyebrow { animation: tfsRise .9s .1s var(--ease) both; }
.hero-adriatica h1 { animation: tfsRise 1s .22s var(--ease) both; }
.hero-adriatica .lede { animation: tfsRise 1s .38s var(--ease) both; }
.hero-adriatica .hero-actions, .hero-adriatica .hero-risk-reducer { animation: tfsRise 1s .52s var(--ease) both; }
@keyframes tfsRise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }

.hero-arch-wrap { position: relative; justify-self: end; width: min(100%, 410px); margin-bottom: -210px; z-index: 4; }
.hero-arch { position: relative; aspect-ratio: 3 / 4.3; border-radius: 999px 999px 6px 6px; overflow: hidden; border: 2px solid var(--lantern); box-shadow: 0 0 0 10px rgba(6,26,47,.65), 0 0 0 11px rgba(240,190,91,.55), 0 40px 90px -20px rgba(0,0,0,.85), 0 0 90px -10px var(--glow); background: var(--night-2); animation: tfsArchIn 1.4s .3s var(--ease) both; }
.hero-arch img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; transform: scale(1.08); }
.hero-arch::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(240,190,91,.18), transparent 35%, rgba(6,26,47,.5)); }
@keyframes tfsArchIn { from { opacity: 0; transform: translateY(60px) scale(.96); } to { opacity: 1; transform: none; } }

/* arcade edge: arch humps in the colour of the next section rise into the one above */
.hero-adriatica::after, .edge-up::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: var(--arch-r); z-index: 1; pointer-events: none;
  background: radial-gradient(circle var(--arch-r) at 50% 100%, var(--edge, var(--navy)) calc(var(--arch-r) - 1px), transparent var(--arch-r)) 0 0 / calc(var(--arch-r) * 2) var(--arch-r) repeat-x;
}
.edge-up { position: relative; }
.edge-up::before { bottom: auto; top: calc(var(--arch-r) * -1 + 1px); }

/* ---------- interior page hero ---------- */
.page-hero, .hero-404 { padding: 168px 0 150px; min-height: 64svh; display: flex; align-items: flex-end; overflow: visible; }
.hero { padding: 168px 0 150px; min-height: 80svh; display: flex; align-items: center; }
.ph-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; max-width: none; }
.page-hero::before, .hero-404::before { content: ""; position: absolute; inset: 0; z-index: -2; background:
  linear-gradient(90deg, rgba(6,26,47,.96) 0%, rgba(6,26,47,.8) 50%, rgba(6,26,47,.4) 100%),
  linear-gradient(180deg, rgba(6,26,47,.7), rgba(6,26,47,.1) 35%, rgba(6,26,47,.85)); }
.page-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: var(--arch-r); z-index: 1; pointer-events: none;
  background: radial-gradient(circle var(--arch-r) at 50% 100%, var(--night) calc(var(--arch-r) - 1px), transparent var(--arch-r)) 0 0 / calc(var(--arch-r) * 2) var(--arch-r) repeat-x; }
.ph-arch { position: absolute; right: 6%; bottom: -2px; width: min(30vw, 420px); aspect-ratio: 1 / 1.5; z-index: -1; border: 2px solid rgba(240,190,91,.55); border-bottom: 0; border-radius: 999px 999px 0 0; box-shadow: 0 0 80px -10px var(--glow), inset 0 0 80px -20px var(--glow); opacity: .9; }
.ph-arch::before { content: ""; position: absolute; inset: 16px 16px 0; border: 1px solid rgba(240,190,91,.3); border-bottom: 0; border-radius: 999px 999px 0 0; }
.page-hero .wrap { width: 100%; }
.page-hero h1 { max-width: 15ch; font-size: clamp(2.5rem, 6vw, 6rem); margin-bottom: 26px; animation: tfsRise 1s .15s var(--ease) both; }
.page-hero .eyebrow { animation: tfsRise .9s .05s var(--ease) both; }
.page-hero .lede { max-width: 56ch; color: #e8e4d8; animation: tfsRise 1s .3s var(--ease) both; }
.hero-404 .hero-inner { max-width: 760px; }

/* ---------- credentials strip: SDVOSB and veteran-owned, beneath the arches ---------- */
.badge-strip { position: relative; background: linear-gradient(180deg, var(--navy), var(--navy-deep)); padding: 0; z-index: 1; }
.badge-strip-row { display: grid; grid-template-columns: 1.55fr 1fr; gap: 0; padding-top: 58px; padding-bottom: 54px; }
.badge-item { display: flex; align-items: center; gap: 18px; padding: 8px 32px; border-left: 1px solid rgba(240,190,91,.35); color: #d9e1ea; font-size: .95rem; line-height: 1.45; }
.badge-item:first-child { border-left: 0; padding-left: 0; }
.badge-item strong { display: block; color: #fff; font-size: 1.12rem; margin-bottom: 3px; }
.badge-mark { flex: 0 0 auto; width: 54px; height: 54px; padding: 11px; color: var(--lantern); border: 1.5px solid rgba(240,190,91,.6); border-radius: 999px 999px 4px 4px; background: rgba(240,190,91,.08); box-shadow: 0 0 24px -6px var(--glow); transition: transform .4s var(--ease), box-shadow .4s; }
.badge-item:hover .badge-mark { transform: translateY(-4px); box-shadow: 0 0 34px 0 var(--glow); }
.roofline { height: 26px; background: var(--roof) 0 0 / 44px 26px repeat-x; border-top: 3px solid #4d1d0d; box-shadow: 0 10px 30px -6px rgba(0,0,0,.6); }

/* ---------- marquee ---------- */
.industries-ticker { position: relative; background: linear-gradient(180deg, var(--limestone), var(--limestone-2)); color: var(--navy); padding: 36px 0; overflow: hidden; --edge: var(--limestone); }
.ticker-row { display: flex; align-items: center; gap: 0; }
.tick-label { flex: 0 0 auto; z-index: 3; background: var(--navy); color: var(--lantern-soft); font-weight: 700; font-size: 1.02rem; padding: 18px 30px 18px max(32px, calc((100vw - var(--max)) / 2 + 32px)); border-radius: 0 999px 999px 0; box-shadow: 14px 0 30px -6px rgba(0,0,0,.35); }
.ticker-viewport { flex: 1; overflow: hidden; min-width: 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.industries-track { display: flex; align-items: center; width: max-content; animation: tfsTick 40s linear infinite; }
.industries-ticker:hover .industries-track { animation-play-state: paused; }
.tick-item { font-size: clamp(1.8rem, 3.6vw, 3.1rem); font-weight: 700; letter-spacing: -0.03em; color: var(--navy); white-space: nowrap; padding: 0 .1em; transition: color .3s; }
.tick-item:hover { color: var(--terracotta); }
.tick-dot { color: var(--brass); font-size: 1.6rem; padding: 0 .5em; }
@keyframes tfsTick { to { transform: translateX(var(--tick-shift, -50%)); } }
/* ---------- generic layout ---------- */
main > section, main > nav + section { position: relative; }
main > section { padding: clamp(76px, 9vw, 132px) 0; }
main > section.hero-adriatica { padding: 150px 0 190px; }
main > section.page-hero, main > section.hero-404 { padding: 168px 0 150px; }
main > section.hero { padding: 168px 0 150px; }
.section-head { max-width: 920px; margin: 0 0 clamp(40px, 5vw, 72px); }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head p { font-size: 1.15rem; margin-top: 20px; color: var(--fg); }
.section-cream { background: linear-gradient(180deg, var(--dusk), var(--night-2)); color: var(--fg); }
.light-watermark-section { background: var(--night); }
.grid-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; }

/* arched photo frame, reused sitewide */
.arch-frame { margin: 0; position: relative; border-radius: 999px 999px 6px 6px; overflow: hidden; border: 2px solid var(--lantern); box-shadow: 0 0 0 10px rgba(6,26,47,.6), 0 0 0 11px rgba(240,190,91,.5), 0 36px 80px -20px rgba(0,0,0,.8), 0 0 80px -16px var(--glow); background: var(--night-2); }
.limestone-section .arch-frame { box-shadow: 0 0 0 10px rgba(239,231,212,.8), 0 0 0 11px rgba(156,122,60,.6), 0 30px 60px -22px rgba(17,61,100,.5); border-color: var(--accent); }
.arch-frame img { width: 100%; height: 100%; object-fit: cover; }

/* string lights: a swag of warm bulbs, twinkling */
.string-lights { position: absolute; left: 0; right: 0; top: 0; height: 56px; pointer-events: none; z-index: 3;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='56' viewBox='0 0 160 56'%3E%3Cpath d='M0 4 Q80 44 160 4' fill='none' stroke='%23d4b878' stroke-opacity='.55' stroke-width='1.4'/%3E%3Cg fill='%23f6d58f'%3E%3Ccircle cx='40' cy='26' r='4'/%3E%3Ccircle cx='80' cy='32' r='4.4'/%3E%3Ccircle cx='120' cy='26' r='4'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 160px 56px repeat-x; }
.string-lights::after { content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle 16px at 40px 26px, rgba(240,190,91,.75), transparent), radial-gradient(circle 18px at 80px 32px, rgba(240,190,91,.85), transparent), radial-gradient(circle 16px at 120px 26px, rgba(240,190,91,.75), transparent);
  background-size: 160px 56px; background-repeat: repeat-x; animation: tfsTwinkle 3.6s ease-in-out infinite alternate; }
@keyframes tfsTwinkle { from { opacity: .45; } to { opacity: 1; } }
/* ==========================================================================
   Home
   ========================================================================== */

/* founder note: portrait in an arch, letter overlapping it */
.welcome-note { background: var(--night); padding-top: 190px !important; overflow: hidden; }
.welcome-note::before { content: ""; position: absolute; left: -10%; top: 12%; width: 60%; height: 80%; background: radial-gradient(closest-side, rgba(240,190,91,.12), transparent); pointer-events: none; }
.welcome-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; }
.welcome-portrait { width: min(100%, 440px); aspect-ratio: 4 / 5.5; margin-left: 24px; z-index: 1; }
.welcome-portrait img { object-position: 50% 30%; }
.welcome-body { position: relative; margin-left: -110px; padding: 72px 64px 56px 150px; background: linear-gradient(160deg, #f3ecda, #e2d6b8); border-radius: 6px 160px 6px 6px; box-shadow: 0 50px 100px -30px rgba(0,0,0,.8); --fg: #2b2e33; --fg-soft: #4f5560; --head: var(--navy); --eyebrow: #7a5c22; --line: rgba(17,61,100,.26); color: var(--fg); z-index: 2; }
.welcome-body::before { content: "\201C"; position: absolute; top: -8px; left: 110px; font-size: 13rem; line-height: 1; color: rgba(156,122,60,.22); font-weight: 700; pointer-events: none; }
.welcome-lede { font-size: clamp(1.25rem, 1.9vw, 1.65rem); line-height: 1.45; font-weight: 700; color: var(--navy); letter-spacing: -.01em; }
.signature-block { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); display: grid; gap: 2px; }
.signature-swash { width: 210px; height: auto; color: var(--navy); }
.signature-name { font-weight: 700; color: var(--navy); font-size: 1.15rem; }
.signature-role { color: #4f5560; font-size: .95rem; }

/* pain: four lit windows, staggered */
.pain-check { background: linear-gradient(180deg, var(--night), var(--night-2)); }
.pain-check .section-head h2 { max-width: 20ch; margin-left: auto; margin-right: auto; }
.pain-check .grid-4 { align-items: start; }
.pain-item { position: relative; padding: 150px 26px 44px; text-align: center; font-size: 1.16rem; line-height: 1.42; font-weight: 700; color: #f6f1e4; border: 1.5px solid rgba(240,190,91,.6); border-radius: 999px 999px 6px 6px; background: radial-gradient(130% 70% at 50% 100%, rgba(240,190,91,.34), rgba(240,190,91,.05) 62%, transparent), linear-gradient(180deg, #0c2c4d, #08213a); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8), 0 0 50px -24px var(--glow); transition: transform .5s var(--ease), box-shadow .5s, border-color .5s; min-height: 400px; display: flex; align-items: center; justify-content: center; }
.pain-item::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(240,190,91,.28); border-radius: 999px 999px 3px 3px; pointer-events: none; }
.pain-item:nth-child(even) { margin-top: 56px; }
.pain-item:hover { transform: translateY(-10px); box-shadow: 0 40px 70px -26px rgba(0,0,0,.85), 0 0 80px -10px var(--glow); border-color: var(--lantern); }
.proof-strip { margin-top: 120px; padding: 36px 40px; display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(90deg, rgba(240,190,91,.1), transparent 70%); }
.proof-strip > span { font-size: clamp(1.15rem, 1.8vw, 1.55rem); color: #f3efe3; max-width: 52ch; line-height: 1.4; }
.proof-strip strong { color: var(--lantern); font-size: 1.5em; letter-spacing: -.02em; }

/* stats: big counters */
.stat-strip { background: linear-gradient(180deg, var(--navy), var(--navy-deep)); padding: 130px 0 100px !important; overflow-x: clip; --edge: var(--navy); }
.stat-strip::after { content: ""; position: absolute; inset: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='160' viewBox='0 0 120 160'%3E%3Cpath d='M10 160V70a50 50 0 0 1 100 0v90' fill='none' stroke='%23f0be5b' stroke-opacity='.09' stroke-width='2'/%3E%3Cpath d='M26 160V72a34 34 0 0 1 68 0v88' fill='none' stroke='%23f0be5b' stroke-opacity='.06' stroke-width='1.5'/%3E%3C/svg%3E") 0 100% / 120px 160px repeat-x; pointer-events: none; }
.stat-strip .bar-motif { position: absolute; right: 3%; top: 60px; width: 300px; opacity: .06; pointer-events: none; }
.stat-strip .wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; }
.stat-strip .wrap:last-child { display: block; padding-top: 56px; padding-bottom: 0 !important; }
.stat-cell { padding: 34px 0 40px; border-top: 1px solid rgba(240,190,91,.45); display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; gap: 6px 30px; min-width: 0; }
.stat-cell:nth-child(even) { transform: translateY(46px); }
.stat-cell .figure { font-size: clamp(3.6rem, 8.4vw, 8rem); font-weight: 700; line-height: .95; letter-spacing: -.05em; color: var(--lantern); text-shadow: 0 0 60px rgba(240,190,91,.35); font-variant-numeric: tabular-nums; display: block; }
.stat-cell .caption { font-weight: 700; color: #e6edf4; font-size: 1.02rem; line-height: 1.4; padding-bottom: .7em; }

/* client wall: stone plaques */

/* close date guarantee: teased only */
.guarantee-section { background: var(--night); overflow: hidden; }
.guarantee-section::before { content: ""; position: absolute; inset: auto 0 0 0; height: 70%; background: radial-gradient(60% 80% at 50% 100%, rgba(180,83,47,.5), rgba(180,83,47,.12) 55%, transparent); pointer-events: none; }
.guarantee-box { position: relative; max-width: 940px; margin: 0 auto; padding: 130px 64px 70px; text-align: center; border: 1.5px solid var(--lantern); border-radius: 999px 999px 8px 8px; background: radial-gradient(90% 60% at 50% 0%, rgba(240,190,91,.2), transparent 70%), linear-gradient(180deg, #0f3b64, #0a2842); box-shadow: 0 60px 120px -40px rgba(0,0,0,.9), 0 0 120px -20px var(--glow); }
.guarantee-box::before { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(240,190,91,.3); border-radius: 999px 999px 4px 4px; pointer-events: none; }
.guarantee-icon-badge { position: absolute; left: 50%; top: 44px; transform: translateX(-50%); width: 82px; height: 82px; border-radius: 50%; background: radial-gradient(circle at 40% 30%, #f6d58f, #c9962b); display: grid; place-items: center; box-shadow: 0 0 60px 6px var(--glow); }
.guarantee-icon-badge svg { width: 44px; height: 44px; }
.guarantee-box h2 { font-size: clamp(1.8rem, 3.6vw, 3.1rem); max-width: 22ch; margin: 0 auto 22px; }
.guarantee-box p { max-width: 46ch; margin-left: auto; margin-right: auto; color: #dfe7ef; font-size: 1.1rem; }

/* calculator */
.calc-section { overflow: hidden; }
.calc-box { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); border-radius: 10px; overflow: hidden; border: 1px solid var(--line); box-shadow: 0 50px 100px -40px rgba(0,0,0,.9); }
.calc-inputs { padding: 56px 52px; background: linear-gradient(160deg, #0f3b64, #0a2842); display: grid; gap: 44px; align-content: center; }
.calc-field-head { display: flex; justify-content: space-between; gap: 20px; align-items: baseline; margin-bottom: 18px; color: #e8edf3; font-weight: 700; line-height: 1.4; }
.calc-value { flex: 0 0 auto; color: var(--lantern); font-size: 1.5rem; letter-spacing: -.02em; white-space: nowrap; }
.calc-result { padding: 56px 52px; background: linear-gradient(160deg, #f6d58f, #d8a43a 70%, #c9962b); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; --fg: #0a2038; --head: #0a2038; color: #0a2038; }
.calc-result-label { font-weight: 700; color: #0a2038; letter-spacing: .02em; }
.calc-result-figure { font-size: clamp(3.4rem, 6.4vw, 6rem); font-weight: 700; letter-spacing: -.05em; line-height: 1; color: #0a2038; margin: 10px 0 16px; font-variant-numeric: tabular-nums; }
.calc-result-note { color: #1c2a3a; max-width: 38ch; }
.calc-result .btn-solid { background: var(--navy); color: #fff; border-color: var(--navy); box-shadow: 0 14px 30px -10px rgba(10,32,56,.7); }
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 4px; background: linear-gradient(90deg, rgba(255,255,255,.25), var(--lantern)); outline: none; cursor: pointer; margin: 0; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%; background: radial-gradient(circle at 40% 30%, #fff3cf, var(--lantern)); border: 3px solid #0a2842; box-shadow: 0 0 0 2px var(--lantern), 0 0 22px 2px var(--glow); transition: transform .2s; }
input[type="range"]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--lantern); border: 3px solid #0a2842; box-shadow: 0 0 0 2px var(--lantern), 0 0 22px 2px var(--glow); }
input[type="range"]:hover::-webkit-slider-thumb { transform: scale(1.15); }

/* quiz */
.tier-quiz-section { background: var(--night); }
.quiz-box { max-width: 860px; margin: 0 auto; padding: 48px; border: 1px solid var(--line); border-radius: 8px; background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02)); box-shadow: 0 40px 90px -40px rgba(0,0,0,.9); }
.quiz-q-text { font-size: clamp(1.3rem, 2.2vw, 1.8rem); font-weight: 700; color: #fff; margin-bottom: 24px; letter-spacing: -.01em; }
.quiz-options { display: grid; gap: 14px; }
.quiz-option { font: inherit; font-weight: 700; text-align: left; color: #f1ede1; background: rgba(255,255,255,.05); border: 1.5px solid rgba(240,190,91,.4); border-radius: 4px; padding: 20px 24px; cursor: pointer; transition: transform .3s var(--ease), background .3s, border-color .3s, color .3s, box-shadow .3s; }
.quiz-option:hover { transform: translateX(12px); background: var(--lantern); color: #0a2038; border-color: var(--lantern); box-shadow: 0 0 40px -6px var(--glow); }
.quiz-progress { display: flex; gap: 10px; margin-top: 30px; justify-content: center; }
.quiz-dot { width: 12px; height: 12px; border-radius: 50%; background: rgba(255,255,255,.2); transition: background .3s, box-shadow .3s; }
.quiz-dot.active { background: var(--lantern); box-shadow: 0 0 14px var(--glow); }
.quiz-result { text-align: center; }
.quiz-result[hidden], .quiz-question[hidden], .quiz-progress[hidden] { display: none; }
.quiz-result h3 { font-size: clamp(2rem, 4vw, 3.2rem); margin-bottom: 14px; color: var(--lantern); }
.quiz-result-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 24px; }

/* business snapshot */
.snapshot-showcase { overflow-x: clip; }
.snapshot-showcase .section-head { margin-bottom: 48px; }
.snapshot-standalone { max-width: 1060px; margin: 0 auto; padding: 22px; background: linear-gradient(160deg, var(--navy), var(--navy-deep)); border-radius: 12px; box-shadow: 0 50px 100px -30px rgba(17,61,100,.65); }
.hero-panel-note { margin: 14px 0 0; text-align: center; font-size: .86rem; font-style: italic; color: rgba(255,255,255,.8); }
.snap-live { background: #fff; border-radius: 6px; overflow: hidden; color: var(--ink); }
.snap-head { display: flex; align-items: center; justify-content: space-between; background: var(--navy); color: #fff; padding: 14px 22px; }
.snap-head-title { font-weight: 700; }
.snap-head-tag { font-size: .72rem; font-weight: 700; letter-spacing: .1em; color: var(--accent-light); border: 1px solid rgba(212,184,120,.55); border-radius: 3px; padding: 3px 9px; }
.snap-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; padding: 22px; border-bottom: 1px solid rgba(17,61,100,.14); background: #f3efe5; }
.snap-control label { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: .82rem; font-weight: 700; color: var(--navy); margin-bottom: 10px; }
.snap-control output { color: #2b2e33; white-space: nowrap; }
.snap-control input[type="range"] { background: linear-gradient(90deg, var(--navy), var(--accent)); }
.snap-control input[type="range"]::-webkit-slider-thumb { background: #fff; border: 3px solid var(--accent); box-shadow: 0 2px 6px rgba(17,61,100,.3); }
.snap-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid rgba(17,61,100,.14); }
.snap-kpi { padding: 18px 12px; text-align: center; border-right: 1px solid rgba(17,61,100,.14); min-width: 0; }
.snap-kpi:last-child { border-right: 0; }
.snap-kpi-label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; color: #4f5560; margin-bottom: 4px; }
.snap-kpi-fig { display: block; font-size: clamp(1.05rem, 1.9vw, 1.6rem); font-weight: 700; color: var(--navy); white-space: nowrap; }
.snap-fig-neg { color: var(--neg-red); }
.snap-kpi-delta { display: block; font-size: .72rem; color: #4f5560; margin-top: 3px; }
.snap-delta-down { color: var(--neg-red); font-weight: 700; }
.snap-charts { display: grid; grid-template-columns: 1fr 1fr; }
.snap-chart { padding: 16px 18px 10px; border-right: 1px solid rgba(17,61,100,.14); border-bottom: 1px solid rgba(17,61,100,.14); min-width: 0; }
.snap-chart:nth-child(2) { border-right: 0; }
.snap-chart-wide { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
.snap-chart h4 { margin: 0 0 8px; font-size: .8rem; font-weight: 700; color: var(--navy); text-align: center; }
.snap-chart-box svg { width: 100%; height: auto; display: block; }
.snap-footnote { margin: 0; padding: 10px 20px 16px; font-size: .84rem; font-style: italic; color: #4f5560; text-align: center; min-height: 2.2em; }

/* walk through the village (services) */
.walk { background: linear-gradient(180deg, var(--night-2), var(--night)); padding: 0 !important; --edge: var(--night-2); }
.walk-pin { position: relative; padding: 120px 0 70px; overflow: hidden; }
.walk.is-pinned .walk-pin { position: sticky; top: 0; height: 100vh; min-height: 640px; padding: 100px 0 30px; display: flex; flex-direction: column; justify-content: space-between; }
.walk-head { position: relative; z-index: 3; margin-bottom: 0; width: 100%; }
.walk-head .section-head { margin-bottom: 0; max-width: none; }
.walk-head h2 { max-width: 24ch; font-size: clamp(2rem, 3.6vw, 3.4rem); }
.walk-sky { position: absolute; inset: 0; pointer-events: none; z-index: 0; background: radial-gradient(60% 50% at 80% 0%, rgba(240,190,91,.16), transparent), radial-gradient(40% 40% at 10% 100%, rgba(180,83,47,.22), transparent); }
.walk-viewport { position: relative; z-index: 2; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; padding: 36px max(32px, calc((100vw - var(--max)) / 2 + 32px)) 48px; scrollbar-width: thin; scrollbar-color: var(--lantern) transparent; }
.walk.is-pinned .walk-viewport { overflow: visible; scroll-snap-type: none; flex: 1; display: flex; align-items: center; padding-top: 0; padding-bottom: 0; }
.walk-track { display: flex; align-items: flex-start; gap: 40px; width: max-content; will-change: transform; counter-reset: door; }
.door { counter-increment: door; position: relative; flex: 0 0 clamp(286px, 25vw, 350px); scroll-snap-align: start; min-height: 440px; padding: 140px 26px 28px; border-radius: 999px 999px 8px 8px; text-align: center; display: flex; flex-direction: column; align-items: center; box-shadow: 0 40px 80px -30px rgba(0,0,0,.9); border: 1.5px solid rgba(240,190,91,.65); transition: transform .5s var(--ease), box-shadow .5s; }
.door:nth-child(even) { margin-top: 54px; } .door:nth-child(3n) { margin-top: 26px; }
.door::before { content: counter(door, decimal-leading-zero); position: absolute; top: 28px; left: 50%; transform: translateX(-50%); font-size: 3.6rem; font-weight: 700; letter-spacing: -.05em; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px currentColor; opacity: .55; pointer-events: none; }
.door:hover { transform: translateY(-14px); box-shadow: 0 60px 90px -30px rgba(0,0,0,.95), 0 0 90px -14px var(--glow); }
.door .service-icon { width: 46px; height: 46px; margin: -22px 0 10px; }
.door .eyebrow { justify-content: center; margin-bottom: 10px; font-size: .74rem; letter-spacing: .1em; text-align: center; }
.door .eyebrow::before { display: none; }
.door h3 { font-size: 1.18rem; margin-bottom: 8px; }
.door p { font-size: .92rem; line-height: 1.5; margin-bottom: 16px; }
.door .btn { margin-top: auto; padding: 11px 20px; font-size: .9rem; }
body.walking .sticky-cta { transform: translate(-50%, 180%); }
@media (max-width: 899px) { body.walking .sticky-cta { transform: translateY(180%); } }
@media (max-height: 780px) { .walk.is-pinned .walk-pin { padding-top: 84px; } .door:nth-child(even) { margin-top: 30px; } .door:nth-child(3n) { margin-top: 14px; } .door { min-height: 410px; padding-top: 126px; } .walk-head h2 { font-size: 2rem; } }
.door-navy { background: linear-gradient(180deg, #123f69, #0a2842); color: #e9eef4; }
.door-navy::before { color: var(--lantern); }
.door-stone { background: linear-gradient(180deg, #f3ecda, #ddd0b0); --fg: #2b2e33; --head: var(--navy); --eyebrow: #7a5c22; color: #2b2e33; border-color: var(--accent); }
.door-stone::before { color: var(--accent); }
.door-stone .btn-outline { color: var(--navy); border-color: var(--navy); } .door-stone .btn-outline:hover { background: var(--navy); color: #fff; }
.door-terra { background: linear-gradient(180deg, #c05f38, #8a3a1c); --fg: #fff; --head: #fff; --eyebrow: #fff3d6; color: #fff; border-color: #f0a27c; }
.door-terra::before { color: #ffd9b8; }
.door-terra .btn-outline { color: #fff; border-color: #fff; } .door-terra .btn-outline:hover { background: #fff; color: #7a2f14; }
.walk-street { position: relative; z-index: 3; margin: 0 max(32px, calc((100vw - var(--max)) / 2 + 32px)); height: 38px; }
.walk-street::before { content: ""; position: absolute; left: 0; right: 0; top: 16px; height: 6px; border-radius: 3px; background: repeating-linear-gradient(90deg, rgba(212,184,120,.5) 0 10px, transparent 10px 16px); }
.walk-lamp { position: absolute; top: 0; left: calc(var(--p, 0) * (100% - 24px)); width: 24px; height: 38px; transition: left .12s linear; }
.walk-lamp::before { content: ""; position: absolute; left: 50%; top: 2px; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--lantern-soft); box-shadow: 0 0 22px 8px var(--glow); }
.walk-lamp::after { content: ""; position: absolute; left: 50%; top: 14px; width: 2px; height: 22px; margin-left: -1px; background: var(--lantern); }
.walk-controls { position: relative; z-index: 3; display: flex; gap: 12px; justify-content: flex-end; max-width: var(--max); margin: 0 auto; padding: 0 32px; }
.walk.is-pinned .walk-controls { display: none; }
.walk-btn { font: inherit; font-weight: 700; background: transparent; color: var(--lantern-soft); border: 1.5px solid rgba(240,190,91,.6); border-radius: 3px; padding: 10px 22px; cursor: pointer; transition: background .3s, color .3s; }
.walk-btn:hover { background: var(--lantern); color: #0a2038; }

/* how it works: sticky split screen */
.story { overflow: visible; }
.story-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(36px, 6vw, 100px); align-items: start; }
.story-sticky { position: sticky; top: 108px; }
.story-sticky h2 { margin-bottom: 40px; }
.story-photo { width: min(100%, 440px); aspect-ratio: 4 / 4.6; }
.story-photo img { object-position: 50% 35%; }
.story-num { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); font-size: clamp(5rem, 9vw, 8.5rem); font-weight: 700; line-height: 1; letter-spacing: -.06em; color: rgba(6,26,47,.2); -webkit-text-stroke: 2px var(--lantern); text-shadow: 0 0 40px rgba(6,26,47,.8); transition: transform .5s var(--ease); pointer-events: none; }
.process-steps { position: relative; padding-left: 52px; }
.process-steps::before { content: ""; position: absolute; left: 14px; top: 20px; bottom: 20px; width: 2px; background: linear-gradient(180deg, var(--lantern), rgba(240,190,91,.15)); }
.process-step { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: start; min-height: 46vh; padding: 20px 0 60px; opacity: .55; transition: opacity .6s, transform .6s var(--ease); }
.process-step::before { content: ""; position: absolute; left: -45px; top: 34px; width: 14px; height: 14px; border-radius: 50%; background: var(--night-2); border: 2px solid var(--lantern); transition: background .4s, box-shadow .4s; }
.process-step.is-active { opacity: 1; }
.process-step.is-active::before { background: var(--lantern); box-shadow: 0 0 24px 6px var(--glow); }
.process-num { font-size: clamp(4.4rem, 8vw, 7.4rem); font-weight: 700; line-height: .85; letter-spacing: -.06em; color: var(--lantern); }
.process-text h3 { font-size: clamp(1.5rem, 2.6vw, 2.2rem); margin-bottom: 12px; letter-spacing: -.02em; }
.process-text p { font-size: 1.1rem; max-width: 36ch; }

/* why not just: columns that open on hover */
.diff-grid { display: grid; gap: 24px; }
.diff-grid-3 { display: flex; gap: 18px; align-items: stretch; }
.diff-col { position: relative; flex: 1 1 0; min-width: 0; padding: 40px 30px 40px; border: 1px solid var(--line); border-top: 3px solid var(--lantern); border-radius: 0 0 6px 6px; background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02)); transition: flex-grow .6s var(--ease), background .5s, transform .5s var(--ease), box-shadow .5s; counter-increment: diff; }
.diff-grid-3 { counter-reset: diff; }
.diff-grid-3 .diff-col::before { content: counter(diff, decimal-leading-zero); display: block; font-size: 3.4rem; font-weight: 700; line-height: 1; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px var(--lantern); margin-bottom: 26px; }
.diff-grid-3 .diff-col:hover, .diff-grid-3 .diff-col:focus-within { flex-grow: 2.1; background: linear-gradient(180deg, rgba(240,190,91,.18), rgba(255,255,255,.03)); box-shadow: 0 30px 60px -30px rgba(0,0,0,.8), 0 0 60px -20px var(--glow); }
.diff-col h3 { font-size: 1.4rem; margin-bottom: 12px; }
.diff-col p { color: #dfe7ef; margin: 0; }
.diff-col.us { border: 0; border-radius: 6px 120px 6px 6px; padding: 56px 64px; background: linear-gradient(135deg, #f6d58f, #cf9b2d); --fg: #0a2038; --head: #0a2038; color: #0a2038; box-shadow: 0 50px 100px -40px rgba(0,0,0,.9), 0 0 100px -20px var(--glow); }
.diff-col.us::before { display: none; }
.diff-col.us h3 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); color: #0a2038; letter-spacing: -.03em; }
.diff-col.us p { color: #1a2635; max-width: 70ch; font-size: 1.12rem; }
.diff-col.us .btn-outline-white { color: #0a2038; border-color: #0a2038; }
.diff-col.us .btn-outline-white:hover { background: #0a2038; color: #fff; }

/* co-brand band */
.cobrand { background: linear-gradient(180deg, var(--night-2), var(--night)); }
.cobrand-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(36px, 6vw, 90px); align-items: center; }
.cobrand-copy h2 { margin-bottom: 24px; max-width: 16ch; }
.cobrand-legal { font-size: .88rem; color: var(--fg-soft); }
.cobrand-card { position: relative; overflow: hidden; text-align: center; padding: 70px 36px 54px; background: linear-gradient(160deg, #f3ecda, #ddd0b0); border-radius: 160px 160px 8px 8px; color: #113D64; box-shadow: 0 50px 100px -40px rgba(0,0,0,.9); border: 1.5px solid var(--accent); }
.cobrand-shield { position: absolute; width: 360px; left: 50%; top: 50%; transform: translate(-50%, -50%); opacity: .08; }
.cobrand-wordmark { position: relative; display: block; font-size: 2.3rem; font-weight: 700; letter-spacing: -.03em; margin-bottom: 8px; color: #113D64; }
.cobrand-tag { position: relative; color: #2b2e33; margin-bottom: 26px; }
.cobrand-btn { background: #113D64; color: #fff; border-color: #113D64; position: relative; }
.cobrand-btn:hover { background: #0a2842; }
.cobrand-compact { padding: 0 !important; background: var(--night-2); border-top: 1px solid var(--line); }
.cobrand-strip { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; padding: 40px 0; }
.cobrand-strip p { margin: 0; max-width: 70ch; color: #e6e2d6; }
.cobrand-strip strong { color: var(--lantern); }
.cobrand-compact .cobrand-btn { background: transparent; color: var(--lantern-soft); border-color: rgba(240,190,91,.65); }
.cobrand-compact .cobrand-btn:hover { background: var(--lantern); color: #0a2038; }

/* operating principles */
.value-row { position: relative; display: grid; grid-template-columns: 72px minmax(0, .9fr) minmax(0, 1.1fr); gap: 36px; align-items: baseline; padding: 38px 18px; border-top: 1px solid var(--line); transition: background .5s, padding .5s var(--ease); counter-increment: val; }
.light-watermark-section .wrap { counter-reset: val; }
.value-row:last-child { border-bottom: 1px solid var(--line); }
.value-row::before { content: counter(val, decimal-leading-zero); color: var(--lantern); font-weight: 700; font-size: 1.1rem; letter-spacing: .06em; }
.value-row h3 { font-size: clamp(1.5rem, 3vw, 2.6rem); letter-spacing: -.03em; line-height: 1.1; transition: color .4s, transform .5s var(--ease); }
.value-row p { margin: 0; max-width: 58ch; }
.value-row:hover { background: linear-gradient(90deg, rgba(240,190,91,.14), transparent 80%); padding-left: 34px; }
.value-row:hover h3 { color: var(--lantern-soft); }

/* visit: the map is the centerpiece */
.visit-section { background: linear-gradient(180deg, var(--navy-deep), var(--night)); overflow-x: clip; padding-top: 200px !important; padding-bottom: 150px !important; --edge: var(--navy-deep); }
.visit-section::before { z-index: 1; }
.visit-section .string-lights { top: 0; }
.visit-section::after { content: ""; position: absolute; left: 50%; top: 36%; width: 120%; height: 70%; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(240,190,91,.26), transparent 70%); pointer-events: none; }
.visit-grid { display: block; }
.visit-head h2 { font-size: clamp(2.6rem, 7.4vw, 7.4rem); line-height: .92; letter-spacing: -.05em; max-width: 11ch; margin-bottom: 0; position: relative; z-index: 3; }
.adriatica-map-wrap { position: relative; margin: 36px 0 0 auto; width: min(100%, 1120px); padding: 16px; background: linear-gradient(160deg, #f3ecda, #cdbb8e); border-radius: 12px; box-shadow: 0 0 0 2px var(--accent), 0 0 0 12px rgba(6,26,47,.7), 0 0 0 13px rgba(240,190,91,.6), 0 80px 140px -40px rgba(0,0,0,.95), 0 0 140px -10px var(--glow); transform: rotate(-1.2deg); transition: transform .8s var(--ease); z-index: 2; }
.adriatica-map-wrap:hover { transform: rotate(0deg) scale(1.01); }
.adriatica-map { width: 100%; height: auto; border-radius: 4px; display: block; }
.visit-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px clamp(36px, 6vw, 90px); margin-top: 90px; align-items: start; position: relative; z-index: 3; }
.visit-copy p { font-size: 1.1rem; margin-bottom: 0; }
.visit-copy .btn { grid-column: 1 / -1; justify-self: start; margin-top: 18px; }

/* squad band */
.squad-band { background: var(--night); overflow: hidden; }
.squad-band .grid-2 { align-items: center; }
.squad-band-photos { position: relative; height: clamp(420px, 46vw, 600px); }
.squad-band-photos figure { margin: 0; position: absolute; overflow: hidden; border: 2px solid var(--lantern); box-shadow: 0 40px 80px -24px rgba(0,0,0,.9), 0 0 70px -20px var(--glow); }
.squad-band-photos figure:nth-child(1) { left: 0; top: 0; width: 72%; height: 70%; border-radius: 300px 300px 6px 6px; }
.squad-band-photos figure:nth-child(2) { right: 0; bottom: 0; width: 46%; height: 62%; border-radius: 200px 200px 6px 6px; box-shadow: 0 0 0 8px var(--night), 0 40px 80px -24px rgba(0,0,0,.9), 0 0 70px -20px var(--glow); }
.squad-band-photos img { width: 100%; height: 100%; object-fit: cover; }
.squad-band-photos .photo-pos-low { object-position: 50% 78%; }
.squad-band h2 { margin-bottom: 24px; }

/* closing banner */
.cta-banner { position: relative; padding: 190px 0 170px !important; text-align: center; overflow-x: clip; background: var(--night); --edge: var(--night); isolation: isolate; }
.cta-photo { object-position: 50% 78%; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; max-width: none; opacity: .4; }
.cta-banner::after { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(70% 60% at 50% 40%, rgba(240,190,91,.22), transparent 70%), linear-gradient(180deg, rgba(6,26,47,.92), rgba(6,26,47,.55) 40%, rgba(6,26,47,.9)); }
.cta-banner h2 { font-size: clamp(2.6rem, 7vw, 6.6rem); line-height: .96; letter-spacing: -.045em; margin-bottom: 26px; max-width: 14ch; margin-left: auto; margin-right: auto; }
.cta-banner p { max-width: 54ch; margin: 0 auto 38px; font-size: 1.2rem; color: #ece8da; }
.cta-banner .hero-actions { justify-content: center; }
.cta-banner .string-lights { z-index: 1; }
/* ==========================================================================
   Interior pages
   ========================================================================== */
.service-icon, .case-icon { width: 52px; height: 52px; color: var(--lantern); flex: 0 0 auto; }
.service-icon *, .case-icon * { stroke: currentColor; }
.limestone-section .service-icon, .limestone-section .case-icon, .door-stone .service-icon { color: var(--navy); }
.door-terra .service-icon { color: #fff; }
.service-icon-row { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; }
.service-icon-row .eyebrow { margin: 0; }
.service-icon-row .eyebrow::before { display: none; }

/* services jump nav: a row of street signs */
.services-jumpnav { position: sticky; top: 66px; z-index: 120; background: rgba(6,26,47,.94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid rgba(240,190,91,.45); border-bottom: 1px solid rgba(240,190,91,.45); padding: 12px 0; }
.jumpnav-track { max-width: var(--max); margin: 0 auto; padding: 0 32px; display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; }
.jumpnav-track::-webkit-scrollbar { display: none; }
.jumpnav-pill { flex: 0 0 auto; padding: 9px 20px; font-size: .9rem; font-weight: 700; color: #e6e2d6; border: 1px solid rgba(240,190,91,.4); border-radius: 3px; transition: background .3s, color .3s, border-color .3s, transform .3s var(--ease); white-space: nowrap; }
.jumpnav-pill:hover { border-color: var(--lantern); color: var(--lantern-soft); transform: translateY(-2px); }
.jumpnav-pill.active { background: var(--lantern); color: #0a2038; border-color: var(--lantern); }
.is-jump { padding-top: 0 !important; }
main > nav.services-jumpnav { padding: 12px 0; }

/* service sections: big counters, stone-tablet ledgers */
main { counter-reset: svc; }
#bookkeeping, #close, #controller, #cfo, #full-service, #cleanup, #systems, #ma-readiness { counter-increment: svc; overflow: hidden; }
#bookkeeping::before, #close::before, #controller::before, #cfo::before, #full-service::before, #cleanup::before, #systems::before, #ma-readiness::before {
  content: counter(svc, decimal-leading-zero); position: absolute; right: 2%; top: 20px; font-size: clamp(9rem, 22vw, 22rem); line-height: .8; font-weight: 700; letter-spacing: -.07em; color: transparent; -webkit-text-stroke: 2px rgba(240,190,91,.26); pointer-events: none; z-index: 0; }
#close::before, #cfo::before, #cleanup::before, #ma-readiness::before { right: auto; left: 2%; }
#bookkeeping, #cfo, #cleanup, #ma-readiness { background: var(--night); }
#close, #controller, #full-service, #systems { background: linear-gradient(180deg, var(--dusk), var(--night-2)); }
.grid-2 > .lede, .grid-2 .lede { max-width: 52ch; }
.ledger { position: relative; border: 1px solid var(--line); border-radius: 6px 6px 6px 90px; padding: 14px 36px 40px; background: linear-gradient(180deg, #17375a, #0e2a49); box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); z-index: 1; }
.grid-2 h2 + p { margin-top: 18px; }
.limestone-section .ledger { background: rgba(255,255,255,.55); box-shadow: 0 30px 60px -36px rgba(17,61,100,.4); }
.ledger-row { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line-soft); transition: padding .4s var(--ease), background .4s; }
.ledger-row:last-child { border-bottom: 0; }
.ledger-row:hover { padding-left: 12px; background: linear-gradient(90deg, rgba(240,190,91,.12), transparent); }
.ledger-row .label { font-weight: 700; color: var(--head); font-size: 1.04rem; min-width: 0; }
.ledger-row .dots { flex: 1; min-width: 14px; border-bottom: 2px dotted var(--line); margin-bottom: 6px; }
.ledger-row .figure { font-size: 1.05rem; font-weight: 700; color: var(--lantern); white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.ledger-row .figure::before { content: ""; width: 16px; height: 16px; flex: 0 0 auto; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8.5l3.6 3.6L13.5 4.5' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8.5l3.6 3.6L13.5 4.5' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
.ledger-row .figure[style] { font-size: 1.05rem !important; }
.limestone-section .ledger-row .figure { color: var(--navy); }
.ledger-row .figure:not(:where(:empty)) { }
.ledger[style] { margin-top: 0 !important; }
.ledger-row .figure:where(.fig-plain)::before { display: none; }
.snapshot-frame { position: relative; max-height: 640px; overflow-y: auto; border: 2px solid var(--lantern); border-radius: 160px 160px 8px 8px; padding-top: 70px; background: #fff; box-shadow: 0 0 0 10px rgba(6,26,47,.6), 0 0 0 11px rgba(240,190,91,.5), 0 50px 100px -30px rgba(0,0,0,.9), 0 0 100px -20px var(--glow); scrollbar-width: thin; }
.snapshot-frame img { width: 100%; height: auto; }
.snapshot-scroll-hint { display: none; grid-column: 1 / -1; text-align: center; font-size: .9rem; color: var(--fg-soft); margin: 0; }
.photo-wide, .photo-inset { margin: 0; }
.photo-wide img { width: 100%; height: auto; border-radius: 6px; }
.photo-inset { max-width: var(--max); margin: 70px auto 0; padding: 0 32px; position: relative; z-index: 2; }
.photo-inset img { border-radius: 260px 260px 6px 6px; border: 2px solid var(--lantern); box-shadow: 0 50px 100px -30px rgba(0,0,0,.9), 0 0 100px -20px var(--glow); aspect-ratio: 16 / 7; width: 100%; object-fit: cover; }

/* M&A diagram */
.ma-diagram-wrap { margin-top: 90px; padding: 48px 40px 52px; border: 1px solid var(--line); border-radius: 120px 120px 6px 6px; background: linear-gradient(180deg, rgba(240,190,91,.1), rgba(255,255,255,.02)); position: relative; z-index: 2; }
.ma-diagram-label { display: block; text-align: center; font-weight: 700; font-size: 1.1rem; letter-spacing: .04em; color: var(--lantern); margin-bottom: 34px; }
.ma-diagram { display: flex; justify-content: space-between; align-items: flex-start; position: relative; max-width: 860px; margin: 0 auto; }
.ma-diagram::before { content: ""; position: absolute; top: 28px; left: 12%; right: 12%; height: 2px; background: rgba(240,190,91,.3); z-index: 1; }
.ma-stage { position: relative; z-index: 2; text-align: center; flex: 1; padding: 0 6px; }
.ma-icon { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 50%; background: var(--night); transition: color .4s, border-color .4s, background .4s, box-shadow .4s; }
.ma-icon svg { width: 28px; height: 28px; }
.ma-icon-warn { color: #ffb08a; border: 2px solid #ffb08a; }
.ma-icon-check { color: #8d9aa8; border: 2px solid #8d9aa8; }
.ma-check-path { stroke-dasharray: 26; stroke-dashoffset: 26; transition: stroke-dashoffset .5s ease; }
.ma-icon-check.ma-visible { color: var(--lantern); border-color: var(--lantern); box-shadow: 0 0 26px -2px var(--glow); }
.ma-icon-check.ma-visible .ma-check-path { stroke-dashoffset: 0; }
.ma-icon-success.ma-visible { color: #0a2038; background: var(--lantern); border-color: var(--lantern); }
.ma-stage:nth-child(2) .ma-icon-check, .ma-stage:nth-child(2) .ma-check-path { transition-delay: .15s; }
.ma-stage:nth-child(3) .ma-icon-check, .ma-stage:nth-child(3) .ma-check-path { transition-delay: .45s; }
.ma-stage:nth-child(4) .ma-icon-check, .ma-stage:nth-child(4) .ma-check-path { transition-delay: .75s; }
.ma-stage-label { display: block; font-size: .98rem; font-weight: 700; color: #f1ede1; }

/* results: case files */
.case-card { position: relative; padding: 56px 56px 60px; margin-bottom: 36px; border: 1px solid var(--line); border-radius: 6px 120px 6px 6px; background: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02)); box-shadow: 0 40px 90px -50px rgba(0,0,0,.9); transition: transform .5s var(--ease), box-shadow .5s, border-color .5s; overflow: hidden; counter-increment: casefile; }
.case-card:hover { transform: translateY(-6px); border-color: var(--lantern); box-shadow: 0 50px 100px -40px rgba(0,0,0,.9), 0 0 90px -30px var(--glow); }
main > section > .wrap { counter-reset: casefile; }
.case-card::before { content: counter(casefile, decimal-leading-zero); position: absolute; right: 36px; top: 18px; font-size: clamp(5rem, 11vw, 10rem); line-height: 1; font-weight: 700; letter-spacing: -.07em; color: transparent; -webkit-text-stroke: 1.5px rgba(240,190,91,.22); pointer-events: none; }
.case-icon-row { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; position: relative; }
.case-tag { font-weight: 700; font-size: .84rem; letter-spacing: .12em; color: var(--lantern); border: 1px solid rgba(240,190,91,.5); border-radius: 999px; padding: 6px 16px; }
.case-card > h3 { font-size: clamp(1.7rem, 3.2vw, 2.9rem); line-height: 1.08; letter-spacing: -.035em; max-width: 24ch; margin-bottom: 40px; position: relative; }
.case-grid { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); gap: clamp(30px, 5vw, 70px); align-items: start; position: relative; }
.case-figures { order: -1; display: grid; gap: 18px; position: sticky; top: 120px; }
.case-figure { padding: 24px 22px; border-radius: 80px 80px 6px 6px; text-align: center; background: linear-gradient(180deg, #123f69, #0a2842); border: 1.5px solid rgba(240,190,91,.6); box-shadow: 0 0 60px -26px var(--glow); }
.case-figure .num { display: block; font-size: clamp(2rem, 3.5vw, 3.3rem); overflow-wrap: anywhere; line-height: 1; font-weight: 700; letter-spacing: -.05em; color: var(--lantern); padding-top: 14px; font-variant-numeric: tabular-nums; }
.case-figure .cap { display: block; margin-top: 10px; font-size: .92rem; font-weight: 700; color: #e6edf4; line-height: 1.35; }
.case-grid > div:first-child p { padding: 0 0 0 22px; border-left: 2px solid rgba(240,190,91,.4); margin-bottom: 22px; transition: border-color .4s; }
.case-grid > div:first-child p:hover { border-left-color: var(--lantern); }
.case-grid p strong { color: var(--lantern-soft); }
.inline-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin: 20px 0 52px; padding: 34px 44px; border-radius: 6px 80px 6px 80px; background: linear-gradient(135deg, #f6d58f, #cf9b2d); color: #0a2038; box-shadow: 0 0 90px -24px var(--glow); }
.inline-cta > span { font-size: clamp(1.4rem, 2.4vw, 2rem); font-weight: 700; letter-spacing: -.02em; color: #0a2038; }
.inline-cta .btn-accent { background: var(--navy); color: #fff; border-color: var(--navy); box-shadow: none; }

/* cards: industries, standards */
.card { position: relative; padding: 38px 32px 36px; border: 1px solid var(--line); border-radius: 6px; background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02)); transition: transform .5s var(--ease), box-shadow .5s, border-color .5s, background .5s; overflow: hidden; }
.card::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--terracotta), var(--lantern)); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease); }
.card:hover { transform: translateY(-10px); border-color: rgba(240,190,91,.7); background: linear-gradient(180deg, rgba(240,190,91,.12), rgba(255,255,255,.02)); box-shadow: 0 40px 70px -34px rgba(0,0,0,.9), 0 0 70px -26px var(--glow); }
.card:hover::before { transform: scaleX(1); }
.card .service-icon { margin-bottom: 20px; transition: transform .5s var(--ease); }
.card:hover .service-icon { transform: translateY(-4px) scale(1.08); }
.card h3 { margin-bottom: 12px; font-size: 1.3rem; }
.card p { margin-bottom: 0; color: #dfe7ef; }
.card[style] { background: linear-gradient(160deg, #f6d58f, #cf9b2d) !important; border-color: var(--brass) !important; }
.card[style] h3 { color: #0a2038 !important; }
.card[style] p { color: #1a2635 !important; }
.card[style] .btn-solid-white { background: var(--navy); color: #fff; border-color: var(--navy); }
.grid-3 > .card:nth-child(3n+2) { margin-top: 34px; }

/* about */
.approach-section .wrap { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); column-gap: clamp(40px, 7vw, 110px); }
.approach-section .eyebrow { grid-column: 1 / -1; }
.approach-section .lede { grid-column: 1; grid-row: 2 / span 3; font-size: clamp(1.7rem, 3.4vw, 3rem); line-height: 1.16; font-weight: 700; letter-spacing: -.03em; color: #fff; align-self: start; position: sticky; top: 120px; }
.approach-section .wrap > p:not(.lede) { grid-column: 2; font-size: 1.12rem; }
.bio-grid-v2 { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.about-portrait { width: min(100%, 440px); aspect-ratio: 4 / 5.3; position: sticky; top: 120px; margin-left: 12px; }
.about-portrait img { object-position: 50% 28%; }
.bio-grid-v2 h2 { margin-bottom: 26px; }
.bio-ledger { margin-top: 36px; }

.team-bios-section { background: var(--night); }
.team-bios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 70px 34px; align-items: start; }
.team-bios-heading { grid-column: 1 / -1; font-size: clamp(2.4rem, 6vw, 5.6rem); line-height: .95; letter-spacing: -.045em; margin-bottom: 16px; }
.team-bio:nth-of-type(3n+2) { margin-top: 56px; }
.team-bio { display: block; }
.team-bio-photo { position: relative; margin: 0 0 26px; aspect-ratio: 4 / 5; border-radius: 999px 999px 6px 6px; perspective: 1400px; }
.team-bio-photo > img { width: 100%; height: 100%; object-fit: cover; border-radius: 999px 999px 6px 6px; border: 2px solid var(--lantern); box-shadow: 0 0 0 8px rgba(6,26,47,.6), 0 0 0 9px rgba(240,190,91,.45), 0 30px 60px -24px rgba(0,0,0,.9); }
.flip { cursor: pointer; }
.flip-inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .9s var(--ease); }
.flip:hover .flip-inner, .flip:focus-visible .flip-inner, .flip.flipped .flip-inner { transform: rotateY(180deg); }
.flip-front, .flip-back { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 999px 999px 6px 6px; overflow: hidden; border: 2px solid var(--lantern); box-shadow: 0 0 0 8px rgba(6,26,47,.6), 0 0 0 9px rgba(240,190,91,.45), 0 30px 60px -24px rgba(0,0,0,.9); }
.flip-front img { width: 100%; height: 100%; object-fit: cover; }
.flip-back { transform: rotateY(180deg); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 18% 14% 10%; background: radial-gradient(100% 70% at 50% 100%, rgba(240,190,91,.5), transparent), linear-gradient(180deg, #123f69, #0a2842); }
.flip-back-label { font-weight: 700; font-size: .9rem; letter-spacing: .14em; color: var(--lantern); margin-bottom: 14px; }
.flip-back p { margin: 0; color: #fff; font-size: 1.1rem; line-height: 1.45; font-weight: 700; }
.team-bio-text h4 { font-size: 1.8rem; letter-spacing: -.03em; margin-bottom: 4px; }
.team-bio-role { color: var(--lantern); font-weight: 700; font-size: .92rem; margin-bottom: 16px; letter-spacing: .01em; }
.team-bio-text p { font-size: .98rem; color: #dfe7ef; }
.photo-gallery-section { background: var(--night); padding-top: 20px !important; }
.photo-gallery-section .photo-wide img { border-radius: 300px 300px 6px 6px; border: 2px solid var(--lantern); box-shadow: 0 50px 100px -30px rgba(0,0,0,.9), 0 0 100px -20px var(--glow); aspect-ratio: 16 / 8; object-fit: cover; object-position: 50% 30%; width: 100%; }

/* our office photo grids */
.photo-gallery-section .photo-wide + .photo-grid-4, .photo-gallery-section .photo-wide + .photo-grid-3, .photo-grid-4 + .photo-wide, .photo-grid-3 + .photo-wide { margin-top: 28px; }
.photo-gallery-section .photo-wide { margin-bottom: 0; }
.photo-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin-top: 28px; margin-bottom: 28px; align-items: end; }
.photo-grid-4 .photo-tile:nth-child(even) { margin-bottom: 40px; }
.photo-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 28px 0; }
.photo-tile { margin: 0; overflow: hidden; border-radius: 6px; position: relative; }
.photo-grid-4 .photo-tile { border-radius: 999px 999px 6px 6px; aspect-ratio: 3 / 4.6; border: 2px solid var(--lantern); box-shadow: 0 30px 60px -26px rgba(0,0,0,.9); }
.photo-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .6s; filter: saturate(.95) brightness(.92); }
.photo-tile:hover img { transform: scale(1.08); filter: saturate(1.1) brightness(1.05); }
.photo-grid-landscape .photo-tile { aspect-ratio: 4 / 3; border-radius: 6px 90px 6px 90px; border: 1px solid var(--line); }
.photo-gallery-section .photo-wide img { }
main > section .photo-wide:not(.photo-inset) img { border-radius: 6px; }

/* contact */
.book-call-panel { position: relative; overflow: hidden; max-width: 900px; margin: 0 auto; padding: 120px 60px 64px; text-align: center; border: 1.5px solid var(--lantern); border-radius: 999px 999px 8px 8px; background: radial-gradient(90% 60% at 50% 0%, rgba(240,190,91,.26), transparent 70%), linear-gradient(180deg, #123f69, #0a2842); box-shadow: 0 60px 120px -40px rgba(0,0,0,.9), 0 0 120px -20px var(--glow); }
.book-call-panel .eyebrow { color: var(--lantern) !important; }
.book-call-panel h3 { font-size: clamp(1.8rem, 3.6vw, 3rem); letter-spacing: -.03em; margin-bottom: 12px; }
.book-call-panel p { max-width: 42ch; margin-left: auto; margin-right: auto; margin-bottom: 28px; }
.contact-team-photo { margin: 0 0 80px; }
.contact-team-photo img { border-radius: 340px 340px 6px 6px; border: 2px solid var(--lantern); box-shadow: 0 50px 100px -30px rgba(0,0,0,.9), 0 0 100px -20px var(--glow); aspect-ratio: 16 / 8; object-fit: cover; object-position: 50% 28%; width: 100%; }
#assessment { background: var(--night); }
.form-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.form-field label { font-size: .92rem; font-weight: 700; color: #fff; }
.form-field input, .form-field select, .form-field textarea { font-family: var(--font-ui); font-size: 1rem; padding: 15px 16px; border: 1.5px solid rgba(240,190,91,.4); border-radius: 3px; background: rgba(255,255,255,.06); color: #fff; transition: border-color .3s, box-shadow .3s, background .3s; width: 100%; }
.form-field select option { color: #0a2038; background: #fff; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #9fb0c1; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: none; border-color: var(--lantern); background: rgba(255,255,255,.1); box-shadow: 0 0 0 3px rgba(240,190,91,.25), 0 0 30px -6px var(--glow); }
.form-field textarea { resize: vertical; min-height: 130px; }
.form-field.field-invalid input, .form-field.field-invalid select, .form-field.field-invalid textarea { border-color: #ff9d85; box-shadow: 0 0 0 1px #ff9d85; }
.form-field .field-error { display: none; color: #ffb4a0; font-size: .86rem; font-weight: 700; }
.form-field.field-invalid .field-error { display: block; }
.form-error-banner { background: rgba(180,83,47,.3); border: 1px solid #f0a27c; color: #fff; padding: 14px 18px; border-radius: 3px; margin-bottom: 22px; }
.hp-field { position: absolute; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; padding: 0; border: 0; white-space: nowrap; }
#assessment form .btn { margin-top: 8px; }
.form-success { display: none; border: 1.5px solid var(--lantern); background: rgba(240,190,91,.1); padding: 40px 32px; border-radius: 6px; text-align: center; }
.form-success.is-shown { display: block; }
.success-check { display: block; margin: 0 auto 14px; }
.success-check-circle { stroke: var(--lantern); stroke-width: 2; stroke-dasharray: 152; stroke-dashoffset: 152; }
.success-check-mark { stroke: var(--lantern-soft); stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; }
.form-success.is-shown .success-check-circle { animation: tfsDraw .5s ease forwards; }
.form-success.is-shown .success-check-mark { animation: tfsDraw .35s ease .45s forwards; }
@keyframes tfsDraw { to { stroke-dashoffset: 0; } }
.voice-block { padding: 28px 30px; border-left: 3px solid var(--lantern); background: rgba(240,190,91,.08); }
.voice-block p { margin: 0; }
.faq-list { max-width: 960px; margin: 0 auto; counter-reset: faq; }
.faq-item { position: relative; padding: 34px 20px 34px 90px; border-top: 1px solid var(--line); counter-increment: faq; transition: background .4s, padding .5s var(--ease); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item::before { content: counter(faq, decimal-leading-zero); position: absolute; left: 20px; top: 34px; font-size: 1.5rem; font-weight: 700; color: var(--lantern); letter-spacing: -.03em; }
.faq-item:hover { background: linear-gradient(90deg, rgba(240,190,91,.12), transparent); padding-left: 104px; }
.faq-item h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); margin-bottom: 10px; letter-spacing: -.02em; }
.faq-item p { margin: 0; max-width: 62ch; }

/* privacy and internal forms sit on limestone paper */
.limestone-section h2, .limestone-section h3 { color: var(--navy); }
.limestone-section a:not(.btn) { color: var(--navy); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 3px; }
.limestone-section .eyebrow { color: #7a5c22; }
.qf-section { padding: 44px 0; border-top: 1px solid var(--line-soft); }
.qf-section:first-child { border-top: 0; padding-top: 0; }
.qf-section h2 { font-size: 1.6rem; margin-bottom: 8px; display: flex; align-items: center; gap: 14px; letter-spacing: -.02em; }
.qf-section-num { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--navy); color: #fff; font-size: .95rem; font-weight: 700; flex: 0 0 auto; }
.qf-section-intro { color: #4f5560; font-style: italic; margin-bottom: 28px; max-width: 620px; }
.qf-required-note { font-size: .9rem; color: #2b2e33; background: rgba(17,61,100,.08); border-radius: 4px; padding: 12px 16px; margin-bottom: 32px; }
.qf-required { color: #a02c22; font-weight: 700; }
.qf-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.qf-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 22px; }
.qf-field-row .qf-field { margin-bottom: 0; }
.qf-label { font-size: .95rem; font-weight: 700; color: var(--ink); }
.qf-hint { font-size: .85rem; color: #4f5560; font-style: italic; margin-top: -4px; }
.qf-field input[type="text"], .qf-field input[type="date"], .qf-field input[type="email"], .qf-field input[type="file"], .qf-field select, .qf-field textarea { font-family: var(--font-ui); font-size: 1rem; padding: 13px 15px; border: 1.5px solid rgba(17,61,100,.3); border-radius: 3px; background: #fff; color: var(--ink); width: 100%; }
.qf-field textarea { resize: vertical; min-height: 84px; }
.qf-field input:focus, .qf-field select:focus, .qf-field textarea:focus { outline: 2px solid var(--navy); outline-offset: 1px; }
.qf-radio-group { display: flex; flex-direction: column; gap: 10px; }
.qf-radio { display: flex; align-items: center; gap: 12px; color: var(--ink); cursor: pointer; border: 1.5px solid rgba(17,61,100,.2); border-radius: 4px; padding: 13px 16px; background: rgba(255,255,255,.6); transition: border-color .2s, background .2s; }
.qf-radio:hover { border-color: rgba(17,61,100,.5); }
.qf-radio input[type="radio"] { width: 18px; height: 18px; accent-color: var(--navy); flex: 0 0 auto; margin: 0; }
.qf-radio:has(input:checked) { border-color: var(--navy); background: rgba(17,61,100,.08); }
.qf-radio:has(input:checked) span { font-weight: 700; color: var(--navy); }
.qf-field.field-invalid input, .qf-field.field-invalid select, .qf-field.field-invalid textarea { border-color: #a02c22; }
.qf-field .field-error { display: none; font-size: .85rem; color: #a02c22; }
.qf-field.field-invalid .field-error { display: block; }
.limestone-section .form-field label { color: var(--ink); }
.limestone-section .form-field input, .limestone-section .form-field select, .limestone-section .form-field textarea { background: #fff; color: var(--ink); border-color: rgba(17,61,100,.3); }
.limestone-section .form-field .field-error { color: #a02c22; }
.limestone-section .form-success { background: rgba(17,61,100,.06); border-color: var(--navy); }
.limestone-section .success-check-circle { stroke: var(--navy); } .limestone-section .success-check-mark { stroke: var(--accent-deep); }
.limestone-section .form-error-banner { color: #5c1c0e; background: rgba(180,83,47,.15); border-color: #b4532f; }
.limestone-section .hero-risk-reducer { color: #4f5560; }
.password-gate { max-width: 560px; }

/* ==========================================================================
   v2.1 refinement: Adriatica, upscale.
   Boutique hotel / private bank in a Mediterranean village. Deep navy and warm
   limestone, brass kept to hairlines, serif display over a clean sans, real
   photography, slow motion. Overrides the base layers above; copy untouched.
   ========================================================================== */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/cormorant-garamond-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/cormorant-garamond-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/cormorant-garamond-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 500; font-display: swap; src: url("assets/fonts/cormorant-garamond-latin-500-italic.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/inter-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/inter-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/inter-latin-600-normal.woff2") format("woff2"); }

:root {
  --font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --font-ui: "Inter", "Helvetica Neue", Arial, sans-serif;
  --night: #07192b; --night-2: #0a2036; --dusk: #0c2740;
  --navy: #12385c; --navy-deep: #0a2640;
  --lantern: #c4a76c; --lantern-soft: #d9c79b; --brass: #b09255;
  --glow: transparent;
  --limestone: #f2e9dd; --limestone-2: #e7d9c8; --stone: #c8a58e; --copper: #906e55; --wood: #2a1e10;
  --terracotta: #906e55; --terra-hi: #b08a70;
  --accent: #9a7c42; --accent-text: #7d6128;
  --fg: #d6d9dc; --fg-soft: #a9b6c3; --head: #f6f2e8;
  --line: rgba(196,167,108,.38); --line-soft: rgba(246,242,232,.12);
  --arch-r: 0px;
  --ease: cubic-bezier(.22,.61,.36,1);
}
.limestone-section, .paper { --fg: #353b43; --fg-soft: #59606a; --head: #12385c; --eyebrow: #8a6a48; --line: rgba(18,56,92,.22); --line-soft: rgba(18,56,92,.12);
  background: var(--limestone); }

html { scroll-behavior: smooth; }
body { font-feature-settings: "lnum" 1; font-variant-numeric: lining-nums; font-family: var(--font-ui); font-size: 16px; line-height: 1.75; font-weight: 400; letter-spacing: .005em; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 500; letter-spacing: -.005em; text-wrap: balance; }
h1 { font-size: clamp(2.7rem, 5.2vw, 5.3rem); line-height: 1.02; }
h2 { font-size: clamp(2.1rem, 3.7vw, 3.5rem); line-height: 1.08; }
h3 { font-size: 1.55rem; line-height: 1.2; }
h4 { font-size: 1.2rem; }
strong { font-weight: 600; }
.lede { font-size: clamp(1.05rem, 1.25vw, 1.2rem); line-height: 1.75; color: var(--fg); }
.result-line { border-left-width: 1px; }
.eyebrow { font-weight: 500; font-size: .72rem; letter-spacing: .24em; margin-bottom: 22px; gap: 16px; }
.eyebrow::before { width: 36px; height: 1px; opacity: .9; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline-width: 2px; }

/* buttons: flat, hairline, quiet */
.btn { font-weight: 500; font-size: .84rem; letter-spacing: .1em; padding: 17px 34px; border-width: 1px; border-radius: 0; box-shadow: none !important; }
.btn::after { display: none; }
.btn:hover { transform: none; }
.btn-solid, .btn-accent { background: var(--lantern); border-color: var(--lantern); color: #0a1c2f; }
.btn-solid:hover, .btn-accent:hover { background: var(--lantern-soft); border-color: var(--lantern-soft); }
.btn-solid-white { background: var(--limestone); border-color: var(--limestone); }
.btn-outline { color: var(--lantern-soft); border-color: rgba(196,167,108,.7); }
.btn-outline:hover { background: var(--lantern); color: #0a1c2f; }
.btn-outline-white { border-color: rgba(246,242,232,.5); }
.limestone-section .btn-solid, .limestone-section .btn-accent { background: var(--navy); border-color: var(--navy); }
.limestone-section .btn-outline { border-color: rgba(18,56,92,.55); }
.btn-hero { padding: 20px 42px; font-size: .86rem; }

/* header */
.scroll-progress { height: 1px; background: var(--lantern); box-shadow: none; }
.site-header { padding: 22px 0; background: linear-gradient(180deg, rgba(7,25,43,.7), rgba(7,25,43,0)); }
.site-header.is-scrolled { padding: 10px 0; background: rgba(7,25,43,.94); box-shadow: 0 1px 0 rgba(196,167,108,.3); }
.logo-mark { height: 48px; }
.main-nav a:not(.btn) { font-weight: 500; font-size: .8rem; letter-spacing: .1em; color: #ece8dc; padding: 10px 13px; }
.main-nav a:not(.btn)::after { height: 1px; bottom: 5px; }
.nav-cta { padding: 12px 22px; font-size: .78rem; }
.nav-toggle { border: 1px solid rgba(196,167,108,.5); border-radius: 0; }
.sticky-cta { border-radius: 0; border-color: rgba(196,167,108,.4); box-shadow: 0 18px 40px -16px rgba(0,0,0,.6); }
.sticky-cta span { font-weight: 500; font-size: .86rem; letter-spacing: .02em; }

/* hero */
.hero-photo { animation-duration: 60s; }
.hero-shade { background: linear-gradient(90deg, rgba(7,25,43,.92) 0%, rgba(7,25,43,.78) 42%, rgba(7,25,43,.5) 75%, rgba(7,25,43,.7) 100%), linear-gradient(180deg, rgba(7,25,43,.6) 0%, rgba(7,25,43,0) 28%, rgba(7,25,43,0) 60%, rgba(7,25,43,.9) 100%); }
.hero-glow, .fireflies, .string-lights, .roofline, .stat-strip .bar-motif, .walk-sky, .footer-skyline, .hero-adriatica::after, .edge-up::before, .page-hero::after { display: none !important; }
.hero-adriatica h1 { font-size: clamp(2.8rem, 5.4vw, 5.6rem); text-shadow: none; font-weight: 500; line-height: 1.02; letter-spacing: -.01em; }
.hero-adriatica h1 .accent-text { color: var(--lantern-soft); font-style: italic; font-weight: 500; }
.hero-adriatica h1 .accent-text::after { height: 1px; bottom: .02em; background: var(--lantern); border-radius: 0; }
.hero-adriatica .lede { color: #dde0e2; }
.hero-risk-reducer { font-size: .9rem; color: var(--lantern-soft); letter-spacing: .02em; }
.hero-risk-reducer::before { width: 28px; height: 1px; border-radius: 0; background: var(--lantern); box-shadow: none; }
.hero-arch-wrap { margin-bottom: -150px; width: min(100%, 400px); }
.hero-arch { border: 0; border-radius: 999px 999px 0 0; box-shadow: 0 50px 80px -40px rgba(0,0,0,.7); outline: 1px solid rgba(196,167,108,.55); outline-offset: 12px; animation-duration: 1.8s; }
.hero-arch::after { background: linear-gradient(180deg, transparent 50%, rgba(7,25,43,.35)); }
.hero-arch img { transform: none; }
.hero-adriatica { padding-bottom: 150px; }
main > section.hero-adriatica { padding: 150px 0 150px; }

/* interior heroes */
.page-hero::before, .hero-404::before { background: linear-gradient(90deg, rgba(7,25,43,.94) 0%, rgba(7,25,43,.78) 50%, rgba(7,25,43,.38) 100%), linear-gradient(180deg, rgba(7,25,43,.6), rgba(7,25,43,.1) 35%, rgba(7,25,43,.88)); }
.ph-arch { border: 0; outline: 1px solid rgba(196,167,108,.4); outline-offset: -1px; border-radius: 999px 999px 0 0; box-shadow: none; opacity: .8; right: 7%; width: min(24vw, 340px); }
.ph-arch::before { inset: 14px 14px 0; border: 1px solid rgba(196,167,108,.22); border-bottom: 0; }
.page-hero h1 { font-size: clamp(2.7rem, 5.4vw, 5.2rem); max-width: 17ch; font-weight: 500; }
.page-hero .lede { color: #dde0e2; }

/* credentials strip */
.badge-strip { background: var(--navy-deep); border-top: 1px solid rgba(196,167,108,.3); }
.badge-strip-row { padding-top: 64px; padding-bottom: 60px; }
.badge-item { border-left: 1px solid rgba(196,167,108,.28); font-size: .9rem; color: #bcc8d4; }
.badge-item strong { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; color: #f6f2e8; letter-spacing: .005em; }
.badge-mark { border-radius: 50%; border: 1px solid rgba(196,167,108,.55); background: transparent; box-shadow: none; padding: 13px; width: 52px; height: 52px; }
.badge-mark * { stroke-width: 1.5; }
.badge-mark path:nth-child(2) { fill: none; stroke: currentColor; }
.badge-item:hover .badge-mark { transform: none; box-shadow: none; }

/* marquee */
.industries-ticker { background: var(--limestone); padding: 30px 0; }
.tick-label { border-radius: 0; background: var(--navy); color: var(--lantern-soft); font-family: var(--font-ui); font-weight: 500; font-size: .76rem; letter-spacing: .18em; padding-top: 20px; padding-bottom: 20px; box-shadow: none; }
.industries-track { animation-duration: 90s; }
.tick-item { font-family: var(--font-display); font-weight: 500; font-style: italic; font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: 0; color: var(--navy); }
.tick-item:hover { color: var(--accent); }
.tick-dot { color: var(--brass); font-size: 1rem; }

/* generic panels */
main > section { padding: clamp(88px, 10vw, 150px) 0; }
.section-head p { font-size: 1.08rem; }
.section-cream { background: var(--night-2); }
.arch-frame { border: 0; border-radius: 999px 999px 0 0; outline: 1px solid rgba(196,167,108,.55); outline-offset: 12px; box-shadow: 0 40px 70px -40px rgba(0,0,0,.7); }
.limestone-section .arch-frame { box-shadow: 0 30px 60px -36px rgba(18,56,92,.45); outline-color: rgba(154,124,66,.6); }

/* founder note */
.welcome-note { background: var(--night); }
.welcome-note::before { display: none; }
.welcome-body { background: var(--limestone); border-radius: 0; box-shadow: 0 50px 90px -40px rgba(0,0,0,.7); padding: 76px 70px 60px 150px; }
.welcome-body::before { font-family: var(--font-display); font-weight: 500; color: rgba(154,124,66,.28); font-size: 11rem; top: 0; }
.welcome-lede { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.45rem, 2.1vw, 1.95rem); line-height: 1.38; letter-spacing: 0; color: var(--navy); }
.signature-block { border-top-width: 1px; }
.signature-swash { width: 250px; max-width: 70%; height: auto; margin: 6px 0 6px -4px; }
.signature-name { font-family: var(--font-ui); font-weight: 500; font-size: .86rem; letter-spacing: .12em; }
.signature-role { font-size: .84rem; letter-spacing: .02em; }

/* pain */
.pain-check { background: var(--night); }
.pain-item { min-height: 0; display: block; padding: 56px 28px 24px; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 1.55rem; line-height: 1.32; color: #f3efe3; transition: border-color .8s, transform .8s var(--ease); }
.pain-item::before { inset: auto; top: -1px; left: 50%; width: 1px; height: 38px; border: 0; border-radius: 0; background: var(--lantern); transform: translateX(-50%); }
.pain-item:nth-child(even) { margin-top: 0; }
.pain-item:hover { transform: none; box-shadow: none; border-color: var(--lantern); }
.proof-strip { margin-top: 96px; background: transparent; border-color: var(--line); }
.proof-strip > span { font-family: var(--font-display); font-size: clamp(1.4rem, 2vw, 1.8rem); font-weight: 500; }
.proof-strip strong { font-weight: 500; color: var(--lantern-soft); }

/* results */
.stat-strip { background: var(--navy-deep); padding: 120px 0 90px !important; }
.stat-strip::after { display: none; }
.stat-cell { border-top: 1px solid var(--line); }
.stat-cell:nth-child(even) { transform: none; }
.stat-cell .figure { font-family: var(--font-display); font-weight: 500; font-size: clamp(3.4rem, 7vw, 6.4rem); letter-spacing: -.02em; text-shadow: none; color: var(--lantern-soft); }
.stat-cell .caption { font-weight: 400; font-size: .94rem; color: #c3cfda; }

/* logos */

/* guarantee */
.guarantee-section { background: var(--night); }
.guarantee-section::before { display: none; }
.guarantee-box { border: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; padding: 110px 64px 76px; max-width: 880px; }
.guarantee-box::before { inset: 10px; border: 1px solid rgba(196,167,108,.16); border-radius: 0; }
.guarantee-icon-badge { width: 60px; height: 60px; top: 38px; background: transparent; border: 1px solid var(--lantern); box-shadow: none; }
.guarantee-icon-badge svg { width: 28px; height: 28px; color: var(--lantern); }
.guarantee-icon-badge svg [fill]:not([fill="none"]) { fill: var(--lantern) !important; }
.guarantee-icon-badge svg [stroke]:not([stroke="none"]) { stroke: var(--lantern) !important; }
.guarantee-icon-badge svg * { stroke-width: 1.4; }
.guarantee-box h2 { font-size: clamp(1.9rem, 3.4vw, 3rem); }
.guarantee-box p { color: #c8d3de; }

/* calculator + quiz */
.calc-box { border-radius: 0; box-shadow: none; border: 1px solid var(--line); }
.calc-result { background: var(--limestone); --fg: #353b43; --head: var(--navy); color: #353b43; }
.calc-result-label { font-weight: 500; font-size: .8rem; letter-spacing: .08em; color: #59606a; }
.calc-result-figure { font-family: var(--font-display); font-weight: 500; letter-spacing: -.01em; color: var(--navy); }
.calc-result-note { color: #59606a; }
.calc-result .btn-solid { background: var(--navy); border-color: var(--navy); color: #fff; }
.calc-value { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; }
input[type="range"] { height: 1px; }
.quiz-box { border-radius: 0; }
.quiz-q-text { font-family: var(--font-display); font-weight: 500; font-size: 1.7rem; }
.quiz-option { border-radius: 0; font-weight: 400; }
.quiz-dot { box-shadow: none; }

/* snapshot */
.snap-live { border-radius: 0; box-shadow: 0 50px 90px -50px rgba(0,0,0,.55); }
.snap-head-title { font-family: var(--font-display); font-weight: 600; }

/* services walk: kept pinned and horizontal, quieter */
.walk { background: var(--night-2); }
.walk-head h2 { font-size: clamp(2rem, 3.4vw, 3.2rem); }
.door { border-radius: 999px 999px 0 0; padding-top: 128px; box-shadow: none; border: 1px solid rgba(196,167,108,.4); outline: 1px solid rgba(196,167,108,.16); outline-offset: 7px; transition: transform .8s var(--ease), border-color .6s; }
.door:nth-child(even), .door:nth-child(3n) { margin-top: 0; }
.door:hover { transform: translateY(-6px); box-shadow: none; border-color: var(--lantern); }
.door::before { font-family: var(--font-display); font-weight: 500; font-style: italic; font-size: 2.4rem; letter-spacing: 0; -webkit-text-stroke: 0; color: var(--lantern); opacity: .9; top: 62px; }
.door .service-icon { margin: 0 0 14px; width: 38px; height: 38px; }
.door .eyebrow { font-size: .66rem; letter-spacing: .16em; }
.door h3 { font-size: 1.45rem; margin-bottom: 10px; }
.door p { font-size: .9rem; line-height: 1.6; }
.door .btn { padding: 12px 20px; font-size: .74rem; }
.door-navy { background: #0c2640; }
.door-terra { background: #123759; color: #e9eef4; border-color: rgba(196,167,108,.4); --fg: #d6d9dc; --head: #f6f2e8; --eyebrow: var(--lantern); }
.door-terra::before { color: var(--lantern); }
.door-terra .service-icon { color: var(--lantern); }
.door-terra .btn-outline { color: var(--lantern-soft); border-color: rgba(196,167,108,.7); }
.door-terra .btn-outline:hover { background: var(--lantern); color: #0a1c2f; }
.door-stone { background: var(--limestone); border-color: rgba(154,124,66,.55); outline-color: rgba(196,167,108,.2); }
.door-stone::before { color: var(--accent); }
.walk-street::before { height: 1px; top: 18px; background: rgba(196,167,108,.28); border-radius: 0; }
.walk-lamp { width: 9px; height: 9px; top: 14px; transition: left .4s linear; }
.walk-lamp::before { width: 9px; height: 9px; margin: 0; left: 0; top: 0; border-radius: 0; transform: rotate(45deg); background: var(--lantern); box-shadow: none; }
.walk-lamp::after { display: none; }
.walk-btn { border-radius: 0; font-weight: 500; font-size: .78rem; letter-spacing: .1em; border-width: 1px; }

/* story / process */
.story-photo { border-radius: 999px 999px 0 0; }
.story-num { font-family: var(--font-display); font-weight: 500; font-style: italic; -webkit-text-stroke: 0; color: rgba(246,242,232,.92); text-shadow: 0 2px 30px rgba(7,25,43,.7); font-size: clamp(4.5rem, 8vw, 7rem); }
.process-steps::before { width: 1px; background: linear-gradient(180deg, var(--lantern), rgba(196,167,108,.1)); }
.process-step::before { width: 9px; height: 9px; left: -42px; border-width: 1px; border-radius: 0; transform: rotate(45deg); }
.process-step.is-active::before { box-shadow: none; }
.process-num { font-family: var(--font-display); font-weight: 500; font-style: italic; font-size: clamp(4rem, 7vw, 6.4rem); }
.process-text h3 { font-size: clamp(1.7rem, 2.6vw, 2.3rem); letter-spacing: 0; }

/* differentiators */
.diff-col { border: 0; border-top: 1px solid var(--lantern); border-radius: 0; background: rgba(255,255,255,.03); }
.diff-grid-3 .diff-col::before { font-family: var(--font-display); font-weight: 500; font-style: italic; -webkit-text-stroke: 0; color: var(--lantern); font-size: 2.6rem; letter-spacing: 0; }
.diff-grid-3 .diff-col:hover, .diff-grid-3 .diff-col:focus-within { background: rgba(255,255,255,.06); box-shadow: none; }
.diff-col h3 { font-size: 1.6rem; }
.diff-col.us { background: var(--limestone); border-radius: 0; box-shadow: none; --fg: #353b43; --head: var(--navy); color: #353b43; border-top: 1px solid var(--accent); }
.diff-col.us h3 { color: var(--navy); font-size: clamp(1.9rem, 3vw, 2.7rem); letter-spacing: 0; }
.diff-col.us p { color: #353b43; }
.diff-col.us .btn-outline-white { color: var(--navy); border-color: rgba(18,56,92,.55); }
.diff-col.us .btn-outline-white:hover { background: var(--navy); color: #fff; }

/* co-brand */
.cobrand-card { border-radius: 0; background: var(--limestone); border: 0; box-shadow: inset 0 0 0 10px var(--limestone), inset 0 0 0 11px rgba(154,124,66,.5), 0 40px 80px -40px rgba(0,0,0,.7); padding: 64px 40px 52px; }
.cobrand-wordmark { font-family: var(--font-display); font-weight: 600; letter-spacing: 0; font-size: 2.2rem; }
.cobrand-btn { border-radius: 0; }

/* value rows */
.value-row { border-top-color: var(--line); }
.value-row::before { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 1.5rem; letter-spacing: 0; }
.value-row h3 { font-size: clamp(1.7rem, 2.8vw, 2.5rem); letter-spacing: 0; font-weight: 500; }
.value-row:hover { background: rgba(255,255,255,.03); padding-left: 28px; }
.value-row:hover h3 { color: var(--lantern-soft); }

/* visit + map */
.visit-section { background: var(--navy-deep); padding-top: 140px !important; padding-bottom: 130px !important; }
.visit-section::after { display: none; }
.visit-head h2 { font-size: clamp(2.8rem, 5.6vw, 5.2rem); line-height: 1; letter-spacing: -.01em; max-width: 14ch; }
.adriatica-map-wrap { padding: 0; background: var(--limestone); border-radius: 0; transform: none; box-shadow: 0 0 0 1px rgba(196,167,108,.55), 0 0 0 12px var(--navy-deep), 0 0 0 13px rgba(196,167,108,.25), 0 60px 100px -50px rgba(0,0,0,.8); transition: none; }
.adriatica-map-wrap:hover { transform: none; }
.adriatica-map { border-radius: 0; }
.visit-copy { margin-top: 80px; }
.squad-band-photos figure { border: 0; border-radius: 999px 999px 0 0 !important; outline: 1px solid rgba(196,167,108,.5); outline-offset: 10px; box-shadow: 0 40px 70px -40px rgba(0,0,0,.7) !important; }
.squad-band-photos figure:nth-child(2) { outline-offset: 8px; }

/* closing CTA */
.cta-banner { padding: 170px 0 150px !important; }
.cta-photo { opacity: .38; }
.cta-banner::after { background: linear-gradient(180deg, rgba(7,25,43,.94), rgba(7,25,43,.6) 40%, rgba(7,25,43,.92)); }
.cta-banner h2 { font-size: clamp(2.8rem, 6vw, 5.4rem); line-height: 1; letter-spacing: -.01em; }
.cta-banner p { font-size: 1.1rem; color: #dde0e2; }

/* footer */
.site-footer .footer-body { background: var(--night); border-top: 1px solid rgba(196,167,108,.3); padding-top: 72px; }
.footer-grid h4, .footer-grid .footer-h { font-family: var(--font-ui); font-weight: 500; font-size: .72rem; letter-spacing: .22em; color: var(--lantern); }
.footer-grid a { font-size: .9rem; color: #bcc8d4; }
.footer-grid a:hover { transform: none; color: var(--lantern-soft); }

/* icons: fine line */
.service-icon *, .case-icon * { stroke-width: 1.3 !important; }

/* interior cards, forms, flip cards */
.card { border-radius: 0; box-shadow: none; }
.card h3 { font-weight: 500; font-size: 1.6rem; }
.case-card { border-radius: 0; box-shadow: none; }
.faq-item h3 { font-size: 1.45rem; font-weight: 500; }
.ledger-row .figure { font-family: var(--font-display); font-weight: 600; }
.form-field input, .form-field select, .form-field textarea, .qf-field input, .qf-field select, .qf-field textarea { border-radius: 0; border-width: 1px; font-weight: 400; }
.form-field label { font-weight: 500; letter-spacing: .02em; }
.book-call-panel { border-radius: 0; }
.team-bio-text h4 { font-family: var(--font-display); font-weight: 600; font-size: 1.4rem; }
.flip-back, .flip-front { border-radius: 0; }
.case-figure .num { font-family: var(--font-display); font-weight: 500; }
.jumpnav-pill { border-radius: 0; font-weight: 500; letter-spacing: .06em; font-size: .8rem; }
.photo-tile img, .photo-wide img { border-radius: 0; }

@media (prefers-reduced-motion: no-preference) {
  .signature-swash { animation: tfsInk 2.6s var(--ease) both; animation-timeline: view(); animation-range: entry 0% entry 90%; }
}
@keyframes tfsInk { from { clip-path: inset(0 100% 0 0); opacity: .6; } to { clip-path: inset(0 0 0 0); opacity: 1; } }

/* photography bands: the real office, edge to edge */
.photo-band { margin: 0; position: relative; height: clamp(260px, 36vw, 500px); overflow: hidden; background: var(--wood); }
.photo-band img { width: 100%; height: 100%; object-fit: cover; max-width: none; }
.photo-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,25,43,.5), rgba(7,25,43,0) 28%, rgba(7,25,43,0) 70%, rgba(7,25,43,.55)); pointer-events: none; }
.photo-band::before { content: ""; position: absolute; inset: 18px; z-index: 2; border: 1px solid rgba(242,233,221,.35); pointer-events: none; }
/* warm stone, wood and copper from the office itself */
.limestone-section .btn-solid:hover { background: var(--wood); border-color: var(--wood); }
.door-stone::before, .value-row:hover::before { color: var(--copper); }
.limestone-section .eyebrow, .door-stone .eyebrow { color: #8a6a48; }

/* ---- pass 2: interior pages ---- */
#bookkeeping::before, #close::before, #controller::before, #cfo::before, #full-service::before, #cleanup::before, #systems::before, #ma-readiness::before { display: none !important; }
.ledger { border-radius: 0; background: rgba(255,255,255,.035); box-shadow: none; }
.limestone-section .ledger { background: rgba(255,255,255,.5); box-shadow: none; }
.ledger-row .figure::before { opacity: .9; }
.snapshot-frame { border: 0; border-radius: 0; padding-top: 0; outline: 1px solid rgba(154,124,66,.5); outline-offset: 10px; box-shadow: 0 40px 70px -40px rgba(18,56,92,.5); }
.services-jumpnav { border-color: rgba(196,167,108,.3); }
.jumpnav-pill { font-weight: 500; font-size: .76rem; letter-spacing: .08em; border-radius: 0; border-color: rgba(196,167,108,.35); }
.jumpnav-pill:hover { transform: none; }
.jumpnav-pill.active { background: var(--lantern); }
.ma-diagram-wrap { border-radius: 0; background: rgba(255,255,255,.03); }
.ma-diagram::before { height: 1px; }

.case-card { border-radius: 0; background: rgba(255,255,255,.035); box-shadow: none; }
.case-card:hover { transform: none; box-shadow: none; }
.case-card::before { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 2.2rem; letter-spacing: 0; -webkit-text-stroke: 0; color: var(--lantern); opacity: .7; right: 40px; top: 26px; }
.case-card > h3 { font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: 0; font-weight: 500; }
.case-tag { border-radius: 0; font-weight: 500; font-size: .72rem; letter-spacing: .14em; border-color: rgba(196,167,108,.4); }
.case-figure { border-radius: 0; background: transparent; border: 0; border-top: 1px solid var(--line); box-shadow: none; text-align: left; padding: 20px 4px; }
.case-figure .num { font-family: var(--font-display); font-weight: 500; letter-spacing: -.01em; padding-top: 4px; color: var(--lantern-soft); }
.case-figure .cap { font-weight: 400; font-size: .86rem; color: #c3cfda; }
.inline-cta { background: var(--limestone); color: var(--navy); border-radius: 0; box-shadow: none; }
.inline-cta > span { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; }
.inline-cta .btn-accent { background: var(--navy); border-color: var(--navy); color: #fff; }
.card:hover { transform: none; }
.card::before { height: 1px; background: var(--lantern); }
.card[style] { background: var(--limestone) !important; border-color: rgba(154,124,66,.55) !important; }
.card[style] h3 { color: var(--navy) !important; }
.card[style] p { color: #353b43 !important; }
.team-bio-photo { border-radius: 999px 999px 0 0; }
.team-bio-photo > img, .flip-front, .flip-back { border: 0; border-radius: 999px 999px 0 0; box-shadow: none; }
.team-bio-photo > img { outline: 1px solid rgba(196,167,108,.5); outline-offset: 8px; }
.team-bio-photo { outline: 1px solid rgba(196,167,108,.5); outline-offset: 8px; }
.team-bio-photo > img { outline: 0; }
.flip-back { background: var(--navy-deep); }
.flip-back-label { font-family: var(--font-display); font-style: italic; font-weight: 500; }
.photo-gallery-section .photo-wide img { border: 0; border-radius: 0; box-shadow: none; outline: 1px solid rgba(196,167,108,.4); outline-offset: 10px; }
.photo-grid-4 .photo-tile { border: 0; border-radius: 999px 999px 0 0; box-shadow: none; outline: 1px solid rgba(196,167,108,.4); outline-offset: 7px; }
.photo-grid-4 .photo-tile:nth-child(even) { margin-bottom: 0; }
.photo-tile img { filter: none; }
.book-call-panel { border: 1px solid var(--line); border-radius: 0; background: var(--navy-deep); box-shadow: none; padding: 80px 60px 64px; }
.book-call-panel h3 { font-weight: 500; letter-spacing: 0; }
.faq-item { padding-left: 80px; }
.faq-item::before { font-family: var(--font-display); font-style: italic; font-weight: 500; }
.qf-section-num { background: transparent; border: 1px solid var(--navy); color: var(--navy); font-family: var(--font-display); font-weight: 600; }
.qf-section h2 { font-weight: 500; letter-spacing: 0; }
.diff-col.us .btn-outline-white { border-color: rgba(18,56,92,.55); }
.contact-team-photo img { border-radius: 0; }
.about-portrait { border-radius: 999px 999px 0 0; }
.form-success { border-radius: 0; }
.approach-section .lede { font-family: var(--font-display); font-weight: 500; letter-spacing: -.005em; line-height: 1.22; font-size: clamp(1.7rem, 3vw, 2.6rem); }
.approach-section .wrap > p:not(.lede) { font-size: 1.02rem; line-height: 1.8; }
.ph-arch { display: none !important; }
.photo-grid-landscape .photo-tile { border-radius: 0; border: 0; outline: 1px solid rgba(196,167,108,.4); outline-offset: 6px; }
.photo-tile:hover img { transform: scale(1.02); filter: none; }
.photo-grid-landscape { gap: 28px; }
/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .5fr); }
  .team-bios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-bio:nth-of-type(3n+2) { margin-top: 0; }
  .team-bio:nth-of-type(even) { margin-top: 56px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pain-item:nth-child(even) { margin-top: 0; }
  .pain-item:nth-child(odd) { margin-top: 0; } .pain-item:nth-child(2n) { margin-top: 40px; }
  .diff-grid-3 { flex-wrap: wrap; }
  .diff-grid-3 .diff-col { flex: 1 1 calc(50% - 18px); }
  .diff-grid-3 .diff-col:hover { flex-grow: 1; }
  .photo-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .photo-grid-4 .photo-tile:nth-child(even) { margin-bottom: 0; }
}
@media (max-width: 980px) {
  .main-nav { position: fixed; inset: 0; z-index: 290; flex-direction: column; justify-content: center; align-items: stretch; gap: 4px; padding: 100px 36px 40px; background: radial-gradient(80% 50% at 50% 0%, rgba(240,190,91,.2), transparent), var(--night); opacity: 0; visibility: hidden; transform: translateY(-14px); transition: opacity .35s, transform .35s var(--ease), visibility .35s; overflow-y: auto; }
  .main-nav.open { opacity: 1; visibility: visible; transform: none; }
  .main-nav a:not(.btn) { font-size: 1.7rem; padding: 12px 6px; letter-spacing: -.02em; border-bottom: 1px solid var(--line-soft); }
  .main-nav a:not(.btn)::after { display: none; }
  .nav-cta { margin: 22px 0 0; padding: 18px 28px; font-size: 1.1rem; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; position: relative; z-index: 300; }
  body.nav-open { overflow: hidden; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-arch-wrap { display: none; }
  .hero-adriatica { padding-bottom: 150px; }
  .welcome-grid, .grid-2, .story-grid, .cobrand-grid, .bio-grid-v2, .visit-copy { grid-template-columns: 1fr; }
  .welcome-portrait { margin: 0 auto; }
  .welcome-body { margin: -80px 0 0; padding: 120px 34px 44px; border-radius: 6px 90px 6px 6px; }
  .welcome-body::before { left: 28px; top: 26px; font-size: 9rem; }
  .story-sticky { position: relative; top: 0; }
  .story-photo { width: min(100%, 360px); }
  .process-step { min-height: 0; padding-bottom: 44px; opacity: 1; }
  .calc-box { grid-template-columns: 1fr; }
  .calc-inputs, .calc-result { padding: 40px 28px; }
  .stat-strip .wrap { grid-template-columns: 1fr; }
  .stat-cell:nth-child(even) { transform: none; }
  .case-grid { grid-template-columns: 1fr; }
  .case-figures { position: static; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); order: 0; margin-bottom: 8px; }
  .case-card { padding: 40px 26px 44px; border-radius: 6px 70px 6px 6px; }
  .approach-section .wrap { grid-template-columns: 1fr; }
  .approach-section .lede, .approach-section .wrap > p:not(.lede) { grid-column: 1; grid-row: auto; position: static; }
  .about-portrait { position: relative; top: 0; margin: 0 auto; }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3 > .card:nth-child(3n+2) { margin-top: 0; }
  .value-row { grid-template-columns: 48px 1fr; }
  .value-row p { grid-column: 2; }
  .squad-band-photos { height: 460px; margin-bottom: 20px; }
  .snap-controls { grid-template-columns: 1fr; }
  .snap-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .snap-kpi:nth-child(2) { border-right: 0; } .snap-kpi:nth-child(-n+2) { border-bottom: 1px solid rgba(17,61,100,.14); }
  .snap-charts { grid-template-columns: 1fr; } .snap-chart { border-right: 0; }
  .services-jumpnav { top: 60px; }
  .snapshot-scroll-hint { display: block; }
  .snapshot-frame { max-height: 520px; border-radius: 120px 120px 8px 8px; }
  .badge-strip-row { grid-template-columns: 1fr; padding-top: 50px; padding-bottom: 44px; gap: 22px; }
  .badge-item { border-left: 0; padding: 0; }
  .tick-label { padding-left: 24px; }
  .ph-arch { display: none; }
  .visit-head h2 { max-width: 12ch; }
}
@media (max-width: 700px) {
  :root { --arch-r: 36px; }
  .wrap { padding: 0 22px; }
  .hero-adriatica { padding-top: 124px; padding-bottom: 120px; min-height: 0; }
  main > section.hero-adriatica { padding: 124px 0 120px; }
  main > section.page-hero, main > section.hero-404, main > section.hero { padding: 132px 0 110px; }
  .hero-adriatica h1 { font-size: clamp(2.3rem, 10.4vw, 3.3rem); }
  .page-hero h1 { font-size: clamp(2.2rem, 10vw, 3.2rem); }
  .btn-hero { padding: 18px 28px; }
  .hero-actions .btn { width: 100%; }
  .pain-check .grid-4, .grid-3 { grid-template-columns: 1fr; }
  .pain-item { min-height: 0; padding: 120px 24px 40px; }
  .pain-item:nth-child(2n) { margin-top: 0; }
  .proof-strip { padding: 28px 22px; margin-top: 70px; }
  .stat-strip { padding: 90px 0 70px !important; }
  .stat-cell { grid-template-columns: 1fr; gap: 6px; padding: 26px 0 30px; }
  .stat-cell .caption { padding-bottom: 0; }
  .guarantee-box { padding: 120px 26px 52px; }
  .calc-field-head { flex-direction: column; gap: 6px; }
  .quiz-box { padding: 28px 20px; }
  .walk-pin { padding: 90px 0 50px; }
  .door { flex-basis: 80vw; min-height: 440px; padding-top: 150px; }
  .door:nth-child(even), .door:nth-child(3n) { margin-top: 0; }
  .walk-controls { padding: 0 22px; }
  .walk-street { margin: 0 22px; }
  .walk-viewport { padding-left: 22px; padding-right: 22px; }
  .diff-grid-3 .diff-col { flex: 1 1 100%; }
  .diff-col.us { padding: 40px 26px; border-radius: 6px 60px 6px 6px; }
  .visit-section { padding-top: 130px !important; padding-bottom: 90px !important; }
  .visit-head h2 { font-size: clamp(2.5rem, 13vw, 4rem); }
  .adriatica-map-wrap { padding: 8px; margin-top: 26px; transform: none; }
  .visit-copy { margin-top: 56px; }
  .squad-band-photos { height: 380px; }
  .cta-banner { padding: 130px 0 110px !important; }
  .cobrand-card { border-radius: 110px 110px 8px 8px; padding: 56px 24px 40px; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-bottom { flex-direction: column; }
  .ledger { padding: 8px 20px 24px; border-radius: 6px 6px 6px 60px; }
  .ledger-row { flex-wrap: wrap; gap: 6px 14px; } .ledger-row .dots { display: none; }
  .ledger-row .label { flex: 1 1 100%; } 
  .photo-inset { padding: 0 22px; margin-top: 40px; }
  .photo-inset img { aspect-ratio: 4 / 3; border-radius: 160px 160px 6px 6px; }
  .team-bios { grid-template-columns: 1fr; gap: 56px; }
  .team-bio:nth-of-type(even) { margin-top: 0; }
  .team-bio-photo { max-width: 340px; margin-left: auto; margin-right: auto; }
  .photo-grid-3 { grid-template-columns: 1fr; }
  .photo-gallery-section .photo-wide img, .contact-team-photo img { aspect-ratio: 4 / 3; border-radius: 170px 170px 6px 6px; }
  .book-call-panel { padding: 100px 24px 48px; }
  .faq-item { padding: 28px 8px 28px 56px; } .faq-item::before { left: 6px; top: 28px; } .faq-item:hover { padding-left: 62px; }
  .ma-diagram-wrap { padding: 36px 22px; border-radius: 60px 60px 6px 6px; }
  .ma-diagram { flex-direction: column; align-items: stretch; }
  .ma-diagram::before { display: none; }
  .ma-stage { display: flex; align-items: center; gap: 14px; text-align: left; padding: 10px 0; }
  .ma-icon { margin: 0; flex: 0 0 auto; }
  .qf-field-row { grid-template-columns: 1fr; gap: 22px; }
  .inline-cta { padding: 28px 24px; border-radius: 6px 50px 6px 50px; }
  .sticky-cta { left: 12px; right: 12px; bottom: 12px; justify-content: space-between; transform: translateY(160%); padding: 10px 10px 10px 16px; gap: 10px; }
  .sticky-cta.is-shown { transform: translateY(0); }
  .sticky-cta span { font-size: .84rem; }
  .sticky-cta .btn { padding: 10px 14px; font-size: .86rem; }
  .card { padding: 30px 24px; }
  #bookkeeping::before, #close::before, #controller::before, #cfo::before, #full-service::before, #cleanup::before, #systems::before, #ma-readiness::before { font-size: 8rem; top: 8px; }
  .tick-item { font-size: 1.9rem; }
  .tick-label { font-size: .9rem; padding: 12px 20px 12px 22px; }
}
@media (hover: none) {
  .flip.flipped .flip-inner { transform: rotateY(180deg); }
  .diff-grid-3 .diff-col:hover { flex-grow: 1; }
}

/* ==========================================================================
   Reduced motion: static end states, nothing drifts, spins or flickers
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .001ms !important; transition-delay: 0s !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .hero-photo { animation: none !important; scale: 1.04; }
  .fireflies, .hero-glow { display: none; }
  .industries-track { animation: none !important; width: auto; flex-wrap: wrap; }
  .flip:hover .flip-inner { transition: none; }
  .process-step { opacity: 1; }
  .walk-viewport { overflow-x: auto !important; }
}

/* ==========================================================================
   v2.1 refinement: small screens
   ========================================================================== */
@media (max-width: 899px) {
  h1 { font-size: clamp(2.5rem, 10vw, 3.4rem); }
  h2 { font-size: clamp(2rem, 8vw, 2.7rem); }
  body { font-size: 16px; }
  main > section { padding: 76px 0; }
  .hero-adriatica h1 { font-size: clamp(2.6rem, 11vw, 3.6rem); }
  .page-hero h1 { font-size: clamp(2.5rem, 10.5vw, 3.4rem); }
  .badge-strip-row { padding-top: 44px; padding-bottom: 40px; gap: 26px; }
  .badge-item { border-left: 0; padding: 0; }
  .welcome-body { padding: 56px 28px 40px; margin-left: 0; margin-top: -40px; }
  .welcome-body::before { left: 20px; font-size: 8rem; }
  .pain-item { padding: 48px 20px 18px; font-size: 1.4rem; }
  .stat-cell .figure { font-size: clamp(3rem, 15vw, 4.4rem); }
  .guarantee-box { padding: 96px 26px 56px; }
  .door { padding-top: 112px; }
  .visit-head h2 { font-size: clamp(2.5rem, 11vw, 3.4rem); }
  .cta-banner h2 { font-size: clamp(2.6rem, 11vw, 3.6rem); }
  .adriatica-map-wrap { box-shadow: 0 0 0 1px rgba(196,167,108,.55), 0 0 0 7px var(--navy-deep), 0 0 0 8px rgba(196,167,108,.25); margin-left: 8px; margin-right: 8px; width: auto; }
  .photo-band { height: 240px; }
  .photo-band::before { inset: 10px; }
  .tick-label { padding-left: 20px; padding-right: 18px; }
  .case-card { padding: 40px 24px 40px; }
  .case-card::before { right: 22px; top: 16px; }
  .inline-cta { padding: 28px 24px; }
  .book-call-panel { padding: 56px 24px 48px; }
  .hero-arch-wrap { margin-bottom: 0; }
  .snapshot-frame { outline-offset: 6px; }
  .arch-frame { outline-offset: 8px; }
}
@media (max-width: 899px) {
  .case-card, .inline-cta, .card, .ledger, .ma-diagram-wrap, .book-call-panel, .guarantee-box, .welcome-body, .sister-card, .tts-card, .snapshot-frame, .diff-col, .roi-panel, .roi-result, .ledger-wrap, .cta-card, .case-figure, .cobrand-card, .photo-gallery-section .photo-wide img, .contact-team-photo img { border-radius: 0 !important; }
}

/* ==========================================================================
   v2.1.1: uniform card sizing
   Every group of cards, tiles and panels shares one height per row (grid or
   flex stretch), offsets used for a staggered look are removed, images use
   one aspect ratio, and buttons sit at the bottom of their cards.
   Only sizing and alignment change here: copy, colors and structure do not.
   ========================================================================== */

/* Services walk (pinned, horizontal): every door is the same height */
.walk-track { align-items: stretch; }

/* Home: "Sound familiar?" quotes, equal tracks and rows, no stagger */
.pain-check .grid-4 { align-items: stretch; grid-auto-rows: 1fr; }
.pain-item, .pain-item:nth-child(n) { margin-top: 0; height: 100%; }

/* Home: "Why not just..." comparison columns, equal width and height, no hover growth */
.diff-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 18px; align-items: stretch; }
.diff-grid-3 .diff-col, .diff-grid-3 .diff-col:hover, .diff-grid-3 .diff-col:focus-within { flex: none; }
.diff-grid-3 .diff-col { transition: background .5s, transform .5s var(--ease), box-shadow .5s; }

/* Industries and About: card grids. Equal tracks and rows, no offset middle column */
.grid-3, .grid-4 { align-items: stretch; }
.grid-3 { grid-auto-rows: 1fr; }
.grid-3 > .card, .grid-3 > .card:nth-child(3n+2) { margin-top: 0; display: flex; flex-direction: column; }
.grid-3 > .card > .btn { margin-top: auto !important; align-self: flex-start; }
.grid-3 > .card > p:has(+ .btn) { margin-bottom: 18px; }
/* a card without an icon starts its heading on the same line as its neighbours */
.grid-3:has(.service-icon) > .card:not(:has(.service-icon)) > h3:first-child { margin-top: 72px; }

/* Services: ledger rows (included lists) share one height */
.ledger { display: grid; grid-auto-rows: 1fr; align-content: start; }
.ledger-row { align-items: center; }

/* Services: M&A readiness stages */
.ma-diagram { align-items: stretch; }

/* Results: case figures in a card share one height */
.case-figures { grid-auto-rows: 1fr; }
.case-figure { display: flex; flex-direction: column; justify-content: center; }

/* About: team bios. One photo ratio, equal rows, no staggered columns, text starts at the same line */
.team-bios { align-items: stretch; }
.team-bio, .team-bio:nth-of-type(n) { margin-top: 0; display: flex; flex-direction: column; }
.team-bio-photo { flex: none; width: 100%; aspect-ratio: 4 / 5; }
.team-bio-photo > img, .flip-front img { width: 100%; height: 100%; object-fit: cover; }
.team-bio-text { flex: 1 1 auto; }

/* Our Office: photo tiles share one ratio and the same baseline */
.photo-grid-4 { align-items: stretch; }
.photo-grid-4 .photo-tile, .photo-grid-4 .photo-tile:nth-child(even) { margin-bottom: 0; }

@media (max-width: 1100px) {
  .diff-grid-3 { gap: 14px; }
  .diff-grid-3 .diff-col { flex: none; padding: 34px 22px; }
  .pain-item:nth-child(n) { margin-top: 0; }
  .team-bio:nth-of-type(n) { margin-top: 0; }
}
@media (max-width: 900px) {
  /* three cards stack to one column on tablet and phone: never a 2 + 1 orphan */
  .diff-grid-3 { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; }
}
@media (max-width: 700px) {
  .pain-item:nth-child(n) { margin-top: 0; }
}

/* ==========================================================================
   v2.1.2: photo bands, reframed. The band keeps the whole Finance Squad sign
   in frame at every width (height now scales with the photo up to ultrawide
   screens instead of freezing at 500px), edges blend to navy with a clean
   gradient, and the hairlines are brass.
   ========================================================================== */
.photo-band {
  --band-x: 50%; --band-y: 50%;
  height: clamp(300px, 40vw, 760px);
  background: var(--navy-deep);
  isolation: isolate;
}
.photo-band img { object-position: var(--band-x) var(--band-y); display: block; }
.photo-band--sign { --band-x: 56%; --band-y: 34%; }
.photo-band--waiting { --band-x: 50%; --band-y: 58%; }
/* edges melt into the navy above and below: no pale strip, no hard cut */
.photo-band::after {
  background:
    linear-gradient(180deg, var(--night) 0, rgba(6,26,47,.78) 5%, rgba(6,26,47,.28) 14%, rgba(6,26,47,0) 26%,
      rgba(6,26,47,0) 76%, rgba(10,40,66,.30) 88%, rgba(10,40,66,.85) 96%, var(--navy-deep) 100%);
}
/* brass hairlines: one at each edge, plus an inset frame in brass instead of pale */
.photo-band::before {
  inset: 22px; z-index: 2;
  border: 1px solid rgba(196,167,108,.5);
  box-shadow: 0 0 0 1px rgba(6,26,47,.28);
}
.photo-band figcaption { display: none; }

/* ultrawide: keep the photo at its sharp native size, fade the sides into navy */
@media (min-width: 1801px) {
  .photo-band img { width: 1800px; max-width: 100%; margin: 0 auto; 
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%); }
  .photo-band::before { inset: 22px calc((100% - 1800px) / 2 + 60px); }
}
@media (max-width: 1024px) {
  .photo-band { height: clamp(300px, 46vw, 440px); }
  .photo-band--sign { --band-x: 62%; --band-y: 36%; }
}
@media (max-width: 768px) {
  .photo-band { height: 340px; }
  .photo-band--sign { --band-x: 78%; --band-y: 34%; }
  .photo-band::before { inset: 14px; }
}
@media (max-width: 480px) {
  .photo-band { height: 320px; }
  .photo-band--sign { --band-x: 82%; --band-y: 36%; }
}

/* ==========================================================================
   v2.1.2: hero and wide-photo framing. Keep faces and the sign whole.
   (Attribute selectors so no template edits are needed.)
   ========================================================================== */
/* home hero: pull the sign out from behind the arch card, and never clip it at tablet/phone */
@media (min-width: 981px) {
  .hero-photo { right: auto; left: -22%; width: 122%; object-position: 50% 45%; }
}
@media (max-width: 980px) { .hero-photo { object-position: 10% 45%; } } /* door and lantern; the sign is shown whole on desktop, and kept out of frame here so it is never sliced behind full-width copy */
@media (max-width: 560px) { .hero-photo { object-position: 16% 45%; } }

/* inline wide photos: heads stay in frame */
.photo-inset img[src*="team-advisory"]    { object-position: 50% 8%; }
.photo-wide img[src*="team-meeting"]      { object-position: 50% 30%; }
@media (max-width: 560px) {
  .photo-inset img[src*="team-advisory"]    { object-position: 70% 8%; }
}

/* closing CTA banners: sign stays whole when it shows through, never sliced at the top */
.cta-photo { object-position: 50% 40%; }
/* ==========================================================================
   v2.2.1: real team and office photography.
   One grade for the site (dusk navy shadows, warm highlights, never darker than
   the original). Heroes are daylight photos under a lighter navy veil, so faces
   read as faces. Crops keep people whole. Quiet SDVOSB line, small caps with a
   brass hairline: no badge, no numbers, no dates.
   ========================================================================== */

/* ---- lighter veils: photo first, copy still reads ---- */
.hero-shade { background:
  linear-gradient(90deg, rgba(6,26,47,.86) 0%, rgba(6,26,47,.62) 36%, rgba(6,26,47,.12) 70%, rgba(6,26,47,.22) 100%),
  linear-gradient(180deg, rgba(6,26,47,.5) 0%, rgba(6,26,47,0) 26%, rgba(6,26,47,0) 66%, rgba(6,26,47,.88) 100%); }
.page-hero::before, .hero-404::before { background:
  linear-gradient(90deg, rgba(7,25,43,.80) 0%, rgba(7,25,43,.50) 44%, rgba(7,25,43,.04) 100%),
  linear-gradient(180deg, rgba(7,25,43,.5), rgba(7,25,43,0) 26%, rgba(7,25,43,0) 62%, rgba(7,25,43,.80)); }
.page-hero h1, .page-hero .lede, .page-hero .eyebrow { text-shadow: 0 2px 22px rgba(4,16,30,.55); }
.cta-photo { opacity: .5; }
@media (max-width: 760px) {   /* copy sits over the picture on phones: keep a steady veil so it always reads */
  .hero-shade { background: linear-gradient(180deg, rgba(6,26,47,.55) 0%, rgba(6,26,47,.5) 30%, rgba(6,26,47,.72) 100%); }
  .hero-404::before { background: linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,.5) 30%, rgba(7,25,43,.78) 100%); }
  .page-hero::before { background: linear-gradient(180deg, rgba(7,25,43,.5) 0%, rgba(7,25,43,.22) 40%, rgba(7,25,43,.7) 100%); }
}

/* ---- page-hero framing (object-position per photo; mobile moves the focus onto the people) ---- */
/* Results hero flag photo: see the v2.3.2 block at the end of this file */
.ph-photo[src*="candid-erimar-katie"]         { object-position: 50% 35%; }
.ph-photo[src*="desk-katie"]                  { object-position: 50% 30%; }
.ph-photo[src*="hero-front-door"]             { object-position: 50% 45%; }
.ph-photo[src*="desk-curtis"]                 { object-position: 40% 35%; }
.ph-photo[src*="desk-erimar"]                 { object-position: 70% 30%; }
@media (max-width: 900px) {   /* narrow windows: centre on one whole person, never slice a face */
  .ph-photo[src*="candid-erimar-katie"]         { object-position: 94% 35%; }
  .ph-photo[src*="desk-katie"]                  { object-position: 100% 30%; }
  .ph-photo[src*="desk-curtis"]                 { object-position: 5% 35%; }
  .ph-photo[src*="desk-erimar"]                 { object-position: 67% 30%; }
  .ph-photo[src*="hero-front-door"]             { object-position: 22% 45%; }
}
.hero-photo { object-position: 50% 45%; }
@media (min-width: 981px) { .hero-photo { left: -19.5%; width: 122%; object-position: 50% 45%; } }
@media (max-width: 980px) { .hero-photo { object-position: 22% 45%; } }
@media (max-width: 560px) { .hero-photo { object-position: 26% 45%; } }

/* ---- team photo bands: whole group in frame, sign included on TFS ---- */
.photo-band--sign { --band-x: 50%; --band-y: 8%; height: auto; aspect-ratio: 16 / 9; max-height: 780px; }
.photo-band--sign img { width: 100%; height: 100%; }
@media (max-width: 900px) { .photo-band--sign { aspect-ratio: 3 / 2; max-height: none; } }
.photo-wide img[src*="team-group"] { aspect-ratio: 16 / 10; object-position: 50% 12%; }
@media (max-width: 900px) { .photo-wide img[src*="team-group"] { aspect-ratio: 3 / 2; object-position: 50% 12%; } }
.contact-arch img[src*="office-exterior"] { object-position: 40% 50%; }

/* ---- Home story arch: shallower arch, full frame, nobody clipped ---- */
.story-photo { width: min(100%, 560px); aspect-ratio: 3 / 2.1; border-radius: clamp(90px, 14vw, 170px) clamp(90px, 14vw, 170px) 0 0; }
.story-photo img { object-position: 50% 40%; }
@media (max-width: 900px) { .story-photo { width: min(100%, 520px); } }

/* ---- team grid: every headshot is 4:5 ---- */
.team-bio-photo > img, .flip-front img { object-position: 50% 22%; }
.about-portrait img { object-position: 50% 24%; }

/* ---- quiet veteran-owned line (TFS only) ---- */
.vet-line { display: inline-block; margin: 18px 0 0; padding-top: 10px; border-top: 1px solid rgba(196,167,108,.55);
  font-variant: small-caps; letter-spacing: .09em; font-size: .92rem; line-height: 1.3; color: var(--accent-text, #7a5c22); text-transform: none; }
.vet-line--footer { margin-top: 16px; font-size: .9rem; color: var(--lantern-soft); border-top-color: rgba(196,167,108,.5); max-width: 36ch; }

/* ---- v2.2.1: team grid keeps equal cards and a centred last row (3 columns: the lone last card sits in the middle column) ---- */
@media (min-width: 1101px) {
  .team-bios > .team-bio:last-child:nth-of-type(3n+1) { grid-column: 2; }
}

/* ---- v2.3.1: no Charlie in any hero or CTA band (Results hero excepted). Office-only photography. ---- */
.ph-photo[src*="desk-curtis"]                 { object-position: 55% 34%; }
.ph-photo[src*="hero-entry-arch"]             { object-position: 50% 40%; }
.ph-photo[src*="office-waiting"]              { object-position: 50% 50%; }
.ph-photo[src*="desk-erimar-2"]               { object-position: 70% 30%; }
@media (max-width: 900px) {
  .ph-photo[src*="desk-curtis"]                 { object-position: 12% 34%; }
  .ph-photo[src*="hero-entry-arch"]             { object-position: 30% 50%; }
  .ph-photo[src*="office-waiting"]              { object-position: 55% 50%; }
  .ph-photo[src*="desk-erimar-2"]               { object-position: 67% 30%; }
}
.photo-grid-4 .photo-pos-low { object-position: 50% 78%; }
/* CTA band (v2.3.1): a clear, well-lit office photo at full strength under a LIGHT navy wash; a soft darker pool sits only behind the headline so the copy always reads */
.cta-photo { opacity: 1; filter: none; }
.cta-banner::after { background:
  radial-gradient(58% 62% at 50% 52%, rgba(7,25,43,.62), rgba(7,25,43,0) 100%),
  linear-gradient(180deg, rgba(7,25,43,.70) 0%, rgba(7,25,43,.42) 38%, rgba(7,25,43,.50) 66%, rgba(7,25,43,.82) 100%); }
.cta-banner h2, .cta-banner p { text-shadow: 0 2px 24px rgba(4,16,30,.7); }
.cta-photo[src*="office-waiting"] { object-position: 50% 62%; }
.cta-photo[src*="hero-entry-arch"] { object-position: 50% 45%; }
.cta-photo[src*="hero-front-door"] { object-position: 50% 55%; }
.cta-photo[src*="candid-erimar-katie"] { object-position: 50% 40%; }
.cta-photo[src*="office-exterior"] { object-position: 50% 50%; }
.cta-photo[src*="cta-conference"] { object-position: 50% 50%; }
/* v2.3.1: bright stone/architecture heroes need a steadier veil on phones so the lede stays legible */
@media (max-width: 760px) {
  .page-hero:has(.ph-photo[src*="hero-front-door"])::before { background: linear-gradient(180deg, rgba(7,25,43,.72) 0%, rgba(7,25,43,.66) 45%, rgba(7,25,43,.84) 100%); }
  .page-hero .lede { text-shadow: 0 1px 14px rgba(4,16,30,.8); }
}

/* ---- v2.3.2: Erimar/Katie table photo kept on the About hero only; new heroes/bands ---- */
.ph-photo[src*="hero-roundtable"]              { object-position: 50% 55%; }
.ph-photo[src*="hero-office"]                  { object-position: 50% 50%; }
.ph-photo[src*="desk-erimar"][src*="-2"]      { object-position: 70% 30%; }
.photo-wide img[src*="desk-charlie-3"], .photo-wide img[src*="desk-charlie-4"] { object-position: 50% 35%; }
.cta-photo[src*="hero-roundtable"]            { object-position: 50% 60%; }
.photo-wide img[src*="desk-erimar-2"]        { object-position: 60% 30%; }

/* ---- v2.3.2: About hero = the one Charlie-with-flag photo. Desktop: Charlie right of the headline. Phones: photo fills the top, text sits below on navy (face never under text). ---- */
.ph-photo--m { display: none; }
.ph-photo[src*="hero-charlie-flag.jpg"] { object-position: 50% 38%; }   /* About only: the one Charlie-with-flag photo, top of the page */
@media (max-width: 560px) {
  .ph-photo--d { display: none; }
  .ph-photo--m { display: block; inset: 0 0 auto 0; height: 56%; object-position: 50% 30%;
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); }
  .page-hero:has(.ph-photo--m) { min-height: 760px; }
  .page-hero:has(.ph-photo--m)::before { background: linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,.05) 22%, rgba(7,25,43,0) 42%, rgba(7,25,43,.92) 66%, rgba(7,25,43,1) 100%); }
}
.photo-wide img[src*="candid-erimar-katie"] { object-position: 50% 35%; }

/* ================= v2.3.3: clear, well-framed bands and heroes ================= */
/* Closing CTA bands: subject centred behind the copy under a light navy wash */
.cta-photo[src*="cta-reception"] { object-position: 50% 40%; }
.cta-photo[src*="cta-arch"]      { object-position: 50% 45%; }
.cta-photo[src*="cta-conference"] { object-position: 50% 8%; }
.cta-photo[src*="hero-roundtable"] { object-position: 50% 50%; }

/* Photos that carry the Finance Squad sign: the WHOLE sign sits on the right, copy on the left, veil darkens only the copy side */
.cta-photo--sign { object-position: 100% 50%; }
.cta-banner--sign { text-align: left; }
.cta-banner--sign .wrap { display: flex; flex-direction: column; align-items: flex-start; }
.cta-banner--sign h2 { margin-left: 0; margin-right: 0; max-width: 11ch; }
.cta-banner--sign p { margin-left: 0; margin-right: 0; max-width: 34ch; }
.cta-banner--sign .hero-actions { justify-content: flex-start; }
.cta-banner--sign::after { background:
  linear-gradient(90deg, rgba(7,25,43,.90) 0%, rgba(7,25,43,.80) 34%, rgba(7,25,43,.22) 58%, rgba(7,25,43,.04) 100%),
  linear-gradient(180deg, rgba(7,25,43,.38) 0%, rgba(7,25,43,0) 28%, rgba(7,25,43,0) 72%, rgba(7,25,43,.62) 100%); }
.ph-photo[src*="hero-sign-right"] { object-position: 100% 45%; }
.ph-photo[src*="hero-entry-arch"] { object-position: 50% 20%; }
.page-hero:has(.ph-photo[src*="hero-sign-right"])::before,
.hero-404:has(.ph-photo[src*="hero-sign-right"])::before { background:
  linear-gradient(90deg, rgba(7,25,43,.92) 0%, rgba(7,25,43,.78) 36%, rgba(7,25,43,.18) 62%, rgba(7,25,43,.04) 100%),
  linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,0) 22%, rgba(7,25,43,0) 70%, rgba(7,25,43,.6) 100%); }

/* Phones: photo on top (subject whole), copy below on navy: nothing sits over the sign or the arch */
@media (max-width: 760px) {
  .page-hero:has(.ph-photo--top), .hero-404:has(.ph-photo--top) { padding-top: 340px !important; align-items: flex-start; min-height: 0; }
  .ph-photo--top { inset: 0 0 auto 0; height: 310px; object-position: 100% 45%;
    -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
  .page-hero:has(.ph-photo--top)::before, .hero-404:has(.ph-photo--top)::before { background: linear-gradient(180deg, rgba(7,25,43,.45) 0%, rgba(7,25,43,0) 18%, rgba(7,25,43,0) 100%); }
  .cta-banner--sign { padding-top: 310px !important; text-align: center; }
  .cta-banner--sign .wrap { align-items: center; }
  .cta-banner--sign h2 { max-width: 14ch; margin-left: auto; margin-right: auto; }
  .cta-banner--sign p { margin-left: auto; margin-right: auto; }
  .cta-banner--sign .hero-actions { justify-content: center; }
  .cta-photo--sign { inset: 0 0 auto 0; height: 290px; object-position: 100% 50%;
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); }
  .cta-banner--sign::after { background: linear-gradient(180deg, rgba(7,25,43,.30) 0%, rgba(7,25,43,0) 20%, rgba(7,25,43,0) 100%); }
}

/* About hero: Charlie sits in the right third (mirrored flag added on the left); copy stays in the left third; veil darkens only the copy side */
.about-portrait img[src*="charlie-door"] { object-position: 50% 14%; }
@media (min-width: 901px) {
  .page-hero--about h1 { font-size: clamp(2.5rem, 4.5vw, 4.6rem); max-width: 12ch; }
  .page-hero--about .lede { max-width: 28ch; }
  .page-hero--about .eyebrow { display: inline-flex; }
  .page-hero--about::before { background:
    linear-gradient(90deg, rgba(7,25,43,.86) 0%, rgba(7,25,43,.66) 26%, rgba(7,25,43,.10) 46%, rgba(7,25,43,0) 100%),
    linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,0) 24%, rgba(7,25,43,0) 70%, rgba(7,25,43,.55) 100%); }
  .ph-photo[src*="hero-charlie-flag.jpg"] { object-position: 50% 38%; }
}
/* tablets: photo on top at its natural 3:2, copy under it on navy */
@media (min-width: 561px) and (max-width: 900px) {
  .page-hero--about { padding-top: calc(60vw + 28px) !important; min-height: 0; align-items: flex-start; }
  .page-hero--about .ph-photo--d { inset: 0 0 auto 0; height: 60vw; object-position: 50% 38%;
    -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent 100%); mask-image: linear-gradient(180deg, #000 78%, transparent 100%); }
  .page-hero--about::before { background: linear-gradient(180deg, rgba(7,25,43,.5) 0%, rgba(7,25,43,0) 18%, rgba(7,25,43,0) 100%); }
}

/* ================= v2.3.3: Home hero = one subject. The whole sign sits uncovered on the right; headline and button sit on a calm navy panel on the left; no inset photo ================= */
.hero-adriatica--sign { min-height: max(100svh, 720px); }
.hero-adriatica--sign .hero-grid { grid-template-columns: 1fr; width: 100%; }
.hero-adriatica--sign .hero-adriatica-inner { max-width: min(560px, 46vw); }
.hero-adriatica--sign .hero-photo { left: 0; right: auto; width: 100%; object-position: 100% 50%; }
.hero-adriatica--sign .hero-shade { background:
  linear-gradient(90deg, rgba(7,25,43,.97) 0%, rgba(7,25,43,.93) 36%, rgba(7,25,43,.70) 50%, rgba(7,25,43,.10) 62%, rgba(7,25,43,0) 100%),
  linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,0) 24%, rgba(7,25,43,0) 74%, rgba(7,25,43,.85) 100%); }
.hero-adriatica--sign h1 { font-size: clamp(2.5rem, 4.6vw, 4.9rem); }
.hero-adriatica--sign .lede { max-width: 44ch; }
@media (min-width: 981px) { .hero-adriatica--sign .hero-photo { left: 0; width: 100%; } }
/* tablets and phones: the sign photo sits whole across the top, the copy below it on navy */
@media (max-width: 980px) {
  main > section.hero-adriatica--sign, .hero-adriatica--sign { min-height: 0; padding-top: calc(62vw + 120px); padding-bottom: 100px; align-items: flex-start; }
  .hero-adriatica--sign .hero-media { inset: 0 0 auto 0; height: calc(62vw + 100px);
    -webkit-mask-image: linear-gradient(180deg, #000 74%, transparent 100%); mask-image: linear-gradient(180deg, #000 74%, transparent 100%); }
  .hero-adriatica--sign .hero-photo { inset: 0; height: 100%; width: 100%; object-position: 100% 50%; animation: none !important; scale: 1; }
  .hero-adriatica--sign .hero-adriatica-inner { max-width: none; }
  .hero-adriatica--sign .hero-shade { background: linear-gradient(180deg, rgba(7,25,43,.5) 0%, rgba(7,25,43,0) 20%, rgba(7,25,43,0) 100%); }
}
@media (max-width: 560px) {
  main > section.hero-adriatica--sign, .hero-adriatica--sign { padding-top: 372px; }
  .hero-adriatica--sign .hero-media { height: 340px; }
  .hero-adriatica--sign h1 { font-size: clamp(2.2rem, 9.6vw, 3rem); }
}

/* 404: copy stays in the left half so the whole sign on the right is never covered */
.hero-404:has(.ph-photo[src*="hero-sign-right"]) .hero-inner { max-width: min(560px, 46vw); }
@media (max-width: 760px) { .hero-404:has(.ph-photo[src*="hero-sign-right"]) .hero-inner { max-width: none; } }
.hero-404 .wrap { width: 100%; }
/* Industries / Partner heroes: the whole arched entry is a photo panel on the right (about 58 percent), fading into navy under the copy */
.page-hero:has(.ph-photo--panel)::before { background: linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,0) 22%, rgba(7,25,43,0) 75%, rgba(7,25,43,.55) 100%); }
@media (min-width: 761px) {
  .ph-photo--panel { left: auto; right: 0; width: 60%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%); mask-image: linear-gradient(90deg, transparent 0%, #000 30%); }
}
@media (max-width: 760px) { .page-hero:has(.ph-photo--top)::before { background: linear-gradient(180deg, rgba(7,25,43,.45) 0%, rgba(7,25,43,0) 18%, rgba(7,25,43,0) 100%); } }
@media (min-width: 761px) { .page-hero:has(.ph-photo--panel) .lede { max-width: min(56ch, 44vw); } }
.ph-photo[src*="hero-roundtable"] { object-position: 50% 48%; }
.ph-photo[src*="office-waiting"] { object-position: 50% 28%; }
/* ==========================================================================
   v2.3.0: lead flow, Google reviews strip, fit check, guide, checklist,
   capability statement. Uses the existing tokens only.
   ========================================================================== */
.fit-q[hidden], .fit-variant[hidden], .fit-result[hidden], .fit-quiz[hidden], #fitBack[hidden] { display: none !important; }
.lead-success { margin-top: 8px; }
.lead-success p { margin-bottom: 14px; }
.text-link { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; color: var(--accent-text); font-weight: 700; }
.inline-link-row { margin-top: 18px; font-size: .98rem; }

/* ---- Google reviews strip ---- */
.reviews-strip { padding: clamp(70px, 8vw, 110px) 0; background: linear-gradient(180deg, var(--night-2), var(--night)); }
.rv-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; margin-bottom: clamp(32px, 4vw, 52px); }
.rv-head h2 { font-size: clamp(1.9rem, 3.4vw, 3rem); }
.rv-score { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rv-num { font-family: var(--font-display); font-size: 3rem; font-weight: 500; color: var(--head); line-height: 1; letter-spacing: -.03em; }
.rv-stars { position: relative; display: inline-block; line-height: 0; }
.rv-stars svg { width: 22px; height: 22px; display: inline-block; }
.rv-stars-base { display: inline-flex; color: rgba(255,255,255,.22); }
.rv-stars-base svg, .rv-stars-in svg { fill: currentColor; }
.rv-stars-fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; }
.rv-stars-in { display: inline-flex; color: var(--lantern); }
.rv-count { color: var(--fg-soft); font-weight: 700; font-size: .98rem; }
.rv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.rv-grid--1 { grid-template-columns: minmax(0, 720px); }
.rv-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rv-card { margin: 0; padding: 32px 30px 28px; border: 1px solid var(--line); border-radius: 0; background: var(--surface); display: flex; flex-direction: column; justify-content: space-between; gap: 22px; box-shadow: inset 0 0 0 6px rgba(255,255,255,.02); }
.rv-card blockquote { margin: 0; font-size: 1.08rem; line-height: 1.6; color: var(--fg); }
.rv-card figcaption { font-weight: 700; color: var(--lantern-soft); font-size: .95rem; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.rv-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-top: clamp(28px, 3vw, 44px); }
.limestone-section.reviews-strip { background: linear-gradient(180deg, var(--limestone), var(--limestone-2)); }
.limestone-section .rv-stars-base { color: rgba(17,61,100,.2); }
.limestone-section .rv-stars-in { color: var(--accent); }
.limestone-section .rv-card figcaption { color: var(--navy); }

/* ---- fit check ---- */
.fit-section { padding: clamp(60px, 7vw, 100px) 0 clamp(70px, 8vw, 110px); }
.fit-wrap { max-width: 860px; }
.fit-progress { height: 4px; background: rgba(17,61,100,.14); margin-bottom: 14px; }
.fit-progress span { display: block; height: 100%; width: 20%; background: var(--accent); transition: width .4s var(--ease); }
.fit-step { font-weight: 700; color: var(--fg-soft); font-size: .92rem; margin-bottom: 18px; }
.fit-q { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.fit-q legend { padding: 0; margin-bottom: 22px; font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.5rem); font-weight: 500; color: var(--head); line-height: 1.12; }
.fit-opt { display: block; position: relative; margin-bottom: 12px; cursor: pointer; }
.fit-opt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.fit-opt span { display: block; padding: 18px 22px 18px 58px; border: 1.5px solid rgba(17,61,100,.28); background: rgba(255,255,255,.65); color: var(--ink); font-size: 1.05rem; line-height: 1.4; position: relative; transition: border-color .25s, background .25s, box-shadow .25s; }
.fit-opt span::before { content: ""; position: absolute; left: 20px; top: 50%; width: 20px; height: 20px; margin-top: -10px; border-radius: 50%; border: 2px solid var(--navy); background: #fff; transition: background .2s, box-shadow .2s; }
.fit-opt:hover span { border-color: var(--accent); background: #fff; }
.fit-opt input:checked + span { border-color: var(--navy); background: #fff; box-shadow: 0 0 0 1px var(--navy); }
.fit-opt input:checked + span::before { background: var(--navy); box-shadow: inset 0 0 0 4px #fff; }
.fit-opt input:focus-visible + span { outline: 3px solid var(--navy); outline-offset: 3px; }
.fit-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 8px; }
.fit-nav .btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.fit-result { padding-top: 8px; }
.fit-result h2 { font-size: clamp(1.9rem, 3.4vw, 3rem); margin-bottom: 14px; }
.fit-service { font-size: 1.12rem; }
.fit-cta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin: 28px 0 44px; }
.fit-retake { background: none; border: 0; color: var(--accent-text); font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 10px 6px; }
.fit-share { border-top: 1px solid var(--line); padding-top: 34px; max-width: 560px; }
.fit-share h3 { margin-bottom: 8px; }
.fit-foot { margin-top: 40px; font-size: .92rem; color: var(--fg-soft); }
.fit-note { padding: 16px 18px; border: 1px solid var(--line); }

/* ---- guide gate ---- */
.guide-section, .cap-section { padding: clamp(64px, 7vw, 104px) 0; }
.guide-grid { align-items: start; }
.guide-list, .cap-list { list-style: none; margin: 24px 0 26px; padding: 0; }
.guide-list li, .cap-list li { position: relative; padding: 10px 0 10px 30px; border-bottom: 1px solid var(--line-soft); color: var(--fg); }
.guide-list li::before, .cap-list li::before { content: ""; position: absolute; left: 4px; top: 1.15em; width: 10px; height: 10px; border: 2px solid var(--accent); transform: rotate(45deg); }
.guide-form { max-width: 520px; }

/* ---- printable checklist ---- */
.cl-page { padding: 150px 0 90px; }
.cl-wrap { max-width: 980px; }
.cl-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-bottom: 28px; }
.cl-back { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; color: var(--accent-text); margin-left: 6px; }
.cl-sheet { background: #fff; color: #1b2430; padding: 40px 44px 30px; border: 1px solid rgba(17,61,100,.25); box-shadow: 0 30px 60px -36px rgba(17,61,100,.45); }
.cl-head { display: flex; align-items: center; gap: 28px; padding-bottom: 20px; border-bottom: 2px solid var(--navy); margin-bottom: 22px; }
.cl-logo { width: 110px; height: auto; flex: 0 0 auto; }
.cl-head h1 { font-size: clamp(1.7rem, 3vw, 2.3rem); color: var(--navy); letter-spacing: -.02em; line-height: 1.1; margin-bottom: 8px; }
.cl-head p { margin: 0; font-size: .92rem; color: #4b5563; }
.cl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 40px; }
.cl-group h2 { font-size: 1.05rem; letter-spacing: 0; color: var(--navy); display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.cl-num { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--navy); color: #fff; font-size: .82rem; flex: 0 0 auto; }
.cl-group ul { list-style: none; margin: 0; padding: 0; }
.cl-group li { border-bottom: 1px solid #e5e7eb; }
.cl-group label { display: flex; gap: 10px; align-items: flex-start; padding: 7px 0; font-size: .93rem; line-height: 1.4; color: #1b2430; cursor: pointer; }
.cl-group input { margin-top: 3px; width: 15px; height: 15px; flex: 0 0 auto; accent-color: var(--navy); }
.cl-foot { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 22px; padding-top: 14px; border-top: 1px solid #d1d5db; font-size: .82rem; color: #4b5563; }

/* ---- capability statement ---- */
.page-checklist .site-header, .page-template-template-month-end-checklist .site-header { background: rgba(6,26,47,.96); }
.cap-dark .guide-list li, .cap-contact .form-field label { color: var(--fg); }
.cap-actions { display: flex; justify-content: flex-end; margin-bottom: 8px; }
.cap-top { align-items: start; }
.cap-ledger { margin-top: 0; }
.cap-dark { background: linear-gradient(180deg, var(--dusk), var(--night-2)); }
.cap-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.cap-card { padding: 28px 24px; border: 1px solid var(--line); background: var(--surface); display: flex; flex-direction: column; gap: 10px; }
.cap-card h3 { font-size: 1.15rem; margin: 0; }
.cap-card p { margin: 0; color: var(--fg); font-size: .98rem; line-height: 1.55; }
.cap-two { align-items: start; }
.cap-past li:first-child { border-top: 1px solid var(--line-soft); }
.naics-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; }
.naics-list li { padding: 14px 0; border-bottom: 1px solid var(--line-soft); font-weight: 700; color: var(--fg); }

@media (max-width: 980px) {
  .rv-grid, .rv-grid--2 { grid-template-columns: 1fr; }
  .cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cl-grid { gap: 18px 28px; }
}
@media (max-width: 640px) {
  .cap-grid, .naics-list { grid-template-columns: 1fr; }
  .rv-head { align-items: flex-start; }
  .rv-num { font-size: 2.1rem; }
  .rv-actions .btn, .fit-cta .btn { width: 100%; text-align: center; justify-content: center; }
  .fit-opt span { padding: 16px 16px 16px 52px; }
  .fit-opt span::before { left: 16px; }
  .fit-nav .btn { flex: 1 1 0; }
  .cl-page { padding: 120px 0 60px; }
  .cl-sheet { padding: 24px 18px 20px; }
  .cl-head { flex-direction: column; align-items: flex-start; gap: 14px; }
  .cl-grid { grid-template-columns: 1fr; }
  .cap-actions { justify-content: flex-start; }
}

/* ---- print: checklist and capability statement print as clean sheets ---- */
@media print {
  .no-print, .site-header, .site-footer, .scroll-progress, .skip-link, .page-hero, .cobrand { display: none !important; }
  html, body { background: #fff !important; color: #000 !important; }
  .cl-page, .cap-section { padding: 0 !important; background: #fff !important; }
  .cl-sheet { border: 0; box-shadow: none; padding: 0; }
  .cl-group, .cap-card { break-inside: avoid; }
  .cl-grid { gap: 12px 30px; }
  .cl-group label { padding: 4px 0; font-size: 10.5pt; }
  .cl-head h1 { font-size: 20pt; }
  .cap-section, .cap-dark { color: #000 !important; }
  .cap-dark h2, .cap-dark h3, .cap-dark p, .cap-section h2, .cap-section h3, .cap-section p, .cap-section li, .ledger-row .label, .ledger-row .figure { color: #000 !important; }
  .cap-card, .ledger { background: #fff !important; box-shadow: none !important; border-color: #999 !important; }
  .cap-grid { gap: 10px; }
  .cap-card { padding: 12px 14px; }
  @page { margin: 14mm; }
}
.preview-note { margin: 0 0 28px; padding: 10px 14px; border: 1px dashed #b4532f; background: #fff1b8; color: #5a3b00; font-size: .88rem; font-weight: 700; }
/* ==========================================================================
   v2.3.4 audit pass (Oct 26 2026): heroes and bands where the copy touched faces, the lamp or busy detail.
   Rule: copy always sits on solid navy; the photo sits beside it (desktop) or above it (tablet, phone).
   ========================================================================== */
:root { --ph-top: clamp(300px, 62vw, 440px); }
.footer-grid .footer-h { margin-top: 0; }

/* Page heroes with a photo (every page hero except About, which has its own flag layout, and the sign / arched-entry heroes that already have panel or top layouts) */
/* >= 901 px: photo = right 62 percent panel fading into navy under the copy */
@media (min-width: 901px) {
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) .ph-photo {
    left: auto; right: 0; width: 62%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%); mask-image: linear-gradient(90deg, transparent 0%, #000 34%); }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m))::before { background:
    linear-gradient(180deg, rgba(7,25,43,.55) 0%, rgba(7,25,43,0) 22%, rgba(7,25,43,0) 75%, rgba(7,25,43,.55) 100%); }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) h1 { max-width: min(15ch, 46vw); }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) .lede { max-width: min(52ch, 42vw); }
}
/* <= 900 px: photo whole across the top, copy below it on navy */
@media (max-width: 900px) {
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) { padding: calc(var(--ph-top) + 28px) 0 72px !important; align-items: flex-start; min-height: 0; }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) .ph-photo {
    inset: 0 0 auto 0; width: 100%; height: var(--ph-top);
    -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m))::before { background:
    linear-gradient(180deg, rgba(7,25,43,.45) 0%, rgba(7,25,43,0) 18%, rgba(7,25,43,0) 100%); }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) h1 { max-width: none; }
  .page-hero:not(.page-hero--about):has(.ph-photo:not(.ph-photo--top):not(.ph-photo--panel):not(.ph-photo--m)) .lede { max-width: 60ch; }
}
/* where each subject sits inside the panel / top frame */
.ph-photo[src*="desk-curtis"]  { object-position: 0% 30%; }
.ph-photo[src*="desk-katie"]   { object-position: 100% 30%; }
.ph-photo[src*="desk-erimar"]  { object-position: 100% 30%; }
.ph-photo[src*="hero-office"]  { object-position: 50% 50%; }
.ph-photo[src*="office-waiting"] { object-position: 50% 40%; }
.ph-photo[src*="hero-roundtable"] { object-position: 50% 50%; }
@media (max-width: 900px) {
  .ph-photo[src*="desk-curtis"] { object-position: 20% 30%; }
  .ph-photo[src*="desk-katie"]  { object-position: 85% 30%; }
  .ph-photo[src*="desk-erimar"] { object-position: 85% 30%; }
}

/* Arched-entry heroes (Industries, Partner): the lede stays clear of the lamp */
@media (min-width: 761px) { .page-hero:has(.ph-photo--panel) .lede { max-width: min(50ch, 36vw); } .page-hero:has(.ph-photo--panel) h1 { max-width: min(15ch, 40vw); } }

/* Chandelier closing band (Industries, Our Office): chandelier whole on the right, copy on navy at the left */
.cta-photo[src*="cta-conference-wide"] { object-position: 100% 20%; }
@media (max-width: 760px) { .cta-photo--sign[src*="cta-conference-wide"] { object-position: 80% 50%; } }
.ph-photo[src*="work-focus"] { object-position: 100% 30%; }
@media (max-width: 900px) { .ph-photo[src*="work-focus"] { object-position: 85% 30%; } }

/* Tap targets on phones and tablets: footer links, menu links, the sticky bar's close button, the checklist back link */
@media (max-width: 900px) {
  .footer-grid a { display: flex; align-items: center; min-height: 44px; }
  .footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
  .main-nav a:not(.btn) { display: flex; align-items: center; justify-content: center; min-height: 48px; }
}
.sticky-close { min-width: 44px; min-height: 44px; }
.cl-back { display: inline-block; padding: 10px 0; }

/* Industries grid: nine industry cards (3 x 3), then the "Still not sure?" card as its own full-width row */
.card.card--row { display: flex; align-items: center; justify-content: space-between; gap: 28px 40px; margin: 0 0 56px; }
.card.card--row > div { max-width: 62ch; }
.card.card--row h3 { margin-top: 0; }
.card.card--row p { margin-bottom: 0; }
.card.card--row .btn { flex: 0 0 auto; margin-top: 0 !important; }
@media (max-width: 980px) {
  /* two columns: the ninth industry card spans both so no card is left alone */
  .grid-3 > .card.card--span-2 { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .card.card--row { flex-direction: column; align-items: flex-start; }
}

/* ---- v2.3.6: official SBA SDVOSB badge (supplied artwork, shown unmodified: no recolor, no crop, native 1210:1513 ratio) ---- */
.sba-badge { display: inline-block; width: fit-content; justify-self: start; align-self: start; flex: 0 0 auto; line-height: 0; background: #fff; padding: 10px; border-radius: 12px; box-shadow: 0 1px 0 rgba(255,255,255,.4), 0 10px 24px -14px rgba(0,0,0,.55); }
.sba-badge img { display: block; width: 112px; height: auto; aspect-ratio: 1210 / 1513; max-width: none; }
.sba-badge--footer { margin-top: 18px; }
.sba-badge--home { margin: 0; }
.sba-badge--cap { margin-top: 20px; border: 1px solid rgba(17,61,100,.14); box-shadow: 0 10px 24px -16px rgba(11,39,64,.35); }
.sba-badge--about { border: 1px solid rgba(17,61,100,.14); box-shadow: 0 10px 24px -16px rgba(11,39,64,.35); }
.vet-credential .sba-badge { align-self: center; }
.vet-credential { display: flex; align-items: center; gap: 22px; margin: 18px 0 28px; flex-wrap: wrap; }
.vet-credential .vet-line { margin: 0; }
.badge-strip-row { padding-top: 44px; padding-bottom: 44px; }
@media (max-width: 760px) {
  .sba-badge { padding: 8px; border-radius: 10px; }
  .sba-badge img { width: 80px; }
  .badge-strip-row { padding-top: 36px; padding-bottom: 36px; }
}
@media print { .sba-badge { box-shadow: none; border: 1px solid #ccc; } }
