/* ========================================================
   RESET
======================================================== */

* {

    margin: 0;
    padding: 0;
    box-sizing: border-box;

}


html {

    scroll-behavior: smooth;

}


body {

    font-family:
        Inter,
        Arial,
        Helvetica,
        sans-serif;

    color: #302b27;

    background: #ffffff;

    line-height: 1.6;

}


a {

    color: inherit;

}


button,
input {

    font: inherit;

}


.contenedor {

    width: min(
        1180px,
        calc(100% - 40px)
    );

    margin: 0 auto;

}


/* ========================================================
   CABECERA
======================================================== */

.cabecera-publica {

    position: sticky;

    top: 0;

    z-index: 1000;

    background:
        rgba(255, 255, 255, .95);

    backdrop-filter:
        blur(12px);

    border-bottom:
        1px solid #eee8e3;

}


.cabecera-contenido {

    min-height: 78px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

}


.marca {

    display: flex;

    align-items: center;

    gap: 12px;

    text-decoration: none;

}


.marca-icono {

    width: 46px;

    height: 46px;

    border-radius: 14px;

    display: flex;

    align-items: center;

    justify-content: center;

    background: #332d28;

    color: #ffffff;

    font-size: 21px;

}


.marca strong {

    display: block;

    font-size: 17px;

    line-height: 1.2;

}


.marca small {

    display: block;

    color: #938a83;

    font-size: 11px;

    margin-top: 3px;

}


.menu-publico {

    display: flex;

    align-items: center;

    gap: 30px;

}


.menu-publico a {

    text-decoration: none;

    color: #615a55;

    font-size: 13px;

    font-weight: 600;

    transition: .2s;

}


.menu-publico a:hover {

    color: #332d28;

}


.menu-publico .menu-consultar {

    background: #332d28;

    color: #ffffff;

    padding: 11px 17px;

    border-radius: 10px;

}


.menu-publico .menu-consultar:hover {

    color: #ffffff;

    background: #4a4037;

}


.btn-menu {

    display: none;

    width: 42px;

    height: 42px;

    border: none;

    border-radius: 10px;

    background: #f4f0ed;

    color: #332d28;

    cursor: pointer;

    font-size: 21px;

}


/* ========================================================
   HERO
======================================================== */

.hero {

    position: relative;

    overflow: hidden;

    padding:
        90px 0
        100px;

    background:
        linear-gradient(
            135deg,
            #faf7f4 0%,
            #f2e9e1 100%
        );

}


.hero::before {

    content: "";

    position: absolute;

    width: 500px;

    height: 500px;

    top: -250px;

    right: -170px;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .65);

}


.hero-grid {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(420px, .95fr);

    gap: 70px;

    align-items: center;

}


.hero-etiqueta {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    padding:
        8px 12px;

    background:
        rgba(255,255,255,.7);

    border:
        1px solid
        rgba(117,96,79,.15);

    border-radius: 100px;

    color: #765f4d;

    font-size: 12px;

    font-weight: 700;

    margin-bottom: 24px;

}


.hero h1 {

    max-width: 700px;

    color: #2f2925;

    font-size:
        clamp(
            44px,
            6vw,
            72px
        );

    line-height: 1.04;

    letter-spacing: -2.5px;

    margin-bottom: 24px;

}


.hero h1 span {

    display: block;

    color: #806955;

}


.hero-texto {

    max-width: 610px;

    color: #706862;

    font-size: 18px;

    line-height: 1.7;

    margin-bottom: 30px;

}


.hero-botones {

    display: flex;

    flex-wrap: wrap;

    gap: 12px;

}


.btn-publico {

    min-height: 50px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding:
        0 21px;

    border-radius: 11px;

    text-decoration: none;

    font-size: 13px;

    font-weight: 700;

    transition: .2s;

}


.btn-principal-publico {

    background: #332d28;

    color: #ffffff;

    box-shadow:
        0 10px 25px
        rgba(51,45,40,.15);

}


.btn-principal-publico:hover {

    background: #4a4037;

    transform:
        translateY(-2px);

}


.btn-secundario-publico {

    border:
        1px solid #d9cfc7;

    background:
        rgba(255,255,255,.55);

    color: #4c433d;

}


