:root{
    --blue:#0B4F9E;
    --blue-deep:#062E63;
    --blue-mid:#0F6FD1;
    --sky:#EAF3FF;
    --sun:#FFC400;
    --sun-dark:#E6AC00;
    --white:#FFFFFF;
    --ink:#10233F;
    --ink-soft:#57677E;
    --line:#E3E9F0;
    --success:#12915F;
    --success-bg:#E5F7EE;
    --display:'Poppins',sans-serif;
    --body:'Inter',sans-serif;
    --radius:16px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--white);color:var(--ink);
    font-family:var(--body);line-height:1.55;-webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;}
  h1,h2,h3{font-family:var(--display);margin:0;letter-spacing:-0.01em;}
  p{margin:0;}
  .wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
  :focus-visible{outline:3px solid var(--sun);outline-offset:2px;}
  @media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important;}}
  .eyebrow{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--blue-mid);}

  /* ---------- TOPBAR ---------- */
  .topbar{background:var(--blue-deep);color:#CFE0F5;font-size:12.5px;}
  .topbar-inner{display:flex;justify-content:flex-end;gap:22px;padding:8px 24px;max-width:1200px;margin:0 auto;}
  .topbar a{text-decoration:none;color:#CFE0F5;display:flex;align-items:center;gap:5px;}
  .topbar a:hover{color:#fff;}

  /* ---------- HEADER ---------- */
  header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);}
  .nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1200px;margin:0 auto;gap:20px;}
  .logo{display:flex;align-items:center;gap:9px;font-family:var(--display);font-weight:800;font-size:22px;text-decoration:none;color:var(--blue);}
  .logo-mark{width:30px;height:30px;flex:none;}
  .nav-links{display:flex;gap:26px;list-style:none;margin:0;padding:0;flex:1;justify-content:center;}
  .nav-links a{text-decoration:none;font-size:14.5px;font-weight:600;color:var(--ink);padding:8px 2px;border-bottom:2px solid transparent;display:flex;align-items:center;gap:7px;}
  .nav-links a svg{width:16px;height:16px;flex:none;color:var(--blue-mid);}
  .nav-links a:hover{color:var(--blue);border-color:var(--sun);}
  .nav-actions{display:flex;align-items:center;gap:10px;}
  .btn{
    font-family:var(--body);font-weight:700;font-size:14.5px;border:none;border-radius:10px;
    padding:11px 20px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn-sun{background:var(--sun);color:var(--blue-deep);box-shadow:0 8px 18px -8px rgba(255,196,0,.7);}
  .btn-sun:hover{background:var(--sun-dark);transform:translateY(-1px);}
  .btn-outline{background:#fff;color:var(--blue);border:1.5px solid var(--line);}
  .btn-outline:hover{border-color:var(--blue);}
  .btn-block{width:100%;justify-content:center;}
  .nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;}
  .nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:radial-gradient(1100px 480px at 15% -10%, #14448F 0%, transparent 60%),
               linear-gradient(160deg,var(--blue-deep) 0%, var(--blue) 60%, var(--blue-mid) 100%);
    padding:0 0 48px;
    overflow:hidden;
  }
  .hero-routes{position:absolute;inset:0;width:100%;height:100%;opacity:.5;}
  .hero-content{position:relative;z-index:2;text-align:center;max-width:720px;margin:0 auto 4px;}
  .hero-content .eyebrow{color:#9FCBFF;}
  .hero-content h1{color:#fff;font-size:clamp(24px,3.6vw,36px);line-height:1.1;margin-top:4px;}
  .hero-content p{color:#CFE0F5;font-size:15px;margin-top:6px;}

  /* ---------- SEARCH CARD ---------- */
  .search-card{
    position:relative;z-index:3;
    width:min(100%,820px);max-width:820px;margin:0 auto;
    background:#fff;border-radius:20px;
    box-shadow:0 30px 60px -20px rgba(6,46,99,.45);
    padding:6px;
  }
  .tabs{display:flex;gap:3px;padding:7px 7px 0;flex-wrap:wrap;}
  .tab{
    font-family:var(--body);font-size:14px;font-weight:700;color:var(--ink-soft);
    background:transparent;border:none;padding:12px 18px;border-radius:10px 10px 0 0;cursor:pointer;
    display:flex;align-items:center;gap:7px;
  }
  .tab svg{width:17px;height:17px;}
  .tab[aria-selected="true"]{background:var(--sky);color:var(--blue);}
  .search-body{padding:14px 16px 16px;}

  .tp-panel[hidden]{display:none;}
  .tp-widget-slot{
    min-height:96px;border:1.5px dashed var(--line);border-radius:14px;
    padding:16px;background:var(--sky);position:relative;
  }
  .tp-widget-slot.tp-filled{border-style:solid;background:transparent;padding:0;min-height:0;}
  .tp-widget-slot.tp-filled .tp-skeleton{display:none;}
  .tp-skeleton{display:flex;flex-direction:column;gap:12px;}
  .tp-sk-row{display:flex;gap:10px;flex-wrap:wrap;}
  .tp-sk-field{flex:1;min-width:110px;height:42px;border-radius:9px;background:linear-gradient(100deg,#DCE9FA 20%,#EFF6FF 40%,#DCE9FA 60%);background-size:200% 100%;animation:shimmer 2.4s ease-in-out infinite;}
  .tp-sk-field.short{flex:0 0 130px;}
  .tp-sk-field.wide{flex:1 1 100%;}
  .tp-sk-btn{flex:0 0 120px;height:42px;border-radius:9px;background:linear-gradient(100deg,#FFE9A8 20%,#FFF4D2 40%,#FFE9A8 60%);background-size:200% 100%;animation:shimmer 2.4s ease-in-out infinite;}
  @keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
  .tp-sk-note{font-size:12px;color:var(--ink-soft);opacity:.8;}
  @media (prefers-reduced-motion: reduce){.tp-sk-field,.tp-sk-btn{animation:none;}}

  .search-foot{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap;color:var(--ink-soft);font-size:12.5px;}
  .search-foot svg{width:15px;height:15px;color:var(--success);}

  /* ---------- SECTION GENERIC ---------- */
  section{padding:64px 0;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px;flex-wrap:wrap;}
  .section-head h2{font-size:clamp(24px,3vw,32px);}
  .section-head p{color:var(--ink-soft);font-size:15px;margin-top:8px;max-width:480px;}
  .see-all{font-weight:700;font-size:14px;color:var(--blue);text-decoration:none;display:flex;align-items:center;gap:6px;white-space:nowrap;}
  .see-all svg{width:16px;height:16px;}

  /* ---------- DESTINATIONS ---------- */
  .dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .dest-card{
    border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line);
    text-decoration:none;color:var(--ink);transition:transform .18s ease, box-shadow .18s ease;
  }
  .dest-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px -18px rgba(16,35,63,.35);}
  .dest-photo{height:150px;position:relative;overflow:hidden;background:var(--sky);}
  .dest-img{width:100%;height:100%;object-fit:cover;display:block;}
  .dest-badge{
    position:absolute;top:12px;left:12px;background:#fff;color:var(--blue);
    font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:999px;
  }
  .dest-info{padding:16px 18px 18px;}
  .dest-info h3{font-size:16.5px;}
  .dest-info .from{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}
  .dest-price{font-family:var(--display);font-weight:700;font-size:19px;color:var(--blue);margin-top:8px;}
  .dest-price span{font-family:var(--body);font-weight:500;font-size:12px;color:var(--ink-soft);}

  /* ---------- DEALS ---------- */
  .deals{background:var(--sky);}
  .deal-scroll{display:flex;gap:18px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;}
  .deal-card{
    flex:0 0 260px;scroll-snap-align:start;background:#fff;border-radius:var(--radius);
    border:1px solid var(--line);overflow:hidden;position:relative;
  }
  .deal-photo{height:120px;position:relative;overflow:hidden;background:var(--sky);}
  .deal-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .deal-body{padding:16px 18px 18px;}
  .deal-tag{
    position:absolute;top:12px;right:12px;background:var(--success-bg);color:var(--success);
    font-size:11px;font-weight:800;padding:4px 9px;border-radius:999px;
  }
  .deal-route{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:16px;margin-bottom:6px;}
  .deal-route svg{width:15px;height:15px;color:var(--blue-mid);}
  .deal-card p{color:var(--ink-soft);font-size:12.5px;}
  .deal-price{margin-top:14px;display:flex;align-items:baseline;gap:8px;}
  .deal-price .old{font-size:13px;color:#9AA6B5;text-decoration:line-through;}
  .deal-price .new{font-family:var(--display);font-weight:800;font-size:21px;color:var(--ink);}

  /* ---------- OFERTAS POR CATEGORIA ---------- */
  .offer-tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;}
  .offer-tab{
    font-family:var(--body);font-weight:700;font-size:14px;color:var(--ink-soft);
    background:var(--sky);border:1.5px solid transparent;padding:10px 20px;border-radius:999px;cursor:pointer;
  }
  .offer-tab[aria-selected="true"]{background:var(--blue);color:#fff;}
  .offer-panel[hidden]{display:none;}

  /* ---------- DEPOIMENTOS ---------- */
  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .testi-card{
    background:var(--sky);border-radius:var(--radius);padding:24px 22px;
  }
  .testi-stars{color:var(--sun-dark);font-size:15px;letter-spacing:2px;margin-bottom:12px;}
  .testi-quote{font-size:14.5px;color:var(--ink);line-height:1.6;}
  .testi-author{margin-top:14px;font-size:13px;font-weight:700;color:var(--ink-soft);}

  /* ---------- APP PROMO ---------- */
  .app-promo{
    background:linear-gradient(135deg,var(--blue-deep),var(--blue) 80%);
    border-radius:24px;color:#fff;
    display:grid;grid-template-columns:1.1fr 0.9fr;align-items:center;gap:20px;
    overflow:hidden;
  }
  .app-text{padding:44px 12px 44px 46px;}
  .app-text .eyebrow{color:#9FCBFF;}
  .app-text h2{color:#fff;font-size:clamp(24px,3vw,32px);margin-top:10px;}
  .app-text p{color:#CFE0F5;font-size:15px;margin-top:12px;max-width:400px;}
  .store-badges{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;}
  .store-badge{
    display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.25);border-radius:12px;padding:10px 16px;
    text-decoration:none;color:#fff;
  }
  .store-badge svg{width:22px;height:22px;}
  .store-badge span{display:block;font-size:9.5px;color:#CFE0F5;line-height:1;}
  .store-badge strong{display:block;font-size:13.5px;font-family:var(--display);}
  .app-visual{position:relative;height:100%;min-height:260px;}
  .app-visual svg{position:absolute;bottom:0;right:30px;width:170px;}

  /* ---------- NEWSLETTER ---------- */
  .newsletter{
    display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
    background:var(--sky);border-radius:20px;padding:34px 40px;
  }
  .newsletter h3{font-size:19px;}
  .newsletter p{color:var(--ink-soft);font-size:13.5px;margin-top:4px;}
  .news-form{display:flex;gap:10px;flex-wrap:wrap;}
  .news-form input{
    font-family:var(--body);font-size:14.5px;padding:12px 14px;border-radius:10px;
    border:1.5px solid var(--line);min-width:230px;background:#fff;
  }
  .news-form input:focus{border-color:var(--blue);outline:none;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--blue-deep);color:#B9CBE4;padding:56px 0 0;margin-top:20px;}
  .footer-grid{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:30px;padding-bottom:36px;}
  .footer-brand .logo{color:#fff;}
  .footer-brand p{font-size:13px;margin-top:12px;max-width:250px;color:#9FB2CE;}
  .footer-social{display:flex;gap:10px;margin-top:18px;}
  .footer-social a{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;text-decoration:none;}
  .footer-social svg{width:16px;height:16px;color:#fff;}
  .footer-col h4{font-family:var(--display);font-size:13px;color:#fff;margin-bottom:14px;}
  .footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
  .footer-col a{text-decoration:none;font-size:13.5px;color:#B9CBE4;}
  .footer-col a:hover{color:#fff;}
  .footer-bottom{
    display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
    border-top:1px solid rgba(255,255,255,.12);padding:22px 0;font-size:12px;color:#8CA0BE;
  }
  .payment-icons{display:flex;gap:8px;}
  .payment-icons span{
    width:34px;height:22px;border-radius:4px;background:rgba(255,255,255,.1);
    display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#CFE0F5;
  }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:960px){
    .nav-links{display:none;}
    .nav-toggle{display:block;}
    .dest-grid{grid-template-columns:repeat(2,1fr);}
    .testi-grid{grid-template-columns:repeat(2,1fr);}
    .app-promo{grid-template-columns:1fr;}
    .app-visual{display:none;}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:640px){
    .topbar-inner{justify-content:center;}
    .dest-grid{grid-template-columns:1fr;}
    .testi-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
    .newsletter{flex-direction:column;align-items:flex-start;}
    .news-form{width:100%;}
    .news-form input{flex:1;min-width:0;}
    .search-body{padding:16px;}
    .tabs{padding:8px 8px 0;}
    .tab span.tab-label{display:none;}
  }

  /* ---------- MODO DE EDIÇÃO (editar direto no navegador) ---------- */
  .edit-toolbar{
    position:fixed;bottom:18px;right:18px;z-index:999;
    display:flex;gap:10px;align-items:center;flex-wrap:wrap;
    max-width:calc(100vw - 36px);
  }
  .edit-toggle-btn,.edit-save-btn{
    font-family:var(--body);font-weight:700;font-size:13.5px;border:none;border-radius:999px;
    padding:12px 18px;cursor:pointer;box-shadow:0 10px 24px -8px rgba(6,46,99,.45);
  }
  .edit-toggle-btn{background:var(--blue);color:#fff;}
  .edit-toggle-btn:hover{background:var(--blue-deep);}
  .edit-save-btn{background:var(--sun);color:var(--blue-deep);}
  .edit-save-btn:hover{background:var(--sun-dark);}
  .edit-hint{
    background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 13px;
    font-size:12px;color:var(--ink-soft);box-shadow:0 8px 20px -10px rgba(6,46,99,.35);max-width:220px;
  }
  body.edit-mode [data-editable="text"]{
    outline:1.5px dashed transparent;border-radius:5px;cursor:text;transition:outline-color .15s,background .15s;
  }
  body.edit-mode [data-editable="text"]:hover,
  body.edit-mode [data-editable="text"]:focus{
    outline-color:var(--blue-mid);background:rgba(11,111,209,0.06);
  }
  body.edit-mode [data-editable="image"]{cursor:pointer;position:relative;}
  body.edit-mode [data-editable="image"]::after{
    content:"✏️ Trocar foto";position:absolute;inset:auto 0 0 0;
    background:rgba(6,46,99,.78);color:#fff;font-size:11px;font-weight:600;
    text-align:center;padding:6px 0;letter-spacing:.02em;
  }
  @media print{.edit-toolbar{display:none;}}
