:root{
      --negro:#050505;
      --negro-suave:#0a0a0a;
      --blanco:#f7f1e7;
      --dorado:#d8a84e;
      --dorado-claro:#efc46f;
      --dorado-oscuro:#9d681c;
      --texto:#f2eee7;
    }

    *{
      margin:0;
      padding:0;
      box-sizing:border-box;
    }

    html{
      scroll-behavior:smooth;
    }

    body{
      background:var(--negro);
      color:var(--blanco);
      font-family:"Montserrat", Arial, sans-serif;
      overflow-x:hidden;
    }

    /* =========================
       ENCABEZADO
    ========================= */
    .header{
      width:100%;
      height:88px;
      position:fixed;
      top:0;
      left:0;
      z-index:1000;
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:0 2%;
      background:rgba(0,0,0,.97);
      border-bottom:1px solid rgba(214,164,71,.10);
    }

    .logo{
      color:#f7f4ed;
      text-decoration:none;
      text-transform:uppercase;
      letter-spacing:7px;
      font-size:26px;
      font-weight:400;
      white-space:nowrap;
    }

    .logo span{
      color:var(--dorado);
    }

    .nav{
      display:flex;
      align-items:center;
      gap:48px;
      height:100%;
    }

    .nav a{
      position:relative;
      color:#f7f4ed;
      text-decoration:none;
      text-transform:uppercase;
      letter-spacing:1.4px;
      font-size:15px;
      font-weight:500;
      transition:.25s ease;
      padding:34px 0 29px;
      white-space:nowrap;
    }

    .nav a:hover,
    .nav a.active{
      color:var(--dorado-claro);
    }

    .nav a.active::after,
    .nav a:hover::after{
      content:"";
      position:absolute;
      left:50%;
      bottom:20px;
      width:33px;
      height:2px;
      transform:translateX(-50%);
      background:var(--dorado);
    }

    .menu-btn{
      display:none;
      width:44px;
      height:44px;
      border:1px solid rgba(216,168,78,.5);
      border-radius:50%;
      background:transparent;
      color:var(--dorado-claro);
      font-size:24px;
      cursor:pointer;
    }

    /* =========================
       MAPA PRINCIPAL
    ========================= */
    .map-hero{
      width:100%;
      height:100vh;
      min-height:700px;
      padding-top:88px;
      position:relative;
      overflow:hidden;
      display:flex;
      align-items:flex-end;
      justify-content:center;
      background:
        linear-gradient(
          to bottom,
          rgba(0,0,0,.03) 0%,
          rgba(0,0,0,.02) 56%,
          rgba(0,0,0,.55) 82%,
          rgba(0,0,0,.92) 100%
        ),
        url("../../pic/destino_mapa.png");
      background-size:cover;
      background-repeat:no-repeat;
      background-position:center 35%;
    }

    .map-hero::before{
      content:"";
      position:absolute;
      inset:88px 0 0;
      pointer-events:none;
      background:
        linear-gradient(90deg, rgba(0,0,0,.25), transparent 18%, transparent 82%, rgba(0,0,0,.25)),
        radial-gradient(circle at center, transparent 52%, rgba(0,0,0,.18) 100%);
    }

    .map-brand{
      position:relative;
      z-index:2;
      width:min(920px,86%);
      margin-bottom:62px;
      text-align:center;
      animation:mapBrandReveal 1.15s cubic-bezier(.22,.8,.25,1) both;
    }

    .map-brand h1{
      margin:0;
      color:#f8f3eb;
      font-family:"Cormorant Garamond", Georgia, serif;
      font-size:clamp(52px,4.8vw,88px);
      font-weight:400;
      line-height:1;
      letter-spacing:12px;
      text-transform:uppercase;
      text-shadow:0 8px 28px rgba(0,0,0,.9);
      white-space:nowrap;
    }

    .map-brand-line{
      width:min(610px,76%);
      margin:18px auto 0;
      display:flex;
      align-items:center;
      gap:15px;
      color:var(--dorado);
    }

    .map-brand-line::before,
    .map-brand-line::after{
      content:"";
      flex:1;
      height:1px;
      background:linear-gradient(90deg,transparent,rgba(216,168,78,.9));
    }

    .map-brand-line::after{
      background:linear-gradient(90deg,rgba(216,168,78,.9),transparent);
    }

    .map-brand-line span{
      font-size:24px;
      line-height:1;
      text-shadow:0 0 16px rgba(216,168,78,.55);
    }

    .scroll-indicator{
      position:absolute;
      z-index:3;
      left:50%;
      bottom:18px;
      width:34px;
      height:52px;
      transform:translateX(-50%);
      border:1px solid rgba(239,196,111,.65);
      border-radius:20px;
    }

    .scroll-indicator span{
      position:absolute;
      top:9px;
      left:50%;
      width:5px;
      height:9px;
      transform:translateX(-50%);
      border-radius:5px;
      background:var(--dorado-claro);
      animation:scrollDot 1.7s ease-in-out infinite;
    }

    @keyframes mapBrandReveal{
      from{
        opacity:0;
        transform:translateY(28px);
      }
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes scrollDot{
      0%{
        opacity:0;
        transform:translate(-50%,0);
      }
      35%{
        opacity:1;
      }
      100%{
        opacity:0;
        transform:translate(-50%,20px);
      }
    }


    @media (max-width:940px){
      .map-hero{
        min-height:620px;
        padding-top:76px;
        background-position:center 32%;
      }

      .map-hero::before{
        inset:76px 0 0;
      }

      .map-brand{
        margin-bottom:52px;
      }

      .map-brand h1{
        font-size:clamp(42px,6vw,68px);
        letter-spacing:7px;
        white-space:nowrap;
      }
    }

    @media (max-width:600px){
      .map-hero{
        min-height:560px;
        background-position:center 28%;
      }

      .map-brand{
        width:92%;
        margin-bottom:48px;
      }

      .map-brand h1{
        font-size:clamp(28px,8.2vw,42px);
        letter-spacing:3px;
        white-space:nowrap;
      }

      .map-brand-line{
        width:82%;
      }
    }

    /* =========================
       PRESENTACIÓN
    ========================= */
    .intro-section{
      position:relative;
      overflow:hidden;
      min-height:100vh;
      scroll-margin-top:88px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:
        radial-gradient(circle at center top, rgba(216,168,78,.08), transparent 32%),
        linear-gradient(180deg, #050505 0%, #080808 55%, #030303 100%);
      padding:120px 28px 70px;
      border-top:1px solid rgba(216,168,78,.14);
    }

    .intro-content{
      width:min(1080px,100%);
      margin:auto;
      text-align:center;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      transform:translateY(-8px);
    }

    .intro-section h1{
      font-family:"Cormorant Garamond", Georgia, serif;
      font-size:clamp(72px, 6.6vw, 108px);
      line-height:.9;
      font-weight:500;
      color:#fffaf2;
      letter-spacing:-2px;
      text-shadow:0 8px 28px rgba(0,0,0,.7);
      margin-bottom:4px;
    }

    .intro-subtitle{
      position:relative;
      font-family:"Cormorant Garamond", Georgia, serif;
      font-size:clamp(42px, 4vw, 64px);
      line-height:1;
      font-weight:500;
      color:#e3b65e;
      text-shadow:0 8px 28px rgba(0,0,0,.75);
      margin-bottom:24px;
    }

    .intro-subtitle::after{
      content:"";
      position:absolute;
      left:0;
      bottom:-4px;
      width:100%;
      height:2px;
      background:linear-gradient(90deg, transparent, rgba(239,196,111,.85), transparent);
      transform:scaleX(0);
      transform-origin:center;
      animation:subtitleLine 1.1s ease 1.05s forwards;
    }

    .ornament{
      width:min(560px,74vw);
      display:flex;
      align-items:center;
      justify-content:center;
      gap:17px;
      margin:0 auto 18px;
      color:var(--dorado);
    }

    .ornament::before,
    .ornament::after{
      content:"";
      flex:1;
      height:1px;
      background:linear-gradient(90deg, transparent, var(--dorado));
      opacity:.85;
    }

    .ornament::after{
      background:linear-gradient(90deg, var(--dorado), transparent);
    }

    .ornament-star{
      font-family:Georgia, serif;
      font-size:43px;
      line-height:1;
      text-shadow:0 0 18px rgba(216,168,78,.35);
    }

    .question{
      font-family:"Cormorant Garamond", Georgia, serif;
      color:#f5f0e8;
      font-size:clamp(25px, 1.9vw, 31px);
      line-height:1.2;
      margin-bottom:3px;
      text-shadow:0 4px 15px rgba(0,0,0,.8);
    }

    .answer{
      font-family:"Cormorant Garamond", Georgia, serif;
      color:#f0c776;
      font-size:clamp(29px, 2.2vw, 36px);
      line-height:1.1;
      font-weight:700;
      margin-bottom:18px;
      text-shadow:0 4px 16px rgba(0,0,0,.85);
    }

    .benefits{
      width:min(900px,100%);
      display:flex;
      flex-direction:column;
      gap:12px;
      margin-bottom:24px;
    }

    .benefit{
      display:grid;
      grid-template-columns:44px 1fr;
      align-items:center;
      gap:16px;
      text-align:left;
      color:#f4f0e9;
      font-family:"Cormorant Garamond", Georgia, serif;
      font-size:clamp(22px, 1.65vw, 26px);
      line-height:1.32;
      text-shadow:0 4px 16px rgba(0,0,0,.9);
      padding:14px 10px;
      border-bottom:1px solid rgba(216,168,78,.30);
    }

    .benefit-icon{
      color:#f3bd4f;
      font-size:31px;
      line-height:1;
      filter:drop-shadow(0 0 8px rgba(226,170,69,.45));
      margin-top:2px;
      text-align:center;
    }

    .benefit strong{
      color:#efbd62;
      font-weight:700;
    }

    .cta{
      min-width:430px;
      height:86px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:22px;
      padding:0 46px;
      border-radius:999px;
      border:1.5px solid #efc15d;
      background:linear-gradient(180deg, rgba(223,169,74,.95), rgba(164,104,23,.96));
      color:white;
      text-decoration:none;
      text-transform:uppercase;
      font-size:25px;
      font-weight:600;
      letter-spacing:.4px;
      box-shadow:0 14px 38px rgba(172,105,20,.32), inset 0 1px 0 rgba(255,255,255,.30);
      transition:.25s ease;
    }

    .cta:hover{
      transform:translateY(-4px);
      box-shadow:0 20px 46px rgba(198,130,30,.43), inset 0 1px 0 rgba(255,255,255,.32);
      filter:brightness(1.08);
    }

    .plane{
      font-size:40px;
      line-height:1;
      transform:rotate(-8deg);
    }

    .bottom-ornament{
      width:min(920px,84vw);
      display:flex;
      align-items:center;
      gap:22px;
      margin-top:26px;
      color:var(--dorado);
    }

    .bottom-ornament::before,
    .bottom-ornament::after{
      content:"";
      flex:1;
      height:1px;
      background:linear-gradient(90deg, transparent, rgba(216,168,78,.75));
    }

    .bottom-ornament::after{
      background:linear-gradient(90deg, rgba(216,168,78,.75), transparent);
    }

    .compass{
      font-family:Georgia, serif;
      font-size:38px;
      line-height:1;
      text-shadow:0 0 15px rgba(216,168,78,.38);
    }


    @media (min-width:1200px) and (max-height:950px){
      .intro-section{
        min-height:100vh;
        padding:105px 28px 48px;
      }

      .intro-content{
        transform:translateY(-6px);
      }

      .intro-section h1{
        font-size:84px;
      }

      .intro-subtitle{
        font-size:50px;
        margin-bottom:16px;
      }

      .ornament{
        margin-bottom:12px;
      }

      .question{
        font-size:25px;
      }

      .answer{
        font-size:30px;
        margin-bottom:12px;
      }

      .benefits{
        gap:8px;
        margin-bottom:16px;
      }

      .benefit{
        font-size:21px;
        padding:10px 8px;
      }

      .cta{
        height:74px;
        min-width:390px;
        font-size:22px;
      }

      .bottom-ornament{
        margin-top:18px;
      }
    }


    /* =========================
       ANIMACIONES DE LETRAS
    ========================= */
    .letter-animate{
      perspective:900px;
    }

    .letter-animate .letter{
      display:inline-block;
      opacity:0;
      transform:translateY(38px) rotateX(75deg) scale(.96);
      transform-origin:center bottom;
      filter:blur(6px);
      will-change:transform, opacity, filter;
    }

    .letter-animate .space{
      display:inline-block;
      width:.28em;
    }

    .intro-section.animar .letter-animate .letter{
      animation-name:letterReveal;
      animation-duration:.78s;
      animation-timing-function:cubic-bezier(.22,.8,.25,1);
      animation-delay:var(--letter-delay, 0s);
      animation-fill-mode:forwards;
    }

    @keyframes letterReveal{
      0%{
        opacity:0;
        transform:translateY(38px) rotateX(75deg) scale(.96);
        filter:blur(6px);
      }
      65%{
        opacity:1;
        transform:translateY(-4px) rotateX(0deg) scale(1.015);
        filter:blur(0);
      }
      100%{
        opacity:1;
        transform:translateY(0) rotateX(0deg) scale(1);
        filter:blur(0);
      }
    }

    .question,
    .answer,
    .benefit,
    .cta,
    .ornament,
    .bottom-ornament{
      opacity:0;
    }

    .question,
    .answer,
    .benefit{
      transform:translateY(24px);
    }

    .ornament,
    .bottom-ornament{
      transform:scaleX(.25);
    }

    .cta{
      transform:translateY(26px) scale(.95);
    }

    .intro-section.animar .ornament{
      animation:ornamentReveal .9s ease 1.28s forwards;
    }

    .intro-section.animar .question{
      animation:fadeUp .8s cubic-bezier(.22,.8,.25,1) 1.55s forwards;
    }

    .intro-section.animar .answer{
      animation:fadeUp .8s cubic-bezier(.22,.8,.25,1) 1.78s forwards;
    }

    .intro-section.animar .benefit:nth-child(1){
      animation:fadeUp .8s cubic-bezier(.22,.8,.25,1) 2.02s forwards;
    }

    .intro-section.animar .benefit:nth-child(2){
      animation:fadeUp .8s cubic-bezier(.22,.8,.25,1) 2.27s forwards;
    }

    .intro-section.animar .cta{
      animation:ctaReveal .9s cubic-bezier(.22,.8,.25,1) 2.55s forwards;
    }

    .intro-section.animar .bottom-ornament{
      animation:ornamentReveal .9s ease 2.82s forwards;
    }

    @keyframes fadeUp{
      from{
        opacity:0;
        transform:translateY(24px);
      }
      to{
        opacity:1;
        transform:translateY(0);
      }
    }

    @keyframes ctaReveal{
      0%{
        opacity:0;
        transform:translateY(26px) scale(.95);
      }
      70%{
        opacity:1;
        transform:translateY(-4px) scale(1.02);
      }
      100%{
        opacity:1;
        transform:translateY(0) scale(1);
      }
    }

    @keyframes ornamentReveal{
      from{
        opacity:0;
        transform:scaleX(.25);
      }
      to{
        opacity:1;
        transform:scaleX(1);
      }
    }

    .cta:hover{
      opacity:1;
      transform:translateY(-4px) scale(1.02);
    }

    @media (prefers-reduced-motion:reduce){
      .letter-animate .letter,
      .question,
      .answer,
      .benefit,
      .cta,
      .ornament,
      .bottom-ornament{
        animation:none !important;
        opacity:1 !important;
        transform:none !important;
        filter:none !important;
      }
    }

    /* =========================
       SECCIONES INFERIORES
    ========================= */
    section:not(.map-hero):not(.intro-section):not(.almas-section){
      padding:100px 7%;
      background:#080808;
    }

    .section-title{
      text-align:center;
      margin-bottom:45px;
    }

    .section-title h2{
      font-family:"Cormorant Garamond", Georgia, serif;
      font-size:52px;
      color:var(--dorado-claro);
      font-weight:500;
    }

    .section-title p{
      margin-top:10px;
      color:#c8bfae;
    }

    .cards{
      width:min(1200px,100%);
      margin:auto;
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:24px;
    }

    .card{
      background:#111;
      border:1px solid rgba(216,168,78,.23);
      border-radius:20px;
      overflow:hidden;
    }

    .card img{
      width:100%;
      height:230px;
      object-fit:cover;
    }

    .card-body{
      padding:24px;
    }

    .card h3{
      color:var(--dorado-claro);
      margin-bottom:10px;
    }

    .card p{
      color:#c8c0b2;
      line-height:1.7;
    }

    footer{
      padding:28px 7%;
      background:#020202;
      text-align:center;
      color:#948b7e;
      border-top:1px solid rgba(216,168,78,.18);
    }

    /* =========================
       TABLET
    ========================= */
    @media (max-width:1180px){
      .header{
        padding:0 4%;
      }

      .logo{
        font-size:21px;
        letter-spacing:4px;
      }

      .nav{
        gap:24px;
      }

      .nav a{
        font-size:13px;
      }

      .intro-content{
        width:min(930px, 100%);
      }
    }

    /* =========================
       MENÚ MÓVIL
    ========================= */
    @media (max-width:940px){
      .header{
        height:76px;
      }

      .menu-btn{
        display:block;
      }

      .nav{
        position:absolute;
        top:76px;
        right:4%;
        width:260px;
        height:auto;
        display:none;
        flex-direction:column;
        align-items:flex-start;
        gap:0;
        padding:12px 22px;
        background:rgba(4,4,4,.98);
        border:1px solid rgba(216,168,78,.30);
        border-radius:0 0 16px 16px;
        box-shadow:0 20px 40px rgba(0,0,0,.45);
      }

      .nav.active{
        display:flex;
      }

      .nav a{
        width:100%;
        padding:15px 0;
      }

      .nav a::after{
        display:none;
      }

      .map-hero{
        height:100vh;
        padding-top:76px;
      }
.intro-section{
        padding-top:72px;
      }

      .intro-section h1{
        font-size:clamp(56px, 10vw, 82px);
      }

      .intro-subtitle{
        font-size:clamp(35px, 6vw, 52px);
      }

      .cta{
        min-width:360px;
        height:84px;
        font-size:23px;
      }

      .cards{
        grid-template-columns:1fr;
      }
    }

    /* =========================
       CELULAR
    ========================= */
    @media (max-width:600px){
      .header{
        padding:0 5%;
      }

      .logo{
        font-size:17px;
        letter-spacing:2.3px;
      }

      .map-hero{
        height:100vh;
        padding-top:76px;
      }
.intro-section{
        padding:58px 18px 44px;
      }

      .intro-content{
        margin-top:0;
      }

      .intro-section h1{
        font-size:50px;
        line-height:.95;
        letter-spacing:-1px;
      }

      .intro-subtitle{
        font-size:34px;
        line-height:1.03;
        margin-top:8px;
        margin-bottom:20px;
      }

      .ornament{
        margin-bottom:16px;
      }

      .ornament-star{
        font-size:33px;
      }

      .question{
        font-size:23px;
      }

      .answer{
        font-size:24px;
        margin-top:5px;
      }

      .benefits{
        gap:14px;
      }

      .benefit{
        grid-template-columns:26px 1fr;
        gap:6px;
        text-align:left;
        font-size:20px;
      }

      .benefit-icon{
        font-size:23px;
      }

      .cta{
        min-width:0;
        width:100%;
        max-width:390px;
        height:74px;
        padding:0 25px;
        gap:14px;
        font-size:20px;
      }

      .plane{
        font-size:31px;
      }

      .bottom-ornament{
        width:94%;
        margin-top:34px;
      }
    }

    @media (max-height:850px) and (min-width:941px){
      .map-hero{
        padding-top:88px;
      }

      .intro-section{
        padding-top:74px;
      }

      .intro-section h1{
        font-size:82px;
      }

      .intro-subtitle{
        font-size:50px;
        margin-bottom:18px;
      }

      .ornament{
        margin-bottom:13px;
      }

      .question{
        font-size:25px;
      }

      .answer{
        font-size:30px;
        margin-bottom:12px;
      }

      .benefits{
        gap:8px;
        margin-bottom:18px;
      }

      .benefit{
        font-size:23px;
      }

      .cta{
        height:78px;
        min-width:385px;
        font-size:23px;
      }

      .bottom-ornament{
        margin-top:25px;
      }
    }

    /* =========================
       BENEFICIOS CENTRADOS
    ========================= */
    .benefits{
      width:min(920px, 100%);
      margin-left:auto;
      margin-right:auto;
      align-items:center;
    }

    .benefit{
      width:100%;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:9px;
      padding:15px 20px;
      text-align:center;
    }

    .benefit-icon{
      display:flex;
      align-items:center;
      justify-content:center;
      width:42px;
      height:42px;
      margin:0 auto;
      font-size:30px;
      text-align:center;
    }

    .benefit p{
      width:100%;
      max-width:820px;
      margin:0 auto;
      text-align:center;
    }

    @media (max-width:600px){
      .benefit{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:8px;
        padding:14px 8px;
        text-align:center;
      }

      .benefit p{
        max-width:100%;
        text-align:center;
      }

      .benefit-icon{
        margin:0 auto;
      }
    }


    /* =========================
       GALERÍA DE DESTINOS
    ========================= */
    .destinos-section{
      position:relative;
      overflow:hidden;
      background:
        radial-gradient(circle at center top, rgba(216,168,78,.08), transparent 34%),
        linear-gradient(180deg, #080808 0%, #0b0b0b 50%, #060606 100%);
    }

    .destinos-gallery{
      width:min(1380px, 100%);
      margin:0 auto;
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:24px;
      align-items:start;
    }

    .destino-photo{
      position:relative;
      margin:0;
      overflow:hidden;
      border-radius:24px;
      background:#111;
      border:1px solid rgba(216,168,78,.32);
      box-shadow:
        0 24px 55px rgba(0,0,0,.48),
        0 0 0 1px rgba(255,255,255,.025) inset;
      transition:
        transform .4s ease,
        border-color .4s ease,
        box-shadow .4s ease;
      aspect-ratio: 4 / 5;
      min-height: 640px;
    }

    .destino-photo::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:linear-gradient(
        180deg,
        transparent 65%,
        rgba(0,0,0,.16) 100%
      );
    }

    .destino-photo img{
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
      object-position:center;
      transition:transform .65s cubic-bezier(.22,.8,.25,1);
    }

    .destino-photo:hover{
      transform:translateY(-9px);
      border-color:rgba(239,196,111,.72);
      box-shadow:
        0 34px 75px rgba(0,0,0,.58),
        0 0 28px rgba(216,168,78,.10);
    }

    .destino-photo:hover img{
      transform:scale(1.025);
    }

    @media (max-width:980px){
      .destinos-gallery{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }

      .destino-photo:last-child{
        grid-column:1 / -1;
        width:min(520px, 100%);
        justify-self:center;
      }
    }

    @media (max-width:620px){
      .destinos-gallery{
        grid-template-columns:1fr;
        gap:18px;
      }

      .destino-photo:last-child{
        grid-column:auto;
        width:100%;
      }

      .destino-photo{
        border-radius:18px;
      }
    }


    @media (max-width:980px){
      .destino-photo{
        min-height: 560px;
      }
    }

    @media (max-width:620px){
      .destino-photo{
        min-height: auto;
        aspect-ratio: 4 / 5;
      }
    }

  
    /* Corrección: tres tarjetas separadas, sin empalmarse */
    .destinos-gallery{
      width:min(1320px, calc(100% - 32px));
      margin:0 auto;
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:28px;
      align-items:stretch;
    }

    .destino-photo{
      width:100%;
      min-width:0;
      height:600px;
      min-height:0;
      aspect-ratio:auto;
      margin:0;
      overflow:hidden;
    }

    .destino-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .destino-photo:nth-child(1) img{
      object-position:center 52%;
    }

    .destino-photo:nth-child(2) img{
      object-position:center 50%;
    }

    .destino-photo:nth-child(3) img{
      object-position:center 42%;
    }

    @media (max-width:1100px){
      .destinos-gallery{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }

      .destino-photo{
        height:620px;
      }

      .destino-photo:last-child{
        grid-column:1 / -1;
        width:min(520px, 100%);
        justify-self:center;
      }
    }

    @media (max-width:700px){
      .destinos-gallery{
        width:100%;
        grid-template-columns:1fr;
        gap:20px;
      }

      .destino-photo,
      .destino-photo:last-child{
        width:100%;
        height:540px;
        grid-column:auto;
      }
    }

    @media (max-width:480px){
      .destino-photo,
      .destino-photo:last-child{
        height:470px;
      }
    }


    /* =========================
       AVIONES ANIMADOS EN DESTINOS
    ========================= */
    .destinos-section{
      position:relative;
      overflow:hidden;
    }

    .planes-overlay{
      position:absolute;
      inset:0;
      pointer-events:none;
      z-index:0;
      overflow:hidden;
    }

    .destinos-section .section-title,
    .destinos-gallery{
      position:relative;
      z-index:1;
    }

    .flying-plane{
      position:absolute;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      font-size:34px;
      color:rgba(239, 196, 111, 0.82);
      text-shadow:
        0 0 14px rgba(239, 196, 111, 0.35),
        0 0 28px rgba(239, 196, 111, 0.12);
      opacity:.7;
      will-change:transform, opacity;
    }

    .flying-plane::after{
      content:"";
      position:absolute;
      top:50%;
      right:100%;
      width:120px;
      height:2px;
      transform:translateY(-50%);
      background:linear-gradient(90deg, rgba(239,196,111,0), rgba(239,196,111,.45));
      filter:blur(1px);
      opacity:.7;
    }

    .plane-1{
      top:100px;
      left:-80px;
      animation:flyRight 18s linear infinite;
      animation-delay:0s;
    }

    .plane-2{
      top:50%;
      right:-80px;
      transform:scaleX(-1) rotate(-6deg);
      animation:flyLeft 22s linear infinite;
      animation-delay:3s;
      font-size:28px;
      opacity:.55;
    }

    .plane-3{
      bottom:90px;
      left:-90px;
      animation:flyRight 26s linear infinite;
      animation-delay:8s;
      font-size:24px;
      opacity:.42;
    }

    @keyframes flyRight{
      0%{
        transform:translateX(0) translateY(0) rotate(8deg);
        opacity:0;
      }
      8%{
        opacity:.72;
      }
      50%{
        transform:translateX(52vw) translateY(-14px) rotate(4deg);
        opacity:.82;
      }
      92%{
        opacity:.72;
      }
      100%{
        transform:translateX(110vw) translateY(-30px) rotate(2deg);
        opacity:0;
      }
    }

    @keyframes flyLeft{
      0%{
        transform:translateX(0) scaleX(-1) rotate(-6deg);
        opacity:0;
      }
      8%{
        opacity:.55;
      }
      50%{
        transform:translateX(-52vw) translateY(10px) scaleX(-1) rotate(-10deg);
        opacity:.68;
      }
      92%{
        opacity:.55;
      }
      100%{
        transform:translateX(-112vw) translateY(24px) scaleX(-1) rotate(-13deg);
        opacity:0;
      }
    }

    @media (max-width:980px){
      .flying-plane{
        font-size:26px;
      }

      .flying-plane::after{
        width:82px;
      }

      .plane-3{
        display:none;
      }
    }

    @media (max-width:620px){
      .flying-plane{
        font-size:22px;
      }

      .plane-1{
        top:88px;
      }

      .plane-2{
        top:58%;
      }
    }

    @media (prefers-reduced-motion: reduce){
      .flying-plane{
        animation:none !important;
        opacity:.18;
      }
    }


  
    /* =========================
       TIPOGRAFÍA DECORATIVA GLOBAL
    ========================= */
    html,
    body,
    button,
    input,
    textarea,
    select,
    a,
    p,
    span,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    nav,
    footer{
      font-family:"Cormorant Garamond", Georgia, serif !important;
    }

    body{
      letter-spacing:.15px;
    }

    .logo,
    .nav a,
    .cta{
      font-weight:600;
    }

    .nav a{
      font-size:17px;
      letter-spacing:1.5px;
    }

    .section-title p,
    .benefit,
    .question,
    .answer{
      font-weight:500;
    }

  
    /* =========================
       AJUSTE DE FRASE EN DESTINOS
    ========================= */
    .destinos-copy h2{
      font-size:clamp(38px, 3.1vw, 52px) !important;
      line-height:1;
      margin-bottom:8px;
    }

    .destinos-copy p{
      font-size:clamp(28px, 2.25vw, 42px) !important;
      line-height:1.15;
      color:#f2e2bf;
      margin-top:0;
    }

    @media (max-width:700px){
      .destinos-copy h2{
        font-size:34px !important;
      }

      .destinos-copy p{
        font-size:26px !important;
      }
    }

  
    /* =========================
       AVIONES ANIMADOS EN EL MAPA
    ========================= */
    .map-hero{
      position:relative;
      overflow:hidden;
    }

    .map-planes-overlay{
      position:absolute;
      inset:88px 0 0 0;
      pointer-events:none;
      z-index:1;
      overflow:hidden;
    }

    .map-brand,
    .scroll-indicator{
      position:relative;
      z-index:2;
    }

    .map-flying-plane{
      position:absolute;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      font-size:48px;
      color:rgba(239, 196, 111, 0.88);
      text-shadow:
        0 0 16px rgba(239, 196, 111, 0.34),
        0 0 32px rgba(239, 196, 111, 0.14);
      opacity:.75;
      will-change:transform, opacity;
    }

    .map-flying-plane::after{
      content:"";
      position:absolute;
      top:50%;
      right:100%;
      width:160px;
      height:2px;
      transform:translateY(-50%);
      background:linear-gradient(90deg, rgba(239,196,111,0), rgba(239,196,111,.40));
      filter:blur(1px);
      opacity:.72;
    }

    .map-plane-1{
      top:120px;
      left:-90px;
      animation:mapFlyRight 20s linear infinite;
      animation-delay:0s;
      transform:rotate(10deg);
    }

    .map-plane-2{
      top:40%;
      right:-95px;
      font-size:56px;
      animation:mapFlyLeft 24s linear infinite;
      animation-delay:4s;
      transform:scaleX(-1) rotate(-8deg);
      opacity:.62;
    }

    .map-plane-3{
      bottom:165px;
      left:-100px;
      font-size:38px;
      animation:mapFlyRight 28s linear infinite;
      animation-delay:9s;
      transform:rotate(6deg);
      opacity:.48;
    }

    @keyframes mapFlyRight{
      0%{
        transform:translateX(0) translateY(0) rotate(10deg);
        opacity:0;
      }
      8%{
        opacity:.72;
      }
      50%{
        transform:translateX(55vw) translateY(-18px) rotate(4deg);
        opacity:.82;
      }
      92%{
        opacity:.72;
      }
      100%{
        transform:translateX(112vw) translateY(-36px) rotate(1deg);
        opacity:0;
      }
    }

    @keyframes mapFlyLeft{
      0%{
        transform:translateX(0) scaleX(-1) rotate(-8deg);
        opacity:0;
      }
      8%{
        opacity:.62;
      }
      50%{
        transform:translateX(-54vw) translateY(14px) scaleX(-1) rotate(-11deg);
        opacity:.70;
      }
      92%{
        opacity:.62;
      }
      100%{
        transform:translateX(-112vw) translateY(28px) scaleX(-1) rotate(-14deg);
        opacity:0;
      }
    }

    @media (max-width:980px){
      .map-planes-overlay{
        inset:76px 0 0 0;
      }

      .map-flying-plane{
        font-size:34px;
      }

      .map-flying-plane::after{
        width:100px;
      }

      .map-plane-2{
        font-size:40px;
      }

      .map-plane-3{
        display:none;
      }
    }

    @media (max-width:620px){
      .map-flying-plane{
        font-size:28px;
      }

      .map-plane-1{
        top:90px;
      }

      .map-plane-2{
        top:52%;
        font-size:32px;
      }
    }

    @media (prefers-reduced-motion: reduce){
      .map-flying-plane{
        animation:none !important;
        opacity:.18;
      }
    }

    /* =========================
       AJUSTE UNIVERSAL DE PANTALLAS
       iPhone / Android / tablets / laptop / monitores
    ========================= */
    :root{
      --header-height:88px;
      --page-gutter:clamp(18px, 5vw, 7%);
    }

    html{
      -webkit-text-size-adjust:100%;
      text-size-adjust:100%;
    }

    body{
      min-width:320px;
    }

    img{
      max-width:100%;
    }

    .header{
      height:var(--header-height);
      padding-left:max(2%, env(safe-area-inset-left));
      padding-right:max(2%, env(safe-area-inset-right));
    }

    .map-hero{
      min-height:100svh;
      min-height:100dvh;
      height:100vh;
      height:100svh;
      height:100dvh;
      padding-top:var(--header-height);
    }

    .map-hero::before,
    .map-planes-overlay{
      inset:var(--header-height) 0 0;
    }

    section:not(.map-hero):not(.intro-section):not(.almas-section){
      padding:clamp(65px, 8vw, 110px) var(--page-gutter);
    }

    .intro-section{
      min-height:100svh;
      min-height:100dvh;
      padding-left:max(18px, env(safe-area-inset-left));
      padding-right:max(18px, env(safe-area-inset-right));
    }

    .section-title h2{
      font-size:clamp(38px, 4.5vw, 58px);
      line-height:1;
    }

    .section-title p{
      font-size:clamp(19px, 2vw, 27px);
      line-height:1.2;
    }

    footer{
      padding-left:max(var(--page-gutter), env(safe-area-inset-left));
      padding-right:max(var(--page-gutter), env(safe-area-inset-right));
    }

    @media (min-width:1600px){
      :root{ --header-height:96px; }

      .header{ padding-left:4%; padding-right:4%; }
      .nav{ gap:clamp(32px, 2.5vw, 58px); }
      .map-brand{ margin-bottom:clamp(70px, 8vh, 120px); }
      .destinos-gallery{ width:min(1500px, calc(100% - 80px)); }
      .destino-photo{ height:clamp(600px, 44vw, 780px); }
    }

    @media (max-width:940px){
      :root{ --header-height:76px; }

      .nav{
        top:var(--header-height);
        right:max(4%, env(safe-area-inset-right));
        max-width:calc(100vw - 32px);
      }

      .map-brand h1{
        white-space:normal;
        text-wrap:balance;
      }
    }

    @media (max-width:600px){
      :root{ --page-gutter:18px; }

      body{ min-width:0; }

      .header{
        padding-left:max(5%, env(safe-area-inset-left));
        padding-right:max(5%, env(safe-area-inset-right));
      }

      .menu-btn{
        flex:0 0 44px;
        -webkit-tap-highlight-color:transparent;
      }

      .map-hero{
        min-height:560px;
        background-position:center center;
      }

      .map-brand{
        width:min(94%, 520px);
        margin-bottom:max(58px, env(safe-area-inset-bottom));
      }

      .map-brand h1{
        font-size:clamp(30px, 10vw, 46px);
        line-height:.92;
        letter-spacing:clamp(2px, .9vw, 4px);
      }

      .map-brand-line{ margin-top:14px; }
      .scroll-indicator{ bottom:max(18px, env(safe-area-inset-bottom)); }

      .intro-section{
        min-height:auto;
        padding-top:clamp(68px, 12vw, 90px);
        padding-bottom:clamp(48px, 10vw, 70px);
      }

      .intro-section h1{
        font-size:clamp(42px, 13vw, 58px);
        line-height:.9;
      }

      .intro-subtitle{
        font-size:clamp(29px, 9vw, 40px);
      }

      .question{ font-size:clamp(22px, 6.2vw, 27px); }
      .answer{ font-size:clamp(24px, 6.5vw, 29px); }
      .benefit{ font-size:clamp(19px, 5.5vw, 23px); }

      .cta{
        min-height:64px;
        height:auto;
        padding:15px 20px;
        font-size:clamp(18px, 5.2vw, 22px);
        text-align:center;
      }

      .destinos-copy p{ font-size:clamp(24px, 7vw, 31px) !important; }
      .destino-photo,
      .destino-photo:last-child{ height:clamp(390px, 130vw, 540px); }
    }

    @media (max-width:360px){
      .logo{ font-size:15px; letter-spacing:1.5px; }
      .map-brand h1{ font-size:30px; }
      .cta{ gap:8px; padding-left:14px; padding-right:14px; }
      .plane{ font-size:27px; }
    }



    /* =========================
       FORMULARIO: DISEÑA TU VIAJE
    ========================= */
    .travel-form-section{
      position:relative;
      overflow:hidden;
      scroll-margin-top:var(--header-height, 88px);
      padding:clamp(78px, 8vw, 118px) var(--page-gutter, 7%) !important;
      background:
        radial-gradient(circle at 15% 12%, rgba(216,168,78,.12), transparent 25%),
        radial-gradient(circle at 86% 88%, rgba(216,168,78,.08), transparent 28%),
        linear-gradient(180deg,#070707 0%,#0c0b09 48%,#050505 100%) !important;
    }

    .travel-form-section::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      opacity:.22;
      background-image:
        linear-gradient(rgba(216,168,78,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(216,168,78,.045) 1px, transparent 1px);
      background-size:42px 42px;
      mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
    }

    .travel-form-intro,
    .planner-shell{
      position:relative;
      z-index:1;
    }

    .travel-form-intro{
      width:min(900px,100%);
      margin:0 auto 34px;
      text-align:center;
    }

    .travel-form-kicker{
      display:inline-flex;
      align-items:center;
      gap:9px;
      margin-bottom:12px;
      color:var(--dorado-claro);
      font-size:clamp(16px,1.5vw,20px);
      letter-spacing:2px;
      text-transform:uppercase;
    }

    .travel-form-intro h2{
      color:#fff8ec;
      font-size:clamp(44px,5.2vw,76px);
      font-weight:500;
      line-height:.95;
      text-wrap:balance;
    }

    .travel-form-intro p{
      width:min(760px,100%);
      margin:15px auto 0;
      color:#d4c9b8;
      font-size:clamp(20px,2vw,27px);
      line-height:1.35;
    }

    .planner-shell{
      width:min(1120px,100%);
      margin:0 auto;
      overflow:hidden;
      border:1px solid rgba(239,196,111,.32);
      border-radius:30px;
      background:rgba(10,10,10,.92);
      box-shadow:0 32px 90px rgba(0,0,0,.58), inset 0 1px 0 rgba(255,255,255,.035);
      backdrop-filter:blur(10px);
    }

    .planner-head{
      padding:25px clamp(20px,4vw,46px) 22px;
      border-bottom:1px solid rgba(216,168,78,.18);
      background:linear-gradient(180deg,rgba(216,168,78,.08),rgba(216,168,78,.015));
    }

    .planner-head-row{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:18px;
      margin-bottom:14px;
    }

    .planner-step-label{
      color:#f4e3c3;
      font-size:19px;
      font-weight:700;
    }

    .planner-step-name{
      color:#b9ae9c;
      font-size:17px;
      text-align:right;
    }

    .planner-progress{
      height:8px;
      overflow:hidden;
      border-radius:99px;
      background:#211c15;
      box-shadow:inset 0 1px 4px rgba(0,0,0,.7);
    }

    .planner-progress-bar{
      width:12.5%;
      height:100%;
      border-radius:inherit;
      background:linear-gradient(90deg,var(--dorado-oscuro),var(--dorado-claro));
      box-shadow:0 0 22px rgba(239,196,111,.36);
      transition:width .35s ease;
    }

    .planner-form{
      padding:clamp(26px,4vw,48px);
    }

    .form-step{
      display:none;
      animation:plannerStepIn .38s cubic-bezier(.22,.8,.25,1) both;
    }

    .form-step.active{
      display:block;
    }

    @keyframes plannerStepIn{
      from{opacity:0;transform:translateY(15px)}
      to{opacity:1;transform:translateY(0)}
    }

    .step-heading{
      margin-bottom:26px;
    }

    .step-heading-number{
      display:inline-grid;
      place-items:center;
      width:42px;
      height:42px;
      margin-bottom:12px;
      border:1px solid rgba(239,196,111,.52);
      border-radius:50%;
      color:var(--dorado-claro);
      font-size:20px;
      font-weight:700;
      background:rgba(216,168,78,.06);
    }

    .step-heading h3{
      color:#fff7e9;
      font-size:clamp(31px,3.4vw,47px);
      font-weight:500;
      line-height:1;
    }

    .step-heading p{
      margin-top:9px;
      color:#bdb3a4;
      font-size:clamp(18px,1.7vw,22px);
      line-height:1.35;
    }

    .form-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:19px;
    }

    .form-grid.one-column{
      grid-template-columns:1fr;
    }

    .form-field{
      min-width:0;
    }

    .form-field.full{
      grid-column:1/-1;
    }

    .form-label,
    .group-label{
      display:block;
      margin-bottom:9px;
      color:#f0dfc3;
      font-size:19px;
      font-weight:700;
    }

    .form-hint{
      display:block;
      margin:-3px 0 10px;
      color:#978e80;
      font-size:15px;
      line-height:1.3;
    }

    .planner-form input[type="text"],
    .planner-form input[type="email"],
    .planner-form input[type="tel"],
    .planner-form input[type="number"],
    .planner-form input[type="date"],
    .planner-form select,
    .planner-form textarea{
      width:100%;
      min-height:54px;
      padding:13px 15px;
      border:1px solid rgba(216,168,78,.25);
      border-radius:13px;
      outline:none;
      background:#12110f;
      color:#fff8ec;
      font-size:18px;
      transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
    }

    .planner-form textarea{
      min-height:112px;
      resize:vertical;
      line-height:1.45;
    }

    .planner-form input:focus,
    .planner-form select:focus,
    .planner-form textarea:focus{
      border-color:var(--dorado-claro);
      background:#17140f;
      box-shadow:0 0 0 4px rgba(216,168,78,.10);
    }

    .planner-form input::placeholder,
    .planner-form textarea::placeholder{
      color:#716a60;
    }

    .planner-form select option{
      color:#fff8ec;
      background:#12110f;
    }

    .choice-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
    }

    .choice-grid.two{
      grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .choice-grid.four{
      grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .choice-card{
      position:relative;
      display:block;
      cursor:pointer;
      user-select:none;
      -webkit-tap-highlight-color:transparent;
    }

    .choice-card input{
      position:absolute;
      width:1px;
      height:1px;
      opacity:0;
      pointer-events:none;
    }

    .choice-content{
      min-height:58px;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      padding:12px 13px;
      border:1px solid rgba(216,168,78,.21);
      border-radius:14px;
      background:#12110f;
      color:#d6cdbc;
      text-align:center;
      font-size:17px;
      line-height:1.15;
      transition:.22s ease;
    }

    .choice-card:hover .choice-content{
      border-color:rgba(239,196,111,.55);
      transform:translateY(-2px);
    }

    .choice-card input:focus-visible + .choice-content{
      box-shadow:0 0 0 4px rgba(216,168,78,.13);
    }

    .choice-card input:checked + .choice-content{
      border-color:var(--dorado-claro);
      color:#fff6e7;
      background:linear-gradient(180deg,rgba(216,168,78,.22),rgba(157,104,28,.12));
      box-shadow:0 9px 25px rgba(0,0,0,.24), inset 0 0 0 1px rgba(239,196,111,.08);
    }

    .choice-icon{
      font-size:21px;
      line-height:1;
    }

    .conditional-box{
      margin-top:18px;
      padding:20px;
      border:1px solid rgba(216,168,78,.18);
      border-radius:17px;
      background:rgba(216,168,78,.035);
      animation:plannerStepIn .3s ease both;
    }

    .conditional-box.hidden{
      display:none;
    }

    .notes-box{
      margin-top:22px;
      padding-top:20px;
      border-top:1px dashed rgba(216,168,78,.18);
    }

    .counter-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:15px;
    }

    .counter-card{
      padding:17px;
      border:1px solid rgba(216,168,78,.20);
      border-radius:16px;
      background:#11100e;
    }

    .counter-card label{
      display:block;
      margin-bottom:9px;
      color:#ead9bd;
      font-size:18px;
      font-weight:700;
    }

    .counter-card small{
      display:block;
      margin-top:7px;
      color:#8e8578;
      font-size:14px;
    }

    .child-ages-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:13px;
      margin-top:13px;
    }

    .range-list{
      display:grid;
      gap:16px;
    }

    .range-row{
      display:grid;
      grid-template-columns:150px 1fr 38px;
      align-items:center;
      gap:15px;
      padding:13px 15px;
      border:1px solid rgba(216,168,78,.17);
      border-radius:14px;
      background:#11100e;
    }

    .range-row label{
      color:#e8d8bd;
      font-size:18px;
      font-weight:700;
    }

    .range-row input[type="range"]{
      width:100%;
      accent-color:var(--dorado-claro);
    }

    .range-value{
      display:grid;
      place-items:center;
      width:36px;
      height:36px;
      border-radius:50%;
      color:#fff7e9;
      background:#2b2114;
      font-size:17px;
      font-weight:700;
    }

    .group-error{
      display:none;
      margin-top:9px;
      color:#ffb2a7;
      font-size:15px;
    }

    .group-invalid .group-error{
      display:block;
    }

    .group-invalid .choice-content{
      border-color:rgba(255,118,101,.7);
    }

    .field-invalid{
      border-color:#ff7665 !important;
      box-shadow:0 0 0 3px rgba(255,118,101,.09) !important;
    }

    .form-divider{
      height:1px;
      margin:25px 0;
      background:linear-gradient(90deg,transparent,rgba(216,168,78,.24),transparent);
    }

    .trust-message{
      margin:25px 0 0;
      padding:19px 20px;
      border-left:3px solid var(--dorado);
      border-radius:0 13px 13px 0;
      background:rgba(216,168,78,.06);
      color:#d9cfbf;
      font-size:17px;
      line-height:1.45;
    }

    .planner-actions{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:14px;
      margin-top:31px;
      padding-top:24px;
      border-top:1px solid rgba(216,168,78,.16);
    }

    .planner-btn{
      min-height:54px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      padding:12px 24px;
      border-radius:999px;
      border:1px solid rgba(216,168,78,.42);
      cursor:pointer;
      font-size:19px;
      font-weight:700;
      transition:.22s ease;
    }

    .planner-btn.secondary{
      color:#e8dcc8;
      background:#12110f;
    }

    .planner-btn.primary{
      margin-left:auto;
      border-color:var(--dorado-claro);
      color:#fff;
      background:linear-gradient(180deg,#d9a94e,#9c661c);
      box-shadow:0 12px 30px rgba(157,104,28,.25);
    }

    .planner-btn:hover{
      transform:translateY(-2px);
      filter:brightness(1.07);
    }

    .planner-btn[hidden]{
      display:none;
    }

    .summary-panel{
      margin-top:25px;
      overflow:hidden;
      border:1px solid rgba(216,168,78,.24);
      border-radius:20px;
      background:#0d0c0a;
    }

    .summary-head{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:15px;
      padding:17px 20px;
      border-bottom:1px solid rgba(216,168,78,.17);
      background:rgba(216,168,78,.055);
    }

    .summary-head h4{
      color:#f6e8d0;
      font-size:24px;
      font-weight:700;
    }

    .copy-summary-btn{
      border:0;
      background:transparent;
      color:var(--dorado-claro);
      cursor:pointer;
      font-size:17px;
      font-weight:700;
    }

    .summary-body{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:1px;
      background:rgba(216,168,78,.14);
    }

    .summary-group{
      padding:18px 19px;
      background:#0e0d0b;
    }

    .summary-group.full{
      grid-column:1/-1;
    }

    .summary-group-title{
      display:flex;
      justify-content:space-between;
      gap:12px;
      margin-bottom:10px;
      color:var(--dorado-claro);
      font-size:19px;
      font-weight:700;
    }

    .summary-edit{
      border:0;
      padding:0;
      background:transparent;
      color:#a89c8b;
      cursor:pointer;
      font-size:15px;
      text-decoration:underline;
    }

    .summary-row{
      display:grid;
      grid-template-columns:minmax(110px,.42fr) 1fr;
      gap:10px;
      padding:5px 0;
      color:#d5ccbd;
      font-size:16px;
      line-height:1.35;
    }

    .summary-row strong{
      color:#f0e3cf;
      font-weight:700;
    }

    .submit-status{
      display:none;
      margin-top:18px;
      padding:16px 18px;
      border:1px solid rgba(114,210,147,.36);
      border-radius:13px;
      background:rgba(68,162,101,.10);
      color:#bfe7cc;
      font-size:17px;
      line-height:1.4;
    }

    .submit-status.show{
      display:block;
    }

    .privacy-check{
      display:flex;
      align-items:flex-start;
      gap:11px;
      margin-top:18px;
      color:#c5bbad;
      font-size:16px;
      line-height:1.35;
      cursor:pointer;
    }

    .privacy-check input{
      width:19px;
      height:19px;
      margin-top:2px;
      accent-color:var(--dorado-claro);
      flex:0 0 auto;
    }

    @media (max-width:900px){
      .choice-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
      .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .summary-body{grid-template-columns:1fr}
      .summary-group.full{grid-column:auto}
    }

    @media (max-width:700px){
      .planner-shell{border-radius:22px}
      .planner-form{padding:24px 18px 28px}
      .planner-head{padding:20px 18px}
      .planner-head-row{align-items:flex-start}
      .planner-step-name{font-size:15px;max-width:50%}
      .form-grid{grid-template-columns:1fr}
      .form-field.full{grid-column:auto}
      .counter-grid{grid-template-columns:1fr}
      .child-ages-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .range-row{grid-template-columns:1fr 38px;gap:8px 12px}
      .range-row input[type="range"]{grid-column:1/-1;grid-row:2}
      .planner-actions{flex-wrap:wrap}
      .planner-btn{flex:1;min-width:135px;padding-left:16px;padding-right:16px}
      .planner-btn.primary{margin-left:0}
    }

    @media (max-width:480px){
      .choice-grid,
      .choice-grid.two,
      .choice-grid.four{grid-template-columns:1fr}
      .child-ages-grid{grid-template-columns:1fr}
      .summary-row{grid-template-columns:1fr;gap:2px}
      .planner-head-row{display:block}
      .planner-step-name{text-align:left;max-width:none;margin-top:4px}
      .planner-btn{width:100%;flex-basis:100%}
    }

/* =========================
   AJUSTES DE PRODUCCIÓN 10/10
========================= */
section[id]{scroll-margin-top:calc(var(--header-height,88px) + 10px)}
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.privacy-check a, footer a{color:var(--dorado-claro);text-underline-offset:3px}
.privacy-check a:hover, footer a:hover{color:#fff0c9}
.menu-btn:focus-visible,.nav a:focus-visible,.cta:focus-visible,.planner-btn:focus-visible,.copy-summary-btn:focus-visible,.summary-edit:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--dorado-claro);outline-offset:3px}
.planner-btn:disabled{cursor:not-allowed;opacity:.62;transform:none!important;filter:none!important}
.submit-status.is-error{border-color:rgba(255,118,101,.45);color:#ffd4ce;background:rgba(255,118,101,.08)}
.submit-status.is-success{border-color:rgba(126,220,160,.38);color:#d9ffe7;background:rgba(72,180,111,.08)}
@media (hover:none){.cta:hover,.planner-btn:hover,.destino-photo:hover{transform:none}}


/* =========================
   DESTINO AL ALMA SHOP
========================= */
body.shop-lightbox-open{overflow:hidden;}

.shop-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 12% 12%,rgba(216,168,78,.12),transparent 25%),
    radial-gradient(circle at 88% 72%,rgba(216,168,78,.08),transparent 28%),
    linear-gradient(180deg,#050505 0%,#0c0a07 48%,#050505 100%) !important;
}

.shop-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    linear-gradient(rgba(216,168,78,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(216,168,78,.035) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 88%,transparent);
}

.shop-glow{
  position:absolute;
  z-index:-1;
  width:420px;
  height:420px;
  border-radius:50%;
  filter:blur(100px);
  opacity:.12;
  pointer-events:none;
}

.shop-glow-one{
  top:4%;
  left:-150px;
  background:#d8a84e;
}

.shop-glow-two{
  right:-170px;
  bottom:8%;
  background:#8f5b18;
}

.shop-intro{
  width:min(900px,100%);
  margin:0 auto clamp(42px,6vw,74px);
  text-align:center;
}

.shop-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:13px;
  color:var(--dorado-claro);
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:clamp(13px,1.1vw,16px);
  font-weight:600;
  letter-spacing:2.5px;
  text-transform:uppercase;
}

.shop-intro h2{
  color:#fff8ec;
  font-size:clamp(46px,5.7vw,82px);
  font-weight:500;
  line-height:.95;
  text-wrap:balance;
}

.shop-intro p{
  width:min(760px,100%);
  margin:20px auto 0;
  color:#cfc3b2;
  font-size:clamp(20px,1.9vw,27px);
  line-height:1.4;
}

.shop-products{
  width:min(1380px,100%);
  margin:0 auto;
  display:grid;
  gap:clamp(30px,5vw,72px);
}

.shop-product{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  gap:clamp(30px,5vw,72px);
  align-items:center;
  padding:clamp(18px,2.2vw,30px);
  border:1px solid rgba(216,168,78,.22);
  border-radius:30px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008)),
    rgba(10,9,7,.76);
  box-shadow:
    0 28px 75px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(8px);
}

