/* Site pages stylesheet. The tokens, nav and footer rules were copied from index.html; the page components below are hand-written. Edit this file directly. Pages are generated by scripts/build_seo_pages.py. */
/* ── Reset & Tokens ──────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }

    :root {
      --gold:       #B8975A;
      --gold-lt:    #D4B87A;
      --gold-dim:   rgba(184,151,90,0.18);
      --dark:       #111111;
      --mid:        #444444;
      --light:      #888888;
      --border:     #E8E3D9;
      --cream:      #FAF8F4;
      --cream-dk:   #F2EDE5;
      --white:      #FFFFFF;
      --serif:      'Cormorant Garamond', Georgia, serif;
      --sans:       'Montserrat', Arial, sans-serif;
      --ease:       0.35s ease;
      --max:        1180px;
    }

    body {
      font-family: var(--sans);
      font-size: 14px;
      line-height: 1.75;
      color: var(--dark);
      background: var(--white);
      -webkit-font-smoothing: antialiased;
    }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }

    .wrap { width: 92%; max-width: var(--max); margin: 0 auto; }

    /* fade-in */
    .fi { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
    .fi.on { opacity: 1; transform: none; }

    /* ── NAV ─────────────────────────────────────────────── */
    .nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      height: 68px;
      display: flex; align-items: center;
      padding: 0 5%;
      background: rgba(255,255,255,0.94);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--border);
      justify-content: space-between;
    }
    .nav__brand {
      display: flex; align-items: center; gap: 12px;
    }
    .nav__brand-name {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 500;
      color: var(--dark);
      letter-spacing: 0.01em;
    }
    .nav__brand-name em { font-style: italic; font-weight: 300; }
    .nav__links {
      display: flex; gap: 36px; list-style: none;
    }
    .nav__links a {
      font-size: 10px; font-weight: 600; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--mid);
      transition: color var(--ease);
    }
    .nav__links a:hover { color: var(--gold); }
    .nav__social { display: flex; align-items: center; gap: 36px; align-self: center; } /* same gap as the other nav items */
    .nav__social a { display: flex; line-height: 0; }
    .nav__social svg { width: 16px; height: 16px; }
    .nav__social a:first-child svg { width: 11px; } /* trim the blank sides of the narrow Facebook "f" */
    .nav__cta {
      background: var(--dark); color: var(--white) !important;
      padding: 10px 22px;
      font-size: 10px; font-weight: 600; letter-spacing: 0.14em;
      text-transform: uppercase;
      transition: background var(--ease) !important;
    }
    .nav__cta:hover { background: var(--gold) !important; color: var(--white) !important; }

    /* hamburger — desktop-hidden, shown under 720px */
    .nav__toggle {
      display: none;
      width: 42px; height: 42px; margin-right: -9px;
      border: none; background: transparent; cursor: pointer;
      color: var(--dark); padding: 9px;
    }
    .nav__toggle svg { display: block; width: 100%; height: 100%; }
    .nav__toggle .nav__toggle--close { display: none; }
    .nav.is-open .nav__toggle .nav__toggle--open { display: none; }
    .nav.is-open .nav__toggle .nav__toggle--close { display: block; }

    /* ── FOOTER ──────────────────────────────────────────── */
    .footer {
      background: var(--dark); padding: 56px 0 36px;
    }
    .footer__inner {
      display: grid; grid-template-columns: 1.4fr 1fr 1fr;
      gap: 40px; margin-bottom: 48px;
    }
    .footer__brand-name {
      font-family: var(--serif); font-size: 24px; font-weight: 500;
      color: var(--white); margin-bottom: 10px;
    }
    .footer__brand-name em { font-style: italic; font-weight: 300; }
    .footer__tagline {
      font-size: 14px; color: rgba(255,255,255,0.45);
      line-height: 1.7; max-width: 280px;
    }
    .footer__col-head {
      font-size: 11px; font-weight: 600; letter-spacing: 0.2em;
      text-transform: uppercase; color: var(--gold);
      margin-bottom: 20px;
    }
    .footer__links { list-style: none; display: flex; flex-direction: column; gap: 10px; }
    .footer__links a { font-size: 15px; color: rgba(255,255,255,0.55); transition: color var(--ease); }
    .footer__links a:hover { color: var(--gold); }
    .footer__copy {
      font-size: 13px; color: rgba(255,255,255,0.35);
      letter-spacing: 0.04em; text-align: center;
      border-top: 1px solid rgba(255,255,255,0.08); padding-top: 28px;
    }

        @media (max-width: 720px) {
      .nav__toggle { display: block; }
      .nav__links {
        position: absolute; top: 68px; left: 0; right: 0;
        flex-direction: column; gap: 0;
        background: var(--white);
        border-bottom: 1px solid var(--border);
        box-shadow: 0 14px 26px rgba(17,17,17,0.12);
        padding: 6px 5% 18px;
        display: none;
      }
      .nav.is-open .nav__links { display: flex; }
      .nav__links li { width: 100%; }
      .nav__links a {
        display: block; padding: 15px 2px; font-size: 12px;
        border-bottom: 1px solid var(--border);
      }
      .nav__links li:last-child a { border-bottom: none; }
      .nav__social { gap: 24px; padding: 14px 2px; border-bottom: 1px solid var(--border); }
      .nav__social a { padding: 0; border-bottom: none; }
      .nav__social svg { width: 20px; height: 20px; }
      .nav__social a:first-child svg { width: 14px; }
      .nav__cta {
        margin-top: 14px; text-align: center;
        background: var(--dark) !important; color: var(--white) !important;
      }
    }

