/* ===== Navbar — barra estándar, sin isla flotante ===== */
.navbar{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding-block:var(--space-3);
  background:var(--color-bg);
  border-bottom:1px solid var(--color-border);
  transition:box-shadow var(--motion-base) var(--ease);
}
.navbar.is-scrolled{ box-shadow:var(--shadow-sm); }
.navbar-island{
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--space-5);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-4);
}
@media (max-width:768px){
  .navbar-island{ padding-inline:var(--space-3); }
}
.nav-logo{ display:flex; align-items:center; gap:10px; }
.nav-logo img{ height:26px; width:auto; }
.nav-logo .nav-wordmark{
  font-weight:700;
  font-size:var(--text-body);
  color:var(--color-ink);
}
.nav-logo .nav-wordmark span{ font-weight:400; opacity:0.55; }

.nav-links{
  display:flex;
  align-items:center;
  gap:var(--space-5);
  list-style:none;
  margin:0; padding:0;
}
.nav-links a{
  font-size:var(--text-small);
  font-weight:600;
  letter-spacing:0.01em;
  color:var(--color-ink);
  padding-bottom:4px;
  border-bottom:2px solid transparent;
  transition:color var(--motion-base) var(--ease), border-color var(--motion-fast) var(--ease);
}
.nav-links a:hover{ border-color:var(--color-accent); }

.nav-cta{ display:flex; align-items:center; gap:var(--space-2); }
.nav-cta .btn{ padding:8px 16px; font-size:var(--text-small); }
.nav-toggle{
  display:none;
  background:none;
  border:none;
  color:var(--color-ink);
  min-width:44px; min-height:44px;
  cursor:pointer;
}

/* Utilidades (tema + idioma) — discretas, sin cápsula grande */
.nav-utility-island{
  display:flex;
  align-items:center;
  gap:2px;
  margin-left:2px;
}
.nav-theme-toggle,
.nav-lang-toggle{
  border:none;
  background:none;
  color:var(--color-ink-muted);
  display:flex; align-items:center; justify-content:center;
  width:26px; height:26px;
  border-radius:50%;
  cursor:pointer;
  transition:background var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);
}
.nav-lang-toggle{
  width:auto;
  padding:0 8px;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.03em;
}
.nav-theme-toggle:hover,
.nav-lang-toggle:hover{ background:var(--color-bg-soft); color:var(--color-accent); }
.nav-utility-divider{
  width:1px; height:18px;
  background:var(--color-border);
}
.icon-moon{ display:none; }
:root[data-theme="dark"] .icon-sun{ display:none; }
:root[data-theme="dark"] .icon-moon{ display:block; }

@media (max-width:1024px){
  .nav-links{
    position:fixed;
    inset:0;
    top:72px;
    background:var(--color-bg);
    flex-direction:column;
    align-items:flex-start;
    padding:var(--space-5);
    gap:var(--space-4);
    transform:translateX(100%);
    transition:transform var(--motion-base) var(--ease);
  }
  .nav-links a{ color:var(--color-ink); font-size:var(--text-body-lg); }
  .nav-links.is-open{ transform:translateX(0); }
  .nav-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .nav-cta .btn-outline{ display:none; }
}

