/* SkyView Restoration Group — brand colors
   Navy #111B31  SkyView blue #283E79  Grey #A8AFBB  Light grey #F1F4F8  White #FFFFFF. No red. Fonts: Saira (headings, uppercase, extra bold) + Archivo (body). */
:root {
  --navy: #111B31;
  --navy-deep: #0A1120;
  --navy-soft: #243050;
  --accent: #283E79;
  --accent-deep: #1C2D5A;
  --white: #FFFFFF;
  --paper: #F1F4F8;
  --tint: #E7ECF3;
  --gray: #A8AFBB;
  --grey: #A8AFBB;
  --ink: #141414;
  --muted: #4A5568;
  --line: #D8DDE5;
  --on-navy: #D3DCE7;
  --display: "Saira", Arial, sans-serif;
  --body: "Archivo", Arial, Helvetica, sans-serif;
  --wrap: 1140px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 1.0625rem; line-height: 1.6; padding-bottom: env(safe-area-inset-bottom, 0px); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-underline-offset: 3px; }
a:hover { color: var(--accent); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }

h1, h2, h3 { font-family: var(--display); color: var(--navy); line-height: 1.08; margin: 0 0 .5em; text-transform: uppercase; letter-spacing: .01em; }
h1 { font-size: clamp(2.3rem, 5.4vw, 4.1rem); font-weight: 800; font-stretch: 112%; }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); font-weight: 800; font-stretch: 110%; }
h3 { font-size: 1.15rem; font-weight: 800; }
p { margin: 0 0 1em; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 22px; }

/* ---------- Header (light band, full-color logo, thin SkyView-blue rule) ---------- */
.site-header { position: sticky; top: 0; z-index: 30; background: var(--white); border-bottom: 3px solid var(--accent); padding-top: env(safe-area-inset-top, 0px); }
.utility { background: var(--paper); color: var(--navy); font-size: .86rem; border-bottom: 1px solid var(--line); }
.utility-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 34px; padding-top: 4px; padding-bottom: 4px; }
.utility a { color: var(--navy); font-weight: 700; }
.utility a:hover { color: var(--accent); }
.utility-login { font-weight: 700; text-decoration: none; white-space: nowrap; }
.header-row { display: flex; align-items: center; justify-content: space-between; min-height: 78px; gap: 16px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--navy); }
.brand img { width: 270px; height: auto; aspect-ratio: 840 / 171; }
.site-nav { display: flex; gap: 22px; align-items: center; }
.site-nav a { font-weight: 700; font-size: .98rem; color: var(--navy); text-decoration: none; padding: 4px 0; }
.site-nav a:hover { color: var(--accent); }
.site-nav a[aria-current="page"] { color: var(--navy); box-shadow: inset 0 -3px 0 var(--accent); }
.site-nav .nav-cta { background: var(--accent); color: var(--white); padding: 10px 20px; clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%); box-shadow: none; }
.site-nav .nav-cta:hover { background: var(--accent-deep); color: var(--white); }
.nav-toggle, .nav-login-mobile { display: none; }
@media (max-width: 1024px) {
  .brand img { width: 220px; }
  .nav-toggle { display: block; font: inherit; font-weight: 700; background: var(--white); border: 2px solid var(--navy); color: var(--navy); padding: 7px 14px; cursor: pointer; }
  .nav-toggle:hover, .nav-toggle[aria-expanded="true"] { background: var(--navy); color: var(--white); }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--white); flex-direction: column; align-items: stretch; gap: 0; padding: 6px 22px 18px; border-bottom: 3px solid var(--accent); box-shadow: 0 14px 24px rgba(17,27,49,.18); }
  .site-nav.open { display: flex; }
  .site-nav a { padding: 13px 0; border-bottom: 1px solid var(--line); }
  .site-nav a[aria-current="page"] { box-shadow: none; color: var(--accent); }
  .nav-login-mobile { display: block; }
  .site-nav .nav-cta { text-align: center; margin-top: 12px; border-bottom: 0; }
}
@media (max-width: 560px) {
  .brand img { width: 180px; }
  .utility-login { display: none; }
  .utility-row { justify-content: center; text-align: center; }
}

/* ---------- Buttons (slanted like the logo's TEAM banner) ---------- */
.btn { display: inline-block; font-family: var(--body); font-weight: 700; font-size: 1rem; padding: 14px 28px; text-decoration: none; border: 2px solid transparent; cursor: pointer; text-align: center; clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%); }
.btn-primary { background: var(--accent); color: var(--white); }
.btn-primary:hover { background: var(--accent-deep); color: var(--white); }
.btn-quiet { background: var(--navy); color: var(--white); }
.btn-quiet:hover { background: var(--navy-deep); color: var(--white); }
.btn-light { background: var(--white); color: var(--navy); }
.btn-light:hover { background: var(--tint); color: var(--navy); }
.btn-outline-light { background: transparent; color: var(--white); border-color: var(--white); clip-path: none; }
.btn-outline-light:hover { background: var(--white); color: var(--navy); }
.btn-block { display: block; width: 100%; }

/* ---------- Hero ---------- */
.hero { background: var(--navy); color: var(--white); padding: 60px 0 110px; position: relative; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 56px), 0 100%); }
.hero .wrap { position: relative; z-index: 1; }
.hero-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 52px; align-items: center; }
.hero h1, .hero .hero-title { color: var(--white); }
.hero-title { font-size: clamp(2.3rem, 5.4vw, 4.1rem); font-weight: 800; font-stretch: 112%; }
.hero .lede { color: var(--on-navy); }
.hero .btn-quiet, .case-band .btn-quiet { background: transparent; border-color: var(--white); clip-path: none; }
.hero .btn-quiet:hover { background: var(--white); color: var(--navy); }
.lede { font-size: 1.2rem; color: var(--muted); max-width: 38em; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.hero-photo { max-width: 420px; justify-self: end; width: 100%; border: 4px solid var(--grey); }
@media (max-width: 860px) {
  .hero { padding: 40px 0 80px; }
  .hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .hero-photo { justify-self: start; max-width: 360px; }
}

.page-hero { background: var(--navy); border-bottom: 6px solid var(--grey); padding: 52px 0 46px; }
.page-hero h1 { color: var(--white); margin-bottom: .3em; }
.page-hero .lede { color: var(--on-navy); }

/* ---------- Sections ---------- */
.section { padding: 80px 0; }
.section-tight { padding: 56px 0; }
.section-tint { background: var(--tint); }
.section-head { max-width: 46em; margin-bottom: 38px; }
.section-head p { font-size: 1.1rem; color: var(--muted); }
.why .section-head h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); line-height: 1.15; }
.why .section-head p strong { color: var(--navy); }
.source-note { font-size: .88rem; color: var(--muted); margin-top: 26px; }
.more-link { margin-top: 26px; }
.more-link a { font-weight: 700; color: var(--accent); }
@media (max-width: 700px) { .section { padding: 58px 0; } }

/* Our team vs Precision */
.who { display: grid; grid-template-columns: 1fr 1fr; border: 3px solid var(--navy); }
.who-col { padding: 28px 28px 20px; }
.who-us { background: var(--navy); color: var(--white); }
.who-us h3 { color: var(--white); }
.who-them { background: var(--white); }
.who-col h3 { font-size: 1.35rem; margin-bottom: 14px; }
.who-col ul { list-style: none; margin: 0; padding: 0; }
.who-col li { padding: 10px 0 10px 24px; position: relative; border-top: 1px solid var(--line); }
.who-us li { border-top-color: rgba(255,255,255,.18); }
.who-col li::before { content: ""; position: absolute; left: 1px; top: 19px; width: 9px; height: 9px; background: var(--accent); transform: rotate(45deg); }
@media (max-width: 760px) { .who { grid-template-columns: 1fr; } .who-col { padding: 22px 20px 14px; } }

/* Reasons */
.reasons { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 4px solid var(--navy); }
.reason { padding: 24px 24px 8px 0; border-bottom: 1px solid var(--line); }
.reason:not(:nth-child(3n+1)) { padding-left: 24px; border-left: 1px solid var(--line); }
.reason p { color: var(--muted); font-size: 1rem; }
@media (max-width: 900px) {
  .reasons { grid-template-columns: 1fr 1fr; }
  .reason, .reason:not(:nth-child(3n+1)) { padding: 22px 18px 6px 0; border-left: 0; }
  .reason:nth-child(2n) { padding-left: 18px; border-left: 1px solid var(--line); }
}
@media (max-width: 600px) { .reasons { grid-template-columns: 1fr; } .reason:nth-child(2n) { padding-left: 0; border-left: 0; } }

/* Credentials */
.creds { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 4px solid var(--navy); border-bottom: 1px solid var(--line); background: var(--white); margin: 0 0 28px; }
.creds-home { grid-template-columns: repeat(4, 1fr); }
.cred { padding: 20px 18px; display: flex; flex-direction: column; }
.cred + .cred { border-left: 1px solid var(--line); }
.cred-num { font-family: var(--display); font-weight: 800; font-stretch: 112%; font-size: clamp(1.9rem, 3.6vw, 2.6rem); line-height: 1; color: var(--accent); }
.cred-label { font-size: .95rem; color: var(--muted); margin-top: 6px; }
.certs h3 { margin-bottom: 12px; }
.cert-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cert-list li { background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--navy); padding: 7px 12px; font-weight: 700; font-size: .95rem; color: var(--navy); }
.cert-list li.ph-line { font-weight: 400; border-style: dashed; border-left-style: solid; color: var(--muted); }
.cred-list { padding-left: 1.2em; margin: 0; }
.cred-list li { margin-bottom: 6px; }
.cred-list li::marker { color: var(--accent); }
.ph-line { color: var(--muted); font-style: italic; }
@media (max-width: 800px) {
  .creds-home { grid-template-columns: 1fr 1fr; }
  .creds-home .cred:nth-child(3) { border-left: 0; }
  .creds-home .cred:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 480px) {
  .creds, .creds-home { grid-template-columns: 1fr; }
  .cred + .cred { border-left: 0; border-top: 1px solid var(--line); }
}

