/*
Theme Name: Astra Child — Dr. Frye
Theme URI: https://drfryemdphd.com
Description: Astra child theme for the Dr. Richard E. Frye site. Holds the custom section CSS for the Home, About, Appointments and Contact pages (class-name based). Header, footer, nav and fonts are handled globally by Astra. Brand colours are driven by the Astra Customizer global palette — see the DESIGN TOKENS note below. See README.md for the maintenance guide.
Author: Dr. Frye redesign
Template: astra
Version: 1.9.4
*/

/* ═══════════════════════════════════════════════════════════
   DESIGN TOKENS
   ───────────────────────────────────────────────────────────
   SINGLE SOURCE OF TRUTH FOR BRAND COLOUR = the Astra Customizer
   (Appearance ▸ Customize ▸ Global ▸ Colors).

   The six brand tokens below READ Astra's global palette variables
   (--ast-global-color-*), so changing a brand colour in the
   Customizer updates BOTH Astra's own elements AND these custom
   sections together — one knob, no duplication. The hex after each
   comma is only a FALLBACK, used if Astra ever stops emitting the
   variable (e.g. the theme is swapped). Keep the fallback roughly in
   sync as a courtesy, but the Customizer value wins.

     Astra palette slot      →  used here as
     --ast-global-color-0  →  accent (terracotta)
     --ast-global-color-1  →  accent hover (dark terracotta)
     --ast-global-color-2  →  heading / dark navy
     --ast-global-color-3  →  body text
     --ast-global-color-4  →  page background
     --ast-global-color-6  →  teal
   ═══════════════════════════════════════════════════════════ */
:root {
  /* Brand colours — controlled by the Astra Customizer (see above) */
  --color-accent:        var(--ast-global-color-0, #C4623A);
  --color-accent-hover:  var(--ast-global-color-1, #A8512F);
  --color-heading:       var(--ast-global-color-2, #1A2332);
  --color-bg-dark:       var(--ast-global-color-2, #1A2332);
  --color-text:          var(--ast-global-color-3, #2C3340);
  --color-bg:            var(--ast-global-color-4, #FAFAF6);
  --color-teal:          var(--ast-global-color-6, #2A7C7F);

  /* Tints derived from the brand colours via color-mix, so they
     follow the accent/teal automatically when the Customizer value
     changes — nothing separate to keep in sync. (Replaces the old
     hardcoded rgba(196,98,58,.08) / rgba(42,124,127,.06).) */
  --color-accent-light:  color-mix(in srgb, var(--color-accent) 8%, transparent);
  --color-teal-light:    color-mix(in srgb, var(--color-teal) 6%, transparent);

  /* Custom tokens NOT in the Astra palette — no Customizer control
     exists for these, so edit them HERE. */
  --color-bg-warm:       #F0EDE6;
  --color-bg-dark-mid:   #243044;
  --color-text-muted:    #6B7280;
  --color-text-light:    #F0EDE6;
  --color-border:        rgba(44, 51, 64, 0.1);
  --color-border-strong: rgba(44, 51, 64, 0.2);

  --font-heading: 'Playfair Display', Georgia, serif;
  --font-accent: 'Libre Baskerville', Georgia, serif;
  --font-body: 'DM Sans', -apple-system, sans-serif;
  --max-width: 1200px;
  --section-padding: clamp(4rem, 8vw, 7rem);
}

/* Container used by each homepage section wrapper */
.drfrye-home .container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 clamp(1.5rem, 4vw, 3rem);
}

.drfrye-home img { max-width: 100%; height: auto; display: block; }

/* ═══ HERO ═══ */
.hero {
  padding-top: var(--section-padding);
  padding-bottom: var(--section-padding);
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  top: 0;
  right: -10%;
  width: 60%;
  height: 100%;
  background: radial-gradient(ellipse at 70% 40%, var(--color-teal-light) 0%, transparent 70%);
  pointer-events: none;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 0.85fr;
  gap: clamp(3rem, 6vw, 5rem);
  align-items: center;
}
.hero-eyebrow {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--color-teal);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.hero-eyebrow::before {
  content: '';
  width: 28px;
  height: 1.5px;
  background: var(--color-teal);
}
.hero h1 {
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--color-heading);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}
.hero h1 em {
  font-style: italic;
  color: var(--color-accent);
}
.hero-description {
  font-size: 1.1rem;
  line-height: 1.75;
  color: var(--color-text-muted);
  margin-bottom: 2rem;
  max-width: 520px;
}
.hero-ctas {
  display: flex;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
}

/* ═══ BUTTONS — lifted, mapped to bare anchors AND core button blocks ═══ */
a.btn-primary,
.wp-block-button.btn-primary > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 600;
  background: var(--color-accent);
  color: #ffffff;
  padding: 0.85rem 2rem;
  border: none;
  border-radius: 6px;
  transition: all 0.3s;
  letter-spacing: 0.01em;
}
a.btn-primary:hover,
.wp-block-button.btn-primary > .wp-block-button__link:hover {
  background: var(--color-accent-hover);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(196, 98, 58, 0.2);
}
a.btn-secondary,
.wp-block-button.btn-secondary > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 500;
  background: transparent;
  color: var(--color-heading);
  padding: 0.85rem 1.75rem;
  border: 1.5px solid var(--color-border-strong);
  border-radius: 6px;
  transition: all 0.3s;
}
a.btn-secondary:hover,
.wp-block-button.btn-secondary > .wp-block-button__link:hover {
  border-color: var(--color-heading);
  background: var(--color-heading);
  color: #ffffff;
}

.hero-image-wrapper {
  position: relative;
}
.hero-image-wrapper img {
  border-radius: 12px;
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: center top;
}
.hero-image-wrapper::after {
  content: '';
  position: absolute;
  inset: 12px -12px -12px 12px;
  border: 2px solid var(--color-teal);
  border-radius: 12px;
  opacity: 0.2;
  z-index: -1;
}
.hero-credential-bar {
  margin-top: 3rem;
  display: flex;
  align-items: center;
  gap: 1.5rem 2rem;
  flex-wrap: wrap;
}
/* These groups render in Gutenberg "flow" layout (which adds a top margin to
   each child) but are flexed into a row — zero the block margins so the
   children align in the row instead of staggering down. */
.hero-credential-bar > *,
.featured-strip-inner > *,
.newsletter-inner > *,
.hero-grid > *,
.bento-grid > *,
.bio-grid > *,
.about-intro-grid > *,
.appt-hero-grid > *,
.steps-row > *,
.region-grid > *,
.clin-grid > *,
.research-band-inner > *,
.research-band-actions > *,
.contact-hero-grid > *,
.help-grid > * {
  margin-top: 0;
  margin-bottom: 0;
}
.hero-credential-bar .credential-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  line-height: 1.3;
  color: var(--color-text-muted);
  font-weight: 500;
  white-space: nowrap;
  margin: 0;
}

/* ═══ CBS FEATURE STRIP ═══ */
.featured-strip {
  background: var(--color-bg-dark);
  padding: 1.25rem 0;
  overflow: hidden;
}
.featured-strip-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.featured-strip p {
  font-size: 0.82rem;
  color: var(--color-text-light);
  font-weight: 500;
  letter-spacing: 0.02em;
  margin: 0;
}
.featured-strip strong {
  color: white;
  font-weight: 700;
}
.featured-strip a {
  font-size: 0.78rem;
  color: var(--color-accent);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.2s;
}
.featured-strip a:hover { opacity: 0.8; }

/* ═══ SECTION LABEL ═══ */
.section-label {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-accent);
  margin-bottom: 1.25rem;
}

/* ═══ BIO SECTION ═══ */
.bio-section {
  padding: var(--section-padding) 0;
  background: var(--color-bg);
}
.bio-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(3rem, 6vw, 5rem);
  align-items: center;
}
.bio-img-wrap { position: relative; }
.bio-img-wrap img {
  border-radius: 16px;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: center 15%;
}
.bio-img-float {
  position: absolute;
  bottom: -24px;
  right: -24px;
  background: #fff;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 12px 40px rgba(26, 35, 50, 0.1);
  max-width: 210px;
}
.bio-img-float strong {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  color: var(--color-accent);
  display: block;
  line-height: 1;
  margin-bottom: 0.35rem;
}
.bio-img-float span {
  font-size: 0.74rem;
  color: var(--color-text-muted);
  font-weight: 500;
  line-height: 1.4;
}
.bio-content h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 500;
  color: var(--color-heading);
  line-height: 1.2;
  margin-bottom: 1.25rem;
  letter-spacing: -0.015em;
}
.bio-content p {
  font-size: 1rem;
  color: var(--color-text-muted);
  line-height: 1.85;
  margin-bottom: 1rem;
}
.bio-content blockquote {
  font-family: var(--font-accent);
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--color-heading);
  border-left: 3px solid var(--color-accent);
  padding-left: 1.5rem;
  margin: 1.75rem 0;
}

