/* ========== ESTILOS BASE TEMÁTICA AMAZÓNICA ========== */
:root {
  --verde-selva: #2c5e2e;
  --verde-claro: #4c8b3c;
  --tierra: #8b5a2b;
  --agua: #2c7da0;
  --arena: #f4e4c1;
  --texto-oscuro: #1e2f1e;
  --fondo-claro: #fef9e8;
}

/* ========== INDEX.HTML ========== */
body.index-page {
  font-family: 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
  background-color: var(--fondo-claro);
  color: var(--texto-oscuro);
  transition: background-color 0.2s, color 0.2s;
}

body.index-page.low-mode {
  background-color: #ffffff !important;
}

body.index-page.low-mode .card,
body.index-page.low-mode .navbar,
body.index-page.low-mode .btn,
body.index-page.low-mode .alert,
body.index-page.low-mode .carousel {
  box-shadow: none !important;
  background-image: none !important;
  transition: none !important;
}

body.index-page.low-mode .card {
  border: 1px solid #ccc;
}

body.index-page.high-contrast {
  background-color: #000000 !important;
  color: #ffff00 !important;
}

body.index-page.high-contrast .card,
body.index-page.high-contrast .navbar,
body.index-page.high-contrast .bg-light,
body.index-page.high-contrast footer,
body.index-page.high-contrast .carousel {
  background-color: #000000 !important;
  color: #ffff00 !important;
  border-color: #ffff00 !important;
}

body.index-page.high-contrast .btn-primary {
  background-color: #ffff00 !important;
  color: #000000 !important;
  border-color: #ffff00 !important;
}

body.index-page.high-contrast a {
  color: #ffff99 !important;
}

body.index-page .navbar {
  background: linear-gradient(135deg, var(--verde-selva), #1e3a1e);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

body.index-page .navbar-brand,
body.index-page .nav-link {
  color: white !important;
  font-weight: 500;
}

.navbar-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.navbar-escudo {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  background-color: #ffffff;
  border: 2px solid rgba(255, 255, 255, 0.85);
  flex: 0 0 36px;
}

body.index-page .nav-link:hover {
  color: #ffefb9 !important;
  transform: translateY(-2px);
  transition: 0.2s;
}

body.index-page .hero {
  position: relative;
  overflow: hidden;
  background-color: var(--verde-selva);
  color: white;
  padding: 4rem 0;
  text-align: center;
}

body.index-page .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(44,94,46,0.45), rgba(27,51,21,0.45));
  z-index: 1;
}

body.index-page .hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

body.index-page .hero .container {
  position: relative;
  z-index: 2;
}

body.index-page .hero-escudo {
  position: relative;
  z-index: 4;
  display: block;
  width: 130px;
  height: 130px;
  margin: 1rem auto 0;
  border-radius: 50%;
  object-fit: cover;
  background-color: #ffffff;
  border: 4px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
}

body.index-page .card {
  border: none;
  border-radius: 20px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.05);
  transition: all 0.2s ease;
  background: white;
}

body.index-page .card:hover {
  transform: translateY(-5px);
}

body.index-page.low-mode .card:hover {
  transform: none;
}

body.index-page .btn-primary {
  background-color: var(--verde-selva);
  border-color: var(--verde-selva);
}

body.index-page .btn-primary:hover {
  background-color: #1e4a1e;
}

body.index-page footer {
  background-color: #1e3a1e;
  color: #f5e7c8;
}

body.index-page .section-title {
  border-left: 6px solid var(--verde-selva);
  padding-left: 1rem;
  margin: 2rem 0 1.5rem;
}

body.index-page .list-group-item {
  background-color: rgba(255,255,240,0.8);
}

body.index-page .icon-large {
  font-size: 2.5rem;
  color: var(--verde-selva);
}

body.index-page .accessibility-bar {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1050;
  display: flex;
  gap: 10px;
}

body.index-page .access-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--verde-selva);
  color: white;
  border: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transition: 0.1s;
}

.intuto-carousel .carousel-inner {
  overflow: hidden;
  border-radius: 1rem;
  background: #102610;
}

.intuto-carousel .carousel-item {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 300px;
  max-height: 560px;
  overflow: hidden;
}

.intuto-carousel .carousel-item img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 300px;
  max-height: 560px;
  object-fit: cover;
  object-position: center center;
  background-color: #102610;
  filter: brightness(.88);
}

.intuto-carousel .carousel-caption {
  position: absolute;
  right: 8%;
  bottom: 1.25rem;
  left: 8%;
  z-index: 2;
  padding: .85rem 1.15rem;
  margin: 0 auto;
  max-width: 760px;
  color: #fff;
  text-align: center;
  background: linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.58));
  border: 1px solid rgba(255,255,255,.22);
  border-radius: .8rem;
  text-shadow: 0 1px 2px rgba(0,0,0,.55);
}

