/* ============================================================
   Christine Vieira, PMHNP — Custom overrides on top of Bulma
   ============================================================ */

/* ----- Brand Colors ----- */
:root {
  color-scheme: only light;

  /* Override Bulma's dark-mode title/text variables */
  --bulma-title-color: #1e2e32;
  --bulma-text-strong: #1e2e32;
  --bulma-text:        #1e2e32;
  --bulma-body-color:  #1e2e32;

  --cv-teal-dark:   #1a5f6e;
  --cv-teal:        #2a7f8e;
  --cv-teal-mid:    #3d9aaa;
  --cv-teal-light:  #e6f4f7;
  --cv-teal-pale:   #f0f9fb;
  --cv-accent:      #4ab3c5;
  --cv-text-muted:  #4a6570;
}

/* Force light theme — prevent browser dark mode from overriding backgrounds */
body {
  background-color: #ffffff !important;
  color: #1e2e32 !important;
}
.section,
.card,
.box,
.navbar,
.footer,
.notification {
  color-scheme: light;
}
.section:not(.cv-section-alt) { background-color: #ffffff; }

/* Ensure <strong> is always high-contrast regardless of parent text color */
strong { color: #1e2e32 !important; }

/* Extend Bulma's primary color to teal */
.button.is-primary,
.button.is-primary:hover,
.button.is-primary:focus { background-color: var(--cv-teal) !important; border-color: var(--cv-teal) !important; }
.button.is-primary:hover  { background-color: var(--cv-teal-dark) !important; }

/* ----- Fonts ----- */
body { font-family: 'Inter', system-ui, sans-serif; }
h1, h2, h3, h4, h5, .title { font-family: 'Lora', Georgia, serif; }

/* Smooth scroll — anchor offset handled by JS */
html { scroll-behavior: smooth; }

/* ============================================================
   NAVBAR
   ============================================================ */
.cv-navbar {
  border-bottom: 1px solid #e8f4f7;
  box-shadow: 0 1px 8px rgba(26,95,110,.08);
}

.cv-brand-photo {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  border-radius: 50%;
  object-fit: cover;
  object-position: top center;
  margin-right: .65rem;
  border: 2px solid var(--cv-teal-light);
  flex-shrink: 0;
  display: block;
}

.cv-brand {
  display: flex !important;
  align-items: center !important;
  padding-top: .5rem !important;
  padding-bottom: .5rem !important;
}

.cv-brand-name {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--cv-teal-dark);
  line-height: 1.2;
}
.cv-brand-creds {
  font-size: .72rem;
  color: var(--cv-text-muted);
  letter-spacing: .04em;
  line-height: 1;
}

/* ============================================================
   HERO + ABOUT
   ============================================================ */
.cv-hero {
  position: relative;
  overflow: hidden;
}

/* Dark gradient top zone */
.cv-hero-top {
  background: linear-gradient(150deg, var(--cv-teal-dark) 0%, #0e3d47 40%, #1a5f6e 70%, var(--cv-teal) 100%);
  padding: 1rem 1.5rem 5rem;
  position: relative;
}
/* Decorative circles on the dark zone */
.cv-hero-top::before,
.cv-hero-top::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}
.cv-hero-top::before { width: 600px; height: 600px; top: -200px; right: -150px; }
.cv-hero-top::after  { width: 400px; height: 400px; bottom: -180px; left: -80px; }

/* Anchor helper — scroll-padding-top on html handles the navbar offset */
.cv-anchor {
  display: block;
  visibility: hidden;
}

/* About heading inside hero */
.cv-about-heading {
  font-family: 'Lora', Georgia, serif;
  font-size: clamp(1.4rem, 3vw, 2rem);
  color: #ffffff;
}

/* Divider between intro and bio */
.cv-hero-divider {
  border: none;
  border-top: 1px solid rgba(255,255,255,.15);
  margin: 0 0 0;
}

/* Bio text on dark background */
.cv-bio-lead {
  font-size: 1.05rem;
  color: rgba(255,255,255,.95);
  font-weight: 400;
  line-height: 1.75;
  font-family: 'Lora', Georgia, serif;
}
.cv-bio-text {
  font-size: .95rem;
  color: rgba(255,255,255,.75);
  line-height: 1.75;
}

/* Chips on dark background */
.cv-tag-dark {
  background-color: rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.9) !important;
  border: 1px solid rgba(255,255,255,.25) !important;
}

