/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* ==============================================
   BEHRENS DENTAL PRACTICE — CHILD THEME
   className-only block approach.
   ALL rules scoped to .entry-content to prevent
   Blocksy default styles from overriding content.
   Blocksy header/nav/footer untouched.
   ============================================== */


/* ── Scoped resets (content area only)
---------------------------------------------- */
.entry-content *,
.entry-content *::before,
.entry-content *::after {
  box-sizing: border-box;
}

/* Remove default WP block margins between adjacent sections */
.entry-content .wp-block-group.bdp-section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* ── Links (content area only)
---------------------------------------------- */
.entry-content a {
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: underline;
}

.entry-content a:hover {
  color: #1B4D28;
}


/* ── Buttons (content area only)
---------------------------------------------- */
.entry-content .wp-block-button .wp-block-button__link {
  background-color: #2E6B3A;
  color: #ffffff;
  border-radius: 7px;
  padding: 14px 28px;
  font-weight: 700;
  font-size: 15px;
  font-family: Arial, Helvetica, sans-serif;
  text-decoration: none;
  border: none;
  display: inline-block;
}

.entry-content .wp-block-button .wp-block-button__link:hover {
  background-color: #1B4D28;
  color: #ffffff;
  text-decoration: none;
}


/* ── Paragraphs (content area only)
---------------------------------------------- */
.entry-content p {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  color: #444444;
  line-height: 1.75;
  margin-bottom: 1em;
}

/* ── Legacy content images (no bdp- class) — constrain + space */
.entry-content figure.wp-block-image:not([class*="bdp-"]) {
  margin: 28px auto;
  max-width: 720px;
  text-align: center;
}

.entry-content figure.wp-block-image:not([class*="bdp-"]) img {
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: 460px;
  object-fit: contain;
  border-radius: 10px;
  display: inline-block;
}

/* ── Videos — never taller than the viewport */
.entry-content .wp-block-video video {
  max-height: 640px;
  max-width: 100%;
  width: auto;
  margin: 0 auto;
  display: block;
}


/* ── Headings (content area only)
---------------------------------------------- */
.entry-content h1,
.entry-content h2,
.entry-content h3 {
  font-family: Arial, Helvetica, sans-serif;
  color: #2C2C2C;
}


/* ── .bdp-section  (base section)
---------------------------------------------- */
.entry-content .bdp-section {
  padding: 64px 24px;
  width: 100%;
  background-color: #ffffff;
}

.entry-content .bdp-section > * {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

.entry-content .bdp-section p {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  color: #444444;
  line-height: 1.75;
  margin-bottom: 1em;
}

/* Last paragraph in a column or content block has no trailing margin */
.entry-content .bdp-section p:last-child {
  margin-bottom: 0;
}


/* ── .bdp-section--hero / .bdp-section--page-hero (light green band, emergency-page style)
---------------------------------------------- */
.entry-content .bdp-section.bdp-section--hero,
.entry-content .bdp-section.bdp-section--page-hero {
  padding: 72px 24px 56px;
  text-align: center;
  background-color: #F0F7F1;
  border-bottom: 3px solid #1B4D28;
}

.entry-content .bdp-section.bdp-section--page-hero p {
  font-size: 18px;
  color: #444444;
  line-height: 1.75;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.entry-content .bdp-section.bdp-section--hero p {
  font-size: 18px;
  color: #444444;
  line-height: 1.75;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
}


/* ── .bdp-section--warm
---------------------------------------------- */
.entry-content .bdp-section.bdp-section--warm {
  background-color: #F5F3F0;
}

.entry-content .bdp-section.bdp-section--warm p {
  font-size: 16px;
  color: #444444;
  line-height: 1.75;
  margin-bottom: 14px;
}


/* ── .bdp-section--cta
---------------------------------------------- */
.entry-content .bdp-section.bdp-section--cta {
  background: linear-gradient(135deg, #2E6B3A, #1B4D28);
  padding: 48px 24px;
  text-align: center;
}

.entry-content .bdp-section.bdp-section--cta p {
  font-size: 17px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.75;
}

.entry-content .bdp-section.bdp-section--cta p a {
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

.entry-content .bdp-section.bdp-section--cta p a:hover {
  text-decoration: underline;
}


/* ── .bdp-headline  (H1)
---------------------------------------------- */
.entry-content h1.wp-block-heading.bdp-headline {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 38px;
  font-weight: 600;
  color: #2C2C2C;
  line-height: 1.2;
  margin-bottom: 20px;
}


/* ── .bdp-section-title  (H2)
---------------------------------------------- */
.entry-content h2.wp-block-heading.bdp-section-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 28px;
  font-weight: 600;
  color: #2C2C2C;
  line-height: 1.3;
  margin-bottom: 16px;
}

.entry-content .bdp-section--cta h2.wp-block-heading.bdp-section-title {
  color: #ffffff;
  margin-bottom: 12px;
}


/* ── .bdp-subsection-title  (H3)
---------------------------------------------- */
.entry-content h3.wp-block-heading.bdp-subsection-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: #2C2C2C;
  line-height: 1.4;
  margin-bottom: 8px;
}


/* ── .bdp-services-grid
---------------------------------------------- */
.entry-content .wp-block-columns.bdp-services-grid {
  gap: 40px;
  margin-bottom: 0;
}


/* ── .bdp-service-item
---------------------------------------------- */
.entry-content .wp-block-column.bdp-service-item p {
  font-size: 15px;
  color: #444444;
  line-height: 1.7;
  margin-bottom: 6px;
}

.entry-content .wp-block-column.bdp-service-item p a {
  font-size: 14px;
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: underline;
}

.entry-content .wp-block-column.bdp-service-item p a:hover {
  color: #1B4D28;
}


/* ── .bdp-feature-columns
---------------------------------------------- */
.entry-content .wp-block-columns.bdp-feature-columns {
  gap: 56px;
  align-items: flex-start;
  margin-bottom: 0;
}


/* ── .bdp-btn-primary
---------------------------------------------- */
.entry-content .wp-block-button.bdp-btn-primary > .wp-block-button__link {
  background-color: #2E6B3A;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 7px;
  text-decoration: none;
  border: none;
}

.entry-content .wp-block-button.bdp-btn-primary > .wp-block-button__link:hover {
  background-color: #1B4D28;
  color: #ffffff;
}


/* ── .bdp-btn-light
---------------------------------------------- */
.entry-content .wp-block-button.bdp-btn-light > .wp-block-button__link {
  background-color: #ffffff;
  color: #1B4D28;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 7px;
  text-decoration: none;
  border: none;
}

.entry-content .wp-block-button.bdp-btn-light > .wp-block-button__link:hover {
  background-color: #F5F3F0;
  color: #1B4D28;
}


/* ==============================================
   HOMEPAGE
   ============================================== */

/* ── Hero (homepage 2-col variant) */
.entry-content .bdp-section.bdp-section--hero-hp {
  padding: 72px 24px;
  background: #ffffff;
  text-align: left;
}

.entry-content .wp-block-columns.bdp-hero-grid {
  gap: 48px;
  align-items: center;
  margin-bottom: 0;
}

.entry-content p.bdp-hero-label {
  font-size: 12px;
  color: #2E6B3A;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-weight: 600;
  margin-bottom: 16px;
}

.entry-content p.bdp-lead {
  font-size: 17px;
  color: #444444;
  line-height: 1.75;
  margin-bottom: 28px;
}

.entry-content .wp-block-buttons.bdp-hero-btns {
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}

.entry-content .bdp-hero-trust {
  font-size: 13px;
  color: #6B6B6B;
  margin-top: 4px;
}

.entry-content .bdp-trust-stars {
  color: #2E6B3A;
}

.entry-content figure.wp-block-image.bdp-hero-image,
.entry-content figure.wp-block-image.bdp-duo-image {
  border-radius: 12px;
  overflow: hidden;
  margin: 0;
}

.entry-content figure.wp-block-image.bdp-hero-image img,
.entry-content figure.wp-block-image.bdp-duo-image img {
  width: 100%;
  height: auto;
  display: block;
}

.entry-content .bdp-hero-img-placeholder {
  background: #F5F3F0;
  border-radius: 12px;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #6B6B6B;
  font-size: 14px;
  line-height: 1.8;
  border: 1px solid #D5D0CA;
}

.entry-content .bdp-hero-img-placeholder span {
  font-size: 12px;
  display: block;
}

/* btn-secondary — outlined, for secondary actions */
.entry-content .wp-block-button.bdp-btn-secondary > .wp-block-button__link {
  background-color: #ffffff;
  color: #2C2C2C;
  border: 1px solid #D5D0CA;
  font-weight: 600;
}

.entry-content .wp-block-button.bdp-btn-secondary > .wp-block-button__link:hover {
  background-color: #F5F3F0;
  color: #2C2C2C;
}


/* ── Services strip */
.entry-content .bdp-section.bdp-section--services {
  padding: 40px 24px;
  border-bottom: 1px solid #D5D0CA;
}

.entry-content .wp-block-columns.bdp-services-strip {
  display: grid !important;
  grid-template-columns: repeat(6, 1fr) !important;
  gap: 12px;
  margin-bottom: 0;
}

.entry-content .wp-block-column.bdp-hp-service-col {
  padding: 20px 14px;
  border-radius: 8px;
  border: 1px solid #D5D0CA;
  text-align: center;
  min-width: 0;
}

.entry-content .wp-block-column.bdp-hp-service-col--featured {
  border: 2px solid #2E6B3A;
  background: #F0F7F1;
}

.entry-content p.bdp-hp-service-tag {
  display: inline-block;
  background: #2E6B3A;
  color: #ffffff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 6px;
}

.entry-content p.bdp-hp-service-icon,
.entry-content div.bdp-hp-service-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-bottom: 8px;
  line-height: 1;
}

.entry-content .bdp-hp-service-icon svg {
  width: 32px;
  height: 32px;
  display: block;
}

.entry-content h3.wp-block-heading.bdp-hp-service-name {
  font-size: 13px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 4px;
  line-height: 1.3;
}

.entry-content p.bdp-hp-service-desc {
  font-size: 12px;
  color: #6B6B6B;
  margin-bottom: 0;
}


/* ── Why Choose Us / Reasons grid */
.entry-content .bdp-centered {
  text-align: center;
}

.entry-content .wp-block-columns.bdp-hp-reasons-grid {
  gap: 32px;
  margin-bottom: 0;
  margin-top: 32px;
}

.entry-content .wp-block-column.bdp-hp-reason-item {
  background: #ffffff;
  padding: 28px 24px;
  border-radius: 10px;
  border: 1px solid #D5D0CA;
}

.entry-content p.bdp-hp-reason-icon,
.entry-content div.bdp-hp-reason-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-bottom: 12px;
  line-height: 1;
}