.intuto-carousel .carousel-caption h5 {
  margin: 0 0 .25rem;
  font-size: clamp(1rem, 2vw, 1.45rem);
  font-weight: 700;
}

.intuto-carousel .carousel-caption p {
  margin: 0;
  font-size: clamp(.82rem, 1.25vw, 1rem);
  line-height: 1.4;
}

body.index-page.low-mode .intuto-carousel .carousel-item img {
  filter: none;
}

/* ========== SERVICIOS-MUNICIPALES.HTML ========== */
body.services-page {
  font-family: 'Segoe UI', sans-serif;
  background-color: var(--fondo-claro);
}

body.services-page .navbar {
  background: linear-gradient(135deg, #2c5e2e, #1e3a1e);
}

body.services-page .navbar-brand,
body.services-page .nav-link {
  color: white !important;
}

body.services-page .hero {
  background: #2c5e2e;
  color: white;
  padding: 2rem 0;
  text-align: center;
}

body.services-page .card {
  border-radius: 20px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  transition: 0.2s;
}

body.services-page .card:hover {
  transform: translateY(-5px);
}

body.services-page .accessibility-bar {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1050;
  display: flex;
  gap: 10px;
}

body.services-page .access-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #2c5e2e;
  color: white;
  border: none;
}

body.services-page.low-mode .card,
body.services-page.low-mode .navbar {
  box-shadow: none !important;
  background-image: none !important;
}

body.services-page.high-contrast {
  background-color: black;
  color: yellow;
}

body.services-page.high-contrast .card,
body.services-page.high-contrast .navbar {
  background-color: black !important;
  color: yellow !important;
  border-color: yellow !important;
}

body.services-page .escudo-temporal {
  background-color: #d4a017;
  border-radius: 50%;
  width: 86px;
  height: 86px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 0.75rem;
}

.escudo-temporal img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(255, 255, 255, 0.85);
}

/* ========== PÁGINAS INTERNAS ========== */
body.sub-page {
  font-family: 'Segoe UI', sans-serif;
  background-color: var(--fondo-claro);
}

body.sub-page .navbar {
  background: linear-gradient(135deg, #2c5e2e, #1e3a1e);
}

body.sub-page .navbar-brand,
body.sub-page .nav-link {
  color: white !important;
}

body.sub-page .hero-small {
  background: #2c5e2e;
  color: white;
  padding: 1.5rem 0;
  text-align: center;
}

body.sub-page .card {
  border-radius: 20px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

body.sub-page .accessibility-bar {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1050;
  display: flex;
  gap: 10px;
}

body.sub-page .access-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #2c5e2e;
  color: white;
  border: none;
}

body.sub-page.low-mode .card,
body.sub-page.low-mode .navbar {
  box-shadow: none !important;
}

body.sub-page.high-contrast {
  background-color: black;
  color: yellow;
}

body.sub-page.high-contrast .card,
body.sub-page.high-contrast .navbar {
  background-color: black !important;
  color: yellow !important;
  border-color: yellow !important;
}

body.sub-page .escudo-temporal {
  background-color: #d4a017;
  border-radius: 50%;
  width: 86px;
  height: 86px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 0.75rem;
}

@media (max-width: 768px) {
  .intuto-carousel .carousel-item { aspect-ratio: 4 / 3; min-height: 260px; }
  .intuto-carousel .carousel-item img { min-height: 260px; }
  .intuto-carousel .carousel-caption { right: 5%; left: 5%; bottom: .75rem; padding: .65rem .8rem; }
}


/* ========== FOOTER INSTITUCIONAL ========== */
.site-footer {
  background: linear-gradient(135deg, #1e3a1e, #173017);
  color: #f5e7c8;
  border-top: 5px solid #d4a017;
}

.site-footer h5,
.site-footer h6 {
  color: #ffffff;
  font-weight: 700;
  margin-bottom: 0.9rem;
}

.site-footer h6 {
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 0.75rem;
}

.footer-brand h5,
.footer-brand p {
  margin: 0;
}

.footer-brand p,
.footer-text,
.footer-list {
  color: #eadfbd;
}

.footer-logo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #d4a017;
  color: #ffffff;
  font-size: 1.5rem;
  flex: 0 0 48px;
}

.footer-logo img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(255, 255, 255, 0.85);
}

.footer-text {
  margin-bottom: 0;
  line-height: 1.6;
}

.footer-social-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 1rem;
  padding: 0.45rem 0.85rem;
  border-radius: 8px;
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.footer-social-btn:hover {
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22);
}

.facebook-btn {
  background-color: #1877f2;
}

