
/*==================================================
    CAPINOA
    Centro Médico Especializado en Restauración Capilar
    Design System v2.0
==================================================*/

/*==================================================
    1. VARIABLES
==================================================*/

:root{

    /*==============================
        COLORES INSTITUCIONALES
    ==============================*/

    --primary:#0D53A5;
    --primary-dark:#0A4384;
    --primary-light:#EAF4FF;

    --secondary:#0C9FAB;
    --secondary-dark:#09838D;
    --secondary-light:#E8FAFC;

    /*==============================
        ESCALA DE GRISES
    ==============================*/

    --white:#FFFFFF;
    --black:#000000;

    --gray-50:#FAFBFC;
    --gray-100:#F5F7FA;
    --gray-200:#E8EDF3;
    --gray-300:#D7DFE8;
    --gray-400:#A7B4C4;
    --gray-500:#6B7A8D;
    --gray-600:#4C5B6D;
    --gray-700:#2F3C4A;

    /*==============================
        TIPOGRAFÍA
    ==============================*/

    --font-family:'Poppins',sans-serif;

    --fs-xs:.80rem;
    --fs-sm:.95rem;
    --fs-md:1rem;
    --fs-lg:1.15rem;
    --fs-xl:1.45rem;
    --fs-2xl:2.10rem;
    --fs-3xl:2.90rem;
    --fs-4xl:3.80rem;

    --fw-regular:400;
    --fw-medium:500;
    --fw-semibold:600;
    --fw-bold:700;
    --fw-extrabold:800;

    /*==============================
        ESPACIADOS
    ==============================*/

    --space-xs:8px;
    --space-sm:16px;
    --space-md:24px;
    --space-lg:40px;
    --space-xl:60px;
    --space-2xl:90px;
    --space-3xl:60px;

    /*==============================
        RADIOS
    ==============================*/

    --radius-sm:12px;
    --radius-md:18px;
    --radius-lg:28px;
    --radius-xl:36px;
    --radius-pill:999px;

    /*==============================
        SOMBRAS
    ==============================*/

    --shadow-xs:0 8px 20px rgba(13,83,165,.05);

    --shadow-sm:0 14px 35px rgba(13,83,165,.08);

    --shadow-md:0 22px 55px rgba(13,83,165,.10);

    --shadow-lg:0 35px 80px rgba(13,83,165,.14);

    /*==============================
        TRANSICIONES
    ==============================*/

    --transition:.35s ease;

}


/*==================================================
    2. RESET
==================================================*/

*,
*::before,
*::after{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:var(--font-family);

    font-size:var(--fs-md);

    font-weight:var(--fw-regular);

    color:var(--gray-700);

    background:var(--white);

    line-height:1.8;

    overflow-x:hidden;

    padding-top:90px;

}

img{

    display:block;

    max-width:100%;

    height:auto;

}

a{

    color:inherit;

    text-decoration:none;

    transition:var(--transition);

}

button{

    font:inherit;

    cursor:pointer;

}

input,
select,
textarea{

    font:inherit;

}

ul,
ol{

    list-style:none;

    margin:0;

    padding:0;

}


/*==================================================
    3. TIPOGRAFÍA
==================================================*/

h1,
h2,
h3,
h4,
h5,
h6{

    color:var(--primary);

    font-weight:var(--fw-bold);

    line-height:1.2;

    margin-bottom:var(--space-md);

}

h1{

    font-size:var(--fs-3xl);

}

h2{

    font-size:var(--fs-3xl);

}

h3{

    font-size:var(--fs-xl);

}

p{

    margin-bottom:var(--space-md);

    color:var(--gray-500);

}

strong{

    color:var(--primary);

}


/*==================================================
    4. LAYOUT
==================================================*/

section{

    position:relative;

    padding:var(--space-3xl) 0;

}

.container{

    max-width:1320px;

}

.cap-section{

    position:relative;

}

.cap-grid{

    display:grid;

}

.cap-flex{

    display:flex;

}

.cap-center{

    display:flex;

    align-items:center;

    justify-content:center;

}


/*==================================================
    5. UTILIDADES
==================================================*/

