/*
Theme Name: Geoparque Volcán Tungurahua
Theme URI: https://geoparquevolcantungurahua.org
Author: Geoparque Volcán Tungurahua
Author URI: https://geoparquevolcantungurahua.org
Description: Theme oficial del Geoparque Mundial UNESCO Volcán Tungurahua. Diseñado para geoeducación, geoconservación y geoturismo con menú jerárquico infinito, hero con video slider, mapa interactivo de geositios y carruseles dinámicos.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: geoparque
Tags: custom-menu, custom-logo, featured-images, threaded-comments, translation-ready
*/

/* ============================================
   CSS CUSTOM PROPERTIES
   ============================================ */
@font-face{font-family:'Trajan';src:local('Trajan Pro Bold'),local('TrajanPro-Bold');font-weight:700}
@font-face{font-family:'HelvNeu';src:local('Helvetica Neue LT Std 75 Bold'),local('HelveticaNeueLTStd-Bd');font-weight:700}

:root{
  --c:#00ACC8;
  --cd:#0092a8;
  --cg:rgba(0,172,200,.2);
  --a:#FFC843;
  --ag:rgba(255,200,67,.2);
  --s:#CFDB00;
  --bg:#003B49;
  --bgl:#006068;
  --w:#fff;
  --g50:#f8f9fa;
  --g100:#f0f2f5;
  --g200:#e1e5ea;
  --g400:#8a95a5;
  --g600:#4a5568;
  --ft:'Trajan','Fraunces',serif;
  --fh:'HelvNeu','Sora',sans-serif;
  --ff-body:'Sora',sans-serif;
  --ff-head:'Fraunces',serif;
  --fs-base:16px;
}

/* ============================================
   RESET & BASE
   ============================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--ff-body);font-size:var(--fs-base);color:#333;background:var(--w);overflow-x:hidden}

/* ============================================
   TOPBAR
   ============================================ */
