/* Shared responsive and accessible component corrections. */
.moxie-topbar .moxie-phone-link { white-space: nowrap; flex-shrink: 0; }
@media (max-width: 600px) {
  .moxie-topbar .moxie-topbar-inner { flex-direction: column; gap: 8px; }
  .moxie-topbar .moxie-topbar-left, .moxie-topbar .moxie-topbar-right { justify-content: center; flex-wrap: wrap; gap: 10px; }
  .home .dh { padding-left: 0; padding-right: 0; }
}
/* Shared navigation: anchor panels to the navbar, retaining X centring when open. */
.moxie-navbar { position: relative; }
.moxie-navbar-inner, .moxie-nav-desktop { position: static; }
.moxie-nav-desktop .moxie-megamenu-panel { left: 50% !important; right: auto !important; width: min(1140px, calc(100vw - 40px)) !important; max-width: calc(100vw - 40px) !important; transform: translate(-50%, 6px) !important; max-height: min(70vh, calc(100dvh - 180px)); overscroll-behavior: contain; }
.moxie-nav-desktop .moxie-menu > li.moxie-has-megamenu:hover > .moxie-megamenu-panel, .moxie-nav-desktop .moxie-menu > li.moxie-has-megamenu.is-active > .moxie-megamenu-panel, .moxie-nav-desktop .moxie-menu > li.moxie-has-megamenu:focus-within > .moxie-megamenu-panel { transform: translate(-50%, 0) !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
.moxie-menu > li > a { text-decoration: none; white-space: nowrap; }
.moxie-submenu-toggle { border: 0; background: transparent; color: var(--moxie-navy); cursor: pointer; padding: 12px 6px; min-height: 44px; }
.moxie-submenu-toggle:focus-visible, .moxie-menu a:focus-visible { outline: 2px solid #0280ac; outline-offset: 3px; }
.moxie-menu > li > a .moxie-chevron-icon { display: none; }
.moxie-menu { gap: 16px; }
.moxie-drawer { z-index: 100001; height: 100dvh; }
.moxie-drawer-panel { width: min(92vw, 400px); max-width: 100%; }
.moxie-drawer-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.moxie-mobile-menu-list a, .moxie-mobile-menu-list summary { min-height: 44px; padding: 12px 0; }
.moxie-mobile-menu-list summary { cursor: pointer; font-weight: 700; }
.moxie-mobile-menu-list details ul { padding-left: 16px; list-style: none; }
.moxie-mobile-menu-list details a { display: block; overflow-wrap: anywhere; }
@media (max-width: 1199px) {
  .moxie-nav-desktop { display: none !important; }
  .moxie-mobile-toggle { display: flex !important; min-width: 44px; min-height: 44px; }
}
@media (max-width: 420px) {
  .moxie-logo-title { font-size: 18px; }
  .moxie-logo-wrap { min-width: 0; flex-shrink: 1; }
  .moxie-topbar-text { font-size: 11px; text-align: center; }
}
/* Imported content adopts shared templates without relying on old page IDs. */
.moxie-service-content, .moxie-page-content, .moxie-entry-content { min-width: 0; overflow-wrap: break-word; }
.moxie-entry-content :is(img, iframe, video) { max-width: 100%; }
@media (prefers-reduced-motion: reduce) {
  .moxie-site-body *, .moxie-site-body *::before, .moxie-site-body *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
/* Explicit keyboard dismissal wins over hover/focus presentation. */
.moxie-nav-desktop .moxie-menu > li.moxie-has-megamenu.is-dismissed > .moxie-megamenu-panel { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
.moxie-provider-page .moxie-page-container { padding-top: 40px; }
.moxie-nav-desktop a.moxie-mm-topbar-link { color: #fff !important; }
.moxie-site-header .moxie-menu > li > a { text-decoration: none !important; }
.moxie-site-header .moxie-menu > li > .moxie-submenu-toggle { font-size: 16px; }
/* One shared page hero, followed by a restrained introduction panel. */
/* Enhanced navigation has one state owner (JavaScript); CSS hover remains a no-JS fallback. */
html.moxie-js-navigation .moxie-nav-desktop .moxie-menu > li.moxie-has-megamenu:not(.is-active) > .moxie-megamenu-panel { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
html.moxie-js-navigation .moxie-nav-desktop .moxie-menu > li.moxie-has-megamenu.is-active > .moxie-megamenu-panel { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
.moxie-contact-cta-card h2 { font-size: 1.5rem; }
/* Native managed menus retain the established card and column design. */
.moxie-managed-columns { display: grid; grid-template-columns: repeat(var(--menu-columns, 4), minmax(0, 1fr)); gap: 0; padding: 24px 20px; background: #fff; }
.moxie-managed-columns > .moxie-mm-col { min-width: 0; }
.moxie-mm-team-info, .moxie-mm-fund-info { display: flex; flex-direction: column; min-width: 0; }
.moxie-mm-footer-right { flex-wrap: wrap; }
.moxie-mm-topbar > span { min-width: 0; }
.moxie-footer-heading { font-size: 1rem; }
/* No desktop chevrons. Preserve a keyboard-accessible disclosure control. */
.moxie-nav-desktop .moxie-submenu-toggle:not(:focus-visible) { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.team-cta .team-cta-btn { background: #fff !important; background-image: none !important; color: #1a3a5c !important; box-shadow: 0 4px 14px rgba(0, 35, 58, .18) !important; }
.team-cta .team-cta-btn:hover, .team-cta .team-cta-btn:focus-visible { background: #e8f6fa !important; color: #1a3a5c !important; box-shadow: 0 6px 18px rgba(0, 35, 58, .22) !important; filter: none !important; }
.moxie-card-booking > .moxie-btn + .moxie-btn { margin-top: 12px; }
.moxie-mobile-menu-list details > a { padding-left: 18px; }
.moxie-mobile-menu-list .moxie-mm-col-links { display: block; padding: 0 0 8px 14px; }
.moxie-mobile-menu-list .moxie-mm-col-links a { white-space: normal; }
@media (min-width: 1200px) {
  .moxie-nav-desktop .moxie-menu { flex-wrap: wrap; }
}
@media (max-width: 1199px) {
  .moxie-managed-columns { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Moxie Dental: in-content components
   Portable, clinic-agnostic classes for page/service content.
   Documented set: moxie-faq, moxie-stats, moxie-steps, moxie-cta-box,
   moxie-callout, moxie-checklist, moxie-grid / moxie-card / moxie-badge,
   moxie-compare, moxie-table-wrap, moxie-embed, moxie-lead.
   Buttons reuse .moxie-btn / .moxie-btn-primary / .moxie-btn-outline.
   ========================================================================== */

.moxie-entry-content { --mc-gap: 20px; --mc-border: var(--moxie-gray-200, #e2eaf2); --mc-soft: #f5f9fc; }

/* Lead paragraph */
.moxie-entry-content .moxie-lead { font-size: 1.15em; line-height: 1.6; color: var(--moxie-gray-800, #1f2d3d); }

/* Section heading (kept for semantics, inherits entry h2 styling) */
.moxie-entry-content .moxie-section-heading { margin-top: 40px; }

/* FAQ (native details/summary, no JS) */
.moxie-faq { margin: 28px 0; display: grid; gap: 10px; }
.moxie-faq-item { border: 1px solid var(--mc-border); border-radius: var(--moxie-radius, 10px); background: #fff; padding: 0; }
.moxie-faq-item > summary { cursor: pointer; list-style: none; padding: 16px 48px 16px 20px; font-weight: 600; color: var(--moxie-navy, #1a3a5c); position: relative; }
.moxie-faq-item > summary::-webkit-details-marker { display: none; }
.moxie-faq-item > summary::after { content: ""; position: absolute; right: 20px; top: 50%; width: 10px; height: 10px; border-right: 2px solid var(--moxie-teal, #11a0d2); border-bottom: 2px solid var(--moxie-teal, #11a0d2); transform: translateY(-70%) rotate(45deg); transition: transform .2s ease; }
.moxie-faq-item[open] > summary::after { transform: translateY(-30%) rotate(225deg); }
.moxie-faq-item > summary h3, .moxie-faq-item > summary h4 { display: inline; font-size: 1em; margin: 0; color: inherit; }
.moxie-faq-body { padding: 0 20px 18px; color: var(--moxie-gray-800, #1f2d3d); }
.moxie-faq-body > :last-child { margin-bottom: 0; }

/* Stats / benefit bar */
.moxie-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--mc-gap); margin: 28px 0; }
.moxie-stat { background: var(--mc-soft); border: 1px solid var(--mc-border); border-radius: var(--moxie-radius, 10px); padding: 18px; text-align: center; }
.moxie-stat strong { display: block; font-size: 1.6em; color: var(--moxie-teal, #11a0d2); line-height: 1.1; margin-bottom: 6px; }
.moxie-stat span { display: block; font-size: .9em; color: var(--moxie-gray-600, #4b5b6b); }

/* Numbered steps */
.moxie-steps { counter-reset: moxie-step; list-style: none; margin: 28px 0; padding: 0; display: grid; gap: 14px; }
.moxie-step { counter-increment: moxie-step; position: relative; padding: 16px 18px 16px 64px; background: #fff; border: 1px solid var(--mc-border); border-radius: var(--moxie-radius, 10px); }
.moxie-step::before { content: counter(moxie-step); position: absolute; left: 18px; top: 16px; width: 32px; height: 32px; border-radius: 50%; background: var(--moxie-teal, #11a0d2); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.moxie-step > :last-child { margin-bottom: 0; }
.moxie-step h3, .moxie-step h4 { margin: 0 0 6px; font-size: 1.05em; }

/* In-content CTA box */
.moxie-cta-box { margin: 36px 0; padding: 28px; border-radius: var(--moxie-radius, 10px); background: var(--moxie-navy, #1a3a5c); color: #fff; }
.moxie-cta-box h2, .moxie-cta-box h3 { color: #fff; margin: 0 0 10px; }
.moxie-cta-box p { color: rgba(255,255,255,.88); }
.moxie-cta-box-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.moxie-cta-box .moxie-btn-outline { border-color: rgba(255,255,255,.7); color: #fff !important; }

/* Callouts */
.moxie-callout { margin: 24px 0; padding: 16px 20px; border-left: 4px solid var(--moxie-teal, #11a0d2); background: var(--mc-soft); border-radius: 0 var(--moxie-radius, 10px) var(--moxie-radius, 10px) 0; }
.moxie-callout > :last-child { margin-bottom: 0; }
.moxie-callout--warning { border-left-color: #d9822b; background: #fff8f0; }
.moxie-callout--note { border-left-color: var(--moxie-gray-300, #cbd5e0); background: #f8fafc; }

/* Checklist */
.moxie-entry-content ul.moxie-checklist { list-style: none; padding: 0; margin: 20px 0; }
.moxie-entry-content ul.moxie-checklist li { position: relative; padding-left: 30px; margin-bottom: 10px; }
.moxie-entry-content ul.moxie-checklist li::before { content: ""; position: absolute; left: 0; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--moxie-teal, #11a0d2); }
.moxie-entry-content ul.moxie-checklist li::after { content: ""; position: absolute; left: 5px; top: 9px; width: 5px; height: 8px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); }

/* Card grid */
.moxie-grid { display: grid; gap: var(--mc-gap); margin: 28px 0; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.moxie-grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.moxie-grid--4 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.moxie-card { background: #fff; border: 1px solid var(--mc-border); border-radius: var(--moxie-radius, 10px); padding: 22px; box-shadow: var(--moxie-shadow, 0 2px 10px rgba(0,0,0,.04)); display: flex; flex-direction: column; gap: 8px; }
.moxie-card h3, .moxie-card h4 { margin: 0; font-size: 1.05em; color: var(--moxie-navy, #1a3a5c); }
.moxie-card p { margin: 0; color: var(--moxie-gray-800, #1f2d3d); }
.moxie-card > :last-child { margin-top: auto; }
.moxie-card-logo { max-height: 56px; width: auto; max-width: 160px; object-fit: contain; margin-bottom: 6px; }
.moxie-card-link { font-weight: 600; color: var(--moxie-teal, #11a0d2); text-decoration: none; }
.moxie-card-link:hover { text-decoration: underline; }
.moxie-card--highlight { border-color: var(--moxie-teal, #11a0d2); background: var(--mc-soft); }

/* Badges */
.moxie-badge { display: inline-block; font-size: .72em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: var(--moxie-gray-200, #e2eaf2); color: var(--moxie-navy, #1a3a5c); align-self: flex-start; }
.moxie-badge--preferred { background: var(--moxie-teal, #11a0d2); color: #fff; }
.moxie-badge--accepted { background: #e8f3f8; color: var(--moxie-navy, #1a3a5c); }
.moxie-badge--emergency { background: #d9822b; color: #fff; }

/* Before / after comparison */
.moxie-compare { margin: 28px 0; }
.moxie-compare-pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--mc-gap); }
.moxie-compare-pair figure { margin: 0; }
.moxie-compare-pair img { width: 100%; height: auto; border-radius: var(--moxie-radius, 10px); }
.moxie-compare-pair figcaption { font-size: .9em; font-weight: 600; color: var(--moxie-gray-600, #4b5b6b); margin-bottom: 8px; }

/* Tables and embeds */
.moxie-table-wrap { overflow-x: auto; margin: 24px 0; }
.moxie-table-wrap table { width: 100%; border-collapse: collapse; }
.moxie-table-wrap th, .moxie-table-wrap td { border: 1px solid var(--mc-border); padding: 10px 12px; text-align: left; vertical-align: top; }
.moxie-table-wrap th { background: var(--mc-soft); color: var(--moxie-navy, #1a3a5c); }
.moxie-embed { position: relative; margin: 24px 0; }
.moxie-embed iframe { width: 100%; min-height: 360px; border: 0; border-radius: var(--moxie-radius, 10px); }

/* Figures */
.moxie-entry-content figure { margin: 24px 0; }
.moxie-entry-content figure img { max-width: 100%; height: auto; border-radius: var(--moxie-radius, 10px); }
.moxie-entry-content figcaption { font-size: .9em; color: var(--moxie-gray-600, #4b5b6b); margin-top: 8px; }

@media (max-width: 640px) {
  .moxie-cta-box { padding: 22px; }
  .moxie-step { padding-left: 56px; }
}

/* Button rows and eyebrow labels */
.moxie-entry-content .moxie-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0 26px; }
.moxie-entry-content .moxie-actions .moxie-btn { margin: 0; }
.moxie-entry-content .moxie-eyebrow { font-size: .8em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--moxie-teal, #11a0d2); margin: 0 0 6px; }

/* ==========================================================================
   Team listing and profile (clinic-agnostic; data comes from cpt_team)
   ========================================================================== */
.moxie-our-team-wrapper { padding: 32px 0 48px; }
.moxie-team-listing { margin: 0 0 40px; }
.moxie-team-intro { max-width: 720px; margin: 0 0 32px; }
.moxie-team-intro .moxie-lead { font-size: 1.15em; line-height: 1.6; color: var(--moxie-gray-800, #1f2d3d); margin: 0 0 16px; }
.moxie-team-feature { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 36px; align-items: start; margin: 0 0 48px; padding: 28px; background: #f5f9fc; border: 1px solid var(--moxie-gray-200, #e2eaf2); border-radius: var(--moxie-radius, 10px); }
.moxie-team-feature-img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--moxie-radius, 10px); display: block; }
.moxie-team-feature-img .moxie-team-img-placeholder { aspect-ratio: 4 / 5; background: #e2e8f0; border-radius: var(--moxie-radius, 10px); }
.moxie-team-feature-body .moxie-eyebrow { font-size: .8em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--moxie-teal, #11a0d2); margin: 0 0 6px; }
.moxie-team-feature-body h2 { margin: 0 0 6px; color: var(--moxie-navy, #1a3a5c); }
.moxie-team-quals { font-weight: 600; color: var(--moxie-teal, #11a0d2); margin: 0 0 14px; }
.moxie-team-highlights { list-style: none; padding: 0; margin: 18px 0; display: grid; gap: 8px; }
.moxie-team-highlights li { position: relative; padding-left: 30px; }
.moxie-team-highlights li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: var(--moxie-teal, #11a0d2); }
.moxie-team-highlights li::after { content: ""; position: absolute; left: 6px; top: 7px; width: 5px; height: 9px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); }
.moxie-team-members .moxie-section-heading { margin: 0 0 20px; }
.moxie-team-page-content { margin-top: 48px; }

.moxie-profile { padding: 30px 0 60px; }
.moxie-profile-hero { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: 40px; align-items: start; margin: 24px 0 40px; }
.moxie-profile-photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--moxie-radius, 10px); display: block; box-shadow: var(--moxie-shadow, 0 2px 10px rgba(0,0,0,.06)); }
.moxie-profile-photo .moxie-team-img-placeholder { aspect-ratio: 4 / 5; background: #e2e8f0; border-radius: var(--moxie-radius, 10px); }
.moxie-profile-role { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--moxie-teal, #11a0d2); margin-bottom: 8px; }
.moxie-profile-name { margin: 0 0 8px; color: var(--moxie-navy, #1a3a5c); }
.moxie-profile-quals { font-weight: 600; color: var(--moxie-gray-600, #4b5b6b); margin: 0 0 12px; }
.moxie-profile-ahpra { font-size: .9em; color: var(--moxie-gray-600, #4b5b6b); margin: 0 0 16px; }
.moxie-profile-sections { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; margin: 0 0 40px; }
.moxie-profile-card { background: #fff; border: 1px solid var(--moxie-gray-200, #e2eaf2); border-radius: var(--moxie-radius, 10px); padding: 24px; box-shadow: var(--moxie-shadow, 0 2px 10px rgba(0,0,0,.04)); }
.moxie-profile-card h2 { font-size: 1.25em; margin: 0 0 12px; color: var(--moxie-navy, #1a3a5c); }
.moxie-profile-card > :last-child { margin-bottom: 0; }

@media (max-width: 760px) {
  .moxie-team-feature, .moxie-profile-hero { grid-template-columns: 1fr; }
  .moxie-team-feature-img, .moxie-profile-photo { max-width: 320px; }
}