/* Team cards */
.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 22px; }
.person { background: var(--white); border: 1px solid var(--line); border-top: 5px solid var(--navy); padding: 16px; display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--ink); }
a.person:hover { border-top-color: var(--accent); color: var(--ink); }
.person .ph, .person img { margin-bottom: 12px; }
.person img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.person h3 { margin: 0; font-size: 1.15rem; }
.p-title { font-weight: 700; color: var(--accent); font-size: .95rem; margin: 0 0 6px; }
.p-bio { font-size: .95rem; color: var(--muted); margin: 0 0 8px; }
.p-more { margin-top: auto; padding-top: 6px; font-weight: 700; font-size: .92rem; color: var(--navy); }
a.person:hover .p-more { color: var(--accent); }

/* Expert network */
.network { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 4px solid var(--navy); }
.net-item { padding: 22px 22px 8px 0; border-bottom: 1px solid var(--line); }
.net-item:not(:nth-child(3n+1)) { padding-left: 22px; border-left: 1px solid var(--line); }
.net-item p { color: var(--muted); font-size: 1rem; }
@media (max-width: 900px) {
  .network { grid-template-columns: 1fr 1fr; }
  .net-item, .net-item:not(:nth-child(3n+1)) { padding: 20px 18px 6px 0; border-left: 0; }
  .net-item:nth-child(2n) { padding-left: 18px; border-left: 1px solid var(--line); }
}
@media (max-width: 580px) { .network { grid-template-columns: 1fr; } .net-item:nth-child(2n) { padding-left: 0; border-left: 0; } }

/* Videos and projects */
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
.video { margin: 0; }
.video-frame { position: relative; aspect-ratio: 16 / 9; background: var(--navy); border-bottom: 4px solid var(--grey); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video figcaption { display: flex; flex-direction: column; margin-top: 10px; }
.video strong { font-family: var(--display); font-size: 1.1rem; color: var(--navy); }
.v-place { color: var(--ink); font-size: .95rem; }
.v-tag { color: var(--muted); font-size: .9rem; }
.projects { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 26px; }
.project h3 { margin-top: 14px; }
.project p { color: var(--muted); font-size: .98rem; }
@media (max-width: 900px) { .video-grid, .projects { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .video-grid, .projects { grid-template-columns: 1fr; } }

/* Profile pages */
.profile-hero { background: var(--white); border-bottom: 1px solid var(--line); padding: 46px 0; }
.profile-grid { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: center; }
.profile-photo img, .profile-photo .ph { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; border-bottom: 5px solid var(--accent); }
.crumb { font-weight: 700; font-size: .95rem; margin-bottom: 10px; }
.profile-title { font-family: var(--display); font-weight: 700; font-size: 1.25rem; color: var(--accent); }
.on-file { border-left: 4px solid var(--accent); padding: 4px 0 4px 16px; max-width: 36em; color: var(--muted); }
.profile-body { display: grid; grid-template-columns: 1.5fr 1fr; gap: 56px; align-items: start; }
.story p { max-width: 38em; }
.highlights { background: var(--white); border: 1px solid var(--line); border-top: 5px solid var(--navy); padding: 24px; }
.highlights h2 { font-size: 1.5rem; }
@media (max-width: 860px) {
  .profile-grid, .profile-body { grid-template-columns: 1fr; gap: 26px; }
  .profile-photo { max-width: 280px; }
}

/* Timeline */
.timeline { list-style: none; margin: 0; padding: 0; border-left: 4px solid var(--navy); }
.timeline li { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 0 0 20px 24px; position: relative; }
.timeline li::before { content: ""; position: absolute; left: -9px; top: 7px; width: 12px; height: 12px; background: var(--accent); transform: rotate(45deg); }
.tl-when { font-family: var(--display); font-weight: 700; color: var(--navy); }
.tl-what { color: var(--muted); }
@media (max-width: 560px) { .timeline li { grid-template-columns: 1fr; gap: 2px; } }

/* Contact band */
.contact-band { background: var(--navy); color: var(--on-navy); padding: 52px 0; border-top: 6px solid var(--grey); }
.contact-band h2 { color: var(--white); margin-bottom: .2em; }
.contact-band p { margin: 0; }
.contact-band-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.contact-buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.contact-band .btn-light { background: var(--accent); color: var(--white); }
.contact-band .btn-light:hover { background: var(--accent-deep); }

/* Contact page and forms */
.contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; }
.contact-grid > .text-form { order: -1; }
.contact-list { margin: 0; }
.contact-list dt { font-weight: 700; color: var(--navy); margin-top: 16px; }
.contact-list dt:first-child { margin-top: 0; }
.contact-list dd { margin: 2px 0 0; color: var(--muted); }
.contact-note { margin-top: 28px; background: var(--white); border-left: 5px solid var(--accent); padding: 20px 22px; }
.contact-note p { margin: 0; color: var(--muted); }
.answers-line { margin-top: 22px; color: var(--muted); }
.text-form { background: var(--white); border: 1px solid var(--line); border-top: 6px solid var(--accent); padding: 26px; display: grid; gap: 16px; }
.text-form label { display: grid; gap: 6px; font-weight: 700; font-size: .95rem; color: var(--navy); }
.text-form input, .text-form textarea { font: inherit; font-weight: 400; font-size: 1rem; padding: 11px 12px; border: 1px solid #A9B3C1; background: var(--white); color: var(--ink); width: 100%; }
.text-form input:focus, .text-form textarea:focus { outline: 3px solid var(--navy); outline-offset: 0; border-color: var(--navy); }
.form-error { color: var(--accent); font-weight: 600; font-size: .95rem; margin: 0; }
.form-fine { font-size: .85rem; color: var(--muted); margin: 0; text-align: center; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; gap: 30px; } }
@media (max-width: 420px) { .text-form { padding: 18px; } }

/* Login */
.login-wrap { min-height: 60vh; }
.login-form { max-width: 420px; margin: 0 auto; }
.login-form h1 { font-size: 2.2rem; margin: 0; }
.login-form > p { margin: 0; color: var(--muted); }
#login-msg { color: var(--navy); }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy); color: var(--on-navy); padding: 48px 0 96px; font-size: .95rem; border-top: 4px solid var(--grey); }
.site-footer a { color: var(--white); text-decoration: none; }
.site-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 40px; }
.footer-logo { width: 170px; margin-bottom: 14px; }
.footer-links { display: flex; flex-direction: column; gap: 6px; }
.f-head { font-family: var(--display); font-weight: 700; color: var(--white); margin-bottom: 4px; }
.copyright { border-top: 1px solid var(--navy-soft); margin-top: 28px; padding-top: 16px; font-size: .85rem; }
@media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr; gap: 24px; } }

