/* =========================================================
   Baja Underwater Expeditions — estilo oceanico moderno
   ========================================================= */
:root{
  --navy-950:#061722;
  --navy-900:#0a2233;
  --navy-800:#0e2f45;
  --navy-700:#134060;
  --cyan-400:#33c9dd;
  --cyan-300:#7fe3ee;
  --sand-400:#e8c983;
  --white:#f5fbfd;
  --grey-300:#c7d6dd;
  --grey-600:#7f95a0;
  --radius:14px;
  --maxw:1180px;
  --font-head:'Cormorant Garamond', serif;
  --font-body:'Montserrat', sans-serif;
  --head-scale:1.15;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:87.5%;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--navy-950);
  color:var(--white);
  line-height:1.6;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:300;font-style:italic;line-height:1.15;margin:0 0 .5em;}
p{margin:0 0 1em;color:var(--grey-300);}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
ul{list-style:none;margin:0;padding:0;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  padding:14px 30px;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.02em;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  border:2px solid transparent;
  cursor:pointer;
}
.btn-primary{background:var(--cyan-400);color:var(--navy-950);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(51,201,221,.35);}
.btn-outline{border-color:var(--white);color:var(--white);}
.btn-outline:hover{background:var(--white);color:var(--navy-950);}
.btn-whatsapp{background:#25D366;color:#08341c;}
.btn-whatsapp:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(37,211,102,.35);}
.btn-block{display:block;width:100%;text-align:center;}