@media (max-width: 960px) { .footer__inner { grid-template-columns: 1fr; } }
.footer__social { display: flex; gap: 14px; margin-top: 18px; }
.footer__social a { display: inline-flex; line-height: 0; }
.footer__social svg { width: 18px; height: 18px; fill: rgba(255,255,255,0.55); }
.footer__social a:hover svg { fill: var(--gold); }
.footer__copy a { text-decoration: underline; }

/* ── PAGE COMPONENTS ─────────────────────────────────── */
main { padding-top: 68px; }
.crumbs { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--light); padding: 18px 0 0; }
.crumbs a { color: var(--mid); } .crumbs a:hover { color: var(--gold); }
.crumbs span { margin: 0 8px; opacity: .6; }

.phero { background: var(--cream); }
.phero__inner { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; padding: 28px 0 72px; }
.phero__eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; }
.phero h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(38px, 5.2vw, 62px); line-height: 1.06; letter-spacing: -0.01em; margin-bottom: 22px; }
.phero h1 em { font-style: italic; font-weight: 300; color: var(--gold); }
.phero__answer { font-size: 16.5px; line-height: 1.8; color: var(--mid); max-width: 560px; margin-bottom: 30px; }
.phero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.btn { display: inline-block; padding: 15px 30px; font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; border: 1px solid var(--dark); background: var(--dark); color: var(--white); transition: background var(--ease), border-color var(--ease), color var(--ease); }
.btn:hover { background: var(--gold); border-color: var(--gold); }
.btn--ghost { background: transparent; color: var(--dark); }
.btn--ghost:hover { background: var(--dark); border-color: var(--dark); color: var(--white); }
.phero__img { position: relative; aspect-ratio: 4 / 4.4; overflow: hidden; border-radius: 4px; box-shadow: 0 30px 60px rgba(17,17,17,0.14); }
.phero__img img { width: 100%; height: 100%; object-fit: cover; }
.phero__img::after { content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.35); border-radius: 4px; pointer-events: none; }

.chips { background: var(--white); border-bottom: 1px solid var(--border); }
.chips__inner { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; padding: 22px 0; }
.chips span { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mid); display: inline-flex; align-items: center; gap: 9px; }
.chips span::before { content: ''; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); }

.sec { padding: 88px 0; }
.sec--cream { background: var(--cream); }
.sec--dark { background: var(--dark); color: var(--white); }
.sh { max-width: 720px; margin-bottom: 48px; }
.sh--center { margin-left: auto; margin-right: auto; text-align: center; }
.sh__eye { font-size: 11px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
.sh__title { font-family: var(--serif); font-weight: 400; font-size: clamp(30px, 3.6vw, 44px); line-height: 1.12; margin-bottom: 14px; }
.sh__title em { font-style: italic; font-weight: 300; color: var(--gold); }
.sh__sub { font-size: 15.5px; color: var(--mid); line-height: 1.8; }
.sec--dark .sh__sub { color: rgba(255,255,255,0.6); }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.card { background: var(--white); border: 1px solid var(--border); border-radius: 4px; padding: 28px 26px; transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease); }
.card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(17,17,17,0.08); border-color: var(--gold-lt); }
.card__n { font-family: var(--serif); font-size: 34px; color: var(--gold); line-height: 1; margin-bottom: 14px; }
.card h3 { font-family: var(--serif); font-weight: 500; font-size: 23px; line-height: 1.2; margin-bottom: 8px; }
.card p { font-size: 14px; color: var(--mid); line-height: 1.75; }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; background: var(--border); border: 1px solid var(--border); }
.step { background: var(--white); padding: 38px 32px; }
.step__n { font-family: var(--serif); font-size: 44px; color: var(--gold-lt); line-height: 1; margin-bottom: 16px; }
.step h3 { font-family: var(--serif); font-weight: 500; font-size: 24px; margin-bottom: 8px; }
.step p { font-size: 14px; color: var(--mid); }