.shop-product::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(239,196,111,.06),transparent 32%,transparent 70%,rgba(216,168,78,.035));
}

.shop-product.reverse{
  grid-template-columns:minmax(340px,.92fr) minmax(0,1.08fr);
}

.shop-product.reverse .shop-media{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
}

.shop-main-photo,
.shop-thumbs figure{
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(216,168,78,.20);
  background:#17130e;
  box-shadow:0 18px 38px rgba(0,0,0,.20);
  transition:
    transform .35s cubic-bezier(.22,.8,.25,1),
    box-shadow .35s ease,
    border-color .35s ease;
}

.shop-main-photo{
  min-height:620px;
  border-radius:24px;
  cursor:zoom-in;
}

.shop-main-photo::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 62%,rgba(0,0,0,.28));
}

.shop-main-photo::before,
.shop-thumbs figure::before{
  content:"Ampliar";
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  padding:7px 10px;
  border:1px solid rgba(239,196,111,.30);
  border-radius:999px;
  background:rgba(5,5,5,.68);
  color:#f0d7a1;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:11px;
  font-weight:600;
  letter-spacing:.9px;
  opacity:0;
  transform:translateY(4px);
  transition:.25s ease;
  pointer-events:none;
}

.shop-main-photo img,
.shop-thumbs img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .65s cubic-bezier(.22,.8,.25,1),filter .4s ease;
}