/* ---------- Text us chat bubble ---------- */
.chat { position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 50; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.chat-bubble { display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: var(--white); border: 0; cursor: pointer; font-family: var(--body); font-weight: 700; font-size: 1rem; padding: 14px 20px; border-radius: 999px; box-shadow: 0 6px 18px rgba(17,27,49,.35); }
.chat-bubble:hover { background: var(--accent-deep); }
.chat.is-open .chat-bubble { background: var(--navy); }
.chat-panel { width: min(340px, calc(100vw - 36px)); background: var(--white); border: 3px solid var(--navy); border-top: 6px solid var(--accent); padding: 18px; box-shadow: 0 10px 30px rgba(17,27,49,.25); max-height: calc(100vh - 120px); overflow-y: auto; }
.chat-head { display: flex; justify-content: space-between; align-items: center; }
.chat-title { font-family: var(--display); font-weight: 800; font-size: 1.25rem; color: var(--navy); margin: 0; }
.chat-close { background: none; border: 0; font-size: 1.8rem; line-height: 1; cursor: pointer; color: var(--muted); padding: 0 4px; }
.chat-intro { font-size: .95rem; color: var(--muted); margin: 6px 0 12px; }
.chat-form { display: grid; gap: 10px; }
.chat-form label { display: grid; gap: 4px; font-weight: 700; font-size: .9rem; color: var(--navy); }
.chat-form input, .chat-form textarea { font: inherit; font-size: 1rem; padding: 9px 10px; border: 1px solid #A9B3C1; width: 100%; }
.chat-form input:focus, .chat-form textarea:focus { outline: 3px solid var(--navy); outline-offset: 0; }
.chat-alt { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .92rem; }
.chat-alt p { margin: 0; width: 100%; color: var(--muted); }
@media (max-width: 480px) { .chat { right: 12px; } }

/* ---------- Photo placeholders ---------- */
.ph { position: relative; width: 100%; background: repeating-linear-gradient(45deg, #DDE4EE 0 12px, #E8EDF4 12px 24px); border: 2px dashed #8A9AB0; display: flex; align-items: center; justify-content: center; text-align: center; }
.ph::after { content: attr(data-label); font-weight: 700; font-size: .9rem; color: var(--navy); background: rgba(255,255,255,.9); padding: 6px 10px; margin: 10px; }
.ph-square { aspect-ratio: 1 / 1; }
.ph-portrait { aspect-ratio: 4 / 5; }
.ph-wide { aspect-ratio: 3 / 2; }
.hero .ph { background: repeating-linear-gradient(45deg, #163A6A 0 12px, #1B4175 12px 24px); border-color: #5A7596; }

/* ---------- Fixed Call / Text / Email bar ---------- */
.action-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 8px max(8px, calc((100vw - 720px) / 2)); padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); background: var(--navy); border-top: 4px solid var(--accent); box-shadow: 0 -6px 20px rgba(17,27,49,.25); }
.ab { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; font-weight: 700; font-size: 1.05rem; text-decoration: none; color: var(--white); border: 2px solid rgba(255,255,255,.55); }
.ab:hover { color: var(--white); background: var(--navy-soft); }
.ab-text { background: var(--accent); border-color: var(--accent); }
.ab-text:hover { background: var(--accent-deep); }
.has-action-bar { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
.chat { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
.chat:not(.is-open) { pointer-events: none; }
@media (max-width: 380px) { .ab { font-size: .95rem; gap: 6px; } .ab svg { width: 18px; height: 18px; } }

/* ---------- Help-by-situation cards ---------- */
.site-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.site-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-top: 5px solid var(--navy); padding: 22px 22px 18px; text-decoration: none; color: var(--ink); }
.site-card:hover { border-top-color: var(--accent); color: var(--ink); }
.site-card h3 { font-size: 1.3rem; margin-bottom: 8px; }
.site-card p { color: var(--muted); font-size: 1rem; margin: 0 0 16px; }
.site-name { margin-top: auto; font-weight: 700; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.site-card-main { background: var(--navy); border-color: var(--navy); border-top-color: var(--grey); }
.site-card-main h3 { color: var(--white); }
.site-card-main p { color: var(--on-navy); }
.site-card-main .site-name { color: var(--white); }
.site-card-main:hover { background: var(--navy-deep); }
@media (max-width: 900px) { .site-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .site-grid { grid-template-columns: 1fr; } }

/* Footer: text only, no repeated nav */
.footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
.footer-contact p { margin: 0 0 6px; }
@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-grid > :first-child { grid-column: 1 / -1; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }

/* storm page timeline labels */
.timeline .tl-when { font-size: 1.1rem; }
@media (max-width: 1080px) { .site-nav { gap: 16px; } .site-nav a { font-size: .93rem; } }

/* ---------- Precision partner strip ---------- */
.partner-strip { background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 36px 0; }
.partner-row { display: grid; grid-template-columns: 240px 1fr auto; gap: 36px; align-items: center; }
.partner-logo { display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 12px; border-right: 4px solid var(--accent); text-decoration: none; }
.partner-logo .pl-img { max-height: 110px; width: auto; }
.pl-text { font-family: var(--display); font-weight: 800; font-size: 1.2rem; line-height: 1.15; color: var(--navy); text-align: center; }
.partner-copy h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin-bottom: .35em; }
.partner-copy p { margin: 0; color: var(--muted); }
@media (max-width: 900px) {
  .partner-row { grid-template-columns: 1fr; gap: 18px; }
  .partner-logo { justify-content: flex-start; border-right: 0; border-left: 4px solid var(--accent); padding-left: 16px; min-height: 0; }
  .partner-btn { justify-self: start; }
}
.footer-partner { display: inline-block; background: var(--white); padding: 10px 14px; max-width: 220px; }
.footer-partner .pl-img { max-height: 64px; width: auto; }
.footer-partner .pl-text { font-size: 1rem; }
.f-gap { margin-top: 18px; }
@media (max-width: 900px) { .partner-logo .pl-text { text-align: left; } }
/* Precision's round logo */
.partner-logo .pl-img { max-height: 150px; }
.footer-partner { background: none; padding: 0; }
.footer-partner .pl-img { max-height: 96px; }


/* ---------- Message popup ---------- */
.msg-modal { position: fixed; inset: 0; z-index: 70; display: flex; align-items: center; justify-content: center; padding: 16px; }
.msg-modal[hidden] { display: none; }
.msg-backdrop { position: absolute; inset: 0; background: rgba(10,17,32,.6); }
.msg-box { position: relative; width: min(480px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; background: var(--white); border-top: 6px solid var(--accent); padding: 22px; box-shadow: 0 20px 50px rgba(10,17,32,.4); }
.msg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.msg-done p { color: var(--muted); }
.msg-done .chat-title { color: var(--navy); }
.hp { position: absolute !important; left: -9999px; }
.modal-open { overflow: hidden; }
.form-error.form-ok { color: var(--navy); }
@media (max-width: 480px) { .msg-row { grid-template-columns: 1fr; } .msg-box { padding: 18px; } }

/* ---------- Gallery ---------- */
.g-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.g-filter { font: inherit; font-weight: 700; font-size: .95rem; background: var(--white); color: var(--navy); border: 2px solid var(--line); padding: 8px 14px; cursor: pointer; }
.g-filter:hover { border-color: var(--navy); }
.g-filter[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: var(--white); }
.g-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.g-item { margin: 0; }
.g-item[hidden] { display: none; }
.g-item .ph::after { font-size: .8rem; }
.g-open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.g-open img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.g-open:hover img { outline: 4px solid var(--accent); outline-offset: -4px; }
.g-item figcaption { font-size: .88rem; color: var(--muted); margin-top: 6px; line-height: 1.35; }
@media (max-width: 900px) { .g-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 580px) { .g-grid { grid-template-columns: 1fr 1fr; gap: 10px; } .g-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; } .g-filter { white-space: nowrap; } }
.lightbox { position: fixed; inset: 0; z-index: 80; background: rgba(10,17,32,.92); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; }
.lightbox img { max-width: 100%; max-height: 80vh; width: auto; }
.lightbox p { color: var(--white); margin: 12px 0 0; text-align: center; }
.lb-close { position: absolute; top: 12px; right: 16px; background: none; border: 0; color: var(--white); font-size: 2.4rem; cursor: pointer; line-height: 1; }

/* ---------- Flat roof band (home) ---------- */
.flat-band { background: var(--navy); color: var(--on-navy); padding: 48px 0; border-top: 6px solid var(--grey); border-bottom: 6px solid var(--grey); }
.flat-band h2 { color: var(--white); margin-bottom: .3em; }
.flat-band p { margin: 0; max-width: 40em; }
.flat-row { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }

/* ---------- Reviews ---------- */
.reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.review { margin: 0; background: var(--white); border-left: 5px solid var(--accent); padding: 22px; }
.review p { font-size: 1.05rem; color: var(--ink); }
.review cite { font-style: normal; font-weight: 700; color: var(--navy); }
@media (max-width: 860px) { .reviews { grid-template-columns: 1fr; } }

/* ---------- Second menu row: Get help ---------- */
.subnav { background: var(--white); border-top: 1px solid var(--line); }
.subnav-row { display: flex; align-items: center; gap: 6px 22px; flex-wrap: wrap; min-height: 42px; padding-top: 6px; padding-bottom: 6px; }
.subnav-label { font-weight: 700; color: var(--muted); font-size: .9rem; }
.subnav a { font-weight: 700; font-size: .92rem; color: var(--navy); text-decoration: none; }
.subnav a:hover { color: var(--accent); text-decoration: underline; }
.site-header { border-bottom-width: 4px; }
.nav-help-mobile { display: none; }
@media (max-width: 900px) {
  .subnav { display: none; }
  .nav-help-mobile { display: block; padding: 12px 0 4px; }
  .nav-help-mobile p { margin: 0 0 4px; font-size: .8rem; font-weight: 700; color: var(--muted); text-transform: none; }
  .nav-help-mobile a { display: block; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--navy); font-weight: 600; }
}
html { scroll-padding-top: 170px; }
#credentials .creds { margin-bottom: 0; }
img.hero-photo { aspect-ratio: 4 / 5; object-fit: cover; }

/* ---------- Hero credentials card ---------- */
.hero-card { background: var(--white); color: var(--ink); border-top: 6px solid var(--accent); box-shadow: 0 18px 40px rgba(0,0,0,.25); max-width: 440px; justify-self: end; width: 100%; }
.hero-stats { margin: 0; padding: 8px 26px; }
.hero-stats div { display: grid; grid-template-columns: 150px 1fr; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.hero-stats div:last-child { border-bottom: 0; }
.hero-stats dt { font-family: var(--display); font-weight: 800; font-stretch: 112%; font-size: 1.9rem; line-height: 1; color: var(--accent); }
.hero-stats dd { margin: 0; color: var(--muted); font-size: .98rem; line-height: 1.35; }
.hero-card-foot { display: flex; align-items: center; gap: 14px; padding: 14px 26px; background: var(--navy-deep); text-decoration: none; color: var(--on-navy); }
.hcf-logos { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.hcf-logo { display: flex; text-decoration: none; }
.hcf-logo:hover { opacity: .85; }
.hcf-logo .pl-img { height: 58px; width: auto; }
.hcf-logo .pl-text { color: var(--white); font-size: .95rem; }
.hcf-text { font-size: .9rem; line-height: 1.3; min-width: 0; }
.hcf-text strong { color: var(--white); font-size: 1rem; white-space: nowrap; }
.hcf-sep { color: var(--accent); font-weight: 700; margin: 0 2px; }
@media (max-width: 860px) { .hero-card { justify-self: start; } }
@media (max-width: 420px) { .hero-stats { padding: 4px 18px; } .hero-stats div { grid-template-columns: 1fr; gap: 4px; } .hero-card-foot { padding: 12px 18px; } }

/* ---------- Precision reputation ---------- */
.rep-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.rep { display: flex; flex-direction: column; background: var(--white); border-top: 5px solid var(--navy); padding: 24px; text-decoration: none; color: var(--ink); }
.rep:hover { border-top-color: var(--accent); color: var(--ink); }
.rep-big { font-family: var(--display); font-weight: 800; font-stretch: 112%; font-size: 2.4rem; line-height: 1; color: var(--accent); }
.rep-label { color: var(--muted); margin: 10px 0 16px; }
.rep-go { margin-top: auto; font-weight: 700; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 860px) { .rep-grid { grid-template-columns: 1fr; } }

/* Projects and clients */
.proj-place { font-weight: 700; color: var(--navy) !important; margin: -6px 0 6px; }
.clients { margin-top: 28px; }
.clients p { color: var(--muted); max-width: 60em; margin: 0; }
.hero-stats div { grid-template-columns: 172px 1fr; }
.hero-stats dt { font-size: 1.75rem; }

/* ---------- Hero card v2: fuller, squarer panel ---------- */
.hero-grid { grid-template-columns: 1.1fr 1fr; align-items: stretch; }
.hero-copy { align-self: center; }
.hero-card { max-width: 540px; display: flex; flex-direction: column; }
.hero-card-head { background: var(--navy-deep); padding: 22px 26px; display: flex; justify-content: center; border-bottom: 4px solid var(--grey); }
.hero-card-head img { height: 96px; width: auto; }
.hero-stats { display: grid; grid-template-columns: 1fr 1fr; padding: 0; flex: 1; }
.hero-stats div { display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 22px 24px; border-bottom: 1px solid var(--line); grid-template-columns: none; }
.hero-stats div:nth-child(odd) { border-right: 1px solid var(--line); }
.hero-stats div:nth-child(n+3) { border-bottom: 0; }
.hero-stats dt { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.hero-stats dd { font-size: .95rem; }
.hero-card { border-top: 0; }
.hcf-logo .pl-img { height: 64px; }
.hcf-logo-rc .pl-img { height: 36px; }
@media (max-width: 420px) { .hero-card-foot { flex-wrap: wrap; } }
.story-link { background: var(--white); border-left: 5px solid var(--accent); padding: 14px 18px; font-weight: 600; }
.story-link a { color: var(--accent); }
@media (max-width: 860px) { .hero-grid { grid-template-columns: 1fr; } .hero-card { max-width: 520px; } }
@media (max-width: 420px) { .hero-stats div { padding: 16px; } .hero-stats dt { font-size: 1.45rem; } .hero-card-head img { height: 72px; } }

/* Project photos */
.proj-img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--tint); }

/* Testimonials */
.quote-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 28px; }
.quote { margin: 0; display: flex; flex-direction: column; background: var(--white); border-left: 5px solid var(--accent); padding: 22px 22px 20px; }
.quote blockquote { margin: 0 0 16px; font-size: 1.02rem; line-height: 1.55; }
.quote blockquote::before { content: "\201C"; display: block; font-family: var(--display); font-weight: 800; font-size: 2.6rem; line-height: .8; color: var(--accent); margin-bottom: 4px; }
.quote figcaption { margin-top: auto; color: var(--navy); }
.quote figcaption span { display: block; color: var(--muted); font-size: .9rem; }
@media (max-width: 900px) { .quote-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .quote-grid { grid-template-columns: 1fr; } }

/* Precision awards (About page) */
.award-list { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 28px; }
.award-list li { padding: 10px 12px 10px 16px; border-left: 4px solid var(--accent); background: var(--white); }
.award-list strong { color: var(--navy); }
.award-certs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 24px; }
.award-certs img { width: 100%; border: 1px solid var(--line); background: var(--white); }
.award-photos { display: grid; grid-template-columns: 1fr 1.4fr .8fr; gap: 16px; align-items: start; }
.award-photos figure { margin: 0; }
.award-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.award-photos .award-badge img { object-fit: contain; background: #111; padding: 12px; }
.award-photos figcaption { font-size: .88rem; color: var(--muted); margin-top: 6px; }
@media (max-width: 900px) { .award-certs { grid-template-columns: repeat(3, 1fr); } .award-photos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .award-list { grid-template-columns: 1fr; } .award-certs { grid-template-columns: 1fr 1fr; } .award-photos { grid-template-columns: 1fr; } }


/* ---------- Google rating card ---------- */
.g-word { font-family: "Product Sans", Arial, Helvetica, sans-serif; font-weight: 700; font-size: 1.5rem; letter-spacing: -.5px; line-height: 1; margin-bottom: 10px; }
.g-b { color: #4285F4; } .g-r { color: #EA4335; } .g-y { color: #FBBC05; } .g-g { color: #34A853; }
.g-score { display: flex; align-items: center; gap: 12px; }
.g-stars { --pct: calc(var(--rating) / 5 * 100%); font-size: 1.5rem; line-height: 1; letter-spacing: 2px; }
.g-stars::before { content: "\2605\2605\2605\2605\2605"; background: linear-gradient(90deg, #FBBC04 var(--pct), #D8DDE5 var(--pct)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- Restoration page ---------- */
.jump { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.jump a { color: var(--white); text-decoration: none; font-weight: 700; padding: 8px 16px; border: 2px solid rgba(255,255,255,.5); }
.jump a:hover { background: var(--white); color: var(--navy); }
.sub-head { font-size: 1.45rem; margin: 44px 0 18px; }
.video .ph { aspect-ratio: 16 / 9; }

/* ---------- Flat roof documentation (storm page) ---------- */
.flat-doc { display: grid; grid-template-columns: 2fr 3fr; gap: 32px; align-items: start; }
.flat-doc > img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-bottom: 5px solid var(--accent); }
.reasons-2 { grid-template-columns: 1fr 1fr; }
.reasons-2 .reason, .reasons-2 .reason:not(:nth-child(3n+1)) { padding: 20px 20px 4px 0; border-left: 0; }
.reasons-2 .reason:nth-child(2n) { padding-left: 20px; border-left: 1px solid var(--line); }
@media (max-width: 860px) { .flat-doc { grid-template-columns: 1fr; } .flat-doc > img { aspect-ratio: 16 / 9; } }
@media (max-width: 560px) { .reasons-2 { grid-template-columns: 1fr; } .reasons-2 .reason:nth-child(2n) { padding-left: 0; border-left: 0; } }

/* ---------- Pulse on main call-to-action ---------- */
@keyframes pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(40,62,121,.55); }
  70% { box-shadow: 0 0 0 16px rgba(40,62,121,0); }
  100% { box-shadow: 0 0 0 0 rgba(40,62,121,0); }
}
/* .btn uses clip-path, which would hide a box-shadow ring, so the ring is drawn by a filter glow instead */
@keyframes pulse-glow {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(40,62,121,0)); transform: scale(1); }
  40% { filter: drop-shadow(0 0 10px rgba(40,62,121,.75)); transform: scale(1.04); }
}
.btn.pulse { animation: pulse-glow 1.6s ease-in-out 1s 3; }
.fab-btn.pulse { animation: pulse-ring 1.8s ease-out 1s 3; }
@media (prefers-reduced-motion: reduce) { .pulse, .btn.pulse, .fab-btn.pulse { animation: none; } }

/* ---------- Floating contact bubble (desktop) ---------- */
.fab { display: none; }
@media (min-width: 901px) {
  .action-bar { display: none; }
  .has-action-bar { padding-bottom: env(safe-area-inset-bottom, 0px); }
  .site-footer { padding-bottom: 48px; }
  .fab { position: fixed; right: 24px; bottom: 24px; z-index: 45; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
  .fab-btn { width: 64px; height: 64px; border-radius: 50%; border: 0; cursor: pointer; background: var(--accent); color: var(--white); display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 22px rgba(17,27,49,.35); transition: background .15s, transform .15s; }
  .fab-btn:hover { background: var(--accent-deep); transform: translateY(-2px); }
  .fab.is-open .fab-btn { background: var(--navy); box-shadow: 0 0 0 3px var(--white), 0 8px 22px rgba(17,27,49,.35); }
  .fab-menu { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
  .fab-menu[hidden] { display: none; }
  .fab-item { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border-radius: 999px; background: var(--white); color: var(--navy); font-weight: 700; text-decoration: none; box-shadow: 0 6px 18px rgba(17,27,49,.25); border: 2px solid var(--navy); }
  .fab-item:hover { background: var(--navy); color: var(--white); }
  .fab-text { background: var(--accent); border-color: var(--accent); color: var(--white); }
  .fab-text:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
  .fab-hint { margin: 0; background: var(--white); color: var(--navy); font-weight: 700; padding: 10px 16px; border: 2px solid var(--navy); box-shadow: 0 6px 18px rgba(17,27,49,.2); }
  .fab-hint[hidden] { display: none; }
}
@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  .fab-item, .fab-hint { animation: fab-in .18s ease-out both; }
}
@keyframes fab-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* People without a photo: initials on navy */
.initials { width: 100%; aspect-ratio: 1 / 1; background: var(--navy); border-bottom: 5px solid var(--grey); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.initials span { font-family: var(--display); font-weight: 800; font-stretch: 112%; font-size: clamp(2.6rem, 6vw, 4rem); color: var(--white); letter-spacing: 2px; }
.profile-photo .initials { aspect-ratio: 4 / 5; }

/* SMS opt-in checkbox on the forms */
.consent { display: grid !important; grid-template-columns: auto 1fr; gap: 10px; align-items: start; font-weight: 400 !important; font-size: .82rem !important; line-height: 1.4; color: var(--muted) !important; }
.consent input { width: 18px !important; height: 18px; margin: 2px 0 0; padding: 0; accent-color: var(--navy); }
.consent a { color: var(--navy); }

/* Privacy / SMS terms page */
.legal { max-width: 780px; }
.legal h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin-top: 1.6em; padding-top: .6em; border-top: 4px solid var(--navy); }
.legal h2:first-of-type { margin-top: .4em; }
.legal h3 { margin-top: 1.4em; }
.legal ul { padding-left: 1.2em; }
.legal li { margin-bottom: .4em; }
.legal-date { color: var(--muted); font-size: .95rem; }

/* Portrait photos on person cards: keep faces in the square */
.person img { object-position: 50% 15%; }

/* Precision team grid: photo and name only */
.staff-head { margin-top: 48px; }
.staff-head h3 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 800; }
.staff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px 14px; }
.staff { display: block; text-decoration: none; color: var(--ink); }
.staff img, .staff .initials { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 20%; margin-bottom: 8px; border-bottom: 4px solid var(--navy); }
.staff h3 { font-size: 1rem; margin: 0; }
.staff .p-title { font-size: .85rem; margin: 2px 0 0; }
a.staff img { border-bottom-color: var(--accent); }
a.staff:hover h3 { color: var(--accent); }
@media (max-width: 480px) { .staff-grid { grid-template-columns: repeat(2, 1fr); } }

/* Profile pull quote */
.p-quote { margin: 0 0 18px; padding: 4px 0 4px 16px; border-left: 4px solid var(--accent); font-family: var(--display); font-weight: 700; font-size: 1.2rem; color: var(--navy); max-width: 32em; }

/* River City partner strip and photos */
.partner-strip-rc { background: var(--tint); }
.partner-strip-rc .partner-logo { border-right-color: var(--navy); }
.partner-strip-rc .partner-logo .pl-img { max-height: 96px; }
@media (max-width: 900px) { .partner-strip-rc .partner-logo { border-left-color: var(--navy); } }
.rc-photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.rc-photos figure { margin: 0; }
.rc-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.rc-photos figcaption { font-size: .88rem; color: var(--muted); margin-top: 6px; }
@media (max-width: 900px) { .rc-photos { grid-template-columns: 1fr 1fr; } }

/* Gallery split by company */
.g-tabs { margin-bottom: 8px; }
.g-group { padding-top: 34px; }
.g-group[hidden] { display: none; }
.g-group + .g-group { margin-top: 26px; border-top: 4px solid var(--navy); }
.g-group-head h2 { font-size: clamp(1.5rem, 2.8vw, 2.1rem); margin-bottom: .25em; }
.g-group-head p { color: var(--muted); margin: 0 0 16px; }
.g-group-head a { color: var(--navy); font-weight: 700; }

/* Inspection photos */
.doc-photos-head { margin: 40px 0 14px; font-size: 1.35rem; }
.doc-photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.doc-photos figure { margin: 0; }
.doc-photos img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-bottom: 4px solid var(--accent); }
.doc-photos figcaption { font-size: .9rem; color: var(--muted); margin-top: 6px; line-height: 1.35; }
.doc-photos-lede { max-width: 70ch; margin: 0 0 16px; color: var(--muted); }
.doc-photos-3 { grid-template-columns: repeat(3, 1fr); }
.doc-photos-3 img { aspect-ratio: 4 / 3; }
@media (max-width: 900px) { .doc-photos { grid-template-columns: 1fr 1fr; } .doc-photos-3 { grid-template-columns: 1fr; } }

/* Anvil strikes + flyers (flat-roofs.html) */
.anvil-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; border-top: 4px solid var(--navy); padding-top: 22px; }
.anvil img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.anvil h3 { margin: 14px 0 6px; }
.anvil p { color: var(--muted); font-size: 1rem; margin: 0; }
.flyers { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 22px; margin-top: 40px; align-items: start; }
.flyer { display: block; text-decoration: none; background: var(--white); border: 1px solid var(--line); padding: 10px; }
.flyer img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.flyer span { display: block; font-weight: 700; color: var(--navy); margin-top: 8px; font-size: .95rem; }
.flyer:hover span { color: var(--accent); }
.flyer-copy h3 { font-size: 1.4rem; }
.flyer-copy p { color: var(--muted); }
@media (max-width: 860px) { .anvil-grid { grid-template-columns: 1fr; } .flyers { grid-template-columns: 1fr 1fr; } .flyer-copy { grid-column: 1 / -1; } }