.bg-soft{

    background:var(--gray-50);

}

.bg-white{

    background:var(--white);

}

.bg-gradient{

    background:linear-gradient(
        180deg,
        var(--white),
        var(--gray-50)
        );

}

.text-primary{

    color:var(--primary)!important;

}

.text-secondary{

    color:var(--secondary)!important;

}

.text-muted{

    color:var(--gray-500)!important;

}

.shadow-xs{

    box-shadow:var(--shadow-xs);

}

.shadow-sm{

    box-shadow:var(--shadow-sm);

}

.shadow-md{

    box-shadow:var(--shadow-md);

}

.shadow-lg{

    box-shadow:var(--shadow-lg);

}

.radius-sm{

    border-radius:var(--radius-sm);

}

.radius-md{

    border-radius:var(--radius-md);

}

.radius-lg{

    border-radius:var(--radius-lg);

}

.radius-xl{

    border-radius:var(--radius-xl);

}


/*==================================================
    6. COMPONENTES BASE
==================================================*/

.section-title{

    max-width:760px;

    margin:0 auto var(--space-2xl);

    text-align:center;

}

.section-title h2{

    margin-top:20px;

}

.section-badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:10px 22px;

    background:var(--secondary-light);

    color:var(--secondary-dark);

    border-radius:var(--radius-pill);

    font-size:var(--fs-xs);

    font-weight:var(--fw-bold);

    letter-spacing:1.2px;

    text-transform:uppercase;

}

/*==================================================
    7. BOTONES
==================================================*/

.cap-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    min-height:56px;

    padding:0 30px;

    border:none;

    border-radius:var(--radius-pill);

    font-weight:var(--fw-semibold);

    cursor:pointer;

    transition:var(--transition);

}

.cap-btn-primary{

    background:var(--primary);

    color:var(--white);

    box-shadow:var(--shadow-sm);

}

.cap-btn-primary:hover{

    background:var(--primary-dark);

    color:var(--white);

    transform:translateY(-3px);

}

.cap-btn-outline{

    background:transparent;

    border:2px solid var(--primary);

    color:var(--primary);

}

.cap-btn-outline:hover{

    background:var(--primary);

    color:var(--white);

}

/*==================================================
    8. TARJETAS
==================================================*/

.cap-card{

    background:var(--white);

    border:1px solid var(--gray-200);

    border-radius:var(--radius-lg);

    overflow:hidden;

    box-shadow:var(--shadow-xs);

    transition:var(--transition);


}

.cap-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-md);

}

.cap-card-body{

    padding:40px;
    display:flex;
    flex-direction:column;
    height:100%;

}

.cap-card-image{

    display:block;

    width:100%;

}

/*==================================================
    9. ICONOS
==================================================*/

.cap-icon{

    width:72px;

    height:72px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:22px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
        );

    color:var(--white);

    font-size:30px;

    margin-bottom:24px;

    flex-shrink:0;

}

.cap-icon-sm{

    width:52px;

    height:52px;

    font-size:22px;

    border-radius:18px;

}

.cap-icon-circle{

    border-radius:50%;

}

/*==================================================
    10. HEADER
==================================================*/

.cap-header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    background:rgba(255,255,255,.5);

    backdrop-filter:blur(14px);

    border-bottom:1px solid var(--gray-200);

    z-index:999;

    transition:var(--transition);

}

.cap-navbar{

    min-height:90px;

}

.cap-brand{

    display:flex;

    align-items:center;

    gap:16px;

}

.cap-brand img{

    width:100%;

    height:58px;

}

.cap-brand span{

    display:block;

    font-size:1.35rem;

    color:var(--primary);

    font-weight:var(--fw-bold);

}

.cap-brand small{

    display:block;

    color:var(--gray-500);

    font-size:.82rem;

}

.navbar-nav{

    align-items:center;

}

.navbar-nav .nav-link{

    padding:12px 18px;

    color:var(--gray-700);

    font-weight:var(--fw-medium);

    transition:var(--transition);

}

.navbar-nav .nav-link:hover{

    color:var(--primary);

}

