:root {
  --cream: #faf7f2; --warm-white: #f5f0e8; --sand: #e8dcc7;
  --terracotta: #8FA58E; --terracotta-dark: #6d8a6c;
  --dark: #1e1e1e; --mid: #555; --green-wa: #25D366;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }

.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; }

.skip-link { position:absolute; top:-50px; left:8px; background:var(--dark); color:white; padding:10px 16px; border-radius:6px; z-index:10001; text-decoration:none; transition:top 0.2s; }
.skip-link:focus { top:8px; }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--terracotta-dark);
  outline-offset: 2px;
}

.icon-pin { display:inline-block; vertical-align:-2px; }
body { font-family:'DM Sans',sans-serif; color:var(--dark); background:var(--cream); line-height:1.7; }

/* ── HEADER ── */
header { position:fixed; top:0; left:0; right:0; background:rgba(250,247,242,0.96); backdrop-filter:blur(8px); display:flex; justify-content:space-between; align-items:center; padding:14px 40px; box-shadow:0 1px 20px rgba(0,0,0,0.08); z-index:1000; }
.logo { font-family:'Cormorant Garamond',serif; font-size:clamp(19px,4vw,22px); font-weight:700; }
.logo span { color:var(--terracotta); }
nav { display:flex; align-items:center; gap:4px; }
nav a { text-decoration:none; color:var(--mid); font-size:14px; font-weight:500; padding:7px 14px; border-radius:20px; transition:0.2s; }
nav a:hover { background:var(--sand); color:var(--dark); }
.nav-cta { background:var(--terracotta)!important; color:white!important; padding:8px 20px!important; border-radius:20px; }
.hamburger { display:none; flex-direction:column; cursor:pointer; gap:5px; background:none; border:none; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--dark); transition:0.3s; }