/* ===== Hero ===== */
.hero{
  position:relative;
  min-height:82vh;
  display:flex;
  align-items:flex-end;
  color:var(--color-on-dark);
  background:
    linear-gradient(180deg, rgba(15,17,33,0.55) 0%, rgba(15,17,33,0.35) 40%, rgba(15,17,33,0.85) 100%),
    url('../assets/img/hero-medellin.jpg') center/cover no-repeat;
  background-color:var(--color-ink-secondary);

  /* Tarjeta flotante: separada de los bordes del viewport, radio grande, sombra */
  margin:calc(72px + var(--space-4)) var(--space-4) var(--space-4);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.hero .container{ padding-bottom:var(--space-8); width:100%; }
@media (max-width:768px){
  .hero{
    margin:calc(64px + var(--space-3)) var(--space-3) var(--space-3);
    min-height:78vh;
    border-radius:var(--radius-lg);
  }
}
.hero-location{
  font-size:var(--text-body);
  font-weight:600;
  color:var(--color-on-dark);
  opacity:0.85;
  margin-bottom:var(--space-3);
}
.hero h1{
  font-size:var(--text-display);
  font-weight:800;
  max-width:820px;
  letter-spacing:-0.01em;
}
.hero h1 em{
  font-style:normal;
  color:var(--color-accent);
}
.hero p{
  margin-top:var(--space-4);
  font-size:var(--text-body-lg);
  max-width:520px;
  color:rgba(238,236,234,0.85);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
  margin-top:var(--space-6);
}

/* ===== Motor de reservas — tarjeta clara con segmentos e íconos ===== */
.booking-engine{
  margin:var(--space-5) auto 0;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr auto;
  align-items:stretch;
  background:var(--color-bg);
  border-radius:var(--radius-lg);
  padding:var(--space-2);
  gap:var(--space-2);
  max-width:800px;
  box-shadow:var(--shadow-lg);
}
.be-field{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:var(--radius-md);
  background:var(--color-bg-soft);
  min-width:0;
}
.be-icon{ color:var(--color-accent); flex-shrink:0; }
.be-field > div{ min-width:0; flex:1; }
.be-field label{
  display:block;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--color-ink-muted);
  margin-bottom:2px;
}
.be-field input{
  border:none;
  outline:none;
  background:none;
  padding:0;
  font-family:var(--font-body);
  font-size:var(--text-small);
  font-weight:600;
  color:var(--color-ink);
  width:100%;
}
.be-field input::placeholder{ color:var(--color-ink-muted); font-weight:400; }
/* Sin hover ni glow en el campo: mismo estado siempre, salvo foco por accesibilidad */
.be-field input:focus-visible{ outline:2px solid var(--color-accent); outline-offset:2px; border-radius:4px; }

.be-stepper{
  display:flex;
  align-items:center;
  gap:10px;
}
.be-step{
  width:20px; height:20px;
  border-radius:50%;
  border:1px solid var(--color-border);
  background:var(--color-bg);
  color:var(--color-ink);
  font-size:13px;
  line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:border-color var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);
}
.be-step:hover{ border-color:var(--color-accent); color:var(--color-accent); }
.be-step-value{ font-size:var(--text-small); font-weight:600; color:var(--color-ink); min-width:12px; text-align:center; }

.be-submit{
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  gap:8px;
  padding:0 22px;
  border-radius:var(--radius-md);
  border:none;
  background:var(--color-accent);
  color:#fff;
  font-size:var(--text-small);
  font-weight:700;
  cursor:pointer;
  transition:background var(--motion-fast) var(--ease);
}
.be-submit:hover{ background:var(--color-accent-hover); }

@media (max-width:900px){
  .booking-engine{
    grid-template-columns:1fr 1fr;
    max-width:100%;
  }
  .be-field-destino{ grid-column:1 / -1; }
  .be-submit{ grid-column:1 / -1; padding:12px; }
}
.hero-scroll{
  position:absolute;
  bottom:var(--space-4);
  left:50%;
  transform:translateX(-50%);
  color:var(--color-on-dark);
  opacity:0.7;
  font-size:var(--text-micro);
  letter-spacing:0.08em;
  text-transform:uppercase;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--space-2);
}
.hero-scroll::after{
  content:"";
  width:1px; height:32px;
  background:currentColor;
  animation:scrollLine 1.8s var(--ease) infinite;
}
@keyframes scrollLine{
  0%{ transform:scaleY(0); transform-origin:top; }
  50%{ transform:scaleY(1); transform-origin:top; }
  51%{ transform:scaleY(1); transform-origin:bottom; }
  100%{ transform:scaleY(0); transform-origin:bottom; }
}

/* ===== Confianza + mapa — sección justo antes del footer ===== */
.trust-section{ padding-bottom:0; }