/* ---------- Top bar ---------- */
.topbar{background:var(--navy-900);font-size:.82rem;color:var(--grey-300);}
.topbar-inner{display:flex;gap:24px;justify-content:flex-end;padding:8px 24px;}
.topbar-item{opacity:.85;}
.topbar-item:hover{opacity:1;color:var(--cyan-300);}
.topbar-whatsapp{color:#25D366;font-weight:600;}
.lang-switch{display:flex;gap:4px;}
.lang-switch a{padding:2px 8px;border-radius:5px;font-weight:600;letter-spacing:.04em;opacity:.7;}
.lang-switch a:hover{opacity:1;color:var(--cyan-300);}
.lang-switch a.lang-active{background:var(--cyan-400);color:var(--navy-950);opacity:1;}

/* ---------- Selector de tipografia (test, no definitivo) ---------- */
.font-switch{display:flex;gap:4px;padding-left:10px;margin-left:6px;border-left:1px solid rgba(255,255,255,.15);}
.font-switch-btn{
  padding:6px 10px;border-radius:5px;font-weight:600;letter-spacing:.02em;opacity:.6;
  background:none;border:none;color:inherit;cursor:pointer;font-family:var(--font-body);font-size:.72rem;
  touch-action:manipulation;-webkit-tap-highlight-color:rgba(51,201,221,.3);
}
.font-switch-btn:hover{opacity:1;color:var(--cyan-300);}
.font-switch-btn.active{background:var(--sand-400);color:var(--navy-950);opacity:1;}

body.font-alt{--font-head:'Fraunces', serif;--font-body:'Inter', sans-serif;--head-scale:1;}
body.font-alt h1,body.font-alt h2,body.font-alt h3,body.font-alt h4{font-weight:700;font-style:normal;line-height:1.2;}

/* ---------- Navbar ---------- */
.site-header{position:sticky;top:0;z-index:100;}
.navbar{
  background:rgba(6,23,34,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.navbar-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;
}
.brand-logo{height:46px;width:auto;}
.nav-menu{display:flex;align-items:center;gap:30px;}
.nav-menu > li{position:relative;padding:10px 0;}
.nav-menu > li > a{font-size:.92rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;}
.nav-menu > li.active > a,
.nav-menu > li > a:hover{color:var(--cyan-300);}
.header-divider{
  width:100%;
  height:2px;
  background:#1393cd;
}
.nav-menu .dropdown{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  min-width:240px;background:var(--navy-800);border-radius:10px;
  padding:10px;box-shadow:0 20px 40px rgba(0,0,0,.4);
  opacity:0;visibility:hidden;translate:0 8px;
  transition:opacity .2s ease, translate .2s ease, visibility .2s ease;
}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;translate:0 0;}
.nav-menu .dropdown li a{display:block;padding:10px 14px;border-radius:6px;font-size:.88rem;text-transform:none;letter-spacing:0;}
.nav-menu .dropdown li a:hover{background:var(--navy-700);color:var(--cyan-300);}
.nav-cta{white-space:nowrap;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.nav-toggle span{width:26px;height:2px;background:var(--white);}

@media (max-width:960px){
  .topbar-inner{justify-content:center;padding:6px 24px;gap:8px 12px;flex-wrap:wrap;}
  .font-switch{padding-left:8px;margin-left:2px;}
  .topbar-item{display:none;}
  .nav-toggle{display:flex;}
  .nav-menu{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--navy-900);
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .nav-menu.open{max-height:600px;padding:10px 0;}
  .nav-menu > li{padding:0;}
  .nav-menu > li > a{display:block;padding:14px 24px;}
  .nav-menu .dropdown{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;background:var(--navy-950);display:none;translate:0;}
  .has-dropdown.open .dropdown{display:block;}
  .nav-cta{display:none;}
}

/* ---------- Hero ---------- */
.hero{position:relative;height:92vh;min-height:560px;overflow:hidden;display:flex;align-items:flex-end;}
.hero video, .hero img.hero-media{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.hero-poster-fade{
  z-index:1;
  opacity:.05;
  transition:opacity .5s ease;
}
.hero-poster-fade.is-shown{opacity:1;}
.hero-poster-fade.is-hidden{opacity:0 !important;pointer-events:none;transition:opacity .4s ease;}
@media (prefers-reduced-motion:reduce){
  .hero-poster-fade{transition:none;opacity:1;}
}
.hero::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(6,23,34,.55) 0%, rgba(6,23,34,.45) 35%, rgba(6,23,34,.98) 100%);
  opacity:0;
  transition:opacity .6s ease;
}
.hero.is-revealed::after{opacity:1;}
.hero-content{
  position:relative;z-index:2;padding:60px 24px 70px;max-width:var(--maxw);margin:0 auto;width:100%;
  opacity:0;
  transition:opacity .5s ease;
}
.hero.is-revealed .hero-content{opacity:1;}

@media (prefers-reduced-motion:reduce){
  .hero::after,
  .hero-content{transition:none;}
}
.hero-content .eyebrow{text-shadow:0 2px 10px rgba(0,0,0,.6);}
.hero-content h1{font-size:calc(clamp(2.2rem,5vw,3.6rem) * var(--head-scale));max-width:820px;}
.hero-content h1,
.page-hero-content h1{
  color:var(--white);
  text-shadow:
    -1.5px -1.5px 0 rgba(0,0,0,.85),
     1.5px -1.5px 0 rgba(0,0,0,.85),
    -1.5px  1.5px 0 rgba(0,0,0,.85),
     1.5px  1.5px 0 rgba(0,0,0,.85),
     0 4px 18px rgba(0,0,0,.55);
}
.hero-content p{max-width:600px;font-size:1.1rem;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:20px;}

/* ---------- Page header (subpages) ---------- */
.page-hero{
  position:relative;padding:160px 24px 70px;background-size:cover;background-position:center;
  background-attachment:fixed;
  min-height:clamp(440px, 60vh, 620px);
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background:rgba(6,23,34, var(--overlay-o, 0));
  transition:background-color .45s ease;
}

/* background-attachment:fixed no funciona bien en iOS Safari / algunos moviles:
   en pantallas chicas volvemos a scroll normal para evitar bugs de render. */
@media (max-width:900px){
  .page-hero{background-attachment:scroll;}
}
.page-hero-content{
  position:relative;z-index:1;max-width:var(--maxw);width:100%;margin:0 auto;
  opacity:.5;
  transition:opacity .45s ease;
}
.page-hero.is-active .page-hero-content{opacity:1;}
@media (prefers-reduced-motion:reduce){
  .page-hero-content{transition:none;}
}
.eyebrow{color:var(--cyan-300);text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;font-weight:600;}
.meta-row{display:flex;flex-wrap:wrap;gap:32px;margin-top:26px;}
.meta-item{font-size:.8rem;color:var(--grey-300);text-transform:uppercase;letter-spacing:.08em;}
.meta-item strong{display:block;color:var(--white);font-size:calc(1.05rem * var(--head-scale));text-transform:none;letter-spacing:0;font-family:var(--font-head);margin-top:2px;}

/* ---------- Sections ---------- */
section{padding:80px 0;}
.section-head{max-width:680px;margin:0 auto 46px;text-align:center;}
.section-head h2{font-size:calc(clamp(1.8rem,3.5vw,2.6rem) * var(--head-scale));}
.alt-bg{background:var(--navy-900);}

/* ---------- Cards grid ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;}
.card{
  background:var(--navy-800);border-radius:var(--radius);overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 44px rgba(0,0,0,.35);}
.card-media{height:220px;overflow:hidden;}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.card:hover .card-media img{transform:scale(1.06);}
.card-body{padding:22px 22px 26px;}
.tag{display:inline-block;background:rgba(51,201,221,.14);color:var(--cyan-300);
  font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:5px 12px;border-radius:999px;margin-bottom:12px;}
.card-body h3{font-size:calc(1.25rem * var(--head-scale));margin-bottom:8px;}
.card-price{color:var(--sand-400);font-weight:600;margin-top:10px;}
.card-link{margin-top:14px;display:inline-block;color:var(--cyan-300);font-weight:600;font-size:.9rem;}

/* ---------- Course schedule (freediving itinerary, etc.) ---------- */
.course-schedule{list-style:none;margin:16px 0;padding:0;border-top:1px solid rgba(255,255,255,.08);}
.course-schedule li{
  padding:10px 0 10px 26px;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:.88rem;color:var(--grey-300);
  position:relative;
}
.course-schedule li::before{
  content:'';position:absolute;left:4px;top:17px;
  width:8px;height:8px;border-radius:50%;background:var(--cyan-400);
}

/* ---------- Calendar (legacy, kept for compatibility) ---------- */
.calendar-strip{display:flex;overflow-x:auto;gap:2px;border-radius:10px;overflow:hidden;margin-bottom:40px;}
.calendar-month{flex:1;min-width:74px;text-align:center;background:var(--navy-800);padding:14px 6px;font-size:.78rem;letter-spacing:.05em;color:var(--grey-300);border-right:1px solid rgba(255,255,255,.05);}
.calendar-month.hot{background:var(--cyan-400);color:var(--navy-950);font-weight:700;}
.calendar-table{width:100%;border-collapse:collapse;}
.calendar-table th,.calendar-table td{padding:16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08);font-size:.92rem;}
.calendar-table th{color:var(--cyan-300);text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;}