.topbar{background:var(--c);padding:6px 32px;display:flex;align-items:center;justify-content:space-between;font-size:.62rem;color:#fff;font-family:'Sora';font-weight:500;gap:12px;flex-wrap:wrap;position:static;z-index:1001}
.topbar-left{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.topbar-left span{display:flex;align-items:center;gap:5px}
.topbar-left a{color:#fff;text-decoration:none;transition:opacity .2s}.topbar-left a:hover{opacity:.8}
.topbar-right{display:flex;align-items:center;gap:8px}
.topbar-right a{color:#fff;text-decoration:none;width:24px;height:24px;background:rgba(255,255,255,.18);border-radius:5px;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0}
.topbar-right a svg{width:13px;height:13px;display:block;fill:currentColor}
.topbar-right a:hover{background:#ffc843;color:var(--bg)}
@media(max-width:640px){.topbar{padding:5px 14px;font-size:.55rem}.topbar-left span:last-child{display:none}}

/* ============================================
   NAV
   ============================================ */
nav{position:sticky;top:0;z-index:1000;padding:0 24px;height:62px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;background:var(--bg);box-shadow:0 2px 10px rgba(0,0,0,.18);gap:16px}
.nl-logos{display:flex;align-items:center;gap:6px;flex-shrink:0}
.nl-logo-link{text-decoration:none;display:flex;align-items:center;flex-shrink:0}
.nl-t-link{text-decoration:none;flex-shrink:0}
.nl-t{display:none;flex-direction:column;line-height:1.15}
/* Nav logo boxes — responsive, show real colors */
.nl-i,.nl-i2,.nl-i3,.nl-i4{
  height:52px;
  max-height:52px;
  width:auto;
  max-width:160px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  flex-shrink:0;
  transition:opacity .2s;
  padding:5px 8px;
  box-sizing:border-box;
}
.nl-i{background:var(--a);min-width:52px;font-size:1.2rem}
.nl-i2,.nl-i3,.nl-i4{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);min-width:52px}
.nl-i img,.nl-i2 img,.nl-i3 img,.nl-i4 img{
  max-height:42px;
  width:auto;
  max-width:100%;
  object-fit:contain;
  display:block;
  filter:none;
}
.nl-i2 span,.nl-i3 span,.nl-i4 span{font-size:.6rem;color:rgba(255,255,255,.45);font-family:var(--ff-body,'Sora');font-weight:600}
.nl-logo-link:hover .nl-i,.nl-logo-link:hover .nl-i2,.nl-logo-link:hover .nl-i3,.nl-logo-link:hover .nl-i4{opacity:.82}
.nc{background:var(--c)!important;color:var(--bg)!important;font-weight:600!important;border-radius:8px!important;align-self:center;padding:7px 14px!important}
.mmb{display:none;background:none;border:none;color:var(--w);font-size:1.5rem;cursor:pointer;padding:4px 8px;line-height:1;flex-shrink:0;z-index:1002;position:relative;width:36px;height:36px;align-items:center;justify-content:center}

/* =========================================
   DESKTOP NAV (>900px) — hover opens submenus
   ========================================= */
@media(min-width:901px){
  .mmb{display:none!important}
  .nk{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;height:100%;position:static;background:transparent;flex-direction:row;overflow:visible}
  .nk>a,.nk>.has-sub{display:flex;align-items:center;height:100%}
  .nk a{color:rgba(255,255,255,.82);text-decoration:none;font-size:.72rem;font-weight:500;padding:6px 11px;border-radius:6px;transition:background .18s,color .18s;line-height:1;white-space:nowrap;display:block}
  .nk a:hover{background:rgba(255,255,255,.09);color:#fff}
  /* parent with children */
  .nk .has-sub{position:relative;display:flex;align-items:center;height:100%}
  .nk .has-sub>a::after{content:"›";font-size:.8rem;opacity:.55;margin-left:3px;display:inline-block;transform:rotate(90deg);transition:transform .18s,opacity .18s;vertical-align:middle}
  .nk .has-sub:hover>a::after{opacity:.9;transform:rotate(270deg)}
  /* L1 dropdown */
  .nk>.has-sub>.sub{display:none;position:absolute;top:100%;left:0;background:var(--bg);border-radius:0 8px 8px 8px;min-width:200px;box-shadow:0 8px 28px rgba(0,0,0,.28);padding:6px 0 8px;z-index:300;border:1px solid rgba(255,255,255,.08)}
  .nk>.has-sub:hover>.sub{display:block}
  .nk .sub>a{display:block;padding:7px 16px;color:rgba(255,255,255,.75);font-size:.68rem;border-radius:0;transition:background .15s,color .15s;white-space:nowrap}
  .nk .sub>a:hover{background:rgba(255,255,255,.08);color:var(--c)}
  /* L2 nested has-sub */
  .nk .sub .has-sub{position:relative;display:block}
  .nk .sub .has-sub>a{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;color:rgba(255,255,255,.75);font-size:.68rem;white-space:nowrap;transition:background .15s,color .15s}
  .nk .sub .has-sub>a::after{content:"›";font-size:.78rem;opacity:.5;display:inline-block;margin-left:6px;flex-shrink:0;transform:rotate(0deg)}
  .nk .sub .has-sub>a:hover{background:rgba(255,255,255,.08);color:var(--c)}
  /* L2 submenu */
  .nk .sub .has-sub>.sub{display:none;position:absolute;top:0;left:100%;border-radius:8px;min-width:190px;background:var(--bg);box-shadow:0 8px 28px rgba(0,0,0,.28);padding:6px 0 8px;border:1px solid rgba(255,255,255,.08);z-index:301}
  .nk .sub .has-sub:hover>.sub{display:block}
  /* L3+ */
  .nk .sub .has-sub .has-sub>.sub{top:0;left:100%}
  /* CTA */
  .nk .nc{padding:7px 14px!important;display:flex;align-items:center}
}

/* =========================================
   MOBILE NAV (≤900px) — standard accordion menu
   ========================================= */
@media(max-width:900px){
  .mmb{display:flex;align-items:center;justify-content:center}

  /* Panel sits below the sticky nav bar */
  .nk{
    display:none;
    position:fixed;
    top:var(--nav-h,62px);
    left:0;
    right:0;
    bottom:0;
    background:#0d3540;
    flex-direction:column;
    align-items:stretch;
    overflow-y:auto;
    overflow-x:hidden;
    z-index:995;
    padding:0 0 80px;
    -webkit-overflow-scrolling:touch;
  }
  .nk.open{display:flex}

  /* ── Reset all desktop positioning on submenus ── */
  .nk .has-sub{
    position:static !important;
    display:block;
    height:auto;
    width:100%;
  }
  .nk .sub{
    display:none;
    position:static !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    width:100%;
    min-width:0 !important;
    box-shadow:none !important;
    border:none !important;
    border-radius:0 !important;
    background:rgba(0,0,0,.14);
    padding:0 !important;
    margin:0 !important;
    z-index:auto !important;
    transform:none !important;
  }
  .nk .has-sub.mob-open > .sub{display:block !important}

  /* ── All links: same height, full width ── */
  .nk a{
    display:flex !important;
    align-items:center;
    min-height:50px;
    height:auto;
    width:100%;
    padding:12px 20px;
    box-sizing:border-box;
    text-decoration:none;
    font-family:var(--ff-body,'Sora');
    line-height:1.4;
    white-space:normal;
    border-radius:0 !important;
    transition:background .15s,color .15s;
    position:static !important;
    transform:none !important;
  }

  /* Root items */
  .nk > a{
    color:rgba(255,255,255,.92);
    font-size:.9rem;
    font-weight:500;
    border-bottom:1px solid rgba(255,255,255,.07);
    justify-content:flex-start;
  }
  .nk > .has-sub{border-bottom:1px solid rgba(255,255,255,.07)}

  /* Parent rows (items with children) — all levels */
  .nk .has-sub > a{
    color:rgba(255,255,255,.92);
    font-size:.9rem;
    font-weight:500;
    justify-content:space-between;
  }
  .nk .has-sub > a:active{background:rgba(255,255,255,.04)}

  /* ── Chevron arrow — same box for every level ── */
  .nk .has-sub > a::after{
    content:"" !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    width:28px;
    height:28px;
    margin-left:auto;
    border:1px solid rgba(255,255,255,.15);
    border-radius:6px;
    background-color:rgba(255,255,255,.04);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:center;
    background-size:16px 16px;
    transition:transform .22s,background-color .15s;
    vertical-align:middle;
    font-size:0 !important;
    padding:0 !important;
    position:static !important;
    transform:rotate(0deg);
  }
  .nk .has-sub.mob-open > a::after{
    transform:rotate(180deg);
    background-color:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.25);
  }

  /* ── Level indentation ── */
  /* Level 1 */
  .nk .sub > a,
  .nk .sub > .has-sub > a{
    padding-left:32px !important;
    font-size:.84rem;
    color:rgba(255,255,255,.75);
    font-weight:400;
    border-bottom:1px solid rgba(255,255,255,.05);
    background:rgba(0,0,0,.10);
    min-height:46px;
  }
  /* Level 2 */
  .nk .sub .sub > a,
  .nk .sub .sub > .has-sub > a{
    padding-left:48px !important;
    font-size:.8rem;
    color:rgba(255,255,255,.6);
    background:rgba(0,0,0,.18);
    min-height:44px;
  }
  /* Level 3 */
  .nk .sub .sub .sub > a{
    padding-left:64px !important;
    font-size:.76rem;
    color:rgba(255,255,255,.46);
    background:rgba(0,0,0,.24);
    min-height:42px;
  }

  /* CTA Contáctanos */
  .nk .nc{
    display:flex !important;
    justify-content:center !important;
    align-items:center;
    margin:14px 20px 8px !important;
    min-height:48px !important;
    height:auto;
    width:calc(100% - 40px) !important;
    border-radius:8px !important;
    padding:12px 20px !important;
    font-size:.86rem !important;
    font-weight:700 !important;
    background:var(--c) !important;
    color:var(--bg) !important;
    border-bottom:none !important;
    box-sizing:border-box;
  }
}


/* ============================================
   SEARCH
   ============================================ */
.srch-btn{background:none;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.8);border-radius:20px;padding:5px 12px;font-size:.68rem;font-family:'Sora';cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .3s;white-space:nowrap;flex-shrink:0}
@media(max-width:900px){.srch-btn span{display:none}.srch-btn{padding:6px 8px;border-radius:8px}}
.srch-btn:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.4)}
.srch-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.srch-ov{display:none;position:fixed;inset:0;background:rgba(0,30,40,.88);z-index:3000;align-items:flex-start;justify-content:center;padding:80px 16px 20px}
.srch-ov.active{display:flex}
.srch-box{background:var(--w);border-radius:14px;width:100%;max-width:600px;padding:16px;box-shadow:0 16px 50px rgba(0,0,0,.3);animation:mi .25s ease}
.srch-row{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;min-width:0}
.srch-inp{flex:1;min-width:0;border:2px solid var(--g200);border-radius:8px;padding:9px 12px;font-size:.85rem;font-family:var(--ff-body,'Sora');outline:none;color:var(--bg);transition:border .2s}
.srch-inp:focus{border-color:var(--c)}
.srch-submit{background:var(--c);border:none;border-radius:8px;padding:9px 13px;cursor:pointer;color:var(--bg);display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.srch-submit:hover{background:var(--cd)}
.srch-submit svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;display:block}
.srch-close{background:var(--g100);border:none;border-radius:8px;padding:9px 12px;cursor:pointer;font-size:.8rem;color:var(--g600);transition:all .2s;flex-shrink:0;white-space:nowrap}
.srch-close:hover{background:var(--g200)}
.srch-hint{margin-top:10px;font-size:.68rem;color:var(--g400);display:flex;gap:6px;flex-wrap:wrap}
.srch-hint span{background:var(--g100);border-radius:20px;padding:3px 10px;cursor:pointer;transition:all .2s;white-space:nowrap}
.srch-hint span:hover{background:var(--cg);color:var(--bg)}
@media(max-width:480px){
  .srch-ov{padding:60px 10px 16px}
  .srch-box{padding:12px}
  .srch-inp{font-size:.8rem;padding:8px 10px}
  .srch-close{padding:8px 10px;font-size:.75rem}
  .srch-hint{gap:5px}
  .srch-hint span{font-size:.62rem;padding:2px 8px}
}

/* ============================================
   HERO
   ============================================ */
.hero{position:relative;width:100%;height:84vh;min-height:500px;overflow:hidden;background:var(--bg)}
.hs{position:absolute;inset:0;opacity:0;transition:opacity 1s;pointer-events:none}
.hs.active{opacity:1;pointer-events:auto}
.hs video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hs::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,59,73,.72) 0%,rgba(0,59,73,.2) 55%,rgba(0,59,73,.05) 100%);z-index:1}
.hc{position:absolute;left:clamp(24px,4vw,48px);top:50%;transform:translateY(-50%);z-index:5;max-width:420px}
.ht{font-family:var(--ft);font-size:clamp(1.8rem,3.5vw,2.6rem);color:var(--a);font-weight:700;line-height:1.08;margin-bottom:3px}
.hsb{font-family:var(--fh);font-size:clamp(1rem,2vw,1.4rem);color:var(--w);font-weight:700;line-height:1.1;margin-bottom:10px}
.hp{font-size:.72rem;color:rgba(255,255,255,.58);line-height:1.4;margin-bottom:14px;max-width:340px}
.hst{display:flex;gap:14px;margin-bottom:14px}
.hsi{text-align:center}
.hsi .n{font-family:var(--ft);font-size:1.5rem;font-weight:700;color:var(--a);line-height:1}
.hsi .l{font-size:.46rem;color:rgba(255,255,255,.42);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.hsi:not(:last-child){border-right:1px solid rgba(255,255,255,.1);padding-right:14px}
.hba{display:flex;gap:7px}
.hb{padding:8px 18px;border-radius:9px;font-size:.7rem;font-weight:600;text-decoration:none;font-family:'Sora';border:none;cursor:pointer;transition:all .3s}
.hbc{background:var(--c);color:var(--bg)}
.hbc:hover{background:#00c0df;transform:translateY(-1px)}
.hbg{background:rgba(255,255,255,.07);color:var(--w);border:1px solid rgba(255,255,255,.1)}
.hbg:hover{background:rgba(255,255,255,.12)}
.hbird{position:absolute;z-index:6;animation:hF 14s linear infinite}
@keyframes hF{0%{left:-50px;top:16%}25%{top:9%}50%{top:20%}75%{top:7%}100%{left:105%;top:15%}}
.hdots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:10;display:flex;gap:6px}
.hd{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.22);border:none;cursor:pointer;transition:all .3s}
.hd.active{background:var(--a);box-shadow:0 0 8px var(--ag)}

