/*
Theme Name: Nova Scotia Construction Loan
Theme URI: https://novascotiaconstructionloan.com/
Author: aroi
Author URI: https://aroi.ca/
Description: Classic PHP WordPress theme for Nova Scotia Construction Loan. Navy & gold construction-financing landing pages with a form card that renders your forms plugin's shortcode. All page content is editable through Advanced Custom Fields, using Repeater fields for hero bullets, program cards, process steps, trust badges, FAQ accordions and contact methods.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nsc-loan
Tags: custom-logo, custom-menu, featured-images, translation-ready, one-column, landing-page
*/

/* ------------------------------------------------------------------
   Sections below are the original site stylesheet, unchanged, plus a
   small WordPress-specific block at the very end (admin bar, alignment
   classes, editor output).
   ------------------------------------------------------------------ */

/* ============================================================
   Nova Scotia Construction Loan — Navy & Gold theme
   Modeled on modern contractor / fintech landing pages:
   navy gradient hero with diagonal cut, gold pill CTAs,
   floating white form card, soft light-blue sections.

   Palette
   --navy-900 #0B1E3F   darkest navy (topbar, footer)
   --navy-700 #14346B   hero gradient start
   --blue-500 #2B6BD9   hero gradient end / links
   --gold     #F2B33D   CTAs & accents
   --sky      #F3F7FC   light section background
   ============================================================ */

:root {
  --navy-900: #0B1E3F;
  --navy-700: #14346B;
  --navy-600: #1B448C;
  --blue-500: #2B6BD9;
  --blue-100: #DCE8F8;
  --gold: #F2B33D;
  --gold-dark: #DE9F26;
  --sky: #F3F7FC;
  --white: #FFFFFF;
  --text: #26354C;
  --text-dim: #5B6B84;
  --text-on-navy: #FFFFFF;
  --text-dim-navy: #C4D3EC;
  --danger: #C94F3D;
  --radius: 16px;
  --pill: 999px;
  --shadow: 0 18px 45px rgba(11, 30, 63, 0.16);
  --shadow-soft: 0 8px 24px rgba(11, 30, 63, 0.08);
  --maxw: 1140px;
  --heading: "Plus Jakarta Sans", "Segoe UI", sans-serif;
  --body: "Nunito Sans", "Segoe UI", sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  font-family: var(--body);
  color: var(--text);
  background: var(--white);
  line-height: 1.65;
  font-size: 16.5px;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: var(--blue-500); }

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

/* ---------- Type ---------- */
h1, h2, h3, h4 {
  font-family: var(--heading);
  font-weight: 800;
  line-height: 1.15;
  color: var(--navy-900);
}
h1 { font-size: clamp(2.2rem, 4.6vw, 3.4rem); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.5rem); letter-spacing: -0.015em; }
h3 { font-size: 1.25rem; }

.on-navy h1, .on-navy h2, .on-navy h3 { color: var(--white); }

.eyebrow {
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 14px;
}
.eyebrow.blue { color: var(--blue-500); }

.lede { font-size: 1.1rem; color: var(--text-dim); max-width: 58ch; }
.on-navy .lede { color: var(--text-dim-navy); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--heading);
  font-weight: 700;
  font-size: 1rem;
  padding: 15px 32px;
  border-radius: var(--pill);
  border: 2px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.btn-gold {
  background: var(--gold);
  color: var(--navy-900);
  box-shadow: 0 8px 20px rgba(242, 179, 61, 0.35);
}
.btn-gold:hover { background: var(--gold-dark); transform: translateY(-2px); }
.btn-outline-light { border-color: rgba(255, 255, 255, 0.45); color: var(--white); }
.btn-outline-light:hover { border-color: var(--gold); color: var(--gold); }
.btn-outline-navy { border-color: var(--blue-100); color: var(--navy-700); background: var(--white); }
.btn-outline-navy:hover { border-color: var(--blue-500); }

/* ---------- Topbar ---------- */
.topbar {
  background: var(--navy-900);
  color: var(--white);
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  padding: 9px 16px;
}
.topbar a { color: var(--gold); text-decoration: none; }
.topbar a:hover { text-decoration: underline; }

