/* =========================================================
   VARIABLES
========================================================= */

:root {

    --azul: #092947;
    --azul-oscuro: #071f38;
    --rojo: #d51f26;
    --rojo-hover: #b6161c;

    --gris-claro: #f5f6f7;
    --gris-medio: #d9dde2;
    --gris-fondo: #b5b5b5;

    --texto: #142f4d;
    --blanco: #ffffff;

}


/* =========================================================
   GENERAL
========================================================= */

html {
    scroll-behavior: smooth;
}


body {
    margin: 0;
    padding: 0;

    color: var(--texto);

    font-family: "font 2", Arial, sans-serif;

    background-color: #ffffff;
}


h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand,
.btn {

    font-family: "font 1", Arial, sans-serif;
}


p {
    line-height: 1.45;
}


img {
    max-width: 100%;
}


/*
=========================================================
CONTAINER PERSONALIZADO

Bootstrap sigue controlando rows/columns,
pero el contenido nunca superará los 1080px.
=========================================================
*/

.container-site {

    width: 100%;
    max-width: 1080px;

    margin-left: auto;
    margin-right: auto;

    padding-left: 20px;
    padding-right: 20px;
}



/* =========================================================
   HEADER
========================================================= */

.main-header {

    position: absolute;

    top: 10px;
    left: 0;

    width: 100%;

    z-index: 100;
}


.main-header .navbar {

    padding: 8px 18px;

    border-radius: 3px;
}


.logo-placeholder {

    width: 34px;
    height: 34px;

    background-color: #d1d1d1;
	background-image: url(images/logo.jpeg);
	background-size:contain;

    border-radius: 0px;

    flex-shrink: 0;
}
.logo-placeholderF {

    width: 34px;
    height: 34px;

    background-color: transparent!important;
	background-image: url(images/logoW.png);
	background-size:contain;

    border-radius: 0px;

    flex-shrink: 0;
}


.brand-name {

    font-family: "font 1", Arial, sans-serif;

    font-size: 14px;
    font-weight: 600;

    color: var(--azul);
}


.navbar-nav .nav-link {

    position: relative;

    padding-left: 12px !important;
    padding-right: 12px !important;

    font-family: "font 2", Arial, sans-serif;

    font-size: 13px;

    color: var(--azul);
}


.navbar-nav .nav-link.active::after {

    content: "";

    position: absolute;

    bottom: 3px;
    left: 12px;
    right: 12px;

    height: 2px;

    background-color: var(--rojo);
}


.btn-primary-menu {

    padding: 10px 22px;

    border: none;

    color: #fff;

    background-color: var(--rojo);

    border-radius: 4px;

    font-size: 13px;
    font-weight: 600;
}


.btn-primary-menu:hover {

    color: #ffffff;

    background-color: var(--rojo-hover);
}



/* =========================================================
   HERO
========================================================= */

.hero-section {

    position: relative;

    min-height: 480px;

    background-color: #adadad;
	background-image: url(images/banner.png);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;

    /*
    Sustituye posteriormente por:

    background-image: url("../images/banner.jpg");
    background-size: cover;
    background-position: center;
    */
}


.hero-section::before {

    content: "";

    position: absolute;

    inset: 0;

    /*
    Equivalente visual al degradado blanco
    presente en la referencia.
    */

    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,0.95) 0%,
            rgba(255,255,255,0.78) 25%,
            rgba(255,255,255,0.10) 53%,
            rgba(255,255,255,0) 70%
        );
}


.hero-container {

    position: relative;

    min-height: 480px;

    z-index: 2;
}


.min-vh-section {

    min-height: 480px;

    padding-top: 90px;
}


.hero-copy {

    max-width: 500px;
}


.section-kicker {

    display: flex;

    align-items: flex-start;

    gap: 12px;

    margin-bottom: 10px;

    text-transform: uppercase;

    font-family: "font 1", Arial, sans-serif;

    font-size: 10px;
    line-height: 1.2;

    letter-spacing: 1.3px;

    font-weight: 700;

    color: var(--azul);
}


.section-kicker .line {

    width: 22px;
    height: 2px;

    margin-top: 5px;

    background-color: var(--rojo);

    flex-shrink: 0;
}


.hero-title {

    margin-bottom: 6px;

    font-size: 38px;
    line-height: 0.98;

    font-weight: 700;

    color: var(--azul);
}


.hero-title span {

    color: var(--rojo);
}


.hero-subtitle {

    margin-top: 8px;
    margin-bottom: 4px;

    font-size: 18px;

    font-weight: 700;

    color: var(--azul);
}


.hero-description {

    max-width: 430px;

    margin-bottom: 15px;

    font-size: 14px;

    color: #304962;
}


.btn-main {

    min-width: 190px;

    padding: 10px 18px;

    color: #ffffff;

    background-color: var(--rojo);

    border-radius: 4px;

    border: none;

    font-size: 14px;
    font-weight: 600;
}