/* ── DRAWER ── */
.drawer-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:1998; opacity:0; transition:opacity 0.3s ease; }
.drawer-overlay.open { display:block; opacity:1; }
.drawer { position:fixed; top:0; right:0; width:75vw; max-width:300px; height:100vh; background:#1e1e1e; z-index:1999; padding:72px 28px 40px; transform:translateX(100%); transition:transform 0.35s cubic-bezier(0.4,0,0.2,1); box-shadow:-4px 0 24px rgba(0,0,0,0.3); }
.drawer.open { transform:translateX(0); }
.drawer-close { position:absolute; top:16px; right:16px; background:rgba(255,255,255,0.1); border:none; font-size:22px; cursor:pointer; color:white; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:50%; transition:0.2s; }
.drawer-close:hover { background:rgba(255,255,255,0.2); }
.drawer-nav { display:flex; flex-direction:column; gap:4px; }
.drawer-nav a { text-decoration:none; color:rgba(255,255,255,0.85); font-size:16px; font-weight:500; padding:12px 16px; border-radius:10px; transition:0.2s; display:block; }
.drawer-sep { height:1px; background:rgba(255,255,255,0.5); margin:4px 16px; }
.drawer-nav a:hover { background:rgba(255,255,255,0.1); color:white; }
.drawer-cta { background:var(--terracotta)!important; color:white!important; text-align:center; margin-top:12px; }

/* ── HERO ── */
.hero{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;

  background-image:
  linear-gradient(rgba(0, 0, 0, 0.314), rgba(0, 0, 0, 0.16)),
    url("./img/51/1.webp");
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-content { max-width:700px; }
.hero-badge { display:inline-block; background:rgba(255, 255, 255, 0.20); border:1px solid rgba(255,255,255,0.35); color:white; font-size:clamp(10px,2.2vw,12px); letter-spacing:2px; text-transform:uppercase; padding:6px 18px; border-radius:20px; margin-bottom:24px; }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,7vw,3.8rem); font-weight:700; color:white; line-height:1.15; margin-bottom:18px; animation:heroIn 1s ease both; }
.hero p { color:rgba(255,255,255,0.88); font-size:clamp(14px,3.5vw,17px); font-weight:300; margin-bottom:36px; animation:heroIn 1s 0.15s ease both; }
.hero-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; animation:heroIn 1s 0.3s ease both; }
@keyframes heroIn { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
.btn-primary { background:var(--terracotta); color:white; padding:clamp(12px,3vw,14px) clamp(22px,6vw,32px); border-radius:6px; text-decoration:none; font-weight:500; font-size:clamp(14px,3vw,15px); transition:0.2s; border:none; cursor:pointer; font-family:'DM Sans',sans-serif; }
.btn-primary:hover { background:var(--terracotta-dark); transform:translateY(-2px); }
.btn-outline { background:transparent; color:white; padding:clamp(12px,3vw,14px) clamp(22px,6vw,32px); border-radius:6px; text-decoration:none; font-weight:500; font-size:clamp(14px,3vw,15px); border:1px solid rgba(255,255,255,0.6); transition:0.2s; }

/* ── STATS ── */
.stats-bar { background:var(--dark); display:flex; justify-content:center; flex-wrap:wrap; }
.stat-item { padding:22px clamp(16px,5vw,40px); text-align:center; border-right:1px solid rgba(255,255,255,0.1); flex:1; min-width:130px; }
.stat-item:last-child { border-right:none; }
.stat-num { font-family:'Cormorant Garamond',serif; font-size:clamp(1.5rem,5vw,2rem); color:var(--terracotta); font-weight:700; display:block; }
.stat-label { color:rgba(255,255,255,0.6); font-size:clamp(10px,2.2vw,12px); text-transform:uppercase; letter-spacing:1px; }

/* ── SECTIONS ── */
section { padding:clamp(56px,9vw,90px) 20px; }
.section-header { text-align:center; margin-bottom:clamp(36px,7vw,56px); }
.section-tag { display:inline-block; color:var(--terracotta); font-size:clamp(10px,2.2vw,12px); font-weight:500; letter-spacing:2px; text-transform:uppercase; margin-bottom:12px; }
.section-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(1.65rem,6vw,2.8rem); font-weight:700; line-height:1.2; }
.section-header p { color:var(--mid); margin-top:12px; font-size:clamp(14px,3vw,16px); max-width:500px; margin-inline:auto; }

/* ── GALERÍA ── */
#consultorios { background:var(--cream); }
.gallery-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr;
  grid-template-rows:220px 220px 220px;
  gap:10px;
  max-width:1000px;
  margin:0 auto;
}
.gallery-item:nth-child(1) { grid-column:1/3; grid-row:1; }
.gallery-item:nth-child(2) { grid-column:3; grid-row:1; }
.gallery-item:nth-child(3) { grid-column:4; grid-row:1; }
.gallery-item:nth-child(4) { grid-column:1; grid-row:2; }
.gallery-item:nth-child(5) { grid-column:2; grid-row:2; }
.gallery-item:nth-child(6) { grid-column:3/5; grid-row:2; }
.gallery-item { position:relative; overflow:hidden; border-radius:10px; opacity:0; transform:translateY(24px); transition:opacity 0.5s ease, transform 0.5s ease; }
.gallery-item.visible { opacity:1; transform:translateY(0); }
.gallery-item img { width:100%; height:100%; object-fit:cover; object-position:center; border-radius:10px; cursor:pointer; transition:0.4s; display:block; box-shadow:0 8px 32px rgba(0,0,0,0.14); border:1px solid var(--sand); }
.gallery-item:hover img { transform:scale(1.05); box-shadow:0 10px 32px rgba(0,0,0,0.1); }
.gallery-caption { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,0.65)); color:white; font-size:13px; font-weight:500; padding:28px 14px 12px; opacity:1; transform:translateY(0); transition:0.3s ease; border-radius:0 0 10px 10px; pointer-events:none; }
.gallery-item:hover .gallery-caption {background:linear-gradient(
    transparent,
    rgba(0,0,0,0.82)
  ); }

