/* ============================================================
   BEACON NEST: LUXE THEME
   A repaint, not a rebuild. Same pages, same words, same layout.
   Deep obsidian-green bands alternating with warm limestone bands,
   bronze accents, an editorial serif for display type, square corners,
   hairline rules and a quiet contour-line texture.

   Loaded after styles.css. Rules are scoped so each band carries its own
   palette: dark by default (hero, header, footer, black bands), and
   light inside .section bands.
   ============================================================ */

/* ---------------------------------------------------------------- tokens (dark) */
:root {
  --font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;

  --limestone: #F5F2EA;
  --limestone-2: #EAE7DE;
  --obsidian: #101A16;
  --obsidian-2: #17241E;
  --obsidian-0: #090F0D;
  --bronze: #B58C5A;
  --bronze-light: #D1B18A;
  --bronze-deep: #6F4F2B;
  --sage: #AAB9AA;

  --red: #B58C5A;
  --red-600: #A07A4B;
  --red-700: #E7D3B6;
  --red-50: rgba(181,140,90,0.14);
  --red-bright: #D1B18A;
  --rose: #D1B18A;
  --rose-soft: #C9A878;

  --ink: #F5F2EA;
  --black: #090F0D;
  --near-black: #101A16;
  --charcoal: #17241E;
  --text: rgba(245,242,234,0.80);
  --text-soft: rgba(245,242,234,0.64);
  --text-faint: rgba(245,242,234,0.46);

  --bg: #0C1713;
  --bg-subtle: #101A16;
  --bg-sunken: #17241E;
  --surface: #0F1B16;

  --line: rgba(245,242,234,0.16);
  --line-soft: rgba(245,242,234,0.09);
  --line-dark: rgba(245,242,234,0.14);
  --line-dark-soft: rgba(245,242,234,0.08);
  --grey-300: rgba(245,242,234,0.3);
  --grey-100: rgba(245,242,234,0.08);

  --radius-sm: 0;
  --radius: 0;
  --radius-lg: 0;
  --radius-pill: 0;

  /* contour-line texture, used on dark bands instead of the old red glow */
  --glow: repeating-radial-gradient(ellipse at 82% 38%, transparent 0 21px, rgba(181,140,90,0.10) 22px, transparent 23px 38px);
  --glow-left: repeating-radial-gradient(ellipse at 12% 90%, transparent 0 21px, rgba(181,140,90,0.08) 22px, transparent 23px 38px);
}

html { scroll-behavior: smooth; }
body { background: var(--limestone); color: var(--ink); -webkit-font-smoothing: antialiased; }
::selection { background: var(--bronze); color: var(--obsidian); }

/* ---------------------------------------------------------------- type */
h1, h2, h3, h4, .statement, .listing-price, .deal-compare b { font-family: var(--font-display); }
h1 { font-weight: 500; letter-spacing: -0.03em; line-height: 0.98; }
h2 { font-weight: 500; letter-spacing: -0.025em; line-height: 1.02; font-size: clamp(2.1rem, 1.3rem + 3vw, 3.7rem); }
h3 { font-weight: 600; letter-spacing: -0.01em; }
h4 { font-weight: 600; }
h1 em, h2 em, h3 em, .statement em { color: var(--bronze-light); font-style: italic; font-weight: 500; }
.eyebrow { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.2em; color: var(--bronze-light); }
.eyebrow::before { background: var(--bronze); }
.lede { font-size: clamp(1.08rem, 1rem + 0.5vw, 1.28rem); line-height: 1.6; }
.statement { font-weight: 500; letter-spacing: -0.02em; }

/* ---------------------------------------------------------------- header */
.brand-rule { background: linear-gradient(90deg, var(--bronze), transparent); height: 2px; }
.site-header { background: rgba(9,15,13,0.9); border-bottom: 1px solid var(--line); }
.site-header.is-scrolled { box-shadow: 0 14px 32px -20px rgba(0,0,0,0.9); }
.logo-mark { color: var(--bronze); }
.logo-word { text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.92rem; font-weight: 500; color: var(--limestone); }
.logo-word span { color: var(--bronze-light); font-weight: 400; }
@media (min-width: 1060px) {
  .main-nav a { font-size: 0.8rem; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(245,242,234,0.72); }
  .main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--bronze-light); }
}
.mobile-nav { background: var(--obsidian-0); }
.mobile-nav nav a { font-family: var(--font-display); font-size: 1.7rem; }
.header-actions .btn { font-size: 0.78rem; }