/* Redes sociales flotantes: visibles en todas las páginas */
.social-float-stack{position:fixed;right:18px;bottom:100px;z-index:1040;display:flex;flex-direction:column;gap:10px;align-items:center}
.social-float{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.45rem;text-decoration:none;box-shadow:0 5px 15px rgba(0,0,0,.28);transition:transform .2s ease,box-shadow .2s ease}
.social-float:hover{color:#fff;transform:translateY(-3px) scale(1.05);box-shadow:0 9px 22px rgba(0,0,0,.32)}
.social-float:focus-visible{outline:3px solid #f5c542;outline-offset:3px}
.facebook-float{background:#1877f2}.instagram-float{background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045)}.tiktok-float{background:#111}.youtube-float{background:#ff0033}.whatsapp-float{background:#25d366}
@media(max-width:576px){.social-float-stack{right:10px;bottom:100px;gap:8px}.social-float{width:43px;height:43px;font-size:1.25rem}}

.footer-list,
.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-list li,
.footer-links li {
  margin-bottom: 0.65rem;
}

.footer-list i {
  color: #d4a017;
  margin-right: 0.45rem;
}

.footer-links a {
  color: #eadfbd;
  text-decoration: none;
}

.footer-links a:hover {
  color: #ffffff;
  text-decoration: underline;
}

.footer-bottom {
  background-color: rgba(0, 0, 0, 0.22);
  color: #eadfbd;
  font-size: 0.9rem;
  padding: 0.85rem 0;
}

body.high-contrast .site-footer,
body.high-contrast .footer-bottom {
  background: #000000 !important;
  color: #ffff00 !important;
  border-color: #ffff00 !important;
}

body.high-contrast .site-footer h5,
body.high-contrast .site-footer h6,
body.high-contrast .footer-brand p,
body.high-contrast .footer-text,
body.high-contrast .footer-list,
body.high-contrast .footer-links a,
body.high-contrast .footer-bottom {
  color: #ffff00 !important;
}

body.high-contrast .footer-logo {
  background-color: #ffff00 !important;
  color: #000000 !important;
}

body.high-contrast .footer-social-btn,
body.high-contrast .facebook-float,
body.high-contrast .whatsapp-float {
  background: #000000 !important;
  color: #ffff00 !important;
  border: 2px solid #ffff00 !important;
}


/* ===== Mejoras de navegación inspiradas en Satalay Math 4.0 ===== */
.site-search-form{position:relative;margin:0 1rem 0 .65rem;min-width:235px;max-width:300px;flex:1 1 235px}
.site-search-wrap{position:relative;display:flex;align-items:center;background:#fff;border:1px solid rgba(44,94,46,.22);border-radius:999px;box-shadow:0 4px 14px rgba(20,50,25,.07);padding:3px 5px 3px 13px;gap:7px}
.site-search-wrap>i{color:var(--verde-claro);font-size:1rem}
.site-search-wrap input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#243526;font-size:.84rem;padding:7px 0}
.site-search-wrap input::placeholder{color:#68766a}
.site-search-wrap>button{flex:0 0 32px;width:32px;height:32px;border:0;border-radius:50%;background:var(--verde-selva);color:#fff;display:grid;place-items:center;transition:transform .2s,background .2s}
.site-search-wrap>button:hover{background:var(--verde-claro);transform:scale(1.05)}
.site-search-results{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;min-width:min(370px,90vw);max-height:65vh;overflow:auto;z-index:1100;background:#fff;color:#243526;border:1px solid #dce7dc;border-radius:16px;padding:7px;box-shadow:0 18px 50px rgba(14,35,18,.2)}
.site-search-results.is-open{display:block;animation:searchPop .16s ease-out}
@keyframes searchPop{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.search-result{display:flex;width:100%;align-items:center;gap:10px;text-align:left;padding:10px;border:0;border-radius:11px;background:transparent;color:inherit}
.search-result:hover,.search-result[aria-selected="true"]{background:#edf5ec}
.search-result-icon{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:10px;background:#e1efdf;color:#2c5e2e;font-size:1.1rem}
.search-result-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.search-result-copy strong{font-size:.88rem;line-height:1.25}
.search-result-copy small{font-size:.75rem;color:#667367;line-height:1.35}
.search-result-arrow{color:#778578;font-size:.8rem}
.search-hint,.search-empty{display:flex;gap:9px;align-items:center;padding:14px;color:#526454;font-size:.85rem}
.search-empty{align-items:flex-start;flex-direction:column;gap:4px}.search-empty i{font-size:1.2rem;color:#2c5e2e}.search-empty span{font-size:.78rem}
.navbar-nav .nav-link.active{font-weight:700;color:var(--verde-selva)!important;position:relative}
.navbar-nav .nav-link.active:after{content:"";position:absolute;left:.5rem;right:.5rem;bottom:.2rem;height:2px;border-radius:2px;background:var(--verde-claro)}
.back-to-top{position:fixed;right:22px;bottom:24px;z-index:1050;width:46px;height:46px;border:0;border-radius:50%;background:var(--verde-selva);color:#fff;box-shadow:0 8px 22px #18391d40;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s,transform .2s;display:grid;place-items:center;font-size:1.2rem}
.back-to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.reveal-on-scroll{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)}
.search-highlight{outline:3px solid #e0b84f!important;outline-offset:5px;border-radius:8px;transition:outline .3s}
body.low-mode .reveal-on-scroll{opacity:1;transform:none;transition:none}
body.low-mode .site-search-results,body.low-mode .site-search-wrap,body.low-mode .back-to-top{box-shadow:none}
body.high-contrast .site-search-wrap,body.high-contrast .site-search-results,body.high-contrast .search-result{background:#000!important;color:#ff0!important;border-color:#ff0!important}
body.high-contrast .site-search-wrap input,body.high-contrast .site-search-wrap input::placeholder{color:#ff0!important}
body.high-contrast .search-result-icon{background:#111!important;color:#ff0!important}
@media(max-width:991.98px){.site-search-form{margin:.5rem 0 1rem;max-width:none;width:100%;flex-basis:100%}.site-search-results{min-width:0}.navbar-nav .nav-link.active:after{display:none}.navbar-collapse{padding-bottom:.5rem}}
@media(prefers-reduced-motion:reduce){.reveal-on-scroll,.site-search-results.is-open,.back-to-top{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* ===== Acabado profesional, accesibilidad y componentes de servicio ===== */
:root { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:.75rem 1rem;border-radius:.65rem;background:#102f1c;color:#fff;font-weight:700;transform:translateY(-160%);transition:transform .18s}
.skip-link:focus{transform:translateY(0);color:#fff;outline:3px solid #e3b341;outline-offset:3px}
.navbar .navbar-toggler:focus-visible,.nav-link:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #dcae31!important;outline-offset:3px;box-shadow:none!important}
.navbar .navbar-brand{display:flex;align-items:center;gap:.55rem;white-space:normal;line-height:1.15}
.navbar-escudo{object-fit:contain;flex-shrink:0}
.quick-access{padding:clamp(1.25rem,3vw,2rem);margin:0 0 2.25rem;border:1px solid #e1e9df;border-radius:1.25rem;background:linear-gradient(135deg,#f7fbf5,#edf5eb)}
.quick-access-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.15rem}
.quick-access-heading h2{margin:0;color:var(--verde-selva);font-weight:800;font-size:clamp(1.35rem,2vw,1.8rem)}
.quick-access-heading p{margin:.35rem 0 0;color:#586b59}
.quick-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.quick-access-card{display:flex;align-items:center;gap:.85rem;min-height:88px;padding:1rem;border:1px solid #dbe7d8;border-radius:1rem;background:#fff;color:#203e26;text-decoration:none;box-shadow:0 5px 16px #173d1b0a;transition:transform .2s,border-color .2s,box-shadow .2s}
.quick-access-card:hover{transform:translateY(-3px);border-color:#9fbe9b;box-shadow:0 12px 26px #173d1b12;color:#173d1b}
.quick-access-card>i{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:.8rem;background:#e8f2e5;color:#2c5e2e;font-size:1.35rem}
.quick-access-card strong{display:block;font-size:.98rem;line-height:1.25}
.quick-access-card small{display:block;margin-top:.25rem;color:#68776a;font-size:.8rem;line-height:1.35}
.site-footer a:focus-visible,.footer-links a:focus-visible{outline-color:#f3d26a!important}
.social-float{display:grid;place-items:center;text-decoration:none;transition:transform .2s,box-shadow .2s}
.social-float:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 12px 28px #0003}
.social-float:focus-visible,.back-to-top:focus-visible{outline:3px solid #e0b84f!important;outline-offset:4px}
.accessibility-bar{z-index:1040}
.access-btn[aria-pressed="true"]{outline:2px solid #d7a829;outline-offset:2px}
.search-result-copy small{display:block}
.search-highlight{scroll-margin-top:100px}
main section,main .card{scroll-margin-top:100px}
body.low-mode *,body.low-mode *::before,body.low-mode *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
body.low-mode .reveal-on-scroll{opacity:1;transform:none}
body.high-contrast body.high-contrast .quick-access{background:#000!important;border:2px solid #ff0!important}
body.high-contrast .quick-access-heading h2,body.high-contrast .quick-access-heading p{color:#ff0!important}
body.high-contrast .quick-access-card{background:#000!important;color:#ff0!important;border:1px solid #ff0!important}
body.high-contrast .quick-access-card small{color:#ff0!important}
@media(max-width:767.98px){.quick-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-access-heading{align-items:start;flex-direction:column}.quick-access-card{padding:.85rem;gap:.65rem}.quick-access-card>i{flex-basis:38px;height:38px;font-size:1.15rem}}
@media(max-width:420px){.quick-access-grid{grid-template-columns:1fr}.quick-access-card{min-height:72px}.facebook-float,.whatsapp-float{width:46px;height:46px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.quick-access-card,.facebook-float,.whatsapp-float,.skip-link{transition:none!important}}
.form-demo-note{display:flex;gap:.45rem;align-items:flex-start;margin:.25rem 0 .75rem;color:#705a1e;font-size:.82rem;line-height:1.45}
.form-demo-note i{margin-top:.12rem;flex-shrink:0}
body.high-contrast .form-demo-note{color:#ff0!important}

/* Anclas del buscador: evitan que la barra fija tape el título */
main [id]{scroll-margin-top:90px}

/* ===== Mejoras profesionales ===== */
.intuto-carousel{position:relative}
.carousel-toggle{position:absolute;top:.75rem;right:.75rem;z-index:5;width:42px;height:42px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer}
.carousel-toggle:hover,.carousel-toggle:focus-visible{background:#000;outline:3px solid #e3b341;outline-offset:2px}
.news-card{border-left:4px solid var(--verde-oscuro,#2c5e2e);transition:transform .15s,box-shadow .15s}
.news-card:hover{transform:translateY(-2px);box-shadow:0 .5rem 1rem rgba(0,0,0,.12)}
.news-tag{display:inline-flex;align-items:center;gap:.35rem;align-self:flex-start;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#1f4a22;background:#e6f2e6;border-radius:2rem;padding:.2rem .65rem;margin-bottom:.5rem}
.contact-list li{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem 0;border-bottom:1px solid rgba(0,0,0,.08)}
.contact-list li:last-child{border-bottom:0}
.contact-list i{color:#2c5e2e;margin-top:.15rem}
.map-card iframe{width:100%;height:340px;border:0;border-radius:.5rem}
.legal h2{margin-top:1.25rem}
.footer-bottom a{color:inherit;text-decoration:underline}
.list-group-item[aria-disabled="true"]{cursor:default}
body.high-contrast .news-card{border-left-color:#ff0}
body.high-contrast .news-tag{background:#000;color:#ff0;border:1px solid #ff0}
body.high-contrast .contact-list i{color:#ff0}
body.low-mode .news-card{transition:none}
@media(prefers-reduced-motion:reduce){.news-card{transition:none}}

/* ===== Accesos destacados ===== */
.quicklinks{background:#fff;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 2px 8px rgba(0,0,0,.05)}
.quicklinks .container{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;padding-top:.6rem;padding-bottom:.6rem}
.quicklinks a{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.55rem .75rem;border-radius:.6rem;color:var(--texto-oscuro);text-decoration:none;font-weight:600;line-height:1.2;transition:background .15s}
.quicklinks a:hover{background:#eef6ee}
.quicklinks i{font-size:1.6rem;color:var(--verde-selva)}
.quicklinks .quicklink-cta{background:#b3261e;color:#fff}
.quicklinks .quicklink-cta i{color:#fff}
.quicklinks .quicklink-cta:hover{background:#8f1e18}
@media(max-width:767.98px){.quicklinks .container{grid-template-columns:repeat(2,1fr)}.quicklinks a{justify-content:flex-start;font-size:.9rem}}
/* ===== Banner collage ===== */
.hero-collage{position:relative;display:flex;min-height:320px;background:#1e3a1e;color:#fff;overflow:hidden}
.hero-panel{position:relative;z-index:3;flex:0 0 34%;display:flex;flex-direction:column;justify-content:center;padding:1.5rem 2.5rem;background:linear-gradient(135deg,var(--verde-selva),#1e3a1e)}
.hero-panel .hero-escudo{width:84px;height:84px;margin:0 0 .75rem;border-radius:50%;object-fit:cover;background:#fff;border:3px solid rgba(255,255,255,.9)}
.hero-panel h1{font-size:clamp(1.3rem,2.4vw,2rem);font-weight:800;line-height:1.15;margin:0 0 .25rem}
.hero-sub{margin:0 0 .5rem;font-weight:600;color:#f4e4c1}
.hero-lema{margin:0;font-style:italic;font-size:.95rem;opacity:.95}
.hero-strips{position:relative;z-index:1;flex:1;display:flex;margin-left:-4rem}
.hero-strips::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.45));z-index:2}
.hero-strips .strip{flex:1;margin-left:-2.2rem;clip-path:polygon(2.2rem 0,100% 0,calc(100% - 2.2rem) 100%,0 100%)}
.hero-strips .strip:first-child{margin-left:0}
.hero-strips img{width:100%;height:100%;object-fit:cover;display:block}
.hero-welcome{position:absolute;z-index:4;right:5%;bottom:1.2rem;margin:0;font-size:clamp(1.3rem,3vw,2.4rem);font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.7)}
@media(max-width:767.98px){.hero-collage{flex-direction:column}.hero-panel{flex:none;padding:1.25rem}.hero-strips{margin-left:0;height:150px}.hero-strips .strip{margin-left:-1.2rem;clip-path:polygon(1.2rem 0,100% 0,calc(100% - 1.2rem) 100%,0 100%)}.hero-welcome{bottom:.6rem;right:1rem}}
body.high-contrast .hero-panel{background:#000;border-right:3px solid #ff0}
body.high-contrast .hero-sub{color:#ff0}
body.low-mode .hero-strips img{display:none}
body.low-mode .hero-strips{background:#2c5e2e}
/* ===== Menú desplegable ===== */
.navbar .dropdown-menu{border:0;border-radius:.6rem;box-shadow:0 .5rem 1.25rem rgba(0,0,0,.2)}
.navbar .dropdown-item{padding:.55rem 1rem;color:var(--texto-oscuro)}
.navbar .dropdown-item:hover,.navbar .dropdown-item:focus{background:#eef6ee}
.navbar .dropdown-item.active,.navbar .dropdown-item:active{background:var(--verde-selva);color:#fff}
body.high-contrast .dropdown-menu{background:#000;border:2px solid #ff0}
body.high-contrast .dropdown-item{color:#ff0}
body.high-contrast .dropdown-item:hover{background:#222}
body.high-contrast .quicklinks,body.high-contrast .quicklinks a{background:#000;color:#ff0;border-color:#ff0}
body.high-contrast .quicklinks i{color:#ff0}
/* ===== Tarjetas, títulos y reseña ===== */
main .section-title,.card-heading{border-bottom:3px solid var(--tierra);padding-bottom:.4rem;margin-bottom:1rem}
main .card{box-shadow:0 .25rem .75rem rgba(0,0,0,.07)}
.meta-line{font-size:.85rem;color:#5b6b5b;margin:-.25rem 0 1.25rem}
.history-item{display:flex;gap:1rem;padding:1rem 0;border-top:1px solid rgba(0,0,0,.08)}
.history-item>i{flex:0 0 auto;font-size:1.6rem;color:var(--verde-selva);width:2.2rem;text-align:center;margin-top:.15rem}
.history-item h3{color:var(--verde-selva);margin-bottom:.4rem}
.history-item p{margin:0;text-align:justify}
body.high-contrast .history-item>i,body.high-contrast .history-item h3{color:#ff0}
@media(max-width:575.98px){.history-item{gap:.7rem}.history-item p{text-align:left}}

/* ===== Cabecera de contacto, filtros, obras y documentos ===== */
[data-filter-item][hidden]{display:none!important}
.topbar{background:#1e3a1e;color:#fff;font-size:.82rem}
.topbar .container{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;justify-content:flex-end;padding-top:.35rem;padding-bottom:.35rem}
.topbar a{color:#fff;text-decoration:none}.topbar a:hover{text-decoration:underline}
.topbar i{margin-right:.25rem;color:#f4e4c1}
@media(max-width:575.98px){.topbar .container{justify-content:center;font-size:.78rem}}
.demo-badge{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#7a4b00;background:#ffe9b8;border:1px solid #e3b341;border-radius:2rem;padding:.05rem .5rem}
.demo-note{font-size:.9rem}
.filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin:.25rem 0}
.filter-btn.active{background:var(--verde-selva);border-color:var(--verde-selva);color:#fff}
.news-date{font-size:.85rem;color:#5b6b5b}
.status-pill{font-size:.75rem;font-weight:700;border-radius:2rem;padding:.15rem .65rem}
.status-proceso{background:#fff3cd;color:#664d03}.status-culminada{background:#d1e7dd;color:#0a3622}.status-pendiente{background:#e2e3e5;color:#2b2f32}
.obra-card .progress{height:.8rem;background:#e6efe6}
.obra-card .progress-bar{background:var(--verde-claro)}
.stat-card strong{color:var(--verde-selva)}
.doc-item{display:flex;gap:.9rem;align-items:flex-start}
.doc-icon{font-size:1.8rem;color:#b3261e}
body.high-contrast .topbar{background:#000;border-bottom:1px solid #ff0}
body.high-contrast .demo-badge,body.high-contrast .status-pill{background:#000;color:#ff0;border:1px solid #ff0}
body.high-contrast .filter-btn{color:#ff0;border-color:#ff0;background:#000}
body.high-contrast .filter-btn.active{background:#ff0;color:#000}
body.high-contrast .obra-card .progress{background:#333}body.high-contrast .obra-card .progress-bar{background:#ff0}
body.high-contrast .doc-icon,body.high-contrast .stat-card strong{color:#ff0}

/* ===== Postales (galería) ===== */
.postal{margin:0}
.postal-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:.6rem;overflow:hidden}
.postal-btn:focus-visible{outline:3px solid #e3b341;outline-offset:2px}
.postal img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;display:block;transition:transform .2s}
.postal-btn:hover img{transform:scale(1.04)}
.postal figcaption{font-size:.9rem;margin-top:.4rem;text-align:center}
body.low-mode .postal img{transition:none}
body.high-contrast .postal figcaption{color:#ff0}
@media(prefers-reduced-motion:reduce){.postal img{transition:none}}

/* ===== Tarjetas con foto (catálogo) y fotos centradas ===== */
.photo-card{border:0;border-radius:.9rem;overflow:hidden;box-shadow:0 .25rem 1rem rgba(0,0,0,.1)}
.photo-card-img{display:block;overflow:hidden;background:#dfe9df}
.photo-card-img img{width:100%;height:auto;aspect-ratio:1 / 1;object-fit:cover;object-position:center;display:block;transition:transform .25s}
.photo-card:hover .photo-card-img img{transform:scale(1.04)}
.photo-card .card-body{padding:1.1rem 1.25rem 1.25rem}
.photo-card-accent{font-weight:700;color:var(--verde-selva)}
.postal img,.photo-card-img img,.intuto-carousel .carousel-item img,.hero-strips img{object-fit:cover}
.galeria .postal{text-align:center}
body.low-mode .photo-card-img img{transition:none}
body.high-contrast .photo-card-accent{color:#ff0}
@media(prefers-reduced-motion:reduce){.photo-card-img img{transition:none}}


/* ===== Presentación visual renovada: azul institucional y galería ===== */
:root{--verde-selva:#073875;--verde-claro:#1261b5;--tierra:#e6a900;--agua:#0a6b4b;--arena:#f3f7fc;--texto-oscuro:#142b4c;--fondo-claro:#f3f7fc}
body.index-page{background:#f3f7fc;color:#142b4c;font-family:Arial,Helvetica,sans-serif}
body.index-page .topbar{background:#073875;color:#fff;border:0}
body.index-page .navbar{background:#fff;box-shadow:0 3px 18px rgba(6,40,83,.12);padding:.8rem 0}
body.index-page .navbar-brand,body.index-page .nav-link{color:#073875!important;font-weight:700}
body.index-page .navbar-escudo{width:58px;height:58px;border:0;border-radius:0;background:transparent;object-fit:contain}
body.index-page .hero-collage{min-height:340px;background:#073875}
body.index-page .hero-collage:before{background:linear-gradient(90deg,rgba(2,27,57,.78),rgba(2,27,57,.1))}
body.index-page .hero-panel{background:rgba(5,34,70,.82);border-radius:16px;box-shadow:0 10px 28px #001d4433}
body.index-page .hero-panel h1{font-size:clamp(1.8rem,3vw,2.7rem);font-weight:800}
body.index-page .hero-welcome{display:none}
body.index-page .quicklinks{background:#073875}
.nature-gallery{position:relative;z-index:3;margin-top:-42px!important;padding:0 12px}
.nature-card{background:#fff;border-radius:22px;padding:24px 28px 18px;box-shadow:0 12px 35px rgba(8,42,81,.12);text-align:center}
.nature-card h2{font-size:clamp(1.25rem,2.2vw,1.8rem);font-weight:800;color:#073875;text-align:left;margin:0 0 18px}
.nature-card h2 span{font-weight:600}
.nature-highlights{display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto 12px;max-width:900px}
.nature-highlights>div{display:flex;flex-direction:column;align-items:center;gap:7px;padding:6px 12px;color:#073875;font-size:1.08rem;border-right:1px solid #d6e0ec}
.nature-highlights>div:last-child{border-right:0}
.nature-highlights i{font-size:2.7rem;line-height:1.2}
.nature-card p{margin:12px 0;color:#253d5e;font-size:1.02rem}
.nature-cta{display:flex;justify-content:center;align-items:center;gap:12px;background:#08754d;color:#fff!important;text-decoration:none;font-weight:800;padding:12px 18px;border-radius:10px;transition:background .2s}
.nature-cta:hover{background:#045c3b}
.nature-photos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:12px 0 22px}
.nature-photos a{height:145px;position:relative;overflow:hidden;border-radius:10px;box-shadow:0 5px 16px #09294c20;display:block;background:#dce7ef}
.nature-photos img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.nature-photos a:hover img{transform:scale(1.06)}
.nature-photos span{position:absolute;left:0;right:0;bottom:0;padding:22px 8px 8px;color:#fff;font-weight:700;font-size:.9rem;background:linear-gradient(transparent,#001d43b8)}
body.index-page footer{background:#073875!important;color:#fff!important}
@media(max-width:768px){.nature-gallery{margin-top:-24px!important}.nature-card{padding:18px 14px}.nature-highlights i{font-size:2rem}.nature-highlights>div{font-size:.9rem;padding:5px}.nature-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.nature-photos a{height:125px}.nature-photos a:last-child{display:none}body.index-page .hero-collage{min-height:300px}}

/* Botón flotante funcional para compartir el portal en Facebook */
.facebook-float {
  position: fixed; right: 22px; bottom: 112px; z-index: 1080;
  width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; background: #1877f2; color: #fff !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.24); text-decoration: none !important;
  border: 2px solid rgba(255,255,255,.9); transition: transform .18s ease, box-shadow .18s ease;
}
.facebook-float:hover, .facebook-float:focus-visible { transform: translateY(-3px) scale(1.04); box-shadow: 0 7px 18px rgba(0,0,0,.3); color: #fff !important; }
.facebook-float i { font-size: 1.8rem; line-height: 1; }
.facebook-float .facebook-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width: 576px) { .facebook-float { right: 14px; bottom: 96px; width: 48px; height: 48px; } }


/* v5: accesos rápidos con contraste alto y redes flotantes sin superposición */
.quicklinks a{
  color:#ffffff !important;
  background:#0b3b78;
  border:1px solid rgba(255,255,255,.22);
}
.quicklinks a:hover,.quicklinks a:focus-visible{
  color:#ffffff !important;
  background:#075e48;
}
.quicklinks i{color:#ffffff !important}
.quicklinks .quicklink-cta{background:#087443;color:#ffffff !important}
.quicklinks .quicklink-cta i{color:#ffffff !important}
.social-float-stack{
  position:fixed; right:18px; bottom:100px; z-index:1040;
  display:flex; flex-direction:column; gap:12px; align-items:center;
}
.social-float{flex:0 0 auto;position:relative;pointer-events:auto}
.facebook-float{background:#1877f2 !important;color:#fff !important}
.whatsapp-float{background:#25d366 !important;color:#fff !important}
@media(max-width:576px){
 .social-float-stack{right:12px;bottom:90px;gap:10px}
 .social-float{width:44px;height:44px}
}

/* v7: el botón de Facebook dentro de la columna flotante ya no es "fixed" por su cuenta
   (la regla antigua .facebook-float lo sacaba de la columna y lo superponía a WhatsApp). */
.social-float-stack .facebook-float,
.social-float-stack .whatsapp-float{
  position:relative !important; right:auto !important; bottom:auto !important; left:auto !important; top:auto !important;
  z-index:auto !important; width:48px; height:48px; border:0 !important; margin:0 !important;
}
.social-float-stack .facebook-float i,
.social-float-stack .whatsapp-float i{font-size:1.5rem; line-height:1}
@media(max-width:576px){
  .social-float-stack .facebook-float,
  .social-float-stack .whatsapp-float{width:44px; height:44px}
}

/* v8: barra superior con enlaces */
.topbar a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.topbar a:hover,.topbar a:focus-visible{text-decoration-thickness:2px}

/* v8: "subir" a la izquierda para no tapar los botones de accesibilidad */
.back-to-top{right:auto!important;left:20px!important;bottom:20px!important}

/* v8: panel de accesibilidad ampliado */
.a11y-panel{position:fixed;right:20px;bottom:80px;z-index:1060;width:min(260px,calc(100vw - 40px));padding:14px;border-radius:14px;background:#fff;color:#1d2b1f;border:1px solid #cfdccb;box-shadow:0 14px 40px #0003;font-size:.95rem}
.a11y-panel[hidden]{display:none}
.a11y-panel h2{font-size:1rem;margin:0 0 10px;font-weight:800;color:#2c5e2e}
.a11y-panel .a11y-row{display:flex;gap:8px;margin-bottom:8px}
.a11y-panel button{flex:1;display:block;width:100%;margin:0 0 8px;padding:9px 10px;border:1px solid #b9ccb5;border-radius:10px;background:#f3f8f1;color:#1d2b1f;font:inherit;font-weight:600;text-align:left;cursor:pointer}
.a11y-panel .a11y-row button{margin:0;text-align:center}
.a11y-panel button[aria-pressed="true"]{background:#2c5e2e;color:#fff;border-color:#2c5e2e}
.a11y-panel button:hover{border-color:#2c5e2e}
.a11y-panel button:focus-visible{outline:3px solid #e0b84f;outline-offset:2px}
.a11y-panel button:last-child{margin-bottom:0}
html.a11y-invert{filter:invert(1) hue-rotate(180deg)}
html.a11y-invert img,html.a11y-invert video,html.a11y-invert iframe,html.a11y-invert .hero-strips{filter:invert(1) hue-rotate(180deg)}
html.a11y-links a:not(.access-btn):not(.social-float):not(.back-to-top){background:#fff36b!important;color:#000!important;text-decoration:underline!important;outline:2px solid #000;outline-offset:1px}
html.a11y-legible body,html.a11y-legible body *:not(.bi){font-family:Verdana,Tahoma,"Trebuchet MS",sans-serif!important;letter-spacing:.04em;word-spacing:.12em}
html.a11y-legible body p,html.a11y-legible body li{line-height:1.75}

/* v9: aviso de cookies y privacidad (en el flujo de la página, sin tapar botones) */
.cookie-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem;padding:.7rem 1rem;background:#eef5ec;border-bottom:1px solid #cfdccb;color:#1d2b1f;font-size:.92rem;text-align:center}
.cookie-notice p{margin:0;max-width:760px}
.cookie-notice a{color:#1f4a21;font-weight:600;text-decoration:underline}
.cookie-notice button{padding:.4rem 1rem;border:0;border-radius:999px;background:#2c5e2e;color:#fff;font-weight:700;cursor:pointer}
.cookie-notice button:focus-visible{outline:3px solid #e0b84f;outline-offset:2px}
