/* ---------- Tokens ---------- */
  :root{
    --ink:#16262e;
    --ink-soft:#33474f;
    --ocean:#1f6e82;
    --ocean-deep:#123b47;
    --sand:#f4ecd8;
    --paper:#fbf7ec;
    --clay:#c4622e;
    --clay-deep:#a44e22;
    --palm:#3b6b4f;
    --gold:#d6a54c;
    --line: rgba(22,38,46,0.14);
    --shadow: 0 20px 45px -25px rgba(18,59,71,0.45);

    --bg: var(--sand);
    --bg-card: var(--paper);
    --fg: var(--ink);
    --fg-soft: var(--ink-soft);
    --accent: var(--ocean);
    --accent-deep: var(--ocean-deep);

    --font-display: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, ui-serif, serif;
    --font-body: 'Manrope', 'Segoe UI', ui-sans-serif, -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', 'Cascadia Code', 'Roboto Mono', monospace;

    --gap-xs: 0.5rem;
    --gap-sm: 1rem;
    --gap-md: 1.75rem;
    --gap-lg: 3rem;
    --gap-xl: 5.5rem;

    color-scheme: light;
  }

  @media (prefers-color-scheme: dark){
    :root{
      --bg:#0e1a1f;
      --bg-card:#152530;
      --fg:#f4ecd8;
      --fg-soft:#c9c2ac;
      --line: rgba(244,236,216,0.14);
      --accent:#4fa7bd;
      --accent-deep:#7fc4d6;
      --clay:#e08150;
      --clay-deep:#f2a271;
      --palm:#5c9c76;
      --gold:#e8bd70;
      --shadow: 0 20px 45px -25px rgba(0,0,0,0.6);
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --bg:#0e1a1f;
    --bg-card:#152530;
    --fg:#f4ecd8;
    --fg-soft:#c9c2ac;
    --line: rgba(244,236,216,0.14);
    --accent:#4fa7bd;
    --accent-deep:#7fc4d6;
    --clay:#e08150;
    --clay-deep:#f2a271;
    --palm:#5c9c76;
    --gold:#e8bd70;
    --shadow: 0 20px 45px -25px rgba(0,0,0,0.6);
    color-scheme: dark;
  }
  :root[data-theme="light"]{
    --bg:#f4ecd8;
    --bg-card:#fbf7ec;
    --fg:#16262e;
    --fg-soft:#33474f;
    --line: rgba(22,38,46,0.14);
    --accent:#1f6e82;
    --accent-deep:#123b47;
    --clay:#c4622e;
    --clay-deep:#a44e22;
    --palm:#3b6b4f;
    --gold:#d6a54c;
    --shadow: 0 20px 45px -25px rgba(18,59,71,0.45);
    color-scheme: light;
  }

  *,*::before,*::after{ box-sizing: border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  }
  body{
    margin:0;
    background:var(--bg);
    color:var(--fg);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{ max-width:100%; display:block; }
  a{ color:inherit; }
  .container{ max-width:1160px; margin:0 auto; padding:0 1.5rem; }
  h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; margin:0 0 0.6em; text-wrap:balance; color:var(--fg); }
  p{ margin:0 0 1em; color:var(--fg-soft); }
  .eyebrow{
    font-family:var(--font-mono);
    text-transform:uppercase;
    letter-spacing:0.16em;
    font-size:0.72rem;
    color:var(--accent);
    display:inline-flex;
    align-items:center;
    gap:0.5em;
    margin-bottom:0.9em;
  }
  .eyebrow::before{ content:""; width:1.4em; height:1px; background:var(--clay); display:inline-block; }
  section{ padding: var(--gap-xl) 0; position:relative; }
  .btn{
    display:inline-flex; align-items:center; gap:0.6em;
    font-family:var(--font-body); font-weight:700; font-size:0.95rem;
    padding:0.95em 1.7em; border-radius:3px; text-decoration:none;
    border:1.5px solid transparent; cursor:pointer;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  }
  .btn-primary{ background:var(--clay); color:#fff7ee; box-shadow: var(--shadow); }
  .btn-primary:hover{ transform:translateY(-2px); background:var(--clay-deep); }
  .btn-ghost{ background:transparent; border-color: rgba(244,236,216,0.5); color:inherit; }
  .btn-ghost:hover{ background: rgba(244,236,216,0.12); }
  .btn:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible{
    outline: 2.5px solid var(--clay); outline-offset: 3px;
  }

  /* perforated divider — boarding-pass stub edge */
  .perf{
    height:22px;
    background-image: radial-gradient(circle at 11px 11px, var(--bg) 6px, transparent 6.5px);
    background-size: 22px 22px;
    background-position: center;
    position:relative; z-index:2;
  }

  /* ---------- Nav ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background: color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{ display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; }
  .brand{ display:flex; align-items:center; gap:0.6em; text-decoration:none; }
  .brand-mark{ width:34px; height:34px; }
  .brand-word{ font-family:var(--font-display); font-weight:700; font-size:1.3rem; letter-spacing:0.01em; }
  .brand-word em{ font-style:italic; color:var(--accent); }
  .brand-word-logo{ font-family:var(--font-body); font-weight:800; font-style:italic; font-size:1.2rem; letter-spacing:-0.01em; display:inline-block; transform:skewX(-4deg); }
  .brand-word-logo .lw1{ background:linear-gradient(120deg, var(--ocean) 0%, var(--ocean-deep) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .brand-word-logo .lw2{ color:var(--ink); }

  .logo-lockup{ display:flex; align-items:center; gap:1.1rem; margin-bottom:1.3rem; }
  .logo-lockup .brand-mark{ width:58px; height:58px; flex:none; }
  .logo-lockup-text{ display:flex; flex-direction:column; gap:0.35rem; }
  .logo-word-row{ font-family:var(--font-body); font-weight:800; font-style:italic; font-size:1.9rem; letter-spacing:-0.01em; line-height:1; display:inline-block; transform:skewX(-4deg); }
  .logo-word-row .lw1{ background:linear-gradient(120deg, #bfe3ee 0%, var(--accent) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .logo-word-row .lw2{ color:#f4ecd8; }
  .logo-tagline{ font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.32em; text-transform:uppercase; color:#c9d3d0; display:flex; align-items:center; gap:0.7em; }
  .logo-tagline::before, .logo-tagline::after{ content:""; width:1.4em; height:1px; background:rgba(244,236,216,0.3); }
  .logo-chips{ display:flex; align-items:center; gap:0.8rem; margin:0.2rem 0 1.4rem; font-family:var(--font-mono); font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color:#c9d3d0; }
  .logo-chips .chip{ display:flex; align-items:center; gap:0.4em; }
  .logo-chips .chip svg{ width:15px; height:15px; color:var(--gold); }
  .logo-chips .div{ color:rgba(244,236,216,0.3); }
  .nav-links ul{ list-style:none; display:flex; gap:1.9rem; margin:0; padding:0; }
  .nav-links ul a{ text-decoration:none; font-size:0.92rem; font-weight:600; color:var(--fg-soft); position:relative; }
  .nav-links ul a:hover{ color:var(--accent); }
  .nav-cta{ display:flex; align-items:center; gap:0.9rem; }
  .nav-toggle{ display:none; background:none; border:none; color:var(--fg); cursor:pointer; padding:0.4rem; }
  .nav-links{ display:flex; align-items:center; gap:1.9rem; }

  /* ---------- Hero ---------- */
  .hero{
    background: radial-gradient(ellipse 90% 70% at 20% 0%, #1a4b57 0%, transparent 55%), linear-gradient(160deg, var(--ink) 0%, var(--ocean-deep) 55%, #0d2229 100%);
    color:#f4ecd8;
    padding: 5.5rem 0 4.5rem;
    overflow:hidden;
    position:relative;
  }
  .hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .hero-overlay{ position:absolute; inset:0; z-index:1; background: radial-gradient(ellipse 90% 70% at 20% 0%, rgba(26,75,87,0.6) 0%, transparent 55%), linear-gradient(160deg, rgba(22,38,46,0.88) 0%, rgba(18,59,71,0.82) 55%, rgba(13,34,41,0.92) 100%); }
  @media (prefers-reduced-motion: reduce){ .hero-video{ display:none; } }
  .hero .container{ display:grid; grid-template-columns: 1.15fr 0.85fr; gap:3rem; align-items:center; position:relative; z-index:2; }
  .hero-eyebrow{ font-family:var(--font-mono); letter-spacing:0.2em; text-transform:uppercase; font-size:0.75rem; color:var(--gold); display:flex; gap:0.7em; align-items:center; margin-bottom:1.4em; }
  .hero-eyebrow::before{ content:"✈"; }
  .hero h1{ color:#faf5e8; font-size:clamp(2.4rem, 4.4vw, 3.6rem); line-height:1.06; margin-bottom:0.5em; }
  .hero h1 i{ color:var(--gold); font-style:italic; }
  .hero p.lede{ color:#d9dfd8; font-size:1.15rem; max-width:46ch; margin-bottom:2em; }
  .hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.8rem; }
  .hero-stats{ display:flex; gap:2.4rem; flex-wrap:wrap; }
  .hero-stats div{ font-family:var(--font-mono); }
  .hero-stats strong{ display:block; font-size:1.6rem; color:#faf5e8; font-family:var(--font-display); }
  .hero-stats span{ font-size:0.75rem; color:#a9bcc0; text-transform:uppercase; letter-spacing:0.08em; }

  .route-card{
    background: rgba(251,247,236,0.06);
    border:1px solid rgba(244,236,216,0.22);
    border-radius:10px;
    padding:1.8rem;
    backdrop-filter: blur(6px);
  }
  .route-card .route-head{ display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:1.4rem; }
  .route-row{ display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap:0.8rem; margin-bottom:1.6rem; }
  .route-city strong{ display:block; font-family:var(--font-display); font-size:1.35rem; color:#faf5e8; }
  .route-city span{ font-size:0.75rem; color:#a9bcc0; letter-spacing:0.05em; }
  .route-city.right{ text-align:right; }
  .route-line{ position:relative; height:16px; }
  .route-line svg{ width:100%; height:100%; overflow:visible; }
  .route-dash{ stroke-dasharray: 4 7; animation: dashmove 22s linear infinite; }
  @media (prefers-reduced-motion: reduce){ .route-dash{ animation:none; } }
  @keyframes dashmove{ to{ stroke-dashoffset:-400; } }
  .route-plane{ animation: planefly 3.4s ease-in-out infinite; transform-origin:center; }
  @keyframes planefly{ 0%,100%{ transform:translateX(0);} 50%{ transform:translateX(6px);} }
  @media (prefers-reduced-motion: reduce){ .route-plane{ animation:none; } }
  .route-foot{ display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:0.72rem; color:#a9bcc0; border-top:1px dashed rgba(244,236,216,0.25); padding-top:1rem; }
  .route-foot b{ color:var(--gold); }

  /* reveal on scroll */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

  /* ---------- section heads ---------- */
  .section-head{ max-width:640px; margin-bottom:var(--gap-lg); }
  .section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
  .section-head h2{ font-size:clamp(1.9rem,3vw,2.5rem); }

  /* ---------- About ---------- */
  #sobre{ background:var(--bg); }
  .about-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:3.5rem; align-items:start; }
  .about-copy p{ font-size:1.02rem; }
  .stat-strip{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:1rem; }
  .stat-stub{
    background:var(--bg-card); border:1px solid var(--line); border-radius:8px; padding:1.3rem 1.2rem;
    position:relative;
  }
  .stat-stub::after{
    content:""; position:absolute; right:-1px; top:50%; width:14px; height:14px; border-radius:50%;
    background:var(--bg); transform:translate(50%,-50%); border:1px solid var(--line);
  }
  .stat-stub strong{ display:block; font-family:var(--font-display); font-size:1.9rem; color:var(--accent); }
  .stat-stub span{ font-size:0.78rem; color:var(--fg-soft); text-transform:uppercase; letter-spacing:0.06em; }

  /* ---------- Services ---------- */
  #servicos{ background:var(--ink); color:#f4ecd8; }
  #servicos .section-head p{ color:#c9d3d0; }
  #servicos .eyebrow{ color:var(--gold); }
  #servicos .eyebrow::before{ background:var(--gold); }
  .services-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; }
  .service-card{
    background:rgba(251,247,236,0.05); border:1px solid rgba(244,236,216,0.14); border-radius:10px;
    padding:1.8rem 1.5rem; transition:transform .3s ease, border-color .3s ease, background .3s ease;
  }
  .service-card:hover{ transform:translateY(-6px); border-color:var(--gold); background:rgba(251,247,236,0.08); }
  .service-card .icon{ width:38px; height:38px; color:var(--gold); margin-bottom:1.1rem; }
  .service-card h3{ color:#faf5e8; font-size:1.15rem; }
  .service-card p{ color:#b9c4c1; font-size:0.92rem; margin-bottom:0; }
  .service-card.highlight{
    grid-column: span 4;
    display:grid; grid-template-columns:auto 1fr auto; gap:2rem; align-items:center;
    background:linear-gradient(120deg, rgba(196,98,46,0.16), rgba(214,165,76,0.08));
    border-color: rgba(214,165,76,0.4);
  }
  .service-card.highlight .icon{ width:52px; height:52px; margin-bottom:0; }
  .service-card.highlight ul{ margin:0.7rem 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:0.5rem 1.4rem; }
  .service-card.highlight li{ font-size:0.85rem; color:#e7ddc4; display:flex; align-items:center; gap:0.5em; }
  .service-card.highlight li::before{ content:"—"; color:var(--gold); }

  /* ---------- Destinations ---------- */
  #destinos{ background:var(--bg); }
  .dest-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
  .dest-card{
    background:var(--bg-card); border-radius:12px; overflow:hidden; border:1px solid var(--line);
    box-shadow: var(--shadow); transition:transform .35s ease;
  }
  .dest-card:hover{ transform:translateY(-6px); }
  .dest-art{ height:150px; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .dest-art svg{ width:64%; height:64%; }
  .dest-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .dest-body{ padding:1.1rem 1.2rem 1.3rem; }
  .dest-body .country{ font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); }
  .dest-body h3{ font-size:1.15rem; margin:0.25em 0 0.35em; }
  .dest-body p{ font-size:0.86rem; margin:0; }

  /* ---------- Why us ---------- */
  #porque{ background:var(--ink); color:#f4ecd8; }
  #porque .eyebrow{ color:var(--gold); } #porque .eyebrow::before{ background:var(--gold); }
  #porque .section-head p{ color:#c9d3d0; }
  .why-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem; }
  .why-card{ text-align:center; padding:1.6rem 1rem; }
  .why-card .icon{ width:40px; height:40px; margin:0 auto 1rem; color:var(--gold); }
  .why-card h3{ font-size:1rem; color:#faf5e8; margin-bottom:0.4em; }
  .why-card p{ font-size:0.85rem; color:#b9c4c1; margin:0; }

  /* ---------- Testimonials ---------- */
  #depoimentos{ background:var(--bg); }
  .testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
  .testi-card{
    background:var(--bg-card); border:1px solid var(--line); border-radius:10px; padding:1.8rem;
    position:relative;
  }
  .testi-stamp{ position:absolute; top:1.2rem; right:1.2rem; width:44px; height:44px; opacity:0.5; color:var(--clay); }
  .testi-quote{ font-family:var(--font-display); font-size:1.08rem; font-style:italic; color:var(--fg); margin-bottom:1.2rem; }
  .testi-name{ font-weight:700; font-size:0.9rem; }
  .testi-trip{ font-family:var(--font-mono); font-size:0.72rem; color:var(--accent); text-transform:uppercase; letter-spacing:0.05em; }

  /* ---------- Contact ---------- */
  #contato{ background:var(--ink); color:#f4ecd8; }
  #contato .eyebrow{ color:var(--gold); } #contato .eyebrow::before{ background:var(--gold); }
  #contato .section-head p{ color:#c9d3d0; }
  .contact-wrap{ display:grid; grid-template-columns:0.9fr 1.4fr; gap:0; background:var(--paper); color:var(--ink); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }
  .contact-side{ background:linear-gradient(160deg, var(--ocean-deep), var(--ink)); color:#f4ecd8; padding:2.6rem 2.2rem; position:relative; }
  .contact-side h3{ color:#faf5e8; font-size:1.4rem; }
  .contact-side .side-item{ display:flex; gap:0.8rem; margin-bottom:1.3rem; font-size:0.92rem; }
  .contact-side .side-item svg{ width:20px; height:20px; flex:none; color:var(--gold); margin-top:0.15rem; }
  .contact-side .side-item span{ color:#cfd8d4; }
  .ticket-divider{ border:none; border-top:1.5px dashed rgba(244,236,216,0.3); margin:1.6rem 0; }
  .contact-form{ padding:2.6rem 2.4rem; }
  .form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.2rem; }
  .field{ display:flex; flex-direction:column; gap:0.4rem; }
  .field.full{ grid-column:1/-1; }
  label{ font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-soft); }
  input, select, textarea{
    font-family:var(--font-body); font-size:0.95rem; padding:0.75em 0.9em; border-radius:6px;
    border:1.5px solid var(--line); background:#fff; color:var(--ink);
  }
  textarea{ resize:vertical; min-height:90px; }
  .form-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:1.5rem; flex-wrap:wrap; gap:1rem; }
  .form-note{ font-family:var(--font-mono); font-size:0.72rem; color:var(--ink-soft); }
  #form-status{ margin-top:1.1rem; padding:1rem 1.2rem; border-radius:8px; background:rgba(59,107,79,0.12); border:1px solid var(--palm); font-family:var(--font-mono); font-size:0.85rem; display:none; }
  #form-status.show{ display:block; }
  #form-status b{ color:var(--palm); }

  /* ---------- Footer ---------- */
  footer{ background:#0d1a20; color:#c9d3d0; padding: var(--gap-lg) 0 2rem; }
  .foot-grid{ display:grid; grid-template-columns:1.4fr 0.8fr 0.8fr 1fr; gap:2.5rem; margin-bottom:2.5rem; }
  .foot-brand .brand-word{ color:#f4ecd8; }
  .foot-brand p{ color:#8fa19d; font-size:0.88rem; max-width:32ch; }
  footer h4{ color:#f4ecd8; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:1rem; }
  footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.65rem; }
  footer ul a{ color:#a9bcb8; text-decoration:none; font-size:0.9rem; }
  footer ul a:hover{ color:var(--gold); }
  .social-row{ display:flex; gap:0.8rem; margin-top:0.3rem; }
  .social-row a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(244,236,216,0.2); display:flex; align-items:center; justify-content:center; color:#e7ddc4; transition:border-color .25s, color .25s; }
  .social-row a:hover{ border-color:var(--gold); color:var(--gold); }
  .social-row svg{ width:16px; height:16px; }
  .foot-bottom{ border-top:1px solid rgba(244,236,216,0.12); padding-top:1.6rem; display:flex; justify-content:space-between; font-size:0.8rem; color:#7f9490; flex-wrap:wrap; gap:0.6rem; }

  /* ---------- Responsive ---------- */
  @media (max-width: 980px){
    .hero .container{ grid-template-columns:1fr; }
    .about-grid{ grid-template-columns:1fr; }
    .services-grid{ grid-template-columns:repeat(2,1fr); }
    .service-card.highlight{ grid-column:span 2; grid-template-columns:1fr; text-align:left; }
    .dest-grid{ grid-template-columns:repeat(2,1fr); }
    .why-grid{ grid-template-columns:repeat(3,1fr); }
    .testi-grid{ grid-template-columns:1fr 1fr; }
    .contact-wrap{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 640px){
    .nav-links, .nav-cta .btn-ghost{ display:none; }
    .nav-toggle{ display:inline-flex; }
    header[data-open="true"] .nav-links{
      display:flex; position:absolute; top:100%; left:0; right:0; background:var(--bg);
      flex-direction:column; padding:1.2rem 1.5rem; border-bottom:1px solid var(--line); gap:1.1rem;
    }
    section{ padding: 3.2rem 0; }
    .services-grid, .why-grid, .testi-grid, .dest-grid{ grid-template-columns:1fr; }
    .service-card.highlight{ grid-column:1; }
    .form-grid{ grid-template-columns:1fr; }
    .hero-stats{ gap:1.4rem; }
    .foot-grid{ grid-template-columns:1fr; gap:1.8rem; }
    .foot-bottom{ flex-direction:column; }
  }
