:root{
  --azul:#2b5ea8;
  --azul-claro:#6f93c4;
  --gris:#8f969d;
  --linea:#d8dde3;
  --tinta:#3a4652;
  --fondo:#e8eef2;
  --blanco:#fff;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{
  font-family:"Helvetica Neue","Segoe UI Light","Segoe UI",Arial,sans-serif;
  font-weight:300;color:var(--tinta);background:var(--blanco);line-height:1.65;
}
h1,h2,h3{font-weight:300}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--azul);outline-offset:3px}

/* ---------- NAV ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.96);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--linea);
    display:flex;align-items:center;justify-content:space-between;padding:.9rem 5%}
nav .logo{color:var(--azul);font-size:.86rem;text-transform:uppercase;letter-spacing:3.4px;text-decoration:none}
nav ul{display:flex;gap:1.8rem;list-style:none;align-items:center}
nav a{color:var(--tinta);text-decoration:none;font-size:.72rem;text-transform:uppercase;letter-spacing:1.6px}
nav a:hover{color:var(--azul)}
.lang-btn{background:none;border:1px solid var(--linea);color:var(--gris);padding:.3rem .8rem;
          cursor:pointer;font-size:.66rem;letter-spacing:1.6px;text-transform:uppercase;font-family:inherit}
.lang-btn:hover{border-color:var(--azul);color:var(--azul)}
.langs{display:flex;gap:.35rem}
.lang-btn{padding:.3rem .55rem}
.lang-btn[aria-pressed="true"]{border-color:var(--azul);background:var(--azul);color:#fff}
.nav-toggle{display:none;background:none;border:none;color:var(--azul);font-size:1.5rem;cursor:pointer}

/* ---------- HERO ---------- */
header{min-height:88vh;display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;color:var(--blanco);padding:7rem 1.5rem 4rem;
  background:linear-gradient(rgba(30,52,84,.42),rgba(30,52,84,.58)),url('web-fotos/hero.jpg') center/cover no-repeat,var(--azul)}
header h1{font-size:clamp(1.5rem,4.5vw,2.6rem);text-transform:uppercase;letter-spacing:9px;padding-left:9px}
header .h-rule{width:64px;height:1px;background:rgba(255,255,255,.6);margin:1.6rem auto}
header p.tag{font-size:clamp(.82rem,1.8vw,1rem);letter-spacing:1.6px;color:rgba(255,255,255,.92);max-width:620px}
header p.tag .en{display:block;font-size:.74rem;color:rgba(255,255,255,.62);letter-spacing:1.2px;margin-top:.5rem}
.h-cta{margin-top:2.6rem;display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.season{margin-top:2.6rem;border:1px solid rgba(255,255,255,.4);padding:.6rem 1.6rem;
        font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.9)}
.season small{display:block;font-size:.6rem;letter-spacing:1.2px;text-transform:none;opacity:.8;margin-top:.2rem}

/* ---------- BOTONES ---------- */
.btn{display:inline-block;border:1px solid var(--azul);color:var(--azul);background:none;text-decoration:none;
     padding:.75rem 2rem;font-size:.72rem;text-transform:uppercase;letter-spacing:2.2px;transition:.15s;font-family:inherit;cursor:pointer}