/* ============================================
   DIVIDERS
   ============================================ */
.div-straight{height:0;border:none}
.mtn-d{position:relative;height:50px;margin-top:-1px;overflow:hidden}
.mtn-d svg{position:absolute;bottom:0;width:100%;height:100%}

/* ============================================
   SECTION HEADS
   ============================================ */
.container{max-width:1120px;margin:0 auto;padding:0 20px}
.sec{padding:52px 0}
.sh{text-align:center;margin-bottom:30px}
.sz{display:flex;justify-content:center;gap:3px;margin-bottom:8px}
.sz i{display:inline-block;width:7px;height:7px;background:var(--c);transform:rotate(45deg);opacity:.45}
.sz i:nth-child(odd){background:var(--a)}
.si-a{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:8px;animation:ib 3s ease-in-out infinite}
@keyframes ib{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.sh h2{font-family:var(--ft);font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:700;color:var(--bg);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}
.sh p{font-family:var(--fh);font-size:.74rem;color:var(--g600);max-width:400px;margin:0 auto;line-height:1.4}

/* ============================================
   MV (MISIÓN / VISIÓN)
   ============================================ */
.mv{padding:48px 0 0;background:var(--g50)}
.mvl{display:flex;align-items:center;gap:40px;justify-content:center;flex-wrap:wrap;text-align:center}
.mvlf{position:relative;width:240px;flex-shrink:0}
.mvp{width:220px;height:280px;border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.09);border:3px solid var(--w)}
.mvp img{width:100%;height:100%;object-fit:cover}
.mvm{position:absolute;bottom:-6px;left:-2px;font-size:2.6rem;filter:drop-shadow(1px 2px 4px rgba(0,0,0,.18));animation:mb 3s ease-in-out infinite;z-index:2}
@keyframes mb{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px) rotate(2deg)}}
.mvmn{position:absolute;bottom:12px;right:-10px;background:var(--w);border-radius:12px;padding:5px;box-shadow:0 3px 10px rgba(0,0,0,.08)}
.mvmi{width:64px;height:64px;border-radius:10px;overflow:hidden}
.mvmi img{width:100%;height:100%;object-fit:cover}
.mvr{flex:1;min-width:260px;max-width:440px;text-align:left}
@media(max-width:640px){.mvl{flex-direction:column;align-items:center}.mvr{text-align:center;min-width:unset;width:100%}.mvcds{justify-content:center}.mvlf{width:200px}}
.mvr h2{font-family:var(--ft);font-size:clamp(1.3rem,2.8vw,1.65rem);color:var(--bg);font-weight:700;margin-bottom:18px;line-height:1.15;font-style:italic}
.mvcds{display:flex;gap:14px;flex-wrap:wrap}
.mvcd{background:var(--w);border-radius:13px;padding:22px 20px;width:195px;box-shadow:0 2px 10px rgba(0,172,200,.05);cursor:pointer;border:1px solid var(--g200);text-align:center;transition:all .3s;position:relative;overflow:hidden}
.mvcd::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.mvcd.mm::before{background:var(--bg)}
.mvcd.mv2::before{background:var(--a)}
.mvcd:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,172,200,.08)}
.mic{width:50px;height:50px;border-radius:50%;font-size:1.2rem;display:flex;align-items:center;justify-content:center;font-size:1rem;margin:0 auto 8px}
.mm .mic{background:var(--bg)}
.mv2 .mic{background:var(--a)}
.mvcd h3{font-family:var(--ft);color:var(--bg);font-size:1rem;font-weight:700;margin-bottom:10px}
.mvb{display:inline-block;padding:6px 16px;border-radius:6px;font-size:.66rem;font-weight:600;color:var(--w);background:var(--bg);border:none;cursor:pointer;font-family:'Sora';transition:all .3s}
.mvb:hover{opacity:.88}
.mbg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.42);backdrop-filter:blur(4px);z-index:2000;align-items:center;justify-content:center}
.mbg.active{display:flex}
.mbox{background:var(--w);border-radius:14px;max-width:500px;width:92%;max-height:84vh;overflow-y:auto;padding:26px;position:relative;box-shadow:0 12px 34px rgba(0,0,0,.16);animation:mi .3s ease}
@keyframes mi{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.mx{position:absolute;top:9px;right:9px;background:var(--c);color:var(--w);border:none;width:26px;height:26px;border-radius:50%;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .3s}
.mx:hover{transform:rotate(90deg)}
.mhd{text-align:center;margin-bottom:12px}
.mhd h2{font-family:var(--ft);color:var(--bg);font-size:1.2rem}
.mbd p{color:var(--bgl);line-height:1.7;font-size:.85rem;text-align:justify}

/* ============================================
   STATS
   ============================================ */
.sts{padding:24px 0 36px;background:var(--g50)}
.stg{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stc{border-radius:12px;padding:22px 10px;cursor:pointer;min-height:115px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transition:all .3s}
.stc:hover{transform:translateY(-2px);box-shadow:0 5px 14px rgba(0,0,0,.08)}
.stc .si2{font-size:1.6rem;margin-bottom:5px}
.stc .sn{font-family:var(--ft);font-size:1.05rem;font-weight:700;color:var(--w)}
.stc .sl{font-family:var(--fh);font-size:.5rem;color:rgba(255,255,255,.78);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-top:1px}
.stc:nth-child(odd){background:var(--c)}
.stc:nth-child(even){background:var(--bg)}

/* ============================================
   MAP
   ============================================ */
.maps{padding:36px 0 50px;background:var(--g50)}
.mwp{max-width:900px;margin:0 auto;background:var(--w);border-radius:12px;box-shadow:0 3px 14px rgba(0,172,200,.05);overflow:hidden;border:1px solid var(--g200)}
.mbd2{display:flex;flex-direction:column}
@media(min-width:768px){.mbd2{flex-direction:row}}
.mct{flex:1;position:relative;overflow:hidden;background:var(--bg);min-width:0}
.mct-inner{position:relative;width:100%;padding-bottom:75%;overflow:hidden}
.mct-inner img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}
.mk{position:absolute;width:20px;height:20px;background:var(--bg);border:2px solid white;border-radius:50%;cursor:pointer;transform:translate(-50%,-50%);transition:all .3s;box-shadow:0 2px 6px rgba(0,59,73,.3);z-index:10;animation:mp 2s infinite;display:flex;align-items:center;justify-content:center}
.mk span{color:white;font-size:7px;font-weight:800;line-height:1}
.mk:hover{transform:translate(-50%,-50%) scale(1.25);background:var(--c)}
@keyframes mp{0%,100%{box-shadow:0 0 0 0 rgba(0,59,73,.35)}50%{box-shadow:0 0 0 5px rgba(0,59,73,0)}}
.msb{width:100%;max-height:280px;overflow-y:auto;background:var(--g100);padding:10px;font-size:.68rem}
@media(min-width:768px){.msb{width:230px;max-height:450px}}
.msb h4{color:var(--bg);margin-bottom:6px;font-size:.84rem;font-family:var(--ft)}
.gi{background:white;padding:6px 8px;border-radius:6px;cursor:pointer;transition:all .3s;border-left:3px solid var(--bg);margin-bottom:4px;font-size:.66rem}
.gi:hover{transform:translateX(2px);border-left-color:var(--c)}
.gi.active{background:var(--bg);color:white}
.gn{display:inline-flex;width:16px;height:16px;background:var(--bg);color:white;border-radius:50%;align-items:center;justify-content:center;font-weight:bold;margin-right:4px;font-size:7px}
.gi.active .gn{background:white;color:var(--bg)}
.ml{background:white;padding:10px;border-radius:8px;margin-top:8px;border:1px solid var(--g200)}
.ml h5{color:var(--bg);font-size:.76rem;margin-bottom:5px;display:flex;align-items:center;gap:5px}
.ml-dot{display:inline-block;width:10px;height:10px;background:var(--bg);border:2px solid white;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ml p{font-size:.64rem;color:var(--g600);line-height:1.4}
.iov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:2000}
.iov.active{display:block}
.ipn{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:white;border-radius:14px;padding:24px;max-width:92%;width:460px;max-height:85vh;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.2);z-index:2001;animation:ii .3s ease forwards}
.ipn.active{display:block}
@keyframes ii{to{transform:translate(-50%,-50%) scale(1)}}
.ix{position:absolute;top:8px;right:8px;width:24px;height:24px;background:var(--bg);color:white;border:none;border-radius:50%;cursor:pointer;font-size:13px;transition:all .3s}
.ix:hover{transform:rotate(90deg)}
.ipn h2{color:var(--bg);font-family:var(--ft);margin-bottom:8px;padding-bottom:6px;border-bottom:2px solid var(--c);font-size:1.1rem}
.ipn .iim{width:100%;height:180px;object-fit:cover;border-radius:10px;margin-bottom:12px}
.ipn p{line-height:1.65;color:#555;font-size:.8rem;margin-bottom:12px;text-align:justify}
.ipn-btn{display:block;margin-top:6px;padding:9px 20px;background:var(--c);color:var(--bg);border:none;border-radius:8px;font-size:.72rem;font-weight:700;font-family:'Sora';cursor:pointer;text-decoration:none;transition:all .3s;text-align:center}
.ipn-btn:hover{background:var(--bg);color:white}

/* ============================================
   ACTIVITIES
   ============================================ */
.acts{padding:50px 0;background:var(--w)}
.ag{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,195px) auto;gap:9px}
.ac{position:relative;border-radius:10px;overflow:hidden;cursor:pointer}
.ac img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ac:hover img{transform:scale(1.05)}
.ao{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,59,73,.82) 0%,transparent 48%);display:flex;align-items:flex-end;padding:12px;transition:background .3s}
.ac:hover .ao{background:linear-gradient(to top,rgba(0,172,200,.82) 0%,transparent 48%)}
.an{color:var(--w);font-family:var(--fh);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em}
.acta{border-radius:10px;background:linear-gradient(135deg,var(--c),var(--bg));display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;color:var(--w)}
.acta:hover{opacity:.9}
.acta span{font-weight:700;font-size:.65rem;text-transform:uppercase;letter-spacing:.06em}