/* ── MODAL ── */
.modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.88); justify-content:center; align-items:center; z-index:9999; cursor:pointer; animation:modalFadeIn 0.25s ease; }
@keyframes modalFadeIn { from { opacity:0; } to { opacity:1; } }
.modal img { max-width:90%; max-height:85vh; border-radius:10px; box-shadow:0 20px 60px rgba(0,0,0,0.5); animation:modalZoomIn 0.25s ease; cursor:default; }
@keyframes modalZoomIn { from { opacity:0; transform:scale(0.92); } to { opacity:1; transform:scale(1); } }
.modal-close { position:fixed; top:20px; right:24px; background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.3); color:white; font-size:20px; width:44px; height:44px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:0.2s; z-index:10000; backdrop-filter:blur(4px); }
.modal-close:hover { background:rgba(255,255,255,0.3); transform:scale(1.1); }

/* ── EQUIPAMIENTO ── */
#equipamiento { background:var(--warm-white); }
.equip-split { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; max-width:960px; margin:0 auto; }
.equip-split-img { width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; border-radius:14px; }
.equip-icon-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:18px; }
.equip-icon-list li { display:flex; align-items:center; gap:16px; }
.equip-icon { flex-shrink:0; width:54px; height:54px; background:var(--warm-white); border:1px solid var(--sand); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:clamp(20px,4vw,24px); }
.equip-icon-list li strong { font-size:clamp(14px,3vw,15px); color:var(--dark); font-weight:500; }

/* ── PRECIOS ── */
#reserva { background:var(--cream); }
.pricing-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; max-width:900px; margin:0 auto; }
.pricing-card { background:white; border:1px solid var(--sand); border-radius:14px; padding:clamp(28px,5vw,36px) clamp(20px,5vw,28px); text-align:center; transition:0.25s; position:relative; box-shadow:0 8px 32px rgba(0,0,0,0.14); }
.pricing-card:hover { transform:translateY(-4px); box-shadow:0 10px 32px rgba(0,0,0,0.1); }
.pricing-card.featured { border-color:var(--terracotta); background:var(--terracotta); color:white; }
.badge-pop { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--dark); color:white; font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:4px 14px; border-radius:20px; white-space:nowrap; }
.pricing-icon { font-size:clamp(26px,5vw,32px); margin-bottom:14px; }
.pricing-type { font-family:'Cormorant Garamond',serif; font-size:clamp(1.35rem,4vw,1.6rem); font-weight:700; margin-bottom:8px; }
.pricing-desc { font-size:clamp(12px,2.8vw,13px); opacity:0.9; margin-bottom:20px; }
.pricing-cta { display:inline-block; padding:10px clamp(18px,4vw,24px); border-radius:6px; font-size:clamp(13px,3vw,14px); font-weight:500; text-decoration:none; transition:0.2s; cursor:pointer; border:none; font-family:'DM Sans',sans-serif; }
.pricing-card:not(.featured) .pricing-cta { background:var(--terracotta); color:white; }
.pricing-card.featured .pricing-cta { background:white; color:var(--terracotta); }

/* ── SEDES ── */
#sedes { background:var(--warm-white); }
.sedes-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:32px; max-width:900px; margin:0 auto 40px; }
.sede-card { background:white; border:1px solid var(--sand); border-radius:14px; overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,0.14); }
.sede-header { padding:18px clamp(16px,4vw,24px); border-bottom:1px solid var(--sand); display:flex; align-items:center; gap:12px; }
.sede-header i { color:var(--terracotta); font-size:clamp(16px,3.5vw,18px); }
.sede-header h3 { font-family:'Cormorant Garamond',serif; font-size:clamp(1.05rem,4vw,1.2rem); font-weight:700; }
.badge-coming { margin-left:auto; background:var(--sand); color:var(--mid); font-size:12px; padding:3px 10px; border-radius:20px; }
.sede-card iframe { width:100%; height:220px; border:0; display:block; }
.transporte-bar { text-align:center; background:white; border:1px solid var(--sand); border-radius:12px; padding:24px clamp(20px,5vw,32px); max-width:600px; margin:0 auto; box-shadow:0 8px 32px rgba(0,0,0,0.14); }
.transporte-bar h4 { font-family:'Cormorant Garamond',serif; font-size:clamp(1.05rem,4vw,1.2rem); font-weight:700; margin-bottom:10px; }
.transporte-bar p { font-size:clamp(13px,3vw,14px); color:var(--mid); }
.transporte-bar p+p { margin-top:4px; }

