/*
Theme Name: Northline Restoration
Theme URI: https://example.com/
Author: Northline
Description: A modern custom WordPress theme for construction and restoration companies.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: northline
*/

:root {
  --ink: #272B28;
  --muted: #5A5F58;
  --forest: #18362C;
  --forest-dark: #10271F;
  --gold: #8A6A50;
  --clay: #513B2E;
  --sand: #E9E1D3;
  --sage: #F5F0E6;
  --ivory: #F5F0E6;
  --white: #FCFAF6;
  --light-text: #FCFAF6;
  --card: #FCFAF6;
  --line: rgba(23, 60, 50, 0.18);
  --shadow: 0 16px 40px rgba(16,39,31,.08);
  --radius: 6px;
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 40px;
  --space-xl: 64px;
  --space-2xl: 96px;
  --container-width: 1200px;
  --page-gutter: clamp(20px, 4vw, 32px);
  --section-space: clamp(56px, 8vw, 104px);
  --section-space-compact: clamp(48px, 6vw, 80px);
  --wrap: var(--container-width);
  --header-offset: 108px;
  --mobile-menu-offset: 84px;
  --mobile-cta-height: 64px;
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; scroll-padding-top: var(--header-offset); }
body { margin: 0; color: var(--ink); background: var(--ivory); font: 400 16px/1.6 "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif; overflow-x: clip; }
a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
.reveal-on-scroll { opacity: 0; transform: translateY(16px); transition: opacity 600ms cubic-bezier(.2,.8,.2,1), transform 600ms cubic-bezier(.2,.8,.2,1); will-change: opacity, transform; }
.reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.wrap { width: min(calc(100% - (var(--page-gutter) * 2)), var(--wrap)); margin-inline: auto; }
.narrow { max-width: 760px; }
.section,
.site-section { padding-block: var(--section-space); }
.section, .cta, .site-section { position: relative; }
.site-section--compact,
.section-estimate,
.editorial-cta,
.editorial-hero { padding-block: var(--section-space-compact); }
.section > .wrap > :first-child,
.service-section > .wrap > :first-child,
.cta > .wrap > :first-child,
.site-section > .wrap > :first-child { margin-top: 0; }
.section > .wrap > :last-child,
.service-section > .wrap > :last-child,
.cta > .wrap > :last-child,
.site-section > .wrap > :last-child { margin-bottom: 0; }
.section + .section,
.section + .cta,
.cta + .section,
.cta + .cta { border-top: 1px solid var(--line); }
.hero + .section,
.hero + .cta,
.process + .section,
.section + .process,
.service-feature--dark + .section,
.section + .service-feature--dark,
.service-feature--future + .section,
.section + .service-feature--future,
.about-purpose + .section,
.section + .about-purpose,
.editorial-cta + .site-footer,
.section-estimate + .site-footer { border-top: 0; }
.eyebrow { margin: 0 0 12px; color: var(--clay); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1,h2 { margin: 0 0 14px; color: var(--forest); font-family: Georgia, "Times New Roman", serif; font-weight: 700; line-height: 1.08; letter-spacing: -.015em; }
h1 { font-size: clamp(2.5rem, 5vw, 4.75rem); }
h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); }
h3 { margin: 0 0 14px; color: var(--forest); font-family: "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif; font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 600; line-height: 1.2; letter-spacing: 0; }
p { margin: 0 0 16px; }
.lede { color: var(--muted); font-size: clamp(1rem, 1.2vw, 1.125rem); line-height: 1.65; max-width: 68ch; }

.button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 9px; padding: 10px 16px; border: 1px solid var(--clay); border-radius: 5px; background: var(--clay); color: var(--light-text); font-size: .9rem; font-weight: 700; text-decoration: none; text-transform: none; letter-spacing: .01em; transition: background-color .16s ease, border-color .16s ease, color .16s ease; }
.button:hover { background: #3f2d22; border-color: #3f2d22; }
.button--primary { border-color: var(--clay); background: var(--clay); color: var(--light-text); }
.button--primary:hover { background: #402f24; border-color: #402f24; }
.button--ghost { border-color: var(--light-text); background: transparent; color: var(--light-text); }
.button--ghost:hover { background: rgba(247,244,237,.08); color: var(--light-text); }
.button--outline { min-width: 240px; border-color: var(--light-text); background: transparent; color: var(--light-text); }
.button--outline:hover { border-color: var(--light-text); background: rgba(247,244,237,.10); }
.text-link { color: var(--forest); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.arrow-link { color: var(--forest); font-size: .9rem; font-weight: 700; letter-spacing: .01em; text-decoration: none; text-transform: none; }
.arrow-link:hover { color: var(--clay); }

.top-contact-bar { background: var(--forest-dark); color: #fff; border-bottom: 1px solid rgba(255,255,255,.12); }
.top-contact-inner { min-height: 24px; display: flex; align-items: center; justify-content: flex-start; gap: 11px; }
.top-contact-left { display: flex; align-items: center; gap: 0; }
.top-contact-left span,
.top-contact-left a { color: #fff; font-size: .875rem; font-weight: 600; text-decoration: none; white-space: nowrap; line-height: 1; }
.top-contact-left > * + * { margin-left: 11px; padding-left: 11px; border-left: 1px solid rgba(255,255,255,.3); }
.top-contact-left a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.site-header {
    position: sticky;
    z-index: 120;
    top: 0;
    left: auto;
    right: auto;
    border-bottom: 1px solid rgba(16, 39, 31, .08);
    background: var(--ivory);
    backdrop-filter: none;
    transition: box-shadow .2s ease, border-color .2s ease;
}
.site-header.is-scrolled { border-bottom-color: rgba(16,39,31,.16); box-shadow: 0 8px 22px rgba(16,39,31,.08); }
.header-inner,
.site-header__inner { min-height: 88px; padding: 4px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1.1rem; line-height: 1; }
.site-branding { display: flex; align-items: center; justify-self: start; min-width: 0; flex-shrink: 0; }
.brand { margin-right: 0; text-decoration: none; display: flex; flex-direction: column; justify-content: center; line-height: 1.02; }
.brand strong { display: block; color: var(--forest); font-family: Georgia,serif; font-size: 20px; line-height: 1; }
.brand span { display: block; margin-top: 2px; color: var(--muted); font-size: .875rem; font-weight: 700; letter-spacing: .06em; line-height: 1; text-transform: uppercase; }
.custom-logo-link { display: flex; align-items: center; line-height: 0; }
.custom-logo { display: block; width: clamp(280px, 22vw, 330px); height: auto; max-height: 72px; object-fit: contain; transition: transform .2s ease; }
.site-header.is-scrolled .custom-logo { transform: scale(.96); transform-origin: left center; }
.site-nav { justify-self: center; align-self: center; width: auto; }
.site-nav .primary-nav-list { display: flex; gap: clamp(28px, 2.2vw, 34px); align-items: center; justify-content: center; margin: 0; padding: 0; list-style: none; }
.site-nav .menu-item { position: relative; margin: 0; }
.site-nav .menu-item-row { display: inline-flex; align-items: center; min-height: 44px; }
.site-nav .primary-nav-list > .menu-item > a,
.site-nav .primary-nav-list > .menu-item > .menu-item-row > a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 10px 0; color: var(--forest); font-size: 15.5px; font-weight: 500; line-height: 1; text-decoration: none; font-family: "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif; }
.site-nav .primary-nav-list > .menu-item > a::after,
.site-nav .primary-nav-list > .menu-item > .menu-item-row > a::after { position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; background: var(--clay); content: ""; transform: scaleX(0); transform-origin: left center; transition: transform .18s ease; }
.site-nav .primary-nav-list:hover > .current-menu-item > a::after,
.site-nav .primary-nav-list:hover > .current-menu-item > .menu-item-row > a::after,
.site-nav .primary-nav-list:hover > .current-menu-ancestor > .menu-item-row > a::after { transform: scaleX(0); }
.site-nav .primary-nav-list > .menu-item:hover > a::after,
.site-nav .primary-nav-list > .menu-item:hover > .menu-item-row > a::after,
.site-nav .primary-nav-list > .menu-item:focus-within > a::after,
.site-nav .primary-nav-list > .menu-item:focus-within > .menu-item-row > a::after,
.site-nav .primary-nav-list > .current-menu-item > a::after,
.site-nav .primary-nav-list > .current-menu-item > .menu-item-row > a::after,
.site-nav .primary-nav-list > .current-menu-ancestor > .menu-item-row > a::after { transform: scaleX(1); }
.site-nav .submenu-toggle { display: none; }
.site-nav .nav-chevron { width: 8px; height: 8px; margin-left: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-1px); opacity: .75; }
.site-nav .sub-menu { position: absolute; top: 100%; left: 0; min-width: 254px; margin: 0; padding: 14px 10px 10px; list-style: none; border: 1px solid rgba(16,39,31,.16); border-radius: 8px; background: var(--ivory); box-shadow: 0 10px 26px rgba(16,39,31,.12); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(4px); transition: opacity .16s ease, transform .16s ease, visibility .16s ease; z-index: 25; }
.site-nav .menu-item-has-children > .sub-menu::before { position: absolute; left: 0; right: 0; top: -10px; height: 10px; content: ""; }
.site-nav .menu-item-has-children:hover > .sub-menu,
.site-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.site-nav .sub-menu .menu-item { margin: 0; }
.site-nav .sub-menu a { display: block; min-height: 44px; padding: 10px 12px; color: var(--forest); font-size: 15px; font-weight: 500; line-height: 1.2; text-align: left; text-decoration: none; border-radius: 6px; }
.site-nav .sub-menu a:hover,
.site-nav .sub-menu a:focus-visible { background: rgba(16,39,31,.06); }
.mobile-header,
.mobile-menu-panel { display: none; }
.site-nav a:focus-visible,
.mobile-menu-toggle:focus-visible,
.site-nav .submenu-toggle:focus-visible,
.site-nav .mobile-nav-call:focus-visible,
.site-nav .mobile-nav-cta:focus-visible,
.mobile-menu-panel a:focus-visible,
.mobile-menu-panel .submenu-toggle:focus-visible,
.mobile-menu-panel .mobile-nav-call:focus-visible,
.mobile-menu-panel .mobile-nav-cta:focus-visible { outline: 2px solid var(--clay); outline-offset: 2px; }
.mobile-nav-extras { display: none; }
.site-header__actions { display: flex; align-items: center; justify-self: end; justify-content: flex-end; gap: 10px; min-width: 0; }

.mobile-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 80px; padding-inline: 20px; }
.mobile-header__branding { min-width: 0; }
.mobile-menu-toggle { position: relative; display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border: 1px solid rgba(23,60,50,.2); border-radius: 6px; background: #F5F0E6; color: #173C32; cursor: pointer; flex-shrink: 0; }
.mobile-menu-toggle__icon,
.mobile-menu-toggle__icon::before,
.mobile-menu-toggle__icon::after { width: 18px; height: 2px; border-radius: 999px; background: currentColor; content: ""; display: block; transition: transform .2s ease, opacity .2s ease; }
.mobile-menu-toggle__icon { position: relative; }
.mobile-menu-toggle__icon::before,
.mobile-menu-toggle__icon::after { position: absolute; left: 0; }
.mobile-menu-toggle__icon::before { top: -6px; }
.mobile-menu-toggle__icon::after { top: 6px; }
.mobile-menu-toggle.is-open .mobile-menu-toggle__icon { background: transparent; }
.mobile-menu-toggle.is-open .mobile-menu-toggle__icon::before { top: 0; transform: rotate(45deg); }
.mobile-menu-toggle.is-open .mobile-menu-toggle__icon::after { top: 0; transform: rotate(-45deg); }

.mobile-menu-panel { position: fixed; left: 0; right: 0; top: var(--mobile-panel-top, 0px); width: 100vw; max-width: 100vw; max-height: calc(100dvh - var(--mobile-panel-top, 0px)); padding: 0; border-top: 1px solid rgba(23,60,50,.16); background: #F5F0E6; overflow-y: auto; z-index: 310; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; }
.mobile-menu-panel.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.mobile-menu-panel__inner { padding: 0 20px 20px; }
.mobile-menu-panel__top { display: flex; justify-content: flex-end; padding: 12px 0 6px; }
.mobile-menu-close { min-height: 44px; padding: 0 14px; border: 1px solid rgba(23,60,50,.22); border-radius: 6px; background: transparent; color: #173C32; font: 600 15px/1 "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif; cursor: pointer; }
.mobile-menu-panel .primary-nav-list { margin: 0; padding: 0; list-style: none; }
.mobile-menu-panel .primary-nav-list > .menu-item { border-bottom: 1px solid rgba(23,60,50,.16); }
.mobile-menu-panel .menu-item-row { display: flex; align-items: center; justify-content: space-between; }
.mobile-menu-panel .primary-nav-list > .menu-item > a,
.mobile-menu-panel .primary-nav-list > .menu-item > .menu-item-row > a { display: flex; align-items: center; width: 100%; min-height: 44px; padding: 17px 0; color: #173C32; font-size: 16px; font-weight: 500; line-height: 1.2; text-align: left; text-decoration: none; }
.mobile-menu-panel .menu-item-has-children .nav-chevron { display: none; }
.mobile-menu-panel .submenu-toggle { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border: 0; background: transparent; color: #173C32; cursor: pointer; }
.mobile-menu-panel .submenu-toggle::before { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; content: ""; transform: rotate(45deg); transition: transform .2s ease; }
.mobile-menu-panel .menu-item-has-children.is-expanded .submenu-toggle::before { transform: rotate(225deg); }
.mobile-menu-panel .sub-menu { margin: 0 0 10px; padding: 0 0 0 14px; border-left: 1px solid rgba(23,60,50,.16); list-style: none; display: none; }
.mobile-menu-panel .menu-item-has-children.is-expanded > .sub-menu { display: block; }
.mobile-menu-panel .sub-menu a { display: block; min-height: 44px; padding: 14px 0; color: #173C32; font-size: 15px; font-weight: 500; text-decoration: none; }
.mobile-menu-panel .mobile-nav-extras { display: grid; gap: 12px; padding: 20px 0 20px; }
.mobile-menu-panel .mobile-nav-call { display: inline-flex; align-items: center; min-height: 44px; color: #173C32; font-size: 15px; font-weight: 600; text-decoration: none; }
.mobile-menu-panel .mobile-nav-cta { width: 100%; min-height: 44px; border-color: var(--clay); background: var(--clay); color: var(--light-text); }

.mobile-sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(16,39,31,.95); border-top: 1px solid rgba(247,243,234,.18); z-index: 330; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(110%); transition: transform .22s ease, opacity .22s ease, visibility .22s ease; }
.mobile-sticky-cta.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.mobile-sticky-cta__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: min(100%, 520px); margin: 0 auto; }
.mobile-sticky-cta .button { min-height: 44px; font-size: .92rem; }
.mobile-sticky-cta__call { border-color: rgba(247,243,234,.34); color: var(--light-text); }
.mobile-sticky-cta__call:hover { background: rgba(247,244,237,.08); }
.mobile-sticky-cta__estimate { border-color: var(--gold); background: var(--gold); color: var(--light-text); }
.mobile-sticky-cta__estimate:hover { border-color: #8b6b4f; background: #8b6b4f; }

body.mobile-menu-open { overflow: hidden; }

@media (min-width: 901px) {
  .mobile-sticky-cta { display: none; }
  body.has-mobile-cta-space { padding-bottom: 0; }
  body.has-mobile-cta-space #main { padding-bottom: 0; }
}

.home .site-nav a,
.home .menu-toggle { color: var(--ink); }
.home .brand strong { color: var(--forest); }
.home .brand span { color: var(--muted); }
.home .site-nav .primary-nav-list { gap: clamp(28px, 2.2vw, 34px); }
.home .site-nav a { font-size: 15.5px; font-weight: 500; letter-spacing: .01em; text-transform: none; }
.home .site-nav a:hover { color: var(--forest); }
.header-cta { min-height: 44px; padding: 10px 16px; border-color: var(--clay); background: var(--clay); color: var(--light-text); font-size: .9rem; font-weight: 600; letter-spacing: .015em; }
.header-cta:hover { background: #402f24; color: var(--light-text); }

@media (max-width: 1050px) {
  .header-inner,
  .site-header__inner { min-height: 82px; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .8rem; }
  .custom-logo { width: 240px; max-height: 64px; }
  .site-nav .primary-nav-list { gap: 26px; }
  .site-nav .primary-nav-list > .menu-item > a,
  .site-nav .primary-nav-list > .menu-item > .menu-item-row > a { font-size: 15px; }
}

.hero { position: relative; min-height: clamp(500px, 62vh, 760px); max-height: none; display: grid; place-items: center; overflow: hidden; background: var(--forest); color: var(--light-text); }
.hero::before { position: absolute; inset: 0; content: ""; opacity: 1; background: linear-gradient(rgba(16,39,31,.72), rgba(16,39,31,.82)), var(--hero-bg-image, linear-gradient(145deg,#284538,#1d3429)); background-size: cover; background-position: center; transition: opacity .24s ease; }
.hero.hero-deferred::before { opacity: 0; }
.hero.hero-media-loaded::before { opacity: 1; }
.hero::after { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 18% 18%,rgba(138,106,80,.20),transparent 40%); }
.hero-content { position: relative; z-index: 1; max-width: 1180px; padding: clamp(28px, 4vw, 54px) 0 clamp(40px, 5vw, 70px); display: grid; place-items: center; text-align: center; }
.hero-layout { display: grid; grid-template-columns: 1fr; gap: 0; align-items: center; }
.hero-main { max-width: 740px; margin-inline: auto; }
.hero-eyebrow { margin: 0 0 14px; color: rgba(247,244,237,.84); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero h1 { margin-inline: auto; max-width: 760px; color: var(--light-text); font-size: clamp(40px, 5.1vw, 74px); font-weight: 700; line-height: 1.02; letter-spacing: -.03em; text-transform: none; }
.hero-lede { margin: 12px auto 0; max-width: 650px; color: rgba(247,244,237,.88); font-size: clamp(16px, 1.35vw, 19px); }
.hero-subnote { margin: 10px auto 0; max-width: 620px; color: rgba(247,244,237,.78); font-size: clamp(14px, 1.1vw, 16px); }
.hero-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.hero .button--primary { background: var(--clay); border-color: var(--clay); color: var(--light-text); }
.hero .button--primary:hover { background: #413026; border-color: #413026; }
.hero .button--ghost { border-color: rgba(247,244,237,.88); background: transparent; color: rgba(247,244,237,.94); }
.hero .button--ghost:hover { background: rgba(247,244,237,.08); color: rgba(247,244,237,.98); }
.hero-note { padding: 22px 20px; border: 1px solid rgba(247,243,234,.28); border-radius: 8px; background: rgba(20,39,31,.5); backdrop-filter: blur(6px); }
.hero-note h2 { margin-bottom: 11px; font-size: clamp(22px,1.7vw,28px); line-height: 1.15; color: var(--light-text); }
.hero-points { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.hero-points li { position: relative; padding-left: 22px; color: rgba(247,243,234,.86); font-size: .95rem; }
.hero-points li::before { position: absolute; left: 0; top: .5em; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); content: ""; }
.trust-bar { background: var(--ivory); }
.trust-grid { display: grid; grid-template-columns: repeat(3,1fr); }
.trust-item { padding: 22px; text-align: center; border-right: 1px solid var(--line); }
.trust-item:last-child { border: 0; }
.trust-item strong { display: block; font-family: Georgia,serif; font-size: 20px; }
.trust-item span { color: var(--muted); font-size: .875rem; }

.split-heading { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; justify-items: center; margin-bottom: 28px; padding-bottom: 0; text-align: center; }
.split-heading h1,
.split-heading h2,
.narrow h1,
.narrow h2,
.entry-content > h1 {
  max-width: 16ch;
  font-size: clamp(2.5rem, 4vw, 4.25rem);
  line-height: 1.04;
  letter-spacing: -0.03em;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
.split-heading > :first-child,
.split-heading > :last-child { max-width: 760px; }
.split-heading p:last-child { margin-bottom: 0; }

.editorial-hero { padding-block: clamp(88px, 9vw, 112px); background: var(--sand); }
.editorial-hero__inner { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; justify-items: center; text-align: center; }
.editorial-hero--with-image .editorial-hero__inner { gap: clamp(1.5rem, 3vw, 2.5rem); }
.editorial-hero__media { width: min(100%, 980px); margin: 0 auto; }
.editorial-hero__image { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; border-radius: 14px; box-shadow: 0 18px 40px rgba(24, 34, 29, .14); }
.editorial-hero__heading h1 { max-width: 14ch; margin-inline: auto; font-size: clamp(2.5rem, 4vw, 4.25rem); }
.editorial-hero__body { max-width: 560px; padding-top: 4px; }
.editorial-hero__body .lede { margin-bottom: 0; }
.editorial-hero__link { margin-top: 28px; }

.chapter-split,
.split-section { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.chapter-split--asymmetric { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
.chapter-split--compact { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
.page-hero__title,
.section-heading,
.chapter-label-block h2,
.chapter-heading h2,
.editorial-hero__heading h1,
.founder-story__copy h2,
.about-purpose__inner h2,
.dual-direction__column h2 {
  font-size: clamp(2.5rem, 4vw, 4.25rem);
  line-height: 1.04;
  letter-spacing: -0.03em;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
.chapter-label-block h2,
.chapter-heading h2,
.founder-story__copy h2,
.about-purpose__inner h2,
.dual-direction__column h2 { max-width: 16ch; }
.chapter-reading { max-width: 66ch; }
.chapter-link { margin-top: 28px; }

.editorial-chapter--intro { background: var(--sand); }

.service-feature { position: relative; overflow: hidden; }
.service-feature__grid { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(320px,.88fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.service-feature--reverse .service-feature__grid { grid-template-columns: minmax(320px,.88fr) minmax(0,1.12fr); }
.service-feature--reverse .service-feature__media { order: 2; }
.service-feature--reverse .service-feature__copy { order: 1; }
.service-feature__copy { max-width: 640px; }
.service-feature__copy--wide { max-width: 760px; }
.service-feature__index,
.editorial-column__index { margin: 0 0 12px; color: var(--gold); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-feature__media { margin: 0; }
.service-feature__media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 6px; }
.service-feature--dark { background: var(--forest-dark); color: var(--light-text); }
.service-feature--dark h2,
.service-feature--dark h3,
.service-feature--dark p,
.service-feature--dark .eyebrow,
.service-feature--dark .service-feature__index { color: var(--light-text); }
.service-feature--dark .feature-list li { border-color: rgba(247,244,237,.18); color: rgba(247,244,237,.92); }
.service-feature--light { background: var(--ivory); }
.service-feature--future { background: var(--clay); color: var(--light-text); }
.service-feature--future h2,
.service-feature--future p,
.service-feature--future .eyebrow,
.service-feature--future .service-feature__index { color: var(--light-text); }

.service-section { padding-block: var(--section-space); }
.service-section--compact { padding-block: var(--section-space-compact); }
.service-section__header { max-width: 760px; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.service-section__header h2 { max-width: 16ch; }
.service-section__header .lede { max-width: 65ch; }

.service-hero { background: var(--sand); }
.service-hero__inner { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr); gap: clamp(28px, 5vw, 60px); align-items: stretch; }
.service-hero__content { padding: clamp(12px, 1vw, 20px) 0; }
.service-hero h1 { max-width: 13ch; margin-bottom: 16px; color: var(--forest); font-size: clamp(2.75rem, 5vw, 5rem); line-height: .98; letter-spacing: -.035em; text-wrap: balance; word-break: normal; overflow-wrap: normal; hyphens: none; }
.service-hero__content .lede { max-width: 65ch; }
.service-hero__details { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; margin: 22px 0 0; padding: 0; list-style: none; }
.service-hero__details li { padding-top: 14px; border-top: 1px solid rgba(23,60,50,.18); color: var(--muted); font-size: .98rem; line-height: 1.55; }
.service-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.service-hero__actions .button { min-height: 44px; }
.service-hero__phone { border-color: rgba(23,60,50,.18); background: transparent; color: var(--forest); }
.service-hero__panel { display: flex; align-items: stretch; }
.service-hero__media,
.service-hero__summary { width: 100%; min-height: 100%; margin: 0; overflow: hidden; border: 1px solid rgba(23,60,50,.14); border-radius: 6px; background: var(--white); box-shadow: var(--shadow); }
.service-hero__image { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.service-hero__summary { display: flex; flex-direction: column; justify-content: center; padding: clamp(24px, 4vw, 40px); background: linear-gradient(145deg, rgba(245,240,230,.95), rgba(233,225,211,.95)); }
.service-hero__summary-eyebrow { margin: 0 0 16px; color: var(--forest); font-size: .85rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-hero__summary-list { margin: 0; padding: 0; list-style: none; }
.service-hero__summary-list li { padding: 14px 0; border-top: 1px solid rgba(23,60,50,.16); color: var(--ink); line-height: 1.55; }
.service-hero__summary-list li:last-child { border-bottom: 1px solid rgba(23,60,50,.16); }

.service-options { background: var(--ivory); }
.service-options__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border-top: 1px solid var(--line); }
.service-options__item { padding: 24px 24px 0 0; }
.service-options__item + .service-options__item { padding-left: 24px; border-left: 1px solid var(--line); }
.service-options__number { margin: 0 0 12px; color: var(--gold); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-options__item h3 { margin-bottom: 10px; }
.service-options__item p { max-width: 65ch; line-height: 1.7; }
.service-options__link { margin-top: 12px; }

.service-process { background: var(--forest-dark); color: var(--light-text); }
.service-process .eyebrow,
.service-process h2,
.service-process .lede,
.service-process h3,
.service-process p { color: var(--light-text); }
.service-process__steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; border-top: 1px solid rgba(247,243,234,.18); }
.service-process__step { padding: 24px 18px 0 0; }
.service-process__step + .service-process__step { padding-left: 18px; border-left: 1px solid rgba(247,243,234,.18); }
.service-process__number { display: block; margin-bottom: 14px; color: rgba(247,244,237,.28); font-size: clamp(2.4rem, 4vw, 4rem); font-weight: 700; line-height: .85; letter-spacing: -.04em; }
.service-process__step p { margin-bottom: 0; color: rgba(247,243,234,.78); line-height: 1.7; }

.service-area { background: var(--sand); }
.service-area__inner { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(28px, 5vw, 60px); align-items: start; }
.service-area__cities { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 14px; margin: 0; padding: 0; list-style: none; border-top: 0; }
.service-area__cities li { padding: 0; border: 0; color: var(--ink); }
.service-area__cities li:nth-child(even) { padding-left: 0; border-left: 0; }

.service-expectations { background: var(--ivory); }
.service-expectations__inner { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(28px, 5vw, 60px); align-items: start; }
.service-expectations__items { border-top: 1px solid var(--line); }
.service-expectations__item { padding: 20px 0; }
.service-expectations__item + .service-expectations__item { border-top: 1px solid var(--line); }
.service-expectations__item h3 { margin-bottom: 8px; }
.service-expectations__item p { max-width: 65ch; line-height: 1.7; }

.service-faq { background: var(--ivory); }
.service-faq__accordion { border-top: 1px solid var(--line); }
.service-faq__item { border-bottom: 1px solid var(--line); }
.service-faq__question { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 18px 0; list-style: none; cursor: pointer; color: var(--forest); }
.service-faq__question::-webkit-details-marker { display: none; }
.service-faq__question span:first-child { font-size: 1.08rem; font-weight: 700; line-height: 1.35; }
.service-faq__icon { position: relative; flex-shrink: 0; width: 22px; height: 22px; }
.service-faq__icon::before,
.service-faq__icon::after { position: absolute; inset: 50% auto auto 50%; width: 12px; height: 2px; background: currentColor; content: ""; transform: translate(-50%, -50%); transition: transform .18s ease, opacity .18s ease; }
.service-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.service-faq__item[open] .service-faq__icon::after { opacity: 0; }
.service-faq__answer { padding: 0 0 18px; }
.service-faq__answer p { max-width: 65ch; margin-bottom: 0; line-height: 1.7; color: var(--muted); }

.service-cta { background: var(--forest-dark); color: var(--light-text); }
.service-cta__inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: clamp(24px, 4vw, 48px); align-items: center; }
.service-cta h2,
.service-cta .lede { color: var(--light-text); }
.service-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.service-cta__actions .button { min-height: 44px; }
.service-cta__actions .button--ghost { border-color: rgba(247,243,234,.22); color: var(--light-text); }
.service-cta__actions .button--ghost:hover { background: rgba(247,244,237,.08); color: var(--light-text); }

.service-page .section + .service-section { border-top: 0; }

.service-page .service-section { padding-block: clamp(3.25rem, 6vw, 4.75rem); }
.service-page .service-section--compact { padding-block: clamp(2.75rem, 5vw, 4rem); }
.service-page .service-section__header { margin-bottom: clamp(1rem, 2.6vw, 1.6rem); }
.service-page .service-hero__content { padding-block: 0; }
.service-page .service-hero__actions { margin-top: 18px; }
.service-page .service-options__item,
.service-page .service-process__step { padding-top: 18px; }
.service-page .service-expectations__item { padding: 16px 0; }
.service-page .service-faq__question { padding-block: 14px; }
.service-page .service-cta .lede { margin-bottom: 0; }

.feature-list { margin: 28px 0 0; padding: 0; list-style: none; }
.feature-list li { padding: 14px 0; border-top: 1px solid var(--line); color: var(--muted); }
.feature-list li:last-child { border-bottom: 1px solid var(--line); }
.feature-list--light li { color: var(--ink); }
.feature-list--future li { border-color: rgba(247,244,237,.18); color: rgba(247,244,237,.92); }

.editorial-columns--three { display: grid; gap: 36px; }
.chapter-heading--narrow { max-width: 760px; }
.chapter-heading--light .eyebrow,
.chapter-heading--light h2 { color: var(--light-text); }
.open-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border-top: 1px solid var(--line); }
.open-columns--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.open-columns > div { padding: 18px 24px 0 0; }
.open-columns > div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.open-columns p:last-child { margin-bottom: 0; }

.future-services { display: grid; grid-template-columns: minmax(0,.95fr) minmax(320px,1.05fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.future-services__header { max-width: 640px; }
.future-services__body { max-width: 620px; }
.future-services__status { margin-top: 22px; color: rgba(247,244,237,.95); font-weight: 700; }
.arrow-link--light { color: var(--light-text); }
.arrow-link--light:hover { color: rgba(247,244,237,.8); }

.process-preview { padding-block: clamp(88px, 9vw, 116px); }

.founder-story { display: grid; grid-template-columns: 56px minmax(0,760px); gap: clamp(24px, 5vw, 56px); align-items: start; }
.founder-story__rule { min-height: 100%; border-left: 1px solid var(--forest); opacity: .45; }
.founder-story__copy { max-width: 760px; }
.founder-story__copy blockquote { margin: 0 0 18px; max-width: 24ch; font: 500 clamp(1.65rem, 3vw, 2.5rem)/1.18 Georgia, "Times New Roman", serif; color: var(--forest); }

.about-purpose { background: var(--forest-dark); color: var(--light-text); }
.about-purpose__inner { max-width: 760px; }
.about-purpose .eyebrow,
.about-purpose h2,
.about-purpose p { color: var(--light-text); }

.dual-direction { display: grid; grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.dual-direction__divider { background: var(--line); min-height: 100%; }


.editorial-cta { background: var(--forest-dark); color: var(--light-text); }
.editorial-cta__inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: clamp(24px, 4vw, 48px); align-items: end; }
.editorial-cta__copy { max-width: 720px; }
.editorial-cta h2,
.editorial-cta p { color: var(--light-text); }
.editorial-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: flex-start; }
.editorial-cta__button-secondary { background: transparent; color: var(--light-text); border-color: rgba(247,244,237,.22); }
.editorial-cta__button-secondary:hover { background: rgba(247,244,237,.08); border-color: rgba(247,244,237,.22); color: var(--light-text); }
.services-list { display: grid; background: transparent; }
.services-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.service-row { padding: 22px 0; background: transparent; }
.service-row + .service-row { border-top: 1px solid var(--line); }
.service-row h3 { margin-bottom: 4px; font-size: 22px; }
.service-row p { margin: 0; color: var(--muted); font-size: 16px; }
.service-note { margin-top: 14px; color: var(--muted); font-size: 15px; }

.section-services { background: var(--sand); }

.home-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
}
.home-service-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 100%;
  padding: 22px 20px 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255,255,255,.5);
  box-shadow: 0 8px 20px rgba(16,39,31,.05);
}
.home-service-card--bronze { background: rgba(255,255,255,.56); }
.home-service-card h3 {
  margin: 0;
  font-size: clamp(1.35rem, 1.8vw, 1.7rem);
  line-height: 1.16;
  letter-spacing: -.02em;
}
.home-service-card p { margin: 0; color: var(--muted); }
.home-service-card .arrow-link { margin-top: auto; padding-top: 6px; display: inline-flex; }

.home-image-break { background: var(--ivory); }
.image-break-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: center; }
.image-break-media { margin: 0; overflow: hidden; border-radius: 6px; border: 1px solid var(--line); background: var(--white); }
.image-break-media img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.image-placeholder { width: 100%; background: linear-gradient(145deg, rgba(76, 53, 39, .06), rgba(48, 72, 60, .08)); }
.image-placeholder--wide { aspect-ratio: 16 / 10; min-height: clamp(220px, 34vw, 360px); }
.image-placeholder--tall { aspect-ratio: 4 / 5; min-height: clamp(220px, 30vw, 320px); }
.image-break-copy { padding: 8px 0; }
.image-break-copy p:last-child { margin-bottom: 0; }

.home-trust-columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: start;
  min-width: 0;
}
.home-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: stretch;
  min-width: 0;
}
.home-trust-grid > div {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  min-height: 0;
  padding: 22px 20px 16px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(255,255,255,0.12);
  box-sizing: border-box;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.home-trust-grid > div + div { border-left: 1px solid var(--line); }
.home-trust-grid h3 {
  margin: 0;
  color: var(--forest);
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  line-height: 1.15;
  letter-spacing: -.04em;
  font-weight: 700;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}
.home-trust-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 1.03rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}

.section-projects { padding-block: clamp(4.5rem, 8vw, 7.5rem); background: var(--clay); color: var(--light-text); }
.project-compact { max-width: 860px; margin-inline: auto; text-align: center; }
.project-compact h1,
.project-compact h2 { max-width: 12ch; margin-inline: auto; font-size: clamp(2.1rem, 3.3vw, 3rem); line-height: 1.08; letter-spacing: -0.02em; }
.section-projects .eyebrow { color: var(--gold); }
.section-projects h1,
.section-projects h2 { color: var(--light-text); }
.section-projects p { margin: 0 auto 18px; max-width: 760px; color: rgba(247,243,234,.9); font-size: 18px; }
.section-projects .button { margin-top: 6px; border-color: var(--gold); background: var(--gold); color: var(--light-text); }
.section-projects .button:hover { border-color: #8b6b4f; background: #8b6b4f; }

.project-feature { display: grid; grid-template-columns: 1.15fr .85fr; overflow: hidden; border-radius: 24px; background: var(--sand); }
.project-image { position: relative; min-height: 280px; background: var(--project-bg-image, linear-gradient(145deg,#8d9b91,#40594f)); background-size: cover; background-position: center; }
.project-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(180deg,rgba(10,18,15,.08),rgba(10,18,15,.32)); }
.project-copy { padding: clamp(26px,3.5vw,44px); align-self: center; }
.project-copy ul { padding-left: 20px; color: var(--muted); }

.process { background: var(--forest-dark); color: white; }
.process .eyebrow { color: rgba(247,244,237,.78); }
.process .lede { color: rgba(247,243,234,.72); }
.process h1,
.process h2,
.process h3 { color: var(--light-text); }
.steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; margin-top: 36px; }
.step { position: relative; padding-top: 30px; border-top: 1px solid rgba(247,243,234,.18); }
.step span { display: block; margin-bottom: 14px; color: rgba(247,244,237,.20); font-size: 52px; font-weight: 700; line-height: .9; letter-spacing: -.04em; }
.step h3 { margin-bottom: 10px; }
.step p { color: rgba(247,243,234,.72); font-size: 14px; max-width: 220px; }

.about-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 32px; align-items: start; }
.about-layout--text { align-items: start; }
.about-copy { max-width: 680px; }
.about-copy blockquote { margin: 0 0 14px; font: 500 clamp(1.5rem,2.6vw,2rem)/1.25 Georgia, "Times New Roman", serif; }
.about-name { margin-bottom: 0; font-size: 1.05rem; font-weight: 700; color: var(--forest); }
.about-title { margin-bottom: 18px; color: var(--muted); font-size: .95rem; }
.about-media { margin: 0; overflow: hidden; border-radius: 6px; border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.about-media img { width: 100%; min-height: 320px; object-fit: cover; }
.section-faq { background: var(--ivory); }

.full-potential-about {
  padding-block: clamp(56px, 7vw, 96px);
  background: var(--ivory);
  color: var(--ink);
}
.full-potential-about__inner {
  display: grid;
  gap: clamp(2rem, 4vw, 4.25rem);
}
.full-potential-about__header {
  max-width: 920px;
}
.full-potential-about__header .eyebrow,
.full-potential-about__journey .eyebrow,
.full-potential-about__promise .eyebrow {
  color: var(--clay);
}
.full-potential-about__header h1 {
  margin: 0;
  color: var(--forest);
  font-size: clamp(2.2rem, 3.8vw, 3.4rem);
  line-height: 1.08;
  letter-spacing: -.03em;
}
.full-potential-about__intro {
  max-width: 62ch;
  margin-top: 18px;
  color: var(--ink);
  font-size: clamp(1.04rem, 1.8vw, 1.2rem);
  line-height: 1.8;
}
.full-potential-about__journey {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(220px, .9fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
}
.full-potential-about__journey-copy {
  max-width: 760px;
}
.full-potential-about__journey-kicker,
.full-potential-about__promise-kicker {
  margin: 0 0 12px;
  color: var(--clay);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.full-potential-about__journey-copy h2 {
  margin: 0 0 18px;
  color: var(--forest);
  font-size: clamp(2rem, 3vw, 2.9rem);
  line-height: 1.08;
  letter-spacing: -.03em;
}
.full-potential-about__journey-copy p,
.full-potential-about__promise-copy p {
  margin: 0 0 18px;
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.8;
}
.full-potential-about__journey-copy p:last-of-type {
  margin-bottom: 0;
}
.full-potential-about__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 28px;
  margin: 18px 0 0;
  padding: 0 0 0 1.25rem;
  list-style: none;
}
.full-potential-about__list li {
  position: relative;
  padding-left: 1.05rem;
  color: var(--ink);
  line-height: 1.55;
}
.full-potential-about__list li::before {
  position: absolute;
  left: 0;
  top: .52em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--forest);
  content: "";
}
.full-potential-about__journey-visual {
  overflow: hidden;
  min-height: clamp(220px, 38vw, 420px);
  border: 1px solid rgba(23, 60, 50, 0.18);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(23, 60, 50, 0.10), rgba(104, 74, 53, 0.08));
}
.full-potential-about__journey-visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}
.full-potential-about__promise {
  padding: 72px 0 76px;
  background: var(--forest);
  color: var(--ivory);
}
.full-potential-about__promise-inner {
  width: min(100%, 800px);
  margin-inline: auto;
  padding-inline: 0;
}
.full-potential-about__promise-copy {
  margin: 0;
  text-align: left;
}
.full-potential-about__promise p {
  margin: 0;
  color: var(--ivory);
  width: 100%;
  max-width: none;
  font-size: clamp(1.1rem, 1.45vw, 1.35rem);
  line-height: 1.65;
  font-weight: 400;
  letter-spacing: 0;
}

.section-about { background: var(--ivory); color: var(--ink); }
.section-about .eyebrow { color: var(--clay); }
.section-about blockquote,
.section-about p,
.section-about cite { color: var(--ink); }
.section-about cite { display: block; margin-bottom: 18px; }

.section-about-preview .button { margin-top: 6px; }

@media (max-width: 900px) {
  .full-potential-about__header h1 {
    font-size: clamp(2rem, 8vw, 2.7rem);
    line-height: 1.12;
  }
  .full-potential-about__journey {
    grid-template-columns: 1fr;
  }
  .full-potential-about__list {
    grid-template-columns: 1fr;
  }
  .full-potential-about__promise {
    padding: 52px 20px 54px;
  }
  .full-potential-about__promise-inner {
    width: 100%;
    max-width: 100%;
  }
  .full-potential-about__promise-copy {
    width: 100%;
  }
  .full-potential-about__promise p {
    font-size: 1.05rem;
    line-height: 1.7;
  }
}

.home-services-intro { background: var(--sand); }
.intro-panel { max-width: 760px; margin-inline: auto; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: left; }
.intro-panel h2 { margin-bottom: 10px; }
.intro-panel p { margin-bottom: 14px; color: var(--muted); }

.home-service-cards { background: var(--white); }
.service-area-content { max-width: 860px; margin: 0 auto; text-align: center; }
.service-area-content p { margin: 0 auto 16px; max-width: 760px; color: var(--muted); font-size: 1rem; }
.service-area-content strong { color: var(--forest); }
.service-area-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; margin: 12px 0 18px; padding: 0; list-style: none; }
.service-area-item { padding: 8px 12px; border: 1px solid rgba(24,54,44,.16); border-radius: 999px; background: rgba(255,255,255,.7); color: var(--forest); font-size: .95rem; font-weight: 600; box-shadow: 0 6px 16px rgba(16,39,31,.04); }
.home-service-area,
.home-image-break,
.home .section-about-preview,
.archive-shell,
.entry,
.section-about,
.service-feature--light { background: var(--ivory); }

.home-service-area,
.home-trust,
.home .section-about-preview { padding-block: clamp(42px, 5.5vw, 72px); }

.home-services-canonical,
.home-trust,
.section-services,
.home-services-intro,
.editorial-hero,
.editorial-chapter--intro { background: var(--sand); }

.home-process-compact .steps { margin-top: 20px; }
.home-process-compact .step { padding-top: 16px; }

.home .section-about-preview { background: var(--ivory); color: var(--ink); }
.home .section-about-preview .about-layout { max-width: 1040px; margin-inline: auto; }
.home .section-about-preview .eyebrow { color: var(--clay); }
.home .section-about-preview blockquote,
.home .section-about-preview p,
.home .section-about-preview cite { color: var(--ink); }

.home .section-estimate { background: var(--forest-dark); }
.home-estimate-cta.section-estimate { padding-block: clamp(56px, 8vw, 104px); }
.home-estimate-cta + .site-footer { border-top: 0; }
.home-estimate-cta + .site-footer::before { display: none; }
.home-estimate-cta .home-estimate-cta__content { width: min(100%, 760px); margin: 0 auto; text-align: center; }
.home-estimate-cta .eyebrow,
.home-estimate-cta h2,
.home-estimate-cta .lede { color: var(--light-text); }
.home-estimate-cta h2 { max-width: 12ch; margin-inline: auto; text-wrap: balance; }
.home-estimate-cta .lede { max-width: 760px; margin: 0 auto; }
.home-estimate-cta .home-estimate-cta__actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 18px; margin-top: 24px; }
.home-estimate-cta .button { min-height: 44px; }
.home-estimate-cta__phone { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: rgba(247,244,237,.92); font-size: .95rem; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.home-estimate-cta__phone:hover { color: var(--light-text); }
.home-estimate-cta__phone:focus-visible { outline: 2px solid rgba(247,244,237,.92); outline-offset: 3px; border-radius: 4px; }

.cta { padding-block: var(--section-space-compact); background: var(--sand); }
.section-estimate { padding-block: clamp(44px, 5vw, 72px); background: var(--forest-dark); color: var(--light-text); }
.section-estimate .eyebrow,
.section-estimate h2,
.section-estimate .lede,
.section-estimate .estimate-note { color: var(--light-text); }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.cta h2 { max-width: 700px; margin-bottom: 0; }

.estimate-form { max-width: 840px; margin: 4px auto 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.form-field { margin: 0; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { display: block; margin-bottom: 5px; color: rgba(247,244,237,.94); font-size: .86rem; font-weight: 700; letter-spacing: .02em; }
.form-field input,
.form-field select,
.form-field textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid rgba(247,244,237,.35); border-radius: 4px; background: rgba(247,244,237,.98); color: #13251d; font: 400 16px/1.45 "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif; transition: border-color .2s ease, box-shadow .2s ease; }
.form-field textarea { min-height: 96px; }
.form-field input::placeholder,
.form-field textarea::placeholder { color: rgba(19,37,29,.64); }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: #d9b999; box-shadow: 0 0 0 3px rgba(217,185,153,.24); outline: none; }
.form-check label { display: inline-flex; gap: 9px; align-items: flex-start; line-height: 1.4; }
.form-check input {
  width: 16px;
  min-height: 16px;
  height: 16px;
  margin-top: 2px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  accent-color: #d9b999;
}
.form-actions { margin-top: 14px; }
.form-actions .button { min-height: 44px; padding: 10px 16px; font-size: .95rem; }
.form-alert {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  margin: 10px 0 0;
  padding: 12px 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(6, 17, 13, .2);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
  animation: estimateAlertIn .35s cubic-bezier(.21,.95,.28,1) both;
}
.form-alert-message { flex: 1; }
.form-alert-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 999px;
  background: transparent;
  color: inherit;
  font: 700 15px/1 "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif;
  line-height: 1;
  cursor: pointer;
  opacity: .88;
}
.form-alert-close:hover,
.form-alert-close:focus-visible { opacity: 1; background: rgba(255,255,255,.14); }
.form-alert-close:focus-visible { outline: 2px solid rgba(255,255,255,.6); outline-offset: 2px; }
.form-alert.is-hidden { display: none; }
.form-alert.is-success {
  border-color: rgba(186, 231, 204, .55);
  background: rgba(16, 61, 42, .96);
  color: #f5fff8;
}
.form-alert.is-error {
  border-color: rgba(255, 193, 193, .6);
  background: rgba(123, 27, 27, .96);
  color: #fff5f5;
}

@keyframes estimateAlertIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.form-note { max-width: 980px; margin: 8px auto 0; color: var(--muted); font-size: .875rem; }

.estimate-grid,
.fp-estimate-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 32px; align-items: start; }
.fp-estimate-form-wrap { width: 100%; max-width: 760px; margin-inline: auto; }
.estimate-card,
.fp-estimate-contact { min-width: 0; width: 100%; max-width: 100%; padding: clamp(28px, 3vw, 32px); border: 1px solid rgba(247,244,237,.22); border-radius: 6px; background: #214237; color: var(--light-text); }
.estimate-card h3 { color: var(--light-text); margin-bottom: 12px; }
.estimate-card p, .estimate-card a { color: rgba(247,244,237,.88); }
.estimate-note { margin-top: 8px; color: rgba(247,244,237,.82); font-size: .84rem; }

.section-estimate .fp-estimate-form,
.section-estimate .fp-estimate-form-wrap,
.section-estimate .fp-estimate-form .wpforms-container,
.section-estimate .fp-estimate-form .wpforms-form {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.section-estimate .fp-estimate-form,
.section-estimate .fp-estimate-form *,
.section-estimate .fp-estimate-contact,
.section-estimate .fp-estimate-contact * {
  box-sizing: border-box;
}

.section-estimate .fp-estimate-contact a {
  overflow-wrap: anywhere;
}

.section-estimate .fp-estimate-form .wpforms-field-label,
.section-estimate .fp-estimate-form .wpforms-required-label,
.section-estimate .fp-estimate-form .wpforms-field-description,
.section-estimate .fp-estimate-form .wpforms-error,
.section-estimate .fp-estimate-form .wpforms-confirmation-container-full,
.section-estimate .fp-estimate-form .wpforms-page-indicator-page-progress {
  color: rgba(247,244,237,.94);
}

.section-estimate .fp-estimate-form .wpforms-field-label {
  display: block;
  margin-bottom: 8px;
  color: rgba(247,244,237,.94);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .01em;
}

.section-estimate .fp-estimate-form .wpforms-field {
  min-width: 0;
  margin-bottom: 18px;
}

.section-estimate .fp-estimate-form .wpforms-layout-column,
.section-estimate .fp-estimate-form .wpforms-layout-column * {
  min-width: 0;
}

.section-estimate .fp-estimate-form .wpforms-field-row-block,
.section-estimate .fp-estimate-form .wpforms-layout-column,
.section-estimate .fp-estimate-form .wpforms-layout-column-inner {
  min-width: 0;
  max-width: 100%;
}

.section-estimate .fp-estimate-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.section-estimate .fp-estimate-form select,
.section-estimate .fp-estimate-form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 54px;
  padding: 14px 16px;
  border: 1px solid rgba(247,244,237,.35);
  border-radius: 6px;
  background: rgba(247,244,237,.98);
  color: #13251d;
  font: 400 16px/1.45 "Aptos","Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif;
}

.section-estimate .fp-estimate-form select {
  padding-right: 42px;
}

.section-estimate .fp-estimate-form textarea {
  min-height: 140px;
  resize: vertical;
}

.section-estimate .fp-estimate-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus,
.section-estimate .fp-estimate-form select:focus,
.section-estimate .fp-estimate-form textarea:focus {
  border-color: #d9b999;
  box-shadow: 0 0 0 3px rgba(217,185,153,.24);
  outline: none;
}

.section-estimate .fp-estimate-form .wpforms-container {
  margin: 0;
}

.section-estimate .fp-estimate-form .wpforms-field-container {
  width: 100%;
  max-width: 100%;
}

.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-textarea,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-checkbox,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-gdpr-checkbox,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-turnstile,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-hcaptcha,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-recaptcha,
.section-estimate .fp-estimate-form .wpforms-submit-container {
  width: 100%;
  max-width: 100%;
}

.section-estimate .fp-estimate-form .wpforms-field-row,
.section-estimate .fp-estimate-form .wpforms-field-row-block,
.section-estimate .fp-estimate-form .wpforms-field-name .wpforms-field-row,
.section-estimate .fp-estimate-form .wpforms-field-name .wpforms-field-row-block,
.section-estimate .fp-estimate-form .wpforms-field-name input,
.section-estimate .fp-estimate-form .wpforms-field-name select {
  min-width: 0;
  max-width: 100%;
}

.section-estimate .fp-estimate-form .wpforms-field-sublabel {
  display: block;
  margin-top: 6px;
  line-height: 1.35;
}

.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-checkbox > label.wpforms-field-label,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-gdpr-checkbox > label.wpforms-field-label {
  display: none;
}

.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-checkbox ul,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-gdpr-checkbox ul {
  margin: 0;
}

.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-checkbox li,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-gdpr-checkbox li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-checkbox input,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-gdpr-checkbox input {
  width: 18px;
  min-height: 18px;
  height: 18px;
  margin-top: 3px;
  padding: 0;
}

.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-checkbox label,
.section-estimate .fp-estimate-form .wpforms-field.wpforms-field-gdpr-checkbox label {
  white-space: normal;
  line-height: 1.45;
}

.section-estimate .fp-estimate-form .wpforms-submit-container {
  margin-top: 0;
}

.section-estimate .fp-estimate-form .wpforms-submit-container button,
.section-estimate .fp-estimate-form .wpforms-submit-container input[type="submit"] {
  min-height: 54px;
  padding: 14px 24px;
  border: 1px solid #684A35;
  border-radius: 6px;
  background: #684A35;
  color: var(--light-text);
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .01em;
}

.section-estimate .fp-estimate-form .wpforms-submit-container button:hover,
.section-estimate .fp-estimate-form .wpforms-submit-container input[type="submit"]:hover {
  background: #5a402f;
  border-color: #5a402f;
}

.section-estimate .fp-estimate-form .wpforms-submit-container button:focus-visible,
.section-estimate .fp-estimate-form .wpforms-submit-container input[type="submit"]:focus-visible {
  outline: 2px solid rgba(247,244,237,.92);
  outline-offset: 2px;
}

.site-footer { position: relative; padding: 56px 0 26px; border-top: 0; background: var(--forest-dark); color: var(--light-text); }
.site-footer::before { position: absolute; top: 0; left: 0; right: 0; height: 1px; background: rgba(247,243,234,.2); content: ""; }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(2,.7fr); gap: 42px; }
.footer-grid > div + div { border-left: 1px solid rgba(247,243,234,.18); padding-left: 32px; }
.site-footer h3 { color: var(--light-text); }
.site-footer p,.site-footer a { color: rgba(247,243,234,.78); }
.site-footer .brand { display: inline-flex; }
.site-footer .brand img { width: clamp(180px, 20vw, 300px); height: auto; }
.site-footer .brand strong { color: var(--light-text); }
.site-footer .brand span { color: rgba(247,243,234,.88); }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin-bottom: 10px; }
.footer-company-meta { max-width: 420px; margin-top: 24px; }
.footer-bottom { position: relative; margin-top: 60px; padding-top: 24px; border-top: 0; color: rgba(247,243,234,.62); font-size: .875rem; }
.footer-bottom::before { position: absolute; top: 0; left: 0; right: 0; height: 1px; background: rgba(247,243,234,.18); content: ""; }
.entry { padding: 80px 0; }
.entry-content { max-width: 760px; }
.entry-content > h1 { max-width: 16ch; margin-inline: auto; text-align: center; }
.entry-content > .eyebrow { text-align: center; }
.entry-content > p:last-child { margin-bottom: 0; }
.entry-body > * { width: min(100%, 760px); margin-inline: auto; }

.archive-shell .services-list { margin-top: 8px; }
.archive-shell .service-row h2 { margin: 0 0 8px; font-size: clamp(1.5rem, 2.4vw, 1.95rem); line-height: 1.18; }
.archive-shell .service-row p { margin-top: 8px; max-width: 65ch; }

.page-content {
  width: 100%;
}

.page-content > :first-child { margin-top: 0; }
.page-content > :last-child { margin-bottom: 0; }

.page-content > p,
.page-content > ul,
.page-content > ol,
.page-content > blockquote,
.page-content > .wp-block-heading,
.page-content > .wp-block-group,
.page-content > .wp-block-columns,
.page-content > .wp-block-image,
.page-content > .wp-block-quote,
.page-content > .wp-block-list {
  width: min(calc(100% - 32px), 760px);
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 900px) {
  .wrap { width: min(calc(100% - 48px), var(--wrap)); }
  .section,
  .site-section { padding-block: clamp(52px, 8vw, 76px); }
  .service-section { padding-block: clamp(52px, 8vw, 76px); }
  .service-section--compact { padding-block: clamp(46px, 6.5vw, 66px); }
  .service-section__header { margin-bottom: clamp(1.25rem, 4vw, 1.9rem); }
  .eyebrow,
  .hero-eyebrow { letter-spacing: .08em; }
  .top-contact-bar { position: sticky; top: 0; z-index: 320; }
  .mobile-header { position: sticky; top: var(--mobile-top-bar-height, 0px); z-index: 320; display: block; background: #F5F0E6; border-bottom: 1px solid rgba(23,60,50,.12); }
  .mobile-header .custom-logo { width: clamp(160px, 46vw, 214px); max-height: 60px; }
  .mobile-header__inner { min-height: 74px; padding-inline: 16px; }
  .mobile-menu-panel { display: block; }
  .mobile-sticky-cta { display: block; }
  .site-header { display: none; }

  .hero { min-height: 0; max-height: none; }
  .hero-content { padding: 4rem 0 3.25rem; }
  .hero-layout { grid-template-columns: 1fr; gap: 22px; }
  .hero h1 { font-size: clamp(2rem, 7.2vw, 2.75rem); max-width: 12ch; }
  .hero-lede,
  .hero-subnote { max-width: 62ch; }
  .hero-note { max-width: 620px; }
  .split-heading,.project-feature { grid-template-columns: 1fr; gap: 24px; }
  .editorial-hero__inner,
  .chapter-split,
  .split-section,
  .service-expectations__inner,
  .service-feature__grid,
  .future-services,
  .editorial-cta__inner,
  .dual-direction,
  .founder-story { grid-template-columns: 1fr; }
  .services-columns { grid-template-columns: 1fr; }
  .home-service-grid,
  .image-break-grid,
  .about-layout,
  .estimate-grid { grid-template-columns: 1fr; }
  .home-trust-columns { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; gap: 20px; }
  .step p { max-width: none; }
  .home-service-card { padding: 20px 18px 16px; }
  .service-feature--reverse .service-feature__media,
  .service-feature--reverse .service-feature__copy { order: initial; }
  .open-columns { grid-template-columns: 1fr; }
}

  .open-columns > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); }
  .founder-story__rule,
  .dual-direction__divider { display: none; }

  .top-contact-inner { min-height: 26px; }
  .top-contact-left { gap: 0; }
  .top-contact-left > * + * { margin-left: 8px; padding-left: 8px; }
  .top-contact-left span,
  .top-contact-left a { font-size: .875rem; }
  .entry { padding: 64px 0; }
  .footer-bottom { margin-top: 36px; }
  body.has-mobile-cta-space #main { padding-bottom: calc(var(--mobile-cta-height) + env(safe-area-inset-bottom) + 18px); }

  .service-page .service-section { padding-block: clamp(3rem, 7vw, 4rem); }
  .service-page .service-section--compact { padding-block: clamp(2.5rem, 6vw, 3.5rem); }
  .service-page .service-hero__details { margin-top: 16px; }
  .service-page .service-options__grid,
  .service-page .service-process__steps,
  .service-page .service-expectations__items,
  .service-page .service-faq__accordion { margin-top: 4px; }

}

@media (max-width: 1024px) {
  .service-options__grid,
  .service-process__steps,
  .open-columns,
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .home-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-service-grid > .home-service-card:nth-child(3) {
    grid-column: 1 / -1;
  }

  .service-options__item:nth-child(odd),
  .service-process__step:nth-child(odd),
  .open-columns > div:nth-child(odd) { padding-left: 0; border-left: 0; }

  .service-options__item:nth-child(even),
  .service-process__step:nth-child(even),
  .open-columns > div:nth-child(even) { padding-left: 0; border-left: 0; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .footer-grid > div + div { border-left: 0; padding-left: 0; }
  .footer-grid > div:nth-child(3) { grid-column: 1 / -1; padding-top: 16px; border-top: 1px solid rgba(247,243,234,.18); }
}

@media (max-width: 900px) {
  .section.home-trust { padding-block: 64px; }
  .home-trust .wrap { width: min(calc(100% - 40px), var(--wrap)); }
  .home-trust-columns { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .home-trust-columns h2 {
    max-width: 16ch;
    font-size: clamp(2.25rem, 11vw, 3.25rem);
    line-height: 1.02;
  }
  .home-trust-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    width: 100%;
    max-width: 100%;
  }
  .home-trust-grid > div,
  .home-trust-grid > div + div {
    width: 100%;
    max-width: 100%;
    min-height: 0;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: rgba(255,255,255,0.12);
    text-align: left;
    box-sizing: border-box;
  }
  .home-trust-grid h3 {
    font-size: 24px;
    line-height: 1.15;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .home-trust-grid p {
    font-size: 17px;
    line-height: 1.5;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}

@media (min-width: 1025px) {
  .home-trust-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 850px) {
  .split-heading,
  .chapter-split,
  .split-section,
  .editorial-hero__inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .split-heading h1,
  .split-heading h2,
  .narrow h1,
  .narrow h2,
  .project-compact h1,
  .project-compact h2,
  .entry-content > h1,
  .page-hero__title,
  .section-heading,
  .chapter-label-block h2,
  .chapter-heading h2,
  .editorial-hero__heading h1,
  .founder-story__copy h2,
  .about-purpose__inner h2,
  .dual-direction__column h2 {
    max-width: 16ch;
    font-size: clamp(1.95rem, 7vw, 2.8rem);
  }
}

@media (max-width: 620px) {
  .wrap { width: min(calc(100% - 40px), var(--wrap)); }
  .section,
  .site-section { padding-block: 3.5rem; }
  .eyebrow,
  .hero-eyebrow { font-size: .74rem; letter-spacing: .07em; }
  .editorial-hero { padding-block: 72px 64px; }
  .hero-content { padding: 4rem 0 3rem; }
  .hero h1 { font-size: clamp(1.9rem, 8.6vw, 2.35rem); max-width: 13ch; }
  .split-heading h2,
  .service-section__header h2,
  .section-about h2,
  .project-compact h2,
  .editorial-hero__heading h1 { font-size: clamp(1.65rem, 6.5vw, 2rem); line-height: 1.12; }
  .service-hero h1 { font-size: clamp(1.9rem, 8.1vw, 2.35rem); line-height: 1.08; }
  .hero-lede,
  .hero-subnote,
  p,
  .lede { font-size: 1rem; line-height: 1.62; }
  .hero-actions { flex-direction: column; align-items: center; }
  .hero .button--primary,
  .hero .button--ghost { min-width: min(100%, 340px); }
  .home-estimate-cta.section-estimate { padding-block: clamp(56px, 10vw, 72px); }
  .home-estimate-cta .home-estimate-cta__actions { flex-direction: column; align-items: stretch; }
  .home-estimate-cta .button,
  .home-estimate-cta__phone { width: 100%; }
  .hero-note { padding: 18px 15px; }
  .hero-note h2 { font-size: 1.35rem; }
  .hero-points li { font-size: .95rem; }
  .section-estimate { padding: 2.4rem 0; }
  .estimate-form { padding: 0; border-radius: 0; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field label { font-size: .9rem; }
  .archive-shell .service-row { padding: 18px 0; }
  .archive-shell .service-row h2 { font-size: clamp(1.3rem, 7vw, 1.65rem); }
  .trust-grid,.steps,.footer-grid { grid-template-columns: 1fr; }
  .footer-grid > div + div { border-left: 0; padding-left: 0; border-top: 1px solid rgba(247,243,234,.18); padding-top: 18px; }
  .trust-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .step span { margin-bottom: 18px; }
  .service-row { padding: 20px 0; }
  .service-row + .service-row { border-top: 1px solid var(--line); }
  .service-row h3 { font-size: 1.35rem; }
  .service-hero__inner,
  .service-area__inner,
  .service-expectations__inner,
  .service-cta__inner { grid-template-columns: 1fr; gap: 24px; }
  .service-hero__details,
  .service-options__grid,
  .service-process__steps,
  .service-area__cities,
  .service-cta__actions { grid-template-columns: 1fr; }
  .service-hero__actions,
  .service-cta__actions { flex-direction: column; align-items: stretch; }
  .service-hero__actions .button,
  .service-cta__actions .button { width: 100%; }
  .service-options__item,
  .service-options__item + .service-options__item,
  .service-process__step,
  .service-process__step + .service-process__step,
  .service-area__cities li,
  .service-area__cities li:nth-child(even) { padding: 0 0 16px; border: 0; }
  .service-area__cities { border-top: 0; }
  .service-area__cities li { border-bottom: 0; }
  .cta-inner { align-items: flex-start; flex-direction: column; }
  .editorial-cta__actions { flex-direction: column; align-items: stretch; }
  .editorial-cta__actions .button { width: 100%; }

  .top-contact-inner { min-height: 24px; }
  .top-contact-left { width: 100%; justify-content: center; gap: 10px; }
  .top-contact-left > * + * { margin-left: 0; padding-left: 0; border-left: 0; }
  .top-contact-left span { display: none; }
  .top-contact-left a { font-size: .875rem; }
  .entry { padding: 56px 0; }
  .entry-content > h1,
  .entry-body > h2 { max-width: 15ch; }
  .mobile-sticky-cta { padding-inline: 10px; }
  .mobile-sticky-cta__inner { gap: 8px; }
}

@media (max-width: 768px) {
  .estimate-grid,
  .fp-estimate-layout { grid-template-columns: 1fr; gap: 24px; }
  .fp-estimate-form-wrap { max-width: 100%; }
  .section-estimate .fp-estimate-form .wpforms-one-half,
  .section-estimate .fp-estimate-form .wpforms-layout-column,
  .section-estimate .fp-estimate-form .wpforms-layout-column-33,
  .section-estimate .fp-estimate-form .wpforms-layout-column-50,
  .section-estimate .fp-estimate-form .wpforms-layout-column-66,
  .section-estimate .fp-estimate-form .wpforms-layout-column-100 {
    float: none;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .section-estimate .fp-estimate-form .wpforms-field,
  .section-estimate .fp-estimate-form .wpforms-field-row-block,
  .section-estimate .fp-estimate-form .wpforms-layout-column { min-width: 0; }
}

@media (max-width: 480px) {
  .section-estimate .fp-estimate-form .wpforms-submit-container button,
  .section-estimate .fp-estimate-form .wpforms-submit-container input[type="submit"] { width: 100%; }
}

@media print {
  .service-feature__grid,
  .open-columns > div,
  .steps .step,
  .editorial-cta__inner,
  .chapter-split,
  .founder-story,
  .dual-direction__column,
  .estimate-card { break-inside: avoid; }
}
