/* =========================
   RESPONSIVE COMPLETO
========================= */

/* ---------- 1200px ---------- */
@media (max-width: 1200px){
    .container{
        width:min(94%, 1280px);
    }

    .nav-menu{
        gap:22px;
    }

    .hero{
        min-height:680px;
    }

    .hero-stage{
        min-height:680px;
        position:relative;
    }

    .hero-composite,
    .hero-person{
        animation:none !important;
    }

    .hero-composite{
        position:absolute;
        left:50%;
        top:46px;
        transform:translateX(-50%) !important;
        width:min(84%, 500px);
        text-align:center;
        z-index:3;
    }

    .hero-person{
        position:absolute;
        left:50%;
        bottom:0;
        transform:translateX(-50%) !important;
        width:220px;
        display:flex;
        justify-content:center;
        align-items:flex-end;
        z-index:4;
    }

    .hero-person img{
        width:100%;
        max-width:220px;
        height:auto;
        margin:0 auto;
    }

    .cards-grid{
        grid-template-columns:repeat(2, 1fr);
        margin-top:-24px;
    }

    .profile-showcase{
        grid-template-columns:1fr .88fr;
        min-height:auto;
    }

    .profile-education-panel{
        grid-column:1 / -1;
    }

    .profile-portrait-card img{
        max-height:520px;
    }

    .gestion-story-card,
    .gestion-card-featured{
        grid-template-columns:minmax(220px, .58fr) 1fr;
    }

    .news-editorial-header{
        grid-template-columns:1fr 300px;
    }

    .news-featured-card{
        grid-template-columns:minmax(320px, .9fr) 1fr;
    }

    .news-featured-body{
        padding:38px 34px;
    }

    .news-featured-body h3{
        font-size:1.85rem;
    }

    .gallery-dashboard{
        grid-template-columns:1fr;
    }

    .gallery-stats{
        grid-template-columns:repeat(3, 1fr);
    }

    .gallery-mosaic{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        grid-auto-rows:120px;
    }

    .gallery-lightbox-dialog{
        grid-template-columns:1fr 300px;
    }

    .info-card:nth-child(2n){
        border-right:none;
    }

    .info-card:nth-child(-n+2){
        border-bottom:1px solid rgba(0,0,0,.05);
    }
}

/* Barra social persistente en tablet y celular.
   Refuerza el componente frente a CSS cacheado del hosting y evita que quede oculto bajo la UI del navegador. */
@media (max-width: 1024px){
    body{
        padding-bottom:calc(86px + env(safe-area-inset-bottom, 0px)) !important;
    }

    .social-floating{
        display:flex !important;
        visibility:visible !important;
        opacity:1 !important;
        position:fixed !important;
        left:50% !important;
        right:auto !important;
        top:auto !important;
        bottom:calc(14px + env(safe-area-inset-bottom, 0px)) !important;
        transform:translateX(-50%) !important;
        flex-direction:row !important;
        align-items:center !important;
        justify-content:flex-start !important;
        gap:8px !important;
        width:auto !important;
        max-width:calc(100vw - 24px) !important;
        padding:8px !important;
        overflow-x:auto !important;
        border-radius:999px !important;
        background:rgba(255,255,255,.96) !important;
        border:1px solid rgba(0,0,0,.08) !important;
        box-shadow:0 16px 34px rgba(0,0,0,.20) !important;
        z-index:2500 !important;
        backdrop-filter:blur(10px);
        -webkit-backdrop-filter:blur(10px);
        scrollbar-width:none;
    }

    .social-floating::-webkit-scrollbar{
        display:none;
    }

    .social-floating a{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
        border-radius:50% !important;
        font-size:1.15rem !important;
    }

    .social-floating a:hover{
        transform:translateY(-2px) !important;
    }
}

@media (max-width: 576px){
    body{
        padding-bottom:calc(78px + env(safe-area-inset-bottom, 0px)) !important;
    }

    .social-floating{
        bottom:calc(10px + env(safe-area-inset-bottom, 0px)) !important;
        gap:7px !important;
        max-width:calc(100vw - 14px) !important;
        padding:7px !important;
    }

    .social-floating a{
        width:39px !important;
        height:39px !important;
        min-width:39px !important;
        font-size:1.05rem !important;
    }
}

