@import url("site-appointment-cardiology.css");
@import url("site-footer-modern.css?v=20260714-2");

/* Primeiro botão com o mesmo padrão visual do botão de agendamento. */
.header-cta{
    min-height:54px;
    padding:0 30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    background:linear-gradient(120deg,#aa0e2c 0%,#dc1e39 42%,#ff4b55 72%,#bf1031 100%);
    background-size:220% 220%;
    color:#fff;
    box-shadow:0 11px 28px rgba(211,22,53,.34);
    text-shadow:0 1px 2px rgba(95,0,20,.2);
}
.header-cta::before{top:-75%;bottom:-75%;width:30%}
.header-cta::after{opacity:.22}
.header-cta:hover,.header-cta:focus-visible{
    background:linear-gradient(120deg,#87091f,#d50f2f 48%,#ff5138);
    box-shadow:0 14px 34px rgba(211,22,53,.46);
}
.header-cta:hover::after,.header-cta:focus-visible::after{opacity:.38}

/* Cabeçalho móvel seguro: nenhum controle pode ser empurrado para fora da tela. */
html,body{max-width:100%;overflow-x:hidden}
@supports(overflow:clip){html,body{overflow-x:clip}}
img,svg,video{max-width:100%}
@media(max-width:780px){
    .site-header{right:0;left:0;width:100%;max-width:100vw}
    .header-inner.site-container{
        width:calc(100% - 24px);
        max-width:none;
        margin-inline:12px;
        display:grid;
        grid-template-columns:minmax(0,1fr) 42px 42px;
        gap:8px;
        overflow:visible;
    }
    .desktop-nav,.header-cta{display:none!important}
    .site-brand{
        min-width:0;
        width:clamp(142px,48vw,190px);
        max-width:100%;
        height:auto;
        aspect-ratio:1033/281;
        margin:0;
        justify-self:start;
        overflow:hidden;
    }
    .site-brand img{
        position:absolute;
        top:-112%;
        left:-21%;
        width:149%;
        height:auto;
        max-width:none;
        max-height:none;
    }
    .site-theme-toggle{display:block;width:42px;margin:0}
    .mobile-menu-button{position:relative;z-index:102;width:42px;min-width:42px;margin:0;display:block}
    .mobile-nav{right:0;left:0;width:100%;max-width:100vw;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
    main,section,.site-container,.hero-inner,.hero-copy,.funeral-heading,.funeral-showcase{min-width:0;max-width:100%}
}
@media(max-width:380px){
    .header-inner.site-container{width:calc(100% - 18px);margin-inline:9px;grid-template-columns:minmax(0,1fr) 39px 39px;gap:6px}
    .site-brand{width:clamp(142px,48vw,175px);height:auto}
    .site-theme-toggle{width:39px}
    .mobile-menu-button{width:39px;min-width:39px;height:39px;padding:8px}
}

/* Leitura confortável no celular sem alterar a tipografia do desktop. */
@media(max-width:780px){
    html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
    body.menu-open{height:100dvh;overflow:hidden}
    .mobile-nav{
        position:fixed;
        inset:0;
        z-index:101;
        width:100%;
        max-width:none;
        height:100dvh;
        padding:96px max(16px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
        display:flex;
        align-items:center;
        flex-direction:column;
        overflow-x:hidden;
        overflow-y:auto;
        overscroll-behavior:contain;
        background:rgba(244,251,252,.93);
        backdrop-filter:blur(20px) saturate(135%);
        -webkit-backdrop-filter:blur(20px) saturate(135%);
        animation:mobile-menu-in .24s ease-out;
    }
    .mobile-nav[hidden]{display:none}
    [data-theme="dark"] .mobile-nav{background:rgba(16,27,34,.94)}
    .mobile-nav::before{
        position:fixed;
        top:-130px;
        right:-120px;
        z-index:-1;
        width:330px;
        height:330px;
        border:1px solid rgba(8,191,196,.2);
        border-radius:50%;
        content:"";
        box-shadow:0 0 0 65px rgba(8,191,196,.035),0 0 0 130px rgba(101,200,50,.025);
        pointer-events:none;
    }
    .mobile-nav a{
        width:min(100%,560px);
        margin:0 auto 9px;
        padding:16px 18px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        border:1px solid var(--line);
        border-radius:14px;
        background:var(--surface-solid);
        background:color-mix(in srgb,var(--surface-solid) 78%,transparent);
        color:var(--ink);
        box-shadow:0 9px 24px rgba(4,88,149,.055);
        font-size:16px!important;
        line-height:1.35;
        text-decoration:none;
    }
    .mobile-nav a::after{color:var(--teal);content:"›";font-size:23px;font-weight:400}
    .mobile-nav a[aria-current="page"]{border-color:var(--teal);color:var(--blue);background:var(--toggle-bg)}
    .mobile-nav a:last-child{
        margin-top:8px;
        padding:17px 18px;
        border:0;
        background:linear-gradient(100deg,var(--blue),var(--teal) 65%,var(--lime));
        color:#fff;
        box-shadow:0 14px 30px rgba(8,120,201,.22);
        text-align:left;
    }
    .mobile-nav a:last-child::after{color:#fff}
    .menu-open .mobile-menu-button{position:relative;z-index:103;border-color:var(--teal);background:var(--surface-solid);box-shadow:0 8px 25px var(--shadow)}
    .section-kicker{font-size:12px!important;line-height:1.4}
    .hero-copy>p{font-size:17px!important;line-height:1.65}
    .hero-trust{font-size:13px!important;line-height:1.45}
    main p{font-size:15px!important;line-height:1.7}
    main li{font-size:14px!important;line-height:1.55}
    main small{font-size:11px!important;line-height:1.45}
    main .button,.text-link,.discount-link{font-size:15px!important;line-height:1.25}

    .feature-grid strong{font-size:16px!important}
    .feature-grid p{font-size:14px!important}
    .steps strong,.care-step h3,.direct-booking__head strong{font-size:16px!important}
    .care-journey__label{font-size:11px!important}
    .care-step em{font-size:10px!important}
    .direct-booking__grid h3{font-size:15px!important}
    .care-journey__note,.direct-booking__head p,.direct-booking__grid p{font-size:13px!important}

    .benefit-card h3,.nr1-card h3,.discount-category h3,.funeral-benefit-grid h3,.funeral-steps h3{font-size:19px!important}
    .nr1-card__body>span,.funeral-option__badge{font-size:10px!important}
    .nr1-source{font-size:13px!important}
    .plan-card h3{font-size:20px!important}
    .plan-card>p{font-size:15px!important}
    .plan-card li{font-size:14px!important}
    .plan-badge{font-size:10px!important}
    .plan-details-button{font-size:14px!important}
    .faq-list summary{font-size:16px!important;line-height:1.4}
    .faq-list details p{font-size:15px!important}
    .appointment-actions>a:not(.button){font-size:14px!important}
    .medical-note,.discount-disclaimer,.funeral-disclaimer,.nr1-disclaimer{font-size:12px!important;line-height:1.6}

    .plan-dialog__header span{font-size:10px!important}
    .plan-dialog__intro p{font-size:15px!important}
    .plan-dialog__columns h3{font-size:16px!important}
    .plan-dialog__columns li{font-size:14px!important}
    .plan-dialog__note{font-size:12px!important}

    .plan-lead__badge small{font-size:10px!important}
    .plan-lead__eyebrow{font-size:11px!important}
    .plan-lead__content>p{font-size:14px!important}
    .plan-lead label span{font-size:13px!important}
    .plan-lead input{font-size:16px!important}
    .plan-lead form small,.plan-lead form em{font-size:11px!important;line-height:1.45}
    .plan-lead form>button,.plan-lead__success button{font-size:14px!important}
    .plan-lead__success p{font-size:14px!important}

    .info-popup__content p{font-size:14px!important}
    .info-popup__button{font-size:14px!important}

    .footer-brand-column>p{font-size:14px!important;line-height:1.65}
    .footer-trust span{font-size:11px!important}
    .footer-column>strong{font-size:12px!important}
    .footer-navigation a{font-size:14px!important}
    .footer-contact>a,.footer-address{font-size:13px!important}
    .footer-contact small,.footer-address small{font-size:10px!important}
    .footer-social-row>span{font-size:11px!important}
    .footer-social-row a{font-size:12px!important}
    .site-footer .footer-bottom{font-size:11px!important;line-height:1.5}
}
@keyframes mobile-menu-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.mobile-nav{animation:none}}
@media(max-width:380px){
    .mobile-nav{padding-top:86px}
    .mobile-nav a{margin-bottom:7px;padding:14px 15px;font-size:15px!important}
}
.reseller-context{display:flex;align-items:center;justify-content:center;gap:10px;min-height:38px;padding:6px 20px;border-bottom:1px solid rgba(4,170,186,.22);color:#164452;background:linear-gradient(90deg,rgba(8,151,213,.1),rgba(24,200,188,.12),rgba(83,210,54,.1));font-size:.82rem}.reseller-context span{display:flex;align-items:center;gap:7px;color:#47717a}.reseller-context span i{width:8px;height:8px;border-radius:50%;background:#55d438;box-shadow:0 0 0 5px rgba(85,212,56,.14)}.reseller-context strong{color:#057fa9}.reseller-context small{padding-left:10px;border-left:1px solid rgba(20,80,90,.2);color:#5c7d84}[data-theme=dark] .reseller-context{color:#d9f3f4;background:linear-gradient(90deg,rgba(7,108,157,.28),rgba(13,160,153,.23),rgba(67,166,50,.18));border-color:rgba(50,207,206,.2)}[data-theme=dark] .reseller-context strong{color:#4edee0}[data-theme=dark] .reseller-context span,[data-theme=dark] .reseller-context small{color:#a9c7cc}@media(max-width:600px){.reseller-context{flex-wrap:wrap;gap:4px 8px;padding:8px 14px;font-size:.9rem}.reseller-context small{flex-basis:100%;padding:0;border:0;text-align:center;font-size:.72rem}}
/* Escala de leitura aprimorada para desktop e tablets maiores. */
@media(min-width:781px){
    .desktop-nav a{font-size:14px;line-height:1.35}
    .header-cta,.button,.text-link{font-size:14px}
    .hero-trust{font-size:13px;line-height:1.5}
    .feature-grid strong{font-size:15px}
    .feature-grid p{font-size:13px;line-height:1.6}
    .plan-card h3{font-size:20px}
    .plan-card>p{font-size:15px;line-height:1.7}
    .plan-card li{font-size:14px;line-height:1.55}
    .plan-badge{font-size:10px}
    .appointment-actions>a:not(.button){font-size:14px}
    .medical-note,.discount-disclaimer,.funeral-disclaimer,.nr1-disclaimer{font-size:12px;line-height:1.6}
}
