/* Directorio de asociados, subregiones y perfiles (generado por scripts/asociados/generar.py) */
:root{--r-tinta:#173e32;--r-acento:#5f8a4e;--r-claro:#f3f6f3;--r-medio:#c9d6c5;}
.reg-san-marcos-volcanico{--r-tinta:#4a2418;--r-acento:#b4552d;--r-claro:#f7ece4;--r-medio:#d9a98f;}
.reg-costa-cuca{--r-tinta:#173e32;--r-acento:#5f8a4e;--r-claro:#ebf2e7;--r-medio:#a9c49b;}
.reg-santa-maria-santiaguito{--r-tinta:#3a382f;--r-acento:#c9a55a;--r-claro:#f4f0e3;--r-medio:#d9cda4;}
.reg-faldas-del-atitlan{--r-tinta:#1f3f52;--r-acento:#4f8ea6;--r-claro:#e7f0f3;--r-medio:#a5c6d2;}
.reg-faldas-del-fuego{--r-tinta:#5a1f16;--r-acento:#d0652a;--r-claro:#f9ebe0;--r-medio:#e6b08a;}
.reg-nuevos-horizontes{--r-tinta:#43305a;--r-acento:#d19a3c;--r-claro:#f2edf5;--r-medio:#c9b3d6;}

/* ── Cabecera del directorio ── */
.dir-cifras{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none;}
.dir-cifras li{background:#fff;border:1px solid var(--linea);border-radius:999px;padding:9px 18px;font-size:14px;color:var(--tinta-suave);}
.dir-cifras b{font-family:var(--serif);font-size:19px;color:var(--bosque);margin-right:6px;}

/* ── Mapa e índice de subregiones ── */
.sub-indice{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:center;margin-top:34px;}
.sub-indice figure{margin:0;padding:16px;background:#fff;border:1px solid var(--linea);border-radius:10px;}
.sub-indice figure svg,.sub-indice figure img{display:block;width:100%;height:auto;}
.sub-indice figcaption{font-size:12.5px;line-height:1.6;color:var(--tinta-suave);margin:12px 2px 0;}
.sub-lista{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.sub-lista a{display:grid;grid-template-columns:40px 1fr auto;gap:14px;align-items:center;padding:13px 16px;background:#fff;border:1px solid var(--linea);
  border-left:5px solid var(--r-acento);border-radius:8px;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s;}
.sub-lista a:hover{transform:translateX(4px);box-shadow:0 16px 30px -24px rgba(28,57,40,.6);border-color:var(--r-acento);}
.sub-lista .n{width:36px;height:36px;border-radius:50%;background:var(--r-tinta);color:#fff;font:700 15px/36px var(--sans);text-align:center;}
.sub-lista b{display:block;font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--r-tinta);font-weight:600;}
.sub-lista small{display:block;font-size:12.5px;color:var(--tinta-suave);margin-top:2px;}
.sub-lista .c{font-size:12.5px;font-weight:700;color:var(--r-tinta);background:var(--r-claro);border-radius:999px;padding:4px 11px;white-space:nowrap;}

/* ── Exportadores ── */
.exp-banda{background:#132a1f;color:#e7efe3;position:relative;overflow:hidden;}
.exp-banda::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(38deg,rgba(255,255,255,.035) 0 1px,transparent 1px 8px);pointer-events:none;}
.exp-banda .wrap{position:relative;}
.exp-banda .eyebrow{color:#d8b676;} .exp-banda .eyebrow::before{background:#d8b676;}
.exp-banda h2.titulo{color:#fcfaf3;} .exp-banda .entradilla{color:#cfdccb;}
.exp-lista{list-style:none;margin:34px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:18px;}
.exp{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(216,182,118,.4);border-radius:10px;padding:22px 24px;
  transition:background .2s,transform .2s var(--ease);}
.exp:hover{background:rgba(255,255,255,.11);transform:translateY(-3px);}
.exp svg{width:64px;height:64px;color:#d8b676;}
.exp b{display:block;font-family:var(--serif);font-size:24px;line-height:1.15;color:#fcfaf3;font-weight:600;}
.exp span{display:block;font-size:13.5px;color:#cfdccb;margin-top:5px;}
.exp em{font-style:normal;display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:#d8b676;border-bottom:1px solid rgba(216,182,118,.5);}

/* ── Portada de subregión ── */
.reg{padding:0 0 clamp(54px,7vw,92px);background:#fff;}
.reg:nth-of-type(even){background:var(--r-claro);}
.reg-portada{position:relative;min-height:clamp(300px,38vw,440px);display:flex;align-items:flex-end;overflow:hidden;background:var(--r-tinta);}
.reg-portada>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.reg-portada::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,var(--r-tinta) 108%);opacity:.92;}
.reg-texto{position:relative;z-index:1;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut) clamp(28px,4vw,46px);color:#fff;}
.reg-num{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;color:#fff;}
.reg-num i{font-style:normal;width:34px;height:34px;border-radius:50%;background:var(--r-acento);color:#fff;font-size:15px;line-height:34px;text-align:center;letter-spacing:0;box-shadow:0 0 0 3px rgba(255,255,255,.35);}
.reg-texto h2{font-family:var(--serif);font-size:clamp(34px,5vw,58px);line-height:1.04;margin:0 0 10px;color:#fff;font-weight:600;text-shadow:0 2px 24px rgba(0,0,0,.35);}
.reg-lema{font-size:clamp(16px,1.6vw,20px);line-height:1.5;margin:0;max-width:46ch;color:#fff;opacity:.95;text-shadow:0 1px 14px rgba(0,0,0,.4);}
.reg-cuerpo{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:start;padding-top:clamp(34px,4.4vw,56px);}
.reg-cuerpo p{font-size:16.5px;line-height:1.78;color:var(--tinta-suave);margin:0 0 16px;}
.reg-ficha{border:1px solid var(--r-medio);border-top:4px solid var(--r-acento);border-radius:8px;padding:20px 22px;background:#fff;}
.reg-ficha dt{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--r-acento);margin:0 0 4px;}
.reg-ficha dd{margin:0 0 16px;font-size:15px;line-height:1.6;color:var(--r-tinta);font-weight:600;} .reg-ficha dd:last-child{margin:0;}
.reg-ficha dd b{font-family:var(--serif);font-size:30px;line-height:1;}
.aso-muni-t{display:flex;align-items:center;gap:12px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--r-tinta);margin:34px 0 14px;}
.aso-muni-t::after{content:"";flex:1;height:1px;background:var(--r-medio);}
.aso-lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:14px;}
.aso{position:relative;display:block;height:100%;background:#fff;border:1px solid var(--linea);border-top:4px solid var(--r-acento);border-radius:8px;padding:18px 18px 44px;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .2s;}
.aso:hover,.aso:focus-visible{transform:translateY(-4px);box-shadow:0 24px 40px -28px var(--r-tinta);border-color:var(--r-acento);outline:none;}
.aso b{display:block;font-family:var(--serif);font-size:20px;line-height:1.22;color:var(--r-tinta);font-weight:600;}
.aso span{display:block;font-size:13px;color:var(--tinta-suave);margin-top:5px;}
.aso i{position:absolute;left:18px;bottom:15px;font-style:normal;font-size:12.5px;font-weight:700;color:var(--r-acento);}
.aso i::after{content:" \2192";transition:margin .2s;} .aso:hover i::after{margin-left:5px;}
.aso em{position:absolute;right:14px;bottom:14px;font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5f4a12;background:#fbf3e0;border-radius:4px;padding:3px 8px;}

/* ── Perfil ── */
.pf-hero{position:relative;margin-top:88px;min-height:clamp(340px,42vw,480px);display:flex;align-items:flex-end;overflow:hidden;background:var(--r-tinta);}
.pf-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.pf-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08) 0,rgba(0,0,0,0) 30%,var(--r-tinta) 112%);}
.pf-hero .wrap{position:relative;z-index:1;width:100%;padding-bottom:clamp(28px,4vw,48px);color:#fff;}
.pf-hero .miga,.pf-hero .miga a{color:#fff;} .pf-hero .miga a{border-bottom-color:rgba(255,255,255,.5);}
.pf-hero h1{font-family:var(--serif);font-size:clamp(36px,5.4vw,64px);line-height:1.04;margin:14px 0 12px;color:#fff;font-weight:600;max-width:20ch;text-shadow:0 2px 24px rgba(0,0,0,.4);}
.pf-lema{font-size:clamp(16px,1.7vw,20px);line-height:1.5;margin:0 0 16px;max-width:52ch;text-shadow:0 1px 14px rgba(0,0,0,.45);}
.pf-datos{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;}
.pf-datos li{font-size:13px;font-weight:600;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(6px);border-radius:999px;padding:6px 14px;color:#fff;}
.pf-datos li.tipo{background:var(--r-acento);border-color:var(--r-acento);}
.pf-datos a{color:#fff;border-bottom:1px solid rgba(255,255,255,.55);}
.pf-cuerpo{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(30px,5vw,64px);align-items:start;}
.pf-cuerpo h2,.pf-bloque h2{font-family:var(--serif);font-size:30px;line-height:1.15;color:var(--r-tinta);margin:0 0 16px;font-weight:600;}
.pf-cuerpo h2::after,.pf-bloque h2::after{content:"";display:block;width:52px;height:3px;background:var(--r-acento);margin-top:12px;border-radius:2px;}
.pf-texto p{font-size:17px;line-height:1.8;color:var(--tinta-suave);margin:0 0 16px;white-space:pre-line;}
.pf-texto .pendiente{font-style:italic;color:var(--tinta-tenue);}
.pf-productos{margin-top:30px;padding:20px 22px;background:var(--r-claro);border-left:4px solid var(--r-acento);border-radius:0 8px 8px 0;}
.pf-productos h3{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--r-acento);margin:0 0 6px;}
.pf-productos p{margin:0;font-size:16px;line-height:1.7;color:var(--r-tinta);}
.pf-lado{display:grid;gap:22px;}
.pf-mapa{margin:0;background:#fff;border:1px solid var(--r-medio);border-radius:10px;padding:14px;}
.pf-mapa img{display:block;width:100%;height:auto;border-radius:6px;}
.pf-mapa figcaption{font-size:13.5px;line-height:1.6;color:var(--tinta-suave);margin:12px 4px 2px;}
.pf-mapa figcaption b{color:var(--r-tinta);}
.pf-contacto-pub{border:1px solid var(--r-medio);border-top:4px solid var(--r-acento);border-radius:8px;padding:20px 22px;background:#fff;}
.pf-contacto-pub h3{font-family:var(--serif);font-size:21px;color:var(--r-tinta);margin:0 0 12px;}
.pf-contacto-pub dl{margin:0;display:grid;gap:10px;} .pf-contacto-pub dt{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--r-acento);}
.pf-contacto-pub dd{margin:2px 0 0;font-size:15.5px;color:var(--r-tinta);font-weight:600;word-break:break-word;} .pf-contacto-pub dd a{border-bottom:1px solid var(--r-medio);}
.pf-bloque{padding:clamp(48px,6vw,80px) 0;} .pf-bloque.tinte{background:var(--r-claro);}
.pf-galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px;margin-top:8px;}
.pf-galeria figure{margin:0;} .pf-galeria button{display:block;width:100%;padding:0;border:0;background:var(--r-medio);border-radius:8px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;}
.pf-galeria img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease);} .pf-galeria button:hover img{transform:scale(1.04);}
.pf-galeria figcaption{font-size:13px;color:var(--tinta-suave);margin-top:7px;line-height:1.5;}
.pf-vacio{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative;}
.pf-vacio span{aspect-ratio:4/3;border-radius:8px;border:2px dashed var(--r-medio);background:repeating-linear-gradient(38deg,transparent 0 9px,rgba(0,0,0,.025) 9px 10px);}
.pf-vacio p{grid-column:1/-1;margin:6px 0 0;font-size:15px;line-height:1.7;color:var(--tinta-suave);max-width:70ch;}
.pf-vacio a{color:var(--r-tinta);font-weight:700;border-bottom:1px solid var(--r-acento);}
.pf-visor{border:0;padding:0;background:transparent;max-width:min(94vw,1500px);max-height:94vh;} .pf-visor::backdrop{background:rgba(10,18,14,.9);}
.pf-visor img{display:block;max-width:94vw;max-height:84vh;border-radius:6px;} .pf-visor p{color:#fff;font-size:14.5px;text-align:center;margin:12px 0 0;}
.pf-visor button{position:fixed;top:16px;right:18px;background:#fff;border:0;border-radius:999px;width:42px;height:42px;font-size:22px;cursor:pointer;}
.pf-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,5vw,60px);align-items:start;}
.pf-form-grid .entradilla{margin-top:0;}
.pf-vecinos{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.pf-vecinos a{display:block;font-size:14px;font-weight:600;color:var(--r-tinta);background:#fff;border:1px solid var(--r-medio);border-radius:999px;padding:8px 16px;transition:border-color .2s,background .2s;}
.pf-vecinos a:hover{border-color:var(--r-acento);background:var(--r-claro);}
body[class*="reg-"] .btn-bosque{background:var(--r-tinta);} body[class*="reg-"] .btn-bosque:hover{filter:brightness(1.18);}
body[class*="reg-"] .form-claro{border-top:4px solid var(--r-acento);}

@media(max-width:900px){
  .sub-indice,.reg-cuerpo,.pf-cuerpo,.pf-form-grid{grid-template-columns:1fr;gap:28px;}
  .pf-hero{margin-top:80px;} .pf-vacio{grid-template-columns:repeat(2,1fr);} .pf-vacio span:nth-child(3){display:none;}
}
@media(max-width:620px){.pf-hero{margin-top:74px;} .sub-lista a{grid-template-columns:36px 1fr;} .sub-lista .c{display:none;}}
@media(prefers-reduced-motion:reduce){.aso,.exp,.sub-lista a,.pf-galeria img{transition:none;}}
