/* BECO v3.4: targeted refinements; the existing visual system remains unchanged. */
.numbers .number-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.numbers .number-grid article { min-width:0; }
.numbers .beco-number-value { display:flex; align-items:baseline; gap:4px; min-height:78px; }
.numbers .generation-units-value { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
.numbers .generation-units-value strong { font-size:clamp(34px,3.15vw,47px); }
.numbers .generation-units-value em { font-size:clamp(21px,1.8vw,27px); }
.numbers .number-grid .unit-count { display:inline; margin:0; color:inherit; font:inherit; }
.news-section .section-head h2.beco-news-label { font:800 12px/1.5 Inter,Arial,sans-serif; letter-spacing:.22em; color:#70e7aa!important; margin:0 0 20px; }

/* The carousel has no numeric card labels or environmental KPI strip. */
#gestion-ambiental .environment-head { margin-bottom:30px; }
.beco-env-carousel { min-width:0; }
.beco-env-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 18px; }
.beco-env-toolbar[hidden] { display:none; }
.beco-env-hint { color:#bad9cc; font-size:14px; line-height:1.6; margin:0; }
.beco-env-controls { display:flex; align-items:center; gap:9px; }
.beco-env-arrow,.beco-env-autoplay { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; flex-shrink:0; background:rgba(6,36,29,.78); border:1px solid rgba(155,227,60,.38); color:#c1f285; border-radius:99px; cursor:pointer; box-shadow:0 5px 18px rgba(0,0,0,.12); transition:background .22s,border-color .22s; }
.beco-env-arrow { width:44px; padding:10px; }
.beco-env-autoplay { padding:10px 16px; font:600 13px Inter,Arial,sans-serif; }
.beco-env-controls button:hover { background:rgba(74,125,42,.42); border-color:#9be33c; }
.beco-env-arrow svg,.beco-env-read svg,.beco-env-dialog-close svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.beco-env-pause-icon{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 18px}
.beco-env-pause-icon svg{grid-area:1/1;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.beco-env-pause-icon svg[hidden]{display:none}

.beco-env-controls button:focus-visible,.beco-env-read:focus-visible,.beco-env-dialog-close:focus-visible { outline:3px solid #b6f665; outline-offset:4px; }
.beco-env-track { --env-gap:22px; display:flex; gap:var(--env-gap); align-items:stretch; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:2px; scrollbar-width:thin; scrollbar-color:#6eae67 rgba(255,255,255,.08); padding:12px 2px 26px; -webkit-overflow-scrolling:touch; }
.beco-env-track:focus-visible { outline:2px solid #9be33c; outline-offset:4px; border-radius:16px; }
#gestion-ambiental .beco-env-card { display:flex; flex-direction:column; flex:0 0 calc((100% - 2 * var(--env-gap))/3); min-width:0; scroll-snap-align:start; background:linear-gradient(145deg,rgba(79,116,99,.42),rgba(22,64,52,.87)); border:1px solid rgba(178,213,182,.24); border-radius:18px; box-shadow:0 15px 28px rgba(0,0,0,.16); backdrop-filter:blur(8px); }
#gestion-ambiental .beco-env-card:hover { transform:translateY(-5px); border-color:rgba(155,227,60,.6); }
#gestion-ambiental .beco-env-card .beco-env-photo { width:100%; height:235px; object-fit:cover; margin:0; padding:0; border-radius:0; display:block; }
#gestion-ambiental .beco-env-placeholder { min-height:235px; display:grid; place-items:center; background:radial-gradient(circle at 40% 30%,#245f45,#082e25); }
.beco-env-placeholder svg { width:64px; height:64px; stroke:#b8f271; fill:none; stroke-width:1.1; }
#gestion-ambiental .beco-env-card-copy { display:flex; flex:1; flex-direction:column; padding:25px; min-height:258px; }
#gestion-ambiental .beco-env-card-copy h3 { margin:0 0 14px; color:#fff!important; font:600 21px/1.4 Poppins,Inter,Arial,sans-serif; overflow-wrap:anywhere; }
#gestion-ambiental .beco-env-card-copy p { margin:0 0 22px; color:#d3e3dc; font:400 14px/1.75 Inter,Arial,sans-serif; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.beco-env-read { display:inline-flex; align-items:center; align-self:flex-start; gap:9px; padding:8px 0; margin-top:auto; color:#c1f285; background:transparent; border:0; text-align:left; cursor:pointer; font:700 14px/1.5 Inter,Arial,sans-serif; }
.beco-env-progress { height:3px; overflow:hidden; background:rgba(255,255,255,.1); border-radius:9px; margin:8px 0 0; }
.beco-env-progress>span { height:100%; min-width:10px; width:33.333%; display:block; background:linear-gradient(90deg,#00a651,#9be33c); transform-origin:left; border-radius:9px; }
.beco-env-card.env-reveal-ready { opacity:0; translate:0 24px; transition:opacity .7s ease,translate .7s ease,transform .3s ease,border-color .3s ease; }
.beco-env-card.env-reveal-ready.env-visible { opacity:1; translate:0 0; }
.beco-env-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.beco-env-empty { padding:34px; border:1px dashed rgba(200,235,211,.4); border-radius:18px; color:#d3e3dc; }

/* Native dialog: keyboard trapping, Escape, and backdrop are handled by the browser. */
.beco-env-dialog { position:fixed; inset:0; padding:0; border:1px solid rgba(148,191,151,.34); border-radius:22px; width:min(940px,calc(100vw - 48px)); max-width:none; max-height:88vh; max-height:88dvh; margin:auto; overflow:auto; background:#0b2e25; color:#edf9f2; box-shadow:0 35px 90px rgba(0,0,0,.58); }
.beco-env-dialog:not([open]) { display:none; }
.beco-env-dialog::backdrop { background:rgba(0,15,12,.84); backdrop-filter:blur(7px); }
.beco-env-dialog-close { position:sticky; top:16px; float:right; margin:16px 16px -60px 0; z-index:5; width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:#0b2e25; color:#fff; cursor:pointer; }
.beco-env-detail-photo { width:100%; max-height:420px; object-fit:contain; background:#061d17; height:auto; display:block; }
.beco-env-detail-copy { padding:32px 40px 40px; }
.beco-env-detail-copy h2 { margin:0 0 25px; color:#fff!important; font:700 clamp(26px,3.2vw,40px)/1.18 Poppins,Inter,Arial,sans-serif; overflow-wrap:anywhere; }
.beco-env-detail-body { color:#d4e6dc; line-height:1.85; overflow-wrap:anywhere; }
.beco-env-detail-body p { margin:0 0 18px; }
.beco-env-detail-body img,.beco-env-detail-body video,.beco-env-detail-body iframe { max-width:100%; height:auto; }
.beco-env-detail-body figure { margin:18px 0; }
.beco-env-detail-body a { color:#c1f285; text-decoration:underline; }
.beco-env-detail-body h2,.beco-env-detail-body h3,.beco-env-detail-body h4 { color:#fff!important; }
.beco-env-modal-open { overflow:hidden; }
@media(max-width:1080px) { .numbers .number-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:980px) { #gestion-ambiental .beco-env-card{flex-basis:calc((100% - var(--env-gap))/2)} }
@media(max-width:680px) {
  #gestion-ambiental .beco-env-card{flex-basis:100%}
  .beco-env-track{--env-gap:16px}
  .beco-env-hint{font-size:12px;max-width:120px}
  .beco-env-autoplay{padding:9px 12px;font-size:12px}
  .beco-env-controls{gap:6px}
  .beco-env-toolbar{gap:10px}
  #gestion-ambiental .beco-env-card .beco-env-photo{height:225px}
  #gestion-ambiental .beco-env-card-copy{padding:23px;min-height:246px}
  .beco-env-dialog{width:calc(100vw - 24px);border-radius:16px;max-height:92dvh}
  .beco-env-detail-copy{padding:26px 22px}
}
@media(max-width:560px) { .numbers .number-grid{grid-template-columns:1fr} .numbers .generation-units-value strong{font-size:47px} }
@media(prefers-reduced-motion:reduce) {
  .beco-env-card.env-reveal-ready { opacity:1;translate:none;transition:none; }
  #gestion-ambiental .beco-env-card:hover { transform:none; }
  .beco-env-track { scroll-behavior:auto; }
}
