@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Work+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

  :root{
    --ink:#0B0B0C;
    --gold:#EFB92C;
    --gold-deep:#9C7009;
    --teal:#8FC7B4;
    --teal-deep:#2E6858;
    --sand:#FBF7EF;
    --paper:#FFFFFF;
    --line:#E6E0D2;
    --text:#1C1B18;
    --text-muted:#736C5C;
    --shadow: 0 1px 2px rgba(20,18,10,.04), 0 8px 24px rgba(20,18,10,.06);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#F5F1E4;
      --gold:#F3C948;
      --gold-deep:#F3C948;
      --teal:#9ED4C2;
      --teal-deep:#9ED4C2;
      --sand:#141210;
      --paper:#1D1A15;
      --line:#332E22;
      --text:#F2EEE2;
      --text-muted:#AFA895;
      --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.4);
    }
  }
  :root[data-theme="dark"]{
    --ink:#F5F1E4;
    --gold:#F3C948;
    --gold-deep:#F3C948;
    --teal:#9ED4C2;
    --teal-deep:#9ED4C2;
    --sand:#141210;
    --paper:#1D1A15;
    --line:#332E22;
    --text:#F2EEE2;
    --text-muted:#AFA895;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.4);
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--sand);
    color:var(--text);
    font-family:'Work Sans', ui-sans-serif, system-ui, sans-serif;
    -webkit-font-smoothing:antialiased;
    padding-inline:0;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  h1,h2,h3{
    font-family:'Fraunces', ui-serif, Georgia, serif;
    font-weight:600;
    text-wrap:balance;
    margin:0;
    letter-spacing:-0.01em;
  }
  .mono{font-family:'IBM Plex Mono', ui-monospace, monospace;}
  .wrap{max-width:1120px;margin-inline:auto;padding-inline:20px;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--teal-deep);
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .eyebrow::before{
    content:"";
    width:6px;height:6px;border-radius:50%;
    background:var(--gold);
    display:inline-block;
  }

  /* ---------- demo notice ---------- */
  .demo-notice{
    background:var(--ink);
    color:var(--sand);
    font-size:13px;
    text-align:center;
    padding:9px 16px;
    line-height:1.5;
  }
  .demo-notice strong{color:var(--gold);}

  /* ---------- nav ---------- */
  header.site{
    position:sticky;top:env(safe-area-inset-top,0px);
    z-index:40;
    background:var(--ink);
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  nav.wrap{
    display:flex;align-items:center;justify-content:space-between;
    padding-block:12px;
    gap:16px;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{height:42px;width:auto;}
  .brand-word{
    font-family:'Fraunces', serif;
    color:var(--sand);
    font-size:19px;
    line-height:1.1;
  }
  .brand-word b{color:var(--gold);font-weight:600;}
  .nav-links{
    display:flex;gap:28px;align-items:center;
    font-size:14.5px;color:#D9D4C6;
  }
  .nav-links a{text-decoration:none;opacity:.88;transition:opacity .15s;}
  .nav-links a:hover{opacity:1;color:var(--gold);}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:11px 20px;
    border-radius:999px;
    font-size:14.5px;font-weight:600;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
    font-family:'Work Sans', sans-serif;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
  .btn-gold{background:var(--gold);color:#231A02;}
  .btn-gold:hover{box-shadow:0 6px 18px rgba(239,185,44,.35);}
  .btn-ghost{background:transparent;border-color:rgba(255,255,255,.28);color:var(--sand);}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold);}
  .btn-line{background:transparent;border-color:var(--line);color:var(--text);}
  .btn-line:hover{border-color:var(--teal-deep);color:var(--teal-deep);}
  .nav-cta{display:flex;align-items:center;gap:12px;}
  .menu-btn{display:none;background:none;border:0;color:var(--sand);padding:6px;cursor:pointer;}

  /* ---------- perforation divider ---------- */
  .perf{
    height:1px;
    background-image:repeating-linear-gradient(90deg, var(--line) 0 10px, transparent 10px 20px);
    position:relative;
  }
  .perf::before,.perf::after{
    content:"";
    position:absolute;top:50%;transform:translateY(-50%);
    width:22px;height:22px;border-radius:50%;
    background:var(--sand);
  }
  .perf::before{left:-11px;}
  .perf::after{right:-11px;}

  /* ---------- hero ---------- */
  .hero{
    background:var(--ink);
    color:var(--sand);
    position:relative;
    overflow:clip;
    padding-block:64px 88px;
  }
  .hero-bg{
    position:absolute; inset:0; z-index:0;
    overflow:hidden;
  }
  .hero-bg svg{width:100%;height:100%;display:block;}
  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(11,11,12,.42) 0%, rgba(11,11,12,.58) 45%, rgba(11,11,12,.86) 100%);
  }
  .hero-grid{
    position:relative; z-index:2;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:48px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(34px,4.6vw,56px);
    line-height:1.04;
    color:var(--sand);
  }
  .hero h1 em{color:var(--gold);font-style:italic;}
  .hero p.lead{
    margin-top:18px;
    font-size:17px;
    line-height:1.6;
    color:#D8D3C4;
    max-width:46ch;
  }
  .hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
  .stat-strip{
    display:flex;gap:0;margin-top:48px;
    border-top:1px solid rgba(255,255,255,.14);
    padding-top:22px;
  }
  .stat{flex:1;padding-right:18px;}
  .stat .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:26px;color:var(--gold);
  }
  .stat .lbl{font-size:12.5px;color:#B9B3A2;margin-top:4px;}

  /* flight path card */
  .route-card{
    background:var(--paper);
    color:var(--text);
    border-radius:18px;
    padding:26px 26px 22px;
    box-shadow:var(--shadow);
    position:relative;
  }
  .route-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;}
  .route-head .eyebrow{color:var(--teal-deep);}
  .route-head .mono{font-size:12px;color:var(--text-muted);}
  .route-line{
    position:relative;height:64px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .route-line svg{position:absolute;left:0;top:0;width:100%;height:100%;}
  .route-pt{
    display:flex;flex-direction:column;align-items:center;gap:6px;z-index:1;
    background:var(--paper);
    padding-inline:4px;
  }
  .route-pt .dot{width:11px;height:11px;border-radius:50%;background:var(--teal-deep);}
  .route-pt .code{font-family:'IBM Plex Mono',monospace;font-size:19px;font-weight:500;}
  .route-pt .city{font-size:11.5px;color:var(--text-muted);}
  .plane{
    position:absolute;top:50%;left:8%;
    transform:translate(-50%,-50%);
    color:var(--gold-deep);
    offset-path:path('M 0 0 L 300 0');
    animation:fly 3.2s ease-in-out infinite alternate;
  }
  @keyframes fly{
    from{ left:10%; }
    to{ left:90%; }
  }
  .route-foot{
    display:flex;justify-content:space-between;
    margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);
    font-size:13px;color:var(--text-muted);
  }
  .route-foot b{color:var(--text);font-family:'IBM Plex Mono',monospace;font-weight:500;}
  @media (prefers-reduced-motion: reduce){
    .plane{animation:none;left:50%;}
  }

  /* ---------- flight search widget ---------- */
  .search-wrap{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:28px;}
  .tpwl-search-wrap{min-height:64px;}
  .tpwl-tickets-wrap{margin-top:18px;}
  .popular-head{display:flex;justify-content:space-between;align-items:baseline;margin-top:34px;margin-bottom:16px;}
  .popular-head h4{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;}
  .popular-sub{font-size:12.5px;color:var(--text-muted);}
  .tpwl-weedle-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
  .tpwl-weedle-grid .tpwl-widget-weedle{min-height:120px;border-radius:12px;overflow:hidden;}
  @media (max-width:860px){
    .tpwl-weedle-grid{grid-template-columns:repeat(3,1fr);}
  }
  @media (max-width:560px){
    .tpwl-weedle-grid{grid-template-columns:repeat(2,1fr);}
  }

  /* ---------- sections generic ---------- */
  section{padding-block:76px;}
  .sec-head{max-width:640px;margin-bottom:44px;}
  .sec-head h2{font-size:clamp(26px,3.2vw,36px);margin-top:10px;}
  .sec-head p{color:var(--text-muted);margin-top:12px;line-height:1.6;font-size:15.5px;}

  /* ---------- destinations (luggage tags) ---------- */
  .dest-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
  }
  .tag{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:14px;
    padding:20px 20px 18px;
    position:relative;
    box-shadow:var(--shadow);
    transition:transform .18s ease;
  }
  .tag:hover{transform:translateY(-3px);}
  .tag .hole{
    position:absolute;top:16px;right:16px;
    width:16px;height:16px;border-radius:50%;
    background:var(--sand);
    border:1px solid var(--line);
  }
  .tag .code{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;color:var(--teal-deep);
    letter-spacing:.08em;
  }
  .tag h3{font-size:20px;margin-top:8px;padding-right:26px;}
  .tag p{font-size:14px;color:var(--text-muted);margin-top:8px;line-height:1.55;min-height:44px;}
  .tag-foot{
    display:flex;justify-content:space-between;align-items:baseline;
    margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);
  }
  .tag-foot .from{font-size:11.5px;color:var(--text-muted);}
  .tag-foot .price{font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--gold-deep);}

  /* ---------- services ---------- */
  .svc-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
  }
  .svc{
    background:var(--paper);
    padding:28px 24px;
    display:block;
    text-decoration:none;
    position:relative;
    transition:background .15s ease;
  }
  a.svc:hover{background:color-mix(in srgb, var(--teal) 12%, var(--paper));}
  .svc .ic{
    width:38px;height:38px;
    display:flex;align-items:center;justify-content:center;
    border-radius:10px;
    background:color-mix(in srgb, var(--teal) 30%, transparent);
    color:var(--teal-deep);
    margin-bottom:16px;
  }
  .svc h3{font-size:17px;}
  .svc p{font-size:14px;color:var(--text-muted);margin-top:8px;line-height:1.55;}
  .svc .partner-tag{
    position:absolute;top:24px;right:24px;
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;
    color:var(--teal-deep);
    background:color-mix(in srgb, var(--teal) 22%, transparent);
    padding:3px 8px;border-radius:999px;
    letter-spacing:.03em;
  }
  .svc .soon-tag{
    position:absolute;top:24px;right:24px;
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;
    color:var(--text-muted);
    background:var(--sand);
    border:1px solid var(--line);
    padding:3px 8px;border-radius:999px;
  }
  /* real partner-brand treatment (DiscoverCars: azul #0A578C / amarelo #FAD130) */
  .svc.brand-discovercars{
    border-top:3px solid #0A578C;
  }
  .svc.brand-discovercars .ic{
    background:#0A578C;
    color:#FAD130;
  }
  .svc.brand-discovercars .partner-tag{
    background:#0A578C;
    color:#FAD130;
  }
  /* real partner-brand treatment (Seguros Promo: verde #2D6D44) */
  .svc.brand-segurospromo{
    border-top:3px solid #2D6D44;
  }
  .svc.brand-segurospromo .ic{
    background:#2D6D44;
    color:#FFFFFF;
  }
  .svc.brand-segurospromo .partner-tag{
    background:#2D6D44;
    color:#FFFFFF;
  }
  /* real partner-brand treatment (Tiqets: ciano #18BABD / azul #004F91) */
  .svc.brand-tiqets{
    border-top:3px solid #18BABD;
  }
  .svc.brand-tiqets .ic{
    background:#18BABD;
    color:#FFFFFF;
  }
  .svc.brand-tiqets .partner-tag{
    background:#004F91;
    color:#FFFFFF;
  }

  /* ---------- parceiros: cartões de tamanho padrão ---------- */
  #parceiros{padding-block:0;}
  #parceiros .wrap{padding-block:0;}
  .partner-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
    margin-top:-8px;margin-bottom:8px;
  }
  .partner-card{
    position:relative;display:flex;flex-direction:column;
    min-height:190px;padding:22px 22px 20px;
    border-radius:16px;text-decoration:none;color:#fff;overflow:hidden;
    box-shadow:var(--shadow);transition:transform .15s ease;
  }
  .partner-card:hover{transform:translateY(-3px);}
  .partner-kicker{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;opacity:.85;margin:0;}
  .partner-card h3{font-size:19px;line-height:1.25;margin:8px 0 0;color:#fff;}
  .partner-sub{font-size:13px;line-height:1.5;opacity:.88;margin:8px 0 0;flex:1;}
  .btn-partner{
    display:inline-flex;align-items:center;align-self:flex-start;margin-top:16px;
    padding:9px 18px;border-radius:999px;background:#fff;color:var(--ink);
    font-size:13px;font-weight:600;font-family:'Work Sans',sans-serif;
  }
  .partner-segurospromo{background:linear-gradient(135deg,#2D6D44,#1B4A2C);}
  .partner-tiqets{background:linear-gradient(135deg,#18BABD,#004F91);}
  .partner-discovercars{background:linear-gradient(135deg,#0A578C,#063049);}
  .partner-discovercars .btn-partner{background:#FAD130;color:#0A578C;}
  .partner-gol{background:linear-gradient(135deg,#FF6A00,#C74600);}
  @media (max-width:980px){ .partner-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .partner-grid{grid-template-columns:1fr;} .partner-card{min-height:0;} }

  /* ---------- about / trust ---------- */
  .about{
    background:var(--teal);
    color:#12241E;
  }
  .about-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
  }
  .about h2{color:#0F231C;}
  .about p{line-height:1.7;font-size:15.5px;margin-top:14px;color:#1D3A31;}
  .badges{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .badge{
    background:rgba(255,255,255,.55);
    border:1px solid rgba(15,35,28,.14);
    border-radius:12px;
    padding:16px 18px;
  }
  .badge .num{font-family:'IBM Plex Mono',monospace;font-size:22px;color:#0F231C;}
  .badge .lbl{font-size:12.5px;color:#2B4A40;margin-top:4px;}

  /* ---------- FAQ ---------- */
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-item summary{
    list-style:none;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;
    padding-block:18px;font-size:15.5px;font-weight:500;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary .plus{
    font-family:'IBM Plex Mono',monospace;color:var(--teal-deep);font-size:18px;
    transition:transform .2s ease;
  }
  .faq-item[open] summary .plus{transform:rotate(45deg);}
  .faq-item .a{padding-bottom:18px;color:var(--text-muted);font-size:14.5px;line-height:1.6;max-width:65ch;}

  /* ---------- contact / boarding pass ---------- */
  .contact{background:var(--ink);color:var(--sand);}
  .pass{
    background:var(--paper);
    color:var(--text);
    border-radius:18px;
    display:grid;
    grid-template-columns:1.3fr 1fr;
    box-shadow:0 20px 60px rgba(0,0,0,.35);
    overflow:hidden;
  }
  .pass-main{padding:36px;}
  .pass-stub{
    background:var(--gold);
    color:#231A02;
    padding:36px 28px;
    position:relative;
    display:flex;flex-direction:column;justify-content:space-between;
  }
  .pass-divider{
    border-left:1px dashed rgba(0,0,0,.35);
    position:relative;
  }
  .field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
  .field label{font-size:12px;color:var(--text-muted);font-weight:500;}
  .field input, .field select, .field textarea{
    font-family:'Work Sans',sans-serif;
    font-size:14.5px;
    padding:11px 13px;
    border-radius:9px;
    border:1px solid var(--line);
    background:var(--sand);
    color:var(--text);
  }
  .field textarea{resize:vertical;min-height:70px;font-family:inherit;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .pass-stub h3{font-size:20px;color:#231A02;}
  .pass-stub .mono{font-size:12.5px;opacity:.85;}
  .pass-stub .whats-btn{
    margin-top:20px;
    background:#231A02;color:var(--gold);
    justify-content:center;width:100%;
  }
  .pass-stub .contact-line{display:flex;flex-direction:column;gap:10px;margin-top:18px;font-size:13.5px;}
  .pass-social{
    position:absolute;top:28px;right:28px;
    display:flex;gap:10px;z-index:2;
  }
  .pass-social a{
    display:flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:50%;
    background:rgba(35,26,2,.12);
    color:#231A02;
    transition:background .15s ease, transform .15s ease;
  }
  .pass-social a:hover{background:rgba(35,26,2,.22);transform:translateY(-2px);}
  .pass-social svg{width:19px;height:19px;}
  .pass-top{padding-right:104px;}
  @media (max-width:560px){
    .pass-social{position:static;margin-top:16px;}
    .pass-top{padding-right:0;}
  }

  /* ---------- footer ---------- */
  footer{background:var(--ink);color:#B9B3A2;padding-block:36px 28px;border-top:1px solid rgba(255,255,255,.08);}
  .foot-grid{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
  .foot-links{display:flex;gap:22px;font-size:13.5px;}
  .foot-links a{text-decoration:none;opacity:.85;}
  .foot-links a:hover{opacity:1;color:var(--gold);}
  .foot-brand{display:flex;align-items:center;gap:10px;}
  .foot-brand img{height:30px;}
  .foot-social{display:flex;gap:12px;align-items:center;}
  .foot-social a{
    display:flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#D9D4C6;
    transition:background .15s ease, color .15s ease, transform .15s ease;
  }
  .foot-social a:hover{background:var(--gold);color:#231A02;transform:translateY(-2px);}
  .foot-social svg{width:16px;height:16px;}
  .foot-bottom{
    margin-top:26px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);
    font-size:12px;color:#8B8574;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
  }

  /* ---------- responsive ---------- */
  @media (max-width:860px){
    .hero-grid{grid-template-columns:1fr;}
    .nav-links{display:none;}
    .menu-btn{display:inline-flex;}
    .dest-grid{grid-template-columns:1fr 1fr;}
    .svc-grid{grid-template-columns:1fr 1fr;}
    .about-grid{grid-template-columns:1fr;gap:32px;}
    .pass{grid-template-columns:1fr;}
    .pass-divider{border-left:0;border-top:1px dashed rgba(0,0,0,.35);}
  }
  @media (max-width:560px){
    .dest-grid{grid-template-columns:1fr;}
    .svc-grid{grid-template-columns:1fr;}
    .stat-strip{flex-wrap:wrap;row-gap:16px;}
    .stat{flex:1 1 45%;}
    .field-row{grid-template-columns:1fr;}
    body{font-size:15px;}
  }

  .tag-photo{ width:100%; height:104px; object-fit:cover; background-size:cover; background-position:center; border-radius:9px; margin-bottom:12px; display:block; }

  [hidden]{ display:none !important; }

  .tag-foot .tag-link{ font-size:12.5px; font-weight:600; color:var(--teal-deep); text-decoration:none; margin-left:auto; }
  .tag-foot .tag-link:hover{ text-decoration:underline; }
  .tag-foot{ flex-wrap:wrap; gap:6px; }
  .tag .price-note{ display:block; font-size:11px; color:var(--text-muted); margin-top:2px; }

  /* ---------- buscador com tamanho padrão ---------- */
  .search-wrap{max-width:1080px;margin-inline:auto;padding:20px;}
  .tpwl-search-wrap{min-height:0;}
  .tpwl-weedle-grid .tpwl-widget-weedle{min-height:110px;}

  /* ---------- rota em destaque clicável ---------- */
  a.route-card{display:block;text-decoration:none;color:var(--text);transition:transform .15s ease,box-shadow .15s ease;}
  a.route-card:hover{transform:translateY(-3px);}
  a.route-card .mono{color:var(--teal-deep);font-weight:600;}

  /* ---------- cartões de destino clicáveis, com capa ---------- */
  a.tag{display:flex;flex-direction:column;text-decoration:none;color:inherit;cursor:pointer;}
  a.tag .tag-photo{height:130px;margin-bottom:14px;border-radius:10px;}
  a.tag p{flex:1;}
  a.tag .tag-cta{margin-top:12px;font-size:13px;font-weight:600;color:var(--teal-deep);}
  a.tag:hover .tag-cta{text-decoration:underline;}

/* ---- banners de parceiros (estilo Ezilda) ---- */
#parceiros{padding:0;background:#fff;}
.banner-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.banner-tile{position:relative;display:block;overflow:hidden;line-height:0;}
.banner-tile img{width:100%;height:auto;display:block;transition:transform .5s ease;}
.banner-tile:hover img{transform:scale(1.03);}
.gol-strip{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding:16px 20px;background:linear-gradient(90deg,#FF6A00,#C74600);color:#fff;text-decoration:none;font-size:15px;}
.gol-strip .btn-partner{margin:0;background:#fff;color:#C74600;}
@media (max-width:820px){ .banner-row{grid-template-columns:1fr;} }

.banner-row{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;}
.banner-tile{display:flex;align-items:center;justify-content:center;background:#f4f1ea;}
.banner-tile a{display:block;width:100%;}
.banner-tile img{width:100%;height:100%;object-fit:cover;}

/* banners em tamanho natural, centralizados */
#parceiros{padding:36px 16px;background:#f4f1ea;}
.banner-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;max-width:1100px;margin:0 auto;}
.banner-tile{flex:0 1 auto;background:transparent;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.12);line-height:0;}
.banner-tile a{display:block;width:auto;}
.banner-tile img{width:auto;height:auto;max-width:100%;max-height:300px;object-fit:contain;}
.banner-tile:hover img{transform:none;}


/* ---- editável no admin: fontes e foto do topo ---- */
body{font-family:var(--font-body,'Work Sans'),ui-sans-serif,system-ui,sans-serif;}
h1,h2,h3{font-family:var(--font-head,'Fraunces'),ui-serif,Georgia,serif;}
.hero-bg{background-size:cover;background-position:center;}
.hero.has-photo .hero-bg svg{display:none;}
#parceiros:empty,#parceiros .banner-row:empty{display:none;}

/* sem banners: nao deixa faixa vazia sob o topo */
#parceiros:has(> .banner-row[style*="display: none"]){display:none;}
#buscador{padding-block:56px;}
.search-wrap{padding:16px 20px;}

/* servicos clicaveis */
a.svc{color:inherit;cursor:pointer;}
a.svc h3{transition:color .15s ease;}
a.svc:hover h3{color:var(--teal-deep);}
a.svc:focus-visible{outline:2px solid var(--teal-deep);outline-offset:-2px;}
.svc.svc-cta{background:#0B0B0C;color:#FBF7EF;display:flex;flex-direction:column;}
.svc.svc-cta h3{color:#fff;}
.svc.svc-cta p{color:#C9C3B3;}
.svc.svc-cta .ic{background:#EFB92C;color:#0B0B0C;}
.svc.svc-cta .svc-go{margin-top:auto;padding-top:16px;font-weight:700;color:#EFB92C;}
a.svc.svc-cta:hover{background:#1a1a1c;}
a.svc.svc-cta:hover h3{color:#fff;}

.svc .svc-link{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:600;color:var(--teal-deep);}
a.svc:hover .svc-link{text-decoration:underline;}

/* Vistos - destaque dourado */
.svc.svc-vistos{background:linear-gradient(135deg,#EFB92C 0%,#f6d670 100%);position:relative;overflow:hidden;border-color:#EFB92C}
.svc.svc-vistos h3,.svc.svc-vistos p,.svc.svc-vistos .svc-link{color:#1b1400}
.svc.svc-vistos p{opacity:.85}
.svc.svc-vistos .ic{background:#0B0B0C;color:#EFB92C}
.svc.svc-vistos .svc-link{font-weight:800;text-decoration:underline}
.svc.svc-vistos::after{content:"\2708";position:absolute;right:14px;bottom:-6px;font-size:84px;line-height:1;color:rgba(27,20,0,.09);pointer-events:none}

/* ---- revisão 23/09 ---- */
/* números do topo legíveis sobre a foto */
.hero.has-photo .stat .num,
.hero.has-photo .stat .lbl{ text-shadow:0 1px 2px rgba(0,0,0,.75), 0 0 14px rgba(0,0,0,.55); }
.hero.has-photo .stat .lbl{ color:#E4DFD2; }
.hero.has-photo .stat-strip{ border-top-color:rgba(255,255,255,.3); }

/* rodapé: links */
.foot-bottom a,
.foot-bottom .linklike{ color:#C9C3B3; text-decoration:underline; text-underline-offset:2px; }
.foot-bottom a:hover,
.foot-bottom .linklike:hover{ color:var(--gold); }
.linklike{ background:none; border:0; padding:0; font:inherit; cursor:pointer; }

/* aviso de cookies */
.cookie-bar{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:1000;
  max-width:760px; margin:0 auto;
  background:#0B0B0C; color:#EDE8DA;
  border:1px solid rgba(255,255,255,.12); border-radius:16px;
  padding:16px 18px; box-shadow:0 12px 40px rgba(0,0,0,.35);
  display:flex; gap:14px 18px; align-items:center; flex-wrap:wrap;
}
.cookie-bar[hidden]{ display:none; }
.cookie-bar p{ margin:0; flex:1 1 320px; font-size:14px; line-height:1.5; }
.cookie-bar a{ color:#EFB92C; }
.cookie-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.cookie-bar .btn-ghost{ color:#EDE8DA; border-color:rgba(255,255,255,.35); }

/* no lugar do buscador, até aceitar os cookies */
.consent-gate{
  text-align:center; padding:28px 16px;
  border:1px dashed var(--line); border-radius:14px;
}
.consent-gate[hidden]{ display:none; }
.consent-gate p{ margin:0 auto 14px; max-width:52ch; color:var(--text-muted); }
.consent-gate .consent-small{ margin:14px auto 0; font-size:13px; }
.consent-gate a{ color:var(--teal-deep); }
/* texto do topo legível sobre qualquer foto */
.hero.has-photo .hero-grid > div:first-child{ position:relative; }
.hero.has-photo .hero-grid > div:first-child::before{
  content:""; position:absolute; inset:-40px -60px -30px -80px; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at 35% 50%, rgba(8,8,9,.62) 0%, rgba(8,8,9,.38) 55%, rgba(8,8,9,0) 78%);
}
.hero.has-photo .hero-grid{ position:relative; z-index:1; }
.hero.has-photo .lead,
.hero.has-photo .hero-grid > div:first-child .eyebrow{ text-shadow:0 1px 3px rgba(0,0,0,.7); }

/* aviãozinho do cartão "Rota em destaque": ficava em cima do título do cartão */
.route-line svg.plane{ top:50%; width:22px; height:22px; }

/* ---- redes sociais no topo (ícones oficiais, coloridos) ---- */
.nav-social{ display:flex; align-items:center; gap:10px; }
.nav-social .soc{
  display:block; width:40px; height:40px; line-height:0;
  border-radius:12px; transition:transform .15s ease, box-shadow .15s ease;
}
.nav-social .soc-fb{ border-radius:50%; }
.nav-social .soc svg{ width:100%; height:100%; display:block; }
.nav-social .soc:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.35); }
.nav-social .soc:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
@media (max-width:560px){
  .nav-social{ gap:8px; }
  .nav-social .soc{ width:34px; height:34px; }
  .nav-social .soc-ig{ border-radius:10px; }
  header.site .nav-cta{ gap:8px; }
  header.site .nav-cta .btn-gold{ padding:10px 14px; }
}
@media (max-width:420px){
  header.site .brand-word{ display:none; }
}

/* ícones do contato e do rodapé um pouco maiores */
.pass-social a{ width:46px; height:46px; }
.pass-social svg{ width:22px; height:22px; }
.foot-social a{ width:42px; height:42px; }
.foot-social svg{ width:20px; height:20px; }
header.site .nav-cta .btn-gold{ white-space:nowrap; }
header.site .brand-word{ white-space:nowrap; }

/* ---- resultados do buscador: barra com "Fechar" e altura limitada ---- */
.results-bar{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  margin:18px 0 10px; padding:12px 16px;
  background:var(--ink); color:var(--sand); border-radius:12px;
  position:sticky; top:84px; z-index:5;
}
.results-bar[hidden]{ display:none; }
.results-bar span{ font-weight:600; font-size:15px; }
.results-close{
  border:0; border-radius:999px; padding:9px 16px; cursor:pointer;
  background:var(--gold); color:#231A02; font:inherit; font-weight:700; font-size:14px; white-space:nowrap;
}
.results-close:hover{ filter:brightness(.95); }
.results-close:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.tpwl-tickets-wrap{ max-height:80vh; overflow-y:auto; overscroll-behavior:contain; border-radius:12px; }
.tpwl-tickets-wrap.is-closed{ display:none; }
@media (max-width:560px){
  .results-bar{ top:70px; padding:10px 12px; }
  .results-bar span{ font-size:13px; }
  .tpwl-tickets-wrap{ max-height:75vh; }
}

/* banners de parceiros: vem para frente ao passar o mouse (26/09) */
#parceiros .banner-tile{transition:transform .25s ease, box-shadow .25s ease;will-change:transform;}
#parceiros .banner-tile:hover,#parceiros .banner-tile:focus-within{transform:translateY(-6px) scale(1.04);box-shadow:0 14px 32px rgba(0,0,0,.25);z-index:2;}
@media (prefers-reduced-motion:reduce){#parceiros .banner-tile{transition:none;}#parceiros .banner-tile:hover{transform:none;}}

/* banners de parceiros com a mesma altura (26/09) */
#parceiros .banner-tile img{height:280px;width:auto;max-height:none;max-width:100%;}
@media (max-width:600px){#parceiros .banner-tile img{height:auto;max-height:280px;}}

/* 3 banners lado a lado na mesma linha (26/09): altura acompanha a largura da tela */
#parceiros .banner-row{max-width:1200px;}
#parceiros .banner-tile img{height:clamp(160px,20vw,250px);}
@media (max-width:600px){#parceiros .banner-tile img{height:auto;max-height:250px;}}

/* banners: mesma linha e mesma altura (largura proporcional a cada banner) (26/09) */
@media (min-width:700px){
  #parceiros .banner-row.pc-fit{flex-wrap:nowrap;max-width:min(var(--maxw,1200px),1200px);width:100%;}
  #parceiros .banner-row.pc-fit .banner-tile{flex:var(--r,1) 1 0;min-width:0;}
  #parceiros .banner-row.pc-fit .banner-tile img{width:100%;height:auto;max-height:none;max-width:100%;}
}

/* celular: banners em carrossel de arrastar, com a pontinha do proximo aparecendo (26/09) */
@media (max-width:699px){
  #parceiros{padding:24px 0;}
  #parceiros .banner-row{flex-wrap:nowrap;justify-content:flex-start;gap:14px;max-width:none;
    overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:6px 16px 14px;scroll-padding:0 16px;scrollbar-width:none;}
  #parceiros .banner-row::-webkit-scrollbar{display:none;}
  #parceiros .banner-tile{flex:0 0 auto;scroll-snap-align:start;}
  #parceiros .banner-tile img{height:200px;width:auto;max-width:82vw;max-height:none;object-fit:contain;}
  #parceiros .banner-tile:hover,#parceiros .banner-tile:focus-within{transform:none;}
}
