/* myPracticeWeb Elementor widgets (Site Logo, Navigation Menu). */
.mpw-logo img { display: inline-block; vertical-align: middle; }
.mpw-logo a { display: inline-block; text-decoration: none; }
.mpw-logo__text { font-weight: 700; font-size: 1.4em; }

.mpw-nav { --mpw-nav-underline: currentColor; --mpw-nav-dropdown-bg: #fff; --mpw-nav-dropdown-color: inherit; position: relative; }
.mpw-nav .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.mpw-nav__menu, .mpw-nav__menu ul { list-style: none; margin: 0; padding: 0; }
.mpw-nav__menu { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.mpw-nav--vertical .mpw-nav__menu { flex-direction: column; align-items: flex-start; }
.mpw-nav__menu li { position: relative; }
.mpw-nav__menu a { display: block; padding: 10px 14px; text-decoration: none; color: inherit; transition: color .15s; }
.mpw-nav--horizontal .mpw-nav__menu > li > a { position: relative; }
.mpw-nav--horizontal .mpw-nav__menu > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; background: var(--mpw-nav-underline); transform: scaleX(0); transition: transform .2s; }
.mpw-nav--horizontal .mpw-nav__menu > li > a:hover::after, .mpw-nav--horizontal .mpw-nav__menu > li.current-menu-item > a::after { transform: scaleX(1); }
/* Links: beat the Elementor kit's global link color. */
.mpw-nav .mpw-nav__menu a { color: inherit; }
.mpw-nav .sub-menu a { color: var(--mpw-nav-dropdown-color); }
.mpw-nav__caret { display: inline-block; width: 7px; height: 7px; margin-left: 7px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform .15s; }
.mpw-nav--horizontal .menu-item-has-children:hover > a .mpw-nav__caret, .mpw-nav--horizontal .menu-item-has-children:focus-within > a .mpw-nav__caret { transform: translateY(1px) rotate(225deg); }
.mpw-nav--horizontal .sub-menu { position: absolute; top: 100%; left: 0; min-width: 230px; background: var(--mpw-nav-dropdown-bg); color: var(--mpw-nav-dropdown-color); border-radius: 8px; box-shadow: 0 12px 30px rgba(0,0,0,.12); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; z-index: 999; }
.mpw-nav--horizontal .sub-menu .sub-menu { top: 0; left: 100%; }
.mpw-nav--horizontal li:hover > .sub-menu, .mpw-nav--horizontal li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.mpw-nav--horizontal .sub-menu a { padding: 9px 12px; border-radius: 6px; }
.mpw-nav--horizontal .sub-menu a:hover { background: rgba(0,0,0,.05); }
.mpw-nav__toggle { display: none; width: 44px; height: 44px; border: 2px solid currentColor; border-radius: 8px; background: transparent; cursor: pointer; padding: 0; color: inherit; position: relative; }
.mpw-nav__bars, .mpw-nav__bars::before, .mpw-nav__bars::after { position: absolute; left: 50%; width: 20px; height: 2px; margin-left: -10px; background: currentColor; content: ""; transition: transform .2s, opacity .2s; }
.mpw-nav__bars { top: 50%; margin-top: -1px; }
.mpw-nav__bars::before { top: -6px; left: 0; margin-left: 0; }
.mpw-nav__bars::after { top: 6px; left: 0; margin-left: 0; }
.mpw-nav.is-open .mpw-nav__bars { background: transparent; }
.mpw-nav.is-open .mpw-nav__bars::before { transform: translateY(6px) rotate(45deg); }
.mpw-nav.is-open .mpw-nav__bars::after { transform: translateY(-6px) rotate(-45deg); }

/* Mobile mode (applied below the chosen breakpoint). */
/* Mega dropdown: two columns, icon + title + description. */
.mpw-nav { --mpw-nav-icon: #1A73E8; --mpw-nav-icon-bg: #EAF1FD; --mpw-nav-desc: #5F6368; }
.mpw-nav--mega.mpw-nav--horizontal .mpw-nav__menu > li > .sub-menu { left: 50%; width: 560px; transform: translate(-50%, 6px); display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 18px; border-radius: 16px; border: 1px solid rgba(0,0,0,.08); }
.mpw-nav--mega.mpw-nav--horizontal .mpw-nav__menu > li:hover > .sub-menu, .mpw-nav--mega.mpw-nav--horizontal .mpw-nav__menu > li:focus-within > .sub-menu { transform: translate(-50%, 0); }
.mpw-nav--mega .sub-menu .mpw-nav__mega-link { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: 10px; }
.mpw-nav__icon { width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px; background: var(--mpw-nav-icon-bg); color: var(--mpw-nav-icon); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.mpw-nav__icon svg { width: 16px; height: 16px; fill: currentColor; }
.mpw-nav__text strong { display: block; font-size: .88rem; font-weight: 700; line-height: 1.35; margin-bottom: 2px; }
.mpw-nav__desc { display: block; font-size: .78rem; line-height: 1.4; color: var(--mpw-nav-desc); font-weight: 400; }
.mpw-nav--mega .sub-menu .mpw-view-all { grid-column: 1 / -1; margin-top: 6px; padding-top: 10px; border-top: 1px solid rgba(0,0,0,.1); text-align: center; }
.mpw-nav--mega .sub-menu .mpw-view-all > a { font-weight: 700; font-size: .85rem; color: var(--mpw-nav-icon); }
/* Mobile menu: sub-menus fold until their arrow is tapped. */
@media (prefers-reduced-motion: reduce) { .mpw-nav * { transition: none !important; } }

/* Sticky headers (myPracticeWeb → Headers & Footers → Sticky). */
.mpw-layout--sticky:not(.mpw-layout--sticky-part) { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 500; }
.mpw-layout--sticky-part, .mpw-layout--sticky-part > .elementor { display: contents; }
.mpw-layout--sticky-part .mpw-sticky { position: sticky !important; top: var(--wp-admin--admin-bar--height, 0px); z-index: 500; }
@media (max-width: 600px) { .mpw-layout--sticky:not(.mpw-layout--sticky-part), .mpw-layout--sticky-part .mpw-sticky { top: 0; } }
/* Utility classes usable in Elementor (Advanced → CSS Classes). */
.mpw-blur { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.mpw-lift { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.mpw-lift:hover { transform: translateY(-4px); }
.mpw-invert img { filter: brightness(0) invert(1); }

/* Contact Form widget */
.mpw-form { --mpw-col-gap: 16px; --mpw-row-gap: 16px; display: flex; flex-wrap: wrap; row-gap: var(--mpw-row-gap); column-gap: var(--mpw-col-gap); }
.mpw-form__group { flex: 1 1 100%; min-width: 0; margin: 0; padding: 20px; border: 1px solid #e5e7eb; border-radius: 10px; display: flex; flex-wrap: wrap; row-gap: var(--mpw-row-gap); column-gap: var(--mpw-col-gap); }
.mpw-form__group > legend.mpw-form__section { float: left; width: 100%; padding: 0; margin: 0 0 4px; }
.mpw-form__group > legend + * { clear: both; }
.mpw-form__field { display: flex; flex-direction: column; gap: 6px; flex: 1 1 100%; min-width: 0; margin: 0; padding: 0; border: 0; }
.mpw-form__field--66 { flex: 0 1 calc(66.666% - var(--mpw-col-gap) / 3); }
.mpw-form__field--50 { flex: 0 1 calc(50% - var(--mpw-col-gap) / 2); }
.mpw-form__field--33 { flex: 0 1 calc(33.333% - var(--mpw-col-gap) * 2 / 3); }
.mpw-form__field--25 { flex: 0 1 calc(25% - var(--mpw-col-gap) * 3 / 4); }
@media (max-width: 600px) { .mpw-form__field--66, .mpw-form__field--50, .mpw-form__field--33, .mpw-form__field--25 { flex-basis: 100%; } }
.mpw-form__label { font-size: .82rem; font-weight: 700; padding: 0; }
.mpw-form__label .req, .mpw-form__option .req { color: #d63638; margin-left: 2px; }
.mpw-form input:not([type=checkbox]):not([type=radio]), .mpw-form select, .mpw-form textarea { width: 100%; font: inherit; font-size: .95rem; padding: 11px 13px; border: 1.5px solid #DADCE0; border-radius: 10px; background: #fff; color: #202124; box-sizing: border-box; }
.mpw-form input:focus, .mpw-form select:focus, .mpw-form textarea:focus { outline: none; border-color: var(--mpw-form-focus, #1A73E8); }
.mpw-form input[type=checkbox], .mpw-form input[type=radio] { width: 18px; height: 18px; margin: 0; flex: 0 0 auto; accent-color: var(--mpw-form-focus, #1A73E8); }
.mpw-form__section { flex: 1 1 100%; font-weight: 700; font-size: 1.1rem; }
.mpw-form__options { display: grid; grid-template-columns: repeat(var(--mpw-opt-cols, 1), minmax(0, 1fr)); gap: 8px 16px; }
@media (max-width: 600px) { .mpw-form__options { grid-template-columns: 1fr; } }
.mpw-form__option { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; font-size: .95rem; line-height: 1.4; }
.mpw-form__option input { margin-top: 2px !important; }
.mpw-form__rows-list { display: flex; flex-direction: column; gap: 8px; }
.mpw-form__row { display: grid; grid-template-columns: repeat(var(--mpw-row-cols, 1), minmax(0, 1fr)); gap: 8px; }
@media (max-width: 600px) { .mpw-form__row { grid-template-columns: 1fr; } }
.mpw-form__add { align-self: flex-start; background: none; border: 0; padding: 4px 0; font: inherit; font-weight: 700; color: var(--mpw-form-focus, #1A73E8); cursor: pointer; }
.mpw-form__choices.is-invalid .mpw-form__options { outline: 2px solid #d63638; outline-offset: 4px; border-radius: 4px; }
.mpw-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mpw-form__actions { --mpw-btn-grow: 1; flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 12px; }
.mpw-form__submit, .mpw-form__print { flex: var(--mpw-btn-grow) 1 auto; display: inline-flex; justify-content: center; align-items: center; padding: 16px 30px; border: 0; border-radius: 999px; font: inherit; font-weight: 700; font-size: 1rem; color: #fff; background: #1A73E8; cursor: pointer; transition: transform .15s, box-shadow .15s, opacity .15s, background .15s; }
.mpw-form__print { background: transparent; color: currentColor; border: 1.5px solid currentColor; }
.mpw-form__submit:hover { transform: translateY(-2px); }
.mpw-form__submit[disabled] { opacity: .6; cursor: wait; }
.mpw-form__note { flex: 1 1 100%; margin: 0; font-size: .76rem; text-align: center; }
.mpw-form__message { flex: 1 1 100%; margin: 0; font-weight: 700; text-align: center; }
.mpw-form__message.is-error { color: #d63638; }
@media print { .mpw-form__actions, .mpw-form__add, .mpw-form__message, .mpw-form__hp { display: none !important; } }
/* Sidebar column that stays in view on desktop (CSS class "mpw-sticky-col"). */
/* Breadcrumb links inherit the breadcrumb color (CSS class "mpw-breadcrumb"). */
body .mpw-breadcrumb a { color: inherit; text-decoration: none; transition: color .15s; }
body .mpw-breadcrumb a:hover { color: #fff; }
body .mpw-breadcrumb strong { color: #fff; font-weight: 600; }

/* Subtle entrance animations (Motion Effects → myPracticeWeb). */
@keyframes mpwRevealUp { from { opacity: 0; transform: translate3d(0, 24px, 0); } to { opacity: 1; transform: none; } }
@keyframes mpwReveal { from { opacity: 0; } to { opacity: 1; } }
.animated.mpwRevealUp { animation-name: mpwRevealUp; animation-duration: .6s; animation-timing-function: ease; }
.animated.mpwReveal { animation-name: mpwReveal; animation-duration: .6s; }
@media (prefers-reduced-motion: reduce) { .mpwRevealUp, .mpwReveal { animation: none !important; } }

/* ---------- Carousel (container with the mpw-carousel class) ---------- */
.e-con.mpw-carousel, .mpw-carousel { overflow-x: auto !important; overflow-y: hidden !important; min-width: 0; scrollbar-width: none; }
.mpw-carousel::-webkit-scrollbar { display: none; }
.mpw-carousel.mpw-carousel--on { scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; }
.mpw-carousel.mpw-carousel--on > .e-con,
.mpw-carousel.mpw-carousel--on > .elementor-element { flex: 0 0 var(--mpw-slide-w, 100%) !important; width: var(--mpw-slide-w, 100%) !important; max-width: var(--mpw-slide-w, 100%) !important; scroll-snap-align: start; }
.e-con.mpw-carousel.mpw-carousel--wrap { flex-wrap: wrap !important; overflow: visible !important; scroll-snap-type: none; }
.mpw-carousel-dots { display: flex; gap: 8px; justify-content: center; align-items: center; min-height: 10px; }
.mpw-carousel-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: var(--e-global-color-primary, #1f2937); opacity: .28; cursor: pointer; transition: opacity .2s, transform .2s; }
.mpw-carousel-dots button.is-active { opacity: 1; transform: scale(1.15); }
.mpw-carousel-hidden { display: none !important; }
/* Editor: show slides side by side so each can be edited. */
.elementor-editor-active .mpw-carousel > .e-con { flex: 0 0 min(360px, 85%) !important; }

/* Menu item with the CSS class "mpw-menu-cta": hidden in the desktop bar (a Button widget shows it there),
   shown as a button inside the mobile menu. */
.mpw-nav .mpw-menu-cta { display: none; }

/* Transparent header: floats over the top of the page (Headers & Footers → Transparent header). */
.mpw-layout--overlay { position: absolute; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 500; }
.mpw-layout--overlay.mpw-layout--sticky:not(.mpw-layout--sticky-part) { position: fixed; }

.mpw-form--no-labels .mpw-form__field:not(.mpw-form__choices):not(.mpw-form__acceptance) > .mpw-form__label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