/* ---------- 992px ---------- */
@media (max-width: 992px){
    .navbar{
        position:relative;
    }

    .nav-content{
        display:grid !important;
        grid-template-columns:1fr auto;
        align-items:center;
        gap:14px;
        min-height:auto;
        padding:16px 0;
    }

    .logo{
        display:flex;
        justify-content:flex-start;
        align-items:center;
    }

    .nav-toggle{
        display:flex;
        justify-self:end;
    }

    .nav-menu,
    .nav-cta{
        display:none;
        grid-column:1 / -1;
        width:100%;
    }

    .nav-menu.is-open{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:14px;
        padding:8px 0 4px;
    }

    .nav-cta.is-open{
        display:flex;
        justify-content:center;
        padding-top:4px;
    }

    .nav-menu li{
        display:flex;
        justify-content:center;
    }

    .nav-menu a{
        text-align:center;
        white-space:normal;
        font-size:.95rem;
    }

    .hero{
        min-height:auto;
        overflow:hidden;
        padding:38px 0 0;
    }

    .hero-stage{
        min-height:auto;
        position:relative;
        width:100%;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
        gap:22px;
    }

    .hero-composite,
    .hero-person{
        position:relative !important;
        left:auto !important;
        right:auto !important;
        top:auto !important;
        bottom:auto !important;
        transform:none !important;
        margin:0 auto;
        animation:none !important;
    }

    .hero-composite{
        width:84%;
        max-width:390px;
        text-align:center;
        z-index:2;
    }

    .hero-composite img{
        display:block;
        width:100%;
        height:auto;
        margin:0 auto;
    }

    .hero-person{
        width:190px;
        display:flex;
        justify-content:center;
        align-items:flex-end;
        z-index:3;
    }

    .hero-person img{
        display:block;
        width:100%;
        max-width:190px;
        height:auto;
        margin:0 auto;
    }

    .cards-grid{
        grid-template-columns:1fr;
        gap:14px;
        margin-top:24px;
    }

    .info-card{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        text-align:center;
        gap:16px;
        padding:30px 24px;
        min-height:280px;
        border-right:none;
        border-bottom:1px solid rgba(0,0,0,.05);
    }

    .info-card:last-child{
        border-bottom:none;
    }

    .card-body{
        width:100%;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
    }

    .card-body p,
    .info-card p{
        max-width:520px;
        margin-left:auto;
        margin-right:auto;
    }

    .btn-small{
        margin:0 auto;
    }

    .footer-content{
        grid-template-columns:1fr;
    }

    .footer-brand,
    .footer-links,
    .footer-contact{
        text-align:center;
    }

    .footer-links ul{
        align-items:center;
    }

    .about-grid,
    .detail-grid,
    .stats-grid,
    .profile-showcase,
    .profile-credentials-grid,
    .contacto-shell,
    .gestion-overview,
    .gestion-grid,
    .impact-grid,
    .news-grid,
    .noticia-layout,
    .contacto-grid{
        grid-template-columns:1fr;
    }

    .profile-showcase{
        min-height:auto;
    }

    .profile-intro-panel,
    .profile-education-panel{
        padding:42px 30px;
    }

    .profile-intro-panel h2{
        font-size:2.75rem;
    }

    .profile-script{
        font-size:3.5rem;
    }

    .profile-portrait-card{
        min-height:430px;
        padding-top:24px;
    }

    .profile-portrait-card img{
        max-height:430px;
    }

    .profile-stats-strip{
        margin-top:24px;
        padding-bottom:20px;
    }

    .profile-stat-card{
        max-width:520px;
        width:100%;
        margin:0 auto;
    }

    .profile-credentials-section{
        padding-top:70px;
    }

    .recognition-card{
        grid-template-columns:1fr;
    }

    .news-editorial-header,
    .news-featured-card{
        grid-template-columns:1fr;
    }

    .news-ledger{
        max-width:520px;
    }

    .news-featured-media{
        min-height:320px;
        aspect-ratio:16 / 9;
    }

    .news-featured-media .news-image-placeholder{
        min-height:320px;
    }

    .gallery-dashboard-copy{
        padding:34px 28px;
    }

    .gallery-dashboard-copy h2{
        font-size:2.15rem;
    }

    .gallery-toolbar{
        top:14px;
    }

    .gallery-mosaic{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        grid-auto-rows:118px;
    }

    .gallery-tile-hero,
    .gallery-tile-wide{
        grid-column:span 2;
    }

    .gallery-lightbox-dialog{
        grid-template-columns:1fr;
        max-height:88vh;
        overflow:auto;
    }

    .gallery-lightbox-media{
        min-height:360px;
    }

    .gallery-lightbox-media iframe{
        min-height:360px;
    }

    .gallery-lightbox-info{
        padding:26px 24px;
    }

    .gallery-empty-state{
        grid-template-columns:1fr;
    }

    .contacto-form-pro{
        position:relative;
        top:auto;
    }

    .contacto-card-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .gestion-overview-copy,
    .gestion-overview-panel{
        padding:34px 28px;
    }

    .gestion-overview-copy h2{
        font-size:2.2rem;
    }

    .gestion-year-story{
        padding-left:26px;
    }

    .gestion-card-featured,
    .gestion-story-card{
        grid-template-columns:minmax(240px, .45fr) 1fr;
    }

    .gestion-story-card .gestion-card-body{
        padding:26px 24px;
    }

    body{
        padding-bottom:78px;
    }

    .social-floating{
        left:50%;
        top:auto;
        bottom:14px;
        transform:translateX(-50%);
        flex-direction:row;
        align-items:center;
        gap:8px;
        max-width:calc(100vw - 24px);
        padding:8px;
        overflow-x:auto;
        border-radius:999px;
        background:rgba(255,255,255,.94);
        border:1px solid rgba(0,0,0,.08);
        box-shadow:0 16px 34px rgba(0,0,0,.18);
        backdrop-filter:blur(10px);
        scrollbar-width:none;
    }

    .social-floating::-webkit-scrollbar{
        display:none;
    }

    .social-floating a{
        width:42px;
        height:42px;
        min-width:42px;
        border-radius:50%;
        font-size:1.15rem;
    }

    .social-floating a:hover{
        transform:translateY(-2px);
    }
}

