@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&family=Playfair+Display:ital,wght@0,600;1,500&display=swap");
:root{--font-manrope:"Manrope";--font-playfair:"Playfair Display";}

:root { --blue:#10276c; --blue-2:#071743; --red:#e5222b; --cream:#f7f6f2; --ink:#101629; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:var(--font-manrope), sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.shell { width:min(1180px, calc(100% - 40px)); margin-inline:auto; }

.site-header { height:86px; display:flex; align-items:center; gap:42px; padding:0 max(24px, calc((100vw - 1180px)/2)); background:rgba(255,255,255,.96); position:sticky; top:0; z-index:20; box-shadow:0 5px 26px rgba(12,28,71,.08); }
.brand { width:220px; flex:none; }
.brand img { width:100%; height:54px; object-fit:contain; }
.site-header nav { display:flex; gap:32px; margin-left:auto; font-size:14px; font-weight:700; color:#394057; }
.site-header nav a:hover { color:var(--red); }
.header-cta { background:var(--blue); color:white; padding:13px 21px; border-radius:999px; font-size:13px; font-weight:800; transition:.2s; }
.header-cta:hover { background:var(--red); transform:translateY(-1px); }

.hero { min-height:700px; height:calc(100vh - 86px); max-height:850px; position:relative; display:flex; align-items:center; overflow:hidden; background:var(--blue-2); }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(4,15,50,.94) 0%, rgba(7,24,69,.75) 42%, rgba(6,19,53,.15) 72%), linear-gradient(0deg, rgba(4,12,37,.4), transparent 45%); }
.hero-content { position:relative; z-index:2; color:#fff; padding-bottom:36px; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--red); text-transform:uppercase; letter-spacing:.17em; font-size:12px; font-weight:900; }
.eyebrow::before { content:""; width:34px; height:2px; background:currentColor; }
.eyebrow.light { color:#fff; opacity:.9; }
.hero h1 { max-width:720px; margin:22px 0 20px; font-family:var(--font-playfair), serif; font-weight:600; letter-spacing:-.045em; font-size:clamp(52px, 6.5vw, 91px); line-height:.97; }
.hero h1 em { color:#ff3842; font-weight:500; }
.hero-content>p { max-width:610px; margin:0; font-size:18px; line-height:1.75; color:rgba(255,255,255,.83); }
.hero-actions { display:flex; gap:12px; margin-top:32px; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:18px; min-height:52px; padding:0 23px; border-radius:8px; font-size:14px; font-weight:850; transition:.2s; }
.button.primary { background:var(--red); color:#fff; box-shadow:0 13px 30px rgba(229,34,43,.25); }
.button.primary:hover { background:#fb303a; transform:translateY(-2px); }
.button.ghost { color:#fff; border:1px solid rgba(255,255,255,.5); backdrop-filter:blur(8px); background:rgba(255,255,255,.07); }
.button.ghost:hover { background:#fff; color:var(--blue); }
.trust-row { display:flex; gap:25px; margin-top:32px; font-size:12px; font-weight:800; color:rgba(255,255,255,.72); }
.hero-card { position:absolute; right:max(24px, calc((100vw - 1180px)/2)); bottom:0; z-index:3; width:310px; padding:27px 29px; color:#fff; background:var(--red); border-radius:18px 18px 0 0; display:flex; flex-direction:column; gap:7px; }
.hero-card-kicker { font-size:10px; text-transform:uppercase; letter-spacing:.15em; font-weight:800; opacity:.8; }
.hero-card strong { font-family:var(--font-playfair), serif; font-size:22px; line-height:1.25; }
.hero-card a { margin-top:10px; font-size:12px; font-weight:850; }

.trips-section { padding:105px 0 115px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; margin-bottom:45px; }
.section-heading h2, .about-copy h2 { font-family:var(--font-playfair), serif; color:var(--blue-2); font-size:clamp(38px,5vw,58px); line-height:1.05; letter-spacing:-.035em; margin:14px 0 0; }
.section-heading p { width:390px; margin:0 0 5px; color:#687087; line-height:1.75; font-size:14px; }
.trip-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.trip-card.is-hidden{display:none;}
.soldout-badge{position:absolute;right:24px;top:24px;padding:9px 12px;border-radius:7px;background:#071743;color:#fff;text-transform:uppercase;font-size:9px;font-weight:900;letter-spacing:.08em;box-shadow:0 7px 20px rgba(0,0,0,.18)}
.empty-trips{grid-column:1/-1;padding:55px 25px;text-align:center;border:1px dashed #c9d0dd;border-radius:18px;background:#f8f9fb;color:#687087}.empty-trips strong{display:block;color:var(--blue-2);font:600 30px var(--font-playfair),serif}.empty-trips p{margin:10px 0 0}
.trip-card { overflow:hidden; border:1px solid #e5e8ef; border-radius:18px; background:#fff; box-shadow:0 17px 45px rgba(9,33,89,.08); transition:.25s; }
.trip-card:hover { transform:translateY(-7px); box-shadow:0 24px 55px rgba(9,33,89,.15); }
.trip-image-wrap { position:relative; width:100%; height:380px; padding:14px; border:0; cursor:zoom-in; font:inherit; background:linear-gradient(145deg,#eef2fa,#f8f5f2); }
.trip-image-wrap img { width:100%; height:100%; object-fit:contain; border-radius:10px; }
.date-badge { position:absolute; left:24px; top:24px; background:var(--red); color:#fff; border-radius:7px; padding:9px 12px; font-size:11px; font-weight:900; line-height:1.1; box-shadow:0 7px 20px rgba(0,0,0,.18); }
.date-badge small { display:block; margin-top:4px; font-size:8px; opacity:.8; }
.zoom-hint { position:absolute; right:24px; bottom:24px; padding:7px 10px; border-radius:999px; color:#fff; background:rgba(6,20,57,.82); backdrop-filter:blur(8px); font-size:9px; font-weight:850; opacity:0; transform:translateY(5px); transition:.2s; }
.trip-image-wrap:hover .zoom-hint, .trip-image-wrap:focus-visible .zoom-hint { opacity:1; transform:none; }
.trip-body { padding:23px; }
.trip-place { color:var(--red); text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:900; }
.trip-body h3 { font-family:var(--font-playfair),serif; color:var(--blue-2); font-size:24px; line-height:1.2; min-height:58px; margin:8px 0 11px; }
.trip-details { min-height:84px; margin:0 0 20px; color:#6f7688; font-size:12px; line-height:1.65; }
.trip-footer { border-top:1px solid #e9ebf0; padding-top:17px; display:flex; justify-content:space-between; align-items:end; }
.trip-footer>div { display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:0 7px; }
.trip-footer small { color:#7a8192; font-size:10px; }
.trip-footer small:first-child { grid-column:1/-1; }
.trip-footer strong { color:var(--blue); font-size:21px; }
.trip-footer>a { width:43px; height:43px; display:grid; place-items:center; border-radius:50%; background:var(--blue); color:#fff; font-size:20px; }
.trip-footer>a:hover { background:var(--red); }
.show-more { display:block; margin:38px auto 0; min-height:50px; padding:0 24px; border-radius:999px; border:1px solid #ccd2df; color:var(--blue); background:#fff; font:800 12px var(--font-manrope),sans-serif; cursor:pointer; transition:.2s; }
.show-more:hover { color:#fff; background:var(--blue); border-color:var(--blue); }
.price-note { margin:22px auto 0; max-width:730px; color:#9197a6; text-align:center; font-size:10px; line-height:1.6; }

.about-section { padding:115px 0; background:var(--blue-2); color:#fff; overflow:hidden; }
.about-full-grid { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:95px; }
.about-collage { position:relative; min-height:620px; }
.about-main { position:absolute; left:0; top:0; width:78%; height:480px; object-fit:cover; border-radius:140px 20px 20px 20px; }
.about-small { position:absolute; right:0; bottom:0; width:54%; height:305px; object-fit:cover; border:10px solid var(--blue-2); border-radius:20px; }
.about-seal { position:absolute; left:4%; bottom:35px; width:145px; height:145px; display:grid; place-content:center; text-align:center; border-radius:50%; color:#fff; background:var(--red); transform:rotate(-7deg); box-shadow:0 18px 45px rgba(0,0,0,.3); }
.about-seal strong { font:italic 700 27px/1 var(--font-playfair),serif; }
.about-seal span { margin-top:6px; font-size:8px; text-transform:uppercase; letter-spacing:.16em; font-weight:900; }
.about-copy h2 { color:#fff; }
.about-copy p { color:rgba(255,255,255,.68); line-height:1.85; max-width:560px; font-size:14px; }
.about-points { display:flex; flex-wrap:wrap; gap:9px; margin:27px 0; }
.about-points span { padding:9px 12px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:rgba(255,255,255,.82); font-size:10px; font-weight:800; }

.benefits { padding:115px 0; }
.section-heading.centered { align-items:center; flex-direction:column; text-align:center; }
.section-heading.centered .eyebrow { justify-content:center; }
.section-heading.centered p { width:min(100%,560px); }
.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #e0e4ec; border-radius:22px; overflow:hidden; }
.benefit-grid article { position:relative; min-height:310px; padding:34px 28px; background:#fff; border-right:1px solid #e0e4ec; }
.benefit-grid article:last-child { border-right:0; }
.benefit-grid article::after { content:""; position:absolute; inset:auto 0 0; height:4px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:.25s; }
.benefit-grid article:hover::after { transform:scaleX(1); }
.benefit-number { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; color:var(--red); background:#ffedef; font-size:11px; font-weight:900; }
.benefit-grid h3 { margin:56px 0 13px; color:var(--blue-2); font:700 24px/1.15 var(--font-playfair),serif; }
.benefit-grid p { margin:0; color:#73798a; font-size:12px; line-height:1.75; }

.bus-feature { position:relative; min-height:620px; display:flex; align-items:center; justify-content:flex-end; overflow:hidden; background:var(--blue-2); }
.bus-feature>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.bus-feature::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,17,51,.08),rgba(5,17,51,.3) 45%,rgba(5,17,51,.95) 78%); }
.bus-copy { position:relative; z-index:2; width:min(42%,560px); margin-right:max(30px,calc((100vw - 1180px)/2)); color:#fff; }
.bus-copy h2 { margin:15px 0 30px; font:600 clamp(38px,4.3vw,58px)/1.08 var(--font-playfair),serif; letter-spacing:-.035em; }

.memories-section { padding:115px 0; background:var(--cream); }
.memories-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.memories-grid button { position:relative; height:360px; overflow:hidden; border:0; padding:0; border-radius:14px; cursor:zoom-in; background:#e6e8ed; }
.memories-grid img { width:100%; height:100%; object-fit:contain; transition:.3s; }
.memories-grid button:hover img { transform:scale(1.025); }
.memories-grid span { position:absolute; left:10px; right:10px; bottom:10px; padding:8px; border-radius:8px; color:#fff; background:rgba(7,23,67,.88); backdrop-filter:blur(7px); font-size:9px; font-weight:800; opacity:0; transform:translateY(6px); transition:.2s; }
.memories-grid button:hover span, .memories-grid button:focus-visible span { opacity:1; transform:none; }

.booking { padding:100px 0; color:#fff; background:var(--red); }
.booking-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:100px; align-items:center; }
.booking h2 { margin:16px 0 0; font:600 clamp(45px,5vw,70px)/1.02 var(--font-playfair),serif; letter-spacing:-.04em; }
.booking h2 em { color:var(--blue-2); }
.booking-contact { display:flex; flex-direction:column; align-items:flex-start; }
.booking-contact>span { opacity:.75; text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:850; }
.booking-contact>strong { margin:8px 0 10px; font-size:34px; }
.booking-contact>p { max-width:450px; color:rgba(255,255,255,.78); font-size:13px; line-height:1.75; }
.booking-contact .button { margin-top:14px; }

footer { padding:62px 0 22px; background:#fff; }
.footer-main { display:grid; grid-template-columns:220px 1fr auto; gap:70px; align-items:center; }
.footer-main img { width:220px; height:70px; object-fit:contain; }
.footer-main p { max-width:480px; color:#73798a; font-size:12px; line-height:1.75; }
.footer-main div { display:flex; flex-direction:column; }
.footer-main div span { color:#8e95a5; text-transform:uppercase; letter-spacing:.14em; font-size:9px; font-weight:900; }
.footer-main div a { margin-top:7px; color:var(--blue); font-size:18px; font-weight:900; }
.footer-bottom { margin-top:40px; padding-top:20px; border-top:1px solid #e4e7ed; display:flex; justify-content:space-between; color:#9a9fad; font-size:9px; }

.whatsapp-float { position:fixed; right:22px; bottom:20px; z-index:18; display:flex; align-items:center; gap:12px; padding:7px 8px 7px 16px; border-radius:999px; color:#fff; background:#1e9d58; box-shadow:0 12px 35px rgba(10,70,38,.32); font-size:11px; font-weight:900; }
.whatsapp-float strong { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#fff; color:#168649; }
.lightbox { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:28px; background:rgba(3,9,26,.92); backdrop-filter:blur(12px); }
.lightbox img { max-width:min(96vw,1050px); max-height:92vh; object-fit:contain; border-radius:10px; box-shadow:0 24px 80px rgba(0,0,0,.55); }
.lightbox-close { position:absolute; right:22px; top:18px; width:46px; height:46px; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); font-size:29px; cursor:pointer; }
.cta-strip { background:var(--red); color:#fff; }
.cta-strip .shell { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:34px 0; }
.cta-strip div div { display:flex; flex-direction:column; }
.cta-strip span { text-transform:uppercase; letter-spacing:.15em; font-size:10px; font-weight:800; opacity:.8; }
.cta-strip strong { font-size:28px; margin-top:4px; }
.button.white { background:#fff; color:var(--red); }

@media (max-width: 850px) {
  .site-header { height:74px; padding:0 18px; gap:12px; }
  .brand { width:180px; }
  .brand img { height:48px; }
  .site-header nav { display:none; }
  .header-cta { margin-left:auto; padding:11px 15px; font-size:11px; }
  .hero { height:auto; min-height:780px; align-items:end; }
  .hero-photo { object-position:68% center; }
  .hero-shade { background:linear-gradient(0deg,rgba(4,15,50,.98) 0%,rgba(7,24,69,.75) 54%,rgba(6,19,53,.1) 100%); }
  .hero-content { padding-bottom:130px; }
  .hero h1 { font-size:51px; max-width:520px; }
  .hero-content>p { font-size:15px; max-width:520px; }
  .hero-card { width:calc(100% - 40px); right:20px; padding:19px 22px; }
  .hero-card strong { font-size:18px; }
  .section-heading { align-items:start; flex-direction:column; gap:18px; }
  .section-heading p { width:auto; }
  .trip-grid { grid-template-columns:1fr; gap:20px; }
  .trip-image-wrap { height:470px; }
  .trip-details { min-height:0; }
  .about-full-grid { grid-template-columns:1fr; gap:55px; }
  .about-collage { min-height:570px; }
  .benefit-grid { grid-template-columns:1fr 1fr; }
  .benefit-grid article:nth-child(2) { border-right:0; }
  .benefit-grid article:nth-child(-n+2) { border-bottom:1px solid #e0e4ec; }
  .bus-feature { min-height:680px; align-items:end; justify-content:flex-start; }
  .bus-feature::after { background:linear-gradient(0deg,rgba(5,17,51,.96),rgba(5,17,51,.35) 65%,rgba(5,17,51,.05)); }
  .bus-copy { width:auto; margin:0 25px 45px; }
  .memories-grid { grid-template-columns:repeat(3,1fr); }
  .booking-grid { grid-template-columns:1fr; gap:45px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:25px; }
  .footer-main p { grid-row:2; grid-column:1/-1; }
}

@media (max-width: 520px) {
  .shell { width:min(100% - 28px,1180px); }
  .brand { width:145px; }
  .header-cta { padding:10px 12px; }
  .hero { min-height:740px; }
  .hero-photo { height:55%; object-fit:cover; object-position:72% center; }
  .hero h1 { font-size:43px; margin-top:15px; }
  .hero-content { padding-bottom:122px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .trust-row { gap:9px 14px; flex-wrap:wrap; font-size:10px; }
  .trips-section { padding:78px 0; }
  .trip-image-wrap { height:400px; }
  .about-section, .benefits, .memories-section { padding:78px 0; }
  .about-collage { min-height:455px; }
  .about-main { width:88%; height:345px; border-radius:80px 15px 15px; }
  .about-small { width:58%; height:230px; border-width:7px; }
  .about-seal { width:105px; height:105px; bottom:24px; }
  .about-seal strong { font-size:21px; }
  .benefit-grid { grid-template-columns:1fr; }
  .benefit-grid article { min-height:245px; border-right:0; border-bottom:1px solid #e0e4ec; }
  .benefit-grid article:last-child { border-bottom:0; }
  .benefit-grid h3 { margin-top:30px; }
  .bus-feature { min-height:620px; }
  .bus-feature>img { object-position:43% center; }
  .bus-copy h2 { font-size:40px; }
  .memories-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .memories-grid button { height:310px; }
  .booking { padding:75px 0; }
  .booking h2 { font-size:47px; }
  .booking-contact>strong { font-size:28px; }
  .footer-main { grid-template-columns:1fr; text-align:center; }
  .footer-main img { margin:auto; }
  .footer-main p { grid-row:auto; grid-column:auto; }
  .footer-main div { align-items:center; }
  .footer-bottom { gap:20px; flex-direction:column; align-items:center; }
  .whatsapp-float span { display:none; }
  .whatsapp-float { padding:7px; }
  .cta-strip .shell { align-items:stretch; flex-direction:column; }
  .cta-strip strong { font-size:25px; }
}

/* Correção: mantém a janela de flyers realmente oculta até o clique. */
.lightbox[hidden]{display:none !important;}
