/*
Theme Name: Observatorio de Fomento Cooperativo - CIESCOOP - USACH
Theme URI: https://ciescoop.cl/
Author: AMAM - Estudio de Diseño
Author URI: https://www.amam.cl
Description: Tema para el despliegue de la BBDD del Observatorio de Fomento Cooperativo - CIESCOOP - USACH
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 7.1.1
License: All Rights Reserved
Text Domain: obcoop
*/

:root{
  /* Neutrals (matched to ciescoop.cl's own grays) */
  --black:#242428; --white:#fff; --gray-bg:#f8f8f8; --gray-line:#e3e2e2;
  --text:#242428; --muted:#626262;
  /* Brand accents, pulled from ciescoop.cl / OBCOOP marks */
  --accent:#ff7713; --accent-hover:#e0670a; --accent-wash:#fff1e2;
  --accent-2:#40264d; --accent-2-wash:#efe7f2;
  --footer-bg:#394049;
  --radius:8px; --radius-sm:5px; --radius-lg:16px;
  --font-ui:'Manrope', sans-serif;
  --font-display:'Manrope', sans-serif;
  --shadow-card:0 1px 2px rgba(36,36,40,.06), 0 1px 0 rgba(36,36,40,.04);
  --shadow-hover:0 12px 24px -8px rgba(36,36,40,.16), 0 2px 4px rgba(36,36,40,.06);
  --shadow-panel:0 1px 2px rgba(36,36,40,.04), 0 8px 24px -12px rgba(36,36,40,.12);
}
*{box-sizing:border-box;}
body{margin:0; font-family:var(--font-ui); color:var(--text); background:var(--white);}
a{color:inherit; text-decoration:none; cursor:pointer;}
.container{max-width:1250px; margin:0 auto; padding:0 70px;}
header{border-bottom:0.5px solid var(--gray-line); padding:24px 0;}
.header-inner{display:flex; align-items:center; justify-content:space-between;}
.brand{display:flex; align-items:center; gap:16px;}
.brand img{height:56px;}
.brand .name{font-weight:700; font-size:21px; line-height:1.15; letter-spacing:-0.5px;}
.brand .sub{font-size:13px; line-height:1.3; color:var(--muted);}
nav{display:flex; gap:48px; font-size:16px;}
nav li{list-style:none; margin:0; padding:0;}
nav a{position:relative; padding-bottom:4px; transition:color .15s ease;}
nav a:hover{color:var(--accent);}
nav a:not(.active):after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .2s ease;}
nav a:not(.active):hover:after{transform:scaleX(1);}
nav a.active,nav a.current-menu-item{font-weight:700; color:var(--accent); border-bottom:2px solid var(--accent);}
.nav-toggle{display:none; align-items:center; justify-content:center; background:none; border:none; padding:6px; margin:0; cursor:pointer; color:var(--text);}
section{padding:80px 0;}
.bg-gray{background:var(--gray-bg);}
.bg-dashboard{
  background-color:var(--gray-bg);
  background-image:radial-gradient(rgba(36,36,40,.08) 1px, transparent 1px);
  background-size:22px 22px;
  background-position:-10px -10px;
}
.hero-photo{position:relative; overflow:hidden; padding:96px 0;}
.hero-photo:before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(115deg, rgba(18,13,9,.75) 0%, rgba(18,13,9,.38) 42%, rgba(64,38,77,.30) 100%);
}
.hero-photo-bg{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center 60%;
  opacity:0; transition:opacity 1.1s ease;
}
.hero-photo-bg.active{opacity:1;}
.hero-photo > .container{position:relative; z-index:2;}
.hero-photo h1.hero{color:#fff;}
.hero-photo p.lead{color:rgba(255,255,255,.82);}
.hero-photo .stat-card{
  background:rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 16px 40px rgba(15,10,6,.35);
}
.hero-photo .stat-card:hover{box-shadow:0 20px 48px rgba(15,10,6,.45); border-color:rgba(255,255,255,.4);}
.hero-photo .stat-card .num{color:#fff;}
.hero-photo .stat-card .label{color:rgba(255,255,255,.78);}
.hero-photo .stat-card .card-icon{background:rgba(255,255,255,.18); color:#fff;}
.hero-photo .stat-card:hover .card-icon{background:var(--accent); color:#fff;}
.hero-photo-compact{padding:80px 0 150px;}
.table-section{padding-top:0;}
.table-panel.table-panel-overlap{margin-top:-100px; position:relative; z-index:3;}
h1.hero{font-family:var(--font-display); font-size:42px; font-weight:700; letter-spacing:-0.8px; line-height:1.12; max-width:760px; margin:0 0 16px;}
p.lead{font-size:18px; color:var(--muted); max-width:640px; margin:0 0 40px;}
.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:900px;}
.stat-card{
  display:block; position:relative; overflow:hidden; cursor:pointer;
  background:var(--white); padding:28px 24px; text-align:left;
  border-radius:var(--radius); box-shadow:var(--shadow-card);
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
  opacity:0; transform:translateY(14px);
  animation:cardIn .5s cubic-bezier(.2,.8,.2,1) forwards;
}
.stat-card:nth-child(1){animation-delay:.05s;}
.stat-card:nth-child(2){animation-delay:.15s;}
.stat-card:nth-child(3){animation-delay:.25s;}
@keyframes cardIn{to{opacity:1; transform:translateY(0);}}
.stat-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
.stat-card .card-icon{
  position:absolute; top:20px; right:20px; width:32px; height:32px; border-radius:9px;
  background:var(--accent-wash); display:flex; align-items:center; justify-content:center;
  color:var(--accent); transition:background .2s ease, color .2s ease, transform .2s ease;
}
.stat-card .card-icon svg{width:14px; height:14px;}
.stat-card:hover .card-icon{background:var(--accent); color:var(--white); transform:rotate(45deg);}
.stat-card .num{font-family:var(--font-display); font-size:64px; font-weight:200; letter-spacing:-1.5px; line-height:1;}
.stat-card .label{font-size:15px; font-weight:600; color:var(--muted); margin-top:12px; width:100%; max-width:none;}
.halves{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; margin-bottom:64px;}
.halves:last-child{margin-bottom:0;}
.halves.objetivo-halves{grid-template-columns:40% 60%;}
h2{font-family:var(--font-display); font-size:32px; font-weight:700; letter-spacing:-0.4px; margin:0 0 20px;}
.eyebrow{display:inline-flex; align-items:center; gap:9px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--accent); margin:0 0 16px;}
.eyebrow:before{content:""; width:18px; height:2px; background:var(--accent); flex-shrink:0;}
.hero-photo .eyebrow{color:#fff;}
.section-kicker{display:flex; align-items:center; gap:14px; margin-bottom:12px;}
.section-kicker .num{font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.1em; color:var(--accent); flex-shrink:0;}
.section-kicker .rule{flex:1 1 auto; height:1px; background:var(--gray-line); max-width:48px;}

.faq-panel{
  position:relative;
  overflow:hidden;
  background:#ff7713;
  border-radius:var(--radius-lg);
  padding:56px;
  box-shadow:var(--shadow-panel);
  --accent:#242428;
  --accent-wash:rgba(36,36,40,.08);
  --muted:rgba(36,36,40,.72);
  --gray-line:rgba(36,36,40,.18);
}
.faq-panel-head{margin-bottom:32px;}
.faq-panel-head h2{margin-bottom:0;}
h3.sub-heading{font-size:20px; font-weight:500; margin:0 0 14px;}
.objetivo-principal{font-size:17px; line-height:1.7; margin:0 0 24px; color:var(--text);}
.objetivo-bullets{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:18px;}
.objetivo-bullets li{display:flex; align-items:flex-start; gap:12px; font-size:15px; line-height:1.6; color:#333;}
.objetivo-bullets li:before{content:"—"; color:var(--muted); flex-shrink:0;}
.simple-content{max-width:900px;}
.instituciones{display:flex; gap:32px; flex-wrap:wrap; margin:16px 0;}
.inst-item{width:130px; display:flex; flex-direction:column; align-items:center; text-align:center; font-size:13px; line-height:1.4; color:var(--muted);}
.inst-item .circle{width:64px; height:64px; border-radius:50%; background:var(--gray-line); margin-bottom:8px; flex-shrink:0;}
.inst-chip{width:64px; height:64px; border-radius:var(--radius); background:var(--white); border:1px solid var(--gray-line); color:var(--accent); display:flex; align-items:center; justify-content:center; margin-bottom:12px; overflow:hidden; flex-shrink:0; transition:border-color .2s ease;}
.inst-chip img{width:100%; height:100%; object-fit:contain; padding:8px;}
a.inst-item:hover .inst-chip{border-color:var(--accent);}
.inst-name{color:var(--text); font-weight:600; font-size:13.5px;}
.inst-link{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; text-decoration:underline; text-underline-offset:2px; margin-top:4px; color:var(--muted);}
a.inst-item:hover .inst-link{color:var(--accent);}
.faq-item{border-top:0.5px solid var(--gray-line); padding:16px 0;}
.faq-item:last-child{border-bottom:0.5px solid var(--gray-line);}
.faq-q{display:flex; justify-content:space-between; align-items:baseline; gap:16px; cursor:pointer; font-size:16px;}
.faq-q-text{display:flex; align-items:baseline; gap:14px;}
.faq-num{font-family:var(--font-display); font-size:11px; font-weight:700; letter-spacing:.06em; color:var(--accent); flex-shrink:0;}
.faq-a{font-size:14px; color:var(--muted); max-height:0; overflow:hidden; transition:max-height .2s ease; padding-top:0;}
.faq-item.open .faq-a{max-height:200px; padding-top:10px;}
.faq-item.open .faq-q{color:var(--accent);}
.faq-item.open .faq-q .chev{transform:rotate(180deg); color:var(--accent);}
.chev{transition:transform .2s ease, color .15s ease; width:14px; height:14px; flex-shrink:0;}
footer{background:var(--footer-bg); color:#f5f5f5; padding:56px 0 32px;}
footer .foot-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:32px;}
footer .footer-logo{height:48px; margin-bottom:14px; display:block;}
footer .name{font-weight:700; font-size:20px; margin-bottom:6px;}
footer .sub{font-size:13px; color:#ccc; line-height:1.4;}
footer nav{flex-direction:column; gap:10px; font-size:14px;}
footer .contact p{font-size:13px; margin:0 0 4px; color:#ddd;}
footer .copyright{margin-top:40px; padding-top:20px; border-top:0.5px solid #333; font-size:12px; color:#999; line-height:1.6;}
footer .copyright a{text-decoration:underline; text-underline-offset:2px;}
footer .copyright a:hover{color:#fff;}

.icon{width:16px; height:16px; flex-shrink:0; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}

.search-bar{display:flex; align-items:center; gap:10px; background:var(--white); border:1px solid var(--gray-line); border-radius:var(--radius); padding:14px 18px; font-size:15px; margin-bottom:14px; color:var(--muted); transition:border-color .15s ease;}
.search-bar:focus-within{border-color:var(--accent);}
.search-bar input{border:none; outline:none; font-size:15px; font-family:inherit; width:100%; color:var(--text);}
.filters-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; position:relative;}
.filters-row > *{flex:1 1 0; min-width:180px;}
.filter-btn{background:var(--white); border:1px solid var(--gray-line); border-radius:var(--radius); padding:9px 14px; font-size:14px; font-family:inherit; cursor:pointer; display:flex; align-items:center; gap:8px; color:var(--text); width:100%;}
.filter-btn.disabled{opacity:.45; cursor:not-allowed;}
.filter-btn .icon{color:var(--muted);}
.filter-btn span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.multiselect .filter-btn{height:100%;}
select{font-family:inherit; font-size:14px; border:1px solid var(--gray-line); padding:9px 10px; background:var(--white); width:100%;}
.select-icon{display:flex; align-items:center; gap:8px; border:1px solid var(--gray-line); border-radius:var(--radius); padding:9px 12px; background:var(--white);}
.select-icon .icon{color:var(--muted);}
.select-icon select{border:none; padding:0; outline:none;}
.period-panel{display:flex; align-items:center; gap:10px; background:var(--white); border:1px solid var(--gray-line); border-radius:var(--radius); padding:9px 14px;}
.period-panel .icon{color:var(--muted);}
.period-panel input[type=number]{width:64px; font-family:inherit; font-size:14px; border:1px solid var(--gray-line); border-radius:var(--radius-sm); padding:4px 6px; flex-shrink:0;}
.multiselect{position:relative; display:flex;}
.multiselect-panel{position:absolute; top:44px; left:0; background:var(--white); border:1px solid var(--gray-line); border-radius:var(--radius); box-shadow:var(--shadow-card); width:260px; z-index:10; display:none; max-height:240px; overflow-y:auto;}
.multiselect-panel.open{display:block;}
.coverage-panel{width:290px; padding:4px 0; max-height:340px;}
.coverage-row{display:flex; align-items:center; padding:9px 12px; font-size:13px; cursor:pointer; border-bottom:0.5px solid var(--gray-line); color:var(--text);}
.coverage-row:hover{background:var(--gray-bg);}
.coverage-row.active{color:var(--accent); font-weight:700;}
.coverage-divider{padding:9px 12px 5px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); border-top:0.5px solid var(--gray-line); margin-top:2px;}
.coverage-region-row{display:flex; align-items:center; gap:7px; padding:9px 12px; font-size:13px; cursor:pointer; border-bottom:0.5px solid var(--gray-line); color:var(--text);}
.coverage-region-row:hover{background:var(--gray-bg);}
.coverage-region-row.active{color:var(--accent); font-weight:700;}
.coverage-caret{width:14px; height:14px; display:flex; align-items:center; justify-content:center; font-size:9px; color:var(--muted); transition:transform .15s ease; flex-shrink:0; cursor:pointer;}
.coverage-caret.empty{visibility:hidden;}
.coverage-caret.open{transform:rotate(90deg);}
.coverage-comunas{display:none; background:var(--gray-bg);}
.coverage-comunas.open{display:block;}
.coverage-comunas .coverage-row{padding-left:40px; font-size:12.5px;}
.ms-search-wrap{position:sticky; top:0; display:flex; align-items:center; gap:6px; background:var(--white); padding:8px; border-bottom:0.5px solid var(--gray-line); z-index:1;}
.ms-search-wrap .icon{width:14px; height:14px; color:var(--muted); flex-shrink:0;}
.ms-search{flex:1; min-width:0; border:none; outline:none; font-family:inherit; font-size:12.5px; color:var(--text);}
.ms-item{display:flex; align-items:center; gap:8px; padding:9px 12px; font-size:13px; border-bottom:0.5px solid var(--gray-line); cursor:pointer;}
.ms-item.hidden{display:none;}
.ms-empty{padding:14px 12px; font-size:12.5px; color:var(--muted); text-align:center;}
.ms-item:last-child{border-bottom:none;}
.ms-item input{margin:0; accent-color:var(--accent);}
.table-panel{background:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow-panel); padding:28px 28px 20px; margin-top:8px;}
.chips{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; min-height:20px;}
.chip{background:var(--black); color:#fff; font-size:12px; padding:5px 10px; border-radius:var(--radius-sm); display:flex; align-items:center; gap:6px;}
.chip span.x{cursor:pointer; font-weight:700;}
.chip span.x:hover{color:var(--accent);}
table{width:100%; border-collapse:collapse; background:var(--white); font-size:14px;}
th{text-align:left; padding:12px 10px; border-bottom:1px solid var(--gray-line); cursor:pointer; user-select:none; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); transition:color .15s ease;}
th:hover{color:var(--text);}
th .arrow{font-size:11px; color:var(--accent); margin-left:4px;}
th.th-expand{cursor:default;}
td{padding:14px 10px; border-bottom:0.5px solid var(--gray-line); vertical-align:middle;}
tr.data-row{cursor:pointer; transition:background-color .15s ease;}
tr.data-row:hover{background:var(--gray-bg);}
tr.data-row.open, tr.data-row.open:hover{background:var(--accent); box-shadow:0 10px 24px -10px rgba(255,119,19,.5);}
tr.data-row.open td{color:#fff; border-bottom-color:transparent;}
tr.data-row.open td:first-child{font-weight:700; border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
tr.data-row.open td:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
td.td-expand{text-align:right; width:32px;}
td.td-expand .chev{display:inline-block; font-size:12px; color:var(--muted); transition:transform .2s ease, color .15s ease;}
tr.data-row.open td.td-expand .chev{transform:rotate(180deg); color:#fff;}
.badge{display:inline-flex; align-items:center; gap:6px; font-size:11px; padding:4px 10px; border-radius:var(--radius-sm); background:#eee; font-weight:700; text-transform:uppercase; letter-spacing:.04em;}
.badge .dot{width:6px; height:6px; border-radius:50%; background:currentColor; flex-shrink:0;}
.badge.nacional{background:var(--accent-2-wash); color:var(--accent-2);}
.badge.regional{background:var(--accent-wash); color:#b1500d;}
.badge.municipal{background:var(--gray-bg); color:var(--muted); border:1px solid var(--gray-line);}
.badge.mixto{background:var(--black); color:#fff;}
tr.data-row.open .badge{background:var(--black); color:#fff; border-color:transparent;}
.territorio-sub{font-size:11px; color:var(--muted); margin-top:4px;}
tr.data-row.open .territorio-sub{color:rgba(255,255,255,.85);}
.expand-row td{background:var(--white); padding:0; border-bottom:0.5px solid var(--gray-line);}
.ficha-wrap{padding:26px 28px 30px; border-bottom:3px solid var(--accent); opacity:0; transform:translateY(-6px); transition:opacity .22s ease, transform .22s ease;}
.ficha-wrap.in{opacity:1; transform:translateY(0);}
.ficha-tipo{display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--accent); background:var(--accent-wash); padding:3px 10px; border-radius:var(--radius-sm); margin-bottom:10px;}
.ficha-title{font-weight:700; font-size:19px; margin:0 0 8px;}
.ficha-resumen{font-size:14px; line-height:1.6; color:#333; margin:0 0 22px; max-width:760px;}
.ficha-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px 24px; font-size:13px; padding-top:20px; border-top:0.5px solid var(--gray-line);}
.ficha-grid .span-2{grid-column:span 2;}
.ficha-divider{grid-column:1/-1; border-top:0.5px solid var(--gray-line); margin:2px 0 0;}
.ficha-longtext{display:grid; grid-template-columns:repeat(2,1fr); gap:24px 32px; margin-top:24px; padding-top:20px; border-top:0.5px solid var(--gray-line);}
.ficha-longtext-item .lt-label{color:var(--text); margin:0 0 8px; font-weight:700; font-size:14px; display:flex; align-items:center; gap:7px;}
.ficha-longtext-item .lt-label .icon{width:16px; height:16px; color:var(--accent); flex-shrink:0;}
.ficha-longtext-item .lt-text{margin:0; font-size:13px; line-height:1.6; color:#333; opacity:.8;}
.ficha-longtext-item .lt-text p{margin:0 0 10px;}
.ficha-longtext-item .lt-text p:last-child{margin-bottom:0;}
.ficha-longtext-item .lt-text ul{margin:0 0 10px; padding-left:18px;}
.ficha-longtext-item .lt-text ul:last-child{margin-bottom:0;}
.ficha-longtext-item .lt-text li{margin-bottom:4px;}
.ficha-longtext-item .lt-text.clamped{max-height:66px; overflow:hidden; position:relative;}
.ficha-longtext-item .lt-text.clamped:after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:11px;
  background:linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.95));
}
.ficha-longtext-item .see-more{display:none; margin-top:8px; background:none; border:none; padding:0; font-family:inherit; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); cursor:pointer; text-decoration:underline; text-underline-offset:2px;}
.ficha-longtext-item .see-more.show{display:inline-block;}
.ficha-longtext-item .see-more:hover{color:var(--text);}
.ficha-grid .label{color:var(--muted); margin:0 0 6px; font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.04em;}
.ficha-grid .val{margin:0; font-size:14px; line-height:1.4; display:flex; align-items:flex-start; gap:7px;}
.ficha-grid .val a{color:var(--accent); text-decoration:underline; text-underline-offset:2px;}
.ficha-grid .val .icon{width:15px; height:15px; margin-top:2px; flex-shrink:0; color:var(--muted);}
.pagination{display:flex; justify-content:space-between; align-items:center; padding-top:18px; font-size:13px;}
.pagination-top{padding-top:0; padding-bottom:14px;}
.pagination .pages{display:flex; gap:6px;}
.pagination button{border:1px solid var(--gray-line); border-radius:var(--radius-sm); background:var(--white); padding:6px 12px; font-family:inherit; cursor:pointer; font-size:13px;}
.pagination button.current{background:var(--accent); border-color:var(--accent); color:var(--white);}
.pagination button:disabled{opacity:.4; cursor:default;}
.no-results{padding:30px; text-align:center; color:var(--muted); font-size:14px;}

.contact-hero, .page-hero-image{background:var(--gray-line); height:280px; display:flex; align-items:center; justify-content:center;}
.page-hero-image{height:224px;}
.contact-hero svg, .page-hero-image svg{width:52px; height:52px; stroke:#9a9a9a; fill:none; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round;}
.contact-grid{display:grid; grid-template-columns:40% 60%; gap:60px; padding:64px 70px; max-width:1250px; margin:0 auto;}
.contact-grid h2{font-size:32px; font-weight:700; letter-spacing:-0.3px; line-height:1.3;}
.contact-hero-title{color:#fff; font-family:var(--font-display); font-size:34px; font-weight:700; letter-spacing:-0.3px; line-height:1.35; max-width:700px;}
.contact-grid.table-panel-overlap{background:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow-panel); margin-top:-100px; position:relative; z-index:3;}
.contact-lead{font-size:16px; color:var(--muted); line-height:1.6; margin:0 0 28px; max-width:420px;}
.contact-info{padding-top:16px; border-top:0.5px solid var(--gray-line);}
.contact-info p{font-size:12.5px; color:var(--muted); line-height:1.6; margin:3px 0;}
.contact-info p strong{color:var(--text); font-weight:700;}
form label{display:block; font-size:14px; margin-bottom:6px; margin-top:16px;}
form input:not([type=submit]), form textarea, form select{width:100%; padding:12px 14px; border:1px solid var(--gray-line); border-radius:var(--radius); font-family:inherit; font-size:14px; background:var(--white); transition:border-color .15s ease;}
form input:not([type=submit]):focus, form textarea:focus, form select:focus{outline:none; border-color:var(--accent);}
form textarea{min-height:120px; resize:vertical;}
form button, form input[type=submit]{margin-top:20px; width:auto; background:var(--accent); color:var(--white); border:none; border-radius:var(--radius); padding:15px 32px; font-family:inherit; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; transition:background .15s ease, transform .15s ease, box-shadow .15s ease;}
form button:hover, form input[type=submit]:hover{background:var(--accent-hover); transform:translateY(-2px); box-shadow:var(--shadow-hover);}
.form-msg{margin-top:14px; font-size:13px; padding:10px 14px; border-radius:var(--radius-sm); background:var(--accent-2-wash); color:var(--accent-2); display:none;}
.form-msg.show{display:block;}
.err{color:#b33; font-size:12px; margin-top:4px; display:none;}
.err.show{display:block;}

/* --- WordPress-specific glue (not present in the static prototype) --- */
.simple-content h1{font-family:var(--font-display); font-size:30px; font-weight:700; letter-spacing:-0.3px; margin:0 0 20px;}
.simple-content p{font-size:16px; line-height:1.7; color:var(--text);}
.objetivo-bullets-wrap ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:18px;}
.objetivo-bullets-wrap li{display:flex; align-items:flex-start; gap:12px; font-size:15px; line-height:1.6; color:#333;}
.objetivo-bullets-wrap li:before{content:"—"; color:var(--muted); flex-shrink:0;}
.inst-item{cursor:default;}
a.inst-item{cursor:pointer;}
a.inst-item:hover{color:var(--accent);}

/* ==================== RESPONSIVE ==================== */
@media (max-width: 900px){
  .container{padding:0 32px;}
  .halves{grid-template-columns:1fr; gap:32px;}
  .halves.objetivo-halves{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr; gap:40px; padding:48px 32px;}
  .ficha-grid{grid-template-columns:repeat(2,1fr);}
  .ficha-grid .span-2{grid-column:span 2;}
  .ficha-longtext{grid-template-columns:1fr;}
}

@media (max-width: 768px){
  .nav-toggle{display:flex;}
  .header-inner{flex-wrap:wrap; position:relative;}
  #primary-nav{
    display:none; order:3; width:100%;
    flex-direction:column; gap:0;
    margin-top:16px; padding-top:12px;
    border-top:0.5px solid var(--gray-line);
  }
  #primary-nav.nav-open{display:flex;}
  #primary-nav li{width:100%;}
  #primary-nav a{display:block; padding:12px 4px;}
  #primary-nav a:not(.active):after{display:none;}

  .brand img{height:42px;}
  .brand .name{font-size:18px;}
  .brand .sub{font-size:11px;}

  section{padding:48px 0;}
  .hero-photo{padding:56px 0;}
  .hero-photo-compact{padding:48px 0 96px;}

  h1.hero{font-size:28px; letter-spacing:-0.4px;}
  p.lead{font-size:15px; margin-bottom:28px;}
  h2{font-size:24px;}

  .stats{grid-template-columns:1fr; gap:14px; max-width:none;}
  .stat-card .num{font-size:44px;}

  .table-panel.table-panel-overlap,
  .contact-grid.table-panel-overlap{margin-top:-48px;}
  .table-panel{padding:20px 18px 16px;}

  .filters-row{flex-direction:column;}
  .filters-row > *{min-width:0; width:100%;}
  .period-panel input[type=number]{width:56px;}

  .ficha-grid{grid-template-columns:1fr; gap:16px;}
  .ficha-grid .span-2{grid-column:span 1;}

  .instituciones{gap:24px; justify-content:center;}
  .inst-item{width:88px;}
  .inst-item .circle{width:52px; height:52px;}

  .contact-hero-title{font-size:26px;}
  .contact-grid{padding:36px 20px;}
  .faq-panel{padding:32px 24px;}

  footer{padding:40px 0 24px;}
  footer .foot-grid{flex-direction:column; gap:28px;}
  footer nav{flex-direction:column;}

  table{font-size:13px;}
  th, td{padding:10px 6px;}
  .table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .table-scroll table{min-width:620px;}
}

@media (max-width: 480px){
  .container{padding:0 18px;}
  h1.hero{font-size:24px;}
  .contact-grid{padding:28px 16px;}
}
.skip-link{position:absolute; left:-9999px; top:0; background:var(--accent); color:#fff; padding:10px 16px; z-index:100;}
.skip-link:focus{left:10px; top:10px;}