/* ---------------------------------------------------------------- buttons */
.btn { border-radius: 0; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; padding: 1.05em 1.7em; }
.btn--sm { font-size: 0.74rem; padding: 0.85em 1.25em; }
.btn--primary { --btn-bg: var(--bronze); --btn-fg: var(--obsidian); --btn-bd: var(--bronze); box-shadow: none; }
.btn--primary:hover { --btn-bg: #D1B18A; --btn-bd: #D1B18A; }
.btn--outline { --btn-fg: var(--limestone); --btn-bd: rgba(245,242,234,0.45); }
.btn--outline:hover { --btn-bg: var(--limestone); --btn-fg: var(--obsidian); --btn-bd: var(--limestone); }
.btn--outline-light { --btn-fg: var(--limestone); --btn-bd: rgba(245,242,234,0.45); }
.btn--dark { --btn-bg: var(--limestone); --btn-fg: var(--obsidian); }
.btn--text { color: var(--bronze-light); letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.8rem; font-weight: 600; }

/* ---------------------------------------------------------------- dark bands: texture, hairlines */
.hero--dark, .page-hero, .cta-banner, .section--black, .site-footer, .subscribe, .jump-nav { background-color: var(--obsidian); }
.page-hero--dark, .site-footer { background-color: var(--obsidian-0); }
.hero--dark { background: var(--obsidian); }
.cta-banner, .site-footer { border-top: 1px solid var(--line); }
.page-hero { border-bottom: 1px solid var(--line); }
.page-hero h1, .hero--dark h1 { font-size: clamp(2.8rem, 1.6rem + 5.2vw, 5.8rem); }
.page-hero::before, .hero--dark::before, .cta-banner::before, .section--black::before, .site-footer::before { background: var(--glow); opacity: 1; }
.section--black::before, .site-footer::before { background: var(--glow-left); }
.hero-art::after { background: linear-gradient(to right, var(--obsidian) 0%, rgba(16,26,22,0.6) 24%, rgba(16,26,22,0) 60%); }
@media (max-width: 940px) { .hero-art::after { background: linear-gradient(to bottom, var(--obsidian) 0%, rgba(16,26,22,0) 45%); } }
.jump-nav { background: rgba(16,26,22,0.94); border-bottom: 1px solid var(--line); }
.jump-nav a { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; }
.jump-nav a:hover { color: var(--bronze-light); }
.img-frame img { filter: saturate(0.88) contrast(1.05); }
.site-footer h4 { font-family: var(--font-body); font-size: 0.74rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bronze-light); }
.footer-social a { border-radius: 0; }

/* ---------------------------------------------------------------- LIGHT BANDS
   Every content .section (not the black ones) becomes limestone.
   Tokens are redefined inside, so existing components restyle themselves. */