/* ---------- 768px ---------- */
@media (max-width: 768px){
    .container{
        width:min(94%, 1280px);
    }

    .logo img{
        height:52px;
    }

    .nav-toggle{
        width:44px;
        height:44px;
    }

    .btn-contact{
        min-width:128px;
        height:42px;
        font-size:.88rem;
    }

    .hero{
        padding:34px 0 0;
    }

    .hero-stage{
        gap:20px;
    }

    .hero-composite{
        width:84%;
        max-width:340px;
    }

    .hero-person{
        width:170px;
    }

    .hero-person img{
        max-width:170px;
    }

    .info-card{
        padding:28px 20px;
    }

    .icon-circle{
        width:64px;
        height:64px;
        min-width:64px;
        font-size:1.35rem;
        border-radius:18px;
    }

    .card-body h3,
    .info-card h3{
        font-size:1.3rem;
        text-align:center;
    }

    .card-body p,
    .info-card p{
        font-size:.96rem;
        line-height:1.65;
        text-align:center;
    }

    .btn-small{
        min-width:108px;
        height:40px;
        font-size:.9rem;
    }

    .footer-content{
        padding:40px 0 24px;
        gap:24px;
    }

    .multimedia-grid{
        grid-template-columns:repeat(2, 1fr);
        gap:20px;
    }

    .profile-intro-panel h2,
    .section-heading h2{
        font-size:2.15rem;
    }

    .profile-education-panel h3{
        font-size:1.65rem;
    }

    .credential-card h3{
        font-size:1.35rem;
    }

    .election-number{
        font-size:3.4rem;
    }

    .gestion-overview-copy h2,
    .gestion-year-story .gestion-year-header h3{
        font-size:1.95rem;
    }

    .gestion-card-featured,
    .gestion-story-card{
        grid-template-columns:1fr;
    }

    .gestion-story-card .gestion-card-image,
    .gestion-card-featured .gestion-card-image{
        min-height:220px;
        aspect-ratio:16 / 9;
    }

    .gestion-story-card .gestion-card-top{
        align-items:flex-start;
    }

    .gestion-card-featured h4,
    .gestion-story-card h4{
        font-size:1.26rem;
    }

    .overview-metrics{
        grid-template-columns:1fr;
    }

    .news-editorial-header h2{
        font-size:2.1rem;
    }

    .news-featured-body h3{
        font-size:1.7rem;
    }

    .news-archive-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .public-pagination{
        align-items:stretch;
    }

    .pagination-edge{
        flex:1;
    }
}

