/* Jordan River Primary Care: soft, restorative palette over Bootstrap 5.3 */
:root {
  /* Backgrounds (light) */
  --jr-cream: #fbf8f4;
  --jr-mist: #eef5f7;          /* lightest tint of the brand blue */
  --jr-blue: #c2dde6;          /* "Lightsaber blue": borders, rules */
  --jr-silver: #bccbde;
  --jr-sage: #dfeae3;
  --jr-sage-mist: #f1f6f2;
  --jr-lavender: #ece6f2;
  --jr-blush: #f6eef3;

  /* Text and actions (all ≥ 4.5:1 on the light backgrounds) */
  --jr-ink: #3e4a52;           /* body text */
  --jr-muted: #5d6870;
  --jr-teal: #1d4e54;          /* headings, from the logo */
  --jr-teal-btn: #2a6b70;
  --jr-plum: #6b4a85;          /* soft nod to the original purple */
  --jr-clay: #a65a45;          /* warm "book" button */
  --jr-clay-hover: #8f4b39;
  --jr-leaf: #6fa36b;          /* decorative only */

  --bs-body-color: var(--jr-ink);
  --bs-body-font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-link-color-rgb: 42, 107, 112;
  --bs-link-hover-color-rgb: 29, 78, 84;
  --bs-border-radius: .75rem;
  --jr-font-display: "Cinzel", Georgia, serif;
  --jr-font-script: "Great Vibes", cursive;
}

body { background: #fff; line-height: 1.7; }
h1, h2, .display-font { font-family: var(--jr-font-display); color: var(--jr-teal); letter-spacing: .01em; font-weight: 500; }
h3, h4 { color: var(--jr-teal); font-weight: 600; }
.text-muted, .lead-muted { color: var(--jr-muted) !important; }
.script { font-family: var(--jr-font-script); font-size: 2rem; color: var(--jr-plum); }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 2000; background: #fff; padding: .5rem 1rem; }
.skip-link:focus { left: 1rem; }

/* Announcement + header */
.announcement { background: var(--jr-sage); color: var(--jr-teal); font-size: .9rem; font-weight: 500; }
.site-header { background: rgba(255,255,255,.96); backdrop-filter: blur(6px); border-bottom: 1px solid var(--jr-blue); }
.site-header .navbar-brand img { height: 56px; width: auto; }
@media (min-width: 992px) { .site-header .navbar-brand img { height: 68px; } }
.site-header .nav-link { color: var(--jr-teal); font-weight: 500; font-size: .95rem; }
.site-header .nav-link:hover, .site-header .nav-link.active { color: var(--jr-clay); }
.dropdown-menu { border-color: var(--jr-blue); }
.dropdown-item:active { background: var(--jr-teal-btn); }

/* Buttons */
.btn { border-radius: 2rem; padding-left: 1.4rem; padding-right: 1.4rem; }
.btn-book {
  --bs-btn-bg: var(--jr-clay); --bs-btn-border-color: var(--jr-clay); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--jr-clay-hover); --bs-btn-hover-border-color: var(--jr-clay-hover);
  --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--jr-clay-hover); --bs-btn-active-color: #fff;
  --bs-btn-focus-shadow-rgb: 166, 90, 69; font-weight: 600;
}
.btn-brand {
  --bs-btn-bg: var(--jr-teal-btn); --bs-btn-border-color: var(--jr-teal-btn); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--jr-teal); --bs-btn-hover-border-color: var(--jr-teal); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--jr-teal); --bs-btn-active-color: #fff; font-weight: 600;
}
.btn-outline-brand {
  --bs-btn-color: var(--jr-teal); --bs-btn-border-color: var(--jr-teal-btn);
  --bs-btn-hover-bg: var(--jr-teal-btn); --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: var(--jr-teal-btn);
  --bs-btn-active-bg: var(--jr-teal); --bs-btn-active-color: #fff; font-weight: 600;
}
.btn-outline-soft {
  --bs-btn-color: var(--jr-teal); --bs-btn-border-color: var(--jr-teal); --bs-btn-bg: rgba(255,255,255,.6);
  --bs-btn-hover-bg: #fff; --bs-btn-hover-color: var(--jr-teal); --bs-btn-hover-border-color: var(--jr-teal);
  --bs-btn-active-bg: #fff; --bs-btn-active-color: var(--jr-teal); font-weight: 600;
}
:focus-visible { outline: 3px solid var(--jr-plum); outline-offset: 2px; }