/* Claim case study */
.eyebrow { font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: .85rem; color: var(--accent); margin: 0 0 8px; }
.case-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 44px; align-items: center; }
.case-lede { font-size: 1.1rem; color: var(--muted); }
.case-creds { margin: 22px 0 18px; }
.case-owner { border-left: 4px solid var(--accent); padding: 4px 0 4px 14px; }
.case-cover { display: block; box-shadow: 0 14px 40px rgba(17, 27, 49, .25); transition: transform .2s; }
.case-cover:hover { transform: translateY(-4px); }
.case-cover img { display: block; width: 100%; height: auto; }
.case-grid-flip { grid-template-columns: 1fr 1.6fr; }
.case-grid-flip > .case-cover { order: -1; }
@media (max-width: 860px) { .case-grid, .case-grid-flip { grid-template-columns: 1fr; } .case-grid-flip > .case-cover { order: 0; } .case-cover { max-width: 320px; } }
.case-band { background: var(--navy); color: var(--on-navy); padding: 40px 0; border-bottom: 6px solid var(--grey); }
.case-band h2 { color: var(--white); font-size: clamp(1.4rem, 2.6vw, 2rem); margin-bottom: .3em; }
.case-band p { margin: 0; }
.case-band .eyebrow { color: #A8AFBB; }
.case-band-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.case-band-row > div { max-width: 46em; }
@media (prefers-reduced-motion: reduce) { .case-cover { transition: none; } .case-cover:hover { transform: none; } }

.footer-partner-rc .pl-img { max-height: 64px; }

/* River City award badges */
.rc-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 32px; background: var(--white); padding: 22px 26px; }
.rc-badges img { height: 120px; width: auto; }
.rc-badges .rc-badge-wide { height: 56px; }
@media (max-width: 580px) { .rc-badges img { height: 84px; } .rc-badges .rc-badge-wide { height: 40px; } }