/* ═══ BENTO AUDIENCE ═══ */
.bento-section {
  padding: var(--section-padding) 0;
  background: var(--color-bg-warm);
}
.bento-header { margin-bottom: 3rem; }
.bento-header h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  font-weight: 500;
  color: var(--color-heading);
  margin-bottom: 1rem;
  letter-spacing: -0.015em;
}
.bento-header p {
  font-size: 1rem;
  color: var(--color-text-muted);
  line-height: 1.7;
  max-width: 520px;
}
.bento-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 1.25rem;
}
.bento-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
  text-decoration: none;
  position: relative;
}
.bento-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--color-teal);
  transform: scaleX(0);
  transition: transform 0.35s ease;
  z-index: 2;
}
.bento-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 50px rgba(26, 35, 50, 0.08);
  border-color: transparent;
}
.bento-card:hover::before { transform: scaleX(1); }
.bento-card.tall { grid-row: span 2; }
.bento-card-img { overflow: hidden; }
.bento-card-img img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.bento-card.tall .bento-card-img { flex: 1; }
.bento-card.tall .bento-card-img img { height: 100%; min-height: 320px; }
/* Block images render inside a <figure>; remove its margin and let the
   tall card's image figure fill the stretched column. */
.bento-card-img .wp-block-image,
.hero-image-wrapper .wp-block-image,
.bio-img-wrap .wp-block-image,
.book-cover .wp-block-image { margin: 0; }
.bento-card.tall .bento-card-img,
.bento-card.tall .bento-card-img .wp-block-image { height: 100%; }
.bento-card:hover .bento-card-img img { transform: scale(1.05); }
.bento-card-body { padding: clamp(1.5rem, 3vw, 1.85rem); }
.bento-card-body h3 {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--color-heading);
  margin-bottom: 0.6rem;
}
.bento-card-body p {
  font-size: 0.88rem;
  color: var(--color-text-muted);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}
.bento-link {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-accent);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: gap 0.25s;
}
.bento-card:hover .bento-link { gap: 0.7rem; }

/* ═══ BOOK SECTION ═══ */
.book-section {
  padding: var(--section-padding) 0;
  background: var(--color-bg);
}
.book-grid {
  display: grid;
  grid-template-columns: 0.4fr 1fr;
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: center;
}
.book-cover {
  position: relative;
}
.book-cover img {
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(26, 35, 50, 0.15), 0 4px 12px rgba(26, 35, 50, 0.08);
  transition: transform 0.4s ease;
}
.book-cover:hover img {
  transform: rotate(-2deg) translateY(-4px);
}
.book-badge {
  position: absolute;
  top: -12px;
  right: -12px;
  background: var(--color-accent);
  color: white;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.4rem 0.8rem;
  border-radius: 4px;
  transform: rotate(3deg);
  z-index: 2;
}
.book-content h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 500;
  color: var(--color-heading);
  margin-bottom: 0.5rem;
  letter-spacing: -0.01em;
}
.book-subtitle {
  font-family: var(--font-accent);
  font-size: 1rem;
  font-style: italic;
  color: var(--color-text-muted);
  margin-bottom: 1.5rem;
}
.book-content p {
  font-size: 0.95rem;
  color: var(--color-text-muted);
  line-height: 1.8;
  margin-bottom: 1.5rem;
}

/* ═══ RECENT PUBLICATIONS ═══ */
.publications-section {
  padding: var(--section-padding) 0;
  background: var(--color-bg);
}
.publications-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 3rem;
  gap: 1rem;
  flex-wrap: wrap;
}
.publications-header h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  font-weight: 500;
  color: var(--color-heading);
  letter-spacing: -0.015em;
}
.pub-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.pub-item {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--color-border);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.5rem;
  align-items: start;
  transition: background 0.2s;
}
.pub-item:first-child {
  border-top: 1px solid var(--color-border);
}
.pub-item:hover {
  background: var(--color-accent-light);
  margin: 0 -1rem;
  padding-left: 1rem;
  padding-right: 1rem;
}
.pub-date {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding-top: 0.15rem;
  white-space: nowrap;
}
.pub-item h3,
.pub-list a.pub-item .pub-title {
  display: block;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-heading);
  line-height: 1.45;
  margin-bottom: 0.4rem;
}
/* Recent Publications rows are now real links (whole row clickable) */
.pub-list a.pub-item { text-decoration: none; color: inherit; }
.pub-list a.pub-item .pub-body { display: block; min-width: 0; }
.pub-list a.pub-item:hover .pub-title { color: var(--color-accent); }
.pub-category {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-teal);
  background: var(--color-teal-light);
  padding: 0.2rem 0.6rem;
  border-radius: 3px;
}
.pub-arrow {
  color: var(--color-text-muted);
  padding-top: 0.15rem;
  transition: transform 0.2s;
}
.pub-item:hover .pub-arrow {
  transform: translateX(3px);
  color: var(--color-accent);
}