/* Hero: light wash over the photo, dark text */
.hero { position: relative; min-height: 460px; display: flex; align-items: center; color: var(--jr-ink); overflow: hidden;
  background: linear-gradient(120deg, var(--jr-cream), var(--jr-mist)); }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(251,248,244,.96) 0%, rgba(251,248,244,.88) 42%, rgba(251,248,244,.35) 75%, rgba(251,248,244,.1) 100%); }
.hero .container { position: relative; z-index: 1; }
.hero h1 { font-size: clamp(2rem, 4.5vw, 3.2rem); }
.hero .lead { max-width: 36rem; color: var(--jr-ink); }
.hero .eyebrow { color: var(--jr-plum); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; font-size: .8rem; }
.page-hero { min-height: 300px; }

.river-rule { height: 3px; width: 84px; border: 0; opacity: 1; margin: 1rem 0 1.5rem;
  background: linear-gradient(90deg, var(--jr-teal-btn), var(--jr-blue), var(--jr-leaf)); border-radius: 4px; }
.text-center .river-rule, .river-rule.mx-auto { margin-left: auto; margin-right: auto; }

/* Sections */
.section { padding: 4.5rem 0; }
.section-tint { background: var(--jr-mist); }
.section-silver { background: linear-gradient(180deg, #fff, var(--jr-sage-mist)); }
.section-accent { background: linear-gradient(135deg, var(--jr-lavender), var(--jr-mist) 60%, var(--jr-sage)); }
.section-accent .lead { color: var(--jr-ink); }

/* Service cards */
.service-card { border: 1px solid var(--jr-blue); border-radius: 1.25rem; overflow: hidden; height: 100%;
  transition: transform .2s ease, box-shadow .2s ease; background: #fff; }
.service-card:hover { transform: translateY(-3px); box-shadow: 0 .75rem 2rem rgba(29,78,84,.10); }
.service-card img { aspect-ratio: 16/9; object-fit: cover; width: 100%; height: auto; }
.service-card .icon { width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center;
  background: var(--jr-sage); color: var(--jr-teal); font-size: 1.35rem; margin-top: -42px; position: relative;
  border: 4px solid #fff; }
.service-card a.stretched-link { color: var(--jr-teal-btn); text-decoration: none; font-weight: 600; }

/* Prose from Markdown */
.prose h2 { font-size: 1.6rem; margin-top: 2.25rem; }
.prose h3 { font-size: 1.2rem; margin-top: 1.75rem; }
.prose ul li::marker { color: var(--jr-leaf); }
.prose blockquote { border-left: 4px solid var(--jr-blue); padding: .25rem 1rem; color: var(--jr-muted); }

/* Prices */
.price-card { border: 1px solid var(--jr-blue); border-radius: 1.25rem; background: #fff; overflow: hidden; }
.price-card .price-head { background: var(--jr-sage); padding: 1rem 1.25rem; }
.price-card .price-head h2 { color: var(--jr-teal); font-size: 1.2rem; margin: 0; }
.price-table { margin: 0; }
.price-table td { padding: .7rem 1.25rem; vertical-align: top; }
.price-table .price { font-weight: 700; color: var(--jr-teal); white-space: nowrap; text-align: right; }
.price-table .group th { background: var(--jr-lavender); color: var(--jr-plum); font-size: .78rem;
  letter-spacing: .12em; text-transform: uppercase; padding: .5rem 1.25rem; }

/* Provider */
.provider-photo { border-radius: 1.25rem; box-shadow: 0 1rem 2rem rgba(29,78,84,.14); border: 6px solid #fff;
  max-width: 100%; height: auto; }

/* Map */
.map-frame { border: 0; width: 100%; aspect-ratio: 16/10; border-radius: 1.25rem; background: var(--jr-mist); }
.booking-frame { border: 0; width: 100%; min-height: 720px; border-radius: 1.25rem; background: #fff; }

/* Footer: light sage */
.site-footer { background: var(--jr-sage-mist); color: var(--jr-ink); padding: 3.5rem 0 1.5rem; border-top: 1px solid var(--jr-sage); }
.site-footer a { color: var(--jr-teal-btn); }
.site-footer h2 { color: var(--jr-plum); font-family: var(--bs-body-font-family); font-size: .8rem;
  letter-spacing: .16em; text-transform: uppercase; font-weight: 700; }
.site-footer .footer-logo { max-width: 260px; }
.site-footer .legal { border-top: 1px solid var(--jr-sage); font-size: .85rem; color: var(--jr-muted); }

/* Editor preview ribbon */
.preview-ribbon { background: #fff3cd; color: #5c4400; font-weight: 600; }

@media (prefers-reduced-motion: reduce) { .service-card { transition: none; } .service-card:hover { transform: none; } }