/* Two partner logos in the header: give the header row more room and keep menu items on one line */
.site-header .header-row { max-width: 1340px; }
.site-nav a { white-space: nowrap; }
.certs + .certs { margin-top: 28px; }

/* Large-loss projects without photos (projects.html) */
.more-projects { margin-top: 36px; border-top: 4px solid var(--navy); padding-top: 20px; }
.more-projects h3 { margin-bottom: 10px; }
.more-projects ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 22px; }
.more-projects li { border-left: 4px solid var(--accent); padding: 6px 0 6px 14px; color: var(--muted); }
.more-projects strong { color: var(--navy); }
@media (max-width: 860px) { .more-projects ul { grid-template-columns: 1fr; } }

/* ---------- Capital Restoration (mitigation partner) ---------- */
/* Capital's logo is white, so its logo box sits on navy */
.partner-strip-cap .partner-logo { background: var(--navy); border-right-color: var(--grey); }
.partner-strip-cap .partner-logo .pl-img { max-height: 84px; }
.partner-strip-cap .partner-logo .pl-text { color: var(--white); }
@media (max-width: 900px) { .partner-strip-cap .partner-logo { justify-content: center; border-left: 0; border-bottom: 4px solid var(--accent); padding: 16px; max-width: 280px; } }
.footer-partner-cap .pl-img { max-height: 64px; }
.f-head-gap { margin-top: 22px; }

.cap-photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 28px 0 0; padding: 0; list-style: none; }
.cap-photos figure { margin: 0; }
.cap-photos img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-bottom: 4px solid var(--accent); }
.cap-photos figcaption { font-size: .88rem; color: var(--muted); margin-top: 6px; }
@media (max-width: 900px) { .cap-photos { grid-template-columns: 1fr 1fr; } }

