/* Ajustes responsivos compartidos por todo el sitio público. */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }
body { min-width: 320px; }
img, svg, video, canvas { max-width: 100%; }
iframe { max-width: 100%; }

/* Evita que textos largos (correo, enlaces y nombres) ensanchen la página. */
p, li, a, h1, h2, h3, h4 { overflow-wrap: break-word; }

/* Mantiene legibles las páginas en monitores grandes. */
@media (min-width: 1200px) {
    .navbar-fixed-top > .container { width: min(100%, 1440px); }
    .navbar-fixed-top .navbar-nav { font-size: 11px; }
    .navbar-fixed-top .navbar-nav > li > a {
        min-height: 70px;
        display: flex;
        align-items: center;
    }
}

/* En notebook el logo también necesita su espacio; la regla original solo
   lo reservaba desde 1350 px y podía tapar HOME entre 1200 y 1349 px. */
@media (min-width: 1200px) and (max-width: 1349px) {
    .navbar-fixed-top > .container {
        width: 100%;
        padding-left: 235px;
        padding-right: 24px;
    }
    .navbar-fixed-top .navbar-brand { left: 42px !important; }
    .navbar-fixed-top .navbar-nav > li > a {
        padding-left: 7px !important;
        padding-right: 7px !important;
    }
    .navbar-fixed-top .navbar-nav .bull {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}

/* Bootstrap 3 despliega el menú desde 768 px, demasiado pronto para los
   seis enlaces actuales. En tablet se conserva el menú hamburguesa. */
@media (min-width: 768px) and (max-width: 1199px) {
    :root { --altura-navbar: 75px; }
    .navbar-fixed-top .navbar-header { float: none; min-height: 74px; }
    .navbar-fixed-top .navbar-toggle {
        display: block;
        margin-top: 18px;
        border-color: #ddd8d0;
    }
    .navbar-fixed-top .navbar-toggle .icon-bar { background: #5B534A; }
    .navbar-fixed-top .navbar-brand {
        position: static !important;
        float: left;
        margin-left: 0 !important;
    }
    .navbar-fixed-top .logo-barra { height: 52px; margin-top: 10px; }
    .navbar-fixed-top .navbar-collapse.collapse { display: none !important; }
    .navbar-fixed-top .navbar-collapse.collapse.in { display: block !important; }
    .navbar-fixed-top .navbar-collapse {
        float: none !important;
        width: 100%;
        max-height: calc(100vh - 74px);
        overflow-y: auto !important;
        border-top: 1px solid #ece7de;
        background: #fff;
    }
    .navbar-fixed-top .navbar-nav {
        float: none !important;
        width: 100%;
        margin: 6px 0;
        font-size: 15px;
    }
    .navbar-fixed-top .navbar-nav > li { float: none; display: block; }
    .navbar-fixed-top .navbar-nav > li > a {
        padding: 14px 22px !important;
        border-bottom: 1px solid #f0ece4;
    }
    .navbar-fixed-top .navbar-nav .bull { display: none !important; }
}

@media (max-width: 767px) {
    body { line-height: 1.55; }
    .container, .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
    }
    h1 { font-size: clamp(26px, 9vw, 36px) !important; line-height: 1.12 !important; }
    h2 { line-height: 1.18 !important; }

    /* Secciones con columnas antiguas: aire uniforme y orden vertical. */
    .experiencia-unica .row { display: block !important; }
    .experiencia-unica .col-sm-4,
    .experiencia-unica .col-sm-8 { padding-left: 15px !important; padding-right: 15px !important; }
    .experiencia-unica .col-sm-8 { margin-top: 28px; }

    /* Galerías, tarjetas y modales. */
    .modal-dialog { width: auto !important; max-width: calc(100% - 20px); margin: 10px auto !important; }
    .modal-content { max-height: calc(100vh - 20px); overflow-y: auto; }
    .detalle-grid { grid-template-columns: 1fr !important; grid-auto-rows: auto !important; }
    .filter-btn { min-width: 100% !important; }

    /* Formularios y mapas. */
    input:not([type="checkbox"]):not([type="radio"]), select, textarea {
        max-width: 100%;
        min-height: 44px;
    }
    textarea { min-height: 120px; }
    iframe { width: 100%; }

    /* Tablas heredadas: desplazamiento local, sin romper toda la página. */
    .table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    table { max-width: 100%; }

    .btn-whatsapp { bottom: 14px; right: 14px; }
}

@media (max-width: 380px) {
    .navbar-inverse .navbar-nav > li > a { padding-left: 14px !important; padding-right: 14px !important; }
    .pie .col2, .pie .col3 { padding-left: 10px; padding-right: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
