/*
Theme Name: Dan Gilroy Design 2026
Theme URI: https://www.dangilroy.com
Author: Dan Gilroy
Description: Approved 2026 redesign for Dan Gilroy Design. Distinctive graphic/editorial system in Ice, Ink, and Electric Blue with Archivo variable, a work-led homepage, structured ACF content, and no page builder.
Version: 3.0.62
Requires PHP: 8.0
Text Domain: dangilroy
*/

/* THEME 2 FOUNDATION (pruned 2026-08-02: rules whose classes no longer appear in any
   template or rendered page were removed; tokens shadowed by the Theme 3 compat :root
   below were dropped. Everything kept here still cascades under the Theme 3 system.) */
/* DESIGN TOKENS */
:root { --size-xs: .8125rem; --size-sm: .9375rem; --size-base: 1.0625rem; --size-lg: clamp(1.1rem, 1rem + .45vw, 1.3rem); --size-h3: clamp(1.25rem, 1.05rem + .8vw, 1.6rem); --size-h2: clamp(1.75rem, 1.35rem + 1.6vw, 2.5rem); --size-h1: clamp(2.1rem, 1.6rem + 2.4vw, 3.3rem); --space-2: 1rem; --space-3: 1.5rem; --space-4: 2.5rem; --space-5: 4rem; --space-6: clamp(4rem, 3rem + 4vw, 7rem); --wrap-narrow: 760px; --transition: .22s ease; --z-header: 100; }

/* RESET & BASE */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
body { margin: 0; font-family: var(--font-body); font-size: var(--size-base); line-height: 1.65; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: 1.16; color: var(--navy-900); margin: 0 0 var(--space-2); text-wrap: balance; }
h4 { color: var(--navy-900); margin: 0 0 var(--space-2); }
h1 { font-size: var(--size-h1); }
h2 { font-size: var(--size-h2); }
h3 { font-size: var(--size-h3); }
h4 { font-family: var(--font-body); font-weight: 600; font-size: var(--size-lg); }
p { margin: 0 0 var(--space-2); max-width: 72ch; }
a { color: var(--navy-700); text-decoration: underline; text-decoration-color: rgba(31,52,80,.35); text-underline-offset: 3px; transition: color var(--transition); }
a:hover { color: var(--gold-deep); }
ul, ol { padding-left: 1.3rem; margin: 0 0 var(--space-2); }
li { margin-bottom: .4rem; }
blockquote { margin: var(--space-3) 0; padding: var(--space-2) var(--space-3); border-left: 3px solid var(--gold); background: var(--paper-2); font-style: italic; }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--space-4) 0; }
:focus-visible { outline: 3px solid var(--gold-deep); outline-offset: 2px; border-radius: 2px; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--navy-900); color: var(--white); padding: .8rem 1.4rem; z-index: 999; }
.skip-link:focus { left: 0; }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }

/* LAYOUT */
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 clamp(1.1rem, 4vw, 2rem); }
.wrap-narrow { max-width: var(--wrap-narrow); margin: 0 auto; padding: 0 clamp(1.1rem, 4vw, 2rem); }
.section { padding: var(--space-6) 0; }
.section-tight { padding: var(--space-5) 0; }

.section-alt { background: var(--paper-2); }

/* EYEBROW & SECTION HEADERS */
.eyebrow { display: inline-flex; align-items: center; gap: .65rem; font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: var(--space-2); }
.eyebrow::before { content: none; } /* Dan's standing rule: no rule/dash left of eyebrow labels (overrides preview system) */

.section-header { max-width: 720px; margin-bottom: var(--space-4); }

.section-header .lede { font-size: var(--size-lg); color: var(--ink-soft); }

.section-header-row { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); flex-wrap: wrap; }
.section-header-row .section-header { margin-bottom: 0; }

/* BUTTONS */
.btn { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-body); font-size: .95rem; font-weight: 600; letter-spacing: .01em; text-decoration: none; border-radius: var(--radius); padding: .85rem 1.6rem; border: 1.5px solid transparent; cursor: pointer; transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition); }
.btn .icon { transition: transform var(--transition); }

.btn-ghost { border-color: var(--navy-800); color: var(--navy-900); background: transparent; }
.btn-ghost:hover { background: var(--navy-900); color: var(--white); }

.text-link { font-weight: 600; font-size: .95rem; color: var(--navy-800); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.text-link:hover { color: var(--gold-deep); }
.text-link:hover .icon { transform: translateX(4px); }
.text-link .icon { transition: transform var(--transition); }

/* HERO (PAGE BAND) */
.hero-page { background: linear-gradient(150deg, var(--navy-950), var(--navy-800)); color: var(--paper); padding: clamp(3rem, 2rem + 4vw, 5.5rem) 0; }
.hero-page h1 { color: var(--white); margin-bottom: var(--space-2); max-width: 18em; }
.hero-page .hero-sub { margin-bottom: 0; max-width: 44rem; }
.hero-page .hero-actions { margin-top: var(--space-3); }

/* SERVICE CARDS */
.service-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-4) var(--space-3); display: flex; flex-direction: column; gap: .6rem; transition: box-shadow var(--transition), transform var(--transition); }
.service-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); }
.service-card h3 { font-size: 1.3rem; margin-bottom: .2rem; }
.service-card p { font-size: .95rem; color: var(--ink-soft); margin-bottom: .4rem; }
.service-card .text-link { margin-top: auto; }

/* REVIEW CARDS (REVIEWS PAGE) */

.review-source { font-size: .8rem; color: var(--ink-soft); margin-top: .8rem; display: block; }

/* PROCESS STEPS */
.process-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); counter-reset: step; }
@media (max-width: 980px) { .process-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .process-steps { grid-template-columns: 1fr; } }
.process-step { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-3); }
.process-step .step-num { font-family: var(--font-display); font-size: 2.2rem; font-weight: 400; color: var(--gold); line-height: 1; display: block; margin-bottom: .8rem; }
.process-step h3 { font-size: 1.15rem; }
.process-step p { font-size: .93rem; color: var(--ink-soft); margin: 0; }

/* FAQ ACCORDION */
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }

/* FORMS / WPFORMS RESTYLE */

.dgd-form input[type="text"], .dgd-form input[type="email"], .dgd-form input[type="tel"], .dgd-form input[type="url"], .dgd-form select, .dgd-form textarea, .wpforms-container input[type="text"], .wpforms-container input[type="email"], .wpforms-container input[type="tel"], .wpforms-container input[type="url"], .wpforms-container select, .wpforms-container textarea { width: 100%; border: 1.5px solid var(--line); border-radius: var(--radius); padding: .8rem 1rem; font-family: var(--font-body); font-size: 1rem; color: var(--ink); background: var(--white); }
.wpforms-container input:focus, .wpforms-container select:focus, .wpforms-container textarea:focus { border-color: var(--navy-700); outline: 2px solid var(--gold-deep); outline-offset: 1px; }
.wpforms-container .wpforms-field-label { font-weight: 600; font-size: .92rem; color: var(--navy-900); }
.wpforms-container button[type="submit"], .wpforms-container .wpforms-page-next, .wpforms-container .wpforms-page-previous { background: var(--gold) !important; color: var(--navy-950) !important; border: 0 !important; border-radius: var(--radius) !important; font-weight: 600 !important; padding: .9rem 1.8rem !important; cursor: pointer; }
.wpforms-container button[type="submit"]:hover, .wpforms-container .wpforms-page-next:hover { background: var(--gold-soft) !important; }
.wpforms-container label.wpforms-error { color: #a4282d; font-size: .85rem; }

/* PROJECT SINGLE */

.project-pullquote { border-left: 3px solid var(--gold); padding: var(--space-2) var(--space-3); background: var(--white); border-radius: 0 var(--radius) var(--radius) 0; margin: var(--space-4) 0; }
.project-pullquote p { font-family: var(--font-display); font-size: 1.25rem; font-style: italic; color: var(--navy-900); }
.project-pullquote cite { font-style: normal; font-size: .9rem; color: var(--ink-soft); }

/* LOGO GRID */
.logo-featured-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-3); }
.logo-featured-item { margin: 0; min-width: 0; }
.logo-featured-stage { display: grid; min-height: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--white); border: 1px solid var(--line); }

.logo-featured-primary, .logo-featured-application { min-width: 0; min-height: 0; overflow: hidden; }

.logo-featured-stage img { width: 100%; height: 100%; object-fit: cover; }
.logo-featured-stage.is-wide img { object-fit: contain; }
.logo-featured-item figcaption { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, auto); align-items: start; gap: var(--space-2); margin-top: var(--space-2); }
.logo-featured-item figcaption strong { color: var(--navy-900); font-family: var(--font-display); font-size: 1.2rem; font-weight: 400; line-height: 1.25; }
.logo-featured-item figcaption span { color: var(--ink-soft); font-size: .84rem; line-height: 1.45; text-align: right; }
.logo-archive-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: var(--space-4); align-items: end; border-top: 1px solid var(--line); margin-top: var(--space-6); padding-top: var(--space-4); }
.logo-archive-header h3 { margin: 0; }
.logo-archive-header p { max-width: 58ch; margin: 0; color: var(--ink-soft); }
.logo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4) var(--space-3); margin-top: var(--space-4); }
.logo-cell { display: grid; place-items: center; aspect-ratio: 4 / 3; overflow: hidden; background: var(--white); border: 1px solid var(--line); }
.logo-cell img { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.logo-cell.is-wide img { object-fit: contain; }
.logo-page-anchor { scroll-margin-top: 118px; }
@media (max-width: 860px) { .logo-featured-grid { grid-template-columns: 1fr; } .logo-featured-item figcaption { grid-template-columns: 1fr; gap: .3rem; } .logo-featured-item figcaption span { text-align: left; } .logo-archive-header { grid-template-columns: 1fr; gap: var(--space-2); } .logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .logo-featured-grid { gap: var(--space-4); } .logo-featured-stage { aspect-ratio: 1 / 1; }    .logo-grid { gap: var(--space-3) var(--space-2); } }

/* INVESTMENT CALLOUT */
.invest-callout { text-align: center; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-5) var(--space-4); box-shadow: var(--shadow-card); }
.invest-callout .eyebrow { justify-content: center; }
.invest-figure { font-family: var(--font-display); font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); line-height: 1.3; color: var(--navy-900); max-width: 30ch; margin: 0 auto var(--space-2); }
.invest-figure strong { color: var(--gold-deep); font-weight: 400; }
.invest-callout > p { max-width: 52ch; margin-left: auto; margin-right: auto; color: var(--ink-soft); }

/* PAGINATION */
.pagination { display: flex; gap: .5rem; justify-content: center; margin-top: var(--space-5); }
.pagination .page-numbers { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .6rem; border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: var(--navy-900); font-weight: 600; font-size: .92rem; }
.pagination .page-numbers.current { background: var(--navy-900); color: var(--white); border-color: var(--navy-900); }
.pagination .page-numbers:hover { border-color: var(--navy-900); }

/* MOBILE CALL BAR */
.mobile-bar { display: none; }
@media (max-width: 760px) { body { padding-bottom: 64px; } .mobile-bar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; bottom: 0; left: 0; right: 0; z-index: var(--z-header); } .mobile-bar a { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 1.05rem .5rem; font-weight: 600; font-size: .95rem; text-decoration: none; }   }

/* REVEAL ANIMATIONS */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .5s ease; }
.js .reveal.in-view { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .reveal { opacity: 1; transform: none; } }

/* UTILITIES */

.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
.measure { max-width: 70ch; }
.visually-flush > :last-child { margin-bottom: 0; }

/* DGD2026 COMPAT TOKENS */
:root { --gold-light: var(--gold-soft); --gold-dark: #b07e2e; --text-white: #f0f0ee; --text-light: #a0b0c0; --text-muted: #6b8099; --text-secondary: #5a6a7a; --text-dark: #1a1a1a; --border-light: #e4e3e0; --border-dark: #1e3350; --bg-light: var(--paper); --max-width: var(--wrap); --navy-600: #243a5c; --navy-500: #2d4a6e; --steel: #4a6d8c; --steel-light: #6b8fad; }

.hero .eyebrow { color: var(--gold); }
.main-nav a, .nav-cta, .header-phone, .logo, .btn-primary, .btn-ghost { text-decoration: none; }

/* DGD2026 HEADER */
/* HEADER */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 0 32px; transition: all .4s; }
.site-header.scrolled { background: rgba(12,26,42,.97); backdrop-filter: blur(12px); box-shadow: 0 2px 40px rgba(0,0,0,.15); }

/* Dropdowns */

/* DGD2026 HERO */
/* HERO */
.hero { position: relative; background: var(--navy-900); overflow: hidden; padding: 80px 0 0; }
.hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 50% at 70% 30%, rgba(45,95,154,.25) 0%, transparent 60%), radial-gradient(ellipse 60% 60% at 0% 80%, rgba(74,144,217,.15) 0%, transparent 50%), radial-gradient(ellipse 40% 35% at 90% 90%, rgba(200,145,58,.07) 0%, transparent 50%); }
.hero::after { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px); background-size: 72px 72px; }

.hero-content { max-width: 560px; }
.hero .eyebrow { color: var(--gold); }
.hero h1 { font-family: var(--font-display); font-size: clamp(38px, 5vw, 54px); color: var(--text-white); line-height: 1.08; margin-bottom: 24px; }
.hero h1 span { display: block; color: var(--gold); font-size: .65em; margin-top: 6px; letter-spacing: .01em; }
.hero-sub { font-size: 17px; line-height: 1.75; color: rgba(255,255,255,.55); margin-bottom: 40px; }

/* Legacy laptop classes — kept for backward compat, hidden */

@keyframes heroFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* DGD2026 BUTTONS */
/* BUTTONS */
.btn-primary { display: inline-flex; align-items: center; gap: 8px; background: var(--gold); color: var(--navy-900); padding: 14px 32px; border-radius: 6px; font-family: var(--font-body); font-size: 15px; font-weight: 600; transition: background .2s; border: none; cursor: pointer; }
.btn-primary:hover { background: var(--gold-light); color: var(--navy-900); }
.btn-primary::after { content: '\2192'; transition: transform .3s; }
.btn-primary:hover::after { transform: translateX(4px); }
.btn-ghost { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid rgba(255,255,255,.3); color: rgba(255,255,255,.7); padding: 14px 32px; border-radius: 6px; font-family: var(--font-body); font-size: 15px; font-weight: 500; transition: all .3s; }
.btn-ghost:hover { border-color: var(--text-white); color: var(--text-white); background: rgba(255,255,255,.07); }

/* DGD2026 CLIENT */
/* CLIENT BANNER */

@keyframes scrollClients { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* RESPONSIVE: 960px */
@media (max-width: 960px) {

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* RESPONSIVE: 640px */
@media (max-width: 640px) {
  .container, .intro-inner, .portfolio-header, .portfolio-masonry, .portfolio-cta, .mid-cta, .firm-size-header, .firm-size-grid, .why-inner, .process-inner, .testimonials-inner, .insights-inner { padding-left: 20px !important; padding-right: 20px !important; }
  
  .hero h1 { font-size: 34px; }
  .hero h1 span { font-size: .7em; }
  
  
  
  
  
  
  
  
  
  
  
  .mobile-bar { display: block; }
  .site-footer { padding-bottom: 68px; }
  
  
  
}

/* CONTAINER */
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 48px; }

/* MID-PAGE CTA */
.mid-cta { text-align: center; max-width: var(--max-width); margin: 48px auto 0; padding: 0 48px; }
.mid-cta p { max-width: none; font-size: 18px; color: var(--text-secondary); margin: 0 0 12px; font-family: var(--font-display); font-style: italic; }
.mid-cta a { font-size: 15px; font-weight: 600; color: var(--gold); display: inline-flex; align-items: center; gap: 6px; transition: gap .3s, color .3s; }
.mid-cta a:hover { color: var(--gold-dark); gap: 10px; }

/* FOOTER */
.site-footer { background: var(--navy-900); padding: 0; }

.footer-social { display: flex; gap: 12px; margin-top: 24px; }
.footer-social a { width: 40px; height: 40px; border-radius: 8px; border: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.4); transition: all .3s; }
.footer-social a:hover { border-color: var(--gold); color: var(--gold); }

.footer-bottom a { color: rgba(255,255,255,.25); transition: color .3s; }
.footer-bottom a:hover { color: rgba(255,255,255,.5); }

.footer-bottom { padding: 28px 0; display: flex; align-items: center; justify-content: space-between; }
.footer-bottom p { font-size: 13px; color: rgba(255,255,255,.25); }

/* CTA SECTION */

.cta-actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }

/* Keep "More of our work" cards (preview project-card) minimal re-add */
.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: var(--max-width); margin: 0 auto; }
@media (max-width: 980px) { .project-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .project-grid { grid-template-columns: 1fr; } }
.project-card { display: block; text-decoration: none; background: var(--white); border-radius: 8px; overflow: hidden; box-shadow: var(--shadow-card); transition: box-shadow var(--transition), transform var(--transition); }
.project-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-4px); }
.project-card-media { aspect-ratio: 3 / 2.1; overflow: hidden; background: var(--paper-2); }
.project-card-media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .45s ease; }
.project-card:hover .project-card-media img { transform: scale(1.04); }
.project-card-body { padding: 1.1rem 1.3rem 1.3rem; }
.project-card-title { font-family: var(--font-display); font-size: 1.15rem; font-weight: 400; color: var(--navy-900); margin: 0 0 .15rem; }
.project-card-meta { font-size: .85rem; color: var(--ink-soft); margin: 0; }
.project-card:hover .project-card-title { color: var(--gold-deep); }
.project-grid.is-florida-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-grid.is-florida-projects .project-card.is-featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); align-items: stretch; }
.project-grid.is-florida-projects .project-card.is-featured .project-card-media { aspect-ratio: 3 / 2; }
.project-grid.is-florida-projects .project-card.is-featured .project-card-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 3vw, 3rem); }
.project-card-kicker { margin: 0 0 .65rem; font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-deep); }
.project-card-summary { margin-top: 1rem; font-size: .95rem; line-height: 1.65; color: var(--ink-soft); }
@media (max-width: 760px) { .project-grid.is-florida-projects { grid-template-columns: 1fr; } .project-grid.is-florida-projects .project-card.is-featured { grid-column: auto; display: block; } .project-grid.is-florida-projects .project-card.is-featured .project-card-media { aspect-ratio: 3 / 2.1; } .project-grid.is-florida-projects .project-card.is-featured .project-card-body { display: block; padding: 1.1rem 1.3rem 1.3rem; } }