/* ---------- Header ---------- */
header.site {
  background: var(--white);
  box-shadow: 0 2px 12px rgba(11, 30, 63, 0.07);
  position: sticky;
  top: 0;
  z-index: 50;
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 24px;
  max-width: var(--maxw);
  margin: 0 auto;
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand img { width: 232px; height: auto; }
@media (max-width: 480px) { .brand img { width: 188px; } }
.brand-mark {
  width: 44px; height: 44px;
  background: linear-gradient(135deg, var(--navy-700), var(--blue-500));
  border-radius: 10px;
  display: grid;
  place-items: center;
  font-family: var(--heading);
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--gold);
  flex-shrink: 0;
}
.brand-name {
  font-family: var(--heading);
  font-weight: 800;
  font-size: 1.02rem;
  line-height: 1.15;
  color: var(--navy-900);
}
.brand-name small {
  display: block;
  font-family: var(--body);
  font-weight: 600;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  color: var(--text-dim);
}
.nav-links { display: flex; align-items: center; gap: 26px; list-style: none; }
.nav-links a {
  color: var(--text);
  text-decoration: none;
  font-family: var(--heading);
  font-weight: 600;
  font-size: 0.93rem;
}
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--blue-500); }
.nav .btn { padding: 11px 24px; font-size: 0.92rem; }
@media (max-width: 800px) { .nav-links { display: none; } }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  color: var(--white);
  background:
    radial-gradient(ellipse at 80% -10%, rgba(43, 107, 217, 0.55), transparent 55%),
    linear-gradient(128deg, var(--navy-900) 0%, var(--navy-700) 45%, var(--blue-500) 115%);
  padding: 84px 0 130px;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 64px));
  overflow: hidden;
}
@media (max-width: 900px) {
  .hero { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 32px)); padding-bottom: 96px; }
}
/* dotted accent pattern */
.hero::before {
  content: "";
  position: absolute;
  width: 220px; height: 220px;
  left: -40px; bottom: 60px;
  background-image: radial-gradient(rgba(255, 255, 255, 0.22) 2px, transparent 2px);
  background-size: 18px 18px;
  pointer-events: none;
}
.hero::after {
  content: "";
  position: absolute;
  width: 180px; height: 180px;
  right: 6%; top: 40px;
  background-image: radial-gradient(rgba(242, 179, 61, 0.35) 2px, transparent 2px);
  background-size: 18px 18px;
  pointer-events: none;
}
.hero .container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 60px;
  align-items: start;
}

/* hero logo chip (non-fixed brand placement) */
.hero-brand {
  display: inline-block;
  background: var(--white);
  padding: 10px 18px;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(11, 30, 63, 0.28);
  margin-bottom: 30px;
}
.hero-brand img { display: block; width: 218px; height: auto; }
@media (max-width: 480px) { .hero-brand img { width: 184px; } }
@media (max-width: 900px) {
  .hero .container { grid-template-columns: 1fr; gap: 44px; }
}

.hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0 32px; }

.hero-points { list-style: none; display: grid; gap: 14px; }
.hero-points li {
  display: flex;
  gap: 14px;
  align-items: center;
  font-family: var(--heading);
  font-weight: 700;
  font-size: 1rem;
  color: var(--white);
}
.hero-points .ico {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
  display: grid;
  place-items: center;
  color: var(--gold);
  font-size: 0.95rem;
  flex-shrink: 0;
}

.hero p.hero-lede { margin-top: 18px; font-size: 1.08rem; color: var(--text-dim-navy); max-width: 54ch; }

/* ---------- Sections ---------- */
section.band { padding: 88px 0; }
section.band.sky { background: var(--sky); }
section.band.navy {
  background: linear-gradient(135deg, var(--navy-900), var(--navy-700));
  color: var(--white);
}
.band-head { max-width: 660px; margin-bottom: 48px; }
.band-head.center { margin-left: auto; margin-right: auto; text-align: center; }

/* card grids */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
@media (max-width: 1020px) { .grid-5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 940px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grid-5 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .grid-3, .grid-4, .grid-5 { grid-template-columns: 1fr; } }

.card {
  background: var(--white);
  border-radius: var(--radius);
  padding: 30px 26px;
  box-shadow: var(--shadow-soft);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.card h3 { margin-bottom: 10px; }
.card p { color: var(--text-dim); font-size: 0.96rem; }
.card .icon {
  width: 58px; height: 58px;
  border-radius: 14px;
  background: var(--sky);
  display: grid;
  place-items: center;
  margin-bottom: 18px;
}
.card .icon img { width: 30px; height: 30px; object-fit: contain; }
.card .icon.navy-chip { background: linear-gradient(135deg, var(--navy-700), var(--blue-500)); }
.card.compact { padding: 26px 22px; }
.card.compact .icon { width: 52px; height: 52px; margin-bottom: 16px; }
.card.compact h3 { font-size: 1.05rem; line-height: 1.3; }
.card .cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--blue-500);
  text-decoration: none;
}
.card .cta:hover { color: var(--navy-700); text-decoration: underline; }

