@charset "utf-8";
/* CSS Document */

    /* ===== Reset & base ===== */
    *, *::before, *::after { box-sizing: border-box; }
    :root{
      --primary:#0d6efd; --secondary:#00c38d; --accent:#ffb703;
      --bg-dark:#0a0a0a; --txt:#0b1020; --txt-soft:#4b4f56;
      --white:#fff; --muted:#c7cbd6; --card:#f5f6f8; --stroke:rgba(11,16,32,.08);
    }
    html{ scroll-behavior:smooth; }
    body{ margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial; color:var(--txt); background:#0b1020; }
    a{ color:inherit; text-decoration:none; }

    /* ===== Botones estilo píldora (como capturas) ===== */
    .btn{ display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:999px; font-weight:700;
          border:1.5px solid currentColor; background:transparent; color:inherit; transition:transform .2s, background-color .2s, border-color .2s; }
    .btn:hover{ transform:translateY(-2px); }
    .btn--sm{ padding:8px 12px; font-weight:600; font-size:14px; }
    .btn__icon{ width:1.1em; height:1.1em; display:inline-block; }

    /* Contextos */
    .hero .btn{ color:#fff; border-color:rgba(255,255,255,.35); background:rgba(255,255,255,.06); }
    .hero .btn:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.6); }
    section .btn, .cta .btn, footer .btn{ color:#0b1020; background:#fff; border-color:rgba(11,16,32,.18); }
    section .btn:hover, .cta .btn:hover, footer .btn:hover{ border-color:rgba(11,16,32,.30); }

    /* ===== Hero ===== */
    .hero{ position:relative; min-height:100svh; overflow:clip; isolation:isolate; }
    .hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .hero__scrim{ position:absolute; inset:0; background:
      radial-gradient(1200px 600px at 70% 15%, rgba(11,16,32,0.18), transparent 55%),
      linear-gradient(to bottom, rgba(5,8,18,0.65), rgba(5,8,18,0.35) 35%, rgba(5,8,18,0.6) 80%, rgba(5,8,18,0.85)); pointer-events:none; }
    .brand{ position:absolute; top:20px; left:20px; right:20px; display:flex; justify-content:space-between; gap:12px; z-index:2; }
    .brand__logo,.brand__cta{ display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border-radius:999px;
      background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(6px); font-weight:600; }
    .hero__content{ position:relative; z-index:1; min-height:100svh; display:grid; place-items:center; padding:clamp(16px,3vw,40px); }
    .hero__inner{ width:min(1100px,92vw); text-align:center; color:#fff; }
    .hero__eyebrow{ display:inline-block; padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.35);
      background:rgba(255,255,255,.08); font-size:14px; letter-spacing:.2px; margin-bottom:14px; }
    .hero__title{ margin:0 0 16px; font-weight:800; letter-spacing:-0.02em; line-height:1.05; font-size: clamp(34px, 6vw, 72px); text-shadow:0 2px 18px rgba(0,0,0,.4); }
    .hero__subtitle{ margin:0 0 28px; opacity:.95; font-size: clamp(16px, 2.2vw, 22px); line-height:1.5; }
    .scroll-indicator{ position:absolute; inset-inline:0; bottom:22px; display:grid; place-items:center; color:#fff; opacity:.8; font-size:12px; }
    .scroll-indicator svg{ width:22px; height:22px; animation:float 1.6s ease-in-out infinite; }
    @keyframes float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }
    @media (prefers-reduced-motion: reduce){ .hero__video{display:none;} .hero{background:#0a0a0a;} .scroll-indicator svg{animation:none;} }

    /* ===== Secciones ===== */
    section{ padding:min(12vh,120px) min(5vw,56px); background:#fff; }
    .wrap{ width:min(1100px,92vw); margin:0 auto; }
    .h2{ margin:0 0 12px; font-size:clamp(26px,3.2vw,40px); line-height:1.15; letter-spacing:-.01em; }
    .lead{ color:var(--txt-soft); font-size:clamp(16px,1.6vw,18px); max-width:70ch; }

    /* Layouts */
    .split{ display:grid; gap:32px; align-items:center; grid-template-columns:1fr; }
    .split .media{ border-radius:20px; overflow:hidden; background:linear-gradient(135deg,#e2ecff,#f5f8ff); min-height:300px; border:1px solid var(--stroke);
      box-shadow:0 10px 30px rgba(11,16,32,.06); }
    .placeholder{ width:100%; height:100%; display:grid; place-items:center; color:#4a5a7a; font-weight:600; letter-spacing:.3px; }
    @media (min-width:900px){ .split{ grid-template-columns:1.05fr .95fr; } }

    .tiles{ display:grid; gap:16px; grid-template-columns:repeat(2, minmax(0,1fr)); margin-top:28px; }
    .tile{ background:var(--card); border:1px solid var(--stroke); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; }
    .tile .img{ height:140px; background:linear-gradient(135deg,#e9f7ff,#f0f7ff); border-bottom:1px solid var(--stroke); }
    .tile h3{ margin:12px 12px 8px; font-size:18px; }
    .tile p{ margin:0 12px 14px; color:var(--txt-soft); font-size:14.5px; }
    @media (min-width:900px){ .tiles{ grid-template-columns:repeat(4, minmax(0,1fr)); } }

    .equip{ overflow-x:auto; display:grid; grid-auto-flow:column; gap:12px; scroll-snap-type:x mandatory; padding-bottom:8px; }
    .equip .item{ width:min(80vw,320px); border:1px solid var(--stroke); border-radius:16px; background:var(--card); scroll-snap-align:start;
      box-shadow:0 8px 24px rgba(11,16,32,.06); overflow:hidden; }
    .equip .ph{ height:170px; background:linear-gradient(135deg,#e9f7ff,#f0f7ff); display:grid; place-items:center; color:#4a5a7a; font-weight:600; }
    .equip .cap{ padding:12px 14px 6px; font-weight:700; }
    .equip .txt{ padding:0 14px 14px; color:var(--txt-soft); font-size:14.5px; }

    .gallery{ overflow-x:auto; display:grid; grid-auto-flow:column; gap:12px; scroll-snap-type:x mandatory; padding-bottom:8px; }
    .gallery .shot{ width:min(80vw,360px); height:220px; background:linear-gradient(135deg,#f0f5ff,#e8eefc); border:1px solid var(--stroke);
      border-radius:16px; scroll-snap-align:start; box-shadow:0 8px 24px rgba(11,16,32,.06); display:grid; place-items:center; color:#4a5a7a; font-weight:600;     margin-top: 10px; }

    .features{ display:grid; gap:16px; grid-template-columns:1fr; margin-top:18px; }
    .feature{ background:var(--card); border:1px solid var(--stroke); border-radius:16px; padding:18px; }
    .feature h4{ margin:6px 0 8px; }
    @media (min-width:860px){ .features{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

    .grid-4{ display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:28px; }
    .card{ background:var(--card); border:1px solid var(--stroke); border-radius:16px; padding:18px; display:flex; gap:12px; align-items:flex-start; }
    .card svg{ width:24px; height:24px; flex:0 0 auto; }
    @media (min-width:860px){ .grid-4{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

    .stats{ display:grid; gap:16px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:22px; }
    .stat{ background:var(--card); border:1px solid var(--stroke); border-radius:16px; padding:22px; text-align:center; }
    .stat .big{ font-size:clamp(28px,4vw,40px); font-weight:800; letter-spacing:-.02em; }
    .stat .lbl{ color:var(--txt-soft); font-size:14.5px; }
    @media (min-width:860px){ .stats{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

    .pill{ color:#c7cbd6; border:1px solid rgba(255,255,255,.2); padding:6px 10px; border-radius:999px; display:inline-block; }

    /* CTA */
    .cta{ background: radial-gradient(800px 400px at 75% -10%, rgba(0,195,141,.15), transparent 60%), linear-gradient(180deg, rgba(13,110,253,.12), transparent), var(--bg-dark);
      color:#fff; text-align:center; padding:min(12vh,120px) min(5vw,56px); }
    .cta .lead{ color:#dfe6f5; margin:0 auto 22px; }
    footer{ padding:40px 24px; color:#c7cbd6; background:var(--bg-dark); }
    .foot{ max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; }
 
 
 
 
 .media-video{
  overflow:hidden;
  border-radius:24px;
  background:#eaf1ff;
}

.section-video{
  width:100%;
  height:100%;
  min-height:320px;
  display:block;
  object-fit:cover;
}


.visor360-box {
  min-height: 380px;
  overflow: hidden;
  border-radius: 24px;
  background: #eaf1ff;
}

.visor360 {
  width: 100%;
  height: 380px;
  min-height: 380px;
}

.gallery-360 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}

.shot-360 {
  position: relative;
  height: 190px;
  border: 1px solid rgba(11,16,32,.12);
  border-radius: 18px;
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  background: #eaf1ff;
}

.shot-360 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease, opacity .35s ease;
}

.shot-360:hover img {
  transform: scale(1.05);
}

.shot-360 span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.shot-360.active {
  outline: 3px solid #0d6efd;
  outline-offset: 2px;
}

@media (max-width: 900px) {
  .gallery-360 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .gallery-360 {
    grid-template-columns: 1fr;
  }

  .visor360,
  .visor360-box {
    height: 300px;
    min-height: 300px;
  }
}



.visor360-box {
  min-height: 380px;
  overflow: hidden;
  border-radius: 24px;
  background: #eaf1ff;
}

.visor360 {
  width: 100%;
  height: 380px;
  min-height: 380px;
}

.visor360 video,
.visor360 model-viewer {
  width: 100%;
  height: 100%;
  display: block;
  background: #eaf1ff;
}

.gallery-360 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.shot-360 {
  position: relative;
  height: 190px;
  border: 1px solid rgba(11,16,32,.12);
  border-radius: 18px;
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  background: #eaf1ff;
}

.shot-360 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.shot-360:hover img {
  transform: scale(1.05);
}

.shot-360 span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.shot-360.active {
  outline: 3px solid #0d6efd;
  outline-offset: 2px;
}

@media (max-width: 900px) {
  .gallery-360 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .gallery-360 {
    grid-template-columns: 1fr;
  }

  .visor360,
  .visor360-box {
    height: 300px;
    min-height: 300px;
  }
}



.foto-grande-box {
  overflow: hidden;
  border-radius: 24px;
  background: #eaf1ff;
  min-height: 380px;
}

.foto-grande-btn {
  width: 100%;
  height: 380px;
  border: 0;
  padding: 0;
  cursor: zoom-in;
  background: #eaf1ff;
  display: block;
}

.foto-grande-btn img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Miniaturas */
.gallery-fotos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.shot-foto {
  position: relative;
  height: 190px;
  border: 1px solid rgba(11,16,32,.12);
  border-radius: 18px;
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  background: #eaf1ff;
}

.shot-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.shot-foto:hover img {
  transform: scale(1.05);
}

.shot-foto span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.shot-foto.active {
  outline: 3px solid #0d6efd;
  outline-offset: 2px;
}

/* Modal */
.modal-foto {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.86);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.modal-foto.open {
  display: flex;
}

.modal-foto img {
  max-width: min(1200px, 96vw);
  max-height: 90vh;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 20px 80px rgba(0,0,0,.45);
}

.modal-foto-cerrar {
  position: fixed;
  top: 18px;
  right: 22px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(255,255,255,.15);
  color: #fff;
  font-size: 30px;
  line-height: 1;
}

@media (max-width: 900px) {
  .gallery-fotos {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .gallery-fotos {
    grid-template-columns: 1fr;
  }

  .foto-grande-box,
  .foto-grande-btn {
    height: 300px;
    min-height: 300px;
  }
}
 
 
 
 
 
 
.media-img-contain {
  background: transparent;
  overflow: hidden;
  border-radius: 24px;
}

.media-img-contain img {
  width: 100%;
  height: auto;   /* 👈 clave */
  display: block;
}

.media.media-img-contain {
  min-height: 0 !important;
  height: auto !important;
}
 






















































  .cookies {
    position: fixed; inset: 0; z-index: 9999;
    display: none; place-items: center;
    background: radial-gradient(900px 500px at 50% -10%, rgba(0,0,0,.35), transparent 60%),
                linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.85));
    backdrop-filter: blur(6px);
  }
  .cookies.is-visible { display: grid; }
  .cookies__stack {
    position: relative; width: min(680px, 90vw); height: min(520px, 80vh);
  }
  .cookies__sq {
    --size: 150px;
    position: absolute; width: var(--size); height: var(--size);
    background: #fff; border: 1px solid rgba(11,16,32,.12); border-radius: 16px;
    box-shadow: 0 20px 50px rgba(0,0,0,.25);
    display: grid; place-items: center; font-weight: 700; color: #0b1020;
    animation: floatY var(--dy,5s) ease-in-out infinite, tilt var(--rot,8s) ease-in-out infinite;
  }
  /* posiciones desalineadas (manual + pequeñas variaciones animadas) */
  .cookies__sq--a { left: 5%;  top: 8%;  transform: rotate(-3deg); --dy:6s; --rot:10s;}
  .cookies__sq--b { right: 8%; top: 0%; transform: rotate(2deg);  --dy:7s; --rot:9s; }
  .cookies__sq--c { left: 12%; bottom: 8%; transform: rotate(4deg); --dy:5.5s; --rot:8s;}
  .cookies__sq--d { right: 10%; bottom: 12%; transform: rotate(-5deg); --dy:6.5s; --rot:11s;}

  /* cuadrado CTA, centrado abajo */
  .cookies__cta {
    position: absolute; left: 50%; transform: translateX(-50%) rotate(-1.5deg);
    bottom: -62px; width: min(340px, 85%); height: 70px;
    background:#ffffff; border:1px solid rgba(11,16,32,.12); border-radius: 16px;
    box-shadow: 0 16px 40px rgba(0,0,0,.25);
    display:flex; align-items:center; justify-content:center; gap: 12px; padding: 10px 14px;
    animation: floatY 6.8s ease-in-out infinite reverse, tilt 12s ease-in-out infinite;
  }
  .cookies__title {
    position:absolute; top: -48px; left: 50%; transform: translateX(-50%);
    color: #fff; font-weight: 800; letter-spacing: .2px; text-align:center;
    text-shadow: 0 2px 12px rgba(0,0,0,.5);
  }
  .cookies__btn {
    display:inline-flex; align-items:center; gap:10px; padding:12px 18px;
    border-radius: 999px; font-weight: 700; border:1.5px solid #0b1020;
    background:#0b1020; color:#fff; cursor:pointer;
    transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
  }
  .cookies__btn:hover { transform: translateY(-2px); }

  /* TEXTO DESORDENADO ENTRE CUADRADOS */
  .cookies__scramble {
    position:absolute; inset: 0; pointer-events:none;
  }
  .cookies__word {
    position:absolute; color:#e9edf7; font-weight:700; mix-blend-mode: screen;
    text-shadow: 0 2px 8px rgba(0,0,0,.35);
    animation: drift var(--t,7s) ease-in-out infinite alternate;
  }
  
  
 
 
 
 
 
.grid-categorias{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.categoria .media{ position:relative; overflow:hidden; }
.categoria img,.categoria video{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .4s ease; }
.categoria video{ position:absolute; inset:0; opacity:0; }
.categoria:hover img{ opacity:0; } .categoria:hover video{ opacity:1; }
@media (max-width:768px){ .grid-categorias{ grid-template-columns:repeat(3,1fr); } }

 
 
 
 
 
 .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

 
 
 .scroll-top {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transition: opacity 0.3s, transform 0.2s;
  opacity: 0;
  pointer-events: none;
  z-index: 99;
}
.scroll-top.show {
  opacity: 1;
  pointer-events: auto;
}
.scroll-top:hover {
  background: #0b5ed7;
  transform: translateY(-3px);
}

.hero .lead {
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0,0,0,0.6);
  opacity: 1; /* eliminar la opacidad que traía antes */
}



  /* Animaciones */
  @keyframes floatY { 0%,100%{ translate: 0 0 } 50%{ translate: 0 -10px } }
  @keyframes tilt   { 0%,100%{ rotate: 0deg } 50%{ rotate: 2.5deg } }
  @keyframes drift  { 0%{ transform: translate(var(--x0,0), var(--y0,0)) rotate(-2deg) }
                      100%{ transform: translate(var(--x1,6px), var(--y1,-6px)) rotate(2deg) } }

  /* Accesibilidad / reduce motion */
  @media (prefers-reduced-motion: reduce){
    .cookies__sq, .cookies__cta, .cookies__word { animation: none !important; }
  }

  /* Responsive ajustes */
  @media (max-width: 560px){
    .cookies__sq{ --size: 120px; }
    .cookies__cta{ bottom: -54px; height: 62px; }
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .visor-media-box {
  position: relative;
}

.visor-fullscreen-btn {
  position: absolute;
  z-index: 20;
  right: 14px;
  top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.visor360 iframe,
.visor360 video,
.visor360 model-viewer {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}




/* Fullscreen real para el visor */
.visor-media-box:fullscreen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
  background: #000;
}

.visor-media-box:fullscreen .visor360 {
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
}

.visor-media-box:fullscreen iframe,
.visor-media-box:fullscreen video,
.visor-media-box:fullscreen model-viewer,
.visor-media-box:fullscreen canvas {
  width: 100vw !important;
  height: 100vh !important;
  object-fit: contain;
}

/* Safari / Chrome antiguos */
.visor-media-box:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
  background: #000;
}

.visor-media-box:-webkit-full-screen .visor360 {
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
}

.visor-media-box:-webkit-full-screen iframe,
.visor-media-box:-webkit-full-screen video,
.visor-media-box:-webkit-full-screen model-viewer,
.visor-media-box:-webkit-full-screen canvas {
  width: 100vw !important;
  height: 100vh !important;
  object-fit: contain;
}




.video-full-box {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  background: #000;
}

.video-full {
  width: 100%;
  height: auto;
  display: block;
}

/* Botón */
.visor-fullscreen-btn {
  position: absolute;
  z-index: 20;
  right: 14px;
  top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

/* Fullscreen real */
.video-full-box:fullscreen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.video-full-box:fullscreen .video-full {
  width: 100vw;
  height: 100vh;
  object-fit: contain;
}

.video-full-box:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.video-full-box:-webkit-full-screen .video-full {
  width: 100vw;
  height: 100vh;
  object-fit: contain;
}






.iframe-tour-box {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  border-radius: 24px;
  background: #000;
}

.iframe-tour {
  width: 100%;
  height: 420px;
  display: block;
  border: 0;
  background: #000;
}

/* Botón pantalla completa */
.visor-fullscreen-btn {
  position: absolute;
  z-index: 20;
  right: 14px;
  top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

/* Miniaturas */
.gallery-tours {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.shot-tour {
  position: relative;
  height: 190px;
  border: 1px solid rgba(11,16,32,.12);
  border-radius: 18px;
  overflow: hidden;
  padding: 0;
  cursor: pointer;
  background: #eaf1ff;
}

.shot-tour img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.shot-tour:hover img {
  transform: scale(1.05);
}

.shot-tour span {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.shot-tour.active {
  outline: 3px solid #0d6efd;
  outline-offset: 2px;
}

/* Fullscreen real */
.iframe-tour-box:fullscreen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.iframe-tour-box:fullscreen .iframe-tour {
  width: 100vw;
  height: 100vh;
}

.iframe-tour-box:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.iframe-tour-box:-webkit-full-screen .iframe-tour {
  width: 100vw;
  height: 100vh;
}

@media (max-width: 1100px) {
  .gallery-tours {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 560px) {
  .gallery-tours {
    grid-template-columns: 1fr;
  }
}





.visor360-full-box {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  border-radius: 24px;
  background: #000;
}

.visor360 {
  width: 100%;
  height: 420px;
  min-height: 420px;
}

.visor-fullscreen-btn {
  position: absolute;
  z-index: 20;
  right: 14px;
  top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.visor360-full-box:fullscreen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.visor360-full-box:fullscreen .visor360,
.visor360-full-box:fullscreen .pnlm-container {
  width: 100vw !important;
  height: 100vh !important;
}

.visor360-full-box:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.visor360-full-box:-webkit-full-screen .visor360,
.visor360-full-box:-webkit-full-screen .pnlm-container {
  width: 100vw !important;
  height: 100vh !important;
}






.galeria-viewer-box {
  position: relative;
  min-height: 460px;
  overflow: hidden;
  border-radius: 24px;
  background: #000;
  margin-top: 22px;
}

.galeria-viewer {
  width: 100%;
  height: 460px;
  min-height: 460px;
  background: #000;
}

.galeria-viewer img,
.galeria-viewer video,
.galeria-viewer iframe,
.galeria-viewer model-viewer {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

.galeria-viewer img {
  object-fit: contain;
  background: #000;
}

.galeria-viewer video {
  object-fit: contain;
  background: #000;
}

.galeria-info {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 10;
  max-width: min(620px, 80%);
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(0,0,0,.58);
  color: #fff;
  backdrop-filter: blur(8px);
}

.galeria-info strong {
  display: block;
  font-size: 18px;
  margin-bottom: 4px;
}

.galeria-info span {
  display: block;
  font-size: 14px;
  opacity: .9;
}

.galeria-scroll {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(230px, 280px);
  gap: 14px;
  overflow-x: auto;
  margin-top: 16px;
  padding-bottom: 8px;
  scroll-snap-type: x mandatory;
}

.galeria-item {
  position: relative;
  height: 170px;
  border: 1px solid rgba(11,16,32,.12);
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  padding: 0;
  background: #eaf1ff;
  scroll-snap-align: start;
}

.galeria-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.galeria-item:hover img {
  transform: scale(1.05);
}

.galeria-item .tag {
  position: absolute;
  left: 10px;
  top: 10px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.galeria-item .caption {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(0,0,0,.58);
  color: #fff;
}

.galeria-item .caption strong {
  display: block;
  font-size: 14px;
}

.galeria-item .caption span {
  display: block;
  font-size: 12px;
  opacity: .85;
}

.galeria-item.active {
  outline: 3px solid #0d6efd;
  outline-offset: 2px;
}

.visor-fullscreen-btn {
  position: absolute;
  z-index: 30;
  right: 14px;
  top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}

.galeria-viewer-box:fullscreen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.galeria-viewer-box:fullscreen .galeria-viewer,
.galeria-viewer-box:fullscreen .pnlm-container,
.galeria-viewer-box:fullscreen iframe,
.galeria-viewer-box:fullscreen video,
.galeria-viewer-box:fullscreen model-viewer,
.galeria-viewer-box:fullscreen img {
  width: 100vw !important;
  height: 100vh !important;
}

.galeria-viewer-box:-webkit-full-screen {
  width: 100vw;
  height: 100vh;
  border-radius: 0;
}

.galeria-viewer-box:-webkit-full-screen .galeria-viewer,
.galeria-viewer-box:-webkit-full-screen .pnlm-container,
.galeria-viewer-box:-webkit-full-screen iframe,
.galeria-viewer-box:-webkit-full-screen video,
.galeria-viewer-box:-webkit-full-screen model-viewer,
.galeria-viewer-box:-webkit-full-screen img {
  width: 100vw !important;
  height: 100vh !important;
}

@media (max-width: 700px) {
  .galeria-viewer,
  .galeria-viewer-box {
    height: 320px;
    min-height: 320px;
  }

  .galeria-scroll {
    grid-auto-columns: 220px;
  }
}




.foot-contacto {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: start;
}

@media (min-width: 900px) {
  .foot-contacto {
    grid-template-columns: 1fr 420px;
  }
}


.form-contacto {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 28px;
  padding: 28px;
  color: #fff;
  max-width: 560px;
}

.form-contacto label {
  display: block;
  margin-bottom: 16px;
  color: #dbeafe;
  font-size: 15px;
  font-weight: 600;
}

.form-contacto input[type="text"],
.form-contacto input[type="email"],
.form-contacto select,
.form-contacto textarea {
  width: 100%;
  margin-top: 7px;
  padding: 13px 15px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  background: #f8fafc;
  color: #0b1020;
  font: inherit;
}

.form-contacto textarea {
  min-height: 140px;
  resize: vertical;
}

.form-contacto select {
  appearance: auto;
  cursor: pointer;
}

/* Servicios */
.servicios-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
  margin: 8px 0 18px;
  padding: 16px;
  border-radius: 20px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
}

.servicios-form label,
.form-contacto .consent {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #dbeafe;
  font-weight: 500;
}

.servicios-form input[type="checkbox"],
.form-contacto .consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: #0d6efd;
  flex: 0 0 auto;
}

/* Consentimiento */
.form-contacto .consent {
  margin: 18px 0 20px;
}

/* Botón */
.form-contacto button[type="submit"] {
  width: 100%;
  justify-content: center;
  border: 0;
  cursor: pointer;
  font-size: 16px;
}

/* Focus */
.form-contacto input:focus,
.form-contacto select:focus,
.form-contacto textarea:focus {
  outline: 3px solid rgba(13,110,253,.35);
  border-color: #0d6efd;
}

/* Responsive */
@media (min-width: 700px) {
  .servicios-form {
    grid-template-columns: 1fr 1fr;
  }
}








.modal-foto {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.86);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.modal-foto.open {
  display: flex;
}

.modal-foto img {
  max-width: min(1200px, 96vw);
  max-height: 90vh;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 20px 80px rgba(0,0,0,.45);
}

.modal-foto-cerrar {
  position: fixed;
  top: 18px;
  right: 22px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(255,255,255,.15);
  color: #fff;
  font-size: 30px;
  line-height: 1;
}


.galeria-loading,
.galeria-error {
  width: 100%;
  height: 100%;
  min-height: 460px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  color: #fff;
  background: #050814;
  text-align: center;
  padding: 24px;
}

.loader {
  width: 44px;
  height: 44px;
  border: 4px solid rgba(255,255,255,.25);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spinLoader 1s linear infinite;
}

@keyframes spinLoader {
  to {
    transform: rotate(360deg);
  }
}

.galeria-error {
  color: #fecaca;
}