/* MISSING 11085 TOKENS (design brief: white cards on paper ground) */
:root { --bg-white: #ffffff; --text-body: #46505e; }

/* FIXED HEADER OFFSET (interior pages have no dark hero band under the fixed header) */
body:not(.home) #main { padding-top: 80px; }

/* CONTAINER WIDE (portfolio hub scaffold) */
.container-wide { max-width: 1400px; margin: 0 auto; padding: 0 clamp(1.1rem, 4vw, 2rem); }

/* TRUST STRIP (proof hierarchy item 1; renders from the claims registry) */
.trust-strip { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem clamp(1.1rem, 2.4vw, 2rem); font-size: var(--size-xs); color: var(--ink-soft); font-variant-numeric: tabular-nums; padding: 0; list-style: none; margin: 0 0 var(--space-2); }
.trust-strip li { display: inline-flex; align-items: center; gap: .55rem; margin: 0; line-height: 1.45; }
.trust-strip li::before { content: ""; width: 12px; height: 1px; flex: 0 0 12px; background: currentColor; opacity: .52; }

/* WORK CARD (portfolio hub + related grids: 3:2 screenshot in a CSS browser frame) */

.work-card { display: block; text-decoration: none; color: inherit; }
.work-card-frame { display: block; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--white); box-shadow: var(--shadow-card); transition: transform var(--transition), box-shadow var(--transition); }
.work-card:hover .work-card-frame { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.work-card-frame::before { content: ""; display: block; height: 26px; background: var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10'%3E%3Ccircle cx='7' cy='5' r='3' fill='%23d3d0c8'/%3E%3Ccircle cx='19' cy='5' r='3' fill='%23d3d0c8'/%3E%3Ccircle cx='31' cy='5' r='3' fill='%23d3d0c8'/%3E%3C/svg%3E") 10px center no-repeat; border-bottom: 1px solid var(--line); }
.work-card img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.work-card-meta { display: block; padding: .9rem .25rem 0; }
.work-card-meta h3 { font-family: var(--font-display); font-size: 1.1rem; font-weight: 400; color: var(--navy-900); margin: 0; }
.work-card-meta p { font-size: var(--size-xs); color: var(--ink-soft); margin: .15rem 0 0; }
.work-card:hover .work-card-meta h3 { color: var(--gold-deep); }

/* PAGE FAQ (page.php details/summary accordion) */
.page-faq { margin-top: var(--space-4); }
.page-faq details.faq-item { border-bottom: 1px solid var(--line); }
.page-faq details.faq-item:first-of-type { border-top: 1px solid var(--line); }
.page-faq summary { font-weight: 600; font-size: 1.08rem; color: var(--navy-900); padding: 1.2rem 0; cursor: pointer; }
.page-faq summary:hover { color: var(--gold-deep); }
.page-faq details[open] > div { padding: 0 0 1.4rem; max-width: 70ch; }

/* CONTACT PAGE (single conversion path, report 3.8) */
.contact-section { padding-top: var(--space-5); }

.contact-line { font-weight: 600; font-size: 1.05rem; color: var(--navy-900); text-decoration: none; }
.contact-line:hover { color: var(--gold-deep); }
.next-steps { list-style: none; padding: 0; margin: 0; counter-reset: nstep; }
.next-steps li { display: grid; grid-template-columns: 32px 1fr; gap: .8rem; padding: .55rem 0; margin: 0; counter-increment: nstep; font-size: .95rem; color: var(--ink-soft); }
.next-steps li::before { content: counter(nstep, decimal-leading-zero); font-family: var(--font-display); font-size: 1.1rem; color: var(--gold); line-height: 1.35; }
.scheduler-slot { margin-top: var(--space-3); border-top: 1px solid var(--line); padding-top: var(--space-3); }
.scheduler-slot iframe { width: 100%; border: 0; border-radius: var(--radius); }
.contact-quote { border-left: 3px solid var(--gold); padding: .2rem 0 .2rem 1.1rem; margin: 0; font-size: .95rem; color: var(--ink-soft); background: none; font-style: normal; }
.contact-quote cite { display: block; margin-top: .6rem; font-style: normal; font-weight: 600; font-size: var(--size-xs); color: var(--navy-900); }
.contact-quote-source { font-weight: 400; color: var(--ink-soft); }

/* TIMELINE (ABOUT: the insider-story spine) */

.timeline-period { display: block; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: .25rem; }

/* ABOUT PAGE (story + portrait, callout, team) */
.about-story.has-portrait { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: var(--space-5); align-items: start; }
@media (max-width: 980px) { .about-story.has-portrait { grid-template-columns: 1fr; } }
.about-portrait { margin: 0; }
.about-portrait img { border-radius: var(--radius-lg); box-shadow: var(--shadow-card); width: 100%; }

.team-role { font-size: .82rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: .7rem; }

/* PROCESS DETAIL (PROCESS PAGE: expanded steps w/ durations + deliverables) */
.process-detail { display: grid; gap: var(--space-3); }
.process-phase { display: grid; grid-template-columns: 88px 1fr; gap: var(--space-3); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-4); }
@media (max-width: 640px) { .process-phase { grid-template-columns: 1fr; gap: var(--space-2); } }
.process-phase .step-num { font-family: var(--font-display); font-size: 2.6rem; color: var(--gold); line-height: 1; }
.phase-duration { display: inline-block; font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-deep); background: var(--paper-2); border-radius: 999px; padding: .28rem .85rem; margin-bottom: .8rem; }
.process-phase h3 { font-size: 1.35rem; margin-bottom: .4rem; }
.process-phase p { font-size: .98rem; color: var(--ink-soft); margin-bottom: 0; }
.phase-deliverables-label { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); margin: var(--space-3) 0 .4rem; }
.phase-checklist { margin: 0; }
.phase-checklist li { padding: .3rem 0; font-size: .95rem; color: var(--ink-soft); }
.mid-cta-flush { padding: 0; margin-top: var(--space-5); }

/* SERVICE PAGE (flagship /law-firm-website-design/ + future segment pages) */
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
@media (max-width: 980px) { .service-grid { grid-template-columns: 1fr; } }
.included-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
@media (max-width: 860px) { .included-grid { grid-template-columns: 1fr; } }
.included-item { display: grid; grid-template-columns: 30px 1fr; gap: 1rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-3); }
.included-item .icon { color: var(--gold-deep); margin-top: .2rem; }
.included-item h3 { font-size: 1.1rem; margin-bottom: .3rem; }
.included-item p { font-size: .93rem; color: var(--ink-soft); margin: 0; }
.process-more { max-width: none; text-align: center; margin: var(--space-3) 0 0; }
.service-pullquote { margin-top: var(--space-4); margin-bottom: 0; }

/* PRICING PAGE (explainer: posture callout, driver cards, quote ladder — no tiers by client decision) */

.driver-factors-label { font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); margin: .4rem 0 .2rem; }
.driver-factors { margin: 0; }
.driver-factors li { padding: .3rem 0; font-size: .93rem; color: var(--ink-soft); }

/* REVIEWS PAGE (server-rendered proof in the verifiable format; no review schema by policy) */
.review-theme { margin-top: var(--space-5); }
.review-theme:first-child { margin-top: 0; }
.review-theme-heading { font-size: 1.5rem; margin-bottom: var(--space-3); }

.review-widget { margin-top: var(--space-2); }

/* LOGO PAGE (curated identity specimens followed by the broader real-client archive) */
.logo-item { margin: 0; }
.logo-item figcaption { margin-top: .6rem; font-size: .84rem; color: var(--ink-soft); line-height: 1.4; }
.logo-item figcaption strong { display: block; color: var(--navy-900); font-weight: 600; font-size: .9rem; }

/* COMPARISON PAGE (honest 8-company list: disclosure callout, at-a-glance matrix, ranked profiles, byline CTA) */
.compare-disclosure { margin-top: var(--space-4); text-align: left; }
.compare-disclosure .eyebrow { justify-content: flex-start; }
.compare-disclosure .invest-figure { font-size: var(--size-h3); }
.compare-disclosure-text p { max-width: none; color: var(--ink-soft); font-size: .98rem; }
.compare-disclosure-text p:last-child { margin-bottom: 0; }
.compare-table-wrap { overflow-x: auto; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }
.compare-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: .93rem; }
.compare-table th { font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); text-align: left; padding: .9rem 1rem; border-bottom: 1px solid var(--line); }
.compare-table td { padding: .9rem 1rem; border-bottom: 1px solid var(--line); color: var(--ink-soft); vertical-align: top; }
.compare-table tbody tr:last-child td { border-bottom: 0; }
.compare-table td strong { color: var(--navy-900); }
.compare-table .is-dgd td { background: var(--paper-2); }
.compare-us { display: inline-block; font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-deep); background: var(--paper-2); border: 1px solid var(--line); border-radius: 999px; padding: .2rem .7rem; vertical-align: middle; margin-left: .5rem; }
.compare-list { display: grid; gap: var(--space-3); }

.compare-rank { color: var(--gold-deep); margin-right: .2rem; }
.compare-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; font-size: .9rem; color: var(--ink-soft); border-bottom: 1px solid var(--line); padding-bottom: var(--space-2); margin-bottom: var(--space-2); }
.compare-meta strong { color: var(--navy-900); font-weight: 600; }
.compare-body p { font-size: .98rem; color: var(--ink-soft); }
.compare-body p:last-child { margin-bottom: 0; }

.compare-note { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-4); }
.compare-note-text p { color: var(--ink-soft); font-size: .98rem; }
.compare-note .text-link { margin-top: .4rem; display: inline-flex; }

/* PORTFOLIO HUB (Phase 3 — filterable work archive) */
.hero-page .eyebrow { color: var(--gold-soft); }
.portfolio-hub { padding-top: var(--space-5); }

.portfolio-empty { padding: var(--space-5) 0; color: var(--ink-soft); }

.portfolio-note { max-width: var(--wrap-narrow); margin: var(--space-6) auto 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-4); }
.portfolio-note h2 { font-size: var(--size-h3); }
.portfolio-note p { font-size: .98rem; color: var(--ink-soft); }
.portfolio-note p:last-child { margin-bottom: 0; }

/* PORTFOLIO DETAIL (Phase 3 — case-study template) */
.portfolio-detail { padding-top: var(--space-4); }
.portfolio-hero { margin: 0 0 var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); }
.portfolio-hero img { width: 100%; height: auto; }
.portfolio-lead { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: var(--space-5); align-items: start; margin-bottom: var(--space-5); }
.portfolio-intro h2, .portfolio-delivered h2, .portfolio-screens-section h2, .portfolio-results h2, .portfolio-crosslinks h2, .portfolio-related h2 { font-size: var(--size-h3); }
.portfolio-facts { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-3); position: sticky; top: 96px; }
.portfolio-facts h2 { font-family: var(--font-body); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: var(--space-2); }
.portfolio-facts dl { margin: 0 0 var(--space-2); }
.portfolio-facts dl div { display: flex; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--line); font-size: var(--size-sm); }
.portfolio-facts dl div:last-child { border-bottom: 0; }
.portfolio-facts dt { flex: 0 0 5.5em; font-weight: 600; color: var(--navy-900); }
.portfolio-facts dd { margin: 0; color: var(--ink-soft); }
.portfolio-facts dd a { color: var(--gold-deep); }
.portfolio-visit { width: 100%; justify-content: center; text-align: center; }
.portfolio-delivered { margin-bottom: var(--space-5); }
.portfolio-deliverables { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .5rem var(--space-3); max-width: 56rem; }
.portfolio-deliverables li { position: relative; padding-left: 1.6rem; font-size: var(--size-sm); color: var(--ink-soft); }
.portfolio-deliverables li::before { content: '\2713'; position: absolute; left: 0; color: var(--gold-deep); font-weight: 700; }
.portfolio-screens-section { margin-bottom: var(--space-5); }
.portfolio-screens { display: grid; gap: var(--space-4); }
.portfolio-screens figure { margin: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); background: var(--white); }
.portfolio-screens img { width: 100%; height: auto; }
.portfolio-screens figcaption { padding: .7rem 1rem; font-size: var(--size-xs); color: var(--ink-soft); border-top: 1px solid var(--line); }
.portfolio-palette { display: flex; gap: .5rem; margin-bottom: var(--space-5); }
.palette-swatch { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); display: inline-block; }
.portfolio-results { margin-bottom: var(--space-5); }
.portfolio-metrics { list-style: none; margin: 0 0 var(--space-5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.portfolio-metrics li { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-2) var(--space-3); font-size: var(--size-sm); color: var(--ink-soft); }
.portfolio-metrics strong { display: block; font-family: var(--font-display); font-size: var(--size-h3); color: var(--navy-900); }
.portfolio-quote { margin: 0 0 var(--space-5); padding: var(--space-3) var(--space-4); border-left: 3px solid var(--gold); background: var(--white); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; font-size: var(--size-lg); color: var(--ink); max-width: 56rem; }
.portfolio-quote cite { display: flex; align-items: center; gap: 14px; margin-top: var(--space-2); font-style: normal; font-size: var(--size-sm); color: var(--ink-soft); }
.portfolio-quote cite .review-image-portrait { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 50%; object-fit: cover; object-position: center top; }
.portfolio-quote cite .review-image-mark { flex-shrink: 0; width: 44px; height: 44px; padding: 5px; object-fit: contain; background: var(--white); border: 1px solid var(--border); }
.portfolio-crosslinks { margin-bottom: var(--space-5); }
.portfolio-crosslinks ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem var(--space-3); }
.portfolio-crosslinks a { font-size: var(--size-sm); color: var(--navy-700); }
.portfolio-related { margin-bottom: var(--space-2); }
@media (max-width: 980px) { .portfolio-lead { grid-template-columns: 1fr; gap: var(--space-4); } .portfolio-facts { position: static; } }

/* PORTFOLIO DETAIL: featured-tier mobile pairing (re-shoot pipeline, 390x844) */
.portfolio-screen-mobile { margin: var(--space-4) auto 0; max-width: 320px; border: 1px solid var(--line); border-radius: 22px; overflow: hidden; box-shadow: var(--shadow-card); background: var(--white); }
.portfolio-screen-mobile img { width: 100%; height: auto; display: block; }
.portfolio-screen-mobile figcaption { padding: .7rem 1rem; font-size: var(--size-xs); color: var(--ink-soft); border-top: 1px solid var(--line); text-align: center; }

/* FAQ PAGES (batch 4 — /faqs/ cluster, open Q&As for the AI-answer surface) */

.faq-open-item { border-bottom: 1px solid var(--line); padding: var(--space-4) 0; }
.faq-open-item:first-child { padding-top: 0; }
.faq-open-item h2 { font-size: var(--size-h3); margin-bottom: var(--space-2); }
.faq-open-answer { color: var(--ink-soft); }
.faq-open-answer p { max-width: 66ch; }
.faq-open-answer p:last-child { margin-bottom: 0; }



/* ==========================================================================
   THEME 3 SYSTEM (formerly css/dgd3.css, consolidated 2026-08-02)
   Everything below loads after the Theme 2 foundation above, preserving the
   exact cascade order of the previous two-stylesheet setup.
   ========================================================================== */

/* ==========================================================================
   DGD 3.0 prototype — Revision 10 (Soft Letter Rotor header trial)
   Palette locked to dgd3-color-system.md. One family: Archivo variable.
   ========================================================================== */

@font-face {
  font-family: 'Archivo';
  src: url('assets/fonts/archivo-var.woff2') format('woff2');
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Archivo';
  src: url('assets/fonts/archivo-var-italic.woff2') format('woff2');
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-style: italic;
  font-display: swap;
}

:root {
  --ink: #102A3A;
  --blue: #136697;
  --teal: #2B718E;
  --char: #27323A;
  --steel: #5F666D;
  --ice: #EEF8FE;
  --mist: #DCECF4;
  --border: #738792;
  --white: #FFFFFF;
  --accent: #006FE6; /* electric blue — conversion actions ONLY; 4.75:1 w/ white text */
  --hairline: 1px solid var(--border);
  --wrap: 1360px;
  --gutter: clamp(20px, 4vw, 56px);
  --wide: 121%;   /* display width axis */
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: 'Archivo', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--char);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { display: block; max-width: 100%; height: auto; }
ul { list-style: none; }
a { color: var(--blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--ink); }

:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 1px; }
.cta-band :focus-visible, .site-footer :focus-visible { outline-color: var(--white); }

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

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--ink); color: var(--white); padding: 12px 20px; font-weight: 600;
}
.skip-link:focus { left: 0; }

/* ---------- type utilities ---------- */

h1, h2, h3 { color: var(--ink); font-weight: 640; line-height: 1.08; letter-spacing: -0.015em; }

.arrow-link {
  display: inline-block;
  font-weight: 600;
  font-size: 1rem;
  color: var(--blue);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.arrow-link::after { content: ' \2192'; }
.arrow-link:hover { color: var(--ink); }

.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 30px;
  font-family: inherit; font-size: 1rem; font-weight: 640; letter-spacing: 0.01em;
  text-decoration: none; border: none; cursor: pointer; border-radius: 2px; white-space: nowrap;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.btn-primary { background: var(--accent); color: var(--white); }
.btn-primary:hover { background: var(--ink); color: var(--white); }
.btn-invert { background: var(--white); color: var(--ink); }
.btn-invert:hover { background: var(--ice); color: var(--ink); }
.btn-ghost { background: none; border: 1px solid var(--ink); color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: var(--white); }

/* section head rows: hairline above, title left / note right */
.rule-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 24px;
  border-top: var(--hairline);
  padding-top: 14px;
}
.rule-row-title {
  font-size: 0.9375rem; font-weight: 680; letter-spacing: 0.09em; text-transform: uppercase;
  font-stretch: 112%; color: var(--ink); line-height: 1.4;
}
.rule-row-note { font-size: 0.9375rem; color: var(--steel); }
.rule-row-note a { color: var(--blue); }

@media (max-width: 600px) {
  .rule-row { flex-direction: column; gap: 4px; }
}

/* ---------- header ---------- */

.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--white);
  border-bottom: var(--hairline);
}
.header-row { display: flex; align-items: center; gap: 24px; height: 78px; }

.wordmark {
  font-size: 1.1875rem; font-weight: 780; font-stretch: var(--wide);
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ink); text-decoration: none; white-space: nowrap;
}
.wordmark span { color: var(--blue); }
.wordmark:hover { color: var(--ink); }

.site-nav { align-self: stretch; display: flex; align-items: center; margin-left: auto; }
.nav-panel,
.nav-panel > ul { height: 100%; }
.nav-panel ul { display: flex; gap: 24px; align-items: center; margin: 0; padding: 0; }
.nav-panel li { margin: 0; }
.nav-panel > ul > li { position: relative; display: flex; align-items: center; height: 100%; }
.nav-panel a {
  font-size: 0.9375rem; font-weight: 560; color: var(--char); text-decoration: none;
}
.nav-panel > ul > li > a {
  display: inline-flex; align-items: center; gap: 7px;
  min-height: 44px; padding: 0 2px;
}
.nav-panel a:hover { color: var(--blue); }
.nav-panel .current-menu-item > a,
.nav-panel .current-menu-ancestor > a { color: var(--blue); }
.nav-panel .menu-item-has-children > a::after {
  content: ""; width: 6px; height: 6px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}
.nav-panel .submenu-toggle { display: none; }
.nav-panel .sub-menu {
  position: absolute; left: -18px; top: calc(100% + 1px); z-index: 5;
  display: flex; flex-direction: column; align-items: stretch; gap: 0;
  width: max-content; min-width: 270px; max-width: 340px;
  padding: 12px 0;
  background: var(--white); border: var(--hairline); border-top: 2px solid var(--blue);
  box-shadow: 0 18px 34px rgba(16, 42, 58, 0.13);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity 0.16s ease, visibility 0.16s ease, transform 0.16s ease;
}
.nav-panel .sub-menu a {
  display: block; padding: 10px 18px;
  color: var(--char); line-height: 1.35; white-space: normal;
}
.nav-panel .sub-menu a:hover,
.nav-panel .sub-menu a:focus-visible { color: var(--blue); background: var(--ice); }
.nav-panel li:hover > .sub-menu,
.nav-panel li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }

.nav-toggle {
  display: none;
  min-height: 44px; padding: 0 14px;
  font-family: inherit; font-size: 0.9375rem; font-weight: 640;
  background: none; border: var(--hairline); border-radius: 2px; color: var(--ink); cursor: pointer;
}

/* drawer search: mobile only, lives inside the nav panel */
.nav-search-form { display: none; }

