/* ── Static-port additions (Cloudflare rebuild, 2026-09) ──────────────
   Everything visual still comes from the original zeus stylesheets;
   this file only covers what the WP → static port changed:
   inline SVG icons replacing Font Awesome, the vanilla modal, the
   fetch()-based form status line, the Thornwood wordmark credit, and
   the widescreen-frame constraint for fixed chrome. */

/* Inline SVG icons stand in for the old Font Awesome <i> glyphs */
svg.icon { display: inline-block; vertical-align: -0.125em; }
.btn-arrow svg.icon { vertical-align: middle; }

/* The modal is driven by site.js using Bootstrap 3's own .in/.modal-open
   classes (bootstrap.min.css ships; Bootstrap JS does not) */
body.modal-open { overflow: hidden; }
.menu-btn { background: none; border: 0; padding: 0; }

/* Modal title is an h2 now (was h4 — caused a heading-level skip);
   style matches the old h4.modal-title rule exactly */
.modal-content h2.modal-title { font-size: 28px; line-height: 1.5; color: #2D1E0F; font-family: 'Oswald', sans-serif; font-weight: 700; margin-bottom: 5px; text-transform: none; }

/* Rules-acceptance row: label wraps checkbox + text so they sit on one line
   (the zeus width:100% input rules otherwise stretch a bare checkbox) */
.consent-label { display: flex; align-items: center; justify-content: flex-start; gap: 10px; cursor: pointer; text-align: left; margin: 0; font-weight: normal; }
.consent-label input[type="checkbox"] { width: 18px !important; min-width: 18px !important; height: 18px !important; max-width: 18px !important; flex: none; margin: 0 !important; padding: 0 !important; accent-color: #F7B506; }
.consent-label .consent { margin-left: 0; display: inline; }

/* Form status line (replaces the CF7 response output) */
.form-status { display: none; margin-top: 20px; padding: 10px 14px; border: 2px solid; font-family: 'Open Sans', sans-serif; font-size: 16px; }
.form-status.ok { display: block; border-color: #46b450; color: #2D1E0F; }
.form-status.err { display: block; border-color: #dc3232; color: #dc3232; }
form.qmf-form.sending .wpcf7-submit { opacity: .5; }

/* Privacy policy subheads were h3 under an h1 (level skip) — now h2,
   styled exactly like the old generic h3 */
.post_content h2 { font-size: 50px; font-weight: 500; }
@media (max-width: 767px) { .post_content h2 { font-size: 34px; } }

/* Thornwood footer credit — wordmark standard (light footer → purple SVG) */

/* Footer phone stays footer-colored, clickable */
a.footer-phone { color: inherit; text-decoration: underline; }

/* Widescreen frame: constrain fixed chrome to the 1920px canvas */
@media (min-width: 1921px) {
  #back-to-top { right: calc((100vw - 1920px) / 2 + 15px); }
}

/* Reduced motion — kill the marquee scroll and reveal animations */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .animate { opacity: 1 !important; transform: none !important; }
  .marquee-inner { animation: none !important; }
}

/* Hero heading swap (on-page SEO, 2026-10-10): the slogan is now a styled
   <p class="page-title"> and the topic line under it is the page's one <h1>
   (class hero-sub). These rules make each element look exactly like the one it
   replaced: style.css ".banner h1.page-title" and ".banner p", breakpoint for
   breakpoint. The privacy page keeps its own h1.page-title. */
.banner p.page-title { color: #2D1E0F; font-family: Oswald, sans-serif; font-size: 92px; line-height: 1.25; font-weight: 500; font-style: normal; letter-spacing: normal; text-transform: uppercase; max-width: 880px; margin: 0 0 10px; }
.banner p.page-title span { font-weight: 700; color: #F7B506; }
.banner h1.hero-sub { color: #2D1E0F; font-family: Oswald; font-size: 40px; font-style: normal; font-weight: 400; line-height: normal; letter-spacing: 1.6px; text-transform: uppercase; max-width: 880px; margin: 0 0 20px; }
@media (max-width: 1849px) { .banner p.page-title { font-size: 85px; } .banner h1.hero-sub { font-size: 35px; } }
@media (max-width: 1699px) { .banner p.page-title { font-size: 80px; line-height: 1.2; margin-bottom: 20px; } }
@media (max-width: 1499px) { .banner p.page-title { font-size: 70px; max-width: 680px; } .banner h1.hero-sub { font-size: 30px; } }
@media (max-width: 1299px) { .banner p.page-title { font-size: 60px; max-width: 570px; } }
@media (max-width: 1199px) { .banner p.page-title { font-size: 50px; max-width: 480px; } .banner h1.hero-sub { font-size: 25px; } }
@media (max-width: 1099px) { .banner h1.hero-sub { font-size: 24px; letter-spacing: .5px; } }
@media (max-width: 899px) { .banner p.page-title { font-size: 42px; max-width: 450px; } .banner h1.hero-sub { font-size: 22px; } }
@media (max-width: 799px) { .banner p.page-title { font-size: 45px; max-width: 450px; } }
@media (max-width: 749px) { .banner h1.hero-sub { font-size: 24px; max-width: 340px; } }
@media (max-width: 599px) { .banner p.page-title { font-size: 40px; max-width: 380px; } }
@media (max-width: 499px) { .banner p.page-title { font-size: 38px; } }
@media (max-width: 399px) { .banner p.page-title { font-size: 34px; } .banner h1.hero-sub { font-size: 20px; } }

/* ── Thornwood footer credit — ISLAND standard (2026-09-21). Generated by _infra/apply-footer-credit.mjs; re-run the script instead of hand-editing. ── */
.foot-credit{text-align:center;max-width:520px;margin:28px auto 0;padding:30px 0 44px;border-top:1px solid rgba(0,0,0,.12)}
.foot-credit-label{display:block;font-size:13px;font-weight:500;color:rgba(0,0,0,.5);margin:0 0 14px}
.foot-credit a{display:inline-block;opacity:.9;transition:opacity .25s ease,transform .25s ease;border:0;background:none}
.foot-credit a:hover,.foot-credit a:focus-visible{opacity:1;transform:translateY(-1px)}
.foot-credit a:focus-visible{outline:2px solid #2d1e0f;outline-offset:4px}
.foot-credit img.foot-credit-logo{display:block;height:clamp(34px,3vw,44px)!important;width:auto!important;max-width:none;max-height:none;margin:0 auto}
/* ── end Thornwood footer credit ── */