/* ═══ NEWSLETTER CTA ═══ */
.newsletter-section {
  padding: 3.5rem 0;
  background: var(--color-bg-warm);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.newsletter-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.newsletter-text h3 {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  color: var(--color-heading);
  margin-bottom: 0.35rem;
}
.newsletter-text p {
  font-size: 0.88rem;
  color: var(--color-text-muted);
  margin: 0;
}
.newsletter-form {
  display: flex;
  gap: 0.5rem;
}
.newsletter-form input {
  font-family: var(--font-body);
  font-size: 0.88rem;
  padding: 0.75rem 1.25rem;
  border: 1.5px solid var(--color-border-strong);
  border-radius: 6px;
  background: white;
  width: 280px;
  outline: none;
  transition: border-color 0.2s;
}
.newsletter-form input:focus {
  border-color: var(--color-teal);
}
.newsletter-form button {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  background: var(--color-heading);
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.25s;
}
.newsletter-form button:hover {
  background: var(--color-accent);
}

/* ═══ WPFORMS THEMING — make real WPForms match the editorial design ═══
   WPForms is set to "base CSS only", so it ships no theme styling and its
   .wpforms-* markup (NOT the old .newsletter-form mockup classes) was unstyled.
   These rules style every WPForms site-wide: newsletter 15247 + contact 15245. */
.wpforms-container { margin: 0; width: 100%; }
.wpforms-container form.wpforms-form .wpforms-field { padding: 0 0 1.1rem; }
.wpforms-container form.wpforms-form .wpforms-field-label {
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-heading);
  margin: 0 0 0.45rem;
  line-height: 1.3;
}
.wpforms-container form.wpforms-form .wpforms-field-sublabel,
.wpforms-container form.wpforms-form .wpforms-field-description {
  font-weight: 400;
  font-size: 0.78rem;
  color: var(--color-text-muted);
}
.wpforms-container form.wpforms-form .wpforms-required-label { color: var(--color-accent); border: 0; }
.wpforms-container form.wpforms-form input[type="text"],
.wpforms-container form.wpforms-form input[type="email"],
.wpforms-container form.wpforms-form input[type="tel"],
.wpforms-container form.wpforms-form input[type="url"],
.wpforms-container form.wpforms-form input[type="number"],
.wpforms-container form.wpforms-form textarea,
.wpforms-container form.wpforms-form select {
  font-family: var(--font-body);
  font-size: 0.92rem;
  padding: 0.7rem 1rem;
  border: 1.5px solid var(--color-border-strong);
  border-radius: 6px;
  background: #fff;
  color: var(--color-text);
  width: 100%;
  max-width: 100%;
  box-shadow: none;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.wpforms-container form.wpforms-form input:focus,
.wpforms-container form.wpforms-form textarea:focus,
.wpforms-container form.wpforms-form select:focus {
  border-color: var(--color-teal);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-teal) 14%, transparent);
}
.wpforms-container form.wpforms-form input::placeholder,
.wpforms-container form.wpforms-form textarea::placeholder { color: var(--color-text-muted); opacity: 1; }
.wpforms-container form.wpforms-form textarea { min-height: 130px; resize: vertical; }
/* checkbox / radio groups */
.wpforms-container form.wpforms-form .wpforms-field-checkbox ul,
.wpforms-container form.wpforms-form .wpforms-field-radio ul { list-style: none; margin: 0; padding: 0; }
.wpforms-container form.wpforms-form .wpforms-field-checkbox li,
.wpforms-container form.wpforms-form .wpforms-field-radio li {
  margin: 0 0 0.5rem; display: flex; align-items: flex-start; gap: 0.55rem;
}
.wpforms-container form.wpforms-form .wpforms-field-checkbox label,
.wpforms-container form.wpforms-form .wpforms-field-radio label {
  font-weight: 400; font-size: 0.9rem; color: var(--color-text); margin: 0; line-height: 1.45;
}
.wpforms-container form.wpforms-form input[type="checkbox"],
.wpforms-container form.wpforms-form input[type="radio"] {
  accent-color: var(--color-accent); width: 1.05rem; height: 1.05rem; margin-top: 0.15rem; flex: 0 0 auto;
}
/* submit button → match .btn-primary */
.wpforms-container form.wpforms-form button.wpforms-submit {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  background: var(--color-accent);
  color: #fff;
  padding: 0.8rem 1.9rem;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.25s, transform 0.2s;
}
.wpforms-container form.wpforms-form button.wpforms-submit:hover {
  background: var(--color-accent-hover); transform: translateY(-1px);
}
.wpforms-confirmation-container-full {
  background: var(--color-teal-light);
  border: 1px solid var(--color-teal);
  color: var(--color-heading);
  border-radius: 6px; padding: 1rem 1.25rem; font-size: 0.92rem;
}
/* Newsletter single-email forms (Home/Parents/Resources/Appointments) — inline, label hidden */
.newsletter-section .wpforms-container { width: auto; }
.newsletter-section form.wpforms-form { display: flex; align-items: stretch; gap: 0.6rem; flex-wrap: nowrap; }
.newsletter-section form.wpforms-form .wpforms-field-container { flex: 0 0 280px; }
.newsletter-section form.wpforms-form .wpforms-field { padding: 0; }
.newsletter-section form.wpforms-form .wpforms-field-label {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.newsletter-section form.wpforms-form input[type="email"] { width: 280px; height: 100%; }
.newsletter-section form.wpforms-form .wpforms-submit-container { flex: 0 0 auto; display: flex; margin: 0 !important; padding: 0 !important; }
.newsletter-section form.wpforms-form button.wpforms-submit { white-space: nowrap; height: 100%; margin: 0; }

/* ═══ GTRANSLATE — language switcher injected into the header nav (show_in_menu) ═══
   GTranslate renders the switcher as an absolutely-positioned div inside a zero-width
   <li>, which overlaps the Appointments button that follows it. Force it back into flow
   so the <li> takes real width and the button sits to its right. */
.menu-item-gtranslate { display: flex; align-items: center; margin-left: 0.6rem; }
.menu-item-gtranslate > div[id^="gtranslate_menu_wrapper"] {
  position: static !important;
  display: flex; align-items: center; white-space: nowrap;
}
.menu-item-gtranslate select.notranslate,
.menu-item-gtranslate .gt_selector,
.menu-item-gtranslate select {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text);
  border: 1px solid var(--color-border-strong);
  border-radius: 6px;
  padding: 0.34rem 0.5rem;
  background-color: #fff;
  cursor: pointer;
  max-width: 160px;
  line-height: 1.2;
}
.menu-item-gtranslate select.notranslate:hover,
.menu-item-gtranslate .gt_selector:hover { border-color: var(--color-accent); }
/* Inside the dark off-canvas mobile menu, keep the control readable */
.ast-mobile-popup-drawer .menu-item-gtranslate { margin: 0.5rem 0 0; }

/* ═══ SCROLL-REVEAL ANIMATIONS ═══ */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

/* ═══ RESPONSIVE — lifted from v15 (homepage section rules only) ═══ */
@media (max-width: 968px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-image-wrapper { max-width: 400px; }
  .book-grid { grid-template-columns: 0.5fr 1fr; }
  .bio-grid { grid-template-columns: 1fr; }
  .bio-img-float { position: static; margin-top: 1.5rem; max-width: none; }
  .bento-grid { grid-template-columns: 1fr; }
  .bento-card.tall { grid-row: span 1; }
  .bento-card.tall .bento-card-img img { min-height: 220px; }
}

/* ═══ FOOTER (Astra footer builder, populated via custom HTML widgets) ═══ */
.ft-brand {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 0.5rem;
}
.site-footer .ft-links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-footer .ft-links li {
  margin: 0 0 0.3rem;
}

