/* Fraccionamiento Las Brisas · propuesta de rediseño (DIPRO) */
:root{
  --hoja:#1E4632;      /* verde hoja: fondo principal oscuro, letreros */
  --hoja-2:#2C5E45;
  --colibri:#A9D64F;   /* verde del colibrí del logo */
  --ala:#F29E38;       /* naranja del ala */
  --banqueta:#F4C430;  /* amarillo de guarnición */
  --tinta:#17241D;
  --piedra:#5D6660;
  --cal:#F5F7F3;       /* muro encalado */
  --blanco:#FFFFFF;
  --linea:#DCE3DC;
  --radio-letrero:6px;
  --max:1120px;
  --f-letrero:"Overpass",system-ui,sans-serif;
  --f-texto:"Atkinson Hyperlegible",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;font-family:var(--f-texto);font-size:1.0625rem;line-height:1.6;color:var(--tinta);background:var(--cal)}
img{max-width:100%;display:block}
a{color:var(--hoja)}
:focus-visible{outline:3px solid var(--ala);outline-offset:3px;border-radius:4px}
.envoltura{max-width:var(--max);margin:0 auto;padding:0 20px}
.salto{position:absolute;left:-999px;top:0;background:var(--banqueta);color:var(--tinta);padding:10px 14px;z-index:99}
.salto:focus{left:10px;top:10px}

/* ---------- Encabezado ---------- */
.cabecera{background:var(--hoja);color:var(--blanco);position:sticky;top:0;z-index:20;border-bottom:6px solid transparent;border-image:repeating-linear-gradient(90deg,var(--banqueta) 0 48px,var(--colibri) 48px 96px) 6}
.cabecera .envoltura{display:flex;align-items:center;gap:16px;min-height:72px}
.marca{display:flex;align-items:center;gap:10px;color:var(--blanco);text-decoration:none;margin-right:auto}
.insignia{display:block;background:#fff;border-radius:6px;padding:4px;line-height:0;flex:none}
.insignia img{height:48px;width:auto}
.marca strong{font-family:var(--f-letrero);font-weight:800;font-size:1.05rem;line-height:1.1;letter-spacing:.01em}
.marca span{display:block;font-family:var(--f-texto);font-weight:400;font-size:.8rem;opacity:.8}
.menu{display:flex;gap:6px;flex-wrap:wrap}
/* La idea central: el menú son placas de nomenclatura como las de las calles del fraccionamiento */
.placa{font-family:var(--f-letrero);font-weight:700;font-size:.92rem;text-decoration:none;color:var(--blanco);background:var(--hoja-2);border:2px solid rgba(255,255,255,.85);border-radius:var(--radio-letrero);padding:6px 12px 5px;line-height:1.2;white-space:nowrap}
.placa:hover{background:#356e52}
.placa[aria-current="page"]{background:var(--blanco);color:var(--hoja);border-color:var(--blanco)}
.boton-menu{display:none;background:none;border:2px solid rgba(255,255,255,.85);color:var(--blanco);border-radius:var(--radio-letrero);font:700 .95rem var(--f-letrero);padding:8px 12px;cursor:pointer}
@media (max-width:900px){
  .boton-menu{display:block}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--hoja);padding:14px 20px 20px;flex-direction:column}
  .menu.abierto{display:flex}
  .placa{font-size:1.05rem;padding:12px 14px}
}

/* ---------- Portada ---------- */
.portada{background:var(--hoja);color:var(--blanco);overflow:hidden}
.portada .envoltura{display:grid;grid-template-columns:1fr 1fr;gap:44px;padding-top:56px;padding-bottom:72px;align-items:center}
.portada h1{font-family:var(--f-letrero);font-weight:900;font-size:clamp(2.6rem,6vw,4.6rem);line-height:.95;margin:0 0 18px;letter-spacing:-.01em}
.portada h1 small{display:block;font-weight:600;font-size:.38em;letter-spacing:0;margin-top:14px;color:var(--colibri)}
.portada p{max-width:46ch;font-size:1.15rem;opacity:.92;margin:0}
.portada .foto{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/9;background:#163626;margin:0}
.portada .foto img{width:100%;height:100%;object-fit:cover}
.portada .foto figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 16px 12px;background:linear-gradient(transparent,rgba(10,30,20,.85));font-size:.9rem}
@media (max-width:800px){.portada .envoltura{grid-template-columns:1fr;padding-top:36px;padding-bottom:40px}.portada .foto{aspect-ratio:16/10}}

