/* ---------- BRAND FONT: JOST (official files, per LI_MANUALdeNORMAS) ---------- */
  @font-face{font-family:'Jost';src:url('/fonts/Jost-Light.woff') format('woff');font-weight:300;font-style:normal;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-Italic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-Medium.woff') format('woff');font-weight:500;font-style:normal;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-MediumItalic.woff') format('woff');font-weight:500;font-style:italic;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-SemiBold.woff') format('woff');font-weight:600;font-style:normal;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-BoldItalic.woff') format('woff');font-weight:700;font-style:italic;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-Black.woff') format('woff');font-weight:900;font-style:normal;font-display:swap;}
  @font-face{font-family:'Jost';src:url('/fonts/Jost-BlackItalic.woff') format('woff');font-weight:900;font-style:italic;font-display:swap;}

  :root{
    --cream:#FFFFFF;
    --cream-2:#F5F5F5;
    --ink:#000000;
    --azulejo:#000000;
    --azulejo-deep:#000000;
    --terracotta:#000000;
    --tram:#FFFFFF;
    --line: rgba(0,0,0,0.12);
    --ink-60: rgba(0,0,0,0.6);
    --ink-45: rgba(0,0,0,0.45);
    --paper-70: rgba(255,255,255,0.7);
    --paper-55: rgba(255,255,255,0.55);
    --paper-14: rgba(255,255,255,0.14);
    --ease: cubic-bezier(.16,1,.3,1);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:hidden;}
  body{
    margin:0;
    overflow-x:hidden;
    background:var(--cream);
    color:var(--ink);
    font-family:'Jost',sans-serif;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }
  h1,h2,h3,.display{
    font-family:'Jost',sans-serif;
    font-weight:700;
    letter-spacing:-0.015em;
    margin:0;
    color:var(--azulejo-deep);
  }
  .mono{font-family:'Jost',sans-serif;letter-spacing:0.03em;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
  ::selection{background:#000;color:#fff;}

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky;top:0;z-index:50;
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  header.site-nav::before{
    content:"";position:absolute;inset:0;z-index:-1;
    background:rgba(0,0,0,0.78);
    backdrop-filter:blur(16px) saturate(160%);
    -webkit-backdrop-filter:blur(16px) saturate(160%);
  }
  .nav-inner{
    max-width:1120px;margin:0 auto;padding:14px 28px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  nav.links{display:flex;gap:2px;align-items:center;}
  nav.links button.navlink{
    font-family:'Jost',sans-serif;font-size:0.92rem;font-weight:500;
    background:none;border:none;cursor:pointer;color:var(--paper-70);
    padding:9px 16px;border-radius:999px;transition:background .25s var(--ease), color .25s var(--ease);
  }
  nav.links button.navlink:hover{background:rgba(255,255,255,0.1);color:#fff;}
  nav.links button.navlink.active{background:#fff;color:#000;}
  .nav-cta{
    font-family:'Jost',sans-serif;font-size:0.82rem;font-weight:600;
    background:#fff;color:#000;
    padding:9px 18px;border-radius:999px;border:none;
    white-space:nowrap;transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  }
  .nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,0.35);}
  .burger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
  .burger span{display:block;width:22px;height:2px;background:#fff;margin:5px 0;border-radius:2px;}

  @media (max-width:860px){
    nav.links{
      position:fixed;top:60px;left:0;right:0;bottom:0;
      background:#000;flex-direction:column;align-items:stretch;
      padding:22px 28px;gap:4px;transform:translateX(100%);
      transition:transform .35s var(--ease);overflow-y:auto;
    }
    nav.links.open{transform:translateX(0);}
    nav.links button.navlink{text-align:left;font-size:1.2rem;padding:16px 16px;color:rgba(255,255,255,.75);}
    nav.links button.navlink.active{background:transparent;color:#fff;}
    .nav-cta{display:none;}
    .burger{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;}
  .hero-bg{
    position:absolute;inset:0;background-size:cover;background-position:center 62%;
    animation:heroZoom 20s var(--ease) forwards;
    will-change:transform;
  }
  @keyframes heroZoom{from{transform:scale(1);}to{transform:scale(1.08);}}
  .hero::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.28) 50%, rgba(0,0,0,0.92) 100%);
  }
  .hero-content{position:relative;z-index:2;padding:0 28px 96px;max-width:1120px;margin:0 auto;width:100%;}
  .eyebrow{
    font-family:'Jost',sans-serif;font-weight:500;color:var(--tram);font-size:0.8rem;
    letter-spacing:0.16em;text-transform:uppercase;margin-bottom:18px;display:inline-block;
  }
  .hero h1{
    color:#fff;font-weight:800;font-size:clamp(2.6rem,7.2vw,6.2rem);line-height:0.98;
    letter-spacing:-0.03em;margin-bottom:22px;
  }
  .hero h1 em{font-style:italic;font-weight:500;color:var(--tram);}
  .hero p.lead{color:rgba(255,255,255,0.82);font-size:1.2rem;max-width:520px;margin-bottom:36px;font-weight:300;line-height:1.5;}
  .cta-row{display:flex;gap:14px;flex-wrap:wrap;}
  .scroll-cue{
    position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;
    color:rgba(255,255,255,0.7);animation:bob 2.4s ease-in-out infinite;
  }
  @keyframes bob{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,7px);}}

  .ticket-btn{
    display:inline-flex;align-items:center;gap:10px;
    background:var(--tram);color:var(--azulejo-deep);
    font-family:'Jost',sans-serif;font-weight:600;font-size:0.95rem;
    padding:15px 24px;border-radius:999px;border:none;cursor:pointer;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
    box-shadow:0 8px 22px rgba(0,0,0,0.18);
  }
  .ticket-btn.ghost{
    background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.5);
    box-shadow:none;
  }
  .ticket-btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,0.28);}
  .ticket-btn.ghost:hover{background:rgba(255,255,255,0.1);border-color:#fff;}
  .ticket-btn:active{transform:translateY(-1px) scale(.97);}

  /* ---------- SCROLL REVEAL ---------- */
  [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease), transform .8s var(--ease);}
  [data-reveal].in-view{opacity:1;transform:none;}

  /* ---------- SECTIONS ---------- */
  section{padding:clamp(64px,9vw,132px) 0;}
  .section-head{max-width:640px;margin-bottom:52px;}
  .section-head .eyebrow{color:var(--ink);}
  .section-head h2{font-size:clamp(1.9rem,3.8vw,2.75rem);font-weight:700;}
  .section-head p{font-size:1.05rem;color:var(--ink-60);font-weight:300;margin-top:14px;line-height:1.6;}

  .intro-strip{background:#000;color:#fff;}
  .intro-strip p.big-quote{
    font-family:'Jost',sans-serif;font-weight:300;font-style:italic;
    font-size:clamp(1.2rem,2.6vw,1.7rem);line-height:1.5;max-width:880px;color:#fff;
  }

  .stats-row{
    display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
    padding-top:56px;margin-top:56px;border-top:1px solid var(--paper-14);
  }
  .stat .num{
    display:block;font-family:'Jost',sans-serif;font-weight:900;
    font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:-0.02em;line-height:1;color:#fff;
  }
  .stat .num .star{font-size:0.5em;vertical-align:0.55em;margin-left:1px;}
  .stat .lbl{display:block;margin-top:10px;font-size:0.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--paper-55);font-weight:500;}
  @media (max-width:700px){.stats-row{grid-template-columns:repeat(2,1fr);row-gap:36px;}}

  .badges{display:flex;gap:34px;flex-wrap:wrap;margin-top:36px;}
  .badge{display:flex;align-items:center;gap:10px;font-family:'Jost',sans-serif;font-size:0.85rem;color:var(--paper-70);font-weight:400;}
  .badge svg{flex:none;}

  /* ---------- SIGNATURE ROUTE LINE ---------- */
  .route{display:none;}
  @media (min-width:901px){
    .route{display:block;margin-bottom:6px;}
    .route-line{width:100%;height:60px;display:block;overflow:visible;}
    .route-line path{fill:none;stroke:var(--ink);stroke-width:1.4;opacity:.2;
      stroke-dasharray:1600;stroke-dashoffset:1600;transition:stroke-dashoffset 1.5s var(--ease);}
    .route-line circle{fill:var(--ink);opacity:0;transform:scale(.3);transform-box:fill-box;transform-origin:center;
      transition:opacity .5s var(--ease), transform .5s var(--ease);}
    .route.in-view .route-line path{stroke-dashoffset:0;}
    .route.in-view .route-line circle{opacity:1;transform:scale(1);}
    .route.in-view .route-line circle:nth-of-type(2){transition-delay:.35s;}
    .route.in-view .route-line circle:nth-of-type(3){transition-delay:.75s;}
    .route.in-view .route-line circle:nth-of-type(4){transition-delay:1.15s;}
    .route-stops{display:flex;justify-content:space-between;margin-top:-4px;
      font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);font-weight:500;}
  }

  /* ---------- TICKET CARDS ---------- */
  .ticket-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  @media (max-width:900px){.ticket-grid{grid-template-columns:1fr;}}

  .ticket{
    background:#fff;border-radius:18px;overflow:hidden;
    box-shadow:0 2px 8px rgba(0,0,0,0.05);
    display:flex;flex-direction:column;
    border:1px solid var(--line);
    transition:transform .45s var(--ease), box-shadow .45s var(--ease);
  }
  .ticket:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(0,0,0,0.14);}
  .ticket .photo{height:200px;overflow:hidden;position:relative;}
  .ticket .photo.split{display:flex;gap:2px;}
  .ticket .photo.split img{flex:1;width:0;min-width:0;height:100%;object-fit:cover;}
  .ticket .photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
  .ticket:hover .photo img{transform:scale(1.06);}
  .ticket .stub{
    display:flex;justify-content:space-between;align-items:center;
    padding:13px 20px;background:#000;color:#fff;
    font-family:'Jost',sans-serif;font-size:0.82rem;
    position:relative;
  }
  .ticket .stub::before, .ticket .stub::after{
    content:"";position:absolute;top:-8px;width:16px;height:16px;border-radius:50%;
    background:var(--cream);
  }
  .ticket .stub::before{left:-8px;}
  .ticket .stub::after{right:-8px;}
  .ticket .stub .dur{opacity:0.75;}
  .ticket .stub .price{font-weight:700;color:#fff;font-size:1.02rem;}
  .ticket .body{padding:24px 22px 26px;flex:1;display:flex;flex-direction:column;}
  .ticket .body h3{font-size:1.3rem;margin-bottom:11px;font-weight:700;}
  .ticket .body p{font-size:0.94rem;color:var(--ink-60);line-height:1.6;font-weight:300;flex:1;}
  .ticket .body .more{
    margin-top:18px;font-family:'Jost',sans-serif;font-size:0.82rem;
    color:var(--ink);font-weight:600;display:inline-flex;align-items:center;gap:6px;
    background:none;border:none;cursor:pointer;padding:0;text-align:left;
  }
  .ticket .body .more svg{transition:transform .3s var(--ease);}
  .ticket .body .more:hover svg{transform:translateX(4px);}

  .ticket.full .body p{-webkit-line-clamp:unset;}
  .ticket .body p.clamp{
    display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
  }

  /* combos */
  .combo-list{display:flex;flex-direction:column;gap:0;border-top:1px dashed var(--line);}
  .combo-row{
    display:flex;justify-content:space-between;gap:20px;padding:22px 0;
    border-bottom:1px dashed var(--line);align-items:baseline;flex-wrap:wrap;
  }
  .combo-row .name{font-family:'Jost',sans-serif;font-weight:700;font-size:1.15rem;color:var(--azulejo-deep);}
  .combo-row .desc{font-size:0.92rem;color:var(--ink-60);font-weight:300;max-width:520px;flex:1;}
  .combo-row .price{font-family:'Jost',sans-serif;font-weight:700;color:var(--terracotta);white-space:nowrap;font-size:0.95rem;}

  /* about */
  .about-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center;}
  @media (max-width:860px){.about-grid{grid-template-columns:1fr;}}
  .about-grid img{border-radius:18px;}
  .about-grid .copy p{font-size:1.04rem;color:var(--ink-60);line-height:1.7;font-weight:300;margin-bottom:18px;}
  .pull-quote{
    font-family:'Jost',sans-serif;font-style:italic;font-weight:500;color:var(--azulejo-deep);
    font-size:1.4rem;border-left:2px solid var(--ink);padding-left:20px;margin:28px 0;
  }

  footer{background:#000;color:var(--paper-70);padding:64px 0 30px;}
  .footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px;}
  @media (max-width:760px){.footer-grid{grid-template-columns:1fr;}}
  footer h4{font-family:'Jost',sans-serif;font-size:0.76rem;letter-spacing:0.1em;text-transform:uppercase;color:#fff;margin-bottom:16px;font-weight:600;}
  footer .brand{margin-bottom:16px;}
  footer p, footer a{font-size:0.92rem;color:var(--paper-55);line-height:1.85;}
  footer a{transition:color .25s var(--ease);}
  footer a:hover{color:#fff;}
  .foot-bottom{border-top:1px solid var(--paper-14);margin-top:44px;padding-top:24px;font-size:0.8rem;color:rgba(255,255,255,0.4);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

  

  /* CONTACT */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  @media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}
  .contact-card{background:#fff;border-radius:18px;padding:34px;box-shadow:0 2px 8px rgba(0,0,0,0.05);border:1px solid var(--line);}
  .whatsapp-btn{
    display:flex;align-items:center;gap:12px;background:#25D366;color:#fff;
    padding:17px 22px;border-radius:14px;font-weight:600;margin-bottom:18px;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .whatsapp-btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(37,211,102,0.28);}
  .contact-list{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:14px;}
  .contact-list li{display:flex;align-items:center;gap:12px;font-size:0.98rem;color:var(--ink-60);}
  .contact-list svg{flex:none;color:var(--ink);}

  form.booking{display:flex;flex-direction:column;gap:17px;}
  form.booking label{font-family:'Jost',sans-serif;font-size:0.76rem;font-weight:600;text-transform:uppercase;letter-spacing:0.07em;color:var(--azulejo-deep);margin-bottom:7px;display:block;}
  form.booking input, form.booking select, form.booking textarea{
    width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;
    font-family:'Jost',sans-serif;font-size:0.98rem;background:var(--cream);color:var(--ink);
    transition:border-color .25s var(--ease);
  }
  form.booking input:focus, form.booking select:focus, form.booking textarea:focus{border-color:var(--ink);}
  form.booking .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  @media (max-width:520px){form.booking .row2{grid-template-columns:1fr;}}
  form.booking textarea{resize:vertical;min-height:90px;}
  .slot-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
  .slot-btn{padding:11px 18px;min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:#fff;
    font-family:'Jost',sans-serif;font-size:0.85rem;font-weight:500;cursor:pointer;transition:all .2s var(--ease);}
  .slot-btn:hover:not(:disabled){border-color:var(--ink);}
  .slot-btn.selected{background:#000;color:#fff;border-color:#000;}
  .slot-btn:disabled{opacity:0.32;text-decoration:line-through;cursor:not-allowed;background:var(--cream-2);}
  .submit-btn{
    background:#000;color:#fff;border:none;padding:15px 22px;border-radius:10px;
    font-family:'Jost',sans-serif;font-weight:600;cursor:pointer;font-size:0.95rem;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .submit-btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px rgba(0,0,0,0.22);}
  .submit-btn:active{transform:translateY(0) scale(.98);}
  .form-note{font-size:0.82rem;color:var(--ink-45);margin-top:10px;}

  .section.alt{background:var(--cream-2);}

  /* ---------- ACCESSIBILITY ---------- */
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--ink);
    outline-offset: 2px;
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .hero-bg{animation:none;}
    .scroll-cue{animation:none;}
    [data-reveal]{opacity:1 !important;transform:none !important;}
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