/* ---------- Gantt-style expedition calendar ---------- */
.gantt{
  min-width:760px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--navy-800);
}
.gantt-wrap{overflow-x:auto;padding-bottom:8px;}
.gantt-header{display:flex;background:var(--navy-900);border-bottom:1px solid rgba(255,255,255,.1);}
.gantt-label{
  width:220px;flex:0 0 220px;
  padding:14px 18px;
  display:flex;flex-direction:column;justify-content:center;
  border-right:1px solid rgba(255,255,255,.08);
}
.gantt-label small{color:var(--grey-600);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.gantt-track{
  flex:1;
  display:grid;
  grid-template-columns:repeat(12, minmax(48px,1fr));
  position:relative;
}
.gantt-track-header{padding:0;}
.gantt-month-label{
  text-align:center;padding:14px 4px;font-size:.7rem;letter-spacing:.06em;
  color:var(--grey-300);text-transform:uppercase;
  border-right:1px solid rgba(255,255,255,.05);
}
.gantt-month-label:last-child{border-right:none;}
.gantt-row{
  display:flex;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .2s ease;
}
.gantt-row:last-child{border-bottom:none;}
.gantt-row:hover{background:rgba(255,255,255,.03);}
.gantt-row .gantt-track{align-items:center;padding:10px 0;}
.gantt-bar{
  grid-row:1;
  height:26px;
  border-radius:999px;
  margin:0 3px;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
}
.gantt-coral{background:linear-gradient(90deg,#ff8a65,#ff7043);}
.gantt-blue{background:linear-gradient(90deg,#64b5f6,#42a5f5);}
.gantt-sand{background:linear-gradient(90deg,#e8c983,#d9ad4f);}
.gantt-cyan{background:linear-gradient(90deg,#33c9dd,#22a6b8);}
.gantt-teal{background:linear-gradient(90deg,#4dd0c4,#2c9e94);}
.gantt-green{background:linear-gradient(90deg,#9ccc65,#7cb342);}
.gantt-purple{background:linear-gradient(90deg,#b39ddb,#9575cd);}
.gantt-teal-light{
  background:repeating-linear-gradient(45deg, rgba(77,208,196,.35), rgba(77,208,196,.35) 6px, rgba(44,158,148,.18) 6px, rgba(44,158,148,.18) 12px);
  border:1px dashed rgba(77,208,196,.6);
  box-shadow:none;
}
.gantt-cyan-light{
  background:repeating-linear-gradient(45deg, rgba(51,201,221,.35), rgba(51,201,221,.35) 6px, rgba(34,166,184,.18) 6px, rgba(34,166,184,.18) 12px);
  border:1px dashed rgba(51,201,221,.6);
  box-shadow:none;
}
.gantt-legend{
  display:flex;flex-wrap:wrap;gap:20px;
  padding:14px 18px;
  border-top:1px solid rgba(255,255,255,.08);
  background:var(--navy-900);
  font-size:.78rem;color:var(--grey-300);
}
.gantt-legend-item{display:flex;align-items:center;gap:8px;}
.gantt-legend-swatch{width:22px;height:12px;border-radius:6px;flex:0 0 auto;}

/* ---------- Mini galería de fotos/video ---------- */
.gallery-grid{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:12px;
  margin:20px 0 34px;
}
.gallery-grid a{display:block;border-radius:12px;overflow:hidden;}
.gallery-grid img{
  width:100%;height:190px;object-fit:cover;display:block;
  transition:transform .35s ease;
}
.gallery-grid a:hover img{transform:scale(1.06);}
@media (max-width:760px){
  .gallery-grid{grid-template-columns:repeat(2, 1fr);}
  .gallery-grid img{height:150px;}
}
.gallery-video{
  margin:0 0 34px;border-radius:14px;overflow:hidden;background:#000;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.gallery-video video{width:100%;display:block;max-height:560px;}

@media (max-width:760px){
  .gantt-label{width:150px;flex:0 0 150px;padding:12px;}
  .gantt-label strong{font-size:.85rem;}
}

/* ---------- Reviews ---------- */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;}
.review-card{background:var(--navy-800);border-radius:var(--radius);padding:26px;border:1px solid rgba(255,255,255,.06);}
.stars{color:var(--sand-400);letter-spacing:2px;margin-bottom:10px;}
.review-author{margin-top:14px;font-weight:600;color:var(--white);font-size:.9rem;}
.google-badge{display:flex;align-items:center;gap:14px;justify-content:center;margin-top:36px;}
.google-badge img{height:32px;}
.google-rating{font-size:1.4rem;font-weight:700;color:var(--sand-400);}

/* ---------- Team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;}
.team-card{text-align:center;}
.team-card img{border-radius:var(--radius);height:340px;width:100%;object-fit:cover;margin-bottom:16px;}

/* ---------- Forms ---------- */
.form-wrap{max-width:720px;margin:0 auto;background:var(--navy-800);padding:40px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.06);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-grid .full{grid-column:1/-1;}
label{display:block;font-size:.82rem;color:var(--grey-300);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;}
input,select,textarea{
  width:100%;padding:13px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.12);
  background:var(--navy-950);color:var(--white);font-family:var(--font-body);font-size:.95rem;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cyan-400);}
textarea{resize:vertical;min-height:110px;}
.form-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;}
.form-note{font-size:.82rem;margin-top:14px;}
.alert{padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:.9rem;}
.alert-success{background:rgba(37,211,102,.15);color:#7be3a4;border:1px solid rgba(37,211,102,.4);}
.alert-error{background:rgba(220,80,80,.15);color:#f0a3a3;border:1px solid rgba(220,80,80,.4);}

/* ---------- Price table ---------- */
.price-table{width:100%;border-collapse:collapse;margin-bottom:10px;}
.price-table th,.price-table td{padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left;}
.price-table th{color:var(--cyan-300);text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;}
.price-table td strong{color:var(--sand-400);}
.price-group-title{margin-top:44px;margin-bottom:10px;color:var(--cyan-300);}

/* ---------- WhatsApp floating button ---------- */
.whatsapp-float{
  position:fixed;bottom:26px;right:26px;z-index:200;
  background:#25D366;color:#08341c;width:60px;height:60px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,.35);
  transition:transform .2s ease;
}
.whatsapp-float:hover{transform:scale(1.08);}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-900);padding:60px 0 0;margin-top:60px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:32px;padding-bottom:40px;}
.footer-logo{height:40px;margin-bottom:14px;}
.footer-col h4{color:var(--white);font-size:.95rem;margin-bottom:14px;}
.footer-col ul li{margin-bottom:10px;}
.footer-col ul li a:hover{color:var(--cyan-300);}
.footer-social{display:flex;gap:16px;margin-top:16px;}
.footer-social a{font-size:.85rem;border:1px solid rgba(255,255,255,.2);padding:6px 14px;border-radius:999px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:20px 24px;font-size:.8rem;color:var(--grey-600);text-align:center;}

@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .footer-grid{grid-template-columns:1fr;}
  section{padding:56px 0;}
}