.stats-clean{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:var(--space-5);
  padding-bottom:var(--space-7);
  border-bottom:1px solid var(--color-border);
}
.stat-clean{ text-align:center; }
.stat-clean-number{
  font-size:var(--text-h1);
  font-weight:800;
  color:var(--color-ink);
  line-height:1.1;
}
.stat-clean-label{
  margin-top:var(--space-2);
  font-size:var(--text-small);
  color:var(--color-ink-muted);
}
@media (max-width:900px){
  .stats-clean{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:560px){
  .stats-clean{ grid-template-columns:repeat(2,1fr); }
}

/* Mapa — ancho completo, tratamiento navy serio consistente con la marca */
.map-frame{
  position:relative;
  width:100%;
  height:420px;
  margin-top:var(--space-7);
  background:var(--color-ink-secondary);
}
.map-frame iframe{
  display:block;
  width:100%;
  height:100%;
  filter:grayscale(1) contrast(1.2) brightness(1.05);
}
.map-frame::after{
  content:"";
  position:absolute; inset:0;
  background:var(--color-ink-secondary);
  mix-blend-mode:multiply;
  opacity:0.82;
  pointer-events:none;
}
.map-caption{
  position:absolute;
  left:var(--space-5);
  bottom:var(--space-5);
  z-index:2;
  background:var(--color-bg);
  border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);
  display:flex;
  align-items:center;
  gap:var(--space-4);
  box-shadow:var(--shadow-md);
  font-size:var(--text-small);
  font-weight:600;
  color:var(--color-ink);
}
@media (max-width:560px){
  .map-caption{
    left:var(--space-3); right:var(--space-3); bottom:var(--space-3);
    flex-direction:column; align-items:flex-start; gap:var(--space-2);
  }
}

/* ===== Beneficios — 3 cards con radio grande, coherentes con el manual ===== */
.benefits-section{ padding-top:var(--space-7); }
.benefits-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-4);
}
@media (max-width:900px){ .benefits-grid{ grid-template-columns:1fr; } }

.benefit-card{
  padding:var(--space-6);
  border-radius:var(--radius-xl);
  background:var(--color-bg-soft);
  transition:background var(--motion-base) var(--ease), transform var(--motion-base) var(--ease);
}
.benefit-card:hover{ background:#E9E6E0; transform:translateY(-2px); }
.benefit-card svg{ color:var(--color-accent); }
.benefit-card h3{
  margin-top:var(--space-4);
  font-size:var(--text-h4);
  font-weight:700;
  color:var(--color-ink);
}
.benefit-card p{
  margin-top:var(--space-2);
  font-size:var(--text-small);
  color:var(--color-ink-muted);
  line-height:1.6;
}

/* ===== Experience cards — estilo Airbnb: foto en tarjeta, texto debajo ===== */
.experience-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--space-5) var(--space-4);
}
@media (max-width:1024px){ .experience-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .experience-grid{ grid-template-columns:1fr; } }

.experience-card{
  cursor:pointer;
}
.experience-card .media-frame{
  position:relative;
  aspect-ratio:1/1;
  border-radius:var(--radius-xl);
  overflow:hidden;
  background:var(--color-bg-soft);
}
.experience-card img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform var(--motion-slow) var(--ease);
}
.experience-card:hover img{ transform:scale(1.04); }

/* Etiqueta "imagen de referencia" — marca visual temporal sobre stock/placeholder */
.ref-badge{
  position:absolute;
  top:var(--space-3);
  right:var(--space-3);
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(15,17,33,0.55);
  backdrop-filter:blur(4px);
  color:var(--color-on-dark);
  font-size:11px;
  font-weight:600;
  letter-spacing:0.04em;
  pointer-events:none;
}
.ref-badge svg{ flex-shrink:0; }
.media-frame{ position:relative; }
.media-frame.rounded{ border-radius:var(--radius-xl); overflow:hidden; }

/* Placeholder honesto — reemplaza fotos de stock incorrectas/adivinadas hasta tener material real */
.img-placeholder{
  position:absolute; inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    repeating-linear-gradient(135deg, var(--color-bg-soft) 0px, var(--color-bg-soft) 12px, #E6E3DD 12px, #E6E3DD 13px);
  color:var(--color-ink-muted);
}

.experience-card .experience-content{
  padding-top:var(--space-3);
}
.experience-card .experience-tag{
  font-size:var(--text-small);
  color:var(--color-ink-muted);
}
.experience-card h3{
  font-size:var(--text-h4);
  font-weight:600;
  margin-top:2px;
  color:var(--color-ink);
}
.experience-card .experience-meta{
  margin-top:var(--space-1);
  font-size:var(--text-small);
  color:var(--color-ink-muted);
}

/* ===== Galería bento — 1 foto grande + 4 al lado, radios grandes tipo hero ===== */
.gallery-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:var(--space-3);
  height:560px;
}
.gallery-grid .media-frame{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  background:var(--color-bg-soft);
}
.gallery-grid .media-frame img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform var(--motion-slow) var(--ease);
}
.gallery-grid .media-frame:hover img{ transform:scale(1.03); }
.gallery-grid .gallery-main{
  grid-row:1 / 3;
  grid-column:1;
}
@media (max-width:900px){
  .gallery-grid{
    height:auto;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
  }
  .gallery-grid .gallery-main{
    grid-column:1 / 3;
    aspect-ratio:16/9;
  }
  .gallery-grid .media-frame:not(.gallery-main){ aspect-ratio:1/1; }
}
@media (max-width:560px){
  .gallery-grid{ grid-template-columns:1fr; }
  .gallery-grid .gallery-main{ grid-column:1; }
}