.header-search-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; flex: 0 0 44px;
  padding: 0; color: var(--ink); background: transparent; border: 0; cursor: pointer;
}
.header-search-toggle svg { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; }
.header-search-toggle:hover,
.header-search-toggle[aria-expanded="true"] { color: var(--blue); background: var(--ice); }
.header-cta { height: 44px; min-height: 44px; padding: 0 22px; font-size: 0.9375rem; }
.site-search-panel {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 4;
  background: var(--white); border-bottom: var(--hairline);
  box-shadow: 0 18px 34px rgba(16, 42, 58, 0.1);
}
.site-search-panel[hidden] { display: none; }
.header-search-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding-top: 18px; padding-bottom: 18px; }
.header-search-form input {
  width: 100%; height: 48px; padding: 0 16px;
  font: inherit; color: var(--ink); background: var(--white); border: var(--hairline); border-radius: 2px;
}
.header-search-form input::placeholder { color: var(--steel); opacity: 1; }
.header-search-form .btn { min-height: 48px; }

@media (max-width: 960px) {
  .header-row { gap: 14px; }
  .nav-toggle { display: inline-flex; align-items: center; }
  .site-nav { position: static; }
  .nav-panel {
    display: none;
    position: absolute; left: 0; right: 0; top: 78px;
    background: var(--white); border-bottom: var(--hairline);
    box-shadow: 0 24px 34px rgba(16, 42, 58, 0.14);
    max-height: calc(100vh - 78px); overflow-y: auto;
    padding: 10px var(--gutter) 24px;
  }
  .nav-panel.open { display: block; }
  .nav-panel,
  .nav-panel > ul { height: auto; }
  .nav-panel ul { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-panel > ul > li { display: block; height: auto; }
  .nav-panel > ul > li > a { display: flex; min-height: 0; padding: 13px 0; font-size: 1.0625rem; border-bottom: 1px solid var(--mist); }
  .nav-panel .menu-item-has-children > a::after { content: none; }
  .nav-panel > ul > li.menu-item-has-children { display: grid; grid-template-columns: minmax(0, 1fr) 48px; align-items: stretch; }
  .nav-panel .menu-item-has-children > .submenu-toggle {
    display: flex; align-items: center; justify-content: center;
    grid-column: 2;
    padding: 0; background: none; cursor: pointer;
    border: 0; border-bottom: 1px solid var(--mist); border-left: 1px solid var(--mist);
    color: var(--ink);
  }
  .nav-panel .submenu-toggle::before {
    content: ""; width: 7px; height: 7px;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg); transition: transform 0.16s ease;
  }
  .nav-panel .menu-item-has-children.open > .submenu-toggle::before { transform: rotate(225deg); }
  .nav-panel .menu-item-has-children > .sub-menu { grid-column: 1 / -1; }
  .nav-accordion .menu-item-has-children > .sub-menu { display: none; }
  .nav-accordion .menu-item-has-children.open > .sub-menu { display: flex; }
  .nav-panel .sub-menu {
    position: static; display: flex; width: auto; min-width: 0; max-width: none;
    padding: 4px 0 12px 18px;
    border: 0; border-bottom: 1px solid var(--mist); box-shadow: none;
    opacity: 1; visibility: visible; transform: none; transition: none;
  }
  .nav-panel .sub-menu a { padding: 8px 0; font-size: 0.9375rem; }
  .nav-panel .sub-menu a:hover,
  .nav-panel .sub-menu a:focus-visible { background: transparent; }
  .header-search-toggle { display: none; }
  .wordmark { margin-right: auto; }
  .site-nav { margin-left: 0; order: 3; }
  .nav-search-form {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px;
    padding: 16px 0 8px;
  }
  .nav-search-form input {
    width: 100%; height: 46px; padding: 0 14px;
    font: inherit; color: var(--ink); background: var(--white); border: var(--hairline); border-radius: 2px;
  }
  .nav-search-form input::placeholder { color: var(--steel); opacity: 1; }
  .nav-search-form .btn { min-height: 46px; padding: 0 20px; }
}

@media (max-width: 600px) {
  .header-cta { display: none; }
  .wordmark { font-size: 1rem; }
  body { padding-bottom: 58px; }
  .nav-panel { max-height: calc(100vh - 76px - 58px); }
  .header-search-form { grid-template-columns: 1fr; }
  .header-search-form .btn { width: 100%; }
}

/* fixed bottom action bar (small screens only) */
.mobile-bar { display: none; }
@media (max-width: 600px) {
  .mobile-bar {
    display: grid; grid-template-columns: 1fr;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 110;
  }
  .mobile-bar a {
    display: flex; align-items: center; justify-content: center;
    min-height: 58px; padding: 0 10px;
    font-size: 1.0625rem; font-weight: 640; text-decoration: none; white-space: nowrap;
    background: var(--ink); color: var(--white);
  }
  .mobile-bar .mobile-bar-quote { background: var(--accent); }
  .mobile-bar a:focus-visible { outline-color: var(--white); outline-offset: -4px; }
}

/* ---------- search ---------- */

.search-page { padding: clamp(64px, 8vw, 112px) 0; }
.search-page-inner { max-width: 1040px; }
.search-page-form { padding-bottom: clamp(42px, 6vw, 72px); border-bottom: var(--hairline); }
.search-page-form label {
  display: block; margin-bottom: 10px;
  color: var(--ink); font-size: 0.9375rem; font-weight: 650;
}
.search-page-form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
.search-page-form input {
  width: 100%; min-height: 52px; padding: 0 16px;
  font: inherit; color: var(--ink); border: var(--hairline); border-radius: 2px; background: var(--white);
}
.search-result-count { margin: 28px 0 0; color: var(--steel); font-size: 0.9375rem; }
.search-results { list-style: none; margin: 0; padding: 0; }
.search-results li { padding: clamp(28px, 4vw, 44px) 0; border-bottom: var(--hairline); }
.search-result-type {
  margin: 0 0 8px;
  color: var(--blue); font-size: 0.75rem; font-weight: 680; letter-spacing: 0.08em; text-transform: uppercase;
}
.search-results h2 { margin: 0; font-size: clamp(1.35rem, 2.5vw, 2rem); }
.search-results h2 a { color: var(--ink); text-decoration: none; }
.search-results h2 a:hover { color: var(--blue); }
.search-results li > p:last-child { max-width: 54em; margin: 12px 0 0; color: var(--steel); }
.search-empty { padding: clamp(42px, 6vw, 72px) 0; }
.search-empty h2 { margin-bottom: 12px; font-size: clamp(1.5rem, 3vw, 2.25rem); }
.search-empty p { max-width: 42em; }
.search-page .navigation.pagination { margin-top: 36px; }

@media (max-width: 600px) {
  .search-page-form > div { grid-template-columns: 1fr; }
  .search-page-form .btn { width: 100%; }
}

/* ---------- hero ---------- */

.hero { background: var(--ice); padding-top: clamp(56px, 7vw, 104px); }

.hero-title {
  font-size: clamp(2.5rem, 6.4vw, 5.85rem);
  font-stretch: var(--wide);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin-bottom: clamp(32px, 4.5vw, 64px);
}

.hero-cols {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: clamp(32px, 5vw, 96px);
  align-items: start;
  padding-bottom: clamp(56px, 6.5vw, 100px);
}
.hero-lead { display: flex; flex-direction: column; gap: clamp(28px, 3.5vw, 44px); }
.hero-dek { font-size: clamp(1.125rem, 1.55vw, 1.375rem); line-height: 1.6; color: var(--char); max-width: 34em; }

.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }

.fact-row {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 36px;
  max-width: 640px;
}
.fact {
  display: flex; flex-direction: column-reverse;
  border-top: var(--hairline);
  padding-top: 12px;
}
.fact dd { font-size: clamp(1.75rem, 2.4vw, 2.375rem); font-weight: 730; font-stretch: 112%; color: var(--ink); line-height: 1.1; }
.fact dt { font-size: 0.875rem; font-weight: 560; letter-spacing: 0.03em; color: var(--steel); order: 2; margin-top: 4px; }
.fact dt a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.fact dt a:hover { color: var(--blue); }

@media (max-width: 860px) {
  .hero-cols { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 480px) {
  .fact-row { grid-template-columns: 1fr 1fr; gap: 18px 18px; }
  .fact dd { font-size: 1.625rem; }
  .hero-actions .btn { flex: 1 1 auto; }
}

/* ---------- case studies ---------- */

.case-section { padding: clamp(56px, 8vw, 120px) 0; }
#work { padding-top: clamp(24px, 3vw, 44px); }
.case-section .rule-row { margin-bottom: clamp(28px, 4vw, 56px); }
.case-continuation { margin-top: clamp(64px, 9vw, 136px); }

.shot {
  position: relative;
  background: var(--mist);
  border: 1px solid var(--border);
}
.shot img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: top; }

.shot-phone {
  display: block;
  position: absolute;
  right: clamp(20px, 4vw, 72px); bottom: clamp(20px, 4vw, 72px);
  width: clamp(110px, 13vw, 190px);
  border: 1px solid var(--border);
  background: var(--white);
}
.shot-phone img { aspect-ratio: 390 / 844; object-fit: cover; object-position: top; }
.case-split .shot-phone { right: clamp(16px, 2vw, 32px); bottom: clamp(16px, 2vw, 32px); width: clamp(100px, 9vw, 150px); }

.case-split {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(28px, 4.5vw, 88px);
  align-items: start;
}
.case-split-rev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.case-split-rev .case-media { order: -1; }

.case-kicker { display: flex; flex-direction: column; gap: 2px; font-size: 0.9375rem; color: var(--steel); }
.case-kicker strong { color: var(--ink); font-weight: 680; font-size: 1.0625rem; letter-spacing: -0.005em; }

.case-title {
  font-size: clamp(1.6875rem, 2.7vw, 2.625rem);
  font-stretch: 112%; font-weight: 680;
  letter-spacing: -0.018em; line-height: 1.06;
  margin: 14px 0 18px;
}

.case-text { line-height: 1.65; max-width: 36em; margin-bottom: 20px; }

.case-scope, .case-outcome {
  border-top: var(--hairline);
  padding-top: 10px; margin-bottom: 18px;
  font-size: 0.9375rem; color: var(--char); line-height: 1.5;
  max-width: 36em;
}
.case-scope span, .case-outcome span {
  display: block;
  font-size: 0.875rem; font-weight: 640; letter-spacing: 0.08em; text-transform: uppercase;
  font-stretch: 112%; color: var(--steel);
  margin-bottom: 2px;
}

.case-quote { border-left: 2px solid var(--blue); padding-left: 20px; margin-bottom: 20px; max-width: 36em; }
.case-quote p { line-height: 1.6; color: var(--char); }
.case-quote footer { margin-top: 8px; font-size: 0.9375rem; color: var(--steel); }

.case-full .case-media { margin-bottom: clamp(20px, 3vw, 40px); }
.case-cols {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: clamp(24px, 4vw, 80px);
  align-items: start;
}

@media (max-width: 860px) {
  .case-split, .case-split-rev { grid-template-columns: 1fr; gap: 20px; }
  .case-split .case-media, .case-split-rev .case-media { order: -1; }
  .case-cols { grid-template-columns: 1fr; gap: 12px; }
  .case-title { margin-top: 10px; }
}
@media (max-width: 700px) {
  .shot-phone { display: none; }
}

/* ---------- team / legal-industry advantage ---------- */

.team { background: var(--ice); padding: clamp(56px, 8vw, 120px) 0; }
.team-cols {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(32px, 5vw, 96px); align-items: center;
}
.team-photo img { width: 100%; max-width: 420px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 82%; border: 1px solid var(--border); }
.team-text h2 { font-size: clamp(1.875rem, 3.1vw, 2.875rem); font-stretch: 112%; letter-spacing: -0.018em; line-height: 1.08; margin-bottom: 22px; max-width: 15em; }
.team-text p { max-width: 36em; margin-bottom: 16px; }
.team-links { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 10px; }

@media (max-width: 860px) {
  .team-cols { grid-template-columns: 1fr; gap: 28px; }
  .team-photo img { max-width: 340px; }
}

/* ---------- what an engagement includes ---------- */

.engage { padding: clamp(48px, 6vw, 88px) 0 0; }
.engage .rule-row { margin-bottom: clamp(24px, 3.5vw, 44px); }
.engage-list { border-bottom: var(--hairline); margin-bottom: 26px; }
.engage-row {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: clamp(16px, 4vw, 72px);
  padding: clamp(18px, 2.5vw, 28px) 8px;
  border-top: var(--hairline);
}
.engage-row dt {
  font-size: clamp(1.1875rem, 1.8vw, 1.5rem); font-weight: 680; font-stretch: 112%;
  color: var(--ink); letter-spacing: -0.012em; line-height: 1.2;
}
.engage-row dd { color: var(--char); font-size: 1.0625rem; line-height: 1.6; max-width: 36em; }

@media (max-width: 780px) {
  .engage-row { grid-template-columns: 1fr; gap: 4px; }
}

/* ---------- more selected work ---------- */

.more-work { padding: clamp(56px, 8vw, 120px) 0; }
.more-work .rule-row { margin-bottom: clamp(20px, 2.5vw, 36px); }

.mini-list { border-top: var(--hairline); padding: 0; }
.mini { border-bottom: var(--hairline); }
.mini a {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr) minmax(0, 220px);
  gap: clamp(16px, 3vw, 44px);
  align-items: center;
  padding: 14px 8px;
  text-decoration: none;
  transition: background-color 0.12s ease;
}
.mini a:hover, .mini a:focus-visible { background: var(--ice); }
.mini-thumb { width: 132px; aspect-ratio: 3 / 2; object-fit: cover; object-position: top; border: 1px solid var(--border); }
.mini-firm { display: block; font-weight: 660; color: var(--ink); font-size: 1.0625rem; letter-spacing: -0.005em; }
.mini a:hover .mini-firm { color: var(--blue); }
.mini-desc { display: block; font-size: 0.9375rem; color: var(--steel); line-height: 1.5; max-width: 46em; margin-top: 2px; }
.mini-meta { font-size: 0.9375rem; color: var(--steel); text-align: right; line-height: 1.45; }

@media (max-width: 860px) {
  .mini a { grid-template-columns: 96px minmax(0, 1fr); gap: 14px 18px; align-items: start; padding: 16px 4px; }
  .mini-thumb { width: 96px; }
  .mini-meta { grid-column: 2; text-align: left; font-size: 0.875rem; margin-top: 4px; }
}

.invite { margin-top: clamp(40px, 5vw, 72px); }
.invite-line {
  font-size: clamp(1.5rem, 2.8vw, 2.375rem); font-weight: 680; font-stretch: 112%;
  letter-spacing: -0.015em; color: var(--ink); line-height: 1.1;
  margin-bottom: 12px;
}
.invite-text { color: var(--char); max-width: 46em; margin-bottom: 18px; }
.invite-link { font-size: 1.0625rem; }

/* ---------- proof / outcomes ---------- */

.outcomes { background: var(--ice); padding: clamp(56px, 8vw, 120px) 0; }
.outcomes .rule-row { margin-bottom: clamp(32px, 4.5vw, 56px); }

.outcome-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 5vw, 72px) clamp(32px, 5vw, 88px);
  align-items: start;
}
.outcome-lead {
  font-size: clamp(1.25rem, 1.8vw, 1.625rem);
  font-weight: 660; line-height: 1.3; letter-spacing: -0.012em;
  color: var(--ink);
  margin-bottom: 18px;
  max-width: 22em;
}
.outcome-quote { border-left: 2px solid var(--blue); padding-left: 20px; margin-bottom: 16px; }
.outcome-quote p { font-size: 1.0625rem; line-height: 1.6; color: var(--char); }
.outcome-source { font-size: 0.9375rem; color: var(--steel); margin-bottom: 14px; }
.outcome-source strong { color: var(--char); font-weight: 640; }
.outcome-grid .outcome:last-child:nth-child(odd) { grid-column: 1 / -1; }
.outcome-grid .outcome:last-child:nth-child(odd) .outcome-lead { max-width: 32em; }
.outcome-grid .outcome:last-child:nth-child(odd) .outcome-quote { max-width: 46em; }

@media (max-width: 780px) {
  .outcome-grid { grid-template-columns: 1fr; gap: 44px; }
  .outcome-grid .outcome:last-child:nth-child(odd) { grid-column: auto; }
}

/* ---------- candor ledger ---------- */

.candor { padding: clamp(56px, 8vw, 120px) 0 clamp(40px, 6vw, 88px); }
.candor .rule-row-title { border-top: var(--hairline); display: block; padding-top: 14px; margin-bottom: clamp(28px, 4vw, 48px); }

.ledger-row {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) auto;
  gap: clamp(20px, 4vw, 72px); align-items: center;
  padding: clamp(22px, 3vw, 36px) 8px;
  border-top: var(--hairline);
  text-decoration: none;
  transition: background-color 0.12s ease;
}
.ledger-row:last-child { border-bottom: var(--hairline); }
.ledger-row:hover, .ledger-row:focus-visible { background: var(--ice); }
.ledger-title {
  font-size: clamp(1.375rem, 2.4vw, 2rem); font-weight: 680; font-stretch: 112%;
  color: var(--ink); line-height: 1.15; letter-spacing: -0.015em;
}
.ledger-row:hover .ledger-title { color: var(--blue); }
.ledger-desc { font-size: 1rem; color: var(--steel); line-height: 1.55; }
.ledger-arrow { font-size: 1.75rem; color: var(--blue); line-height: 1; }

@media (max-width: 780px) {
  .ledger-row { grid-template-columns: 1fr auto; }
  .ledger-desc { grid-column: 1 / -1; }
}

/* ---------- FAQ ---------- */

.faq { padding: clamp(24px, 3vw, 48px) 0 clamp(64px, 9vw, 136px); }
.faq .rule-row { margin-bottom: clamp(24px, 3.5vw, 44px); }
.faq-list .engage-row dt { font-size: clamp(1.125rem, 1.5vw, 1.3125rem); }

/* ---------- CTA band ---------- */

.cta-band { background: var(--ink); color: var(--white); padding: clamp(64px, 9vw, 128px) 0; }
.cta-cols {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: clamp(32px, 5vw, 96px); align-items: center;
}
.cta-band h2 {
  color: var(--white);
  font-size: clamp(2.5rem, 5.5vw, 4.75rem);
  font-stretch: var(--wide); font-weight: 700; letter-spacing: -0.02em; line-height: 0.98;
  margin-bottom: 18px;
}
.cta-band p { font-size: clamp(1.0625rem, 1.4vw, 1.25rem); max-width: 32em; color: var(--white); }
.cta-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
@media (max-width: 860px) { .cta-cols { grid-template-columns: 1fr; gap: 28px; } }

/* ---------- footer ---------- */