/* ---------- 576px ---------- */
@media (max-width: 576px){
    .logo img{
        height:46px;
    }

    .nav-menu a{
        font-size:.88rem;
    }

    .btn-contact{
        min-width:122px;
        height:42px;
        border-radius:12px;
        font-size:.88rem;
    }

    .hero{
        padding:28px 0 0;
    }

    .hero-stage{
        gap:18px;
    }

    .hero-composite{
        width:84%;
        max-width:285px;
    }

    .hero-person{
        width:150px;
    }

    .hero-person img{
        max-width:150px;
    }

    .info-card{
        padding:26px 18px;
        min-height:auto;
    }

    .card-body h3,
    .info-card h3{
        font-size:1.18rem;
    }

    .card-body p,
    .info-card p{
        font-size:.93rem;
    }

    .footer-brand img{
        height:50px;
        margin:0 auto 14px;
    }

    .footer-bottom{
        font-size:.86rem;
        padding:14px 10px;
    }

    .multimedia-grid{
        grid-template-columns:1fr;
    }

    .multimedia-body{
        padding:20px 18px 22px;
    }

    .profile-showcase{
        border-radius:0;
        margin-left:-3%;
        margin-right:-3%;
    }

    .profile-intro-panel,
    .profile-education-panel,
    .credential-card{
        padding:30px 22px;
    }

    .profile-script{
        font-size:3rem;
    }

    .profile-intro-panel h2{
        font-size:2rem;
    }

    .profile-portrait-card{
        min-height:360px;
    }

    .profile-portrait-card img{
        max-height:360px;
    }

    .profile-stat-card{
        grid-template-columns:52px 1fr;
        padding:18px;
    }

    .stat-icon{
        width:48px;
        height:48px;
    }

    .profile-stat-card h3{
        font-size:2.1rem;
    }

    .recognition-icon{
        width:64px;
        height:64px;
    }

    .gestion-overview-copy,
    .gestion-overview-panel,
    .gestion-story-card .gestion-card-body{
        padding:28px 20px;
    }

    .gestion-overview-copy h2{
        font-size:1.75rem;
    }

    .gestion-category-summary{
        gap:8px;
    }

    .gestion-category-chip{
        width:100%;
        justify-content:center;
    }

    .overview-panel-header{
        flex-direction:column;
    }

    .gestion-year-story{
        padding-left:18px;
        padding-bottom:42px;
    }

    .gestion-year-story::before{
        left:0;
    }

    .gestion-year-story::after{
        left:-8px;
    }

    .gestion-year-story .gestion-year-header{
        align-items:flex-start;
    }

    .gestion-year-story .gestion-year-pill{
        width:100%;
    }

    .gestion-story-card .gestion-card-image,
    .gestion-card-featured .gestion-card-image{
        min-height:190px;
    }

    .gestion-story-card .gestion-card-top{
        flex-direction:column;
        gap:10px;
    }

    .news-editorial-header h2{
        font-size:1.75rem;
    }

    .news-ledger{
        grid-template-columns:1fr;
    }

    .news-ledger-item{
        min-height:auto;
        padding:18px;
    }

    .news-featured-media{
        min-height:230px;
    }

    .news-featured-media .news-image-placeholder{
        min-height:230px;
    }

    .news-featured-body{
        padding:28px 20px;
    }

    .news-featured-body h3{
        font-size:1.45rem;
    }

    .news-featured-footer{
        align-items:flex-start;
        flex-direction:column;
    }

    .news-card-modern .news-body{
        padding:22px 18px;
    }

    .news-date-chip{
        left:12px;
        top:12px;
    }

    .pagination-pages{
        order:-1;
        width:100%;
        justify-content:center;
    }

    .gallery-dashboard-copy{
        padding:28px 20px;
    }

    .gallery-dashboard-copy h2{
        font-size:1.75rem;
    }

    .gallery-stats{
        grid-template-columns:1fr;
    }

    .gallery-stats div{
        min-height:118px;
    }

    .gallery-toolbar{
        width:100%;
        justify-content:stretch;
        border-radius:18px;
        flex-wrap:wrap;
    }

    .gallery-filter{
        flex:1;
        padding:0 12px;
        font-size:.84rem;
    }

    .gallery-mosaic{
        grid-template-columns:1fr;
        grid-auto-rows:auto;
    }

    .gallery-tile,
    .gallery-tile-hero,
    .gallery-tile-wide,
    .gallery-tile-tall{
        grid-column:auto;
        grid-row:auto;
        aspect-ratio:4 / 3;
    }

    .gallery-tile-hero{
        aspect-ratio:1 / 1;
    }

    .gallery-caption{
        padding:18px;
    }

    .gallery-tile-hero .gallery-caption strong,
    .gallery-caption strong{
        font-size:1.05rem;
    }

    .gallery-caption span:last-child{
        font-size:.82rem;
    }

    .gallery-empty-state{
        padding:24px 18px;
    }

    .gallery-empty-preview{
        grid-auto-rows:92px;
    }

    .gallery-lightbox{
        padding:14px;
    }

    .gallery-lightbox-media{
        min-height:260px;
    }

    .gallery-lightbox-media iframe{
        min-height:260px;
    }

    .gallery-lightbox-info h2{
        font-size:1.35rem;
    }

    .gallery-lightbox-close{
        top:12px;
        right:12px;
    }

    .contacto-pro-info,
    .contacto-form-pro{
        padding:30px 20px;
    }

    .contacto-pro-info h2,
    .contacto-form-pro h2{
        font-size:1.75rem;
    }

    .contacto-actions-row,
    .contacto-primary-action,
    .contacto-secondary-action{
        width:100%;
    }

    .contacto-card-grid{
        grid-template-columns:1fr;
    }

    .contacto-card-link{
        min-height:auto;
    }

    .contacto-map-card iframe{
        height:280px;
    }

    .contacto-map-overlay{
        align-items:flex-start;
        flex-direction:column;
    }

    .footer-logo-card{
        margin-left:auto;
        margin-right:auto;
    }

    body{
        padding-bottom:72px;
    }

    .social-floating{
        bottom:10px;
        padding:7px;
        gap:7px;
    }

    .social-floating a{
        width:39px;
        height:39px;
        min-width:39px;
        font-size:1.05rem;
    }
}