.btn:hover{background:var(--azul);color:var(--blanco)}
.btn.light{border-color:rgba(255,255,255,.75);color:var(--blanco)}
.btn.light:hover{background:var(--blanco);color:var(--azul)}
.btn.solid{background:var(--azul);color:var(--blanco)}
.btn.solid:hover{background:#234c88}

/* ---------- ESTRUCTURA ---------- */
section{padding:5rem 5%}
.wrap{max-width:1080px;margin:0 auto}
.framed{border:1px solid var(--linea);padding:3.2rem 2.6rem}
.alt{background:var(--fondo)}
h2.tit{font-size:clamp(1.1rem,2.6vw,1.55rem);color:var(--azul);text-transform:uppercase;
       letter-spacing:4px;text-align:center;line-height:1.45}
h2.tit .en{display:block;font-size:.7rem;color:var(--gris);letter-spacing:2.4px;margin-top:.55rem}
.sub{text-align:center;color:var(--azul-claro);font-size:.95rem;letter-spacing:.4px;margin:1.1rem auto 2.8rem;max-width:640px}
.sub .en{display:block;color:var(--gris);font-size:.8rem;margin-top:.3rem}
.rule{height:1px;background:var(--gris);opacity:.4;margin:2.4rem 0}
.sec-lbl{font-size:.7rem;color:var(--azul);text-transform:uppercase;letter-spacing:3px;text-align:center;margin-bottom:1.2rem}
.sec-lbl .en{color:var(--gris);letter-spacing:2px}

/* ---------- TARJETAS AVENTURA ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(400px,100%),1fr));gap:1.6rem}
.card{border:1px solid var(--linea);background:var(--blanco);display:flex;flex-direction:column;transition:.18s}
.card:hover{border-color:var(--azul-claro)}
.card .img{height:200px;background:var(--fondo) center/cover no-repeat;position:relative}
.card .img .flag{position:absolute;top:0;left:0;background:var(--azul);color:#fff;
                 font-size:.6rem;letter-spacing:2px;text-transform:uppercase;padding:.35rem .9rem}
.card .body{padding:1.8rem 1.6rem;display:flex;flex-direction:column;flex:1}
.card h3{font-size:.95rem;color:var(--azul);text-transform:uppercase;letter-spacing:2px;line-height:1.5}
.card h3 .en{display:block;font-size:.66rem;color:var(--gris);letter-spacing:1.4px;margin-top:.35rem}
.card .meta{color:var(--gris);font-size:.68rem;text-transform:uppercase;letter-spacing:1.6px;margin:.9rem 0}
.card .desc{font-size:.88rem;color:var(--tinta);flex:1}
.card .price-box{border-top:1px solid var(--linea);margin-top:1.4rem;padding-top:1.2rem;text-align:center}
.card .num{font-size:2.1rem;color:var(--azul);letter-spacing:-1px;display:block}
.card .pp{display:block;font-size:.66rem;color:var(--gris);text-transform:uppercase;letter-spacing:1.4px;margin-top:.3rem}
.card .btn{margin-top:1.4rem;text-align:center;width:100%}

/* ---------- DETOX ---------- */
.detox{margin-top:2.6rem;border:1px solid var(--linea);display:flex;flex-wrap:wrap;align-items:stretch}
.detox .dx-img{flex:1;min-width:240px;min-height:230px;background:url('web-fotos/detox.jpg') center/cover no-repeat,var(--fondo)}
.detox .dx-txt{flex:2;min-width:min(300px,100%);padding:2.6rem 2.4rem;text-align:center}
.detox .dx-tag{display:inline-block;border:1px solid var(--azul);color:var(--azul);
               font-size:.6rem;letter-spacing:2px;text-transform:uppercase;padding:.3rem .9rem;margin-bottom:1.2rem}
.detox h3{font-size:1.05rem;color:var(--azul);text-transform:uppercase;letter-spacing:3px}
.detox h3 .en{display:block;font-size:.66rem;color:var(--gris);letter-spacing:1.6px;margin-top:.35rem}
.detox p{font-size:.88rem;color:var(--tinta);margin:1.2rem auto 1.6rem;max-width:520px}

/* ---------- CONDICIONES ---------- */
.conds{margin-top:2.6rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1.2rem}
.cond{border:1px solid var(--linea);padding:1.5rem 1.4rem}
.cond h4{font-weight:300;font-size:.72rem;color:var(--azul);text-transform:uppercase;letter-spacing:2px;margin-bottom:.7rem}
.cond p,.cond li{font-size:.84rem;line-height:1.7}
.cond li{padding-left:1rem;position:relative}
.cond li::before{content:"·";position:absolute;left:0;color:var(--azul)}

/* ---------- EXTRAS ---------- */
.extras-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:1.2rem}
.ex{border:1px solid var(--linea);background:var(--blanco);padding:1.6rem 1rem;text-align:center}
.ex b{display:block;font-weight:300;font-size:.8rem;color:var(--tinta);text-transform:uppercase;letter-spacing:1.4px;line-height:1.6}
.ex b .en{display:block;color:var(--gris);font-size:.66rem;letter-spacing:1.1px;margin-top:.25rem}
.ex .amt{display:block;color:var(--azul);font-size:1.5rem;margin-top:.8rem}

/* ---------- MANTENIMIENTO (folleto) ---------- */
.m-prices{display:flex;gap:1.4rem;flex-wrap:wrap;margin-bottom:2.6rem}
.m-p{flex:1;min-width:210px;border:1px solid var(--linea);padding:1.4rem .9rem;text-align:center}
.m-p .lbl{display:block;font-size:.68rem;color:var(--gris);text-transform:uppercase;letter-spacing:1.6px;line-height:1.6}
.m-p .lbl em{display:block;font-style:normal;opacity:.8;letter-spacing:1px}
.m-p .val{display:block;margin-top:.8rem;color:var(--azul)}
.m-p .from{font-size:.7rem;letter-spacing:1px;text-transform:uppercase}
.m-p .num{font-size:2.4rem;letter-spacing:-1px}
.m-p .unit{font-size:.8rem;letter-spacing:.6px}
.m-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:2.8rem}
ul{list-style:none}
.m-incl li{font-size:.9rem;line-height:1.95;padding-left:1.1rem;position:relative}
.m-incl li::before{content:"";position:absolute;left:0;top:.66rem;width:0;height:0;
                   border-left:6px solid var(--azul);border-top:3.5px solid transparent;border-bottom:3.5px solid transparent}