.shop-main-photo:hover,
.shop-main-photo:focus-visible,
.shop-thumbs figure:hover,
.shop-thumbs figure:focus-visible{
  transform:translateY(-6px) scale(1.015);
  border-color:rgba(239,196,111,.62);
  box-shadow:0 28px 56px rgba(0,0,0,.34), 0 0 28px rgba(216,168,78,.12);
  outline:none;
}

.shop-main-photo:hover::before,
.shop-main-photo:focus-visible::before,
.shop-thumbs figure:hover::before,
.shop-thumbs figure:focus-visible::before{
  opacity:1;
  transform:translateY(0);
}

.shop-main-photo:hover img,
.shop-main-photo:focus-visible img,
.shop-thumbs figure:hover img,
.shop-thumbs figure:focus-visible img{
  transform:scale(1.11);
}

.shop-photo-label{
  position:absolute;
  z-index:2;
  left:18px;
  bottom:18px;
  padding:8px 12px;
  border:1px solid rgba(239,196,111,.38);
  border-radius:999px;
  background:rgba(5,5,5,.74);
  color:#f3d89f;
  backdrop-filter:blur(8px);
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.shop-thumbs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  min-width:0;
}

.shop-thumbs figure{
  min-height:0;
  aspect-ratio:4 / 5;
  border-radius:20px;
  cursor:zoom-in;
}

.shop-product-info{
  position:relative;
  z-index:1;
  padding:clamp(8px,1.6vw,24px);
}

.shop-number{
  display:block;
  margin-bottom:18px;
  color:rgba(239,196,111,.42);
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:13px;
  font-weight:700;
  letter-spacing:3px;
}

.shop-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 12px;
  border:1px solid rgba(216,168,78,.30);
  border-radius:999px;
  background:rgba(216,168,78,.07);
  color:#e9c77f;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.shop-product h3{
  margin:17px 0 16px;
  color:#fff7e9;
  font-size:clamp(38px,4vw,58px);
  font-weight:500;
  line-height:.96;
  text-wrap:balance;
}

.shop-description{
  color:#d0c5b5;
  font-size:clamp(19px,1.65vw,24px);
  line-height:1.5;
}

.shop-specs{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:24px 0;
}

.shop-specs span{
  padding:9px 13px;
  border:1px solid rgba(216,168,78,.20);
  border-radius:999px;
  background:#12100d;
  color:#e7d7bd;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:.25px;
}

.shop-variants{
  margin-top:6px;
  padding:18px 0 4px;
  border-top:1px solid rgba(216,168,78,.16);
}

.shop-variants strong{
  display:block;
  margin-bottom:5px;
  color:#f0cf91;
  font-size:20px;
  font-weight:600;
}

.shop-variants p{
  color:#ab9f8e;
  font-size:17px;
  line-height:1.45;
}

.shop-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px 18px;
  margin-top:27px;
}

