  :root{
    --navy:#0A3352;
    --navy-deep:#072A44;
    --cream:#F7EDE2;
    --cream-warm:#FBF6EF;
    --cream-dim:#D9CCBA;
    --ink:#17324A;
    --ink-soft:rgba(10,51,82,0.70);
    --line: rgba(10,51,82,0.16);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Jost', sans-serif;
    font-size:16px;
    line-height:1.65;
    font-weight:400;
  }
  h1,h2,h3{
    font-family:'Josefin Sans', sans-serif;
    font-weight:500;
    color:var(--navy);
    letter-spacing:0.01em;
    margin:0;
  }
  .stamp{
    font-family:'Josefin Sans', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.22em;
    font-size:0.72rem;
    font-weight:500;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1080px; margin:0 auto; padding:0 6vw;}


  /* ---------- BRAND LOCKUP ---------- */
  .logo-lockup{
    display:inline-flex; align-items:flex-end;
    font-family:'Quicksand', sans-serif; font-weight:600;
    line-height:1; color:var(--cream); --gap:var(--navy-deep);
    text-transform:none; letter-spacing:0;
  }
  .logo-lockup .vmark{height:0.74em; width:auto; display:block; margin-right:0.07em; margin-bottom:0.045em; flex:0 0 auto;}
  .logo-lockup .word{display:block; padding-bottom:0.02em;}
  .nav .brand.logo-lockup{font-size:1.9rem; text-transform:none; letter-spacing:0; gap:0;}
  .hero-logo{display:flex; flex-direction:column; align-items:center; margin-bottom:2rem;}
  .hero-mark{width:min(150px, 38vw); height:auto; color:var(--cream); --gap:var(--navy-deep); display:block; margin-bottom:1.3rem; filter:drop-shadow(0 8px 18px rgba(0,0,0,0.3));}
  .hero-logo .logo-lockup{font-size:clamp(2.6rem, 8vw, 3.4rem);}
  .hero-tagline{
    font-family:'Jost', sans-serif; font-weight:300;
    letter-spacing:0.34em; text-indent:0.34em;
    font-size:0.92rem; color:var(--cream);
    margin-top:0.9rem;
  }
  footer .foot-mark{width:40px; height:40px; display:block; margin:0 auto 1rem;}

  /* ---------- NAV ---------- */
  .nav{
    position:absolute; top:0; left:0; right:0; z-index:10;
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
    row-gap:0.7rem;
    padding:1.7rem 6vw;
  }
  .nav .brand{
    display:flex; align-items:center; gap:0.65rem;
    font-family:'Josefin Sans', sans-serif; font-weight:500;
    text-transform:uppercase; letter-spacing:0.14em;
    color:var(--cream); font-size:0.98rem;
    white-space:nowrap;
  }
  .nav .brand img{height:22px; width:auto; display:block;}
  .nav-right{display:flex; align-items:center; gap:0.55rem;}
  .lang-flag{
    width:24px; height:24px; border-radius:50%;
    overflow:hidden; flex:0 0 auto;
    border:1px solid rgba(247,237,226,0.4);
    box-shadow:0 2px 6px rgba(0,0,0,0.2);
  }
  .lang-flag svg{width:100%; height:100%; display:block;}
  .lang-switcher{
    display:flex; gap:0.15rem;
    background:rgba(247,237,226,0.08);
    border:1px solid rgba(247,237,226,0.28);
    border-radius:999px;
    padding:0.2rem;
  }
  .lang-switcher-old{
    font-family:'Josefin Sans', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.08em;
    padding:0.35rem 0.6rem;
    border-radius:999px;
    border:none;
    background:transparent;
    color:rgba(247,237,226,0.65);
    cursor:pointer;
    transition:background .2s, color .2s;
  }
  .lang-switcher button:hover{color:var(--cream);}
  .lang-switcher button.active{background:var(--cream); color:var(--navy-deep); font-weight:600;}
  .nav a.ig-link{
    display:flex; align-items:center; gap:0.45rem;
    color:var(--cream);
    font-family:'Josefin Sans', sans-serif;
    font-size:0.78rem;
    letter-spacing:0.04em;
    border:1px solid rgba(247,237,226,0.35);
    padding:0.45rem 0.9rem;
    border-radius:999px;
    transition:border-color .2s, background .2s;
  }
  .nav a.ig-link:hover{background:rgba(247,237,226,0.1); border-color:var(--cream);}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:
      radial-gradient(120% 90% at 50% 0%, rgba(10,51,82,0.55) 0%, rgba(7,42,68,0.80) 45%, rgba(5,30,50,0.94) 100%);
    color:var(--cream);
    padding:9rem 6vw 0;
    overflow:hidden;
  }
  .hero-grid{
    max-width:640px; margin:0 auto;
    display:flex; flex-direction:column; align-items:center;
    text-align:center;
    position:relative; z-index:2;
    padding-bottom:5rem;
  }
  .hero-logo{margin-bottom:1.8rem;}
  .hero-logo img{width:min(180px, 50vw); height:auto; filter:drop-shadow(0 6px 16px rgba(0,0,0,0.35));}
  .hero-eyebrow{
    display:inline-flex; align-items:center; gap:0.6rem;
    color:rgba(247,237,226,0.85);
    margin-bottom:1.4rem;
  }
  .hero-eyebrow::before{content:"";width:24px;height:1px;background:rgba(247,237,226,0.6);}
  .hero-eyebrow::after{content:"";width:24px;height:1px;background:rgba(247,237,226,0.6);}
  .hero h1{
    font-size:clamp(2.2rem, 4.4vw, 3.4rem);
    line-height:1.15;
    font-weight:400;
    color:var(--cream);
    margin-bottom:1.2rem;
  }
  .hero h1 span{font-style:italic; font-weight:300;}
  .hero p.lead{
    font-size:1.05rem;
    color:var(--cream-dim);
    max-width:460px;
    margin:0 auto 2.2rem;
  }
  .cta-row{display:flex; flex-wrap:wrap; gap:0.9rem; justify-content:center;}
  .btn{
    font-family:'Josefin Sans', sans-serif;
    font-weight:500;
    letter-spacing:0.05em;
    font-size:0.9rem;
    padding:0.85rem 1.6rem;
    border-radius:999px;
    display:inline-flex; align-items:center; gap:0.5rem;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--cream); color:var(--navy-deep); box-shadow:0 6px 18px rgba(15,32,50,0.3);}
  .btn-primary:hover{box-shadow:0 10px 22px rgba(15,32,50,0.38);}
  .btn-outline{border:1.5px solid rgba(247,237,226,0.5); color:var(--cream);}
  .btn-outline:hover{border-color:var(--cream); background:rgba(247,237,226,0.08);}

  .wave-divider{display:block; width:100%; position:relative; z-index:1; margin-top:-2px;}

  /* ---------- SECTION SHARED ---------- */
  section{padding:4.7rem 0;}
  .eyebrow{
    font-family:'Josefin Sans', sans-serif;
    font-size:0.72rem;
    letter-spacing:0.22em;
    font-weight:500;
    text-transform:uppercase;
    color:var(--navy);
    opacity:0.75;
    display:block;
    margin-bottom:0.8rem;
  }
  .section-head{max-width:600px; margin-bottom:2.8rem;}
  .section-head h2{font-size:clamp(1.55rem,3vw,2.1rem); font-weight:400; margin-bottom:0.9rem;}
  .section-head p{color:var(--ink-soft); margin:0;}

  /* ---------- VALUE CARDS ---------- */
  .cards{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1.4rem;
  }
  .card{
    background:var(--cream-warm);
    border:1px solid var(--line);
    border-radius:10px;
    padding:2.1rem 1.8rem;
    position:relative;
  }
  .card .icon{
    width:46px; height:46px;
    border-radius:50%;
    background:var(--navy);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:1.4rem;
  }
  .card .icon svg{width:22px; height:22px; stroke:var(--cream);}
  .card h3{font-size:1.1rem; font-weight:500; margin-bottom:0.6rem;}
  .card p{color:var(--ink-soft); margin:0; font-size:0.94rem;}

  .also-row{
    margin-top:1.9rem;
    padding-top:1.6rem;
    border-top:1px solid var(--line);
    display:flex; flex-wrap:wrap; align-items:center; gap:0.7rem 1rem;
    color:var(--ink-soft); font-size:0.92rem;
  }
  .also-row strong{color:var(--navy); font-family:'Josefin Sans',sans-serif; font-weight:500; letter-spacing:0.03em;}
  .chip{
    background:transparent; color:var(--navy);
    border:1px solid var(--line);
    padding:0.35rem 0.9rem; border-radius:999px;
    font-size:0.82rem; font-weight:500;
  }

  /* ---------- SPOTS ---------- */
  .spots{background:var(--navy-deep); color:var(--cream);}
  .spots .eyebrow{color:rgba(247,237,226,0.75); opacity:1;}
  .spots .section-head h2{color:var(--cream);}
  .spots .section-head p{color:var(--cream-dim);}
  .spot-list{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;
  }
  .spot{
    background:rgba(247,237,226,0.05);
    border:1px solid rgba(247,237,226,0.14);
    border-radius:10px;
    overflow:hidden;
  }
  .spot-photo{width:100%; height:170px; overflow:hidden;}
  .spot-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
  .spot:hover .spot-photo img{transform:scale(1.06);}
  .spot-body{padding:1.6rem 1.6rem 1.8rem;}
  .spot .tag{
    font-family:'Josefin Sans', sans-serif;
    font-size:0.7rem;
    color:var(--cream-dim);
    letter-spacing:0.16em;
    font-weight:500;
    text-transform:uppercase;
    display:block; margin-bottom:0.7rem;
  }
  .spot h3{color:var(--cream); font-size:1.15rem; font-weight:500; margin-bottom:0.5rem;}
  .spot p{color:var(--cream-dim); font-size:0.92rem; margin:0;}

  /* ---------- REELS MARQUEE ---------- */
  .reels{background:var(--cream-warm);}
  .reels .section-head{margin-bottom:2rem;}
  .reel-marquee{
    width:100%;
    overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
    mask-image:linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
  }
  .reel-track{
    display:flex;
    gap:1.1rem;
    width:max-content;
    animation:reelScroll 42s linear infinite;
  }
  .reel-marquee:hover .reel-track{animation-play-state:paused;}
  @keyframes reelScroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  .reel-card{
    position:relative;
    flex:0 0 auto;
    width:150px;
    height:266px;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(15,32,50,0.16);
    background:var(--navy);
  }
  .reel-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
  .reel-card:hover img{transform:scale(1.07);}
  .reel-card .reel-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(15,32,50,0.05) 45%, rgba(15,32,50,0.65) 100%);
  }
  .reel-card .play-icon{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:40px; height:40px; border-radius:50%;
    background:rgba(247,237,226,0.92);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 12px rgba(0,0,0,0.22);
  }
  .reel-card .play-icon svg{width:15px; height:15px; fill:var(--navy-deep); margin-left:2px;}
  .reel-card .ig-mark{
    position:absolute; top:10px; right:10px;
    width:22px; height:22px; border-radius:7px;
    background:rgba(15,32,50,0.55);
    display:flex; align-items:center; justify-content:center;
  }
  .reel-card .ig-mark svg{width:12px; height:12px; stroke:var(--cream);}
  .reels-cta{text-align:center; margin-top:2.2rem;}

  /* ---------- KITETRIPS BAND ---------- */
  .trips{
    background:linear-gradient(135deg, var(--cream-warm) 0%, var(--cream) 100%);
  }
  .trips-inner{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:2.5rem; align-items:center;
  }
  .trips h2{color:var(--navy); font-weight:400; font-size:clamp(1.55rem,3vw,2.05rem); margin-bottom:1.1rem;}
  .trips p{color:var(--ink-soft); margin:0 0 1.6rem;}
  .trips ul{margin:0; padding:0; list-style:none;}
  .trips li{
    display:flex; align-items:flex-start; gap:0.7rem;
    margin-bottom:0.9rem;
    color:var(--navy);
    font-weight:400;
    font-size:0.95rem;
  }
  .trips li svg{width:18px; height:18px; flex-shrink:0; margin-top:2px; stroke:var(--navy);}
  .trips-card{
    background:
      linear-gradient(rgba(15,32,50,0.88), rgba(15,32,50,0.93));
    border-radius:12px;
    padding:2.2rem;
    color:var(--cream);
  }
  .trips-card .stamp{color:var(--cream-dim); display:block; margin-bottom:0.9rem;}
  .trips-card h3{color:var(--cream); font-weight:500; font-size:1.25rem; margin-bottom:0.7rem;}
  .trips-card p{color:var(--cream-dim); font-size:0.92rem; margin:0 0 1.4rem;}

  /* ---------- CONTACT ---------- */
  .contact{
    background:var(--cream);
    text-align:center;
  }
  .contact .section-head{margin:0 auto 2.2rem; text-align:center;}
  .contact-card{
    max-width:640px; margin:0 auto;
    background:var(--navy-deep);
    border-radius:14px;
    padding:3.1rem 2.5rem;
    color:var(--cream);
    position:relative;
    overflow:hidden;
  }
  .contact-card::after{
    content:"";
    position:absolute; right:-40px; bottom:-40px;
    width:180px; height:180px;
    border:1.5px dashed rgba(247,237,226,0.22);
    border-radius:50%;
  }
  .contact-card h2{color:var(--cream); font-weight:400; font-size:clamp(1.45rem,3vw,1.95rem); margin-bottom:0.9rem;}
  .contact-card p{color:var(--cream-dim); margin:0 0 1.8rem;}
  .contact-btns{display:flex; flex-wrap:wrap; justify-content:center; gap:0.9rem; position:relative; z-index:2;}

  footer{
    padding:2.4rem 6vw 3rem;
    text-align:center;
    color:var(--ink-soft);
    font-size:0.8rem;
    font-family:'Josefin Sans', sans-serif;
    letter-spacing:0.03em;
  }
  footer a{color:var(--navy); font-weight:500;}

  @media (max-width:820px){
    .cards{grid-template-columns:1fr;}
    .spot-list{grid-template-columns:1fr;}
    .trips-inner{grid-template-columns:1fr;}
    .nav{padding:1.3rem 6vw;}
  }

  /* =========================================================
     v8 — añadidos: logo oficial, idiomas por URL, WhatsApp,
     Cómo llegar, kite camps, cookies, accesibilidad
     ========================================================= */

  /* ---------- LOGO OFICIAL ---------- */
  .nav .brand{gap:0;}
  .nav .brand svg{height:30px; width:auto; display:block; color:var(--cream); --gap:var(--navy-deep);}
  .hero-logo .hero-lockup{width:min(300px, 72vw); height:auto; display:block; color:var(--cream); --gap:var(--navy-deep);}
  .hero-mark{color:var(--cream); --gap:var(--navy-deep);}

  /* ---------- SELECTOR DE IDIOMA (enlaces) ---------- */
  .lang-switcher a{
    font-family:'Josefin Sans', sans-serif;
    font-size:0.72rem; letter-spacing:0.08em;
    padding:0.35rem 0.55rem; border-radius:999px;
    color:rgba(247,237,226,0.7);
    transition:background .2s, color .2s;
    line-height:1.2;
  }
  .lang-switcher a:hover{color:var(--cream);}
  .lang-switcher a[aria-current="true"]{background:var(--cream); color:var(--navy-deep); font-weight:600;}

  /* ---------- BOTONES ---------- */
  .btn svg{flex:0 0 auto;}
  .btn-wa-icon{width:18px; height:18px;}

  /* WhatsApp flotante */
  .wa-float{
    position:fixed; right:18px; bottom:18px; z-index:50;
    width:58px; height:58px; border-radius:50%;
    background:#25D366; color:#fff;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 22px rgba(7,42,68,0.35);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .wa-float:hover{transform:translateY(-2px) scale(1.04); box-shadow:0 12px 26px rgba(7,42,68,0.42);}
  .wa-float svg{width:30px; height:30px;}
  body.has-cookie-bar .wa-float{bottom:calc(var(--cookie-h, 0px) + 18px);}

  /* ---------- CÓMO LLEGAR ---------- */
  .getting{background:var(--cream);}
  .route-grid{
    display:grid; grid-template-columns:repeat(5, 1fr); gap:1rem;
  }
  .route{
    background:var(--cream-warm);
    border:1px solid var(--line);
    border-radius:10px;
    padding:1.3rem 1.2rem 1.2rem;
  }
  .route .city{font-family:'Josefin Sans', sans-serif; font-size:1.08rem; color:var(--navy); font-weight:500; display:block; margin-bottom:0.15rem;}
  .route .country{font-size:0.78rem; color:var(--ink-soft); display:block; margin-bottom:0.9rem; letter-spacing:0.02em;}
  .route .meta{display:flex; flex-direction:column; gap:0.15rem; font-size:0.86rem; color:var(--ink);}
  .route .tagd{
    align-self:flex-start;
    font-family:'Josefin Sans', sans-serif; font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase;
    background:var(--navy); color:var(--cream); border-radius:999px; padding:0.22rem 0.6rem 0.16rem; margin-bottom:0.45rem;
  }
  .route-notes{
    margin-top:1.4rem;
    display:grid; grid-template-columns:1fr 1fr; gap:1rem;
  }
  .note{
    display:flex; gap:0.9rem; align-items:flex-start;
    border-top:1px solid var(--line); padding-top:1.1rem;
  }
  .note .icon{
    width:38px; height:38px; border-radius:50%; background:var(--navy);
    display:flex; align-items:center; justify-content:center; flex:0 0 auto;
  }
  .note .icon svg{width:18px; height:18px; stroke:var(--cream);}
  .note h3{font-size:1rem; font-weight:500; margin-bottom:0.25rem;}
  .note p{margin:0; color:var(--ink-soft); font-size:0.92rem;}
  .fineprint{margin-top:1.4rem; font-size:0.78rem; color:var(--ink-soft);}

  /* ---------- KITE CAMPS ---------- */
  .camp{
    margin-top:2.6rem;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--cream-warm);
    padding:1.8rem 2rem;
    display:grid; grid-template-columns:1fr auto; gap:1.2rem 2rem; align-items:center;
  }
  .camp h3{font-size:1.2rem; font-weight:500; margin-bottom:0.4rem;}
  .camp p{margin:0; color:var(--ink-soft); font-size:0.94rem;}
  .btn-navy{background:var(--navy); color:var(--cream); box-shadow:0 6px 18px rgba(15,32,50,0.22);}
  .btn-navy:hover{box-shadow:0 10px 22px rgba(15,32,50,0.3);}

  /* ---------- CONTACTO ---------- */
  .contact-card .btn-outline svg{width:16px; height:16px;}

  /* ---------- FOOTER ---------- */
  footer .foot-mark{color:var(--cream); --gap:var(--navy);}
  .foot-links{margin-top:0.9rem; display:flex; gap:0.4rem 1.2rem; justify-content:center; flex-wrap:wrap;}
  .foot-links a, .foot-links button{
    color:var(--ink-soft); font-weight:400; font:inherit; background:none; border:0; padding:0; cursor:pointer;
    text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(10,51,82,0.3);
  }
  .foot-links a:hover, .foot-links button:hover{color:var(--navy);}

  /* ---------- COOKIES ---------- */
  .cookie-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:var(--navy-deep); color:var(--cream);
    border-top:1px solid rgba(247,237,226,0.18);
    box-shadow:0 -10px 30px rgba(7,42,68,0.25);
    padding:1.1rem 6vw;
    display:flex; align-items:center; gap:1rem 1.6rem; flex-wrap:wrap; justify-content:space-between;
    font-size:0.88rem; line-height:1.5;
  }
  .cookie-bar[hidden]{display:none;}
  .cookie-bar p{margin:0; max-width:680px; color:var(--cream-dim);}
  .cookie-bar a{color:var(--cream); text-decoration:underline; text-underline-offset:3px;}
  .cookie-actions{display:flex; gap:0.6rem; flex-wrap:wrap;}
  .cookie-actions button{
    font-family:'Josefin Sans', sans-serif; font-size:0.85rem; letter-spacing:0.04em;
    padding:0.65rem 1.25rem; border-radius:999px; cursor:pointer;
    border:1.5px solid rgba(247,237,226,0.5); background:transparent; color:var(--cream);
  }
  .cookie-actions button.accept{background:var(--cream); color:var(--navy-deep); border-color:var(--cream); font-weight:600;}

  /* ---------- ACCESIBILIDAD ---------- */
  a:focus-visible, button:focus-visible{outline:2px solid #F2B84B; outline-offset:3px; border-radius:6px;}
  .skip{position:absolute; left:-999px; top:8px; z-index:100; background:var(--cream); color:var(--navy-deep); padding:0.6rem 1rem; border-radius:8px;}
  .skip:focus{left:8px;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reel-track{animation:none;}
    .reel-marquee{overflow-x:auto;}
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    .route-grid{grid-template-columns:repeat(3, 1fr);}
  }
  @media (max-width:820px){
    .route-notes{grid-template-columns:1fr;}
    .camp{grid-template-columns:1fr;}
  }
  @media (max-width:640px){
    .route-grid{grid-template-columns:1fr 1fr;}
    .nav{justify-content:center; flex-direction:column; gap:0.8rem;}
    .nav .ig-link .ig-handle{display:none;}
    .nav a.ig-link{padding:0.45rem 0.6rem;}
    .contact-card{padding:2.4rem 1.4rem;}
    .contact-btns .btn{width:100%; justify-content:center;}
    .camp{padding:1.5rem 1.3rem;}
  }

  /* ---------- PÁGINAS LEGALES ---------- */
  .legal-top{background:var(--navy-deep); padding:1.4rem 6vw; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;}
  .legal-top a.back{color:var(--cream); font-family:'Josefin Sans',sans-serif; font-size:0.85rem; letter-spacing:0.04em;}
  .legal{max-width:760px; margin:0 auto; padding:3.2rem 6vw 4rem;}
  .legal h1{font-size:clamp(1.7rem,4vw,2.3rem); font-weight:400; margin-bottom:0.4rem;}
  .legal h2{font-size:1.15rem; font-weight:500; margin:2.2rem 0 0.6rem;}
  .legal p, .legal li{color:var(--ink); font-size:0.98rem;}
  .legal ul{padding-left:1.2rem;}
  .legal .updated{color:var(--ink-soft); font-size:0.85rem; margin-bottom:2rem;}
  .legal a{color:var(--navy); text-decoration:underline; text-underline-offset:3px;}

  /* ---------- HERO CON VIDEO ---------- */
  .hero{background-color:var(--navy-deep); background-position:center; background-size:cover; background-repeat:no-repeat;}
  .hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
  .hero::before{
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:radial-gradient(120% 90% at 50% 0%, rgba(10,51,82,0.40) 0%, rgba(7,42,68,0.66) 45%, rgba(5,30,50,0.90) 100%);
  }
  .hero .wave-divider{z-index:2;}
  .hero .nav-spacer{display:none;}
  @media (prefers-reduced-motion: reduce){ .hero-video{display:none;} }
  .spot-photo{height:190px;}
  .hero .wave-divider{width:calc(100% + 12vw); max-width:none; margin-left:-6vw; margin-bottom:-1px;}

  /* ---------- CLASES ---------- */
  .classes{background:var(--cream-warm);}
  .classes .card{background:var(--cream);}
  .lvl-num{font-family:'Josefin Sans',sans-serif; font-size:1.15rem; font-weight:600; color:var(--cream); line-height:1; padding-top:3px;}
  .cls-cta{margin-top:2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem 2rem; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:1.6rem;}
  .cls-cta p{margin:0; color:var(--ink); max-width:520px;}
  @media (max-width:640px){ .cls-cta .btn{width:100%; justify-content:center;} }

  /* ---------- SPOTS: escuela + destinos de kitetrip ---------- */
  .spot-list{grid-template-columns:1.25fr 1fr; grid-template-rows:auto auto;}
  .spot-main{grid-row:1 / span 2; display:flex; flex-direction:column;}
  .spot-main .spot-photo{height:auto; flex:1 1 auto; min-height:260px;}
  .spot-trip{display:flex; gap:1.1rem; align-items:flex-start; padding:1.6rem;}
  .spot-trip .spot-body{padding:0;}
  .spot-ico{width:42px; height:42px; border-radius:50%; border:1px solid rgba(247,237,226,0.3); display:flex; align-items:center; justify-content:center; flex:0 0 auto;}
  .spot-ico svg{width:20px; height:20px; stroke:var(--cream);}
  @media (max-width:820px){
    .spot-list{grid-template-columns:1fr;}
    .spot-main{grid-row:auto;}
    .spot-main .spot-photo{min-height:220px;}
  }