/* photo program cards */
.card.photo { padding: 0; overflow: hidden; }
.card.photo img.cover { width: 100%; height: 170px; object-fit: cover; }
.card.photo .inner { padding: 22px 24px 26px; }

/* navy band cards */
.navy .card {
  background: rgba(255, 255, 255, 0.07);
  box-shadow: none;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.navy .card h3 { color: var(--white); }
.navy .card p { color: var(--text-dim-navy); }
.navy .card .icon { background: rgba(255, 255, 255, 0.1); }

/* numbered process cards */
.howit { counter-reset: how; }
.howit .card { position: relative; padding-top: 34px; }
.howit .card::before {
  counter-increment: how;
  content: counter(how);
  position: absolute;
  top: -20px;
  left: 24px;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy-900);
  font-family: var(--heading);
  font-weight: 800;
  display: grid;
  place-items: center;
  box-shadow: 0 6px 14px rgba(242, 179, 61, 0.4);
}

/* checklist columns */
.solutions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 44px;
  list-style: none;
}
@media (max-width: 640px) { .solutions { grid-template-columns: 1fr; } }
.solutions li {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  font-family: var(--heading);
  font-weight: 600;
  color: var(--white);
}
.sky .solutions li { border-bottom-color: var(--blue-100); color: var(--navy-900); }
.solutions .ico {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: rgba(242, 179, 61, 0.18);
  color: var(--gold);
  display: grid;
  place-items: center;
  font-size: 0.85rem;
  flex-shrink: 0;
}
.sky .solutions .ico { background: var(--blue-100); color: var(--blue-500); }

/* stat trio */
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; text-align: center; }
@media (max-width: 640px) { .stats { grid-template-columns: 1fr; } }
.stat {
  background: var(--white);
  border-radius: var(--radius);
  padding: 34px 20px;
  box-shadow: var(--shadow-soft);
}
.stat .num {
  font-family: var(--heading);
  font-weight: 800;
  font-size: 2.9rem;
  color: var(--blue-500);
  line-height: 1;
}
.stat .num small { font-size: 1.3rem; color: var(--gold-dark); }
.stat .lbl {
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.86rem;
  color: var(--text-dim);
  margin-top: 10px;
}

/* feature rows (building page) */
.feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
  padding: 56px 0;
}
.feature-row + .feature-row { border-top: 1px solid var(--blue-100); }
@media (max-width: 860px) { .feature-row { grid-template-columns: 1fr; gap: 30px; } }
.feature-row h3 { font-size: 1.65rem; margin-bottom: 14px; }
.feature-row p { color: var(--text-dim); margin-bottom: 14px; }
.feature-row ul { list-style: none; display: grid; gap: 12px; }
.feature-row ul li {
  display: flex;
  gap: 12px;
  align-items: center;
  font-weight: 600;
  color: var(--text);
}
.feature-row .ico {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--blue-100);
  color: var(--blue-500);
  display: grid;
  place-items: center;
  font-size: 0.8rem;
  flex-shrink: 0;
}

/* highlight panel */
.spec-panel {
  background: linear-gradient(135deg, var(--navy-700), var(--blue-500));
  color: var(--white);
  border-radius: 18px;
  padding: 34px 32px;
  box-shadow: var(--shadow);
  position: relative;
  overflow: hidden;
}
.spec-panel::after {
  content: "";
  position: absolute;
  width: 160px; height: 160px;
  right: -30px; bottom: -30px;
  background-image: radial-gradient(rgba(255, 255, 255, 0.25) 2px, transparent 2px);
  background-size: 16px 16px;
}
.spec-panel .kicker {
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.spec-panel .big {
  font-family: var(--heading);
  font-weight: 800;
  font-size: 2.6rem;
  line-height: 1.05;
}
.spec-panel .sub { color: var(--text-dim-navy); font-size: 0.95rem; margin-top: 10px; }
.spec-panel ol {
  margin-top: 22px;
  list-style: none;
  counter-reset: spec;
  display: grid;
  gap: 14px;
  position: relative;
  z-index: 1;
}
.spec-panel ol li {
  counter-increment: spec;
  display: flex;
  gap: 14px;
  font-size: 0.95rem;
  align-items: flex-start;
}
.spec-panel ol li::before {
  content: counter(spec);
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy-900);
  font-family: var(--heading);
  font-weight: 800;
  font-size: 0.85rem;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  margin-top: 2px;
}

