:root {
    --primary: #123f92;
    --primary-dark: #0a2b6b;
    --primary-light: #e9f4ff;
    --accent: #bb2731;
    --accent-dark: #921b26;
    --sky: #16a9dc;
    --ink: #12233f;
    --muted: #5d6b7e;
    --surface: #ffffff;
    --soft: #f4f8fc;
    --border: #dfe8f2;
    --success: #168a5b;
    --shadow: 0 18px 60px rgba(15, 50, 105, .12);
    --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.section { padding: 96px 0; }
.skip-link {
    position: fixed; top: -60px; left: 20px; z-index: 9999; padding: 12px 18px;
    border-radius: 0 0 10px 10px; color: #fff; background: var(--primary);
}
.skip-link:focus { top: 0; }
.form-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.essential-header {
    position: relative;
    z-index: 1000;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 1px 0 rgba(15, 50, 105, .08);
}
.essential-header.header--scrolled {
    position: sticky;
    top: 0;
    box-shadow: 0 14px 35px rgba(15, 50, 105, .11);
    animation: essentialHeaderIn .25s ease;
}
@keyframes essentialHeaderIn { from { transform: translateY(-12px); opacity: .4; } }
.essential-header__utility {
    color: #e8f4ff;
    background: var(--primary-dark);
    font-size: .78rem;
}
.essential-header__utility .container,
.essential-header__utility div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.essential-header__utility a,
.essential-header__utility span { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.essential-header__utility .container { min-height: 35px; }
.essential-header__utility i { color: #63d0f0; }
.essential-header__nav .container { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.essential-header__brand { display: flex; width: 176px; height: 78px; align-items: center; text-decoration: none; }
.essential-header__brand img { width: 170px; height: 72px; object-fit: contain; }
.essential-header__menu { display: flex; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
.essential-header__menu .header__menu-link {
    display: block; padding: 12px 8px; color: #283c58; font-size: .89rem; font-weight: 700; text-decoration: none;
}
.essential-header__menu .header__menu-link:hover { color: var(--primary); }
.essential-header__cta {
    display: inline-flex; align-items: center; gap: 9px; padding: 13px 18px; border-radius: 13px;
    color: #fff !important; background: var(--accent); font-size: .9rem; font-weight: 800; text-decoration: none;
    box-shadow: 0 9px 24px rgba(187, 39, 49, .22);
}
.essential-header__cta:hover { background: var(--accent-dark); transform: translateY(-1px); }
.essential-header__toggle { display: none; }

.essential-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    background: #0b2e73;
}
.essential-hero::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: -2%;
    background: url("../img/hero-centro-medico-essencial.webp") 50% 48% / cover no-repeat;
    transform: scale(1.015);
    animation: essentialHeroMovement 22s ease-in-out infinite alternate;
    will-change: transform, background-position;
}
.essential-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 28, 73, .94) 0%, rgba(8, 49, 111, .82) 42%, rgba(7, 58, 112, .38) 72%, rgba(4, 30, 70, .22) 100%),
        linear-gradient(180deg, rgba(0, 23, 61, .12), rgba(0, 23, 61, .24));
}
@keyframes essentialHeroMovement {
    0% { transform: scale(1.015) translate3d(0, 0, 0); background-position: 50% 48%; }
    100% { transform: scale(1.055) translate3d(-.7%, -.5%, 0); background-position: 52% 49%; }
}
.essential-hero__grid { min-height: 610px; display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; gap: 72px; padding-block: 70px; }
.essential-hero__content { position: relative; z-index: 2; }
.essential-eyebrow {
    display: inline-flex; align-items: center; gap: 9px; margin-bottom: 18px;
    color: var(--accent); font-size: .78rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase;
}
.essential-hero .essential-eyebrow { color: #91e3f8; }
.essential-hero h1 { max-width: 650px; margin: 0 0 22px; color: #fff; font-size: clamp(2.45rem, 5vw, 4.35rem); line-height: 1.03; letter-spacing: -.045em; }
.essential-hero h1 em { color: #8fe5f8; font-style: normal; }
.essential-hero__content > p { max-width: 590px; margin: 0 0 32px; color: #dcecff; font-size: 1.12rem; }
.essential-hero__actions { display: flex; flex-wrap: wrap; gap: 13px; }
.btn {
    border: 0; transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
    text-decoration: none;
}
.btn:hover { transform: translateY(-2px); }
.essential-btn--primary { color: #fff; background: var(--accent); box-shadow: 0 14px 30px rgba(6, 22, 66, .25); }
.essential-btn--primary:hover { color: #fff; background: var(--accent-dark); }
.essential-btn--ghost { color: var(--primary); border: 1px solid #cbd9e7; background: #fff; }
.essential-hero .essential-btn--ghost { color: #fff; border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.08); backdrop-filter: blur(10px); }
.essential-hero__trust { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 34px; color: #dcecff; font-size: .84rem; }
.essential-hero__trust span { display: inline-flex; align-items: center; gap: 8px; }
.essential-hero__trust i { color: #7bd8ef; }
.essential-hero__visual { position: relative; min-height: 445px; display: grid; place-items: center; }
.essential-hero__halo {
    position: absolute; width: 390px; height: 390px; border-radius: 46% 54% 60% 40% / 45% 45% 55% 55%;
    background: linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.04)); border: 1px solid rgba(255,255,255,.22);
    box-shadow: inset 0 0 0 34px rgba(255,255,255,.03), 0 50px 80px rgba(3, 23, 66, .22);
    animation: haloFloat 8s ease-in-out infinite;
}
@keyframes haloFloat { 50% { border-radius: 58% 42% 43% 57% / 52% 58% 42% 48%; transform: translateY(-8px) rotate(3deg); } }
.essential-hero__visual > img {
    position: relative; z-index: 1; width: 274px; height: 170px; object-fit: contain; padding: 20px 25px;
    border-radius: 28px; background: rgba(255,255,255,.94); box-shadow: 0 30px 70px rgba(4, 22, 61, .34);
    backdrop-filter: blur(12px);
}
.essential-hero__card {
    position: absolute; z-index: 2; display: flex; align-items: center; gap: 13px; min-width: 225px; padding: 14px 16px;
    color: var(--ink); border: 1px solid rgba(255,255,255,.6); border-radius: 15px; background: rgba(255,255,255,.94);
    box-shadow: 0 18px 46px rgba(4, 28, 73, .21); backdrop-filter: blur(14px);
}
.essential-hero__card i { display: grid; width: 42px; height: 42px; place-items: center; flex: 0 0 auto; color: #fff; border-radius: 12px; background: var(--primary); }
.essential-hero__card span { display: flex; flex-direction: column; font-size: .75rem; color: var(--muted); line-height: 1.4; }
.essential-hero__card strong { color: var(--ink); font-size: .86rem; }
.essential-hero__card--one { left: 0; bottom: 32px; }
.essential-hero__card--two { right: -20px; top: 46px; }
.essential-hero__card--two i { background: var(--accent); }

.essential-shortcuts { position: relative; z-index: 4; margin-top: -34px; }
.essential-shortcuts .container { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.essential-shortcuts a { display: flex; align-items: center; gap: 15px; min-height: 100px; padding: 22px 28px; text-decoration: none; border-right: 1px solid var(--border); }
.essential-shortcuts a:last-child { border: 0; }
.essential-shortcuts a > i:first-child { display: grid; width: 46px; height: 46px; place-items: center; flex: 0 0 auto; color: var(--primary); border-radius: 14px; background: var(--primary-light); }
.essential-shortcuts a > i:last-child { margin-left: auto; color: #9db0c4; font-size: .8rem; }
.essential-shortcuts span { display: flex; flex-direction: column; color: var(--muted); font-size: .82rem; }
.essential-shortcuts strong { color: var(--ink); font-size: 1rem; }
.essential-shortcuts a:hover { background: var(--soft); }

.essential-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.essential-section-heading .essential-eyebrow { margin-bottom: 8px; }
.essential-section-heading h2,
.essential-about h2,
.essential-faq h2 { margin: 0; color: var(--ink); font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.13; letter-spacing: -.035em; }
.essential-section-heading > div > p { max-width: 720px; margin: 12px 0 0; color: var(--muted); line-height: 1.65; }
.essential-section-heading--center { justify-content: center; text-align: center; }
.essential-section-heading--center > div > p { margin-inline: auto; }
.essential-search { display: flex; width: min(380px, 100%); align-items: center; gap: 10px; padding: 0 16px; border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: 0 9px 30px rgba(15,50,105,.07); }
.essential-search i { color: var(--primary); }
.essential-search input { width: 100%; padding: 14px 0; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; }
.essential-specialties { background: var(--soft); }
.essential-specialty-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.essential-specialty-card {
    display: flex; align-items: center; gap: 15px; min-height: 112px; padding: 20px; border: 1px solid var(--border);
    border-radius: 17px; background: #fff; text-decoration: none; box-shadow: 0 8px 26px rgba(15,50,105,.045);
}
.essential-specialty-card:hover { border-color: #a7cae7; transform: translateY(-3px); box-shadow: 0 18px 38px rgba(15,50,105,.11); }
.essential-specialty-card__icon { display: grid; width: 52px; height: 52px; place-items: center; flex: 0 0 auto; color: var(--primary); border-radius: 15px; background: var(--primary-light); font-size: 1.22rem; }
.essential-specialty-card > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.essential-specialty-card h3 { margin: 0; color: var(--ink); font-size: 1rem; line-height: 1.25; }
.essential-specialty-card small { margin-top: 6px; color: var(--muted); line-height: 1.35; }
.essential-specialty-card > i { margin-left: auto; color: var(--accent); font-size: .82rem; }
.essential-specialty-card[hidden] { display: none !important; }
.essential-empty-inline { padding: 30px; text-align: center; color: var(--muted); }
.essential-exams { background: #fff; }
.essential-exam-card .essential-specialty-card__icon { color: var(--accent); background: #fff0f1; }
.exam-preparation {
    display: flex;
    gap: 15px;
    margin: 0 0 30px;
    padding: 20px;
    color: var(--ink);
    border: 1px solid #cddff0;
    border-radius: 15px;
    background: var(--primary-light);
}
.exam-preparation > i { margin-top: 5px; color: var(--primary); font-size: 1.1rem; }
.exam-preparation h2 { margin: 0 0 5px; color: var(--primary); font-size: 1.05rem; }
.exam-preparation p { margin: 0; color: var(--muted); }

.essential-about__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: center; }
.essential-about__visual {
    position: relative; min-height: 440px; display: flex; flex-direction: column; justify-content: end; overflow: hidden;
    padding: 46px; color: #fff; border-radius: 34px 8px 34px 8px; background: linear-gradient(145deg, var(--primary), #0b6fa8);
    box-shadow: var(--shadow);
}
.essential-about__visual::before { content: ""; position: absolute; width: 320px; height: 320px; top: -120px; right: -100px; border: 60px solid rgba(255,255,255,.08); border-radius: 50%; }
.essential-about__mark { display: grid; width: 92px; height: 92px; place-items: center; margin-bottom: auto; border-radius: 28px; background: rgba(255,255,255,.14); font-size: 2.3rem; }
.essential-about__line { width: 58px; height: 4px; margin-bottom: 18px; background: #69d5ed; }
.essential-about__visual > span { position: relative; max-width: 340px; font-size: 1.55rem; font-weight: 800; line-height: 1.3; }
.essential-about__content > p { margin: 22px 0 28px; color: var(--muted); font-size: 1.05rem; }
.essential-values { display: grid; gap: 14px; margin-bottom: 27px; }
.essential-values > div { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 15px; background: var(--soft); }
.essential-values i { display: grid; width: 44px; height: 44px; place-items: center; flex: 0 0 auto; color: var(--primary); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(15,50,105,.07); }
.essential-values span { display: flex; flex-direction: column; color: var(--muted); font-size: .85rem; }
.essential-values h3 { margin: 0; color: var(--ink); font-size: .98rem; line-height: 1.35; }
.essential-text-link { color: var(--primary); font-weight: 800; text-decoration: none; }
.essential-text-link i { margin-left: 7px; font-size: .8em; }

.essential-professionals { background: linear-gradient(180deg, #fff, #f5f9fd); }
.professional-card { overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: 0 12px 35px rgba(15,50,105,.08); }
.professional-card__photo { aspect-ratio: 4/4.35; background: linear-gradient(145deg, #e7f1fb, #f7fafc); }
.professional-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.professional-card__placeholder { height: 100%; display: grid; place-items: center; color: #9bbbd9; font-size: 3.4rem; }
.professional-card__info { padding: 18px !important; text-align: left !important; }
.professional-card__info h3, .professional-card__info h2 { margin: 0 0 4px; color: var(--ink); font-size: 1.02rem; }
.professional-card__info span { display: block; color: var(--primary); font-size: .84rem; font-weight: 700; }
.professional-card__info small { display: block; margin-top: 5px; color: var(--muted); }

.essential-flow { color: #fff; background: var(--primary-dark); }
.essential-flow .essential-eyebrow { color: #67d5ee; }
.essential-flow .essential-section-heading h2 { color: #fff; }
.essential-flow__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.essential-flow__grid > div { position: relative; min-height: 240px; padding: 34px; border: 1px solid rgba(255,255,255,.12); border-radius: 22px; background: rgba(255,255,255,.055); }
.essential-flow__grid > div > span { position: absolute; top: 22px; right: 24px; color: rgba(255,255,255,.17); font-size: 2.4rem; font-weight: 900; }
.essential-flow__grid i { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 26px; color: #fff; border-radius: 17px; background: var(--accent); font-size: 1.3rem; }
.essential-flow__grid h3 { margin: 0 0 8px; color: #fff; }
.essential-flow__grid p { margin: 0; color: #c6d8ec; }

.essential-faq { background: var(--soft); }
.essential-faq__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; align-items: start; }
.essential-faq__grid > div:first-child > p { color: var(--muted); }
.essential-faq__items { display: grid; gap: 12px; }
.essential-faq details { border: 1px solid var(--border); border-radius: 15px; background: #fff; }
.essential-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; cursor: pointer; color: var(--ink); font-weight: 800; list-style: none; }
.essential-faq summary::-webkit-details-marker { display: none; }
.essential-faq summary i { color: var(--accent); transition: transform .2s ease; }
.essential-faq details[open] summary i { transform: rotate(45deg); }
.essential-faq details p { margin: 0; padding: 0 22px 21px; color: var(--muted); }

.essential-final-cta { padding: 68px 0; color: #fff; background: linear-gradient(110deg, var(--primary) 0%, #0e5aab 72%, #138eb7 100%); }
.essential-final-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.essential-final-cta span { color: #83e0f4; font-size: .76rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.essential-final-cta h2 { margin: 6px 0; color: #fff; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.essential-final-cta p { margin: 0; color: #d9e9f8; }

.essential-page-header {
    padding: 72px 0 68px !important; color: #fff;
    background: radial-gradient(circle at 83% 10%, rgba(30,182,224,.27), transparent 25%), linear-gradient(125deg, var(--primary-dark), var(--primary));
}
.essential-page-header .breadcrumb { margin-bottom: 26px; color: #c8dcf1; }
.essential-page-header .breadcrumb a { color: #fff; }
.essential-page-header .essential-eyebrow { color: #71d8ef; }
.essential-page-header h1, .page-header__title { max-width: 830px; margin: 0 0 13px; color: #fff !important; font-size: clamp(2.25rem, 5vw, 3.7rem); letter-spacing: -.04em; line-height: 1.08; }
.essential-page-header p { max-width: 710px; margin: 0; color: #d6e6f5; font-size: 1.08rem; }
.essential-about-page { display: grid; grid-template-columns: 1fr .9fr; gap: 75px; align-items: start; }
.essential-about-page h2 { font-size: 2.7rem; line-height: 1.15; letter-spacing: -.035em; }
.essential-about-page p { color: var(--muted); }
.essential-about-page__principles { display: grid; gap: 15px; }
.essential-about-page__principles article { padding: 24px; border: 1px solid var(--border); border-radius: 18px; background: var(--soft); }
.essential-about-page__principles i { color: var(--accent); font-size: 1.45rem; }
.essential-about-page__principles h3 { margin: 8px 0 3px; }
.essential-about-page__principles p { margin: 0; }

.essential-contact { background: var(--soft); }
.essential-contact__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 42px; align-items: start; }
.essential-contact__form, .essential-contact__info { padding: 38px; border: 1px solid var(--border); border-radius: 24px; background: #fff; box-shadow: 0 14px 45px rgba(15,50,105,.07); }
.essential-contact__form h2, .essential-contact__info h2 { margin: 0 0 24px; color: var(--ink); font-size: 2rem; }
.essential-contact .form-group label { display: block; margin-bottom: 7px; color: var(--ink); font-size: .88rem; font-weight: 800; }
.essential-contact .form-input {
    width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #ccd9e6; border-radius: 11px; color: var(--ink); background: #fbfdff; font: inherit;
}
.essential-contact textarea.form-input { min-height: 125px; resize: vertical; }
.essential-contact .form-input:focus { outline: 3px solid rgba(18,63,146,.12); border-color: var(--primary); }
.essential-contact .form-group small { display: block; margin-top: 6px; color: var(--muted); font-size: .76rem; }
.essential-consent { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 20px; color: var(--muted); font-size: .82rem; }
.essential-consent input { margin-top: 4px; accent-color: var(--primary); }
.essential-consent a { color: var(--primary); }
.essential-contact-card {
    display: flex; align-items: center; gap: 15px; margin-bottom: 12px; padding: 17px; color: var(--ink);
    border: 1px solid var(--border); border-radius: 15px; background: var(--soft); text-decoration: none;
}
.essential-contact-card > i:first-child { display: grid; width: 45px; height: 45px; place-items: center; flex: 0 0 auto; color: var(--primary); border-radius: 13px; background: #fff; }
.essential-contact-card > span { display: flex; flex-direction: column; font-size: .86rem; color: var(--muted); }
.essential-contact-card strong { color: var(--ink); font-size: .94rem; }
.essential-contact-card > i:last-child { margin-left: auto; font-size: .75rem; }
.essential-contact-card--whatsapp { color: #fff; border-color: #138b5f; background: #168f61; }
.essential-contact-card--whatsapp > i:first-child { color: #168f61; }
.essential-contact-card--whatsapp > span, .essential-contact-card--whatsapp strong { color: #fff; }
.essential-info-note { display: flex; gap: 13px; padding: 18px; color: var(--muted); border-radius: 14px; background: var(--primary-light); }
.essential-info-note i { color: var(--primary); margin-top: 5px; }
.essential-info-note p { margin: 0; }

.essential-footer { color: #c8d8e9; background: #071c3f; }
.essential-footer__grid { display: grid; grid-template-columns: 1.15fr .7fr 1fr .9fr; gap: 50px; padding-block: 72px; }
.essential-footer h2 { margin: 0 0 20px; color: #fff; font-size: 1rem; }
.essential-footer ul { margin: 0; padding: 0; list-style: none; }
.essential-footer li { margin-bottom: 10px; }
.essential-footer a { color: #c8d8e9; text-decoration: none; }
.essential-footer a:hover { color: #fff; }
.essential-footer__brand img { width: 150px; height: 90px; object-fit: contain; padding: 8px; border-radius: 12px; background: #fff; }
.essential-footer__brand p { max-width: 300px; font-size: .88rem; }
.essential-footer__social { display: flex; gap: 10px; }
.essential-footer__social a { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 11px; }
.essential-footer__contact li { display: flex; gap: 10px; align-items: flex-start; font-size: .86rem; }
.essential-footer__contact i { width: 18px; margin-top: 5px; color: #64d1ea; }
.essential-footer__action p { font-size: .88rem; }
.essential-footer__map iframe { display: block; width: 100%; height: 280px; border: 0; }
.essential-footer__bottom { padding: 22px 0 calc(22px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,.1); background: #04142f; }
.essential-footer__bottom .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.essential-footer__bottom p { margin: 0; font-size: .78rem; }
.essential-footer__legal { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 18px; font-size: .78rem; }
.essential-footer__developer { white-space: nowrap; }
.essential-footer__developer i { margin: 0 2px; color: #ef6072; font-size: .72rem; }

.mobile-app-nav { display: none; }
.whatsapp-float { bottom: 24px; }
.chatbot { bottom: 95px; }
.back-to-top { display: none !important; }
.alert { display: flex; gap: 10px; align-items: flex-start; border-radius: 12px; }
.alert--info { color: #16467f; border-color: #b9d6f4; background: #edf6ff; }
.empty-state { padding: 60px 20px; border: 1px dashed #b9cadd; border-radius: 20px; color: var(--muted); background: var(--soft); text-align: center; }
.empty-state > i { color: var(--primary); font-size: 2.5rem; }
.empty-state h2 { color: var(--ink); }

body.booking-open { overflow: hidden; }
.booking-dialog {
    position: fixed; z-index: 1400; inset: 0; display: grid; place-items: center; padding: 22px;
}
.booking-dialog__backdrop {
    position: absolute; inset: 0; background: rgba(3, 18, 47, .72); backdrop-filter: blur(7px);
}
.booking-dialog__panel {
    position: relative; z-index: 1; width: min(610px, 100%); max-height: min(94dvh, 850px); overflow: hidden;
    border: 1px solid rgba(255,255,255,.7); border-radius: 22px; background: #efeae2;
    box-shadow: 0 28px 90px rgba(3, 18, 47, .42);
}
.booking-dialog__heading {
    display: flex; min-height: 78px; align-items: center; gap: 12px; padding: 12px 15px;
    color: #fff; background: #075e54;
}
.booking-dialog__avatar { position: relative; display: block; width: 50px; height: 50px; flex: 0 0 auto; }
.booking-dialog__avatar img {
    width: 50px; height: 50px; object-fit: contain; padding: 5px; border-radius: 50%; background: #fff;
}
.booking-dialog__avatar > i {
    position: absolute; right: 1px; bottom: 1px; width: 11px; height: 11px;
    border: 2px solid #075e54; border-radius: 50%; background: #35d072;
}
.booking-dialog__heading > div { min-width: 0; flex: 1; }
.booking-dialog__heading h2 { overflow: hidden; margin: 0 0 3px; color: #fff; font-size: 1rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.booking-dialog__heading div > span { display: flex; align-items: center; gap: 6px; color: #d6f1ec; font-size: .76rem; }
.booking-dialog__heading div > span i { color: #4ee28b; font-size: .45rem; }
.booking-dialog__close {
    display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center;
    color: #fff; border: 0; border-radius: 50%; background: rgba(255,255,255,.1); cursor: pointer;
}
.booking-dialog__close:hover { background: rgba(255,255,255,.2); }
.booking-dialog__progress {
    position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; align-items: center;
    padding: 11px 58px 10px 15px; background: #fff;
}
.booking-dialog__progress > span { height: 4px; border-radius: 8px; background: #d7e1df; transition: background .2s ease; }
.booking-dialog__progress > span.is-active { background: #19a579; }
.booking-dialog__progress strong {
    position: absolute; right: 15px; color: #5c706c; font-size: .72rem; font-weight: 800;
}
.booking-dialog__form {
    max-height: calc(min(94dvh, 850px) - 119px); overflow-y: auto;
    background-color: #efeae2;
    background-image:
        radial-gradient(circle at 20% 20%, rgba(7,94,84,.035) 0 2px, transparent 2.5px),
        radial-gradient(circle at 80% 65%, rgba(7,94,84,.03) 0 2px, transparent 2.5px);
    background-size: 34px 34px, 42px 42px;
}
.booking-dialog__step { padding: 20px 22px 22px; }
.booking-dialog__step[hidden] { display: none; }
.booking-chat__bubble {
    position: relative; width: fit-content; max-width: 88%; margin-bottom: 12px; padding: 10px 12px 7px;
    color: #243b36; border-radius: 4px 13px 13px 13px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.12);
}
.booking-chat__bubble::before {
    position: absolute; top: 0; left: -7px; width: 0; height: 0; content: "";
    border-top: 8px solid #fff; border-left: 8px solid transparent;
}
.booking-chat__bubble p { margin: 0; color: inherit; font-size: .91rem; line-height: 1.5; white-space: pre-line; }
.booking-chat__bubble small { display: block; margin-top: 3px; color: #879a96; font-size: .62rem; text-align: right; }
.booking-chat__bubble--sent {
    margin-left: auto; border-radius: 13px 4px 13px 13px; background: #d9fdd3;
}
.booking-chat__bubble--sent::before {
    right: -7px; left: auto; border-top-color: #d9fdd3; border-right: 8px solid transparent; border-left: 0;
}
.booking-chat__bubble--sent small i { color: #53a6e6; }
.booking-chat__bubble--preview { width: min(92%, 470px); }
.booking-choices, .booking-periods { margin: 18px 0 14px; padding: 0; border: 0; }
.booking-choices legend, .booking-periods legend, .booking-service > label {
    display: block; width: 100%; margin-bottom: 8px; color: #3f5550; font-size: .79rem; font-weight: 850;
}
.booking-choices {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
}
.booking-choices legend { grid-column: 1 / -1; }
.booking-choices label, .booking-periods label { position: relative; cursor: pointer; }
.booking-choices input, .booking-periods input { position: absolute; opacity: 0; pointer-events: none; }
.booking-choices span {
    display: flex; min-height: 76px; align-items: center; justify-content: center; gap: 7px; flex-direction: column;
    padding: 9px 6px; color: #36504a; border: 1px solid #d2dedb; border-radius: 12px; background: rgba(255,255,255,.94);
    box-shadow: 0 2px 6px rgba(20,58,50,.06); transition: .18s ease;
}
.booking-choices span i { color: #128c7e; font-size: 1.18rem; }
.booking-choices span b { font-size: .76rem; }
.booking-choices input:checked + span {
    color: #075e54; border-color: #128c7e; background: #e4f7ef; box-shadow: 0 0 0 3px rgba(18,140,126,.12);
}
.booking-choices input:focus-visible + span, .booking-periods input:focus-visible + span { outline: 3px solid rgba(18,63,146,.25); outline-offset: 2px; }
.booking-service { margin: 14px 0; }
.booking-select, .booking-input { position: relative; }
.booking-select > i, .booking-input > i {
    position: absolute; z-index: 1; top: 50%; left: 14px; color: #128c7e; transform: translateY(-50%);
}
.booking-dialog__form .form-input {
    width: 100%; min-height: 49px; padding: 11px 13px; color: #233b35;
    border: 1px solid #c8d8d4; border-radius: 11px; background: #fff;
}
.booking-select .form-input, .booking-input .form-input { padding-left: 42px; }
.booking-dialog__form .form-input:focus { border-color: #128c7e; outline: 0; box-shadow: 0 0 0 4px rgba(18,140,126,.12); }
.booking-service > small { display: block; margin-top: 6px; color: #61756f; font-size: .69rem; }
.booking-fields {
    margin-top: 15px; padding: 17px; border: 1px solid rgba(255,255,255,.78); border-radius: 15px;
    background: rgba(255,255,255,.78); box-shadow: 0 5px 18px rgba(22,65,55,.08);
}
.booking-fields .form-group { margin-bottom: 13px; }
.booking-fields .form-group > label { display: block; margin-bottom: 6px; color: #3f5550; font-size: .79rem; font-weight: 850; }
.booking-periods { display: flex; flex-wrap: wrap; gap: 7px; }
.booking-periods legend { flex: 0 0 100%; }
.booking-periods legend small { font-weight: 600; }
.booking-periods span {
    display: block; padding: 7px 10px; color: #48605a; border: 1px solid #cedbd7; border-radius: 999px;
    background: #fff; font-size: .7rem; font-weight: 750; transition: .18s ease;
}
.booking-periods input:checked + span { color: #fff; border-color: #128c7e; background: #128c7e; }
.booking-observation { margin: 9px 0 13px; }
.booking-observation summary { color: #075e54; font-size: .77rem; font-weight: 800; cursor: pointer; list-style: none; }
.booking-observation summary::-webkit-details-marker { display: none; }
.booking-observation summary i { margin-right: 4px; }
.booking-observation summary small { color: #667b75; font-weight: 600; }
.booking-observation textarea { min-height: 75px !important; margin-top: 9px; resize: vertical; }
.booking-dialog__consent { margin: 10px 0 0; color: #536862; font-size: .7rem; }
.booking-dialog__consent a { color: #075e54; }
.booking-dialog__error {
    margin: 12px 0 0 !important; padding: 10px 12px; color: #9c1c27 !important;
    border: 1px solid #f0bcc0; border-radius: 10px; background: #fff1f2;
}
.booking-dialog__next, .booking-dialog__send, .booking-dialog__back {
    display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 8px;
    padding: 11px 18px; border: 0; border-radius: 12px; font-size: .86rem; font-weight: 850; cursor: pointer; transition: .18s ease;
}
.booking-dialog__next, .booking-dialog__send {
    margin-top: 14px; color: #fff; background: #128c7e; box-shadow: 0 8px 18px rgba(18,140,126,.22);
}
.booking-dialog__step > .booking-dialog__next { width: 100%; }
.booking-dialog__next:hover, .booking-dialog__send:hover { background: #075e54; transform: translateY(-1px); }
.booking-dialog__back { margin-top: 14px; color: #36504a; border: 1px solid #c8d8d4; background: rgba(255,255,255,.92); }
.booking-dialog__actions { display: grid; grid-template-columns: .75fr 1.25fr; gap: 9px; }
.booking-dialog__actions > * { width: 100%; }
.booking-dialog__notice {
    display: flex; align-items: flex-start; gap: 8px; margin: 17px 0 0; padding: 10px 12px;
    color: #506b64; border-radius: 10px; background: rgba(255,255,255,.72); font-size: .72rem; line-height: 1.45;
}
.booking-dialog__notice i { margin-top: 2px; color: #128c7e; }

@media (max-width: 1050px) {
    .essential-header__utility { display: none; }
    .essential-header__nav .container { min-height: 78px; }
    .essential-header__brand, .essential-header__brand img { width: 145px; height: 65px; }
    .essential-header__toggle { display: flex; }
    .essential-header__menu {
        position: fixed; inset: 78px 0 0 0; display: flex; flex-direction: column; align-items: stretch; gap: 3px;
        padding: 24px; background: #fff; transform: translateX(100%); opacity: 0; visibility: hidden; transition: .25s ease;
    }
    .essential-header__menu.active { transform: translateX(0); opacity: 1; visibility: visible; }
    .essential-header__menu li { width: 100%; }
    .essential-header__menu .header__menu-link { padding: 15px 8px; border-bottom: 1px solid var(--border); font-size: 1rem; }
    .essential-header__cta { justify-content: center; margin-top: 12px; padding: 16px; }
    .essential-hero__grid { grid-template-columns: 1fr; gap: 35px; text-align: center; }
    .essential-hero__content > p { margin-inline: auto; }
    .essential-hero__actions, .essential-hero__trust { justify-content: center; }
    .essential-hero__visual { min-height: 370px; }
    .essential-specialty-grid { grid-template-columns: repeat(2, 1fr); }
    .essential-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
    .essential-hero::before {
        inset: -2%;
        background-position: 52% 50%;
        animation-duration: 25s;
    }
    .essential-hero::after {
        background:
            linear-gradient(180deg, rgba(5, 30, 77, .90) 0%, rgba(7, 55, 113, .72) 50%, rgba(4, 29, 68, .88) 100%),
            linear-gradient(90deg, rgba(0, 27, 67, .45), rgba(0, 27, 67, .26));
    }
    .container { width: min(100% - 28px, 1180px); }
    .section { padding: 64px 0; }
    .essential-hero__grid { min-height: auto; padding: 60px 0 88px; }
    .essential-hero h1 { font-size: 2.55rem; }
    .essential-hero__content > p { font-size: 1rem; }
    .essential-hero__actions { display: grid; }
    .essential-hero__actions .btn { width: 100%; }
    .essential-hero__trust { display: grid; justify-content: start; width: fit-content; margin-inline: auto; text-align: left; }
    .essential-hero__visual { min-height: 330px; }
    .essential-hero__halo { width: 290px; height: 290px; }
    .essential-hero__visual > img { width: 215px; height: 135px; }
    .essential-hero__card { min-width: 190px; padding: 11px; }
    .essential-hero__card--one { left: -4px; bottom: 10px; }
    .essential-hero__card--two { right: -4px; top: 18px; }
    .essential-shortcuts { margin-top: -28px; }
    .essential-shortcuts .container { grid-template-columns: 1fr; border-radius: 17px; }
    .essential-shortcuts a { min-height: 82px; padding: 16px 19px; border-right: 0; border-bottom: 1px solid var(--border); }
    .essential-section-heading { align-items: stretch; flex-direction: column; gap: 19px; }
    .essential-specialty-grid { grid-template-columns: 1fr; }
    .essential-specialty-card { min-height: 98px; }
    .essential-about__grid, .essential-faq__grid, .essential-about-page, .essential-contact__grid { grid-template-columns: 1fr; gap: 38px; }
    .essential-about__visual { min-height: 360px; padding: 32px; }
    .essential-flow__grid { grid-template-columns: 1fr; }
    .essential-flow__grid > div { min-height: auto; }
    .essential-final-cta .container { align-items: stretch; flex-direction: column; text-align: center; }
    .essential-final-cta .btn { width: 100%; }
    .essential-contact__form, .essential-contact__info { padding: 24px 18px; border-radius: 18px; }
    .essential-contact .form-row { grid-template-columns: 1fr; }
    .essential-footer__grid { grid-template-columns: 1fr; gap: 32px; padding-block: 55px; }
    .essential-footer__bottom { padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
    .essential-footer__bottom .container { align-items: flex-start; flex-direction: column; }
    .essential-footer__legal { justify-content: flex-start; }
    .mobile-app-nav {
        position: fixed; z-index: 950; left: 8px; right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); display: grid;
        grid-template-columns: repeat(5, 1fr); min-height: 66px; padding: 7px 5px; border: 1px solid rgba(18,63,146,.14);
        border-radius: 20px; background: rgba(255,255,255,.96); box-shadow: 0 14px 45px rgba(3,28,73,.24); backdrop-filter: blur(18px);
    }
    .mobile-app-nav a { display: flex; align-items: center; justify-content: center; gap: 2px; flex-direction: column; color: #526278; font-size: .65rem; font-weight: 700; text-decoration: none; }
    .mobile-app-nav i { color: var(--primary); font-size: 1rem; }
    .mobile-app-nav__primary { transform: translateY(-18px); }
    .mobile-app-nav__primary i { display: grid; width: 51px; height: 51px; place-items: center; color: #fff; border-radius: 50%; background: #168f61; box-shadow: 0 8px 20px rgba(22,143,97,.32); font-size: 1.35rem; }
    .whatsapp-float, .chatbot { display: none !important; }
    .booking-dialog { place-items: end center; padding: 8px; }
    .booking-dialog__panel { width: 100%; max-height: calc(100dvh - 16px); border-radius: 19px; }
    .booking-dialog__heading { min-height: 70px; padding: 10px 12px; }
    .booking-dialog__avatar, .booking-dialog__avatar img { width: 45px; height: 45px; }
    .booking-dialog__form { max-height: calc(100dvh - 125px); }
    .booking-dialog__step { padding: 16px 13px calc(18px + env(safe-area-inset-bottom)); }
    .booking-chat__bubble { max-width: 94%; }
    .booking-choices { grid-template-columns: repeat(2, 1fr); }
    .booking-choices span { min-height: 64px; flex-direction: row; }
    .booking-fields { padding: 14px 12px; }
    .booking-dialog__actions { grid-template-columns: .8fr 1.2fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
    .essential-hero::before { transform: scale(1.015); }
}

.professional-card { color: inherit; text-decoration: none; }
.professional-card:focus-visible { outline: 3px solid #25d366; outline-offset: 4px; }
.professional-profile { display:grid; grid-template-columns:minmax(240px,360px) 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:start; }
.professional-profile__photo { overflow:hidden; border-radius:24px; background:#eef4fb; min-height:360px; }
.professional-profile__photo img { display:block; width:100%; height:auto; aspect-ratio:8/9; object-fit:cover; }
.professional-profile__registration { display:inline-flex; gap:.55rem; align-items:center; padding:.65rem .9rem; border-radius:999px; background:#eef4fb; color:#123f92; font-weight:700; }
.medical-disclaimer { margin:1.25rem 0; padding:1rem; border-left:4px solid #123f92; background:#f6f9fd; font-size:.92rem; color:#475569; }
@media (max-width:760px) { .professional-profile { grid-template-columns:1fr; } .professional-profile__photo { max-width:360px; min-height:0; margin:auto; } }
