/* ==========================================================================
   Dental Perfection Core — design tokens, utilities, motion states, dock, booking
   ========================================================================== */

:root {
	--dp-navy: #0B1B3A;
	--dp-blue: #1747A6;
	--dp-blue-600: #123C8F;
	--dp-sky: #EAF1FF;
	--dp-gold: #C9A15B;
	--dp-oak: #D39A4E;
	--dp-porcelain: #FAFAF8;
	--dp-mist: #F1F3F6;
	--dp-graphite: #5B6472;
	--dp-line: #E3E6EC;
	--dp-white: #FFFFFF;
	--dp-wa: #1FAF5A;

	--dp-font-display: "Sora", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--dp-font-serif: "Sora", -apple-system, BlinkMacSystemFont, sans-serif;
	--dp-font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	--dp-radius-sm: 12px;
	--dp-radius: 24px;
	--dp-radius-lg: 32px;
	--dp-pill: 999px;
	--dp-shadow-sm: 0 1px 2px rgba(11, 27, 58, .06), 0 2px 8px rgba(11, 27, 58, .05);
	--dp-shadow: 0 10px 30px -10px rgba(11, 27, 58, .18), 0 2px 6px rgba(11, 27, 58, .06);
	--dp-shadow-lg: 0 30px 80px -20px rgba(11, 27, 58, .28);
	--dp-ease: cubic-bezier(.2, .7, .2, 1);
	--dp-ease-out: cubic-bezier(.16, 1, .3, 1);
	--dp-glass: rgba(255, 255, 255, .72);
	--dp-glass-dark: rgba(11, 27, 58, .55);
}

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
:where(body) { font-family: var(--dp-font-body); color: var(--dp-graphite); background: var(--dp-porcelain); }
:where(h1, h2, h3, h4) { font-family: var(--dp-font-display); color: var(--dp-navy); letter-spacing: -.02em; font-weight: 600; }
.dp-booking, .dp-booking *, .dp-dock, .dp-dock * { box-sizing: border-box; }
::selection { background: var(--dp-sky); color: var(--dp-navy); }

/* ---------- Utilities usable from Elementor (Advanced → CSS classes) ---------- */

.dp-serif, .dp-serif * { font-family: var(--dp-font-display) !important; font-style: normal; font-weight: 300 !important; letter-spacing: -.03em; }
.dp-accent-gold { color: var(--dp-gold); }
.dp-accent-oak { color: var(--dp-oak); }
.dp-eyebrow { font: 600 13px/1.2 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-blue); }
.dp-balance, .dp-balance * { text-wrap: balance; }
.dp-hairline { height: 1px; background: linear-gradient(90deg, transparent, var(--dp-gold), transparent); opacity: .7; }

.dp-glass { background: var(--dp-glass); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border: 1px solid rgba(255, 255, 255, .6); }
.dp-glass-dark { background: var(--dp-glass-dark); -webkit-backdrop-filter: saturate(160%) blur(18px); backdrop-filter: saturate(160%) blur(18px); border: 1px solid rgba(255, 255, 255, .14); color: #fff; }

/* Arch mask — the clinic's signature shape */
.dp-arch, .dp-arch img, .dp-arch .elementor-widget-container { border-radius: 999px 999px var(--dp-radius) var(--dp-radius) / 50% 50% var(--dp-radius) var(--dp-radius); overflow: hidden; }
.dp-arch-soft, .dp-arch-soft img { border-radius: 48% 48% var(--dp-radius) var(--dp-radius) / 32% 32% var(--dp-radius) var(--dp-radius); overflow: hidden; }

.dp-card, .e-con.dp-card { background: var(--dp-white); border: 1px solid var(--dp-line); border-radius: var(--dp-radius); box-shadow: var(--dp-shadow-sm); transition: transform .5s var(--dp-ease-out), box-shadow .5s var(--dp-ease-out), border-color .3s; }
.dp-card:hover { transform: translateY(-4px); box-shadow: var(--dp-shadow); border-color: rgba(23, 71, 166, .18); }

/* Buttons (for HTML widgets / shortcodes; Elementor buttons get the same look via the Kit) */
.dp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 28px; border-radius: var(--dp-pill); font: 500 15px/1 var(--dp-font-display); letter-spacing: 0; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background-color .3s var(--dp-ease), color .3s var(--dp-ease), border-color .3s, transform .3s var(--dp-ease-out), box-shadow .3s; }
.dp-btn--primary { background: var(--dp-blue); color: #fff; box-shadow: 0 8px 24px -10px rgba(23, 71, 166, .6); }
.dp-btn--primary:hover { background: var(--dp-navy); color: #fff; }
.dp-btn--ghost { background: #fff; color: var(--dp-navy); border-color: var(--dp-line); }
.dp-btn--ghost:hover { border-color: var(--dp-navy); color: var(--dp-navy); }
.dp-btn:focus-visible, .dp-dock a:focus-visible, .dp-dock button:focus-visible, .dp-booking :focus-visible { outline: 2px solid var(--dp-blue); outline-offset: 3px; }

/* Elementor button tweaks when class dp-btn-wa / dp-btn-ghost is added to a Button widget */
.dp-btn-ghost .elementor-button { background: #fff !important; color: var(--dp-navy) !important; border: 1px solid var(--dp-line) !important; }
.dp-btn-ghost .elementor-button:hover { border-color: var(--dp-navy) !important; }
.dp-btn-ghost .elementor-button svg { fill: var(--dp-wa) !important; width: 1.15em; height: 1.15em; }
.dp-btn-ghost .elementor-button { background: rgba(255, 255, 255, .6) !important; border-color: #CBD3DE !important; }
.elementor-button { transition: background-color .3s var(--dp-ease), color .3s, border-color .3s, transform .3s var(--dp-ease-out) !important; }

/* Open-status pill */
.dp-open-status { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 12px; border-radius: var(--dp-pill); background: rgba(31, 175, 90, .1); color: #137a3f; font: 500 13px/1 var(--dp-font-body); white-space: nowrap; }
.dp-open-status.is-closed { background: rgba(91, 100, 114, .1); color: var(--dp-graphite); }
.dp-open-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; position: relative; flex: none; }
.dp-open-status:not(.is-closed) .dp-open-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid currentColor; opacity: 0; animation: dp-ping 2.4s var(--dp-ease-out) infinite; }
@keyframes dp-ping { 0% { transform: scale(.6); opacity: .7; } 80%, 100% { transform: scale(1.6); opacity: 0; } }

/* Hours list */
.dp-hours { list-style: none; margin: 0; padding: 0; font-family: var(--dp-font-body); }
.dp-hours li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--dp-line); }
.dp-hours li.is-today { color: var(--dp-navy); font-weight: 600; }
.dp-hours-note { margin: 12px 0 0; font-size: 14px; color: var(--dp-graphite); }

/* ---------- Motion initial states (only while the engine is active) ---------- */

.dp-motion .dp-reveal:not(.is-split) { visibility: hidden; }
.dp-motion .dp-fade-up, .dp-motion .dp-stagger > *:not(.e-con-inner), .dp-motion .dp-stagger > .e-con-inner > * { opacity: 0; transform: translate3d(0, 28px, 0); }
.dp-motion .dp-mask-reveal { clip-path: inset(100% 0 0 0 round var(--dp-radius)); }
.dp-line-mask { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.dp-line { display: block; will-change: transform; }
.dp-words .dp-word { opacity: .16; transition: none; }
.dp-editor .dp-reveal, .dp-editor .dp-fade-up { visibility: visible !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
html:not(.dp-motion) :is(.dp-reveal, .dp-fade-up, .dp-stagger *, .dp-mask-reveal) { visibility: visible !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
html:not(.dp-motion) .dp-words .dp-word { opacity: 1 !important; }
.dp-soft .dp-fade-up, .dp-soft .dp-stagger > *:not(.e-con-inner), .dp-soft .dp-stagger > .e-con-inner > * { transform: translate3d(0, 12px, 0); }

/* Magnetic buttons: smooth return */
.dp-magnetic { transition: transform .5s var(--dp-ease-out); will-change: transform; }

/* Sticky glass header: give the Elementor header container the class dp-header */
.dp-header { position: fixed !important; top: 0; left: 0; right: 0; z-index: 9980 !important; transition: transform .6s var(--dp-ease-out), background-color .35s var(--dp-ease), box-shadow .35s, border-color .35s; border-bottom: 1px solid transparent; }
.dp-header.is-scrolled { background-color: rgba(250, 250, 248, .78) !important; -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border-bottom-color: rgba(11, 27, 58, .06); box-shadow: 0 8px 30px -18px rgba(11, 27, 58, .25); }
.dp-header.is-hidden { transform: translateY(-110%); }
body.admin-bar .dp-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .dp-header { top: 46px; } }

/* Horizontal gallery: native swipe on tablet/mobile, pinned scroll on desktop (JS) */
.dp-hscroll { overflow: hidden; }
.dp-hscroll-track { display: flex !important; flex-wrap: nowrap !important; width: max-content; will-change: transform; }
@media (max-width: 1024px) {
	.dp-hscroll { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.dp-hscroll::-webkit-scrollbar { display: none; }
	.dp-hscroll-track > * { scroll-snap-align: start; }
}

/* Marquee */
.dp-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.dp-marquee__track { display: flex; width: max-content; gap: 56px; animation: dp-marquee 40s linear infinite; }
.dp-marquee:hover .dp-marquee__track { animation-play-state: paused; }
@keyframes dp-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .dp-marquee__track { animation: none; } }

/* ==========================================================================
   Floating contact dock
   ========================================================================== */

.dp-dock { position: fixed; z-index: 9990; right: 24px; bottom: 24px; font-family: var(--dp-font-body); pointer-events: none; }
.dp-dock > * { pointer-events: auto; }
.dp-dock svg { width: 22px; height: 22px; display: block; }

.dp-dock__fab { display: inline-flex; align-items: center; gap: 10px; height: 56px; padding: 0 22px 0 8px; border: 1px solid rgba(255, 255, 255, .7); border-radius: var(--dp-pill); background: var(--dp-glass); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); box-shadow: var(--dp-shadow); color: var(--dp-navy); font: 500 15px/1 var(--dp-font-body); cursor: pointer; position: relative; transform: translateY(24px) scale(.96); opacity: 0; transition: transform .6s var(--dp-ease-out), opacity .4s, box-shadow .3s; }
.dp-dock.is-visible .dp-dock__fab { transform: none; opacity: 1; }
.dp-dock__fab:hover { box-shadow: var(--dp-shadow-lg); }
.dp-dock__fab-ico { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--dp-wa); color: #fff; }
.dp-dock__fab-dot { position: absolute; top: 10px; left: 38px; width: 10px; height: 10px; border-radius: 50%; background: #34D17A; border: 2px solid #fff; }
.dp-dock.is-closed-hours .dp-dock__fab-dot { background: #A7AEBA; }
.dp-dock.is-open .dp-dock__fab { opacity: 0; transform: scale(.9); pointer-events: none; }

.dp-dock__panel { position: absolute; right: 0; bottom: 0; width: 360px; max-width: calc(100vw - 32px); padding: 22px; border-radius: var(--dp-radius-lg); background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: saturate(180%) blur(24px); backdrop-filter: saturate(180%) blur(24px); border: 1px solid rgba(255, 255, 255, .8); box-shadow: var(--dp-shadow-lg); transform-origin: bottom right; }
.dp-dock__panel, .dp-dock__panel[hidden] { display: block; visibility: hidden; opacity: 0; transform: translateY(12px) scale(.96); pointer-events: none; transition: opacity .35s var(--dp-ease), transform .5s var(--dp-ease-out), visibility .35s; }
.dp-dock.is-open .dp-dock__panel { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }

.dp-dock__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.dp-dock__eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; padding: 6px 12px 6px 10px; border-radius: var(--dp-pill); background: rgba(31, 175, 90, .1); color: #137a3f; font-size: 12px; font-weight: 500; }
.dp-dock__eyebrow.is-closed { background: rgba(91, 100, 114, .1); color: var(--dp-graphite); }
.dp-dock__title { margin: 0; font: 600 22px/1.15 var(--dp-font-display); letter-spacing: -.02em; color: var(--dp-navy); }
.dp-dock__sub { margin: 6px 0 0; font-size: 14px; color: var(--dp-graphite); }
.dp-dock__close { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--dp-mist); color: var(--dp-navy); display: grid; place-items: center; cursor: pointer; transition: background .2s; }
.dp-dock__close:hover { background: var(--dp-line); }
.dp-dock__close svg { width: 18px; height: 18px; }

.dp-dock__list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.dp-dock__item { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 18px; background: #fff; border: 1px solid var(--dp-line); color: var(--dp-navy); text-decoration: none; transition: border-color .25s, transform .4s var(--dp-ease-out), box-shadow .3s; }
.dp-dock__item:hover { border-color: rgba(23, 71, 166, .3); transform: translateX(2px); box-shadow: var(--dp-shadow-sm); color: var(--dp-navy); }
.dp-dock__ico { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: var(--dp-sky); color: var(--dp-blue); flex: none; }
.dp-dock__item--wa .dp-dock__ico { background: rgba(31, 175, 90, .12); color: var(--dp-wa); }
.dp-dock__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.dp-dock__txt strong { font-weight: 600; font-size: 15px; }
.dp-dock__txt small { font-size: 13px; color: var(--dp-graphite); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dp-dock__go { color: var(--dp-graphite); opacity: .6; transition: transform .3s var(--dp-ease-out), opacity .2s; }
.dp-dock__go svg { width: 18px; height: 18px; }
.dp-dock__item:hover .dp-dock__go { transform: translateX(3px); opacity: 1; }
.dp-dock__cta { display: flex; align-items: center; justify-content: center; gap: 10px; height: 52px; border-radius: var(--dp-pill); background: var(--dp-blue); color: #fff; text-decoration: none; font-weight: 500; transition: background .3s; }
.dp-dock__cta:hover { background: var(--dp-navy); color: #fff; }
.dp-dock__cta svg { width: 20px; height: 20px; }

.dp-dock__bar { display: none; }

@media (max-width: 767px) {
	.dp-dock { left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); }
	.dp-dock__fab, .dp-dock__panel { display: none !important; }
	.dp-dock__bar { display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 6px; padding: 6px; border-radius: 22px; background: var(--dp-glass); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border: 1px solid rgba(255, 255, 255, .7); box-shadow: var(--dp-shadow); transform: translateY(120%); transition: transform .6s var(--dp-ease-out); }
	.dp-dock.is-visible .dp-dock__bar { transform: none; }
	.dp-dock__bar a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border-radius: 16px; color: var(--dp-navy); text-decoration: none; font: 500 14px/1 var(--dp-font-body); background: rgba(255, 255, 255, .7); }
	.dp-dock__bar a svg { width: 20px; height: 20px; }
	.dp-dock__bar a.is-wa svg { color: var(--dp-wa); }
	.dp-dock__bar a.is-book { background: var(--dp-blue); color: #fff; }
	body { padding-bottom: 76px; }
}

/* ==========================================================================
   Booking form
   ========================================================================== */

.dp-booking { font-family: var(--dp-font-body); color: var(--dp-navy); }
.dp-booking__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.dp-booking--compact .dp-booking__grid { grid-template-columns: 1fr; }
.dp-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 0; }
.dp-field[hidden] { display: none !important; }
.dp-booking > .dp-field { margin-top: 16px; }
.dp-field label { font-size: 14px; font-weight: 500; color: var(--dp-navy); }
.dp-field input, .dp-field select, .dp-field textarea { width: 100%; min-height: 52px; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--dp-line); background: #fff; color: var(--dp-navy); font: 400 16px/1.3 var(--dp-font-body); transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none; }
.dp-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%230B1B3A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; padding-right: 44px; }
.dp-field textarea { min-height: 96px; resize: vertical; }
.dp-field input:focus, .dp-field select:focus, .dp-field textarea:focus { outline: none; border-color: var(--dp-blue); box-shadow: 0 0 0 4px rgba(23, 71, 166, .12); }
.dp-field.has-error input { border-color: #C0392B; }
.dp-field__err { font-size: 13px; color: #C0392B; min-height: 0; }
.dp-toggle { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 15px; cursor: pointer; }
.dp-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dp-toggle__ui { width: 44px; height: 26px; border-radius: 99px; background: var(--dp-line); position: relative; transition: background .25s; flex: none; }
.dp-toggle__ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .3s var(--dp-ease-out); }
.dp-toggle input:checked + .dp-toggle__ui { background: var(--dp-blue); }
.dp-toggle input:checked + .dp-toggle__ui::after { transform: translateX(18px); }
.dp-toggle input:focus-visible + .dp-toggle__ui { outline: 2px solid var(--dp-blue); outline-offset: 3px; }
.dp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dp-booking__submit { margin-top: 22px; width: 100%; }
.dp-booking__submit.is-loading { opacity: .7; pointer-events: none; }
.dp-booking__note { margin: 12px 0 0; font-size: 13px; color: var(--dp-graphite); text-align: center; }
.dp-booking__result:empty { display: none; }
.dp-booking__result { margin-top: 18px; padding: 18px; border-radius: 18px; background: var(--dp-sky); color: var(--dp-navy); font-size: 15px; }
.dp-booking__result.is-error { background: #FDECEA; color: #8E2A1F; }
.dp-booking__result a { display: inline-flex; margin-top: 12px; }
.dp-booking.is-done .dp-booking__grid, .dp-booking.is-done > .dp-field, .dp-booking.is-done .dp-toggle, .dp-booking.is-done .dp-booking__submit, .dp-booking.is-done .dp-booking__note { display: none; }
@media (max-width: 767px) { .dp-booking__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Header (Theme Builder header container has class dp-header)
   ========================================================================== */

.dp-header .elementor-nav-menu--main .elementor-item { font-family: var(--dp-font-display) !important; font-weight: 500 !important; letter-spacing: 0; }
.dp-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--dp-blue); }
.dp-logo img { display: block; height: auto; }
.dp-header .dp-nav { flex: 1 1 auto; }
@media (max-width: 1024px) { .dp-header .dp-nav .elementor-menu-toggle { margin-left: auto; margin-right: 0; } }

/* Mega menu: add CSS class dp-mega to the "Treatments" menu item, dp-menu-group to its group items */
.dp-header .elementor-nav-menu--main .menu-item.dp-mega { position: static; }
@media (min-width: 1025px) { .dp-header .dp-nav, .dp-header .dp-nav > .elementor-widget-container, .dp-header .dp-nav .elementor-nav-menu--main, .dp-header .dp-nav .elementor-nav-menu--main > .elementor-nav-menu { position: static !important; } }
@media (max-width: 1024px) {
	.dp-header .dp-nav, .dp-header .dp-nav > .elementor-widget-container { position: static !important; }
	.dp-header .dp-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container { position: absolute !important; top: calc(100% + 6px) !important; left: 12px !important; right: 12px !important; width: auto !important; margin: 0 !important; border-radius: 22px; background: #FFFFFF !important; box-shadow: var(--dp-shadow-lg); }
	.dp-header .elementor-nav-menu--dropdown .dp-menu-group > .sub-menu { display: block !important; }
	.dp-header .elementor-nav-menu--dropdown .dp-menu-group > a .sub-arrow { display: none !important; }
	.dp-header .dp-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { max-height: calc(100vh - 150px) !important; overflow-y: auto !important; border: 1px solid var(--dp-line); }
	.dp-header .elementor-nav-menu--dropdown a { padding: 14px 22px !important; font-family: var(--dp-font-body) !important; font-size: 16px !important; font-weight: 500 !important; color: var(--dp-navy) !important; background: transparent !important; border-bottom: 1px solid var(--dp-mist); }
	.dp-header .elementor-nav-menu--dropdown .sub-menu a { padding-left: 34px !important; font-size: 15px !important; }
	.dp-header .elementor-nav-menu--dropdown .sub-menu .sub-menu a { padding-left: 46px !important; }
	.dp-header .elementor-nav-menu--dropdown .dp-menu-group > a { padding-top: 18px !important; font-size: 11px !important; letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold) !important; font-weight: 600 !important; }
}
.dp-header .elementor-nav-menu--main .dp-mega .sub-menu .sub-menu li { padding: 0 !important; }
.dp-header .elementor-nav-menu--main .dp-mega > .sub-menu { left: 50% !important; right: auto !important; top: 100% !important; margin: 0 !important; transform: translateX(-50%); width: min(1080px, calc(100vw - 48px)) !important; max-width: none !important; min-width: 0 !important; padding: 28px 32px 30px !important; border-radius: 24px; background: rgba(255, 255, 255, .96) !important; -webkit-backdrop-filter: saturate(180%) blur(24px); backdrop-filter: saturate(180%) blur(24px); border: 1px solid var(--dp-line); box-shadow: var(--dp-shadow-lg); }
.dp-header .elementor-nav-menu--main .dp-mega > .sub-menu[style*="display: block"], .dp-header .elementor-nav-menu--main .dp-mega:hover > .sub-menu { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 28px; }
.dp-header .elementor-nav-menu--main .dp-mega .sub-menu .sub-menu { display: block !important; position: static !important; width: auto !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; transform: none !important; }
.dp-header .elementor-nav-menu--main .dp-mega .dp-menu-group > a { pointer-events: none; padding: 0 0 12px !important; margin-bottom: 8px; border-bottom: 1px solid var(--dp-line); font: 600 11px/1.2 var(--dp-font-display) !important; letter-spacing: .14em !important; text-transform: uppercase; color: var(--dp-gold) !important; background: transparent !important; }
.dp-header .elementor-nav-menu--main .dp-mega .dp-menu-group > a .sub-arrow { display: none; }
.dp-header .elementor-nav-menu--main .dp-mega .sub-menu .sub-menu a { padding: 8px 0 !important; font: 500 14.5px/1.3 var(--dp-font-body) !important; color: var(--dp-navy) !important; background: transparent !important; white-space: normal; border-radius: 0; transition: color .2s, transform .3s var(--dp-ease-out); }
.dp-header .elementor-nav-menu--main .dp-mega .sub-menu .sub-menu a:hover { color: var(--dp-blue) !important; transform: translateX(3px); }
.dp-header .elementor-nav-menu--dropdown .dp-menu-group > a { font-size: 11px !important; letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold) !important; }

/* ==========================================================================
   Home hero
   ========================================================================== */

.e-con.dp-hero { background: radial-gradient(circle at 78% 34%, rgba(234, 241, 255, .62), rgba(234, 241, 255, 0) 55%), var(--dp-porcelain); overflow: hidden; }
.dp-eyebrow-line .elementor-heading-title { display: inline-flex; align-items: center; gap: 14px; }
.dp-eyebrow-line .elementor-heading-title::before { content: ""; width: 44px; height: 1px; background: var(--dp-gold); flex: none; }
.dp-h1-accent { display: inline-block; font-size: 1em; letter-spacing: -.035em !important; }
.dp-hero .dp-open-status { background: #EAF6F1; color: #1D8A61; }

.dp-creds > .dp-cred, .dp-creds > .e-con-inner > .dp-cred { flex: 1 1 0 !important; width: auto !important; --width: auto; min-width: 0; }
.dp-fp-doc img { object-position: 52% 42%; }
.dp-fp-rec img { object-position: 66% 52%; }
.dp-fp-pat img { object-position: 50% 40%; }
.dp-lead p { margin: 0; }
.e-con.dp-cred { background: rgba(255, 255, 255, .72); border: 1px solid #DEE3EA; border-radius: 18px; padding: 16px !important; min-height: 84px; box-shadow: 0 10px 30px rgba(11, 27, 58, .035); }
.dp-cred .elementor-heading-title { font: 600 14px/1.25 var(--dp-font-display) !important; color: var(--dp-navy) !important; letter-spacing: -.005em !important; }
.dp-cred .elementor-widget-text-editor, .dp-cred .elementor-widget-text-editor p { margin: 0; font: 400 12.5px/1.4 var(--dp-font-body); color: var(--dp-graphite); }

.e-con.dp-photo-grid { display: grid !important; grid-template-columns: 1.47fr 1fr; grid-auto-rows: 289px; gap: 16px !important; }
.dp-photo-grid > .e-con { width: auto !important; --width: auto; max-width: none; }
.dp-photo-grid > .dp-photo--main { grid-row: span 2; }
.e-con.dp-photo { position: relative; border-radius: 28px; overflow: hidden; border: 1px solid rgba(11, 27, 58, .06); box-shadow: 0 24px 60px rgba(11, 27, 58, .13); padding: 0 !important; background: var(--dp-mist); }
.dp-photo .elementor-widget-image, .dp-photo .elementor-widget-image .elementor-widget-container, .dp-photo .elementor-widget-image a { height: 100%; width: 100%; }
.dp-photo .elementor-widget-image img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; }
.dp-motion .dp-mask-reveal.dp-photo { clip-path: inset(100% 0 0 0 round 28px); }
.dp-cap { position: absolute !important; left: 14px; bottom: 14px; z-index: 2; width: auto !important; max-width: calc(100% - 28px); margin: 0 !important; background: rgba(250, 250, 248, .82); -webkit-backdrop-filter: blur(14px) saturate(130%); backdrop-filter: blur(14px) saturate(130%); border: 1px solid rgba(255, 255, 255, .62); border-radius: 14px; padding: 10px 12px; box-shadow: 0 10px 26px rgba(11, 27, 58, .10); }
.dp-cap p { margin: 0; }
.dp-cap strong { display: block; font: 600 11px/1.2 var(--dp-font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--dp-navy); }
.dp-cap span { display: block; margin-top: 3px; font: 400 11.5px/1.35 var(--dp-font-body); color: var(--dp-graphite); }

@media (min-width: 768px) and (max-width: 900px) {
	.e-con.dp-hero > .e-con-inner { flex-direction: column !important; align-items: stretch !important; }
	.e-con.dp-hero > .e-con-inner > .e-con { width: 100% !important; --width: 100%; }
}
@media (max-width: 1024px) {
	.e-con.dp-photo-grid { grid-auto-rows: 236px; gap: 12px !important; }
	.e-con.dp-photo { border-radius: 24px; }
	.e-con.dp-cred { padding: 13px !important; min-height: 76px; }
	.dp-cred .elementor-heading-title { font-size: 13px !important; }
	.dp-cred .elementor-widget-text-editor p { font-size: 11.5px; }
}
@media (max-width: 767px) {
	.e-con.dp-photo-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; gap: 10px !important; }
	.dp-photo-grid > .dp-photo--main { grid-row: auto; grid-column: 1 / -1; height: 300px; }
	.dp-photo-grid > .dp-photo:not(.dp-photo--main) { height: 160px; border-radius: 18px; }
	.e-con.dp-photo { border-radius: 20px; }
	.dp-cap { left: 10px; bottom: 10px; padding: 8px 10px; border-radius: 12px; }
	.dp-cap strong { font-size: 9.5px; }
	.dp-cap span { font-size: 10px; }
	.dp-photo:not(.dp-photo--main) .dp-cap span { display: none; }
	.e-con.dp-cred { padding: 10px !important; min-height: 0; border-radius: 14px; }
	.dp-cred .elementor-heading-title { font-size: 11.5px !important; }
	.dp-cred .elementor-widget-text-editor p { font-size: 10.5px; }
}

/* ==========================================================================
   Video reels  [dp_videos]
   ========================================================================== */

.dp-reels { position: relative; }
.dp-reels__track { list-style: none; margin: 0; padding: 4px 2px 12px; display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.dp-reels__track::-webkit-scrollbar { display: none; }
.dp-reel { flex: 0 0 clamp(210px, 22vw, 272px); scroll-snap-align: start; }
.dp-reels--landscape .dp-reel { flex-basis: clamp(300px, 44vw, 560px); }
.dp-reel__btn { position: relative; display: block; width: 100%; aspect-ratio: 9 / 16; padding: 0; border: 0; border-radius: 26px; overflow: hidden; background: var(--dp-navy); cursor: pointer; box-shadow: 0 20px 50px -20px rgba(11, 27, 58, .35); transform: translateZ(0); transition: transform .6s var(--dp-ease-out), box-shadow .4s; }
.dp-reels--landscape .dp-reel__btn { aspect-ratio: 16 / 9; }
.dp-reel__btn img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--dp-ease-out); }
.dp-reel__btn:not([disabled]):hover { transform: translateY(-6px); box-shadow: 0 30px 70px -24px rgba(11, 27, 58, .45); }
.dp-reel__btn:not([disabled]):hover img { transform: scale(1.05); }
.dp-reel__btn:focus-visible { outline: 3px solid var(--dp-blue); outline-offset: 3px; }
.dp-reel__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11, 27, 58, 0) 45%, rgba(11, 27, 58, .78) 100%); }
.dp-reel__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(255, 255, 255, .18); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); border: 1px solid rgba(255, 255, 255, .45); transition: transform .4s var(--dp-ease-out), background .3s; }
.dp-reel__play svg { width: 26px; height: 26px; margin-left: 3px; }
.dp-reel__btn:not([disabled]):hover .dp-reel__play { transform: translate(-50%, -50%) scale(1.08); background: rgba(255, 255, 255, .28); }
.dp-reel.is-soon .dp-reel__btn { cursor: default; }
.dp-reel.is-soon .dp-reel__play { width: auto; height: auto; padding: 8px 14px; border-radius: 999px; }
.dp-reel.is-soon .dp-reel__play em { font: 500 12px/1 var(--dp-font-body); font-style: normal; letter-spacing: .02em; white-space: nowrap; }
.dp-reel__meta { position: absolute; left: 16px; right: 16px; bottom: 16px; text-align: left; color: #fff; font-family: var(--dp-font-body); }
.dp-reel__meta strong { display: block; font-weight: 600; font-size: 15px; line-height: 1.25; }
.dp-reel__meta span { display: block; margin-top: 4px; font-size: 12.5px; color: rgba(255, 255, 255, .78); }
.dp-reels__nav { position: absolute; right: 0; top: -72px; display: flex; gap: 10px; }
.dp-reels__arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--dp-line); background: #fff; color: var(--dp-navy); display: grid; place-items: center; cursor: pointer; transition: border-color .2s, transform .3s var(--dp-ease-out); }
.dp-reels__arrow:hover { border-color: var(--dp-navy); transform: translateY(-2px); }
.dp-reels__arrow svg { width: 20px; height: 20px; }
@media (max-width: 1024px) { .dp-reels__nav { display: none; } .dp-reel { flex-basis: 62vw; max-width: 280px; } }