@media (max-width: 640px) {
  .book-grid { grid-template-columns: 1fr; text-align: center; }
  .book-cover { max-width: 250px; margin: 0 auto; }
  .hero-credential-bar { gap: 1.25rem; }
  .publications-header { flex-direction: column; align-items: flex-start; gap: 1rem; }
  .pub-item { grid-template-columns: 1fr; gap: 0.5rem; }
  .pub-date { order: -1; }
  .pub-arrow { display: none; }
  .newsletter-inner { flex-direction: column; text-align: center; }
  .newsletter-form { flex-direction: column; width: 100%; }
  .newsletter-form input { width: 100%; }
  .newsletter-section .wpforms-container { width: 100%; }
  .newsletter-section form.wpforms-form { flex-direction: column; }
  .newsletter-section form.wpforms-form .wpforms-field-container { flex: 1 1 auto; width: 100%; }
  .newsletter-section form.wpforms-form input[type="email"] { width: 100%; }
  .newsletter-section form.wpforms-form .wpforms-submit-container,
  .newsletter-section form.wpforms-form button.wpforms-submit { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════
   INNER PAGES — lifted from drfrye-about.html
   (page-hero, about intro, mission band, timeline, CTA band)
   ═══════════════════════════════════════════════════════════ */

/* Inner page hero (reusable on all sub-pages) */
.page-hero {
  background: var(--color-bg-warm);
  padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(3rem, 6vw, 4.5rem);
  border-bottom: 1px solid var(--color-border);
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  top: -40%; right: -8%;
  width: 480px; height: 480px;
  background: var(--color-teal-light);
  border-radius: 50%;
  z-index: 0;
}
.page-hero .container { position: relative; z-index: 1; }
.breadcrumb {
  font-size: 0.74rem; font-weight: 500; color: var(--color-text-muted);
  letter-spacing: 0.04em; margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.5rem;
}
.breadcrumb a { color: var(--color-text-muted); transition: color 0.2s; }
.breadcrumb a:hover { color: var(--color-accent); }
.breadcrumb span { color: var(--color-border-strong); }
.page-hero h1 {
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  font-weight: 600; color: var(--color-heading);
  line-height: 1.1; letter-spacing: -0.02em; max-width: 800px;
}
.page-hero .page-hero-sub {
  font-size: 1.05rem; color: var(--color-text-muted);
  line-height: 1.7; max-width: 640px; margin-top: 1.25rem;
}

/* About: intro */
.about-intro { padding: var(--section-padding) 0; }
.about-intro-grid {
  display: grid; grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(2.5rem, 5vw, 4.5rem); align-items: start;
}
.about-portrait { position: relative; }
.about-portrait img {
  width: 100%; border-radius: 12px; aspect-ratio: 1; object-fit: cover; object-position: center 20%;
}
/* Frame hugs the photo only (the caption sits below it, outside the frame). */
.about-portrait .wp-block-image { position: relative; margin: 0; }
.about-portrait .wp-block-image::after {
  content: ''; position: absolute; inset: 14px -14px -14px 14px;
  border: 2px solid var(--color-teal); border-radius: 12px; opacity: 0.2; z-index: -1;
}
.about-portrait-caption { margin-top: 1.5rem; }
.about-portrait-caption strong {
  display: block; font-family: var(--font-heading); font-size: 1.05rem;
  font-weight: 600; color: var(--color-heading);
}
.about-portrait-caption span { font-size: 0.82rem; color: var(--color-text-muted); }
.about-social { display: flex; gap: 0.6rem; margin-top: 0.85rem; }
.about-social a {
  width: 34px; height: 34px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  background: var(--color-bg-warm); color: var(--color-heading);
  transition: all 0.25s;
}
.about-social a:hover { background: var(--color-accent); color: #fff; transform: translateY(-2px); }
.about-social svg { width: 16px; height: 16px; }
.prose p { font-size: 1rem; color: var(--color-text); line-height: 1.9; margin-bottom: 1.25rem; }
.prose .prose-link { color: var(--color-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.prose .prose-link:hover { color: var(--color-accent-hover); }
.prose-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.75rem; }

/* Mission band */
.mission-band { background: var(--color-bg-warm); padding: clamp(3.5rem, 7vw, 5.5rem) 0; }
.mission-band .container { max-width: 880px; margin-left: auto; margin-right: auto; text-align: center; }
.mission-band blockquote {
  font-family: var(--font-accent); font-style: italic;
  font-size: clamp(1.15rem, 2.2vw, 1.5rem); line-height: 1.6;
  color: var(--color-heading);
  border: 0; padding: 0; margin: 0;
}
.mission-band cite {
  display: block; margin-top: 1.5rem; font-style: normal;
  font-family: var(--font-body); font-size: 0.85rem; font-weight: 600;
  color: var(--color-accent); letter-spacing: 0.02em;
}

/* Timeline */
.timeline-section { padding: var(--section-padding) 0; }
.timeline-heading {
  font-family: var(--font-heading); font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 600; color: var(--color-heading);
}
.timeline { margin-top: 3rem; position: relative; }
.timeline::before {
  content: ''; position: absolute; left: 168px; top: 8px; bottom: 8px;
  width: 2px; background: var(--color-border);
}
.timeline-item {
  display: grid; grid-template-columns: 150px 1fr; gap: 2.5rem;
  padding-bottom: 2.5rem; position: relative;
}
.timeline-item:last-child { padding-bottom: 0; }
.timeline-year {
  font-family: var(--font-body); font-size: 0.8rem; font-weight: 700;
  color: var(--color-accent); letter-spacing: 0.04em; text-align: right;
  padding-top: 0.15rem;
}
.timeline-body { position: relative; padding-left: 2.5rem; }
.timeline-body::before {
  content: ''; position: absolute; left: -7px; top: 6px;
  width: 14px; height: 14px; border-radius: 50%;
  background: #fff; border: 3px solid var(--color-teal); z-index: 1;
}
.timeline-body h3 {
  font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600;
  color: var(--color-heading); margin-bottom: 0.2rem;
}
.timeline-role {
  display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-teal); margin-bottom: 0.6rem;
}
.timeline-body p { font-size: 0.9rem; color: var(--color-text-muted); line-height: 1.75; }

/* CTA band (reusable, dark) */
.cta-band { padding: clamp(3.5rem, 7vw, 5.5rem) 0; background: var(--color-bg-dark); text-align: center; }
.cta-band h2 {
  font-family: var(--font-heading); font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 600; color: white; margin-bottom: 1rem;
}
.cta-band p { color: rgba(240,237,230,0.7); max-width: 520px; margin: 0 auto 2rem; line-height: 1.7; }
.cta-band .hero-ctas { justify-content: center; }
/* Secondary button on the dark CTA band: white outline */
.cta-band a.btn-secondary,
.cta-band .wp-block-button.btn-secondary > .wp-block-button__link {
  color: #fff; border-color: rgba(255,255,255,0.3);
}
.cta-band a.btn-secondary:hover,
.cta-band .wp-block-button.btn-secondary > .wp-block-button__link:hover {
  background: #fff; color: var(--color-heading); border-color: #fff;
}

@media (max-width: 968px) {
  .about-intro-grid { grid-template-columns: 1fr; }
  .about-portrait { max-width: 340px; }
  .timeline::before { left: 7px; }
  .timeline-item { grid-template-columns: 1fr; gap: 0.35rem; }
  .timeline-year { text-align: left; padding-left: 2.5rem; order: 2; }
  .timeline-body { padding-left: 2.5rem; }
  .timeline-body::before { left: 0; }
}

/* ═══════════════════════════════════════════════════════════
   APPOINTMENTS PAGE — lifted from drfrye-appointments.html
   ═══════════════════════════════════════════════════════════ */
.eyebrow { font-size:0.62rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--color-accent); margin-bottom:0.85rem; display:flex; align-items:center; gap:0.6rem; }
.eyebrow::before { content:''; width:24px; height:1.5px; background:var(--color-accent); display:inline-block; }

/* Appt hero (warm split) */
.appt-hero { background:var(--color-bg-warm); padding: clamp(3rem,6vw,4.5rem) 0 clamp(3.5rem,7vw,5rem); position:relative; overflow:hidden; }
.appt-hero::before { content:''; position:absolute; top:-30%; left:-6%; width:420px; height:420px; background:var(--color-teal-light); border-radius:50%; }
.appt-hero::after { content:''; position:absolute; bottom:-35%; right:-4%; width:360px; height:360px; background:var(--color-accent-light); border-radius:50%; }
.appt-hero .container { position:relative; z-index:1; }
.appt-hero-grid { display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:center; }
.appt-hero h1 { font-family:var(--font-heading); font-size:clamp(2.3rem,4.8vw,3.5rem); font-weight:600; color:var(--color-heading); line-height:1.08; letter-spacing:-0.02em; margin-bottom:1.25rem; }
.appt-hero h1 em { font-style:italic; color:var(--color-accent); }
.appt-hero p { font-size:1.05rem; color:var(--color-text-muted); line-height:1.75; max-width:480px; }
.appt-hero-trust { display:flex; flex-wrap:wrap; gap:1.5rem; margin-top:2rem; }
.appt-hero-trust div { display:flex; align-items:center; gap:0.5rem; font-size:0.8rem; font-weight:500; color:var(--color-text); }
.appt-hero-trust svg { width:17px; height:17px; color:var(--color-teal); flex-shrink:0; }
.appt-hero-img { position:relative; }
.appt-hero-img .wp-block-image { margin:0; }
.appt-hero-img img { width:100%; border-radius:14px; aspect-ratio:4/5; object-fit:cover; object-position:center 20%; box-shadow:0 24px 60px rgba(26,35,50,0.14); }
.appt-hero-img::after { content:''; position:absolute; inset:16px -16px -16px 16px; border:2px solid var(--color-teal); border-radius:14px; opacity:0.25; z-index:-1; }

/* Region chooser */
.region-section { padding: var(--section-padding) 0 0; }
.section-head-center { text-align:center; max-width:560px; margin:0 auto clamp(2.5rem,4vw,3.5rem); }
.section-head-center .eyebrow { justify-content:center; }
.section-head-center h2 { font-family:var(--font-heading); font-size:clamp(1.8rem,3.2vw,2.5rem); font-weight:600; color:var(--color-heading); line-height:1.15; margin-bottom:0.75rem; }
.section-head-center p { font-size:0.98rem; color:var(--color-text-muted); line-height:1.7; }
.region-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.region-card { border:1px solid var(--color-border); border-radius:18px; overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:all 0.4s cubic-bezier(0.16,1,0.3,1); }
.region-card:hover { transform:translateY(-6px); box-shadow:0 24px 56px rgba(26,35,50,0.1); border-color:transparent; }
.region-card-head { display:flex; align-items:center; gap:1rem; padding:1.5rem 2rem; background:var(--color-bg-warm); border-bottom:1px solid var(--color-border); }
.region-card:nth-child(2) .region-card-head { background:var(--color-teal-light); }
.region-logo { width:60px; height:60px; border-radius:12px; background:#fff; display:flex; align-items:center; justify-content:center; padding:9px; flex-shrink:0; box-shadow:0 2px 10px rgba(26,35,50,0.06); }
.region-logo img { max-width:100%; max-height:100%; object-fit:contain; }
.region-card-head .r-region { font-size:0.62rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--color-teal); display:block; margin-bottom:2px; }
.region-card-head .r-clinic { font-family:var(--font-heading); font-size:1.05rem; font-weight:600; color:var(--color-heading); }
.region-card-body { padding:2rem; display:flex; flex-direction:column; flex-grow:1; }
.region-card-body h3 { font-family:var(--font-heading); font-size:1.4rem; font-weight:600; color:var(--color-heading); margin-bottom:0.6rem; }
.region-card-body p { font-size:0.92rem; color:var(--color-text-muted); line-height:1.75; margin-bottom:1.5rem; flex-grow:1; }
.region-contact { font-size:0.85rem; color:var(--color-text); background:var(--color-bg); border:1px solid var(--color-border); border-radius:10px; padding:0.85rem 1.1rem; margin-bottom:1.5rem; }
.region-contact strong { color:var(--color-heading); display:block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:3px; }
.region-contact a { color:var(--color-accent); font-weight:600; }
.region-card .wp-block-buttons { margin-top:auto; }

/* How to get started */
.steps-section { padding: var(--section-padding) 0; }
.steps-row { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:1rem; position:relative; }
.steps-row::before { content:''; position:absolute; top:28px; left:16%; right:16%; height:2px; background:var(--color-border); }
.step-col { text-align:center; position:relative; }
.step-col .step-circle { width:58px; height:58px; border-radius:50%; background:var(--color-heading); color:#fff; font-family:var(--font-heading); font-size:1.3rem; font-weight:600; display:flex; align-items:center; justify-content:center; margin:0 auto 1.25rem; position:relative; z-index:1; }
.step-col:nth-child(2) .step-circle { background:var(--color-accent); }
.step-col:nth-child(3) .step-circle { background:var(--color-teal); }
.step-col h3 { font-family:var(--font-heading); font-size:1.1rem; font-weight:600; color:var(--color-heading); margin-bottom:0.5rem; }
.step-col p { font-size:0.86rem; color:var(--color-text-muted); line-height:1.7; max-width:280px; margin:0 auto; }

/* Clinician zone (dark) */
.clinician-zone { background:var(--color-bg-dark); padding: var(--section-padding) 0; position:relative; overflow:hidden; }
.clinician-zone::before { content:''; position:absolute; top:-20%; right:-6%; width:420px; height:420px; background:rgba(42,124,127,0.12); border-radius:50%; }
.clinician-zone .container { position:relative; z-index:1; }
.clinician-zone .eyebrow { color:var(--color-accent); }
.clinician-zone h2 { font-family:var(--font-heading); font-size:clamp(1.8rem,3.2vw,2.5rem); font-weight:600; color:#fff; line-height:1.15; margin-bottom:0.75rem; }
.clinician-zone .zone-intro { font-size:0.98rem; color:rgba(240,237,230,0.6); line-height:1.7; max-width:560px; margin-bottom:2.5rem; }
.clin-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.clin-card { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09); border-radius:16px; padding:2rem; transition:all 0.35s; display:flex; flex-direction:column; }
.clin-card:hover { background:rgba(255,255,255,0.07); border-color:rgba(42,124,127,0.5); transform:translateY(-4px); }
.clin-card-top { display:flex; align-items:center; gap:0.85rem; margin-bottom:1.1rem; }
.clin-logo { width:48px; height:48px; border-radius:10px; background:#fff; display:flex; align-items:center; justify-content:center; padding:7px; flex-shrink:0; }
.clin-logo img { max-width:100%; max-height:100%; object-fit:contain; }
.clin-tag { font-size:0.6rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--color-teal); }
.clin-card h3 { font-family:var(--font-heading); font-size:1.25rem; font-weight:600; color:#fff; margin-bottom:0.6rem; }
.clin-card p { font-size:0.88rem; color:rgba(240,237,230,0.55); line-height:1.7; margin-bottom:1.5rem; flex-grow:1; }
.clin-card .btn-link { font-size:0.82rem; font-weight:600; color:var(--color-accent); display:inline-flex; align-items:center; gap:0.4rem; align-self:flex-start; transition:gap 0.3s; }
.clin-card .btn-link svg { width:15px; height:15px; }
.clin-card:hover .btn-link { gap:0.7rem; }

/* Research inquiries (slim warm band) */
.research-band { background:var(--color-bg-warm); padding: clamp(3.5rem,6vw,4.5rem) 0; }
.research-band-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.research-band-text { max-width:600px; }
.research-band-text h3 { font-family:var(--font-heading); font-size:1.4rem; font-weight:600; color:var(--color-heading); margin-bottom:0.5rem; }
.research-band-text p { font-size:0.92rem; color:var(--color-text-muted); line-height:1.7; margin:0; }
.research-band-text p a { color:var(--color-accent); font-weight:600; }
.research-band-actions { display:flex; gap:0.85rem; flex-shrink:0; flex-wrap:wrap; }
.research-band-actions .wp-block-buttons { gap:0.85rem; }

@media (max-width: 968px) {
  .appt-hero-grid { grid-template-columns:1fr; }
  .appt-hero-img { max-width:380px; order:-1; }
  .region-grid { grid-template-columns:1fr; }
  .steps-row { grid-template-columns:1fr; gap:2.5rem; }
  .steps-row::before { display:none; }
  .clin-grid { grid-template-columns:1fr; }
  .research-band-inner { flex-direction:column; align-items:flex-start; }
}

/* ═══════════════════════════════════════════════════════════
   CONTACT PAGE — lifted from drfrye-contact.html
   (.section-head-center and .eyebrow already defined above)
   ═══════════════════════════════════════════════════════════ */
.contact-hero { background:var(--color-bg-warm); padding: clamp(3rem,6vw,4.5rem) 0 clamp(3.5rem,7vw,5rem); position:relative; overflow:hidden; }
.contact-hero::before { content:''; position:absolute; top:-30%; left:-6%; width:420px; height:420px; background:var(--color-teal-light); border-radius:50%; }
.contact-hero::after { content:''; position:absolute; bottom:-40%; right:-4%; width:360px; height:360px; background:var(--color-accent-light); border-radius:50%; }
.contact-hero .container { position:relative; z-index:1; }
.contact-hero-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:center; }
.contact-hero h1 { font-family:var(--font-heading); font-size:clamp(2.3rem,4.8vw,3.5rem); font-weight:600; color:var(--color-heading); line-height:1.08; letter-spacing:-0.02em; margin-bottom:1.25rem; }
.contact-hero h1 em { font-style:italic; color:var(--color-accent); }
.contact-hero p { font-size:1.05rem; color:var(--color-text-muted); line-height:1.75; max-width:480px; }
.quick-card { background:#fff; border:1px solid var(--color-border); border-radius:16px; padding:2rem; box-shadow:0 16px 48px rgba(26,35,50,0.07); }
.quick-card h3 { font-family:var(--font-heading); font-size:1.2rem; font-weight:600; color:var(--color-heading); margin-bottom:1.25rem; }
.quick-row { display:flex; align-items:center; gap:0.85rem; padding:0.85rem 0; border-bottom:1px solid var(--color-border); }
.quick-row:last-of-type { border-bottom:none; }
.quick-ic { width:40px; height:40px; border-radius:10px; background:var(--color-teal-light); color:var(--color-teal); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.quick-ic svg { width:18px; height:18px; }
.quick-row .q-label { font-size:0.68rem; font-weight:600; text-transform:uppercase; letter-spacing:0.06em; color:var(--color-text-muted); display:block; }
.quick-row .q-value { font-size:0.92rem; font-weight:500; color:var(--color-heading); }
.quick-row a.q-value:hover { color:var(--color-accent); }
.quick-social { display:flex; gap:0.6rem; margin-top:1.25rem; }
.quick-social a { width:40px; height:40px; border-radius:10px; background:var(--color-bg-warm); color:var(--color-heading); display:flex; align-items:center; justify-content:center; transition:all 0.25s; }
.quick-social a:hover { background:var(--color-accent); color:#fff; transform:translateY(-2px); }
.quick-social svg { width:17px; height:17px; }

/* Help / routing cards */
.help-section { padding: var(--section-padding) 0 0; }
.help-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.help-card { background:#fff; border:1px solid var(--color-border); border-radius:16px; padding:2rem; display:flex; flex-direction:column; position:relative; overflow:hidden; transition:all 0.35s; }
.help-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; transform:scaleX(0); transform-origin:left; transition:transform 0.35s; }
.help-card:nth-child(1)::before { background:var(--color-accent); }
.help-card:nth-child(2)::before { background:var(--color-teal); }
.help-card:nth-child(3)::before { background:var(--color-heading); }
.help-card:hover { transform:translateY(-5px); box-shadow:0 18px 44px rgba(26,35,50,0.08); border-color:transparent; }
.help-card:hover::before { transform:scaleX(1); }
.help-ic { width:52px; height:52px; border-radius:13px; display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem; }
.help-card:nth-child(1) .help-ic { background:var(--color-accent-light); color:var(--color-accent); }
.help-card:nth-child(2) .help-ic { background:var(--color-teal-light); color:var(--color-teal); }
.help-card:nth-child(3) .help-ic { background:rgba(26,35,50,0.06); color:var(--color-heading); }
.help-ic svg { width:24px; height:24px; }
.help-card h3 { font-family:var(--font-heading); font-size:1.3rem; font-weight:600; color:var(--color-heading); margin-bottom:0.5rem; }
.help-card p { font-size:0.9rem; color:var(--color-text-muted); line-height:1.7; margin-bottom:1.5rem; flex-grow:1; }
.help-card .wp-block-buttons { margin-top:auto; }
.help-card .help-second { margin-top:0.75rem; font-size:0.82rem; color:var(--color-text-muted); }
.help-card .help-second a { color:var(--color-accent); font-weight:600; text-decoration:underline; text-underline-offset:2px; }

/* Security notice */
.notice-section { padding: var(--section-padding) 0; }
.notice { display:flex; gap:1.25rem; align-items:flex-start; background:var(--color-bg-warm); border:1px solid var(--color-border); border-left:4px solid var(--color-teal); border-radius:12px; padding:1.75rem 2rem; max-width:900px; margin:0 auto; }
.notice-ic { width:40px; height:40px; border-radius:10px; background:#fff; color:var(--color-teal); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.notice-ic svg { width:20px; height:20px; }
.notice h4 { font-family:var(--font-body); font-size:0.92rem; font-weight:700; color:var(--color-heading); margin-bottom:0.4rem; }
.notice p { font-size:0.85rem; color:var(--color-text-muted); line-height:1.7; margin:0; }

/* Notification signup */
.signup-section { padding: var(--section-padding) 0; background:var(--color-bg-warm); }
.signup-card { background:#fff; border:1px solid var(--color-border); border-radius:20px; padding:clamp(2rem,4vw,3.5rem); max-width:920px; margin:0 auto; box-shadow:0 16px 48px rgba(26,35,50,0.05); }
.signup-head { text-align:center; margin-bottom:2.25rem; }
.signup-head .eyebrow { justify-content:center; }
.signup-head h2 { font-family:var(--font-heading); font-size:clamp(1.6rem,3vw,2.2rem); font-weight:600; color:var(--color-heading); margin-bottom:0.5rem; }
.signup-head p { font-size:0.92rem; color:var(--color-text-muted); line-height:1.7; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.field label, .checkbox-block > label { display:block; font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--color-text-muted); margin-bottom:0.5rem; }
.field input { width:100%; font-family:var(--font-body); font-size:0.95rem; padding:0.85rem 1.1rem; border:1.5px solid var(--color-border); border-radius:8px; background:var(--color-bg); color:var(--color-text); outline:none; transition:border-color 0.25s; }
.field input:focus { border-color:var(--color-teal); }
.field-full { margin-bottom:1.75rem; }
.checkbox-block { margin-bottom:1.75rem; }
.checkbox-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.6rem; }
.checkbox-item { display:flex; align-items:center; gap:0.6rem; padding:0.7rem 0.9rem; border:1px solid var(--color-border); border-radius:8px; cursor:pointer; transition:all 0.2s; }
.checkbox-item:hover { border-color:var(--color-teal); background:var(--color-teal-light); }
.checkbox-item input { width:16px; height:16px; accent-color:var(--color-accent); flex-shrink:0; cursor:pointer; }
.checkbox-item span { font-size:0.82rem; color:var(--color-text); }
.signup-submit { text-align:center; margin-top:0.5rem; }
.signup-submit button { font-family:var(--font-body); font-size:0.92rem; font-weight:600; background:var(--color-accent); color:#fff; border:none; padding:0.95rem 3rem; border-radius:8px; cursor:pointer; transition:all 0.3s; }
.signup-submit button:hover { background:var(--color-accent-hover); transform:translateY(-2px); box-shadow:0 8px 24px rgba(196,98,58,0.2); }

@media (max-width: 968px) {
  .contact-hero-grid { grid-template-columns:1fr; }
  .quick-card { max-width:460px; }
  .help-grid { grid-template-columns:1fr; }
  .checkbox-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
  .field-row { grid-template-columns:1fr; }
  .checkbox-grid { grid-template-columns:1fr; }
  .notice { flex-direction:column; gap:0.85rem; }
}

/* Secure (HIPAA) Jotform embed section on the Contact page */
.secure-form-section { padding: var(--section-padding) 0 0; }
.jotform-wrap { max-width: 760px; margin: 0 auto; }
.jotform-wrap iframe { width: 100% !important; border: none; }

/* ═══════════════════════════════════════════════════════════
   PARENTS PAGE — lifted from drfrye-parents.html
   (reuses existing .cta-band, .eyebrow, .breadcrumb,
    .newsletter-section, .btn-primary/.btn-secondary)
   ═══════════════════════════════════════════════════════════ */

/* Left-aligned section head (.section-head-center variant already exists above) */
.section-head { max-width:620px; margin-bottom:clamp(2rem,4vw,3rem); }
.section-head h2 { font-family:var(--font-heading); font-size:clamp(1.8rem,3.2vw,2.5rem); font-weight:600; color:var(--color-heading); line-height:1.15; margin-bottom:0.75rem; }
.section-head p { font-size:0.96rem; color:var(--color-text-muted); line-height:1.7; }

/* Parents hero (warm split) */
.parents-hero { background:var(--color-bg-warm); padding: clamp(3rem,6vw,4.5rem) 0 clamp(3.5rem,7vw,5rem); position:relative; overflow:hidden; }
.parents-hero::before { content:''; position:absolute; top:-30%; left:-6%; width:420px; height:420px; background:var(--color-teal-light); border-radius:50%; }
.parents-hero::after { content:''; position:absolute; bottom:-40%; right:-4%; width:360px; height:360px; background:var(--color-accent-light); border-radius:50%; }
.parents-hero .container { position:relative; z-index:1; }
.parents-hero-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:center; }
/* Gotcha #1: zero Gutenberg flow margins on the grid row's direct children */
.parents-hero-grid > * { margin-top:0; margin-bottom:0; }
.parents-hero h1 { font-family:var(--font-heading); font-size:clamp(2.1rem,4.4vw,3.2rem); font-weight:600; color:var(--color-heading); line-height:1.1; letter-spacing:-0.02em; margin-bottom:1.25rem; }
.parents-hero h1 em { font-style:italic; color:var(--color-accent); }
.parents-hero p { font-size:1rem; color:var(--color-text-muted); line-height:1.8; max-width:500px; margin-bottom:1.25rem; }
.parents-hero-img { position:relative; }
.parents-hero-img .wp-block-image { margin:0; }
.parents-hero-img img { width:100%; border-radius:14px; aspect-ratio:4/3; object-fit:cover; box-shadow:0 24px 60px rgba(26,35,50,0.14); }
.parents-hero-img::after { content:''; position:absolute; inset:16px -16px -16px 16px; border:2px solid var(--color-teal); border-radius:14px; opacity:0.25; z-index:-1; }

/* Popular articles */
.articles-section { padding: var(--section-padding) 0; }
.articles-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.article-card { background:#fff; border:1px solid var(--color-border); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; transition:all 0.35s; }
.article-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(26,35,50,0.09); border-color:transparent; }
.article-cover { height:180px; overflow:hidden; background:var(--color-bg-warm); display:flex; align-items:center; justify-content:center; }
.article-cover img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.article-card:hover .article-cover img { transform:scale(1.04); }
.article-body { padding:1.25rem; display:flex; flex-direction:column; flex-grow:1; }
.article-body h3 { font-family:var(--font-heading); font-size:1.02rem; font-weight:600; color:var(--color-heading); line-height:1.3; margin-bottom:0.35rem; }
.article-source { font-family:var(--font-accent); font-style:italic; font-size:0.78rem; color:var(--color-text-muted); margin-bottom:1rem; flex-grow:1; }
.article-dl { font-size:0.74rem; font-weight:600; color:var(--color-accent); display:inline-flex; align-items:center; gap:0.4rem; align-self:flex-start; transition:gap 0.3s; }
.article-dl svg { width:14px; height:14px; }
.article-card:hover .article-dl { gap:0.65rem; }

/* Explore topics (accordion — behavior in js/accordion.js) */
.topics-section { padding: var(--section-padding) 0; background:var(--color-bg-warm); }
.topics-section .accordion { max-width:880px; margin:0 auto; }
.acc-item { background:#fff; border:1px solid var(--color-border); border-radius:12px; margin-bottom:0.75rem; overflow:hidden; transition:box-shadow 0.3s; }
.acc-item.open { box-shadow:0 8px 28px rgba(26,35,50,0.07); }
.acc-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem 1.5rem; cursor:pointer; user-select:none; }
.acc-header h3 { font-family:var(--font-heading); font-size:1.12rem; font-weight:600; color:var(--color-heading); margin:0; }
.acc-icon { width:28px; height:28px; border-radius:50%; background:var(--color-bg-warm); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all 0.3s; }
.acc-item.open .acc-icon { background:var(--color-accent); transform:rotate(180deg); }
.acc-icon svg { width:14px; height:14px; color:var(--color-heading); transition:color 0.3s; }
.acc-item.open .acc-icon svg { color:#fff; }
.acc-body { max-height:0; overflow:hidden; transition:max-height 0.4s ease; }
.acc-body-inner { padding:0 1.5rem 1.5rem; }
.acc-body-inner .acc-subtitle { font-family:var(--font-heading); font-style:italic; font-size:0.95rem; color:var(--color-teal); margin-bottom:0.6rem; }
.acc-body-inner p { font-size:0.9rem; color:var(--color-text-muted); line-height:1.8; margin-bottom:1rem; }
.acc-link { font-size:0.78rem; font-weight:600; color:var(--color-accent); display:inline-flex; align-items:center; gap:0.4rem; transition:gap 0.3s; }
.acc-link svg { width:14px; height:14px; }
.acc-link:hover { gap:0.65rem; }

/* Resource type links */
.restype-section { padding: var(--section-padding) 0; }
.restype-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.restype-card { background:#fff; border:1px solid var(--color-border); border-radius:14px; padding:1.85rem; display:flex; flex-direction:column; transition:all 0.35s; }
.restype-card:hover { transform:translateY(-4px); box-shadow:0 14px 36px rgba(26,35,50,0.07); border-color:var(--color-teal); }
.restype-ic { width:48px; height:48px; border-radius:12px; background:var(--color-teal-light); color:var(--color-teal); display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; }
.restype-ic svg { width:22px; height:22px; }
.restype-card h3 { font-family:var(--font-heading); font-size:1.15rem; font-weight:600; color:var(--color-heading); margin-bottom:0.45rem; }
.restype-card p { font-size:0.85rem; color:var(--color-text-muted); line-height:1.65; margin-bottom:1.25rem; flex-grow:1; }
.restype-link { font-size:0.76rem; font-weight:600; color:var(--color-accent); display:inline-flex; align-items:center; gap:0.4rem; align-self:flex-start; transition:gap 0.3s; }
.restype-link svg { width:14px; height:14px; }
.restype-card:hover .restype-link { gap:0.65rem; }

/* Parents responsive */
@media (max-width: 968px) {
  .parents-hero-grid { grid-template-columns:1fr; }
  .parents-hero-img { max-width:420px; order:-1; }
  .articles-grid { grid-template-columns:1fr 1fr; }
  .restype-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 600px) {
  .articles-grid { grid-template-columns:1fr 1fr; }
  .restype-grid { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════
   RESOURCES PAGE — lifted from drfrye-resources.html
   (reuses existing .eyebrow, .breadcrumb, .newsletter-section)
   ═══════════════════════════════════════════════════════════ */

.lib-section { padding: clamp(3.5rem,7vw,5.5rem) 0; }
.lib-section .container { max-width: var(--max-width); margin-left:auto; margin-right:auto; }
.lib-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:2rem; }
.lib-head h2 { font-family:var(--font-heading); font-size:clamp(1.6rem,3vw,2.2rem); font-weight:600; color:var(--color-heading); line-height:1.15; }
.lib-head .lib-head-link { font-size:0.76rem; font-weight:700; color:var(--color-accent); display:inline-flex; align-items:center; gap:0.4rem; transition:gap 0.3s; }
.lib-head .lib-head-link svg { width:14px; height:14px; }
.lib-head .lib-head-link:hover { gap:0.7rem; }

/* Hero (top padding reduced — Astra header is not fixed/transparent here) */
.lib-hero { background:var(--color-bg-warm); padding: clamp(3rem,6vw,4.5rem) 0 clamp(3rem,6vw,4rem); border-bottom:1px solid var(--color-border); position:relative; overflow:hidden; }
.lib-hero::before { content:''; position:absolute; top:-45%; right:-6%; width:480px; height:480px; background:var(--color-teal-light); border-radius:50%; }
.lib-hero .container { position:relative; z-index:1; }
.lib-hero h1 { font-family:var(--font-heading); font-size:clamp(2.3rem,5vw,3.5rem); font-weight:600; color:var(--color-heading); line-height:1.08; letter-spacing:-0.02em; }
.lib-hero p { font-size:1.05rem; color:var(--color-text-muted); line-height:1.7; max-width:620px; margin-top:1rem; }
.lib-stats { display:flex; gap:2.5rem; margin-top:2.25rem; }
.lib-stat .n { font-family:var(--font-heading); font-size:2rem; font-weight:600; color:var(--color-heading); line-height:1; }
.lib-stat .l { font-size:0.72rem; color:var(--color-text-muted); margin-top:0.35rem; letter-spacing:0.02em; }

/* Featured */
.featured-grid { display:grid; grid-template-columns:1.45fr 1fr; grid-template-rows:1fr 1fr; gap:1.25rem; }
.feature { border-radius:16px; padding:2rem; display:flex; flex-direction:column; justify-content:flex-end; text-decoration:none; transition:all 0.4s cubic-bezier(0.16,1,0.3,1); position:relative; overflow:hidden; min-height:200px; }
.feature-lg { grid-row:1 / 3; background:var(--color-bg-dark); color:#fff; padding:2.5rem; }
.feature-lg::before { content:''; position:absolute; top:-30%; right:-10%; width:320px; height:320px; background:rgba(196,98,58,0.14); border-radius:50%; }
.feature-sm { background:#fff; border:1px solid var(--color-border); }
.feature:hover { transform:translateY(-4px); box-shadow:0 20px 48px rgba(26,35,50,0.12); }
.feature-sm:hover { border-color:transparent; }
.feature-kicker { font-size:0.6rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:0.85rem; display:inline-flex; align-items:center; gap:0.5rem; position:relative; }
.feature-lg .feature-kicker { color:var(--color-accent); }
.feature-sm .feature-kicker { color:var(--color-teal); }
.feature h3 { font-family:var(--font-heading); font-weight:600; line-height:1.2; position:relative; }
.feature-lg h3 { font-size:clamp(1.5rem,2.6vw,2.1rem); color:#fff; margin-bottom:0.75rem; }
.feature-sm h3 { font-size:1.15rem; color:var(--color-heading); margin-bottom:0.5rem; }
.feature-meta { font-family:var(--font-accent); font-style:italic; font-size:0.85rem; position:relative; }
.feature-lg .feature-meta { color:rgba(240,237,230,0.55); }
.feature-sm .feature-meta { color:var(--color-text-muted); }
.feature-action { margin-top:1.25rem; font-size:0.78rem; font-weight:700; display:inline-flex; align-items:center; gap:0.45rem; position:relative; color:var(--color-accent); }
.feature-action svg { width:14px; height:14px; transition:transform 0.25s; }
.feature:hover .feature-action svg { transform:translate(2px,-2px); }

/* Topic index */
.topic-index-section { background:var(--color-bg-warm); }
.topic-index { display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--color-border); }
.topic-row { display:flex; align-items:center; gap:1.5rem; padding:1.4rem 1.25rem; border-bottom:1px solid var(--color-border); text-decoration:none; transition:all 0.3s; position:relative; }
.topic-row:nth-child(odd) { border-right:1px solid var(--color-border); }
.topic-row:hover { background:#fff; padding-left:1.75rem; }
.topic-num { font-family:var(--font-heading); font-size:1.3rem; font-weight:500; color:var(--color-border-strong); width:2.25rem; flex-shrink:0; transition:color 0.3s; }
.topic-row:hover .topic-num { color:var(--color-accent); }
.topic-info { flex-grow:1; min-width:0; }
.topic-info h3 { font-family:var(--font-heading); font-size:1.12rem; font-weight:600; color:var(--color-heading); margin-bottom:0.1rem; }
.topic-info .topic-count { font-size:0.75rem; color:var(--color-text-muted); }
.topic-arrow { color:var(--color-border-strong); flex-shrink:0; transition:all 0.3s; }
.topic-arrow svg { width:16px; height:16px; }
.topic-row:hover .topic-arrow { color:var(--color-accent); transform:translateX(3px); }

/* Type strip */
.type-strip { display:flex; flex-wrap:wrap; gap:0.6rem; }
.type-pill { font-size:0.8rem; font-weight:600; color:var(--color-text); background:var(--color-bg-warm); border:1px solid var(--color-border); padding:0.6rem 1.2rem; border-radius:100px; text-decoration:none; transition:all 0.25s; }
.type-pill:hover { background:var(--color-heading); color:#fff; border-color:var(--color-heading); }
.type-pill .tp-count { opacity:0.55; margin-left:0.3rem; font-weight:500; }

/* All resources (editorial list with search + filter — js/resources-filter.js) */
.all-controls { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:1.75rem; }
.all-search { position:relative; flex-grow:1; max-width:380px; }
.all-search svg { position:absolute; left:0.95rem; top:50%; transform:translateY(-50%); width:17px; height:17px; color:var(--color-text-muted); }
.all-search input { width:100%; font-family:var(--font-body); font-size:0.92rem; padding:0.75rem 1rem 0.75rem 2.75rem; border:1.5px solid var(--color-border); border-radius:10px; background:#fff; color:var(--color-text); outline:none; transition:border-color 0.2s; }
.all-search input:focus { border-color:var(--color-teal); }
.all-filter { display:flex; gap:0.4rem; flex-wrap:wrap; }
.fchip { font-size:0.74rem; font-weight:600; padding:0.45rem 0.9rem; border-radius:100px; background:transparent; border:1.5px solid var(--color-border); color:var(--color-text-muted); cursor:pointer; transition:all 0.2s; }
.fchip:hover { border-color:var(--color-teal); color:var(--color-heading); }
.fchip.active { background:var(--color-heading); border-color:var(--color-heading); color:#fff; }
.res-index { border-top:1px solid var(--color-heading); }
.res-line { display:grid; grid-template-columns:140px 1fr auto; gap:1.5rem; align-items:baseline; padding:1.4rem 0.5rem; border-bottom:1px solid var(--color-border); text-decoration:none; transition:all 0.25s; }
.res-line:hover { background:var(--color-bg-warm); padding-left:1rem; padding-right:1rem; }
.res-line-type { display:flex; align-items:center; gap:0.55rem; font-size:0.62rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--color-text-muted); }
.res-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dot-research { background:var(--color-teal); } .dot-video { background:var(--color-accent); } .dot-news { background:var(--color-heading); }
.dot-podcast { background:#9A6A3C; } .dot-protocol { background:#3E7C5A; } .dot-book { background:var(--color-accent-hover); } .dot-story { background:var(--color-teal); }
.res-line-main { min-width:0; }
.res-line-main h3 { font-family:var(--font-heading); font-size:1.1rem; font-weight:600; color:var(--color-heading); line-height:1.3; margin-bottom:0.25rem; transition:color 0.2s; }
.res-line:hover .res-line-main h3 { color:var(--color-accent); }
.res-line-main .src { font-family:var(--font-accent); font-style:italic; font-size:0.82rem; color:var(--color-text-muted); }
.res-line-action { font-size:0.74rem; font-weight:700; color:var(--color-accent); display:inline-flex; align-items:center; gap:0.4rem; white-space:nowrap; }
.res-line-action svg { width:13px; height:13px; transition:transform 0.25s; }
.res-line:hover .res-line-action svg { transform:translate(2px,-2px); }
.res-empty { text-align:center; padding:3.5rem 1rem; color:var(--color-text-muted); display:none; }
.res-empty.show { display:block; }
.res-empty h3 { font-family:var(--font-heading); font-size:1.2rem; color:var(--color-heading); margin-bottom:0.4rem; }
.res-count { font-size:0.8rem; color:var(--color-text-muted); margin-bottom:1.25rem; }
.res-count strong { color:var(--color-heading); }

@media (max-width: 900px) {
  .featured-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .feature-lg { grid-row:auto; }
  .topic-index { grid-template-columns:1fr; }
  .topic-row:nth-child(odd) { border-right:none; }
}
@media (max-width: 600px) {
  .lib-stats { gap:1.5rem; }
  .res-line { grid-template-columns:1fr; gap:0.4rem; }
  .res-line-action { justify-self:start; }
}
