/* =========================================================  
   Zenith UI — Shared components for all interior pages
   Scope: .page (content), .faq (accordions), component classes
   Footer safety: nothing targets #site-footer
   ========================================================= */

/* ========== 0) Design tokens & safe resets ========== */
:root{
  --ui-radius: 14px;
  --ui-line: var(--line, #e5e7eb);
  --ui-bg: var(--surface, #ffffff);
  --ui-muted: var(--muted, #6b7280);
  --ui-shadow: 0 12px 28px rgba(2,12,32,.08);
  --ui-shadow-hover: 0 16px 34px rgba(2,12,32,.12);
  --ui-gap: 18px;
  -webkit-tap-highlight-color: transparent; /* better iOS taps */
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .page .btn,
  .page .actionbar .ab-btn,
  .page .card.hoverable { transition: none; }
}

/* ========== 1) Page layout, typography & text helpers ========== */
.page{ max-width:1040px; margin:24px auto; padding:0 16px; }

/* Section containers for consistent vertical rhythm */
.page .section{ margin: clamp(18px, 3vw, 28px) 0; }
.page .section-tight{ margin: 12px 0; }
.page .section-wide{ margin: clamp(28px, 5vw, 48px) 0; }

/* Fluid headings: readable on tiny phones and big screens */
.page h1{ font-size: clamp(1.6rem, 1.15rem + 2.2vw, 2.4rem); line-height:1.2; text-wrap: balance; }
.page h2{ font-size: clamp(1.3rem, 1.05rem + 1.3vw, 1.85rem); line-height:1.25; text-wrap: balance; }
.page h3{ font-size: clamp(1.06rem, .96rem + .65vw, 1.28rem); line-height:1.35; }

.page .lede{ font-size: clamp(1rem, .95rem + .4vw, 1.1rem); color:#334155; margin:.5rem 0 1.25rem; }
.page .muted{ color:var(--ui-muted); }

/* Centering + readable line widths */
.page .center{ text-align:center; }
.page .center-flex{ display:flex; justify-content:center; }
.page .narrow{ max-width: 820px; margin: 0 auto; }
.page .prose{ max-width: 72ch; margin: 0 auto; line-height:1.8; }

/* Clean wrapping: no mid-word breaks on phones */
.page *{
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Section anchors (for in-page links / sticky pills) */
.page .sys{ scroll-margin-top:88px; }
.page .sys small{ color:var(--ui-muted); }

/* ========== 2) Grid utilities (centered, responsive columns) ========== */
.page .grid{ display:grid; gap:var(--ui-gap); align-items:start; }
.page .grid.centered{ justify-items:center; }
.page .grid.cols-2{ grid-template-columns:1fr; }
.page .grid.cols-3{ grid-template-columns:1fr; }
.page .grid.auto-fit{ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

@media (min-width:700px){
  .page .grid.cols-2{ grid-template-columns:1fr 1fr; }
}
@media (min-width:960px){
  .page .grid.cols-3{ grid-template-columns:repeat(3,1fr); }
}

/* Split layout (image/text or icon/text) */
.page .split{ display:grid; gap:var(--ui-gap); align-items:center; grid-template-columns:1fr; }
.page .split.reverse{ direction:rtl; }
.page .split.reverse > *{ direction:ltr; }
@media (min-width:860px){
  .page .split{ grid-template-columns: 1.1fr .9fr; }
}

/* ========== 3) Cards ========== */
.page .card{
  background:var(--ui-bg);
  border:1px solid var(--ui-line);
  border-radius:var(--ui-radius);
  padding:18px;
  box-shadow:var(--ui-shadow);
}
.page .card.airy{ padding:22px 18px; }
.page .card.hoverable{
  transition: transform .12s ease, box-shadow .2s ease, border-color .2s ease;
}
.page .card.hoverable:hover{
  transform: translateY(-2px);
  box-shadow: var(--ui-shadow-hover);
  border-color: rgba(7,46,89,.12);
}
@media (max-width:480px){
  .page .card{ padding:14px; border-radius:12px; }
  .page .card.airy{ padding:18px 16px; }
}

/* ========== 4) Buttons & CTAs ========== */
.page .cta{ display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; }
.page .btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 16px; min-height:42px; font-size:1rem; /* prevents iOS zoom */
  border-radius:12px; font-weight:700; text-decoration:none;
  transition:transform .12s ease, box-shadow .2s ease,
             background-color .2s ease, color .2s ease, border-color .2s ease;
  outline:none;
}
.page .btn:focus-visible{ outline:3px solid rgba(247,148,29,.35); outline-offset:2px; }
.page .btn:hover{ transform:translateY(-1px); }
.page .btn-primary{ background:var(--zenith-orange,#f7941d); color:var(--zenith-navy,#072e59); }
.page .btn-primary:hover{ box-shadow:0 10px 20px rgba(247,148,29,.25); }
.page .btn-outline{
  border:2px solid var(--zenith-orange,#f7941d); color:var(--zenith-orange,#f7941d); background:transparent;
}
.page .btn-outline:hover{ background:rgba(247,148,29,.08); }

/* CTA band (full-width callout within .page width) */
.page .cta-band{
  border:1px solid var(--ui-line);
  border-radius:16px;
  padding:18px;
  background:linear-gradient(135deg,#fff,#f8fbff);
  box-shadow:var(--ui-shadow);
  display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
}
.page .cta-band .text{ flex:1 1 360px; }
.page .cta-band .actions{ display:flex; gap:10px; flex-wrap:wrap; }

/* ========== 5) Pill nav (quick jump) ========== */
.page .pillnav{ display:flex; flex-wrap:wrap; gap:8px; margin:.75rem 0 1rem; }
.page .pillnav a{
  border:1px solid var(--ui-line); border-radius:999px;
  padding:.45rem .75rem; text-decoration:none; color:var(--zenith-navy,#072e59);
}
.page .pillnav a:hover{ background:#f8fafc; }

/* Sticky pills under header (keeps nav handy) */
.page .sticky-pills{
  position:sticky; top:var(--header-offset, 64px);
  z-index:30; background:#fff; border-bottom:1px solid var(--ui-line); padding:8px 0;
}

/* ========== 6) Lists (generic & checklist) ========== */
.page .list{ margin:.5rem 0 .75rem .95rem; }
.page .list li{ margin:.25rem 0; }

.page .checklist{ list-style:none; margin:.5rem 0 .75rem 0; padding:0; }
.page .checklist li{ display:flex; gap:.5rem; align-items:flex-start; margin:.35rem 0; }
.page .checklist .tick{
  flex:0 0 auto; width:1.15rem; height:1.15rem; margin-top:.1rem;
  border-radius:999px; border:2px solid var(--zenith-orange,#f7941d);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.8rem; line-height:1; color:var(--zenith-orange,#f7941d);
}
.page .checklist.relaxed li{ margin:.6rem 0; line-height:1.55; }
.page .checklist.grid-2{ display:grid; grid-template-columns:1fr; gap:10px 18px; }
.page .checklist.grid-2 li{ margin:0; }
@media (min-width:560px){
  .page .checklist.grid-2{ grid-template-columns:1fr 1fr; }
}
.page .checklist.with-dividers li{ padding:8px 0; border-bottom:1px solid var(--ui-line); }
.page .checklist.with-dividers li:last-child{ border-bottom:0; }

/* ========== 7) Tips / callouts ========== */
.page .tip{
  font-size:.95rem; color:#334155; background:#f8fafc;
  border-left:4px solid var(--zenith-orange,#f7941d);
  padding:.75rem .9rem; border-radius:8px; margin:.75rem 0;
}

/* ========== 8) Tables ========== */
.page .table{ width:100%; border-collapse:separate; border-spacing:0; }
.page .table th, .page .table td{ border:1px solid var(--ui-line); padding:.6rem .7rem; vertical-align:top; }
.page .table th{ background:#f9fafb; text-align:left; }
@media (max-width:480px){
  .page .table th, .page .table td{ padding:.5rem .55rem; }
}

/* ========== 9) Media helpers (images/figures) ========== */
.page .media{ margin:1rem 0; }
.page .media img{ display:block; width:100%; height:auto; border-radius:12px; }
.page .media figcaption{ font-size:.9rem; color:var(--ui-muted); margin-top:.4rem; }

/* ========== 10) Hero block (shared page header) ========== */
.page .hero{
  background:linear-gradient(135deg,#f8fafc,#eef6ff);
  border:1px solid var(--ui-line);
  border-radius:18px;
  padding:24px 20px;
  box-shadow:0 12px 28px rgba(2,12,32,.06);
  margin:6px 0 18px;
  text-align:left;
}
.page .hero h1{ margin:0 0 .5rem; }
.page .hero-feats{ display:flex; flex-wrap:wrap; gap:8px; margin-top:.5rem; }
.page .chip{
  border:1px solid var(--ui-line);
  border-radius:999px; padding:.4rem .7rem; background:#fff; font-weight:600;
}

/* ========== 11) System micro-panels (small info cards) ========== */
.page .micro-grid{ display:grid; gap:12px; }
@media (min-width:860px){
  .page .micro-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.page .micro-grid.auto-fit{ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.page .micro{
  border-radius:12px; border:1px dashed var(--ui-line); padding:12px 14px; background:#fff;
}

/* ========== 12) Gallery grid ========== */
.page .gallery{ display:grid; gap:12px; grid-template-columns:1fr 1fr; }
.page .gallery img{ border-radius:12px; width:100%; height:auto; display:block; }
@media (max-width:640px){ .page .gallery{ grid-template-columns:1fr; } }

/* ========== 13) Service areas (columns) ========== */
.page .service-areas ul{ columns:2; gap:1rem; }
@media (max-width:640px){ .page .service-areas ul{ columns:1; } }

/* ========== 14) FAQ (scoped to avoid footer conflicts) ========== */
.page .faq details{
  border:1px solid var(--ui-line); border-radius:10px;
  padding:12px 14px; background:#fff;
}
.page .faq details + details{ margin-top:10px; }
.page .faq summary{ cursor:pointer; font-weight:700; color:#0f172a; }
.page .faq summary::-webkit-details-marker{ display:none; }

/* ========== 15) Mobile polish & horizontal scroll helpers ========== */
@media (max-width:700px){
  .page .pillnav{ overflow-x:auto; white-space:nowrap; gap:6px; padding-bottom:6px; -webkit-overflow-scrolling:touch; }
  .page .pillnav a{ display:inline-block; padding:.55rem .8rem; }
}

/* ========== 16) Bottom mobile action bar (Call / Text / Estimate) ========== */
.page .actionbar{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px;
  padding:8px max(8px, env(safe-area-inset-right))
           max(8px, env(safe-area-inset-bottom))
           max(8px, env(safe-area-inset-left));
  background:#fff; border-top:1px solid var(--ui-line);
  box-shadow:0 -10px 24px rgba(2,12,32,.08);
}
.page .actionbar .ab-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; border-radius:12px; font-weight:800; font-size:1rem;
  text-decoration:none; border:2px solid transparent;
  transition:transform .12s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.page .actionbar .ab-btn:focus-visible{ outline:3px solid rgba(247,148,29,.35); outline-offset:2px; }
.page .actionbar .ab-btn:hover{ transform:translateY(-1px); }
.page .actionbar .ab-btn.call{ background:var(--zenith-orange,#f7941d); color:#0b0b0b; }
.page .actionbar .ab-btn.text{ background:transparent; border-color:var(--zenith-orange,#f7941d); color:var(--zenith-orange,#f7941d); }
.page .actionbar .ab-btn.estimate{ background:var(--zenith-navy,#072e59); color:#fff; }
@media (min-width:821px){ .page .actionbar{ display:none; } } /* hide on larger screens */

/* ========== 17) iPhone 15 Pro Max & small phones (<=480px) ========== */
@media (max-width:480px){
  /* Safe space so content never hides behind action bar */
  .page{ padding:10px 12px; padding-bottom:calc(96px + env(safe-area-inset-bottom)); }

  /* Compact hero on phone */
  .page .hero{ border-radius:14px; padding:16px 14px; margin:8px 0 12px; }

  /* Chips & pills: smooth horizontal scroll */
  .page .hero-feats{
    display:grid; grid-auto-flow:column; grid-auto-columns:max-content;
    gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px;
    scroll-snap-type:x mandatory;
  }
  .page .chip{ white-space:nowrap; scroll-snap-align:start; }

  .page .sticky-pills{ padding:6px 0; }
  .page [id]{ scroll-margin-top:110px; } /* account for sticky header */

  /* Grids on phone */
  .page .grid.cols-2{ grid-template-columns:1fr; gap:12px; }
  .page .micro-grid{ grid-template-columns:1fr 1fr; gap:10px; } /* quick two-up scan */
  .page .gallery{ grid-template-columns:1fr; }

  /* Stack hero CTAs on mobile (if shown) */
  .page .cta .btn{ flex:1 1 100%; }
}

/* ========== 18) Ultra-small devices (<=360px / <=320px) ========== */
@media (max-width:360px){
  .page{ padding:8px 10px; }
  .page .hero{ padding:14px 12px; }
  .page .pillnav a{ padding:.5rem .7rem; }
  .page .micro-grid{ grid-template-columns:1fr; } /* avoid cramped two-up */
}

/* ========== 19) Minimal utilities (GLOBAL, no duplicates) ========== */
.page .center      { text-align: center; }
.page .center-flex { display: flex; justify-content: center; }
.page .narrow      { max-width: 820px; margin: 0 auto; }

/* ========== 20) Tiny devices (<=320px) ========== */
@media (max-width:320px){
  .page{ padding:6px 8px; }
  .page h1{ font-size: clamp(1.35rem, 1.1rem + 3vw, 1.6rem); }
}

/* ========== 21) Estimate form styles (scoped, safe on any page) ========== */
/* Scope to .estimate-form-block so it won't clash with other forms */
.page .estimate-form-block .zenith-card{
  background:#fff;
  border:1px solid var(--ui-line);
  border-radius:14px;
  padding:clamp(16px, 2.6vw, 26px);
  box-shadow:var(--ui-shadow);
}
.page .estimate-form-block .zenith-header{
  text-align:center;
  margin-bottom:clamp(12px, 2vw, 20px);
}
.page .estimate-form-block .form-title{
  margin:.25rem 0 0;
  color:#072e59;
  font-weight:800;
  font-size:clamp(1.2rem, 1.0rem + 1.2vw, 1.6rem);
  letter-spacing:.25px;
}
.page .estimate-form-block .form-subtitle{
  color:var(--ui-muted);
  margin:.35rem 0 0;
  font-size:clamp(.95rem, .9rem + .3vw, 1.05rem);
}
/* Grid */
.page .estimate-form-block .form-row{
  display:flex; flex-wrap:wrap; gap:14px; margin-bottom:14px;
}
.page .estimate-form-block .form-group{ flex:1; min-width:0; display:flex; flex-direction:column; gap:.45rem; }
.page .estimate-form-block .form-col-6{ flex:0 0 calc(50% - 7px); }
.page .estimate-form-block .form-col-4{ flex:0 0 calc(33.333% - 9.3px); }
@media (max-width:768px){
  .page .estimate-form-block .form-col-6,
  .page .estimate-form-block .form-col-4{ flex:0 0 100%; }
}
/* Labels */
.page .estimate-form-block label{ font-weight:600; font-size:.92rem; color:#334155; }
/* Inputs / selects / textareas */
.page .estimate-form-block input,
.page .estimate-form-block select,
.page .estimate-form-block textarea{
  width:100%;
  font-size:1rem;
  border:1px solid var(--ui-line);
  border-radius:10px;
  padding:.9rem .95rem;
  background:#fff;
  color:#0f172a;
  transition: box-shadow .15s ease, border-color .15s ease, transform .05s ease;
  box-shadow: var(--ui-shadow);
}
.page .estimate-form-block input::placeholder,
.page .estimate-form-block textarea::placeholder{
  color:#94a3b8; opacity:1; font-weight:500;
}
.page .estimate-form-block input:focus,
.page .estimate-form-block select:focus,
.page .estimate-form-block textarea:focus{
  outline:none;
  border-color:#072e59;
  box-shadow:0 0 0 3px rgba(7,46,89,.15), var(--ui-shadow);
}
/* Validation — default = orange hint */
.page .estimate-form-block input:invalid,
.page .estimate-form-block select:invalid,
.page .estimate-form-block textarea:invalid{
  border-color:#f7941d;
}
.page .estimate-form-block input:invalid:focus,
.page .estimate-form-block select:invalid:focus,
.page .estimate-form-block textarea:invalid:focus{
  box-shadow:0 0 0 3px rgba(247,148,29,.18), var(--ui-shadow);
}
/* 🔴 Upgrade to RED only after a failed submit (error box visible) */
.page .estimate-form-block form:has(.form-error-summary.show) input:invalid,
.page .estimate-form-block form:has(.form-error-summary.show) select:invalid,
.page .estimate-form-block form:has(.form-error-summary.show) textarea:invalid{
  border-color:#dc2626;
  box-shadow:0 0 0 3px rgba(220,38,38,.18), var(--ui-shadow);
}

/* File input */
.page .estimate-form-block input[type="file"]{
  padding:.55rem .75rem;
  box-shadow:none;
}
.page .estimate-form-block input[type="file"]::file-selector-button,
.page .estimate-form-block input[type="file"]::-webkit-file-upload-button{
  background:#f7941d; color:#fff; border:none;
  padding:.6rem .9rem; margin-right:.75rem; border-radius:10px; font-weight:700;
  cursor:pointer;
  transition:background .2s, box-shadow .2s, transform .08s;
  box-shadow:0 6px 18px rgba(247,148,29,.25);
}
.page .estimate-form-block input[type="file"]::file-selector-button:hover,
.page .estimate-form-block input[type="file"]::-webkit-file-upload-button:hover{
  background:#e9830b; box-shadow:0 10px 24px rgba(247,148,29,.35);
  transform:translateY(-1px);
}
/* Submit button (centered + not full-width) */
.page .estimate-form-block .zenith-btn{
  background:#f7941d; color:#0b0b0b; border:none;
  padding:1rem 1.25rem; font-size:1rem; font-weight:800; width:100%; max-width:360px;
  border-radius:12px; cursor:pointer; margin-inline:auto;
  transition:transform .08s, box-shadow .2s, background .2s;
  box-shadow:0 10px 24px rgba(247,148,29,.25);
}
.page .estimate-form-block .zenith-btn:hover{
  background:#e9830b; box-shadow:0 14px 28px rgba(247,148,29,.35);
  transform:translateY(-1px);
}
/* reCAPTCHA */
.page .estimate-form-block .recaptcha-container{
  display:flex; justify-content:center; align-items:center; width:100%;
  margin:.35rem 0 .35rem;
}
.page .estimate-form-block #recaptcha{ min-width:304px; min-height:78px; }
/* Disclaimer + compact error box */
.page .estimate-form-block .form-disclaimer{
  font-size:.85rem; color:#6b7280; margin-top:1rem; text-align:center; line-height:1.5;
}
.page .estimate-form-block .form-disclaimer a{ color:#f7941d; font-weight:800; text-decoration:none; }
.page .estimate-form-block .form-disclaimer a:hover{ text-decoration:underline; }
.page .estimate-form-block .form-error-summary{
  display:none;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#7c2d12;
  padding:.85rem 1rem;
  border-radius:10px;
  margin:0 0 1rem 0;
}
.page .estimate-form-block .form-error-summary.show{ display:block; }

/* ========== 22) A11y helpers & skip link ========== */
.sr-only{
  position:absolute !important;
  width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,1px,1px); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:12px; top:12px; width:auto; height:auto; z-index:1000;
  background:#072e59; color:#fff; padding:.6rem .9rem; border-radius:10px;
  box-shadow:0 8px 18px rgba(2,12,32,.25);
}

/* ========== 23) Comparison table (gutters page) ========== */
.page .comparison-table{ margin: .75rem 0 1rem; }
.page .comparison-table table{
  width:100%; border-collapse:separate; border-spacing:0;
  border:1px solid var(--ui-line);
  border-radius:12px; overflow:hidden; background:#fff;
  box-shadow: var(--ui-shadow);
}
.page .comparison-table caption{
  text-align:left; font-weight:800; padding:.7rem .8rem; color:#0f172a;
}
.page .comparison-table thead th{
  background:#f3f6fb; color:#0f172a; font-weight:800;
  border-bottom:1px solid var(--ui-line);
  padding:.65rem .75rem; text-align:left;
}
.page .comparison-table th[scope="row"]{
  background:#fafbfc; font-weight:700; width:34%;
}
.page .comparison-table td, 
.page .comparison-table th{
  padding:.65rem .75rem; border-bottom:1px solid var(--ui-line);
}
.page .comparison-table tbody tr:last-child td,
.page .comparison-table tbody tr:last-child th{
  border-bottom:0;
}
@media (max-width:560px){
  .page .comparison-table table{ font-size:.95rem; }
}
/* Modern Service Areas (scoped) */
.page .service-areas-modern .sa-head { margin-bottom: .6rem; }
.page .service-areas-modern .sa-title { margin: 0 0 .25rem; }

.page .service-areas-modern .chip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: .4rem 0 .2rem;
}

/* Chips */
.page .service-areas-modern .sa-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .6rem .85rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--ui-line);
  font-weight: 800;
  color: var(--zenith-navy, #072e59);
  transition: transform .12s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: var(--ui-shadow);
}
.page .service-areas-modern .sa-chip.strong {
  border-color: rgba(7,46,89,.2);
  box-shadow: 0 10px 24px rgba(7,46,89,.08);
}
.page .service-areas-modern .sa-chip:hover {
  transform: translateY(-1px);
  border-color: rgba(7,46,89,.22);
  box-shadow: var(--ui-shadow-hover);
}

/* Details / summary */
.page .service-areas-modern .sa-more { margin-top: .35rem; }
.page .service-areas-modern .sa-summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--zenith-navy, #072e59);
  padding: .4rem 0;
  list-style: none;
}
.page .service-areas-modern .sa-summary::marker { display: none; }
.page .service-areas-modern .sa-summary::-webkit-details-marker { display: none; }
.page .service-areas-modern .sa-summary::after {
  content: "▾";
  margin-left: .4rem;
  font-weight: 700;
  transition: transform .2s ease;
}
.page .service-areas-modern details[open] .sa-summary::after { transform: rotate(180deg); }

/* Compact on small phones */
@media (max-width: 480px) {
  .page .service-areas-modern .chip-grid { gap: 8px; }
  .page .service-areas-modern .sa-chip { padding: .55rem .75rem; }
}

/* --- Orange flashing pills with navy text (About) --- */
.link-chip {
  display:inline-flex; align-items:center;
  padding:.55rem .9rem; border-radius:9999px;
  font-weight:600; text-decoration:none; border:0;
  transition:transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}
.link-chip--orange-navy { background:#ff8a00; color:#0b2545; }
.link-chip--flash {
  box-shadow:0 0 0 0 rgba(255,138,0,.55);
  animation:chip-flash 1.2s ease-in-out infinite;
}
.link-chip--flash:hover { background:#ff7a00; transform:translateY(-1px); }
.link-chip--flash:active { transform:translateY(0); }
.link-chip--flash:focus-visible { outline:2px solid #0b2545; outline-offset:2px; }
/* kill any decorative arrows on pills in About */
.about-links .link-chip::after { content:none !important; }

@keyframes chip-flash {
  0%   { box-shadow:0 0 0 0 rgba(255,138,0,.55); }
  70%  { box-shadow:0 0 0 10px rgba(255,138,0,0); }
  100% { box-shadow:0 0 0 0 rgba(255,138,0,0); }
}
@media (prefers-reduced-motion: reduce) {
  .link-chip--flash { animation:none; }
}
/* === Real Estate pricing & cards (lightweight, brand-safe) === */
.price-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:1rem}
.price-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:1rem;box-shadow:0 6px 24px rgba(2,8,23,.06)}
.price-card h3{font-size:1.05rem;margin:.25rem 0 .35rem}
.price{font-weight:800;font-size:1.35rem}
.badge{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;padding:.22rem .55rem;border:1px solid #e5e7eb}
.badge--accent{border-color:var(--zenith-orange-600,#fb923c)}
.small-note{font-size:.86rem;color:#475569}
.checklist{margin:.5rem 0 0 0;padding:0;list-style:none}
.checklist li{display:flex;gap:.5rem;margin:.35rem 0}
.btn-outline{display:inline-flex;align-items:center;gap:.5rem;border:1px solid #e5e7eb;border-radius:999px;padding:.55rem .9rem;font-weight:700}
.btn-outline:hover{border-color:#cbd5e1}
.section-note{font-size:.9rem;color:#475569;margin-top:.75rem}
.pricing-subtle{font-size:.82rem;color:#64748b}
.divider{height:1px;background:#e5e7eb;margin:.85rem 0}
/* ===== Service V2 (light, consistent with other Services pages) ===== */

/* Light hero (matches your Services look) */
.service-hero{
  background:#f8fafc; /* light slate */
  border-bottom:1px solid #e5e7eb;
  padding:42px 0 28px;
}
.service-eyebrow{
  text-transform:uppercase; letter-spacing:.12em; font-weight:800; color:#64748b; margin-bottom:.25rem;
}
.service-hero .hero-title{ color:#0f172a; margin:.15rem 0 .35rem; }
.service-hero .hero-subtitle{ color:#334155; max-width:60ch; line-height:1.6; }

/* Hero split with mini photo (mobile-first) */
.hero-grid{ display:block; }
.hero-photo{ margin-top:1rem; }
.photo-card{
  position:relative; overflow:hidden; border-radius:18px;
  border:1px solid #e5e7eb; background:#fff;
  box-shadow:0 16px 40px rgba(2,8,23,.10);
}
.photo-card img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.photo-caption{
  position:absolute; left:12px; bottom:12px;
  background:rgba(255,255,255,.92); border:1px solid #e5e7eb; color:#0b1324;
  font-weight:800; font-size:.78rem; border-radius:10px; padding:.3rem .55rem;
}

/* Sticky subnav (light) */
.subnav{
  position:sticky; top:var(--header-height,72px); z-index:30;
  background:rgba(255,255,255,.92); backdrop-filter:saturate(1.1) blur(8px);
  border-bottom:1px solid #e5e7eb;
}
.subnav-inner{ display:flex; gap:.5rem; flex-wrap:wrap; padding:.6rem 0; }
.subnav a{
  display:inline-flex; align-items:center; gap:.35rem; font-weight:700;
  border:1px solid #e5e7eb; border-radius:999px; padding:.45rem .8rem; color:#0f172a;
}
.subnav a:hover{ border-color:#cbd5e1; }

/* Section polish (keeps your existing .light-section spacing) */
.section-kicker{ text-transform:uppercase; font-weight:800; letter-spacing:.12em; color:#64748b; margin-bottom:.25rem; }
.section-title{ margin-top:.2rem; }
.section-lede{ color:#334155; max-width:65ch; line-height:1.65; }

/* Premium but subtle cards, consistent with Services */
.grid-auto{ display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.card{
  border:1px solid #e5e7eb; border-radius:16px; background:#fff;
  box-shadow:0 6px 18px rgba(2,8,23,.08); padding:1rem;
}
.card h3{ margin:.25rem 0 .35rem; color:#0f172a; }
.card .small-note{ color:#475569; }
.card .checklist{ list-style:none; padding:0; margin:.5rem 0 0; }
.card .checklist li{ display:flex; gap:.5rem; margin:.32rem 0; }
.card .checklist li::before{ content:"✓"; font-weight:900; color:#0f172a; }

/* CTA buttons aligned with brand */
.btn-solid{
  display:inline-flex; align-items:center; gap:.5rem; font-weight:800;
  border-radius:999px; padding:.6rem 1rem; border:1px solid transparent;
  background:linear-gradient(180deg, #fb923c, #f97316); color:#0b1324;
}
.btn-solid:hover{ filter:brightness(1.05); }
.btn-outline{ display:inline-flex; align-items:center; gap:.5rem; font-weight:800; border:1px solid #e5e7eb; border-radius:999px; padding:.6rem 1rem; color:#0f172a; }
.btn-outline:hover{ border-color:#cbd5e1; }

/* Responsive layout */
@media (min-width: 980px){
  .hero-grid{ display:grid; grid-template-columns:1.35fr .9fr; gap:1.4rem; align-items:start; }
  .hero-photo{ margin-top:0; }
}
/* ==== Services Catalog (brand-safe, consistent with Services pages) ==== */
.catalog-hero{
  background:#f8fafc;
  border-bottom:1px solid #e5e7eb;
  padding:42px 0 28px;
}
.catalog-eyebrow{ text-transform:uppercase; letter-spacing:.12em; font-weight:800; color:#64748b; margin-bottom:.25rem; }
.catalog-hero .hero-title{ color:#0f172a; margin:.15rem 0 .35rem; }
.catalog-hero .hero-subtitle{ color:#334155; max-width:65ch; line-height:1.65; }

.catalog-subnav{
  position:sticky; top:var(--header-height,72px); z-index:30;
  background:rgba(255,255,255,.92); backdrop-filter:saturate(1.1) blur(8px);
  border-bottom:1px solid #e5e7eb;
}
.catalog-subnav .inner{ display:flex; gap:.5rem; flex-wrap:wrap; padding:.6rem 0; }
.catalog-subnav a{
  display:inline-flex; align-items:center; gap:.35rem; font-weight:700; color:#0f172a;
  border:1px solid #e5e7eb; border-radius:999px; padding:.45rem .8rem;
}
.catalog-subnav a:hover{ border-color:#cbd5e1; }

.catalog-grid{ display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.service-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:1rem;
  box-shadow:0 6px 18px rgba(2,8,23,.08);
}
.service-card h3{ margin:.15rem 0 .35rem; color:#0f172a; }
.service-card p{ color:#475569; }
.service-meta{ font-size:.86rem; color:#64748b; }
.service-actions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.7rem; }
.btn-solid{
  display:inline-flex; align-items:center; gap:.5rem; font-weight:800;
  border-radius:999px; padding:.6rem 1rem; border:1px solid transparent;
  background:linear-gradient(180deg, #fb923c, #f97316); color:#0b1324;
}
.btn-solid:hover{ filter:brightness(1.05); }
.btn-outline{ display:inline-flex; align-items:center; gap:.5rem; font-weight:800; border:1px solid #e5e7eb; border-radius:999px; padding:.6rem 1rem; color:#0f172a; }
.btn-outline:hover{ border-color:#cbd5e1; }

.section-kicker{ text-transform:uppercase; font-weight:800; letter-spacing:.12em; color:#64748b; margin-bottom:.35rem; }
.section-title{ margin-top:.15rem; }
.section-lede{ color:#334155; max-width:65ch; line-height:1.65; margin-bottom:.6rem; }

/* Tiny scrollspy cue */
.catalog-subnav a.is-active{ border-color:#94a3b8; }

/* Responsive helpers */
@media (min-width: 980px){
  .catalog-hero .stack{ display:grid; grid-template-columns:1.5fr .9fr; gap:1.4rem; align-items:start; }
}
