/* Premier Fence — custom static site */
:root {
  --ink: #0d1117;
  --ink-2: #171c23;
  --ink-3: #262d36;
  --paper: #ffffff;
  --warm: #f5f2ec;
  --warm-2: #ece7df;
  --red: #c30e1b;
  --red-dark: #970b14;
  --red-soft: #fbe8ea;
  --gold: #b38a52;
  --text: #17191d;
  --muted: #5f6670;
  --line: #dfe2e6;
  --line-dark: rgba(255,255,255,.14);
  --shadow-xs: 0 1px 2px rgba(13,17,23,.05);
  --shadow-sm: 0 8px 28px rgba(13,17,23,.08);
  --shadow-md: 0 18px 60px rgba(13,17,23,.13);
  --shadow-lg: 0 30px 80px rgba(13,17,23,.2);
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 24px;
  --container: 1220px;
  --header-h: 88px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  color: var(--text);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.65;
  font-size: 16px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--red); color: #fff; }

h1, h2, h3, h4, p, ul, ol, dl, blockquote { margin-top: 0; }
h1, h2, h3, h4 {
  color: var(--ink);
  line-height: 1.08;
  letter-spacing: -.035em;
  text-wrap: balance;
}
h1 { font-size: clamp(2.75rem, 6vw, 5.4rem); }
h2 { font-size: clamp(2.1rem, 4vw, 3.55rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
p { text-wrap: pretty; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container--wide { width: min(calc(100% - 40px), 1440px); margin-inline: auto; }
.container--narrow { width: min(calc(100% - 40px), 820px); margin-inline: auto; }
.section { padding: clamp(72px, 9vw, 124px) 0; position: relative; }
.section--tight { padding: clamp(52px, 6.5vw, 82px) 0; }
.section--warm { background: var(--warm); }
.section--ink { background: var(--ink); color: #fff; }
.section--ink h2, .section--ink h3 { color: #fff; }
.section--ink p { color: #c7cbd0; }
.section--line { border-top: 1px solid var(--line); }
.section-anchor { scroll-margin-top: 130px; }

.skip-link {
  position: fixed; left: 16px; top: 16px; z-index: 9999;
  padding: 12px 18px; background: #fff; color: #000;
  transform: translateY(-180%); box-shadow: var(--shadow-md);
}
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid rgba(195,14,27,.38); outline-offset: 3px; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 14px; color: var(--red); font-size: .76rem;
  font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.eyebrow--no-line::before { display: none; }
.eyebrow--light { color: #ff5964; }
.lede { font-size: clamp(1.12rem, 1.8vw, 1.32rem); line-height: 1.7; color: var(--muted); }
.kicker { color: var(--red); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.microcopy { font-size: .82rem; color: var(--muted); }
.text-red { color: var(--red); }
.text-muted { color: var(--muted); }
.text-center { text-align: center; }
.max-copy { max-width: 720px; }

.button {
  min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 22px; border: 1px solid transparent; border-radius: 4px;
  font-size: .78rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease);
}
.button:hover { transform: translateY(-2px); }
.button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.button--red { background: var(--red); color: #fff; box-shadow: 0 10px 24px rgba(195,14,27,.24); }
.button--red:hover { background: var(--red-dark); box-shadow: 0 14px 28px rgba(151,11,20,.3); }
.button--dark { background: var(--ink); color: #fff; }
.button--dark:hover { background: var(--ink-3); }
.button--light { background: #fff; color: var(--ink); }
.button--light:hover { background: var(--warm); }
.button--outline { color: #fff; border-color: rgba(255,255,255,.68); background: rgba(0,0,0,.16); backdrop-filter: blur(6px); }
.button--outline:hover { background: #fff; color: var(--ink); }
.button--ghost { color: var(--ink); border-color: var(--line); background: #fff; }
.button--ghost:hover { border-color: var(--ink); }
.button--wide { width: 100%; }
.inline-link { display: inline-flex; align-items: center; gap: 8px; color: var(--red); font-weight: 800; }
.inline-link::after { content: "→"; transition: transform .2s var(--ease); }
.inline-link:hover::after { transform: translateX(4px); }

/* Utility bar and header */
.utility-bar { background: #090c10; color: #e7e8ea; font-size: .75rem; }
.utility-bar__inner { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.utility-bar__group { display: flex; align-items: center; gap: 26px; white-space: nowrap; }
.utility-bar a, .utility-bar span { display: inline-flex; align-items: center; gap: 7px; }
.utility-bar a:hover { color: #fff; }
.utility-bar svg { width: 14px; height: 14px; fill: none; stroke: var(--red); stroke-width: 2; }
.site-header {
  position: sticky; top: 0; z-index: 1100; background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(13,17,23,.08); backdrop-filter: blur(14px);
  transition: box-shadow .25s var(--ease), background .25s var(--ease);
}
.site-header.is-scrolled { box-shadow: 0 8px 30px rgba(13,17,23,.1); }
.header__inner { min-height: var(--header-h); display: flex; align-items: center; gap: 28px; }
.brand { flex: 0 0 305px; width: 305px; line-height: 0; }
.brand img { width: 100%; height: auto; }
.site-nav { margin-left: auto; }
.nav-list { list-style: none; display: flex; align-items: center; gap: 24px; margin: 0; padding: 0; }
.nav-list > li { position: relative; }
.nav-list > li > a {
  min-height: 48px; display: inline-flex; align-items: center; gap: 6px;
  font-size: .78rem; font-weight: 800; color: #23272d; white-space: nowrap;
}
.nav-list > li > a:hover, .nav-list > li > a[aria-current="page"] { color: var(--red); }
.nav-list > li > a[aria-current="page"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 5px; height: 2px; background: var(--red);
}
.has-sub > a::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: rotate(45deg) translateY(-2px); }
.sub-toggle { display: none; }
.sub-menu {
  list-style: none; position: absolute; top: calc(100% - 4px); left: -22px; width: 270px;
  margin: 0; padding: 14px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--red);
  box-shadow: var(--shadow-md); opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: .2s var(--ease);
}
.has-sub:hover > .sub-menu, .has-sub:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.sub-menu a { display: flex; padding: 10px 12px; border-radius: 4px; font-size: .83rem; font-weight: 700; }
.sub-menu a:hover { color: var(--red); background: var(--red-soft); }
.header-cta { flex: 0 0 auto; min-width: 196px; }
.nav-toggle { display: none; }

/* Home hero */
.home-hero { position: relative; min-height: 690px; background: var(--ink); overflow: hidden; }
.home-hero__media { position: absolute; inset: 0; }
.home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-hero__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(4,7,10,.96) 0%, rgba(4,7,10,.82) 31%, rgba(4,7,10,.38) 58%, rgba(4,7,10,.06) 100%),
              linear-gradient(0deg, rgba(4,7,10,.38), transparent 50%);
}
.home-hero__inner { position: relative; z-index: 2; min-height: 575px; display: flex; align-items: center; padding: 74px 0 110px; }
.home-hero__copy { max-width: 690px; color: #fff; }
.home-hero h1 { margin: 0 0 24px; color: #fff; font-size: clamp(3.25rem, 6vw, 5.55rem); letter-spacing: -.055em; }
.home-hero__lead { max-width: 620px; font-size: clamp(1.06rem, 1.7vw, 1.28rem); color: #e4e5e7; line-height: 1.72; }
.home-hero__buttons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.home-hero__note { display: flex; align-items: center; gap: 12px; margin-top: 26px; color: #d0d3d7; font-size: .82rem; }
.home-hero__note span { width: 8px; height: 8px; border-radius: 50%; background: #48b66a; box-shadow: 0 0 0 6px rgba(72,182,106,.13); }
.trust-rail { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; background: rgba(6,8,10,.91); border-top: 1px solid rgba(255,255,255,.11); backdrop-filter: blur(10px); }
.trust-grid { min-height: 115px; display: grid; grid-template-columns: repeat(5,1fr); }
.trust-item { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 18px; border-right: 1px solid rgba(255,255,255,.1); color: #fff; }
.trust-item:last-child { border-right: 0; }
.trust-item svg { width: 32px; height: 32px; flex: 0 0 auto; fill: none; stroke: var(--red); stroke-width: 1.7; }
.trust-item strong, .trust-item span { display: block; }
.trust-item strong { font-size: .84rem; line-height: 1.25; }
.trust-item span { color: #b7bbc0; font-size: .72rem; margin-top: 3px; }

/* Headings and grids */
.section-heading { max-width: 760px; margin-bottom: 44px; }
.section-heading--center { margin-inline: auto; text-align: center; }
.section-heading--center .eyebrow { justify-content: center; }
.section-heading h2 { margin-bottom: 18px; }
.section-heading p { color: var(--muted); font-size: 1.06rem; }
.split-heading { display: grid; grid-template-columns: .86fr 1.14fr; gap: 80px; align-items: end; margin-bottom: 50px; }
.split-heading h2 { margin: 0; }
.split-heading p { margin: 0; color: var(--muted); }

.value-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.value-card { background: #fff; padding: 34px 28px; min-height: 260px; }
.value-card__number { color: var(--red); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.value-card svg { width: 38px; height: 38px; margin: 28px 0 22px; fill: none; stroke: var(--red); stroke-width: 1.6; }
.value-card h3 { margin-bottom: 10px; }
.value-card p { margin: 0; color: var(--muted); font-size: .91rem; }

.service-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; }
.service-card {
  position: relative; min-height: 250px; padding: 26px 22px; overflow: hidden; isolation: isolate;
  color: #fff; background: var(--ink); border: 1px solid rgba(255,255,255,.07);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.service-card::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background: radial-gradient(circle at 90% 10%, rgba(195,14,27,.24), transparent 38%),
              linear-gradient(145deg, #1c222a, #0a0d11 72%);
}
.service-card::after { content: ""; position: absolute; right: -30px; bottom: -70px; width: 150px; height: 150px; border: 1px solid rgba(255,255,255,.08); transform: rotate(45deg); z-index: -1; }
.service-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-md); border-color: rgba(255,255,255,.25); }
.service-card svg { width: 40px; height: 40px; margin-bottom: 42px; fill: none; stroke: #ff4d58; stroke-width: 1.55; }
.service-card h3 { color: #fff; margin-bottom: 10px; font-size: 1.18rem; }
.service-card p { color: #b9bec5; font-size: .82rem; line-height: 1.55; margin-bottom: 22px; }
.service-card .inline-link { font-size: .72rem; color: #ff6a73; }

/* Signature split */
.signature { overflow: hidden; }
.signature__grid { display: grid; grid-template-columns: 1.03fr .97fr; align-items: stretch; min-height: 610px; }
.signature__visual { position: relative; min-height: 520px; background: var(--ink); overflow: hidden; }
.signature__visual img { width: 100%; height: 100%; object-fit: cover; }
.signature__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9,12,16,.62), transparent 55%); }
.signature__badge { position: absolute; z-index: 2; left: 30px; bottom: 30px; max-width: 330px; padding: 20px 22px; color: #fff; background: rgba(9,12,16,.9); border-left: 3px solid var(--red); backdrop-filter: blur(8px); }
.signature__badge strong { display: block; font-size: 1.12rem; }
.signature__badge span { color: #cbd0d4; font-size: .82rem; }
.signature__content { padding: clamp(44px, 6vw, 84px); background: var(--warm); }
.signature__content h2 { margin-bottom: 20px; }
.signature__content > p { color: var(--muted); }
.process-list { list-style: none; margin: 34px 0 0; padding: 0; counter-reset: steps; }
.process-list li { position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 18px; padding: 0 0 28px; counter-increment: steps; }
.process-list li::before { content: counter(steps, decimal-leading-zero); display: grid; place-items: center; width: 48px; height: 48px; color: var(--red); border: 1px solid #d5cbc0; background: #fff; font-size: .74rem; font-weight: 800; letter-spacing: .08em; }
.process-list li:not(:last-child)::after { content: ""; position: absolute; top: 49px; left: 24px; bottom: 1px; width: 1px; background: #d5cbc0; }
.process-list h3 { margin: 4px 0 6px; font-size: 1.05rem; }
.process-list p { margin: 0; color: var(--muted); font-size: .88rem; }

/* Projects */
.projects-showcase { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }
.project-tile { position: relative; min-height: 310px; overflow: hidden; background: var(--ink); }
.project-tile--hero { grid-row: span 2; min-height: 638px; }
.project-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--ease); }
.project-tile:hover img { transform: scale(1.035); }
.project-tile::after { content: ""; position: absolute; inset: 28% 0 0; background: linear-gradient(transparent, rgba(6,8,10,.9)); }
.project-tile__copy { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 26px; color: #fff; }
.project-tile__copy span { display: block; margin-bottom: 7px; color: #ff5964; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.project-tile__copy h3 { margin: 0 0 6px; color: #fff; font-size: clamp(1.45rem, 2.3vw, 2.2rem); }
.project-tile__copy p { margin: 0; color: #d3d6da; font-size: .85rem; }
.project-disclaimer { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 22px; padding: 20px 24px; background: var(--warm); border: 1px solid var(--warm-2); }
.project-disclaimer p { margin: 0; color: var(--muted); font-size: .85rem; }

/* Material comparison */
.comparison-wrap { overflow-x: auto; border: 1px solid var(--line); background: #fff; }
.comparison-table { width: 100%; min-width: 800px; border-collapse: collapse; }
.comparison-table th, .comparison-table td { padding: 18px 20px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.comparison-table thead th { background: var(--ink); color: #fff; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; }
.comparison-table tbody th { width: 21%; color: var(--ink); }
.comparison-table td { color: var(--muted); font-size: .88rem; }
.comparison-table tr:last-child th, .comparison-table tr:last-child td { border-bottom: 0; }

/* Service area map */
.area-panel { display: grid; grid-template-columns: .9fr 1.1fr; background: var(--ink); color: #fff; overflow: hidden; }
.area-panel__copy { padding: clamp(44px, 6vw, 80px); }
.area-panel__copy h2 { color: #fff; }
.area-panel__copy p { color: #c1c6cc; }
.area-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.area-list a { padding: 9px 12px; border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: .8rem; font-weight: 700; }
.area-list a:hover { background: var(--red); border-color: var(--red); }
.area-map { position: relative; min-height: 550px; background: linear-gradient(135deg, #f3efe9, #dfd7cc); overflow: hidden; }
.area-map::before, .area-map::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(195,14,27,.2); }
.area-map::before { width: 380px; height: 380px; left: 50%; top: 50%; transform: translate(-50%,-50%); background: rgba(195,14,27,.06); }
.area-map::after { width: 580px; height: 580px; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.area-map__road { position: absolute; height: 2px; width: 130%; left: -15%; top: 48%; background: rgba(13,17,23,.13); transform: rotate(-7deg); }
.area-map__road:nth-child(2) { top: 53%; transform: rotate(72deg); }
.map-pin { position: absolute; z-index: 3; transform: translate(-50%,-50%); display: grid; gap: 5px; justify-items: center; color: var(--ink); font-size: .68rem; font-weight: 800; }
.map-pin::before { content: ""; width: 15px; height: 15px; background: var(--red); border: 4px solid #fff; border-radius: 50%; box-shadow: 0 4px 14px rgba(13,17,23,.25); transition: transform .2s var(--ease); }
.map-pin:hover::before { transform: scale(1.25); }
.map-pin--main::before { width: 22px; height: 22px; }
.map-pin--main { font-size: .8rem; }

/* Financing */
.finance-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 66px; align-items: center; }
.finance-photo { position: relative; min-height: 470px; }
.finance-photo img { width: 100%; height: 470px; object-fit: cover; }
.finance-card { position: absolute; right: -30px; bottom: -28px; width: min(340px, 80%); padding: 26px; background: #fff; box-shadow: var(--shadow-md); border-top: 3px solid var(--red); }
.finance-card h3 { font-size: 1.1rem; }
.finance-card ul { list-style: none; padding: 0; margin: 16px 0 0; }
.finance-card li { display: flex; gap: 10px; padding: 9px 0; color: var(--muted); font-size: .85rem; }
.finance-card li::before { content: "✓"; color: var(--red); font-weight: 800; }
.finance-copy h2 { margin-bottom: 20px; }
.finance-copy p { color: var(--muted); }
.finance-copy .button { margin-top: 14px; }

/* FAQ */
.faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; align-items: start; }
.faq-intro { position: sticky; top: 130px; }
.faq-intro h2 { margin-bottom: 18px; }
.faq-intro p { color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 0; color: var(--ink); background: transparent; border: 0; text-align: left; font-weight: 800; }
.faq-question span:last-child { position: relative; flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 50%; }
.faq-question span:last-child::before, .faq-question span:last-child::after { content: ""; position: absolute; left: 8px; right: 8px; top: 13px; height: 1px; background: var(--ink); }
.faq-question span:last-child::after { transform: rotate(90deg); transition: transform .2s var(--ease); }
.faq-item.is-open .faq-question span:last-child::after { transform: rotate(0); }
.faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s var(--ease); }
.faq-answer > div { overflow: hidden; }
.faq-answer p { padding: 0 48px 22px 0; color: var(--muted); margin: 0; }
.faq-item.is-open .faq-answer { grid-template-rows: 1fr; }

/* CTA */
.cta-panel { position: relative; overflow: hidden; padding: clamp(54px, 7vw, 88px); background: var(--red); color: #fff; }
.cta-panel::before { content: ""; position: absolute; width: 440px; height: 440px; right: -120px; top: -180px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; }
.cta-panel::after { content: ""; position: absolute; width: 300px; height: 300px; right: 40px; bottom: -220px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; }
.cta-panel__inner { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.cta-panel h2 { max-width: 650px; margin: 0 0 10px; color: #fff; }
.cta-panel p { max-width: 650px; margin: 0; color: #ffe7e9; }
.cta-panel__actions { display: flex; flex-wrap: wrap; gap: 12px; flex: 0 0 auto; }

/* Inner hero */
.inner-hero { position: relative; min-height: 520px; display: grid; align-items: end; background: var(--ink); overflow: hidden; }
.inner-hero__media { position: absolute; inset: 0; }
.inner-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.inner-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,7,10,.96), rgba(4,7,10,.62) 56%, rgba(4,7,10,.2)), linear-gradient(0deg, rgba(4,7,10,.65), transparent 55%); }
.inner-hero__content { position: relative; z-index: 2; max-width: 900px; padding: 86px 0 72px; color: #fff; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 24px; color: #c8cdd2; font-size: .75rem; }
.breadcrumbs a:hover { color: #fff; }
.breadcrumbs span { color: #858c94; }
.inner-hero h1 { color: #fff; margin: 0 0 20px; font-size: clamp(2.8rem, 5.5vw, 4.9rem); }
.inner-hero__lead { max-width: 770px; margin: 0; color: #e3e5e8; font-size: clamp(1.03rem, 1.6vw, 1.25rem); line-height: 1.7; }
.inner-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* Page content */
.page-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: start; }
.page-intro h2 { margin-bottom: 18px; }
.page-intro__copy p { color: var(--muted); }
.stat-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 38px; }
.stat-strip div { padding: 22px; background: #fff; }
.stat-strip strong { display: block; color: var(--red); font-size: 1.6rem; }
.stat-strip span { color: var(--muted); font-size: .8rem; }

.content-grid { display: grid; grid-template-columns: minmax(0,1fr) 370px; gap: 70px; align-items: start; }
.content-body > *:first-child { margin-top: 0; }
.content-body h2 { margin: 52px 0 18px; font-size: clamp(1.9rem, 3vw, 2.85rem); }
.content-body h3 { margin: 32px 0 10px; }
.content-body p, .content-body li { color: #4e555e; }
.content-body ul, .content-body ol { padding-left: 1.2rem; }
.content-body li { margin: 7px 0; }
.content-body a:not(.button):not(.inline-link) { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.sidebar { position: sticky; top: 126px; }
.sidebar-card { padding: 30px; background: var(--warm); border: 1px solid var(--warm-2); }
.sidebar-card + .sidebar-card { margin-top: 18px; }
.sidebar-card h2, .sidebar-card h3 { margin-bottom: 12px; }
.sidebar-card p { color: var(--muted); font-size: .9rem; }
.sidebar-links { list-style: none; padding: 0; margin: 0; }
.sidebar-links li { border-top: 1px solid #d8d0c6; }
.sidebar-links a { display: flex; justify-content: space-between; gap: 12px; padding: 13px 0; font-size: .84rem; font-weight: 800; }
.sidebar-links a::after { content: "→"; color: var(--red); }

.icon-checks { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; list-style: none; padding: 0 !important; margin: 26px 0; }
.icon-checks li { display: flex; gap: 10px; align-items: flex-start; padding: 16px; background: var(--warm); color: var(--ink); font-size: .88rem; font-weight: 700; }
.icon-checks li::before { content: "✓"; color: var(--red); font-weight: 800; }
.option-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 26px 0; }
.option-card { min-height: 190px; padding: 24px; border: 1px solid var(--line); background: #fff; }
.option-card span { display: block; margin-bottom: 16px; color: var(--red); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.option-card h3 { margin: 0 0 10px; font-size: 1.15rem; }
.option-card p { margin: 0; color: var(--muted); font-size: .85rem; }
.detail-band { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 30px 0; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.13); }
.detail-band article { padding: 28px; background: var(--ink-2); }
.detail-band span { color: #ff5964; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.detail-band h3 { color: #fff; margin: 12px 0 8px; }
.detail-band p { margin: 0; color: #b8bec5; font-size: .86rem; }

.process-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.process-card { padding: 26px 24px; border-top: 3px solid var(--red); background: #fff; box-shadow: var(--shadow-xs); }
.process-card span { display: inline-grid; place-items: center; width: 40px; height: 40px; margin-bottom: 18px; border: 1px solid var(--line); color: var(--red); font-size: .72rem; font-weight: 800; }
.process-card h3 { margin-bottom: 8px; font-size: 1.05rem; }
.process-card p { margin: 0; color: var(--muted); font-size: .84rem; }

.related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.related-card { position: relative; min-height: 230px; padding: 26px; border: 1px solid var(--line); background: #fff; overflow: hidden; }
.related-card::after { content: ""; position: absolute; width: 120px; height: 120px; right: -55px; bottom: -55px; border: 1px solid var(--red-soft); transform: rotate(45deg); }
.related-card h3 { margin: 20px 0 10px; }
.related-card p { color: var(--muted); font-size: .86rem; }
.related-card .kicker { font-size: .66rem; }

/* Forms */
.estimate-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-field { display: grid; gap: 7px; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { color: var(--ink); font-size: .78rem; font-weight: 800; }
.form-field input, .form-field select, .form-field textarea {
  width: 100%; min-height: 50px; padding: 12px 14px; color: var(--ink); background: #fff; border: 1px solid #cfd3d8; border-radius: 3px;
}
.form-field textarea { min-height: 132px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 3px solid rgba(195,14,27,.11); border-color: var(--red); }
.form-consent { grid-column: 1 / -1; color: var(--muted); font-size: .72rem; }
.hp-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: start; }
.contact-panel { padding: 38px; background: var(--ink); color: #fff; }
.contact-panel h2 { color: #fff; }
.contact-panel p { color: #c2c7cd; }
.contact-detail { display: flex; gap: 14px; padding: 19px 0; border-top: 1px solid rgba(255,255,255,.12); }
.contact-detail svg { width: 22px; height: 22px; flex: 0 0 auto; fill: none; stroke: var(--red); stroke-width: 1.8; }
.contact-detail span, .contact-detail a { display: block; }
.contact-detail span { color: #9fa6ae; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; }
.contact-detail a, .contact-detail strong { color: #fff; }
.form-card { padding: clamp(28px, 4vw, 44px); background: var(--warm); border: 1px solid var(--warm-2); }
.form-card h2 { margin-bottom: 10px; }
.form-card > p { color: var(--muted); }

/* Location pages */
.location-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 28px; }
.location-fact { padding: 22px; border: 1px solid var(--line); background: #fff; }
.location-fact span { display: block; color: var(--red); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.location-fact strong { display: block; margin-top: 8px; }
.permit-note { margin: 28px 0; padding: 24px; border-left: 4px solid var(--red); background: var(--red-soft); }
.permit-note h3 { margin: 0 0 8px; font-size: 1.05rem; }
.permit-note p { margin: 0; color: #5f474a; font-size: .86rem; }
.permit-note a { font-weight: 800; }
.city-link-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.city-link { display: flex; justify-content: space-between; padding: 15px 16px; border: 1px solid var(--line); background: #fff; font-size: .8rem; font-weight: 800; }
.city-link:hover { color: var(--red); border-color: var(--red); }

/* Projects page */
.project-gallery { display: grid; grid-template-columns: 1.2fr .8fr; grid-auto-rows: 350px; gap: 18px; }
.gallery-card { position: relative; overflow: hidden; border: 0; padding: 0; text-align: left; background: var(--ink); cursor: zoom-in; }
.gallery-card:first-child { grid-row: span 2; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.gallery-card:hover img { transform: scale(1.03); }
.gallery-card::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.9)); }
.gallery-card__label { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 22px; color: #fff; }
.gallery-card__label strong { display: block; font-size: 1.3rem; }
.gallery-card__label span { color: #d3d7dc; font-size: .8rem; }
.lightbox { width: min(94vw, 980px); max-height: 92vh; padding: 0; border: 0; background: #07090c; box-shadow: var(--shadow-lg); }
.lightbox::backdrop { background: rgba(0,0,0,.86); }
.lightbox img { max-height: 86vh; width: 100%; object-fit: contain; }
.lightbox__close { position: absolute; right: 12px; top: 12px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #fff; color: #111; font-size: 1.5rem; }
.project-notes { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.project-note { padding: 26px; background: var(--warm); }
.project-note h3 { margin-bottom: 10px; }
.project-note p { margin: 0; color: var(--muted); font-size: .86rem; }

/* Resources */
.article-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 72px; align-items: start; }
.article-body { max-width: 820px; }
.article-body h2 { margin: 52px 0 16px; font-size: clamp(1.9rem, 3vw, 2.7rem); }
.article-body h3 { margin: 30px 0 10px; }
.article-body p, .article-body li { color: #4f565f; }
.article-body table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.article-body th, .article-body td { padding: 15px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.article-body th { background: var(--warm); }
.article-toc { position: sticky; top: 126px; padding: 25px; border-left: 3px solid var(--red); background: var(--warm); }
.article-toc h2 { font-size: 1rem; letter-spacing: 0; }
.article-toc ol { padding-left: 18px; margin-bottom: 0; }
.article-toc li { margin: 8px 0; color: var(--muted); font-size: .78rem; }
.article-toc a:hover { color: var(--red); }
.callout { margin: 28px 0; padding: 24px 26px; background: var(--ink); color: #fff; }
.callout h3 { color: #fff; margin-top: 0; }
.callout p { color: #cbd0d5; margin-bottom: 0; }

/* Footer */
.site-footer { background: #0a0d11; color: #aeb4bb; }
.footer-main { padding: 58px 0 36px; }
.footer-grid { display: grid; grid-template-columns: 1.35fr .72fr .78fr .92fr; gap: 52px; }
.brand--footer { display: block; width: 330px; max-width: 100%; margin-bottom: 20px; line-height: 0; }
.footer-about p { max-width: 360px; font-size: .84rem; }
.footer-title { margin-bottom: 16px; color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin: 7px 0; }
.footer-links a { font-size: .82rem; }
.footer-links a:hover { color: #fff; }
.footer-contact a, .footer-contact span { display: flex; gap: 9px; margin: 10px 0; font-size: .82rem; }
.footer-contact svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: var(--red); stroke-width: 1.8; margin-top: 3px; }
.footer-social { display: flex; gap: 10px; margin-top: 18px; }
.footer-social a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; font-size: .75rem; font-weight: 800; }
.footer-social a:hover { background: var(--red); border-color: var(--red); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.11); }
.footer-bottom__inner { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 22px; font-size: .72rem; }
.footer-bottom__links { display: flex; flex-wrap: wrap; gap: 22px; }
.mobile-actions { display: none; }

/* Legal and 404 */
.legal-body { max-width: 860px; }
.legal-body h2 { margin-top: 40px; font-size: 1.8rem; }
.legal-body p, .legal-body li { color: var(--muted); }
.error-page { min-height: 68vh; display: grid; place-items: center; text-align: center; padding: 80px 0; }
.error-code { color: var(--red); font-size: clamp(5rem, 18vw, 12rem); font-weight: 800; line-height: .85; letter-spacing: -.08em; }
.error-page h1 { font-size: clamp(2rem, 5vw, 4rem); margin: 24px 0 12px; }
.error-page p { max-width: 650px; margin-inline: auto; color: var(--muted); }

/* Reveals */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s var(--ease), transform .65s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .08s; }
.reveal-delay-2 { transition-delay: .16s; }
.reveal-delay-3 { transition-delay: .24s; }

@media (max-width: 1240px) {
  .container, .container--wide { width: min(calc(100% - 34px), var(--container)); }
  .header__inner { gap: 20px; }
  .brand { flex-basis: 280px; width: 280px; }
  .nav-list { gap: 17px; }
  .header-cta { min-width: 174px; padding-inline: 16px; }
  .service-grid { grid-template-columns: repeat(4,1fr); }
}

@media (max-width: 1080px) {
  .header-cta { display: none; }
  .brand { flex-basis: 285px; width: 285px; }
  .nav-list { gap: 22px; }
  .service-grid { grid-template-columns: repeat(3,1fr); }
  .trust-grid { grid-template-columns: repeat(5,1fr); }
  .trust-item { gap: 10px; padding-inline: 10px; }
  .trust-item svg { width: 27px; height: 27px; }
  .footer-grid { grid-template-columns: 1.3fr .7fr .8fr; }
  .footer-grid > :last-child { grid-column: 2 / -1; }
  .content-grid { grid-template-columns: minmax(0,1fr) 330px; gap: 44px; }
}

@media (max-width: 900px) {
  :root { --header-h: 82px; }
  body { padding-bottom: 62px; }
  .utility-bar { display: none; }
  .header__inner { min-height: var(--header-h); }
  .brand { flex-basis: 270px; width: 270px; }
  .nav-toggle { display: grid; width: 46px; height: 46px; margin-left: auto; place-content: center; gap: 5px; border: 0; background: transparent; }
  .nav-toggle span { display: block; width: 27px; height: 2px; background: var(--ink); transition: .2s var(--ease); }
  .nav-toggle b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav { position: fixed; inset: var(--header-h) 0 62px; margin: 0; padding: 18px 22px 40px; overflow-y: auto; background: #fff; transform: translateX(100%); transition: transform .25s var(--ease); }
  .site-nav.is-open { transform: none; }
  .nav-list { display: block; }
  .nav-list > li { border-bottom: 1px solid var(--line); }
  .nav-list > li > a { width: calc(100% - 42px); min-height: 58px; font-size: .9rem; }
  .nav-list > li > a[aria-current="page"]::after { display: none; }
  .has-sub > a::after { display: none; }
  .sub-toggle { display: grid; place-items: center; position: absolute; right: 0; top: 7px; width: 42px; height: 42px; border: 0; background: var(--warm); font-size: 1.25rem; }
  .sub-menu { position: static; display: none; width: auto; padding: 0 0 12px 12px; border: 0; border-left: 2px solid var(--red); box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .has-sub.is-open > .sub-menu { display: block; }
  .home-hero { min-height: 760px; }
  .home-hero__media img { object-position: 60% center; }
  .home-hero__media::after { background: linear-gradient(90deg, rgba(4,7,10,.96), rgba(4,7,10,.63)), linear-gradient(0deg, rgba(4,7,10,.7), transparent 50%); }
  .home-hero__inner { min-height: 540px; padding: 70px 0 240px; }
  .home-hero__copy { max-width: 620px; }
  .trust-rail { position: absolute; }
  .trust-grid { grid-template-columns: repeat(2,1fr); min-height: auto; }
  .trust-item { justify-content: flex-start; min-height: 82px; padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .trust-item:nth-child(2n) { border-right: 0; }
  .trust-item:last-child { grid-column: 1 / -1; }
  .split-heading, .page-intro, .content-grid, .article-layout, .contact-layout, .faq-layout, .area-panel, .finance-split { grid-template-columns: 1fr; }
  .split-heading { gap: 20px; }
  .value-grid { grid-template-columns: repeat(2,1fr); }
  .service-grid { grid-template-columns: repeat(2,1fr); }
  .signature__grid { grid-template-columns: 1fr; }
  .signature__visual { min-height: 500px; }
  .projects-showcase { grid-template-columns: 1fr 1fr; }
  .project-tile--hero { grid-column: 1 / -1; grid-row: auto; min-height: 560px; }
  .area-panel__copy { padding: 56px 34px; }
  .area-map { min-height: 500px; }
  .finance-photo { order: 2; margin-right: 30px; }
  .faq-intro, .sidebar, .article-toc { position: static; }
  .process-grid { grid-template-columns: repeat(2,1fr); }
  .related-grid, .option-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid > :last-child { grid-column: auto; }
  .mobile-actions { position: fixed; z-index: 1200; left: 0; right: 0; bottom: 0; height: 62px; display: grid; grid-template-columns: 1fr 1fr; background: var(--ink); box-shadow: 0 -8px 26px rgba(0,0,0,.2); }
  .mobile-actions a { display: grid; place-items: center; color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
  .mobile-actions a:last-child { background: var(--red); }
  .site-footer { padding-bottom: 62px; }
}

@media (max-width: 640px) {
  .container, .container--wide, .container--narrow { width: min(calc(100% - 28px), var(--container)); }
  .section { padding: 62px 0; }
  .section--tight { padding: 48px 0; }
  .brand { flex-basis: 235px; width: 235px; }
  .home-hero { min-height: 785px; }
  .home-hero__media img { object-position: 63% center; }
  .home-hero__inner { min-height: 520px; padding: 58px 0 270px; }
  .home-hero h1 { font-size: clamp(3rem, 14vw, 4.25rem); }
  .home-hero__buttons { display: grid; }
  .home-hero__buttons .button { width: 100%; }
  .home-hero__note { align-items: flex-start; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .trust-item { min-height: 84px; padding: 12px 10px; }
  .trust-item svg { width: 26px; height: 26px; }
  .trust-item strong { font-size: .74rem; }
  .trust-item span { font-size: .66rem; }
  .value-grid, .service-grid, .projects-showcase, .process-grid, .related-grid, .option-grid, .location-facts, .project-notes, .detail-band, .stat-strip, .city-link-grid { grid-template-columns: 1fr; }
  .value-card { min-height: 220px; }
  .service-card { min-height: 225px; }
  .signature__visual { min-height: 380px; }
  .signature__badge { left: 18px; right: 18px; bottom: 18px; max-width: none; }
  .signature__content { padding: 42px 24px; }
  .project-tile, .project-tile--hero { min-height: 390px; grid-column: auto; }
  .project-disclaimer { align-items: flex-start; flex-direction: column; }
  .area-map { min-height: 440px; }
  .map-pin { font-size: .58rem; }
  .finance-photo { min-height: 500px; margin-right: 0; padding-bottom: 120px; }
  .finance-photo img { height: 360px; }
  .finance-card { left: 16px; right: 16px; bottom: 0; width: auto; }
  .faq-answer p { padding-right: 12px; }
  .cta-panel { padding: 48px 26px; }
  .cta-panel__inner { align-items: flex-start; flex-direction: column; }
  .cta-panel__actions { display: grid; width: 100%; }
  .inner-hero { min-height: 450px; }
  .inner-hero__content { padding: 66px 0 52px; }
  .inner-hero h1 { font-size: clamp(2.55rem, 12vw, 3.8rem); }
  .icon-checks { grid-template-columns: 1fr; }
  .estimate-form { grid-template-columns: 1fr; }
  .form-field--full, .form-consent { grid-column: auto; }
  .form-card, .contact-panel { padding: 28px 22px; }
  .project-gallery { grid-template-columns: 1fr; grid-auto-rows: 390px; }
  .gallery-card:first-child { grid-row: auto; }
  .footer-grid { grid-template-columns: 1fr; gap: 34px; }
  .footer-bottom__inner { align-items: flex-start; flex-direction: column; padding: 18px 0; }
  .brand--footer { width: 290px; }
}

@media (max-width: 390px) {
  .brand { flex-basis: 210px; width: 210px; }
  .trust-item { gap: 8px; }
  .trust-item svg { width: 23px; height: 23px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ========================================================================== 
   Premier Fence premium static rebuild — 2026-07-17
   This layer replaces the legacy theme layout with a custom editorial system.
   ========================================================================== */
:root {
  --pf-ink: #0a0d12;
  --pf-ink-soft: #121720;
  --pf-charcoal: #202630;
  --pf-red: #c6121b;
  --pf-red-dark: #981017;
  --pf-red-bright: #ef3540;
  --pf-cream: #f5f1e9;
  --pf-cream-deep: #e9e2d6;
  --pf-paper: #ffffff;
  --pf-text: #171b21;
  --pf-muted: #626a75;
  --pf-line: #dfe2e5;
  --pf-radius: 18px;
  --pf-radius-sm: 10px;
  --pf-shadow: 0 22px 70px rgba(10,13,18,.12);
  --pf-shadow-soft: 0 10px 34px rgba(10,13,18,.08);
  --pf-container: 1280px;
}

html { scroll-padding-top: 118px; }
body {
  overflow-x: clip;
  color: var(--pf-text);
  background: var(--pf-paper);
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  line-height: 1.65;
}
body.nav-open { overflow: hidden; }
h1,h2,h3,h4 { color: var(--pf-ink); font-weight: 800; letter-spacing: -.045em; }
h1 { font-size: clamp(3.15rem, 6vw, 6.25rem); }
h2 { font-size: clamp(2.2rem, 4.4vw, 4rem); }
h3 { letter-spacing: -.025em; }
.container { width: min(calc(100% - 48px), var(--pf-container)); }
.section { padding: clamp(78px, 8vw, 126px) 0; }
.section--white { background: #fff; }
.section--cream { background: var(--pf-cream); }
.section--ink { background: var(--pf-ink); color: #fff; }
.section--ink h1,.section--ink h2,.section--ink h3 { color: #fff; }
.section--ink p { color: #c3c8ce; }
.sr-only { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.skip-link { z-index: 10000; }

.micro-label {
  display: inline-flex; align-items: center; gap: 11px;
  margin-bottom: 16px; color: var(--pf-red); font-size: .72rem;
  font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
}
.micro-label::before { content:""; width: 28px; height: 2px; background: currentColor; }
.micro-label--light { color: #ff6670; }
.text-link {
  display: inline-flex; align-items: center; gap: 9px; color: var(--pf-red);
  font-size: .84rem; font-weight: 800; letter-spacing: .02em;
}
.text-link svg { width: 18px; height: 18px; fill:none; stroke:currentColor; stroke-width:1.8; transition: transform .2s ease; }
.text-link:hover svg { transform: translateX(4px); }
.text-link--light { color: #ff6d76; }

.button {
  min-height: 54px; padding: 15px 23px; border-radius: 2px; border: 1px solid transparent;
  font-size: .76rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase;
}
.button svg { width: 18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; }
.button--primary { color:#fff; background:var(--pf-red); box-shadow: 0 12px 28px rgba(198,18,27,.25); }
.button--primary:hover { color:#fff; background:var(--pf-red-dark); }
.button--dark { color:#fff; background:var(--pf-ink); }
.button--dark:hover { color:#fff; background:#242b35; }
.button--light { color:var(--pf-ink); background:#fff; }
.button--light:hover { color:var(--pf-red); }
.button--outline-light { color:#fff; border-color:rgba(255,255,255,.75); background:rgba(0,0,0,.18); backdrop-filter:blur(8px); }
.button--outline-light:hover { color:var(--pf-ink); background:#fff; }
.button--large { min-height: 60px; padding-inline: 28px; }
.button--wide { width:100%; }

/* utility + navigation */
.utility-bar { background:#090c10; color:#e8eaed; font-size:.73rem; }
.utility-bar__inner { min-height:36px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.utility-bar__group { display:flex; align-items:center; gap:26px; white-space:nowrap; }
.utility-bar__group a,.utility-bar__group span { display:inline-flex; align-items:center; gap:8px; }
.utility-bar__group a:hover { color:#fff; }
.utility-bar svg { width:14px; height:14px; fill:none; stroke:var(--pf-red); stroke-width:2; }
.site-header { position:sticky; top:0; z-index:1200; background:rgba(255,255,255,.98); border-bottom:1px solid rgba(10,13,18,.08); backdrop-filter:blur(16px); transition: box-shadow .22s ease; }
.site-header.is-scrolled { box-shadow:0 10px 35px rgba(10,13,18,.10); }
.header-layout { min-height:94px; display:grid; grid-template-columns:300px minmax(0,1fr) auto; align-items:center; gap:28px; }
.site-brand { width:300px; line-height:0; }
.site-brand img { width:100%; height:auto; }
.primary-nav { justify-self:end; }
.primary-nav__list { display:flex; align-items:center; gap:25px; margin:0; padding:0; list-style:none; }
.primary-nav__list > li { position:relative; }
.primary-nav__list > li > a { min-height:52px; display:flex; align-items:center; font-size:.77rem; font-weight:800; color:#262b31; white-space:nowrap; position:relative; }
.primary-nav__list > li > a:hover,.primary-nav__list > li > a[aria-current="page"] { color:var(--pf-red); }
.primary-nav__list > li > a[aria-current="page"]::after { content:""; position:absolute; left:0; right:0; bottom:3px; height:2px; background:var(--pf-red); }
.nav-parent { display:flex; align-items:center; }
.nav-parent__toggle { width:24px; height:38px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:#343942; }
.nav-parent__toggle svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; transition:transform .2s ease; }
.nav-parent:hover .nav-parent__toggle svg,.nav-parent:focus-within .nav-parent__toggle svg { transform:rotate(180deg); }
.mega-menu { position:fixed; left:50%; top:130px; width:min(calc(100% - 48px), 1180px); max-height:calc(100vh - 155px); overflow:auto; transform:translate(-50%, 14px); display:grid; grid-template-columns:310px 1fr; gap:34px; padding:34px; opacity:0; visibility:hidden; pointer-events:none; background:#fff; border-top:3px solid var(--pf-red); box-shadow:0 28px 75px rgba(10,13,18,.20); transition:opacity .2s ease, transform .2s ease, visibility .2s ease; }
.nav-parent:hover > .mega-menu,.nav-parent:focus-within > .mega-menu,.nav-parent.is-open > .mega-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.mega-menu__intro { padding:8px 28px 8px 4px; border-right:1px solid var(--pf-line); }
.mega-menu__intro strong { display:block; margin-bottom:12px; color:var(--pf-ink); font-size:1.5rem; line-height:1.2; letter-spacing:-.035em; }
.mega-menu__intro p { color:var(--pf-muted); font-size:.88rem; }
.mega-menu__intro a { display:inline-flex; align-items:center; gap:8px; color:var(--pf-red); font-size:.8rem; font-weight: 800; }
.mega-menu__intro a svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
.mega-menu__links { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; margin:0; padding:0; list-style:none; }
.mega-menu__links a { min-height:84px; display:flex; align-items:center; gap:14px; padding:12px 14px; border:1px solid transparent; }
.mega-menu__links a:hover { background:var(--pf-cream); border-color:var(--pf-cream-deep); }
.mega-menu__links svg { width:34px; height:34px; flex:0 0 auto; fill:none; stroke:var(--pf-red); stroke-width:1.5; }
.mega-menu__links b,.mega-menu__links small { display:block; }
.mega-menu__links b { margin-bottom:3px; font-size:.84rem; }
.mega-menu__links small { color:var(--pf-muted); font-size:.7rem; line-height:1.35; }
.mega-menu--areas { grid-template-columns:390px 1fr; }
.mega-menu__city-list { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:0; padding:0; list-style:none; }
.mega-menu__city-list a { display:flex; align-items:center; justify-content:space-between; min-height:48px; padding:8px 13px; border-bottom:1px solid var(--pf-line); font-size:.82rem; font-weight:800; }
.mega-menu__city-list a::after { content:"↗"; color:var(--pf-red); }
.header-estimate { min-width:196px; }
.nav-toggle { display:none; }

/* universal section headings */
.section-heading { max-width:none; margin-bottom:50px; }
.section-heading h2 { margin:0; }
.section-heading > p,.section-heading > div > p { color:var(--pf-muted); }
.section-heading--center { max-width:850px; margin-inline:auto; text-align:center; }
.section-heading--center .micro-label { justify-content:center; }
.section-heading--split { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:80px; align-items:end; }
.section-heading--split > :last-child { margin:0; }
.section-heading--light h2 { color:#fff; }
.section-heading--light p { color:#bcc2c9; }

/* homepage hero */
.home-hero { position:relative; min-height:690px; display:flex; align-items:stretch; overflow:hidden; background:var(--pf-ink); }
.home-hero__media { position:absolute; inset:0; }
.home-hero__media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.home-hero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,7,10,.94) 0%,rgba(4,7,10,.80) 34%,rgba(4,7,10,.30) 64%,rgba(4,7,10,.05) 100%),linear-gradient(0deg,rgba(4,7,10,.58),transparent 58%); }
.home-hero__content { position:relative; z-index:2; min-height:575px; display:flex; align-items:center; padding:70px 0 128px; }
.home-hero__copy { max-width:720px; color:#fff; }
.home-hero h1 { margin:0 0 24px; color:#fff; font-size:clamp(3.7rem,6.2vw,6.2rem); line-height:.98; letter-spacing:-.065em; }
.home-hero__copy > p { max-width:650px; color:#eceef1; font-size:clamp(1.08rem,1.7vw,1.3rem); line-height:1.68; }
.home-hero__actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:31px; }
.home-hero__support { margin:24px 0 0; color:#bcc1c8!important; font-size:.78rem!important; line-height:1.55!important; }
.home-hero__trust { position:absolute; z-index:3; left:0; right:0; bottom:0; background:rgba(5,8,11,.92); border-top:1px solid rgba(255,255,255,.11); backdrop-filter:blur(12px); }
.home-trust-grid { min-height:112px; display:grid; grid-template-columns:repeat(5,1fr); }
.home-trust-grid > div { display:flex; align-items:center; justify-content:center; gap:14px; padding:18px 20px; color:#fff; border-right:1px solid rgba(255,255,255,.10); }
.home-trust-grid > div:last-child { border-right:0; }
.home-trust-grid svg { width:31px; height:31px; flex:0 0 auto; fill:none; stroke:var(--pf-red-bright); stroke-width:1.65; }
.home-trust-grid b,.home-trust-grid small { display:block; }
.home-trust-grid b { font-size:.82rem; }
.home-trust-grid small { margin-top:3px; color:#aeb5bd; font-size:.69rem; }

.principle-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--pf-line); border:1px solid var(--pf-line); }
.principle-grid article { min-height:280px; padding:32px 28px; background:#fff; }
.principle-grid__icon { width:52px; height:52px; display:grid; place-items:center; margin-bottom:32px; border:1px solid #f0c3c6; background:#fff7f7; color:var(--pf-red); }
.principle-grid__icon svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.7; }
.principle-grid h3 { margin-bottom:12px; font-size:1.18rem; }
.principle-grid p { margin:0; color:var(--pf-muted); font-size:.87rem; }
.principle-grid--boxed { background:transparent; border:0; gap:16px; }
.principle-grid--boxed article { border:1px solid var(--pf-line); box-shadow:var(--pf-shadow-soft); }

.service-card-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:13px; }
.service-card { min-height:300px; display:flex; flex-direction:column; position:relative; padding:27px 23px; isolation:isolate; overflow:hidden; border:1px solid rgba(255,255,255,.09); background:linear-gradient(150deg,#1d242d,#090c10 72%); color:#fff; }
.service-card::before { content:""; position:absolute; z-index:-1; width:180px; height:180px; right:-80px; top:-90px; border-radius:50%; background:radial-gradient(circle,rgba(198,18,27,.32),rgba(198,18,27,0) 70%); }
.service-card:hover { transform:translateY(-6px); border-color:rgba(255,255,255,.27); box-shadow:0 22px 50px rgba(0,0,0,.28); }
.service-card__icon { width:48px; height:48px; display:grid; place-items:center; margin-bottom:34px; color:#ff525d; }
.service-card__icon svg { width:43px; height:43px; fill:none; stroke:currentColor; stroke-width:1.55; }
.service-card__body { flex:1; display:flex; flex-direction:column; }
.service-card__number { color:#ff5d67; font-size:.66rem; font-weight: 800; letter-spacing:.16em; }
.service-card h3 { margin:9px 0 10px; color:#fff; font-size:1.13rem; }
.service-card p { margin:0 0 20px; color:#b9c0c8; font-size:.79rem; line-height:1.58; }
.service-card__link { margin-top:auto; display:inline-flex; align-items:center; gap:7px; color:#ff626c; font-size:.71rem; font-weight: 800; }
.service-card__link svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.service-card-grid--light .service-card { border-color:var(--pf-line); background:#fff; color:var(--pf-text); box-shadow:0 8px 25px rgba(10,13,18,.05); }
.service-card-grid--light .service-card::before { background:radial-gradient(circle,rgba(198,18,27,.12),rgba(198,18,27,0) 70%); }
.service-card-grid--light .service-card h3 { color:var(--pf-ink); }
.service-card-grid--light .service-card p { color:var(--pf-muted); }

.home-planning__layout { display:grid; grid-template-columns:1.02fr .98fr; min-height:650px; align-items:stretch; }
.home-planning__visual { position:relative; min-height:590px; overflow:hidden; background:var(--pf-ink); }
.home-planning__visual picture,.home-planning__visual img { width:100%; height:100%; }
.home-planning__visual img { object-fit:cover; }
.home-planning__stamp { position:absolute; left:28px; bottom:28px; max-width:330px; padding:19px 22px; color:#fff; background:rgba(7,10,14,.90); border-left:3px solid var(--pf-red); backdrop-filter:blur(8px); }
.home-planning__stamp span,.home-planning__stamp b { display:block; }
.home-planning__stamp span { margin-bottom:4px; color:#ff6972; font-size:.65rem; font-weight: 800; letter-spacing:.14em; text-transform:uppercase; }
.home-planning__stamp b { font-size:.89rem; }
.home-planning__copy { padding:clamp(48px,6vw,86px); background:#fff; }
.home-planning__copy h2 { margin-bottom:22px; }
.home-planning__copy > p { color:var(--pf-muted); }
.check-list { margin:31px 0; padding:0; list-style:none; }
.check-list li { display:grid; grid-template-columns:34px 1fr; gap:13px; padding:16px 0; border-top:1px solid var(--pf-line); }
.check-list svg { width:26px; height:26px; fill:none; stroke:var(--pf-red); stroke-width:1.7; }
.check-list b,.check-list small { display:block; }
.check-list b { margin-bottom:3px; font-size:.91rem; }
.check-list small { color:var(--pf-muted); font-size:.79rem; line-height:1.45; }

.process-section .section-heading { margin-bottom:45px; }
.process-grid { counter-reset:steps; display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.process-grid li { position:relative; min-height:260px; padding:30px 28px; list-style:none; border-top:1px solid var(--pf-line); border-right:1px solid var(--pf-line); }
.process-grid li:first-child { border-left:1px solid var(--pf-line); }
.process-grid__number { display:inline-grid; place-items:center; width:44px; height:44px; margin-bottom:45px; border:1px solid var(--pf-line); color:var(--pf-red); font-size:.7rem; font-weight: 800; letter-spacing:.1em; }
.process-grid__line { position:absolute; top:52px; left:73px; right:0; height:1px; background:var(--pf-line); }
.process-grid h3 { margin-bottom:10px; font-size:1.1rem; }
.process-grid p { margin:0; color:var(--pf-muted); font-size:.84rem; }
.section--ink .process-grid li { border-color:rgba(255,255,255,.13); }
.section--ink .process-grid__number { border-color:rgba(255,255,255,.18); color:#ff5a64; }
.section--ink .process-grid__line { background:rgba(255,255,255,.13); }
.section--ink .process-grid p { color:#b4bbc3; }

.project-showcase { display:grid; grid-template-columns:1.24fr .76fr; grid-template-rows:repeat(2,310px); gap:16px; }
.project-tile { min-height:0; display:block; position:relative; overflow:hidden; background:var(--pf-ink); }
.project-tile--wide { grid-row:1 / 3; }
.project-tile picture,.project-tile img { width:100%; height:100%; }
.project-tile img { object-fit:cover; transition:transform .5s ease; }
.project-tile:hover img { transform:scale(1.04); }
.project-tile__overlay { position:absolute; inset:auto 0 0; display:block; padding:65px 27px 25px; color:#fff; background:linear-gradient(transparent,rgba(4,7,10,.94)); }
.project-tile__overlay small,.project-tile__overlay b,.project-tile__overlay em { display:block; }
.project-tile__overlay small { color:#ff656f; font-size:.66rem; font-weight: 800; letter-spacing:.16em; text-transform:uppercase; }
.project-tile__overlay b { margin:5px 0; font-size:clamp(1.2rem,2.2vw,2rem); }
.project-tile__overlay em { display:inline-flex; align-items:center; gap:7px; color:#d0d5da; font-size:.73rem; font-style:normal; }
.project-tile__overlay svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }

.home-financing__layout { display:grid; grid-template-columns:1.04fr .96fr; gap:70px; align-items:center; }
.home-financing__copy > p { color:var(--pf-muted); }
.home-financing__actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:27px; }
.fine-print { margin-top:18px!important; font-size:.73rem!important; }
.home-financing__card { position:relative; padding:35px; color:#fff; background:linear-gradient(145deg,#202630,#090c10); box-shadow:var(--pf-shadow); }
.home-financing__badge { position:absolute; right:24px; top:-13px; padding:7px 12px; background:var(--pf-red); font-size:.65rem; font-weight: 800; letter-spacing:.12em; text-transform:uppercase; }
.home-financing__card ol { margin:0; padding:0; list-style:none; }
.home-financing__card li { display:grid; grid-template-columns:50px 1fr; gap:17px; padding:23px 0; border-top:1px solid rgba(255,255,255,.13); }
.home-financing__card li:first-child { border-top:0; }
.home-financing__card li > span { color:#ff5c66; font-size:.72rem; font-weight: 800; }
.home-financing__card b,.home-financing__card small { display:block; }
.home-financing__card b { margin-bottom:5px; }
.home-financing__card small { color:#aeb5bd; font-size:.77rem; }

.home-areas__layout { display:grid; grid-template-columns:.92fr 1.08fr; gap:65px; align-items:start; }
.home-areas__copy > p { color:var(--pf-muted); }
.home-areas__links { display:grid; grid-template-columns:repeat(2,1fr); gap:0 18px; margin:27px 0; }
.home-areas__links a { display:flex; justify-content:space-between; align-items:center; padding:13px 0; border-bottom:1px solid var(--pf-line); font-size:.8rem; font-weight:800; }
.home-areas__links svg { width:16px; height:16px; fill:none; stroke:var(--pf-red); stroke-width:1.7; }
.service-map { overflow:hidden; border:1px solid var(--pf-cream-deep); background:var(--pf-cream); box-shadow:var(--pf-shadow-soft); }
.service-map svg { width:100%; height:auto; }
.service-map__legend { display:flex; align-items:center; gap:9px; padding:15px 19px; color:var(--pf-muted); background:#fff; border-top:1px solid var(--pf-line); font-size:.72rem; }
.service-map__legend span { width:10px; height:10px; border-radius:50%; background:var(--pf-red); box-shadow:0 0 0 5px rgba(198,18,27,.12); }
.service-map--sticky { position:sticky; top:150px; }

/* inner hero + breadcrumbs */
.inner-hero { min-height:590px; display:block; position:relative; overflow:hidden; background:var(--pf-ink); }
.inner-hero__media { position:absolute; inset:0; }
.inner-hero__media img { width:100%; height:100%; object-fit:cover; }
.inner-hero__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,7,10,.96) 0%,rgba(4,7,10,.79) 42%,rgba(4,7,10,.34) 75%,rgba(4,7,10,.22) 100%),linear-gradient(0deg,rgba(4,7,10,.65),transparent 60%); }
.inner-hero__layout { position:relative; z-index:2; min-height:590px; display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:65px; align-items:center; padding-top:70px; padding-bottom:70px; }
.inner-hero__copy { max-width:800px; color:#fff; }
.breadcrumbs { display:block; margin:0 0 26px; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0; padding:0; list-style:none; color:#bfc5cb; font-size:.72rem; }
.breadcrumbs li { display:flex; align-items:center; gap:8px; }
.breadcrumbs li:not(:last-child)::after { content:"/"; color:#6f7780; }
.breadcrumbs a:hover { color:#fff; }
.breadcrumbs [aria-current="page"] { color:#8f979f; }
.inner-hero h1 { max-width:900px; margin:0 0 20px; color:#fff; font-size:clamp(3rem,5.2vw,5.3rem); line-height:1.02; }
.inner-hero__copy > p { max-width:740px; margin:0; color:#e0e3e7; font-size:clamp(1rem,1.6vw,1.22rem); }
.inner-hero__actions { display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:28px; }
.inner-hero__note { padding:30px; color:#fff; background:rgba(9,12,16,.88); border-top:3px solid var(--pf-red); backdrop-filter:blur(10px); box-shadow:0 20px 50px rgba(0,0,0,.28); }
.inner-hero__note-kicker { display:block; margin-bottom:9px; color:#ff626d; font-size:.65rem; font-weight: 800; letter-spacing:.14em; text-transform:uppercase; }
.inner-hero__note > strong { display:block; margin-bottom:10px; font-size:1.3rem; line-height:1.25; }
.inner-hero__note > p { color:#bfc5cb; font-size:.8rem; }
.inner-hero__note ul { margin:20px 0 0; padding:0; list-style:none; }
.inner-hero__note li { display:flex; gap:9px; padding:10px 0; border-top:1px solid rgba(255,255,255,.12); color:#e3e6e9; font-size:.76rem; }
.inner-hero__note li svg { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:#ff5964; stroke-width:1.8; }
.proof-strip { background:#fff; border-bottom:1px solid var(--pf-line); }
.proof-strip__grid { min-height:105px; display:grid; grid-template-columns:repeat(4,1fr); }
.proof-strip__grid > div { display:flex; align-items:center; justify-content:center; gap:14px; padding:18px; border-right:1px solid var(--pf-line); }
.proof-strip__grid > div:first-child { border-left:1px solid var(--pf-line); }
.proof-strip svg { width:31px; height:31px; fill:none; stroke:var(--pf-red); stroke-width:1.6; }
.proof-strip b,.proof-strip small { display:block; }
.proof-strip b { font-size:.81rem; }
.proof-strip small { margin-top:2px; color:var(--pf-muted); font-size:.68rem; }

/* editorial inner-page system */
.editorial-layout { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:78px; align-items:start; }
.editorial-layout--wide { grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr); }
.editorial-copy { max-width:810px; }
.editorial-copy h2 { margin-bottom:24px; }
.editorial-copy > p { color:var(--pf-muted); font-size:1rem; }
.editorial-copy > p:first-of-type { color:#303741; font-size:1.13rem; }
.editorial-callout { display:grid; grid-template-columns:55px 1fr; gap:18px; margin-top:35px; padding:23px; background:var(--pf-cream); border-left:3px solid var(--pf-red); }
.editorial-callout > span { width:48px; height:48px; display:grid; place-items:center; color:var(--pf-red); background:#fff; }
.editorial-callout svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.6; }
.editorial-callout b { display:block; margin-bottom:5px; }
.editorial-callout p { margin:0; color:var(--pf-muted); font-size:.84rem; }
.best-fit-card { position:sticky; top:150px; padding:32px; color:#fff; background:linear-gradient(145deg,#202630,#090c10); box-shadow:var(--pf-shadow); }
.best-fit-card h2 { margin-bottom:18px; color:#fff; font-size:1.8rem; }
.best-fit-card > p { color:#aeb6be; font-size:.78rem; }
.best-fit-card > p a { color:#fff; font-weight:800; }
.best-fit-card ul { margin:0 0 26px; padding:0; list-style:none; }
.best-fit-card li { display:flex; gap:11px; padding:13px 0; border-top:1px solid rgba(255,255,255,.12); color:#e3e6e9; font-size:.81rem; }
.best-fit-card li svg { width:19px; height:19px; flex:0 0 auto; fill:none; stroke:#ff5964; stroke-width:1.8; }
.best-fit-card--light { color:var(--pf-text); background:#fff; border:1px solid var(--pf-line); box-shadow:var(--pf-shadow-soft); }
.best-fit-card--light h2 { color:var(--pf-ink); }
.best-fit-card--light > p { color:var(--pf-muted); }
.best-fit-card--light > p a { color:var(--pf-red); }
.best-fit-card--light li { color:#303741; border-color:var(--pf-line); }

.choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.choice-grid article { min-height:225px; padding:27px; background:#fff; border:1px solid var(--pf-cream-deep); transition:transform .2s ease, box-shadow .2s ease; }
.choice-grid article:hover { transform:translateY(-5px); box-shadow:var(--pf-shadow-soft); }
.choice-grid article > span { display:inline-grid; place-items:center; width:42px; height:42px; margin-bottom:31px; color:var(--pf-red); border:1px solid #e6b7ba; font-size:.68rem; font-weight: 800; }
.choice-grid h3 { margin-bottom:10px; font-size:1.15rem; }
.choice-grid p { margin:0; color:var(--pf-muted); font-size:.84rem; }
.detail-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12); }
.detail-grid article { min-height:270px; padding:30px 27px; background:var(--pf-ink-soft); }
.detail-grid__icon { width:52px; height:52px; display:grid; place-items:center; margin-bottom:36px; color:#ff5863; border:1px solid rgba(255,255,255,.15); }
.detail-grid__icon svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.65; }
.detail-grid h3 { margin-bottom:10px; color:#fff; font-size:1.12rem; }
.detail-grid p { margin:0; color:#aeb6be; font-size:.82rem; }
.service-guidance__layout { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.guidance-panel { min-height:440px; padding:clamp(38px,5vw,70px); position:relative; overflow:hidden; border:1px solid var(--pf-line); }
.guidance-panel::after { content:""; position:absolute; width:220px; height:220px; right:-100px; bottom:-120px; border:1px solid rgba(198,18,27,.18); border-radius:50%; }
.guidance-panel--planning { background:#fff; }
.guidance-panel--care { background:var(--pf-cream); border-color:var(--pf-cream-deep); }
.guidance-panel h2 { margin-bottom:22px; font-size:clamp(2rem,3.4vw,3.15rem); }
.guidance-panel p { color:var(--pf-muted); }
.related-services .section-heading { margin-bottom:35px; }
.related-services__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }
.related-services__grid > a { min-height:130px; display:grid; grid-template-columns:48px 1fr 20px; gap:14px; align-items:center; padding:20px; border:1px solid var(--pf-line); background:#fff; }
.related-services__grid > a:hover { border-color:#e1a2a6; box-shadow:var(--pf-shadow-soft); }
.related-services__icon { width:46px; height:46px; display:grid; place-items:center; color:var(--pf-red); background:var(--pf-cream); }
.related-services__icon svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.6; }
.related-services__grid b,.related-services__grid small { display:block; }
.related-services__grid small { margin-top:4px; color:var(--pf-muted); font-size:.7rem; line-height:1.35; }
.related-services__grid > a > svg { width:18px; height:18px; fill:none; stroke:var(--pf-red); stroke-width:1.8; }
.service-area-teaser__layout { display:grid; grid-template-columns:1.08fr .92fr; gap:70px; align-items:center; }
.service-area-teaser__layout h2 { margin-bottom:18px; color:#fff; }
.service-area-teaser__layout p { color:#b7bec5; }
.service-area-teaser__cities { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.service-area-teaser__cities a { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:10px 15px; color:#e9ebed; border:1px solid rgba(255,255,255,.13); font-size:.77rem; font-weight:800; }
.service-area-teaser__cities a:hover { border-color:#ff5b65; color:#fff; }
.service-area-teaser__cities svg { width:17px; height:17px; fill:none; stroke:#ff5b65; stroke-width:1.8; }

/* city pages */
.city-plan-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; align-items:start; }
.city-plan-layout__heading { position:sticky; top:150px; }
.city-plan-layout__heading p { color:var(--pf-muted); }
.planning-list { margin:0; padding:0; list-style:none; border-top:1px solid #d5cec3; }
.planning-list li { display:grid; grid-template-columns:58px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid #d5cec3; }
.planning-list li > span { color:var(--pf-red); font-size:.7rem; font-weight: 800; letter-spacing:.12em; }
.planning-list p { margin:0; color:#4e5660; }
.featured-service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
.featured-service-grid > a { min-height:220px; display:grid; grid-template-columns:65px 1fr; gap:20px; padding:27px; border:1px solid var(--pf-line); background:#fff; }
.featured-service-grid > a:hover { border-color:#e3a2a6; box-shadow:var(--pf-shadow-soft); }
.featured-service-grid > a > span { width:62px; height:62px; display:grid; place-items:center; color:var(--pf-red); background:var(--pf-cream); }
.featured-service-grid > a > span svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:1.55; }
.featured-service-grid small { color:var(--pf-red); font-size:.64rem; font-weight: 800; letter-spacing:.14em; text-transform:uppercase; }
.featured-service-grid h3 { margin:7px 0 9px; }
.featured-service-grid p { color:var(--pf-muted); font-size:.82rem; }
.featured-service-grid b { display:inline-flex; align-items:center; gap:7px; color:var(--pf-red); font-size:.72rem; }
.featured-service-grid b svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; }
.city-links-section .section-heading { margin-bottom:34px; }
.city-link-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.city-link-grid a { min-height:92px; display:grid; grid-template-columns:1fr auto; align-content:center; padding:17px; border:1px solid var(--pf-line); background:#fff; }
.city-link-grid span,.city-link-grid small { display:block; }
.city-link-grid span { font-weight: 800; }
.city-link-grid small { color:var(--pf-muted); font-size:.7rem; }
.city-link-grid svg { grid-row:1/3; grid-column:2; width:17px; height:17px; fill:none; stroke:var(--pf-red); stroke-width:1.8; }
.area-card-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:30px; }
.area-card-grid a { min-height:210px; padding:23px; background:#fff; border:1px solid var(--pf-line); }
.area-card-grid a:hover { transform:translateY(-4px); box-shadow:var(--pf-shadow-soft); }
.area-card-grid small { color:var(--pf-red); font-size:.65rem; font-weight: 800; letter-spacing:.14em; text-transform:uppercase; }
.area-card-grid h3 { margin:8px 0 10px; }
.area-card-grid p { color:var(--pf-muted); font-size:.78rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.area-card-grid b { display:inline-flex; align-items:center; gap:6px; color:var(--pf-red); font-size:.7rem; }
.area-card-grid svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; }
.comparison-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.13); }
.comparison-grid article { min-height:230px; padding:28px; background:var(--pf-ink-soft); }
.comparison-grid article > span { color:#ff5c66; font-size:.68rem; font-weight: 800; letter-spacing:.14em; }
.comparison-grid h3 { margin:28px 0 10px; color:#fff; }
.comparison-grid p { margin:0; color:#aeb6be; font-size:.82rem; }
.comparison-grid--light { background:var(--pf-line); border-color:var(--pf-line); }
.comparison-grid--light article { background:#fff; }
.comparison-grid--light h3 { color:var(--pf-ink); }
.comparison-grid--light p { color:var(--pf-muted); }

/* FAQ */
.faq-section { display:grid; grid-template-columns:.82fr 1.18fr; gap:80px; align-items:start; }
.faq-section__intro { position:sticky; top:150px; }
.faq-section__intro p { color:var(--pf-muted); }
.faq-list { border-top:1px solid var(--pf-line); }
.faq-list details { border-bottom:1px solid var(--pf-line); }
.faq-list summary { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:22px; padding:18px 0; cursor:pointer; list-style:none; color:var(--pf-ink); font-size:.92rem; font-weight: 800; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary b { flex:0 0 auto; width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--pf-line); border-radius:50%; color:var(--pf-red); font-size:1.15rem; transition:transform .2s ease; }
.faq-list details[open] summary b { transform:rotate(45deg); }
.faq-list details > div { padding:0 50px 24px 0; }
.faq-list details p { margin:0; color:var(--pf-muted); }

/* estimate forms */
.estimate-panel { display:grid; grid-template-columns:.72fr 1.28fr; gap:55px; align-items:start; }
.estimate-panel__intro { color:#fff; }
.estimate-panel__intro h2 { margin-bottom:18px; color:#fff; }
.estimate-panel__intro > p { color:#bac1c8; }
.estimate-panel__direct { margin-top:30px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); }
.estimate-panel__direct span { display:block; color:#858e98; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; }
.estimate-panel__direct a { display:inline-flex; align-items:center; gap:10px; margin-top:7px; color:#fff; font-size:1.45rem; font-weight:800; }
.estimate-panel__direct svg { width:23px; height:23px; fill:none; stroke:#ff5863; stroke-width:1.8; }
.estimate-form { display:block; padding:34px; background:#fff; color:var(--pf-text); box-shadow:var(--pf-shadow); }
.form-status { display:none; margin-bottom:16px; padding:12px 14px; background:#fff4d8; color:#604a00; font-size:.8rem; }
.form-status.is-visible { display:block; }
.field-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.field-grid label { display:grid; gap:7px; color:var(--pf-ink); font-size:.75rem; font-weight: 800; }
.field-grid label > span b { color:var(--pf-red); }
.field-grid__wide { grid-column:1 / -1; }
.field-grid input,.field-grid select,.field-grid textarea { width:100%; min-height:51px; padding:12px 14px; border:1px solid #cfd4d9; border-radius:2px; color:var(--pf-ink); background:#fff; }
.field-grid textarea { min-height:130px; resize:vertical; }
.field-grid input:focus,.field-grid select:focus,.field-grid textarea:focus { outline:3px solid rgba(198,18,27,.11); border-color:var(--pf-red); }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.estimate-form .button { margin-top:18px; }
.form-privacy { margin:12px 0 0; color:var(--pf-muted); font-size:.69rem; }
.contact-main__layout { display:grid; grid-template-columns:1.25fr .75fr; gap:45px; align-items:start; }
.contact-main__form .estimate-panel { display:block; }
.contact-main__form .estimate-panel__intro { padding:35px; background:var(--pf-ink); }
.contact-main__form .estimate-panel__direct { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.contact-main__form .estimate-form { border:1px solid var(--pf-line); box-shadow:none; }
.contact-details { position:sticky; top:150px; padding:36px; background:var(--pf-cream); border:1px solid var(--pf-cream-deep); }
.contact-details > p { color:var(--pf-muted); }
.contact-details__list { margin-top:26px; border-top:1px solid #d3cabe; }
.contact-details__list > a,.contact-details__list > span { display:flex; gap:14px; padding:18px 0; border-bottom:1px solid #d3cabe; }
.contact-details__list > a > svg,.contact-details__list > span > svg { width:23px; height:23px; flex:0 0 auto; fill:none; stroke:var(--pf-red); stroke-width:1.7; }
.contact-details__list small,.contact-details__list b { display:block; }
.contact-details__list small { color:var(--pf-muted); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.contact-details__list b { margin-top:3px; font-size:.86rem; }
.contact-details__note { margin-top:26px; padding:22px; color:#fff; background:var(--pf-ink); }
.contact-details__note p { color:#b8c0c8; font-size:.78rem; }
.contact-details__note a { display:inline-flex; align-items:center; gap:7px; color:#ff5b65; font-size:.73rem; font-weight: 800; }
.contact-details__note svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.contact-expectations__layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; }
.contact-expectations__layout > div p { color:#b8c0c8; }
.contact-expectations ol { margin:0; padding:0; list-style:none; }
.contact-expectations li { display:grid; grid-template-columns:55px 1fr; gap:18px; padding:20px 0; border-top:1px solid rgba(255,255,255,.14); }
.contact-expectations li span { color:#ff5b65; font-size:.7rem; font-weight: 800; }
.contact-expectations li p { margin:0; color:#e2e5e8; }

/* about */
.about-story__layout { display:grid; grid-template-columns:.95fr 1.05fr; gap:75px; align-items:center; }
.about-story__visual { position:relative; min-height:620px; overflow:hidden; background:var(--pf-ink); }
.about-story__visual picture,.about-story__visual img { width:100%; height:100%; }
.about-story__visual img { object-fit:cover; }
.about-story__year { position:absolute; right:0; bottom:0; min-width:210px; padding:28px; color:#fff; background:var(--pf-red); }
.about-story__year span,.about-story__year b { display:block; }
.about-story__year span { font-size:.68rem; font-weight: 800; letter-spacing:.12em; text-transform:uppercase; }
.about-story__year b { font-size:3.8rem; line-height:1; letter-spacing:-.07em; }
.about-story__copy p { color:var(--pf-muted); }
.about-story__copy .lede { color:#303741; font-size:1.13rem; }
.about-capabilities__layout { display:grid; grid-template-columns:.78fr 1.22fr; gap:80px; align-items:start; }
.about-capabilities__layout > div:first-child { position:sticky; top:150px; }
.about-capabilities__layout > div:first-child p { color:#b7bec6; }
.capability-list { display:grid; grid-template-columns:repeat(2,1fr); gap:0 20px; }
.capability-list a { display:grid; grid-template-columns:38px 1fr 20px; align-items:center; gap:12px; min-height:64px; border-top:1px solid rgba(255,255,255,.15); color:#fff; }
.capability-list a:hover { color:#ff6771; }
.capability-list a span { color:#ff5964; font-size:.66rem; font-weight: 800; }
.capability-list a b { font-size:.84rem; }
.capability-list a svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }

/* project gallery */
.premium-gallery { display:grid; grid-template-columns:1.35fr .65fr; gap:16px; }
.premium-gallery__item { margin:0; background:#fff; color:var(--pf-text); }
.premium-gallery__item--hero { grid-row:span 3; }
.premium-gallery__item button { width:100%; height:300px; display:block; position:relative; overflow:hidden; padding:0; border:0; background:#111; }
.premium-gallery__item--hero button { height:680px; }
.premium-gallery__item picture,.premium-gallery__item img { width:100%; height:100%; }
.premium-gallery__item img { object-fit:cover; transition:transform .45s ease; }
.premium-gallery__item button:hover img { transform:scale(1.035); }
.premium-gallery__item button > span { position:absolute; right:14px; bottom:14px; display:inline-flex; align-items:center; gap:7px; padding:8px 11px; color:#fff; background:rgba(8,11,15,.84); font-size:.66rem; font-weight: 800; }
.premium-gallery__item button > span svg { width:16px; height:16px; fill:none; stroke:#ff5c66; stroke-width:1.7; }
.premium-gallery__item figcaption { padding:23px; }
.premium-gallery__item figcaption small { color:var(--pf-red); font-size:.65rem; font-weight: 800; letter-spacing:.13em; text-transform:uppercase; }
.premium-gallery__item figcaption h3 { margin:8px 0; }
.premium-gallery__item figcaption p { color:var(--pf-muted); font-size:.82rem; }
.premium-gallery__item figcaption a { display:inline-flex; align-items:center; gap:7px; color:var(--pf-red); font-size:.72rem; font-weight: 800; }
.premium-gallery__item figcaption a svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.lightbox[hidden] { display:none; }
.lightbox { position:fixed; z-index:5000; inset:0; display:grid; place-items:center; padding:28px; }
.lightbox__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.91); }
.lightbox figure { position:relative; z-index:2; max-width:min(1100px,92vw); max-height:86vh; margin:0; }
.lightbox figure img { max-width:100%; max-height:78vh; width:auto; height:auto; object-fit:contain; box-shadow:0 20px 70px rgba(0,0,0,.5); }
.lightbox figcaption { padding:12px 0; color:#fff; text-align:center; font-size:.8rem; }
.lightbox__close { position:fixed; z-index:3; right:24px; top:24px; width:48px; height:48px; display:grid; place-items:center; color:#fff; border:1px solid rgba(255,255,255,.35); background:rgba(0,0,0,.42); }
.lightbox__close svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; }

/* financing */
.financing-intro__layout { display:grid; grid-template-columns:1.18fr .82fr; gap:80px; align-items:start; }
.financing-intro article p { color:var(--pf-muted); }
.financing-intro article .lede { color:#303741; }
.financing-summary { position:sticky; top:150px; padding:36px; color:#fff; background:linear-gradient(145deg,#202630,#090c10); box-shadow:var(--pf-shadow); }
.financing-summary > span { width:58px; height:58px; display:grid; place-items:center; margin-bottom:30px; color:#ff5b65; border:1px solid rgba(255,255,255,.16); }
.financing-summary > span svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.7; }
.financing-summary small { color:#ff5b65; font-weight: 800; letter-spacing:.12em; text-transform:uppercase; }
.financing-summary h3 { margin:10px 0 14px; color:#fff; font-size:1.65rem; }
.financing-summary p { color:#b8c0c8; font-size:.84rem; }
.financing-summary a { display:inline-flex; align-items:center; gap:7px; color:#ff5b65; font-size:.75rem; font-weight: 800; }
.financing-summary a svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; }
.finance-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin:0; padding:0; list-style:none; }
.finance-steps li { min-height:340px; padding:31px; position:relative; background:#fff; border:1px solid var(--pf-cream-deep); }
.finance-steps li > span { display:block; margin-bottom:58px; color:var(--pf-red); font-size:.72rem; font-weight: 800; letter-spacing:.15em; }
.finance-steps small { color:var(--pf-red); font-size:.64rem; font-weight: 800; letter-spacing:.12em; text-transform:uppercase; }
.finance-steps h3 { margin:8px 0 12px; }
.finance-steps p { margin:0; color:var(--pf-muted); font-size:.84rem; }

/* legal/status */
.legal-hero { padding:90px 0; color:#fff; background:linear-gradient(145deg,#202630,#090c10); }
.legal-hero__inner { max-width:880px; }
.legal-hero h1 { margin:0 0 15px; color:#fff; }
.legal-hero p { color:#c0c6cc; }
.legal-hero small { color:#818b95; }
.legal-layout { display:grid; grid-template-columns:260px 1fr; gap:75px; align-items:start; }
.legal-layout > aside { position:sticky; top:150px; padding:24px; background:var(--pf-cream); border:1px solid var(--pf-cream-deep); }
.legal-layout > aside p { color:var(--pf-muted); font-size:.82rem; }
.legal-layout > aside a { display:block; margin-top:8px; color:var(--pf-red); font-size:.78rem; font-weight:800; }
.legal-copy { max-width:850px; }
.legal-copy section + section { margin-top:48px; }
.legal-copy h2 { font-size:1.85rem; }
.legal-copy p,.legal-copy li { color:var(--pf-muted); }
.status-page { min-height:75vh; display:grid; place-items:center; padding:90px 0; background:var(--pf-cream); }
.status-card { max-width:780px; padding:clamp(38px,7vw,78px); text-align:center; background:#fff; box-shadow:var(--pf-shadow); }
.status-card__icon { width:72px; height:72px; display:grid; place-items:center; margin:0 auto 26px; color:var(--pf-red); border:1px solid #edb8bb; border-radius:50%; }
.status-card__icon svg { width:40px; height:40px; fill:none; stroke:currentColor; stroke-width:1.6; }
.status-card__number { display:block; color:var(--pf-red); font-size:clamp(5rem,14vw,10rem); font-weight: 800; line-height:.8; letter-spacing:-.08em; }
.status-card p { color:var(--pf-muted); font-size:1.05rem; }
.status-card__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:28px 0 18px; }
.status-card > small { color:var(--pf-muted); }

/* global CTA + footer */
.global-cta { position:relative; overflow:hidden; padding:70px 0; color:#fff; background:var(--pf-red); }
.global-cta::after { content:""; position:absolute; width:500px; height:500px; right:-180px; top:-240px; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.global-cta__layout { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:55px; }
.global-cta h2 { margin:0 0 10px; color:#fff; }
.global-cta p { max-width:760px; margin:0; color:#ffe7e9; }
.global-cta__actions { display:flex; flex-wrap:wrap; gap:11px; flex:0 0 auto; }
.site-footer { padding:68px 0 0; background:#090c10; color:#aab2ba; }
.footer-layout { display:grid; grid-template-columns:1.25fr .72fr .9fr 1.05fr; gap:52px; padding-bottom:52px; }
.footer-brand img { width:310px; height:auto; }
.footer-brand p { max-width:370px; margin:20px 0; font-size:.82rem; }
.footer-badge { width:170px; display:grid; grid-template-columns:auto 1fr; gap:0 8px; padding:12px 15px; color:#fff; border:1px solid rgba(255,255,255,.14); }
.footer-badge span { grid-row:1; font-size:.64rem; text-transform:uppercase; }
.footer-badge b { grid-row:2; font-size:1.5rem; line-height:1; }
.footer-badge small { grid-column:2; grid-row:1/3; align-self:center; color:#8f99a3; font-size:.65rem; }
.footer-heading { margin-bottom:17px; color:#fff; font-size:.68rem; font-weight: 800; letter-spacing:.14em; text-transform:uppercase; }
.footer-links { margin:0; padding:0; list-style:none; }
.footer-links li { margin:7px 0; }
.footer-links a { font-size:.78rem; }
.footer-links a:hover { color:#fff; }
.footer-links--two { columns:2; column-gap:20px; }
.footer-contact > a,.footer-contact__hours { display:flex; gap:10px; margin:12px 0; font-size:.77rem; }
.footer-contact svg { width:17px; height:17px; flex:0 0 auto; margin-top:2px; fill:none; stroke:var(--pf-red-bright); stroke-width:1.8; }
.footer-bottom { min-height:65px; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:16px 0; border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom p { margin:0; font-size:.69rem; }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:21px; }
.footer-bottom a { font-size:.69rem; }
.mobile-action-bar { display:none; }

/* subtle entrance movement */
.js .section-heading,.js .principle-grid article,.js .service-card,.js .choice-grid article,.js .detail-grid article,.js .process-grid li,.js .featured-service-grid > a,.js .comparison-grid article { opacity:0; transform:translateY(16px); transition:opacity .55s ease,transform .55s ease; }
.js .is-revealed { opacity:1!important; transform:none!important; }

@media (max-width: 1220px) {
  .header-layout { grid-template-columns:270px minmax(0,1fr) auto; gap:19px; }
  .site-brand { width:270px; }
  .primary-nav__list { gap:17px; }
  .header-estimate { min-width:172px; padding-inline:15px; }
  .service-card-grid { grid-template-columns:repeat(4,1fr); }
  .footer-layout { grid-template-columns:1.2fr .8fr .9fr 1fr; gap:35px; }
}

@media (max-width: 1060px) {
  body { padding-bottom:64px; }
  .utility-bar__service { display:none!important; }
  .header-layout { min-height:86px; grid-template-columns:300px 1fr auto; }
  .site-brand { width:300px; }
  .header-estimate { display:none; }
  .nav-toggle { display:grid; place-items:center; justify-self:end; width:48px; height:48px; padding:0; border:1px solid var(--pf-line); background:#fff; color:var(--pf-ink); }
  .nav-toggle svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; }
  .nav-toggle__close { display:none; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__open { display:none; }
  .nav-toggle[aria-expanded="true"] .nav-toggle__close { display:block; }
  .primary-nav { position:fixed; inset:122px 0 64px; z-index:1190; overflow-y:auto; background:#fff; transform:translateX(100%); transition:transform .25s ease; }
  .primary-nav.is-open { transform:none; }
  .primary-nav__list { display:block; width:min(calc(100% - 36px),700px); margin:0 auto; padding:20px 0 50px; }
  .primary-nav__list > li { display:block; border-bottom:1px solid var(--pf-line); }
  .primary-nav__list > li > a { width:calc(100% - 52px); min-height:62px; font-size:.9rem; }
  .primary-nav__list > li > a[aria-current="page"]::after { display:none; }
  .nav-parent__toggle { position:absolute; right:0; top:7px; width:48px; height:48px; background:var(--pf-cream); }
  .mega-menu { position:static; width:auto; max-height:none; display:none; grid-template-columns:1fr; gap:20px; padding:0 0 24px; opacity:1; visibility:visible; pointer-events:auto; transform:none; border:0; box-shadow:none; }
  .nav-parent.is-open > .mega-menu { display:grid; }
  .nav-parent:hover > .mega-menu,.nav-parent:focus-within > .mega-menu { transform:none; }
  .mega-menu__intro { padding:20px; border:0; background:var(--pf-cream); }
  .mega-menu__intro strong { font-size:1.2rem; }
  .mega-menu__links { grid-template-columns:1fr 1fr; }
  .mega-menu__links a { min-height:75px; border-bottom:1px solid var(--pf-line); }
  .mega-menu__city-list { grid-template-columns:1fr 1fr; }
  .mobile-action-bar { position:fixed; z-index:1300; left:0; right:0; bottom:0; height:64px; display:grid; grid-template-columns:1fr 1fr; box-shadow:0 -8px 28px rgba(0,0,0,.24); }
  .mobile-action-bar a { display:flex; align-items:center; justify-content:center; gap:8px; color:#fff; background:var(--pf-ink); font-size:.76rem; font-weight: 800; letter-spacing:.05em; text-transform:uppercase; }
  .mobile-action-bar a:last-child { background:var(--pf-red); }
  .mobile-action-bar svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
  .site-footer { padding-bottom:64px; }
  .section-heading--split,.home-planning__layout,.home-financing__layout,.home-areas__layout,.editorial-layout,.editorial-layout--wide,.inner-hero__layout,.service-guidance__layout,.service-area-teaser__layout,.city-plan-layout,.faq-section,.estimate-panel,.about-story__layout,.about-capabilities__layout,.financing-intro__layout,.contact-main__layout,.contact-expectations__layout,.legal-layout { grid-template-columns:1fr; }
  .inner-hero__layout { align-content:center; gap:30px; }
  .inner-hero__note { max-width:600px; }
  .best-fit-card,.city-plan-layout__heading,.faq-section__intro,.service-map--sticky,.about-capabilities__layout > div:first-child,.financing-summary,.contact-details,.legal-layout > aside { position:static; }
  .service-card-grid { grid-template-columns:repeat(3,1fr); }
  .detail-grid { grid-template-columns:repeat(2,1fr); }
  .choice-grid { grid-template-columns:repeat(2,1fr); }
  .home-planning__visual { min-height:520px; }
  .home-planning__copy { padding:55px 0 0; background:transparent; }
  .project-showcase { grid-template-columns:1fr 1fr; grid-template-rows:520px 300px; }
  .project-tile--wide { grid-column:1/3; grid-row:auto; }
  .premium-gallery { grid-template-columns:1fr 1fr; }
  .premium-gallery__item--hero { grid-column:1/3; grid-row:auto; }
  .premium-gallery__item--hero button { height:580px; }
  .footer-layout { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 720px) {
  .container { width:min(calc(100% - 30px),var(--pf-container)); }
  .section { padding:66px 0; }
  .utility-bar__inner { min-height:38px; justify-content:center; }
  .utility-bar__group--right { display:none; }
  .utility-bar__phone { font-size:.78rem; }
  .header-layout { min-height:78px; grid-template-columns:minmax(0,260px) 1fr auto; gap:12px; }
  .site-brand { width:min(260px,72vw); }
  .primary-nav { inset:116px 0 64px; }
  .mega-menu__links,.mega-menu__city-list { grid-template-columns:1fr; }
  .home-hero { min-height:840px; }
  .home-hero__media img { object-position:62% center; }
  .home-hero__shade { background:linear-gradient(90deg,rgba(4,7,10,.94),rgba(4,7,10,.64)),linear-gradient(0deg,rgba(4,7,10,.77),transparent 60%); }
  .home-hero__content { min-height:610px; padding:60px 0 255px; align-items:flex-start; }
  .home-hero h1 { font-size:clamp(3.3rem,14vw,4.65rem); }
  .home-hero__copy > p { font-size:1rem; }
  .home-hero__actions { display:grid; }
  .home-hero__actions .button { width:100%; }
  .home-hero__support { display:none; }
  .home-trust-grid { min-height:230px; grid-template-columns:repeat(2,1fr); }
  .home-trust-grid > div { justify-content:flex-start; min-height:76px; padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.1); }
  .home-trust-grid > div:nth-child(2n) { border-right:0; }
  .home-trust-grid > div:last-child { grid-column:1/3; }
  .home-trust-grid svg { width:27px; height:27px; }
  .principle-grid,.service-card-grid,.choice-grid,.detail-grid,.featured-service-grid,.comparison-grid,.finance-steps,.related-services__grid,.city-link-grid,.area-card-grid { grid-template-columns:1fr; }
  .principle-grid article { min-height:230px; }
  .service-card { min-height:245px; }
  .section-heading--split { gap:23px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .process-grid li:nth-child(3) { border-left:1px solid var(--pf-line); }
  .project-showcase { display:grid; grid-template-columns:1fr; grid-template-rows:auto; }
  .project-tile,.project-tile--wide { grid-column:auto; min-height:400px; }
  .project-tile--wide { min-height:480px; }
  .home-financing__card { padding:27px 22px; }
  .home-areas__links { grid-template-columns:1fr; }
  .inner-hero { min-height:620px; }
  .inner-hero__layout { min-height:620px; padding-top:58px; padding-bottom:58px; }
  .inner-hero h1 { font-size:clamp(2.7rem,12vw,4rem); }
  .inner-hero__note { padding:24px; }
  .proof-strip__grid { grid-template-columns:repeat(2,1fr); }
  .proof-strip__grid > div { justify-content:flex-start; min-height:82px; border-bottom:1px solid var(--pf-line); }
  .proof-strip__grid > div:nth-child(odd) { border-left:1px solid var(--pf-line); }
  .editorial-layout,.editorial-layout--wide,.city-plan-layout,.faq-section,.estimate-panel { gap:45px; }
  .best-fit-card { padding:27px; }
  .service-guidance__layout { gap:14px; }
  .guidance-panel { min-height:auto; padding:38px 26px; }
  .service-area-teaser__cities { grid-template-columns:1fr; }
  .field-grid { grid-template-columns:1fr; }
  .field-grid__wide { grid-column:auto; }
  .estimate-form { padding:25px 20px; }
  .estimate-panel__direct a { font-size:1.25rem; }
  .contact-main__form .estimate-panel__intro { padding:28px 22px; }
  .contact-main__form .estimate-panel__direct { align-items:flex-start; flex-direction:column; }
  .premium-gallery { grid-template-columns:1fr; }
  .premium-gallery__item--hero { grid-column:auto; }
  .premium-gallery__item button,.premium-gallery__item--hero button { height:420px; }
  .about-story__visual { min-height:470px; }
  .capability-list { grid-template-columns:1fr; }
  .global-cta__layout { align-items:flex-start; flex-direction:column; }
  .global-cta__actions { width:100%; display:grid; }
  .footer-layout { grid-template-columns:1fr; gap:34px; }
  .footer-links--two { columns:1; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
  .legal-layout { gap:35px; }
}

@media (max-width: 440px) {
  .header-layout { grid-template-columns:minmax(0,225px) 1fr auto; }
  .site-brand { width:min(225px,68vw); }
  .home-hero { min-height:880px; }
  .home-hero__content { padding-bottom:285px; }
  .home-trust-grid > div { gap:9px; padding:11px 9px; }
  .home-trust-grid b { font-size:.72rem; }
  .home-trust-grid small { font-size:.62rem; }
  .process-grid { grid-template-columns:1fr; }
  .process-grid li,.process-grid li:nth-child(3) { border-left:1px solid var(--pf-line); }
  .process-grid__line { display:none; }
  .project-tile,.project-tile--wide { min-height:380px; }
  .inner-hero__actions { display:grid; }
  .inner-hero__actions .button { width:100%; }
  .proof-strip svg { width:26px; height:26px; }
  .proof-strip b { font-size:.73rem; }
  .proof-strip small { font-size:.61rem; }
  .premium-gallery__item button,.premium-gallery__item--hero button { height:360px; }
  .status-card__actions { display:grid; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .js .section-heading,.js .principle-grid article,.js .service-card,.js .choice-grid article,.js .detail-grid article,.js .process-grid li,.js .featured-service-grid > a,.js .comparison-grid article { opacity:1; transform:none; }
}

/* final cross-device hardening */
html,body{max-width:100%;overflow-x:hidden}
/* Keep long body copy safe without splitting display headings in the middle of words. */
h1,h2,h3,h4{overflow-wrap:normal;word-break:normal;hyphens:none}
p,li,a{overflow-wrap:break-word;word-break:normal}
.section-heading--left{max-width:860px}
.inner-hero--projects .inner-hero__media img{object-position:center 52%}
.inner-hero--vinyl .inner-hero__media img{object-position:center 46%}
@media(max-width:1060px){
  .primary-nav{width:100%;max-width:100vw;overflow-x:hidden}
  .primary-nav__list{min-width:0}
}
@media(max-width:720px){
  .utility-bar{display:block}
  .utility-bar__inner{justify-content:space-between;gap:12px}
  .utility-bar__group{gap:10px}
  .utility-bar__group--right{display:flex}
  .utility-bar__group--right a:first-child{display:none}
  .utility-bar__phone,.utility-bar__group--right a{font-size:.69rem}
}

/* Mobile navigation must escape the header grid and fill the viewport. */
@media (max-width: 1060px) {
  .primary-nav {
    left: 0;
    right: 0;
    width: auto;
    height: auto;
    justify-self: stretch;
    align-self: stretch;
  }
}
@media (max-width: 1060px) {
  /* A backdrop filter makes fixed descendants use the header as their containing block. */
  .site-header {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* ========================================================================== 
   Premier Fence v3 polish — unified palette, typography, menus, motion
   ========================================================================== */
:root {
  --pf-ink: #17212b;
  --pf-ink-soft: #22303d;
  --pf-charcoal: #303b46;
  --pf-red: #bf1421;
  --pf-red-dark: #92101a;
  --pf-red-bright: #e73543;
  --pf-cream: #f7f3ed;
  --pf-cream-deep: #e9e1d7;
  --pf-paper: #ffffff;
  --pf-text: #1c2630;
  --pf-muted: #606b76;
  --pf-line: #dfe3e6;
  --pf-sand: #d6c2aa;
  --pf-radius: 16px;
  --pf-radius-sm: 10px;
  --pf-shadow: 0 24px 70px rgba(23,33,43,.13);
  --pf-shadow-soft: 0 12px 36px rgba(23,33,43,.075);
  --pf-container: 1280px;
  --mega-menu-top: 130px;
  --motion-ease: cubic-bezier(.22,.75,.2,1);
}

html { scroll-padding-top: 128px; }
body {
  color: var(--pf-text);
  background: var(--pf-paper);
  font-family: "Manrope", "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
  font-weight: 400;
  letter-spacing: -.009em;
  line-height: 1.68;
}
h1,h2,h3,h4,
.inner-hero__note > strong,
.mega-menu__intro strong,
.status-card__number {
  font-family: "Manrope", "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
  color: var(--pf-ink);
  font-weight: 800;
  letter-spacing: -.048em;
}
h1 { line-height: .99; }
h2 { line-height: 1.04; }
h3,h4 { line-height: 1.16; letter-spacing: -.026em; }
p,li { text-wrap: pretty; }
.lede { line-height: 1.72; }
.section { padding: clamp(76px, 8vw, 120px) 0; }
.section--cream { background: var(--pf-cream); }
.section--ink { background: var(--pf-ink); }
.micro-label { letter-spacing: .16em; }

.button {
  min-height: 54px;
  border-radius: 8px;
  font-weight: 800;
  letter-spacing: .045em;
  box-shadow: none;
  transition: transform .22s var(--motion-ease), box-shadow .22s var(--motion-ease), background-color .22s ease, border-color .22s ease, color .22s ease;
}
.button:hover { transform: translateY(-2px); }
.button--primary { box-shadow: 0 12px 28px rgba(191,20,33,.20); }
.button--primary:hover { box-shadow: 0 16px 34px rgba(146,16,26,.27); }
.button--dark { background: var(--pf-ink); }
.button--dark:hover { background: var(--pf-ink-soft); }

/* Header and reliable desktop dropdown behavior */
.utility-bar { background: var(--pf-ink); }
.site-header { background: rgba(255,255,255,.985); }
.header-layout { min-height: 94px; }
.primary-nav__list { align-self: stretch; }
.primary-nav__list > li { align-self: stretch; display: flex; align-items: center; }
.primary-nav__list > li > a {
  min-height: 94px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: -.01em;
}
.nav-parent { position: relative; align-self: stretch; }
.nav-parent::after {
  content: "";
  position: absolute;
  z-index: 1201;
  left: -18px;
  right: -18px;
  top: calc(50% + 27px);
  height: 48px;
  pointer-events: auto;
}
.nav-parent__toggle { position: relative; z-index: 1202; }
.mega-menu {
  z-index: 1210;
  top: var(--mega-menu-top, 130px);
  max-height: calc(100dvh - var(--mega-menu-top, 130px) - 18px);
  border: 1px solid rgba(23,33,43,.08);
  border-top: 3px solid var(--pf-red);
  border-radius: 0 0 16px 16px;
  background: rgba(255,255,255,.995);
  box-shadow: 0 30px 76px rgba(23,33,43,.22);
  transform: translate(-50%, 10px);
  transition: opacity .18s ease, transform .22s var(--motion-ease), visibility 0s linear .2s;
}
.nav-parent:hover > .mega-menu,
.nav-parent:focus-within > .mega-menu,
.nav-parent.is-open > .mega-menu {
  transition-delay: 0s;
  transform: translate(-50%, 0);
}
.mega-menu__intro { border-right-color: var(--pf-line); }
.mega-menu__links a,
.mega-menu__city-list a { border-radius: 9px; transition: background .18s ease, transform .18s var(--motion-ease); }
.mega-menu__links a:hover,
.mega-menu__city-list a:hover { background: var(--pf-cream); transform: translateX(3px); }

/* Hero refinements */
.home-hero { background: var(--pf-ink); }
.home-hero__shade {
  background: linear-gradient(90deg,rgba(10,17,24,.95) 0%,rgba(10,17,24,.80) 35%,rgba(10,17,24,.30) 65%,rgba(10,17,24,.06) 100%),linear-gradient(0deg,rgba(10,17,24,.55),transparent 58%);
}
.home-hero h1 {
  max-width: 760px;
  font-size: clamp(3.45rem, 5.7vw, 5.45rem);
  letter-spacing: -.062em;
}
.home-hero__copy > p { max-width: 620px; }
.home-hero__trust { background: rgba(18,28,37,.94); }
.home-trust-grid > div { border-color: rgba(255,255,255,.11); }

.inner-hero { background: var(--pf-ink); }
.inner-hero__shade {
  background: linear-gradient(90deg,rgba(11,18,25,.96) 0%,rgba(11,18,25,.81) 43%,rgba(11,18,25,.37) 75%,rgba(11,18,25,.20) 100%),linear-gradient(0deg,rgba(11,18,25,.62),transparent 60%);
}
.inner-hero h1 { font-size: clamp(3rem, 5vw, 4.95rem); }
.inner-hero__note {
  background: rgba(24,34,44,.91);
  border-top-color: var(--pf-red-bright);
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(7,12,17,.28);
}

/* Premium light-card system */
.principle-grid { gap: 16px; background: transparent; border: 0; }
.principle-grid article {
  min-height: 275px;
  border: 1px solid var(--pf-line);
  border-radius: var(--pf-radius-sm);
  box-shadow: var(--pf-shadow-soft);
  transition: transform .25s var(--motion-ease), box-shadow .25s var(--motion-ease), border-color .25s ease;
}
.principle-grid article:hover { transform: translateY(-5px); border-color: #e7bec2; box-shadow: var(--pf-shadow); }
.principle-grid__icon { border-radius: 12px; }

.service-card {
  min-height: 300px;
  color: var(--pf-text);
  background: linear-gradient(160deg,#fff 0%,#fff 70%,#fbf5f4 100%);
  border: 1px solid var(--pf-line);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(23,33,43,.065);
}
.service-card::before {
  width: 210px;
  height: 210px;
  background: radial-gradient(circle,rgba(191,20,33,.11),rgba(191,20,33,0) 70%);
}
.service-card::after { border-color: rgba(191,20,33,.08); }
.service-card:hover { border-color: #e3b7bc; box-shadow: 0 22px 52px rgba(23,33,43,.13); }
.service-card__icon { color: var(--pf-red); }
.service-card__number { color: var(--pf-red); }
.service-card h3 { color: var(--pf-ink); }
.service-card p { color: var(--pf-muted); }
.service-card__link { color: var(--pf-red); }

.choice-grid article,
.detail-grid article,
.comparison-grid article,
.featured-service-grid > a,
.area-card-grid > a,
.city-link-grid > a,
.related-services__grid > a,
.finance-steps li {
  border-radius: 12px;
  box-shadow: 0 9px 28px rgba(23,33,43,.055);
  transition: transform .24s var(--motion-ease), box-shadow .24s var(--motion-ease), border-color .24s ease;
}
.choice-grid article:hover,
.detail-grid article:hover,
.comparison-grid article:hover,
.featured-service-grid > a:hover,
.area-card-grid > a:hover,
.city-link-grid > a:hover,
.related-services__grid > a:hover,
.finance-steps li:hover {
  transform: translateY(-4px);
  box-shadow: var(--pf-shadow-soft);
}

/* Homepage: light, balanced lower sections */
.home-services {
  color: var(--pf-text);
  background: linear-gradient(180deg,#f7f3ed 0%,#f2ece4 100%) !important;
}
.home-services .section-heading--light h2,
.home-projects .section-heading--light h2 { color: var(--pf-ink); }
.home-services .section-heading--light p,
.home-projects .section-heading--light p { color: var(--pf-muted); }
.home-services .micro-label--light,
.home-projects .micro-label--light { color: var(--pf-red); }
.home-services .text-link--light,
.home-projects .text-link--light { color: var(--pf-red); }

.home-planning__layout {
  min-height: 620px;
  overflow: hidden;
  border-radius: var(--pf-radius);
  background: #fff;
  box-shadow: var(--pf-shadow-soft);
}
.home-planning__visual { background: var(--pf-ink); }
.home-planning__copy { background: #fff; }
.home-planning__stamp { background: rgba(24,34,44,.91); border-radius: 8px; }
.process-grid li { background: #fff; }
.process-grid__number { border-radius: 50%; }

.home-projects {
  color: var(--pf-text);
  background: #fff !important;
}
.project-showcase { gap: 18px; }
.project-tile {
  border-radius: 14px;
  box-shadow: var(--pf-shadow-soft);
}

.home-financing__card {
  color: var(--pf-text);
  background: #fff;
  border: 1px solid var(--pf-line);
  border-radius: 14px;
  box-shadow: var(--pf-shadow-soft);
}
.home-financing__card li { border-color: var(--pf-line); }
.home-financing__card li > span { color: var(--pf-red); }
.home-financing__card b { color: var(--pf-ink); }
.home-financing__card small { color: var(--pf-muted); }
.home-financing__badge { border-radius: 6px; }
.service-map { border-radius: 14px; }

.home-estimate {
  color: var(--pf-text);
  background: linear-gradient(180deg,#f7f3ed,#efe8df) !important;
}
.estimate-panel {
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--pf-line);
  border-radius: var(--pf-radius);
  background: #fff;
  box-shadow: var(--pf-shadow);
}
.estimate-panel__intro {
  min-height: 100%;
  padding: clamp(34px, 5vw, 58px);
  color: var(--pf-text);
  background: linear-gradient(145deg,#f0e6dc 0%,#faf7f2 68%,#f7edef 100%);
  border-right: 1px solid var(--pf-line);
}
.estimate-panel__intro h2 { color: var(--pf-ink); }
.estimate-panel__intro > p { color: var(--pf-muted); }
.estimate-panel__intro .micro-label--light { color: var(--pf-red); }
.estimate-panel__direct { border-top-color: rgba(23,33,43,.14); }
.estimate-panel__direct span { color: var(--pf-muted); }
.estimate-panel__direct a { color: var(--pf-ink); }
.estimate-panel__direct svg { stroke: var(--pf-red); }
.estimate-form { padding: clamp(28px,4vw,44px); box-shadow: none; }
.home-faq { background: #fff; }

/* Inner-page palette cohesion */
.service-details,
.city-priorities,
.about-capabilities,
.contact-expectations {
  color: var(--pf-text);
  background: linear-gradient(180deg,#f7f3ed,#f1ebe3) !important;
}
.service-details h2,.service-details h3,
.city-priorities h2,.city-priorities h3,
.about-capabilities h2,.about-capabilities h3,
.contact-expectations h2,.contact-expectations h3 { color: var(--pf-ink); }
.service-details p,
.city-priorities p,
.about-capabilities p,
.contact-expectations p { color: var(--pf-muted) !important; }
.service-details .micro-label--light,
.city-priorities .micro-label--light,
.about-capabilities .micro-label--light,
.contact-expectations .micro-label--light { color: var(--pf-red); }
.service-details .detail-grid article {
  color: var(--pf-text);
  background: #fff;
  border: 1px solid var(--pf-line);
}
.service-details .detail-grid__icon { color: var(--pf-red); border-color: #efc4c7; background: #fff7f7; }
.section--ink .detail-grid p { color: var(--pf-muted) !important; }
.section--ink .detail-grid article { border-color: var(--pf-line); }
.section--ink .detail-grid h3 { color: var(--pf-ink); }

.about-capabilities__layout > div:first-child p { color: var(--pf-muted); }
.capability-list { gap: 12px; }
.capability-list a {
  min-height: 68px;
  padding: 10px 14px;
  color: var(--pf-ink);
  background: #fff;
  border: 1px solid var(--pf-line);
  border-radius: 10px;
  box-shadow: 0 7px 22px rgba(23,33,43,.05);
}
.capability-list a:hover { color: var(--pf-red); border-color: #e5b9bd; }

.contact-expectations li { border-color: var(--pf-line); }
.contact-expectations li p { color: var(--pf-text) !important; }
.contact-expectations li span { color: var(--pf-red); }

.service-area-teaser {
  color: var(--pf-text);
  background: #fff !important;
}
.service-area-teaser__layout {
  padding: clamp(38px,5vw,64px);
  color: #fff;
  background: linear-gradient(135deg,var(--pf-ink-soft),var(--pf-ink));
  border-radius: var(--pf-radius);
  box-shadow: var(--pf-shadow);
}
.service-area-teaser h2 { color: #fff; }
.service-area-teaser p { color: #cbd1d7; }
.service-area-teaser__cities a { border-color: rgba(255,255,255,.16); border-radius: 8px; }
.service-area-teaser__cities a:hover { background: rgba(255,255,255,.08); }

.project-gallery-section {
  color: var(--pf-text);
  background: var(--pf-cream) !important;
}
.project-gallery-section .section-heading--light h2 { color: var(--pf-ink); }
.project-gallery-section .section-heading--light p { color: var(--pf-muted); }
.project-gallery-section .micro-label--light { color: var(--pf-red); }
.premium-gallery__item { overflow: hidden; border: 1px solid var(--pf-line); border-radius: 14px; box-shadow: var(--pf-shadow-soft); }

.financing-summary,
.contact-details__note {
  background: linear-gradient(145deg,var(--pf-ink-soft),var(--pf-ink));
  border-radius: 14px;
}

/* A lighter, more refined close to every page */
.global-cta {
  background: linear-gradient(120deg,var(--pf-red-dark),var(--pf-red) 58%,#d42130);
}
.site-footer {
  color: var(--pf-muted);
  background: #f3eee7;
  border-top: 1px solid var(--pf-cream-deep);
}
.footer-brand p { color: var(--pf-muted); }
.footer-heading { color: var(--pf-ink); }
.footer-links a:hover,
.footer-contact > a:hover { color: var(--pf-red); }
.footer-badge {
  color: var(--pf-ink);
  background: rgba(255,255,255,.58);
  border-color: #d9d1c8;
  border-radius: 8px;
}
.footer-badge small { color: var(--pf-muted); }
.footer-contact svg { stroke: var(--pf-red); }
.footer-bottom { border-top-color: #d9d1c8; }
.footer-bottom a:hover { color: var(--pf-red); }

/* Real on-scroll motion. The reveal class is added by JavaScript only when supported. */
.js .section-heading,
.js .principle-grid article,
.js .service-card,
.js .choice-grid article,
.js .detail-grid article,
.js .process-grid li,
.js .featured-service-grid > a,
.js .comparison-grid article { opacity: 1; transform: none; }

.js.reveal-motion .scroll-reveal {
  opacity: 0;
  transform: translate3d(0,30px,0);
  filter: blur(1.5px);
  transition:
    opacity .72s var(--motion-ease) var(--reveal-delay,0ms),
    transform .72s var(--motion-ease) var(--reveal-delay,0ms),
    filter .72s var(--motion-ease) var(--reveal-delay,0ms);
  will-change: opacity, transform;
}
.js.reveal-motion .scroll-reveal.reveal-left { transform: translate3d(-34px,12px,0); }
.js.reveal-motion .scroll-reveal.reveal-right { transform: translate3d(34px,12px,0); }
.js.reveal-motion .scroll-reveal.reveal-scale { transform: translate3d(0,18px,0) scale(.975); }
.js.reveal-motion .scroll-reveal.is-revealed {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: none;
}

.js .home-hero__copy > *,
.js .inner-hero__copy > *,
.js .inner-hero__note {
  opacity: 0;
  transform: translate3d(0,20px,0);
}
.js body.is-page-ready .home-hero__copy > *,
.js body.is-page-ready .inner-hero__copy > *,
.js body.is-page-ready .inner-hero__note {
  opacity: 1;
  transform: none;
  transition: opacity .72s var(--motion-ease), transform .72s var(--motion-ease);
}
.js body.is-page-ready .home-hero__copy > :nth-child(2),
.js body.is-page-ready .inner-hero__copy > :nth-child(2) { transition-delay: .08s; }
.js body.is-page-ready .home-hero__copy > :nth-child(3),
.js body.is-page-ready .inner-hero__copy > :nth-child(3) { transition-delay: .16s; }
.js body.is-page-ready .home-hero__copy > :nth-child(4),
.js body.is-page-ready .inner-hero__copy > :nth-child(4) { transition-delay: .24s; }
.js body.is-page-ready .home-hero__copy > :nth-child(5),
.js body.is-page-ready .inner-hero__copy > :nth-child(5) { transition-delay: .32s; }
.js body.is-page-ready .inner-hero__note { transition-delay: .25s; }
.home-hero__media img,
.inner-hero__media img { transform: scale(1.025); transition: transform 1.25s var(--motion-ease); }
body.is-page-ready .home-hero__media img,
body.is-page-ready .inner-hero__media img { transform: scale(1); }

@media (max-width: 1060px) {
  .primary-nav__list > li { display: block; }
  .primary-nav__list > li > a { min-height: 62px; }
  .nav-parent { display: block; }
  .nav-parent::after { display: none; }
  .mega-menu { top: auto; max-height: none; border-radius: 0; }
  .estimate-panel__intro { border-right: 0; border-bottom: 1px solid var(--pf-line); }
}

@media (max-width: 720px) {
  body { font-size: 15.5px; }
  .section { padding: 68px 0; }
  .home-hero h1 { font-size: clamp(3rem,13.5vw,4.25rem); }
  .inner-hero h1 { font-size: clamp(2.65rem,11.5vw,3.75rem); }
  .principle-grid { gap: 12px; }
  .home-planning__layout,
  .estimate-panel,
  .service-area-teaser__layout { border-radius: 12px; }
  .home-planning__copy { padding: 38px 24px; }
  .service-area-teaser__layout { padding: 34px 24px; }
  .footer-layout { gap: 40px; }
}

@media (max-width: 440px) {
  .site-brand { width: min(220px,66vw); }
  .home-hero h1 { letter-spacing: -.055em; }
  .button { letter-spacing: .035em; }
}

@media (prefers-reduced-motion: reduce) {
  .js .scroll-reveal,
  .js .home-hero__copy > *,
  .js .inner-hero__copy > *,
  .js .inner-hero__note,
  .home-hero__media img,
  .inner-hero__media img {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}

/* Final v3 QA corrections: maintain contrast and prevent transformed reveal elements from widening the viewport. */
.inner-hero__note > strong { color: #fff; }
.js.reveal-motion .scroll-reveal.reveal-left,
.js.reveal-motion .scroll-reveal.reveal-right {
  transform: translate3d(0,30px,0);
}

/* Keep the sticky header and viewport-positioned mega menus in the same coordinate system. */
html,
body {
  overflow-x: clip;
}
.site-header {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}


/* ========================================================================== 
   Premier Fence v4 final corrections — cool neutral palette and project rewrite
   ========================================================================== */
:root {
  --warm: #f4f6f8;
  --warm-2: #dde3e8;
  --pf-cream: #f4f6f8;
  --pf-cream-deep: #dde3e8;
  --pf-paper: #ffffff;
  --pf-line: #dce2e7;
  --pf-muted: #586675;
}

/* Cool whites and grays replace every beige surface. */
.section--warm,
.section--cream { background: #f4f6f8; }
.home-estimate,
.service-details,
.city-priorities,
.about-capabilities,
.contact-expectations {
  color: var(--pf-text);
  background: #f4f6f8 !important;
}
.estimate-panel__intro {
  color: var(--pf-text);
  background: #f8fafb;
  border-color: var(--pf-line);
}
.guidance-panel--care,
.signature__content,
.project-disclaimer,
.sidebar-card,
.icon-checks li,
.form-card,
.project-note,
.article-body th,
.article-toc { background: #f4f6f8; border-color: var(--pf-line); }

/* The local-priority cards must remain readable on every city page. */
.city-priorities .section-heading--light h2,
.city-priorities .section-heading--light h3 { color: var(--pf-ink); }
.city-priorities .section-heading--light p { color: var(--pf-muted) !important; }
.city-priorities .detail-grid {
  gap: 14px;
  background: transparent;
  border: 0;
}
.city-priorities .detail-grid article,
.service-details .detail-grid article,
.about-capabilities .detail-grid article,
.contact-expectations .detail-grid article {
  min-height: 260px;
  color: var(--pf-text);
  background: #fff;
  border: 1px solid var(--pf-line);
  border-radius: 13px;
  box-shadow: 0 12px 34px rgba(23,33,43,.07);
}
.city-priorities .detail-grid h3,
.city-priorities .detail-grid p,
.service-details .detail-grid h3,
.service-details .detail-grid p {
  color: var(--pf-ink) !important;
}
.city-priorities .detail-grid p,
.service-details .detail-grid p { color: var(--pf-muted) !important; }
.city-priorities .detail-grid__icon,
.service-details .detail-grid__icon {
  color: var(--pf-red);
  background: #fff7f8;
  border-color: #efc5c9;
  border-radius: 10px;
}

/* Lighter project presentation on the homepage. */
.home-projects {
  color: var(--pf-text);
  background: #f4f6f8 !important;
}
.home-projects .section-heading--light h2 { color: var(--pf-ink); }
.home-projects .section-heading--light p { color: var(--pf-muted); }
.home-projects .micro-label--light,
.home-projects .text-link--light { color: var(--pf-red); }
.project-tile { border-radius: 14px; box-shadow: 0 16px 42px rgba(23,33,43,.13); }

/* Projects page — editorial, customer-facing layout. */
.projects-intro-v4 { background: #fff; }
.projects-intro-v4__layout {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr);
  gap: clamp(48px,7vw,96px);
  align-items: start;
}
.projects-intro-v4__copy h2 { max-width: 850px; }
.projects-intro-v4__copy p { max-width: 780px; color: var(--pf-muted); font-size: 1.03rem; }
.projects-intro-v4__aside {
  padding: clamp(30px,4vw,46px);
  background: #f4f6f8;
  border: 1px solid var(--pf-line);
  border-top: 4px solid var(--pf-red);
  border-radius: 14px;
  box-shadow: 0 16px 45px rgba(23,33,43,.08);
}
.projects-intro-v4__aside h2 { font-size: clamp(1.75rem,2.5vw,2.45rem); }
.projects-intro-v4__aside p { color: var(--pf-muted); }
.projects-gallery-v4 { background: #f3f5f7; }
.projects-gallery-v4__heading {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(280px,.65fr);
  gap: 50px;
  align-items: end;
  margin-bottom: 46px;
}
.projects-gallery-v4__heading p { margin: 0; color: var(--pf-muted); font-size: 1rem; }
.projects-gallery-v4__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.project-card-v4 {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--pf-line);
  border-radius: 15px;
  box-shadow: 0 16px 42px rgba(23,33,43,.08);
}
.project-card-v4__media { position: relative; width: 100%; height: 300px; padding: 0; border: 0; overflow: hidden; background: var(--pf-ink); cursor: zoom-in; }
.project-card-v4__media picture,
.project-card-v4__media img { width: 100%; height: 100%; }
.project-card-v4__media img { object-fit: cover; transition: transform .55s var(--motion-ease); }
.project-card-v4__media:hover img { transform: scale(1.035); }
.project-card-v4__zoom {
  position: absolute;
  right: 16px;
  bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  color: #fff;
  background: rgba(18,27,36,.92);
  border-radius: 8px;
  font-size: .72rem;
  font-weight: 800;
}
.project-card-v4__zoom svg { width: 15px; height: 15px; fill: none; stroke: #ff6570; stroke-width: 1.8; }
.project-card-v4 figcaption { padding: 27px 26px 29px; }
.project-card-v4 figcaption small {
  display: block;
  margin-bottom: 10px;
  color: var(--pf-red);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.project-card-v4 figcaption h3 { margin-bottom: 13px; font-size: clamp(1.35rem,2vw,1.72rem); }
.project-card-v4 figcaption p { min-height: 76px; color: var(--pf-muted); font-size: .86rem; }
.project-card-v4 figcaption a { color: var(--pf-red); font-size: .78rem; font-weight: 800; }

.projects-process-v4 { background: #fff; }
.projects-process-v4__layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(54px,8vw,100px); align-items: center; }
.projects-process-v4__visual { position: relative; min-height: 620px; overflow: hidden; border-radius: 18px; box-shadow: 0 24px 60px rgba(23,33,43,.16); }
.projects-process-v4__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.projects-process-v4__visual::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,rgba(11,18,25,.88)); }
.projects-process-v4__caption { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 28px; color: #fff; }
.projects-process-v4__caption small { color: #ff6570; font-size: .69rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.projects-process-v4__caption strong { display: block; max-width: 430px; margin-top: 8px; color: #fff; font-size: clamp(1.9rem,3vw,2.75rem); line-height: 1.05; }
.projects-process-v4__copy h2 { max-width: 720px; }
.projects-steps-v4 { margin: 42px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--pf-line); }
.projects-steps-v4 li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding: 21px 0; border-bottom: 1px solid var(--pf-line); }
.projects-steps-v4__number { width: 46px; height: 46px; display: grid; place-items: center; color: var(--pf-red); border: 1px solid #efc4c8; border-radius: 50%; font-size: .7rem; font-weight: 800; }
.projects-steps-v4 h3 { margin: 1px 0 5px; font-size: 1rem; }
.projects-steps-v4 p { margin: 0; color: var(--pf-muted); font-size: .82rem; }

.projects-considerations-v4 { background: #f4f6f8; }
.projects-considerations-v4 .comparison-grid article { background: #fff; border: 1px solid var(--pf-line); border-radius: 12px; box-shadow: 0 10px 28px rgba(23,33,43,.06); }

/* A crisp white footer with no beige tint. */
.site-footer {
  color: var(--pf-muted);
  background: #fff !important;
  border-top: 3px solid var(--pf-red);
}
.footer-brand p { color: var(--pf-muted); }
.footer-heading { color: var(--pf-ink); }
.footer-links a,
.footer-contact > a,
.footer-contact__hours,
.footer-bottom { color: var(--pf-muted); }
.footer-links a:hover,
.footer-contact > a:hover,
.footer-bottom a:hover { color: var(--pf-red); }
.footer-badge {
  color: var(--pf-ink);
  background: #f4f6f8;
  border-color: var(--pf-line);
  border-radius: 9px;
}
.footer-badge small { color: var(--pf-muted); }
.footer-bottom { border-top-color: var(--pf-line); }

@media (max-width: 980px) {
  .projects-intro-v4__layout,
  .projects-gallery-v4__heading,
  .projects-process-v4__layout { grid-template-columns: 1fr; }
  .projects-gallery-v4__grid { grid-template-columns: 1fr 1fr; }
  .projects-process-v4__visual { min-height: 520px; }
}
@media (max-width: 720px) {
  .city-priorities .detail-grid { grid-template-columns: 1fr; }
  .city-priorities .detail-grid article { min-height: 0; }
  .projects-gallery-v4__grid { grid-template-columns: 1fr; }
  .project-card-v4__media { height: 280px; }
  .project-card-v4 figcaption p { min-height: 0; }
  .projects-process-v4__visual { min-height: 470px; }
  .projects-process-v4__caption { left: 22px; right: 22px; bottom: 22px; }
  .projects-intro-v4__aside { padding: 28px 23px; }
}


/* ========================================================================== 
   Premier Fence v4.1 — heading-wrap correction
   Prevent single letters from dropping onto their own line in narrow content
   columns while preserving the strong editorial scale.
   ========================================================================== */
h1,h2,h3,h4 {
  overflow-wrap: normal;
  word-break: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

.heading-phrase { white-space: nowrap; }

.estimate-panel__intro h2 {
  max-width: 15ch;
  font-size: clamp(2.05rem, 3.75vw, 3.2rem);
  line-height: 1.03;
  text-wrap: balance;
}

@media (max-width: 1060px) {
  .estimate-panel__intro h2 {
    max-width: 18ch;
    font-size: clamp(2.1rem, 6.4vw, 3.05rem);
  }
}

@media (max-width: 560px) {
  .estimate-panel__intro h2 {
    max-width: none;
    font-size: clamp(2.05rem, 10.4vw, 2.8rem);
    line-height: 1.04;
    text-wrap: pretty;
  }
}

@media (max-width: 560px) {
  .status-card { padding: 38px 24px; }
  .status-card h1 { font-size: clamp(2.35rem, 12vw, 2.75rem); }
}


/* ========================================================================== 
   Premier Fence v4.2 — high-resolution project gallery and image clarity
   ========================================================================== */

/* Full-width hero images now use properly sized 1600–1920px assets. */
.inner-hero__media picture,
.inner-hero__media picture img {
  display: block;
  width: 100%;
  height: 100%;
}
.inner-hero__media picture img {
  object-fit: cover;
  image-rendering: auto;
}
.projects-page .inner-hero__media img { object-position: center 54%; }

/* Avoid soft browser resampling on portfolio imagery. */
.project-tile img,
.project-photo-v42 img,
.projects-process-v4__visual img {
  image-rendering: auto;
  backface-visibility: hidden;
}

.projects-gallery-v42 {
  overflow: hidden;
  background: #f4f6f8;
}
.projects-gallery-v42__heading {
  display: grid;
  grid-template-columns: minmax(0,1.05fr) minmax(340px,.72fr);
  gap: clamp(42px,7vw,92px);
  align-items: end;
  margin-bottom: 44px;
}
.projects-gallery-v42__heading h2 {
  max-width: 760px;
  margin-bottom: 0;
}
.projects-gallery-v42__heading p {
  margin: 0;
  color: var(--pf-muted);
  font-size: 1rem;
}
.projects-gallery-v42__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.projects-gallery-v42__categories span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 11px;
  color: var(--pf-ink);
  background: #fff;
  border: 1px solid var(--pf-line);
  border-radius: 999px;
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .025em;
}
.projects-gallery-v42__grid {
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: 18px;
}
.project-photo-v42 {
  grid-column: span 4;
  min-width: 0;
  margin: 0;
}
.project-photo-v42--feature { grid-column: span 7; }
.project-photo-v42--side { grid-column: span 5; }
.project-photo-v42--wide { grid-column: span 8; }
.project-photo-v42--narrow { grid-column: span 4; }
.project-photo-v42__media {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  color: #fff;
  text-align: left;
  background: #17212b;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(23,33,43,.13);
  isolation: isolate;
  cursor: zoom-in;
}
.project-photo-v42--feature .project-photo-v42__media { aspect-ratio: 16 / 10; }
.project-photo-v42--wide .project-photo-v42__media { aspect-ratio: 16 / 9; }
.project-photo-v42__media::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: inherit;
}
.project-photo-v42__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.001);
  transition: transform .65s var(--motion-ease), filter .45s ease;
}
.project-photo-v42:nth-child(2) img,
.project-photo-v42:nth-child(9) img { object-position: center; }
.project-photo-v42:nth-child(5) img { object-position: 60% center; }
.project-photo-v42:nth-child(8) img { object-position: center 58%; }
.project-photo-v42__overlay {
  position: absolute;
  z-index: 3;
  inset: auto 0 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px 20px;
  align-items: end;
  padding: clamp(54px,8vw,92px) clamp(20px,3vw,30px) clamp(20px,3vw,28px);
  background: linear-gradient(180deg,transparent 0%,rgba(8,13,18,.2) 20%,rgba(8,13,18,.91) 100%);
}
.project-photo-v42__overlay small {
  grid-column: 1 / -1;
  color: #ff6872;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.project-photo-v42__overlay strong {
  display: block;
  max-width: 550px;
  color: #fff;
  font-size: clamp(1.15rem,2.1vw,1.85rem);
  line-height: 1.12;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.project-photo-v42__overlay > span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  justify-self: end;
  padding-bottom: 2px;
  color: #fff;
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}
.project-photo-v42__overlay svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: #ff6872;
  stroke-width: 1.8;
}
.project-photo-v42__media:hover img,
.project-photo-v42__media:focus-visible img {
  transform: scale(1.035);
  filter: saturate(1.035) contrast(1.015);
}
.project-photo-v42 figcaption {
  display: flex;
  justify-content: flex-end;
  padding: 11px 5px 0;
}
.project-photo-v42 figcaption a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--pf-red);
  font-size: .72rem;
  font-weight: 800;
}
.project-photo-v42 figcaption svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
}

/* Sharper project tiles on the homepage. */
.project-showcase .project-tile picture,
.project-showcase .project-tile > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.project-showcase .project-tile > img { object-fit: cover; }

@media (max-width: 980px) {
  .projects-gallery-v42__heading { grid-template-columns: 1fr; }
  .projects-gallery-v42__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-photo-v42,
  .project-photo-v42--side,
  .project-photo-v42--narrow { grid-column: span 1; }
  .project-photo-v42--feature,
  .project-photo-v42--wide { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .projects-gallery-v42__heading { margin-bottom: 30px; }
  .projects-gallery-v42__categories { gap: 6px; }
  .projects-gallery-v42__categories span { font-size: .64rem; }
  .projects-gallery-v42__grid { grid-template-columns: 1fr; gap: 22px; }
  .project-photo-v42,
  .project-photo-v42--feature,
  .project-photo-v42--side,
  .project-photo-v42--wide,
  .project-photo-v42--narrow { grid-column: 1; }
  .project-photo-v42__media,
  .project-photo-v42--feature .project-photo-v42__media,
  .project-photo-v42--wide .project-photo-v42__media { aspect-ratio: 4 / 3; }
  .project-photo-v42__overlay {
    grid-template-columns: 1fr;
    padding: 64px 20px 20px;
  }
  .project-photo-v42__overlay > span { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  .project-photo-v42__media img { transition: none !important; transform: none !important; }
}


/* v4.2 gallery polish: quieter captions and cleaner internal linking. */
.project-photo-v42__overlay strong {
  font-size: clamp(1.04rem,1.55vw,1.42rem);
}
.project-photo-v42--feature .project-photo-v42__overlay strong,
.project-photo-v42--wide .project-photo-v42__overlay strong {
  font-size: clamp(1.3rem,2.15vw,1.95rem);
}
.projects-gallery-v42__service-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--pf-line);
}
.projects-gallery-v42__service-links span {
  color: var(--pf-muted);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.projects-gallery-v42__service-links a {
  color: var(--pf-ink);
  font-size: .78rem;
  font-weight: 800;
}
.projects-gallery-v42__service-links a:hover { color: var(--pf-red); }
.project-tile__overlay b,
.project-tile__overlay em {
  color: #fff;
  text-shadow: 0 2px 16px rgba(0,0,0,.44);
}
@media (max-width:640px) {
  .projects-gallery-v42__service-links { align-items: flex-start; gap: 8px 14px; }
  .projects-gallery-v42__service-links span { width: 100%; }
  .project-photo-v42__overlay strong { font-size: 1.08rem; }
}

/* Keep homepage project captions above the legacy gradient layer. */
.project-showcase .project-tile::after {
  z-index: 1;
  pointer-events: none;
}
.project-showcase .project-tile__overlay {
  z-index: 2;
}
.project-showcase .project-tile__overlay b {
  color: #fff;
}
.project-showcase .project-tile__overlay em {
  color: rgba(255,255,255,.84);
}


/* ========================================================================== 
   Premier Fence v5 — organic search expansion and 20-community local guides
   Cool neutral palette only; no beige surfaces.
   ========================================================================== */
:root {
  --pf-soft: #f3f6f8;
  --pf-soft-2: #e8edf1;
}
.section--soft { background: var(--pf-soft); }
.home-services.section--ink { background:#f3f6f8 !important; background-image:none !important; }
.city-guide-v5 { border-block: 1px solid var(--pf-line); }
.city-guide-v5__grid { grid-template-columns: repeat(3,1fr); gap: 16px; }
.city-guide-v5__grid article {
  min-height: 260px; padding: 30px; background:#fff; border:1px solid var(--pf-line);
  border-radius: 13px; box-shadow:0 12px 34px rgba(23,33,43,.06);
}
.city-guide-v5__grid .comparison-grid__icon {
  width: 48px; height:48px; display:grid; place-items:center; margin-bottom:24px;
  color:var(--pf-red); background:#fff7f8; border:1px solid #efc5c9; border-radius:10px;
}
.city-guide-v5__grid .comparison-grid__icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.65; }
.city-guide-v5__grid h3 { margin-bottom:12px; }
.city-guide-v5__grid p { margin:0; color:var(--pf-muted); font-size:.9rem; }
.city-context-v5__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.city-context-v5__grid article { padding:34px; border:1px solid var(--pf-line); border-top:4px solid var(--pf-red); border-radius:13px; box-shadow:0 12px 34px rgba(23,33,43,.06); }
.city-context-v5__grid article > span { width:48px; height:48px; display:grid; place-items:center; margin-bottom:24px; color:var(--pf-red); background:#fff7f8; border:1px solid #efc5c9; border-radius:10px; }
.city-context-v5__grid article > span svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.65; }
.city-context-v5__grid h3 { margin-bottom:13px; }
.city-context-v5__grid p { margin:0; color:var(--pf-muted); font-size:.9rem; }
.area-region-v5 { border-top:1px solid var(--pf-line); }
.area-region-v5__heading { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.65fr); gap:70px; align-items:end; margin-bottom:38px; }
.area-region-v5__heading h2 { margin:0; }
.area-region-v5__heading p { margin:0; color:var(--pf-muted); font-size:1.02rem; }
.area-card-grid--v5 { grid-template-columns:repeat(3,1fr); gap:16px; margin-top:0; }
.area-card-grid--v5 a { min-height:245px; display:flex; flex-direction:column; border-radius:13px; box-shadow:0 11px 32px rgba(23,33,43,.055); }
.area-card-grid--v5 p { display:block; -webkit-line-clamp:unset; overflow:visible; flex:1; font-size:.84rem; }
.area-card-grid--v5 b { margin-top:18px; }
.mega-menu__all-areas { grid-column:1/-1; }
.mega-menu__all-areas a { color:var(--pf-red); border:1px solid #efc5c9; background:#fff7f8; }
.home-areas .service-map svg rect:first-of-type { fill:#f3f6f8; }
.editorial-copy p { max-width:76ch; }
.city-page .inner-hero__copy h1 { max-width:15ch; }
.city-page .inner-hero__copy > p { max-width:68ch; }
.city-page .featured-service-grid p { min-height:88px; }
.footer-links--two { columns:2; column-gap:18px; }
@media (max-width:1060px) {
  .area-card-grid--v5,.city-guide-v5__grid,.city-context-v5__grid { grid-template-columns:repeat(2,1fr); }
  .area-region-v5__heading { grid-template-columns:1fr; gap:18px; }
}
@media (max-width:720px) {
  .area-card-grid--v5,.city-guide-v5__grid,.city-context-v5__grid { grid-template-columns:1fr; }
  .area-card-grid--v5 a,.city-guide-v5__grid article { min-height:0; }
  .city-page .inner-hero__copy h1 { max-width:none; }
  .footer-links--two { columns:1; }
}


/* v5.1 icon visibility refinements */
.service-card__icon{width:52px;height:52px;display:grid;place-items:center;margin-bottom:28px;border:1px solid rgba(198,18,27,.18);border-radius:12px;background:#fff7f7;color:var(--pf-red);box-shadow:0 6px 16px rgba(198,18,27,.08);}
.service-card__icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.service-card-grid:not(.service-card-grid--light) .service-card__icon{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#ff7078;box-shadow:none;}
.principle-grid__icon svg,.service-card__icon svg,.home-trust-grid svg,.footer-contact__hours svg,.footer-contact a svg,.contact-hero__details svg,.mobile-quick-actions svg,.button svg,.text-link svg,.process-list svg,.check-list svg,.contact-methods svg{stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}


/* Greater Ozarks service-area directory — v6 */
.area-directory-v6 { background:#f4f6f8; }
.area-directory-v6__intro { max-width:850px; margin:0 auto 42px; text-align:center; }
.area-directory-v6__intro p { margin-left:auto; margin-right:auto; max-width:760px; color:var(--pf-muted); }
.area-directory-v6__groups { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start; }
.area-directory-v6__group { padding:24px; border:1px solid var(--pf-line); border-radius:14px; background:#fff; box-shadow:0 10px 28px rgba(18,29,40,.06); }
.area-directory-v6__group h3 { display:flex; align-items:center; gap:10px; margin:0 0 14px; color:var(--pf-ink); font-size:1.02rem; }
.area-directory-v6__group h3::before { content:""; width:24px; height:2px; background:var(--pf-red); }
.area-directory-v6__group ul { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.area-directory-v6__group a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #e9edf1; color:var(--pf-ink); font-size:.86rem; font-weight: 700; }
.area-directory-v6__group li:last-child a { border-bottom:0; }
.area-directory-v6__group a small { color:var(--pf-muted); font-size:.67rem; font-weight: 600; white-space:nowrap; }
.area-directory-v6__group a:hover { color:var(--pf-red); transform:translateX(3px); }
.city-radius-note { display:flex; align-items:flex-start; gap:14px; margin-top:24px; padding:18px 20px; border-left:3px solid var(--pf-red); background:#f4f6f8; }
.city-radius-note svg { width:24px; height:24px; flex:0 0 auto; fill:none; stroke:var(--pf-red); stroke-width:1.7; }
.city-radius-note b,.city-radius-note small { display:block; }
.city-radius-note small { margin-top:4px; color:var(--pf-muted); line-height:1.55; }
@media (max-width:1100px){.area-directory-v6__groups{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.area-directory-v6__groups{grid-template-columns:repeat(2,minmax(0,1fr));}.area-directory-v6__group{padding:20px;}}
@media (max-width:480px){.area-directory-v6__groups{grid-template-columns:1fr;}.area-directory-v6__group a{font-size:.91rem;}}


/* ======================================================================
   Homepage property-planning redesign — v6.2
   Removes the oversized cropped image and replaces it with a premium,
   image-free planning feature that remains sharp at every screen size.
   ====================================================================== */
.planning-feature {
  overflow: hidden;
  background:
    linear-gradient(180deg, #f4f6f8 0%, #ffffff 100%);
  border-top: 1px solid #e2e6eb;
  border-bottom: 1px solid #e2e6eb;
}
.planning-feature::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--pf-red) 0 18%, #f08b92 18% 30%, transparent 30% 100%);
}
.planning-feature__top {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(330px, .82fr);
  gap: clamp(34px, 5vw, 72px);
  align-items: stretch;
}
.planning-feature .section-heading {
  align-self: center;
  max-width: 760px;
  margin: 0;
  padding: clamp(12px, 2vw, 28px) 0;
}
.planning-feature .section-heading h2 {
  max-width: 720px;
  margin: 0 0 22px;
  font-size: clamp(2.65rem, 4.7vw, 4.55rem);
  line-height: 1.01;
  letter-spacing: -.055em;
}
.planning-feature .section-heading p {
  max-width: 700px;
  margin: 0;
  color: #5d6773;
  font-size: clamp(1rem, 1.45vw, 1.16rem);
  line-height: 1.75;
}
.planning-feature__summary {
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(34px, 4vw, 52px);
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(145deg, rgba(198,18,27,.20), transparent 46%),
    #131a23;
  border: 1px solid #202b37;
  border-top: 4px solid var(--pf-red);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(12,19,28,.17);
}
.planning-feature__summary::after {
  width: 260px;
  height: 260px;
  right: -120px;
  bottom: -150px;
  border-color: rgba(255,255,255,.10);
}
.planning-feature__summary-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  color: #ff737b;
  font-size: .71rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.planning-feature__summary-kicker::before {
  content: "";
  width: 25px;
  height: 2px;
  background: currentColor;
}
.planning-feature__summary h3 {
  max-width: 470px;
  margin: 0 0 17px;
  color: #fff;
  font-size: clamp(1.72rem, 2.7vw, 2.45rem);
  line-height: 1.08;
  letter-spacing: -.04em;
}
.planning-feature__summary p {
  max-width: 520px;
  margin: 0 0 26px;
  color: #c7ced6;
  line-height: 1.72;
}
.planning-feature__summary .button {
  align-self: flex-start;
  position: relative;
  z-index: 2;
}
.planning-feature__grid.principle-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: clamp(32px, 4vw, 52px);
  background: transparent;
  border: 0;
}
.planning-feature__grid.principle-grid article {
  min-height: 268px;
  position: relative;
  padding: 30px 27px 28px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dde3e9;
  border-top: 3px solid var(--pf-red);
  border-radius: 13px;
  box-shadow: 0 12px 34px rgba(15,24,34,.07);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.planning-feature__grid.principle-grid article::after {
  content: attr(data-step);
  position: absolute;
  top: 19px;
  right: 22px;
  color: #e8ebee;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.06em;
}
.planning-feature__grid.principle-grid article:hover {
  transform: translateY(-6px);
  border-color: #cfd6dd;
  box-shadow: 0 20px 48px rgba(15,24,34,.12);
}
.planning-feature__icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin-bottom: 28px;
  color: var(--pf-red);
  background: #fff3f4;
  border: 1px solid #f0c4c7;
  border-radius: 12px;
}
.planning-feature__icon svg {
  width: 31px;
  height: 31px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.planning-feature__grid h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 12px;
  font-size: 1.18rem;
  letter-spacing: -.025em;
}
.planning-feature__grid p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #626d79;
  font-size: .89rem;
  line-height: 1.68;
}
@media (max-width: 1040px) {
  .planning-feature__top { grid-template-columns: 1fr; }
  .planning-feature .section-heading { max-width: 850px; }
  .planning-feature__summary { max-width: none; }
  .planning-feature__grid.principle-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .planning-feature .section-heading h2 {
    font-size: clamp(2.35rem, 11.5vw, 3.35rem);
    line-height: 1.02;
  }
  .planning-feature__summary { padding: 32px 25px; border-radius: 12px; }
  .planning-feature__summary h3 { font-size: 1.85rem; }
  .planning-feature__summary .button { width: 100%; }
  .planning-feature__grid.principle-grid { grid-template-columns: 1fr; gap: 13px; }
  .planning-feature__grid.principle-grid article { min-height: 0; padding: 27px 24px; }
  .planning-feature__grid.principle-grid article::after { font-size: 2.1rem; }
}

/* 2026-08-03 audit hardening: keyboard-safe navigation, resilient motion, and safe areas. */
.lightbox-open { overflow: hidden; }
.home-hero__copy > *,
.inner-hero__copy > *,
.inner-hero__note,
.js .home-hero__copy > *,
.js .inner-hero__copy > *,
.js .inner-hero__note {
  opacity: 1;
  transform: none;
}

.service-card-grid > *,
.featured-service-grid > *,
.detail-grid > *,
.choice-grid > *,
.editorial-layout > *,
.estimate-panel > *,
.footer-layout > * { min-width: 0; }

@media (max-width: 1060px) {
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .primary-nav {
    bottom: calc(64px + env(safe-area-inset-bottom, 0px));
    visibility: hidden;
    pointer-events: none;
  }
  .primary-nav.is-open {
    visibility: visible;
    pointer-events: auto;
  }
  .mega-menu,
  .nav-parent:hover > .mega-menu,
  .nav-parent:focus-within > .mega-menu,
  .nav-parent.is-open > .mega-menu {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    max-width: 100%;
    transform: none;
    transition: none;
  }
  .mobile-action-bar {
    height: calc(64px + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .site-footer { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }

  html:not(.app-ready) body { padding-bottom: 0; }
  html:not(.app-ready) .nav-toggle,
  html:not(.app-ready) .mobile-action-bar { display: none; }
  html:not(.app-ready) .primary-nav {
    position: static;
    inset: auto;
    width: 100%;
    max-width: none;
    max-height: none;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    transition: none;
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .proof-strip small,
  .home-trust-grid small { font-size: .68rem; line-height: 1.35; }
  .proof-strip b,
  .home-trust-grid b { font-size: .77rem; }
  .inner-hero__copy,
  .inner-hero__note,
  .editorial-copy,
  .best-fit-card { overflow-wrap: anywhere; }
}

/* Facebook links and projects callout */
.facebook-mark {
  fill: currentColor;
  stroke: none !important;
}
.footer-contact .footer-facebook,
.contact-details__list .contact-facebook {
  color: inherit;
}
.footer-contact .footer-facebook .facebook-mark,
.contact-details__list .contact-facebook .facebook-mark {
  color: #1877f2;
  fill: currentColor;
  stroke: none;
}
.footer-contact .footer-facebook:hover,
.contact-details__list .contact-facebook:hover {
  color: var(--pf-red);
}
.projects-facebook-callout {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 22px;
  margin-top: 30px;
  padding: 24px 26px;
  border: 1px solid #d7e4f8;
  background: linear-gradient(135deg,#f7faff 0%,#eef5ff 100%);
}
.projects-facebook-callout__icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #1877f2;
  box-shadow: 0 10px 24px rgba(24,119,242,.2);
}
.projects-facebook-callout__icon svg {
  width: 27px;
  height: 27px;
}
.projects-facebook-callout h3 {
  margin: 3px 0 5px;
  font-size: clamp(1.08rem,1.7vw,1.38rem);
}
.projects-facebook-callout p {
  max-width: 680px;
  margin: 0;
  color: var(--pf-muted);
  font-size: .78rem;
}
.projects-facebook-callout .button {
  white-space: nowrap;
}
@media (max-width: 780px) {
  .projects-facebook-callout {
    grid-template-columns: auto minmax(0,1fr);
    align-items: start;
    padding: 22px;
  }
  .projects-facebook-callout .button {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }
}
@media (max-width: 480px) {
  .projects-facebook-callout {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .projects-facebook-callout__icon {
    width: 48px;
    height: 48px;
  }
}

/* Projects page: four balanced planning cards without a stranded grid cell. */
.projects-considerations-v4 .comparison-grid {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
  background: transparent;
  border: 0;
}
.projects-considerations-v4 .comparison-grid article {
  position: relative;
  min-height: 268px;
  overflow: hidden;
  padding: 28px 25px 26px;
  border: 1px solid #dce2e7;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(23,33,43,.07);
}
.projects-considerations-v4 .comparison-grid article::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg,var(--pf-red),#ee6972);
}
.projects-considerations-v4 .comparison-grid article > span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--pf-red);
  background: #fff1f2;
  letter-spacing: .08em;
}
.projects-considerations-v4 .comparison-grid h3 {
  margin: 24px 0 11px;
  font-size: clamp(1.02rem,1.25vw,1.18rem);
  line-height: 1.25;
}
.projects-considerations-v4 .comparison-grid p {
  font-size: .79rem;
  line-height: 1.65;
}
@media (max-width: 1100px) {
  .projects-considerations-v4 .comparison-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .projects-considerations-v4 .comparison-grid article {
    min-height: 240px;
  }
}
@media (max-width: 760px) {
  .projects-considerations-v4 .comparison-grid {
    grid-template-columns: 1fr;
    gap: 13px;
  }
  .projects-considerations-v4 .comparison-grid article {
    min-height: 0;
    padding: 25px 22px;
  }
}

/* Springfield office address: clear NAP presentation without storefront language. */
.footer-office {
  display: grid;
  grid-template-columns: 18px minmax(0,1fr);
  align-items: start;
  gap: 10px;
  margin: 15px 0;
  padding: 14px 0;
  border-top: 1px solid var(--pf-line);
  border-bottom: 1px solid var(--pf-line);
}
.footer-office > svg {
  width: 17px;
  height: 17px;
  margin-top: 3px;
  fill: none;
  stroke: var(--pf-red);
  stroke-width: 1.8;
}
.footer-office__text {
  min-width: 0;
  margin: 0;
  color: var(--pf-muted);
  font-style: normal;
  line-height: 1.5;
}
.footer-office__text small {
  display: block;
  margin: 0 0 4px;
  color: var(--pf-ink);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.footer-contact .footer-office__text a {
  display: block;
  margin: 0;
  color: var(--pf-muted);
  font-size: .76rem;
  line-height: 1.55;
}
.footer-contact .footer-office__text a:hover {
  color: var(--pf-red);
}
.contact-details__list .contact-office b {
  line-height: 1.55;
}
.legal-layout aside address {
  display: grid;
  gap: 3px;
  margin: 16px 0;
  color: var(--pf-muted);
  font-size: .78rem;
  font-style: normal;
  line-height: 1.45;
}
@media (max-width: 720px) {
  .footer-office {
    max-width: 360px;
  }
}

/* ======================================================================
   Technical SEO/readability audit — v6.5
   Keeps the approved visual system while making secondary copy, navigation,
   overlays, forms, and footer details comfortably readable at every width.
   ====================================================================== */
:root {
  --muted: #515a66;
  --pf-muted: #4f5965;
}

body {
  font-family: "Manrope", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.68;
}

p,
li,
address,
label,
input,
select,
textarea {
  -webkit-font-smoothing: antialiased;
}

.micro-label,
.eyebrow,
.kicker {
  font-size: .78rem;
  letter-spacing: .12em;
  line-height: 1.45;
}

.button {
  font-size: .82rem;
  line-height: 1.35;
}

.utility-bar,
.utility-bar__phone,
.utility-bar__group--right a {
  font-size: .82rem;
}

.primary-nav__list > li > a {
  font-size: .84rem;
}

.mega-menu__intro p {
  font-size: .94rem;
  line-height: 1.62;
}

.mega-menu__intro a,
.mega-menu__links b,
.mega-menu__city-list a {
  font-size: .86rem;
}

.mega-menu__links small {
  color: #525d69;
  font-size: .78rem;
  line-height: 1.5;
}

.home-hero__support,
.home-trust-grid small,
.proof-strip small,
.trust-item span {
  font-size: .78rem;
  line-height: 1.48;
}

.home-trust-grid small {
  color: #c5cbd2;
}

.home-trust-grid b,
.proof-strip b,
.trust-item strong {
  font-size: .84rem;
  line-height: 1.35;
}

.service-card__number,
.service-card .service-card__link,
.service-card .inline-link {
  font-size: .78rem;
  line-height: 1.45;
}

.service-card p,
.service-card-grid--light .service-card p {
  color: var(--pf-muted);
  font-size: .9rem;
  line-height: 1.68;
}

.project-tile__overlay small,
.projects-process-v4__caption small,
.premium-gallery__item figcaption small,
.featured-service-grid small,
.area-card-grid small,
.finance-steps small,
.inner-hero__note-kicker,
.planning-feature__summary-kicker {
  font-size: .76rem;
  line-height: 1.45;
}

.project-tile__overlay em,
.fine-print,
.service-map__legend,
.form-privacy,
.form-consent,
.contact-details__note a,
.premium-gallery__item figcaption a,
.financing-summary a,
.projects-facebook-callout p,
.projects-considerations-v4 .comparison-grid p {
  font-size: .84rem;
  line-height: 1.65;
}

.breadcrumbs,
.breadcrumbs ol {
  font-size: .82rem;
  line-height: 1.5;
}

.inner-hero .breadcrumbs,
.inner-hero .breadcrumbs a,
.inner-hero .breadcrumbs span,
.legal-hero .breadcrumbs,
.legal-hero .breadcrumbs a,
.legal-hero .breadcrumbs span {
  color: #d2d7dc;
}

.inner-hero__note p,
.detail-band p,
.contact-panel p,
.callout p,
.service-area-teaser p,
.financing-summary p,
.contact-details__note p {
  color: #cbd1d7;
}

.section--ink .estimate-panel__intro > p,
.section--ink .estimate-form .form-privacy,
.section--ink .estimate-form .form-consent {
  color: var(--pf-muted);
}

.choice-grid article > span,
.process-grid__number,
.comparison-grid article > span,
.finance-steps li > span,
.location-fact span,
.contact-expectations li span {
  font-size: .76rem;
}

.field-grid label,
.form-field label {
  font-size: .86rem;
  line-height: 1.45;
}

.field-grid input,
.field-grid select,
.field-grid textarea,
.form-field input,
.form-field select,
.form-field textarea {
  font-size: 1rem;
  line-height: 1.5;
}

.contact-details__list small,
.about-story__year span,
.capability-list a span,
.footer-badge span,
.footer-badge small,
.footer-heading,
.footer-office__text small,
.area-directory-v6__group a small {
  font-size: .76rem;
  line-height: 1.45;
}

.footer-brand p,
.footer-links a,
.footer-contact > a,
.footer-contact__hours,
.footer-contact .footer-office__text a,
.legal-layout aside address {
  font-size: .86rem;
  line-height: 1.62;
}

.site-footer,
.footer-brand p,
.footer-contact,
.footer-bottom {
  color: #4f5965;
}

.footer-bottom p,
.footer-bottom a {
  font-size: .78rem;
  line-height: 1.55;
}

.area-directory-v6__group a {
  font-size: .9rem;
  line-height: 1.45;
}

@media (max-width: 720px) {
  body {
    font-size: 16px;
  }

  .utility-bar__phone {
    font-size: .84rem;
  }

  .primary-nav__list > li > a {
    font-size: 1rem;
  }

  .home-trust-grid small,
  .proof-strip small {
    font-size: .76rem;
    line-height: 1.45;
  }

  .home-trust-grid b,
  .proof-strip b {
    font-size: .84rem;
  }

}

/* Contrast, focus visibility, and long-copy safeguards found in visual QA. */
body,
p,
li,
label,
input,
select,
textarea {
  letter-spacing: 0;
}

:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 2px;
  box-shadow: 0 0 0 6px #17212b;
}

.best-fit-card:not(.best-fit-card--light) .micro-label {
  color: #ff737b;
}

.global-cta .micro-label--light {
  color: #ffffff;
}

.comparison-grid--light article > span,
.capability-list a span {
  color: var(--pf-red);
}

.choice-grid p,
.detail-grid p,
.featured-service-grid p,
.comparison-grid p,
.finance-steps p,
.projects-steps-v4 p {
  font-size: .9rem;
  line-height: 1.68;
}

.inner-hero__note > p,
.inner-hero__note li,
.best-fit-card li {
  font-size: .9rem;
  line-height: 1.65;
}

.editorial-copy p a:not(.button):not(.text-link),
.best-fit-card p a:not(.button):not(.text-link),
.legal-copy p a:not(.button):not(.text-link) {
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.legal-copy p,
.legal-copy li,
.projects-intro-v4__copy p {
  max-width: 72ch;
}

@media (max-width: 720px) {
  h1 {
    line-height: 1.06;
  }

  h2 {
    line-height: 1.1;
  }

  .inner-hero__shade {
    background:
      linear-gradient(90deg, rgba(11,18,25,.95), rgba(11,18,25,.82)),
      linear-gradient(0deg, rgba(11,18,25,.76), transparent 70%);
  }
}

/* Final readability gate: remove undersized labels and remaining low-contrast states. */
.home-financing__badge {
  color: #ffffff;
  font-size: .78rem;
  line-height: 1.4;
}

.home-financing__card li > span,
.estimate-panel__direct span,
.featured-service-grid b,
.city-link-grid small,
.area-card-grid b,
.projects-gallery-v42__categories span,
.project-photo-v42__overlay small,
.project-photo-v42__overlay > span,
.project-photo-v42 figcaption a,
.projects-gallery-v42__service-links span {
  font-size: .78rem;
  line-height: 1.45;
}

.related-services__grid small {
  font-size: .84rem;
  line-height: 1.55;
}

.legal-hero small {
  color: #aeb6be;
  font-size: .82rem;
  line-height: 1.5;
}

.service-card-grid:not(.service-card-grid--light) .service-card__icon {
  color: var(--pf-red);
  background: #fff7f7;
  border-color: rgba(198,18,27,.18);
  box-shadow: 0 6px 16px rgba(198,18,27,.08);
}

@media (max-width: 720px) {
  .projects-gallery-v42__categories span {
    font-size: .78rem;
  }
}