.cv-eyebrow {
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cv-accent);
  margin-bottom: 1rem;
}
.cv-hero-title {
  font-size: clamp(2rem, 6vw, 3.5rem) !important;
  color: #fff !important;
  margin-bottom: .5rem !important;
}
.cv-hero-creds {
  color: var(--cv-accent);
  font-style: italic;
}
.cv-hero-tagline {
  font-family: 'Lora', Georgia, serif;
  font-size: clamp(1rem, 2.5vw, 1.35rem) !important;
  color: rgba(255,255,255,.9) !important;
  margin-bottom: .5rem;
}
.cv-hero-sub {
  font-size: .875rem;
  color: rgba(255,255,255,.6);
  margin-bottom: 1.5rem;
}
/* Hero photo */
.cv-hero-photo-wrap {
  position: relative;
  width: 320px;
}
.cv-hero-photo {
  width: 320px;
  height: 420px;
  object-fit: cover;
  object-position: top center;
  border-radius: 160px 160px 120px 120px;
  border: 4px solid rgba(255,255,255,.25);
  box-shadow: 0 16px 48px rgba(0,0,0,.35);
  display: block;
}
.cv-hero-photo-placeholder {
  width: 320px;
  height: 420px;
  border-radius: 160px 160px 120px 120px;
  border: 3px dashed rgba(255,255,255,.3);
  background: rgba(255,255,255,.07);
  display: none;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: rgba(255,255,255,.5);
  font-size: .9rem;
}

.cv-btn-outline {
  color: #fff !important;
  border-color: rgba(255,255,255,.55) !important;
}
.cv-btn-outline:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: #fff !important;
  color: #fff !important;
}
.cv-accepting-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(8px);
  border-radius: 50px;
  padding: .45rem 1.1rem;
  font-size: .8rem;
  color: rgba(255,255,255,.85);
}
.cv-dot {
  display: inline-block;
  width: 8px; height: 8px;
  background: #5ce68e;
  border-radius: 50%;
}

/* ============================================================
   SECTION SHARED
   ============================================================ */