.shop-buy-btn{
  min-height:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:13px 23px;
  border:1px solid #e3b257;
  border-radius:999px;
  background:linear-gradient(180deg,#d9a94e,#9c661c);
  color:#fff;
  box-shadow:0 13px 30px rgba(157,104,28,.23);
  cursor:pointer;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:14px;
  font-weight:700;
  letter-spacing:.2px;
  transition:.25s ease;
}

.shop-buy-btn:hover{
  transform:translateY(-3px);
  filter:brightness(1.08);
  box-shadow:0 18px 38px rgba(183,119,26,.30);
}

.shop-buy-btn:focus-visible,
.shop-link:focus-visible{
  outline:2px solid var(--dorado-claro);
  outline-offset:4px;
}

.shop-link{
  color:#d7c6aa;
  text-decoration-color:rgba(239,196,111,.55);
  text-underline-offset:5px;
  font-size:17px;
  transition:.2s ease;
}

.shop-link:hover{
  color:#f5d897;
}

.shop-note{
  width:min(760px,100%);
  margin:clamp(42px,5vw,65px) auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  padding:17px 20px;
  border-top:1px solid rgba(216,168,78,.16);
  border-bottom:1px solid rgba(216,168,78,.16);
  color:#aa9d8a;
  text-align:center;
  font-size:17px;
}

.shop-note span{
  color:var(--dorado);
}

.shop-note strong{
  color:#e9cc95;
  font-weight:600;
}

.shop-status{
  display:none;
  width:min(680px,100%);
  margin:18px auto 0;
  padding:13px 16px;
  border:1px solid rgba(216,168,78,.22);
  border-radius:12px;
  background:rgba(216,168,78,.06);
  color:#e4d4b9;
  text-align:center;
  font-size:16px;
}

.shop-status.show{
  display:block;
}

/* =========================
   CONTACTO Y AVISOS
========================= */
.shop-status,
.shop-status.show{
  display:none !important;
}

.contact-footer{
  position:relative;
  padding:clamp(48px,6vw,82px) clamp(22px,7vw,110px) 28px;
  border-top:1px solid rgba(216,168,78,.22);
  background:
    radial-gradient(circle at 50% 0%,rgba(216,168,78,.08),transparent 34%),
    linear-gradient(180deg,#080706 0%,#030303 100%);
  color:#c8c0b2;
  text-align:left;
}

.contact-footer-inner{
  width:min(1250px,100%);
  margin:0 auto;
}

.contact-footer-heading{
  margin-bottom:30px;
  text-align:center;
}

.contact-footer-kicker{
  display:block;
  margin-bottom:9px;
  color:var(--dorado-claro);
  font-size:14px;
  font-weight:700;
  letter-spacing:2.4px;
  text-transform:uppercase;
}

.contact-footer-heading h2{
  margin:0;
  color:#f6f0e5;
  font-size:clamp(38px,4vw,60px);
  font-weight:500;
  line-height:1;
}

.contact-footer-heading p{
  margin:13px auto 0;
  max-width:680px;
  color:#b9ad9c;
  font-size:clamp(17px,1.6vw,21px);
  line-height:1.45;
}

.contact-footer-links{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.contact-footer-links a{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:7px;
  padding:20px 22px;
  border:1px solid rgba(216,168,78,.25);
  border-radius:16px;
  background:rgba(255,255,255,.025);
  color:#f3eadb;
  text-decoration:none;
  transition:border-color .25s ease,background .25s ease,transform .25s ease;
}

.contact-footer-links a:hover,
.contact-footer-links a:focus-visible{
  border-color:rgba(240,188,84,.72);
  background:rgba(216,168,78,.09);
  color:#fff6e5;
  transform:translateY(-2px);
}

.contact-footer-links span{
  color:var(--dorado-claro);
  font-size:13px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.contact-footer-links strong{
  color:inherit;
  font-size:clamp(18px,1.5vw,22px);
  font-weight:600;
  overflow-wrap:anywhere;
}

.contact-footer-copy{
  margin:30px 0 0;
  padding-top:20px;
  border-top:1px solid rgba(216,168,78,.14);
  color:#948b7e;
  text-align:center;
  font-size:15px;
}

@media (max-width:760px){
  .contact-footer{
    padding-top:44px;
  }

  .contact-footer-links{
    grid-template-columns:1fr;
  }

  .contact-footer-links a{
    padding:17px 18px;
  }
}

.shop-lightbox{
  position:fixed;
  inset:0;
  z-index:1400;
  display:grid;
  place-items:center;
  padding:30px;
  background:rgba(3,3,3,.86);
  backdrop-filter:blur(8px);
}

.shop-lightbox[hidden]{
  display:none;
}

.shop-lightbox-figure{
  position:relative;
  width:min(1000px, calc(100vw - 60px));
  margin:0;
}

.shop-lightbox-figure img{
  width:100%;
  max-height:80vh;
  display:block;
  object-fit:contain;
  border-radius:24px;
  border:1px solid rgba(216,168,78,.22);
  box-shadow:0 30px 80px rgba(0,0,0,.42);
  background:#111;
}

.shop-lightbox-caption{
  margin-top:14px;
  color:#f0e5d1;
  text-align:center;
  font-size:18px;
  line-height:1.4;
}

.shop-lightbox-close{
  position:absolute;
  top:20px;
  right:20px;
  z-index:2;
  width:52px;
  height:52px;
  border:1px solid rgba(239,196,111,.35);
  border-radius:50%;
  background:rgba(6,6,6,.8);
  color:#fff4e0;
  font-size:34px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,.25);
}

.shop-lightbox-close:hover{
  filter:brightness(1.08);
  transform:scale(1.03);
}
@media (max-width:1180px){
      .header{
        padding:0 4%;
      }

      .logo{
        font-size:21px;
        letter-spacing:4px;
      }

      .nav{
        gap:24px;
      }

      .nav a{
        font-size:13px;
      }

      .intro-content{
        width:min(930px, 100%);
      }
    }

    /* =========================
       MENÚ MÓVIL
    ========================= */
    @media (max-width:940px){
      .header{
        height:76px;
      }

      .menu-btn{
        display:block;
      }

      .nav{
        position:absolute;
        top:76px;
        right:4%;
        width:260px;
        height:auto;
        display:none;
        flex-direction:column;
        align-items:flex-start;
        gap:0;
        padding:12px 22px;
        background:rgba(4,4,4,.98);
        border:1px solid rgba(216,168,78,.30);
        border-radius:0 0 16px 16px;
        box-shadow:0 20px 40px rgba(0,0,0,.45);
      }

      .nav.active{
        display:flex;
      }

      .nav a{
        width:100%;
        padding:15px 0;
      }

      .nav a::after{
        display:none;
      }

      .map-hero{
        height:100vh;
        padding-top:76px;
      }
.intro-section{
        padding-top:72px;
      }

      .intro-section h1{
        font-size:clamp(56px, 10vw, 82px);
      }

      .intro-subtitle{
        font-size:clamp(35px, 6vw, 52px);
      }

      .cta{
        min-width:360px;
        height:84px;
        font-size:23px;
      }

      .cards{
        grid-template-columns:1fr;
      }
    }

    /* =========================
       CELULAR
    ========================= */
    @media (max-width:600px){
      .header{
        padding:0 5%;
      }

      .logo{
        font-size:17px;
        letter-spacing:2.3px;
      }

      .map-hero{
        height:100vh;
        padding-top:76px;
      }
.intro-section{
        padding:58px 18px 44px;
      }

      .intro-content{
        margin-top:0;
      }

      .intro-section h1{
        font-size:50px;
        line-height:.95;
        letter-spacing:-1px;
      }

      .intro-subtitle{
        font-size:34px;
        line-height:1.03;
        margin-top:8px;
        margin-bottom:20px;
      }

      .ornament{
        margin-bottom:16px;
      }

      .ornament-star{
        font-size:33px;
      }

      .question{
        font-size:23px;
      }

      .answer{
        font-size:24px;
        margin-top:5px;
      }

      .benefits{
        gap:14px;
      }

      .benefit{
        grid-template-columns:26px 1fr;
        gap:6px;
        text-align:left;
        font-size:20px;
      }

      .benefit-icon{
        font-size:23px;
      }

      .cta{
        min-width:0;
        width:100%;
        max-width:390px;
        height:74px;
        padding:0 25px;
        gap:14px;
        font-size:20px;
      }

      .plane{
        font-size:31px;
      }

      .bottom-ornament{
        width:94%;
        margin-top:34px;
      }
    }

    @media (max-height:850px) and (min-width:941px){
      .map-hero{
        padding-top:88px;
      }

      .intro-section{
        padding-top:74px;
      }

      .intro-section h1{
        font-size:82px;
      }

      .intro-subtitle{
        font-size:50px;
        margin-bottom:18px;
      }

      .ornament{
        margin-bottom:13px;
      }

      .question{
        font-size:25px;
      }

      .answer{
        font-size:30px;
        margin-bottom:12px;
      }

      .benefits{
        gap:8px;
        margin-bottom:18px;
      }

      .benefit{
        font-size:23px;
      }

      .cta{
        height:78px;
        min-width:385px;
        font-size:23px;
      }

      .bottom-ornament{
        margin-top:25px;
      }
    }

    /* =========================
       BENEFICIOS CENTRADOS
    ========================= */
    .benefits{
      width:min(920px, 100%);
      margin-left:auto;
      margin-right:auto;
      align-items:center;
    }

    .benefit{
      width:100%;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:9px;
      padding:15px 20px;
      text-align:center;
    }

    .benefit-icon{
      display:flex;
      align-items:center;
      justify-content:center;
      width:42px;
      height:42px;
      margin:0 auto;
      font-size:30px;
      text-align:center;
    }

    .benefit p{
      width:100%;
      max-width:820px;
      margin:0 auto;
      text-align:center;
    }

    @media (max-width:600px){
      .benefit{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:8px;
        padding:14px 8px;
        text-align:center;
      }

      .benefit p{
        max-width:100%;
        text-align:center;
      }

      .benefit-icon{
        margin:0 auto;
      }
    }


    /* =========================
       GALERÍA DE DESTINOS
    ========================= */
    .destinos-section{
      position:relative;
      overflow:hidden;
      background:
        radial-gradient(circle at center top, rgba(216,168,78,.08), transparent 34%),
        linear-gradient(180deg, #080808 0%, #0b0b0b 50%, #060606 100%);
    }

    .destinos-gallery{
      width:min(1380px, 100%);
      margin:0 auto;
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:24px;
      align-items:start;
    }

    .destino-photo{
      position:relative;
      margin:0;
      overflow:hidden;
      border-radius:24px;
      background:#111;
      border:1px solid rgba(216,168,78,.32);
      box-shadow:
        0 24px 55px rgba(0,0,0,.48),
        0 0 0 1px rgba(255,255,255,.025) inset;
      transition:
        transform .4s ease,
        border-color .4s ease,
        box-shadow .4s ease;
      aspect-ratio: 4 / 5;
      min-height: 640px;
    }

    .destino-photo::after{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:linear-gradient(
        180deg,
        transparent 65%,
        rgba(0,0,0,.16) 100%
      );
    }

    .destino-photo img{
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
      object-position:center;
      transition:transform .65s cubic-bezier(.22,.8,.25,1);
    }

    .destino-photo:hover{
      transform:translateY(-9px);
      border-color:rgba(239,196,111,.72);
      box-shadow:
        0 34px 75px rgba(0,0,0,.58),
        0 0 28px rgba(216,168,78,.10);
    }

    .destino-photo:hover img{
      transform:scale(1.025);
    }

    @media (max-width:980px){
      .destinos-gallery{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }

      .destino-photo:last-child{
        grid-column:1 / -1;
        width:min(520px, 100%);
        justify-self:center;
      }
    }

    @media (max-width:620px){
      .destinos-gallery{
        grid-template-columns:1fr;
        gap:18px;
      }

      .destino-photo:last-child{
        grid-column:auto;
        width:100%;
      }

      .destino-photo{
        border-radius:18px;
      }
    }


    @media (max-width:980px){
      .destino-photo{
        min-height: 560px;
      }
    }

    @media (max-width:620px){
      .destino-photo{
        min-height: auto;
        aspect-ratio: 4 / 5;
      }
    }

  
    /* Corrección: tres tarjetas separadas, sin empalmarse */
    .destinos-gallery{
      width:min(1320px, calc(100% - 32px));
      margin:0 auto;
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:28px;
      align-items:stretch;
    }

    .destino-photo{
      width:100%;
      min-width:0;
      height:600px;
      min-height:0;
      aspect-ratio:auto;
      margin:0;
      overflow:hidden;
    }

    .destino-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }

    .destino-photo:nth-child(1) img{
      object-position:center 52%;
    }

    .destino-photo:nth-child(2) img{
      object-position:center 50%;
    }

    .destino-photo:nth-child(3) img{
      object-position:center 42%;
    }

    @media (max-width:1100px){
      .destinos-gallery{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }

      .destino-photo{
        height:620px;
      }

      .destino-photo:last-child{
        grid-column:1 / -1;
        width:min(520px, 100%);
        justify-self:center;
      }
    }

    @media (max-width:700px){
      .destinos-gallery{
        width:100%;
        grid-template-columns:1fr;
        gap:20px;
      }

      .destino-photo,
      .destino-photo:last-child{
        width:100%;
        height:540px;
        grid-column:auto;
      }
    }

    @media (max-width:480px){
      .destino-photo,
      .destino-photo:last-child{
        height:470px;
      }
    }


    /* =========================
       AVIONES ANIMADOS EN DESTINOS
    ========================= */
    .destinos-section{
      position:relative;
      overflow:hidden;
    }

    .planes-overlay{
      position:absolute;
      inset:0;
      pointer-events:none;
      z-index:0;
      overflow:hidden;
    }

    .destinos-section .section-title,
    .destinos-gallery{
      position:relative;
      z-index:1;
    }

    .flying-plane{
      position:absolute;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      font-size:34px;
      color:rgba(239, 196, 111, 0.82);
      text-shadow:
        0 0 14px rgba(239, 196, 111, 0.35),
        0 0 28px rgba(239, 196, 111, 0.12);
      opacity:.7;
      will-change:transform, opacity;
    }

    .flying-plane::after{
      content:"";
      position:absolute;
      top:50%;
      right:100%;
      width:120px;
      height:2px;
      transform:translateY(-50%);
      background:linear-gradient(90deg, rgba(239,196,111,0), rgba(239,196,111,.45));
      filter:blur(1px);
      opacity:.7;
    }

    .plane-1{
      top:100px;
      left:-80px;
      animation:flyRight 18s linear infinite;
      animation-delay:0s;
    }

    .plane-2{
      top:50%;
      right:-80px;
      transform:scaleX(-1) rotate(-6deg);
      animation:flyLeft 22s linear infinite;
      animation-delay:3s;
      font-size:28px;
      opacity:.55;
    }

    .plane-3{
      bottom:90px;
      left:-90px;
      animation:flyRight 26s linear infinite;
      animation-delay:8s;
      font-size:24px;
      opacity:.42;
    }

    @keyframes flyRight{
      0%{
        transform:translateX(0) translateY(0) rotate(8deg);
        opacity:0;
      }
      8%{
        opacity:.72;
      }
      50%{
        transform:translateX(52vw) translateY(-14px) rotate(4deg);
        opacity:.82;
      }
      92%{
        opacity:.72;
      }
      100%{
        transform:translateX(110vw) translateY(-30px) rotate(2deg);
        opacity:0;
      }
    }

    @keyframes flyLeft{
      0%{
        transform:translateX(0) scaleX(-1) rotate(-6deg);
        opacity:0;
      }
      8%{
        opacity:.55;
      }
      50%{
        transform:translateX(-52vw) translateY(10px) scaleX(-1) rotate(-10deg);
        opacity:.68;
      }
      92%{
        opacity:.55;
      }
      100%{
        transform:translateX(-112vw) translateY(24px) scaleX(-1) rotate(-13deg);
        opacity:0;
      }
    }

    @media (max-width:980px){
      .flying-plane{
        font-size:26px;
      }

      .flying-plane::after{
        width:82px;
      }

      .plane-3{
        display:none;
      }
    }

    @media (max-width:620px){
      .flying-plane{
        font-size:22px;
      }

      .plane-1{
        top:88px;
      }

      .plane-2{
        top:58%;
      }
    }

    @media (prefers-reduced-motion: reduce){
      .flying-plane{
        animation:none !important;
        opacity:.18;
      }
    }


  
    /* =========================
       TIPOGRAFÍA DECORATIVA GLOBAL
    ========================= */
    html,
    body,
    button,
    input,
    textarea,
    select,
    a,
    p,
    span,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    nav,
    footer{
      font-family:"Cormorant Garamond", Georgia, serif !important;
    }

    body{
      letter-spacing:.15px;
    }

    .logo,
    .nav a,
    .cta{
      font-weight:600;
    }

    .nav a{
      font-size:17px;
      letter-spacing:1.5px;
    }

    .section-title p,
    .benefit,
    .question,
    .answer{
      font-weight:500;
    }

  
    /* =========================
       AJUSTE DE FRASE EN DESTINOS
    ========================= */
    .destinos-copy h2{
      font-size:clamp(38px, 3.1vw, 52px) !important;
      line-height:1;
      margin-bottom:8px;
    }

    .destinos-copy p{
      font-size:clamp(28px, 2.25vw, 42px) !important;
      line-height:1.15;
      color:#f2e2bf;
      margin-top:0;
    }

    @media (max-width:700px){
      .destinos-copy h2{
        font-size:34px !important;
      }

      .destinos-copy p{
        font-size:26px !important;
      }
    }

  
    /* =========================
       AVIONES ANIMADOS EN EL MAPA
    ========================= */
    .map-hero{
      position:relative;
      overflow:hidden;
    }

    .map-planes-overlay{
      position:absolute;
      inset:88px 0 0 0;
      pointer-events:none;
      z-index:1;
      overflow:hidden;
    }

    .map-brand,
    .scroll-indicator{
      position:relative;
      z-index:2;
    }

    .map-flying-plane{
      position:absolute;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      font-size:48px;
      color:rgba(239, 196, 111, 0.88);
      text-shadow:
        0 0 16px rgba(239, 196, 111, 0.34),
        0 0 32px rgba(239, 196, 111, 0.14);
      opacity:.75;
      will-change:transform, opacity;
    }

    .map-flying-plane::after{
      content:"";
      position:absolute;
      top:50%;
      right:100%;
      width:160px;
      height:2px;
      transform:translateY(-50%);
      background:linear-gradient(90deg, rgba(239,196,111,0), rgba(239,196,111,.40));
      filter:blur(1px);
      opacity:.72;
    }

    .map-plane-1{
      top:120px;
      left:-90px;
      animation:mapFlyRight 20s linear infinite;
      animation-delay:0s;
      transform:rotate(10deg);
    }

    .map-plane-2{
      top:40%;
      right:-95px;
      font-size:56px;
      animation:mapFlyLeft 24s linear infinite;
      animation-delay:4s;
      transform:scaleX(-1) rotate(-8deg);
      opacity:.62;
    }

    .map-plane-3{
      bottom:165px;
      left:-100px;
      font-size:38px;
      animation:mapFlyRight 28s linear infinite;
      animation-delay:9s;
      transform:rotate(6deg);
      opacity:.48;
    }

    @keyframes mapFlyRight{
      0%{
        transform:translateX(0) translateY(0) rotate(10deg);
        opacity:0;
      }
      8%{
        opacity:.72;
      }
      50%{
        transform:translateX(55vw) translateY(-18px) rotate(4deg);
        opacity:.82;
      }
      92%{
        opacity:.72;
      }
      100%{
        transform:translateX(112vw) translateY(-36px) rotate(1deg);
        opacity:0;
      }
    }

    @keyframes mapFlyLeft{
      0%{
        transform:translateX(0) scaleX(-1) rotate(-8deg);
        opacity:0;
      }
      8%{
        opacity:.62;
      }
      50%{
        transform:translateX(-54vw) translateY(14px) scaleX(-1) rotate(-11deg);
        opacity:.70;
      }
      92%{
        opacity:.62;
      }
      100%{
        transform:translateX(-112vw) translateY(28px) scaleX(-1) rotate(-14deg);
        opacity:0;
      }
    }

    @media (max-width:980px){
      .map-planes-overlay{
        inset:76px 0 0 0;
      }

      .map-flying-plane{
        font-size:34px;
      }

      .map-flying-plane::after{
        width:100px;
      }

      .map-plane-2{
        font-size:40px;
      }

      .map-plane-3{
        display:none;
      }
    }

    @media (max-width:620px){
      .map-flying-plane{
        font-size:28px;
      }

      .map-plane-1{
        top:90px;
      }

      .map-plane-2{
        top:52%;
        font-size:32px;
      }
    }

    @media (prefers-reduced-motion: reduce){
      .map-flying-plane{
        animation:none !important;
        opacity:.18;
      }
    }

    /* =========================
       AJUSTE UNIVERSAL DE PANTALLAS
       iPhone / Android / tablets / laptop / monitores
    ========================= */
    :root{
      --header-height:88px;
      --page-gutter:clamp(18px, 5vw, 7%);
    }

    html{
      -webkit-text-size-adjust:100%;
      text-size-adjust:100%;
    }

    body{
      min-width:320px;
    }

    img{
      max-width:100%;
    }

    .header{
      height:var(--header-height);
      padding-left:max(2%, env(safe-area-inset-left));
      padding-right:max(2%, env(safe-area-inset-right));
    }

    .map-hero{
      min-height:100svh;
      min-height:100dvh;
      height:100vh;
      height:100svh;
      height:100dvh;
      padding-top:var(--header-height);
    }

    .map-hero::before,
    .map-planes-overlay{
      inset:var(--header-height) 0 0;
    }

    section:not(.map-hero):not(.intro-section):not(.almas-section){
      padding:clamp(65px, 8vw, 110px) var(--page-gutter);
    }

    .intro-section{
      min-height:100svh;
      min-height:100dvh;
      padding-left:max(18px, env(safe-area-inset-left));
      padding-right:max(18px, env(safe-area-inset-right));
    }

    .section-title h2{
      font-size:clamp(38px, 4.5vw, 58px);
      line-height:1;
    }

    .section-title p{
      font-size:clamp(19px, 2vw, 27px);
      line-height:1.2;
    }

    footer{
      padding-left:max(var(--page-gutter), env(safe-area-inset-left));
      padding-right:max(var(--page-gutter), env(safe-area-inset-right));
    }

    @media (min-width:1600px){
      :root{ --header-height:96px; }

      .header{ padding-left:4%; padding-right:4%; }
      .nav{ gap:clamp(32px, 2.5vw, 58px); }
      .map-brand{ margin-bottom:clamp(70px, 8vh, 120px); }
      .destinos-gallery{ width:min(1500px, calc(100% - 80px)); }
      .destino-photo{ height:clamp(600px, 44vw, 780px); }
    }

    @media (max-width:940px){
      :root{ --header-height:76px; }

      .nav{
        top:var(--header-height);
        right:max(4%, env(safe-area-inset-right));
        max-width:calc(100vw - 32px);
      }

      .map-brand h1{
        white-space:normal;
        text-wrap:balance;
      }
    }

    @media (max-width:600px){
      :root{ --page-gutter:18px; }

      body{ min-width:0; }

      .header{
        padding-left:max(5%, env(safe-area-inset-left));
        padding-right:max(5%, env(safe-area-inset-right));
      }

      .menu-btn{
        flex:0 0 44px;
        -webkit-tap-highlight-color:transparent;
      }

      .map-hero{
        min-height:560px;
        background-position:center center;
      }

      .map-brand{
        width:min(94%, 520px);
        margin-bottom:max(58px, env(safe-area-inset-bottom));
      }

      .map-brand h1{
        font-size:clamp(30px, 10vw, 46px);
        line-height:.92;
        letter-spacing:clamp(2px, .9vw, 4px);
      }

      .map-brand-line{ margin-top:14px; }
      .scroll-indicator{ bottom:max(18px, env(safe-area-inset-bottom)); }

      .intro-section{
        min-height:auto;
        padding-top:clamp(68px, 12vw, 90px);
        padding-bottom:clamp(48px, 10vw, 70px);
      }

      .intro-section h1{
        font-size:clamp(42px, 13vw, 58px);
        line-height:.9;
      }

      .intro-subtitle{
        font-size:clamp(29px, 9vw, 40px);
      }

      .question{ font-size:clamp(22px, 6.2vw, 27px); }
      .answer{ font-size:clamp(24px, 6.5vw, 29px); }
      .benefit{ font-size:clamp(19px, 5.5vw, 23px); }

      .cta{
        min-height:64px;
        height:auto;
        padding:15px 20px;
        font-size:clamp(18px, 5.2vw, 22px);
        text-align:center;
      }

      .destinos-copy p{ font-size:clamp(24px, 7vw, 31px) !important; }
      .destino-photo,
      .destino-photo:last-child{ height:clamp(390px, 130vw, 540px); }
    }

    @media (max-width:360px){
      .logo{ font-size:15px; letter-spacing:1.5px; }
      .map-brand h1{ font-size:30px; }
      .cta{ gap:8px; padding-left:14px; padding-right:14px; }
      .plane{ font-size:27px; }
    }



    /* =========================
       FORMULARIO: DISEÑA TU VIAJE
    ========================= */
    .travel-form-section{
      position:relative;
      overflow:hidden;
      scroll-margin-top:var(--header-height, 88px);
      padding:clamp(78px, 8vw, 118px) var(--page-gutter, 7%) !important;
      background:
        radial-gradient(circle at 15% 12%, rgba(216,168,78,.12), transparent 25%),
        radial-gradient(circle at 86% 88%, rgba(216,168,78,.08), transparent 28%),
        linear-gradient(180deg,#070707 0%,#0c0b09 48%,#050505 100%) !important;
    }

    .travel-form-section::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      opacity:.22;
      background-image:
        linear-gradient(rgba(216,168,78,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(216,168,78,.045) 1px, transparent 1px);
      background-size:42px 42px;
      mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
    }

    .travel-form-intro,
    .planner-shell{
      position:relative;
      z-index:1;
    }

    .travel-form-intro{
      width:min(900px,100%);
      margin:0 auto 34px;
      text-align:center;
    }

    .travel-form-kicker{
      display:inline-flex;
      align-items:center;
      gap:9px;
      margin-bottom:12px;
      color:var(--dorado-claro);
      font-size:clamp(16px,1.5vw,20px);
      letter-spacing:2px;
      text-transform:uppercase;
    }

    .travel-form-intro h2{
      color:#fff8ec;
      font-size:clamp(44px,5.2vw,76px);
      font-weight:500;
      line-height:.95;
      text-wrap:balance;
    }

    .travel-form-intro p{
      width:min(760px,100%);
      margin:15px auto 0;
      color:#d4c9b8;
      font-size:clamp(20px,2vw,27px);
      line-height:1.35;
    }

    .planner-shell{
      width:min(1120px,100%);
      margin:0 auto;
      overflow:hidden;
      border:1px solid rgba(239,196,111,.32);
      border-radius:30px;
      background:rgba(10,10,10,.92);
      box-shadow:0 32px 90px rgba(0,0,0,.58), inset 0 1px 0 rgba(255,255,255,.035);
      backdrop-filter:blur(10px);
    }

    .planner-head{
      padding:25px clamp(20px,4vw,46px) 22px;
      border-bottom:1px solid rgba(216,168,78,.18);
      background:linear-gradient(180deg,rgba(216,168,78,.08),rgba(216,168,78,.015));
    }

    .planner-head-row{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:18px;
      margin-bottom:14px;
    }

    .planner-step-label{
      color:#f4e3c3;
      font-size:19px;
      font-weight:700;
    }

    .planner-step-name{
      color:#b9ae9c;
      font-size:17px;
      text-align:right;
    }

    .planner-progress{
      height:8px;
      overflow:hidden;
      border-radius:99px;
      background:#211c15;
      box-shadow:inset 0 1px 4px rgba(0,0,0,.7);
    }

    .planner-progress-bar{
      width:12.5%;
      height:100%;
      border-radius:inherit;
      background:linear-gradient(90deg,var(--dorado-oscuro),var(--dorado-claro));
      box-shadow:0 0 22px rgba(239,196,111,.36);
      transition:width .35s ease;
    }

    .planner-form{
      padding:clamp(26px,4vw,48px);
    }

    .form-step{
      display:none;
      animation:plannerStepIn .38s cubic-bezier(.22,.8,.25,1) both;
    }

    .form-step.active{
      display:block;
    }

    @keyframes plannerStepIn{
      from{opacity:0;transform:translateY(15px)}
      to{opacity:1;transform:translateY(0)}
    }

    .step-heading{
      margin-bottom:26px;
    }

    .step-heading-number{
      display:inline-grid;
      place-items:center;
      width:42px;
      height:42px;
      margin-bottom:12px;
      border:1px solid rgba(239,196,111,.52);
      border-radius:50%;
      color:var(--dorado-claro);
      font-size:20px;
      font-weight:700;
      background:rgba(216,168,78,.06);
    }

    .step-heading h3{
      color:#fff7e9;
      font-size:clamp(31px,3.4vw,47px);
      font-weight:500;
      line-height:1;
    }

    .step-heading p{
      margin-top:9px;
      color:#bdb3a4;
      font-size:clamp(18px,1.7vw,22px);
      line-height:1.35;
    }

    .form-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:19px;
    }

    .form-grid.one-column{
      grid-template-columns:1fr;
    }

    .form-field{
      min-width:0;
    }

    .form-field.full{
      grid-column:1/-1;
    }

    .form-label,
    .group-label{
      display:block;
      margin-bottom:9px;
      color:#f0dfc3;
      font-size:19px;
      font-weight:700;
    }

    .form-hint{
      display:block;
      margin:-3px 0 10px;
      color:#978e80;
      font-size:15px;
      line-height:1.3;
    }

    .planner-form input[type="text"],
    .planner-form input[type="email"],
    .planner-form input[type="tel"],
    .planner-form input[type="number"],
    .planner-form input[type="date"],
    .planner-form select,
    .planner-form textarea{
      width:100%;
      min-height:54px;
      padding:13px 15px;
      border:1px solid rgba(216,168,78,.25);
      border-radius:13px;
      outline:none;
      background:#12110f;
      color:#fff8ec;
      font-size:18px;
      transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
    }

    .planner-form textarea{
      min-height:112px;
      resize:vertical;
      line-height:1.45;
    }

    .planner-form input:focus,
    .planner-form select:focus,
    .planner-form textarea:focus{
      border-color:var(--dorado-claro);
      background:#17140f;
      box-shadow:0 0 0 4px rgba(216,168,78,.10);
    }

    .planner-form input::placeholder,
    .planner-form textarea::placeholder{
      color:#716a60;
    }

    .planner-form select option{
      color:#fff8ec;
      background:#12110f;
    }

    .choice-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
    }

    .choice-grid.two{
      grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .choice-grid.four{
      grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .choice-card{
      position:relative;
      display:block;
      cursor:pointer;
      user-select:none;
      -webkit-tap-highlight-color:transparent;
    }

    .choice-card input{
      position:absolute;
      width:1px;
      height:1px;
      opacity:0;
      pointer-events:none;
    }

    .choice-content{
      min-height:58px;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      padding:12px 13px;
      border:1px solid rgba(216,168,78,.21);
      border-radius:14px;
      background:#12110f;
      color:#d6cdbc;
      text-align:center;
      font-size:17px;
      line-height:1.15;
      transition:.22s ease;
    }

    .choice-card:hover .choice-content{
      border-color:rgba(239,196,111,.55);
      transform:translateY(-2px);
    }

    .choice-card input:focus-visible + .choice-content{
      box-shadow:0 0 0 4px rgba(216,168,78,.13);
    }

    .choice-card input:checked + .choice-content{
      border-color:var(--dorado-claro);
      color:#fff6e7;
      background:linear-gradient(180deg,rgba(216,168,78,.22),rgba(157,104,28,.12));
      box-shadow:0 9px 25px rgba(0,0,0,.24), inset 0 0 0 1px rgba(239,196,111,.08);
    }

    .choice-icon{
      font-size:21px;
      line-height:1;
    }

    .conditional-box{
      margin-top:18px;
      padding:20px;
      border:1px solid rgba(216,168,78,.18);
      border-radius:17px;
      background:rgba(216,168,78,.035);
      animation:plannerStepIn .3s ease both;
    }

    .conditional-box.hidden{
      display:none;
    }

    .notes-box{
      margin-top:22px;
      padding-top:20px;
      border-top:1px dashed rgba(216,168,78,.18);
    }

    .counter-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:15px;
    }

    .counter-card{
      padding:17px;
      border:1px solid rgba(216,168,78,.20);
      border-radius:16px;
      background:#11100e;
    }

    .counter-card label{
      display:block;
      margin-bottom:9px;
      color:#ead9bd;
      font-size:18px;
      font-weight:700;
    }

    .counter-card small{
      display:block;
      margin-top:7px;
      color:#8e8578;
      font-size:14px;
    }

    .child-ages-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:13px;
      margin-top:13px;
    }

    .range-list{
      display:grid;
      gap:16px;
    }

    .range-row{
      display:grid;
      grid-template-columns:150px 1fr 38px;
      align-items:center;
      gap:15px;
      padding:13px 15px;
      border:1px solid rgba(216,168,78,.17);
      border-radius:14px;
      background:#11100e;
    }

    .range-row label{
      color:#e8d8bd;
      font-size:18px;
      font-weight:700;
    }

    .range-row input[type="range"]{
      width:100%;
      accent-color:var(--dorado-claro);
    }

    .range-value{
      display:grid;
      place-items:center;
      width:36px;
      height:36px;
      border-radius:50%;
      color:#fff7e9;
      background:#2b2114;
      font-size:17px;
      font-weight:700;
    }

    .group-error{
      display:none;
      margin-top:9px;
      color:#ffb2a7;
      font-size:15px;
    }

    .group-invalid .group-error{
      display:block;
    }

    .group-invalid .choice-content{
      border-color:rgba(255,118,101,.7);
    }

    .field-invalid{
      border-color:#ff7665 !important;
      box-shadow:0 0 0 3px rgba(255,118,101,.09) !important;
    }

    .form-divider{
      height:1px;
      margin:25px 0;
      background:linear-gradient(90deg,transparent,rgba(216,168,78,.24),transparent);
    }

    .trust-message{
      margin:25px 0 0;
      padding:19px 20px;
      border-left:3px solid var(--dorado);
      border-radius:0 13px 13px 0;
      background:rgba(216,168,78,.06);
      color:#d9cfbf;
      font-size:17px;
      line-height:1.45;
    }

    .planner-actions{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:14px;
      margin-top:31px;
      padding-top:24px;
      border-top:1px solid rgba(216,168,78,.16);
    }

    .planner-btn{
      min-height:54px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      padding:12px 24px;
      border-radius:999px;
      border:1px solid rgba(216,168,78,.42);
      cursor:pointer;
      font-size:19px;
      font-weight:700;
      transition:.22s ease;
    }

    .planner-btn.secondary{
      color:#e8dcc8;
      background:#12110f;
    }

    .planner-btn.primary{
      margin-left:auto;
      border-color:var(--dorado-claro);
      color:#fff;
      background:linear-gradient(180deg,#d9a94e,#9c661c);
      box-shadow:0 12px 30px rgba(157,104,28,.25);
    }

    .planner-btn:hover{
      transform:translateY(-2px);
      filter:brightness(1.07);
    }

    .planner-btn[hidden]{
      display:none;
    }

    .summary-panel{
      margin-top:25px;
      overflow:hidden;
      border:1px solid rgba(216,168,78,.24);
      border-radius:20px;
      background:#0d0c0a;
    }

    .summary-head{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:15px;
      padding:17px 20px;
      border-bottom:1px solid rgba(216,168,78,.17);
      background:rgba(216,168,78,.055);
    }

    .summary-head h4{
      color:#f6e8d0;
      font-size:24px;
      font-weight:700;
    }

    .copy-summary-btn{
      border:0;
      background:transparent;
      color:var(--dorado-claro);
      cursor:pointer;
      font-size:17px;
      font-weight:700;
    }

    .summary-body{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:1px;
      background:rgba(216,168,78,.14);
    }

    .summary-group{
      padding:18px 19px;
      background:#0e0d0b;
    }

    .summary-group.full{
      grid-column:1/-1;
    }

    .summary-group-title{
      display:flex;
      justify-content:space-between;
      gap:12px;
      margin-bottom:10px;
      color:var(--dorado-claro);
      font-size:19px;
      font-weight:700;
    }

    .summary-edit{
      border:0;
      padding:0;
      background:transparent;
      color:#a89c8b;
      cursor:pointer;
      font-size:15px;
      text-decoration:underline;
    }

    .summary-row{
      display:grid;
      grid-template-columns:minmax(110px,.42fr) 1fr;
      gap:10px;
      padding:5px 0;
      color:#d5ccbd;
      font-size:16px;
      line-height:1.35;
    }

    .summary-row strong{
      color:#f0e3cf;
      font-weight:700;
    }

    .submit-status{
      display:none;
      margin-top:18px;
      padding:16px 18px;
      border:1px solid rgba(114,210,147,.36);
      border-radius:13px;
      background:rgba(68,162,101,.10);
      color:#bfe7cc;
      font-size:17px;
      line-height:1.4;
    }

    .submit-status.show{
      display:block;
    }

    .privacy-check{
      display:flex;
      align-items:flex-start;
      gap:11px;
      margin-top:18px;
      color:#c5bbad;
      font-size:16px;
      line-height:1.35;
      cursor:pointer;
    }

    .privacy-check input{
      width:19px;
      height:19px;
      margin-top:2px;
      accent-color:var(--dorado-claro);
      flex:0 0 auto;
    }

    @media (max-width:900px){
      .choice-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
      .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .summary-body{grid-template-columns:1fr}
      .summary-group.full{grid-column:auto}
    }

    @media (max-width:700px){
      .planner-shell{border-radius:22px}
      .planner-form{padding:24px 18px 28px}
      .planner-head{padding:20px 18px}
      .planner-head-row{align-items:flex-start}
      .planner-step-name{font-size:15px;max-width:50%}
      .form-grid{grid-template-columns:1fr}
      .form-field.full{grid-column:auto}
      .counter-grid{grid-template-columns:1fr}
      .child-ages-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .range-row{grid-template-columns:1fr 38px;gap:8px 12px}
      .range-row input[type="range"]{grid-column:1/-1;grid-row:2}
      .planner-actions{flex-wrap:wrap}
      .planner-btn{flex:1;min-width:135px;padding-left:16px;padding-right:16px}
      .planner-btn.primary{margin-left:0}
    }

    @media (max-width:480px){
      .choice-grid,
      .choice-grid.two,
      .choice-grid.four{grid-template-columns:1fr}
      .child-ages-grid{grid-template-columns:1fr}
      .summary-row{grid-template-columns:1fr;gap:2px}
      .planner-head-row{display:block}
      .planner-step-name{text-align:left;max-width:none;margin-top:4px}
      .planner-btn{width:100%;flex-basis:100%}
    }

/* =========================
   AJUSTES DE PRODUCCIÓN 10/10
========================= */
section[id]{scroll-margin-top:calc(var(--header-height,88px) + 10px)}
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.privacy-check a, footer a{color:var(--dorado-claro);text-underline-offset:3px}
.privacy-check a:hover, footer a:hover{color:#fff0c9}
.menu-btn:focus-visible,.nav a:focus-visible,.cta:focus-visible,.planner-btn:focus-visible,.copy-summary-btn:focus-visible,.summary-edit:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--dorado-claro);outline-offset:3px}
.planner-btn:disabled{cursor:not-allowed;opacity:.62;transform:none!important;filter:none!important}
.submit-status.is-error{border-color:rgba(255,118,101,.45);color:#ffd4ce;background:rgba(255,118,101,.08)}
.submit-status.is-success{border-color:rgba(126,220,160,.38);color:#d9ffe7;background:rgba(72,180,111,.08)}
@media (hover:none){.cta:hover,.planner-btn:hover,.destino-photo:hover{transform:none}}


/* =========================
   DESTINO AL ALMA SHOP
========================= */
.shop-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 12% 12%,rgba(216,168,78,.12),transparent 25%),
    radial-gradient(circle at 88% 72%,rgba(216,168,78,.08),transparent 28%),
    linear-gradient(180deg,#050505 0%,#0c0a07 48%,#050505 100%) !important;
}

.shop-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    linear-gradient(rgba(216,168,78,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(216,168,78,.035) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 88%,transparent);
}

.shop-glow{
  position:absolute;
  z-index:-1;
  width:420px;
  height:420px;
  border-radius:50%;
  filter:blur(100px);
  opacity:.12;
  pointer-events:none;
}

.shop-glow-one{
  top:4%;
  left:-150px;
  background:#d8a84e;
}

.shop-glow-two{
  right:-170px;
  bottom:8%;
  background:#8f5b18;
}

.shop-intro{
  width:min(900px,100%);
  margin:0 auto clamp(42px,6vw,74px);
  text-align:center;
}

.shop-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:13px;
  color:var(--dorado-claro);
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:clamp(13px,1.1vw,16px);
  font-weight:600;
  letter-spacing:2.5px;
  text-transform:uppercase;
}

.shop-intro h2{
  color:#fff8ec;
  font-size:clamp(46px,5.7vw,82px);
  font-weight:500;
  line-height:.95;
  text-wrap:balance;
}

.shop-intro p{
  width:min(760px,100%);
  margin:20px auto 0;
  color:#cfc3b2;
  font-size:clamp(20px,1.9vw,27px);
  line-height:1.4;
}

.shop-products{
  width:min(1380px,100%);
  margin:0 auto;
  display:grid;
  gap:clamp(30px,5vw,72px);
}

.shop-product{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
  gap:clamp(30px,5vw,72px);
  align-items:center;
  padding:clamp(18px,2.2vw,30px);
  border:1px solid rgba(216,168,78,.22);
  border-radius:30px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008)),
    rgba(10,9,7,.76);
  box-shadow:
    0 28px 75px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(8px);
}