/* ── CONTACTO ── */
#contacto { background:var(--cream); }
.contact-wrap { max-width:500px; margin:0 auto; background:white; border:1px solid var(--sand); border-radius:16px; padding:clamp(28px,6vw,40px) clamp(20px,6vw,36px); box-shadow:0 8px 32px rgba(0,0,0,0.14); }
.contact-wrap input,.contact-wrap textarea { width:100%; padding:12px 16px; border-radius:8px; border:1px solid #ddd; font-family:'DM Sans',sans-serif; font-size:16px; background:var(--cream); margin-bottom:12px; transition:0.2s; }
.contact-wrap input:focus,.contact-wrap textarea:focus { outline:none; border-color:var(--terracotta); }
.contact-wrap textarea { resize:none; height:110px; }

/* ── FOOTER ── */
footer { background:var(--dark); color:rgba(255,255,255,0.7); padding:clamp(40px,8vw,56px) clamp(20px,5vw,40px) 0; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:clamp(24px,5vw,48px); max-width:1000px; margin:0 auto; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer-col .logo { font-size:clamp(18px,4vw,20px); margin-bottom:12px; }
.footer-desc { font-size:clamp(12px,2.8vw,13px); color:rgba(255,255,255,0.75); line-height:1.7; margin-bottom:20px; }
.footer-social { display:flex; gap:12px; align-items:center; }
.footer-wa { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:#25D366; transition:0.2s; text-decoration:none; }
.footer-wa:hover { transform:scale(1.1); }
.footer-title { font-family:'Cormorant Garamond',serif; font-size:clamp(0.9rem,2.5vw,1rem); font-weight:700; color:white; margin-bottom:16px; letter-spacing:0.5px; }
.footer-links-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.footer-links-list li { font-size:clamp(12px,2.8vw,13px); color:rgba(255,255,255,0.75); display:flex; align-items:center; gap:8px; }
.footer-links-list a { color:rgba(255,255,255,0.75); text-decoration:none; transition:0.2s; }
.footer-links-list a:hover { color:white; }
.footer-bottom { text-align:center; padding:20px; font-size:clamp(11px,2.5vw,12px); color:rgba(255,255,255,0.3); }

/* ── WHATSAPP ── */
.whatsapp { position:fixed; bottom:24px; right:24px; background:var(--green-wa); width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(37,211,102,0.4); z-index:997; text-decoration:none; animation:waBounce 3s ease-in-out infinite; }
.whatsapp:hover { transform:scale(1.1); animation:none; }
@keyframes waBounce { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-8px); } }

.ig { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:linear-gradient(45deg,#E1306C,#F77737); transition:0.2s; text-decoration:none; }
.ig:hover { transform:scale(1.1); }

/* ── MOBILE ── */
@media (max-width:700px) {
  header { padding:12px 20px; }
  nav { display:none !important; }
  .drawer-nav { display:flex !important; }
  .hamburger { display:flex; }
  .hero{
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.232), rgba(0, 0, 0, 0.16)),
      url("./img/63/1.webp");
  }

  #reserva { padding-left:0; padding-right:0; }
  #reserva .section-header { padding:0 20px; margin-bottom:32px; }
  .pricing-grid { display:flex; flex-wrap:nowrap; overflow-x:scroll; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none; gap:14px; padding:20px 16px 28px; box-sizing:border-box; width:calc(100% - 32px); margin:0 auto; align-items:stretch; }
  .pricing-grid::-webkit-scrollbar { display:none; }
  .pricing-card { flex:0 0 80%; width:80%; min-width:0; scroll-snap-align:start; transform:none!important; margin:0!important; box-sizing:border-box; }
  .pricing-card.featured { transform:none!important; margin:0!important; }
  .badge-pop { top:-14px; white-space:nowrap; font-size:10px; }

  #consultorios { padding-left:0; padding-right:0; }
  #consultorios .section-header { padding:0 20px; margin-bottom:32px; }
  .gallery-grid { display:flex; flex-wrap:nowrap; overflow-x:scroll; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none; gap:12px; padding:0 20px 20px; width:calc(100% - 32px); margin:0 auto; box-sizing:border-box; }
  .gallery-grid::-webkit-scrollbar { display:none; }
  .gallery-item { flex:0 0 85%; width:85%; scroll-snap-align:start; opacity:1; transform:none; }
  .gallery-item img { aspect-ratio:4/3; height:auto; object-position:center; border-radius:12px; }

  #sedes { padding-left:0; padding-right:0; }
  #sedes .section-header { padding:0 20px; margin-bottom:32px; }
  .sedes-grid { display:flex; flex-wrap:nowrap; overflow-x:scroll; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none; gap:14px; padding:4px 0 20px; width:calc(100% - 32px); margin:0 auto; box-sizing:border-box; }
  .sedes-grid::-webkit-scrollbar { display:none; }
  .sede-card { flex:0 0 85%; width:85%; min-width:0; scroll-snap-align:start; }

  .equip-split { grid-template-columns:1fr; gap:28px; }
  .equip-split-img { aspect-ratio:4/3; height:auto; order:2; }
  .equip-icon-list { order:1; }

  .transporte-bar { max-width:80%; }
  footer { padding:40px 20px 0; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:24px; }
  .footer-col:first-child { grid-column:1/3; }
  .footer-col:last-child { display:none !important; }
  .contact-wrap { padding:28px 20px; }
}

@media (min-width:701px) and (min-height:500px) {
  .drawer, .drawer-overlay { display:none!important; }
  .hamburger { display:none!important; }
}



/* ── EQUIPAMIENTO NUMBERED ── */
#equipamiento { background: var(--warm-white); }

.equip-two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 60px;
  max-width: 700px;
  margin: 0 auto;
}