.site-footer { background: var(--ink); color: var(--white); border-top: 1px solid rgba(255, 255, 255, 0.22); padding: clamp(50px, 6vw, 88px) 0 clamp(30px, 4vw, 48px); }
.footer-main { display: grid; grid-template-columns: minmax(190px, 2fr) minmax(0, 9fr); gap: clamp(40px, 6vw, 100px); padding-bottom: clamp(36px, 5vw, 64px); border-bottom: 1px solid rgba(255, 255, 255, 0.22); }
.footer-intro { align-self: start; }
.footer-mark { display: block; width: min(320px, 100%); height: auto; }
.footer-tagline { max-width: 17em; margin: 22px 0 18px; color: var(--mist); font-size: 0.9rem; line-height: 1.55; }
.footer-phone { color: var(--white); text-decoration: none; font-size: 0.9375rem; font-weight: 640; }
.footer-phone:hover { color: var(--mist); text-decoration: underline; text-underline-offset: 3px; }
.footer-groups { display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)) minmax(220px, 1.55fr); gap: clamp(28px, 4vw, 58px); }
.footer-group-title { margin-bottom: 15px; color: var(--mist); font-size: 0.72rem; font-weight: 720; letter-spacing: 0.13em; text-transform: uppercase; }
.footer-group ul, .footer-social { list-style: none; }
.footer-group li + li { margin-top: 8px; }
.footer-group a { display: inline-block; color: var(--white); font-size: 0.88rem; line-height: 1.4; text-decoration: none; }
.footer-group a:hover { color: var(--mist); text-decoration: underline; text-underline-offset: 3px; }
.footer-latest a { line-height: 1.45; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 16px 40px; padding-top: clamp(22px, 3vw, 30px); }
.footer-legal { font-size: 0.8125rem; color: var(--mist); }
.footer-legal a, .footer-social a { color: var(--white); }
.footer-legal a:hover, .footer-social a:hover { color: var(--mist); }
.footer-social { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.footer-social a { font-size: 0.8125rem; text-decoration: none; }
.footer-social a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- capture mode (screenshot tooling only) ---------- */

body.capture .site-header { position: static; }
body.capture .mobile-bar { display: none; }
body.capture .reveal { opacity: 1; transform: none; transition: none; }

/* ---------- reveals ---------- */

.reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.55s ease, transform 0.55s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ========================================================================== 
   REVISION 10 — final identity, simplified hierarchy, integrated
   services, image-led work, and a materially reduced rule-line system.
   ========================================================================== */

/* ---------- shared section hierarchy ---------- */

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(260px, 4fr);
  gap: clamp(28px, 5vw, 88px);
  align-items: end;
  margin-bottom: clamp(36px, 5vw, 72px);
}
.section-heading h2 {
  max-width: 13em;
  color: var(--ink);
  font-size: clamp(2rem, 4.2vw, 3.875rem);
  font-stretch: var(--wide);
  font-weight: 690;
  letter-spacing: -0.025em;
  line-height: 0.99;
}
.section-heading > p {
  max-width: 34em;
  color: var(--steel);
  font-size: clamp(1rem, 1.25vw, 1.125rem);
  line-height: 1.6;
}
.rule-row { border-top: 0; padding-top: 0; }

/* ---------- approved identity · outlined production artwork ---------- */

.header-row { height: 84px; }
.wordmark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  line-height: 1;
  text-decoration: none;
}
.wordmark img {
  display: block;
}
.wordmark-symbol {
  width: auto;
  height: 19.5px;
  flex: 0 0 auto;
}
.wordmark-name {
  width: 300px;
  height: auto;
}
.wordmark:hover img { opacity: 0.78; }
@media (max-width: 960px) {
  .wordmark { gap: 8px; }
  .wordmark-symbol { height: 15.65px; }
  .wordmark-name { width: 240px; }
}

/* ---------- hero with hedcut portrait ---------- */

.hero {
  position: relative;
  overflow: hidden;
  min-height: clamp(600px, 45vw, 730px);
  padding: 0;
  background: var(--ice);
}
.hero-stage {
  position: relative;
  display: flex;
  align-items: center;
  min-height: inherit;
}
.hero-content {
  position: relative;
  z-index: 2;
  width: min(61%, 760px);
  padding: clamp(68px, 8vw, 116px) 0 clamp(72px, 8vw, 112px);
}
.hero-title {
  max-width: 8.6em;
  margin: 0 0 clamp(28px, 3.5vw, 48px);
  color: var(--ink);
  font-size: clamp(3.25rem, 7.4vw, 6.85rem);
  font-stretch: var(--wide);
  font-weight: 710;
  letter-spacing: -0.04em;
  line-height: 0.86;
}
.hero-dek {
  max-width: 38em;
  color: var(--char);
  font-size: clamp(1.125rem, 1.55vw, 1.375rem);
  line-height: 1.58;
}
.hero-actions { margin-top: clamp(30px, 4vw, 46px); }
.hero-portrait {
  position: absolute;
  z-index: 1;
  right: clamp(-150px, -7vw, -76px);
  bottom: -7%;
  height: 116%;
  pointer-events: none;
}
.hero-portrait img {
  width: auto;
  max-width: none;
  height: 100%;
  opacity: 0.7;
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.65) 15%, #000 32%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.65) 15%, #000 32%, #000 100%);
}

/* ---------- proof band: no rule lines ---------- */

.proof-band { background: var(--ink); color: var(--white); padding: clamp(24px, 3vw, 38px) 0; }
.proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(22px, 4vw, 64px); }
.proof-item { display: flex; flex-direction: column-reverse; }
.proof-item dd {
  margin-bottom: 5px;
  color: var(--white);
  font-size: clamp(2rem, 3vw, 3rem);
  font-stretch: 112%;
  font-weight: 740;
  letter-spacing: -0.02em;
  line-height: 1;
}
.proof-item dt { color: var(--mist); font-size: 0.875rem; font-weight: 540; line-height: 1.4; }
.proof-reviews { display: grid; grid-template-areas: "number" "label" "link"; }
.proof-reviews dd { grid-area: number; }
.proof-reviews dt { grid-area: label; }
.proof-reviews a {
  grid-area: link;
  width: fit-content;
  margin-top: 7px;
  color: var(--white);
  font-size: 0.8125rem;
  font-weight: 620;
  text-decoration: none;
}
.proof-reviews a:hover { color: var(--mist); }

/* ---------- integrated services ---------- */

.capabilities { padding: clamp(72px, 9vw, 136px) 0; }
.capabilities-heading { margin-bottom: clamp(38px, 5vw, 68px); }
.capability-layout {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  min-height: 620px;
}
.capability-primary,
.capability-item {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  color: var(--ink);
  text-decoration: none;
}
.capability-primary {
  justify-content: flex-end;
  padding: clamp(34px, 5vw, 68px);
  background: var(--ink);
  color: var(--white);
}
.capability-primary:hover { color: var(--white); background: #18394c; }
.capability-eyebrow {
  margin-bottom: auto;
  color: var(--mist);
  font-size: 0.75rem;
  font-weight: 720;
  font-stretch: 112%;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.capability-support { display: grid; grid-template-columns: 1fr 1fr; }
.capability-item { justify-content: center; min-height: 310px; padding: clamp(28px, 3.6vw, 48px); background: var(--ice); }
.capability-item-tint { background: var(--mist); }
.capability-item:hover { color: var(--ink); background: #cae6f3; }
.capability-title {
  display: block;
  max-width: 14em;
  margin-top: 0;
  font-size: clamp(1.45rem, 2.25vw, 2.25rem);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.02em;
  line-height: 1.06;
}
.capability-primary .capability-title {
  max-width: 100%;
  font-size: clamp(2.25rem, 3.1vw, 3.55rem);
  line-height: 0.98;
  text-wrap: balance;
}
.capability-copy { display: block; max-width: 31em; margin-top: 18px; color: var(--char); font-size: 0.9875rem; line-height: 1.55; }
.capability-primary .capability-copy { max-width: 27em; color: var(--mist); font-size: 1.0625rem; }
.capability-link { display: block; width: fit-content; margin-top: 24px; font-size: 0.9rem; font-weight: 660; }
.capability-primary .capability-link { color: var(--white); }
.capability-note {
  max-width: 60em;
  margin: 24px 0 0 auto;
  color: var(--steel);
  font-size: 0.9375rem;
  text-align: right;
}

/* ---------- image-led selected work ---------- */

.selected-work { padding: clamp(72px, 9vw, 140px) 0; background: #f8fbfd; }
.work-heading > p { max-width: 30em; }
.work-image { position: relative; display: block; overflow: hidden; background: var(--mist); text-decoration: none; }
.work-image > img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: top;
  transition: transform 0.4s ease;
}
.work-image:hover > img { transform: scale(1.012); }
.work-image-lead > img { aspect-ratio: 16 / 8.5; }
.work-lead-copy {
  display: block;
  margin-top: clamp(28px, 4vw, 48px);
}
.work-lead-row {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(28px, 5vw, 88px);
  align-items: start;
  margin-top: 14px;
}
.work-lead-summary { color: var(--char); line-height: 1.62; }
.work-client { display: flex; flex-direction: column; gap: 2px; color: var(--steel); font-size: 0.9rem; line-height: 1.45; }
.work-client strong { color: var(--ink); font-size: 1.05rem; font-weight: 690; }
.work-lead h3,
.work-card h3 {
  color: var(--ink);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.025em;
}
.work-lead h3 { max-width: 13em; margin: 0; font-size: clamp(2.15rem, 4vw, 3.75rem); line-height: 0.99; }
.work-summary { color: var(--char); line-height: 1.62; }
.work-scope {
  margin: 20px 0;
  color: var(--steel);
  font-size: 0.9rem;
  line-height: 1.5;
}
.work-scope span { margin-right: 10px; color: var(--ink); font-size: 0.78rem; font-weight: 720; letter-spacing: 0.1em; text-transform: uppercase; }
.work-pair { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); margin-top: clamp(72px, 9vw, 132px); }
.work-card { display: grid; grid-template-rows: auto 1fr; border: 1px solid #d5e3ea; background: var(--white); }
.work-card-body { display: flex; flex-direction: column; padding: clamp(28px, 4vw, 48px); }
.work-card h3 { max-width: 15em; margin: 16px 0 18px; font-size: clamp(1.75rem, 2.75vw, 2.65rem); line-height: 1.02; }
.work-card .work-summary { margin-bottom: 0; }
.work-card .work-scope { margin-top: 20px; }
.work-card .arrow-link { margin-top: auto; align-self: flex-start; }
.work-phone {
  position: absolute;
  right: 4%;
  bottom: 5%;
  width: 21%;
  background: var(--white);
  border: 1px solid rgba(16, 42, 58, 0.28);
}
.work-phone img { width: 100%; aspect-ratio: 390 / 844; object-fit: cover; object-position: top; }

/* ---------- compact measured evidence ---------- */

.home-evidence { margin-top: clamp(40px, 5vw, 64px); padding: clamp(30px, 4vw, 46px) 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.home-evidence-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(240px, 4fr); gap: clamp(36px, 6vw, 92px); align-items: start; }
.home-evidence-copy h2 { max-width: 14em; margin: 0; color: var(--ink); font-size: clamp(1.85rem, 3.2vw, 3.2rem); font-stretch: var(--wide); letter-spacing: -0.025em; line-height: 1.02; }
.home-evidence-period { margin: 18px 0 12px; color: var(--steel); font-size: 0.8125rem; line-height: 1.45; }
.home-evidence-metric { min-width: 0; padding-left: clamp(28px, 4vw, 58px); border-left: 1px solid var(--line); }
.home-evidence-metric strong { display: block; margin-bottom: 9px; color: var(--ink); font-size: clamp(2.8rem, 5.3vw, 4.6rem); font-stretch: var(--wide); font-weight: 740; letter-spacing: -0.055em; line-height: 0.9; }
.home-evidence-metric span { display: block; max-width: 18em; color: var(--char); font-size: 1rem; font-weight: 680; line-height: 1.4; }
.home-evidence-metric small { display: block; max-width: 24em; margin-top: 10px; color: var(--steel); font-size: 0.75rem; line-height: 1.5; }

/* ---------- founder signal ---------- */

.founder { padding: clamp(72px, 9vw, 136px) 0; background: var(--ink); color: var(--white); }
.founder-grid { display: grid; grid-template-columns: minmax(220px, 4fr) minmax(0, 8fr); gap: clamp(36px, 7vw, 112px); align-items: start; }
.founder-number {
  color: rgba(255, 255, 255, 0.13);
  font-size: clamp(9rem, 20vw, 18rem);
  font-stretch: var(--wide);
  font-weight: 760;
  letter-spacing: -0.08em;
  line-height: 0.67;
}
.founder-copy h2 { max-width: 13em; color: var(--white); font-size: clamp(2.15rem, 4.2vw, 4rem); font-stretch: var(--wide); letter-spacing: -0.03em; line-height: 0.98; }
.founder-text { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 58px); margin-top: clamp(30px, 4vw, 48px); }
.founder-text p { color: var(--mist); line-height: 1.65; }
.founder-links { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 30px; }
.founder .arrow-link { color: var(--white); }
.founder .arrow-link:hover { color: var(--mist); }

/* ---------- more work as a visual gallery ---------- */

.more-work { padding: clamp(72px, 9vw, 136px) 0; }
.more-heading { margin-bottom: clamp(34px, 5vw, 64px); }
.mini-list { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: clamp(20px, 3vw, 38px); border: 0; }
.mini { border: 0; }
.mini a {
  display: grid;
  grid-template-columns: 46% 54%;
  grid-template-rows: 1fr auto;
  gap: 0;
  height: 100%;
  min-height: 220px;
  align-items: start;
  padding: 0;
  background: var(--ice);
  text-decoration: none;
}
.mini a:hover,
.mini a:focus-visible { background: var(--mist); }
.mini-thumb {
  grid-row: 1 / 3;
  width: 100%;
  height: 100%;
  min-height: 220px;
  aspect-ratio: auto;
  border: 0;
  object-fit: cover;
  object-position: top center;
}
.mini-text { padding: 24px 24px 8px; }
.mini-firm { font-size: 1.16rem; font-weight: 680; line-height: 1.2; }
.mini-desc { margin-top: 8px; font-size: 0.9rem; line-height: 1.5; }
.mini-meta { align-self: end; padding: 0 24px 24px; color: var(--steel); font-size: 0.83rem; line-height: 1.4; text-align: left; }
.invite {
  display: grid;
  grid-template-columns: minmax(220px, 4fr) minmax(0, 7fr);
  gap: clamp(24px, 5vw, 76px);
  margin-top: clamp(44px, 6vw, 82px);
  padding: clamp(30px, 5vw, 62px);
  background: var(--mist);
}
.invite-line { margin: 0; align-self: start; }
.invite-text { margin-bottom: 16px; }
.invite-link { grid-column: 2; }

/* ---------- outcomes, candor, FAQ: fewer dividers ---------- */

.outcomes { padding: clamp(72px, 9vw, 136px) 0; }
.outcomes-heading { margin-bottom: clamp(34px, 5vw, 64px); }
.outcome-grid { grid-template-columns: repeat(3, 1fr); gap: clamp(22px, 3vw, 40px); }
.outcome {
  display: flex;
  flex-direction: column;
  padding: clamp(26px, 3vw, 40px);
  background: var(--white);
}
.outcome-grid .outcome:last-child:nth-child(odd) { grid-column: auto; }
.outcome-grid .outcome:last-child:nth-child(odd) .outcome-lead,
.outcome-grid .outcome:last-child:nth-child(odd) .outcome-quote { max-width: none; }
.outcome-lead { font-size: clamp(1.18rem, 1.55vw, 1.45rem); }
.outcome-quote { flex: 1; }
.reviewer {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin-top: 22px;
}
.reviewer-photo {
  width: 68px;
  height: 68px;
  border: 1px solid var(--border);
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
}
.reviewer .outcome-source {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.38;
}
.reviewer .outcome-source strong { display: block; font-size: 0.86rem; }
.reviewer .outcome-source span { display: block; }

.candor { padding: clamp(72px, 9vw, 136px) 0; }
.candor-heading { margin-bottom: clamp(34px, 5vw, 64px); }
.candor .rule-row-title { border: 0; padding: 0; margin: 0; }
.ledger-row {
  margin-bottom: 10px;
  padding: clamp(24px, 3vw, 36px) clamp(22px, 3vw, 38px);
  border: 0;
  background: #f5fafc;
}
.ledger-row:last-child { border: 0; }
.ledger-row:hover,
.ledger-row:focus-visible { background: var(--mist); }

.faq { padding: clamp(64px, 8vw, 120px) 0 clamp(80px, 10vw, 150px); }
.faq-heading { margin-bottom: clamp(34px, 5vw, 60px); }
.faq .engage-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 3vw, 36px);
  margin: 0;
  border: 0;
}
.faq .engage-row {
  display: block;
  padding: clamp(26px, 3vw, 38px);
  border: 0;
  background: var(--ice);
}
.faq .engage-row dt { margin-bottom: 14px; font-size: clamp(1.25rem, 1.8vw, 1.55rem); }
.faq .engage-row dd { font-size: 0.9875rem; }

/* ---------- footer identity ---------- */

.footer-mark { display: block; width: min(320px, 100%); height: auto; }

/* ---------- responsive revision 8 ---------- */

