/* ----GENERALES---- */
body {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
}

/* ---NAVBAR--- */
.header-sticky {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: #D0DEF2;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.navbar {
    padding: 0;
}

.logo-nav {
    height: 50px;
    width: auto;
}

.navbar-nav .nav-link,
.dropdown-item {
    font-family: 'Aclonica', sans-serif;
    font-size: 14px;
    letter-spacing: 0.5px;
    font-weight: 400;
    text-transform: uppercase;
}

.navbar-nav .nav-link {
    padding: 22px 28px;
    color: #0F2F53;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 1px;
}

.navbar-nav .nav-link:hover {
    color: #77A8DA !important;
}

.navbar-nav .nav-link.active {
    font-weight: 600;
}

.dropdown-menu {
    background-color: #CDDBED;
    border: none;
}

.dropdown-item {
    padding: 10px 18px;
    color: #0F2F53;
}

.dropdown-item:hover {
    background-color: #D0DEF2;
    color: #77A8DA;
}

/* -----HERO------- */
#hero {
    padding: 40px 0;
}

.hero-sketch-izq,
.hero-sketch-der {
    width: 900px;
    max-width: 300px;
}

.hero-logo {
    width: 70%;
    max-width: 350px;
}

/* ----NOSOTROS--- */
.seccion-nosotros {
    width: 100%;
    text-align: center;
    padding: 70px 0;
}

.titulo-seccion {
    font-size: 38px;
    font-weight: 700;
    color: #1D5FA7;
    letter-spacing: 1px;
    margin-bottom: 25px;
}

.texto-nosotros {
    width: 100%;
    max-width: 1400px;
    margin: auto;
    padding: 0 60px;
    font-size: 17px;
    line-height: 1.65;
    color: #0F2F53;
}

/* ----MISIÓN / VISIÓN--- */
.seccion-mv {
    padding: 70px 0;
}

.mv-titulo {
    color: #1D5FA7;
    font-weight: 700;
    font-size: 32px;
    margin-bottom: 15px;
}

.mv-texto {
    font-size: 16px;
    line-height: 1.6;
    color: #0F2F53;
    padding: 0 20px;
}

.mv-imagen {
    width: 100%;
    max-width: 380px;
}

/* ---SERVICIOS---- */
.seccion-servicios {
    padding: 70px 0;
}

.servicio-item {
    margin-top: 40px;
}

.servicio-link {
    text-decoration: none;
    color: inherit;
    display: inline-block;
}

.servicio-link:hover {
    text-decoration: none;
}

.servicio-contenido {
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center;
}

.servicio-img {
    width: 110px;
}

.servicio-texto {
    font-size: 18px;
    font-weight: 600;
    color: #0F2F53;
    text-align: left;
    margin: 0;
    line-height: 1.3;
}

/* ---PROYECTOS----- */
.seccion-proyectos {
    padding: 70px 0;
}

.proyecto-item {
    margin-top: 30px;
}

.proyecto-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 4px;
}

/* ---FRASE--- */
.seccion-frase {
    width: 100%;
    padding: 60px 0;
    text-align: center;
}

.frase-texto {
    font-family: 'Aclonica', sans-serif;
    font-size: 32px;
    color: #0F2F53;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0;
}

/* ----CONTACTO--- */
.seccion-contacto {
    padding: 70px 0;
}

.contacto-item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 10px 0;
    text-decoration: none;
}

.contacto-item:hover {
    opacity: 0.85;
}

.contacto-icon {
    width: 26px;
}

.contacto-texto {
    font-size: 17px;
    font-weight: 600;
    color: #0F2F53;
}

.direccion-box {
    gap: 10px;
}

.direccion-texto {
    font-size: 16px;
    font-weight: 500;
    color: #0F2F53;
}

.contacto-mapa {
    width: 100%;
    height: 400px;
    border: 0;
    border-radius: 4px;
}

/* ----- FOOTER------ */
.icono-politicas {
    width: 28px;
}

