:root {
    --gobbo-verde: #424b40;
    --gobbo-verde-2: #5c6658;
    --gobbo-texto: #25313b;
}

.gobbo-section-header { margin-bottom: 1rem; }
.gobbo-divider { display:flex; align-items:center; gap:1rem; color:var(--gobbo-texto); font-weight:700; font-size:1.55rem; }
.gobbo-divider:before, .gobbo-divider:after { content:""; height:1px; background:#444; flex:1; opacity:.9; }
.gobbo-divider:before { max-width:24px; }
.gobbo-see-all { display:block; text-align:right; color:#303c48; text-decoration:none; margin-top:.5rem; }
.gobbo-see-all:hover { text-decoration:underline; }
.gobbo-card { border-radius:20px; padding:1.55rem; transition:.2s ease; }
.gobbo-card:hover { transform:translateY(-2px); box-shadow:0 9px 24px rgba(0,0,0,.12); }
.tramite-card { background:var(--gobbo-verde); color:#fff; min-height:270px; display:flex; flex-direction:column; justify-content:space-between; }
.tramite-card:nth-child(even) { background:var(--gobbo-verde-2); }
.tramite-card h3 { color:#fff; font-size:1.45rem; font-weight:700; line-height:1.18; margin-bottom:1rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.tramite-card p { color:#fff; line-height:1.45; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.gobbo-code { font-weight:800; letter-spacing:.04em; margin-bottom:.5rem; }
.boton-tramite { background:#333b33; color:#fff; font-weight:700; border:none; }
.boton-tramite:hover { background:#202620; color:#fff; }
.servicio-card-link { text-decoration:none; color:inherit; }
.servicio-card { min-height:235px; border:1px solid #424740; background:#fff; color:var(--gobbo-texto); }
.servicio-card h3 { font-size:1.2rem; font-weight:800; color:var(--gobbo-texto); line-height:1.1; }
.servicio-card p { color:#344250; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.servicio-icono { width:54px; height:54px; object-fit:contain; }
.servicio-fallback-icon { font-size:2.4rem; color:var(--gobbo-verde); }
.catalogo-list-card { border-radius:20px; border-color:var(--gobbo-verde)!important; }
.catalogo-detalle { border-radius:20px; }
.btn-gobbo { background:var(--gobbo-verde); color:#fff; border-color:var(--gobbo-verde); }
.btn-gobbo:hover { background:#30372e; color:#fff; border-color:#30372e; }
.direccion-card { border:1px solid #ccd1d6; border-radius:6px; padding:1rem; background:#fff; }
.direccion-card h2 { font-size:1rem; font-weight:800; margin-bottom:1rem; }
.direccion-card p { font-size:1.05rem; margin-bottom:1rem; }
.map-preview { min-height:130px; background:#eee; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.map-preview iframe { width:100%; height:130px; border:0; filter:saturate(.8); }
.map-preview.no-map { color:#6b7280; border:1px dashed #cbd5e1; }
.organigrama-wrapper { background:#fff; overflow:auto; border-radius:10px; padding:1rem; }
.organigrama-img { min-width:860px; }
.rrhh-tree { position:relative; }
.rrhh-unit, .rrhh-subunit { margin:.45rem 0 .45rem 0; }
.rrhh-unit summary, .rrhh-subunit summary { list-style:none; display:inline-flex; align-items:center; gap:.7rem; background:var(--gobbo-verde); color:#fff; padding:.75rem 1rem; border-radius:4px; cursor:pointer; font-weight:500; }
.rrhh-unit summary::-webkit-details-marker, .rrhh-subunit summary::-webkit-details-marker { display:none; }
.rrhh-subunit { margin-left:20px; padding-left:10px; border-left:1px solid #424740; }
.rrhh-personas { display:flex; flex-wrap:wrap; gap:1.2rem; margin:1.3rem 0 1.3rem 70px; }
.rrhh-persona { width:165px; text-align:center; }
.rrhh-avatar { width:80px; height:80px; border-radius:50%; margin:0 auto .35rem; border:2px solid #70756f; background:#efefef; display:flex; align-items:center; justify-content:center; overflow:hidden; color:#444; font-size:2.2rem; }
.rrhh-avatar img { width:100%; height:100%; object-fit:cover; }
.rrhh-card { border:1px solid #ccd1d6; border-radius:4px; padding:.45rem; min-height:66px; background:#fff; }
.rrhh-card strong { display:block; line-height:1.05; font-size:.9rem; text-transform:uppercase; }
.rrhh-card span { display:block; line-height:1.05; font-size:.75rem; text-transform:uppercase; color:#334155; }
/* ===== Fix responsive acotado para módulos meteorología/hidrología ===== */
main .table-responsive {
    overflow-x: auto;
}

main [class*="map"],
main [class*="gis"],
main [id*="map"],
main [id*="gis"] {
    max-width: 100%;
}

main .meteo-map-img {
    width: 100%;
    max-width: 520px;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

main .sinop-img {
    width: 100%;
    max-width: 1100px;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

@media (max-width: 991.98px) {
    main .nav.nav-pills {
        overflow-x: auto;
        flex-wrap: nowrap;
        gap: .5rem;
        padding-bottom: .5rem;
    }

    main .nav.nav-pills .nav-item {
        flex: 0 0 auto;
    }

    main .nav.nav-pills .nav-link {
        white-space: nowrap;
    }
}

@media (max-width: 768px) {
    .rrhh-personas { margin-left:10px; }
    .organigrama-img { min-width:650px; }

    main .container,
    main .container-fluid {
        padding-left: .75rem;
        padding-right: .75rem;
    }
}
