@font-face { font-family: Inter; src: url("inter-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
:root {
  --paper: #fdfcf9;
  --edge-paper: #faf7f0;
  --brand-blue: #009eff;
  --line: color-mix(in srgb, var(--brand-blue) 8%, transparent);
  --grid-columns: repeating-linear-gradient(to right, var(--line) 0 1px, transparent 1px 25px);
  --grid-rows: repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px 25px);
  --footer-grid-depth: clamp(2.5rem, 6vw, 5rem);
  --blue: oklch(0.548 0.18 251);
  --deep-blue: #075aab;
  --ink: #1e3956;
  --muted: #4b6177;
  --yellow: #ffcf40;
  --border: #a9c1d4;
  --surface: #fffdf5;
  --sky: #a4f5f3;
  --sky-edge: #75d6e6;
  --sea: #0759a2;
  --tide: #dceef6;
  --display: Inter, Arial, sans-serif;
  --arrive: cubic-bezier(.16, 1, .3, 1);
  color: var(--ink);
  font: 16px/1.5 Inter, Arial, sans-serif;
  background-color: var(--paper);
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body:not(.services-view, .feedback-view) .header-home { display: none; }
body:not(.services-view) .services-only, .services-view .home-only { display: none !important; }
body {
  margin: 0;
  overflow-x: clip;
  --grid-depth: clamp(27rem, 36vw, 34rem);
  background:
    linear-gradient(to bottom, transparent 40%, var(--paper)) top / 100% var(--grid-depth) no-repeat,
    var(--grid-columns) top / 100% var(--grid-depth) no-repeat,
    var(--grid-rows) top / 100% var(--grid-depth) no-repeat,
    linear-gradient(var(--edge-paper), var(--edge-paper)) top / 100% var(--grid-depth) no-repeat;
}
body:not(.services-view, .feedback-view) { background: var(--paper); }
body:not(.services-view, .feedback-view) #inicio { scroll-margin-top: 8rem; }
::selection { color: var(--ink); background: var(--yellow); }
a { color: inherit; text-underline-offset: .18em; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, select:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--display); }
button, input, select { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.container { width: min(100% - clamp(2rem, 7vw, 7rem), 90rem); margin-inline: auto; }
.header-shell { position: relative; z-index: 3; }
body:not(.services-view, .feedback-view) .header-shell { background: linear-gradient(var(--sky), var(--sky-edge)); }
.header { display: flex; align-items: center; gap: clamp(.7rem, 2.5vw, 2.5rem); min-height: 5.1rem; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 44px; }
.brand img { display: block; width: clamp(5rem, 8vw, 7rem); height: auto; }
.header nav { display: flex; align-items: center; gap: clamp(.75rem, 2.25vw, 2rem); margin-left: auto; }
.header nav :is(a, button) { display: inline-flex; align-items: center; gap: .22rem; min-height: 44px; color: inherit; font-weight: 700; text-decoration: none; white-space: nowrap; }
.header nav :is(a, button):hover { color: var(--blue); text-decoration: underline; }
.header nav button { padding: 0; border: 0; background: none; cursor: pointer; }
.header nav span { font-size: .86em; }
.language-control { position: relative; flex: 0 0 auto; color: var(--blue); }
.language-control svg { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; }
.language-globe { left: .75rem; }
.language-chevron { right: .7rem; }
#language { appearance: none; min-height: 44px; padding: .45rem 1.85rem .45rem 2.15rem; border: 1px solid var(--border); border-radius: 999px; color: var(--ink); background: var(--surface); font-size: .83rem; font-weight: 700; cursor: pointer; }
#language:hover { border-color: var(--blue); background: #edf4f9; }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: .42rem; padding: .6rem 1rem; border: 1px solid transparent; border-radius: .7rem; color: var(--ink); text-decoration: none; font-weight: 750; cursor: pointer; }
.yellow { background: var(--yellow); }
.blue { color: white; background: var(--blue); }
.add { color: var(--blue); background: var(--surface); border-color: var(--border); }
.button:hover { filter: brightness(.97); }
.button.mobile-menu-toggle { display: none; }
.mobile-menu-anchor { display: contents; }
#mobile-catalog-destinations { display: none; }
.hero { position: relative; isolation: isolate; overflow-x: clip; color: white; }
.hero-ground {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  border-radius: 0 0 48% 28% / 0 0 33% 21%;
  background: linear-gradient(var(--sky-edge), #217eaa 5.75rem, #0d71b0 41%, var(--sea) 100%);
}
.hero-ground img, .hero-flight, .hero-pin { position: absolute; height: auto; pointer-events: none; }
.hero-orbit { inset: 8% auto auto max(-3rem, calc(50% - 44rem)); width: clamp(19rem, 33vw, 30rem); }
.hero-shape { inset: 7% 3% auto auto; width: min(64vw, 56rem); }
.hero-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .94fr);
  align-items: start;
  min-height: clamp(34rem, 49vw, 45rem);
  padding-block: clamp(5.7rem, 7vw, 7rem) 5rem;
}
.hero-copy { position: relative; z-index: 1; padding-inline-start: clamp(0rem, calc(11vw - 6rem), 5.25rem); }
.hero h1 {
  max-width: 15.4ch;
  font: 700 clamp(3.1rem, 6.1vw, 5.5rem)/.99 var(--display);
  letter-spacing: -.025em;
}
.hero-copy > p { max-width: 37ch; margin-top: 1rem; font-size: clamp(1rem, 1.45vw, 1.25rem); }
.hero-copy .hero-languages { margin-top: .95rem; color: #e1f5ff; font-size: .84rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.25rem; }
.hero-actions .button { min-height: 48px; }
.hero-actions .whatsapp { border-color: #b0dced; color: white; background: #064c81; }
.hero-actions a:focus-visible { outline-color: white; }
.hero-flight { inset: 1rem 9% auto auto; width: min(36%, 29rem); }
.hero-art { position: absolute; inset: 0 -2% 0 49%; pointer-events: none; }
.hero-cutout-filter { position: absolute; }
.hero-traveler { filter: url("#hero-paper-edge"); position: absolute; inset: auto 0 -1.8rem auto; display: block; width: min(100%, 37rem); height: auto; }
.hero-pin { inset: 23% 1% auto auto; width: clamp(3.25rem, 6.2vw, 5.5rem); }
.whatsapp-float { position: fixed; z-index: 2; inset-inline-end: max(.75rem, env(safe-area-inset-right)); bottom: calc(.75rem + env(safe-area-inset-bottom)); display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: white; box-shadow: 0 4px 14px #132f4660; }
.whatsapp-float:hover { background: #e7f4eb; }
.whatsapp-float img { display: block; transform: translate(1px, -1px); }
.photo { display: block; width: 100%; height: auto; border-radius: clamp(.65rem, 1.4vw, 1.25rem); object-fit: cover; background: #dfebf2; }
.destination-intro {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1rem, 5vw, 5rem);
  margin-block: -3rem clamp(3.4rem, 7vw, 6.3rem);
}
.destination-intro h2, .about h2, .catalog h2, .travel-guide h2, .travel-faq h2,
.travel-blog h2, .contact-spread h2, .testimonials h2 {
  font: 700 clamp(2rem, 4vw, 3.6rem)/1.05 var(--display);
  letter-spacing: -.025em;
  text-wrap: balance;
}
.destination-intro h2 { font-size: clamp(2rem, 3.5vw, 3.1rem); text-wrap: wrap; }
.destination-intro h2 span { color: var(--deep-blue); white-space: nowrap; }
.destination-description, .about-story p, .catalog-intro { max-width: 57ch; margin-top: .75rem; color: var(--muted); }
.destination-guide {
  position: relative;
  z-index: 1;
  padding: clamp(1.3rem, 3.7vw, 3.1rem);
  border-radius: 1rem;
  background: white;
  box-shadow: 0 14px 40px #0d477520;
}
.destination-note { margin-block: 1.3rem .65rem; font-weight: 750; }
.destination-postcard {
  margin: clamp(2.8rem, 7vw, 6.2rem) 1rem 0 0;
  padding: .55rem .55rem .15rem;
  border-radius: .65rem;
  background: white;
  box-shadow: 0 12px 28px #0d47752b;
  rotate: 2deg;
}
.destination-postcard img { aspect-ratio: 2.04; border-radius: .25rem; object-position: center 52%; }
.destination-postcard figcaption { padding: .48rem .35rem .38rem; color: var(--muted); font-size: .76rem; font-weight: 700; }
.destination-list { display: flex; flex-wrap: wrap; gap: .35rem .45rem; list-style: none; margin: 0; padding: 0; }
.destination-list li { position: relative; }
.destination-card { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; gap: .3rem; padding: .3rem .78rem; border: 1px solid var(--border); border-radius: 999px; background: #edf4f9; color: var(--muted); font-size: .83rem; font-weight: 700; line-height: 1.2; text-decoration: none; }
button.destination-card { cursor: help; }
button.destination-card:focus-visible { border-color: var(--blue); background: #e0eef9; }
.destination-card.destination-featured { border: 1px solid var(--blue); background: var(--blue); color: white; }
.destination-featured:hover { background: #07569c; }
.destination-status { position: absolute; z-index: 1; top: calc(100% - .18rem); left: 50%; transform: translateX(-50%); visibility: hidden; padding: .2rem .5rem; border-radius: .35rem; color: white; background: var(--ink); white-space: nowrap; font-size: .75rem; pointer-events: none; }
.destination-card:focus-visible + .destination-status { visibility: visible; }
@media (hover: hover) {
  button.destination-card:hover { border-color: var(--blue); background: #e0eef9; }
  .destination-card:hover + .destination-status { visibility: visible; }
}
.about { padding-block: clamp(3rem, 7vw, 6rem); background: var(--tide); scroll-margin-top: 1rem; }
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr);
  grid-template-areas: "art story" "art care";
  align-items: start;
  gap: clamp(1.65rem, 3vw, 3rem) clamp(1.35rem, 4vw, 3.7rem);
}
.about-story { grid-area: story; }
.about h2 { max-width: 19ch; text-wrap: wrap; }
.about-art { position: relative; grid-area: art; align-self: stretch; min-height: clamp(22rem, 37vw, 35rem); overflow: clip; border-radius: 1rem; background: #94bdd5; }
.about-sky { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 44% center; }
.about-traveler { position: absolute; inset: auto auto -12% 4%; width: min(80%, 28rem); height: auto; }
.about-story p + p { margin-top: .9rem; }
.about-more { margin-top: .75rem; }
.about-toggle { display: inline-flex; min-height: 44px; align-items: center; gap: .35rem; padding: .4rem .75rem; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--deep-blue); font-size: .87rem; font-weight: 750; cursor: pointer; }
.about-toggle:hover { border-color: var(--deep-blue); }
#about-collapse { margin-top: .85rem; }
.about-care {
  position: relative;
  grid-area: care;
  align-self: end;
  margin-inline-start: clamp(-7rem, -8vw, -4rem);
  padding: clamp(1.5rem, 3.6vw, 3rem);
  border-radius: 1rem;
  color: white;
  background: linear-gradient(133deg, var(--sea) 55%, #0f76ae);
}
.about-plane { position: absolute; inset: -1.75rem 1.25rem auto auto; width: clamp(3.3rem, 6vw, 5.6rem); height: auto; }
.about-care h3 { max-width: 17ch; font: 700 clamp(1.75rem, 3.45vw, 3.05rem)/1.08 var(--display); letter-spacing: -.02em; }
.about-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1.25rem; padding: 0; margin: 1.25rem 0 0; list-style: none; }
.about-values li { display: grid; align-content: start; gap: .18rem; padding-top: .65rem; border-top: 1px solid #ffffff5c; font-size: .9rem; }
.about-values span { color: #e0f2ff; font-size: .85rem; }
.catalog {
  margin-top: clamp(1.6rem, 3.6vw, 3.2rem);
  scroll-margin-top: 1rem;
  padding-block: clamp(2.8rem, 6vw, 5.4rem);
  color: white;
  background: linear-gradient(145deg, var(--sea), var(--blue));
}
body:not(.services-view) .catalog { margin-top: clamp(3.2rem, 7vw, 6rem); }
.catalog :is(.catalog-intro, .price-note, #catalog-availability) { color: #e6f2fb; }
.catalog :is(.more-services-link, .back-home, .quote-dock button):focus-visible { outline-color: white; }
.catalog h2 { text-wrap: wrap; }
.catalog-filter, .multidestination-options { min-inline-size: 0; padding: 0; border: 0; }
.catalog-filter { margin: .35rem 0 1.2rem; }
.catalog-filter legend { margin-bottom: .45rem; padding: 0; font-size: .88rem; font-weight: 750; }
.destination-options { display: flex; flex-wrap: wrap; gap: .45rem; }
.destination-options label { position: relative; }
.destination-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.destination-options label span { display: flex; align-items: center; min-height: 44px; padding: .35rem .8rem; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--deep-blue); font-size: .87rem; font-weight: 700; cursor: pointer; }
.destination-options label:hover span { border-color: var(--deep-blue); }
.destination-options input:checked + span { border-color: var(--deep-blue); background: var(--deep-blue); color: white; }
.destination-options input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 3px; }
.destination-options input:disabled + span { border-color: var(--border); background: #edf2f6; color: var(--muted); cursor: not-allowed; }
#catalog-availability { margin-top: .45rem; color: var(--muted); font-size: .85rem; }
.services { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(1.4rem, 2.8vw, 2.45rem); margin-top: clamp(1.4rem, 3vw, 2.6rem); }
.service { position: relative; isolation: isolate; display: flex; flex-direction: column; min-width: 0; padding: clamp(.15rem, .45vw, .4rem); scroll-margin-top: 1.5rem; }
.catalog .service { color: var(--ink); background: white; }
.catalog .service:not(.postcard-card) { padding: .85rem; border-radius: .65rem; }
.service.postcard-card {
  --postcard-ink: var(--ink);
  --postcard-muted: var(--muted);
  --postcard-action: var(--deep-blue);
  --postcard-title: white;
  padding: clamp(.58rem, 1.15vw, .95rem);
  border-radius: .2rem;
  color: var(--postcard-ink);
  box-shadow: 0 9px 22px #081f3550;
  rotate: -1.6deg;
}
.service.postcard-card:nth-child(even), .service-more.postcard-card { rotate: 1.25deg; }
.postcard-card::before { display: none; }
.service-postcard {
  position: relative;
  isolation: isolate;
  display: flex;
  flex: none;
  align-items: end;
  align-self: stretch;
  min-height: clamp(12rem, 16.5vw, 16.75rem);
  padding: .85rem;
  overflow: clip;
  border-radius: .36rem;
  background: var(--ink);
}
.service-postcard::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, transparent 28%, color-mix(in srgb, var(--ink) 72%, transparent) 72%, var(--ink) 100%);
}
.service-postcard > img { position: absolute; z-index: -2; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.postcard-heading { display: grid; gap: .28rem; }
.postcard-heading :is(h3, .more-title) {
  margin: 0;
  color: var(--postcard-title);
  font: 850 clamp(1.25rem, 2vw, 1.85rem)/1.02 var(--display);
  letter-spacing: -.025em;
  text-transform: uppercase;
  text-wrap: balance;
}
.postcard-card:hover .postcard-heading :is(h3, .more-title) { color: var(--postcard-title); }
.postcard-caption { color: #e5f4ff; font-size: .65rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.postcard-seal {
  position: absolute;
  inset: .56rem .56rem auto auto;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: .12rem;
  width: clamp(3.65rem, 6vw, 5rem);
  aspect-ratio: 1;
  border-radius: 50%;
  color: var(--ink);
  background: var(--yellow);
  box-shadow: 0 4px 10px #0b203a66;
  font-size: clamp(.54rem, .8vw, .67rem);
  font-weight: 700;
  line-height: 1;
  rotate: 10deg;
}
.postcard-seal::before { content: ""; position: absolute; inset: .27rem; border: 1px dashed #1e39569e; border-radius: inherit; }
.postcard-seal .service-price { color: inherit; font-size: clamp(.59rem, .88vw, .77rem); font-weight: 850; }
.postcard-stamp img { display: block; width: 63%; height: auto; }
.service.postcard-card p, .postcard-card .more-description { margin: .85rem .2rem 0; color: var(--postcard-muted); }
.postcard-card .more-action { margin-inline: .2rem; color: var(--postcard-action); }
.postcard-card .service-footer .button {
  padding-inline: .2rem .5rem;
  border-color: transparent;
  color: var(--postcard-action);
  background: transparent;
  text-decoration: underline;
  text-underline-offset: .22em;
}
.postcard-card .service-footer .button[aria-pressed="true"] { padding-inline: .55rem; color: var(--ink); background: var(--yellow); text-decoration: none; }
.postcard-card :is(a, button):focus-visible { outline-color: var(--postcard-action); }
.service::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -.4rem;
  border-radius: 1.55rem;
  background: white;
  box-shadow: 0 3px 12px #1e39561a, inset 0 0 0 1px #ccdfed;
  opacity: 0;
  pointer-events: none;
}
.service:focus-within::before { opacity: 1; }
.service h3, .more-title { margin-top: 1rem; font: 700 clamp(1.45rem, 2.3vw, 2.05rem)/1.15 var(--display); letter-spacing: -.018em; }
.service p, .more-description { color: var(--muted); margin-top: .3rem; font-size: .94rem; }
.service-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .3rem .55rem; margin-top: auto; padding-top: .7rem; }
.service-price { color: var(--deep-blue); font-size: .85rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.back-home { gap: .45rem; margin-bottom: .75rem; padding-inline: .8rem 1rem; border-color: var(--border); border-radius: 999px; color: var(--deep-blue); background: var(--surface); font-size: .88rem; }
.back-home:hover { border-color: var(--deep-blue); }
.feedback-page .back-home { margin: 1.25rem 0 0; }
.service-thumb { aspect-ratio: 4 / 3; border: .4rem solid white; border-radius: .45rem; box-shadow: 0 7px 18px #0d47751d; }
.services-view .services { row-gap: clamp(1.75rem, 3vw, 2.15rem); }
.services-view .service > :is(.service-price, .tour-price-note) { margin-top: auto; padding-top: .7rem; }
.services-view .service .tour-price-note { font-size: .85rem; }
.service-footer .add { padding-inline: .65rem; font-size: .84rem; }
.add[aria-pressed="true"] { background: #e5f0fb; border-color: var(--blue); }
.price-note { margin-top: .55rem; color: var(--muted); font-size: .82rem; }
.usd-note:lang(pt-BR) { display: none; }
.more-tours { display: flex; flex: 1; flex-direction: column; align-items: stretch; padding: 0; border: 0; border-radius: .36rem; background: transparent; color: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.service-more-column { display: contents; }
.more-tours:active .service-postcard { filter: brightness(.96); }
.more-action { display: flex; min-height: 44px; align-items: center; gap: .35rem; margin-top: auto; color: var(--blue); font-weight: 750; }
.more-tours:hover .more-action { text-decoration: underline; text-underline-offset: .18em; }
.tour-options { margin: .65rem 0 0; padding: 0; list-style: none; }
.tour-options li { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .6rem; padding-block: .45rem; border-bottom: 1px solid var(--border); font-weight: 700; }
.tour-options :is(.service-price, .tour-price-note) { display: block; font-size: .8rem; }
.tour-price-note { color: var(--muted); font-weight: 600; }
.other-field { grid-column: 1 / -1; }
.other-field label { display: block; }
.other-field label span { color: var(--muted); font-size: .8em; font-weight: 400; }
.other-field input, form input:not([type=checkbox]), #quote-airfare-field select { min-height: 44px; padding: .55rem .65rem; width: 100%; min-width: 0; border: 1px solid var(--border); border-radius: .55rem; background: var(--surface); color: var(--ink); }
.other-field input { margin: .3rem 0 .2rem; }
.catalog-actions { display: flex; align-items: center; gap: .8rem; }
.more-services-link { margin-block: 1rem 1.4rem; }
.quote-dock { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; justify-content: flex-end; width: fit-content; max-width: 100%; margin: 1rem 0 1.4rem auto; color: var(--ink); }
.quote-dock p { padding: .25rem .45rem; border-radius: .35rem; background: var(--surface); font-size: .81rem; }
body:not(.services-view) .quote-dock { flex-wrap: nowrap; gap: .55rem; justify-content: space-between; padding: .45rem .5rem .45rem .85rem; border-radius: .8rem; color: var(--ink); background: var(--yellow); }
body:not(.services-view) .quote-dock p { padding: 0; background: none; }
.services-view .empty-count { display: none; }
.services-view .quote-dock { margin-inline-end: 3.6rem; }
.travel-guide {
  margin-block: clamp(3.3rem, 8vw, 7rem);
  padding: clamp(1.25rem, 4.2vw, 3.8rem);
  border-radius: 1.15rem;
  background: var(--tide);
  scroll-margin-top: 1.5rem;
}
.guide-heading { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: .85rem 2rem; }
.guide-heading h2 { max-width: 19ch; text-wrap: wrap; }
.guide-heading p { max-width: 32ch; color: var(--muted); }
.guide-notes {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.7rem);
  margin-top: clamp(1.6rem, 4vw, 3.25rem);
}
.guide-notes::before { content: ""; position: absolute; inset: 1rem 0 auto; border-top: 2px dashed color-mix(in srgb, var(--brand-blue) 48%, transparent); }
.guide-notes article { position: relative; padding-top: 2.2rem; }
.guide-photo { margin-bottom: .95rem; }
.guide-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1.75; object-fit: cover; border-radius: .55rem; }
.guide-stop {
  position: absolute;
  inset: 0 auto auto .7rem;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: var(--ink);
  background: var(--yellow);
  font-size: .75rem;
  font-weight: 800;
}
.guide-notes h3 { font: 700 clamp(1.35rem, 2.4vw, 2rem)/1.15 var(--display); letter-spacing: -.015em; }
.guide-notes p { max-width: 64ch; margin-top: .45rem; color: var(--muted); }
.guide-notes a { display: inline-block; margin: .45rem .7rem 0 0; color: var(--deep-blue); font-size: .86rem; font-weight: 700; }
.guide-notes .guide-source { color: var(--muted); font-size: .8rem; font-weight: 500; }
.travel-faq {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(1.3rem, 5vw, 4.4rem);
  padding: clamp(1.45rem, 4.8vw, 4.75rem);
  border-radius: 1rem;
  background: var(--tide);
  scroll-margin-top: 1.5rem;
}
.travel-faq h2 { max-width: 16ch; text-wrap: wrap; }
.faq-questions details { border-top: 1px solid #aecada; }
.faq-questions details:last-child { border-bottom: 1px solid #aecada; }
.faq-questions summary { position: relative; display: block; padding: .85rem 2.35rem .85rem 0; cursor: pointer; font-weight: 740; }
.faq-questions summary::-webkit-details-marker { display: none; }
.faq-questions summary::after { content: ""; position: absolute; inset: 1.3rem .35rem auto auto; width: .55rem; height: .55rem; border-right: 2px solid var(--deep-blue); border-bottom: 2px solid var(--deep-blue); rotate: 45deg; }
.faq-questions details[open] summary::after { rotate: 225deg; }
.faq-questions details[open] summary { color: var(--deep-blue); }
.faq-questions p { max-width: 64ch; padding: 0 1rem .95rem 0; color: var(--muted); }
.travel-blog { margin-block: clamp(3.6rem, 8vw, 7.2rem); scroll-margin-top: 1.5rem; }
.travel-blog h2 { text-wrap: wrap; }
.blog-intro { max-width: 55ch; margin-top: .7rem; color: var(--muted); }
.blog-language-note { margin-top: .3rem; color: var(--muted); font-size: .85rem; }
.blog-language-note:lang(pt-BR) { display: none; }
.blog-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: clamp(1.35rem, 4vw, 4rem); margin-top: 1.55rem; }
.blog-story { display: grid; align-items: center; gap: clamp(.8rem, 2vw, 1.4rem); color: inherit; text-decoration: none; }
.blog-story h3 { font: 700 clamp(1.18rem, 2.25vw, 1.95rem)/1.12 var(--display); letter-spacing: -.015em; }
.blog-story p { margin-top: .35rem; color: var(--muted); font-size: .9rem; }
.blog-read { display: inline-block; margin-top: .45rem; color: var(--deep-blue); font-size: .84rem; font-weight: 750; }
.blog-story:hover :is(h3, .blog-read) { color: var(--deep-blue); text-decoration: underline; }
.blog-story img { display: block; width: 100%; height: auto; border-radius: .65rem; object-fit: cover; }
.blog-feature .blog-story > img { aspect-ratio: 2.02; object-position: center 51%; }
.blog-side { display: grid; align-content: start; }
.blog-side article { padding-block: 1rem; border-top: 1px solid var(--border); }
.blog-side article:last-child { border-bottom: 1px solid var(--border); }
.blog-side .blog-story { grid-template-columns: minmax(0, .58fr) minmax(0, 1fr); }
.blog-side .blog-story > img { aspect-ratio: 4 / 3; }
.contact-spread {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.3rem, 4vw, 4.5rem);
  margin-block: clamp(3.5rem, 8vw, 7.5rem);
  padding: clamp(1.5rem, 5vw, 5rem);
  overflow: clip;
  border-radius: 1.25rem;
  color: white;
  background: linear-gradient(112deg, var(--sea) 46%, #1278ae 72%, #72d4e5);
}
.contact-copy h2 { max-width: 14ch; text-wrap: wrap; }
.contact-copy p { max-width: 43ch; margin-top: .85rem; color: #e3f4ff; }
.contact-copy .button { margin-top: 1.2rem; }
.contact-copy .button:focus-visible { outline-color: white; }
.contact-photos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .94fr); align-items: center; padding: .5rem; }
.contact-photos img { display: block; width: 100%; border: clamp(.28rem, .55vw, .55rem) solid white; border-radius: .6rem; object-fit: cover; box-shadow: 0 12px 24px #07355557; }
.contact-floralis { height: auto; aspect-ratio: 4 / 5; rotate: -7deg; }
.contact-parrilla { height: auto; aspect-ratio: 1; rotate: 8deg; translate: -6% 16%; }
.testimonials { margin-block: var(--footer-grid-depth); padding-block: clamp(2rem, 5vw, 4.5rem); background: var(--sea); color: white; }
.testimonials h2 { flex: 1 1 15rem; text-wrap: wrap; }
.testimonial-header { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; }
.testimonial-camera { display: block; flex: none; width: clamp(3rem, 7vw, 6.25rem); height: auto; }
.testimonial-language-note { margin-top: .55rem; font-size: .85rem; }
.testimonial-language-note:lang(pt-BR) { display: none; }
.testimonials :is(button, a):focus-visible { outline-color: white; }
.testimonial-list { --testimonial-columns: 3; display: grid; grid-template-columns: repeat(var(--testimonial-columns), minmax(0, 1fr)); gap: clamp(.8rem, 2vw, 1.5rem); margin-top: clamp(1.1rem, 2.4vw, 2rem); }
.testimonial-list figure { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); align-items: center; gap: .65rem .85rem; margin: 0; padding: clamp(1rem, 2.3vw, 1.7rem); border-radius: .9rem; background: var(--surface); color: var(--ink); }
.testimonial-list figure img { grid-area: 2 / 1; display: block; width: 100%; height: auto; border: 2px solid #e0edf6; border-radius: 50%; }
.testimonial-list blockquote { grid-area: 1 / 1 / 2 / -1; align-self: start; margin: 0; overflow-wrap: anywhere; font-size: clamp(.95rem, 1.4vw, 1.075rem); line-height: 1.55; }
.testimonial-list blockquote p:first-child::before { content: open-quote; }
.testimonial-list blockquote p:last-child::after { content: close-quote; }
.testimonial-list figcaption { grid-area: 2 / 2; display: grid; gap: .1rem; font-size: .88rem; }
.testimonial-list figcaption span { color: var(--muted); }
.testimonial-feedback { margin-top: 1.25rem; color: var(--deep-blue); background: white; }
.article-nav { display: flex; min-height: 5.1rem; align-items: center; justify-content: space-between; gap: 1rem; }
.article-page { max-width: 59rem; padding-block: clamp(2rem, 6vw, 5rem) clamp(3rem, 7vw, 6rem); }
.article-page h1 { max-width: 20ch; font: 700 clamp(2.25rem, 6vw, 4.9rem)/1.04 var(--display); letter-spacing: -.025em; }
.article-lead { max-width: 52ch; margin-top: 1rem; color: var(--muted); font-size: clamp(1rem, 2.2vw, 1.3rem); }
.article-byline { margin-top: .8rem; color: var(--deep-blue); font-size: .85rem; font-weight: 700; }
.article-cover { aspect-ratio: 2.2; margin-block: 1.6rem 2rem; }
.article-body { max-width: 69ch; margin-inline: auto; }
.article-body h2 { margin-top: 1.6rem; font: 700 clamp(1.45rem, 3vw, 2.15rem)/1.14 var(--display); }
.article-body p { margin-top: .55rem; color: var(--muted); line-height: 1.7; }
.article-body ul { padding-inline-start: 1.35rem; color: var(--muted); line-height: 1.7; }
.article-body .article-source { margin-top: 1.25rem; font-size: .88rem; }
.article-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.6rem; }
.feedback-page { display: none; padding-block: clamp(1.2rem, 3.5vw, 3rem) var(--footer-grid-depth); }
.feedback-view .feedback-page { display: block; }
.feedback-view main > :not(.feedback-page) { display: none; }
.feedback-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1fr); gap: clamp(1rem, 5vw, 5rem); align-items: start; margin-top: .75rem; }
.feedback-intro h1 { max-width: 15ch; font-size: clamp(2rem, 4.2vw, 4.1rem); letter-spacing: -.04em; line-height: 1.1; }
.feedback-intro h2 { margin-top: 1.5rem; font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.25; }
.feedback-intro p { max-width: 48ch; margin-top: .9rem; color: var(--muted); }
.feedback-intro h2 + p { margin-top: .45rem; }
.google-review { margin-top: 1.15rem; }
.feedback-panel { padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); }
#feedback-form { gap: .85rem; }
#feedback-form input:not([type=checkbox]), #feedback-form textarea, #feedback-form select { width: 100%; min-width: 0; padding: .6rem; border: 1px solid var(--border); border-radius: .55rem; color: var(--ink); background: white; font: inherit; font-weight: 400; }
#feedback-form textarea { resize: vertical; }
#feedback-form textarea:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.feedback-hint { color: var(--muted); font-size: .82rem; font-weight: 400; }
.feedback-count { margin-top: .25rem; text-align: end; font-variant-numeric: tabular-nums; }
.feedback-photos { display: grid; gap: .35rem; min-width: 0; }
.feedback-photo-heading { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .25rem .75rem; }
.feedback-photo-help button { min-height: 36px; padding: 0 .25rem; border: 0; background: none; color: var(--deep-blue); font-size: .85rem; font-weight: 700; cursor: pointer; }
.feedback-photo-help .tip { inset-inline: auto 0; max-width: min(15rem, 100%); }
.feedback-photo-help:is(:hover, :focus-within) .tip, .feedback-photo-help button[aria-expanded="true"] + .tip { visibility: visible; }
#feedback-profile-field { margin-top: .35rem; }
#feedback-form .feedback-consent { display: flex; align-items: start; gap: .5rem; font-size: .9rem; font-weight: 500; }
#feedback-form button:disabled { opacity: .7; cursor: wait; }
.feedback-error { color: #9c2323; font-size: .9rem; }
#feedback-success p { margin-block: .7rem 1rem; }
@media (max-width: 960px) {
  .testimonial-list { --testimonial-columns: 2; }
}
@media (max-width: 620px) {
  .testimonial-list { --testimonial-columns: 1; }
}
.site-footer { position: relative; padding-block: clamp(1.6rem,4.5vw,3.5rem) 1.05rem; background: var(--ink); color: var(--surface); }
.site-footer::before {
  content: "";
  position: absolute;
  inset: auto 0 100%;
  height: var(--footer-grid-depth);
  background: linear-gradient(to bottom, var(--paper), transparent), var(--grid-columns), var(--grid-rows), var(--edge-paper);
  pointer-events: none;
}
.services-view .site-footer { margin-top: var(--footer-grid-depth); }
.footer-content { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) auto; gap: clamp(1.4rem,4vw,4rem); align-items: start; }
.footer-brand img { display: block; width: 7.5rem; height: auto; }
.footer-logos { display: contents; }
.footer-brand a { display: inline-block; }
.footer-brand h2 { margin-top: .7rem; font-size: clamp(1.35rem,2.5vw,2.2rem); line-height: 1.15; }
.footer-quote { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: start; cursor: pointer; }
.footer-quote:hover { color: var(--yellow); }
.footer-quote:focus-visible { outline-color: var(--yellow); }
.footer-brand p { margin-top: .45rem; color: #dce8f4; }
.footer-links { display: grid; gap: .5rem; justify-items: start; overflow-wrap: anywhere; }
.footer-links h3 { margin-bottom: .15rem; font-size: 1rem; }
.footer-links a, .footer-bottom a { color: #dce8f4; text-decoration: none; }
.footer-email { padding: 0; border: 0; background: none; color: #dce8f4; cursor: pointer; text-align: start; overflow-wrap: anywhere; }
.footer-email:hover { color: white; }
.footer-email:focus-visible { outline-color: var(--yellow); }
.footer-copy-status { min-height: 1.2em; color: #dce8f4; font-size: .8rem; }
.footer-socials { display: flex; justify-content: center; gap: .1rem; }
.footer-socials a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: .55rem; }
.footer-social-column { align-self: stretch; justify-items: center; grid-template-rows: auto auto 1fr; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin-top: .4rem; padding-top: .9rem; padding-inline-end: 3.5rem; border-top: 1px solid #56728d; color: #dce8f4; font-size: .85rem; }
.footer-cadastur { display: grid; align-items: center; align-self: end; justify-self: center; min-height: 44px; margin-top: 1rem; }
.footer-cadastur img { display: block; width: 8rem; height: auto; }
.services-view .footer-content { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) minmax(8rem,.55fr); }
.services-view .footer-socials a { width: 44px; border-radius: 50%; background: #ffffff12; }
.services-view .footer-cadastur { margin-top: .55rem; padding: 0; border: 0; background: none; cursor: pointer; }
.tip-anchor { position: relative; }
.tip { position: absolute; z-index: 1; inset-inline-start: 0; bottom: calc(100% + .2rem); width: max-content; max-width: 13.5rem; visibility: hidden; padding: .35rem .55rem; border-radius: .4rem; background: var(--ink); color: white; font-size: .78rem; font-weight: 500; line-height: 1.35; }
.tip-anchor:is(:hover, :focus) .tip { visibility: visible; }
.footer-cadastur .tip { inset-inline: auto 0; background: var(--surface); color: var(--ink); }
.other-label { width: fit-content; cursor: help; }
.tour-options .other { grid-template-columns: minmax(0, 1fr); }
.other-field:has(button) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .55rem; }
.other-field:has(button) input { margin: 0; }
.other > label { font-size: .9rem; }
.other > label span { color: var(--muted); font-weight: 400; }
.services-view main > :not(.catalog) { display: none; }
.header nav a[aria-current="page"] { color: var(--deep-blue); text-decoration: underline; }
.site-footer a:hover { color: white; }
.site-footer a:focus-visible { outline-color: var(--yellow); }
@media (hover: hover) {
  .service:hover::before { opacity: 1; }
  .service:hover :is(h3, .more-title) { color: var(--deep-blue); }
  .add:hover { border-color: var(--blue); }
  .testimonial-list figure:hover { background: #f1f8ff; }
  .testimonial-feedback:hover { background: #e8f2fa; filter: none; }
  :is(.brand, .footer-brand a):hover img { filter: drop-shadow(0 3px 5px #009eff55); }
  .site-footer .footer-socials a:hover { background: #ffffff24; }
  :is(form, .other-field, #quote-other-field) input:not([type=checkbox], :disabled):hover,
  #feedback-form :is(select, textarea):hover { border-color: var(--blue); }
  .feedback-photo-help button:hover { text-decoration: underline; }
}
dialog { width: min(100% - 2rem, 31rem); max-height: 90dvh; padding: 1.2rem; border: 1px solid var(--border); border-radius: .9rem; color: var(--ink); background: var(--surface); }
dialog::backdrop { background: #17395376; }
.dialog-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.icon-close { flex: 0 0 44px; width: 44px; padding: 0; }
#other-tours { overscroll-behavior: contain; }
#other-tours-title { font-size: clamp(1.15rem,4vw,1.55rem); line-height: 1.2; }
#other-tours .add { padding-inline: .65rem; font-size: .87rem; }
#other-tours .dialog-head { align-items: start; }
#quote-dialog {
  --ticket-stub: 32%;
  --ticket-notch: .9rem;
  width: min(100% - 2rem, 76rem);
  height: min(25rem, 90dvh);
  padding: 0;
  border: .32rem solid var(--brand-blue);
  overscroll-behavior: contain;
  clip-path: polygon(
    0 0, calc(var(--ticket-stub) - var(--ticket-notch)) 0,
    var(--ticket-stub) var(--ticket-notch), calc(var(--ticket-stub) + var(--ticket-notch)) 0, 100% 0,
    100% 100%, calc(var(--ticket-stub) + var(--ticket-notch)) 100%,
    var(--ticket-stub) calc(100% - var(--ticket-notch)), calc(var(--ticket-stub) - var(--ticket-notch)) 100%, 0 100%
  );
}
#quote-dialog[open] { display: grid; grid-template-columns: minmax(0, var(--ticket-stub)) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); overflow: hidden; }
.ticket-picker, .ticket-details { min-width: 0; overflow: auto; scrollbar-width: none; padding: 1rem; }
.ticket-picker { border-right: 3px dashed #d7ebfc; background: var(--deep-blue); color: white; }
.ticket-picker h2 { font-size: clamp(1.25rem, 2.1vw, 1.7rem); line-height: 1.15; }
.ticket-picker p { margin-top: .35rem; color: #e6f3ff; }
.quote-choices { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .55rem; }
.quote-choice { min-height: 34px; padding: .28rem .5rem; border: 1px solid #b7daf8; border-radius: .6rem; background: transparent; color: white; font-size: .86rem; cursor: pointer; }
.quote-choice:hover { border-color: white; background: #ffffff16; }
.quote-choice[aria-pressed="true"] { border-color: white; background: white; color: var(--ink); }
.quote-choice:focus-visible, .ticket-picker input:focus-visible { outline-color: white; }
.quote-tools { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .45rem; }
.quote-clear { display: inline-flex; align-items: center; gap: .2rem; padding-inline: .3rem; border-color: transparent; color: #e6f3ff; font-size: .74rem; }
.quote-clear:hover:not(:disabled) { border-color: transparent; color: white; text-decoration: underline; }
.quote-tools button:disabled { opacity: .55; background: transparent; cursor: default; }
.quote-destinations { border-style: dashed; }
.quote-destinations.has-destinations { border-style: solid; background: white; color: var(--ink); }
#quote-destinations-summary { margin-block: .45rem .75rem; overflow-wrap: anywhere; font-size: .9rem; font-weight: 700; }
.multidestination-options { margin: .9rem 0 0; }
#multidestination-description { margin-top: .45rem; color: var(--muted); }
#quote-other-field { margin-top: .85rem; }
#quote-other-field label span { color: #e6f3ff; }
.ticket-details .dialog-head { margin-bottom: .5rem; }
form label { display: grid; gap: .25rem; color: var(--ink); font-weight: 700; }
#quote-list { display: flex; flex-wrap: wrap; gap: .25rem .45rem; margin-block: .5rem 1rem; padding: 0; list-style: none; overflow-wrap: anywhere; }
#quote-list li { max-width: 100%; padding: .15rem .5rem; border-radius: .35rem; background: #eaf2f7; font-size: .86rem; }
#quote-list:empty { display: none; }
#quote-mobile-summary { display: none; }
#quote-form button:disabled { opacity: .55; cursor: default; }
.quote-confirmation {
  position: fixed;
  z-index: 10;
  inset: auto max(1rem, env(safe-area-inset-right)) calc(5rem + env(safe-area-inset-bottom)) auto;
  display: flex;
  align-items: center;
  gap: .65rem;
  width: max-content;
  max-width: calc(100vw - 2rem);
  margin: 0;
  padding: .75rem 1rem;
  border: 0;
  border-radius: .75rem;
  color: white;
  background: var(--ink);
  box-shadow: 0 .55rem 1.7rem #10314b49;
  font-size: .9rem;
  font-weight: 700;
}
.quote-confirmation svg { flex: none; color: var(--yellow); }
.quote-dispatch { display: none; position: absolute; inset: 0; }
#quote-dialog[open].quote-dispatching {
  --dispatch-duration: 3400ms;
  clip-path: none;
  overflow: visible;
  background: transparent;
  border-color: transparent;
  pointer-events: none;
}
.quote-dispatching .quote-dispatch { display: block; }
.quote-dispatching .ticket-picker,
.quote-dispatching .ticket-details { position: relative; overflow: hidden; translate: 0 var(--dispatch-scroll); }
.quote-dispatching .ticket-picker {
  z-index: 5;
  border-radius: .9rem 0 0 .9rem;
  clip-path: polygon(0 0, calc(100% - var(--ticket-notch)) 0, 100% var(--ticket-notch),
    100% calc(100% - var(--ticket-notch)), calc(100% - var(--ticket-notch)) 100%, 0 100%);
  animation: dispatch-stub var(--dispatch-duration) cubic-bezier(.5,.08,.7,.45) both;
}
.quote-dispatching .ticket-details {
  z-index: 2;
  border-radius: 0 .9rem .9rem 0;
  clip-path: polygon(var(--ticket-notch) 0, 100% 0, 100% 100%, var(--ticket-notch) 100%,
    0 calc(100% - var(--ticket-notch)), 0 var(--ticket-notch));
  background: var(--surface);
  animation: dispatch-ticket var(--dispatch-duration) ease-in-out both;
}
.dispatch-envelope {
  --dispatch-width: clamp(12rem, 54vw, 21rem);
  position: absolute;
  width: var(--dispatch-width);
  aspect-ratio: 260 / 160;
  left: calc(var(--dispatch-center) - var(--dispatch-width) / 2);
  top: var(--dispatch-top);
}
.dispatch-envelope > svg { position: absolute; width: 100%; }
.dispatch-envelope-back, .dispatch-envelope-front {
  inset: 0;
  animation: dispatch-envelope var(--dispatch-duration) ease-in-out both;
}
.dispatch-envelope-back { z-index: 1; filter: drop-shadow(0 12px 18px #092d5040); }
.dispatch-envelope-front { z-index: 4; }
.dispatch-envelope > .dispatch-passport {
  z-index: 3;
  width: 28%;
  left: 60%;
  top: 0;
  animation: dispatch-passport var(--dispatch-duration) ease-in-out both;
}
.dispatch-open-flap, .dispatch-envelope-flap { transform-origin: 50% 41%; transform-box: view-box; }
.dispatch-open-flap { animation: dispatch-open-flap var(--dispatch-duration) ease-in-out both; }
.dispatch-envelope-flap { animation: dispatch-flap var(--dispatch-duration) ease-in-out both; }
.dispatch-screen {
  position: fixed;
  inset: 0;
  z-index: 6;
  display: grid;
  place-items: center;
  background: var(--sea);
  animation: dispatch-screen var(--dispatch-duration) ease both;
}
.dispatch-screen img { width: clamp(9rem, 25vw, 15rem); height: auto; }
.dispatch-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@keyframes dispatch-stub {
  0%, 10% { transform: none; }
  30%, 100% { transform: translate(-110vw, -15vh) rotate(-19deg); }
}
@keyframes dispatch-ticket {
  0%, 18% { transform: none; }
  43%, 48% { transform: translate(var(--dispatch-x), var(--dispatch-mouth-y)) scale(var(--dispatch-scale)); }
  67%, 100% { transform: translate(var(--dispatch-x), var(--dispatch-pocket-y)) scale(var(--dispatch-scale)); }
  0%, 67% { visibility: visible; }
  68%, 100% { visibility: hidden; }
}
@keyframes dispatch-envelope {
  0%, 20% { transform: translateY(2rem) scale(.92); opacity: 0; }
  39%, 80% { transform: none; opacity: 1; }
  96%, 100% { transform: translateY(-105vh); opacity: 1; }
}
@keyframes dispatch-passport {
  0%, 49% { transform: translate(85%, -64%) rotate(16deg) scale(.78); opacity: 0; }
  58%, 61% { transform: translate(0, -49%) rotate(6deg) scale(.78); opacity: 1; }
  72%, 100% { transform: translate(0, 65%) scale(.78); opacity: 1; }
  0%, 72% { visibility: visible; }
  73%, 100% { visibility: hidden; }
}
@keyframes dispatch-open-flap {
  0%, 72% { transform: none; }
  77%, 100% { transform: scaleY(0); }
}
@keyframes dispatch-flap {
  0%, 76% { transform: scaleY(0); opacity: 0; }
  77% { transform: scaleY(0); opacity: 1; }
  80%, 100% { transform: none; opacity: 1; }
}
@keyframes dispatch-screen {
  0%, 88% { opacity: 0; }
  95%, 100% { opacity: 1; }
}
@media (max-width: 800px) {
  .quote-dispatching .ticket-picker {
    border-radius: .9rem .9rem 0 0;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--ticket-notch)),
      calc(100% - var(--ticket-notch)) 100%, var(--ticket-notch) 100%, 0 calc(100% - var(--ticket-notch)));
    animation-name: dispatch-stub-mobile;
  }
  .quote-dispatching .ticket-details {
    border-radius: 0 0 .9rem .9rem;
    clip-path: polygon(var(--ticket-notch) 0, calc(100% - var(--ticket-notch)) 0, 100% var(--ticket-notch),
      100% 100%, 0 100%, 0 var(--ticket-notch));
  }
}
@keyframes dispatch-stub-mobile {
  0%, 10% { transform: none; }
  30%, 100% { transform: translate(-48vw, -100vh) rotate(-16deg); }
}
@media (prefers-reduced-motion: reduce) {
  .quote-dispatching :is(.ticket-picker, .ticket-details, .quote-dispatch *) { animation: none; }
  .quote-dispatching :is(.ticket-picker, .ticket-details, .dispatch-envelope) { visibility: hidden; }
}
@media (min-width: 801px) {
  .ticket-picker, .ticket-details { display: flex; flex-direction: column; padding: clamp(1rem, 2.1vw, 1.8rem); }
  .ticket-picker > *, .ticket-details > * { flex-shrink: 0; }
  .ticket-picker .quote-choices { gap: .45rem; margin-top: .9rem; }
  .ticket-picker .quote-choices .quote-choice { padding-inline: .65rem; }
  .ticket-picker .quote-tools { margin-top: auto; padding-top: .8rem; align-items: center; }
  .ticket-picker .quote-clear { margin-inline-start: auto; }
  .ticket-details .dialog-head { margin-bottom: .75rem; }
  .ticket-details .dialog-head h3 { font-size: 1.35rem; }
  .ticket-details #empty-quote { margin-block: auto; color: var(--muted); }
  .ticket-details #quote-form { margin-top: auto; padding-top: .6rem; gap: .7rem; }
}
@media (min-width: 900px) {
  #quote-form { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  #quote-form :is(.unknown, button) { grid-column: 1 / -1; }
}
form { display: grid; gap: .65rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
form .unknown { display: flex; align-items: center; gap: .4rem; min-height: 44px; }
#insurance-message, #external-message { margin-top: .5rem; color: var(--muted); }
.insurance-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; margin-top: 1rem; }
@media (prefers-reduced-motion: no-preference) {
  .service::before { transition: opacity 180ms ease-out; }
  .testimonial-list figure { transition: background-color 170ms ease; }
  html { scroll-behavior: smooth; }
  .button, .destination-card { transition: background-color 170ms ease, border-color 170ms ease, filter 170ms ease; }
  .faq-questions summary::after { transition: rotate 220ms var(--arrive); }
  #insurance-dialog[open], #external-dialog[open], #other-tours[open] { animation: settle 380ms var(--arrive) both; }
  @keyframes settle { from { opacity: .65; transform: translateY(10px); } }

  .hero-orbit { animation: orbit-arrive 1.1s var(--arrive) backwards; }
  .hero-shape { animation: shape-arrive 1.05s var(--arrive) 65ms backwards; }
  .hero-copy { animation: copy-arrive 650ms var(--arrive) backwards; }
  .hero-flight { animation: flight-arrive 1s var(--arrive) 100ms backwards; }
  .hero-traveler { animation: traveler-arrive 1s var(--arrive) 170ms backwards; }
  .hero-pin { animation: stamp-arrive 580ms var(--arrive) 440ms backwards; }
  @keyframes orbit-arrive { from { opacity: .3; transform: scale(.7); } }
  @keyframes shape-arrive { from { opacity: 0; transform: translate(1.4rem, -.8rem) rotate(-12deg) scale(.9); } }
  @keyframes copy-arrive { from { opacity: .45; transform: translateX(-1rem); } }
  @keyframes flight-arrive {
    from { opacity: 0; transform: perspective(32rem) translate(-3.3rem, 1rem) rotate(-9deg) rotateY(-26deg); }
  }
  @keyframes traveler-arrive { from { opacity: 0; transform: translate(2.35rem, 1rem) rotate(3deg); } }
  @keyframes stamp-arrive { from { opacity: 0; transform: translateY(-.75rem) rotate(-16deg) scale(.77); } }
  [data-scroll-motion="photo"] { --scroll-x: -1.4rem; --scroll-turn: -4deg; }
  [data-scroll-motion="sticker"] { --scroll-turn: -14deg; }
  [data-scroll-motion].in-view { animation: artwork-enter 720ms var(--arrive) backwards; }
  @keyframes artwork-enter {
    from { opacity: .75; transform: translate(var(--scroll-x, 0px), 1.35rem) rotate(var(--scroll-turn, 4deg)) scale(.96); }
  }

  @supports (animation-timeline: view()) {
    [data-scroll-motion] {
      animation: artwork-drift linear both;
      animation-timeline: view(block);
      animation-range: cover;
    }
    @keyframes artwork-drift {
      0% { opacity: .75; transform: translate(var(--scroll-x, 0px), 1.35rem) rotate(var(--scroll-turn, 4deg)) scale(.96); }
      35%, 72% { opacity: 1; }
      55% { transform: translate(0, 0) rotate(0); }
      100% { opacity: .85; transform: translateY(-1.1rem) rotate(-2deg); }
    }
  }
  @supports (animation-timeline: scroll()) {
    @media (min-width: 1025px) {
      .hero-art {
        animation: hero-drift linear both;
        animation-timeline: scroll(root block);
        animation-range: 0px 42rem;
      }
      @keyframes hero-drift { to { translate: 0 2.8rem; } }
    }
  }
}
@media (max-width: 1060px) {
  .header { flex-wrap: wrap; gap: .15rem .55rem; padding-block: .65rem; }
  .language-control { margin-left: auto; }
  .header nav { flex: 0 0 100%; order: 1; flex-wrap: wrap; column-gap: clamp(.55rem, 3.8vw, 1rem); row-gap: 0; font-size: .89rem; margin-left: 0; }
}
@media (max-width: 800px) {
  body { --grid-depth: 32rem; }
  .button.mobile-menu-toggle { display: inline-flex; border-radius: 999px; }
  .header-quote { display: none; }
  #mobile-nav-toggle { padding-inline: .7rem; font-size: .88rem; }
  .header, .mobile-menu-anchor { position: relative; }
  .mobile-menu-anchor { display: block; }
  :is(.header nav, .mobile-menu-anchor .destination-list) {
    position: absolute;
    z-index: 5;
    inset: calc(100% + .35rem) 0 auto;
    margin: 0;
    max-height: min(20rem, 60dvh);
    overflow: auto;
    box-shadow: 0 8px 24px #1e395629;
  }
  .header nav { flex-direction: column; align-items: stretch; padding: .25rem .7rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--surface); }
  .header nav > :is(a, button) { flex-shrink: 0; }
  .header:has(#mobile-nav-toggle[aria-expanded="false"]) nav { display: none; }
  .header nav :is(a, button) { width: 100%; white-space: normal; text-align: start; }
  .hero-ground {
    border-radius: 0 0 29% 19% / 0 0 8% 5%;
    background: linear-gradient(var(--sky-edge), #217eaa 4.25rem, #0d71b0 58%, var(--sea) 100%);
  }
  .hero-orbit { inset: auto auto 6% -10rem; width: 28rem; }
  .hero-shape { inset: 8% -11% auto auto; width: min(98vw, 38rem); }
  .hero-layout { grid-template-columns: minmax(0, 1fr); gap: .7rem; min-height: 0; padding-block: 4.4rem 2.5rem; }
  .hero-copy { padding: 0; }
  .hero h1 { max-width: 14ch; font-size: clamp(2.5rem, 11.7vw, 4.4rem); }
  .hero-copy > p { margin-top: .8rem; }
  .hero-copy .hero-languages { margin-top: .75rem; }
  .hero-actions { margin-top: 1rem; }
  .hero-actions .button { padding-inline: clamp(.5rem, 2.2vw, .9rem); font-size: clamp(.84rem, 3.7vw, 1rem); }
  .hero-actions .whatsapp { display: none; }
  .hero-flight { inset: .15rem 0 auto auto; width: min(58%, 16rem); }
  .hero-art { position: relative; inset: auto; width: min(100%, 28rem); justify-self: center; }
  .hero-traveler { position: static; width: 100%; margin-bottom: -1.6rem; }
  .hero-pin { inset: 12% 0 auto auto; }
  .destination-intro, .contact-spread { grid-template-columns: minmax(0, 1fr); }
  .destination-intro { gap: 1.5rem; margin-top: -1.9rem; }
  .destination-postcard { margin: 0 .55rem; rotate: 1.6deg; }
  .about-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "story" "art" "care"; }
  .about-art { min-height: clamp(16rem, 69vw, 25rem); }
  .about-traveler { width: min(76%, 23rem); inset-inline-start: 9%; }
  .about-care { margin: -2.8rem .65rem 0; }
  .about-plane { inset-inline-end: .75rem; }
  .travel-faq, .blog-layout { grid-template-columns: minmax(0, 1fr); }
  .guide-notes { grid-template-columns: minmax(0, 1fr); padding-inline-start: 1.25rem; }
  .guide-notes::before { inset: 0 auto 0 .15rem; border-top: 0; border-inline-start: 2px dashed color-mix(in srgb, var(--brand-blue) 48%, transparent); }
  .guide-notes article { padding-top: 0; }
  .guide-stop { inset: .55rem auto auto -2.1rem; }
  .contact-spread { background: linear-gradient(149deg, var(--sea) 48%, #137cb3 75%, #72d4e5); }
  .contact-photos { max-width: 28rem; width: 100%; justify-self: center; margin-bottom: .9rem; }
  #mobile-destination-toggle { justify-content: space-between; width: 100%; margin-top: .45rem; }
  :is(#mobile-destination-toggle, #mobile-catalog-destination-toggle)[aria-expanded="true"] > svg { rotate: 180deg; }
  .destination-confirmed { display: inline-flex; align-items: center; gap: .35rem; }
  #mobile-destination-toggle[aria-expanded="false"] + .destination-list { display: none; }
  .destination-list { display: grid; gap: 0; padding: .25rem .65rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--surface); }
  .destination-list li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
  .destination-list li + li { border-top: 1px solid #dce8f4; }
  .destination-list .destination-card { min-height: 44px; padding-inline: .4rem; border: 0; background: transparent; }
  .destination-list .destination-featured { width: 100%; color: var(--deep-blue); }
  .destination-list .destination-status { position: static; transform: none; visibility: visible; background: transparent; color: var(--muted); }
  .services { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.3rem; }
  .services-view .service { padding: .55rem; }
  .services-view .service h3 { overflow-wrap: anywhere; }
  .catalog-content > .mobile-menu-anchor { margin-bottom: .85rem; }
  #mobile-catalog-destination-toggle { justify-content: space-between; width: 100%; }
  #mobile-catalog-destination-toggle[aria-expanded="true"] + #mobile-catalog-destinations { display: grid; }
  .catalog-filter { display: none; }
  .catalog-actions { display: contents; }
  .quote-dock { position: sticky; z-index: 1; bottom: calc(.6rem + env(safe-area-inset-bottom)); max-width: calc(100% - 3.6rem); margin-inline-end: 3.6rem; gap: .55rem; }
  .more-action { margin-top: .15rem; }
  .service-more-column { display: flex; min-width: 0; flex-direction: column; gap: .6rem; }
  .service-more-column .more-services-link {
    align-self: flex-start;
    gap: .25rem;
    margin: auto 0 clamp(.15rem, .45vw, .4rem) clamp(.15rem, .45vw, .4rem);
    padding-inline: .5rem;
    font-size: .8rem;
    white-space: nowrap;
  }
  body:not(.services-view) .catalog-actions .quote-dock {
    bottom: calc(4.4rem + env(safe-area-inset-bottom));
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 1rem 0 0;
    gap: .5rem;
    padding: .3rem .4rem .3rem .7rem;
    box-shadow: 0 4px 16px #1e395626;
    font-size: .9rem;
    line-height: 1.25;
  }
  body:not(.services-view) .catalog-actions .quote-dock p { font-size: .75rem; }
  body:not(.services-view) .quote-dock:has(.empty-count) { position: static; }
  .services-view .catalog-actions .quote-dock {
    bottom: calc(4.4rem + env(safe-area-inset-bottom));
    display: grid;
    justify-content: stretch;
    gap: .25rem;
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }
  .services-view .catalog-actions .quote-dock > div { justify-self: start; }
  .services-view .catalog-actions .quote-dock > .button { width: 100%; box-shadow: 0 4px 16px #1e395626; }
  .services-view .back-home { gap: .3rem; padding: .35rem .65rem; font-size: .75rem; }
  .catalog-actions .quote-dock .button.home-only {
    flex-shrink: 0;
    gap: .25rem;
    padding: .35rem .65rem;
    font-size: .83rem;
    line-height: 1.2;
  }
  .testimonials h2 { flex: 1 1 11rem; font-size: clamp(1.7rem, 6.4vw, 2.5rem); }
  .footer-content, .services-view .footer-content { grid-template-columns: 1fr; }
  .footer-logos { display: grid; grid-template-columns: minmax(0, 6.25rem) minmax(0, 11rem); align-items: center; justify-content: center; gap: 1.1rem; }
  .footer-brand h2 { margin-top: 1.15rem; }
  .footer-logos > a { display: block; }
  .footer-logos img { width: 100%; max-width: 6.25rem; }
  .footer-logos .footer-cadastur { justify-self: stretch; margin: 0; }
  .footer-logos .footer-cadastur img { max-width: none; }
  .footer-social-column { justify-items: start; grid-template-rows: auto auto; margin-top: -.6rem; }
  #quote-dialog {
    --ticket-stub: max(33%, 13.75rem);
    width: min(100% - 2rem, 26rem, max(16rem, 62dvh));
    height: min(42rem, 86dvh);
    clip-path: polygon(
      0 0, 100% 0, 100% calc(var(--ticket-stub) - var(--ticket-notch)),
      calc(100% - var(--ticket-notch)) var(--ticket-stub), 100% calc(var(--ticket-stub) + var(--ticket-notch)), 100% 100%,
      0 100%, 0 calc(var(--ticket-stub) + var(--ticket-notch)),
      var(--ticket-notch) var(--ticket-stub), 0 calc(var(--ticket-stub) - var(--ticket-notch))
    );
  }
  #quote-dialog[open] { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--ticket-stub) minmax(min-content, 1fr); overflow: auto; scrollbar-width: none; }
  .ticket-picker { overflow: visible; padding: .7rem .9rem; border-right: 0; border-bottom: 3px dashed #d7ebfc; }
  .ticket-picker h2 { padding-inline-end: 3rem; font-size: 1.1rem; }
  .ticket-picker p, .ticket-picker .quote-choice { font-size: .8rem; }
  .ticket-picker .quote-choice { padding-inline: .4rem; }
  .ticket-picker .quote-tools { flex-wrap: nowrap; align-items: center; }
  .ticket-picker .quote-tools .quote-choice { white-space: nowrap; }
  .ticket-picker .quote-clear { margin-inline-start: auto; padding-inline: .3rem; font-size: .74rem; }
  .ticket-details { overflow: visible; padding: .7rem .9rem; }
  .ticket-details #quote-other-field { margin: 0 0 .55rem; }
  .ticket-details #quote-other-field label { font-size: .84rem; font-weight: 700; }
  .ticket-details #quote-other-field label span { color: var(--muted); }
  .ticket-details .dialog-head { margin-bottom: .3rem; }
  #quote-dialog :is(#quote-list, #quote-destinations-summary) { display: none; }
  #quote-mobile-summary { display: block; margin: 0 0 .5rem; color: var(--muted); font-size: .82rem; }
  #quote-form { gap: .35rem; }
  #quote-form label { gap: .15rem; font-size: .84rem; }
  #quote-form :is(input:not([type=checkbox]), select) { font-size: 1rem; }
  #quote-form { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  #quote-form :is(#quote-airfare-field, #quote-date-field, .unknown, button) { grid-column: 1 / -1; }
  #close-dialog { position: absolute; z-index: 1; top: .55rem; inset-inline-end: .55rem; }
}
@media (max-width: 360px) {
  .ticket-picker .quote-choices .quote-choice { padding-inline: .28rem; }
  .ticket-picker .quote-choices :is([data-quote-service="Colonia del Sacramento"], [data-quote-service="Serviços privados"]) {
    flex: 1 1 calc(50% - .3rem);
    min-width: 0;
    line-height: 1.2;
  }
}
@media (pointer: coarse) {
  .destination-card { min-height: 42px; }
  .quote-choice { min-height: 44px; }
}
@media (max-width: 680px) {
  .feedback-layout { grid-template-columns: 1fr; }
}
@media (max-width: 540px), (min-width: 801px) and (max-width: 1100px) {
  .service-footer { align-items: flex-start; flex-direction: column; justify-content: flex-end; }
}
@media (max-width: 540px) {
  body:not(.services-view) .services { grid-template-columns: minmax(0, 1fr); gap: 1.85rem; }
  body:not(.services-view) .service-footer { flex-direction: row; align-items: center; justify-content: space-between; }
  body:not(.services-view) .service-postcard { min-height: 13rem; }
  .services-view .service-postcard { min-height: 10rem; padding: .65rem .45rem; }
  .services-view .postcard-caption { font-size: .56rem; letter-spacing: 0; }
  .services-view .postcard-seal { inset: .28rem .28rem auto auto; }
}
@media (max-width: 400px) {
  .form-row { grid-template-columns: 1fr; }
}
