/* Galería BM v11 — carrusel compacto con fotografías locales reales */
.gallery-section{
  position:relative;
  overflow:hidden;
  padding:clamp(62px,6vw,82px) 0;
  background:
    radial-gradient(circle at 84% 12%,rgba(255,193,7,.07),transparent 22%),
    linear-gradient(180deg,#f8faf8 0%,#fff 100%);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.gallery-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.6;
  background:
    radial-gradient(circle at 12% 18%,rgba(8,89,89,.075) 0 1.2px,transparent 2px),
    radial-gradient(circle at 82% 28%,rgba(255,193,7,.1) 0 1.2px,transparent 2px),
    linear-gradient(rgba(8,89,89,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(8,89,89,.022) 1px,transparent 1px);
  background-size:auto,auto,52px 52px,52px 52px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.48),transparent 86%);
}
.gallery-section .wrap{position:relative;z-index:1}
.gallery-head{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(260px,.72fr);
  gap:32px;
  align-items:end;
  max-width:940px;
  margin:0 auto 24px;
}
.gallery-kicker{display:inline-flex;align-items:center;gap:12px;color:var(--brand);font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:.7rem}
.gallery-kicker::before{content:"";width:30px;height:2px;background:var(--accent);border-radius:999px}
.gallery-title{margin-top:10px;max-width:16ch;font:800 clamp(2rem,3.7vw,3.35rem)/1 var(--display);letter-spacing:-.042em;color:#124f43}
.gallery-intro{color:#5d7469;font-size:.94rem;line-height:1.65;max-width:43ch}

.gallery-carousel{
  position:relative;
  max-width:940px;
  margin:0 auto;
  border-radius:22px;
  padding:10px;
  background:linear-gradient(145deg,#0a5a55,#073f42);
  box-shadow:0 20px 48px rgba(7,70,61,.14);
  border:1px solid rgba(9,83,75,.12);
  overflow:hidden;
}
.gallery-carousel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 88% 10%,rgba(255,193,7,.11),transparent 26%),
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:auto,42px 42px,42px 42px;
}
.gallery-stage{position:relative;overflow:hidden;border-radius:16px;background:#0c4c47;aspect-ratio:16/8;max-height:460px}
.gallery-track{height:100%;display:flex;transition:transform .62s cubic-bezier(.22,.72,.2,1);will-change:transform}
.gallery-slide{position:relative;min-width:100%;height:100%;overflow:hidden;background:#0b4d47}
.gallery-slide::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(2,40,37,.47) 0%,rgba(2,40,37,.07) 50%,rgba(2,40,37,.12) 100%)}
.gallery-slide::after{content:"";position:absolute;inset:-35%;z-index:2;pointer-events:none;background:linear-gradient(112deg,transparent 43%,rgba(255,255,255,.11) 50%,transparent 57%);transform:translateX(-58%) rotate(6deg);opacity:0}
.gallery-slide.is-active::after{animation:gallery-sheen .9s .12s ease both}
.gallery-slide img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transform:scale(1.02);transition:transform 5.4s ease;filter:saturate(1.025) contrast(1.015)}
.gallery-slide.is-active img{transform:scale(1)}
.gallery-caption{position:absolute;left:clamp(20px,3vw,38px);bottom:clamp(18px,2.7vw,34px);z-index:3;max-width:min(440px,70%);color:#fff}
.gallery-caption .gallery-index{display:block;font:800 .69rem var(--font);letter-spacing:.18em;text-transform:uppercase;color:#ffe27c;margin-bottom:6px}
.gallery-caption h3{font:800 clamp(1.4rem,2.4vw,2.2rem)/1 var(--display);letter-spacing:-.035em;color:#fff;text-shadow:0 8px 24px rgba(0,0,0,.2)}
.gallery-caption p{margin-top:7px;color:#d7ebe5;font-size:.85rem}
.gallery-caption .gallery-line{display:block;width:58px;height:3px;margin-top:13px;border-radius:99px;background:linear-gradient(90deg,#ffc107,transparent)}

.gallery-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(4,67,62,.7);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;font-size:1.35rem;cursor:pointer;transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease}
.gallery-arrow:hover{background:#ffc107;color:#123f37;border-color:#ffc107;transform:translateY(-50%) scale(1.045);box-shadow:0 10px 24px rgba(0,0,0,.15)}
.gallery-prev{left:18px}.gallery-next{right:18px}

.gallery-toolbar{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:11px 3px 0;color:#d7ebe5}
.gallery-count{display:flex;align-items:baseline;gap:5px;font-weight:800;letter-spacing:.05em;min-width:64px}
.gallery-count strong{font:900 1rem var(--display);color:#fff}.gallery-count span{font-size:.72rem;color:#95bcb2}
.gallery-progress{height:2px;background:rgba(255,255,255,.14);position:relative;overflow:hidden;border-radius:999px}
.gallery-progress span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ffc107,#ffe07a);border-radius:inherit;transition:transform .55s cubic-bezier(.22,.72,.2,1);transform:scaleX(.142857);transform-origin:left}
.gallery-autoplay{display:flex;align-items:center;gap:8px;font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:#a8c9bf;white-space:nowrap}
.gallery-autoplay i{width:7px;height:7px;border-radius:50%;background:#ffc107;box-shadow:0 0 0 5px rgba(255,193,7,.1);animation:gallery-pulse 1.8s ease-in-out infinite}

.gallery-thumbs{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;padding:10px 0 0}
.gallery-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:9px;border:1px solid rgba(255,255,255,.11);background:#0b4c47;padding:0;cursor:pointer;opacity:.6;transition:opacity .22s ease,transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.gallery-thumb::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 0 #ffc107;transition:box-shadow .22s ease}
.gallery-thumb:hover{opacity:.9;transform:translateY(-2px)}
.gallery-thumb:hover img{transform:scale(1.04)}
.gallery-thumb.is-active{opacity:1;border-color:#ffc107;box-shadow:0 6px 16px rgba(0,0,0,.11)}
.gallery-thumb.is-active::after{box-shadow:inset 0 0 0 2px #ffc107}

@keyframes gallery-sheen{0%{opacity:0;transform:translateX(-58%) rotate(6deg)}35%{opacity:.62}100%{opacity:0;transform:translateX(58%) rotate(6deg)}}
@keyframes gallery-pulse{50%{box-shadow:0 0 0 9px rgba(255,193,7,0)}}

@media(max-width:900px){
  .gallery-section{padding:58px 0 68px}
  .gallery-head{grid-template-columns:1fr;gap:16px;margin-bottom:20px}
  .gallery-title{max-width:18ch}
  .gallery-stage{aspect-ratio:4/3;max-height:none}
  .gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gallery-arrow{width:44px;height:44px}.gallery-prev{left:12px}.gallery-next{right:12px}
}
@media(max-width:600px){
  .gallery-carousel{padding:8px;border-radius:18px}
  .gallery-stage{aspect-ratio:4/3;border-radius:13px}
  .gallery-caption{left:17px;bottom:18px;max-width:76%}.gallery-caption p{font-size:.8rem}
  .gallery-arrow{width:40px;height:40px;font-size:1.18rem}.gallery-prev{left:8px}.gallery-next{right:8px}
  .gallery-toolbar{grid-template-columns:auto 1fr}.gallery-autoplay{display:none}
  .gallery-thumbs{display:flex;overflow-x:auto;gap:7px;padding-bottom:3px;scrollbar-width:none}.gallery-thumbs::-webkit-scrollbar{display:none}.gallery-thumb{min-width:78px}
}
@media(prefers-reduced-motion:reduce){.gallery-track,.gallery-slide img,.gallery-thumb,.gallery-thumb img{transition:none!important}.gallery-slide::after,.gallery-autoplay i{animation:none!important}}