.shop-product::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(239,196,111,.06),transparent 32%,transparent 70%,rgba(216,168,78,.035));
}

.shop-product.reverse{
  grid-template-columns:minmax(340px,.92fr) minmax(0,1.08fr);
}

.shop-product.reverse .shop-media{
  order:2;
}

.shop-product.reverse .shop-product-info{
  order:1;
}

.shop-media{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px;
  gap:14px;
}

.shop-main-photo,
.shop-thumbs figure{
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(216,168,78,.20);
  background:#17130e;
}

.shop-main-photo{
  min-height:560px;
  border-radius:23px;
}

.shop-main-photo::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 67%,rgba(0,0,0,.25));
}

.shop-main-photo img,
.shop-thumbs img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.22,.8,.25,1),filter .4s ease;
}

.shop-main-photo:hover img,
.shop-thumbs figure:hover img{
  transform:scale(1.025);
}

.shop-photo-label{
  position:absolute;
  z-index:2;
  left:18px;
  bottom:18px;
  padding:8px 12px;
  border:1px solid rgba(239,196,111,.38);
  border-radius:999px;
  background:rgba(5,5,5,.74);
  color:#f3d89f;
  backdrop-filter:blur(8px);
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.shop-thumbs{
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:14px;
  min-width:0;
}

.shop-thumbs figure{
  min-height:0;
  border-radius:18px;
}

.shop-product-info{
  position:relative;
  z-index:1;
  padding:clamp(8px,1.6vw,24px);
}

.shop-number{
  display:block;
  margin-bottom:18px;
  color:rgba(239,196,111,.42);
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:13px;
  font-weight:700;
  letter-spacing:3px;
}

.shop-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 12px;
  border:1px solid rgba(216,168,78,.30);
  border-radius:999px;
  background:rgba(216,168,78,.07);
  color:#e9c77f;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
}

