/* ReRoot global Ashlar-inspired design and contrast system. */
:root {
  --rr-forest: #17372f;
  --rr-forest-soft: #24483f;
  --rr-ink: #1f2926;
  --rr-muted: #59615c;
  --rr-paper: #fbfaf7;
  --rr-cream: #f4f1eb;
  --rr-stone: #e7e1d8;
  --rr-sage: #dde4dd;
  --rr-bronze: #76583c;
  --rr-line: #c8c0b5;
  --rr-white: #ffffff;
  --rr-danger: #8a2f2f;
  --rr-radius: 18px;
  --rr-shadow: 0 18px 50px rgba(31, 41, 38, .08);
}

html { scroll-behavior: smooth; }
body {
  background: var(--rr-paper) !important;
  color: var(--rr-ink) !important;
  font-family: Inter, Arial, sans-serif !important;
}
main { background: var(--rr-paper); }
h1, h2, h3, .page-title, .section-title, .hero-title {
  color: var(--rr-forest) !important;
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-weight: 500 !important;
  letter-spacing: -.025em;
}
p, li, label, small, .muted, .section-lead, .page-subtitle { color: var(--rr-muted); }
a { color: var(--rr-forest); text-underline-offset: 4px; }
hr { border-color: var(--rr-line) !important; }

.content-wrap, .page-shell, .container, .section-inner, .auth-shell, .legal-shell {
  width: min(1180px, calc(100% - 40px));
  margin-inline: auto;
}
.rr-section, section:not(.mag-hero):not(.mag-life):not(.mag-final) { background-color: var(--rr-paper); }
.bg-alt, .section-alt, .soft-panel { background: var(--rr-cream) !important; }

.site-header-v1 {
  background: rgba(251, 250, 247, .97) !important;
  border-bottom: 1px solid var(--rr-line) !important;
  box-shadow: none !important;
}
.site-header-v1 .logo-wordmark,
.site-header-v1 .site-nav-desktop a,
.site-header-v1 .nav-auth-link,
.site-header-v1 .menu-btn { color: var(--rr-forest) !important; }
.site-header-v1 .site-nav-desktop a:hover,
.site-header-v1 .site-nav-desktop a:focus-visible,
.site-header-v1 .site-nav-desktop a.active {
  background: var(--rr-cream) !important;
  color: var(--rr-forest) !important;
}
.rr-mobile-panel { background: var(--rr-forest) !important; color: var(--rr-paper) !important; }
.rr-mobile-panel a, .rr-mobile-panel button, .rr-mobile-brand { color: var(--rr-paper) !important; }