/* ===== About / split section ===== */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-8);
  align-items:center;
}
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:var(--space-6); } }
.split img{ border-radius:var(--radius-xl); width:100%; aspect-ratio:4/5; object-fit:cover; }
.split .media-frame{ aspect-ratio:4/5; }
.split .media-frame img{ width:100%; height:100%; }
.split .quote-script{
  font-family:var(--font-body);
  font-weight:400;
  font-size:var(--text-h4);
  color:var(--color-accent);
  line-height:1.3;
  margin-bottom:var(--space-3);
}
.value-list{
  list-style:none; margin:var(--space-5) 0 0; padding:0;
  display:flex; flex-wrap:wrap; gap:var(--space-2);
}
.value-list li{
  font-size:var(--text-small);
  font-weight:600;
  color:var(--color-ink);
  padding:8px 18px;
  border-radius:999px;
  background:var(--color-bg);
  border:1px solid var(--color-border);
  transition:border-color var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);
}
.value-list li:hover{ border-color:var(--color-accent); color:var(--color-accent); }

/* ===== Testimonials — carrusel infinito ===== */
.testimonials-section{ overflow:hidden; }

.testimonial-marquee{
  width:100%;
  overflow:hidden;
  mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
  -webkit-mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
}
.testimonial-track-inner{
  display:flex;
  gap:var(--space-4);
  width:max-content;
  animation:marqueeScroll 36s linear infinite;
}
.testimonial-marquee:hover .testimonial-track-inner{ animation-play-state:paused; }

@keyframes marqueeScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

.testimonial-card{
  flex:0 0 auto;
  width:360px;
  padding:var(--space-5);
  background:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm);
}
.testimonial-card .quote-mark{ color:var(--color-accent); opacity:0.5; }
.testimonial-card .stars{ color:var(--color-accent); font-size:var(--text-body); letter-spacing:2px; margin-top:var(--space-3); }
.testimonial-card p{
  margin-top:var(--space-3);
  font-size:var(--text-body);
  color:var(--color-ink);
  line-height:1.6;
}
.testimonial-author{
  margin-top:var(--space-5);
  display:flex;
  align-items:center;
  gap:var(--space-3);
}
.testimonial-author .avatar{
  width:38px; height:38px;
  border-radius:50%;
  background:var(--color-bg-soft);
  color:var(--color-ink);
  display:flex; align-items:center; justify-content:center;
  font-weight:700;
  font-size:var(--text-small);
  flex-shrink:0;
}
.testimonial-author .author-name{ font-size:var(--text-small); font-weight:600; color:var(--color-ink); }
.testimonial-author .author-source{ font-size:var(--text-micro); color:var(--color-ink-muted); }

@media (prefers-reduced-motion: reduce){
  .testimonial-track-inner{ animation:none; overflow-x:auto; }
}

/* ===== CTA band ===== */
.cta-band{
  background:var(--color-ink-secondary);
  color:var(--color-on-dark);
  border-radius:var(--radius-xl);
  padding:var(--space-8) var(--space-6);
  text-align:center;
}
.cta-band h2{ font-size:var(--text-h1); max-width:600px; margin-inline:auto; }
.cta-band p{ margin-top:var(--space-3); color:rgba(238,236,234,0.75); }
.cta-band .hero-actions{ justify-content:center; }

/* ===== FAQ ===== */
.faq-item{
  border-top:1px solid var(--color-border);
  padding:var(--space-4) 0;
}
.faq-item:last-child{ border-bottom:1px solid var(--color-border); }
.faq-question{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  background:none; border:none;
  cursor:pointer;
  text-align:left;
  font-size:var(--text-h4);
  font-weight:600;
  color:var(--color-ink);
  min-height:44px;
}
.faq-question .icon{
  transition:transform var(--motion-fast) var(--ease);
  flex-shrink:0;
  margin-left:var(--space-3);
}
.faq-item.is-open .faq-question .icon{ transform:rotate(45deg); }
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--motion-base) var(--ease);
}
.faq-item.is-open .faq-answer{ max-height:240px; }
.faq-answer p{
  padding-top:var(--space-3);
  color:var(--color-ink-muted);
  max-width:640px;
}