.btn-main:hover {

    color: #ffffff;

    background-color: var(--rojo-hover);
}



/* =========================================================
   LOCATION
========================================================= */

.location-box {

    position: absolute;

    right: 0;
    bottom: 0;

    min-width: 275px;

    padding: 15px 25px;

    display: none;

    align-items: center;

    gap: 14px;

    color: #ffffff;

    background-color: var(--azul);

    border-radius: 25px 0 0 0;
}


.location-icon {

    font-size: 29px;
}


.location-box strong {

    display: block;

    font-family: "font 1", Arial, sans-serif;

    font-size: 13px;
}


.location-box span {

    display: block;

    margin-top: 2px;

    font-size: 10px;

    opacity: 0.9;
}



/* =========================================================
   SERVICES
========================================================= */

.services-section {

    padding: 22px 0;

    background-color: #ffffff;
}


.section-intro {

    padding-right: 10px;
}


.section-kicker.secondary {

    color: #8593a1;
}


.section-title {

    margin-bottom: 10px;

    font-size: 31px;
    line-height: 1;

    font-weight: 700;

    color: var(--azul);
}


.section-title span {

    display: block;

    color: var(--rojo);
}


.section-intro p {

    margin-bottom: 0;

    font-size: 13px;

    color: #465b70;
}


.service-card {

    padding: 14px;

    text-align: center;

    background-color: var(--gris-claro);

    border-radius: 3px;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}


.service-card:hover {

    transform: translateY(-4px);

    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}


.service-icon {

    width: 62px;
    height: 62px;

    margin: 0 auto 9px;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #ffffff;

    background-color: var(--azul);

    border-radius: 50%;

    font-size: 31px;
}


.service-icon.red {

    background-color: var(--rojo);
}


.service-card h3 {

    margin-bottom: 5px;

    font-size: 16px;

    font-weight: 700;

    color: var(--azul);
}


.service-card p {

    margin-bottom: 0;

    font-size: 12px;
    line-height: 1.3;

    color: #526477;
}



/* =========================================================
   FOTO / BANNER INTERMEDIO
========================================================= */

.secondary-image-section {

    min-height: 175px;

    background-color: #9f9f9f;
	background-image: url(images/minibanner.png);
	background-size:cover;
	background-position:center center;
	background-repeat:no-repeat;

    /*
    Posteriormente:

    background-image: url("../images/banner-secundario.jpg");
    background-size: cover;
    background-position: center;
    */
}



/* =========================================================
   CONTACT
========================================================= */

.contact-section {

    padding: 15px 0;

    background-color: #ffffff;
}


.contact-copy h2 {

    margin-bottom: 5px;

    font-size: 27px;

    line-height: 1;

    font-weight: 700;

    color: var(--azul);
}


.contact-copy h2 span {

    color: var(--rojo);
}


.contact-copy p {

    margin-bottom: 0;

    font-size: 11px;

    color: #53677c;
}


.custom-input {

    height: 33px;
}


.custom-input .input-group-text {

    width: 35px;

    justify-content: center;

    padding: 0;

    color: var(--azul);

    background-color: #ffffff;

    border-color: #cbd4de;
}


.custom-input .form-control {

    font-family: "font 2", Arial, sans-serif;

    font-size: 11px;

    color: var(--azul);

    border-color: #cbd4de;

    box-shadow: none;
}


.custom-input .form-control:focus {

    border-color: var(--azul);
}


.textarea-group {

    height: 40px;
}


.textarea-group textarea {

    resize: none;
}


.btn-submit {

    min-height: 40px;

    color: #ffffff;

    background-color: var(--rojo);

    border: none;

    border-radius: 3px;

    font-size: 13px;
    font-weight: 600;
}


.btn-submit:hover {

    color: #ffffff;

    background-color: var(--rojo-hover);
}



/* =========================================================
   FOOTER
========================================================= */

.footer {

    padding: 14px 0;

    color: #ffffff;

    background-color: var(--azul);
}


.footer-brand {

    display: flex;

    align-items: center;

    gap: 10px;

    font-family: "font 1", Arial, sans-serif;

    font-size: 12px;
}


.footer-logo {

    background-color: #ffffff;
}


.footer-menu {

    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 0;

    padding: 0;
    margin: 0;

    list-style: none;
}


.footer-menu li {

    border-right: 1px solid rgba(255,255,255,0.4);
}


.footer-menu li:last-child {

    border-right: none;
}


.footer-menu a {

    padding: 0 10px;

    color: #ffffff;

    text-decoration: none;

    font-size: 10px;
}


.footer-menu a:hover {

    opacity: 0.7;
}


.social-links {

    display: flex;

    gap: 14px;

    font-size: 20px;
}


.social-links a {

    color: #ffffff;

    text-decoration: none;
}