/*------------------------------
    CENTRO MÉDICO
------------------------------*/

.cap-about{

    background:var(--white);

}

.cap-about-card{

    height:100%;

    overflow:hidden;

    display:flex;

    flex-direction:column;

    padding:0;

}

/*==================================================
    NOSOTROS
    TRES TARJETAS PRINCIPALES
==================================================*/

.cap-about-image{

    position:relative;

    width:100%;

    height:100%;

    min-height:100%;

    margin:0 !important;

    padding:0 !important;

    border-radius:28px;

    overflow:visible;

    background:#FFFFFF;

}


/* Imagen sin tarjeta redondeada independiente */

.cap-about-image > img{

    display:block;

    width:100%;

    height:100%;

    min-height:620px;

    object-fit:cover;

    margin:0;

    border-radius:0;

}

.cap-about-image img,
.hero-image img,
.cap-image-card img{

    display:block;
    width:100%;
    height:auto;
    object-fit:contain;

}

.cap-about-card .cap-card-body{

    padding:38px;

    display:flex;

    flex-direction:column;

    height:100%;

}

.cap-about-card h3{

    color:var(--primary);

    font-size:1.45rem;

    margin-bottom:18px;

}
.cap-about-card p{

    color:var(--gray-500);

    line-height:1.8;

}

.cap-about-card hr{

    margin:28px 0;

    border-color:var(--gray-200);

}

.cap-about-card .cap-list{

    margin-top:auto;

}

.cap-about-card .cap-list li{

    padding:10px 0;

}

.cap-floating{

    position:absolute;

    padding:18px 22px;

    background:var(--white);

    border:1px solid var(--gray-200);

    border-radius:var(--radius-md);

    box-shadow:var(--shadow-sm);

    font-weight:var(--fw-semibold);

}

.cap-floating.location{

    left:20px;

    bottom:20px;

}

.cap-floating.tech{

    right:20px;

    top:20px;

}

.cap-list{

    display:flex;

    flex-direction:column;

    gap:14px;

    margin:35px 0;

}

.cap-list li{

    display:flex;

    align-items:center;

    gap:12px;

    padding-bottom:14px;

    border-bottom:1px solid var(--gray-200);

}

.cap-coverage{

    padding:30px;

    border-left:5px solid var(--secondary);

}

/*------------------------------
    TRATAMIENTOS
------------------------------*/

.cap-treatments{

    background:var(--gray-50);

}

.cap-treatment{

    height:100%;

}

.cap-treatment img{

    border-radius:var(--radius-md);

}

.cap-treatment h3{

    margin:22px 0 16px;

}

.cap-label{

    display:inline-flex;

    align-items:center;

    padding:8px 16px;

    background:var(--secondary-light);

    color:var(--secondary-dark);

    border-radius:var(--radius-pill);

    font-size:var(--fs-xs);

    font-weight:var(--fw-bold);

}

.cap-check-list{

    display:flex;

    flex-direction:column;

    gap:10px;

    margin:28px 0;

}

.cap-check-list li{

    display:flex;

    align-items:flex-start;

    gap:12px;

}

/*------------------------------
    BENEFICIOS
------------------------------*/

.cap-benefits{

    background:linear-gradient(
        180deg,
        var(--white),
        var(--gray-50)
        );

}

.cap-feature-card{

    height:100%;

}

.cap-feature-card h3{

    margin-bottom:18px;

}

/*------------------------------
    PROCESO
------------------------------*/

.cap-step::after{

    content:"";

    position:absolute;

    top:118px;

    right:-40px;

    width:80px;

    height:2px;

    background:linear-gradient(
        to right,
        var(--secondary),
        transparent
        );

}

.col-lg-3:last-child .cap-step::after{

    display:none;

}


.cap-process{

    background:var(--white);

}

.cap-step{

    position:relative;

    overflow:hidden;

    text-align:left;

}

.cap-step img{

    width:100%;

    height:240px;

    object-fit:cover;

    display:block;

}

.cap-step .cap-card-body{

    padding:30px;

}