/* ===== Footer — negro, marca de agua naranja, logo animado ===== */
.footer{
  position:relative;
  background:#000000;
  color:var(--color-on-dark);
  padding-block:var(--space-9) var(--space-5);
  overflow:hidden;
  isolation:isolate;
}

/* Marca de agua del isotipo, repetida en naranja translúcido como patrón real */
.footer-watermark{
  position:absolute;
  inset:0;
  z-index:0;
  opacity:0.06;
  pointer-events:none;
  transform:rotate(-8deg) scale(1.25);
  background-image:url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201080%201080%22%3E%3Cpath%20fill%3D%22%23EC7416%22%20d%3D%22M976.69%2C399.52c-1.21-4.5-6.23-7.64-11.6-7.36l-154.05%2C8.5-106.27%2C6.07-509.63%2C27.56c-33.76%2C1.79-60.94%2C23.72-64.49%2C58.46-1.65%2C16.17%2C3.27%2C33.31%2C13.97%2C46.67l66.88%2C68.34c9.88%2C9.92%2C25.55%2C6.9%2C34.61-2.01%2C9.16-9%2C10.84-25.25%2C1.23-35.03l-60.34-61.4c-3.84-3.91-4.61-9.81-2.88-14.48%2C1.61-4.37%2C5.5-8.56%2C11.98-8.93l380.81-21.65%2C24.97-1.43%2C23.72-1.08%2C99.08-5.64%2C83.5-4.86c3.44-.2%2C6.56%2C2.81%2C7.25%2C4.85%2C1.15%2C3.41%2C.56%2C6.64-3.02%2C9.24-167.41%2C122.03-332.08%2C246.92-495.24%2C374.63-2.12%2C1.66-5.28%2C1.17-6.68%2C.33-1.27-.77-3.05-3.17-2.44-5.69l39.6-164.39c3.86-16.03%2C11.75-25.7%2C26.79-31.92%2C90.67-37.47%2C327.46-141.13%2C327.46-141.13l-180.37%2C45.53-67.33%2C19.09-108.1%2C31.4c-12.71%2C3.69-22.31%2C11.64-29.84%2C21.71-6.79%2C9.08-11.45%2C19.56-14.14%2C30.57-9.96%2C40.84-45.26%2C185.75-46.07%2C191.74-3.99%2C29.38%2C16.57%2C56.38%2C46.64%2C58.29%2C15.4%2C.98%2C27.43-4.08%2C39.15-13.11%2C0%2C0%2C481.59-364.12%2C629.2-470.56%2C4.62-3.33%2C6.95-7.56%2C5.67-12.32Z%22%2F%3E%3C%2Fsvg%3E');
  background-repeat:repeat;
  background-size:140px 140px;
}

.footer-content{ position:relative; z-index:1; }

/* Logo animado — mismo efecto del loader, en miniatura, reproducido una vez al entrar en vista */
.footer-logo-animated{
  width:88px; height:88px;
  margin:0 auto var(--space-7);
}
.footer-logo-animated svg{ width:100%; height:100%; overflow:visible; }
.footer-logo-animated .fp-top,
.footer-logo-animated .fp-bottom,
.footer-logo-animated .fp-plane{
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
}
.footer-logo-animated.is-visible .fp-top{
  animation: footerDrop var(--motion-slow) var(--ease) forwards;
  animation-delay:80ms;
}
.footer-logo-animated.is-visible .fp-bottom{
  animation: footerRise var(--motion-slow) var(--ease) forwards;
  animation-delay:80ms;
}
.footer-logo-animated.is-visible .fp-plane{
  animation: footerScaleIn var(--motion-slow) var(--ease) forwards;
  animation-delay:400ms;
}
@keyframes footerDrop{ from{ opacity:0; transform:translateY(-160px); } to{ opacity:1; transform:translateY(0); } }
@keyframes footerRise{ from{ opacity:0; transform:translateY(160px); } to{ opacity:1; transform:translateY(0); } }
@keyframes footerScaleIn{ from{ opacity:0; transform:scale(0.9); } to{ opacity:1; transform:scale(1); } }