.office-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 28px; border-top: 4px solid var(--navy); padding-top: 22px; }
.office-state h3 { font-size: 1.15rem; margin-bottom: 8px; }
.office-state ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.office-state li { border-left: 4px solid var(--line); padding: 4px 0 4px 12px; display: flex; flex-direction: column; }
.office-state li strong { color: var(--navy); }
.office-state li span { color: var(--muted); font-size: .95rem; }
.office-state .office-featured { border-left-color: var(--accent); }
@media (max-width: 900px) { .office-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .office-grid { grid-template-columns: 1fr; } }
/* Capital has 4 reviews: 2 x 2 instead of 3 + 1 */
#capital-testimonial-grid { grid-template-columns: 1fr 1fr; }
@media (max-width: 580px) { #capital-testimonial-grid { grid-template-columns: 1fr; } }

/* ---------- Hurricane response (home, temporary 2026-10-10) ---------- */
.storm-alert { background: var(--white); border-top: 8px solid var(--accent); padding: 52px 0 60px; }
.storm-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: start; }
.storm-flag { display: inline-flex; align-items: center; gap: 10px; background: var(--accent); color: var(--white); font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .9rem; padding: 6px 14px; margin-bottom: 18px; }
.storm-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--white); animation: storm-blink 1.2s ease-in-out infinite; }
@keyframes storm-blink { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .storm-dot { animation: none; } }
.storm-copy .hero-title { margin-bottom: .35em; }
.storm-list { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 10px; }
.storm-list li { position: relative; padding-left: 28px; color: var(--muted); }
.storm-list li::before { content: ""; position: absolute; left: 0; top: .45em; width: 14px; height: 14px; background: var(--accent); clip-path: polygon(0 0, 100% 50%, 0 100%); }
.storm-list strong { color: var(--navy); }
.storm-call { font-weight: 600; color: var(--navy); margin: 0; }
.storm-form { border-top-color: var(--navy); box-shadow: 0 18px 40px rgba(17, 27, 49, .14); }
.storm-form h2 { font-size: 1.6rem; margin: 0; }
.storm-needs { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
.storm-needs legend { font-weight: 700; font-size: .95rem; color: var(--navy); padding: 0; margin-bottom: 8px; }
.text-form .storm-needs label { display: flex; align-items: center; gap: 8px; font-weight: 400; color: var(--ink); }
.text-form .storm-needs input { width: 18px; height: 18px; margin: 0; padding: 0; accent-color: var(--accent); flex: none; }
@media (max-width: 860px) { .storm-grid { grid-template-columns: 1fr; gap: 30px; } .storm-alert { padding: 36px 0 44px; } }
@media (max-width: 420px) { .storm-needs { grid-template-columns: 1fr; } }

/* ---- Footer legal row, /terms, /contractors (Nov 2026 contract set) ---- */
.footer-legal { margin-top: 28px; border-top: 1px solid var(--navy-soft); padding-top: 16px; }
.footer-disclaimer { font-size: .88rem; max-width: 900px; margin: 0 0 12px; }
.footer-links-row { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0 0 12px; font-size: .92rem; }
.footer-legal .copyright { border-top: 0; margin-top: 0; padding-top: 0; }
.legal-wide { max-width: 980px; }
.legal-wide h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin-top: 1.6em; padding-top: .6em; border-top: 4px solid var(--navy); }
.legal-wide h2:first-of-type { margin-top: .4em; border-top: 0; padding-top: 0; }
.legal-wide h3 { margin-top: 1.4em; }
.legal-wide ul { padding-left: 1.2em; }
.legal-wide li { margin-bottom: .4em; }
.legal-box { border: 2px solid var(--navy); border-left-width: 8px; padding: 14px 18px; margin: 1.2em 0; background: #f4f7fb; }
.legal-box p { margin: .3em 0; }
.doc-list { list-style: none; padding: 0 !important; }
.doc-list li { padding: 10px 0; border-bottom: 1px solid #d7dde6; }
.doc-list .doc-size { color: var(--muted); font-size: .9rem; white-space: nowrap; }
.rate-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rate-table { width: 100%; border-collapse: collapse; font-size: .95rem; margin: 1em 0 2em; }
.rate-table th, .rate-table td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid #d7dde6; }
.rate-table thead th { background: var(--navy); color: var(--white); }
.rate-table td.svc { font-weight: 700; width: 38%; }
.rate-table td.svc small { display: block; font-weight: 400; color: var(--muted); margin-top: 3px; }
@media (max-width: 640px) {
  .rate-table, .rate-table tbody, .rate-table tr, .rate-table td { display: block; width: 100%; }
  .rate-table thead { display: none; }
  .rate-table tr { border-bottom: 2px solid var(--navy); padding: 8px 0; }
  .rate-table td { border: 0; padding: 4px 8px; }
  .rate-table td.svc { width: 100%; }
  .rate-table td.rate::before { content: "Rate: "; font-weight: 700; }
}
.ac-filters { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.2em 0; }
.ac-filters label { display: flex; flex-direction: column; font-weight: 700; font-size: .9rem; gap: 4px; }
.ac-filters select, .ac-filters input { font: inherit; padding: 8px 10px; min-width: 180px; }
.ac-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.ac-card { border: 1px solid #d7dde6; border-top: 4px solid var(--navy); padding: 14px 16px; background: var(--white); }
.ac-card h3 { margin: 0 0 .2em; font-size: 1.15rem; }
.ac-dba, .ac-assure { color: var(--muted); font-size: .92rem; margin: .2em 0; }
.ac-card dl { margin: .6em 0; }
.ac-card dt { font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }
.ac-card dd { margin: 0 0 .5em; }
.ac-empty { border: 2px dashed var(--navy); padding: 18px 20px; font-size: 1.05rem; }

/* Let the hidden attribute win over display rules on the contractor list */
.ac-filters[hidden], .ac-list[hidden], #ac-count[hidden] { display: none; }

/* ---------- Disaster recovery page ---------- */
.page-hero .eyebrow { color: #A8AFBB; }
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.svc { background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--accent); padding: 24px 22px 10px; }
.svc h3 { font-size: 1.3rem; }
.svc > p { color: var(--muted); }
.svc ul { list-style: none; margin: 0 0 14px; padding: 0; }
.svc li { padding: 8px 0 8px 22px; position: relative; border-top: 1px solid var(--line); }
.svc li::before { content: ""; position: absolute; left: 1px; top: 17px; width: 8px; height: 8px; background: var(--accent); transform: rotate(45deg); }
.svc .more-link { margin-top: 0; }
.check-cols { columns: 3; column-gap: 32px; list-style: none; margin: 0; padding: 0; border-top: 4px solid var(--navy); }
.check-cols li { break-inside: avoid; padding: 11px 0 11px 24px; position: relative; border-bottom: 1px solid var(--line); font-weight: 600; color: var(--navy); }
.check-cols li::before { content: ""; position: absolute; left: 1px; top: 20px; width: 9px; height: 9px; background: var(--accent); transform: rotate(45deg); }
@media (max-width: 900px) { .svc-grid { grid-template-columns: 1fr 1fr; } .check-cols { columns: 2; } }
@media (max-width: 600px) { .svc-grid { grid-template-columns: 1fr; } .check-cols { columns: 1; } }

/* ---------- Header ----------
   Partner logos were removed from the navy bar (user, 2026-10-24: too many partners); the footer lists them all. */
.header-row { min-height: 92px; }
.header-row .brand { margin-right: auto; }
@media (max-width: 1024px) { .header-row { min-height: 80px; } }

/* =========================================================
   Approved Contractors page (contractors/index.html, 2026-10-21)
   Hero collage, one showcase per contractor, photo wall, slideshow.
   ========================================================= */
.ac-hero { position: relative; background: var(--navy-deep); color: var(--white); overflow: hidden; border-bottom: 6px solid var(--grey); }
.ac-hero-art { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.ac-hero-art img { width: 100%; height: 100%; object-fit: cover; }
.ac-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(10,17,32,.96) 0%, rgba(10,17,32,.86) 45%, rgba(10,17,32,.55) 100%); }
.ac-hero-in { position: relative; z-index: 1; padding-top: 76px; padding-bottom: 64px; }
.ac-kicker { font-family: var(--display); text-transform: uppercase; letter-spacing: .14em; font-weight: 700; color: #A8AFBB; margin: 0 0 .6em; font-size: .9rem; }
.ac-hero h1 { color: var(--white); max-width: 15em; margin-bottom: .3em; }
.ac-hero .lede { color: var(--on-navy); }
.ac-hero-stats { display: flex; flex-wrap: wrap; gap: 14px 40px; margin: 28px 0 30px; }
.ac-hero-stats div { color: var(--on-navy); font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; }
.ac-hero-stats strong { display: block; font-family: var(--display); font-size: 2.6rem; line-height: 1; color: var(--white); letter-spacing: 0; }
.ac-jump { display: flex; flex-wrap: wrap; gap: 10px; }
.ac-jump a { display: inline-flex; flex-direction: column; padding: 10px 18px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.28); color: var(--white); text-decoration: none; font-weight: 700; transition: background .2s, border-color .2s; }
.ac-jump a span { font-weight: 400; font-size: .82rem; color: var(--on-navy); letter-spacing: .05em; }
.ac-jump a:hover { background: var(--accent); border-color: var(--accent); color: var(--white); }

.ac-show { padding: 84px 0; background: var(--white); border-bottom: 1px solid var(--line); }
.ac-show-flip { background: var(--paper); }
.ac-show-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 52px; align-items: center; }
.ac-show-flip .ac-show-text { order: 2; }
.ac-badge { display: inline-block; margin: 0 0 18px; padding: 4px 12px; background: var(--tint); color: var(--navy); font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.ac-badge::before { content: "\2713"; color: var(--accent); margin-right: 6px; }
.ac-logo { margin-bottom: 14px; }
.ac-logo img { max-height: 92px; max-width: 260px; width: auto; }
.ac-show h2 { margin: 0 0 .15em; }
.ac-legal { color: var(--muted); font-size: .95rem; margin: 0 0 1em; }
.ac-tags { list-style: none; padding: 0; margin: 0 0 1.2em; display: flex; flex-wrap: wrap; gap: 8px; }
.ac-tags li { border: 1px solid var(--line); background: var(--white); padding: 4px 12px; font-size: .9rem; font-weight: 600; color: var(--navy); }
.ac-facts { margin: 0 0 1.4em; display: grid; gap: 10px; }
.ac-facts div { display: grid; grid-template-columns: 8.5em 1fr; gap: 12px; border-top: 1px solid var(--line); padding-top: 10px; }
.ac-facts dt { font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding-top: 2px; }
.ac-facts dd { margin: 0; }
.ac-stars { color: #E8A317; letter-spacing: 1px; }
.ac-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.ac-mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, 190px); gap: 8px; }
.acm-tile { position: relative; padding: 0; border: 0; overflow: hidden; cursor: zoom-in; background: var(--tint); }
.acm-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.acm-tile:hover img, .acm-tile:focus-visible img { transform: scale(1.06); }
.acm-0 { grid-row: span 2; }
.acm-more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(10,17,32,.62); color: var(--white); font-family: var(--display); font-weight: 700; font-size: 1.25rem; }

.ac-work { background: var(--navy-deep); color: var(--white); }
.ac-work h2 { color: var(--white); }
.ac-work .lede { color: var(--on-navy); }
.ac-tabs { margin: 22px 0 26px; }
.ac-work .g-filter { background: transparent; color: var(--white); border-color: rgba(255,255,255,.35); }
.ac-work .g-filter[aria-pressed="true"], .ac-work .g-filter:hover { background: var(--accent); border-color: var(--accent); color: var(--white); }
.ac-work .g-filter span { opacity: .7; font-weight: 400; margin-left: 4px; }
.acg { columns: 4 240px; column-gap: 10px; }
.acg-item { position: relative; display: block; width: 100%; margin: 0 0 10px; padding: 0; border: 0; overflow: hidden; cursor: zoom-in; break-inside: avoid; background: var(--navy); }
.acg-item img { width: 100%; height: auto; transition: transform .5s ease, opacity .3s; }
.acg-item:hover img, .acg-item:focus-visible img { transform: scale(1.05); }
.acg-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 12px 10px; text-align: left; color: var(--white); font-size: .88rem; line-height: 1.35; background: linear-gradient(transparent, rgba(10,17,32,.92)); opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; }
.acg-cap strong { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: #A8AFBB; }
.acg-item:hover .acg-cap, .acg-item:focus-visible .acg-cap { opacity: 1; transform: none; }
.ac-more-wrap { text-align: center; margin: 24px 0 0; }
.ac-work .btn-quiet { background: var(--white); color: var(--navy); }
.ac-work .btn-quiet:hover { background: var(--tint); }
.ac-more-wrap .btn[hidden] { display: none; }
.ac-note { color: var(--on-navy); font-size: .85rem; margin: 22px 0 0; text-align: center; }
.ac-official h3 { margin-top: 1.2em; }

/* Slideshow */
.acx { position: fixed; inset: 0; z-index: 90; background: rgba(4,14,30,.96); display: flex; flex-direction: column; color: var(--white); }
.acx-top { display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; font-size: .95rem; color: var(--on-navy); }
.acx-close { background: none; border: 0; color: var(--white); font-size: 2.4rem; line-height: 1; cursor: pointer; padding: 0 6px; }
.acx-stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 0 12px; }
.acx-img { max-width: calc(100% - 120px); max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.acx-nav { flex: none; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.08); color: var(--white); font-size: 2rem; line-height: 1; cursor: pointer; }
.acx-nav:hover { background: var(--accent); border-color: var(--accent); }
.acx-meta { margin: 0; padding: 14px 18px 20px; text-align: center; }
.acx-who { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: #A8AFBB; }

@media (max-width: 900px) {
  .ac-hero-art { grid-template-columns: 1fr; }
  .ac-hero-art img + img { display: none; }
  .ac-hero-in { padding-top: 52px; padding-bottom: 44px; }
  .ac-show { padding: 56px 0; }
  .ac-show-in { grid-template-columns: 1fr; gap: 28px; }
  .ac-show-flip .ac-show-text { order: 0; }
  .ac-mosaic { grid-template-rows: repeat(2, 130px); }
}
@media (max-width: 560px) {
  .ac-hero-stats strong { font-size: 2rem; }
  .ac-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 200px 110px 110px; }
  .acm-0 { grid-column: span 2; grid-row: auto; }
  .ac-facts div { grid-template-columns: 1fr; gap: 2px; }
  .acg { columns: 2; column-gap: 6px; }
  .acg-item { margin-bottom: 6px; }
  .acg-cap { display: none; }
  .acx-img { max-width: 100%; }
  .acx-nav { position: absolute; bottom: 74px; width: 46px; height: 46px; }
  .acx-prev { left: 16px; } .acx-next { right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .acm-tile img, .acg-item img, .acg-cap { transition: none; }
}

/* Approved Contractors banner (home + gallery, links to /contractors) */
.ac-band { background: var(--navy); border-top: 6px solid var(--grey); padding: 40px 0; color: var(--on-navy); }
.ac-band-row { display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; }
.ac-band-pics { display: grid; grid-template-columns: repeat(3, 96px); gap: 6px; }
.ac-band-pics img { width: 96px; height: 120px; object-fit: cover; }
.ac-band h2 { color: var(--white); font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin-bottom: .25em; }
.ac-band p { margin: 0; }
.ac-band .ac-kicker { margin-bottom: .4em; }
.ac-band-btn { white-space: nowrap; font-size: 1.05rem; padding: 16px 30px; }
@media (max-width: 900px) {
  .ac-band-row { grid-template-columns: 1fr; gap: 20px; }
  .ac-band-pics { grid-template-columns: repeat(3, 1fr); }
  .ac-band-pics img { width: 100%; height: 110px; }
  .ac-band-btn { white-space: normal; }
}

/* Approved Contractors: category headings, white logos, office list (2026-10-21) */
.ac-cat { background: var(--navy); border-top: 6px solid var(--grey); padding: 40px 0 34px; }
.ac-cat h2 { color: var(--white); margin-bottom: .2em; }
.ac-cat p { color: var(--on-navy); margin: 0; max-width: 40em; }
.ac-logo-dark { display: block; width: fit-content; background: var(--navy); padding: 12px 16px; }
.ac-logo-dark img { max-height: 60px; }
.ac-offices { background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--accent); padding: 26px 28px; }
.ac-show-flip .ac-offices { background: var(--white); }
.ac-offices h3 { margin: 0 0 .2em; font-size: 1.4rem; }
.ac-offices > p { color: var(--muted); margin: 0 0 1em; }
.ac-offices ul { list-style: none; margin: 0; padding: 0; columns: 2 200px; column-gap: 28px; }
.ac-offices li { break-inside: avoid; padding: 8px 0; border-top: 1px solid var(--line); }
.ac-offices li strong { display: block; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--navy); }
.ac-offices li span { display: block; font-size: .95rem; color: var(--ink); }