.politicas-text {
    font-family: 'Aclonica', sans-serif;
    font-size: 16px;
    color: #0F2F53;
    text-decoration: none;
}

.politicas-text:hover {
    color: #77A8DA;
}

.derechos {
    font-size: 14px;
    color: #0F2F53;
    margin-top: 10px;
}

/* ====== Carrusel Modal (si lo usas) ====== */
.img-carrusel {
    cursor: pointer;
}

.modal-content img {
    max-height: 90vh;
    object-fit: contain;
}

/* =========================
   PÁGINAS INTERNAS (SERVICIOS)
========================= */
.modelado-img {
    max-width: 420px;
    margin: auto;
}

.modelado-texto {
    font-size: 16px;
    line-height: 1.6;
    color: #0F2F53;
}

/* =========================
   OWL CAROUSEL (MODELADO 3D) - FIX FLECHAS
========================= */
.modelado-carousel {
    position: relative;
}

/* Flechas a los lados, centradas verticalmente */
.modelado-carousel .owl-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    padding: 0 12px;
    pointer-events: none; /* no tapa clics */
}

.modelado-carousel .owl-nav button {
    pointer-events: auto;
    width: 40px;
    height: 40px;
    border: 2px solid #0F2F53 !important;
    background: #ffffff !important;
    color: #0F2F53 !important;
    font-size: 22px !important;
    line-height: 1;
}

.modelado-carousel .owl-nav button:hover {
    background: #D0DEF2 !important;
}

/* ===============================
   MEDIA QUERIES
=============================== */

/* HERO RESPONSIVE >=992 */
@media (min-width: 992px) {
    .hero-col-izq { order: 1; }
    .hero-col-logo { order: 2; }
    .hero-col-der { order: 3; }
}

/* GLOBAL <=768 */
@media (max-width: 768px) {

    /* NAV */
    .logo-nav { height: 40px; }
    .navbar-nav .nav-link { padding: 14px 16px; }

    /* HERO */
    #hero .row {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .hero-sketch-izq,
    .hero-sketch-der {
        width: 90%;
        max-width: 380px;
        margin: 18px 0;
    }

    .hero-logo {
        width: 70%;
        max-width: 320px;
        margin: 18px 0;
    }

    .hero-col-izq,
    .hero-col-logo,
    .hero-col-der {
        text-align: center;
    }

    /* TITULOS */
    .titulo-seccion { font-size: 30px; }

    /* NOSOTROS */
    .texto-nosotros {
        padding: 0 20px;
        font-size: 15px;
    }

    /* MIVI */
    .mv-col { margin-bottom: 40px; }
    .mv-titulo { font-size: 26px; }
    .mv-texto { font-size: 15px; padding: 0 30px; }
    .mv-imagen { max-width: 260px; margin: 0 auto; }

    /* SERVICIOS (solo en móvil pasa a columna) */
    .servicio-contenido {
        flex-direction: column;
        text-align: center;
    }

    .servicio-img { width: 130px; }
    .servicio-texto { text-align: center; font-size: 17px; }

    /* PROYECTOS */
    .proyecto-item { margin-bottom: 25px; }
    .proyecto-img { max-width: 90%; }

    /* CONTACTO */
    .contacto-item {
        flex-direction: column;
        margin-bottom: 20px;
    }

    .contacto-item img {
        width: 32px;
        height: 32px;
        object-fit: contain;
    }

    .contacto-texto { font-size: 15px; }
    .direccion-texto { font-size: 14px; text-align: center; padding: 0 20px; }
    .contacto-icon { width: 22px; }

    /* FRASE */
    .frase-texto { font-size: 24px; }
}

/* ===== FIX REAL: separación imagen-texto en páginas de servicios ===== */
@media (max-width: 768px) {

  /* Columna de la imagen */
  .seccion-modelado .col-12.col-md-6:first-child {
    margin-bottom: 70px; /* espacio visual claro */
  }

  /* Ajuste fino del texto */
  .modelado-texto {
    line-height: 1.7;
  }
}