/* accesos rápidos */
.rapidos{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-34px;position:relative;z-index:2}
.rapido{background:var(--blanco);border:1px solid var(--linea);border-radius:10px;padding:18px 18px 16px;text-decoration:none;color:var(--tinta);display:flex;flex-direction:column;gap:4px;min-height:118px}
.rapido b{font-family:var(--f-letrero);font-size:1.15rem;line-height:1.2}
.rapido span{color:var(--piedra);font-size:.95rem}
.rapido.urgente{background:var(--banqueta);border-color:var(--banqueta)}
.rapido.urgente span{color:var(--tinta)}
.rapido:hover{border-color:var(--hoja)}
@media (max-width:900px){.rapidos{grid-template-columns:repeat(2,1fr)}}

/* ---------- Secciones ---------- */
.seccion{padding:64px 0}
.seccion+.seccion{padding-top:16px}
.titulo-seccion{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
h2{font-family:var(--f-letrero);font-weight:800;font-size:clamp(1.7rem,3.2vw,2.3rem);line-height:1.1;margin:0;color:var(--hoja)}
h3{font-family:var(--f-letrero);font-weight:700;font-size:1.2rem;line-height:1.25;margin:0 0 6px}
.ver-todo{font-weight:700}
.encabezado-pagina{background:var(--hoja);color:var(--blanco);padding:44px 0 40px}
.encabezado-pagina h1{font-family:var(--f-letrero);font-weight:900;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1;margin:0 0 10px}
.encabezado-pagina p{margin:0;max-width:60ch;opacity:.9;font-size:1.1rem}
.texto{max-width:68ch}
.texto p,.encabezado-pagina p,.portada p{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.titulo-seccion h2{text-wrap:balance}

/* comunicados */
.rejilla-avisos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.aviso{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;overflow:hidden;cursor:zoom-in;text-align:left;padding:0;font:inherit;color:inherit}
.aviso img{width:100%;aspect-ratio:3/4;object-fit:contain;background:#fff;padding:10px;border-bottom:1px solid var(--linea)}
.aviso{display:flex;flex-direction:column}
.aviso .pie{padding:12px 14px 14px;text-align:center;flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px}
.aviso .pie b{display:block;font-family:var(--f-letrero);font-size:1rem;line-height:1.3;text-wrap:balance}
.aviso .pie span{font-size:.85rem;color:var(--piedra)}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.filtro{font:700 .95rem var(--f-letrero);background:var(--blanco);border:2px solid var(--hoja);color:var(--hoja);border-radius:999px;padding:6px 14px;cursor:pointer}
.filtro[aria-pressed="true"]{background:var(--hoja);color:var(--blanco)}

/* línea del tiempo de obras */
.linea-tiempo{list-style:none;margin:0;padding:0;border-left:4px solid var(--banqueta)}
.linea-tiempo>li{position:relative;padding:0 0 34px 26px}
.linea-tiempo>li::before{content:"";position:absolute;left:-11px;top:6px;width:18px;height:18px;border-radius:50%;background:var(--hoja);border:3px solid var(--cal)}
.fecha{font-family:var(--f-letrero);font-weight:700;color:var(--piedra);font-size:.95rem}
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:10px}
.galeria button{padding:0;border:0;background:#e9ece8;border-radius:6px;overflow:hidden;cursor:zoom-in;aspect-ratio:1}
.galeria img{width:100%;height:100%;object-fit:cover}
.mas-fotos{font:700 .95rem var(--f-texto);color:var(--hoja);background:none;border:0;padding:8px 0;cursor:pointer;text-decoration:underline}

/* tarjetas de obras anteriores */
.obras{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.obra{background:var(--blanco);border-radius:10px;overflow:hidden;border:1px solid var(--linea)}
.obra img{width:100%;aspect-ratio:16/10;object-fit:cover}
.obra .cuerpo{padding:16px 18px 18px}
.obra p{margin:8px 0 0;color:var(--piedra);font-size:.98rem;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.obra h3{text-wrap:balance}

/* emergencias y directorio */
.telefonos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.telefono{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--blanco);border:1px solid var(--linea);border-left:8px solid var(--hoja);border-radius:8px;padding:14px 16px;text-decoration:none;color:var(--tinta)}
.telefono b{font-family:var(--f-letrero);font-size:1.05rem}
.telefono span{font-weight:700;color:var(--hoja);white-space:nowrap}
.telefono.critico{border-left-color:#C62828}
.telefono.agua{border-left-color:#1F78B4}
.tabla{width:100%;border-collapse:collapse;background:var(--blanco);border-radius:8px;overflow:hidden}
.tabla th,.tabla td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--linea)}
.tabla th{font-family:var(--f-letrero);background:#E8EFE8;color:var(--hoja)}
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media (max-width:800px){.dos-col{grid-template-columns:1fr}}

/* documentos */
.documento{display:flex;gap:18px;align-items:center;background:var(--blanco);border:1px solid var(--linea);border-radius:10px;padding:18px}
.documento .icono{flex:none;width:52px;height:64px;border-radius:4px;background:var(--hoja);color:var(--blanco);font:800 .8rem var(--f-letrero);display:grid;place-items:end center;padding-bottom:8px}
.boton{display:inline-block;font:700 1rem var(--f-letrero);background:var(--hoja);color:var(--blanco);text-decoration:none;border-radius:var(--radio-letrero);padding:12px 18px;border:0;cursor:pointer}
.boton.claro{background:var(--blanco);color:var(--hoja);border:2px solid var(--hoja)}
.boton.whats{background:#1F8F4E}

/* visor de imágenes */
dialog.visor{border:0;padding:0;background:transparent;max-width:min(96vw,980px);max-height:94vh}
dialog.visor::backdrop{background:rgba(8,20,14,.88)}
dialog.visor img{max-height:84vh;width:auto;margin:auto;border-radius:6px}
dialog.visor .barra{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--blanco);padding:10px 2px 0}
dialog.visor button{font:700 1rem var(--f-letrero);background:var(--blanco);color:var(--hoja);border:0;border-radius:var(--radio-letrero);padding:8px 14px;cursor:pointer}

/* pie */
.pie-sitio{background:var(--tinta);color:#cfd8d1;margin-top:64px;padding:40px 0 30px;font-size:.95rem}
.pie-sitio .envoltura{display:grid;grid-template-columns:2fr 1fr 1fr;gap:28px}
.pie-sitio a{color:var(--blanco)}
.pie-sitio h3{color:var(--blanco);font-size:1.05rem}
.pie-sitio ul{list-style:none;padding:0;margin:0;line-height:1.9}
@media (max-width:800px){.pie-sitio .envoltura{grid-template-columns:1fr}}
.aviso-propuesta{background:var(--ala);color:var(--tinta);text-align:center;font-size:.9rem;padding:6px 12px;font-weight:700}

/* bienvenida + calendario */
.bienvenida{display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start}
.bienvenida .sub{margin-top:28px;color:var(--hoja)}
@media (max-width:860px){.bienvenida{grid-template-columns:1fr}}
.calendario{background:var(--blanco);border:1px solid var(--linea);border-top:6px solid var(--hoja);border-radius:10px;padding:18px 18px 16px}
.calendario h2{font-size:1.4rem;margin-bottom:8px}
.cal-cabeza{display:flex;align-items:center;justify-content:space-between;margin:4px 0 8px}
.cal-cabeza button{font:800 1.3rem var(--f-letrero);width:38px;height:38px;border-radius:6px;border:2px solid var(--hoja);background:#fff;color:var(--hoja);cursor:pointer;line-height:1}
.cal-mes{font-family:var(--f-letrero);font-weight:800;font-size:1.1rem}
.calendario table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:center}
.calendario th{font:700 .85rem var(--f-letrero);color:var(--piedra);padding:4px 0}
.calendario td{padding:2px}
.dia{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:6px;font:600 .95rem var(--f-texto);color:var(--tinta)}
.dia.hoy{outline:2px solid var(--ala);outline-offset:-2px}
button.dia.con{background:var(--banqueta);border:0;cursor:pointer;font-weight:700}
button.dia.con:hover{background:var(--hoja);color:#fff}
.cal-lista{font-size:.92rem;color:var(--piedra);margin-top:10px;text-align:center}
.cal-lista ul{list-style:none;padding:0;margin:0;text-align:left}
.cal-lista li{padding:6px 0;border-bottom:1px solid var(--linea)}
.enlace{background:none;border:0;padding:0;font:700 .95rem var(--f-texto);color:var(--hoja);text-decoration:underline;cursor:pointer;text-align:left}
@media (max-width:600px){.texto p,.encabezado-pagina p,.portada p,.obra p{text-align:left}}