.m-incl li .en,.m-otros .en{color:var(--gris)}
.m-otros li{font-size:.86rem;line-height:1.6;display:flex;justify-content:space-between;gap:1rem;
            padding:.42rem 0;border-bottom:1px solid #eef1f4}
.m-otros li:last-child{border-bottom:none}
.m-otros .amt{color:var(--azul);white-space:nowrap}
.m-note{font-size:.74rem;color:var(--gris);text-align:center;letter-spacing:.3px;margin-top:1.3rem}
.zona{margin-top:2.4rem;text-align:center;font-size:.86rem;color:var(--azul);letter-spacing:.5px;line-height:1.8}
.zona .zt{display:block;font-size:.66rem;color:var(--gris);text-transform:uppercase;letter-spacing:2.4px;margin-bottom:.5rem}
.center-cta{text-align:center;margin-top:2.4rem}

/* ---------- QUIÉN SOY ---------- */
.about{display:flex;gap:3rem;align-items:center;flex-wrap:wrap}
.about .photo{flex:1;min-width:min(260px,100%);height:420px;background:url('web-fotos/fede.jpg') center top/cover no-repeat,var(--fondo)}
.about .txt{flex:1.35;min-width:min(290px,100%)}
.about h2{font-size:1.3rem;color:var(--azul);text-transform:uppercase;letter-spacing:4px;margin-bottom:.4rem}
.about h2 .en{display:block;font-size:.66rem;color:var(--gris);letter-spacing:2px;margin-top:.4rem}
.about p{font-size:.92rem;margin-top:1.1rem}
.about .btn{margin-top:1.8rem}
.creds{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.creds span{border:1px solid var(--linea);background:var(--blanco);font-size:.62rem;letter-spacing:1.4px;text-transform:uppercase;padding:.3rem .7rem;color:var(--azul)}

/* ---------- DISPONIBILIDAD ---------- */
.cal{border:1px solid var(--linea);background:var(--blanco);position:relative;padding-top:min(75%,600px)}
.cal iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- CONTACTO ---------- */
.contact{text-align:center}
.c-links{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.c-item{border:1px solid var(--linea);padding:1.4rem 1.8rem;min-width:210px;text-decoration:none;transition:.15s}
.c-item:hover{border-color:var(--azul)}
.c-item .k{display:block;font-size:.62rem;color:var(--gris);text-transform:uppercase;letter-spacing:2px}
.c-item .v{display:block;color:var(--azul);font-size:1rem;letter-spacing:.6px;margin-top:.5rem}
.phone-big{font-size:2rem;color:var(--azul);letter-spacing:1px;display:block;margin:1.4rem 0 .3rem;text-decoration:none}
.ig{font-size:.8rem;letter-spacing:1.4px;color:var(--tinta)}

footer{border-top:1px solid var(--linea);text-align:center;padding:2rem 5% 5rem;
       font-size:.68rem;color:var(--gris);text-transform:uppercase;letter-spacing:1.8px;line-height:2}
footer .legal{margin-top:.8rem;text-transform:none;letter-spacing:.6px}
footer .legal a{color:var(--gris)}
footer .legal a:hover{color:var(--azul)}

.wa-float{position:fixed;bottom:24px;right:24px;background:#25d366;color:#fff;width:56px;height:56px;
          border-radius:50%;display:flex;align-items:center;justify-content:center;
          text-decoration:none;box-shadow:0 3px 14px rgba(0,0,0,.25);z-index:99}
.wa-float svg{width:30px;height:30px;fill:#fff}

@media(max-width:1120px){
  nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--linea);
         flex-direction:column;padding:1.4rem;gap:1.2rem}
  nav ul.open{display:flex}
  .nav-toggle{display:block}
}
@media(max-width:760px){
  .framed{padding:2.2rem 1.2rem}
  section{padding:3.4rem 5%}
  header h1{letter-spacing:5px;padding-left:5px}
  .detox .dx-txt{padding:2rem 1.2rem}
  .phone-big{font-size:1.6rem}
  .c-item{min-width:0;width:100%}
  .cal{padding-top:0;height:520px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* ---------- PÁGINAS INTERIORES ---------- */
.sub-page main{padding-top:58px}
.page-intro{text-align:center;padding:4rem 5% 0}
.page-intro .btn{margin-top:1.4rem}
nav a[aria-current="page"]{color:var(--azul);border-bottom:1px solid var(--azul);padding-bottom:2px}
.foot-nav{margin-top:.6rem;text-transform:none;letter-spacing:.6px}
.foot-nav a{color:var(--gris);margin:0 .4rem}
.foot-nav a:hover{color:var(--azul)}
.more{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1.6rem}
.more a{display:block;border:1px solid var(--linea);background:var(--blanco);padding:2rem 1.6rem;text-decoration:none;text-align:center;transition:.15s}
.more a:hover{border-color:var(--azul)}
.more h3{font-size:.95rem;color:var(--azul);text-transform:uppercase;letter-spacing:2px}
.more p{font-size:.86rem;margin-top:.7rem}
.more .go{display:inline-block;margin-top:1rem;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--azul)}
/* ---------- IDIOMAS (enlaces) ---------- */
a.lang-btn{display:inline-block;text-decoration:none;line-height:1.4}
a.lang-btn[aria-current="true"]{border-color:var(--azul);background:var(--azul);color:#fff}
a.lang-btn.suggest{border-color:var(--azul);color:var(--azul)}