.entry-content .bdp-hp-reason-icon svg {
  width: 32px;
  height: 32px;
  display: block;
}

/* Reviews widget spacing */
.entry-content .bdp-hp-reviews-widget {
  margin: 0 auto;
  max-width: 1100px;
  min-height: 200px;
}


/* ── Duo-Lase section */
.entry-content .bdp-section.bdp-section--duo-hp {
  background: #ffffff;
}

.entry-content .wp-block-columns.bdp-duo-grid {
  gap: 56px;
  align-items: center;
  margin-bottom: 0;
}

.entry-content p.bdp-duo-label {
  font-size: 11px;
  color: #2E6B3A;
  text-transform: uppercase;
  letter-spacing: 3px;
  font-weight: 700;
  margin-bottom: 12px;
}

.entry-content p.bdp-duo-secondary-p {
  font-size: 14px;
  color: #444444;
  margin-top: 12px;
  margin-bottom: 0;
}

.entry-content p.bdp-duo-consult-link {
  margin-top: 12px;
  font-size: 14px;
}

.entry-content p.bdp-duo-consult-link a {
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: none;
}

.entry-content .bdp-duo-img-placeholder {
  background: #F5F3F0;
  border-radius: 12px;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #6B6B6B;
  font-size: 14px;
  line-height: 1.8;
  border: 1px solid #D5D0CA;
}

.entry-content .bdp-duo-img-placeholder span {
  font-size: 12px;
  display: block;
}

.entry-content .bdp-bsp-badge {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #FAFAF8;
  border-radius: 8px;
  border: 1px solid #D5D0CA;
  max-width: 340px;
  margin-top: 24px;
}

.entry-content .bdp-bsp-icon {
  font-size: 22px;
  flex-shrink: 0;
}

.entry-content .bdp-bsp-text strong {
  font-size: 12px;
  color: #2C2C2C;
  font-weight: 700;
  display: block;
}

.entry-content .bdp-bsp-text span {
  font-size: 11px;
  color: #6B6B6B;
  display: block;
}


/* ── Team preview */
.entry-content .bdp-section.bdp-section--team-preview {
  background: #ffffff;
}

.entry-content p.bdp-team-preview-sub {
  font-size: 15px;
  color: #6B6B6B;
  margin-top: 8px;
  margin-bottom: 32px;
}

.entry-content .wp-block-columns.bdp-hp-team-grid {
  gap: 20px;
  margin-bottom: 0;
}

.entry-content .wp-block-column.bdp-hp-team-card {
  border: 1px solid #D5D0CA;
  border-radius: 10px;
  overflow: hidden;
  background: #ffffff;
  min-width: 0;
}

.entry-content figure.wp-block-image.bdp-hp-team-photo {
  margin: 24px auto 16px;
  display: flex;
  justify-content: center;
}

.entry-content figure.wp-block-image.bdp-hp-team-photo img {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.entry-content .wp-block-group.bdp-hp-team-info {
  padding: 16px 20px 20px;
}

.entry-content h3.wp-block-heading.bdp-hp-team-name {
  font-size: 15px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 4px;
  line-height: 1.3;
}

.entry-content p.bdp-hp-team-role {
  font-size: 12px;
  color: #2E6B3A;
  font-weight: 600;
  margin-bottom: 8px;
}

.entry-content p.bdp-hp-team-desc {
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.5;
  margin-bottom: 0;
}

.entry-content p.bdp-hp-team-cta-row {
  text-align: center;
  margin-top: 28px;
  font-size: 14px;
}

.entry-content p.bdp-hp-team-cta-row a {
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: none;
}

.entry-content p.bdp-hp-team-cta-row a:hover {
  text-decoration: underline;
}


/* ── Reviews section (dark) */
.entry-content .bdp-section.bdp-section--reviews {
  background-color: #ffffff;
  padding: 48px 24px;
}

.entry-content .bdp-hp-reviews-header {
  text-align: center;
  margin-bottom: 36px;
}

.entry-content .bdp-hp-reviews-meta {
  font-size: 14px;
  color: rgba(255,255,255,0.6);
  margin-bottom: 10px;
}

.entry-content .bdp-hp-reviews-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 28px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 0;
  line-height: 1.3;
}