/* ============================================
   CAROUSEL
   ============================================ */
.crw{position:relative;overflow:hidden}
.crt{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:3px 1px 8px;cursor:grab;-webkit-user-select:none;user-select:none}
.crt::-webkit-scrollbar{display:none}
.crt:active{cursor:grabbing}
.crt>*{scroll-snap-align:start;flex-shrink:0}
.ca{position:absolute;top:50%;width:100%;display:flex;justify-content:space-between;pointer-events:none;transform:translateY(-50%);padding:0 1px;z-index:5}
.cb{width:28px;height:28px;border-radius:50%;background:var(--c);color:var(--w);border:none;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;pointer-events:auto;box-shadow:0 2px 6px var(--cg);transition:all .3s}
.cb:hover{background:var(--bg)}

/* ============================================
   GEORUTA / EVENT / NEWS CARDS
   ============================================ */
.grc{width:310px;display:flex;background:var(--w);border-radius:12px;overflow:hidden;box-shadow:0 1px 8px rgba(0,172,200,.03);border:1px solid var(--g200);transition:all .3s}
.grc:hover{box-shadow:0 4px 14px rgba(0,172,200,.06)}
.gri{width:125px;min-height:160px;flex-shrink:0;overflow:hidden}
.gri img{width:100%;height:100%;object-fit:cover}
.grb{padding:10px;flex:1;display:flex;flex-direction:column}
.grb h3{font-family:var(--ft);font-size:.82rem;color:var(--bg);font-weight:700;margin-bottom:3px;line-height:1.18}
.grb p{font-size:.65rem;color:var(--g600);line-height:1.35;flex:1;margin-bottom:6px}
.grm{display:flex;gap:8px;padding-top:4px;border-top:1px solid var(--g200)}
.grm-i{text-align:center}
.grm-i .v{font-family:var(--ft);font-weight:700;font-size:.72rem;color:var(--c);display:block}
.grm-i .lb{font-size:.4rem;color:var(--g400);text-transform:uppercase;letter-spacing:.03em}