@media (max-width: 1080px) {
  .hero-content { width: 64%; }
  .hero-portrait { right: -13%; height: 108%; bottom: -3%; }
  .capability-layout { min-height: 560px; }
  .capability-item { min-height: 280px; }
  .mini a { grid-template-columns: 44% 56%; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-tagline { max-width: 30em; }
  .footer-groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .footer-latest { grid-column: 1 / -1; }
  .footer-latest ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 28px; }
  .footer-latest li + li { margin-top: 0; }
  .footer-latest li:last-child { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .section-heading { grid-template-columns: 1fr; gap: 18px; align-items: start; }
  .section-heading h2 { max-width: 15em; }
  .hero { min-height: 620px; }
  .hero-content { width: 72%; }
  .hero-portrait { right: -24%; height: 104%; opacity: 0.75; }
  .hero-portrait img { opacity: 0.5; }
  .proof-grid { grid-template-columns: 1fr 1fr; gap: 28px 42px; }
  .capability-layout { grid-template-columns: 1fr; min-height: 0; }
  .capability-primary { min-height: 480px; }
  .work-lead-row { grid-template-columns: 1fr; gap: 24px; }
  .work-lead h3 { max-width: 15em; }
  .work-pair { gap: 24px; }
  .home-evidence-grid { grid-template-columns: 1fr; }
  .home-evidence-metric { padding: 28px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .founder-grid { grid-template-columns: 1fr; gap: 38px; }
  .founder-number { font-size: 11rem; }
  .founder-text { max-width: 44em; }
  .mini-list { grid-template-columns: 1fr; }
  .mini a { grid-template-columns: 42% 58%; }
  .outcome-grid { grid-template-columns: 1fr; }
  .faq .engage-list { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .header-row { height: 76px; }
  .wordmark-symbol { height: 14.25px; }
  .wordmark-name { width: 218px; }
  .nav-panel { top: 76px; }
  .hero { min-height: 610px; }
  .hero-content { width: 100%; padding: 58px 0 70px; }
  .hero-title { max-width: 6.8em; }
  .hero-dek { max-width: 29em; }
  /* phones: the hedcut gets its own fixed band below the CTAs — centered,
     visible, faded at both edges (the desktop right-bleed doesn't fit); px
     height keeps the head clear of the buttons at every phone width */
  .hero-portrait { right: auto; left: 50%; transform: translateX(-50%); height: 284px; bottom: 0; }
  .hero-portrait img { opacity: 0.62; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.65) 14%, #000 32%, #000 68%, rgba(0,0,0,.65) 86%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.65) 14%, #000 32%, #000 68%, rgba(0,0,0,.65) 86%, transparent 100%); }
  .capability-support { grid-template-columns: 1fr; }
  .capability-item { min-height: 270px; }
  .work-image-lead > img { aspect-ratio: 3 / 2; }
  .work-pair { grid-template-columns: 1fr; margin-top: 70px; }
  .founder-text { grid-template-columns: 1fr; }
  .invite { grid-template-columns: 1fr; }
  .invite-link { grid-column: auto; }
  .footer-groups { grid-template-columns: 1fr 1fr; }
  .footer-latest { grid-column: 1 / -1; }
  .footer-latest ul { grid-template-columns: 1fr; }
  .footer-latest li:last-child { grid-column: auto; }
}

/* phones: search icon lives in the drawer and the CTA moves to the bottom
   bar, so the freed header width goes to a larger wordmark (fluid, capped) */
@media (max-width: 600px) {
  .header-row { gap: 12px; }
  .nav-toggle { padding: 0 12px; }
  .wordmark-symbol { height: 15.65px; }
  .wordmark-name { width: min(272px, calc(100vw - 152px)); }
}

@media (max-width: 520px) {
  .hero { min-height: 640px; }
  .hero-title { font-size: clamp(3rem, 15vw, 4.4rem); }
  .proof-grid { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .proof-item dd { font-size: 2rem; }
  .proof-item dt { font-size: 0.78rem; }
  .capability-primary { min-height: 420px; }
  .mini a { grid-template-columns: 1fr; grid-template-rows: auto auto auto; min-height: 0; }
  .mini-thumb { grid-row: auto; height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  .mini-meta { grid-column: auto; padding-top: 6px; }
  .founder-number { font-size: 9rem; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
}

/* ==========================================================================
   WORDPRESS INTEGRATION
   Maps the completed interior-page system into the approved Theme 3 palette
   and removes presentation rules inherited from the frozen Theme 1 foundation.
   ========================================================================== */

:root {
  --navy-950: var(--ink);
  --navy-900: var(--ink);
  --navy-800: #18394C;
  --navy-700: var(--blue);
  --navy-600: var(--teal);
  --navy-500: var(--teal);
  --ink-soft: var(--steel);
  --paper: var(--white);
  --paper-2: var(--ice);
  --gold: var(--accent);
  --gold-soft: var(--mist);
  --gold-deep: var(--blue);
  --gold-light: var(--mist);
  --gold-dark: var(--blue);
  --line: #D5E3EA;
  --line-light: rgba(255, 255, 255, 0.22);
  --font-display: 'Archivo', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Archivo', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --text-white: var(--white);
  --text-light: var(--mist);
  --text-muted: var(--steel);
  --text-secondary: var(--steel);
  --text-dark: var(--ink);
  --border-light: #D5E3EA;
  --border-dark: #18394C;
  --bg-light: var(--white);
  --bg-white: var(--white);
  --text-body: var(--char);
  --max-width: var(--wrap);
  --radius: 2px;
  --radius-lg: 2px;
  --shadow-card: none;
  --shadow-card-hover: none;
}

.site-header {
  left: auto;
  right: auto;
  padding: 0;
  box-shadow: none;
  transition: none;
}
.site-header.scrolled {
  background: var(--white);
  box-shadow: none;
  backdrop-filter: none;
}
.home .hero::before,
.home .hero::after,
.cta-section::before {
  content: none;
}
.home .hero-content {
  max-width: none;
}
.home .hero .hero-title {
  max-width: 8.6em;
  margin: 0 0 clamp(28px, 3.5vw, 48px);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: clamp(2.5rem, 6.4vw, 5.85rem);
  font-stretch: var(--wide);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.025em;
}
.btn-primary::after,
.btn-outline::after,
.btn-ghost-dark::after {
  content: none;
}

body:not(.home) {
  background: var(--white);
}
body:not(.home) #main {
  padding-top: 0;
}
body:not(.home) h1,
body:not(.home) h2,
body:not(.home) h3 {
  font-stretch: 112%;
  font-weight: 680;
  letter-spacing: -0.018em;
}
body:not(.home) h1 {
  font-size: clamp(2.65rem, 5.4vw, 5rem);
  line-height: 0.98;
}
body:not(.home) h2 {
  line-height: 1.06;
}
body:not(.home) p {
  color: var(--char);
}
body:not(.home) main .page-content ul,
body:not(.home) main .about-story-body ul,
body:not(.home) main .faq-open-answer ul,
body:not(.home) main .compare-body ul,
body:not(.home) main .compare-note-text ul,
body:not(.home) main .driver-factors,
body:not(.home) main .phase-checklist {
  list-style: disc;
  padding-left: 1.3rem;
}
body:not(.home) main .checklist,
body:not(.home) main .next-steps,
body:not(.home) main .timeline,
body:not(.home) main .portfolio-deliverables,
body:not(.home) main .portfolio-metrics,
body:not(.home) main .portfolio-crosslinks ul,
body:not(.home) main .faq-cluster ul {
  list-style: none;
  padding-left: 0;
}

.hero-page {
  background: var(--ice);
  color: var(--char);
  padding: clamp(64px, 8vw, 112px) 0;
  border-bottom: 1px solid var(--line);
}
.hero-page h1 {
  max-width: 13em;
  color: var(--ink);
  margin-bottom: clamp(18px, 2.5vw, 30px);
}
.hero-page .hero-sub {
  max-width: 42em;
  color: var(--char);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  line-height: 1.65;
}
.hero-page .eyebrow {
  color: var(--blue);
}
.breadcrumbs,
.breadcrumbs a {
  color: var(--steel);
}
.breadcrumbs a:hover {
  color: var(--blue);
}

.section {
  padding: clamp(64px, 8vw, 112px) 0;
}
.section-tight {
  padding: clamp(48px, 6vw, 84px) 0;
}
.section-alt {
  background: var(--ice);
}
.section-dark,
.cta-section {
  background: var(--ink);
}
.section-header {
  max-width: 48rem;
}
.section-header .lede {
  color: var(--steel);
}
.eyebrow,
.timeline-period,
.team-role,
.phase-duration,
.compare-rank,
.portfolio-filter-label {
  color: var(--blue);
}

.btn-primary {
  background: var(--accent);
  color: var(--white);
  border: 0;
}
.btn-primary:hover {
  background: var(--ink);
  color: var(--white);
}
.btn-outline,
.btn-ghost {
  border-color: var(--ink);
  color: var(--ink);
  background: transparent;
}
.btn-outline:hover,
.btn-ghost:hover {
  background: var(--ink);
  color: var(--white);
}
.btn-ghost-dark {
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--white);
  border-radius: 2px;
}
.btn-ghost-dark:hover {
  border-color: var(--white);
  color: var(--white);
}
.text-link,
.contact-line,
.review-firm a,
.portfolio-facts dd a,
.portfolio-crosslinks a,
.faq-cluster a {
  color: var(--blue);
}

.service-card,
.process-step,
.process-phase,
.pricing-card,
.contact-card,
.included-item,
.team-card,
.review-card,
.compare-card,
.compare-note,
.faq-summary,
.faq-cluster,
.portfolio-note,
.portfolio-facts,
.portfolio-hero,
.portfolio-screens figure,
.portfolio-screen-mobile,
.invest-callout {
  border-radius: 2px;
  border-color: var(--line);
  box-shadow: none;
}
.service-card:hover,
.firm-card:hover,
.work-card:hover .work-card-frame {
  transform: none;
  box-shadow: none;
}
.service-card .icon-wrap,
.phase-duration,
.compare-us {
  border-radius: 2px;
}
.firm-card {
  background: var(--ink);
  border-radius: 2px;
}
.firm-card:hover {
  background: #18394C;
}
.firm-card .text-link {
  color: var(--mist);
}
.timeline li::before {
  background: var(--blue);
  border-color: var(--ice);
  box-shadow: 0 0 0 1px var(--border);
}
.process-step .step-num,
.process-phase .step-num,
.next-steps li::before {
  color: var(--blue);
}
.portfolio-filter select,
.portfolio-filter-submit {
  border-radius: 2px;
}
.portfolio-filter-submit:hover {
  background: var(--ink);
}
.work-card-frame {
  border-radius: 2px;
  box-shadow: none;
}
.work-card-frame::before {
  background-color: var(--ice);
}
.work-card-meta h3,
.portfolio-facts dt,
.portfolio-metrics strong,
.review-head strong {
  color: var(--ink);
}
.portfolio-quote,
.contact-quote,
.cta-testimonial {
  border-left-color: var(--blue);
}
.palette-swatch {
  border-radius: 2px;
}

/* ---------- portfolio before and after ---------- */
.portfolio-results {
  padding: clamp(32px, 4vw, 52px) 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.portfolio-results > h2 {
  margin-bottom: clamp(24px, 3vw, 36px);
}
.portfolio-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.portfolio-comparison-panel {
  padding-right: clamp(24px, 4vw, 56px);
}
.portfolio-comparison-panel + .portfolio-comparison-panel {
  padding-right: 0;
  padding-left: clamp(24px, 4vw, 56px);
  border-left: 1px solid var(--line);
}
.portfolio-comparison-label {
  margin-bottom: 10px;
  color: var(--blue);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.portfolio-results .portfolio-comparison h3 {
  max-width: 18em;
  margin-bottom: 16px;
  color: var(--ink);
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.12;
}
.portfolio-comparison-panel p:last-child {
  margin-bottom: 0;
}
.portfolio-comparison-figure {
  margin: 24px 0 0;
}
.portfolio-comparison-figure img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: top;
  border: 1px solid var(--line);
}
.portfolio-comparison-figure figcaption {
  margin-top: 10px;
  color: var(--steel);
  font-size: 0.75rem;
  line-height: 1.45;
}
.portfolio-comparison-figure figcaption a {
  color: var(--blue);
}
.portfolio-comparison-source {
  grid-column: 1 / -1;
  margin: 28px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--steel);
  font-size: 0.8125rem;
}
@media (max-width: 720px) {
  .portfolio-comparison {
    grid-template-columns: 1fr;
  }
  .portfolio-comparison-panel,
  .portfolio-comparison-panel + .portfolio-comparison-panel {
    padding: 0;
    border-left: 0;
  }
  .portfolio-comparison-panel + .portfolio-comparison-panel {
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid var(--line);
  }
  .portfolio-comparison-source {
    grid-column: auto;
  }
}

/* ---------- portfolio measured results ---------- */
.service-case-study { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-case-study-header { display: grid; grid-template-columns: minmax(260px, 5fr) minmax(0, 7fr); gap: clamp(32px, 7vw, 112px); align-items: end; margin-bottom: clamp(34px, 5vw, 64px); }
.service-case-study-header h2 { max-width: 12em; margin: 0; }
.service-case-study-header .lede { max-width: 42rem; margin: 0; }
.case-study-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.case-study-figure { position: relative; margin: 0; }
.case-study-figure img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: top; border: 1px solid var(--line); }
.case-study-image-label { position: absolute; z-index: 1; bottom: 31px; right: 1px; padding: 8px 11px; background: var(--ink); color: var(--white); font-size: 0.6875rem; font-weight: 720; letter-spacing: 0.12em; text-transform: uppercase; }
.case-study-figure figcaption { margin-top: 10px; color: var(--steel); font-size: 0.75rem; line-height: 1.45; }
.case-study-figure figcaption a { color: var(--blue); }
.case-study-evidence { display: grid; grid-template-columns: minmax(0, 7fr) minmax(280px, 5fr); gap: clamp(36px, 7vw, 112px); margin-top: clamp(44px, 6vw, 76px); }
.case-study-project-note { border-top: 1px solid var(--line); }
.case-study-note-row { display: grid; grid-template-columns: minmax(94px, 2fr) minmax(0, 7fr); gap: clamp(18px, 3vw, 40px); padding: 20px 0; border-bottom: 1px solid var(--line); }
.case-study-note-row h3 { margin: 2px 0 0; color: var(--blue); font-size: 0.75rem; font-weight: 720; letter-spacing: 0.1em; text-transform: uppercase; }
.case-study-note-row p { margin: 0; font-size: 0.9375rem; line-height: 1.6; }
.case-study-results { padding-top: 18px; border-top: 1px solid var(--ink); }
.case-study-results-label { margin: 0 0 22px; color: var(--ink) !important; font-size: 0.75rem; font-weight: 720; letter-spacing: 0.1em; text-transform: uppercase; }
body:not(.home) main .case-study-results ul { margin: 0; padding: 0; list-style: none; }
.case-study-results li { padding: 0 0 22px; border-bottom: 1px solid var(--line); }
.case-study-results li + li { padding-top: 22px; }
.case-study-results strong { display: block; margin-bottom: 7px; color: var(--ink); font-size: clamp(2rem, 3.4vw, 3.25rem); font-stretch: 112%; font-weight: 700; letter-spacing: -0.04em; line-height: 0.95; }
.case-study-results span { display: block; color: var(--char); font-size: 0.9375rem; font-weight: 650; line-height: 1.4; }
.case-study-results small { display: block; margin-top: 7px; color: var(--steel); font-size: 0.75rem; line-height: 1.5; }
.case-study-quote { margin-top: clamp(44px, 6vw, 72px); }
.case-study-link { margin: 28px 0 0; }
@media (max-width: 780px) { .service-case-study-header, .case-study-evidence { grid-template-columns: 1fr; gap: 28px; } .case-study-comparison { grid-template-columns: 1fr; gap: 30px; } .case-study-note-row { grid-template-columns: 1fr; gap: 8px; } }

.portfolio-metrics-section {
  margin-bottom: clamp(64px, 8vw, 104px);
  padding-bottom: clamp(36px, 5vw, 56px);
  border-bottom: 1px solid var(--line);
}
.portfolio-metrics-heading {
  display: grid;
  grid-template-columns: minmax(220px, 4fr) minmax(0, 8fr);
  gap: clamp(28px, 6vw, 96px);
  align-items: start;
  margin-bottom: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.portfolio-metrics-heading h2 {
  margin: 0;
  font-size: clamp(1.65rem, 2.8vw, 2.35rem);
}
.portfolio-metrics-heading p {
  max-width: 42rem;
  margin: 2px 0 0;
  color: var(--steel);
  font-size: 0.9375rem;
  line-height: 1.55;
}
body:not(.home) main .portfolio-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 52px);
  margin: 0;
}
.portfolio-metrics li {
  min-width: 0;
  padding: 20px 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
}
.portfolio-metrics .portfolio-metric-value {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-family: inherit;
  font-size: clamp(2rem, 3.3vw, 3.1rem);
  font-stretch: 112%;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1;
}
.portfolio-metric-label {
  display: block;
  color: var(--char);
  font-size: 0.9375rem;
  font-weight: 650;
  line-height: 1.4;
}
.portfolio-metric-source {
  display: block;
  margin-top: 12px;
  color: var(--steel);
  font-size: 0.75rem;
  line-height: 1.5;
}

/* ---------- portfolio related work ---------- */
.portfolio-related {
  margin: clamp(80px, 10vw, 136px) 0 clamp(24px, 4vw, 48px);
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.portfolio-related-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: baseline;
  margin-bottom: clamp(30px, 4vw, 48px);
}
.portfolio-related-heading h2 {
  margin: 0;
  font-size: clamp(1.9rem, 3.4vw, 3rem);
}
.portfolio-related-heading a {
  flex: none;
  color: var(--blue);
  font-size: 0.875rem;
  font-weight: 650;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
.portfolio-related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 42px);
}
.portfolio-related-card { min-width: 0; }
.portfolio-related-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.portfolio-related-media {
  margin: 0;
  padding: clamp(5px, 0.55vw, 8px);
  overflow: hidden;
  background: var(--ice);
  border: 1px solid var(--line);
}
.portfolio-related-media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: top;
  transition: transform 0.28s ease;
}
.portfolio-related-copy {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.portfolio-related-copy h3 {
  max-width: 15em;
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.25rem, 1.8vw, 1.65rem);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.02em;
  line-height: 1.08;
}
.portfolio-related-copy p {
  margin: 10px 0 0;
  color: var(--steel);
  font-size: 0.8125rem;
  line-height: 1.45;
}
.portfolio-related-link:hover .portfolio-related-media img { transform: scale(1.008); }
.portfolio-related-link:hover .portfolio-related-copy h3 { color: var(--blue); }

@media (max-width: 860px) {
  body:not(.home) main .portfolio-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-related-card:last-child { grid-column: 1 / -1; max-width: calc(50% - 12px); }
}

@media (max-width: 640px) {
  .portfolio-metrics-heading { grid-template-columns: 1fr; gap: 12px; }
  body:not(.home) main .portfolio-metrics { grid-template-columns: 1fr; gap: 28px; }
  .portfolio-related { margin-top: 72px; }
  .portfolio-related-heading { align-items: flex-end; margin-bottom: 18px; }
  .portfolio-related-heading h2 { font-size: clamp(1.75rem, 9vw, 2.35rem); }
  .portfolio-related-grid { display: block; }
  .portfolio-related-card,
  .portfolio-related-card:last-child {
    max-width: none;
    padding: 20px 0;
    border-top: 1px solid var(--line);
  }
  .portfolio-related-link {
    display: grid;
    grid-template-columns: minmax(118px, 38%) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
  }
  .portfolio-related-media { padding: 4px; }
  .portfolio-related-copy { margin: 0; padding: 0; border: 0; }
  .portfolio-related-copy h3 { font-size: 1.125rem; line-height: 1.12; }
  .portfolio-related-copy p { margin-top: 7px; font-size: 0.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-related-media img { transition: none; }
}

/* ---------- curated portfolio archive ---------- */

.post-type-archive-portfolio .hero-page {
  padding: clamp(58px, 6.5vw, 88px) 0;
}
.portfolio-hub {
  padding: clamp(68px, 8vw, 116px) 0;
  background: #f8fbfd;
}
.portfolio-showcase {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(72px, 8vw, 112px) clamp(28px, 4vw, 56px);
}
.portfolio-showcase-item { min-width: 0; }
.portfolio-showcase-item.is-featured { grid-column: 1 / -1; }
.portfolio-showcase-item.is-supporting.is-wide { grid-column: span 7; }
.portfolio-showcase-item.is-supporting.is-narrow { grid-column: span 5; }
.portfolio-showcase-link { display: block; color: inherit; text-decoration: none; }
.portfolio-showcase-item.is-featured .portfolio-showcase-link {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(280px, 4fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
}
.portfolio-showcase-item.is-featured.is-feature-2 .portfolio-showcase-link {
  grid-template-columns: minmax(280px, 4fr) minmax(0, 8fr);
}
.portfolio-showcase-item.is-featured.is-feature-2 .portfolio-showcase-media { order: 2; }
.portfolio-showcase-media {
  position: relative;
  margin: 0;
  padding: clamp(6px, 0.75vw, 10px);
  overflow: hidden;
  background: var(--ice);
  border: 1px solid var(--line);
}
.portfolio-showcase-media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: top;
  transition: transform 0.28s ease;
}
.portfolio-showcase-copy {
  margin-top: 20px;
  padding-top: 18px;
  border-top: var(--hairline);
}
.portfolio-showcase-item.is-featured .portfolio-showcase-copy { margin-top: 0; }
.portfolio-showcase-copy h2 {
  max-width: 14em;
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.75rem, 2.8vw, 2.75rem);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.025em;
  line-height: 1.02;
}
.portfolio-showcase-item.is-featured .portfolio-showcase-copy h2 {
  margin-bottom: clamp(22px, 2.6vw, 34px);
  font-size: clamp(2.25rem, 4vw, 3.75rem);
}
.portfolio-showcase-summary {
  max-width: 34em;
  margin: 0 0 clamp(24px, 3vw, 36px);
  color: var(--char);
  font-size: clamp(1rem, 1.25vw, 1.125rem);
  line-height: 1.6;
}
.portfolio-showcase-meta {
  margin: 14px 0 0;
  color: var(--steel);
  font-size: 0.875rem;
  line-height: 1.5;
}
.portfolio-showcase-facts {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) auto;
  gap: 18px;
  margin: 0;
}
.portfolio-showcase-facts div { min-width: 0; }
.portfolio-showcase-facts dt {
  margin-bottom: 4px;
  color: var(--blue);
  font-size: 0.6875rem;
  font-weight: 720;
  letter-spacing: 0.09em;
  line-height: 1.3;
  text-transform: uppercase;
}
.portfolio-showcase-facts dd {
  margin: 0;
  color: var(--char);
  font-size: 0.875rem;
  line-height: 1.45;
}
.portfolio-showcase-action {
  display: inline-block;
  margin-top: 26px;
  padding-bottom: 2px;
  color: var(--blue);
  font-size: 0.875rem;
  font-weight: 650;
  border-bottom: 1px solid currentColor;
}
.portfolio-showcase-link:hover .portfolio-showcase-media img { transform: scale(1.008); }
.portfolio-showcase-link:hover .portfolio-showcase-copy h2 { color: var(--blue); }
.portfolio-note {
  display: grid;
  grid-template-columns: minmax(220px, 4fr) minmax(0, 8fr);
  gap: clamp(32px, 7vw, 112px);
  max-width: none;
  margin: clamp(96px, 12vw, 176px) 0 0;
  padding: 34px 0 0;
  background: transparent;
  border: 0;
  border-top: var(--hairline);
  border-radius: 0;
}
.portfolio-note h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.02em;
}
.portfolio-note p { max-width: 58em; color: var(--char); font-size: 1rem; }
.portfolio-note p + p { margin-top: 18px; }
.portfolio-note a { color: var(--blue); }