.entry-content .wp-block-columns.bdp-hp-reviews-grid {
  gap: 20px;
  margin-bottom: 0;
}

.entry-content .wp-block-column.bdp-hp-review-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  padding: 24px;
  min-width: 0;
}

.entry-content .bdp-section--reviews p {
  color: rgba(255,255,255,0.8);
}

.entry-content p.bdp-hp-review-stars {
  font-size: 16px;
  color: #ffffff;
  margin-bottom: 12px;
}

.entry-content p.bdp-hp-review-text {
  font-size: 14px;
  color: rgba(255,255,255,0.8);
  line-height: 1.7;
  margin-bottom: 16px;
  font-style: italic;
}

.entry-content p.bdp-hp-review-name {
  font-size: 13px;
  color: rgba(255,255,255,0.45);
  font-weight: 600;
  margin-bottom: 0;
}

.entry-content p.bdp-hp-reviews-link-row {
  text-align: center;
  margin-top: 28px;
}

.entry-content p.bdp-hp-reviews-link-row a {
  color: rgba(255,255,255,0.7);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.entry-content p.bdp-hp-reviews-link-row a:hover {
  color: #ffffff;
}


/* ── CTA section phone link */
.entry-content p.bdp-cta-phone {
  margin-top: 16px;
  font-size: 15px;
}

.entry-content p.bdp-cta-phone a {
  color: rgba(255,255,255,0.8);
  font-weight: 600;
  text-decoration: none;
}

.entry-content p.bdp-cta-phone a:hover {
  color: #ffffff;
}

.entry-content .wp-block-buttons.bdp-cta-btns {
  justify-content: center;
}


/* ── Location section */
.entry-content .bdp-section.bdp-section--location {
  background: #ffffff;
}

.entry-content .wp-block-columns.bdp-location-grid {
  gap: 56px;
  align-items: flex-start;
  margin-bottom: 0;
}

.entry-content .bdp-hours {
  margin-top: 24px;
}

.entry-content .bdp-hours-title {
  font-size: 14px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 10px;
}

.entry-content .bdp-hours-row {
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid #D5D0CA;
  font-size: 14px;
  color: #444444;
  max-width: 340px;
}

.entry-content .bdp-hours-row span:last-child {
  font-weight: 600;
}

.entry-content .bdp-location-map-col iframe {
  border-radius: 12px;
  width: 100%;
  display: block;
}

.entry-content .bdp-map-placeholder {
  background: #F5F3F0;
  border-radius: 12px;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #6B6B6B;
  font-size: 14px;
  line-height: 1.8;
  border: 1px solid #D5D0CA;
}

.entry-content .bdp-map-placeholder span {
  font-size: 12px;
  display: block;
}


/* ── Mobile  (≤ 781px)
---------------------------------------------- */
@media (max-width: 781px) {

  .entry-content .bdp-section {
    padding: 48px 20px;
  }

  .entry-content .bdp-section.bdp-section--hero {
    padding: 56px 20px 48px;
  }

  .entry-content .bdp-section.bdp-section--cta {
    padding: 56px 20px;
  }

  .entry-content h1.wp-block-heading.bdp-headline {
    font-size: 28px;
  }

  .entry-content h2.wp-block-heading.bdp-section-title {
    font-size: 22px;
  }

  .entry-content h3.wp-block-heading.bdp-subsection-title {
    font-size: 18px;
  }

  .entry-content .bdp-section.bdp-section--hero p {
    font-size: 16px;
  }

  .entry-content .bdp-section.bdp-section--cta h2.wp-block-heading.bdp-section-title {
    font-size: 20px;
  }

  .entry-content .wp-block-columns.bdp-services-grid {
    gap: 32px;
  }

  .entry-content .wp-block-columns.bdp-feature-columns {
    gap: 32px;
  }

  /* Homepage mobile */
  .entry-content .bdp-section.bdp-section--hero-hp {
    padding: 48px 20px;
  }

  .entry-content .wp-block-columns.bdp-hero-grid {
    flex-direction: column;
    gap: 32px;
  }

  .entry-content .wp-block-columns.bdp-services-strip {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px;
  }

  .entry-content .wp-block-column.bdp-hp-service-col {
    padding: 14px 10px;
  }

  .entry-content .wp-block-columns.bdp-duo-grid {
    flex-direction: column;
    gap: 32px;
  }

  .entry-content .bdp-bsp-badge {
    max-width: 100%;
  }

  .entry-content .wp-block-columns.bdp-hp-team-grid {
    flex-direction: column;
    gap: 16px;
  }

  .entry-content .wp-block-columns.bdp-location-grid {
    flex-direction: column;
    gap: 32px;
  }

  .entry-content .bdp-section.bdp-section--reviews {
    padding: 48px 20px;
  }

  .entry-content .bdp-hp-reviews-title {
    font-size: 22px;
  }
}

@media (max-width: 480px) {
  .entry-content .wp-block-columns.bdp-services-strip {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}


/* ==============================================
   EMERGENCY PAGE
   ============================================== */

/* ── Urgent announcement bar */
.bdp-urgent-bar {
  background: #1B4D28;
  color: #ffffff;
  text-align: center;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 700;
  font-family: Arial, Helvetica, sans-serif;
  width: 100%;
}

/* ── Emergency hero */
.entry-content .bdp-section.bdp-section--emergency-hero {
  background: #F0F7F1;
  text-align: center;
  padding: 48px 24px 40px;
  border-bottom: 3px solid #1B4D28;
}

.entry-content .bdp-section--emergency-hero h1.wp-block-heading.bdp-headline {
  color: #2C2C2C;
  font-size: 40px;
}

.entry-content p.bdp-emergency-sub {
  font-size: 17px;
  color: #6B6B6B;
  margin-bottom: 28px;
}

.entry-content .wp-block-buttons.bdp-emergency-hero-btns {
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

/* ── Urgent button — dark green, large */
.entry-content .wp-block-button.bdp-btn-urgent > .wp-block-button__link {
  background-color: #1B4D28;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  font-weight: 700;
  padding: 16px 32px;
  border-radius: 7px;
  text-decoration: none;
  border: none;
  box-shadow: 0 4px 16px rgba(27,77,40,0.3);
}

.entry-content .wp-block-button.bdp-btn-urgent > .wp-block-button__link:hover {
  background-color: #163d20;
  color: #ffffff;
}

/* ── Reassurance pills */
.bdp-reassurance-pills {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 4px;
}

.bdp-pill {
  font-size: 13px;
  color: #2E6B3A;
  font-weight: 600;
  background: #ffffff;
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid #D5D0CA;
  font-family: Arial, Helvetica, sans-serif;
}

/* ── Section subtitle (below H2) */
.entry-content p.bdp-section-sub {
  font-size: 15px;
  color: #6B6B6B;
  margin-bottom: 36px;
  margin-top: -8px;
}

/* ── 4-step process grid */
.entry-content .wp-block-columns.bdp-process-grid {
  gap: 16px;
  margin-bottom: 0;
  align-items: stretch;
}

.entry-content .wp-block-column.bdp-process-step {
  background: #F5F9F5;
  border-radius: 10px;
  padding: 24px 20px;
  border-top: 3px solid #2E6B3A;
  min-width: 0;
}

.entry-content p.bdp-process-num {
  font-size: 32px;
  font-weight: 700;
  color: #2E6B3A;
  line-height: 1;
  margin-bottom: 12px;
}

.entry-content h3.wp-block-heading.bdp-process-title {
  font-size: 15px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 8px;
  line-height: 1.3;
}

.entry-content p.bdp-process-text {
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.65;
  margin-bottom: 0;
}

.entry-content p.bdp-process-text a {
  color: #2E6B3A;
  font-weight: 600;
}

/* ── Mid CTA band */
.entry-content .bdp-section.bdp-section--mid-cta {
  background: #2C2C2C;
  padding: 32px 24px;
  text-align: center;
}

.entry-content p.bdp-mid-cta-text {
  font-size: 17px;
  color: #ffffff;
  font-weight: 600;
  margin-bottom: 20px;
}

.entry-content .wp-block-buttons.bdp-mid-cta-btns {
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Ghost button — transparent with border (dark bg) */
.entry-content .wp-block-button.bdp-btn-ghost > .wp-block-button__link {
  background-color: transparent;
  color: #ffffff;
  border: 1px solid rgba(255,255,255,0.4);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 600;
  padding: 14px 28px;
  border-radius: 7px;
  text-decoration: none;
}

.entry-content .wp-block-button.bdp-btn-ghost > .wp-block-button__link:hover {
  background-color: rgba(255,255,255,0.1);
  color: #ffffff;
}

/* ── Emergency types grid */
.bdp-emerg-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 8px;
}

.bdp-emerg-card {
  background: #ffffff;
  padding: 16px 18px;
  border-radius: 8px;
  border: 1px solid #D5D0CA;
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.bdp-emerg-icon {
  font-size: 24px;
  flex-shrink: 0;
  margin-top: 2px;
  line-height: 1;
}

.bdp-emerg-name {
  font-weight: 700;
  font-size: 14px;
  color: #2C2C2C;
  margin-bottom: 3px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-emerg-desc {
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.5;
}

.entry-content p.bdp-emerg-footer-note {
  font-size: 14px;
  color: #6B6B6B;
  margin-top: 20px;
  margin-bottom: 0;
}

.entry-content p.bdp-emerg-footer-note a {
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: underline;
}

/* ── Why choose / reasons grid */
.entry-content .wp-block-columns.bdp-reasons-grid {
  gap: 24px;
  margin-bottom: 0;
}

.entry-content .wp-block-column.bdp-reason-card {
  text-align: center;
  padding: 24px 16px;
  min-width: 0;
}

.entry-content p.bdp-reason-icon,
.entry-content div.bdp-reason-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-bottom: 12px;
  line-height: 1;
}

.entry-content .bdp-reason-icon svg {
  width: 32px;
  height: 32px;
  display: block;
}

.entry-content h3.wp-block-heading.bdp-reason-title {
  font-size: 15px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 8px;
  line-height: 1.3;
}

.entry-content p.bdp-reason-text {
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.6;
  margin-bottom: 0;
}

/* ── FAQ section */
.entry-content .bdp-section.bdp-section--faq {
  background: #FAFAF8;
}

.entry-content .wp-block-details.bdp-faq-item {
  background: #ffffff;
  border-radius: 8px;
  border: 1px solid #D5D0CA;
  overflow: hidden;
  margin-bottom: 8px;
}

.entry-content .wp-block-details.bdp-faq-item summary {
  padding: 16px 20px;
  font-weight: 600;
  font-size: 15px;
  color: #2C2C2C;
  cursor: pointer;
  list-style: none;
  font-family: Arial, Helvetica, sans-serif;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.entry-content .wp-block-details.bdp-faq-item summary::-webkit-details-marker {
  display: none;
}

.entry-content .wp-block-details.bdp-faq-item summary::after {
  content: '+';
  font-size: 20px;
  color: #2E6B3A;
  font-weight: 400;
  flex-shrink: 0;
  margin-left: 12px;
}

.entry-content .wp-block-details.bdp-faq-item[open] summary::after {
  content: '\2212';
}

.entry-content .wp-block-details.bdp-faq-item p {
  padding: 0 20px 16px;
  font-size: 14px;
  color: #6B6B6B;
  line-height: 1.7;
  margin-bottom: 0;
}

/* ── Final CTA 2-col layout */
.entry-content .wp-block-columns.bdp-emerg-cta-grid {
  gap: 48px;
  align-items: center;
  margin-bottom: 0;
}

.entry-content .wp-block-column.bdp-emerg-cta-left {
  text-align: left;
}

.entry-content .wp-block-column.bdp-emerg-cta-left p {
  font-size: 15px;
  color: rgba(255,255,255,0.8);
  margin-bottom: 24px;
  line-height: 1.6;
}

.entry-content .wp-block-buttons.bdp-emerg-final-btns {
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Location card (inside dark green CTA) */
.bdp-emerg-loc-card {
  background: rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,0.15);
}

.bdp-emerg-loc-title {
  font-weight: 700;
  font-size: 15px;
  color: #ffffff;
  margin-bottom: 10px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-emerg-loc-addr {
  font-size: 14px;
  color: rgba(255,255,255,0.75);
  line-height: 1.7;
  margin-bottom: 16px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-emerg-hours-label {
  font-weight: 700;
  font-size: 14px;
  color: #ffffff;
  margin-bottom: 8px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-emerg-hours-row {
  display: flex;
  justify-content: space-between;
  padding: 5px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 13px;
  color: rgba(255,255,255,0.75);
  max-width: 280px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-emerg-hours-row span:last-child {
  font-weight: 600;
  color: rgba(255,255,255,0.9);
}

/* ── Areas served */
.bdp-areas-served {
  text-align: center;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.15);
  font-size: 13px;
  color: rgba(255,255,255,0.6);
  line-height: 1.8;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-areas-list {
  color: rgba(255,255,255,0.75);
  display: block;
  margin-top: 6px;
}

/* ── Emergency mobile */
@media (max-width: 781px) {
  .entry-content .bdp-section.bdp-section--emergency-hero {
    padding: 36px 20px 32px;
  }

  .entry-content .bdp-section--emergency-hero h1.wp-block-heading.bdp-headline {
    font-size: 30px;
  }

  .entry-content .wp-block-button.bdp-btn-urgent > .wp-block-button__link {
    font-size: 15px;
    padding: 14px 24px;
  }

  .entry-content .wp-block-columns.bdp-process-grid {
    flex-direction: column;
    gap: 12px;
  }

  .bdp-emerg-grid {
    grid-template-columns: 1fr;
  }

  .entry-content .wp-block-columns.bdp-reasons-grid {
    flex-direction: column;
    gap: 0;
  }

  .entry-content .wp-block-columns.bdp-emerg-cta-grid {
    flex-direction: column;
    gap: 32px;
  }
}


/* ==============================================
   SERVICE PAGES — SHARED COMPONENTS
   ============================================== */

/* ── Narrow layout variant (800px) — Duo-Lase + content-heavy pages */
.entry-content .bdp-section.bdp-section--narrow > * {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Content block (800px prose column within a 1100px section) */
.entry-content .wp-block-group.bdp-content-block {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Section intro — sub-head below H2, before grid or content */
.entry-content p.bdp-section-intro {
  font-size: 16px;
  color: #6B6B6B;
  margin-bottom: 28px;
  max-width: 640px;
}

/* ── Hero buttons wrapper */
.entry-content .wp-block-buttons.bdp-hero-buttons {
  margin-top: 24px;
  justify-content: center;
}

/* ── CTA section buttons wrapper */
.entry-content .wp-block-buttons.bdp-cta-buttons {
  justify-content: center;
  margin-bottom: 0;
}

/* ── Page subtitle (H1 sub-line, narrower/lighter than bdp-lead) */
.entry-content p.bdp-page-subtitle {
  font-size: 18px;
  color: #555555;
  line-height: 1.6;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
}

/* ── Feature split (2-col treatment or content layout) */
.entry-content .wp-block-columns.bdp-feature-split {
  gap: 56px;
  align-items: flex-start;
  margin-bottom: 0;
}

/* ── Split label (small eyebrow label above H3 in right column) */
.entry-content p.bdp-split-label {
  font-size: 11px;
  font-weight: 700;
  color: #6B6B6B;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

/* ── Service list (bulleted list of treatments) */
.entry-content .wp-block-list.bdp-service-list {
  padding-left: 20px;
  margin-bottom: 0;
}

.entry-content .wp-block-list.bdp-service-list li {
  font-size: 15px;
  color: #444444;
  line-height: 1.75;
  margin-bottom: 10px;
}


/* ==============================================
   MOCKUP-FAITHFUL SERVICE SUB-PAGE COMPONENTS
   (behrens-laser-treatment-mockup.html)
   ============================================== */

/* ── Left-aligned hero variant (mockup .page-hero) */
.entry-content .bdp-section.bdp-hero--left {
  text-align: left;
  padding: 48px 24px 40px;
}

.entry-content .bdp-section.bdp-hero--left > * {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.entry-content .bdp-section.bdp-hero--left h1.wp-block-heading.bdp-headline {
  font-size: 34px;
  margin-bottom: 12px;
}

.entry-content .bdp-section.bdp-hero--left p.bdp-page-subtitle,
.entry-content .bdp-section.bdp-hero--left p {
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  max-width: 800px;
}

.entry-content .bdp-section.bdp-hero--left p.bdp-page-subtitle {
  font-size: 18px;
  color: #6B6B6B;
  margin-bottom: 24px;
}

/* ── Hero badges (icon circles, mockup .hero-badge) */
.bdp-hero-badges {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-hero-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #2C2C2C;
  font-weight: 500;
}

.bdp-hero-badge-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}

.bdp-hero-badge-icon--green { background: #E8F5E9; }
.bdp-hero-badge-icon--gold  { background: #FFF8E1; }
.bdp-hero-badge-icon--blue  { background: #E3F2FD; }

/* ── Content sections with separators (mockup .content-section) */
.entry-content .wp-block-group.bdp-content-section {
  max-width: 800px;
  margin: 0 auto;
  padding: 36px 0;
  border-bottom: 1px solid #D5D0CA;
}

.entry-content .wp-block-group.bdp-content-section:last-child {
  border-bottom: none;
}

.entry-content .wp-block-group.bdp-content-section h2.bdp-section-title {
  font-size: 26px;
}

/* ── Case study box (mockup .case-study) */
.bdp-case-study {
  background: #F5F3F0;
  border-radius: 14px;
  padding: 32px;
}

.bdp-case-study-label {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: #2E6B3A;
  font-weight: 700;
  margin-bottom: 14px;
}

.bdp-case-study h3 {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 20px;
  color: #2C2C2C;
  margin-bottom: 6px;
}

.bdp-case-study p {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  color: #444444;
  line-height: 1.6;
  margin-bottom: 10px;
}

/* ── Before/after grid (mockup .before-after) */
.bdp-before-after {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 20px 0;
}

.bdp-ba-image img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid #D5D0CA;
  background: #ffffff;
  display: block;
}

.bdp-ba-label {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  margin-top: 6px;
  color: #2C2C2C;
}

/* ── Benefits grid, HTML variant (mockup .benefits-grid) */
.bdp-benefits-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 20px 0;
}

.bdp-benefits-grid .bdp-benefit-card {
  background: #FAFAF8;
  border-radius: 10px;
  padding: 18px 20px;
  border: 1px solid #D5D0CA;
}

.bdp-benefits-grid .bdp-benefit-icon {
  font-size: 20px;
  margin-bottom: 6px;
}

.bdp-benefits-grid .bdp-benefit-title {
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #2C2C2C;
  margin-bottom: 4px;
}

.bdp-benefits-grid .bdp-benefit-text {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.5;
}

/* ── Content figure inside narrow sections */
.entry-content .bdp-content-section figure.wp-block-image {
  margin: 20px auto;
  max-width: 480px;
}

/* ── Image grid utilities — N columns desktop, 2 columns mobile.
   Rule: images are NEVER stacked vertically on desktop. */
.bdp-image-grid {
  display: grid;
  gap: 16px;
  margin: 20px 0;
  align-items: start;
}

.bdp-image-grid--2 { grid-template-columns: repeat(2, 1fr); }
.bdp-image-grid--3 { grid-template-columns: repeat(3, 1fr); }
.bdp-image-grid--4 { grid-template-columns: repeat(4, 1fr); }

.bdp-image-grid img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid #D5D0CA;
  background: #ffffff;
  display: block;
}

@media (max-width: 600px) {
  /* Image groups stay 2-up on mobile (never single-stacked) */
  .bdp-before-after { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .bdp-image-grid--2,
  .bdp-image-grid--3,
  .bdp-image-grid--4 { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  /* Benefit cards are text — single column is fine on mobile */
  .bdp-benefits-grid { grid-template-columns: 1fr; }
}


/* ==============================================
   TRUST STRIP — full-width dark bar
   ============================================== */

.bdp-trust-strip {
  background: #2C2C2C;
  padding: 16px 24px;
  width: 100%;
}

.bdp-trust-strip-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 20px;
}

.bdp-trust-item {
  font-size: 13px;
  color: rgba(255,255,255,0.8);
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-trust-item strong {
  color: #ffffff;
}

.bdp-trust-icon {
  margin-right: 4px;
}

.bdp-trust-sep {
  color: rgba(255,255,255,0.25);
  font-size: 14px;
}


/* ==============================================
   TRUST BADGES — hero pill badges
   ============================================== */

.bdp-trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 24px;
}

.bdp-trust-badge {
  display: inline-block;
  background: rgba(46,107,58,0.08);
  color: #1B4D28;
  border: 1px solid rgba(46,107,58,0.2);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  font-family: Arial, Helvetica, sans-serif;
}


/* ==============================================
   EARLY CTA BOX — green-tinted callout, top of page
   ============================================== */

.entry-content .wp-block-group.bdp-early-cta {
  background: linear-gradient(135deg, #2E6B3A, #1B4D28);
  border: none;
  border-radius: 14px;
  padding: 28px 32px;
}

.entry-content .wp-block-group.bdp-early-cta-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.entry-content .wp-block-group.bdp-early-cta-text {
  flex: 1;
  min-width: 220px;
}

.entry-content .wp-block-group.bdp-early-cta-actions {
  flex-shrink: 0;
}

.entry-content p.bdp-early-cta-heading {
  font-size: 22px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 8px;
}

.entry-content p.bdp-early-cta-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.85);
  margin-bottom: 0;
  line-height: 1.5;
}

.entry-content p.bdp-early-cta-desc a {
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

.entry-content .wp-block-group.bdp-early-cta .wp-block-button.bdp-btn-light > .wp-block-button__link {
  background-color: #ffffff;
  color: #1B4D28;
}

.entry-content .wp-block-group.bdp-early-cta .wp-block-button.bdp-btn-light > .wp-block-button__link:hover {
  background-color: #F5F3F0;
}


/* ==============================================
   MID-CTA BOX — inline green box, ~50% scroll depth
   ============================================== */

.entry-content .wp-block-group.bdp-mid-cta {
  background: #F0F7F1;
  border: 1px solid #C3D9C9;
  border-radius: 10px;
  padding: 32px 36px;
  text-align: center;
}

.entry-content p.bdp-mid-cta-heading {
  font-size: 20px;
  font-weight: 700;
  color: #1B4D28;
  margin-bottom: 10px;
}

.entry-content .wp-block-group.bdp-mid-cta p.bdp-mid-cta-text {
  font-size: 15px;
  color: #444444;
  font-weight: 400;
  margin-bottom: 20px;
}


/* ==============================================
   FEAR QUESTIONS CALLOUT — "Were You Told That…"
   ============================================== */

.bdp-fear-questions {
  background: #F0F7F1;
  border-left: 4px solid #2E6B3A;
  border-radius: 0 8px 8px 0;
  padding: 20px 24px;
  margin: 0 0 24px;
}

.bdp-fear-item {
  font-size: 15px;
  color: #2C2C2C;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
  margin-bottom: 10px;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.bdp-fear-item:last-child {
  margin-bottom: 0;
}

.bdp-fear-check {
  color: #2E6B3A;
  font-weight: 700;
  flex-shrink: 0;
}


/* ==============================================
   TESTIMONIAL CARD
   ============================================== */

.bdp-testimonial-card {
  background: #FAFAF8;
  border: 1px solid #D5D0CA;
  border-radius: 10px;
  padding: 28px;
}

.bdp-testimonial-inner {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.bdp-testimonial-content {
  flex: 1;
  min-width: 200px;
}

.bdp-testimonial-quote {
  font-size: 16px;
  color: #444444;
  line-height: 1.7;
  font-style: italic;
  margin-bottom: 12px !important;
}

.bdp-testimonial-author {
  font-size: 13px;
  color: #6B6B6B;
  font-weight: 600;
  margin-bottom: 0 !important;
}

/* ── BSP badge sub-elements */
.bdp-bsp-badge-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #1B4D28;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-bsp-badge-text {
  font-size: 12px;
  color: #444444;
  line-height: 1.5;
  font-family: Arial, Helvetica, sans-serif;
}


/* ==============================================
   AREAS SERVED SECTION
   ============================================== */

.bdp-areas-section {
  background: #FAFAF8;
  padding: 48px 24px;
  width: 100%;
}

.bdp-areas-inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.bdp-areas-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: #2C2C2C;
  margin-bottom: 8px;
}

.bdp-areas-intro {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
  color: #6B6B6B;
  margin-bottom: 24px;
}

.bdp-areas-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.bdp-area-tag,
.entry-content a.bdp-area-tag {
  display: inline-block;
  background: #ffffff;
  border: 1px solid #D5D0CA;
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 13px;
  color: #444444;
  font-family: Arial, Helvetica, sans-serif;
  text-decoration: none;
  font-weight: 500;
  transition: all .15s ease;
}

.entry-content a.bdp-area-tag:hover {
  background: #F0F7F1;
  border-color: #2E6B3A;
  color: #1B4D28;
  text-decoration: none;
}


/* ==============================================
   5-step process grid (Dental Implants journey)
   ============================================== */

.bdp-process-grid--5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin-top: 16px;
}

.bdp-process-grid--5 .bdp-process-step {
  background: #FAFAF8;
  padding: 24px 16px;
  border-radius: 10px;
  text-align: left;
}

.bdp-process-grid--5 .bdp-process-num {
  width: 32px;
  height: 32px;
  background: #2E6B3A;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 12px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-process-grid--5 .bdp-process-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #2C2C2C;
  margin: 0 0 8px;
  line-height: 1.3;
}

.bdp-process-grid--5 .bdp-process-text {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 1024px) {
  .bdp-process-grid--5 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .bdp-process-grid--5 {
    grid-template-columns: 1fr;
  }
}


/* ==============================================
   FEATURE VIDEOS — self-hosted video blocks
   ============================================== */

.entry-content .wp-block-video.bdp-feature-video {
  margin: 0 auto 32px;
  max-width: 720px;
}

.entry-content .wp-block-video.bdp-feature-video video {
  max-width: 100%;
  max-height: 560px;
  width: auto;
  height: auto;
  /* Use each video's intrinsic aspect-ratio (declared inline on the element).
     No forced 16/9 + cover, which cropped the top of the frame on portrait videos. */
  object-fit: contain;
  border-radius: 10px;
  display: block;
  margin: 0 auto;
  background: #000;
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

@media (max-width: 781px) {
  .entry-content .wp-block-video.bdp-feature-video {
    max-width: 100%;
  }
  .entry-content .wp-block-video.bdp-feature-video video {
    max-height: 480px;
  }
}

.entry-content .bdp-section--video {
  padding: 64px 24px;
  background: #FAFAF8;
  text-align: center;
}

.entry-content .bdp-section--video h2.bdp-section-title {
  margin-bottom: 8px;
}

.entry-content .bdp-section--video p.bdp-section-intro {
  margin: 0 auto 24px;
  max-width: 640px;
}

/* ── Video split (2-col: text left / video right) */
.entry-content .wp-block-columns.bdp-video-split {
  gap: 56px;
  align-items: center;
  margin-bottom: 0;
  text-align: left;
}

.entry-content .wp-block-column.bdp-video-split-text p.bdp-section-intro {
  margin: 0 0 16px;
  max-width: none;
}

.entry-content .wp-block-column.bdp-video-split-text p {
  margin-bottom: 16px;
}

.entry-content .wp-block-buttons.bdp-video-split-cta {
  margin-top: 8px;
}

.entry-content .bdp-video-split .wp-block-video.bdp-feature-video {
  max-width: none;
  margin: 0;
}

/* Homepage split video is landscape — fill the column width */
.entry-content .bdp-video-split .wp-block-video.bdp-feature-video video {
  width: 100%;
  margin: 0;
}

@media (max-width: 781px) {
  .entry-content .wp-block-columns.bdp-video-split {
    flex-direction: column;
    gap: 28px;
    text-align: center;
  }
  .entry-content .wp-block-column.bdp-video-split-text p.bdp-section-intro {
    margin: 0 auto 16px;
  }
  .entry-content .wp-block-buttons.bdp-video-split-cta {
    justify-content: center;
  }
}


/* ==============================================
   FEATURE IMAGES — full-width or constrained content images
   ============================================== */

.entry-content figure.wp-block-image.bdp-feature-image {
  margin: 0 auto 32px;
  max-width: 1100px;
}

.entry-content figure.wp-block-image.bdp-feature-image img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}

.entry-content figure.wp-block-image.bdp-feature-image--banner {
  max-width: none;
  margin: 0 0 32px;
}

.entry-content figure.wp-block-image.bdp-feature-image--banner img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: 0;
}

.entry-content figure.wp-block-image.bdp-feature-image--portrait {
  max-width: 480px;
  margin: 16px auto 24px;
}

.entry-content figure.wp-block-image.bdp-feature-image--portrait img {
  width: 100%;
  height: auto;
  border-radius: 10px;
}

@media (max-width: 781px) {
  .entry-content figure.wp-block-image.bdp-feature-image--banner img {
    height: 240px;
  }
}


/* ==============================================
   BENEFIT CARDS — dental-implants + service pages
   ============================================== */

.entry-content .wp-block-group.bdp-benefits-wrap {
  margin-top: 8px;
}

.entry-content .wp-block-columns.bdp-benefits-row {
  gap: 24px;
  margin-bottom: 24px;
}

.entry-content .wp-block-columns.bdp-benefits-row:last-child {
  margin-bottom: 0;
}

.entry-content .wp-block-column.bdp-benefit-card {
  padding: 24px 20px;
  border-radius: 10px;
  border: 1px solid #D5D0CA;
  background: #ffffff;
  min-width: 0;
}

.entry-content p.bdp-benefit-icon,
.entry-content div.bdp-benefit-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-bottom: 12px;
  line-height: 1;
}

.entry-content .bdp-benefit-icon svg {
  width: 32px;
  height: 32px;
  display: block;
}

.entry-content h3.wp-block-heading.bdp-benefit-title {
  font-size: 17px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 8px;
  line-height: 1.3;
}

.entry-content p.bdp-benefit-text {
  font-size: 14px;
  color: #6B6B6B;
  line-height: 1.65;
  margin-bottom: 0;
}


/* ==============================================
   CONTACT PAGE — ACTION CARDS
   ============================================== */

.bdp-action-cards-section {
  padding: 0 24px 48px;
  background: #ffffff;
}

.bdp-action-cards-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.bdp-action-cards-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.bdp-action-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 28px 20px;
  border-radius: 10px;
  border: 1px solid #D5D0CA;
  background: #ffffff;
  text-decoration: none;
  color: inherit;
}

.bdp-action-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  border-color: #2E6B3A;
  text-decoration: none;
}

.bdp-action-card--book {
  border-color: #2E6B3A;
  background: #F0F7F1;
}

.bdp-action-icon {
  font-size: 32px;
  margin-bottom: 12px;
  line-height: 1;
}

.bdp-action-label {
  font-size: 11px;
  font-weight: 700;
  color: #6B6B6B;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-action-main {
  font-size: 18px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 4px;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.3;
}

.bdp-action-card--call .bdp-action-main {
  font-size: 22px;
  color: #1B4D28;
}

.bdp-action-card--book .bdp-action-main {
  color: #1B4D28;
}

.bdp-action-sub {
  font-size: 12px;
  color: #6B6B6B;
  font-family: Arial, Helvetica, sans-serif;
}


/* ==============================================
   CONTACT PAGE — LOCATION GRID
   ============================================== */

.bdp-location-grid-contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: flex-start;
  margin-top: 28px;
}

.bdp-map-embed {
  margin-bottom: 20px;
}

/* Full-width map band (Map / Find Us page) */
.bdp-map-full {
  width: 100%;
  line-height: 0;
}

.bdp-map-full iframe {
  width: 100%;
  display: block;
}

@media (max-width: 781px) {
  .bdp-map-full iframe {
    height: 300px;
  }
}

.bdp-map-embed iframe {
  border-radius: 10px;
  width: 100%;
  display: block;
}

.bdp-address-detail {
  padding-top: 4px;
}

.bdp-address-title {
  font-size: 15px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 4px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-address-text {
  font-size: 14px;
  color: #444444;
  line-height: 1.7;
  margin-bottom: 10px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-address-link {
  font-size: 14px;
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: none;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-address-link:hover {
  text-decoration: underline;
}

.bdp-hours-block {
  background: #ffffff;
  border-radius: 8px;
  padding: 20px;
  border: 1px solid #D5D0CA;
  margin-bottom: 20px;
}

.bdp-hours-block-title {
  font-size: 14px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 12px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-hours-row-item {
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid #F5F3F0;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-hours-row-item:last-of-type {
  border-bottom: none;
}

.bdp-hours-day {
  font-size: 14px;
  color: #444444;
}

.bdp-hours-time {
  font-size: 14px;
  font-weight: 600;
  color: #2C2C2C;
}

.bdp-hours-closed {
  color: #6B6B6B;
  font-weight: 400;
}

.bdp-hours-note {
  font-size: 12px;
  color: #6B6B6B;
  margin-top: 10px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-transport-block {
  margin-top: 4px;
}

.bdp-transport-title {
  font-size: 14px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 10px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-transport-item {
  font-size: 14px;
  color: #444444;
  line-height: 1.65;
  margin-bottom: 10px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-form-placeholder {
  background: #FAFAF8;
  border: 2px dashed #D5D0CA;
  border-radius: 8px;
  padding: 32px;
  text-align: center;
  font-size: 14px;
  color: #6B6B6B;
  font-family: Arial, Helvetica, sans-serif;
}


/* ==============================================
   TEAM PAGE — GRID + CARDS
   ============================================== */

.bdp-team-grid {
  display: grid;
  gap: 28px 24px;
}

.bdp-team-grid--dentists {
  grid-template-columns: repeat(3, 1fr);
}

.bdp-team-grid--practice-team {
  grid-template-columns: repeat(3, 1fr);
}

.bdp-team-grid--hygienists {
  grid-template-columns: repeat(6, 1fr);
}

.bdp-team-grid--hygienists > * {
  grid-column: span 2;
}

.bdp-team-grid--hygienists > *:nth-child(4) {
  grid-column: 2 / span 2;
}

.bdp-team-grid--hygienists > *:nth-child(5) {
  grid-column: 4 / span 2;
}

.bdp-team-section-title {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6B6B6B;
  text-align: center;
  margin: 0 0 28px;
}

.bdp-team-card {
  text-align: center;
}

.bdp-team-photo-wrap {
  width: 160px;
  height: 160px;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  background: #F0F7F1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: 700;
  color: #1B4D28;
  font-family: Arial, Helvetica, sans-serif;
  margin: 0 auto 14px;
}

.bdp-team-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.bdp-team-member-name {
  font-size: 15px;
  font-weight: 700;
  color: #2C2C2C;
  margin-bottom: 4px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-team-member-role {
  font-size: 13px;
  color: #6B6B6B;
  line-height: 1.5;
  margin-bottom: 10px;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-team-member-link {
  font-size: 13px;
  color: #2E6B3A;
  font-weight: 600;
  text-decoration: none;
  font-family: Arial, Helvetica, sans-serif;
}

.bdp-team-member-link:hover {
  text-decoration: underline;
}


/* ==============================================
   MOBILE — SERVICE + CONTACT + TEAM PAGES
   ============================================== */

@media (max-width: 781px) {

  .entry-content .wp-block-columns.bdp-feature-split {
    flex-direction: column;
    gap: 32px;
  }

  .bdp-action-cards-row {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .bdp-action-card {
    flex-direction: row;
    text-align: left;
    gap: 16px;
    padding: 20px;
  }

  .bdp-action-icon {
    font-size: 28px;
    margin-bottom: 0;
    flex-shrink: 0;
  }

  .bdp-action-main {
    font-size: 17px;
  }

  .bdp-action-card--call .bdp-action-main {
    font-size: 20px;
  }

  .bdp-location-grid-contact {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .bdp-team-grid--dentists,
  .bdp-team-grid--practice-team {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 16px;
  }
  .bdp-team-grid--hygienists {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 16px;
  }
  .bdp-team-grid--hygienists > *,
  .bdp-team-grid--hygienists > *:nth-child(4),
  .bdp-team-grid--hygienists > *:nth-child(5) {
    grid-column: auto;
  }
  .bdp-team-photo-wrap {
    width: 130px;
    height: 130px;
  }

  .bdp-testimonial-inner {
    flex-direction: column;
    gap: 20px;
  }

  .entry-content .wp-block-group.bdp-early-cta-inner {
    flex-direction: column;
    gap: 16px;
  }

  .entry-content .wp-block-group.bdp-mid-cta {
    padding: 24px 20px;
  }
}


/* ==============================================
   EMPTY-WRAPPER GUARD
   Defensive: when a removal leaves a section wrapper with no
   children, stop it rendering as a ~72px gap + stray border-bottom
   divider. Block markup is unchanged. (e.g. /multiple-tooth-replacement/,
   /who-we-treat/)
   ============================================== */
.entry-content .wp-block-group.bdp-content-section:not(:has(*)),
.entry-content .wp-block-group.bdp-section:not(:has(*)) {
  display: none !important;
}

/* :empty fallback for engines without :has() */
.entry-content .wp-block-group.bdp-content-section:empty,
.entry-content .wp-block-group.bdp-section:empty {
  display: none !important;
}


/* ==============================================
   SITE CHROME — TOP UTILITY / CONTACT BAR
   Rendered above the Blocksy header (wp_body_open).
   NOT scoped under .entry-content. Dark #2C2C2C, Arial.
   ============================================== */
.bdp-utility-bar {
  background: #2C2C2C;
  color: #ffffff;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  line-height: 1.2;
}

.bdp-utility-inner {
  max-width: 1100px;
  margin: 0 auto;
  min-height: 36px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.bdp-util-left {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.bdp-util-left a {
  color: #ffffff;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bdp-util-left a.bdp-util-phone {
  font-weight: 700;
  flex-shrink: 0;
}

.bdp-util-left a:hover {
  text-decoration: underline;
}

.bdp-util-social {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.bdp-util-social a {
  display: inline-flex;
  align-items: center;
  color: #ffffff;
}

.bdp-util-social a:hover {
  color: #2E6B3A;
}

.bdp-util-social svg {
  width: 16px;
  height: 16px;
  display: block;
}

/* Phone always visible; email hides at narrow widths; no overflow/overlap */
@media (max-width: 480px) {
  .bdp-utility-inner {
    padding: 0 16px;
    gap: 8px;
  }
  .bdp-util-email {
    display: none;
  }
  .bdp-util-social {
    gap: 12px;
  }
}


/* ==============================================
   SITE CHROME — ACCREDITATION STRIP
   One canonical bar, injected after the hero on every page
   (via the_content; post_content unchanged). Legacy in-content
   .bdp-trust-strip blocks are hidden below so pages never double.
   Full-bleed via margin trick (no 100vw scrollbar issue).
   ============================================== */
.bdp-accreditation-bar {
  background: #2C2C2C;
  width: 100%;
  padding: 14px 24px;
}

.bdp-accreditation-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 18px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  line-height: 1.4;
  color: rgba(255,255,255,0.85);
  text-align: center;
}

.bdp-accreditation-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.bdp-accreditation-item strong {
  color: #ffffff;
}

.bdp-accreditation-stars {
  color: #ffffff;
  letter-spacing: 1px;
}

.bdp-accreditation-sep {
  color: rgba(255,255,255,0.25);
  font-size: 14px;
}

/* Mobile: drop the pipe separators, stack centered — no wrap/overlap */
@media (max-width: 600px) {
  .bdp-accreditation-bar {
    padding: 12px 16px;
  }
  .bdp-accreditation-inner {
    flex-direction: column;
    gap: 8px;
  }
  .bdp-accreditation-sep {
    display: none;
  }
}

/* B1: suppress legacy per-page trust strips (kept in DB, hidden visually)
   so the single canonical accreditation bar is the only one shown. */
.bdp-trust-strip {
  display: none !important;
}

/* ============================================================
   Hide top utility/contact bar (.bdp-utility-bar)
   Requested removal — grey bar above the Blocksy header.
   Reversible: delete this block to restore.
   ============================================================ */
.bdp-utility-bar { display: none !important; }


/* ==============================================
   CONTENT + IMAGE — 1/2 + 1/2 column pattern (behrens-design-system-truth.md §5)
   Text in one half, a single image in the other.
   bdp-content-image--image-left / --image-right pick the image side on desktop.
   DOM is always text-first (a11y + mobile stack = text then image).
   Horizontal images may use this OR bdp-feature-image (above content);
   vertical images must use this.
   ============================================== */
.entry-content .wp-block-columns.bdp-content-image {
  max-width: 1100px;
  margin: 0 auto 32px;
  gap: 56px;
  align-items: center;            /* vertical centring */
}

.entry-content .bdp-content-image > .wp-block-column {
  flex: 1 1 0;                     /* true 50/50, ignores authored column widths */
  min-width: 0;
}

/* image-left: move the media half left on desktop (text stays first in DOM) */
.entry-content .bdp-content-image.bdp-content-image--image-left .bdp-content-image-media {
  order: -1;
}

/* the image: fill its half, never upscale past native, cap a vertical's height */
.entry-content .bdp-content-image .bdp-content-image-media .wp-block-image {
  margin: 0;
}

.entry-content .bdp-content-image .bdp-content-image-media .wp-block-image img {
  display: block;
  width: auto;                     /* never force-fill -> never upscales a small file */
  height: auto;
  max-width: 100%;                 /* never wider than its column */
  max-height: 520px;               /* a vertical never dominates the viewport */
  margin: 0 auto;
  border-radius: 10px;
}

@media (max-width: 781px) {
  .entry-content .wp-block-columns.bdp-content-image {
    flex-direction: column;
    gap: 28px;
  }
  /* always text first, image second when stacked - regardless of modifier */
  .entry-content .bdp-content-image .bdp-content-image-text  { order: 1; }
  .entry-content .bdp-content-image .bdp-content-image-media { order: 2; }
  /* keep the stacked image sensible, never oversized */
  .entry-content .bdp-content-image .bdp-content-image-media .wp-block-image img {
    max-width: 480px;
    max-height: 360px;
  }
}


/* ── .bdp-content-image--content-width
   Constrain a 1/2+1/2 image row to the 800px prose column so it lines up with
   .bdp-content-section instead of the default 1100px. Keep this value equal to
   the .bdp-content-section max-width (800px) so they stay in sync. Desktop-only
   override; everything else (56px gap, true 50/50, vertical centring, image
   sizing/caps, mobile text-first stack) inherits from base .bdp-content-image. */
.entry-content .wp-block-columns.bdp-content-image.bdp-content-image--content-width {
  max-width: 800px;
}