.btn-secundario-publico:hover {

    background: #ffffff;

}


.hero-ventajas {

    display: flex;

    flex-wrap: wrap;

    gap: 18px 25px;

    margin-top: 32px;

}


.hero-ventajas div {

    display: flex;

    align-items: center;

    gap: 7px;

}


.hero-ventajas span {

    width: 20px;

    height: 20px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: #dfe9df;

    color: #366b3d;

    font-size: 10px;

    font-weight: 800;

}


.hero-ventajas p {

    color: #736b65;

    font-size: 11px;

}


/* ========================================================
   HERO VISUAL
======================================================== */

.hero-visual {

    position: relative;

    min-height: 500px;

    display: flex;

    justify-content: center;

    align-items: center;

}


.tarjeta-costura {

    position: relative;

    width: min(
        100%,
        440px
    );

    min-height: 440px;

    border-radius: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    padding: 50px;

    background:
        linear-gradient(
            150deg,
            #40362e,
            #75604f
        );

    box-shadow:
        0 35px 60px
        rgba(72,56,44,.22);

    overflow: hidden;

}


.tarjeta-costura::before {

    content: "";

    position: absolute;

    width: 260px;

    height: 260px;

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius: 50%;

    top: -110px;

    right: -80px;

}


.tarjeta-costura::after {

    content: "";

    position: absolute;

    width: 300px;

    height: 300px;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius: 50%;

    bottom: -170px;

    left: -110px;

}


.costura-centro {

    position: relative;

    z-index: 5;

    color: #ffffff;

}


.costura-icono {

    width: 82px;

    height: 82px;

    margin:
        0 auto 25px;

    border-radius: 24px;

    display: flex;

    justify-content: center;

    align-items: center;

    background:
        rgba(255,255,255,.12);

    border:
        1px solid
        rgba(255,255,255,.12);

    font-size: 36px;

}


.costura-centro > span {

    display: block;

    color: #e2d8d0;

    font-size: 12px;

    margin-bottom: 10px;

}


.costura-centro h2 {

    max-width: 320px;

    margin:
        0 auto 15px;

    font-size: 27px;

    line-height: 1.25;

}


.costura-centro p {

    color: #ded4cc;

    font-size: 12px;

}


.costura-decoracion {

    position: absolute;

    font-size: 30px;

    opacity: .2;

}


.decoracion-1 {

    top: 45px;

    left: 45px;

    transform:
        rotate(-20deg);

}


.decoracion-2 {

    bottom: 50px;

    right: 45px;

}


.hero-flotante {

    position: absolute;

    z-index: 10;

    display: flex;

    align-items: center;

    gap: 10px;

    padding:
        13px 16px;

    border-radius: 14px;

    background:
        rgba(255,255,255,.95);

    box-shadow:
        0 15px 35px
        rgba(43,36,31,.13);

}


.hero-flotante > span {

    width: 38px;

    height: 38px;

    border-radius: 10px;

    background: #f5eee8;

    display: flex;

    align-items: center;

    justify-content: center;

}


.hero-flotante strong {

    display: block;

    font-size: 11px;

}


.hero-flotante small {

    display: block;

    margin-top: 2px;

    color: #999;

    font-size: 9px;

}


.hero-flotante-1 {

    left: -10px;

    top: 90px;

}


.hero-flotante-2 {

    right: -5px;

    bottom: 80px;

}


/* ========================================================
   SECCIONES
======================================================== */

.seccion {

    padding:
        100px 0;

}


.titulo-seccion {

    max-width: 680px;

    margin:
        0 auto 55px;

    text-align: center;

}


.titulo-seccion > span,
.seccion-etiqueta {

    display: inline-block;

    color: #806955;

    font-size: 11px;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 1.5px;

    margin-bottom: 12px;

}


.titulo-seccion h2,
.horario-intro h2 {

    color: #302b27;

    font-size:
        clamp(
            30px,
            4vw,
            42px
        );

    line-height: 1.2;

    letter-spacing: -1px;

}


.titulo-seccion p {

    margin-top: 15px;

    color: #87807a;

    font-size: 14px;

}