@media (max-width: 980px) {
  .portfolio-showcase-item.is-featured .portfolio-showcase-link { display: block; }
  .portfolio-showcase-item.is-featured.is-feature-2 .portfolio-showcase-media { order: initial; }
  .portfolio-showcase-item.is-featured .portfolio-showcase-copy { margin-top: 20px; }
  .portfolio-note { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 700px) {
  .portfolio-showcase { grid-template-columns: 1fr; gap: 72px; }
  .portfolio-showcase-item,
  .portfolio-showcase-item.is-featured,
  .portfolio-showcase-item.is-supporting.is-wide,
  .portfolio-showcase-item.is-supporting.is-narrow { grid-column: 1; }
  .portfolio-showcase-copy h2,
  .portfolio-showcase-item.is-featured .portfolio-showcase-copy h2 { font-size: clamp(1.75rem, 9vw, 2.5rem); }
}

@media (max-width: 480px) {
  .portfolio-showcase-facts { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-showcase-media img { transition: none; }
}

/* ---------- contextual content rail ---------- */

.service-intro-layout {
  display: grid;
  grid-template-columns: minmax(190px, 250px) minmax(0, 760px);
  justify-content: space-between;
  gap: clamp(52px, 8vw, 132px);
  align-items: start;
}
.service-intro-copy { max-width: 760px; }
.service-intro-copy > h2:first-child { margin-top: 0; }
.service-intro-copy h2[id] { scroll-margin-top: 118px; }
.service-page-anchor { scroll-margin-top: 118px; }
.content-rail {
  position: sticky;
  top: 112px;
  border-top: 1px solid var(--border);
  color: var(--steel);
}
.content-rail-group { padding: 20px 0 22px; border-bottom: 1px solid var(--border); }
.content-rail-label {
  margin: 0 0 11px;
  color: var(--ink);
  font-size: 0.7rem;
  font-weight: 720;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}
.content-rail ul { list-style: none; margin: 0; padding: 0; }
.content-rail li {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;
  margin: 0;
}
.content-rail li::before {
  content: "";
  width: 7px;
  height: 1px;
  margin-top: 0.68em;
  background: var(--blue);
}
.content-rail li + li { margin-top: 9px; }
.content-rail a {
  min-width: 0;
  color: var(--steel);
  font-size: 0.875rem;
  line-height: 1.42;
  text-decoration: none;
}
.content-rail a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.content-rail-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 20px;
  color: var(--blue) !important;
  font-weight: 680;
}
.content-rail-mobile { display: none; }
body:not(.home) .cta-band p { color: var(--white); }
@media (max-width: 900px) {
  .service-intro-layout { grid-template-columns: 1fr; gap: 34px; }
  .content-rail { position: static; top: auto; border-top: 0; }
  .content-rail-desktop { display: none; }
  .content-rail-mobile { display: block; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
  .content-rail-mobile summary { padding: 16px 0; color: var(--ink); font-size: 0.8rem; font-weight: 720; letter-spacing: 0.09em; text-transform: uppercase; cursor: pointer; }
  .content-rail-mobile[open] { padding-bottom: 20px; }
  .content-rail-mobile .content-rail-group { padding: 14px 0 0; border-bottom: 0; }
  .content-rail-mobile .content-rail-group:first-of-type { padding-top: 2px; }
}

/* ---------- FAQ page layout ---------- */

.faq-page-layout {
  display: grid;
  grid-template-columns: minmax(190px, 250px) minmax(0, 820px);
  justify-content: space-between;
  gap: clamp(52px, 8vw, 132px);
  align-items: start;
}
.faq-main { min-width: 0; }
.faq-page .content-rail li + li { margin-top: 6px; }
.faq-page .content-rail a { font-size: 0.825rem; line-height: 1.34; }
.faq-open-item {
  padding: clamp(30px, 4vw, 48px) 0;
  border-bottom: 1px solid var(--line);
}
.faq-open-item:first-child { padding-top: 0; }
.faq-open-item:last-child { padding-bottom: 0; border-bottom: 0; }
.faq-open-item h2 {
  max-width: 24em;
  margin-bottom: 16px;
  color: var(--ink);
  font-size: clamp(1.45rem, 2.1vw, 2rem);
  line-height: 1.12;
}
.faq-question-anchor { scroll-margin-top: 118px; }
.faq-open-answer { color: var(--char); font-size: 1rem; line-height: 1.68; }
.faq-open-answer h3 { margin: 24px 0 10px; color: var(--ink); font-size: 1.05rem; line-height: 1.35; }
.faq-open-answer p,
.faq-open-answer ul,
.faq-open-answer ol { max-width: 70ch; }
.faq-open-answer > :last-child { margin-bottom: 0; }
.faq-open-answer li + li { margin-top: 8px; }

@media (max-width: 900px) {
  .faq-page-layout { grid-template-columns: 1fr; gap: 34px; }
  .faq-page .content-rail a { font-size: 0.875rem; line-height: 1.42; }
}

/* ---------- article system ---------- */

.article-header {
  padding: clamp(64px, 8vw, 112px) 0 clamp(42px, 6vw, 72px);
  background: var(--ice);
  border-bottom: 1px solid var(--mist);
}
.article-kicker,
.insights-archive-kicker,
.insights-card-category,
.article-author-note-label {
  margin: 0 0 14px;
  color: var(--blue);
  font-size: 0.75rem;
  font-weight: 720;
  letter-spacing: 0.11em;
  line-height: 1.4;
  text-transform: uppercase;
}
.article-kicker { display: flex; flex-wrap: wrap; gap: 7px; }
.article-kicker a { color: inherit; text-decoration: none; }
.article-kicker a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.article-header h1 {
  max-width: 15.5em;
  margin: 0;
  font-size: clamp(2.65rem, 6.2vw, 5.9rem);
  font-stretch: 112%;
  line-height: 0.98;
  letter-spacing: -0.045em;
}
.article-meta-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: 1100px;
  margin-top: clamp(32px, 5vw, 54px);
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.article-author { display: flex; align-items: center; gap: 13px; }
.article-author-avatar,
.article-author-note-avatar { border-radius: 50%; border: 1px solid var(--border); background: var(--white); object-fit: cover; }
.article-author-avatar { width: 56px; height: 56px; }
.article-author-note-avatar { width: 72px; height: 72px; }
.article-author p { margin: 0; line-height: 1.35; }
.article-author span,
.article-meta-list dt {
  display: block;
  margin-bottom: 3px;
  color: var(--steel);
  font-size: 0.68rem;
  font-weight: 680;
  letter-spacing: 0.09em;
  line-height: 1.3;
  text-transform: uppercase;
}
.article-author a { color: var(--ink); font-weight: 680; text-decoration: none; }
.article-author a:hover { color: var(--blue); text-decoration: underline; }
.article-meta-list { display: flex; align-items: stretch; margin: 0; }
.article-meta-list > div { min-width: 136px; padding: 0 22px; border-left: 1px solid var(--border); }
.article-meta-list > div:last-child { padding-right: 0; }
.article-meta-list dd { margin: 0; color: var(--ink); font-size: 0.875rem; font-weight: 620; line-height: 1.4; }
.article-featured { margin-top: clamp(34px, 5vw, 62px); }
.article-featured img { width: 100%; aspect-ratio: 16 / 7.4; object-fit: cover; border: 1px solid var(--border); }
.article-featured figcaption { margin-top: 8px; color: var(--steel); font-size: 0.75rem; }
.article-body-section { padding: clamp(54px, 7vw, 96px) 0 clamp(72px, 9vw, 128px); }
.article-layout {
  display: grid;
  grid-template-columns: minmax(190px, 250px) minmax(0, 790px);
  justify-content: space-between;
  gap: clamp(52px, 8vw, 132px);
  align-items: start;
}
.article-content { min-width: 0; color: var(--char); font-size: 1.0625rem; line-height: 1.75; }
.article-content > :first-child { margin-top: 0; }
.article-content p,
.article-content ul,
.article-content ol { max-width: 72ch; }
.article-content p { margin: 0 0 1.35em; }
.article-content ul,
.article-content ol { margin: 0 0 1.5em; padding-left: 1.35em; list-style: revert; }
.article-content li { margin-bottom: 0.55em; }
.article-content h2 {
  margin: clamp(52px, 7vw, 78px) 0 20px;
  color: var(--ink);
  font-size: clamp(1.85rem, 3.2vw, 2.8rem);
  line-height: 1.05;
  scroll-margin-top: 118px;
}
.article-content h3 {
  margin: 36px 0 14px;
  color: var(--ink);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  line-height: 1.18;
}
.article-content blockquote {
  margin: 34px 0;
  padding: 24px 28px;
  color: var(--ink);
  background: var(--ice);
  border-left: 4px solid var(--blue);
  font-size: 1.05rem;
  font-style: normal;
}
.article-table-region {
  width: 100%;
  max-width: 100%;
  margin: 30px 0 38px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--white);
}
.article-comparison-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  color: var(--char);
  font-size: 0.8125rem;
  line-height: 1.52;
}
.article-comparison-table th,
.article-comparison-table td {
  padding: 16px 18px;
  border-right: 1px solid var(--mist);
  border-bottom: 1px solid var(--mist);
  text-align: left;
  vertical-align: top;
}
.article-comparison-table th:last-child,
.article-comparison-table td:last-child { border-right: 0; }
.article-comparison-table tbody tr:last-child td { border-bottom: 0; }
.article-comparison-table th {
  color: var(--ink);
  background: var(--ice);
  font-size: 0.72rem;
  font-weight: 720;
  letter-spacing: 0.07em;
  line-height: 1.4;
  text-transform: uppercase;
}
.article-comparison-table td:first-child {
  width: 14%;
  color: var(--ink);
  font-weight: 720;
}
.article-content figure,
.article-content img { max-width: 100%; }
.article-author-note {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 22px;
  margin-top: clamp(64px, 8vw, 96px);
  padding-top: 28px;
  border-top: 1px solid var(--border);
}
.article-author-note-label { margin-bottom: 6px; }
.article-author-note h2 { margin: 0 0 10px; font-size: 1.45rem; letter-spacing: -0.02em; }
.article-author-note p { margin-bottom: 12px; color: var(--steel); font-size: 0.9375rem; line-height: 1.65; }
.article-author-note a { color: var(--blue); font-size: 0.9rem; font-weight: 680; text-decoration: none; }
.article-author-note a:hover { color: var(--ink); text-decoration: underline; }

.insights-archive-header {
  padding: clamp(70px, 9vw, 126px) 0 clamp(46px, 6vw, 78px);
  background: var(--ice);
  border-bottom: 1px solid var(--mist);
}
.insights-archive-kicker { margin-bottom: 10px; }
.insights-archive-header h1 {
  margin: 0;
  font-size: clamp(4rem, 10vw, 8.4rem);
  font-stretch: 116%;
  line-height: 0.9;
  letter-spacing: -0.055em;
}
.insights-archive-header > .wrap > p:last-child { max-width: 650px; margin: 28px 0 0; color: var(--steel); font-size: 1.125rem; }
.insights-archive { padding: clamp(54px, 7vw, 96px) 0 clamp(76px, 9vw, 128px); }
.insights-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  gap: clamp(34px, 6vw, 82px);
  align-items: start;
  padding-bottom: clamp(54px, 7vw, 88px);
  border-bottom: 1px solid var(--border);
}
.insights-lead-media,
.insights-index-media { display: block; overflow: hidden; background: var(--ice); }
.insights-lead-media img,
.insights-index-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.22s ease; }
.insights-lead-media { aspect-ratio: 16 / 9; border: 1px solid var(--border); }
.insights-lead-media:hover img,
.insights-index-media:hover img { transform: scale(1.015); }
.insights-lead-copy h2 { margin: 0 0 16px; font-size: clamp(1.9rem, 3.2vw, 2.85rem); line-height: 1.03; }
.insights-lead-copy h2 a,
.insights-index-copy h2 a { color: var(--ink); text-decoration: none; }
.insights-lead-copy h2 a:hover,
.insights-index-copy h2 a:hover { color: var(--blue); text-decoration: underline; text-decoration-thickness: 1px; }
.insights-card-category { margin-bottom: 10px; }
.insights-card-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; color: var(--steel); font-size: 0.8125rem; }
.insights-card-excerpt { margin: 0 0 22px; color: var(--steel); font-size: 0.95rem; line-height: 1.65; }
.insights-card-link { color: var(--blue); font-size: 0.9375rem; font-weight: 680; text-decoration: none; }
.insights-card-link:hover { color: var(--ink); text-decoration: underline; }
.insights-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(34px, 6vw, 82px); }
.insights-index-item {
  display: grid;
  grid-template-columns: minmax(150px, 0.85fr) minmax(0, 1.15fr);
  gap: 24px;
  align-items: start;
  padding: 38px 0;
  border-bottom: 1px solid var(--border);
}
.insights-index-media { aspect-ratio: 16 / 10; border: 1px solid var(--border); }
.insights-index-copy h2 { margin: 0 0 10px; font-size: clamp(1.2rem, 2vw, 1.62rem); line-height: 1.12; }
.insights-index-copy .insights-card-excerpt { margin-bottom: 0; font-size: 0.875rem; }
.insights-index-copy .insights-card-meta { margin-bottom: 12px; }
.navigation.pagination { margin-top: 52px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.nav-links .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 14px;
  color: var(--ink);
  border: 1px solid var(--border);
  text-decoration: none;
}
.nav-links .page-numbers.current,
.nav-links a.page-numbers:hover { color: var(--white); background: var(--blue); border-color: var(--blue); }

@media (max-width: 1060px) {
  .article-meta-panel { align-items: flex-start; }
  .article-meta-list { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); }
  .article-meta-list > div { min-width: 0; }
  .insights-index { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .article-layout { grid-template-columns: 1fr; gap: 34px; }
  .article-layout .content-rail { order: -1; }
  .article-featured img { aspect-ratio: 16 / 9; }
  .insights-lead { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .article-header h1 { font-size: clamp(2.35rem, 12vw, 3.7rem); }
  .article-meta-panel { display: block; }
  .article-meta-list { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--border); }
  .article-meta-list > div { padding: 0 16px 0 0; border-left: 0; }
  .article-meta-list > div + div { padding-left: 16px; border-left: 1px solid var(--border); }
  .article-meta-list > div:last-child { grid-column: 1 / -1; margin-top: 16px; padding: 16px 0 0; border-top: 1px solid var(--border); border-left: 0; }
  .article-author-note { grid-template-columns: 1fr; }
  .insights-archive-header h1 { font-size: clamp(3.8rem, 22vw, 6.6rem); }
  .insights-index-item { grid-template-columns: 1fr; gap: 18px; }
  .insights-index-media { aspect-ratio: 16 / 9; }
}

@media (prefers-reduced-motion: reduce) {
  .insights-lead-media img,
  .insights-index-media img { transition: none; }
  .insights-lead-media:hover img,
  .insights-index-media:hover img { transform: none; }
}

.compare-hook {
  background: var(--ice);
}
.compare-hook p {
  font-family: var(--font-body);
  font-style: normal;
}
.compare-table-wrap {
  border-radius: 2px;
  box-shadow: none;
}
.compare-table .is-dgd td,
.compare-us {
  background: var(--ice);
}

@media (max-width: 760px) {
  .article-table-region {
    margin: 24px 0 32px;
    border: 0;
    background: transparent;
  }
  .article-comparison-table {
    display: block;
    font-size: 0.8125rem;
  }
  .article-comparison-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .article-comparison-table tbody,
  .article-comparison-table tr,
  .article-comparison-table td {
    display: block;
    width: 100%;
  }
  .article-comparison-table tr {
    margin-bottom: 16px;
    border: 1px solid var(--border);
    background: var(--white);
  }
  .article-comparison-table tr:last-child { margin-bottom: 0; }
  .article-comparison-table td {
    display: block;
    padding: 14px 16px 16px;
    border-right: 0;
    border-bottom: 1px solid var(--mist);
  }
  .article-comparison-table td:first-child {
    width: 100%;
    padding-top: 16px;
    background: var(--ice);
    font-size: 1.05rem;
  }
  .article-comparison-table tbody tr:last-child td { border-bottom: 1px solid var(--mist); }
  .article-comparison-table tbody tr td:last-child { border-bottom: 0; }
  .article-comparison-table td::before {
    display: block;
    content: attr(data-label);
    margin-bottom: 7px;
    color: var(--steel);
    font-size: 0.66rem;
    font-weight: 720;
    letter-spacing: 0.06em;
    line-height: 1.45;
    text-transform: uppercase;
  }
  .hero-page {
    padding: 54px 0 62px;
  }
  body:not(.home) h1 {
    font-size: clamp(2.4rem, 12vw, 3.7rem);
  }
  .section,
  .section-tight {
    padding: 56px 0;
  }
}

/* ==========================================================================
   PRE-LAUNCH QA 01
   Global footer corrections and homepage composition refinements.
   ========================================================================== */

/* ---------- opening viewport ---------- */

.home-opening {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: calc(100svh - 84px);
  background: var(--ice);
}
.home-opening .hero {
  min-height: 0;
}
.home-opening .hero-stage {
  min-height: 100%;
}

/* ---------- service scope note ---------- */

.capability-note {
  max-width: 100%;
}

/* ---------- additional work index ---------- */

.mini-list {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  gap: 0;
  border-top: 1px solid var(--border);
}
.mini {
  border-bottom: 1px solid var(--border);
}
.mini a {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr) minmax(160px, 220px);
  grid-template-rows: auto;
  gap: clamp(24px, 4vw, 64px);
  min-height: 0;
  padding: clamp(22px, 2.5vw, 34px) 0;
  align-items: center;
  background: transparent;
}
.mini a:hover,
.mini a:focus-visible {
  background: transparent;
}
.mini-media {
  display: block;
  overflow: hidden;
  background: var(--mist);
  border: 1px solid var(--line);
}
.mini-media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: top center;
  transition: transform 0.3s ease;
}
.mini a:hover .mini-media img,
.mini a:focus-visible .mini-media img {
  transform: scale(1.015);
}
.mini-text {
  padding: 0;
}
.mini-firm {
  color: var(--ink);
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.02em;
  line-height: 1.08;
}
.mini-desc {
  max-width: 42em;
  margin-top: 12px;
  color: var(--char);
  font-size: 0.9875rem;
  line-height: 1.58;
}
.mini-meta {
  align-self: center;
  padding: 0;
  color: var(--steel);
  font-size: 0.82rem;
  font-weight: 590;
  letter-spacing: 0.025em;
  line-height: 1.5;
  text-align: right;
}
.mini a:hover .mini-firm,
.mini a:focus-visible .mini-firm {
  color: var(--blue);
}

/* ---------- outcomes ---------- */