.shop-product h3{
  margin:17px 0 16px;
  color:#fff7e9;
  font-size:clamp(38px,4vw,58px);
  font-weight:500;
  line-height:.96;
  text-wrap:balance;
}

.shop-description{
  color:#d0c5b5;
  font-size:clamp(19px,1.65vw,24px);
  line-height:1.5;
}

.shop-specs{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:24px 0;
}

.shop-specs span{
  padding:9px 13px;
  border:1px solid rgba(216,168,78,.20);
  border-radius:999px;
  background:#12100d;
  color:#e7d7bd;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:.25px;
}

.shop-variants{
  margin-top:6px;
  padding:18px 0 4px;
  border-top:1px solid rgba(216,168,78,.16);
}

.shop-variants strong{
  display:block;
  margin-bottom:5px;
  color:#f0cf91;
  font-size:20px;
  font-weight:600;
}

.shop-variants p{
  color:#ab9f8e;
  font-size:17px;
  line-height:1.45;
}

.shop-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px 18px;
  margin-top:27px;
}

.shop-buy-btn{
  min-height:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:13px 23px;
  border:1px solid #e3b257;
  border-radius:999px;
  background:linear-gradient(180deg,#d9a94e,#9c661c);
  color:#fff;
  box-shadow:0 13px 30px rgba(157,104,28,.23);
  cursor:pointer;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:14px;
  font-weight:700;
  letter-spacing:.2px;
  transition:.25s ease;
}

.shop-buy-btn:hover{
  transform:translateY(-3px);
  filter:brightness(1.08);
  box-shadow:0 18px 38px rgba(183,119,26,.30);
}

.shop-buy-btn:focus-visible,
.shop-link:focus-visible{
  outline:2px solid var(--dorado-claro);
  outline-offset:4px;
}

.shop-link{
  color:#d7c6aa;
  text-decoration-color:rgba(239,196,111,.55);
  text-underline-offset:5px;
  font-size:17px;
  transition:.2s ease;
}

.shop-link:hover{
  color:#f5d897;
}

.shop-note{
  width:min(760px,100%);
  margin:clamp(42px,5vw,65px) auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  padding:17px 20px;
  border-top:1px solid rgba(216,168,78,.16);
  border-bottom:1px solid rgba(216,168,78,.16);
  color:#aa9d8a;
  text-align:center;
  font-size:17px;
}

.shop-note span{
  color:var(--dorado);
}

.shop-note strong{
  color:#e9cc95;
  font-weight:600;
}

.shop-status{
  display:none;
  width:min(680px,100%);
  margin:18px auto 0;
  padding:13px 16px;
  border:1px solid rgba(216,168,78,.22);
  border-radius:12px;
  background:rgba(216,168,78,.06);
  color:#e4d4b9;
  text-align:center;
  font-size:16px;
}

.shop-status.show{
  display:block;
}

@media (max-width:1180px){
  .nav{gap:18px}
  .nav a{font-size:14px}
  .shop-product,
  .shop-product.reverse{
    grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);
    gap:30px;
  }
  .shop-main-photo{
    min-height:540px;
  }
}

@media (max-width:940px){
  .shop-product,
  .shop-product.reverse{
    grid-template-columns:1fr;
    padding:18px;
  }

  .shop-product.reverse .shop-media,
  .shop-product.reverse .shop-product-info{
    order:initial;
  }

  .shop-main-photo{
    min-height:560px;
  }

  .shop-product-info{
    padding:14px 8px 10px;
  }
}

@media (max-width:650px){
  .shop-section{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  .shop-intro{
    margin-bottom:36px;
  }

  .shop-intro h2{
    font-size:clamp(40px,12vw,55px);
  }

  .shop-product{
    border-radius:22px;
    padding:12px;
  }

  .shop-media{
    grid-template-columns:1fr;
  }

  .shop-main-photo{
    min-height:0;
    aspect-ratio:4/5;
    border-radius:17px;
  }

  .shop-thumbs{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .shop-thumbs figure{
    aspect-ratio:1/1;
    border-radius:14px;
  }

  .shop-lightbox{
    padding:16px;
  }

  .shop-lightbox-figure{
    width:min(100%, calc(100vw - 32px));
  }

  .shop-lightbox-figure img{
    max-height:76vh;
    border-radius:18px;
  }

  .shop-lightbox-caption{
    font-size:16px;
  }

  .shop-lightbox-close{
    top:10px;
    right:10px;
    width:46px;
    height:46px;
    font-size:28px;
  }

  .shop-product h3{
    font-size:clamp(35px,10vw,46px);
  }

  .shop-description{
    font-size:19px;
  }

  .shop-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .shop-buy-btn{
    width:100%;
  }

  .shop-link{
    text-align:center;
  }
}

@media (prefers-reduced-motion:reduce){
  .shop-main-photo,
  .shop-main-photo img,
  .shop-thumbs figure,
  .shop-thumbs img,
  .shop-buy-btn,
  .shop-lightbox-close{
    transition:none !important;
  }
}


/* =========================================================
   SHOP — CATÁLOGO VISUAL V2
   Imágenes protagonistas, sin recortes agresivos
========================================================= */
.shop-section{
  padding-top:clamp(82px,8vw,120px) !important;
  padding-bottom:clamp(90px,9vw,130px) !important;
}

.shop-intro{
  width:min(820px,100%);
  margin-bottom:clamp(34px,4.5vw,58px);
}

.shop-intro h2{
  font-size:clamp(44px,5vw,72px);
}

.shop-intro p{
  max-width:690px;
  font-size:clamp(19px,1.6vw,24px);
}

.shop-products{
  width:min(1440px,100%);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px,3vw,42px);
  align-items:start;
}

.shop-product,
.shop-product.reverse{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
  padding:14px;
  border-radius:28px;
  overflow:visible;
  background:
    linear-gradient(155deg,rgba(255,255,255,.045),rgba(255,255,255,.008)),
    rgba(9,8,7,.88);
  box-shadow:0 30px 80px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.035);
}

.shop-product.reverse .shop-media,
.shop-product.reverse .shop-product-info{
  order:initial;
}

.shop-media{
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}

.shop-main-photo{
  width:100%;
  min-height:0;
  aspect-ratio:4 / 3;
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 42%,rgba(216,168,78,.10),transparent 56%),
    #0d0c0a;
  box-shadow:0 18px 42px rgba(0,0,0,.26);
  transform-origin:center;
  z-index:1;
}

.shop-main-photo img{
  padding:10px;
  object-fit:contain;
  object-position:center;
}

.shop-main-photo:hover,
.shop-main-photo:focus-visible{
  z-index:12;
  transform:translateY(-8px) scale(1.055);
  box-shadow:0 36px 75px rgba(0,0,0,.55),0 0 38px rgba(216,168,78,.16);
}

.shop-main-photo:hover img,
.shop-main-photo:focus-visible img{
  transform:scale(1.035);
}

.shop-main-photo::after{
  background:linear-gradient(180deg,transparent 74%,rgba(0,0,0,.20));
}

.shop-main-photo::before{
  content:"Ver grande ↗";
  opacity:1;
  top:16px;
  right:16px;
  background:rgba(4,4,4,.76);
  border-color:rgba(239,196,111,.42);
  color:#f4dcaa;
  transform:none;
}

.shop-thumbs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.shop-thumbs figure{
  width:100%;
  aspect-ratio:16 / 10;
  border-radius:16px;
  background:#0d0c0a;
  transform-origin:center;
}

.shop-thumbs img{
  padding:6px;
  object-fit:contain;
  object-position:center;
}

.shop-thumbs figure:hover,
.shop-thumbs figure:focus-visible{
  z-index:10;
  transform:translateY(-5px) scale(1.065);
  box-shadow:0 26px 58px rgba(0,0,0,.50),0 0 26px rgba(216,168,78,.12);
}

.shop-thumbs figure:hover img,
.shop-thumbs figure:focus-visible img{
  transform:scale(1.035);
}

.shop-thumbs figure::before{
  content:"Ampliar";
  top:10px;
  right:10px;
  padding:6px 9px;
  font-size:10px;
}

.shop-product-info{
  padding:24px 12px 14px;
}

.shop-number{
  display:none;
}

.shop-badge{
  margin-bottom:4px;
}

.shop-product h3{
  margin:14px 0 11px;
  font-size:clamp(32px,2.8vw,45px);
  line-height:1;
}

.shop-description{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:clamp(18px,1.25vw,21px);
  line-height:1.42;
}

.shop-specs{
  margin:18px 0 12px;
  gap:7px;
}

.shop-specs span{
  padding:7px 10px;
  font-size:11px;
}

.shop-variants{
  margin-top:3px;
  padding-top:14px;
}

.shop-variants strong{
  font-size:18px;
}

.shop-variants p{
  font-size:15px;
  line-height:1.4;
}

.shop-actions{
  margin-top:20px;
  gap:11px 15px;
}

.shop-buy-btn{
  min-height:52px;
  padding:11px 19px;
  font-size:13px;
}

.shop-link{
  font-size:15px;
}

.shop-photo-label{
  left:14px;
  bottom:14px;
  font-size:10px;
  letter-spacing:1px;
}

.shop-note{
  margin-top:clamp(35px,4vw,52px);
}

@media (max-width:1050px){
  .shop-products{
    grid-template-columns:1fr;
    width:min(760px,100%);
  }

  .shop-product,
  .shop-product.reverse{
    padding:14px;
  }

  .shop-main-photo{
    aspect-ratio:16 / 10;
  }

  .shop-product-info{
    padding:24px 14px 16px;
  }

  .shop-product h3{
    font-size:clamp(36px,6vw,52px);
  }
}

@media (max-width:650px){
  .shop-section{
    padding-top:72px !important;
  }

  .shop-products{
    gap:24px;
  }

  .shop-product,
  .shop-product.reverse{
    padding:9px;
    border-radius:21px;
  }

  .shop-main-photo{
    aspect-ratio:1 / 1;
    border-radius:16px;
  }

  .shop-main-photo img{
    padding:5px;
  }

  .shop-main-photo:hover,
  .shop-main-photo:focus-visible,
  .shop-thumbs figure:hover,
  .shop-thumbs figure:focus-visible{
    transform:none;
  }

  .shop-main-photo::before{
    top:10px;
    right:10px;
    padding:6px 9px;
    font-size:9px;
  }

  .shop-thumbs{
    gap:8px;
  }

  .shop-thumbs figure{
    aspect-ratio:1 / 1;
    border-radius:13px;
  }

  .shop-product-info{
    padding:20px 9px 11px;
  }

  .shop-product h3{
    font-size:clamp(32px,9vw,43px);
  }

  .shop-description{
    -webkit-line-clamp:4;
    font-size:18px;
  }

  .shop-variants p{
    font-size:14px;
  }
}

/* =========================================================
   SHOP — CATÁLOGO VISUAL V3 / FULL WIDTH DESKTOP
   Ajustado para monitores 1920px+ y navegación fija
========================================================= */
.shop-section{
  scroll-margin-top:calc(var(--header-height, 88px) + 18px);
  padding-top:calc(var(--header-height, 88px) + clamp(55px,5vw,90px)) !important;
  padding-left:clamp(28px,3.2vw,68px) !important;
  padding-right:clamp(28px,3.2vw,68px) !important;
  padding-bottom:clamp(95px,8vw,150px) !important;
}

.shop-intro{
  width:min(1180px,100%);
  margin:0 auto clamp(48px,5vw,78px);
}

.shop-intro h2{
  font-size:clamp(58px,5vw,94px);
  line-height:.93;
}

.shop-intro p{
  width:min(900px,100%);
  max-width:none;
  font-size:clamp(22px,1.55vw,29px);
  line-height:1.35;
}

.shop-products{
  width:min(1900px,calc(100vw - 72px));
  max-width:none;
  margin:0 auto;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(28px,2.5vw,52px);
  align-items:start;
}

.shop-product,
.shop-product.reverse{
  width:100%;
  min-width:0;
  height:auto !important;
  align-self:start;
  padding:clamp(16px,1.25vw,24px);
  border-radius:32px;
  gap:0;
}

.shop-media{
  width:100%;
  height:auto !important;
  gap:clamp(12px,1vw,18px);
}

.shop-main-photo{
  width:100%;
  min-height:0 !important;
  aspect-ratio:16 / 10;
  border-radius:24px;
  margin:0;
}

.shop-main-photo img{
  width:100%;
  height:100%;
  padding:clamp(8px,.7vw,13px);
  object-fit:contain;
  object-position:center;
}

.shop-thumbs{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:none !important;
  gap:clamp(12px,1vw,18px);
  margin:0;
}

.shop-thumbs figure{
  width:100%;
  min-height:0 !important;
  aspect-ratio:4 / 3;
  margin:0;
  border-radius:19px;
}

.shop-thumbs img{
  width:100%;
  height:100%;
  padding:clamp(6px,.55vw,10px);
  object-fit:contain;
  object-position:center;
}

.shop-product-info{
  width:100%;
  height:auto !important;
  margin:0 !important;
  padding:clamp(25px,2vw,36px) clamp(8px,1vw,16px) 12px;
}

.shop-product h3{
  margin:14px 0 14px;
  font-size:clamp(38px,2.65vw,54px);
}

.shop-description{
  max-width:820px;
  font-size:clamp(19px,1.15vw,23px);
  -webkit-line-clamp:3;
}

.shop-specs{
  margin:20px 0 15px;
}

.shop-specs span{
  padding:8px 12px;
  font-size:12px;
}

.shop-variants{
  padding-top:16px;
}

.shop-variants strong{
  font-size:20px;
}

.shop-variants p{
  font-size:16px;
}

.shop-actions{
  margin-top:23px;
}

.shop-buy-btn{
  min-height:56px;
  padding:12px 22px;
  font-size:14px;
}

.shop-main-photo:hover,
.shop-main-photo:focus-visible{
  z-index:20;
  transform:translateY(-8px) scale(1.035);
  box-shadow:0 40px 90px rgba(0,0,0,.62),0 0 42px rgba(216,168,78,.18);
}

.shop-main-photo:hover img,
.shop-main-photo:focus-visible img{
  transform:scale(1.075);
}

.shop-thumbs figure:hover,
.shop-thumbs figure:focus-visible{
  z-index:18;
  transform:translateY(-6px) scale(1.045);
  box-shadow:0 30px 65px rgba(0,0,0,.56),0 0 30px rgba(216,168,78,.14);
}

.shop-thumbs figure:hover img,
.shop-thumbs figure:focus-visible img{
  transform:scale(1.065);
}

@media (min-width:1700px){
  .shop-products{
    width:min(1960px,calc(100vw - 92px));
  }

  .shop-main-photo{
    aspect-ratio:16 / 9;
  }

  .shop-product h3{
    font-size:clamp(44px,2.35vw,58px);
  }
}

@media (max-width:1180px){
  .shop-products{
    width:min(920px,100%);
    grid-template-columns:1fr;
  }

  .shop-main-photo{
    aspect-ratio:16 / 9;
  }

  .shop-thumbs figure{
    aspect-ratio:16 / 10;
  }
}

@media (max-width:650px){
  .shop-section{
    padding-top:calc(var(--header-height, 76px) + 38px) !important;
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .shop-intro h2{
    font-size:clamp(42px,12vw,58px);
  }

  .shop-intro p{
    font-size:19px;
  }

  .shop-products{
    width:100%;
  }

  .shop-main-photo{
    aspect-ratio:1 / 1;
  }

  .shop-thumbs figure{
    aspect-ratio:1 / 1;
  }

  .shop-product-info{
    padding:20px 8px 10px;
  }
}


/* =========================================================
   FIX FINAL — NAVEGACIÓN / ESPACIADO SHOP
   2026-08-07
========================================================= */
.shop-section{
  scroll-margin-top:calc(var(--header-height, 88px) + 8px) !important;
  padding-top:clamp(46px, 4vw, 70px) !important;
}

.shop-intro{
  margin-top:0 !important;
  margin-bottom:clamp(36px, 4vw, 62px) !important;
}

.nav a.active,
.nav a[aria-current="page"]{
  color:var(--dorado-claro) !important;
}

.nav a.active::after,
.nav a[aria-current="page"]::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:20px;
  width:33px;
  height:2px;
  transform:translateX(-50%);
  background:var(--dorado);
}

@media (max-width:940px){
  .shop-section{
    scroll-margin-top:calc(var(--header-height, 76px) + 6px) !important;
    padding-top:38px !important;
  }

  .nav a[aria-current="page"]::after{
    display:none;
  }
}

@media (max-width:650px){
  .shop-section{
    padding-top:32px !important;
  }
}

/* =========================================================
   AJUSTE DEFINITIVO — SHOP PEGADO AL HEADER
   Elimina el espacio vertical excesivo al navegar a #shop.
========================================================= */
.shop-section{
  scroll-margin-top:var(--header-height, 88px) !important;
  padding-top:14px !important;
}

.shop-intro{
  margin-top:0 !important;
  margin-bottom:clamp(24px, 2.2vw, 36px) !important;
}

@media (max-width:940px){
  .shop-section{
    scroll-margin-top:var(--header-height, 76px) !important;
    padding-top:14px !important;
  }
}

@media (max-width:650px){
  .shop-section{
    padding-top:12px !important;
  }
}

/* =========================================================
   COTIZACIÓN EN VENTANA
   El formulario queda fuera del recorrido normal de la página.
========================================================= */
body.travel-modal-open{
  overflow:hidden;
}

.travel-form-modal[hidden]{
  display:none !important;
}

.travel-form-modal:not([hidden]){
  position:fixed !important;
  inset:0;
  z-index:10000;
  width:100%;
  height:100dvh;
  min-height:100vh;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-margin-top:0;
  padding-top:clamp(70px, 7vw, 104px) !important;
  padding-bottom:clamp(54px, 7vw, 92px) !important;
}

.travel-modal-close{
  position:fixed;
  top:max(18px, env(safe-area-inset-top));
  right:max(22px, env(safe-area-inset-right));
  z-index:10002;
  width:48px;
  height:48px;
  border:1px solid rgba(216,168,78,.7);
  border-radius:50%;
  background:rgba(8,8,7,.9);
  color:#f8e2b4;
  font:300 34px/1 Georgia, serif;
  cursor:pointer;
  box-shadow:0 10px 34px rgba(0,0,0,.38);
  transition:background .2s ease, color .2s ease, transform .2s ease;
}

.travel-modal-close:hover,
.travel-modal-close:focus-visible{
  background:#d5a343;
  color:#080806;
  transform:scale(1.05);
  outline:none;
}

@media (max-width:650px){
  .travel-form-modal:not([hidden]){
    padding-top:76px !important;
    padding-bottom:34px !important;
  }

  .travel-modal-close{
    top:max(12px, env(safe-area-inset-top));
    right:max(12px, env(safe-area-inset-right));
    width:44px;
    height:44px;
    font-size:30px;
  }
}