/* ========================================================
   SERVICIOS
======================================================== */

.servicios {

    background: #ffffff;

}


.servicios-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;

}


.servicio-card {

    padding: 28px;

    border:
        1px solid #eee8e3;

    border-radius: 18px;

    background: #ffffff;

    transition: .2s;

}


.servicio-card:hover {

    transform:
        translateY(-4px);

    box-shadow:
        0 18px 40px
        rgba(70,56,47,.08);

    border-color: #ded1c8;

}


.servicio-icono {

    width: 52px;

    height: 52px;

    border-radius: 14px;

    margin-bottom: 20px;

    background: #f4ece6;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 23px;

}


.servicio-card h3 {

    margin-bottom: 9px;

    font-size: 17px;

}


.servicio-card p {

    color: #8b847f;

    font-size: 12px;

    line-height: 1.7;

}


/* ========================================================
   CONSULTA DESTACADA
======================================================== */

.consulta-destacada {

    padding:
        30px 0;

}


.consulta-destacada-contenido {

    border-radius: 25px;

    padding:
        45px 50px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #332d28,
            #5b4b3f
        );

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 40px;

    box-shadow:
        0 20px 45px
        rgba(51,45,40,.15);

}


.consulta-mini {

    color: #d8ccc2;

    font-size: 10px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 1.4px;

}


.consulta-destacada h2 {

    margin:
        7px 0 8px;

    font-size: 27px;

}


.consulta-destacada p {

    max-width: 620px;

    color: #ddd4cd;

    font-size: 12px;

}


.btn-consulta-grande {

    min-width: 215px;

    min-height: 52px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 9px;

    border-radius: 12px;

    background: #ffffff;

    color: #342d28;

    text-decoration: none;

    font-size: 12px;

    font-weight: 800;

    transition: .2s;

}


.btn-consulta-grande:hover {

    transform:
        translateY(-2px);

}


/* ========================================================
   VENTAJAS
======================================================== */

.seccion-clara {

    background: #faf8f6;

}


.ventajas-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 25px;

}


.ventaja-card {

    padding: 30px;

}


.ventaja-numero {

    color: #b4a497;

    font-size: 12px;

    font-weight: 800;

    margin-bottom: 25px;

}


.ventaja-card h3 {

    margin-bottom: 12px;

    font-size: 18px;

}


.ventaja-card p {

    color: #847d77;

    font-size: 12px;

    line-height: 1.8;

}


/* ========================================================
   HORARIO
======================================================== */

.horario-seccion {

    background: #ffffff;

}


.horario-grid {

    display: grid;

    grid-template-columns:
        minmax(0, .8fr)
        minmax(450px, 1.2fr);

    gap: 90px;

    align-items: center;

}


.horario-intro p {

    max-width: 480px;

    margin-top: 20px;

    color: #847d77;

    font-size: 14px;

}


.horario-card {

    padding: 10px 28px;

    border:
        1px solid #eee7e2;

    border-radius: 20px;

    background: #faf8f6;

}


.horario-fila {

    min-height: 61px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 20px;

    border-bottom:
        1px solid #e8e1dc;

}


.horario-fila:last-child {

    border-bottom: none;

}


.horario-fila span {

    color: #69615c;

    font-size: 12px;

}


.horario-fila strong {

    color: #36302c;

    text-align: right;

    font-size: 12px;

}


.horario-cerrado strong {

    color: #af5959;

}


/* ========================================================
   CONTACTO
======================================================== */

.contacto-seccion {

    background: #302b27;

    color: #ffffff;

}


.titulo-contacto h2 {

    color: #ffffff;

}


.titulo-contacto p {

    color: #bfb6af;

}


.titulo-contacto > span {

    color: #d6c5b7;

}


.contacto-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 18px;

}


.contacto-card {

    min-height: 115px;

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 22px;

    border:
        1px solid
        rgba(255,255,255,.10);

    border-radius: 16px;

    background:
        rgba(255,255,255,.045);

}


.contacto-icono {

    width: 47px;

    height: 47px;

    min-width: 47px;

    border-radius: 13px;

    background:
        rgba(255,255,255,.08);

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 20px;

}