/* ---------- Precision page (precision.html) ---------- */
.award-certs-10 { grid-template-columns: repeat(5, 1fr); }
#hail .cap-photos { grid-template-columns: repeat(3, 1fr); margin-bottom: 28px; }
.pc-brochures { display: grid; grid-template-columns: repeat(2, minmax(0, 300px)); gap: 32px; }
.pc-brochure { display: block; color: var(--ink, #1a1a1a); text-decoration: none; }
.pc-brochure img { display: block; width: 100%; height: auto; box-shadow: 0 14px 40px rgba(17, 27, 49, .25); transition: transform .2s; margin-bottom: 14px; }
.pc-brochure:hover img { transform: translateY(-4px); }
.pc-brochure strong { display: block; color: var(--navy); font-size: 1.15rem; }
.pc-brochure span { display: block; color: var(--muted); font-size: .92rem; }
@media (max-width: 900px) { .award-certs-10 { grid-template-columns: repeat(3, 1fr); } #hail .cap-photos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .award-certs-10 { grid-template-columns: 1fr 1fr; } .pc-brochures { grid-template-columns: 1fr 1fr; gap: 16px; } }

/* ---------- Locations page + recent storms (2026-10-23) ---------- */
.utility-storm { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: var(--white) !important; font-weight: 700; text-decoration: none; padding: 2px 12px; white-space: nowrap; }
.utility-storm:hover { background: var(--accent-deep); }
.utility-storm .storm-dot { width: 8px; height: 8px; }
@media (max-width: 640px) { .utility-row > span:first-child { display: none; } .utility-storm { margin-left: 0; } }

.map-sec { background: var(--navy); border-bottom: 6px solid var(--grey); padding: 48px 0 40px; color: var(--on-navy); }
.map-sec h1 { color: var(--white); margin-bottom: .2em; }
.map-sec .eyebrow { color: #A8AFBB; }
.map-sec .lede { margin: 0; max-width: 40em; color: var(--on-navy); }
.map-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 26px; }
.map-stats { display: flex; gap: 28px; }
.map-stats b { display: block; font-family: var(--display); font-weight: 800; font-stretch: 112%; font-size: 2.6rem; line-height: 1; color: var(--white); }
.map-stats span { font-size: .9rem; text-transform: uppercase; letter-spacing: .08em; }
.map-shell { display: grid; grid-template-columns: 1fr 290px; gap: 18px; }
.map-stage { position: relative; background: var(--navy-deep); border: 1px solid var(--navy-soft); overflow: hidden; min-height: 240px; }
#us-map { display: block; width: 100%; height: auto; cursor: grab; }
#us-map:active { cursor: grabbing; }
.map-loading { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; }
.map-stage .land { fill: #163C6B; }
.map-stage .state { fill: transparent; cursor: pointer; transition: fill .2s; }
.map-stage .state:hover { fill: rgba(255,255,255,.08); }
.map-stage .counties { fill: none; stroke: rgba(255,255,255,.12); stroke-width: .25; vector-effect: non-scaling-stroke; pointer-events: none; opacity: 0; }
.map-stage .state-borders { fill: none; stroke: rgba(211,220,231,.5); stroke-width: .8; vector-effect: non-scaling-stroke; pointer-events: none; }
.pin { cursor: pointer; opacity: 0; animation: pin-in .5s ease-out forwards; animation-delay: var(--d, 0s); }
@keyframes pin-in { from { opacity: 0; } to { opacity: 1; } }
.pin .ring { fill: rgba(40,62,121,.28); }
.pin .core { fill: var(--grey); stroke: var(--white); stroke-width: 1; }
.pin .hit { fill: transparent; }
.pin-partner .ring { fill: rgba(255,255,255,.22); }
.pin-partner .core { fill: var(--white); stroke: var(--navy); }
.pin .lbl { fill: var(--white); font: 600 11px var(--body); paint-order: stroke; stroke: var(--navy-deep); stroke-width: 3px; opacity: 0; pointer-events: none; }
.map-stage.labels .pin .lbl, .pin.active .lbl { opacity: 1; }
.pin.active .core { fill: var(--white); stroke: var(--accent); stroke-width: 2; }
.pin.active .ring { fill: rgba(255,255,255,.35); }
@media (prefers-reduced-motion: reduce) { .pin { animation: none; opacity: 1; } }
.map-legend { position: absolute; left: 12px; bottom: 10px; display: flex; gap: 14px; font-size: .82rem; color: var(--on-navy); pointer-events: none; }
.map-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; border: 1px solid var(--white); }
.map-legend .lg-area { background: var(--grey); }
.map-legend .lg-partner { background: var(--white); border-color: var(--navy); }
.map-ui { position: absolute; right: 10px; top: 10px; display: flex; flex-direction: column; gap: 6px; }
.map-ui button { font: 700 1rem var(--body); min-width: 40px; height: 36px; background: var(--white); color: var(--navy); border: 0; cursor: pointer; }
.map-ui button:hover { background: var(--tint); }
.map-ui #map-reset { font-size: .78rem; }
.map-hint { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); background: rgba(0,0,0,.75); color: var(--white); font-size: .85rem; padding: 6px 12px; opacity: 0; transition: opacity .2s; pointer-events: none; white-space: nowrap; }
.map-hint.show { opacity: 1; }
.map-card { position: absolute; left: 14px; top: 14px; width: min(300px, calc(100% - 80px)); background: var(--white); color: var(--ink); border-top: 4px solid var(--accent); padding: 16px 18px; box-shadow: 0 10px 30px rgba(0,0,0,.35); opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
.map-card.show { opacity: 1; transform: none; }
.map-card-partner { border-top-color: var(--navy); }
.map-card p { margin: 0; }
.map-card .x { position: absolute; right: 6px; top: 4px; background: none; border: 0; font-size: 1.6rem; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px 8px; }
.c-kind { font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; color: var(--accent); }
.map-card-partner .c-kind { color: var(--navy-soft); }
.c-city { font-family: var(--display); font-weight: 800; font-size: 1.45rem; color: var(--navy); line-height: 1.15; margin: 2px 0 4px !important; }
.c-partner { font-weight: 700; }
.c-addr { color: var(--muted); font-size: .95rem; }
.c-phone { font-weight: 700; margin-top: 4px !important; }
.c-row { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.c-row .btn { padding: 9px 16px; font-size: .92rem; }
.map-list { background: var(--white); color: var(--ink); display: flex; flex-direction: column; max-height: 560px; }
.map-list-top { padding: 14px 14px 10px; border-bottom: 1px solid var(--line); }
.map-list-top label { display: block; font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .82rem; color: var(--navy); margin-bottom: 6px; }
.map-list-top input { width: 100%; font: inherit; padding: 9px 10px; border: 1px solid var(--line); }
#loc-count { display: block; font-size: .82rem; color: var(--muted); margin-top: 6px; }
#loc-list, #loc-list ul { list-style: none; margin: 0; padding: 0; }
#loc-list { overflow-y: auto; flex: 1; padding: 4px 0 10px; }
.lg-h { font-family: var(--display); font-weight: 700; color: var(--navy); margin: 10px 14px 2px; font-size: .95rem; }
.loc-btn { display: block; width: 100%; text-align: left; font: inherit; font-size: .95rem; background: none; border: 0; padding: 4px 14px 4px 24px; cursor: pointer; color: var(--ink); }
.loc-btn:hover, .loc-btn.on { background: var(--tint); color: var(--navy); }
.loc-btn.on { box-shadow: inset 3px 0 0 var(--accent); }
.loc-tag { font-size: .75rem; color: var(--muted); }
.loc-partner .loc-tag { color: var(--navy-soft); font-weight: 600; }
.map-note { margin: 16px 0 0; font-size: .92rem; }
.map-note a { color: var(--white); }
@media (max-width: 900px) {
  .map-shell { grid-template-columns: 1fr; }
  .map-list { max-height: 380px; }
  .map-legend { display: none; }
  .map-card { position: static; width: auto; box-shadow: none; transform: none; }
}

/* Home: storm strip, recent storms, locations band */
.storm-strip { display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--accent); color: var(--white); font-weight: 700; text-align: center; text-decoration: none; padding: 10px 22px; }
.storm-strip:hover { background: var(--accent-deep); color: var(--white); }
.home-storms { background: var(--white); border-bottom: 1px solid var(--line); padding: 56px 0; }
.home-storms-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.home-storms-head > div { max-width: 44em; }
.home-storms-head p:last-child { color: var(--muted); margin: 0; }
.hs-card { display: block; text-decoration: none; color: var(--ink); background: var(--paper); border-left: 6px solid var(--accent); padding: 22px 24px; transition: background .2s; }
.hs-card:hover { background: var(--tint); color: var(--ink); }
.hs-k, .storm-k { display: block; font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .82rem; color: var(--accent); margin-bottom: 6px; }
.hs-card h3 { font-size: 1.5rem; margin-bottom: .3em; }
.hs-card p { color: var(--muted); max-width: 50em; }
.hs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 900px) { .hs-grid { grid-template-columns: 1fr; } }
.hs-stats { display: flex; gap: 32px; flex-wrap: wrap; margin: 4px 0 12px; }
.hs-stats span { font-size: .9rem; color: var(--muted); }
.hs-stats b { display: block; font-family: var(--display); font-weight: 800; font-size: 1.9rem; color: var(--navy); line-height: 1.1; }
.hs-go { font-weight: 700; color: var(--navy); }
.hs-card:hover .hs-go { color: var(--accent); }
.loc-band { background: var(--navy); color: var(--on-navy); padding: 44px 0; }
.loc-band h2 { color: var(--white); margin-bottom: .2em; }
.loc-band p { margin: 0; }
.loc-band-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }

/* Storm page */
.storm-cols { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: start; }
.storm-box { background: var(--white); border-top: 4px solid var(--accent); padding: 22px 24px; }
.storm-box ul { padding-left: 1.2em; margin: 0 0 14px; }
.storm-box li { margin-bottom: 6px; }
.storm-box li::marker { color: var(--accent); }
.storm-areas { margin: 0; font-size: .95rem; color: var(--muted); }
.storm-map { height: 520px; background: var(--tint); border: 1px solid var(--line); z-index: 0; }
.storm-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 12px; font-size: .92rem; color: var(--muted); }
.storm-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.storm-legend .sl-wind { background: var(--white); border: 2px dashed var(--navy); }
.storm .timeline li { display: block; }
.storm .timeline b { display: block; font-family: var(--display); color: var(--navy); }
.news-list { list-style: none; margin: 0; padding: 0; }
.news-list li { border-bottom: 1px solid var(--line); }
.news-list a { display: block; padding: 12px 0; font-weight: 700; text-decoration: none; }
.news-list a span { display: block; font-weight: 600; font-size: .85rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.table-scroll { overflow-x: auto; background: var(--white); }
.storm-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.storm-table th, .storm-table td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.storm-table th { background: var(--navy); color: var(--white); font-weight: 700; }
.storm-table td:nth-child(-n+4) { white-space: nowrap; }
@media (max-width: 900px) { .storm-cols { grid-template-columns: 1fr; gap: 28px; } .storm-map { height: 420px; } }
.storm-legend .sl-box { border-radius: 0; border: 2px solid; }
.storm-legend .sl-tor, .tor-icon { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--navy); color: var(--white); font: 800 .8rem var(--display); border: 2px solid var(--white); box-shadow: 0 0 0 2px var(--accent); vertical-align: -5px; margin-right: 6px; }
.after-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; counter-reset: step; }
.after-steps li { background: var(--white); border-top: 4px solid var(--accent); padding: 18px; color: var(--muted); font-size: .95rem; counter-increment: step; }
.after-steps b { display: block; font-family: var(--display); color: var(--navy); font-size: 1.1rem; margin-bottom: 4px; }
.after-steps b::before { content: counter(step) ". "; color: var(--accent); }
@media (max-width: 900px) { .after-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .after-steps { grid-template-columns: 1fr; } }