.equip-numbered {
  list-style: none;
  padding: 0;
  margin: 0;
}

.equip-numbered li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--sand);


}

.equip-numbered li:last-child { border-bottom: none; }

.equip-icon-sm {
  font-size: clamp(19px,4vw,22px);
  flex-shrink: 0;
}

.equip-name {
  font-size: clamp(14px,3vw,16px);
  font-weight: 500;
  color: var(--dark);
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-block;
}

@media (max-width: 700px) {
  .equip-two-cols { grid-template-columns: 1fr; gap: 0; }
  .equip-numbered li { padding: 14px 0; }
}

@media (max-height: 500px) and (orientation: landscape) {
  nav { display:none !important; }
  .drawer-nav { display:flex !important; }
  .hamburger { display:flex !important; }
  .drawer {
    display:block;
    transform:translateX(100%);
    height:100vh;
    padding:56px 24px 20px;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .drawer.open { transform:translateX(0); }
  .drawer-overlay { display:block; }
  .drawer-overlay:not(.open) { display:none; }
  .drawer-close { top:10px; right:10px; width:34px; height:34px; font-size:18px; }
  .drawer-nav a { padding:9px 14px; font-size:15px; }
  .drawer-sep { margin:2px 14px; }
}

@media (max-height: 500px) and (orientation: landscape) {
  .pricing-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: scroll !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    padding: 20px 16px 28px !important;
    width: calc(100% - 32px) !important;
    margin: 0 auto !important;
  }
  .pricing-card {
    flex: 0 0 36% !important;
    width: 36% !important;
    scroll-snap-align: start !important;
    transform: none !important;
    margin: 0 !important;
  }
}