.evc{width:235px;background:var(--w);border-radius:12px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.03);border:1px solid var(--g200);transition:all .3s}
.evc:hover{box-shadow:0 4px 12px rgba(0,0,0,.05)}
.evi{position:relative;width:100%;height:130px;overflow:hidden}
.evi img{width:100%;height:100%;object-fit:cover}
.evd{position:absolute;bottom:-10px;right:8px;background:var(--c);color:var(--w);padding:3px 8px;border-radius:7px;text-align:center;font-weight:700;font-size:.6rem;line-height:1.1;box-shadow:0 2px 6px var(--cg)}
.evd .d{font-size:.82rem;display:block}
.evb{padding:14px 8px 8px}
.evb h3{font-family:var(--ft);font-size:.78rem;color:var(--bg);font-weight:700;line-height:1.18;margin-bottom:3px}
.evb p{font-size:.64rem;color:var(--g600);line-height:1.28}

.nwc{width:245px;background:var(--w);border-radius:12px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.03);border:1px solid var(--g200);transition:all .3s}
.nwc:hover{box-shadow:0 4px 12px rgba(0,0,0,.05)}
.nwi{width:100%;height:130px;overflow:hidden}
.nwi img{width:100%;height:100%;object-fit:cover}
.nwb{padding:8px}
.nwt{display:inline-block;background:rgba(0,172,200,.08);color:var(--c);font-size:.48rem;font-weight:600;padding:2px 6px;border-radius:4px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}
.nwb h3{font-family:var(--ft);font-size:.78rem;color:var(--bg);font-weight:700;line-height:1.18;margin-bottom:3px}
.nwb p{font-size:.64rem;color:var(--g600);line-height:1.28}
.nwd{font-size:.5rem;color:var(--g400);margin-top:3px}