.outcome-grid {
  gap: 0;
  align-items: stretch;
  background: var(--white);
}
.outcome {
  padding: clamp(26px, 3vw, 40px);
  border-left: 1px solid var(--line);
  background: transparent;
}
.outcome:first-child {
  border-left: 0;
}
.outcome-lead {
  min-height: 4.7em;
  margin: 0 0 24px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.outcome-quote {
  flex: 1;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.outcome-quote p {
  margin: 0;
  color: var(--char);
  font-size: 1rem;
  font-style: normal;
  font-weight: 430;
  line-height: 1.62;
}

/* ---------- footer resets and contrast ---------- */

.footer-group ul,
.footer-social {
  margin: 0;
  padding: 0;
}
.footer-group li,
.footer-social li {
  margin-left: 0;
  padding-left: 0;
}
.footer-social {
  align-items: baseline;
}
.footer-social a {
  display: inline;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--white);
}
.footer-social a:hover {
  border-color: transparent;
  color: var(--mist);
}
.site-footer .footer-legal {
  color: var(--mist);
}
body:not(.home) .site-footer p,
body:not(.home) .site-footer .footer-group-title,
body:not(.home) .site-footer .footer-legal {
  color: var(--mist);
}
body:not(.home) .site-footer .footer-group a,
body:not(.home) .site-footer .footer-phone,
body:not(.home) .site-footer .footer-social a,
body:not(.home) .site-footer .footer-legal a {
  color: var(--white);
}

@media (max-width: 860px) {
  .mini a {
    grid-template-columns: minmax(170px, 260px) minmax(0, 1fr);
    gap: 22px 30px;
  }
  .mini-meta {
    grid-column: 2;
    text-align: left;
  }
  .outcome {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .outcome:first-child {
    border-top: 0;
  }
  .outcome-lead {
    min-height: 0;
  }
}

@media (max-width: 700px) {
  /* phones: the one-viewport opening yields to content — the hero-content
     reserves a fixed 300px band so the centered 284px hedcut always sits
     below the CTAs regardless of device viewport height */
  .home-opening {
    min-height: 0;
  }
  .home-opening .hero-content {
    padding-bottom: 300px;
  }
}

@media (max-width: 520px) {
  .mini a {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 28px 0;
  }
  .mini-meta {
    grid-column: auto;
  }
}

/* ---------- flagship service hub ---------- */

.service-hub {
  padding: clamp(68px, 8vw, 116px) 0;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}
.service-hub-layout {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(52px, 8vw, 124px);
  align-items: start;
}
.service-hub-eyebrow {
  margin: 0 0 18px;
  color: var(--blue);
  font-size: 0.72rem;
  font-weight: 720;
  letter-spacing: 0.13em;
  line-height: 1.3;
  text-transform: uppercase;
}
.service-hub-intro h2 {
  max-width: 9em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
  line-height: 1;
}
.service-hub-intro > p:last-child {
  max-width: 31em;
  margin: 26px 0 0;
  color: var(--char);
  font-size: 1rem;
  line-height: 1.62;
}
.service-hub-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.service-hub-item {
  margin: 0;
  border-bottom: 1px solid var(--border);
}
.service-hub-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  gap: clamp(18px, 3vw, 38px);
  align-items: start;
  padding: clamp(24px, 2.7vw, 38px) 0;
  color: var(--ink);
  text-decoration: none;
}
.service-hub-copy,
.service-hub-title,
.service-hub-text {
  display: block;
}
.service-hub-title {
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  font-stretch: 112%;
  font-weight: 690;
  letter-spacing: -0.02em;
  line-height: 1.08;
}
.service-hub-text {
  max-width: 44em;
  margin-top: 10px;
  color: var(--char);
  font-size: 0.95rem;
  line-height: 1.58;
}
.service-hub-arrow {
  color: var(--blue);
  font-size: 1.15rem;
  line-height: 1.2;
  transition: transform 0.18s ease;
}
.service-hub-link:hover,
.service-hub-link:focus-visible {
  color: var(--ink);
}
.service-hub-link:hover .service-hub-title,
.service-hub-link:focus-visible .service-hub-title {
  color: var(--blue);
}
.service-hub-link:hover .service-hub-arrow,
.service-hub-link:focus-visible .service-hub-arrow {
  transform: translateX(4px);
}
.service-detail .service-intro-copy h2[id]:not(:first-child) {
  margin-top: clamp(48px, 6vw, 72px);
}
body.page-template-page-service .included-grid {
  gap: 0 clamp(34px, 5vw, 72px);
  border-top: 1px solid var(--border);
}
body.page-template-page-service .included-item {
  padding: clamp(24px, 3vw, 34px) 0;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
}
body.page-template-page-service .project-card {
  overflow: visible;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.page-template-page-service .project-card:hover {
  transform: none;
  box-shadow: none;
}
body.page-template-page-service .project-card-media {
  aspect-ratio: 3 / 2;
  border: 1px solid var(--line);
  background: var(--mist);
}
body.page-template-page-service .project-card-body {
  padding: 18px 0 0;
}
body.page-template-page-service .project-card-title {
  font-size: 1.2rem;
  font-stretch: 112%;
  font-weight: 690;
}
body.page-template-page-service .project-card:hover .project-card-media img,
body.page-template-page-service .project-card:focus-visible .project-card-media img {
  transform: scale(1.015);
}
body.page-template-page-service .project-card:hover .project-card-title,
body.page-template-page-service .project-card:focus-visible .project-card-title {
  color: var(--blue);
}

@media (max-width: 900px) {
  .service-hub-layout {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .service-hub-intro h2 {
    max-width: 12em;
  }
}

@media (max-width: 620px) {
  .service-hub {
    padding: 62px 0;
  }
  .service-hub-link {
    grid-template-columns: minmax(0, 1fr) 20px;
    gap: 14px;
    padding: 26px 0;
  }
  .service-hub-text {
    font-size: 0.925rem;
  }
  body.page-template-page-service .included-item {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-hub-arrow,
  body.page-template-page-service .project-card-media img {
    transition: none;
  }
}

/* ==========================================================================
   PRE-LAUNCH QA 05
   About dropdown: founder narrative, process, reviews, pricing, and contact.
   One visual system, five task-specific layouts.
   ========================================================================== */

/* ---------- about: editorial founder narrative ---------- */

.about-story,
.about-story.has-portrait {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 30px clamp(28px, 4vw, 64px);
  align-items: start;
}
.about-story-heading {
  grid-column: 1 / 7;
  max-width: 10em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.about-story-body {
  grid-column: 1 / 7;
  max-width: 45em;
}
.about-story-body p {
  max-width: none;
}
.about-story-body p + p {
  margin-top: 22px;
}
.about-portrait {
  grid-column: 8 / 13;
  grid-row: 1 / 3;
  margin: 0;
  border: 1px solid var(--line);
  background: var(--ice);
}
.about-portrait img {
  width: 100%;
  border-radius: 0;
  box-shadow: none;
}
.about-section-heading {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  margin-bottom: clamp(40px, 5vw, 68px);
}
.about-section-heading h2 {
  grid-column: 1 / 7;
  max-width: 10em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.about-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.about-timeline li {
  min-width: 0;
  margin: 0;
  padding: clamp(24px, 3vw, 38px);
  border-left: 1px solid var(--line);
}
.about-timeline li:first-child {
  padding-left: 0;
  border-left: 0;
}
.about-timeline li:last-child {
  padding-right: 0;
}
.about-timeline h3 {
  margin: 12px 0 12px;
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
  line-height: 1.12;
}
.about-timeline p {
  max-width: 30em;
  margin: 0;
  color: var(--char);
  font-size: 0.94rem;
  line-height: 1.58;
}
.about-role-note {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(32px, 6vw, 96px);
  margin-top: clamp(48px, 6vw, 84px);
  padding: clamp(28px, 3.5vw, 46px) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.about-role-note h2 {
  margin: 0;
  font-size: clamp(1.45rem, 2.3vw, 2.15rem);
}
.about-role-note p {
  max-width: 46em;
  margin: 0;
}
.about-proof {
  border-bottom: 1px solid var(--line);
}
.about-proof-ledger {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.about-proof-ledger > div {
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
  min-width: 0;
  padding: clamp(24px, 3vw, 38px);
  border-left: 1px solid var(--line);
}
.about-proof-ledger > div:first-child {
  padding-left: 0;
  border-left: 0;
}
.about-proof-ledger > div:last-child {
  padding-right: 0;
}
.about-proof-ledger dt {
  color: var(--steel);
  font-size: 0.78rem;
  font-weight: 620;
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-transform: uppercase;
}
.about-proof-ledger dd {
  margin: 0;
  color: var(--ink);
  font-size: clamp(2rem, 3vw, 3rem);
  font-stretch: 112%;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}
.about-team-heading {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(32px, 6vw, 96px);
  margin-bottom: clamp(42px, 5vw, 66px);
}
.about-team-heading h2 {
  max-width: 9em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.about-team-heading .lede {
  max-width: 42em;
  margin: 0;
  color: var(--char);
}
.about-team-list {
  border-top: 1px solid var(--border);
}
.about-team-member {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: center;
  padding: clamp(30px, 4vw, 52px) 0;
  border-bottom: 1px solid var(--border);
}
.about-team-identity {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}
.about-team-identity img {
  width: 112px;
  height: 112px;
  border: 1px solid var(--line);
  border-radius: 0;
  object-fit: cover;
}
.about-team-member:not(.has-photo) .about-team-identity {
  grid-template-columns: 1fr;
}
.about-team-member h3 {
  margin: 0 0 7px;
  font-size: clamp(1.3rem, 2vw, 1.75rem);
}
.about-team-member .team-role {
  margin: 0;
  color: var(--blue);
}
.about-team-bio {
  max-width: 42em;
  margin: 0;
}
.about-team-note {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(32px, 6vw, 96px);
  padding-top: clamp(30px, 4vw, 52px);
}
.about-team-note p {
  grid-column: 2;
  max-width: 48em;
  margin: 0;
}
.about-team-note strong {
  color: var(--ink);
}

/* ---------- process: operational sequence ---------- */

.process-roadmap-heading {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 64px);
  align-items: end;
  margin-bottom: clamp(42px, 5vw, 66px);
}
.process-roadmap-heading h2 {
  grid-column: 1 / 7;
  max-width: 9em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.process-roadmap-heading p {
  grid-column: 8 / -1;
  max-width: 36em;
  margin: 0;
  color: var(--char);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
}
.process-detail {
  display: block;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.process-phase {
  position: relative;
  display: grid;
  grid-template-columns: minmax(140px, 2fr) minmax(0, 5fr) minmax(220px, 4fr);
  gap: clamp(28px, 5vw, 72px);
  margin: 0;
  padding: clamp(34px, 4.5vw, 62px) 0;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
}
.process-phase-featured {
  margin-inline: -24px;
  padding-inline: 24px;
  background: var(--ice);
  box-shadow: inset 4px 0 0 var(--blue);
}
.process-phase-marker {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.process-phase .step-num {
  color: var(--blue);
  font-family: inherit;
  font-size: clamp(2rem, 3.1vw, 3rem);
  font-stretch: 112%;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}
.process-phase .phase-duration {
  display: block;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--steel);
  font-size: 0.75rem;
  letter-spacing: 0.09em;
  line-height: 1.4;
}
.process-phase h3 {
  margin: 0 0 14px;
  font-size: clamp(1.55rem, 2.4vw, 2.25rem);
}
.process-phase p {
  max-width: 43em;
  margin: 0;
  color: var(--char);
}
.process-phase-deliverables {
  align-self: start;
}
.phase-deliverables-label {
  margin: 0 0 11px;
  color: var(--steel);
}
body:not(.home) main .phase-checklist {
  margin: 0;
  padding: 0;
  list-style: none;
}
.phase-checklist li {
  margin: 0;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  color: var(--char);
  font-size: 0.9rem;
  line-height: 1.45;
}
.phase-checklist li:last-child {
  border-bottom: 1px solid var(--line);
}
.process-roadmap .mid-cta {
  margin-top: clamp(42px, 5vw, 66px);
}
.process-aftercare-heading {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 64px);
  align-items: end;
  margin-bottom: clamp(38px, 5vw, 60px);
}
.process-aftercare-heading h2 {
  grid-column: 1 / 7;
  max-width: 8em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.process-aftercare-heading p {
  grid-column: 8 / -1;
  max-width: 36em;
  margin: 0;
  color: var(--char);
}
.process-aftercare-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.process-aftercare-item {
  padding: clamp(28px, 4vw, 48px);
  border-left: 1px solid var(--line);
}
.process-aftercare-item:first-child {
  padding-left: 0;
  border-left: 0;
}
.process-aftercare-item:last-child {
  padding-right: 0;
}
.process-aftercare-item h3 {
  margin: 0 0 14px;
  font-size: clamp(1.25rem, 1.8vw, 1.6rem);
}
.process-aftercare-item p {
  max-width: none;
  margin: 0;
  color: var(--char);
  font-size: 0.94rem;
}
.process-variables-layout,
.process-faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}
.process-variables-layout h2,
.process-faq-layout > h2 {
  max-width: 8em;
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
}
.process-variables-copy {
  max-width: 48em;
}
.process-variables-copy p {
  max-width: none;
}
.process-faq .page-faq {
  margin: 0;
}

/* ---------- pricing: decision ledger ---------- */

.pricing-posture-layout {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 32px clamp(28px, 4vw, 64px);
  align-items: start;
}
.pricing-posture-layout > h2 {
  grid-column: 1 / 5;
  max-width: 8em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.pricing-posture-copy,
.pricing-principle {
  grid-column: 5 / 13;
}
.pricing-posture-copy p {
  max-width: 48em;
}
.pricing-posture-copy p + p {
  margin-top: 22px;
}
.pricing-principle {
  margin-top: 12px;
  padding: clamp(26px, 3vw, 40px) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.pricing-principle .eyebrow {
  margin: 0 0 14px;
  color: var(--blue);
}
.pricing-principle .invest-figure {
  max-width: 30em;
  margin: 0 0 12px;
  color: var(--ink);
  font-family: inherit;
  font-size: clamp(1.4rem, 2.3vw, 2.1rem);
  font-stretch: 112%;
  font-weight: 680;
}
.pricing-principle > p:last-child {
  max-width: 48em;
  margin: 0;
}
.pricing-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: end;
  margin-bottom: clamp(42px, 5vw, 66px);
}
.pricing-section-heading h2 {
  max-width: 11em;
  margin: 0;
  font-size: clamp(2rem, 3.2vw, 3.25rem);
}
.pricing-section-heading .lede {
  max-width: 40em;
  margin: 0;
  color: var(--char);
}
.pricing-ledger {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.pricing-ledger-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 5fr) minmax(240px, 4fr);
  gap: clamp(24px, 5vw, 72px);
  margin: 0;
  padding: clamp(32px, 4vw, 54px) 0;
  border-bottom: 1px solid var(--border);
}
.pricing-ledger-number {
  color: var(--blue);
  font-size: 1.05rem;
  font-stretch: 112%;
  font-weight: 720;
}
.pricing-ledger-copy h3 {
  margin: 0 0 13px;
  font-size: clamp(1.4rem, 2.1vw, 1.95rem);
}
.pricing-ledger-copy p {
  max-width: 42em;
  margin: 0;
}
.pricing-ledger-factors {
  align-self: start;
}
.driver-factors-label {
  margin: 0 0 11px;
  color: var(--steel);
}
body:not(.home) main .driver-factors {
  margin: 0;
  padding: 0;
  list-style: none;
}
.driver-factors li {
  margin: 0;
  padding: 9px 0;
  border-top: 1px solid var(--line);
  color: var(--char);
  font-size: 0.9rem;
  line-height: 1.45;
}
.driver-factors li:last-child {
  border-bottom: 1px solid var(--line);
}
.pricing-included-layout,
.pricing-quote-layout,
.pricing-faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}
.pricing-included-heading h2,
.pricing-quote-heading h2,
.pricing-faq-layout > h2 {
  max-width: 9em;
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
}
.pricing-included-heading .lede,
.pricing-quote-heading .lede {
  max-width: 24em;
  margin: 18px 0 0;
  color: var(--char);
  font-size: 1rem;
}
.pricing-included-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(28px, 4vw, 54px);
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.pricing-included-list li {
  margin: 0;
  padding: 20px 0;
  border-bottom: 1px solid var(--border);
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 590;
  line-height: 1.45;
}
.pricing-quote-steps {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
  list-style: none;
  counter-reset: pricing-step;
}
.pricing-quote-steps li {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 18px;
  margin: 0;
  padding: 22px 0;
  border-bottom: 1px solid var(--border);
  counter-increment: pricing-step;
}
.pricing-quote-steps li::before {
  content: counter(pricing-step, decimal-leading-zero);
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 720;
  letter-spacing: 0.04em;
}
.pricing-quote-steps span {
  max-width: 46em;
}
.pricing-quote-cta {
  grid-column: 2;
  margin-top: 34px;
}
.pricing-faq .page-faq {
  margin: 0;
}

/* ---------- reviews: visual proof + complete disclosure archive ---------- */

.reviews-proof-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: clamp(58px, 7vw, 94px); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.reviews-proof-strip p { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 24px 30px; border-left: 1px solid var(--line); }
.reviews-proof-strip p:first-child { padding-left: 0; border-left: 0; }
.reviews-proof-strip strong { color: var(--ink); font-size: clamp(1.8rem, 3vw, 2.7rem); font-weight: 680; line-height: 1; }
.reviews-proof-strip span { margin-top: 8px; color: var(--steel); font-size: 0.78rem; font-weight: 620; letter-spacing: 0.04em; text-transform: uppercase; }
.reviews-introduction-layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.reviews-introduction-layout > h2 { max-width: 9em; margin: 0; font-size: clamp(2rem, 3.2vw, 3.25rem); }
.reviews-introduction-copy { max-width: 48em; }
.reviews-introduction-copy p { max-width: none; }
.reviews-introduction-copy p + p { margin-top: 22px; }
.featured-reviews { display: flex; flex-wrap: wrap; gap: 1px; margin-top: clamp(48px, 6vw, 80px); padding: 1px; background: var(--line); }
.featured-review { display: flex; flex: 1 1 340px; flex-direction: column; min-width: 0; padding: clamp(28px, 3vw, 42px); background: var(--white); }
.featured-review-media { display: flex; align-items: center; height: 92px; margin-bottom: 28px; }
.review-image { display: block; }
.review-image-portrait { width: 92px; height: 92px; border: 1px solid var(--border); border-radius: 50%; object-fit: cover; object-position: center top; filter: none; }
.review-image-mark { width: 154px; max-width: 100%; height: 76px; padding: 12px; object-fit: contain; background: var(--ice); }
.featured-review > blockquote { flex: 1; max-height: var(--featured-review-excerpt-height, 24rem); margin: 0 0 30px; padding: 0; overflow: hidden; border: 0; background: transparent; font-style: normal; opacity: 1; transition: max-height 320ms ease, margin 320ms ease, opacity 180ms ease; }
.featured-review > blockquote p { max-width: 34em; margin: 0; color: var(--ink); font-size: clamp(1rem, 1.25vw, 1.13rem); line-height: 1.62; }
.featured-review.is-expanded > blockquote { flex: 0 0 auto; max-height: 0; margin-bottom: 0; opacity: 0; }
.featured-review > footer { padding-top: 18px; border-top: 1px solid var(--line); transition: padding 320ms ease; }
.featured-review.is-expanded > footer { padding-top: 14px; }
.featured-review > footer strong { display: block; color: var(--ink); font-size: 0.96rem; }
.featured-review > footer p { max-width: none; margin: 5px 0 0; color: var(--steel); font-size: 0.8rem; }
.featured-review > footer span { display: block; margin-top: 8px; color: var(--steel); font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase; }
.featured-review-full { margin-top: 20px; }
.featured-review-full summary { color: var(--blue); font-size: 0.82rem; font-weight: 680; cursor: pointer; }
.featured-review-full summary:hover { color: var(--ink); }
.featured-review-close-label { display: none; }
.featured-review-full[open] .featured-review-open-label { display: none; }
.featured-review-full[open] .featured-review-close-label { display: inline; }
.featured-review-full blockquote { margin: 20px 0 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--line); background: transparent; font-style: normal; }
.featured-review-full blockquote p { max-width: none; margin: 0; color: var(--char); font-size: 0.9rem; line-height: 1.65; }
.featured-review-full > p, .featured-review-site { max-width: none; margin: 16px 0 0; font-size: 0.82rem; }
.reviews-archive-heading { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 6vw, 96px); align-items: start; margin-bottom: clamp(48px, 6vw, 72px); }
.reviews-archive-heading h2 { margin: 0; font-size: clamp(2rem, 3.2vw, 3.25rem); }
.reviews-archive-heading p { max-width: 42em; margin: 4px 0 0; }
.review-index { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: clamp(32px, 6vw, 96px); align-items: start; margin-bottom: clamp(72px, 8vw, 112px); padding-top: 18px; border-top: 1px solid var(--border); }
.review-index > p { margin: 0; color: var(--ink); font-size: 0.72rem; font-weight: 720; letter-spacing: 0.12em; text-transform: uppercase; }
.review-index ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 30px; margin: 0; padding: 0; list-style: none; }
.review-index li { margin: 0; }
.review-index a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; height: 100%; padding: 0 0 14px; border-bottom: 0px solid var(--border); color: var(--ink); font-size: 0.9rem; font-weight: 620; line-height: 1.4; text-decoration: none; }
.review-index a:hover span, .review-index a:focus-visible span { color: var(--blue); }
.review-index small { color: var(--blue); font-size: 0.78rem; font-weight: 720; }
.review-theme { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: clamp(32px, 6vw, 96px); align-items: start; margin: 0; padding: clamp(58px, 7vw, 94px) 0; border-top: 0px solid var(--border); scroll-margin-top: 96px; }
.review-theme:first-of-type { margin: 0; }
.review-theme-header { position: sticky; top: 112px; }
.review-theme-heading { max-width: 10em; margin: 0; font-size: clamp(1.7rem, 2.8vw, 2.6rem); }
.review-theme-header p { margin: 14px 0 0; color: var(--steel); font-size: 0.82rem; }
.review-ledger { border-top: 1px solid var(--border); }
.review-entry { margin: 0; border-bottom: 1px solid var(--border); }
.review-entry > summary, .review-entry-static-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: start; min-width: 0; padding: 28px 0; list-style: none; }
.review-entry > summary { cursor: pointer; }
.review-entry.has-review-image > summary, .review-entry.has-review-image .review-entry-static-inner { grid-template-columns: 72px minmax(0, 1fr) auto; }
.review-entry > summary::-webkit-details-marker { display: none; }
.review-entry-media { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; overflow: hidden; }
.review-entry-media .review-image-portrait { width: 72px; height: 72px; }
.review-entry-media .review-image-mark { width: 72px; height: 72px; padding: 9px; background: var(--white); }
.review-entry-summary { display: flex; flex-direction: column; min-width: 0; }
.review-entry-person { color: var(--ink); font-size: 1rem; font-weight: 700; }
.review-entry-firm { margin-top: 3px; color: var(--steel); font-size: 0.78rem; }
.review-entry-excerpt { max-width: 48em; margin-top: 14px; color: var(--char); font-size: 0.92rem; line-height: 1.6; }
.review-entry .review-source { margin-top: 12px; color: var(--steel); font-size: 0.7rem; letter-spacing: 0.04em; text-transform: uppercase; }
.review-entry-action { display: inline-flex; align-items: center; gap: 10px; padding-top: 2px; color: var(--blue); font-size: 0.76rem; font-weight: 700; white-space: nowrap; }
.review-entry-action::after { content: ""; flex: none; width: 24px; height: 24px; border: 1px solid var(--border); background: linear-gradient(var(--ink), var(--ink)) center / 12px 1px no-repeat, linear-gradient(var(--ink), var(--ink)) center / 1px 12px no-repeat; }
.review-entry[open] .review-entry-action::after { background: linear-gradient(var(--ink), var(--ink)) center / 12px 1px no-repeat; }
.review-entry > summary:hover .review-entry-action, .review-entry > summary:focus-visible .review-entry-action { color: var(--ink); }
.review-entry-full { padding: 0 0 34px; }
.review-entry.has-review-image .review-entry-full { padding-left: 100px; }
.review-entry-full blockquote { margin: 0; padding: 24px 0 0; border: 0; border-top: 1px solid var(--line); background: transparent; font-style: normal; }
.review-entry-full blockquote p { max-width: 48em; margin: 0; color: var(--char); font-size: 0.95rem; line-height: 1.68; }
.review-entry-full > p { max-width: none; margin: 18px 0 0; font-size: 0.82rem; }
/* ---------- contact: form-first utility ---------- */

.contact-section {
  padding-top: clamp(64px, 8vw, 112px);
}
body.page-template-page-contact .mobile-bar {
  display: none;
}
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(280px, 3fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: start;
}
.contact-form {
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.contact-form > h2 {
  max-width: 10em;
  margin: 0 0 34px;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
}
.contact-form .wpforms-container {
  margin: 0;
}
.contact-form .wpforms-field-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 28px;
}
.contact-form .wpforms-field {
  min-width: 0;
  margin: 0;
  padding: 0;
}
.contact-form #wpforms-3752-field_8-container,
.contact-form #wpforms-3752-field_9-container {
  grid-column: 1 / -1;
}
.contact-form .wpforms-field-label {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 680;
}
.contact-form .wpforms-field-description {
  margin-top: 6px;
  color: var(--steel);
  font-size: 0.78rem;
}
.contact-form .wpforms-container input[type="text"],
.contact-form .wpforms-container input[type="email"],
.contact-form .wpforms-container input[type="tel"],
.contact-form .wpforms-container input[type="url"],
.contact-form .wpforms-container select,
.contact-form .wpforms-container textarea {
  min-height: 54px;
  border: 1px solid var(--border) !important;
  border-radius: 2px;
  padding: 13px 14px;
  background: #F6FBFE !important;
  color: var(--char);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.4;
  transition: background-color 160ms ease, border-color 160ms ease, outline-color 160ms ease;
}
.contact-form .wpforms-container textarea {
  min-height: 154px;
  resize: vertical;
}
.contact-form .wpforms-container input:focus,
.contact-form .wpforms-container select:focus,
.contact-form .wpforms-container textarea:focus {
  background: var(--white) !important;
  border-color: var(--blue) !important;
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}
.contact-form .wpforms-submit-container {
  display: flex;
  align-items: center;
  margin-top: 30px;
  padding: 0;
}
.contact-form .wpforms-container button[type="submit"] {
  min-height: 54px;
  border-radius: 2px !important;
  padding: 0 30px !important;
  background: var(--accent) !important;
  color: var(--white) !important;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 680 !important;
}
.contact-form .wpforms-container button[type="submit"]:hover {
  background: var(--ink) !important;
}
.contact-form-note {
  max-width: 62ch;
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--steel);
  font-size: 0.88rem;
  line-height: 1.6;
}
.contact-context {
  border-top: 1px solid var(--border);
}
.contact-direct-block,
.contact-next-block {
  padding: 24px 0 32px;
  border-bottom: 1px solid var(--border);
}
.contact-context h2 {
  margin: 0 0 14px;
  font-size: 1.35rem;
}
.contact-context p {
  margin: 0;
  font-size: 0.95rem;
}
.contact-direct {
  margin: 26px 0 0;
}
.contact-direct > div {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.contact-direct > div:last-child {
  border-bottom: 1px solid var(--line);
}
.contact-direct dt {
  color: var(--steel);
  font-size: 0.7rem;
  font-weight: 720;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-transform: uppercase;
}
.contact-direct dd {
  min-width: 0;
  margin: 0;
}
.contact-line {
  color: var(--blue);
  font-size: 0.98rem;
  font-weight: 640;
}
.contact-address {
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--char);
}
.contact-next-block .next-steps {
  margin-top: 20px;
}
.contact-next-block .next-steps li {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 13px 0;
  border-top: 1px solid var(--line);
  color: var(--char);
  font-size: 0.9rem;
}
.contact-next-block .next-steps li:last-child {
  border-bottom: 1px solid var(--line);
}
.contact-next-block .next-steps li::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: 0.55em;
  background: var(--blue);
}
.contact-context .contact-quote {
  margin: 28px 0;
  padding: 26px 24px;
  border: 0;
  border-left: 3px solid var(--blue);
  background: var(--ice);
  color: var(--char);
  font-size: 0.95rem;
  line-height: 1.65;
}
.contact-context .contact-quote cite {
  margin-top: 16px;
  color: var(--ink);
}
.contact-context .contact-quote-source {
  color: var(--steel);
}