.gallery-container {
  max-width: 1000px;
  margin: 0 auto;
  background: white;
  border-radius: 20px;
  border: 1px solid var(--sand);
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
  padding: 12px;
  overflow: hidden;
}

@media (max-width: 700px) {
  .gallery-container {
    border-radius: 16px;
    padding: 10px;
    margin: 0 16px;
  }
}

.footer-simple {
  text-align: center;
  padding: 32px 20px 24px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-simple .logo { font-size: clamp(18px,4vw,22px); margin-bottom: 12px; }
.footer-simple .footer-desc { font-size: clamp(13px,3vw,14px); color: rgba(255,255,255,0.5); max-width: 400px; margin: 0 auto 24px; line-height: 1.7; }
.footer-simple .footer-social { display: flex; gap: 12px; justify-content: center; }

.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger items */
.stagger-item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.stagger-item.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .fade-up, .stagger-item {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ── ACTIVE NAV ── */
nav a.active {
  color: var(--terracotta);
  background: var(--sand);
  font-weight: 600;
}

/* ── BACK TO TOP ── */
.back-to-top {
  position: fixed;
  bottom: 24px;
  left: 26px;
  width: 42px;
  height: 42px;
  background: white;
  border: 1px solid var(--sand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 996;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.2s;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  text-decoration: none;
  color: var(--dark);
  font-size: 18px;
}
.back-to-top.visible {
  opacity: 1;
  transform: translateY(0);
}
.back-to-top:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
  transform: translateY(-2px);
  border-color: var(--terracotta);
  color: var(--terracotta);
}

/* ── WAVE DIVIDERS ── */
.wave-divider {
  width: 100%;
  overflow: hidden;
  line-height: 0;
  margin-bottom: -3px;
  margin-top: -3px;
}
.wave-divider svg {
  display: block;
  width: 100%;
}

/* ── GALLERY: salas de espera ocultas en desktop, visibles en mobile carousel ── */
.gallery-item:nth-child(7) { grid-column: 1/3; grid-row: 3; }
.gallery-item:nth-child(8) { grid-column: 3/5; grid-row: 3; }

/* ── MODAL CON NAVEGACIÓN ── */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  justify-content: center;
  align-items: center;
  z-index: 9999;
  animation: modalFadeIn 0.25s ease;
}
.modal-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.modal-content img {
  max-width: 90vw;
  max-height: 80vh;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
  animation: modalZoomIn 0.25s ease;

  display: block;
}
.modal-counter {
  color: rgba(255,255,255,0.65);
  font-size: 13px;
  font-family: 'DM Sans', sans-serif;
  letter-spacing: 1px;
}
.modal-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  color: white;
  font-size: 22px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;

  flex-shrink: 0;
  backdrop-filter: blur(4px);
}
.modal-nav.modal-prev { left: 16px; }
.modal-nav.modal-next { right: 16px; }
.modal-nav:hover {
  background: rgba(255,255,255,0.25);
  transform: translateY(-50%) scale(1.08);
}

@media (max-width: 700px) {
  .modal-content img { max-width: 92vw; max-height: 72vh; }
  .modal-nav { width: 44px; height: 44px; font-size: 18px; }
  .modal-nav.modal-prev { left: 8px; }
  .modal-nav.modal-next { right: 8px; }

}


@media (max-width: 700px) {
  .equip-two-cols .equip-numbered:first-child li:last-child {
    border-bottom: 1px solid var(--sand);
  }
}

/* ── PANTALLAS MUY CHICAS (Android compactos, iPhone SE/mini) ── */
@media (max-width: 380px) {
  .hero-content { max-width: 92vw; }
  .hero-btns { gap: 10px; }
  .btn-primary, .btn-outline { padding: 12px 18px; font-size: 13px; }
  .stat-item { padding: 18px 10px; min-width: 0; }
  .pricing-card { padding: 24px 18px; }
  .contact-wrap { padding: 24px 18px; }
  .drawer { width: 80vw; padding: 64px 22px 32px; }
  section { padding-left: 16px; padding-right: 16px; }
}