/* CTA band */
.cta-band { text-align: center; }
.cta-band h2 { color: var(--white); margin-bottom: 14px; }
.cta-band p { color: var(--text-dim-navy); margin-bottom: 30px; }
.cta-band .btn-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }

/* ---------- Footer ---------- */
footer.site {
  background: var(--navy-900);
  color: var(--text-dim-navy);
  padding: 56px 0 32px;
}
.foot-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 44px;
  margin-bottom: 40px;
}
@media (max-width: 720px) { .foot-grid { grid-template-columns: 1fr; gap: 30px; } }
footer h4 {
  color: var(--white);
  font-size: 1rem;
  margin-bottom: 16px;
}
footer ul { list-style: none; display: grid; gap: 10px; }
footer a { color: var(--text-dim-navy); text-decoration: none; font-size: 0.94rem; }
footer a:hover { color: var(--gold); }
.foot-legal {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 22px;
  font-size: 0.8rem;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

/* mobile sticky call bar */
.callbar {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 60;
  background: var(--white);
  box-shadow: 0 -6px 20px rgba(11, 30, 63, 0.15);
  padding: 10px 12px;
  gap: 10px;
}
.callbar a { flex: 1; padding: 13px; font-size: 0.95rem; }
@media (max-width: 800px) {
  .callbar { display: flex; }
  body { padding-bottom: 70px; }
}

/* reveal on scroll */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.5s ease, transform 0.5s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* ---------- Legal / policy document page ---------- */
.legal-hero {
  background: linear-gradient(135deg, var(--navy-900), var(--navy-700));
  color: var(--white);
  padding: 54px 0 46px;
}
.legal-hero .hero-brand { margin-bottom: 26px; }
.legal-hero h1 { color: var(--white); margin-bottom: 8px; }
.legal-hero .crumb {
  font-size: 0.9rem;
  color: var(--text-dim-navy);
}
.legal-hero .crumb a { color: var(--gold); text-decoration: none; }
.legal-hero .crumb a:hover { text-decoration: underline; }

.legal-doc { padding: 56px 0 72px; }
.legal-doc .container { max-width: 860px; }
.legal-doc .updated {
  font-weight: 700;
  color: var(--navy-700);
  margin-bottom: 28px;
}
.legal-doc h2 {
  font-size: 1.5rem;
  margin: 40px 0 12px;
  padding-top: 8px;
}
.legal-doc h3 {
  font-size: 1.15rem;
  color: var(--navy-700);
  margin: 26px 0 10px;
}
.legal-doc p { color: var(--text-dim); margin-bottom: 16px; }
.legal-doc ul {
  margin: 0 0 18px 0;
  padding-left: 22px;
  color: var(--text-dim);
}
.legal-doc ul li { margin-bottom: 10px; }
.legal-doc a { color: var(--blue-500); word-break: break-word; }
.legal-doc strong { color: var(--navy-900); }

/* ---------- Contact page ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 48px;
  align-items: start;
}
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; gap: 34px; } }

.contact-list { list-style: none; display: grid; gap: 14px; margin-bottom: 30px; }
.contact-list li {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--white);
  border-radius: 12px;
  padding: 14px 18px;
  box-shadow: var(--shadow-soft);
}
.contact-list .ico {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--navy-700), var(--blue-500));
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.contact-list .ico img { width: 20px; height: 20px; }
.contact-list .lbl {
  display: block;
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.contact-list .val {
  font-family: var(--heading);
  font-weight: 700;
  font-size: 1.02rem;
  color: var(--navy-900);
  text-decoration: none;
  word-break: break-word;
}
.contact-list a.val:hover { color: var(--blue-500); }

.address-card {
  background: linear-gradient(135deg, var(--navy-700), var(--blue-500));
  color: var(--white);
  border-radius: 16px;
  padding: 26px 28px;
  box-shadow: var(--shadow);
}
.address-card .lbl {
  font-family: var(--heading);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}
.address-card address {
  font-style: normal;
  font-family: var(--heading);
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.5;
}

/* ---------- FAQ page ---------- */
.faq-list { display: grid; gap: 14px; max-width: 880px; margin: 0 auto; }
.faq-item {
  background: var(--white);
  border-radius: 14px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 56px 20px 24px;
  position: relative;
  font-family: var(--heading);
  font-weight: 700;
  font-size: 1.06rem;
  color: var(--navy-900);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.faq-item summary::after {
  content: "";
  position: absolute;
  right: 22px;
  top: 50%;
  width: 11px; height: 11px;
  border-right: 2.5px solid var(--blue-500);
  border-bottom: 2.5px solid var(--blue-500);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.2s ease;
}
.faq-item[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq-item[open] summary { color: var(--blue-500); }
.faq-answer { padding: 0 24px 22px; }
.faq-answer p { color: var(--text-dim); margin-bottom: 14px; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer ul { list-style: none; display: grid; gap: 10px; margin-top: 6px; }
.faq-answer ul li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  color: var(--text-dim);
}
.faq-answer ul li .tick {
  color: var(--gold-dark);
  font-weight: 700;
  flex-shrink: 0;
}
.faq-answer ol {
  padding-left: 0;
  list-style: none;
  counter-reset: faqstep;
  display: grid;
  gap: 12px;
  margin-top: 6px;
}
.faq-answer ol li {
  counter-increment: faqstep;
  display: flex;
  gap: 12px;
  color: var(--text-dim);
}
.faq-answer ol li::before {
  content: counter(faqstep);
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy-900);
  font-family: var(--heading);
  font-weight: 800;
  font-size: 0.82rem;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

/* FAQ page form section */
.faq-form-wrap { max-width: 620px; margin: 0 auto; }


/* ============================================================
   WordPress-specific additions
   ============================================================ */

/* Keep the fixed topbar clear of the admin bar */
body.admin-bar-showing .topbar { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar-showing .topbar { top: 46px; }
}

/* Core alignment + caption classes for editor content */
.alignleft   { float: left; margin: 0 24px 16px 0; }
.alignright  { float: right; margin: 0 0 16px 24px; }
.aligncenter { display: block; margin: 0 auto 16px; }
.alignwide, .alignfull { max-width: none; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .wp-element-caption {
  font-size: 0.85rem;
  color: var(--text-dim);
  text-align: center;
  padding: 8px 0;
}
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  white-space: nowrap;
}
.screen-reader-text:focus {
  position: static !important;
  width: auto; height: auto;
  clip: auto; clip-path: none;
  padding: 12px 20px;
  background: var(--white);
  color: var(--navy-900);
  z-index: 100000;
}

/* Skip link */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
}
.skip-link:focus {
  left: 0;
  padding: 12px 20px;
  background: var(--gold);
  color: var(--navy-900);
  font-weight: 800;
}

/* Visible keyboard focus everywhere */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}

/* Editor-driven content inside legal / text bands */
.legal-doc .entry-content > * + * { margin-top: 14px; }
.entry-content ul,
.entry-content ol { padding-left: 22px; }
.entry-content li + li { margin-top: 6px; }
.entry-content blockquote {
  border-left: 4px solid var(--gold);
  padding-left: 18px;
  color: var(--text-dim);
  font-style: italic;
}
.entry-content img { border-radius: var(--radius); }

/* Footer menu rendered from a WP nav menu */
.foot-legal ul {
  list-style: none;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  padding: 0;
  margin: 0;
}
.foot-legal ul li + li::before {
  content: "\00b7";
  margin-right: 14px;
  opacity: 0.6;
}

/* Simple pagination + 404 */
.nscl-pagination {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 30px;
}
.nscl-pagination .page-numbers {
  display: inline-block;
  padding: 8px 14px;
  border-radius: var(--pill);
  background: var(--sky);
  color: var(--navy-700);
  font-weight: 700;
  text-decoration: none;
}
.nscl-pagination .page-numbers.current {
  background: var(--navy-700);
  color: var(--white);
}

/* Inline form error / notice */
.nscl-notice {
  margin-top: 14px;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(201, 79, 61, 0.1);
  border: 1px solid var(--danger);
  color: var(--danger);
  font-weight: 700;
  font-size: 0.92rem;
}
.nscl-notice[hidden] { display: none; }
button[aria-busy="true"] { opacity: 0.65; pointer-events: none; }