@media (min-width:760px){
  .travel-form-modal:not([hidden]){
    display:grid;
    place-items:center;
    overflow:hidden;
    padding:14px max(4%, 48px) !important;
  }

  .travel-form-modal .travel-form-intro{
    display:none;
  }

  .travel-form-modal .planner-shell{
    display:flex;
    width:min(1120px, calc(100vw - 96px));
    height:min(720px, calc(100dvh - 28px));
    max-height:none;
    min-height:0;
    flex-direction:column;
    overflow:hidden;
  }

  .travel-form-modal .planner-head{
    flex:0 0 auto;
    padding:15px clamp(24px, 3vw, 40px) 13px;
  }

  .travel-form-modal .planner-head-row{
    margin-bottom:9px;
  }

  .travel-form-modal .planner-step-label{
    font-size:16px;
  }

  .travel-form-modal .planner-step-name{
    font-size:14px;
  }

  .travel-form-modal .planner-progress{
    height:6px;
  }

  .travel-form-modal .planner-form{
    display:flex;
    min-height:0;
    flex:1 1 auto;
    flex-direction:column;
    overflow:hidden;
    padding:18px clamp(28px, 3vw, 42px) 16px;
  }

  .travel-form-modal .form-step.active{
    min-height:0;
    flex:1 1 auto;
    overflow:hidden;
  }

  .travel-form-modal .step-heading{
    display:grid;
    grid-template-columns:34px minmax(0, 1fr);
    column-gap:12px;
    align-items:center;
    margin-bottom:13px;
  }

  .travel-form-modal .step-heading-number{
    grid-row:1 / 3;
    width:34px;
    height:34px;
    margin:0;
    font-size:15px;
  }

  .travel-form-modal .step-heading h3{
    font-size:clamp(27px, 2.5vw, 36px);
    line-height:1;
  }

  .travel-form-modal .step-heading p{
    margin-top:4px;
    font-size:15px;
    line-height:1.25;
  }

  .travel-form-modal .form-grid{
    gap:10px 14px;
  }

  .travel-form-modal .form-label,
  .travel-form-modal .group-label{
    margin-bottom:5px;
    font-size:15px;
  }

  .travel-form-modal .form-hint{
    margin:-1px 0 6px;
    font-size:12px;
  }

  .travel-form-modal .planner-form input[type="text"],
  .travel-form-modal .planner-form input[type="email"],
  .travel-form-modal .planner-form input[type="tel"],
  .travel-form-modal .planner-form input[type="number"],
  .travel-form-modal .planner-form input[type="date"],
  .travel-form-modal .planner-form select,
  .travel-form-modal .planner-form textarea{
    min-height:42px;
    padding:9px 12px;
    border-radius:11px;
    font-size:14px;
  }

  .travel-form-modal .planner-form textarea{
    min-height:68px;
    max-height:68px;
    resize:none;
  }

  .travel-form-modal .choice-grid{
    gap:7px;
  }

  .travel-form-modal .choice-content{
    min-height:42px;
    gap:6px;
    padding:8px 10px;
    border-radius:11px;
    font-size:14px;
  }

  .travel-form-modal .choice-icon{
    font-size:17px;
  }

  .travel-form-modal .conditional-box{
    margin-top:9px;
    padding:10px 12px;
    border-radius:12px;
  }

  .travel-form-modal .notes-box{
    margin-top:11px;
    padding-top:9px;
  }

  .travel-form-modal .form-divider{
    margin:12px 0;
  }

  .travel-form-modal .counter-grid{
    gap:9px;
  }

  .travel-form-modal .counter-card{
    padding:10px 12px;
    border-radius:12px;
  }

  .travel-form-modal .counter-card label{
    margin-bottom:5px;
    font-size:15px;
  }

  .travel-form-modal .counter-card small{
    margin-top:4px;
    font-size:11px;
  }

  .travel-form-modal .child-ages-grid{
    gap:8px;
    margin-top:8px;
  }

  .travel-form-modal .range-list{
    gap:7px;
  }

  .travel-form-modal .range-row{
    grid-template-columns:120px 1fr 30px;
    gap:9px;
    padding:7px 10px;
    border-radius:10px;
  }

  .travel-form-modal .range-row label{
    font-size:14px;
  }

  .travel-form-modal .range-value{
    width:29px;
    height:29px;
    font-size:13px;
  }

  .travel-form-modal .privacy-check{
    gap:8px;
    margin-top:9px;
    font-size:12px;
    line-height:1.25;
  }

  .travel-form-modal .privacy-check input{
    width:16px;
    height:16px;
  }

  .travel-form-modal .trust-message{
    margin-top:9px;
    padding:9px 12px;
    font-size:12px;
    line-height:1.3;
  }

  .travel-form-modal .summary-panel{
    margin-top:9px;
    border-radius:13px;
  }

  .travel-form-modal .summary-head{
    padding:8px 12px;
  }

  .travel-form-modal .summary-head h4{
    font-size:16px;
  }

  .travel-form-modal .copy-summary-btn{
    font-size:12px;
  }

  .travel-form-modal .summary-body{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }

  .travel-form-modal .summary-group,
  .travel-form-modal .summary-group.full{
    grid-column:auto;
    padding:7px 9px;
  }

  .travel-form-modal .summary-group-title{
    margin-bottom:4px;
    font-size:12px;
  }

  .travel-form-modal .summary-edit{
    font-size:10px;
  }

  .travel-form-modal .summary-row{
    display:block;
    padding:1px 0;
    font-size:10px;
    line-height:1.2;
  }

  .travel-form-modal .summary-row strong{
    margin-right:3px;
  }

  .travel-form-modal .planner-actions{
    flex:0 0 auto;
    margin-top:12px;
    padding-top:10px;
  }

  .travel-form-modal .planner-btn{
    min-height:43px;
    padding:8px 19px;
    font-size:15px;
  }

  .travel-form-modal .submit-status{
    margin-top:8px;
    padding:9px 12px;
    font-size:12px;
  }
}

/* Presentación más cercana al encabezado en escritorio */
@media (min-width:941px){
  .header{
    border-bottom:0;
  }

  .intro-section{
    border-top:0;
    justify-content:flex-start;
    padding-top:12px;
  }

  .intro-content{
    margin:0 auto;
    transform:translateY(0);
  }
}

/* =========================
   ALMAS VIAJERAS
========================= */
.almas-section{
  position:relative;
  padding:0 clamp(22px, 7vw, 110px) clamp(72px, 8vw, 118px);
  scroll-margin-top:88px;
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 28%, rgba(216,168,78,.12), transparent 30%),
    linear-gradient(135deg, #070706 0%, #0c0a07 52%, #050505 100%);
}

.almas-section::before,
.almas-section::after{
  content:"";
  position:absolute;
  width:180px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(216,168,78,.62), transparent);
}

.almas-section::before{
  display:none;
}

.almas-section::after{
  right:6%;
  bottom:38px;
}

.almas-shell{
  position:relative;
  z-index:1;
  width:min(1280px, 100%);
  margin:0 auto;
}

.almas-heading{
  width:min(760px, 100%);
  margin:0 auto clamp(38px, 5vw, 62px);
  text-align:center;
}

.almas-kicker{
  display:block;
  margin-bottom:14px;
  color:var(--dorado-claro);
  font-size:clamp(12px, 1vw, 15px);
  font-weight:600;
  letter-spacing:2.4px;
  text-transform:uppercase;
}

.almas-heading h2{
  color:var(--blanco);
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:clamp(50px, 6vw, 82px);
  font-weight:500;
  line-height:.92;
}

.almas-carousel{
  position:relative;
}

.almas-carousel-window{
  overflow:hidden;
}

.almas-grid{
  display:flex;
  gap:24px;
  width:100%;
  transform:translate3d(0, 0, 0);
  will-change:transform;
}

.almas-grid.is-animating{
  transition:transform .78s cubic-bezier(.22,.8,.28,1);
}

.almas-story,
.almas-story--panoramic{
  position:relative;
  display:grid;
  flex:0 0 calc((100% - 24px) / 2);
  grid-template-columns:minmax(180px, .82fr) minmax(0, 1.18fr);
  width:auto;
  height:570px;
  min-height:570px;
  overflow:hidden;
  border:1px solid rgba(216,168,78,.25);
  border-radius:24px;
  background:linear-gradient(145deg, rgba(19,16,11,.96), rgba(7,7,6,.98));
  box-shadow:0 22px 58px rgba(0,0,0,.3);
  transition:border-color .25s ease, box-shadow .25s ease;
}

.almas-story:hover{
  border-color:rgba(239,196,111,.52);
  box-shadow:0 28px 66px rgba(0,0,0,.4);
}

.almas-photo{
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:#14110c;
}

.almas-photo::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, transparent 60%, rgba(7,7,6,.2));
}

.almas-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.almas-story--panoramic .almas-photo img{
  object-position:40% center;
}

.almas-story-content{
  display:flex;
  min-width:0;
  min-height:0;
  flex-direction:column;
  padding:clamp(24px, 2.7vw, 34px);
}

.almas-destination{
  display:block;
  margin-bottom:10px;
  color:var(--dorado-claro);
  font-size:11px;
  font-weight:600;
  letter-spacing:1.7px;
  line-height:1.4;
  text-transform:uppercase;
}

.almas-story h3{
  color:#fff8ec;
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:clamp(25px, 2.1vw, 34px);
  font-weight:600;
  line-height:1.02;
}

.almas-story blockquote{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  margin:22px 0 24px;
  padding:18px 7px 0 0;
  overflow-y:auto;
  border-top:1px solid rgba(216,168,78,.2);
  scrollbar-color:rgba(216,168,78,.42) rgba(255,255,255,.03);
  scrollbar-width:thin;
}

.almas-story blockquote::-webkit-scrollbar{
  width:5px;
}

.almas-story blockquote::-webkit-scrollbar-track{
  background:rgba(255,255,255,.03);
}

.almas-story blockquote::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(216,168,78,.42);
}

.almas-story blockquote p{
  color:rgba(242,238,231,.79);
  font-size:clamp(13px, 1vw, 15px);
  line-height:1.6;
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
}

.almas-story blockquote p + p{
  margin-top:10px;
}

.almas-author{
  flex:0 0 auto;
  color:#f5ead8;
  font-family:"Cormorant Garamond", Georgia, serif;
  font-size:18px;
  font-weight:600;
  line-height:1.35;
}

.almas-author::before{
  content:"— ";
  color:var(--dorado);
}

.almas-author span{
  display:block;
  margin-top:5px;
  color:rgba(239,196,111,.76);
  font-family:"Montserrat", Arial, sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:1.6px;
  text-transform:uppercase;
}

.almas-carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:28px;
}

.almas-control{
  display:inline-flex;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(216,168,78,.48);
  border-radius:50%;
  background:rgba(10,9,7,.86);
  color:#f5dfb0;
  font:600 19px/1 "Montserrat", Arial, sans-serif;
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}

.almas-control:hover,
.almas-control:focus-visible{
  border-color:var(--dorado-claro);
  background:var(--dorado);
  color:#080706;
  outline:none;
}

.almas-control--toggle{
  width:auto;
  min-width:112px;
  gap:8px;
  padding:0 16px;
  border-radius:999px;
  font-size:12px;
  letter-spacing:.5px;
}

.almas-counter{
  display:inline-flex;
  min-width:56px;
  align-items:center;
  justify-content:center;
  gap:5px;
  color:rgba(242,238,231,.72);
  font-size:12px;
  font-variant-numeric:tabular-nums;
  letter-spacing:1px;
}

@media (max-width:1060px){
  .almas-story,
  .almas-story--panoramic{
    flex-basis:100%;
    grid-template-columns:minmax(280px, .8fr) minmax(0, 1.2fr);
    height:520px;
    min-height:520px;
  }
}

@media (max-width:650px){
  .almas-section{
    padding:64px 18px;
    scroll-margin-top:76px;
  }

  .almas-heading{
    margin-bottom:34px;
  }

  .almas-grid{
    gap:18px;
  }

  .almas-story,
  .almas-story--panoramic{
    flex-basis:100%;
    grid-template-columns:1fr;
    grid-template-rows:300px minmax(0, 1fr);
    height:900px;
    min-height:900px;
    border-radius:20px;
  }

  .almas-story-content{
    padding:27px 24px 30px;
  }

  .almas-story h3{
    font-size:29px;
  }

  .almas-carousel-controls{
    flex-wrap:wrap;
    margin-top:22px;
  }

  .almas-control--toggle{
    min-width:104px;
  }
}

@media (prefers-reduced-motion:reduce){
  .almas-grid.is-animating{
    transition:none;
  }
}

/* =========================================================
   TRAVEL SHOP — CARRUSEL DE PRODUCTOS
========================================================= */
.shop-carousel{
  width:min(1540px,100%);
  margin:0 auto;
}

.shop-carousel-viewport{
  width:100%;
  overflow:hidden;
  border-radius:32px;
}

.shop-carousel .shop-products{
  width:100% !important;
  max-width:none !important;
  display:flex !important;
  grid-template-columns:none !important;
  align-items:stretch;
  gap:0 !important;
  margin:0 !important;
  transform:translate3d(0,0,0);
  will-change:transform;
}

.shop-carousel .shop-products.is-animating{
  transition:transform .7s cubic-bezier(.22,.75,.25,1);
}

.shop-carousel .shop-product,
.shop-carousel .shop-product.reverse{
  flex:0 0 100%;
  width:100%;
  min-width:100%;
  align-self:stretch !important;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  align-items:center;
  gap:clamp(28px,3vw,52px);
  margin:0;
  padding:clamp(18px,2vw,30px);
  overflow:hidden;
}

.shop-carousel .shop-product.reverse .shop-media,
.shop-carousel .shop-product.reverse .shop-product-info{
  order:initial;
}

.shop-carousel .shop-media,
.shop-carousel .shop-product.reverse .shop-media{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(126px,170px);
  gap:clamp(12px,1.2vw,18px);
}

.shop-carousel .shop-main-photo{
  min-height:540px !important;
  aspect-ratio:auto;
}

.shop-carousel .shop-thumbs{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:repeat(2,minmax(0,1fr)) !important;
  gap:clamp(12px,1.2vw,18px);
}

.shop-carousel .shop-thumbs figure{
  height:100%;
  min-height:0 !important;
  aspect-ratio:auto;
}

.shop-carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:8px;
  position:relative;
  z-index:4;
}

.shop-carousel-control{
  width:46px;
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(216,168,78,.48);
  border-radius:50%;
  background:rgba(12,10,7,.82);
  color:#f2d79f;
  font:600 19px/1 "Montserrat",Arial,sans-serif;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease;
}

.shop-carousel-control:hover,
.shop-carousel-control:focus-visible{
  border-color:#e4b65d;
  background:#d6a447;
  color:#090806;
  transform:translateY(-2px);
  outline:none;
}

.shop-carousel-control--toggle{
  width:auto;
  min-width:112px;
  gap:8px;
  padding:0 16px;
  border-radius:999px;
  font-size:12px;
  letter-spacing:.45px;
}

.shop-carousel-counter{
  min-width:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:rgba(242,238,231,.76);
  font:500 12px/1 "Montserrat",Arial,sans-serif;
  font-variant-numeric:tabular-nums;
  letter-spacing:1px;
}

@media (max-width:940px){
  .shop-carousel .shop-product,
  .shop-carousel .shop-product.reverse{
    grid-template-columns:1fr;
    gap:0;
  }

  .shop-carousel .shop-media,
  .shop-carousel .shop-product.reverse .shop-media{
    grid-template-columns:1fr;
  }

  .shop-carousel .shop-main-photo{
    min-height:0 !important;
    aspect-ratio:16 / 10;
  }

  .shop-carousel .shop-thumbs{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:none !important;
  }

  .shop-carousel .shop-thumbs figure{
    aspect-ratio:16 / 10;
  }
}

@media (max-width:650px){
  .shop-carousel-viewport{
    border-radius:22px;
  }

  .shop-carousel .shop-product,
  .shop-carousel .shop-product.reverse{
    padding:12px;
  }

  .shop-carousel .shop-main-photo,
  .shop-carousel .shop-thumbs figure{
    aspect-ratio:1 / 1;
  }

  .shop-carousel-controls{
    flex-wrap:wrap;
    margin-top:20px;
  }
}

@media (prefers-reduced-motion:reduce){
  .shop-carousel .shop-products.is-animating{
    transition:none;
  }
}

/* Travel Shop — visor de fotografías compacto y uniforme */
.shop-lightbox{
  z-index:20000;
  padding:clamp(22px,4vw,54px);
  background:rgba(2,2,2,.92);
  backdrop-filter:blur(14px);
}