.cap-step-number{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:58px;

    height:58px;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
        );

    color:#FFF;

    font-size:1rem;

    font-weight:700;

    margin-bottom:22px;

}

.cap-step h3{

    color:var(--primary);

    margin-bottom:16px;

    font-size:1.35rem;

}

.cap-step p{

    color:var(--gray-500);

    margin:0;

}


/*------------------------------
    FAQ
------------------------------*/

.cap-faq{

    background:#F8FBFF;

}

.cap-faq-container{

    max-width:900px;

    margin:auto;

}

.cap-faq-item{

    margin-bottom:18px;

    border-radius:24px;

    overflow:hidden;

    background:#FFFFFF;

    border:1px solid var(--gray-200);

    box-shadow:var(--shadow-xs);

    transition:.30s;

}

.cap-faq-item:hover{

    box-shadow:var(--shadow-sm);

}

.cap-faq-question{

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    background:none;

    border:none;

    cursor:pointer;

    padding:28px 30px;

    font-size:1.1rem;

    font-weight:600;

    color:var(--primary);

    text-align:left;

}

.cap-faq-question span{

    font-size:2rem;

    font-weight:300;

    color:var(--secondary);

    transition:.35s;

}

.cap-faq-answer{

    max-height:0;

    overflow:hidden;

    opacity:0;

    padding:0 30px;

    color:var(--gray-500);

    line-height:1.8;

    transition:

        max-height .45s ease,

        opacity .35s ease,

        padding .35s ease;

}

.cap-faq-item.active .cap-faq-answer{

    max-height:250px;

    opacity:1;

    padding:0 30px 30px;

}

.cap-faq-item.active .cap-faq-question span{

    transform:rotate(45deg);

}

/*------------------------------
    FORMULARIOS
------------------------------*/

.cap-form{

    padding:45px;

}

.cap-form label{

    display:block;

    margin-bottom:10px;

    color:var(--primary);

    font-weight:600;

}

.cap-input{

    width:100%;

    padding:16px 18px;

    border:1px solid var(--gray-300);

    border-radius:var(--radius-md);

    transition:var(--transition);

}

.cap-input:focus{

    border-color:var(--secondary);

    outline:none;

    box-shadow:0 0 0 4px rgba(12,159,171,.12);

}

.cap-check{

    display:flex;

    gap:12px;

    align-items:flex-start;

}
/*------------------------------
    CONTACTO
------------------------------*/

.cap-contact{

    background:linear-gradient(
        180deg,
        var(--gray-50),
        var(--white)
        );

}

.cap-contact-info{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.cap-contact-item{

    display:flex;

    gap:16px;

    padding-bottom:18px;

    border-bottom:1px solid var(--gray-200);

}

/*==================================================
    13. FOOTER
==================================================*/

.cap-footer{

    background:var(--black);

    color:var(--white);

    padding:90px 0 30px;

}

.cap-footer-logo{

    width:70px;

    margin-bottom:22px;

}

.cap-footer h4{

    color:var(--white);

    font-size:1.15rem;

    margin-bottom:22px;

}

.cap-footer p{

    color:rgba(255,255,255,.75);

    margin-bottom:18px;

}

.cap-footer ul{

    display:flex;

    flex-direction:column;

    gap:12px;

}

.cap-footer a{

    color:rgba(255,255,255,.75);

    transition:var(--transition);

}

.cap-footer a:hover{

    color:var(--secondary);

}

.cap-footer-bottom{

    margin-top:70px;

    padding-top:25px;

    border-top:1px solid rgba(255,255,255,.12);

    text-align:center;

    font-size:.90rem;

    color:rgba(255,255,255,.60);

}

/*==================================================
    14. ANIMACIONES
==================================================*/

.cap-card,
.cap-btn,
.cap-icon,
.hero img,
.hero-feature{

    transition:var(--transition);

}

.cap-card:hover{

    transform:translateY(-8px);

}

.cap-btn:hover{

    transform:translateY(-3px);

}

.hero img:hover{

    transform:scale(1.02);

}

.hero-feature:hover{

    transform:translateY(-2px);

}

.cap-hero-features-2{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:18px;

}
