:root{
    --navy-950:#050f1c;
    --navy-900:#0b1c30;
    --navy-800:#132842;
    --navy-700:#1c3a5e;
    --gold-500:#a9895a;
    --gold-400:#c3a274;
    --gold-300:#d9c39c;
    --cream-50:#f7f4ee;
    --cream-100:#efe9dc;
    --ink:#0b1c30;
    --line: rgba(169,137,90,0.35);
    --max-w: 1180px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--cream-50);
    color:var(--ink);
    font-family:'Jost', sans-serif;
    font-weight:300;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1,h2,h3,h4{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    color:var(--navy-900);
    line-height:1.15;
  }

  a{color:inherit; text-decoration:none;}

  img{max-width:100%; display:block;}

  .wrap{
    max-width:var(--max-w);
    margin:0 auto;
    padding:0 40px;
  }

  ::selection{ background:var(--gold-400); color:var(--navy-950); }

  /* focus visibility */
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:2px solid var(--gold-500);
    outline-offset:3px;
  }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
  }

  /* ---------- NAV ---------- */
  header.site-nav{
    position:fixed;
    top:0; left:0; right:0;
    z-index:100;
    background:rgba(5,15,28,0);
    transition:background .5s ease, box-shadow .5s ease, padding .4s ease;
    padding:26px 0;
  }
  header.site-nav.scrolled{
    background:rgba(5,15,28,0.94);
    box-shadow:0 8px 30px rgba(0,0,0,0.25);
    padding:14px 0;
  }
  .nav-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--cream-50);
  }
  .brand img{ height:34px; width:auto; filter:brightness(0) invert(1); opacity:.95; }
  .brand span{
    font-family:'Cormorant Garamond', serif;
    letter-spacing:0.12em;
    font-size:1.05rem;
    color:var(--cream-50);
  }
  nav.links{
    display:flex;
    align-items:center;
    gap:38px;
  }
  nav.links a{
    color:var(--cream-100);
    font-size:0.82rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    position:relative;
    padding-bottom:6px;
  }
  nav.links a::after{
    content:'';
    position:absolute;
    left:0; bottom:0;
    width:0%;
    height:1px;
    background:var(--gold-400);
    transition:width .35s ease;
  }
  nav.links a:hover::after, nav.links a.active::after{ width:100%; }

  .nav-cta{
    border:1px solid var(--gold-500);
    padding:10px 22px;
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold-300)!important;
    transition:background .35s ease, color .35s ease;
  }
  .nav-cta:hover{ background:var(--gold-500); color:var(--navy-950)!important; }

  .menu-toggle{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:6px;
  }
  .menu-toggle span{
    width:24px; height:1px; background:var(--cream-50);
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    background:radial-gradient(ellipse at 50% -10%, var(--navy-800) 0%, var(--navy-900) 45%, var(--navy-950) 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:120px 24px 120px;
    overflow:hidden;
  }
  .hero-motif{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    pointer-events:none;
  }
  .hero-motif svg{ width:min(1100px, 100vw); height:auto; opacity:0.9; position: absolute;
    top: 25px; }
  .arc-path, .wave-path{
    fill:none;
    stroke:var(--gold-500);
    stroke-width:1.4;
    stroke-linecap:round;
    stroke-dasharray:1400;
    stroke-dashoffset:1400;
    animation:draw 2.6s ease forwards;
  }
  .wave-path{ animation-delay:.4s; }
  .plane-shape{
    fill:var(--gold-500);
    opacity:0;
    animation:fadeIn .8s ease forwards;
    animation-delay:1.6s;
  }
  @keyframes draw{ to{ stroke-dashoffset:0; } }
  @keyframes fadeIn{ to{ opacity:.85; } }

  .hero-content{ position:relative; z-index:2; max-width:820px; padding-top: 120px; }
  .hero-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:16px;
    color:var(--gold-300);
    font-size:0.8rem;
    letter-spacing:0.32em;
    text-transform:uppercase;
    margin-bottom:160px;
    opacity:0;
    animation:riseIn .9s ease forwards;
    animation-delay:1.9s;
  }
  .hero-eyebrow::before, .hero-eyebrow::after{
    content:'';
    width:34px; height:1px;
    background:var(--gold-500);
  }
  .hero h1{
    color:var(--cream-50);
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    letter-spacing:0.02em;
    font-weight:400;
    opacity:0;
    animation:riseIn 1s ease forwards;
    animation-delay:2.1s;
  }
  .hero h1 em{ font-style:italic; color:var(--gold-400); }
  .hero p.lede{
    margin:28px auto 0;
    max-width:560px;
    color:var(--cream-100);
    font-size:1.08rem;
    font-weight:300;
    opacity:0;
    animation:riseIn 1s ease forwards;
    animation-delay:2.35s;
  }
  .hero-actions{
    margin-top:46px;
    display:flex;
    gap:20px;
    justify-content:center;
    flex-wrap:wrap;
    opacity:0;
    animation:riseIn 1s ease forwards;
    animation-delay:2.55s;
  }
  @keyframes riseIn{
    from{ opacity:0; transform:translateY(16px); }
    to{ opacity:1; transform:translateY(0); }
  }

  .btn{
    display:inline-block;
    padding:16px 34px;
    font-size:0.8rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    transition:all .4s ease;
    border:1px solid transparent;
  }
  .btn-gold{
    background:var(--gold-500);
    color:var(--navy-950);
  }
  .btn-gold:hover{ background:var(--gold-400); }
  .btn-outline{
    border-color:rgba(247,244,238,0.4);
    color:var(--cream-50);
  }
  .btn-outline:hover{ border-color:var(--gold-400); color:var(--gold-300); }

  .scroll-cue{
    position:absolute;
    bottom:36px; left:50%;
    transform:translateX(-50%);
    width:1px; height:64px;
    background:linear-gradient(to bottom, transparent, var(--gold-500));
    opacity:0;
    animation:fadeIn 1s ease forwards, floaty 2.4s ease-in-out infinite 3.6s;
    animation-delay:3s, 3s;
  }
  @keyframes floaty{ 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,8px); } }

  /* ---------- SECTION GENERIC ---------- */
  section{ position:relative; }
  .section-pad{ padding:130px 0; }
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s ease, transform .9s ease; }
  .reveal.in-view{ opacity:1; transform:translateY(0); }

  .kicker{
    color:var(--gold-500);
    font-size:0.78rem;
    letter-spacing:0.3em;
    text-transform:uppercase;
    margin-bottom:18px;
    display:inline-block;
  }

  .divider-line{
    width:64px; height:1px;
    background:var(--gold-500);
    margin:26px 0;
  }
  .center .divider-line{ margin-left:auto; margin-right:auto; }

  /* ---------- INTRO / ABOUT ---------- */
  .about{
    display:flex;
    /*grid-template-columns:1.05fr 0.95fr;*/
    gap:90px;
    align-items:center;
  }
  .about h2{
    font-size:clamp(2.1rem, 3.4vw, 2.9rem);
    max-width:480px;
  }
  .about p{
    margin-top:24px;
    max-width:460px;
    color:#3c4a5c;
    font-size:1.03rem;
  }
  .about-stats{
    margin-top:46px;
    display:flex;
    gap:50px;
  }
  .stat-num{
    font-family:'Cormorant Garamond', serif;
    font-size:2.6rem;
    color:var(--navy-900);
  }
  .stat-num span{ color:var(--gold-500); }
  .stat-label{
    font-size:0.74rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#6b7788;
    margin-top:6px;
  }

  .about-visual{
    position:relative;
    aspect-ratio:4/5;
    border:1px solid var(--line);
    padding:26px;
  }
  .about-visual-inner{
    width:100%; height:100%;
    background:
      radial-gradient(circle at 30% 20%, rgba(169,137,90,0.18), transparent 55%),
      linear-gradient(160deg, var(--navy-900), var(--navy-950));
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    padding:34px;
  }
  .about-visual-inner svg{ position:absolute; top:16%; left:50%; transform:translateX(-50%); width:60%; opacity:.85;}
  .about-quote{
    color:var(--cream-100);
    font-family:'Cormorant Garamond', serif;
    font-style:italic;
    font-size:1.3rem;
    line-height:1.5;
  }
  .about-quote small{
    display:block;
    margin-top:14px;
    font-family:'Jost', sans-serif;
    font-style:normal;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold-400);
  }

  /* ---------- SERVICIOS ---------- */
  .servicios{ background:var(--cream-100); }
  .service-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:0;
    min-height:520px;
  }
  .service-row + .service-row{ margin-top:2px; }
  .service-panel{
    background:var(--navy-900);
    height:100%;
    min-height:520px;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    overflow:hidden;
  }
  .service-panel svg{ width:180px; height:180px; }
  .service-panel::before{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(160deg, rgba(169,137,90,0.14), transparent 60%);
  }
  .service-text{ padding:70px 80px; }
  .service-row.reverse{ direction:rtl; }
  .service-row.reverse > *{ direction:ltr; }
  .service-text h3{
    font-size:clamp(1.9rem, 2.6vw, 2.5rem);
    max-width:420px;
  }
  .service-text p{
    margin-top:20px;
    color:#3c4a5c;
    max-width:420px;
    font-size:1rem;
  }
  .service-list{
    margin-top:28px;
    list-style:none;
  }
  .service-list li{
    display:flex;
    align-items:baseline;
    gap:14px;
    padding:10px 0;
    border-top:1px solid rgba(11,28,48,0.1);
    color:#2c3646;
    font-size:0.95rem;
  }
  .service-list li:last-child{ border-bottom:1px solid rgba(11,28,48,0.1); }
  .service-list li::before{
    content:'';
    width:5px; height:5px;
    border-radius:50%;
    background:var(--gold-500);
    flex-shrink:0;
  }

  /* ---------- DESTINOS ---------- */
  .destinos{
    background:var(--navy-950);
    color:var(--cream-50);
  }
  .destinos .kicker{ color:var(--gold-400); }
  .destinos h2{ color:var(--cream-50); }
  .destinos > .wrap > p{ color:var(--cream-100); max-width:520px; margin-top:20px;}

  .dest-grid{
    margin-top:70px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:rgba(247,244,238,0.08);
  }
  .dest-card{
    background:var(--navy-950);
    aspect-ratio:3/4;
    position:relative;
    overflow:hidden;
    padding:32px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
  }
  .dest-card .dest-bg{
    position:absolute; inset:0;
    opacity:.55;
    transition:opacity .6s ease, transform .8s ease;
    transform:scale(1.02);
  }
  .dest-card:hover .dest-bg{ opacity:.85; transform:scale(1.08); }
  .dest-card .dest-content{ position:relative; z-index:2; }
  .dest-card h4{
    color:var(--cream-50);
    font-size:1.7rem;
    font-weight:400;
  }
  .dest-card .dest-tag{
    color:var(--gold-300);
    font-size:0.72rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    margin-bottom:10px;
    display:block;
  }
  .dest-card p{
    margin-top:12px;
    font-size:0.88rem;
    color:var(--cream-100);
    max-height:0;
    opacity:0;
    overflow:hidden;
    transition:max-height .5s ease, opacity .5s ease, margin-top .5s ease;
  }
  .dest-card:hover p{ max-height:80px; opacity:1; }

  /* ---------- WHY US / STATS BAR ---------- */
  .why{ background:var(--cream-50); }
  .why-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .why-item{
    padding:46px 30px;
    text-align:center;
    border-left:1px solid var(--line);
  }
  .why-item:first-child{ border-left:none; }
  .why-item .num{
    font-family:'Cormorant Garamond', serif;
    font-size:2.8rem;
    color:var(--navy-900);
  }
  .why-item .num span{ color:var(--gold-500); }
  .why-item .lbl{
    margin-top:10px;
    font-size:0.78rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#6b7788;
  }

  /* ---------- TESTIMONIOS ---------- */
  .testi{ background:var(--cream-100); text-align:center; }
  .testi-wrap{ max-width:760px; margin:0 auto; position:relative; }
  .testi-mark{
    font-family:'Cormorant Garamond', serif;
    font-size:5rem;
    color:var(--gold-400);
    line-height:1;
  }
  .testi-slide{ display:none; }
  .testi-slide.active{ display:block; animation:fadeIn .7s ease; }
  .testi-slide p{
    font-family:'Cormorant Garamond', serif;
    font-style:italic;
    font-size:1.5rem;
    color:var(--navy-900);
    line-height:1.5;
  }
  .testi-slide .who{
    margin-top:24px;
    font-family:'Jost', sans-serif;
    font-style:normal;
    font-size:0.78rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#6b7788;
  }
  .testi-nav{
    margin-top:40px;
    display:flex;
    justify-content:center;
    gap:12px;
  }
  .testi-dot{
    width:8px; height:8px; border-radius:50%;
    background:rgba(11,28,48,0.2);
    border:none;
    cursor:pointer;
    transition:background .3s ease;
  }
  .testi-dot.active{ background:var(--gold-500); }

  /* ---------- CONTACT ---------- */
  .contact{
    background:var(--navy-900);
    color:var(--cream-50);
  }
  .contact-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:100px;
  }
  .contact h2{ color:var(--cream-50); }
  .contact .kicker{ color:var(--gold-400); }
  .contact-info p{ color:var(--cream-100); margin-top:20px; max-width:400px; }
  .contact-block{ margin-top:38px; }
  .contact-block .lbl{
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold-300);
    margin-bottom:6px;
  }
  .contact-block a, .contact-block div.val{ color:var(--cream-50); font-size:1.02rem; }

  form.contact-form{ display:flex; flex-direction:column; gap:22px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .field{ position:relative; }
  .field input, .field select, .field textarea{
    width:100%;
    background:transparent;
    border:none;
    border-bottom:1px solid rgba(247,244,238,0.3);
    padding:12px 2px;
    color:var(--cream-50);
    font-family:'Jost', sans-serif;
    font-size:0.98rem;
    font-weight:300;
  }
  .field textarea{ resize:vertical; min-height:90px; }
  .field label{
    position:absolute;
    left:2px; top:12px;
    color:rgba(247,244,238,0.55);
    font-size:0.95rem;
    pointer-events:none;
    transition:all .25s ease;
  }
  .field input:focus + label,
  .field input:not(:placeholder-shown) + label,
  .field textarea:focus + label,
  .field textarea:not(:placeholder-shown) + label,
  .field select:focus + label,
  .field.filled label{
    top:-14px;
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--gold-300);
  }
  .field input:focus, .field textarea:focus, .field select:focus{
    outline:none;
    border-bottom-color:var(--gold-400);
  }
  .field select{ appearance:none; -webkit-appearance:none; cursor:pointer; }
  .field select option{ background:var(--navy-900); color:var(--cream-50); }

  .form-submit{
    margin-top:12px;
    align-self:flex-start;
  }
  .form-note{
    margin-top:18px;
    font-size:0.85rem;
    color:var(--gold-300);
    display:none;
  }
  .form-note.show{ display:block; }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--navy-950);
    color:var(--cream-100);
    padding:70px 0 30px;
  }
  .footer-top{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:50px;
    padding-bottom:50px;
    border-bottom:1px solid rgba(247,244,238,0.1);
  }
  .footer-brand img{ height:100px; filter:brightness(0) invert(1); opacity:.9; margin-bottom:16px; }
  .footer-brand p{ font-size:0.9rem; color:rgba(247,244,238,0.6); max-width:280px; }
  .footer-col h5{
    font-size:0.74rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--gold-400);
    margin-bottom:18px;
    font-family:'Jost', sans-serif;
    font-weight:500;
  }
  .footer-col a{
    display:block;
    color:rgba(247,244,238,0.7);
    font-size:0.92rem;
    margin-bottom:12px;
    transition:color .3s ease;
  }
  .footer-col a:hover{ color:var(--gold-300); }
  .footer-bottom{
    padding-top:26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:0.78rem;
    color:rgba(247,244,238,0.45);
    flex-wrap:wrap;
    gap:12px;
  }
  .footer-social{ display:flex; gap:16px; }
  .footer-social a{
    width:34px; height:34px;
    border:1px solid rgba(247,244,238,0.2);
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:border-color .3s ease, color .3s ease;
  }
  .footer-social a:hover{ border-color:var(--gold-400); color:var(--gold-400); }
  .footer-social svg{ width:14px; height:14px; fill:currentColor; }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    /*.about{ grid-template-columns:1fr; gap:50px; }*/
    .about-visual{ order:-1; max-width:420px; margin:0 auto; }
    .service-row, .service-row.reverse{ grid-template-columns:1fr; direction:ltr; }
    .service-panel{ min-height:320px; order:-1; }
    .service-text{ padding:50px 36px; }
    .dest-grid{ grid-template-columns:repeat(2,1fr); }
    .why-grid{ grid-template-columns:repeat(2,1fr); }
    .why-item:nth-child(3){ border-left:none; }
    .contact-grid{ grid-template-columns:1fr; gap:60px; }
    .footer-top{ grid-template-columns:1fr 1fr; }
  }

  @media (max-width:640px){
    .wrap{ padding:0 24px; }
    nav.links{
      position:fixed; top:0; right:0;
      height:100vh; width:78vw; max-width:320px;
      background:var(--navy-950);
      flex-direction:column;
      justify-content:center;
      align-items:flex-start;
      padding:60px 40px;
      transform:translateX(100%);
      transition:transform .45s ease;
      gap:28px;
    }
    nav.links.open{ transform:translateX(0); }
    .menu-toggle{ display:flex; }
    .section-pad{ padding:90px 0; }
    .dest-grid{ grid-template-columns:1fr; }
    .why-grid{ grid-template-columns:1fr; }
    .why-item{ border-left:none; border-top:1px solid var(--line); }
    .why-item:first-child{ border-top:none; }
    .form-row{ grid-template-columns:1fr; }
    .footer-top{ grid-template-columns:1fr; }
    .hero{ padding:140px 20px 100px; }
  }