.cv-section-alt { background-color: #f5fbfc; }

.cv-rule {
  width: 52px;
  height: 3px;
  background: var(--cv-teal);
  border-radius: 2px;
  margin: .5rem auto 1rem;
}
.cv-subtitle { color: var(--cv-text-muted) !important; }

/* ============================================================
   ABOUT
   ============================================================ */
.cv-about-photo {
  width: 240px;
  height: 300px;
  object-fit: cover;
  object-position: top center;
  border-radius: 16px;
  box-shadow: var(--shadow-md, 0 4px 16px rgba(26,95,110,.15));
  border: 3px solid var(--cv-teal-light);
}

.cv-photo-placeholder {
  width: 220px;
  height: 280px;
  background: var(--cv-teal-light);
  border: 2px dashed #b0d8e0;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #7ab5c0;
  font-size: .875rem;
}
.cv-lead {
  font-size: 1.05rem;
  color: #1e2e32;
  font-weight: 400;
  line-height: 1.7;
}
.cv-tag {
  background-color: var(--cv-teal-light) !important;
  color: var(--cv-teal-dark) !important;
  border: 1px solid #b0d8e0 !important;
}

/* ============================================================
   SERVICE CARDS
   ============================================================ */
/* Override Bulma card text and title colors */
.card .card-content { color: #1e2e32; }
.card .card-content .title,
.card .card-content .subtitle { color: #1e2e32; }

.cv-card {
  border: 1px solid #d4ecf0;
  box-shadow: none;
  transition: transform .2s, box-shadow .2s;
  height: 100%;
  background-color: var(--cv-teal-light);
}
.cv-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(26,95,110,.12);
}
.cv-card-icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: .75rem;
}
.cv-card-text { color: var(--cv-text-muted); font-size: .9rem; }
.cv-card-heading {
  border-bottom: 2px solid var(--cv-teal-light);
  padding-bottom: .5rem;
  margin-bottom: .75rem !important;
}

/* ============================================================
   RATES
   ============================================================ */
.cv-table {
  color-scheme: light;
  font-size: .9rem;
  box-shadow: 0 0 2px 1px var(--cv-teal-dark);
}
.cv-table td, .cv-table th { color: #1e2e32; }
.cv-table.is-striped tbody tr:nth-child(odd) td  { background-color: var(--cv-teal-pale); }
.cv-table.is-striped tbody tr:nth-child(even) td { background-color: var(--cv-teal-light); }
.cv-amount { color: var(--cv-teal-dark); font-weight: 600; white-space: nowrap; }
.cv-insurance-list {
  list-style: none;
  font-size: .85rem;
  color: #1e2e32;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem .75rem;
}
.cv-insurance-list li {
  padding: .3rem .3rem .3rem 1.25em;
  position: relative;
}
.cv-insurance-list li::before {
  content: '✓';
  position: absolute;
  left: .35em;
  color: var(--cv-teal);
  font-size: .75rem;
  top: 50%;
  transform: translateY(-50%);
}

.cv-payment-list {
  list-style: none;
  font-size: .85rem;
  color: #1e2e32;
}
.cv-payment-list li {
  padding: .3rem .3rem .3rem 1.25em;
  position: relative;
  margin-bottom: .4rem;
}
.cv-payment-list li:last-child { margin-bottom: 0; }
.cv-payment-list li::before {
  content: '✓';
  position: absolute;
  left: .35em;
  color: var(--cv-teal);
  font-size: .75rem;
  top: 50%;
  transform: translateY(-50%);
}

/* ============================================================
   POLICIES
   ============================================================ */
.cv-policy-block {
  padding: 1.25rem 1.25rem 1.25rem 1.4rem;
  border-left: 3px solid var(--cv-teal);
  border-radius: 0 6px 6px 0;
  background: #fff;
  height: 100%;
}
.cv-policy-title {
  color: var(--cv-teal-dark) !important;
  margin-bottom: .4rem !important;
}

/* ============================================================
   CONTACT
   ============================================================ */
.cv-contact-item {
  display: flex;
  gap: .875rem;
  align-items: flex-start;
}
.cv-contact-icon { font-size: 1.4rem; flex-shrink: 0; width: 36px; }
.cv-contact-label {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--cv-text-muted);
  margin-bottom: .15rem;
}
.cv-contact-value { font-size: .95rem; color: #1e2e32; }
a.cv-contact-value:hover { color: var(--cv-teal); }

.cv-form-box {
  border: 1px solid #d4ecf0;
  border-radius: 14px;
  background: #f8fdfe;
  color-scheme: light;
}

/* Force form controls to light theme regardless of OS/browser dark mode */
.cv-form-box .input,
.cv-form-box .textarea,
.cv-form-box .select select {
  background-color: #ffffff !important;
  color: #1e2e32 !important;
  border-color: #b0d8e0 !important;
  color-scheme: light;
}
.cv-form-box .input::placeholder,
.cv-form-box .textarea::placeholder { color: #9ab5be !important; }
.cv-form-box .label { color: #1e2e32 !important; }

/* ============================================================
   FOOTER
   ============================================================ */
.cv-footer {
  background: #1e2e32;
  padding: 2.5rem 1.5rem;
}
.cv-footer-name {
  font-family: 'Lora', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
}
.cv-footer-sub { color: rgba(255,255,255,.55); font-size: .875rem; }
.cv-footer-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: .25rem; }
.cv-footer-nav a {
  color: rgba(255,255,255,.55);
  font-size: .85rem;
  padding: .25rem .75rem;
  border-radius: 4px;
  transition: color .2s;
}
.cv-footer-nav a:hover { color: var(--cv-accent); }
.cv-footer-emergency { font-size: .8rem; color: rgba(255,255,255,.45); }
.cv-footer-emergency strong { color: rgba(255,255,255,.65); }
.cv-copyright { font-size: .75rem; color: rgba(255,255,255,.3); }

/* Hide hero photo on mobile so text has full width */
@media (max-width: 768px) {
  .cv-hero-photo-wrap { display: none; }
}