/* ---------- quote receipt ---------- */

body.page-template-page-quote-thank-you .mobile-bar {
  display: none;
}
.quote-thanks-hero .hero-sub p {
  margin: 0;
}
.quote-receipt-section {
  padding-top: clamp(64px, 8vw, 112px);
}
.quote-receipt-layout {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(280px, 3fr);
  gap: clamp(48px, 6vw, 88px);
  align-items: start;
}
.quote-receipt-main,
.quote-receipt-next {
  border-top: 1px solid var(--border);
}
.quote-receipt-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.8fr);
  gap: 28px;
  align-items: end;
  padding: 24px 0 30px;
}
.quote-receipt-heading h2,
.quote-receipt-next h2,
.quote-receipt-missing h2 {
  margin: 0;
  font-size: clamp(1.6rem, 2.4vw, 2.35rem);
}
.quote-receipt-heading p {
  margin: 0;
  color: var(--steel);
  font-size: 0.84rem;
  line-height: 1.55;
}
.quote-receipt-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-bottom: 1px solid var(--border);
}
.quote-receipt-list > div {
  min-width: 0;
  padding: 22px 24px 24px 0;
  border-top: 1px solid var(--line);
}
.quote-receipt-list > div:nth-child(even) {
  padding-right: 0;
  padding-left: 24px;
  border-left: 1px solid var(--line);
}
.quote-receipt-list .quote-receipt-wide {
  grid-column: 1 / -1;
  padding-right: 0;
  padding-left: 0;
  border-left: 0;
}
.quote-receipt-list dt {
  margin-bottom: 8px;
  color: var(--steel);
  font-size: 0.7rem;
  font-weight: 720;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.quote-receipt-list dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--char);
  font-size: 0.98rem;
  line-height: 1.6;
}
.quote-receipt-next {
  padding: 24px 0 0;
}
.quote-receipt-next .next-steps {
  margin: 20px 0 24px;
}
.quote-receipt-next .next-steps li {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 13px 0;
  border-top: 1px solid var(--line);
  color: var(--char);
  font-size: 0.9rem;
}
.quote-receipt-next .next-steps li:last-child {
  border-bottom: 1px solid var(--line);
}
.quote-receipt-next .next-steps li::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: 0.55em;
  background: var(--blue);
}
.quote-receipt-process {
  color: var(--blue);
  font-size: 0.9rem;
  font-weight: 680;
}
.quote-receipt-missing {
  padding-top: 24px;
}
.quote-receipt-missing p {
  margin: 18px 0 28px;
}

@media (max-width: 980px) {
  .about-story-heading,
  .about-story-body {
    grid-column: 1 / 8;
  }
  .about-portrait {
    grid-column: 8 / 13;
  }
  .about-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .about-timeline li:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
  .about-timeline li:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }
  .about-timeline li:nth-child(even) {
    padding-right: 0;
  }
  .process-phase {
    grid-template-columns: minmax(120px, 2fr) minmax(0, 5fr);
  }
  .process-phase-deliverables {
    grid-column: 2;
  }
  .pricing-ledger-row {
    grid-template-columns: 54px minmax(0, 1fr);
  }
  .pricing-ledger-factors {
    grid-column: 2;
    max-width: 36em;
  }
  .review-index,
  .review-theme {
    grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
    gap: 38px;
  }
  .featured-review { flex-basis: 300px; }
  .contact-layout {
    grid-template-columns: minmax(0, 7fr) minmax(280px, 4fr);
    gap: 48px;
  }
  .quote-receipt-layout {
    grid-template-columns: minmax(0, 7fr) minmax(280px, 4fr);
    gap: 48px;
  }
}

@media (max-width: 800px) {
  .about-story,
  .about-story.has-portrait {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .about-story-heading,
  .about-portrait,
  .about-story-body {
    grid-column: 1;
    grid-row: auto;
  }
  .about-story-heading {
    max-width: 12em;
  }
  .about-portrait {
    width: min(100%, 520px);
  }
  .about-role-note,
  .about-team-heading,
  .about-team-member,
  .about-team-note,
  .process-roadmap-heading,
  .process-aftercare-heading,
  .process-variables-layout,
  .process-faq-layout,
  .pricing-section-heading,
  .pricing-included-layout,
  .pricing-quote-layout,
  .pricing-faq-layout,
  .reviews-introduction-layout,
  .reviews-archive-heading,
  .review-index,
  .review-theme,
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .quote-receipt-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .about-team-note p,
  .process-roadmap-heading h2,
  .process-roadmap-heading p,
  .process-aftercare-heading h2,
  .process-aftercare-heading p,
  .pricing-quote-cta {
    grid-column: 1;
  }
  .process-aftercare-grid {
    grid-template-columns: 1fr;
  }
  .process-aftercare-item,
  .process-aftercare-item:first-child,
  .process-aftercare-item:last-child {
    padding: 28px 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
  .process-aftercare-item:first-child {
    border-top: 0;
  }
  .about-team-member {
    align-items: start;
  }
  .about-team-bio {
    padding-left: 136px;
  }
  .about-proof-ledger {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .about-proof-ledger > div:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }
  .about-proof-ledger > div:nth-child(n + 3) {
    border-top: 1px solid var(--line);
  }
  .about-proof-ledger > div:nth-child(even) {
    padding-right: 0;
  }
  .pricing-posture-layout {
    grid-template-columns: 1fr;
  }
  .pricing-posture-layout > h2,
  .pricing-posture-copy,
  .pricing-principle {
    grid-column: 1;
  }
  .review-index ul {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .review-theme-header {
    position: static;
  }
  .review-theme {
    scroll-margin-top: 88px;
  }
  .review-entry > summary, .review-entry-static-inner { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .review-entry.has-review-image > summary, .review-entry.has-review-image .review-entry-static-inner { grid-template-columns: 72px minmax(0, 1fr); }
  .review-entry-action { grid-column: 1; }
  .review-entry.has-review-image .review-entry-action { grid-column: 2; }
  .contact-context {
    max-width: none;
  }
}

@media (max-width: 620px) {
  .about-story-heading,
  .about-section-heading h2,
  .about-team-heading h2,
  .pricing-posture-layout > h2,
  .pricing-section-heading h2,
  .reviews-introduction-layout > h2 {
    font-size: clamp(1.85rem, 9vw, 2.55rem);
  }
  .about-timeline {
    grid-template-columns: 1fr;
  }
  .about-timeline li,
  .about-timeline li:first-child,
  .about-timeline li:nth-child(odd),
  .about-timeline li:nth-child(even),
  .about-timeline li:last-child {
    padding: 26px 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
  .about-timeline li:first-child {
    border-top: 0;
  }
  .about-proof-ledger {
    grid-template-columns: 1fr;
  }
  .about-proof-ledger > div,
  .about-proof-ledger > div:first-child,
  .about-proof-ledger > div:nth-child(odd),
  .about-proof-ledger > div:nth-child(even),
  .about-proof-ledger > div:last-child {
    padding: 24px 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }
  .about-proof-ledger > div:first-child {
    border-top: 0;
  }
  .about-team-identity {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 18px;
  }
  .about-team-identity img {
    width: 88px;
    height: 88px;
  }
  .about-team-bio {
    padding-left: 0;
  }
  .process-phase,
  .process-phase-deliverables {
    grid-template-columns: 1fr;
    grid-column: auto;
  }
  .process-phase {
    gap: 26px;
  }
  .process-phase-featured {
    margin-inline: 0;
    padding-inline: 20px;
  }
  .process-phase-marker {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
  }
  .pricing-ledger-row,
  .pricing-ledger-factors {
    grid-template-columns: 1fr;
    grid-column: auto;
  }
  .pricing-ledger-row {
    gap: 18px;
  }
  .pricing-included-list {
    grid-template-columns: 1fr;
  }
  .review-index {
    margin-bottom: 56px;
  }
  .reviews-proof-strip { grid-template-columns: 1fr; }
  .reviews-proof-strip p, .reviews-proof-strip p:first-child { padding: 18px 0; border-top: 1px solid var(--line); border-left: 0; }
  .reviews-proof-strip p:first-child { border-top: 0; }
  .reviews-proof-strip p { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 24px; }
  .reviews-proof-strip strong { font-size: 1.65rem; }
  .reviews-proof-strip span { margin-top: 0; text-align: right; }
  .featured-reviews { display: grid; grid-template-columns: 1fr; }
  .featured-review { padding: 26px 22px; }
  .review-entry > summary, .review-entry-static-inner, .review-entry.has-review-image > summary, .review-entry.has-review-image .review-entry-static-inner { grid-template-columns: 56px minmax(0, 1fr); gap: 16px; }
  .review-entry:not(.has-review-image) > summary, .review-entry:not(.has-review-image) .review-entry-static-inner { grid-template-columns: minmax(0, 1fr); }
  .review-entry-media { width: 56px; height: 56px; }
  .review-entry-media .review-image-portrait, .review-entry-media .review-image-mark { width: 56px; height: 56px; }
  .review-entry-action, .review-entry.has-review-image .review-entry-action { grid-column: 1 / -1; justify-content: space-between; padding-top: 4px; }
  .review-entry.has-review-image .review-entry-full { padding-left: 0; }
  .review-theme {
    padding: 52px 0;
  }
  .contact-form > h2 {
    margin-bottom: 26px;
  }
  .contact-layout {
    grid-template-columns: 1fr;
  }
  .contact-context {
    margin-top: 8px;
  }
  .quote-receipt-heading,
  .quote-receipt-list {
    grid-template-columns: 1fr;
  }
  .quote-receipt-list > div,
  .quote-receipt-list > div:nth-child(even),
  .quote-receipt-list .quote-receipt-wide {
    grid-column: auto;
    padding: 20px 0 22px;
    border-left: 0;
  }
}

@media (max-width: 620px) {
  body.page-template-page-contact {
    padding-bottom: 0;
  }
  .contact-form .wpforms-field-container {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .contact-form #wpforms-3752-field_8-container,
  .contact-form #wpforms-3752-field_9-container {
    grid-column: auto;
  }
  .contact-form .wpforms-submit-container {
    display: block;
  }
  .contact-form .wpforms-container button[type="submit"] {
    width: 100%;
  }
}

/* ---------- sitemap ---------- */

.sitemap-directory {
  background: var(--white);
}
.sitemap-primary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 64px 72px;
}
.sitemap-group {
  border-top: var(--hairline);
  padding-top: 24px;
}
.sitemap-group h2 {
  margin-bottom: 20px;
  font-size: clamp(1.4rem, 1.1rem + 0.8vw, 2rem);
}
.sitemap-group ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sitemap-group li {
  border-bottom: 1px solid var(--mist);
}
.sitemap-group a {
  display: block;
  padding: 11px 0;
  color: var(--char);
  font-weight: 560;
  line-height: 1.35;
  text-decoration: none;
}
.sitemap-group a:hover {
  color: var(--blue);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.sitemap-wide {
  margin-top: 72px;
}
.sitemap-archive-link {
  margin: -4px 0 24px;
}
.sitemap-archive-link a {
  display: inline-block;
  padding: 0 0 2px;
  color: var(--blue);
  border-bottom: 1px solid currentColor;
}
.sitemap-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 40px;
}

@media (max-width: 900px) {
  .sitemap-link-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .sitemap-primary-grid,
  .sitemap-link-grid {
    grid-template-columns: 1fr;
  }
  .sitemap-primary-grid {
    gap: 48px;
  }
  .sitemap-wide {
    margin-top: 56px;
  }
}