.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:var(--space-6);
}
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-brand .nav-logo{ margin-bottom:var(--space-4); }
.footer-brand .nav-logo img{ height:44px; width:44px; }
.footer-brand .nav-logo .nav-wordmark{ color:var(--color-on-dark); font-size:var(--text-h3); }
.footer-brand .nav-logo .nav-wordmark span{ opacity:0.55; }
.footer-brand p{ color:rgba(238,236,234,0.6); font-size:var(--text-small); max-width:280px; }
.footer-script{
  font-family:var(--font-body);
  font-weight:400;
  font-size:var(--text-body-lg);
  color:var(--color-accent);
  margin-top:var(--space-4);
}
.footer h4{
  font-size:var(--text-micro);
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:rgba(238,236,234,0.45);
  margin-bottom:var(--space-3);
}
.footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-2); }
.footer a{ font-size:var(--text-small); color:rgba(238,236,234,0.8); transition:color var(--motion-fast) var(--ease); }
.footer a:hover{ color:var(--color-accent); }

.footer-legal{
  margin-top:var(--space-7);
  padding-top:var(--space-5);
  border-top:1px solid rgba(238,236,234,0.1);
  display:flex;
  flex-direction:column;
  gap:var(--space-2);
  font-size:var(--text-small);
  color:rgba(238,236,234,0.55);
}
.footer-legal-badge{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(236,116,22,0.4);
  color:var(--color-accent);
  font-size:var(--text-micro);
  font-weight:600;
  letter-spacing:0.04em;
  padding:3px 10px;
  border-radius:999px;
  margin-right:var(--space-2);
}

.footer-bottom{
  margin-top:var(--space-5);
  padding-top:var(--space-4);
  border-top:1px solid rgba(238,236,234,0.1);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:var(--space-3);
  font-size:var(--text-micro);
  color:rgba(238,236,234,0.45);
}
.social-row{ display:flex; gap:var(--space-3); }
.social-row a{
  width:36px; height:36px;
  border-radius:50%;
  border:1px solid rgba(238,236,234,0.18);
  display:flex; align-items:center; justify-content:center;
  transition:border-color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.social-row a:hover{ border-color:var(--color-accent); background:rgba(236,116,22,0.12); }

/* ===== WhatsApp floating button ===== */
.whatsapp-fab{
  position:fixed;
  right:var(--space-4);
  bottom:var(--space-4);
  z-index:90;
  width:56px; height:56px;
  border-radius:50%;
  background:var(--color-accent);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-lg);
  transition:transform var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.whatsapp-fab:hover{ transform:translateY(-2px); background:var(--color-accent-hover); }

/* ===== Video flotante — pequeño, sin bordes de línea, esquina inferior izquierda ===== */
.video-fab{
  position:fixed;
  left:var(--space-4);
  bottom:var(--space-4);
  z-index:90;
  width:200px;
  aspect-ratio:16/10;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  background:var(--color-ink-secondary);
  transition:transform var(--motion-base) var(--ease), opacity var(--motion-base) var(--ease);
  /* Oculto hasta llegar al 50% del scroll de la página (ver js/main.js) */
  opacity:0;
  transform:translateY(12px) scale(0.96);
  pointer-events:none;
}
.video-fab.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.video-fab.is-visible:hover{ transform:translateY(-2px) scale(1); }
.video-fab.is-closed{
  opacity:0 !important;
  transform:scale(0.9) !important;
  pointer-events:none !important;
}
.video-fab-body{
  position:absolute; inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    repeating-linear-gradient(135deg, rgba(238,236,234,0.04) 0px, rgba(238,236,234,0.04) 10px, transparent 10px, transparent 20px),
    var(--color-ink-secondary);
}
.video-fab-play{
  width:44px; height:44px;
  border-radius:50%;
  background:var(--color-accent);
  color:#fff;
  border:none;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:transform var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.video-fab-play svg{ margin-left:2px; }
.video-fab-play:hover{ background:var(--color-accent-hover); transform:scale(1.06); }

.video-ref-badge{
  top:8px; right:auto; left:8px;
  font-size:10px;
  padding:4px 8px;
}

.video-fab-close{
  position:absolute;
  top:8px; right:8px;
  z-index:3;
  width:22px; height:22px;
  border-radius:50%;
  border:none;
  background:rgba(15,17,33,0.55);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background var(--motion-fast) var(--ease);
}
.video-fab-close:hover{ background:rgba(15,17,33,0.8); }

@media (max-width:560px){
  .video-fab{ width:150px; left:var(--space-3); bottom:var(--space-3); }
}