.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.plan { background: var(--white); border: 1px solid var(--border); border-radius: 4px; padding: 34px 30px; display: flex; flex-direction: column; }
.plan--dark { background: var(--dark); color: var(--white); border-color: var(--dark); }
.plan__badge { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
.plan h3 { font-family: var(--serif); font-weight: 500; font-size: 28px; margin-bottom: 6px; }
.plan__rate { font-family: var(--serif); font-size: 44px; line-height: 1.05; margin: 4px 0 4px; }
.plan__rate small { display: block; margin-top: 4px; font-family: var(--sans); font-size: 12px; color: var(--light); letter-spacing: 0.02em; }
.plan--dark .plan__rate small { color: rgba(255,255,255,0.5); }
.plan p { font-size: 14px; color: var(--mid); margin: 8px 0 16px; }
.plan--dark p { color: rgba(255,255,255,0.65); }
.plan ul { list-style: none; margin-top: 16px; }
.plan li { font-size: 13.5px; padding: 9px 0 9px 22px; border-top: 1px solid var(--border); position: relative; }
.plan--dark li { border-top-color: rgba(255,255,255,0.12); color: rgba(255,255,255,0.8); }
.plan li::before { content: ''; position: absolute; left: 2px; top: 17px; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); }
.ptable { width: 100%; border-collapse: collapse; background: var(--white); border: 1px solid var(--border); }
.ptable th, .ptable td { padding: 16px 20px; text-align: left; font-size: 14.5px; border-bottom: 1px solid var(--border); }
.ptable th { font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--light); background: var(--cream); font-weight: 600; }
.ptable td strong { font-family: var(--serif); font-size: 22px; font-weight: 500; }
.note { font-size: 12.5px; color: var(--light); margin-top: 14px; }

.faq { max-width: 820px; margin: 0 auto; }
.faq details { border-bottom: 1px solid var(--border); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 40px 24px 0; font-family: var(--serif); font-size: 23px; line-height: 1.25; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 4px; top: 20px; font-family: var(--sans); font-weight: 300; font-size: 28px; color: var(--gold); transition: transform var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .faq__a { padding: 0 0 26px; font-size: 15px; color: var(--mid); line-height: 1.85; max-width: 720px; }
.faq .faq__a a { color: var(--gold); text-decoration: underline; }

.areas { display: flex; flex-wrap: wrap; gap: 12px; }
.areas a { padding: 12px 22px; border: 1px solid var(--border); background: var(--white); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; transition: all var(--ease); }
.areas a:hover, .areas a[aria-current="page"] { background: var(--dark); color: var(--white); border-color: var(--dark); }
.towns { columns: 2; column-gap: 40px; list-style: none; max-width: 560px; }
.towns li { padding: 6px 0 6px 20px; position: relative; font-size: 15px; break-inside: avoid; }
.towns li::before { content: ''; position: absolute; left: 2px; top: 15px; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); }
.prose { max-width: 760px; }
.prose p { font-size: 16px; line-height: 1.9; color: var(--mid); margin-bottom: 18px; }
.prose a { color: var(--gold); text-decoration: underline; }
.prose strong { color: var(--dark); }
.cta { background: var(--dark); color: var(--white); text-align: center; padding: 84px 0; }
.cta h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(32px, 4vw, 50px); line-height: 1.1; margin-bottom: 14px; }
.cta h2 em { font-style: italic; font-weight: 300; color: var(--gold-lt); }
.cta p { color: rgba(255,255,255,0.65); max-width: 560px; margin: 0 auto 30px; font-size: 15.5px; }
.cta .btn { background: var(--gold); border-color: var(--gold); }
.cta .btn:hover { background: var(--white); border-color: var(--white); color: var(--dark); }
.cta__phone { display: block; margin-top: 22px; font-size: 13px; color: rgba(255,255,255,0.55); }
.cta__phone a { color: var(--gold-lt); }
.updated { font-size: 12px; color: var(--light); margin-top: 28px; }

@media (max-width: 960px) {
  .phero__inner { grid-template-columns: 1fr; gap: 36px; padding-bottom: 56px; }
  .phero__img { aspect-ratio: 16 / 11; order: -1; }
  .cards, .steps, .plans { grid-template-columns: 1fr; }
  .sec { padding: 64px 0; }
  .towns { columns: 1; }
}

/* nav stays on one line at laptop widths */
.nav__brand-name, .nav__links a { white-space: nowrap; }
@media (max-width: 1100px) { .nav__links { gap: 22px; } .nav__brand-name { font-size: 19px; } }
@media (max-width: 960px) and (min-width: 721px) { .nav__links { gap: 14px; } .nav__links a { letter-spacing: 0.08em; } .nav__cta { padding: 9px 14px; } }