.dp-vmodal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; visibility: hidden; opacity: 0; transition: opacity .3s var(--dp-ease), visibility .3s; }
.dp-vmodal.is-open { visibility: visible; opacity: 1; }
.dp-vmodal__backdrop { position: absolute; inset: 0; background: rgba(11, 27, 58, .78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.dp-vmodal__box { position: relative; height: min(86vh, 860px); aspect-ratio: 9 / 16; max-width: 92vw; transform: scale(.96); transition: transform .5s var(--dp-ease-out); }
.dp-vmodal.is-landscape .dp-vmodal__box { height: auto; width: min(92vw, 1120px); aspect-ratio: 16 / 9; }
.dp-vmodal.is-open .dp-vmodal__box { transform: none; }
.dp-vmodal__frame { width: 100%; height: 100%; border-radius: 22px; overflow: hidden; background: #000; box-shadow: 0 40px 100px rgba(0, 0, 0, .45); }
.dp-vmodal__frame iframe, .dp-vmodal__frame video { width: 100%; height: 100%; border: 0; display: block; }
.dp-vmodal__close { position: absolute; top: -14px; right: -14px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: var(--dp-navy); display: grid; place-items: center; cursor: pointer; z-index: 2; box-shadow: var(--dp-shadow); }
.dp-vmodal__close svg { width: 20px; height: 20px; }
@media (max-width: 767px) { .dp-vmodal__close { top: 10px; right: 10px; } .dp-vmodal__box { max-height: 88vh; } }
html.dp-noscroll, html.dp-noscroll body { overflow: hidden; }

.dp-dark .dp-reels__arrow { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .18); }
.dp-dark .dp-reels__arrow:hover { border-color: rgba(255, 255, 255, .6); }
.dp-dark .dp-reel__btn { box-shadow: 0 24px 60px -20px rgba(0, 0, 0, .6); }
.dp-reels-section .dp-reels__track { margin-right: calc(50% - 50vw); padding-right: 32px; }

.dp-header .e-con.dp-cta { width: auto !important; --width: auto; flex: 0 0 auto !important; }

/* Shield our own buttons from Elementor Kit global button styles */
.dp-reels .dp-reel__btn, .dp-reels .dp-reel__btn:hover, .dp-reels .dp-reel__btn:focus { display: block !important; padding: 0 !important; border: 0 !important; border-radius: 26px !important; background: var(--dp-navy) !important; color: #fff !important; line-height: 1 !important; text-transform: none !important; letter-spacing: normal !important; text-align: left !important; white-space: normal !important; }
.dp-reels .dp-reels__arrow, .dp-reels .dp-reels__arrow:hover, .dp-reels .dp-reels__arrow:focus { padding: 0 !important; border-radius: 50% !important; background: #fff !important; color: var(--dp-navy) !important; border: 1px solid var(--dp-line) !important; box-shadow: none !important; }
.dp-dark .dp-reels .dp-reels__arrow, .dp-dark .dp-reels .dp-reels__arrow:hover { background: rgba(255, 255, 255, .06) !important; color: #fff !important; border-color: rgba(255, 255, 255, .22) !important; }
.dp-dock .dp-dock__fab, .dp-dock .dp-dock__fab:hover, .dp-dock .dp-dock__fab:focus { padding: 0 22px 0 8px !important; border-radius: 999px !important; background: var(--dp-glass) !important; color: var(--dp-navy) !important; border: 1px solid rgba(255, 255, 255, .7) !important; font: 500 15px/1 var(--dp-font-display) !important; text-transform: none !important; letter-spacing: normal !important; }
.dp-dock .dp-dock__close, .dp-dock .dp-dock__close:hover, .dp-dock .dp-dock__close:focus { padding: 0 !important; border-radius: 50% !important; background: var(--dp-mist) !important; color: var(--dp-navy) !important; border: 0 !important; box-shadow: none !important; }
.dp-vmodal .dp-vmodal__close, .dp-vmodal .dp-vmodal__close:hover, .dp-vmodal .dp-vmodal__close:focus { padding: 0 !important; border-radius: 50% !important; background: #fff !important; color: var(--dp-navy) !important; border: 0 !important; }

.dp-reels .dp-reel__btn img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover !important; }

/* Motion v2 helpers */
.dp-scale-in { overflow: hidden; will-change: clip-path; }
.dp-scene { position: relative; }
.dp-scene-media { will-change: opacity, transform; }
.dp-stack > *, .dp-stack > .e-con-inner > * { transform-origin: 50% 0; will-change: transform; }

/* ==========================================================================
   Homepage sections — shared type + statement, treatments, doctor, clinic
   ========================================================================== */
.e-con.dp-sec { position: relative; }
.dp-eyebrow-gold .elementor-heading-title { color: var(--dp-gold) !important; }
.dp-h2 .elementor-heading-title { font: 600 clamp(32px, 3.7vw, 54px)/1.07 var(--dp-font-display); letter-spacing: -.032em; color: var(--dp-navy); text-wrap: balance; }
.dp-light { font-weight: 300; color: var(--dp-gold); letter-spacing: -.035em; }
.dp-lead p { font: 400 clamp(16px, 1.3vw, 19px)/1.6 var(--dp-font-body); color: var(--dp-graphite); }
.dp-lead p + p { margin-top: 12px; }
.dp-btns { gap: 12px; }
.dp-btn-arrow .elementor-button-text::after { content: ""; display: inline-block; width: 14px; height: 14px; margin-left: 10px; vertical-align: -1px; background: currentColor; -webkit-mask: var(--dp-arrow) center / contain no-repeat; mask: var(--dp-arrow) center / contain no-repeat; transition: transform .4s var(--dp-ease-out); }
.dp-btn-arrow .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
.dp-btn-light .elementor-button { background: transparent !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .32) !important; }
.dp-btn-light .elementor-button:hover { background: #fff !important; color: var(--dp-navy) !important; }
:root { --dp-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E"); }

/* Progress rule (the fill is animated by dp-progress / dp-hscroll-bar) */
.dp-rule { position: relative; height: 1px; background: var(--dp-line); overflow: hidden; }
.dp-rule > span { position: absolute; inset: 0; background: linear-gradient(90deg, var(--dp-gold), var(--dp-blue)); transform-origin: left center; }
.dp-rule--dark { background: rgba(255, 255, 255, .14); height: 2px; border-radius: 2px; }
.dp-rule--dark > span { background: linear-gradient(90deg, var(--dp-gold), #fff); }
.dp-hscroll-bar { transform: scaleX(0); }

/* ---------- 3 · Statement + quiet numbers ---------- */
.e-con.dp-sec-statement { background: #fff; }
.dp-statement .elementor-heading-title { font: 400 clamp(25px, 3.05vw, 46px)/1.28 var(--dp-font-display); letter-spacing: -.024em; color: var(--dp-navy); max-width: 1120px; }
.e-con.dp-proof { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; }
.dp-proof > .e-con { width: auto !important; --width: auto; padding: 30px 28px 4px 0 !important; }
.dp-proof > .e-con + .e-con { padding-left: 28px !important; border-left: 1px solid var(--dp-line); }
.dp-num .elementor-heading-title { font: 300 clamp(58px, 6.4vw, 96px)/.95 var(--dp-font-display); letter-spacing: -.055em; color: var(--dp-navy); font-variant-numeric: tabular-nums; }
.dp-num-label .elementor-heading-title { font: 600 12.5px/1.3 var(--dp-font-display); letter-spacing: .13em; text-transform: uppercase; color: var(--dp-blue); }
.dp-num-desc p { font: 400 15px/1.55 var(--dp-font-body); color: var(--dp-graphite); margin: 0; max-width: 28ch; }
.e-con.dp-strip { display: grid !important; grid-template-columns: 1.4fr 1fr .78fr; gap: 16px !important; }
.dp-strip > .e-con { width: auto !important; --width: auto; height: clamp(230px, 27vw, 390px); }
.dp-strip > .e-con.dp-photo { box-shadow: 0 18px 50px -24px rgba(11, 27, 58, .35); }

/* ---------- 4 · Treatments (pinned horizontal story) ---------- */
.e-con.dp-sec-treatments { background: var(--dp-mist); overflow: hidden; }
.dp-sec-head { width: 100%; max-width: 1280px; margin-left: auto !important; margin-right: auto !important; }
.dp-sec-treatments .dp-hscroll-track, .dp-sec-clinic .dp-hscroll-track { gap: 20px !important; padding: 6px max(20px, calc((100vw - 1216px) / 2)) 6px !important; }
.e-con.dp-tcard { flex: 0 0 auto !important; width: 380px !important; --width: 380px; min-height: clamp(400px, 56vh, 510px); padding: 32px !important; border-radius: 28px; background: #fff; border: 1px solid rgba(11, 27, 58, .06); justify-content: space-between; position: relative; overflow: hidden; isolation: isolate; box-shadow: 0 1px 2px rgba(11, 27, 58, .04); transition: transform .6s var(--dp-ease-out), box-shadow .6s var(--dp-ease-out); }
.e-con.dp-tcard::before { content: ""; position: absolute; z-index: -1; width: 320px; height: 320px; right: -120px; top: -140px; border-radius: 50%; background: radial-gradient(circle, rgba(23, 71, 166, .10), rgba(23, 71, 166, 0) 70%); transition: transform 1s var(--dp-ease-out); }
.e-con.dp-tcard:hover { transform: translateY(-6px); box-shadow: 0 34px 70px -34px rgba(11, 27, 58, .32); }
.e-con.dp-tcard:hover::before { transform: scale(1.25); }
.e-con.dp-tcard--navy { background: var(--dp-navy); border-color: transparent; }
.e-con.dp-tcard--navy::before { background: radial-gradient(circle, rgba(201, 161, 91, .28), rgba(201, 161, 91, 0) 70%); }
.e-con.dp-tcard--sky { background: var(--dp-sky); border-color: transparent; }
.e-con.dp-tcard--blue { background: linear-gradient(160deg, #1D55C4, var(--dp-blue) 55%, #123C8F); border-color: transparent; }
.e-con.dp-tcard--blue::before { background: radial-gradient(circle, rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 70%); }
.dp-tnum .elementor-heading-title { font: 500 12.5px/1 var(--dp-font-display); letter-spacing: .16em; color: var(--dp-gold); }
.dp-tname .elementor-heading-title { font: 600 30px/1.1 var(--dp-font-display); letter-spacing: -.025em; color: var(--dp-navy); }
.dp-tdesc p { font: 400 15.5px/1.55 var(--dp-font-body); color: var(--dp-graphite); margin: 0; }
.dp-ticon svg { display: block; width: 58px; height: 58px; fill: none; stroke: var(--dp-blue); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.dp-ticon .dp-ic-accent { stroke: var(--dp-gold); }
.dp-tlist ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(11, 27, 58, .1); }
.dp-tlist li { margin: 0; }
.dp-tlist a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid rgba(11, 27, 58, .1); font: 500 15px/1.3 var(--dp-font-display); color: var(--dp-navy); text-decoration: none; transition: color .3s, padding .45s var(--dp-ease-out); }
.dp-tlist a::after { content: ""; flex: none; width: 15px; height: 15px; background: currentColor; opacity: .45; -webkit-mask: var(--dp-arrow) center / contain no-repeat; mask: var(--dp-arrow) center / contain no-repeat; transition: opacity .3s, transform .45s var(--dp-ease-out); }
.dp-tlist a:hover { color: var(--dp-blue); padding-left: 6px; }
.dp-tlist a:hover::after { opacity: 1; transform: translateX(3px); }
.dp-tcard--navy .dp-tname .elementor-heading-title, .dp-tcard--blue .dp-tname .elementor-heading-title, .dp-tcard--navy .dp-tlist a, .dp-tcard--blue .dp-tlist a { color: #fff; }
.dp-tcard--navy .dp-tdesc p, .dp-tcard--blue .dp-tdesc p { color: rgba(255, 255, 255, .72); }
.dp-tcard--navy .dp-tlist ul, .dp-tcard--navy .dp-tlist a, .dp-tcard--blue .dp-tlist ul, .dp-tcard--blue .dp-tlist a { border-color: rgba(255, 255, 255, .16); }
.dp-tcard--navy .dp-tlist a:hover { color: var(--dp-gold); }
.dp-tcard--navy .dp-ticon svg { stroke: #fff; }
.dp-tcard--blue .dp-ticon svg { stroke: #fff; }
.dp-tcard--blue .dp-tnum .elementor-heading-title { color: rgba(255, 255, 255, .7); }
.dp-tcard--blue .dp-btn-white .elementor-button { background: #fff !important; color: var(--dp-blue) !important; }
.dp-tcard--blue .dp-btn-light .elementor-button { border-color: rgba(255, 255, 255, .4) !important; }
.dp-hs-foot { gap: 16px; }
.dp-hs-hint .elementor-heading-title { font: 500 13px/1.2 var(--dp-font-display); letter-spacing: .02em; color: var(--dp-graphite); }
.dp-sec-clinic .dp-hs-hint .elementor-heading-title { color: rgba(255, 255, 255, .55); }

/* ---------- 5 · Meet Dr. Mamun ---------- */
.e-con.dp-sec-doctor { background: var(--dp-porcelain); overflow: hidden; }
.e-con.dp-doc-figure { position: relative; }
.e-con.dp-doc-media { height: clamp(460px, 48vw, 680px); border-radius: 48% 48% 28px 28px / 30% 30% 28px 28px; overflow: hidden; padding: 0 !important; background: var(--dp-sky); box-shadow: 0 40px 80px -40px rgba(11, 27, 58, .45); }
.dp-motion .dp-mask-reveal.dp-doc-media { clip-path: inset(100% 0 0 0 round 28px); }
.dp-doc-media .elementor-widget-image, .dp-doc-media .elementor-widget-container, .dp-doc-media .elementor-widget-image a { height: 100%; width: 100%; }
.dp-doc-media img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; object-position: 50% 22%; display: block; }
.e-con.dp-doc-badge { position: absolute !important; left: -28px; bottom: 44px; z-index: 3; width: auto !important; --width: auto; padding: 16px 18px !important; border-radius: 18px; background: rgba(250, 250, 248, .86); -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%); border: 1px solid rgba(255, 255, 255, .7); box-shadow: 0 20px 44px -18px rgba(11, 27, 58, .3); }
.dp-doc-badge p { margin: 0; }
.dp-doc-badge strong { display: block; font: 600 15px/1.2 var(--dp-font-display); color: var(--dp-navy); }
.dp-doc-badge span { display: block; margin-top: 4px; font: 400 12.5px/1.35 var(--dp-font-body); color: var(--dp-graphite); }
.dp-doc-role .elementor-heading-title { font: 500 15px/1.4 var(--dp-font-display); color: var(--dp-blue); letter-spacing: 0; }
.e-con.dp-degs { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid var(--dp-line); border-bottom: 1px solid var(--dp-line); }
.dp-degs > .e-con { width: auto !important; --width: auto; padding: 20px 14px 20px 0 !important; }
.dp-degs > .e-con + .e-con { padding-left: 18px !important; border-left: 1px solid var(--dp-line); }
.dp-deg .elementor-heading-title { font: 600 26px/1 var(--dp-font-display); letter-spacing: -.02em; color: var(--dp-navy); }
.dp-deg-sub p { margin: 0; font: 400 13.5px/1.4 var(--dp-font-body); color: var(--dp-graphite); }
.dp-members p { margin: 0; font: 400 14px/1.6 var(--dp-font-body); color: var(--dp-graphite); }
.dp-members strong { font: 600 12px/1 var(--dp-font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--dp-gold); margin-right: 10px; }

/* ---------- 6 · Clinic experience (dark, pinned gallery) ---------- */
.e-con.dp-sec-clinic { background: radial-gradient(ellipse at 85% 0%, rgba(23, 71, 166, .35), rgba(23, 71, 166, 0) 55%), var(--dp-navy); overflow: hidden; }
.dp-sec-clinic .dp-h2 .elementor-heading-title { color: #fff; }
.dp-sec-clinic .dp-lead p { color: rgba(255, 255, 255, .7); }
.e-con.dp-gcard { flex: 0 0 auto !important; width: auto !important; --width: auto; gap: 16px; }
.e-con.dp-gimg { height: clamp(300px, 50vh, 470px); width: clamp(420px, 44vw, 640px); border-radius: 26px; overflow: hidden; padding: 0 !important; background: rgba(255, 255, 255, .06); }
.dp-gcard--tall .e-con.dp-gimg { width: clamp(250px, 23vw, 340px); }
.dp-gimg .elementor-widget-image, .dp-gimg .elementor-widget-container, .dp-gimg .elementor-widget-image a { height: 100%; width: 100%; }
.dp-gimg img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; transform: scale(1.02); transition: transform 1.2s var(--dp-ease-out); }
.dp-gcard:hover .dp-gimg img { transform: scale(1.07); }
.dp-gcap p { margin: 0; }
.dp-gcap strong { display: block; font: 600 16px/1.3 var(--dp-font-display); color: #fff; letter-spacing: -.01em; }
.dp-gcap span { display: block; margin-top: 4px; font: 400 13.5px/1.45 var(--dp-font-body); color: rgba(255, 255, 255, .6); }

/* Pinned-section variant of dp-hscroll: the track (not the section) swipes on touch screens */
@media (max-width: 1024px) {
	.dp-hscroll.dp-hs-section { overflow: hidden !important; scroll-snap-type: none !important; }
	.dp-hs-section .dp-hscroll-track { width: auto !important; max-width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-left: 20px !important; padding-right: 20px !important; }
	.dp-hs-section .dp-hscroll-track::-webkit-scrollbar { display: none; }
	.dp-hs-section .dp-hscroll-track > * { scroll-snap-align: start; }
	.e-con.dp-proof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dp-proof > .e-con:nth-child(3) { border-left: 0; padding-left: 0 !important; }
	.dp-proof > .e-con:nth-child(n+3) { border-top: 1px solid var(--dp-line); margin-top: 26px !important; }
	.e-con.dp-doc-badge { left: 16px; bottom: 20px; }
	.e-con.dp-degs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dp-degs > .e-con:nth-child(3) { border-left: 0; padding-left: 0 !important; }
	.dp-degs > .e-con:nth-child(n+3) { border-top: 1px solid var(--dp-line); }
}
@media (max-width: 767px) {
	.dp-proof > .e-con { padding: 22px 14px 2px 0 !important; }
	.dp-proof > .e-con + .e-con { padding-left: 16px !important; }
	.dp-num-desc p { font-size: 13.5px; }
	.e-con.dp-strip { grid-template-columns: 1fr 1fr; gap: 10px !important; }
	.dp-strip > .e-con:first-child { grid-column: 1 / -1; height: 230px; }
	.dp-strip > .e-con:not(:first-child) { height: 150px; border-radius: 18px; }
	.e-con.dp-tcard { width: 300px !important; --width: 300px; min-height: 440px; padding: 24px !important; border-radius: 24px; }
	.dp-tname .elementor-heading-title { font-size: 25px; }
	.dp-tdesc p { font-size: 14.5px; }
	.dp-ticon svg { width: 48px; height: 48px; }
	.e-con.dp-doc-media { height: 440px; }
	.dp-deg .elementor-heading-title { font-size: 22px; }
	.e-con.dp-gimg { width: 82vw; height: 58vw; min-height: 240px; border-radius: 20px; }
	.dp-gcard--tall .e-con.dp-gimg { width: 56vw; }
}
/* Reduced motion / no JS: the gallery tracks scroll natively instead of pinning */
html:not(.dp-motion) .dp-hs-section .dp-hscroll-track, .dp-soft .dp-hs-section .dp-hscroll-track { width: auto !important; max-width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
html:not(.dp-motion) .dp-hs-section .dp-hscroll-track > *, .dp-soft .dp-hs-section .dp-hscroll-track > * { scroll-snap-align: start; }
.dp-hs-nav { display: none; gap: 10px; }
.dp-soft .dp-hs-nav, html:not(.dp-motion) .dp-hs-nav { display: flex; }
@media (max-width: 1024px) { .dp-hs-nav { display: flex; } }
.dp-hs-nav button, .dp-hs-nav button:hover, .dp-hs-nav button:focus { width: 44px; height: 44px; padding: 0 !important; border-radius: 50% !important; border: 1px solid rgba(11, 27, 58, .14) !important; background: #fff !important; color: var(--dp-navy) !important; display: grid; place-items: center; cursor: pointer; box-shadow: none !important; }
.dp-hs-nav button::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--dp-arrow) center / contain no-repeat; mask: var(--dp-arrow) center / contain no-repeat; }
.dp-hs-nav .dp-hs-prev::before { transform: rotate(180deg); }
.dp-sec-clinic .dp-hs-nav button { background: rgba(255, 255, 255, .06) !important; color: #fff !important; border-color: rgba(255, 255, 255, .22) !important; }

/* ---------- Fixes for pinned galleries + treatment links ---------- */
.dp-hscroll-track { width: max-content !important; }
.dp-tlist li a { color: var(--dp-navy); }
.dp-tlist li a:hover { color: var(--dp-blue); }
.dp-tcard--navy .dp-tlist li a, .dp-tcard--blue .dp-tlist li a { color: #fff; }
.dp-tcard--navy .dp-tlist li a:hover { color: var(--dp-gold); }
@media (min-width: 768px) { .e-con.dp-tcard { min-height: clamp(380px, 50vh, 460px); } }

/* ---------- 7 · International patients ---------- */
.e-con.dp-sec-international { background: #fff; overflow: hidden; }
.e-con.dp-grow { position: relative; height: clamp(420px, 78vh, 760px); overflow: hidden; padding: 0 !important; }
.dp-grow .elementor-widget-image, .dp-grow .elementor-widget-image .elementor-widget-container { height: 100%; width: 100%; }
.dp-grow img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; object-position: 50% 38%; display: block; }
.dp-grow::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(180deg, rgba(11, 27, 58, 0), rgba(11, 27, 58, .55)); pointer-events: none; }
.e-con.dp-grow-cap { position: absolute !important; left: max(20px, calc((100vw - 1216px) / 2)); bottom: 40px; z-index: 2; width: auto !important; --width: auto; max-width: 440px; padding: 22px 24px !important; border-radius: 20px; background: rgba(11, 27, 58, .5); -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%); border: 1px solid rgba(255, 255, 255, .18); }
.dp-grow-cap p { margin: 0; color: rgba(255, 255, 255, .82); font: 400 15px/1.55 var(--dp-font-body); }
.dp-grow-cap strong { display: block; margin-bottom: 6px; font: 600 20px/1.25 var(--dp-font-display); letter-spacing: -.01em; color: #fff; }
.e-con.dp-feats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px !important; }
.dp-feats > .e-con { width: auto !important; --width: auto; padding: 30px !important; border-radius: 24px; background: var(--dp-porcelain); border: 1px solid var(--dp-line); }
.dp-feat-ic svg { display: block; width: 44px; height: 44px; fill: none; stroke: var(--dp-blue); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.dp-feat-ic .dp-ic-accent { stroke: var(--dp-gold); }
.dp-feat-t .elementor-heading-title { font: 600 19px/1.3 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-feat-d p { margin: 0; font: 400 15px/1.6 var(--dp-font-body); color: var(--dp-graphite); }
.dp-faces .dp-marquee__track { gap: 16px; animation-duration: 70s; }
.dp-faces img { display: block; width: 210px; height: 270px; object-fit: cover; border-radius: 22px; }

/* ---------- 9 · Technology & safety (pinned scene) ---------- */
.e-con.dp-sec-tech { background: var(--dp-porcelain); }
.e-con.dp-scene-stage { position: relative; height: clamp(420px, 70vh, 640px); border-radius: 32px; overflow: hidden; padding: 0 !important; background: var(--dp-mist); box-shadow: 0 40px 80px -48px rgba(11, 27, 58, .45); }
.dp-scene-stage > .e-con { position: absolute !important; inset: 0; width: 100% !important; --width: 100%; height: 100%; padding: 0 !important; }
.dp-scene-stage .elementor-widget-image, .dp-scene-stage .elementor-widget-image .elementor-widget-container { height: 100%; width: 100%; }
.dp-scene-stage img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; }
.dp-motion:not(.dp-soft) .dp-scene-stage > .dp-scene-media:not(:first-child) { opacity: 0; }
.dp-scene-n .elementor-heading-title { font: 500 12.5px/1 var(--dp-font-display); letter-spacing: .16em; color: var(--dp-gold); }
.dp-scene-t .elementor-heading-title { font: 600 clamp(24px, 2.4vw, 34px)/1.15 var(--dp-font-display); letter-spacing: -.025em; color: var(--dp-navy); }
.dp-scene-d p { margin: 0; font: 400 16.5px/1.65 var(--dp-font-body); color: var(--dp-graphite); max-width: 44ch; }
.dp-scene-steps > .e-con + .e-con { border-top: 1px solid var(--dp-line); padding-top: 26px !important; }
@media (min-width: 1025px) {
	.dp-motion:not(.dp-soft) .e-con.dp-sec-tech { min-height: 100vh; justify-content: center; }
	.dp-motion:not(.dp-soft) .e-con.dp-scene-steps { display: grid !important; }
	.dp-motion:not(.dp-soft) .dp-scene-steps > .e-con { grid-area: 1 / 1; border-top: 0; padding-top: 0 !important; }
}
.dp-soft .dp-scene-stage > .e-con:not(:first-child), html:not(.dp-motion) .dp-scene-stage > .e-con:not(:first-child) { display: none; }

/* ---------- 10 · How a visit works ---------- */
.e-con.dp-sec-visit { background: linear-gradient(180deg, var(--dp-sky), #fff 85%); }
.e-con.dp-steps { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px !important; }
.dp-steps > .e-con { width: auto !important; --width: auto; padding: 32px !important; border-radius: 26px; background: #fff; border: 1px solid rgba(23, 71, 166, .08); box-shadow: 0 24px 50px -36px rgba(11, 27, 58, .35); }
.dp-step-n .elementor-heading-title { font: 300 64px/1 var(--dp-font-display); letter-spacing: -.05em; color: var(--dp-blue); }
.dp-step-t .elementor-heading-title { font: 600 22px/1.25 var(--dp-font-display); letter-spacing: -.015em; color: var(--dp-navy); }
.dp-step-d p { margin: 0; font: 400 15.5px/1.6 var(--dp-font-body); color: var(--dp-graphite); }

/* ---------- 11 · Reviews ---------- */
.e-con.dp-sec-reviews { background: #fff; }
.dp-bigquote .elementor-heading-title { font: 400 clamp(26px, 3.4vw, 50px)/1.22 var(--dp-font-display); letter-spacing: -.028em; color: var(--dp-navy); text-align: center; max-width: 1000px; margin: 0 auto; text-wrap: balance; }
.dp-stars svg { display: block; width: 92px; height: 16px; fill: var(--dp-gold); }
.dp-stars.dp-center svg { margin: 0 auto; }
.e-con.dp-revs { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px !important; max-width: 1000px; margin-left: auto !important; margin-right: auto !important; width: 100%; }
.dp-revs > .e-con { width: auto !important; --width: auto; padding: 30px !important; border-radius: 24px; background: var(--dp-porcelain); border: 1px solid var(--dp-line); justify-content: space-between; }
.dp-rev-q .elementor-heading-title { font: 400 20px/1.45 var(--dp-font-display); letter-spacing: -.012em; color: var(--dp-navy); }
.dp-rev-by p { margin: 0; font: 400 13.5px/1.4 var(--dp-font-body); color: var(--dp-graphite); }
.dp-rev-by strong { display: block; font: 600 15px/1.3 var(--dp-font-display); color: var(--dp-navy); }
.dp-rev-by.dp-center p { text-align: center; }

/* ---------- 12 · FAQ ---------- */
.e-con.dp-sec-faq { background: var(--dp-porcelain); }
:root { interpolate-size: allow-keywords; }
.dp-faq details { border-bottom: 1px solid var(--dp-line); }
.dp-faq details:first-of-type { border-top: 1px solid var(--dp-line); }
.dp-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; font: 600 clamp(17px, 1.35vw, 20px)/1.35 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); transition: color .3s; }
.dp-faq summary:hover { color: var(--dp-blue); }
.dp-faq summary::-webkit-details-marker { display: none; }
.dp-faq summary::after { content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--dp-line); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%230B1B3A' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M6 1v10M1 6h10'/%3E%3C/svg%3E") center / 12px no-repeat; transition: transform .45s var(--dp-ease-out), background-color .3s; }
.dp-faq details[open] summary::after { transform: rotate(45deg); background-color: var(--dp-sky); }
.dp-faq details::details-content { height: 0; overflow: clip; transition: height .45s var(--dp-ease-out), content-visibility .45s allow-discrete; }
.dp-faq details[open]::details-content { height: auto; }
.dp-faq-a { padding: 0 58px 26px 0; font: 400 16px/1.65 var(--dp-font-body); color: var(--dp-graphite); }
.dp-faq-a p { margin: 0 0 10px; }
.dp-faq-a a { color: var(--dp-blue); }

/* ---------- 13 · Booking CTA + visit info ---------- */
.e-con.dp-sec-book { background: radial-gradient(ellipse at 8% 0%, rgba(201, 161, 91, .22), rgba(201, 161, 91, 0) 45%), radial-gradient(ellipse at 100% 100%, rgba(23, 71, 166, .5), rgba(23, 71, 166, 0) 55%), var(--dp-navy); overflow: hidden; }
.dp-sec-book .dp-h2 .elementor-heading-title { color: #fff; }
.dp-sec-book .dp-lead p { color: rgba(255, 255, 255, .72); }
.e-con.dp-book-card { background: #fff; border-radius: 28px; padding: 36px !important; box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .55); }
.dp-book-card .dp-book-t .elementor-heading-title { font: 600 24px/1.2 var(--dp-font-display); letter-spacing: -.02em; color: var(--dp-navy); }
.e-con.dp-info-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px !important; padding-top: 28px !important; border-top: 1px solid rgba(255, 255, 255, .12); }
.dp-info-grid > * { width: auto !important; --width: auto; }
.dp-info p { margin: 0; font: 400 15px/1.6 var(--dp-font-body); color: rgba(255, 255, 255, .75); }
.dp-info strong { display: block; margin-bottom: 10px; font: 600 12px/1 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold); }
.dp-info a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .25); transition: border-color .3s; }
.dp-info a:hover { border-color: #fff; }
.dp-sec-book .dp-hours { margin: 0; padding: 0; }
.dp-sec-book .dp-hours li { color: rgba(255, 255, 255, .75); border-color: rgba(255, 255, 255, .1); }
.dp-sec-book .dp-hours li.is-today { color: #fff; font-weight: 600; }
.dp-sec-book .dp-hours-note { color: rgba(255, 255, 255, .55); }
.dp-sec-book .dp-open-status { background: rgba(29, 138, 97, .18); color: #7BE0B5; }

/* ---------- Footer ---------- */
.e-con.dp-footer { background: #07142C; }
.dp-footer p { margin: 0; font: 400 14.5px/1.65 var(--dp-font-body); color: rgba(255, 255, 255, .6); }
.dp-flogo img { width: 176px; height: auto; filter: brightness(0) invert(1); }
.dp-fh .elementor-heading-title { font: 600 12px/1 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold); }
.dp-flinks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.dp-flinks a, .dp-footer .dp-info a { color: rgba(255, 255, 255, .78); text-decoration: none; border: 0; font: 400 14.5px/1.4 var(--dp-font-body); transition: color .3s; }
.dp-flinks a:hover, .dp-footer .dp-info a:hover { color: #fff; }
.dp-footer .dp-info p { font-size: 14.5px; color: rgba(255, 255, 255, .6); }
.dp-footer .dp-info p + p { margin-top: 10px; }
.e-con.dp-fbottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.dp-fbottom p, .dp-fbottom a { font-size: 13px; color: rgba(255, 255, 255, .45); text-decoration: none; }
.dp-fbottom a:hover { color: #fff; }
.dp-fsocial { display: flex; gap: 10px; }
.dp-fsocial a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .16); color: #fff; transition: background-color .3s, border-color .3s; }
.dp-fsocial a:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .4); }
.dp-fsocial svg { width: 17px; height: 17px; fill: currentColor; }
.dp-fword .elementor-heading-title { font: 600 clamp(44px, 9.6vw, 150px)/.9 var(--dp-font-display); letter-spacing: -.055em; color: rgba(255, 255, 255, .05); white-space: nowrap; }

@media (max-width: 1024px) {
	.e-con.dp-feats, .e-con.dp-steps { grid-template-columns: 1fr; }
	.e-con.dp-scene-stage { height: 380px; }
	.dp-scene-stage > .e-con:not(:first-child) { display: none; }
	.e-con.dp-grow-cap { left: 20px; right: 20px; bottom: 20px; max-width: none; }
}
@media (max-width: 767px) {
	.e-con.dp-grow { height: 460px; }
	.dp-grow-cap strong { font-size: 17px; }
	.dp-grow-cap p { font-size: 14px; }
	.dp-feats > .e-con, .dp-steps > .e-con { padding: 24px !important; }
	.dp-faces img { width: 150px; height: 196px; border-radius: 18px; }
	.e-con.dp-scene-stage { height: 280px; border-radius: 24px; }
	.dp-step-n .elementor-heading-title { font-size: 52px; }
	.e-con.dp-revs { grid-template-columns: 1fr; }
	.dp-faq-a { padding-right: 0; }
	.e-con.dp-book-card { padding: 24px !important; border-radius: 22px; }
	.e-con.dp-info-grid { grid-template-columns: 1fr; }
}

/* ---------- Home QA fixes: link colours (the Kit link colour is more specific), hours, sizes ---------- */
.dp-sec-book .dp-info p a, .dp-sec-book .dp-info a { color: #fff; }
.dp-footer .dp-flinks li a, .dp-footer .dp-info p a { color: rgba(255, 255, 255, .78); }
.dp-footer .dp-fbottom p a { color: rgba(255, 255, 255, .45); }
.dp-footer .dp-flinks li a:hover, .dp-footer .dp-info p a:hover, .dp-footer .dp-fbottom p a:hover { color: #fff; }
.dp-footer .dp-info, .dp-footer .dp-info p { font: 400 14.5px/1.65 var(--dp-font-body); color: rgba(255, 255, 255, .6); }
.dp-sec-book .dp-info, .dp-sec-book .dp-info p { font-size: 15px; }
.dp-sec-book .dp-info-grid > .e-con.dp-info { grid-column: 1 / -1; }
.dp-sec-book .dp-hours { columns: 2; column-gap: 40px; }
.dp-sec-book .dp-hours li { break-inside: avoid; font-size: 14.5px; padding: 9px 0; }
.e-con.dp-sec-treatments { padding-top: clamp(56px, 9.5vh, 88px) !important; }
.dp-tlist a { padding: 10px 0; }
@media (min-width: 768px) { .e-con.dp-tcard { padding: 28px !important; } }
@media (min-width: 1025px) { .e-con.dp-faq-intro { position: sticky; top: 110px; } }
.e-con.dp-footer { overflow: hidden; }
.dp-fword { overflow: hidden; }
.dp-fword .elementor-heading-title { font-size: clamp(24px, 8.2vw, 128px); }
@media (max-width: 767px) { .dp-sec-book .dp-hours { columns: 1; } }

/* ==========================================================================
   Inner pages — hero variants + reusable sections
   ========================================================================== */
.e-con.dp-bg-white { background: #fff; }
.e-con.dp-bg-porc { background: var(--dp-porcelain); }
.e-con.dp-bg-mist { background: var(--dp-mist); }
.e-con.dp-bg-sky { background: linear-gradient(180deg, var(--dp-sky), #fff 90%); }
.e-con.dp-bg-navy { background: radial-gradient(ellipse at 90% 0%, rgba(23, 71, 166, .4), rgba(23, 71, 166, 0) 55%), var(--dp-navy); }
.dp-bg-navy .dp-h2 .elementor-heading-title, .dp-bg-navy .dp-h1 .elementor-heading-title { color: #fff; }
.dp-bg-navy .dp-lead p { color: rgba(255, 255, 255, .72); }
.dp-bg-navy .dp-eyebrow .elementor-heading-title { color: var(--dp-gold); }
.dp-bg-navy .dp-statement .elementor-heading-title { color: #fff; }

.dp-h1 .elementor-heading-title { font: 600 clamp(40px, 5.4vw, 82px)/1.02 var(--dp-font-display); letter-spacing: -.04em; color: var(--dp-navy); text-wrap: balance; }
.dp-crumb p { margin: 0; font: 500 13px/1.3 var(--dp-font-display); letter-spacing: .01em; color: var(--dp-graphite); }
.dp-crumb p a { color: inherit; text-decoration: none; transition: color .3s; }
.dp-crumb p a:hover { color: var(--dp-blue); }
.dp-bg-navy .dp-crumb p, .dp-ph-full .dp-crumb p { color: rgba(255, 255, 255, .62); }
.e-con.dp-page-hero { overflow: hidden; }

/* Centered hero */
.dp-ph-center .dp-h1 .elementor-heading-title, .dp-ph-center .dp-lead p, .dp-ph-center .dp-crumb p { text-align: center; }
.dp-ph-center .dp-lead { max-width: 660px; margin-left: auto; margin-right: auto; }

/* Line-art illustration */
.dp-art { position: relative; display: grid; place-items: center; aspect-ratio: 1; width: min(100%, 460px); margin: 0 auto; }
.dp-art::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, var(--dp-sky) 60%, rgba(234, 241, 255, 0) 72%); }
.dp-art::after { content: ""; position: absolute; inset: 7%; border-radius: 50%; border: 1px dashed rgba(201, 161, 91, .55); animation: dp-spin 70s linear infinite; }
.dp-art svg { position: relative; z-index: 1; width: 52%; height: auto; fill: none; stroke: var(--dp-blue); stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; }
.dp-art .dp-ic-accent { stroke: var(--dp-gold); }
.dp-art--dark::before { background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, .16), rgba(255, 255, 255, .04) 60%, rgba(255, 255, 255, 0) 72%); }
.dp-art--dark svg { stroke: #fff; }
.dp-art--wide { width: min(100%, 540px); }
@keyframes dp-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dp-art::after { animation: none; } }

/* Panel hero */
.e-con.dp-ph-panel { border-radius: 36px; background: linear-gradient(135deg, var(--dp-sky), #fff 70%); border: 1px solid rgba(23, 71, 166, .08); overflow: hidden; }
.e-con.dp-ph-panel--warm { background: linear-gradient(135deg, #FBF3E6, #fff 70%); border-color: rgba(201, 161, 91, .22); }

/* Split hero media (arch or rounded) */
.e-con.dp-ph-media { height: clamp(420px, 44vw, 620px); border-radius: 48% 48% 28px 28px / 30% 30% 28px 28px; overflow: hidden; padding: 0 !important; background: var(--dp-sky); box-shadow: 0 40px 80px -40px rgba(11, 27, 58, .45); }
.e-con.dp-ph-media--rect { border-radius: 32px; }
.dp-ph-media .elementor-widget-image, .dp-ph-media .elementor-widget-image .elementor-widget-container { height: 100%; width: 100%; }
.dp-ph-media img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; }
.dp-motion .dp-mask-reveal.dp-ph-media { clip-path: inset(100% 0 0 0 round 28px); }

/* Full-bleed photo hero */
.e-con.dp-ph-full { position: relative; min-height: clamp(560px, 92vh, 900px); justify-content: flex-end; overflow: hidden; }
.dp-ph-full > .dp-ph-bg { position: absolute !important; inset: 0; width: 100% !important; --width: 100%; height: 100%; padding: 0 !important; z-index: 0; }
.dp-ph-bg .elementor-widget-image, .dp-ph-bg .elementor-widget-image .elementor-widget-container { height: 100%; width: 100%; }
.dp-ph-bg img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; display: block; }
.dp-ph-full::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(11, 27, 58, .2) 0%, rgba(11, 27, 58, .15) 35%, rgba(11, 27, 58, .85) 100%); pointer-events: none; }
.dp-ph-full > .dp-ph-content { position: relative; z-index: 2; }
.dp-ph-full .dp-h1 .elementor-heading-title { color: #fff; }
.dp-ph-full .dp-lead p { color: rgba(255, 255, 255, .84); }
.dp-ph-full .dp-eyebrow .elementor-heading-title { color: var(--dp-gold); }

/* Editorial hero */
.dp-ph-num .elementor-heading-title { font: 200 clamp(90px, 13vw, 200px)/.8 var(--dp-font-display); letter-spacing: -.07em; color: var(--dp-gold); }
.e-con.dp-ph-stack { display: grid !important; grid-template-columns: 1fr 1fr; gap: 14px !important; }
.dp-ph-stack > .e-con { width: auto !important; --width: auto; height: clamp(260px, 30vw, 440px); }
.dp-ph-stack > .e-con:nth-child(2) { margin-top: 56px !important; }

/* Quick facts */
.e-con.dp-facts { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; border-top: 1px solid var(--dp-line); }
.dp-facts > .e-con { width: auto !important; --width: auto; padding: 22px 20px 0 0 !important; }
.dp-facts > .e-con + .e-con { padding-left: 20px !important; border-left: 1px solid var(--dp-line); }
.dp-fact-l .elementor-heading-title { font: 600 11.5px/1.3 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-graphite); }
.dp-fact-v .elementor-heading-title { font: 500 19px/1.3 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-bg-navy .e-con.dp-facts, .dp-bg-navy .dp-facts > .e-con, .dp-ph-full .e-con.dp-facts, .dp-ph-full .dp-facts > .e-con { border-color: rgba(255, 255, 255, .16); }
.dp-bg-navy .dp-fact-l .elementor-heading-title, .dp-ph-full .dp-fact-l .elementor-heading-title { color: rgba(255, 255, 255, .55); }
.dp-bg-navy .dp-fact-v .elementor-heading-title, .dp-ph-full .dp-fact-v .elementor-heading-title { color: #fff; }

/* Grid variants + dark/light card surfaces */
.e-con.dp-feats--4, .e-con.dp-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.e-con.dp-feats--2, .e-con.dp-steps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dp-bg-porc .dp-feats > .e-con, .dp-bg-mist .dp-feats > .e-con, .dp-bg-sky .dp-feats > .e-con { background: #fff; }
.dp-bg-navy .dp-feats > .e-con { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); }
.dp-bg-navy .dp-feat-t .elementor-heading-title { color: #fff; }
.dp-bg-navy .dp-feat-d p { color: rgba(255, 255, 255, .7); }
.dp-bg-navy .dp-feat-ic svg { stroke: #fff; }
.dp-bg-navy .dp-steps > .e-con { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); box-shadow: none; }
.dp-bg-navy .dp-step-t .elementor-heading-title { color: #fff; }
.dp-bg-navy .dp-step-d p { color: rgba(255, 255, 255, .7); }
.dp-bg-navy .dp-step-n .elementor-heading-title { color: var(--dp-gold); }

/* Vertical timeline */
.e-con.dp-tl { position: relative; gap: 0 !important; }
.e-con.dp-tl::before { content: ""; position: absolute; left: 27px; top: 10px; bottom: 10px; width: 1px; background: linear-gradient(180deg, var(--dp-gold), var(--dp-blue)); opacity: .55; }
.dp-tl > .e-con { position: relative; padding: 0 0 38px 84px !important; }
.dp-tl > .e-con:last-child { padding-bottom: 0 !important; }
.dp-tl-n { position: absolute !important; left: 0; top: 0; width: 56px !important; }
.dp-tl-n .elementor-heading-title { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 1px solid var(--dp-line); font: 500 15px/1 var(--dp-font-display); color: var(--dp-blue); box-shadow: 0 10px 24px -14px rgba(11, 27, 58, .3); }
.dp-tl-t .elementor-heading-title { font: 600 21px/1.3 var(--dp-font-display); letter-spacing: -.015em; color: var(--dp-navy); }
.dp-tl-d p { margin: 0; font: 400 16px/1.65 var(--dp-font-body); color: var(--dp-graphite); max-width: 60ch; }

/* Sticky stacking cards */
.dp-stack { gap: 24px !important; }
.dp-stack > .e-con { position: sticky; top: 108px; }
.e-con.dp-scard { min-height: clamp(300px, 44vh, 400px); padding: 44px !important; border-radius: 32px; background: #fff; border: 1px solid var(--dp-line); box-shadow: 0 30px 60px -40px rgba(11, 27, 58, .35); justify-content: space-between; }
.e-con.dp-scard--sky { background: var(--dp-sky); border-color: transparent; }
.e-con.dp-scard--navy { background: var(--dp-navy); border-color: transparent; }
.dp-scard-n .elementor-heading-title { font: 200 clamp(64px, 7vw, 110px)/.85 var(--dp-font-display); letter-spacing: -.06em; color: var(--dp-gold); }
.dp-scard-t .elementor-heading-title { font: 600 clamp(24px, 2.4vw, 34px)/1.15 var(--dp-font-display); letter-spacing: -.025em; color: var(--dp-navy); }
.dp-scard-d p { margin: 0; font: 400 17px/1.65 var(--dp-font-body); color: var(--dp-graphite); max-width: 56ch; }
.dp-scard--navy .dp-scard-t .elementor-heading-title { color: #fff; }
.dp-scard--navy .dp-scard-d p { color: rgba(255, 255, 255, .72); }

/* Comparison table */
.dp-compare { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 24px; }
.dp-compare table { width: 100%; min-width: 640px; margin: 0; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--dp-line); border-radius: 24px; overflow: hidden; font: 400 15px/1.5 var(--dp-font-body); color: var(--dp-graphite); }
.dp-compare table tr:nth-child(n) > th, .dp-compare table tr:nth-child(n) > td { padding: 18px 20px; text-align: left; vertical-align: top; background: #fff; border: 0; border-bottom: 1px solid var(--dp-line); }
.dp-compare table tbody tr:last-child > * { border-bottom: 0; }
.dp-compare table thead tr:nth-child(n) > th { font: 600 14px/1.3 var(--dp-font-display); color: var(--dp-navy); background: var(--dp-mist); }
.dp-compare table thead tr:nth-child(n) > th.is-hl { background: var(--dp-navy); color: #fff; }
.dp-compare table tbody tr:nth-child(n) > th { width: 22%; font: 600 14px/1.4 var(--dp-font-display); color: var(--dp-navy); }
.dp-compare table tbody tr:nth-child(n) > td.is-hl { background: #F4F8FF; color: var(--dp-navy); }

/* Checklists */
.e-con.dp-checks { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px !important; }
.dp-checks > .e-con { width: auto !important; --width: auto; padding: 34px !important; border-radius: 26px; background: #fff; border: 1px solid var(--dp-line); }
.dp-checks > .e-con.dp-check--alt { background: var(--dp-porcelain); }
.dp-check-h .elementor-heading-title { font: 600 20px/1.3 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.dp-list li { position: relative; margin: 0; padding-left: 36px; font: 400 16px/1.55 var(--dp-font-body); color: var(--dp-graphite); }
.dp-list li::before { content: ""; position: absolute; left: 0; top: 0; width: 23px; height: 23px; border-radius: 50%; background: var(--dp-sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%231747A6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2l2.4 2.3 4.6-5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.dp-list--info li::before { background: #FBF3E6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23C9A15B' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 2.8v.1M6 5.4v3.8'/%3E%3C/svg%3E") center / 12px no-repeat; }

/* Aftercare panel */
.e-con.dp-care { border-radius: 32px; background: var(--dp-sky); padding: 48px !important; }
.dp-care-list ol { list-style: none; counter-reset: c; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 44px; }
.dp-care-list li { counter-increment: c; position: relative; margin: 0; padding-left: 46px; font: 400 15.5px/1.6 var(--dp-font-body); color: var(--dp-graphite); }
.dp-care-list li::before { content: counter(c, decimal-leading-zero); position: absolute; left: 0; top: 1px; font: 500 14px/1.6 var(--dp-font-display); letter-spacing: .06em; color: var(--dp-gold); }
.dp-care-list li strong { display: block; margin-bottom: 3px; font: 600 16px/1.4 var(--dp-font-display); color: var(--dp-navy); }

/* Doctor mini */
.e-con.dp-docmini { border-radius: 32px; background: #fff; border: 1px solid var(--dp-line); padding: 36px !important; }
.dp-docmini-img img { width: 132px !important; height: 132px !important; max-width: none; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.dp-docmini-q .elementor-heading-title { font: 400 clamp(20px, 1.9vw, 26px)/1.4 var(--dp-font-display); letter-spacing: -.015em; color: var(--dp-navy); }

/* Related treatments */
.e-con.dp-related { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px !important; }
.dp-related > .e-con { width: auto !important; --width: auto; padding: 26px 28px !important; border-radius: 22px; background: #fff; border: 1px solid var(--dp-line); text-decoration: none; transition: transform .5s var(--dp-ease-out), box-shadow .5s var(--dp-ease-out), border-color .3s; }
.dp-related > .e-con:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(11, 27, 58, .35); border-color: rgba(23, 71, 166, .2); }
.dp-rel-g .elementor-heading-title { font: 600 11.5px/1 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold); }
.dp-rel-t .elementor-heading-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 600 20px/1.25 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-rel-t .elementor-heading-title::after { content: ""; flex: none; width: 18px; height: 18px; background: currentColor; opacity: .5; -webkit-mask: var(--dp-arrow) center / contain no-repeat; mask: var(--dp-arrow) center / contain no-repeat; transition: transform .4s var(--dp-ease-out), opacity .3s; }
.dp-related > .e-con:hover .dp-rel-t .elementor-heading-title::after { transform: translateX(4px); opacity: 1; }

/* CTA band */
.e-con.dp-cta-band { border-radius: 36px; padding: clamp(40px, 6vw, 80px) !important; overflow: hidden; background: radial-gradient(ellipse at 0% 0%, rgba(201, 161, 91, .25), rgba(201, 161, 91, 0) 45%), radial-gradient(ellipse at 100% 100%, rgba(23, 71, 166, .6), rgba(23, 71, 166, 0) 55%), var(--dp-navy); }
.dp-cta-band .dp-h2 .elementor-heading-title { color: #fff; }
.dp-cta-band .dp-lead p { color: rgba(255, 255, 255, .72); }
.dp-btn-white .elementor-button { background: #fff !important; color: var(--dp-navy) !important; }
.dp-btn-white .elementor-button:hover { background: var(--dp-sky) !important; }

/* Option cards on inner pages reuse the treatment-card look */
.e-con.dp-opts { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px !important; }
.e-con.dp-opts.dp-opts--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dp-opts > .e-con.dp-tcard { width: auto !important; --width: auto; min-height: 0; }
.dp-tag .elementor-heading-title { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--dp-sky); font: 600 11.5px/1 var(--dp-font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--dp-blue); }
.dp-tcard--navy .dp-tag .elementor-heading-title { background: rgba(201, 161, 91, .18); color: var(--dp-gold); }

/* Pinned scenes anywhere */
@media (min-width: 1025px) { .dp-motion:not(.dp-soft) .e-con.dp-scene { min-height: 100vh; justify-content: center; } }

@media (max-width: 1024px) {
	.e-con.dp-feats--4, .e-con.dp-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-con.dp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dp-facts > .e-con:nth-child(3) { border-left: 0; padding-left: 0 !important; }
	.dp-facts > .e-con:nth-child(n+3) { margin-top: 16px !important; border-top: 1px solid var(--dp-line); }
	.e-con.dp-opts, .e-con.dp-related { grid-template-columns: 1fr 1fr; }
	.e-con.dp-checks { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.e-con.dp-feats--4, .e-con.dp-feats--2, .e-con.dp-steps--2, .e-con.dp-steps--4, .e-con.dp-opts, .e-con.dp-opts.dp-opts--2, .e-con.dp-related { grid-template-columns: 1fr; }
	.e-con.dp-ph-media { height: 400px; }
	.e-con.dp-ph-panel { border-radius: 26px; }
	.dp-ph-stack > .e-con { height: 220px; }
	.dp-ph-stack > .e-con:nth-child(2) { margin-top: 28px !important; }
	.e-con.dp-scard { min-height: 0; padding: 28px !important; border-radius: 24px; }
	.dp-stack > .e-con { top: 84px; }
	.e-con.dp-care { padding: 28px !important; border-radius: 24px; }
	.dp-care-list ol { grid-template-columns: 1fr; }
	.e-con.dp-docmini { padding: 24px !important; border-radius: 24px; }
	.dp-docmini-img img { width: 96px !important; height: 96px !important; }
	.dp-art { width: min(100%, 300px); }
	.dp-fact-v .elementor-heading-title { font-size: 16px; }
	.dp-facts > .e-con { padding: 16px 12px 0 0 !important; }
	.dp-facts > .e-con + .e-con { padding-left: 14px !important; }
	.dp-tl > .e-con { padding-left: 70px !important; }
	.dp-checks > .e-con { padding: 24px !important; }
	.e-con.dp-cta-band { border-radius: 26px; }
}

/* ---------- Inner page QA fixes ---------- */
.dp-art svg { stroke-width: 2; }
.dp-art svg * { vector-effect: non-scaling-stroke; }
.dp-scene-media .dp-art { width: min(80%, 420px); }
.dp-ph-num .elementor-heading-title { font-size: clamp(80px, 10vw, 150px); }
.e-con .dp-docmini-img { flex: 0 0 132px !important; width: 132px !important; }
.dp-docmini-img img { max-width: none !important; }
.dp-sec-hs .dp-hscroll-track { gap: 20px !important; padding: 6px max(20px, calc((100vw - 1216px) / 2)) 6px !important; }
.dp-tcard .dp-list li { font-size: 15px; }
.dp-tcard--navy .dp-list li, .dp-tcard--blue .dp-list li { color: rgba(255, 255, 255, .78); }
.dp-tcard--navy .dp-list li::before { background-color: rgba(255, 255, 255, .1); }
@media (max-width: 767px) { .e-con .dp-docmini-img { flex-basis: 96px !important; width: 96px !important; } }
/* White header over dark or photo heroes (until the page scrolls) */
body:has(.dp-page-hero.dp-bg-navy, .dp-ph-full) .dp-header:not(.is-scrolled) .dp-logo img { filter: brightness(0) invert(1); }
body:has(.dp-page-hero.dp-bg-navy, .dp-ph-full) .dp-header:not(.is-scrolled) .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item { color: #fff !important; }
body:has(.dp-page-hero.dp-bg-navy, .dp-ph-full) .dp-header:not(.is-scrolled) .elementor-menu-toggle { color: #fff !important; }
body:has(.dp-page-hero.dp-bg-navy, .dp-ph-full) .dp-header:not(.is-scrolled) .elementor-menu-toggle svg { fill: #fff !important; }
body:has(.dp-page-hero.dp-bg-navy, .dp-ph-full) .dp-header:not(.is-scrolled) .dp-open-status { background: rgba(255, 255, 255, .14); color: #fff; }
.e-con.dp-ph-full::after { background: linear-gradient(90deg, rgba(11, 27, 58, .62) 0%, rgba(11, 27, 58, .18) 65%), linear-gradient(180deg, rgba(11, 27, 58, .35) 0%, rgba(11, 27, 58, 0) 30%, rgba(11, 27, 58, .85) 100%); }
.dp-ph-panel .dp-h1 .elementor-heading-title { font-size: clamp(38px, 4.4vw, 66px); }
/* ---------- Hub, gallery, contact, booking and legal pages ---------- */
.dp-rel-d p { margin: 0; font: 400 14.5px/1.55 var(--dp-font-body); color: var(--dp-graphite); }
.e-con.dp-gallery { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 15vw, 230px); gap: 14px !important; }
.dp-gallery > .e-con { width: auto !important; --width: auto; grid-column: span 4; grid-row: span 2; }
.dp-gallery > .e-con.dp-g--wide { grid-column: span 8; }
.dp-gallery > .e-con.dp-g--half { grid-column: span 6; }
.dp-gallery > .e-con.dp-g--tall { grid-row: span 3; }
.dp-map { height: clamp(320px, 40vw, 480px); border-radius: 28px; overflow: hidden; border: 1px solid var(--dp-line); background: var(--dp-mist); }
.dp-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.e-con.dp-form-card { background: #fff; border-radius: 28px; border: 1px solid var(--dp-line); padding: 40px !important; box-shadow: 0 40px 80px -50px rgba(11, 27, 58, .35); }
.e-con.dp-side-card { border-radius: 28px; padding: 34px !important; background: radial-gradient(ellipse at 100% 0%, rgba(23, 71, 166, .5), rgba(23, 71, 166, 0) 60%), var(--dp-navy); }
.dp-side-card .dp-h3 .elementor-heading-title { font: 600 22px/1.25 var(--dp-font-display); color: #fff; letter-spacing: -.015em; }
.dp-side-card .dp-info p a { color: #fff; }
.dp-side-card .dp-hours li { color: rgba(255, 255, 255, .75); border-color: rgba(255, 255, 255, .1); font-size: 14.5px; padding: 9px 0; }
.dp-side-card .dp-hours li.is-today { color: #fff; font-weight: 600; }
.dp-side-card .dp-hours-note { color: rgba(255, 255, 255, .55); }
.dp-side-card .dp-open-status { background: rgba(29, 138, 97, .18); color: #7BE0B5; }
.dp-form-card .dp-h3 .elementor-heading-title { font: 600 26px/1.2 var(--dp-font-display); color: var(--dp-navy); letter-spacing: -.02em; }
.dp-prose { max-width: 780px; }
.dp-prose h2 { margin: 44px 0 12px; font: 600 24px/1.25 var(--dp-font-display); letter-spacing: -.015em; color: var(--dp-navy); }
.dp-prose h2:first-child { margin-top: 0; }
.dp-prose p, .dp-prose li { font: 400 16.5px/1.75 var(--dp-font-body); color: var(--dp-graphite); }
.dp-prose p { margin: 0 0 14px; }
.dp-prose ul { margin: 0 0 16px; padding-left: 20px; }
.dp-prose a { color: var(--dp-blue); }
.dp-faq-group .elementor-heading-title { font: 600 12.5px/1 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold); }
@media (max-width: 767px) {
	.e-con.dp-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: 10px !important; }
	.dp-gallery > .e-con { grid-column: span 1; grid-row: span 1; }
	.dp-gallery > .e-con.dp-g--wide, .dp-gallery > .e-con.dp-g--half { grid-column: span 2; grid-row: span 2; }
	.dp-gallery > .e-con.dp-g--tall { grid-row: span 2; }
	.e-con.dp-form-card, .e-con.dp-side-card { padding: 24px !important; border-radius: 22px; }
}
.dp-docmini > .e-con { flex: 1 1 0 !important; width: auto !important; --width: auto; min-width: 0; }
.e-con.dp-reels-section { overflow: hidden; }
/* Hover bridge: keeps the Treatments mega menu open while the pointer travels from the menu item down to the panel */
.dp-header .elementor-nav-menu--main .dp-mega > .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 44px; background: transparent; }
.dp-header .elementor-nav-menu--main .dp-mega > .sub-menu::before { height: 56px; }
.dp-header .elementor-nav-menu--main .dp-mega > a { position: relative; z-index: 3; }
.dp-header .elementor-nav-menu--main .dp-mega > .sub-menu { z-index: 2 !important; }
/* Floating dock + footer icons: beat the Kit's global link colour (blue text on the blue button made it invisible) */
.dp-dock a.dp-dock__cta, .dp-dock a.dp-dock__cta:hover, .dp-dock a.dp-dock__cta:focus { color: #fff; }
.dp-dock a.dp-dock__item, .dp-dock a.dp-dock__item:hover, .dp-dock a.dp-dock__item:focus { color: var(--dp-navy); }
.dp-dock .dp-dock__bar a, .dp-dock .dp-dock__bar a:hover { color: var(--dp-navy); }
.dp-dock .dp-dock__bar a.is-book, .dp-dock .dp-dock__bar a.is-book:hover { color: #fff; }
.dp-footer .dp-fsocial a, .dp-footer .dp-fsocial a:hover { color: #fff; }
/* Header: keep the menu on one line at every desktop width (the longer "Closed now · opens …" pill pushed "Contact" onto a second line) */
@media (min-width: 1025px) {
	.dp-header .elementor-nav-menu--main > .elementor-nav-menu { flex-wrap: nowrap !important; }
	.dp-header .dp-nav { min-width: 0; }
	.dp-header .dp-open-status { white-space: nowrap; }
}
@media (min-width: 1025px) and (max-width: 1439px) {
	.dp-header .dp-cta .elementor-widget-shortcode { display: none !important; }
	.dp-header .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item { padding-left: 11px !important; padding-right: 11px !important; }
}
@media (min-width: 1025px) and (max-width: 1199px) {
	.dp-header .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item { padding-left: 8px !important; padding-right: 8px !important; font-size: 12.5px !important; }
	.dp-header .dp-logo img { width: 150px !important; }
	.dp-header .dp-cta .elementor-button { padding: 13px 20px !important; font-size: 14px !important; }
}
@media (min-width: 1440px) {
	.e-con.dp-header { --content-width: 1400px !important; }
	.dp-header .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item { padding-left: 12px !important; padding-right: 12px !important; }
}
.dp-header .dp-open-status { max-width: 250px; }
.dp-header .dp-open-status .dp-open-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* ---------- Client round 1: flags, eyebrow with trailing line, 5-step visit, map in booking ---------- */
.dp-flags { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.dp-flags svg { display: block; width: auto; height: 18px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(11, 27, 58, .12), 0 2px 6px -2px rgba(11, 27, 58, .25); }
.dp-deg .dp-flags svg { height: 16px; }
.dp-eyebrow-both .elementor-heading-title::after { content: ""; width: 72px; height: 1px; background: linear-gradient(90deg, var(--dp-blue), rgba(23, 71, 166, 0)); flex: none; }
.e-con.dp-steps.dp-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px !important; }
.dp-steps--5 > .e-con { padding: 26px 22px !important; }
.dp-steps--5 .dp-step-n .elementor-heading-title { font-size: 48px; }
.dp-steps--5 .dp-step-t .elementor-heading-title { font-size: 18px; }
.dp-steps--5 .dp-step-d p { font-size: 14.5px; }
.dp-sec-book .dp-map { height: 260px; border-color: rgba(255, 255, 255, .14); }
@media (max-width: 1024px) {
	.e-con.dp-steps.dp-steps--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.e-con.dp-steps.dp-steps--5 { grid-template-columns: 1fr; }
	.dp-eyebrow-both .elementor-heading-title::after { width: 40px; }
}
.dp-fb { width: 100%; max-width: 500px; margin: 0 auto; border-radius: 24px; overflow: hidden; background: #fff; border: 1px solid var(--dp-line); box-shadow: 0 30px 60px -40px rgba(11, 27, 58, .35); }
.dp-fb iframe { display: block; width: 100%; max-width: 500px; height: 640px; border: 0; }
@media (min-width: 768px) { .dp-sec-treatments .dp-tlist a { padding: 8px 0; } }
@media (max-width: 767px) { .dp-fb iframe { height: 560px; } }
@media (min-width: 1025px) { .e-con.dp-sec-treatments { padding-top: clamp(48px, 7vh, 72px) !important; padding-bottom: 32px !important; } }

/* ---------- Client round 2: emergency band, real results ---------- */
.dp-emg-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; color: #FF9A8F !important; }
.dp-emg-eyebrow .elementor-heading-title::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: #FF5A4F; animation: dpPulse 1.8s var(--dp-ease) infinite; }
@keyframes dpPulse { 0% { box-shadow: 0 0 0 0 rgba(255, 90, 79, .55); } 70% { box-shadow: 0 0 0 10px rgba(255, 90, 79, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 90, 79, 0); } }
.dp-emg-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dp-emg-chips span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); color: rgba(255, 255, 255, .86); font: 500 13px/1.2 var(--dp-font-body); }
.dp-page-hero .dp-emg-chips { margin-top: 4px; }
.dp-bg-porc .dp-emg-chips span, .dp-bg-white .dp-emg-chips span { border-color: var(--dp-line); background: #fff; color: var(--dp-navy); }
.e-con.dp-results { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px !important; }
.dp-results > .e-con { width: auto !important; --width: auto; max-width: none; }
.e-con.dp-result { background: #fff; border: 1px solid var(--dp-line); border-radius: 28px; overflow: hidden; padding: 0 !important; box-shadow: var(--dp-shadow-sm); transition: transform .5s var(--dp-ease-out), box-shadow .5s var(--dp-ease-out); }
.e-con.dp-result:hover { transform: translateY(-4px); box-shadow: var(--dp-shadow); }
.dp-result .elementor-widget-image, .dp-result .elementor-widget-image .elementor-widget-container { margin: 0; line-height: 0; }
.dp-result .elementor-widget-image img { display: block; width: 100% !important; max-width: none; height: auto !important; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; background: var(--dp-mist); }
.e-con.dp-result-body { padding: 20px 22px 24px !important; }
.dp-result-tag .elementor-heading-title { font: 600 11px/1.2 var(--dp-font-display); letter-spacing: .12em; text-transform: uppercase; color: var(--dp-blue); }
.dp-result-t .elementor-heading-title { font: 600 20px/1.25 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-result-d p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--dp-graphite); }
.dp-result .dp-result-d a { color: var(--dp-blue); font-weight: 600; text-decoration: none; }
.dp-results-note p { margin: 0; font-size: 13px; color: var(--dp-graphite); opacity: .85; }
@media (prefers-reduced-motion: reduce) {
	.dp-emg-eyebrow .elementor-heading-title::before { animation: none; }
}
@media (max-width: 1024px) {
	.e-con.dp-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.e-con.dp-results { grid-template-columns: 1fr; gap: 16px !important; }
	.dp-emg-chips span { font-size: 12.5px; min-height: 32px; padding: 0 12px; }
}
.e-con.dp-cta-band > .e-con.dp-btns { --width: auto; flex: 0 0 auto; }
.dp-cta-band .dp-emg-chips span { border-color: rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); color: rgba(255, 255, 255, .86); }
.dp-result--left .elementor-widget-image img { object-position: 0 50%; }
.dp-slot-zirconia-a img, .dp-slot-zirconia-b img { object-position: 0 50%; }
@media (max-width: 767px) {
	.e-con.dp-results { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px !important; }
	.e-con.dp-results::-webkit-scrollbar { display: none; }
	.dp-results > .e-con { scroll-snap-align: start; }
	.dp-slot-about-team img { object-position: 20% 50%; }
}
.dp-slot-about-team img { object-position: 20% 50%; }
/* ---------- Facebook photo mosaic (replaces the page-plugin iframe) ---------- */
.dp-fbgrid { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 14px; text-decoration: none; }
.dp-fbgrid__i { display: block; position: relative; overflow: hidden; border-radius: 24px; background: var(--dp-mist); border: 1px solid rgba(11, 27, 58, .06); box-shadow: 0 24px 60px -30px rgba(11, 27, 58, .35); aspect-ratio: 4 / 3; }
.dp-fbgrid__i--tall { grid-row: 1 / span 2; aspect-ratio: auto; }
.dp-fbgrid__i img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform .9s var(--dp-ease-out); }
.dp-fbgrid__i--left img { object-position: 0 50%; }
.dp-fbgrid:hover .dp-fbgrid__i img { transform: scale(1.04); }
.dp-fbgrid .dp-fbgrid__badge { position: absolute; left: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: rgba(250, 250, 248, .88); -webkit-backdrop-filter: blur(14px) saturate(130%); backdrop-filter: blur(14px) saturate(130%); color: var(--dp-navy); font: 600 12.5px/1 var(--dp-font-display); letter-spacing: .01em; box-shadow: var(--dp-shadow-sm); }
.dp-fbgrid .dp-fbgrid__badge i { font-style: normal; color: var(--dp-blue); }
@media (max-width: 767px) {
	.dp-fbgrid { gap: 10px; }
	.dp-fbgrid__i { border-radius: 18px; }
	.dp-fbgrid .dp-fbgrid__badge { left: 10px; bottom: 10px; padding: 8px 12px; font-size: 11.5px; }
}
.e-con > .elementor-widget.dp-fbgrid-wrap { width: 100%; max-width: 580px; }
.dp-fbgrid { width: 100%; }
.dp-fbgrid .dp-fbgrid__i img { width: 100% !important; height: 100% !important; }
/* ---------- Preview loops on video cards ---------- */
.dp-reel__btn video.dp-loop, .dp-ba--video video.dp-loop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .6s var(--dp-ease); pointer-events: none; }
.dp-reel__btn video.dp-loop.is-on, .dp-ba--video video.dp-loop.is-on { opacity: 1; }
.dp-reel__btn .dp-reel__shade, .dp-reel__btn .dp-reel__play, .dp-reel__btn .dp-reel__meta { z-index: 1; }
.dp-reels--landscape .dp-reel__btn img { animation: dpDrift 16s var(--dp-ease) infinite alternate; }
.dp-reels--landscape .dp-reel:nth-child(2n) .dp-reel__btn img { animation-delay: -6s; }
@keyframes dpDrift { from { transform: scale(1.02) translate3d(0, 0, 0); } to { transform: scale(1.12) translate3d(-2%, -1.5%, 0); } }
.dp-reels--landscape .dp-reel__btn:not([disabled]):hover img { animation-play-state: paused; }

/* ---------- Before & after gallery ---------- */
.dp-bas { position: relative; }
.dp-bas__track { list-style: none; margin: 0; padding: 4px 0 10px; display: flex; gap: 24px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.dp-bas__track::-webkit-scrollbar { display: none; }
.dp-bas__card { flex: 0 0 min(560px, 82vw); scroll-snap-align: start; display: flex; flex-direction: column; gap: 18px; margin: 0; }
.dp-ba { --pos: 50%; position: relative; display: block; width: 100%; aspect-ratio: 3 / 2; padding: 0; border: 0; border-radius: 28px; overflow: hidden; background: var(--dp-navy); box-shadow: 0 30px 70px -34px rgba(11, 27, 58, .5); isolation: isolate; -webkit-user-select: none; user-select: none; }
.dp-ba .dp-ba__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.dp-ba__before { position: absolute; inset: 0; z-index: 1; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.dp-ba__handle { position: absolute; top: 0; bottom: 0; left: var(--pos); z-index: 2; width: 2px; margin-left: -1px; background: rgba(255, 255, 255, .92); pointer-events: none; }
.dp-ba__handle i { position: absolute; top: 50%; left: 50%; width: 54px; height: 54px; margin: -27px 0 0 -27px; border-radius: 50%; background: rgba(255, 255, 255, .94); box-shadow: 0 12px 34px -8px rgba(11, 27, 58, .5); transition: transform .3s var(--dp-ease-out); }
.dp-ba__handle i::before, .dp-ba__handle i::after { content: ""; position: absolute; top: 50%; width: 8px; height: 8px; margin-top: -4px; border: solid var(--dp-navy); border-width: 0 0 2px 2px; }
.dp-ba__handle i::before { left: 15px; transform: rotate(45deg); }
.dp-ba__handle i::after { right: 15px; transform: rotate(-135deg); }
.dp-ba:hover .dp-ba__handle i { transform: scale(1.08); }
.dp-ba__range { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; background: transparent; touch-action: pan-y; }
.dp-ba__range:focus-visible + * { outline: none; }
.dp-ba:focus-within { outline: 3px solid var(--dp-blue); outline-offset: 3px; }
.dp-ba__tag { position: absolute; top: 16px; z-index: 2; padding: 8px 12px; border-radius: 999px; background: rgba(11, 27, 58, .58); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: #fff; font: 600 11px/1 var(--dp-font-display); letter-spacing: .12em; text-transform: uppercase; pointer-events: none; }
.dp-ba__tag--b { left: 16px; }
.dp-ba__tag--a { right: 16px; background: rgba(255, 255, 255, .88); color: var(--dp-navy); }
.dp-ba--video { cursor: pointer; }
.dp-ba--video .dp-ba__img { transition: transform 1.2s var(--dp-ease-out); }
.dp-ba--video:hover .dp-ba__img { transform: scale(1.05); }
.dp-ba--video .dp-reel__shade, .dp-ba--video .dp-reel__play { z-index: 1; }
.dp-bas__cap { display: flex; flex-direction: column; gap: 6px; padding: 0 6px; }
.dp-bas__cat { font: 600 11px/1.2 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-blue); }
.dp-bas__cap strong { font: 600 21px/1.25 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-bas__txt { font-size: 15px; line-height: 1.55; color: var(--dp-graphite); }
.dp-bas .dp-bas__link { align-self: flex-start; margin-top: 2px; font: 600 14px/1.2 var(--dp-font-display); color: var(--dp-blue); text-decoration: none; }
.dp-bas .dp-bas__link::after { content: " \2192"; }
.dp-bas__foot { display: flex; align-items: center; gap: 24px; margin-top: 26px; }
.dp-bas__bar { flex: 1; height: 2px; overflow: hidden; border-radius: 2px; background: var(--dp-line); }
.dp-bas__bar span { display: block; height: 100%; background: var(--dp-navy); transform: scaleX(.1); transform-origin: 0 50%; transition: transform .3s var(--dp-ease-out); }
.dp-bas__nav { display: flex; gap: 10px; }
.dp-bas__arrow { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid var(--dp-line); border-radius: 50%; background: #fff; color: var(--dp-navy); cursor: pointer; transition: background .3s, color .3s, border-color .3s, opacity .3s; }
.dp-bas__arrow:hover:not(:disabled) { background: var(--dp-navy); border-color: var(--dp-navy); color: #fff; }
.dp-bas__arrow:disabled { opacity: .35; cursor: default; }
.dp-bas__arrow svg { width: 20px; height: 20px; }
.dp-bas.is-static .dp-bas__foot { display: none; }
.e-con .dp-tvlink { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 4px; color: var(--dp-navy); font: 500 15px/1 var(--dp-font-display); text-decoration: none; }
.e-con .dp-tvlink span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--dp-sky); color: var(--dp-blue); transition: transform .3s var(--dp-ease-out); }
.e-con .dp-tvlink span svg { width: 14px; height: 14px; margin-left: 2px; }
.e-con .dp-tvlink:hover span { transform: scale(1.1); }
@media (prefers-reduced-motion: reduce) {
	.dp-reels--landscape .dp-reel__btn img { animation: none; }
}
@media (max-width: 767px) {
	.dp-bas__track { gap: 14px; }
	.dp-bas__card { flex-basis: 86vw; }
	.dp-ba { aspect-ratio: 4 / 3; border-radius: 22px; }
	.dp-ba__handle i { width: 46px; height: 46px; margin: -23px 0 0 -23px; }
	.dp-ba__tag { top: 12px; padding: 7px 10px; font-size: 10px; }
	.dp-ba__tag--b { left: 12px; }
	.dp-ba__tag--a { right: 12px; }
	.dp-bas__cap strong { font-size: 18px; }
	.dp-bas__nav { display: none; }
}
/* ---------- Journal: listing ---------- */
.dp-posts { position: relative; }
.dp-posts .dp-posts__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 44px; }
.dp-posts .dp-posts__filters a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border: 1px solid var(--dp-line); border-radius: 999px; background: #fff; color: var(--dp-navy); font: 500 14px/1 var(--dp-font-display); text-decoration: none; transition: background .3s, color .3s, border-color .3s; }
.dp-posts .dp-posts__filters a:hover { border-color: var(--dp-navy); }
.dp-posts .dp-posts__filters a.is-active { background: var(--dp-navy); border-color: var(--dp-navy); color: #fff; }
.dp-post { display: flex; flex-direction: column; gap: 20px; margin: 0; }
.dp-post__media { display: block; position: relative; overflow: hidden; border-radius: 26px; aspect-ratio: 16 / 10; background: var(--dp-mist); }
.dp-post__media img, .dp-post__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transition: transform 1.1s var(--dp-ease-out); }
.dp-post:hover .dp-post__img { transform: scale(1.04); }
.dp-post__body { display: flex; flex-direction: column; gap: 10px; }
.dp-post__cat { font: 600 11px/1.2 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-blue); }
.dp-post__title { margin: 0; font: 600 22px/1.25 var(--dp-font-display); letter-spacing: -.015em; color: var(--dp-navy); }
.dp-posts .dp-post__title a { color: var(--dp-navy); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--dp-ease-out), color .3s; }
.dp-posts .dp-post:hover .dp-post__title a { background-size: 100% 1px; }
.dp-post__excerpt { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--dp-graphite); }
.dp-post__meta { font: 500 12.5px/1.2 var(--dp-font-display); letter-spacing: .02em; color: var(--dp-graphite); opacity: .85; }
.dp-post--featured { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; gap: 56px; margin-bottom: 64px; }
.dp-post--featured .dp-post__media { aspect-ratio: 16 / 11; border-radius: 32px; }
.dp-post--featured .dp-post__title { font-size: clamp(28px, 3vw, 42px); line-height: 1.12; letter-spacing: -.025em; }
.dp-post--featured .dp-post__excerpt { font-size: 17px; }
.dp-posts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 28px; }
.dp-posts__empty { font-size: 17px; color: var(--dp-graphite); }

/* ---------- Journal: article ---------- */
body.dp-article-page .site-main, body.dp-article-page #content { max-width: none; width: 100%; margin: 0; padding: 0; }
body.dp-article-page .page-content { margin: 0; padding: 0; }
body.dp-article-page { background: var(--dp-porcelain); }
.dp-article { padding: clamp(128px, 13vw, 176px) 20px 0; }
.dp-article__head { max-width: 860px; margin: 0 auto; }
.dp-article .dp-crumb { margin: 0; font: 500 13px/1.3 var(--dp-font-display); letter-spacing: .01em; color: var(--dp-graphite); }
.dp-article .dp-crumb a { color: inherit; text-decoration: none; transition: color .3s; }
.dp-article .dp-crumb a:hover { color: var(--dp-blue); }
.dp-article__title { margin: 18px 0 22px; font: 600 clamp(36px, 5vw, 66px)/1.05 var(--dp-font-display); letter-spacing: -.03em; color: var(--dp-navy); }
.dp-article__lead { max-width: 760px; margin: 0 0 26px; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.6; color: var(--dp-graphite); }
.dp-article__meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.dp-article__meta span { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border: 1px solid var(--dp-line); border-radius: 999px; background: #fff; font: 500 12.5px/1 var(--dp-font-display); color: var(--dp-navy); }
.dp-article__cover { position: relative; max-width: 1200px; margin: clamp(36px, 5vw, 60px) auto 0; overflow: hidden; border-radius: 32px; aspect-ratio: 16 / 8; background: var(--dp-mist); box-shadow: 0 40px 90px -50px rgba(11, 27, 58, .45); }
.dp-article__cover img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.dp-article__body { max-width: 720px; margin: clamp(44px, 6vw, 76px) auto 0; }
.dp-prose > *:first-child { margin-top: 0; }
.dp-prose p, .dp-prose li { font-size: 18px; line-height: 1.75; color: #3D4553; }
.dp-prose p { margin: 0 0 22px; }
.dp-prose h2 { margin: 56px 0 16px; font: 600 clamp(25px, 2.5vw, 32px)/1.2 var(--dp-font-display); letter-spacing: -.02em; color: var(--dp-navy); }
.dp-prose h3 { margin: 32px 0 8px; font: 600 20px/1.3 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-prose ul, .dp-prose ol { margin: 0 0 26px; padding-left: 1.3em; }
.dp-prose li { margin: 8px 0; padding-left: 4px; }
.dp-prose li::marker { color: var(--dp-blue); font-weight: 600; }
.dp-prose strong { color: var(--dp-navy); font-weight: 600; }
.dp-article .dp-prose a { color: var(--dp-blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.dp-article .dp-prose a:hover { color: var(--dp-navy); }
.dp-prose table { width: 100%; margin: 8px 0 30px; border-collapse: separate; border-spacing: 0; border: 1px solid var(--dp-line); border-radius: 18px; overflow: hidden; background: #fff; font-size: 15.5px; }
.dp-prose th, .dp-prose td { padding: 14px 16px; border-bottom: 1px solid var(--dp-line); text-align: left; vertical-align: top; color: #3D4553; }
.dp-prose thead th { background: var(--dp-sky); color: var(--dp-navy); font: 600 14px/1.3 var(--dp-font-display); }
.dp-prose tbody th { color: var(--dp-navy); font-weight: 600; white-space: nowrap; }
.dp-prose tr:last-child th, .dp-prose tr:last-child td { border-bottom: 0; }
.dp-callout { margin: 30px 0; padding: 22px 24px; border-radius: 20px; border: 1px solid rgba(23, 71, 166, .16); background: var(--dp-sky); font-size: 16.5px; line-height: 1.65; color: #3D4553; }
.dp-callout strong { color: var(--dp-navy); }
.dp-callout--warn { border-color: rgba(255, 90, 79, .28); background: #FFF3F1; }
.dp-post-video { margin: 34px 0; }
.dp-post-video__btn { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 22px; overflow: hidden; background: var(--dp-navy); cursor: pointer; box-shadow: 0 30px 70px -40px rgba(11, 27, 58, .5); }
.dp-post-video__btn img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; transition: transform 1.1s var(--dp-ease-out); }
.dp-post-video__btn:hover img { transform: scale(1.04); }
.dp-post-video figcaption { margin-top: 12px; font-size: 14px; line-height: 1.5; color: var(--dp-graphite); }
.dp-article__note { margin: 44px 0 0; padding-top: 22px; border-top: 1px solid var(--dp-line); font-size: 14px !important; line-height: 1.6 !important; color: var(--dp-graphite) !important; }
.dp-article__cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; max-width: 1000px; margin: 72px auto 0; padding: 36px 40px; border-radius: 30px; background: radial-gradient(ellipse at 0% 0%, rgba(201, 161, 91, .22), rgba(201, 161, 91, 0) 45%), radial-gradient(ellipse at 100% 100%, rgba(23, 71, 166, .55), rgba(23, 71, 166, 0) 55%), var(--dp-navy); color: #fff; }
.dp-article__cta strong { display: block; margin-bottom: 6px; font: 600 24px/1.2 var(--dp-font-display); letter-spacing: -.015em; color: #fff; }
.dp-article__cta span { font-size: 15.5px; line-height: 1.6; color: rgba(255, 255, 255, .72); }
.dp-article__btns { display: flex; flex-wrap: wrap; gap: 12px; flex: none; }
.dp-article .dp-article__btns .dp-btn--primary { background: #fff; color: var(--dp-navy); box-shadow: none; }
.dp-article .dp-article__btns .dp-btn--primary:hover { background: var(--dp-sky); color: var(--dp-navy); }
.dp-article .dp-article__btns .dp-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .3); }
.dp-article .dp-article__btns .dp-btn--ghost:hover { border-color: #fff; color: #fff; }
.dp-article__more { max-width: 1200px; margin: 104px auto 0; padding-bottom: 120px; }
.dp-article__more > h2 { margin: 0 0 36px; font: 600 clamp(28px, 3vw, 40px)/1.1 var(--dp-font-display); letter-spacing: -.025em; color: var(--dp-navy); }
@media (max-width: 1024px) {
	.dp-posts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dp-post--featured { grid-template-columns: 1fr; gap: 28px; }
	.dp-article__cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
	.dp-posts__grid { grid-template-columns: 1fr; gap: 40px; }
	.dp-posts .dp-posts__filters { flex-wrap: nowrap; overflow-x: auto; margin: 0 0 32px; scrollbar-width: none; }
	.dp-posts .dp-posts__filters::-webkit-scrollbar { display: none; }
	.dp-posts .dp-posts__filters a { flex: none; }
	.dp-post__media, .dp-post--featured .dp-post__media { border-radius: 22px; }
	.dp-article { padding-top: 116px; }
	.dp-article__cover { border-radius: 22px; aspect-ratio: 4 / 3; }
	.dp-prose p, .dp-prose li { font-size: 17px; }
	.dp-prose table { display: block; overflow-x: auto; }
	.dp-article__cta { padding: 28px 24px; border-radius: 24px; }
	.dp-article__more { margin-top: 80px; padding-bottom: 96px; }
}
@media (min-width: 1025px) and (max-width: 1119px) {
	.dp-header .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item { padding-left: 6px !important; padding-right: 6px !important; }
	.dp-header .dp-logo img { width: 138px !important; }
	.dp-header .dp-cta .elementor-button { padding: 12px 16px !important; }
}
.dp-bas button.dp-ba, .dp-prose button.dp-post-video__btn { border: 0; border-radius: 28px; padding: 0; background: var(--dp-navy); color: #fff; text-transform: none; letter-spacing: 0; box-shadow: 0 30px 70px -34px rgba(11, 27, 58, .5); }
.dp-prose button.dp-post-video__btn { border-radius: 22px; }
@media (max-width: 767px) { .dp-bas button.dp-ba { border-radius: 22px; } }
.dp-onair .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.dp-onair .elementor-heading-title::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: #E5484D; animation: dpPulse 1.8s var(--dp-ease) infinite; }
.dp-sec-tv .dp-emg-chips { margin-top: -8px; }
@media (prefers-reduced-motion: reduce) { .dp-onair .elementor-heading-title::before { animation: none; } }
@media (max-width: 1024px) { .dp-reels--landscape .dp-reel { flex-basis: 84vw; max-width: 460px; } }
/* ---------- Doctor hero: training list ---------- */
.dp-trainings { list-style: none; margin: 4px 0 6px; padding: 0; max-width: 600px; border-top: 1px solid var(--dp-line); }
.dp-trainings li { display: flex; align-items: center; gap: 14px; margin: 0; padding: 13px 0; border-bottom: 1px solid var(--dp-line); }
.dp-trainings li::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 2px; background: var(--dp-gold); transform: rotate(45deg); }
.dp-trainings__t { flex: 1 1 auto; font: 500 15.5px/1.4 var(--dp-font-body); color: var(--dp-navy); }
.dp-trainings__p { flex: none; padding: 6px 12px; border: 1px solid var(--dp-line); border-radius: 999px; background: #fff; font: 600 11.5px/1 var(--dp-font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--dp-graphite); white-space: nowrap; }
@media (max-width: 767px) {
	.dp-trainings li { flex-wrap: wrap; gap: 8px 12px; padding: 12px 0; }
	.dp-trainings__t { flex-basis: calc(100% - 22px); font-size: 15px; }
	.dp-trainings__p { margin-left: 21px; }
}

/* ---------- Video card badge (e.g. Live on TV · Full episode) ---------- */
.dp-reel__badge { position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px 8px 10px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; background: rgba(11, 27, 58, .6); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); color: #fff; font: 600 11px/1 var(--dp-font-display); letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
.dp-reel__badge i { flex: none; width: 7px; height: 7px; border-radius: 50%; background: #E5484D; animation: dpPulse 1.8s var(--dp-ease) infinite; }
@media (prefers-reduced-motion: reduce) { .dp-reel__badge i { animation: none; } }
@media (max-width: 767px) { .dp-reel__badge { top: 10px; left: 10px; padding: 7px 10px 7px 9px; font-size: 10px; } }

/* ---------- Floating intro video bubble (Clinic settings → Site features) ---------- */
.dp-intro { --dp-intro-size: 64px; position: fixed; left: 24px; bottom: 24px; z-index: 9989; opacity: 0; visibility: hidden; transform: translateY(18px) scale(.92); transform-origin: 0 100%; transition: opacity .5s var(--dp-ease), transform .7s var(--dp-ease-out), visibility .5s, bottom .6s var(--dp-ease-out); }
.dp-intro.is-in { opacity: 1; visibility: visible; transform: none; }
.dp-intro.is-off { display: none; }
html.dp-noscroll .dp-intro.is-in, body:has(.elementor-menu-toggle.elementor-active) .dp-intro.is-in { opacity: 0; visibility: hidden; }
body .dp-intro button.dp-intro__btn { position: relative; display: flex; align-items: center; gap: 0; width: auto; height: auto; margin: 0; padding: 7px; border: 1px solid rgba(255, 255, 255, .75); border-radius: 999px; background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%); box-shadow: 0 22px 48px -20px rgba(11, 27, 58, .5), 0 2px 6px rgba(11, 27, 58, .06); color: var(--dp-navy); font-family: var(--dp-font-body); text-align: left; cursor: pointer; transition: box-shadow .35s, transform .45s var(--dp-ease-out), background-color .3s; }
body .dp-intro button.dp-intro__btn:hover, body .dp-intro button.dp-intro__btn:focus { background: rgba(255, 255, 255, .96); color: var(--dp-navy); transform: translateY(-2px); box-shadow: 0 28px 56px -22px rgba(11, 27, 58, .55), 0 2px 6px rgba(11, 27, 58, .06); }
body .dp-intro button.dp-intro__btn:focus-visible { outline: 3px solid var(--dp-blue); outline-offset: 3px; }

/* Photo: a gold ring with a light that keeps travelling around it, and a slow living zoom */
.dp-intro__face { position: relative; flex: none; width: var(--dp-intro-size); height: var(--dp-intro-size); border-radius: 50%; isolation: isolate; }
.dp-intro__face::before { content: ""; position: absolute; inset: -4px; z-index: 1; padding: 2.5px; border-radius: 50%; background: conic-gradient(from 0deg, rgba(201, 161, 91, .38) 0deg, rgba(201, 161, 91, .38) 190deg, #E3C68A 250deg, #FFF8E6 292deg, var(--dp-gold) 322deg, rgba(201, 161, 91, .38) 360deg); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude; animation: dpIntroSpin 3.6s linear infinite; pointer-events: none; }
.dp-intro__face::after { content: ""; position: absolute; inset: -4px; z-index: -1; border-radius: 50%; animation: dpIntroGlow 3.6s ease-in-out infinite; pointer-events: none; }
.dp-intro__pic { position: absolute; inset: 0; overflow: hidden; border: 2.5px solid #fff; border-radius: 50%; background: var(--dp-mist); }
.dp-intro__pic img, .dp-intro__pic video { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; max-width: none; margin: 0; border: 0; border-radius: 0; object-fit: cover; }
.dp-intro__pic img { transform-origin: 50% 42%; animation: dpIntroKen 10s ease-in-out infinite alternate; }
.dp-intro__pic video { opacity: 0; transition: opacity .6s var(--dp-ease); }
.dp-intro.has-vid .dp-intro__pic video { opacity: 1; }
.dp-intro__wave { position: absolute; inset: -4px; z-index: -1; border: 1.5px solid rgba(201, 161, 91, .55); border-radius: 50%; opacity: 0; pointer-events: none; }
.dp-intro.is-compact:not(:hover) .dp-intro__wave { animation: dpIntroWave 3.6s cubic-bezier(.2, .6, .35, 1) infinite; }
.dp-intro.is-compact:not(:hover) .dp-intro__wave + .dp-intro__wave { animation-delay: 1.8s; }
.dp-intro__play { position: absolute; right: -3px; bottom: -1px; z-index: 2; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--dp-navy); color: #fff; box-shadow: 0 0 0 2px #fff; animation: dpIntroTap 3.6s ease-in-out infinite; }
.dp-intro__play svg { width: 11px; height: 11px; margin-left: 2px; }

/* Label: a tiny "speaking" equaliser and a soft glint of light */
.dp-intro__txt { position: relative; display: flex; flex-direction: column; gap: 4px; max-width: 230px; padding: 0 18px 0 15px; overflow: hidden; white-space: nowrap; opacity: 1; transition: max-width .55s var(--dp-ease-out), padding .55s var(--dp-ease-out), opacity .35s; }
.dp-intro__txt::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 70%; background: linear-gradient(100deg, rgba(255, 255, 255, 0) 15%, rgba(255, 255, 255, .85) 50%, rgba(255, 255, 255, 0) 85%); transform: translateX(-160%); animation: dpIntroGlint 6s ease-in-out 1.5s infinite; pointer-events: none; }
.dp-intro__txt small { display: inline-flex; align-items: center; gap: 7px; font: 600 10.5px/1.1 var(--dp-font-display); letter-spacing: .12em; text-transform: uppercase; color: #A5803F; }
.dp-intro__eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 10px; }
.dp-intro__eq i { display: block; width: 2px; height: 100%; border-radius: 1px; background: currentColor; transform: scaleY(.45); transform-origin: 50% 100%; animation: dpIntroEq 1.05s ease-in-out infinite; }
.dp-intro__eq i:nth-child(2) { animation-delay: -.42s; }
.dp-intro__eq i:nth-child(3) { animation-delay: -.78s; }
.dp-intro__txt strong { font: 600 15px/1.15 var(--dp-font-display); letter-spacing: -.01em; color: var(--dp-navy); }
.dp-intro.is-compact .dp-intro__txt { max-width: 0; padding: 0; opacity: 0; }
.dp-intro.is-compact.is-peek .dp-intro__txt { max-width: 230px; padding: 0 18px 0 15px; opacity: 1; }
@media (hover: hover) { .dp-intro.is-compact:hover .dp-intro__txt { max-width: 230px; padding: 0 18px 0 15px; opacity: 1; } }
body .dp-intro button.dp-intro__x { position: absolute; top: -6px; right: -6px; z-index: 3; display: grid; place-items: center; width: 24px; height: 24px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--dp-navy); color: #fff; box-shadow: 0 6px 14px -6px rgba(11, 27, 58, .6); cursor: pointer; opacity: 0; transform: scale(.8); transition: opacity .25s, transform .3s var(--dp-ease-out), background-color .2s; }
body .dp-intro button.dp-intro__x:hover, body .dp-intro button.dp-intro__x:focus { background: var(--dp-blue); color: #fff; }
body .dp-intro button.dp-intro__x svg { width: 12px; height: 12px; }
.dp-intro:hover .dp-intro__x, .dp-intro:focus-within .dp-intro__x { opacity: 1; transform: none; }
@media (hover: none) { body .dp-intro button.dp-intro__x { opacity: 1; transform: none; } }
@keyframes dpIntroSpin { to { transform: rotate(360deg); } }
@keyframes dpIntroGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(201, 161, 91, 0), 0 0 14px 0 rgba(201, 161, 91, .12); } 50% { box-shadow: 0 0 0 5px rgba(201, 161, 91, .16), 0 0 22px 2px rgba(201, 161, 91, .3); } }
@keyframes dpIntroWave { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }
@keyframes dpIntroKen { from { transform: scale(1.02); } to { transform: scale(1.15); } }
@keyframes dpIntroTap { 0%, 76%, 100% { transform: scale(1); } 84% { transform: scale(1.18); } 92% { transform: scale(.96); } }
@keyframes dpIntroGlint { 0% { transform: translateX(-160%); } 34%, 100% { transform: translateX(200%); } }
@keyframes dpIntroEq { 0%, 100% { transform: scaleY(.35); } 50% { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) {
	/* Calmer for people who reduce motion: no zoom or ripples, a slower light around the ring. */
	.dp-intro__pic img, .dp-intro.is-compact:not(:hover) .dp-intro__wave { animation: none; }
	.dp-intro__face::before { animation-duration: 7s; }
	.dp-intro__eq i { animation-duration: 1.6s; }
}
@media (max-width: 767px) {
	.dp-intro { --dp-intro-size: 52px; left: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); }
	.dp-dock.is-visible ~ .dp-intro { bottom: calc(86px + env(safe-area-inset-bottom)); }
	.dp-intro__txt { gap: 3px; padding: 0 14px 0 12px; }
	.dp-intro.is-compact.is-peek .dp-intro__txt { padding: 0 14px 0 12px; }
	.dp-intro__txt strong { font-size: 14px; }
}

/* ---------- "Watch intro" chip on photos: Elementor button, CSS class dp-play-chip, attribute data-dp-intro-open|1 ---------- */
.e-con.dp-doc-figure, .e-con.dp-ph-wrap { position: relative; }
.elementor-element.elementor-widget-button.dp-play-chip { position: absolute !important; z-index: 4; width: auto !important; max-width: calc(100% - 28px); margin: 0 !important; }
.dp-doc-figure > .dp-play-chip { right: 22px; bottom: 22px; }
.dp-ph-wrap > .dp-play-chip { left: 22px; bottom: 22px; }
.dp-play-chip .elementor-button { display: inline-flex !important; align-items: center; gap: 12px; padding: 7px 20px 7px 7px !important; border: 1px solid rgba(255, 255, 255, .7) !important; border-radius: 999px !important; background: rgba(250, 250, 248, .88) !important; -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%); box-shadow: 0 18px 40px -18px rgba(11, 27, 58, .45) !important; color: var(--dp-navy) !important; fill: var(--dp-navy) !important; font: 600 14px/1 var(--dp-font-display) !important; letter-spacing: -.005em !important; text-transform: none !important; transition: transform .45s var(--dp-ease-out), box-shadow .3s !important; }
.dp-play-chip .elementor-button::before { content: ""; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--dp-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23fff'/%3E%3C/svg%3E") 56% 50% / 15px no-repeat; box-shadow: 0 0 0 0 rgba(23, 71, 166, .35); animation: dpChipPing 2.6s var(--dp-ease-out) infinite; }
.dp-play-chip .elementor-button:hover, .dp-play-chip .elementor-button:focus { transform: translateY(-2px); box-shadow: 0 24px 48px -20px rgba(11, 27, 58, .5) !important; color: var(--dp-navy) !important; background: #fff !important; }
@keyframes dpChipPing { 0% { box-shadow: 0 0 0 0 rgba(23, 71, 166, .35); } 70%, 100% { box-shadow: 0 0 0 12px rgba(23, 71, 166, 0); } }
@media (prefers-reduced-motion: reduce) { .dp-play-chip .elementor-button::before { animation: none; } }
@media (max-width: 767px) {
	.dp-doc-figure > .dp-play-chip { right: 14px; bottom: 14px; }
	.dp-ph-wrap > .dp-play-chip { left: 14px; bottom: 14px; }
	.dp-play-chip .elementor-button { gap: 10px; padding: 6px 16px 6px 6px !important; font-size: 13px !important; }
	.dp-play-chip .elementor-button::before { width: 32px; height: 32px; background-size: 13px; }
}

/* ---------- Patients from around the world (dp-world): native Elementor cards ---------- */
.e-con.dp-world { gap: 28px; }
.e-con.dp-world-head { gap: 10px; }
.dp-world-title .elementor-heading-title { font: 600 clamp(24px, 2.4vw, 32px)/1.15 var(--dp-font-display); letter-spacing: -.02em; color: var(--dp-navy); }
.dp-world-sub p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--dp-graphite); }
.e-con.dp-world-track { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.e-con.dp-world-track.dp-world-track--wide { grid-template-columns: minmax(0, 1.9fr) repeat(3, minmax(0, 1fr)); }
.e-con.dp-world-card { position: relative; overflow: hidden; aspect-ratio: 4 / 5; width: auto !important; --width: auto; padding: 0 !important; border-radius: 26px; background: var(--dp-mist); isolation: isolate; box-shadow: 0 26px 60px -34px rgba(11, 27, 58, .45); }
.e-con.dp-world-card.dp-world-card--wide { aspect-ratio: auto; }
.dp-world-card > .elementor-widget-image { position: absolute !important; inset: 0; width: 100% !important; height: 100%; margin: 0 !important; }
.dp-world-card > .elementor-widget-image .elementor-widget-container, .dp-world-card > .elementor-widget-image a { display: block; height: 100%; }
.dp-world-card > .elementor-widget-image img { display: block; width: 100% !important; height: 100% !important; max-width: none; border-radius: 0; object-fit: cover; object-position: 50% 30%; transition: transform 1.2s var(--dp-ease-out); }
.dp-world-card:hover > .elementor-widget-image img { transform: scale(1.05); }
.e-con.dp-world-card::after { content: ""; position: absolute; inset: auto 0 0; z-index: 1; height: 45%; background: linear-gradient(180deg, rgba(11, 27, 58, 0), rgba(11, 27, 58, .55)); pointer-events: none; }
.e-con.dp-world-chip { position: absolute !important; left: 14px; bottom: 14px; z-index: 2; width: auto !important; --width: auto; flex-direction: row !important; align-items: center; gap: 10px; padding: 8px 16px 8px 8px !important; border: 1px solid rgba(255, 255, 255, .7); border-radius: 999px; background: rgba(250, 250, 248, .9); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); box-shadow: 0 12px 30px -14px rgba(11, 27, 58, .45); }
.dp-world-chip .elementor-widget-image { width: auto !important; margin: 0 !important; line-height: 0; }
.dp-world-chip .elementor-widget-image img { display: block; width: auto !important; height: 20px !important; max-width: none; border-radius: 4px; box-shadow: 0 0 0 1px rgba(11, 27, 58, .1); }
.dp-world-chip .dp-world-flag--pennant img { height: 24px !important; border-radius: 0; box-shadow: none; }
.dp-world-country .elementor-heading-title { margin: 0; font: 600 15px/1.1 var(--dp-font-display); letter-spacing: -.005em; color: var(--dp-navy); white-space: nowrap; }
.e-con.dp-world-card.dp-world-cta { justify-content: flex-end; gap: 14px; padding: 28px !important; background: radial-gradient(ellipse at 100% 0%, rgba(201, 161, 91, .28), rgba(201, 161, 91, 0) 55%), radial-gradient(ellipse at 0% 100%, rgba(23, 71, 166, .6), rgba(23, 71, 166, 0) 60%), var(--dp-navy); }
.e-con.dp-world-card.dp-world-cta::after { display: none; }
.dp-world-cta .dp-world-cta-k .elementor-heading-title { font: 600 11px/1.2 var(--dp-font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--dp-gold); }
.dp-world-cta .dp-world-cta-t .elementor-heading-title { font: 600 clamp(20px, 1.8vw, 24px)/1.25 var(--dp-font-display); letter-spacing: -.015em; color: #fff; }
.dp-world-cta .dp-world-cta-btn .elementor-button { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px !important; border: 0 !important; border-radius: 999px !important; background: #fff !important; color: var(--dp-navy) !important; font: 600 14px/1 var(--dp-font-display) !important; }
.dp-world-cta .dp-world-cta-btn .elementor-button:hover { background: var(--dp-sky) !important; color: var(--dp-navy) !important; }
@media (max-width: 1024px) {
	.e-con.dp-world-track, .e-con.dp-world-track.dp-world-track--wide { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 14px; margin-right: -20px; padding-right: 20px !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.e-con.dp-world-track::-webkit-scrollbar { display: none; }
	.e-con.dp-world-card { flex: 0 0 min(40vw, 300px) !important; scroll-snap-align: start; }
	.e-con.dp-world-card.dp-world-card--wide { flex-basis: min(76vw, 560px) !important; }
}
@media (max-width: 767px) {
	.e-con.dp-world-card { flex-basis: 66vw !important; border-radius: 22px; }
	.e-con.dp-world-card.dp-world-card--wide { flex-basis: 86vw !important; }
	.e-con.dp-world-card.dp-world-cta { padding: 22px !important; }
	.e-con.dp-world-chip { left: 12px; bottom: 12px; padding: 7px 14px 7px 7px !important; }
}

.dp-intro.is-in.is-away { opacity: 0; visibility: hidden; transform: translateY(18px) scale(.92); }