.contacto-card small {

    display: block;

    color: #b8aea7;

    font-size: 9px;

    margin-bottom: 5px;

}


.contacto-card strong {

    font-size: 12px;

    font-weight: 600;

}


/* ========================================================
   FOOTER
======================================================== */

.footer-publico {

    padding:
        30px 0;

    background: #211e1b;

    color: #ffffff;

    border-top:
        1px solid
        rgba(255,255,255,.05);

}


.footer-contenido {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

}


.footer-marca {

    display: flex;

    align-items: center;

    gap: 11px;

}


.footer-logo {

    width: 40px;

    height: 40px;

    border:
        1px solid
        rgba(255,255,255,.10);

}


.footer-marca strong {

    display: block;

    font-size: 11px;

}


.footer-marca small {

    display: block;

    margin-top: 3px;

    color: #8f8882;

    font-size: 9px;

}


.footer-derecha {

    display: flex;

    align-items: center;

    gap: 22px;

    color: #8f8882;

    font-size: 9px;

}


.footer-derecha a {

    color: #8f8882;

    text-decoration: none;

}


.footer-derecha a:hover {

    color: #ffffff;

}


/* ========================================================
   RESPONSIVE
======================================================== */

@media (max-width: 1000px) {

    .hero-grid {

        grid-template-columns: 1fr;

        gap: 30px;

    }


    .hero-contenido {

        text-align: center;

    }


    .hero-texto {

        margin-left: auto;

        margin-right: auto;

    }


    .hero-botones,
    .hero-ventajas {

        justify-content: center;

    }


    .hero-visual {

        min-height: 460px;

    }


    .servicios-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .horario-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }

}


@media (max-width: 800px) {

    .btn-menu {

        display: flex;

        align-items: center;

        justify-content: center;

    }


    .menu-publico {

        position: absolute;

        top: 78px;

        left: 20px;

        right: 20px;

        display: none;

        flex-direction: column;

        align-items: stretch;

        gap: 0;

        padding: 10px;

        border:
            1px solid #e8e1dc;

        border-radius: 14px;

        background: #ffffff;

        box-shadow:
            0 20px 45px
            rgba(30,25,22,.15);

    }


    .menu-publico.abierto {

        display: flex;

    }


    .menu-publico a {

        padding: 13px 14px;

        border-radius: 8px;

    }


    .menu-publico .menu-consultar {

        margin-top: 5px;

        text-align: center;

    }


    .consulta-destacada-contenido {

        flex-direction: column;

        align-items: flex-start;

    }


    .ventajas-grid {

        grid-template-columns: 1fr;

    }


    .contacto-grid {

        grid-template-columns: 1fr;

    }

}


@media (max-width: 650px) {

    .contenedor {

        width:
            min(
                100% - 28px,
                1180px
            );

    }


    .hero {

        padding:
            65px 0
            70px;

    }


    .hero h1 {

        font-size: 43px;

        letter-spacing: -1.8px;

    }


    .hero-texto {

        font-size: 15px;

    }


    .hero-botones {

        flex-direction: column;

    }


    .btn-publico {

        width: 100%;

    }


    .hero-ventajas {

        flex-direction: column;

        align-items: center;

    }


    .hero-visual {

        min-height: auto;

        margin-top: 25px;

    }


    .tarjeta-costura {

        min-height: 380px;

        padding: 35px 25px;

    }


    .hero-flotante {

        display: none;

    }


    .servicios-grid {

        grid-template-columns: 1fr;

    }


    .seccion {

        padding:
            75px 0;

    }


    .consulta-destacada-contenido {

        padding:
            35px 25px;

    }


    .btn-consulta-grande {

        width: 100%;

    }


    .horario-card {

        padding:
            5px 18px;

    }


    .horario-fila {

        align-items: flex-start;

        flex-direction: column;

        justify-content: center;

        gap: 2px;

        padding:
            14px 0;

    }


    .horario-fila strong {

        text-align: left;

    }


    .footer-contenido {

        flex-direction: column;

        align-items: flex-start;

    }


    .footer-derecha {

        width: 100%;

        justify-content: space-between;

    }

}