/* ---------- Header dropdown menus (2026-10-23) ---------- */
.nav-item { position: relative; display: flex; align-items: center; align-self: stretch; }
.site-nav { align-self: stretch; }
.has-sub > .nav-top::after { content: " \25BE"; font-size: .7em; color: var(--accent); }
.sub-toggle { display: none; }
.sub { display: none; position: absolute; top: 100%; left: -18px; min-width: 240px; background: var(--white); border-top: 3px solid var(--accent); box-shadow: 0 12px 28px rgba(17,27,49,.22); padding: 8px 0; flex-direction: column; z-index: 40; }
.nav-item:hover > .sub, .nav-item:focus-within > .sub { display: flex; }
.site-nav .sub a { padding: 10px 18px; font-size: .95rem; box-shadow: none; }
.site-nav .sub a:hover { background: var(--paper); color: var(--accent); }
.site-nav .sub a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--accent); }
.site-nav .sub a.sub-all { color: var(--accent); }
@media (max-width: 1024px) {
  .nav-item { flex-wrap: wrap; align-self: auto; border-bottom: 1px solid var(--line); }
  .site-nav .nav-item > .nav-top { flex: 1; border-bottom: 0; }
  .has-sub > .nav-top::after { content: none; }
  .sub-toggle { display: inline-grid; place-items: center; width: 44px; height: 44px; background: none; border: 1px solid var(--line); color: var(--navy); cursor: pointer; }
  .sub-toggle::before { content: "+"; font: 700 1.3rem/1 var(--display); }
  .nav-item.open > .sub-toggle::before { content: "\2212"; }
  .nav-item:hover > .sub, .nav-item:focus-within > .sub { display: none; }
  .sub { position: static; flex-basis: 100%; box-shadow: none; border: 0; min-width: 0; padding: 0 0 10px 14px; }
  .nav-item.open > .sub { display: flex; }
  .site-nav .sub a { padding: 10px 0; border-bottom: 0; }
  .site-nav .sub a:hover { background: none; }
}
.ac-mosaic-1 { grid-template-columns: 1fr; }
.ac-mosaic-1 .acm-0 { grid-row: span 2; }
.local-band { background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 30px 0; }
.local-band-row { display: flex; align-items: center; gap: 28px; }
.local-logo { width: 190px; height: auto; flex: none; }
.local-copy { flex: 1; }
.local-copy h3 { font-size: 1.45rem; margin-bottom: .25em; }
.local-copy p { margin: 0 0 6px; color: var(--muted); }
.local-meta { font-size: .95rem; }
@media (max-width: 800px) { .local-band-row { flex-direction: column; align-items: flex-start; gap: 16px; } .local-logo { width: 160px; } }
.footer-partner-crew .pl-img { max-height: 54px; }

/* Footer: partners across the country (2026-10-24) */
.site-footer .footer-grid { grid-template-columns: 1.6fr 1fr; }
.footer-network { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--navy-soft); }
.fn-grid { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.fn-card { display: flex; flex-direction: column; gap: 2px; font-size: .88rem; line-height: 1.4; }
.fn-region { font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .74rem; color: #A8AFBB; margin-bottom: 6px; }
.fn-logo { display: flex; align-items: center; height: 58px; margin-bottom: 8px; }
.fn-logo img { max-height: 58px; max-width: 150px; width: auto; height: auto; }
.fn-name { color: var(--white); font-weight: 700; }
.fn-role { font-size: .8rem; opacity: .8; margin-bottom: 4px; }
.fn-note { font-size: .8rem; font-style: italic; opacity: .8; }
@media (max-width: 1100px) { .fn-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .fn-grid { grid-template-columns: 1fr 1fr; gap: 20px 16px; } .site-footer .footer-grid { grid-template-columns: 1fr; } }

/* ---------- About page: partner cards (#partner-grid, 2026-10-24) ---------- */
.partner-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pc { background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--navy); padding: 18px; display: flex; flex-direction: column; scroll-margin-top: 140px; }
.pc:target { border-top-color: var(--accent); box-shadow: 0 0 0 3px rgba(40, 62, 121, .18); }
.pc-logo { display: flex; align-items: center; justify-content: center; height: 92px; margin: -4px -4px 14px; padding: 10px; text-decoration: none; }
.pc-logo img { max-height: 72px; max-width: 100%; width: auto; object-fit: contain; }
.pc-logo-dark { background: var(--navy); }
.pc-name { font-family: "Saira", sans-serif; font-weight: 800; font-size: 1.2rem; color: var(--navy); text-align: center; line-height: 1.15; }
.pc-role { margin: 0 0 4px; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.pc h3 { margin: 0 0 6px; font-size: 1.08rem; }
.pc-meta { margin: 0 0 12px; font-size: .92rem; color: var(--muted); }
.pc-links { margin: auto 0 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-weight: 700; font-size: .92rem; }
@media (max-width: 1024px) { .partner-grid { grid-template-columns: repeat(2, 1fr); } }
/* Phones: compact cards, logo on the left */
@media (max-width: 520px) {
  .partner-grid { grid-template-columns: 1fr; gap: 12px; }
  .pc { display: grid; grid-template-columns: 96px 1fr; column-gap: 14px; padding: 14px; }
  .pc-logo { grid-row: 1 / span 4; height: auto; min-height: 72px; margin: 0; padding: 6px; align-self: start; }
  .pc-logo img { max-height: 56px; }
  .pc-name { font-size: .95rem; }
  .pc-meta { margin-bottom: 8px; font-size: .88rem; }
}

/* Home hero card foot: partner regions, links to about.html#partners (2026-10-26) */
.hcf-network { justify-content: space-between; transition: background .15s; }
.hcf-network:hover, .hcf-network:focus-visible { background: #071f3f; }
.hcf-network .hcf-text strong { white-space: normal; font-size: .95rem; }
.hcf-go { flex-shrink: 0; font-weight: 700; color: var(--white); border-bottom: 2px solid var(--grey); padding-bottom: 1px; }
@media (prefers-reduced-motion: reduce) { .hcf-network { transition: none; } }

/* ---------- SkyView rebrand additions ---------- */
.home-form-wrap { max-width: 680px; }
.footer-text-line { font-size: .9rem; color: var(--on-navy); }
.footer-id { font-size: .88rem; margin: 0 0 8px; color: var(--on-navy); }
.footer-logo { width: 240px; height: auto; aspect-ratio: 840 / 171; }
.hero-card-head img { width: 280px; height: auto; aspect-ratio: 840 / 171; }
.legal h2 { margin-top: 1.6em; }