.btn-primary, .nav-cta-btn, .mag-button--ink, button[type="submit"]:not(.btn-secondary) {
  background: var(--rr-forest) !important;
  border: 1px solid var(--rr-forest) !important;
  color: var(--rr-white) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.btn-primary:hover, .nav-cta-btn:hover, .mag-button--ink:hover, button[type="submit"]:not(.btn-secondary):hover {
  background: #0f2b25 !important;
  border-color: #0f2b25 !important;
  color: var(--rr-white) !important;
}
.btn-secondary, .mag-button--cream, .mag-button--light, .button-secondary {
  background: var(--rr-paper) !important;
  border: 1px solid var(--rr-forest) !important;
  color: var(--rr-forest) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.btn-secondary:hover, .mag-button--cream:hover, .mag-button--light:hover, .button-secondary:hover {
  background: var(--rr-forest) !important;
  color: var(--rr-white) !important;
}

.rr-card, .card, .panel, .result-card, .city-card, .favorite-card, .plan-card,
.auth-card, .account-card, .legal-card, .compare-card, .calculator-card,
[class*="-card"]:not(.home-city-showcase-card__media) {
  background: var(--rr-white) !important;
  border: 1px solid var(--rr-line) !important;
  border-radius: var(--rr-radius) !important;
  box-shadow: var(--rr-shadow) !important;
  color: var(--rr-ink) !important;
}
.rr-card h1, .rr-card h2, .rr-card h3,
.card h1, .card h2, .card h3,
.panel h1, .panel h2, .panel h3,
[class*="-card"] h1, [class*="-card"] h2, [class*="-card"] h3 { color: var(--rr-forest) !important; }
.rr-card p, .card p, .panel p, [class*="-card"] p { color: var(--rr-muted) !important; }
.price-badge, .badge, .pill, .tag, .status-pill {
  background: var(--rr-sage) !important;
  border: 1px solid #b8c5ba !important;
  color: var(--rr-forest) !important;
}
.home-plan-teaser--featured, .mag-plan--featured, .plan-card.featured {
  background: var(--rr-sage) !important;
  border-color: #aebcaf !important;
}

input, select, textarea {
  background: var(--rr-white) !important;
  border: 1px solid #81786e !important;
  border-radius: 12px !important;
  color: var(--rr-ink) !important;
  box-shadow: none !important;
}
input::placeholder, textarea::placeholder { color: #5f6762 !important; opacity: 1; }
label, legend { color: var(--rr-ink) !important; font-weight: 600; }
fieldset { border-color: var(--rr-line) !important; }

table { background: var(--rr-white) !important; color: var(--rr-ink) !important; border-color: var(--rr-line) !important; }
th { background: var(--rr-forest) !important; color: var(--rr-white) !important; }
td { background: var(--rr-white) !important; color: var(--rr-ink) !important; border-color: var(--rr-line) !important; }
tr:nth-child(even) td { background: var(--rr-cream) !important; }

.site-footer-v1, .mag-hero, .mag-life, .mag-final, .dark-section, .hero-dark {
  background: var(--rr-forest) !important;
  color: var(--rr-paper) !important;
}
.site-footer-v1 h1, .site-footer-v1 h2, .site-footer-v1 h3, .site-footer-v1 p, .site-footer-v1 a,
.mag-hero h1, .mag-hero p, .mag-hero a:not(.mag-button--light),
.mag-life h2, .mag-life p, .mag-life strong,
.mag-final h2, .mag-final p, .mag-final a:not(.mag-button--light),
.dark-section h1, .dark-section h2, .dark-section h3, .dark-section p, .dark-section a { color: var(--rr-paper) !important; }

.bg-alt, .mag-ask, .mag-destinations, .mag-compare, .mag-assessment, .mag-membership,
.destination__caption, .mag-hero__figure figcaption { color: var(--rr-ink) !important; }
.bg-alt h1, .bg-alt h2, .bg-alt h3,
.mag-ask h2, .mag-destinations h2, .mag-destinations h3,
.mag-compare h2, .mag-assessment h2, .mag-membership h2, .mag-membership h3 { color: var(--rr-forest) !important; }
.bg-alt p, .mag-ask p, .mag-destinations p, .mag-compare p,
.mag-assessment p, .mag-membership p, .destination__caption span,
.mag-hero__figure figcaption { color: var(--rr-muted) !important; }

.section-kicker, .eyebrow, .mag-label, .mag-plan-label, .destination__caption p {
  color: var(--rr-bronze) !important;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.alert, .notice, .info-box { background: var(--rr-cream) !important; border: 1px solid var(--rr-line) !important; color: var(--rr-ink) !important; }
.error, .error-message, [data-state="error"] { color: var(--rr-danger) !important; }

/* Account and authentication: explicit high-contrast rules. */
.account-page,
.account-page main,
.account-page .home-section,
.account-page .content-wrap { background: var(--rr-paper) !important; color: var(--rr-ink) !important; }
.account-page .account-card {
  background: var(--rr-white) !important;
  color: var(--rr-ink) !important;
  border: 1px solid var(--rr-line) !important;
}
.account-page .account-card p,
.account-page .account-empty-note,
.account-page .account-status,
.account-page .home-disclaimer-line,
.account-page .account-delete-intro,
.account-page .account-delete-note,
.account-page .account-delete-signin-note { color: var(--rr-muted) !important; }
.account-page .account-card h1,
.account-page .account-card h2,
.account-page .account-card h3,
.account-page .account-card strong { color: var(--rr-forest) !important; }
.account-page .auth-tabs {
  background: var(--rr-cream) !important;
  border: 1px solid var(--rr-line) !important;
  border-radius: 14px !important;
  padding: 6px !important;
}
.account-page .auth-tab {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--rr-forest) !important;
  font-weight: 600 !important;
}
.account-page .auth-tab.is-active,
.account-page .auth-tab[aria-selected="true"] {
  background: var(--rr-forest) !important;
  border-color: var(--rr-forest) !important;
  color: var(--rr-white) !important;
}
.account-page .auth-tab:hover:not(.is-active) {
  background: var(--rr-stone) !important;
  color: var(--rr-forest) !important;
}
.account-page .account-form label { color: var(--rr-ink) !important; }
.account-page .account-form input {
  background: var(--rr-white) !important;
  color: var(--rr-ink) !important;
  border-color: #81786e !important;
}
.account-page .account-form input::placeholder { color: #5f6762 !important; }
.account-page .account-form .btn-primary {
  background: var(--rr-forest) !important;
  color: var(--rr-white) !important;
  border-color: var(--rr-forest) !important;
}
.account-page .account-delete-modal-panel {
  background: var(--rr-white) !important;
  color: var(--rr-ink) !important;
}
.account-page .account-delete-modal-panel p,
.account-page .account-delete-modal-panel label { color: var(--rr-muted) !important; }
.account-page .account-delete-modal-panel h2,
.account-page .account-delete-modal-panel strong { color: var(--rr-forest) !important; }

/* Never allow inherited white text on known light surfaces. */
.account-page .account-card *,
.account-page .auth-panel *,
.account-page .account-form * { text-shadow: none !important; }

 a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--rr-bronze) !important;
  outline-offset: 3px;
}

@media (max-width: 768px) {
  .content-wrap, .page-shell, .container, .section-inner, .auth-shell, .legal-shell { width: min(100% - 28px, 1180px); }
  .rr-card, .card, .panel, .result-card, .city-card, .favorite-card, .plan-card,
  .auth-card, .account-card, .legal-card, .compare-card, .calculator-card,
  [class*="-card"] { border-radius: 14px !important; }
  table { display: block; overflow-x: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media (forced-colors: active) {
  .btn-primary, .btn-secondary, .nav-cta-btn, .mag-button { border: 2px solid ButtonText !important; }
}