/* ---------- 420px ---------- */
@media (max-width: 420px){
    .logo img{
        height:42px;
    }

    .nav-toggle{
        width:42px;
        height:42px;
    }

    .nav-menu a{
        font-size:.84rem;
    }

    .btn-contact{
        min-width:116px;
        height:40px;
        font-size:.84rem;
    }

    .hero{
        padding:24px 0 0;
    }

    .hero-composite{
        max-width:250px;
    }

    .hero-person{
        width:138px;
    }

    .hero-person img{
        max-width:138px;
    }

    .page-hero-content h1{
        font-size:2.2rem;
    }

    .page-hero-content p{
        font-size:.96rem;
    }

    .social-floating{
        max-width:calc(100vw - 14px);
    }
}

@media (max-width: 992px){
    .gestion-balance-board{
        background:#f2f2f2;
    }

    .gestion-balance-head,
    .gestion-balance-row{
        grid-template-columns:1fr;
    }

    .balance-head-obras,
    .gestion-ledger-right{
        background:#ef2443;
    }

    .gestion-balance-row::before{
        display:none;
    }

    .gestion-year-marker{
        order:-1;
        padding:22px 20px 0;
        justify-content:flex-start;
    }

    .gestion-year-marker span{
        min-width:0;
        background:transparent;
        color:#151515;
        font-size:2.35rem;
    }

    .recognition-card-award{
        grid-template-columns:1fr;
    }

    .recognition-award{
        justify-self:start;
        width:min(460px, 100%);
    }
}

@media (max-width: 768px){
    .balance-head-panel{
        padding:28px 22px;
        align-items:flex-start;
    }

    .balance-head-panel h2{
        font-size:1.65rem;
    }

    .balance-head-obras h2{
        font-size:2.8rem;
    }

    .gestion-ledger-column{
        padding:20px;
    }

    .gestion-ledger-item{
        grid-template-columns:1fr;
    }

    .gestion-ledger-image{
        width:100%;
        height:auto;
        aspect-ratio:16 / 9;
    }

    .gallery-more-panel{
        align-items:flex-start;
        flex-direction:column;
        padding:24px 20px;
    }

    .gallery-more-button{
        width:100%;
    }
}

@media (max-width: 576px){
    .balance-head-panel{
        flex-direction:column;
        gap:14px;
    }

    .gestion-ledger-column{
        padding:16px;
    }

    .gestion-ledger-item{
        padding:15px;
    }

    .gestion-year-marker{
        padding:18px 16px 0;
    }

    .recognition-award{
        padding:10px;
    }
}