.shop-lightbox-figure{
  width:min(820px,calc(100vw - 120px));
  max-height:calc(100dvh - 80px);
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  margin:0;
  padding:16px 16px 14px;
  overflow:hidden;
  border:1px solid rgba(216,168,78,.30);
  border-radius:26px;
  background:linear-gradient(145deg,#15120e,#080807);
  box-shadow:0 34px 90px rgba(0,0,0,.66);
}

.shop-lightbox-figure img{
  width:100%;
  height:min(68dvh,680px);
  max-height:none;
  padding:8px;
  object-fit:contain;
  object-position:center;
  border:0;
  border-radius:18px;
  background:#0b0a08;
  box-shadow:none;
}

.shop-lightbox-caption{
  margin:12px 8px 2px;
  color:#d8ccb9;
  font-size:15px;
  line-height:1.35;
}

.shop-lightbox-close{
  position:fixed;
  top:22px;
  right:22px;
  z-index:20002;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-color:rgba(239,196,111,.62);
  background:rgba(10,9,7,.94);
  font-size:29px;
}

@media (max-width:650px){
  .shop-lightbox{
    padding:72px 14px 18px;
  }

  .shop-lightbox-figure{
    width:100%;
    max-height:calc(100dvh - 92px);
    padding:10px 10px 12px;
    border-radius:20px;
  }

  .shop-lightbox-figure img{
    height:min(62dvh,520px);
    padding:4px;
    border-radius:14px;
  }

  .shop-lightbox-caption{
    margin-top:9px;
    font-size:13px;
  }

  .shop-lightbox-close{
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    font-size:26px;
  }
}

/* Cotización — el paso 4 cabe completo dentro de la ventana fija */
@media (min-width:760px){
  .travel-form-modal .form-step[data-step="4"].active .step-heading{
    margin-bottom:8px;
  }

  .travel-form-modal .form-step[data-step="4"] .choice-grid{
    gap:5px 7px;
  }

  .travel-form-modal .form-step[data-step="4"] .choice-content{
    min-height:34px;
    padding:5px 8px;
    font-size:13px;
  }

  .travel-form-modal .form-step[data-step="4"] .form-divider{
    margin:7px 0;
  }

  .travel-form-modal .form-step[data-step="4"] .form-label,
  .travel-form-modal .form-step[data-step="4"] .group-label{
    margin-bottom:3px;
    font-size:14px;
  }

  .travel-form-modal .form-step[data-step="4"] .form-hint{
    margin:0 0 4px;
    font-size:11px;
  }

  .travel-form-modal .form-step[data-step="4"] .notes-box{
    margin-top:7px;
    padding-top:6px;
  }

  .travel-form-modal .form-step[data-step="4"] textarea{
    min-height:50px;
    max-height:50px;
  }

  .travel-form-modal .form-step[data-step="6"].active .step-heading{
    margin-bottom:8px;
  }

  .travel-form-modal .form-step[data-step="6"] .choice-grid{
    gap:5px 7px;
  }

  .travel-form-modal .form-step[data-step="6"] .choice-content{
    min-height:34px;
    padding:5px 8px;
    font-size:13px;
  }

  .travel-form-modal .form-step[data-step="6"] .form-divider{
    margin:7px 0;
  }

  .travel-form-modal .form-step[data-step="6"] .form-label,
  .travel-form-modal .form-step[data-step="6"] .group-label{
    margin-bottom:3px;
    font-size:14px;
  }

  .travel-form-modal .form-step[data-step="6"] .form-hint{
    margin:0 0 4px;
    font-size:11px;
  }

  .travel-form-modal .form-step[data-step="6"] .range-list{
    gap:4px;
  }

  .travel-form-modal .form-step[data-step="6"] .range-row{
    grid-template-columns:105px minmax(0,1fr) 26px;
    gap:7px;
    min-height:32px;
    padding:3px 8px;
  }

  .travel-form-modal .form-step[data-step="6"] .range-row label{
    font-size:13px;
  }

  .travel-form-modal .form-step[data-step="6"] .range-value{
    width:25px;
    height:25px;
    font-size:11px;
  }

  .travel-form-modal .form-step[data-step="6"] .notes-box{
    margin-top:6px;
    padding-top:5px;
  }

  .travel-form-modal .form-step[data-step="6"] textarea{
    min-height:46px;
    max-height:46px;
  }
}

/* Cotización — selector de productos de Travel Shop */
button.shop-link{
  padding:0;
  border:0;
  background:transparent;
  font:inherit;
  cursor:pointer;
}

.shop-addon-grid{
  margin-top:8px;
}

.shop-addon-choice{
  min-height:190px;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  justify-content:stretch;
  gap:18px;
  padding:14px;
  text-align:left;
}

.shop-addon-choice img{
  width:150px;
  height:150px;
  display:block;
  object-fit:contain;
  border:1px solid rgba(216,168,78,.18);
  border-radius:12px;
  background:#0c0b09;
}

.shop-addon-choice > span{
  align-self:center;
}

.shop-addon-choice strong,
.shop-addon-choice small{
  display:block;
}

.shop-addon-choice strong{
  color:#f7ead4;
  font-size:20px;
  line-height:1.15;
}

.shop-addon-choice small{
  margin-top:9px;
  color:#b9ad9b;
  font-size:14px;
  line-height:1.35;
}

.shop-addon-note{
  margin-top:16px;
  text-align:center;
}

@media (max-width:650px){
  .shop-addon-grid{
    grid-template-columns:1fr !important;
  }

  .shop-addon-choice{
    min-height:142px;
    grid-template-columns:110px minmax(0,1fr);
    gap:12px;
    padding:10px;
  }

  .shop-addon-choice img{
    width:110px;
    height:110px;
  }

  .shop-addon-choice strong{
    font-size:17px;
  }

  .shop-addon-choice small{
    font-size:12px;
  }
}

/* Reduce la separación entre Travel Shop y Contacto. */
.shop-section{
  padding-bottom:32px !important;
}

@media (max-width:650px){
  .shop-section{
    padding-bottom:24px !important;
  }
}

/* Encabezado de Travel Shop: jerarquía y colores solicitados. */
.shop-kicker{
  color:var(--dorado-claro) !important;
  font-size:clamp(16px,1.3vw,20px) !important;
}

.shop-intro p{
  color:#fff8ec !important;
  font-size:clamp(24px,1.75vw,32px) !important;
}

@media (max-width:650px){
  .shop-kicker{
    font-size:16px !important;
  }

  .shop-intro p{
    font-size:21px !important;
  }
}

/* Travel Shop compacto: encabezado y ficha forman un solo bloque alineado. */
.shop-intro,
.shop-carousel{
  width:min(1460px,100%) !important;
}

.shop-intro{
  margin:0 auto 20px !important;
}

.shop-kicker{
  margin-bottom:8px !important;
}

.shop-intro p{
  width:min(980px,100%) !important;
  margin-top:12px !important;
  line-height:1.28 !important;
}

@media (min-width:941px){
  .shop-carousel .shop-product,
  .shop-carousel .shop-product.reverse{
    grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
    gap:clamp(22px,2vw,34px);
    padding:18px 22px;
  }

  .shop-carousel .shop-main-photo{
    min-height:450px !important;
  }

  .shop-carousel .shop-media,
  .shop-carousel .shop-product.reverse .shop-media{
    grid-template-columns:minmax(0,1fr) minmax(120px,158px);
    gap:12px;
  }

  .shop-carousel .shop-thumbs{
    gap:12px;
  }

  .shop-carousel .shop-product-info{
    padding:12px 8px 8px;
  }

  .shop-carousel .shop-product h3{
    margin:8px 0 9px;
    font-size:clamp(36px,2.3vw,46px);
    line-height:1.02;
  }

  .shop-carousel .shop-description{
    font-size:clamp(18px,1.05vw,21px);
    line-height:1.34;
  }

  .shop-carousel .shop-specs{
    margin:12px 0 10px;
  }

  .shop-carousel .shop-specs span{
    padding:7px 10px;
  }

  .shop-carousel .shop-variants{
    padding-top:11px;
  }

  .shop-carousel .shop-variants strong{
    font-size:18px;
  }

  .shop-carousel .shop-variants p{
    margin-top:5px;
    font-size:14px;
    line-height:1.35;
  }

  .shop-carousel .shop-actions{
    margin-top:15px;
  }

  .shop-carousel .shop-buy-btn{
    min-height:50px;
  }
}

@media (max-width:940px){
  .shop-intro{
    margin-bottom:18px !important;
  }
}

/* =========================================================
   DESTINO AL ALMA — AJUSTE MÓVIL COMPACTO
   Añadido al final para no afectar escritorio
   ========================================================= */

@media (max-width:650px){

  :root{
    --header-height:60px;
    --page-gutter:14px;
  }

  .header{
    height:60px !important;
    min-height:60px !important;
    padding-left:max(14px, env(safe-area-inset-left)) !important;
    padding-right:max(14px, env(safe-area-inset-right)) !important;
  }

  .logo{
    font-size:15px !important;
    letter-spacing:1.7px !important;
    white-space:nowrap;
  }

  .menu-btn{
    width:38px !important;
    height:38px !important;
    flex:0 0 38px !important;
    font-size:21px !important;
  }

  .nav{
    top:60px !important;
    width:min(250px, calc(100vw - 28px)) !important;
    right:14px !important;
  }

  .nav a{
    padding:12px 0 !important;
    font-size:15px !important;
  }

  /* HERO */
  .map-hero{
    height:78svh !important;
    min-height:500px !important;
    padding-top:60px !important;
    background-position:center center !important;
  }

  .map-hero::before,
  .map-planes-overlay{
    inset:60px 0 0 !important;
  }

  .map-brand{
    width:94% !important;
    margin-bottom:48px !important;
    padding:0 10px;
  }

  .map-brand h1{
    font-size:clamp(27px,8vw,37px) !important;
    line-height:1 !important;
    letter-spacing:clamp(2px,.8vw,3.5px) !important;
    white-space:nowrap !important;
  }

  .map-brand-line{
    width:76% !important;
    margin-top:10px !important;
  }

  .map-brand-line span{
    font-size:19px !important;
  }

  .scroll-indicator{
    width:28px !important;
    height:44px !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
  }

  .map-flying-plane{
    font-size:23px !important;
  }

  .map-flying-plane::after{
    width:70px !important;
  }

  /* SECCIONES GENERALES */
  section:not(.map-hero):not(.intro-section):not(.almas-section){
    padding:46px 14px !important;
  }

  .section-title{
    margin-bottom:22px !important;
  }

  .section-title h2{
    font-size:clamp(31px,9.5vw,40px) !important;
    line-height:1 !important;
  }

  .section-title p{
    margin-top:7px !important;
    font-size:16px !important;
    line-height:1.3 !important;
  }

  /* INTRO */
  .intro-section{
    min-height:auto !important;
    padding:48px 16px 42px !important;
    scroll-margin-top:60px !important;
  }

  .intro-content{
    width:100% !important;
    margin:0 auto !important;
    transform:none !important;
  }

  .intro-section h1{
    font-size:clamp(38px,11vw,48px) !important;
    line-height:.92 !important;
    letter-spacing:-.5px !important;
    margin-bottom:2px !important;
  }

  .intro-subtitle{
    font-size:clamp(28px,8vw,35px) !important;
    line-height:1 !important;
    margin:5px 0 14px !important;
  }

  .ornament{
    width:min(320px,76vw) !important;
    gap:10px !important;
    margin:0 auto 12px !important;
  }

  .ornament-star{
    font-size:28px !important;
  }

  .question{
    font-size:20px !important;
    line-height:1.2 !important;
    margin-bottom:3px !important;
  }

  .answer{
    font-size:22px !important;
    line-height:1.15 !important;
    margin:4px 0 14px !important;
  }

  .benefits{
    width:100% !important;
    gap:8px !important;
    margin-bottom:16px !important;
  }

  .benefit{
    gap:6px !important;
    padding:10px 6px !important;
    font-size:16px !important;
    line-height:1.35 !important;
  }

  .benefit p{
    max-width:100% !important;
    font-size:16px !important;
    line-height:1.35 !important;
  }

  .benefit br{
    display:none;
  }

  .benefit-icon{
    width:32px !important;
    height:32px !important;
    font-size:21px !important;
  }

  .cta{
    width:100% !important;
    max-width:340px !important;
    min-width:0 !important;
    min-height:50px !important;
    height:auto !important;
    padding:11px 16px !important;
    gap:10px !important;
    font-size:16px !important;
    line-height:1.1 !important;
  }

  .plane{
    font-size:25px !important;
  }

  .bottom-ornament{
    width:88% !important;
    margin-top:18px !important;
  }

  .compass{
    font-size:28px !important;
  }

  /* DESTINOS */
  .destinos-section{
    padding-top:44px !important;
    padding-bottom:44px !important;
  }

  .destinos-copy h2{
    font-size:31px !important;
    margin-bottom:5px !important;
  }

  .destinos-copy p{
    font-size:22px !important;
    line-height:1.12 !important;
  }

  .destinos-gallery{
    width:100% !important;
    gap:12px !important;
  }

  .destino-photo,
  .destino-photo:last-child{
    width:100% !important;
    height:360px !important;
    min-height:0 !important;
    border-radius:15px !important;
  }

  .flying-plane{
    font-size:19px !important;
  }

  .flying-plane::after{
    width:58px !important;
  }

  /* ALMAS VIAJERAS */
  .almas-section{
    padding:44px 14px 40px !important;
    scroll-margin-top:60px !important;
  }

  .almas-heading{
    margin-bottom:20px !important;
  }

  .almas-grid{
    gap:12px !important;
  }

  .almas-story,
  .almas-story--panoramic{
    grid-template-columns:1fr !important;
    grid-template-rows:220px auto !important;
    height:auto !important;
    min-height:0 !important;
    border-radius:16px !important;
  }

  .almas-story-content{
    padding:16px 15px 18px !important;
  }

  .almas-story h3{
    font-size:23px !important;
    line-height:1.05 !important;
  }

  .almas-story blockquote{
    max-height:none !important;
    overflow:visible !important;
  }

  .almas-story blockquote p{
    font-size:13px !important;
    line-height:1.45 !important;
  }

  .almas-author{
    font-size:15px !important;
  }

  .almas-carousel-controls{
    gap:7px !important;
    margin-top:14px !important;
  }

  .almas-control{
    width:38px !important;
    height:38px !important;
  }

  .almas-control--toggle{
    width:auto !important;
    min-width:92px !important;
    padding:0 12px !important;
    font-size:11px !important;
  }

  /* TRAVEL SHOP */
  .shop-section{
    padding:10px 14px 36px !important;
    scroll-margin-top:60px !important;
  }

  .shop-intro{
    margin:0 0 14px !important;
  }

  .shop-intro h2{
    font-size:clamp(34px,10vw,44px) !important;
  }

  .shop-intro p{
    margin-top:6px !important;
    font-size:16px !important;
    line-height:1.25 !important;
  }

  .shop-carousel-viewport{
    border-radius:16px !important;
  }

  .shop-carousel .shop-product,
  .shop-carousel .shop-product.reverse{
    padding:8px !important;
  }

  .shop-carousel .shop-main-photo{
    aspect-ratio:4 / 3 !important;
  }

  .shop-carousel .shop-thumbs{
    gap:7px !important;
  }

  .shop-carousel .shop-thumbs figure{
    aspect-ratio:4 / 3 !important;
  }

  .shop-carousel .shop-product-info{
    padding:12px 5px 6px !important;
  }

  .shop-carousel .shop-product h3,
  .shop-product h3{
    font-size:28px !important;
    line-height:1 !important;
    margin:5px 0 7px !important;
  }

  .shop-description{
    font-size:14px !important;
    line-height:1.4 !important;
  }

  .shop-carousel-controls{
    gap:7px !important;
    margin-top:10px !important;
  }

  .shop-carousel-control{
    width:38px !important;
    height:38px !important;
  }

  .shop-carousel-control--toggle{
    width:auto !important;
    min-width:92px !important;
    padding:0 11px !important;
    font-size:11px !important;
  }

  /* FORMULARIO / MODAL */
  .travel-form-modal:not([hidden]){
    padding-top:64px !important;
    padding-bottom:18px !important;
  }

  .travel-modal-close{
    top:max(10px, env(safe-area-inset-top)) !important;
    right:max(10px, env(safe-area-inset-right)) !important;
    width:38px !important;
    height:38px !important;
    font-size:27px !important;
  }

  .travel-form-intro{
    margin-bottom:18px !important;
  }

  .travel-form-intro h2{
    font-size:clamp(34px,10vw,44px) !important;
  }

  .travel-form-intro p{
    margin-top:8px !important;
    font-size:16px !important;
    line-height:1.3 !important;
  }

  .planner-shell{
    border-radius:18px !important;
  }

  .planner-head{
    padding:14px 14px 12px !important;
  }

  .planner-head-row{
    margin-bottom:8px !important;
  }

  .planner-step-label{
    font-size:15px !important;
  }

  .planner-step-name{
    font-size:13px !important;
  }

  .planner-form{
    padding:16px 14px !important;
  }

  .step-heading{
    margin-bottom:14px !important;
  }

  .step-heading-number{
    width:34px !important;
    height:34px !important;
    margin-bottom:7px !important;
    font-size:16px !important;
  }

  .step-heading h3{
    font-size:26px !important;
  }

  input,
  select,
  textarea{
    font-size:16px !important;
  }
}


/* TELÉFONOS PEQUEÑOS */
@media (max-width:390px){

  :root{
    --header-height:56px;
  }

  .header{
    height:56px !important;
    min-height:56px !important;
  }

  .logo{
    font-size:13px !important;
    letter-spacing:1.3px !important;
  }

  .menu-btn{
    width:36px !important;
    height:36px !important;
  }

  .nav{
    top:56px !important;
  }

  .map-hero{
    height:72svh !important;
    min-height:470px !important;
    padding-top:56px !important;
  }

  .map-hero::before,
  .map-planes-overlay{
    inset:56px 0 0 !important;
  }

  .map-brand{
    margin-bottom:42px !important;
  }

  .map-brand h1{
    font-size:25px !important;
    letter-spacing:2px !important;
  }

  .intro-section,
  .destinos-section,
  .almas-section{
    padding-top:38px !important;
    padding-bottom:38px !important;
  }

  .intro-section h1{
    font-size:37px !important;
  }

  .intro-subtitle{
    font-size:27px !important;
  }

  .question{
    font-size:18px !important;
  }

  .answer{
    font-size:20px !important;
  }

  .benefit,
  .benefit p{
    font-size:15px !important;
  }

  .destino-photo,
  .destino-photo:last-child{
    height:320px !important;
  }

  .almas-story,
  .almas-story--panoramic{
    grid-template-rows:195px auto !important;
  }

  .shop-carousel .shop-product h3,
  .shop-product h3{
    font-size:25px !important;
  }
}

/* =========================================================
   FIX FINAL MOBILE — TITULO DEL MAPA EN UNA SOLA LINEA
   ========================================================= */
@media (max-width:650px){
  .map-brand{
    width:100% !important;
    max-width:100% !important;
    padding:0 12px !important;
    margin-bottom:42px !important;
  }

  .map-brand h1{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
    font-size:clamp(22px, 6.4vw, 30px) !important;
    line-height:1 !important;
    letter-spacing:clamp(1px, .65vw, 2.4px) !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    text-wrap:nowrap !important;
    text-align:center !important;
  }

  .map-brand-line{
    width:min(260px,72vw) !important;
    margin:12px auto 0 !important;
  }
}

@media (max-width:390px){
  .map-brand{
    padding:0 8px !important;
  }

  .map-brand h1{
    font-size:21px !important;
    letter-spacing:1.2px !important;
    white-space:nowrap !important;
  }

  .map-brand-line{
    width:220px !important;
  }
}

/* =========================================================
   FIX DEFINITIVO MOBILE — DESTINO AL ALMA EN UNA SOLA LÍNEA
   ========================================================= */

@media (max-width:650px){

  .map-brand{
    width:100% !important;
    max-width:100% !important;
    padding:0 8px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    overflow:visible !important;
  }

  .map-brand h1{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 auto !important;
    padding:0 !important;

    font-size:22px !important;
    line-height:1 !important;
    letter-spacing:1.5px !important;

    white-space:nowrap !important;
    text-wrap:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;

    text-align:center !important;
  }

  .map-brand h1 br{
    display:none !important;
  }

  .map-brand-line{
    width:220px !important;
    margin:12px auto 0 !important;
  }
}

@media (min-width:391px) and (max-width:650px){
  .map-brand h1{
    font-size:24px !important;
    letter-spacing:1.8px !important;
  }
}

/* =========================================================
   MOBILE — 3 IMÁGENES VERTICALES, GRANDES Y CENTRADAS
   ========================================================= */

@media (max-width:650px){

  .destinos-gallery{
    width:100% !important;
    max-width:430px !important;
    margin:28px auto 0 !important;
    padding:0 18px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:24px !important;
  }

  .destino-photo,
  .destino-photo:last-child{
    display:block !important;
    width:100% !important;
    max-width:370px !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:3 / 4 !important;
    margin:0 auto !important;
    border-radius:18px !important;
    overflow:hidden !important;
    position:relative !important;
  }

  .destino-photo img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    margin:0 !important;
  }
}

@media (max-width:390px){

  .destinos-gallery{
    padding:0 14px !important;
    gap:20px !important;
  }

  .destino-photo,
  .destino-photo:last-child{
    width:100% !important;
    max-width:350px !important;
    height:auto !important;
    aspect-ratio:3 / 4 !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* =========================================================
   MOBILE — SECCIÓN "NO VENDO LUJO" MÁS COMPACTA
   Reduce el espacio negro entre el mapa, el título y las fotos
   ========================================================= */

@media (max-width:650px){

  .destinos-section{
    padding-top:18px !important;
    padding-bottom:38px !important;
  }

  .destinos-section .section-title{
    margin-top:0 !important;
    margin-bottom:14px !important;
  }

  .destinos-copy h2{
    margin-top:0 !important;
    margin-bottom:3px !important;
    line-height:1 !important;
  }

  .destinos-copy p{
    margin-top:2px !important;
    margin-bottom:0 !important;
    line-height:1.15 !important;
  }

  .destinos-gallery{
    margin-top:16px !important;
  }
}

@media (max-width:390px){

  .destinos-section{
    padding-top:14px !important;
    padding-bottom:34px !important;
  }

  .destinos-section .section-title{
    margin-bottom:12px !important;
  }

  .destinos-gallery{
    margin-top:14px !important;
  }
}

/* =========================================================
   MOBILE — PORTADA A PANTALLA COMPLETA
   La siguiente sección aparece hasta deslizar hacia abajo
   ========================================================= */

@media (max-width:650px){

  .map-hero{
    height:100svh !important;
    height:100dvh !important;
    min-height:100svh !important;
    min-height:100dvh !important;
  }

  .destinos-section{
    padding-top:34px !important;
  }
}

@media (max-width:390px){

  .map-hero{
    height:100svh !important;
    height:100dvh !important;
    min-height:100svh !important;
    min-height:100dvh !important;
  }
}

/* =========================================================
   MOBILE — SUBTÍTULO "SOY TU TRAVEL PLANNER DESIGNER"
   Evita que la palabra Designer se corte entre letras
   ========================================================= */

@media (max-width:650px){

  .intro-subtitle,
  .intro-subtitle.letter-animate{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;

    font-size:clamp(22px,6.4vw,29px) !important;
    line-height:1.05 !important;
    letter-spacing:.2px !important;

    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    text-wrap:nowrap !important;

    text-align:center !important;
  }

  .intro-subtitle .letter,
  .intro-subtitle .space{
    white-space:nowrap !important;
  }
}

@media (max-width:390px){

  .intro-subtitle,
  .intro-subtitle.letter-animate{
    font-size:22px !important;
    letter-spacing:0 !important;
  }
}