/* ============================================
   NETWORKS
   ============================================ */
.nets{padding:44px 0 54px;background:var(--g50)}
.ng{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.nc2{display:flex;background:var(--w);border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.04);border:1px solid var(--g200);transition:all .3s}
.nc2:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.04)}
.nlo{width:90px;display:flex;align-items:center;justify-content:center;padding:14px;background:var(--g100);font-size:2rem}
.nin{flex:1;padding:14px 16px;color:var(--w);display:flex;flex-direction:column;justify-content:center}
.nin h3{font-family:var(--ft);font-size:.82rem;font-weight:700;margin-bottom:3px}
.nin p{font-size:.68rem;line-height:1.3;opacity:.88}
.bpc{background:var(--c)}
.bpt{background:var(--bg)}
.bpa{background:var(--a);color:var(--bg)!important}
.bpa h3,.bpa p{color:var(--bg)}

/* ============================================
   CANTONES CAROUSEL
   ============================================ */
.cnc{width:280px;position:relative;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,59,73,.12);flex-shrink:0;scroll-snap-align:start;transition:all .4s;cursor:pointer}
.cnc:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(0,59,73,.18)}
.cnc-img{width:100%;height:200px;object-fit:cover;display:block;transition:transform .6s}
.cnc:hover .cnc-img{transform:scale(1.06)}
.cnc-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,59,73,.88) 0%,rgba(0,59,73,.15) 50%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:18px}
.cnc-nm{font-family:var(--ft);font-size:1.05rem;color:var(--a);font-weight:700;margin-bottom:2px;text-transform:uppercase;letter-spacing:.04em}
.cnc-prov{font-size:.6rem;color:rgba(255,255,255,.65);font-weight:500;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.cnc-desc{font-size:.66rem;color:rgba(255,255,255,.82);line-height:1.35}
.cnc-badge{position:absolute;top:12px;right:12px;background:var(--c);color:var(--w);font-size:.52rem;font-weight:700;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;box-shadow:0 2px 8px rgba(0,172,200,.3)}

/* ============================================
   FOOTER
   ============================================ */
.fwp{position:relative;overflow:hidden}
.fmt{position:relative;height:110px;background:linear-gradient(180deg,var(--g50) 0%,#bdd8df 100%);overflow:hidden}
.fmt svg.mn{position:absolute;bottom:0;width:100%}
.ft{position:absolute;bottom:0;z-index:3}
.ft svg{animation:ts 5s ease-in-out infinite}
@keyframes ts{0%,100%{transform:rotate(0deg)}50%{transform:rotate(1deg)}}
.ft:nth-child(even) svg{animation-delay:1.5s}
.fb{position:absolute;z-index:8}
.fb1{animation:ff1 11s linear infinite}
.fb2{animation:ff2 14s linear infinite 2s;opacity:.5}
.fb3{animation:ff3 12s linear infinite 5s;opacity:.4}
.fb4{animation:ff4 16s linear infinite 7s;opacity:.35}
@keyframes ff1{0%{left:-35px;top:12px}50%{top:4px}100%{left:105%;top:10px}}
@keyframes ff2{0%{left:-55px;top:28px}50%{top:10px}100%{left:108%;top:22px}}
@keyframes ff3{0%{left:-25px;top:6px}50%{top:18px}100%{left:106%;top:8px}}
@keyframes ff4{0%{left:-45px;top:35px}50%{top:14px}100%{left:107%;top:30px}}
.ftm{background:var(--bg);color:rgba(255,255,255,.88);padding:24px 0 12px;position:relative;z-index:5}
.flg{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.flg-logo{display:flex;flex-direction:column;align-items:center;gap:4px}
.flg-img{max-height:48px;width:auto;max-width:140px;object-fit:contain;filter:none;opacity:.9;display:block}
.flg-ph{display:flex;align-items:center;justify-content:center;min-width:60px;height:40px;border:1px dashed rgba(255,255,255,.2);border-radius:6px;font-size:.52rem;color:rgba(255,255,255,.3);font-family:'Sora';letter-spacing:.05em;padding:0 8px}
.flg-lbl{font-family:var(--ft);font-weight:700;color:rgba(255,255,255,.5);font-size:.52rem;text-transform:uppercase;letter-spacing:.08em}
.flg-logo-link{text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:4px;transition:opacity .2s}
.flg-logo-link:hover{opacity:.78}

.flg-sep{color:rgba(255,255,255,.1);font-size:1rem}
.fgr{display:grid;grid-template-columns:2fr repeat(calc(var(--fcols,4) - 2),1fr) 1.5fr;gap:18px;margin-bottom:14px}
.fbr h3{font-family:var(--ft);font-size:.8rem;color:var(--w);margin-bottom:4px}
.fbr p{font-size:.64rem;line-height:1.5;color:rgba(255,255,255,.75)}
.fso{display:flex;gap:4px;margin-top:6px}
.fso a{width:26px;height:26px;border-radius:6px;background:var(--c);border:1px solid var(--c);display:flex;align-items:center;justify-content:center;color:var(--bg);text-decoration:none;transition:all .3s}
.fso a svg{width:13px;height:13px;display:block;fill:currentColor}
.fso a:hover{background:var(--a);border-color:var(--a);color:var(--bg)}
.ftm h4{color:var(--w);font-family:var(--fh);font-size:.52rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-weight:600}
.ftm ul{list-style:none}
.ftm ul li{margin-bottom:3px}
.ftm ul a{color:rgba(255,255,255,.65);text-decoration:none;font-size:.64rem;transition:color .3s}
.ftm ul a:hover{color:var(--c)}
.fcp{font-size:.6rem;margin-bottom:3px;color:rgba(255,255,255,.75)}
.fbt{border-top:1px solid rgba(255,255,255,.08);padding-top:8px;text-align:center;font-size:.5rem;color:rgba(255,255,255,.55)}

/* ============================================
   UTILITIES
   ============================================ */
.sup{position:fixed;bottom:16px;right:16px;width:36px;height:36px;border-radius:50%;background:var(--c);color:var(--w);border:none;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px var(--cg);z-index:999;opacity:0;transform:translateY(8px);transition:all .3s;pointer-events:none}
.sup.show{opacity:1;transform:translateY(0);pointer-events:auto}
.sup:hover{background:var(--a)}
.rv{opacity:0;transform:translateY(18px);transition:all .5s ease}
.rv.vis{opacity:1;transform:translateY(0)}
.rd1{transition-delay:.08s}
.rd2{transition-delay:.16s}
.rd3{transition-delay:.24s}


/* ============================================
   FOOTER COLUMN LINKS (hierarchical)
   ============================================ */
.fcol{min-width:0}
.fcol h4{color:var(--w);font-family:var(--fh);font-size:.52rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:600}
.fcol ul,.fcol .fsub{list-style:none;margin:0;padding:0}
.fli{margin-bottom:2px}
.fla{color:rgba(255,255,255,.65);text-decoration:none;font-size:.64rem;transition:color .3s;display:block;line-height:1.5}
.fla:hover{color:var(--c)}
.fli-d1>.fla{color:rgba(255,255,255,.5);font-size:.6rem}
.fli-d2>.fla{color:rgba(255,255,255,.4);font-size:.56rem}
.fcp a{color:rgba(255,255,255,.8);text-decoration:none;transition:color .3s}
.fcp a:hover{color:var(--c)}

/* ============================================
   FOOTER SEARCH
   ============================================ */
.f-search{margin-top:10px}
.f-search-row{display:flex;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07)}
.f-search-inp{flex:1;background:transparent;border:none;padding:7px 10px;font-size:.68rem;color:var(--w);font-family:var(--ff-body);outline:none}
.f-search-inp::placeholder{color:rgba(255,255,255,.35)}
.f-search-btn{background:var(--c);border:none;padding:0 10px;cursor:pointer;color:var(--bg);display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}
.f-search-btn:hover{background:var(--a)}
.f-search-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.5}

/* ============================================
   HEADER SEARCH SUBMIT BUTTON
   ============================================ */
.srch-submit{background:var(--c);border:none;border-radius:8px;padding:9px 13px;cursor:pointer;color:var(--bg);display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.srch-submit:hover{background:var(--cd)}
.srch-submit svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round}

/* ============================================
   FOOTER MOBILE — stack columns with indent
   ============================================ */
@media(max-width:900px){
  .fgr{grid-template-columns:1fr!important}
  .fcol,.fbr{border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:14px;margin-bottom:2px}
  .fcol:last-child{border-bottom:none}
  .fli-d1>.fla{padding-left:14px}
  .fli-d2>.fla{padding-left:28px}
  .flg{flex-wrap:wrap;gap:14px;justify-content:center}
}
@media(max-width:640px){
  .fgr{gap:10px}
  .ftm{padding:16px 0 8px}
}
/* ============================================
   WP-SPECIFIC
   ============================================ */
.alignleft{float:left;margin-right:1.5em}
.alignright{float:right;margin-left:1.5em}
.aligncenter{display:block;margin:0 auto}
.wp-caption{max-width:100%}
.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}

/* ============================================
   RESPONSIVE
   ============================================ */
@media(max-width:1024px){nav{padding:0 14px}.ag{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,175px) auto}.stg{grid-template-columns:repeat(2,1fr)}.fgr{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.nk{display:none}.mmb{display:block}.ag{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,148px) auto}.ng{grid-template-columns:1fr}.fgr{grid-template-columns:1fr 1fr}.hero{height:68vh}}
@media(max-width:480px){.stg{grid-template-columns:1fr 1fr;gap:6px}.fgr{grid-template-columns:1fr}.mvcds{flex-direction:column;align-items:center}}