.section:not(.section--black), .section--off:not(.section--black) {
  color-scheme: light;
  background: var(--limestone);
  --ink: #101A16;
  --text: #3F453E;
  --text-soft: #565B53;
  --text-faint: #5F6358;
  --bg: #F5F2EA;
  --bg-subtle: #EAE7DE;
  --bg-sunken: #E2DED3;
  --surface: #FBF9F4;
  --line: #D8D3C8;
  --line-soft: #E4E0D6;
  --red: #101A16;
  --red-600: #263A30;
  --red-50: rgba(181,140,90,0.14);
  --red-bright: #6F4F2B;
  --rose: #6F4F2B;
  --rose-soft: #6F4F2B;
  --bronze-light: #6F4F2B;
  --grey-300: #C9C3B6;
  --grey-100: #E4E0D6;
  color: var(--text);
  border-block: 0;
}
.section--off:not(.section--black) { background: var(--limestone-2); border-block: 1px solid #DAD5C9; }
.section:not(.section--black) h1, .section:not(.section--black) h2, .section:not(.section--black) h3, .section:not(.section--black) h4 { color: var(--ink); }
.section:not(.section--black) h1 em, .section:not(.section--black) h2 em, .section:not(.section--black) h3 em { color: var(--bronze-deep); }
.section:not(.section--black) .eyebrow { color: var(--bronze-deep); }
.section:not(.section--black) .eyebrow::before { background: var(--bronze); }
.section:not(.section--black) .body-text a:not(.btn):not(.btn--text) { color: var(--bronze-deep); border-bottom-color: rgba(111,79,43,0.4); }
.section:not(.section--black) .btn--primary { --btn-bg: var(--obsidian); --btn-fg: var(--limestone); --btn-bd: var(--obsidian); }
.section:not(.section--black) .btn--primary:hover { --btn-bg: var(--obsidian-2); --btn-bd: var(--obsidian-2); }
.section:not(.section--black) .btn--outline { --btn-fg: var(--obsidian); --btn-bd: rgba(16,26,22,0.4); }
.section:not(.section--black) .btn--outline:hover { --btn-bg: var(--obsidian); --btn-fg: var(--limestone); --btn-bd: var(--obsidian); }
.section:not(.section--black) .btn--dark { --btn-bg: var(--obsidian); --btn-fg: var(--limestone); }
.section:not(.section--black) .btn--text { color: var(--bronze-deep); }
.section:not(.section--black) .hr { border-top-color: var(--line); }

/* cards and panels in light bands */
.section:not(.section--black) .info-card, .section:not(.section--black) .sequence-step, .section:not(.section--black) .chain-link,
.section:not(.section--black) .ledger-col, .section:not(.section--black) .founder-plate, .section:not(.section--black) .project-card,
.section:not(.section--black) .form-shell, .section:not(.section--black) .contact-form-card, .section:not(.section--black) .appointment,
.section:not(.section--black) .notice-box, .section:not(.section--black) .form-success,
.section:not(.section--black) .listing-card, .section:not(.section--black) .listing-empty {
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: none;
}
.section:not(.section--black) .info-card { border-top: 1px solid var(--bronze); }
.section:not(.section--black) .info-card:hover, .section:not(.section--black) .listing-card:hover, .section:not(.section--black) .project-card:hover, .section:not(.section--black) .sequence-step:hover { border-color: var(--bronze); }
.section:not(.section--black) .chain-link, .section:not(.section--black) .founder-plate { border-top: 2px solid var(--bronze); }
.section:not(.section--black) .ledger-col { border-top: 2px solid var(--obsidian); }
.section:not(.section--black) .ledger-col--accent { border-top-color: var(--bronze); }
.section:not(.section--black) .form-success { border-left: 3px solid var(--bronze); }
.section:not(.section--black) .capabilities, .section:not(.section--black) .tier, .section:not(.section--black) .audience-item { border-top-color: var(--obsidian); }
.section:not(.section--black) .callout { border-left-color: var(--bronze); }
.section:not(.section--black) .notice { background: rgba(181,140,90,0.12); border-color: rgba(181,140,90,0.45); }
.section:not(.section--black) .notice p { color: var(--ink); }
.section:not(.section--black) .notice-mark { background: var(--bronze); color: var(--obsidian); }
.section:not(.section--black) .rail-num { background: var(--limestone); color: var(--bronze-deep); border-color: var(--bronze); }
.section--off:not(.section--black) .rail-num { background: var(--limestone-2); }
.section:not(.section--black) .rail::before { background: var(--line); }
.section:not(.section--black) .check-list li::before { background: var(--bronze); }
.section:not(.section--black) .timeline-stage { border-color: var(--line); color: var(--ink); }
.section:not(.section--black) .timeline-stage.is-current { background: var(--obsidian); border-color: var(--obsidian); color: var(--limestone); }
.section:not(.section--black) .filter-pill { border-color: var(--line); color: var(--ink); }
.section:not(.section--black) .filter-pill:hover { border-color: var(--obsidian); color: var(--obsidian); }
.section:not(.section--black) .filter-pill.is-active { background: var(--obsidian); border-color: var(--obsidian); color: var(--limestone); }
.section:not(.section--black) .faq { border-top-color: var(--obsidian); }
.section:not(.section--black) .faq-item { border-bottom-color: var(--line); }
.section:not(.section--black) .faq-item > summary { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; color: var(--ink); }
.section:not(.section--black) .faq-item > summary:hover, .section:not(.section--black) .faq-item[open] > summary { color: var(--bronze-deep); }

/* forms in light bands */
.section:not(.section--black) .field input, .section:not(.section--black) .field select, .section:not(.section--black) .field textarea {
  background: #fff; color: var(--ink); border: 1px solid #CFC9BD; border-radius: 0;
}
.section:not(.section--black) .field select option { background: #fff; color: var(--ink); }
.section:not(.section--black) .field input:focus, .section:not(.section--black) .field select:focus, .section:not(.section--black) .field textarea:focus {
  border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(181,140,90,0.25);
}
.section:not(.section--black) .field label { color: var(--ink); }
.section:not(.section--black) .choice { border-color: var(--line); color: var(--ink); background: #fff; }
.section:not(.section--black) .choice:hover { border-color: var(--obsidian); color: var(--obsidian); }
.section:not(.section--black) .choice:has(input:checked) { border-color: var(--bronze-deep); color: var(--bronze-deep); background: rgba(181,140,90,0.12); }
.section:not(.section--black) .q-block { border-top-color: var(--obsidian); }
.section:not(.section--black) .q-block .q-num { color: var(--bronze-deep); }
.section:not(.section--black) .form-note, .section:not(.section--black) .hint { color: var(--text-faint); }
.section:not(.section--black) .form-error { background: #F6E9E4; border-color: #B5604D; }
.section:not(.section--black) .form-error h4 { color: #8A3A2A; }

/* listings in light bands */
.section:not(.section--black) .listing-type, .section:not(.section--black) .listing-status { color: var(--ink); border-color: var(--line); }
.section:not(.section--black) .listing-type.is-deal { background: var(--obsidian); border-color: var(--obsidian); color: var(--limestone); }
.section:not(.section--black) .listing-status.is-available { color: #2F6B45; border-color: rgba(47,107,69,0.4); }
.section:not(.section--black) .listing-status.is-reserved { color: #8A6420; border-color: rgba(138,100,32,0.4); }
.section:not(.section--black) .listing-price { color: var(--ink); }
.section:not(.section--black) .listing-deal { color: var(--bronze-deep); }
.section:not(.section--black) .listing-deal b { color: var(--ink); }
.section:not(.section--black) .listing-body h3 a:hover, .section:not(.section--black) .insight-card:hover h3, .section:not(.section--black) .capability h3 a:hover { color: var(--bronze-deep); }
.section:not(.section--black) .deal-box { border-color: var(--line); border-left-color: var(--bronze); background: var(--surface); }
.section:not(.section--black) .deal-compare b { color: var(--text-soft); }
.section:not(.section--black) .deal-compare--this b { color: var(--ink); }
.section:not(.section--black) .insight-card .cat, .section:not(.section--black) .article-card .cat { color: var(--bronze-deep); }
.section:not(.section--black) .soon-tag { color: var(--bronze-deep); border-color: rgba(111,79,43,0.4); }
.section:not(.section--black) .price-table tr:first-child td { color: var(--bronze-deep); border-bottom-color: var(--line); }
.section:not(.section--black) .share-row a, .section:not(.section--black) .share-row button { background: transparent; color: var(--ink); border-color: var(--line); }
.section:not(.section--black) .share-row a:hover, .section:not(.section--black) .share-row button:hover { border-color: var(--obsidian); }
.section:not(.section--black) .sources a { color: var(--ink); }
.section:not(.section--black) .related-links a { color: var(--ink); border-color: var(--line); }
.section:not(.section--black) .related-links a span, .section:not(.section--black) .tier-mark, .section:not(.section--black) .status-tag,
.section:not(.section--black) .role-line .lbl, .section:not(.section--black) .capability-num, .section:not(.section--black) .sequence-step .num { color: var(--bronze-deep); }
.section:not(.section--black) .status-tag { border-bottom-color: var(--bronze); }

/* dark bands keep their own component colours (they inherit the dark tokens) */
.section--black .btn--primary, .cta-banner .btn--primary, .hero--dark .btn--primary, .page-hero .btn--primary { --btn-bg: var(--bronze); --btn-fg: var(--obsidian); }
.section--black h1 em, .section--black h2 em, .cta-banner h2 em { color: var(--bronze-light); }
.section--black .info-card, .section--black .sequence-step, .section--black .ledger-col { background: rgba(245,242,234,0.035); border: 1px solid var(--line); }
.section--black .info-card { border-top: 1px solid var(--bronze); }
.section--black .rail-num { background: var(--obsidian); color: var(--bronze-light); border-color: var(--bronze); }
.section--black .field input, .section--black .field select, .section--black .field textarea { background: rgba(245,242,234,0.04); color: var(--limestone); border-radius: 0; }

/* ---------------------------------------------------------------- details */
.founder-plate .name, .listing-ph b { font-family: var(--font-display); }
.listing-ph { background: var(--glow), linear-gradient(160deg, #17241E, #0C1713); }
.logo-mark { color: var(--bronze); }
.wa-float { border-radius: 50%; }
.section-head h2 { max-width: 20ch; }
.section-head--wide h2 { max-width: 26ch; }

/* keep keyboard focus visible and obvious */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }

/* gentle reveal, only when the visitor allows motion */
@media (prefers-reduced-motion: no-preference) {
  .hero--dark .wrap > *, .page-hero .wrap > * { animation: luxe-rise 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
  .hero--dark .wrap > *:nth-child(2), .page-hero .wrap > *:nth-child(2) { animation-delay: 0.08s; }
  @keyframes luxe-rise { from { opacity: 0.6; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}

/* ---------------------------------------------------------------- legibility on dark bands */
.site-footer, .site-footer p, .site-footer a, .site-footer span { color: rgba(245,242,234,0.78); }
.site-footer a:hover { color: var(--bronze-light); }
.site-footer .footer-note, .footer-bottom { color: rgba(245,242,234,0.72); }
.footer-disclaimer { color: rgba(245,242,234,0.66); font-size: 0.8rem; line-height: 1.7; }
.section--black .hint, .cta-banner .hint, .hero--dark .hint, .page-hero .hint, .subscribe .hint { color: rgba(245,242,234,0.7); }
.section--black .hint a, .cta-banner .hint a { color: var(--bronze-light); }
.btn--text, .section--black .btn--text, .hero--dark .btn--text, .cta-banner .btn--text { color: var(--bronze-light); }
.eyebrow { font-size: 0.8rem; }

/* smallest labels stay readable */
.lbl, .tier-mark, .status-tag, .listing-type, .listing-status, .soon-tag, .article-card .cat, .insight-card .cat, .nw-chip { font-size: 0.76rem; }
.hint, .form-note, .foot, .listing-role, .listing-ref { font-size: 0.86rem; }

/* The contact details card stays an obsidian card on the limestone band */
.section:not(.section--black) .contact-panel { background: var(--obsidian); border: 1px solid rgba(245,242,234,0.16); border-top: 1px solid var(--bronze); box-shadow: 0 30px 60px -40px rgba(9,15,13,0.7); }
.section:not(.section--black) .contact-panel h3 { color: #F5F2EA; }
.section:not(.section--black) .contact-panel .contact-method .lbl { color: #D1B18A; font-size: 0.76rem; }
.section:not(.section--black) .contact-panel .contact-method .val { color: #F5F2EA; }
.section:not(.section--black) .contact-panel > p { color: rgba(245,242,234,0.78); }

/* breadcrumbs sit on the dark page hero */
.breadcrumb, .breadcrumb a { color: rgba(245,242,234,0.74); font-size: 0.86rem; }
.breadcrumb a:hover { color: var(--bronze-light); }

/* ---------------------------------------------------------------- landing + network pages
   These pages open on dark surfaces; their light bands follow the same rules as the site. */
body.lp, body.nw { background: var(--obsidian); color: var(--ink); }
.lp-hero { background: var(--obsidian); }
.lp-bar { background: rgba(9,15,13,0.92); border-bottom: 1px solid var(--line); }
.lp-foot { background: var(--obsidian-0); }
.lp-bar-link { letter-spacing: 0.08em; }
.lp-path { border-top: 1px solid var(--bronze); border-radius: 0; background: rgba(245,242,234,0.04); }
.lp-card { border-radius: 0; }
.lp-route-tag, .lp-step-label { color: var(--bronze-light); }
.lp-progress span { background: var(--bronze); }
.lp-points li::before, .lp-path-points li::before { background: var(--bronze); }
.section:not(.section--black) .lp-compare { border-color: var(--line); background: var(--surface); }
.section:not(.section--black) .lp-compare-row { color: var(--text); border-top-color: var(--line); }
.section:not(.section--black) .lp-compare-head { background: rgba(16,26,22,0.06); color: var(--ink); }
.section:not(.section--black) .lp-compare-row > span:first-child { color: var(--bronze-deep); }
@media (max-width: 759px) { .section:not(.section--black) .lp-compare-row > span[data-l]::before { color: var(--ink); } }
.lp-error { border-radius: 0; }

/* The "already have a feasibility study?" band sits on limestone */
.section:not(.section--black) .lp-fs-card { background: var(--surface); border: 1px solid var(--line); border-top: 1px solid var(--bronze); }
.section:not(.section--black) .lp-fs-card p, .section:not(.section--black) .lp-fs-card li { color: var(--text); }
.section:not(.section--black) .lp-fs-card strong { color: var(--ink); }
.section:not(.section--black) .lp-fs-card a:not(.btn) { color: var(--ink); text-decoration-color: var(--bronze); }
.section:not(.section--black) .lp-fs-card .lp-fine, .section:not(.section--black) .lp-hero-note { color: var(--text-soft); }
.section:not(.section--black) .lp-route-tag { color: var(--bronze-deep); }
.section:not(.section--black) .lp-path-points li { color: var(--text); }
.section:not(.section--black) .lp-path-points li::before { background: var(--bronze); }
.section:not(.section--black) .lp-fs-card .btn--outline { --btn-fg: var(--obsidian); --btn-bd: rgba(16,26,22,0.4); }
.lp-foot-small { color: rgba(245,242,234,0.72); }
.lp-hero-note { color: rgba(245,242,234,0.76); }
