/* Shared launch refinements; keep the approved identity and individual layouts. */
html { -webkit-text-size-adjust: 100%; }
body { overflow-wrap: break-word; }
img { max-width: 100%; }
h1, h2, h3, a, .proof-item, .path { overflow-wrap: anywhere; }
:is(.header-inner, .proof-inner, .split-story, .paths, .section-head, .family, .trust-grid, .contact-grid, .footer-grid) > * { min-width: 0; }
main { scroll-margin-top: 90px; }
.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; padding: 12px 18px; background: #fffdf7; color: #0d2230; font-weight: 700; transform: translateY(-160%); }
.skip-link:focus { transform: none; outline: 3px solid #c5a15d; }
a, button, input, select, textarea, summary { touch-action: manipulation; }
:is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #c5a15d; outline-offset: 4px; }
.image-disclosure { margin: 16px 0 0; font-size: 12px; line-height: 1.5; color: #52616a; }
.visual-band .image-disclosure, .hero .image-disclosure { color: #d4e0e4; }
.hero .image-disclosure { font-size: 11px; }
.site-footer a, footer .footer-grid a { text-underline-offset: 3px; }
.precon-image { position: relative; height: 500px; min-height: 0; margin: 0; }
.precon-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.customer-questions { border-top: 1px solid var(--line, #cbd4d8); }
.customer-questions details { padding: 18px 0; border-bottom: 1px solid var(--line, #cbd4d8); }
.customer-questions summary { cursor: pointer; font-size: 17px; font-weight: 700; color: #0d2230; }
.customer-questions details p { max-width: 760px; margin: 14px 0 0; font-size: 15px; }
/* Quiet handoff between the two companies: navigation, not a promotional badge. */
.audience-link {
  position: absolute;
  z-index: 3;
  top: 20px;
  right: max(24px, calc((100% - var(--max, 1240px)) / 2));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 46px;
  max-width: calc(100% - 28px);
  padding: 11px 16px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .01em;
  text-decoration: none;
}
.audience-link > span { min-width: 0; }
.audience-link svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.audience-link:focus-visible { outline: 3px solid #e6c585; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) and (forced-colors: none) {
  .audience-link:not(:focus-visible) { transition: transform 140ms cubic-bezier(.23,1,.32,1); }
  .audience-link:not(:focus-visible) svg { transition: transform 160ms cubic-bezier(.23,1,.32,1); }
  .audience-link:hover:not(:focus-visible) svg { transform: translateX(2px); }
  .audience-link--back:hover:not(:focus-visible) svg { transform: translateX(-2px); }
  .audience-link:active:not(:focus-visible) { transform: scale(.98); }
}
/* Explicit surface roles bridge the existing page palettes without altering layout. */
[data-action-surface] {
  --action-fill: rgba(255,253,247,.86);
  --action-hover: rgba(255,253,247,.94);
  --action-solid: #fffdf7;
  --action-ink: #0d2230;
  --action-line: rgba(255,253,247,.65);
  --action-focus: #c5a15d;
  --action-filter: none;
}
[data-action-surface="smoke"] {
  /* A readable fallback for browsers without backdrop filtering. */
  --action-fill: rgba(18,44,59,.68);
  --action-hover: rgba(18,44,59,.78);
  --action-solid: #122c3b;
  --action-ink: #f7f8f6;
  --action-line: rgba(255,255,255,.38);
  --action-focus: #e6c585;
}
[data-action-surface="navy"] { --action-fill: rgba(13,34,48,.88); --action-hover: rgba(13,34,48,.96); --action-solid: #0d2230; --action-ink: #fffdf7; --action-line: rgba(13,34,48,.35); }
[data-action-surface="pearl"] { --action-fill: rgba(255,253,247,.56); --action-hover: rgba(255,253,247,.7); --action-line: rgba(255,253,247,.55); }
[data-action-surface="brass"] { --action-fill: rgba(197,161,93,.9); --action-hover: rgba(197,161,93,.98); --action-solid: #c5a15d; --action-line: rgba(197,161,93,.65); }
[data-action-surface="teal"] { --action-fill: rgba(99,196,214,.9); --action-hover: rgba(99,196,214,.98); --action-solid: #63c4d6; --action-line: rgba(99,196,214,.65); }
[data-action-surface="mist"] { --action-fill: rgba(13,34,48,.06); --action-hover: rgba(13,34,48,.12); --action-solid: #e8edee; --action-line: rgba(13,34,48,.32); }
:root :is(.button, .nav-contact, .header-cta, .audience-link, form button)[data-action-surface] {
  min-height: 46px;
  border: 1px solid var(--action-line);
  border-radius: 5px;
  background: var(--action-fill);
  color: var(--action-ink);
  -webkit-backdrop-filter: var(--action-filter);
  backdrop-filter: var(--action-filter);
  box-shadow: none;
  text-shadow: none;
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  [data-action-surface] { --action-filter: blur(10px); }
  [data-action-surface="smoke"] {
    --action-fill: rgba(8,23,33,.34);
    --action-hover: rgba(8,23,33,.46);
    --action-filter: blur(10px) brightness(.6);
  }
}
@media (hover: hover) and (pointer: fine) {
  :root [data-action-surface]:hover { background: var(--action-hover); box-shadow: none; }
}
:root [data-action-surface]:focus-visible { outline: 3px solid var(--action-focus); outline-offset: 4px; transform: none; transition: none; }
@media (prefers-reduced-transparency: reduce) {
  :root [data-action-surface] { --action-fill: var(--action-solid); --action-hover: var(--action-solid); --action-filter: none; }
}
@media (forced-colors: active) {
  :root [data-action-surface] { --action-fill: Canvas; --action-hover: Canvas; --action-ink: LinkText; --action-line: LinkText; --action-focus: Highlight; --action-filter: none; }
}
/* Icons are redundant with the words, static, and available without JavaScript. */
.guidance-icon { display: block; width: 28px; height: 28px; flex: 0 0 28px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; color: #98702f; }
.hero-proof > div:has(.guidance-icon), .trust-band .trust-grid > div:has(.guidance-icon) { display: grid; grid-template-columns: 28px minmax(0,1fr); column-gap: 10px; row-gap: 4px; align-content: start; }
.hero-proof > div > .guidance-icon, .trust-band .trust-grid > div > .guidance-icon { grid-column: 1; grid-row: 1 / span 2; }
.hero-proof > div > :is(b,span), .trust-band .trust-grid > div > :is(b,span) { grid-column: 2; }
.hero-proof .guidance-icon, .proof-item .guidance-icon { color: #e3c588; }
.trust-band .trust-grid > div:has(.guidance-icon) { align-content: center; }
.trust-band .trust-grid > div > span { margin-top: 0; }
.proof-item .guidance-icon { margin-bottom: 12px; }
.process-row:has(> .guidance-icon) { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 14px; }
@media (forced-colors: active) { .guidance-icon { color: CanvasText; } }
@media (max-width: 980px) { .precon-image { height: 360px; } }
@media (max-width: 700px) {
  .audience-link { top: 14px; right: 14px; }
  .header-inner { gap: 12px; }
  .header-inner .brand { min-width: 0; flex: 1 1 auto; }
  .header-inner .brand img { width: 100%; max-width: 220px; }
  .proof-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paths, .split-story { grid-template-columns: minmax(0, 1fr); }
  .precon-image { height: 260px; min-height: 0; }
  .precon-grid { gap: 32px; }
  .site-nav .nav-contact { font-size: 12px; }
  .site-footer a, footer .footer-grid > div > a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer-fine { line-height: 1.8; }
  .site-footer .business-address a { display: inline; }
  .hero .image-disclosure { max-width: 36ch; }
}
/* Short/touch screens must scroll naturally, not trap copy in a pinned stage. */
@media (max-width: 700px), (max-height: 740px) {
  [data-seasonal-hero], [data-seasonal-hero].is-reduced-motion { min-height: 0; }
  [data-seasonal-hero] .hero-stage, [data-seasonal-hero].is-reduced-motion .hero-stage { position: relative; height: auto; min-height: 100svh; overflow: visible; }
  [data-seasonal-hero] .hero-content { padding-bottom: 40px; }
  [data-seasonal-hero] .hero-atmosphere { display: none; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .site-header { position: absolute; }
  body:not(:has([data-seasonal-hero])) .hero-content { padding-top: 145px; }
  :is(.residential, .commercial) .site-header { position: relative; }
  body:is(.residential, .commercial) .hero-content { padding-top: 82px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
