/* Polish: gold accents, simpler trust badges, phone header, no decorative lines */
:root { --gold: #C9962A; --navy: #1B2A4A; }

/* Buttons: gold primary, gold outline secondary (text follows the theme) */
.btn-primary { background: var(--gold); color: var(--navy); border: 1px solid var(--gold); font-weight: 700; }
.btn-primary:hover { background: #b3841f; border-color: #b3841f; color: var(--navy); }
.btn-ghost { border-color: var(--gold); color: var(--ink); }
.btn-ghost:hover { border-color: #b3841f; }

.submit-btn { background: var(--gold); color: var(--navy); font-weight: 700; }
.submit-btn:hover { background: #b3841f; }

.kicker::before { content: ""; display: inline-block; width: 24px; height: 2px; background: var(--gold); vertical-align: middle; margin-right: 10px; }

/* Trust badges: plain text with a gold check */
.trust-badge { background: none; border: none; padding: 0; box-shadow: none; color: var(--ink); font-size: 13.5px; letter-spacing: 0.02em; font-weight: 500; }
.trust-badge::before { content: "\2713"; color: var(--gold); font-weight: 700; margin-right: 6px; }

/* Remove decorative background lines */
body { background-image: none !important; }
.section-line::after, .section-line::before { display: none !important; }

/* Phone header: keep the Menu button on screen */
@media (max-width: 720px) {
  .nav-logo { height: 30px; }
  .nav-mark { font-size: 12px; letter-spacing: 0.03em; }
  header .nav-cta { display: none; }
  header .nav-brand { display: flex; flex-direction: column; align-items: flex-start; }
  header .open-status { margin: 6px 0 0 0; }
}

/* ---------- Typography system ---------- */
/* Headings: regular-width Archivo, sentence case, tight spacing */
h1, h2, h3, .page-hero-title, .editorial-title {
  font-family: 'Archivo', sans-serif !important;
  text-transform: none !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}
h1, .page-hero-title { font-size: clamp(36px, 5.5vw, 56px) !important; line-height: 1.08 !important; }
h2, .editorial-title { font-size: clamp(28px, 3.6vw, 40px) !important; line-height: 1.15 !important; }
h3 { font-size: clamp(20px, 2vw, 24px) !important; line-height: 1.25 !important; font-weight: 600 !important; letter-spacing: -0.01em !important; }

/* Body text */
p, li { font-family: 'Inter', sans-serif; font-size: 17px; line-height: 1.65; letter-spacing: 0; }
@media (max-width: 720px) {
  p, li { font-size: 16px; line-height: 1.6; }
}

/* Small text and captions */
small, figcaption, .footer-legal { font-size: 14px; line-height: 1.5; }

/* Buttons: sentence case, slight tracking */
.btn, .btn-primary, .btn-ghost, .submit-btn {
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}

/* Eyebrow labels keep caps: they're the one place caps belong */
.kicker, .eyebrow, .page-hero-eyebrow, .editorial-kicker {
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}

/* Hero scale: larger headline on big screens, readable hero paragraph */
h1, .page-hero-title { font-size: clamp(36px, 5.5vw, 64px) !important; }
.hero p, .hero-sub { font-size: 17px !important; line-height: 1.65 !important; }
@media (max-width: 720px) {
  .hero p, .hero-sub { font-size: 16px !important; }
}

/* Performance: hero text shows immediately so the page loads its main content fast */
.hero h1, .hero p, .hero .eyebrow, .hero .kicker, .hero .hero-actions, .hero .proof, .hero .trust-row, .hero .page-hero-eyebrow {
  animation: none !important; opacity: 1 !important; transform: none !important;
}

/* Desktop link bar: visible links for computers only. Phones keep the Menu button. */
.desktop-links { display: none; }
@media (min-width: 721px) {
  header { flex-wrap: wrap; }
  .desktop-links {
    display: flex; flex-basis: 100%; width: 100%;
    justify-content: center; align-items: center; gap: 28px;
    padding: 10px 0 12px; border-top: 1px solid rgba(0,0,0,.08);
    order: 10;
  }
  .desktop-links a { font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none; letter-spacing: 0.01em; }
  .desktop-links a:hover, .desktop-links a:focus-visible { color: #b3841f; text-decoration: underline; text-underline-offset: 4px; }
  .desktop-links .has-sub { position: relative; }
  .desktop-links .sub {
    display: none; position: absolute; top: 100%; left: -10px; z-index: 50;
    min-width: 230px; padding: 8px; margin-top: 0;
    background: var(--bg); border: 1px solid rgba(0,0,0,.1); border-radius: 6px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
  }
  .desktop-links .sub a { display: block; padding: 9px 12px; font-weight: 500; white-space: nowrap; }
  .desktop-links .has-sub:hover .sub, .desktop-links .has-sub:focus-within .sub { display: block; }
}

/* Invisible bridge so the dropdown stays open while the mouse moves down to it */
@media (min-width: 721px) {
  .desktop-links .has-sub::after { content: ""; position: absolute; left: -10px; right: -10px; top: 100%; height: 14px; }
}

/* Phone menu: Post-Construction sits under Services as an indented link */
#nav-dropdown a.menu-sub { padding-left: 2.2rem; font-size: 0.95em; opacity: 0.85; }
/* Services page link list */
.service-links { list-style: none; padding: 0; margin: 0; }
.service-links li { border-bottom: 1px solid rgba(0,0,0,.08); }
.service-links a { display: block; padding: 16px 0; font-size: 18px; font-weight: 600; color: var(--ink); text-decoration: none; }
.service-links a:hover, .service-links a:focus-visible { color: #b3841f; }

/* Visual cleanup: remove the boxed look behind hero subtitle and motto */
.hero-sub, .motto { background: transparent !important; }

/* Softer hero watermark on phones so the headline reads cleanly */
@media (max-width: 720px) {
  .hero-watermark { opacity: 0.045; width: min(520px, 120vw); top: 40%; }
}

/* Remove the floating quote button on phones; the hero and the bottom call bar cover it */
@media (max-width: 720px) {
  .mobile-quote-btn { display: none !important; }
}

/* Sun divider between sections (brand detail from the logo) */
.sun-divider { display:flex; align-items:center; gap:12px; max-width:1120px; margin:8px auto; padding:0 20px; }
.sun-divider .sun-rule { flex:1; height:1px; background:#C9962A; opacity:0.5; }
.sun-divider svg { flex:0 0 auto; }

/* Extra breathing room after each sun divider, before the next section's label */
.sun-divider { margin-bottom: 36px; }

/* Protection cards: clearer borders in light and dark mode */
.protect-card { border: 1px solid #C9962A !important; }
html[data-theme="dark"] .protect-card { border-color: rgba(201,150,42,0.55) !important; }

/* Remove the light box that sat behind section headings */
h2 { background: transparent !important; }

/* Legal popup title is now an h2 for a clean heading outline */
.legal-modal-panel h2 {
    font-family: 'Archivo', sans-serif;
    font-size: 22px;
    font-weight: 600;
    margin: 0 0 18px;
    color: var(--ink);
    padding-right: 28px;
  }