.copyright {

    padding-left: 15px;

    border-left: 1px solid rgba(255,255,255,0.4);

    font-size: 9px;
    line-height: 1.6;
}



/* =========================================================
   RESPONSIVE - TABLET
   <= 991px
========================================================= */

@media (max-width: 991.98px) {

    .container-site {

        max-width: 720px;

        padding-left: 20px;
        padding-right: 20px;
    }


    /* HEADER */

    .main-header {

        position: relative;

        top: 0;

        background-color: #ffffff;
    }


    .main-header .navbar {

        padding-left: 0;
        padding-right: 0;
    }


    .navbar-collapse {

        padding-top: 15px;
        padding-bottom: 10px;
    }


    .navbar-nav .nav-link.active::after {

        display: none;
    }


    .btn-primary-menu {

        display: inline-block;

        margin-top: 10px;
    }



    /* HERO */

    .hero-section {

        min-height: 500px;

        background-color: #aaaaaa;
    }


    .hero-section::before {

        background:
            linear-gradient(
                90deg,
                rgba(255,255,255,0.95) 0%,
                rgba(255,255,255,0.80) 60%,
                rgba(255,255,255,0.35) 100%
            );
    }


    .hero-container {

        min-height: 500px;
    }


    .min-vh-section {

        min-height: 500px;

        padding-top: 50px;
        padding-bottom: 100px;
    }


    .hero-title {

        font-size: 38px;
    }


    .location-box {

        left: 20px;
        right: auto;

        border-radius: 12px 12px 0 0;
    }



    /* SERVICIOS */

    .services-section {

        padding: 45px 0;
    }


    .section-intro {

        margin-bottom: 15px;
    }


    .section-title {

        font-size: 34px;
    }



    /* IMAGE */

    .secondary-image-section {

        min-height: 250px;
    }



    /* CONTACTO */

    .contact-section {

        padding: 40px 0;
    }


    .contact-copy {

        margin-bottom: 10px;
    }



    /* FOOTER */

    .footer {

        padding: 30px 0;
    }


    .footer-menu {

        justify-content: flex-start;
    }


    .copyright {

        padding-left: 0;

        border-left: none;
    }

}



/* =========================================================
   RESPONSIVE - MÓVIL
   <= 767px
========================================================= */

@media (max-width: 767.98px) {

    .container-site {

        max-width: 100%;

        padding-left: 18px;
        padding-right: 18px;
    }


    /* HEADER */

    .brand-name {

        max-width: 210px;

        font-size: 12px;
    }



    /* HERO */

    .hero-section {

        min-height: auto;
    }


    .hero-section::before {

        background: rgba(255,255,255,0.78);
    }


    .hero-container {

        min-height: auto;
    }


    .min-vh-section {

        min-height: auto;

        padding-top: 55px;
        padding-bottom: 115px;
    }


    .hero-copy {

        max-width: 100%;
    }


    .hero-title {

        font-size: 35px;
        line-height: 1;
    }


    .hero-subtitle {

        font-size: 17px;
    }


    .hero-description {

        font-size: 13px;
    }


    .location-box {

        left: 18px;
        right: 18px;

        bottom: 0;

        min-width: 0;

        width: auto;

        border-radius: 10px 10px 0 0;
    }



    /* SERVICIOS */

    .services-section {

        padding: 35px 0;
    }


    .section-title {

        font-size: 31px;
    }


    .service-card {

        padding: 25px 20px;
    }


    .service-card h3 {

        font-size: 18px;
    }


    .service-card p {

        font-size: 13px;
    }



    /* FOTO SECUNDARIA */

    .secondary-image-section {

        min-height: 220px;
    }



    /* CONTACTO */

    .contact-copy h2 {

        font-size: 31px;
    }


    .contact-copy p {

        font-size: 13px;

        margin-bottom: 15px;
    }


    .custom-input {

        height: 42px;
    }


    .textarea-group {

        height: 70px;
    }


    .btn-submit {

        min-height: 45px;
    }



    /* FOOTER */

    .footer-brand {

        font-size: 11px;
    }


    .footer-menu {

        display: block;
    }


    .footer-menu li {

        margin-bottom: 7px;

        border-right: none;
    }


    .footer-menu a {

        padding: 0;

        font-size: 11px;
    }


    .copyright {

        font-size: 10px;
    }

}



/* =========================================================
   RESPONSIVE - MÓVILES PEQUEÑOS
   <= 575px
========================================================= */

@media (max-width: 575.98px) {

    .hero-title {

        font-size: 31px;
    }


    .hero-subtitle {

        font-size: 16px;
    }


    .section-title {

        font-size: 28px;
    }


    .contact-copy h2 {

        font-size: 28px;
    }


    .section-kicker {

        font-size: 9px;
    }


    .btn-main {

        width: 100%;
    }

}