/* ============================================================
   Terrapin Insurance Group — Sitewide Redesign Overrides (July 2026)
   Loaded AFTER each page's inline styles. Brings every page in
   line with the new homepage design: Satoshi typography, glass
   nav, pill buttons, sliding-underline nav links.
   ============================================================ */

/* Typography */
body, button, input, select, textarea {
  font-family: 'Satoshi', ui-sans-serif, system-ui, -apple-system, sans-serif !important;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .section-title, .hero h1 {
  font-family: 'Satoshi', ui-sans-serif, system-ui, sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: -.03em;
}
::selection { background: #7ad4a3; color: #0d2118; }

/* Top bar */
.top-bar { background: #0d2118 !important; }

/* Nav — glass bar */
.nav {
  background: rgba(255,255,255,.82) !important;
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  border-bottom: 1px solid rgba(45,122,85,.16) !important;
}

/* Nav links — sliding underline (top level only; dropdowns keep their menus) */
.nav-links > a, .nav-links .nav-dropdown > a {
  position: relative;
  font-size: 16.5px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em;
  text-decoration: none !important;
}
.nav-links > a::after, .nav-links .nav-dropdown > a::after {
  transition: none;
}
.nav-links > a:not(.nav-cta)::before {
  content: '';
  position: absolute;
  left: 0; right: 100%; bottom: -2px;
  height: 2px; border-radius: 2px;
  background: #2d7a55;
  transition: right .25s ease;
}
.nav-links > a:not(.nav-cta):hover::before { right: 0; }
.nav-links > a:hover { color: #1a4f3a !important; text-decoration: none !important; }

/* Pill buttons */
.nav-cta, .btn-primary, .btn-secondary, .hero-btn-quote, .hero-btn-call,
.cov-cta, .blog-view-all, .quote-submit, .form-next, .form-back, .sr-submit {
  border-radius: 100px !important;
}
.nav-cta { font-weight: 700 !important; }
.nav-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(26,79,58,.25); }

/* Cards & sections — soften corners slightly where the old 10-12px was used */
.blog-card, .test-card, .step, .team-card, .cov-card { border-radius: 20px !important; }
.blog-card:hover { background: #e8f4ee; }

/* Quick-nav pills and coverage pills stay rounded */
.coverage-pill, .quick-nav-link { border-radius: 100px !important; }

/* Footer */
footer, .footer { background: #0d2118; }

/* ============================================================
   Large-screen scale-up (all pages) — July 2026
   The homepage has its own tuned @media rules in index.html;
   this file is not loaded there, so no double-scaling occurs.
   `zoom` scales the whole layout proportionally on wide
   monitors so pages fill the screen like the design mockups.
   ============================================================ */
@media (min-width: 1500px) {
  body { zoom: 1.15; }
}
@media (min-width: 2200px) {
  body { zoom: 1.28; }
}

/* ============================================================
   Shared sitewide footer (matches homepage) — July 2026
   ============================================================ */
footer{background:#0d2118 !important;color:#fff;padding:72px 40px 36px !important;margin-top:64px}
.foot{max-width:1200px;margin:0 auto}
.foot-top{display:grid;grid-template-columns:minmax(480px,2fr) 1fr 1fr 1.2fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand img{height:72px;margin:0 0 16px;background:#fff;border-radius:12px;padding:8px 14px;display:block}
.foot-brand p{font-size:12.5px;color:rgba(255,255,255,.55);line-height:1.65;font-weight:500;max-width:48ch}
.foot h3{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:16px}
.foot a{display:block;font-size:14px;font-weight:500;color:rgba(255,255,255,.78);text-decoration:none;margin-bottom:9px;transition:color .2s}
.foot a:hover{color:#7ad4a3}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:26px;font-size:12.5px;color:rgba(255,255,255,.4);font-weight:500}
.foot-badges{display:flex;flex-wrap:nowrap;gap:8px;margin-top:18px}
.foot-badge{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.05);border-radius:10px;padding:8px 15px;font-size:12.5px;font-weight:700;color:rgba(255,255,255,.85);white-space:nowrap}
.foot-line{display:block;font-size:14px;font-weight:500;color:rgba(255,255,255,.78);margin-bottom:9px}
.foot-line.muted{color:rgba(255,255,255,.45)}
.foot-bottom-links{display:inline-flex;gap:22px;flex-wrap:wrap}
.foot-bottom-links a{display:inline;margin:0;font-size:12.5px;color:rgba(255,255,255,.55)}
.foot-bottom-links a:hover{color:#7ad4a3}
@media(max-width:980px){
  .foot-top{grid-template-columns:1fr}
  .foot-badges{flex-wrap:wrap}
  footer{padding:56px 24px 32px !important}
}

/* Quote forms — headings match homepage display type (Satoshi heavy) */
.card-title, .success-title, .progress-label {
  font-family: 'Satoshi', ui-sans-serif, system-ui, sans-serif !important;
}
.card-title, .success-title {
  font-weight: 900 !important;
  letter-spacing: -.03em;
}

/* Quote forms — required-field validation states */
.field-error input, .field-error textarea, .field-error select{border-color:#d9534f !important;background:#fdf3f3 !important}
.field-error > label:first-child{color:#c0392b !important}
.field-error .radio-pills, .field-error .check-pills{outline:2px solid rgba(217,83,79,.6);outline-offset:4px;border-radius:10px}
.req-alert{display:none;background:#fdecea;border:1.5px solid #d9534f;color:#b02a26;border-radius:12px;padding:12px 16px;font-size:13.5px;font-weight:600;margin-top:18px;line-height:1.5}

/* Quote form headings — display size to match homepage headings */
.card-title{font-size:30px !important;line-height:1.1}
