/* =========================================================
   SIPAMED-25 | Fluxo de adesão
   Atualização exclusivamente visual. Mantém Bootstrap, nomes
   de campos, actions, validações e processamento PHP existentes.
   ========================================================= */
:root{
    --sp25-blue:#253a70;
    --sp25-blue-deep:#14264e;
    --sp25-blue-soft:#eef3fb;
    --sp25-red:#8a0912;
    --sp25-red-hover:#70070e;
    --sp25-white:#ffffff;
    --sp25-bg:#f5f7fb;
    --sp25-text:#24324a;
    --sp25-muted:#6b7484;
    --sp25-line:#e6eaf0;
    --sp25-success:#166534;
    --sp25-success-bg:#ecfdf3;
    --sp25-shadow:0 24px 70px rgba(22,38,75,.12);
    --sp25-radius:28px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.sipamed25-page{
    margin:0;
    min-height:100vh;
    background:var(--sp25-bg);
    color:var(--sp25-text);
    font-family:"Open Sans",Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
}
body.sipamed25-page h1,
body.sipamed25-page h2,
body.sipamed25-page h3,
body.sipamed25-page h4,
body.sipamed25-page h5,
body.sipamed25-page h6{
    font-family:"Jost",Arial,sans-serif;
}
body.sipamed25-page a{color:var(--sp25-blue)}
body.sipamed25-page a:hover{color:var(--sp25-red)}

/* Cabeçalho */
.sipamed25-topbar{
    position:sticky;
    top:0;
    z-index:1040;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid rgba(37,58,112,.08);
    box-shadow:0 8px 30px rgba(20,38,78,.06);
    backdrop-filter:blur(14px);
}
.sipamed25-topbar-inner{
    width:min(1180px,calc(100% - 36px));
    min-height:82px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}
.sipamed25-brand{
    display:inline-flex;
    align-items:center;
    flex:none;
}
.sipamed25-brand img{
    display:block;
    width:160px;
    max-height:52px;
    object-fit:contain;
}
.sipamed25-nav{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap;
}
.sipamed25-nav a{
    display:inline-flex;
    min-height:42px;
    padding:0 15px;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    color:#10213e!important;
    font-size:13px;
    font-weight:800;
    text-decoration:none!important;
    transition:.2s ease;
}
.sipamed25-nav a:hover{
    color:var(--sp25-red)!important;
    background:var(--sp25-blue-soft);
}
.sipamed25-nav .sipamed25-nav-primary{
    color:var(--sp25-white)!important;
    background:var(--sp25-blue);
    border:1px solid var(--sp25-blue);
}
.sipamed25-nav .sipamed25-nav-primary:hover{
    color:var(--sp25-white)!important;
    background:var(--sp25-red);
    border-color:var(--sp25-red);
}

/* Hero */
body.sipamed25-page .page-header,
.sipamed25-page-hero{
    position:relative;
    overflow:hidden;
    margin:0!important;
    padding:76px 0 70px!important;
    background:
        linear-gradient(100deg,rgba(8,23,43,.96) 0%,rgba(37,58,112,.94) 48%,rgba(19,117,165,.84) 100%),
        url("https://www.sipamed.com.br/img/fundo_padrao.png") center/cover no-repeat!important;
}
body.sipamed25-page .page-header::before,
.sipamed25-page-hero::before{
    content:"";
    position:absolute;
    width:520px;
    height:520px;
    right:-170px;
    top:-260px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}
body.sipamed25-page .page-header::after,
.sipamed25-page-hero::after{
    content:"";
    position:absolute;
    width:330px;
    height:330px;
    left:-120px;
    bottom:-210px;
    border-radius:50%;
    background:rgba(138,9,18,.38);
}
body.sipamed25-page .page-header .container,
.sipamed25-page-hero .container{
    position:relative;
    z-index:2;
    padding-top:0!important;
    padding-bottom:0!important;
}
body.sipamed25-page .page-header h1,
.sipamed25-page-hero h1{
    max-width:900px;
    margin:0 auto 12px!important;
    color:#fff!important;
    font-size:clamp(34px,5vw,58px)!important;
    line-height:1!important;
    letter-spacing:-.045em;
    font-weight:900!important;
    text-shadow:none;
}
.sipamed25-hero-subtitle{
    max-width:720px;
    margin:0 auto 25px;
    color:rgba(255,255,255,.82);
    font-size:17px;
    line-height:1.65;
}
.sipamed25-progress{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.sipamed25-progress span{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:36px;
    padding:0 13px;
    border-radius:999px;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.15);
    color:rgba(255,255,255,.84);
    font-size:12px;
    font-weight:800;
}
.sipamed25-progress span::before{
    content:attr(data-step);
    width:21px;
    height:21px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    color:#fff;
    font-size:11px;
}
.sipamed25-progress .active{
    background:#fff;
    color:var(--sp25-blue);
}
.sipamed25-progress .active::before{
    background:var(--sp25-red);
}

/* Conteúdo principal */
body.sipamed25-page .container-xxl.py-5{
    padding-top:54px!important;
    padding-bottom:70px!important;
}
body.sipamed25-page .container-xxl.py-5>.container{
    max-width:1180px;
}
body.sipamed25-page .container-xxl.py-5>.container>.row{
    position:relative;
    overflow:hidden;
    padding:clamp(28px,4vw,50px);
    border:1px solid var(--sp25-line);
    border-radius:var(--sp25-radius);
    background:var(--sp25-white);
    box-shadow:var(--sp25-shadow);
}
body.sipamed25-page .container-xxl.py-5>.container>.row::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    right:-100px;
    top:-100px;
    border-radius:50%;
    background:rgba(138,9,18,.055);
    pointer-events:none;
}
body.sipamed25-page .container-xxl.py-5 .col-lg-6,
body.sipamed25-page .container-xxl.py-5 .col-lg-12{
    position:relative;
    z-index:1;
}
body.sipamed25-page .fs-5.fw-bold.text-primary{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-bottom:15px!important;
    padding:8px 13px;
    border-radius:999px;
    background:var(--sp25-blue-soft);
    color:var(--sp25-blue)!important;
    font-size:12px!important;
    letter-spacing:.1em;
    text-transform:uppercase;
}
body.sipamed25-page .fs-5.fw-bold.text-primary::before{
    content:"";
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--sp25-red);
}
body.sipamed25-page h1.display-5{
    margin-bottom:24px!important;
    color:var(--sp25-blue);
    font-size:clamp(31px,4vw,48px);
    line-height:1.04;
    letter-spacing:-.04em;
    font-weight:900;
}
body.sipamed25-page .container-xxl p{
    color:var(--sp25-muted);
    font-size:16px;
    line-height:1.75;
}
body.sipamed25-page .alert-success{
    padding:20px 22px;
    color:var(--sp25-success);
    background:var(--sp25-success-bg);
    border:1px solid #bbf7d0!important;
    border-left:5px solid #22c55e!important;
    border-radius:18px!important;
    box-shadow:none!important;
}
body.sipamed25-page .alert-success h5{color:#14532d}
body.sipamed25-page .alert-success p{color:#287344}

/* Imagem / cartão do plano */
body.sipamed25-page .row.align-items-center.g-5 .col-lg-6:last-child{
    padding:28px;
    border-radius:26px;
    background:
        radial-gradient(circle at 80% 12%,rgba(138,9,18,.12),transparent 32%),
        linear-gradient(145deg,#f4f7fc,#fff);
    border:1px solid var(--sp25-line);
}
body.sipamed25-page .row.align-items-center.g-5 .col-lg-6:last-child img{
    width:100%;
    max-width:470px;
    max-height:430px;
    object-fit:contain;
    border-radius:22px!important;
    box-shadow:0 18px 44px rgba(37,58,112,.13)!important;
}

/* Formulários */
body.sipamed25-page label,
body.sipamed25-page .custom-label{
    color:var(--sp25-blue)!important;
    font-weight:800;
}
body.sipamed25-page .form-control,
body.sipamed25-page .form-select,
body.sipamed25-page input[type="text"],
body.sipamed25-page input[type="email"],
body.sipamed25-page input[type="tel"],
body.sipamed25-page input[type="password"],
body.sipamed25-page input[type="date"],
body.sipamed25-page select,
body.sipamed25-page textarea{
    min-height:52px;
    padding:12px 15px;
    color:var(--sp25-text);
    background:#fff;
    border:1px solid #dce2eb;
    border-radius:14px;
    box-shadow:none;
    outline:none;
    transition:.2s ease;
}
body.sipamed25-page textarea{min-height:120px}
body.sipamed25-page .form-control:focus,
body.sipamed25-page .form-select:focus,
body.sipamed25-page input:focus,
body.sipamed25-page select:focus,
body.sipamed25-page textarea:focus{
    border-color:var(--sp25-blue);
    box-shadow:0 0 0 4px rgba(37,58,112,.10);
}
body.sipamed25-page .form-check{
    padding:18px 18px 18px 46px;
    border:1px solid var(--sp25-line);
    border-radius:16px;
    background:#f9fafc;
}
body.sipamed25-page .form-check-input{
    width:20px;
    height:20px;
    margin-left:-29px;
    border:2px solid #9aa6b7;
}
body.sipamed25-page .form-check-input:checked{
    background-color:var(--sp25-red);
    border-color:var(--sp25-red);
}

/* Botões */
body.sipamed25-page .btn-primary,
body.sipamed25-page .btn-custom,
body.sipamed25-page button.btn-primary{
    min-height:50px;
    padding:12px 25px!important;
    color:#fff!important;
    background:var(--sp25-red)!important;
    border:1px solid var(--sp25-red)!important;
    border-radius:999px!important;
    font-weight:900;
    letter-spacing:.015em;
    box-shadow:0 12px 26px rgba(138,9,18,.22);
    transition:.2s ease;
}
body.sipamed25-page .btn-primary:hover,
body.sipamed25-page .btn-custom:hover,
body.sipamed25-page button.btn-primary:hover{
    color:#fff!important;
    background:var(--sp25-red-hover)!important;
    border-color:var(--sp25-red-hover)!important;
    transform:translateY(-2px);
}
body.sipamed25-page form[action="SalvarCliente.php"] .btn{
    min-width:220px;
}

/* Contrato */
body.sipamed25-page div[align="center"][style*="background-color: #ebebeb"]{
    position:relative;
    max-height:560px;
    overflow:auto;
    padding:28px!important;
    text-align:left!important;
    background:#fbfcfe!important;
    border:1px solid var(--sp25-line);
    border-radius:22px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);
    scrollbar-color:var(--sp25-blue) #e9edf4;
    scrollbar-width:thin;
}
body.sipamed25-page div[align="center"][style*="background-color: #ebebeb"]::before{
    content:"Contrato digital SIPAMED";
    position:sticky;
    top:-28px;
    z-index:3;
    display:block;
    margin:-28px -28px 25px;
    padding:18px 26px;
    color:#fff;
    background:linear-gradient(90deg,var(--sp25-blue-deep),var(--sp25-blue));
    font-family:"Jost",Arial,sans-serif;
    font-size:17px;
    font-weight:900;
    letter-spacing:.01em;
}
body.sipamed25-page div[align="center"][style*="background-color: #ebebeb"] p{
    color:#3f4857!important;
    font-size:14px!important;
    line-height:1.75!important;
}
body.sipamed25-page p[align="center"] h4{
    color:var(--sp25-red);
    font-size:18px;
}
body.sipamed25-page hr{
    opacity:1;
    border-color:var(--sp25-line);
}

/* Rodapé */
.sipamed25-footer{
    position:relative;
    overflow:hidden;
    padding:58px 0 22px;
    color:rgba(255,255,255,.82);
    background:var(--sp25-blue);
}
.sipamed25-footer::after{
    content:"";
    position:absolute;
    width:360px;
    height:360px;
    right:-150px;
    top:-180px;
    border-radius:50%;
    background:rgba(138,9,18,.24);
}
.sipamed25-footer .sipamed25-footer-grid,
.sipamed25-footer .sipamed25-footer-bottom{
    position:relative;
    z-index:1;
    width:min(1180px,calc(100% - 36px));
    margin:0 auto;
}
.sipamed25-footer-grid{
    display:grid;
    grid-template-columns:1.35fr .75fr .8fr 1fr;
    gap:42px;
}
.sipamed25-footer-logo{
    width:165px;
    padding:9px;
    border-radius:12px;
    background:#fff;
}
.sipamed25-footer h3{
    margin:0 0 18px;
    color:#fff;
    font-size:17px;
    font-weight:900;
}
.sipamed25-footer p{
    margin:14px 0 0;
    color:rgba(255,255,255,.78)!important;
    font-size:13px!important;
    line-height:1.7!important;
}
.sipamed25-footer a{
    display:block;
    margin:0 0 10px;
    color:rgba(255,255,255,.84)!important;
    font-size:13px;
    text-decoration:none;
}
.sipamed25-footer a:hover{color:#fff!important}
.sipamed25-footer-bottom{
    display:flex;
    justify-content:space-between;
    gap:20px;
    margin-top:34px!important;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.16);
    font-size:13px;
}
.sipamed25-footer-bottom a{margin:0}

/* Flutuantes */
.sipamed25-whatsapp{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:1045;
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 19px;
    border-radius:999px;
    color:#fff!important;
    background:#16a34a;
    box-shadow:0 14px 35px rgba(22,163,74,.28);
    font-size:13px;
    font-weight:900;
    text-decoration:none!important;
}
.sipamed25-whatsapp:hover{
    color:#fff!important;
    background:#12833d;
    transform:translateY(-2px);
}
body.sipamed25-page .back-to-top{
    right:22px;
    bottom:82px;
    width:46px;
    height:46px;
    padding:0!important;
    display:grid;
    place-items:center;
    background:var(--sp25-blue)!important;
    border-color:var(--sp25-blue)!important;
    box-shadow:0 12px 26px rgba(37,58,112,.22);
}

/* Spinner */
body.sipamed25-page #spinner{background:#fff!important}
body.sipamed25-page #spinner .spinner-border{color:var(--sp25-red)!important}

@media(max-width:1050px){
    .sipamed25-nav a:not(.sipamed25-nav-primary):not(.sipamed25-nav-home){display:none}
    .sipamed25-footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
    .sipamed25-topbar-inner{min-height:72px;width:min(100% - 24px,1180px)}
    .sipamed25-brand img{width:138px}
    .sipamed25-nav a{min-height:38px;padding:0 12px;font-size:12px}
    body.sipamed25-page .page-header,.sipamed25-page-hero{padding:52px 0 50px!important}
    .sipamed25-progress span{font-size:0;padding:0 8px}
    .sipamed25-progress span::before{font-size:11px}
    body.sipamed25-page .container-xxl.py-5{padding:30px 12px 46px!important}
    body.sipamed25-page .container-xxl.py-5>.container>.row{padding:24px 16px;border-radius:22px}
    body.sipamed25-page .row.align-items-center.g-5 .col-lg-6:last-child{padding:18px}
    .sipamed25-footer-grid{grid-template-columns:1fr;gap:25px}
    .sipamed25-footer-bottom{flex-direction:column}
    .sipamed25-whatsapp{right:14px;bottom:14px}
    body.sipamed25-page .back-to-top{right:14px;bottom:72px}
}
