/*
Theme Name: Flow Passeios
Theme URI: https://flowpasseios.com.br
Author: Flow Estratégias Digitais
Description: Tema exclusivo para a Flow Passeios Náuticos.
Version: 4.1.9
Text Domain: flow-passeios
*/

:root {
  --flow-blue: #1c3a53;
  --ocean: #187784;
  --ocean-deep: #0f2438;
  --ocean-soft: #174861;
  --teal: #36afaf;
  --teal-light: #c6e7e5;
  --sand: #f4f9f8;
  --sand-deep: #c6e7e5;
  --salt: #f4f9f8;
  --ink: #1c3a53;
  --muted: #4c6874;
  --sun: #36afaf;
  --line: rgba(28, 58, 83, .16);
  --line-light: rgba(255, 255, 255, .2);
  --paper-grain:
    radial-gradient(circle at 18% 24%, rgba(28,58,83,.045) 0 1px, transparent 1.4px),
    radial-gradient(circle at 72% 64%, rgba(24,119,132,.04) 0 1px, transparent 1.5px),
    linear-gradient(112deg, rgba(255,255,255,.72), rgba(198,231,229,.12) 48%, rgba(255,255,255,.48));
  --nautical-grid:
    linear-gradient(rgba(198,231,229,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(198,231,229,.045) 1px, transparent 1px),
    radial-gradient(circle at 74% 18%, rgba(54,175,175,.12), transparent 31%);
  --card-shadow: 0 24px 65px rgba(15,36,56,.13), 0 3px 10px rgba(15,36,56,.08);
  --card-shadow-hover: 0 34px 80px rgba(15,36,56,.2), 0 8px 22px rgba(24,119,132,.12);
  --flow-waves-light: url("assets/images/grafismo-onda-flow-claro.svg");
  --flow-waves-dark: url("assets/images/grafismo-onda-flow-escuro.svg");
  --content: 1240px;
  --display: "Poppins", ui-sans-serif, system-ui, sans-serif;
  --technical: "Jura", ui-sans-serif, system-ui, sans-serif;
  --sans: "Work Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--salt);
  font-family: var(--sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }

.container { width: min(calc(100% - 48px), var(--content)); margin-inline: auto; }
.editorial-section { padding: clamp(88px, 10vw, 150px) 0; }

/* Ondas de transição: cada seção entrega visualmente a cor da próxima. */
.home main > section { position: relative; --wave-next: var(--salt); }
.home main > section::after {
  position: absolute;
  z-index: 6;
  right: 0;
  bottom: -1px;
  left: 0;
  height: clamp(34px, 4.2vw, 64px);
  content: "";
  background: var(--wave-next);
  clip-path: polygon(0 64%, 8% 52%, 17% 42%, 27% 38%, 37% 43%, 48% 55%, 59% 68%, 70% 75%, 81% 72%, 91% 62%, 100% 48%, 100% 100%, 0 100%);
  pointer-events: none;
}
.home .hero { --wave-next: var(--ocean); }
.home .hero::after { display: none; }
.home .opening { --wave-next: var(--sand); }
.home .routes { --wave-next: var(--ocean-deep); }
.home .sea-break { --wave-next: var(--salt); }
.home .destinations { --wave-next: var(--ocean-deep); }
.home .gallery { --wave-next: var(--ocean); }
.home .trust { --wave-next: var(--salt); }
.home .google-proof { --wave-next: var(--sand); }
.home .about { --wave-next: var(--salt); }
.home .faq { --wave-next: var(--ocean-deep); }
.home .final-cta { --wave-next: var(--ocean-deep); }
.skip-link {
  position: fixed;
  z-index: 9999;
  top: -100px;
  left: 18px;
  padding: 12px 18px;
  color: var(--salt);
  background: var(--ocean);
  border-radius: 4px;
}
.skip-link:focus { top: 18px; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: var(--teal);
  font-family: var(--technical);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .19em;
  line-height: 1.2;
  text-transform: uppercase;
}
.eyebrow::before { width: 34px; height: 1px; content: ""; background: currentColor; }
.eyebrow-light { color: var(--teal-light); }

.site-header {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  overflow: visible;
  border-bottom: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease;
}
.header-inner {
  display: flex;
  min-height: 92px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.brand {
  position: relative;
  display: grid;
  width: 150px;
  height: 86px;
  place-items: center;
  overflow: visible;
  background: transparent;
}
.brand img { width: 116px; }
.brand-logo { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); transition: opacity .2s ease; }
.brand-logo-dark { opacity: 0; }
.site-header.is-scrolled .brand-logo-light,
body:not(.home) .brand-logo-light { opacity: 0; }
.site-header.is-scrolled .brand-logo-dark,
body:not(.home) .brand-logo-dark { opacity: 1; }
.main-nav { display: flex; align-items: center; gap: 30px; }
.main-nav > a {
  color: rgba(255, 255, 255, .9);
  font-family: var(--technical);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.main-nav > a:not(.nav-cta) { position: relative; }
.main-nav > a:not(.nav-cta)::after {
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 1px;
  content: "";
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s ease;
}
.main-nav > a:hover::after, .main-nav > a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.nav-cta {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 14px;
  padding: 10px 17px;
  border: 1px solid rgba(255,255,255,.45);
}
.site-header.is-scrolled { border-color: var(--line); background: rgba(252, 252, 250, .97); backdrop-filter: blur(14px); }
.site-header.is-scrolled .main-nav > a { color: var(--ocean); }
.site-header.is-scrolled .main-nav > .nav-cta { color: var(--salt); background: var(--ocean); border-color: var(--ocean); }
.site-header.is-scrolled .main-nav > .nav-cta:hover,
.site-header.is-scrolled .main-nav > .nav-cta:focus-visible { color: var(--salt); background: var(--flow-blue); }
body:not(.home) .site-header { border-color: var(--line); background: rgba(252, 252, 250, .97); }
body:not(.home) .site-header .main-nav > a { color: var(--ocean); }
body:not(.home) .site-header .main-nav > .nav-cta { color: var(--salt); background: var(--ocean); border-color: var(--ocean); }
body:not(.home) .site-header .main-nav > .nav-cta:hover,
body:not(.home) .site-header .main-nav > .nav-cta:focus-visible { color: var(--salt); background: var(--flow-blue); border-color: var(--flow-blue); }
body.menu-open .site-header { border-color: var(--line); background: var(--salt); backdrop-filter: none; }
body.menu-open .brand-logo-light { opacity: 0; }
body.menu-open .brand-logo-dark { opacity: 1; }
body.menu-open .menu-toggle { color: var(--salt); border-color: rgba(255,255,255,.42); background: var(--ocean-deep); box-shadow: 0 9px 24px rgba(15,36,56,.22); }
.menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  place-items: center;
  gap: 6px;
  padding: 0;
  color: white;
  border: 1px solid rgba(255,255,255,.5);
  background: rgba(4,29,39,.26);
  border-radius: 50%;
}
.menu-toggle span { display: block; width: 19px; height: 1px; background: currentColor; transition: transform .2s ease; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.site-header.is-scrolled .menu-toggle { color: var(--ocean); border-color: var(--line); background: var(--salt); }
.site-header.is-scrolled .menu-toggle,
body:not(.home) .menu-toggle {
  color: var(--salt);
  border-color: rgba(255,255,255,.42);
  background: var(--ocean-deep);
  box-shadow: 0 9px 24px rgba(15,36,56,.22);
}

.hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  grid-template-columns: minmax(0, 1fr);
  color: var(--salt);
  background: var(--ocean-deep);
}
.hero-media, .hero-media::before, .hero-media::after, .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-video { object-fit: cover; }
.hero-video-mobile { display: none; }
.hero-media::before {
  z-index: 1;
  content: "";
  background: linear-gradient(90deg, rgba(4,29,39,.88) 0%, rgba(4,29,39,.53) 43%, rgba(4,29,39,.09) 78%);
}
.hero-media::after {
  z-index: 1;
  content: "";
  background: linear-gradient(0deg, rgba(4,29,39,.88) 0%, transparent 43%);
}
.hero-layout { position: relative; z-index: 2; display: grid; min-height: calc(100svh - 116px); align-items: center; grid-template-columns: 1fr auto; padding-top: 104px; padding-bottom: 68px; }
.hero-content { max-width: 820px; }
.hero h1 {
  max-width: 720px;
  margin: 0;
  color: var(--salt);
  font-family: var(--display);
  font-size: clamp(3.35rem, 5.2vw, 6.2rem);
  font-weight: 300;
  letter-spacing: -.05em;
  line-height: .96;
  text-wrap: balance;
}
.hero .eyebrow::before { display: none; }
.hero-highlight { color: var(--teal-light); }
.hero-copy { max-width: 640px; margin: 28px 0 35px; color: rgba(255,255,255,.84); font-size: clamp(1.05rem, 1.6vw, 1.24rem); }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 23px; }
.button {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  padding: 15px 23px;
  border: 1px solid transparent;
  font-family: var(--technical);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease;
}
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-sun { color: var(--ocean-deep); background: var(--teal); box-shadow: 0 15px 35px rgba(54,175,175,.2); }
.button-sun:hover { background: var(--teal-light); }
.hero-text-link { display: inline-flex; align-items: center; gap: 13px; color: rgba(255,255,255,.9); font-family: var(--technical); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.45); }
.hero-text-link span { color: var(--teal-light); }
.hero-coordinate { align-self: end; margin: 0 0 42px; padding-left: 24px; border-left: 1px solid rgba(255,255,255,.35); text-align: right; }
.hero-coordinate span, .hero-coordinate strong { display: block; }
.hero-coordinate span { color: var(--teal-light); font-family: var(--technical); font-size: .64rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.hero-coordinate strong { font-family: var(--display); font-size: 1.08rem; font-weight: 300; }
.hero-proof { position: relative; z-index: 3; border-top: 1px solid rgba(255,255,255,.18); background: rgba(4,29,39,.68); backdrop-filter: blur(12px); }
.proof-grid { display: grid; min-height: 136px; grid-template-columns: repeat(3, 1fr); gap: 14px; padding-block: 14px; }
.proof-card { position: relative; display: flex; justify-content: center; flex-direction: column; padding: 20px 25px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); background: linear-gradient(135deg, rgba(255,255,255,.09), rgba(54,175,175,.025)); box-shadow: inset 0 1px 0 rgba(255,255,255,.13), 0 14px 35px rgba(0,0,0,.17); backdrop-filter: blur(10px); transition: transform .35s cubic-bezier(.2,.75,.2,1), background .35s ease, border-color .35s ease, box-shadow .35s ease; }
.proof-card::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; content: ""; background: var(--teal); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.proof-card:hover { border-color: rgba(198,231,229,.58); background: linear-gradient(135deg, rgba(54,175,175,.2), rgba(255,255,255,.07)); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 22px 44px rgba(0,0,0,.25); transform: translateY(-7px); }
.proof-card:hover::after { transform: scaleX(1); }
.proof-number { position: absolute; top: 12px; right: 14px; color: rgba(255,255,255,.34); font-family: var(--technical); font-size: .58rem; }
.proof-kicker { margin-bottom: 5px; color: var(--teal-light); font-family: var(--technical); font-size: .58rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.proof-grid strong { color: var(--salt); font-family: var(--display); font-size: .96rem; font-weight: 300; }
.hero-proof::after { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; content: ""; background: url("assets/images/degrade-flow-horizontal.png") center / cover no-repeat; }

.opening { color: var(--salt); background: var(--ocean); }
.opening-grid { display: grid; align-items: start; grid-template-columns: 90px 1.15fr .75fr; gap: 55px; }
.opening-index { color: var(--teal); font-family: var(--technical); font-size: 1.05rem; }
.opening h2, .section-intro h2, .trust-copy h2, .about-copy h2, .faq-layout h2, .final-cta h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.6rem, 5.2vw, 5.4rem);
  font-weight: 300;
  letter-spacing: -.045em;
  line-height: 1.02;
  text-wrap: balance;
}
.opening h2 { color: var(--salt); }
.opening-copy { padding-top: 38px; border-top: 1px solid var(--line-light); }
.opening-copy p { margin: 0 0 18px; color: rgba(255,255,255,.72); font-size: 1.05rem; }

.routes { background-color: var(--sand); background-image: var(--paper-grain); background-position: center; background-repeat: repeat; background-size: 13px 17px, 19px 23px, 100% 100%; }
.section-intro { display: grid; align-items: end; grid-template-columns: 1.3fr .7fr; gap: 80px; margin-bottom: clamp(65px, 8vw, 110px); }
.section-intro h2 { color: var(--ocean); }
.section-intro > p { margin: 0 0 8px; padding-top: 24px; color: var(--muted); border-top: 1px solid var(--line); }
.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; margin: -46px 0 24px; }
.catalog-toolbar p { margin: 0; color: var(--muted); font-family: var(--technical); font-size: .72rem; letter-spacing: .12em; }
.catalog-current { color: var(--ocean); font-size: 1.1rem; font-weight: 700; }
.catalog-toolbar > div { display: flex; gap: 8px; }
.catalog-arrow { display: grid; width: 50px; height: 50px; place-items: center; color: var(--ocean); border: 1px solid var(--line); background: transparent; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.catalog-arrow:hover, .catalog-arrow:focus-visible { color: var(--salt); background: var(--ocean); transform: translateY(-2px); }
.catalog-arrow:focus, .catalog-arrow:active,
.destination-arrow:focus, .destination-arrow:active {
  color: var(--salt);
  border-color: var(--ocean);
  background: var(--ocean);
  opacity: 1;
  visibility: visible;
}
.route-journal { display: flex; align-items: flex-start; gap: 24px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; }
.route-journal::-webkit-scrollbar { display: none; }
.route-journal.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.catalog-stage { position: relative; width: 100%; padding-inline: 48px; }
.route-catalog::after { flex: 0 0 max(0px, calc(100% - 780px)); content: ""; }
.catalog-side-arrow {
  position: absolute;
  z-index: 8;
  top: 50%;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  color: var(--salt);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  background: rgba(15,36,56,.9);
  box-shadow: 0 14px 32px rgba(15,36,56,.3);
  font-size: 1.25rem;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transform: translateY(-50%);
  transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.catalog-side-arrow:hover, .catalog-side-arrow:focus-visible { background: var(--ocean); box-shadow: 0 18px 38px rgba(15,36,56,.4); transform: translateY(-50%) scale(1.06); }
.catalog-side-arrow:focus, .catalog-side-arrow:active {
  color: var(--salt);
  border-color: rgba(255,255,255,.85);
  background: var(--ocean-deep);
  box-shadow: 0 14px 32px rgba(15,36,56,.34);
  opacity: 1;
  visibility: visible;
}
.catalog-side-prev { left: 0; }
.catalog-side-next { right: 0; }
.route-entry { display: grid; align-items: center; grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr); gap: clamp(26px, 4vw, 48px); }
.route-catalog .route-entry { position: relative; flex: 0 0 min(780px, calc(100vw - 96px)); height: 540px; padding: 20px; overflow: hidden; border: 1px solid rgba(28,58,83,.2); background-color: rgba(255,255,255,.86); background-image: var(--paper-grain); background-size: 12px 15px, 19px 21px, 100% 100%; box-shadow: 0 24px 55px rgba(15,36,56,.2), 0 8px 18px rgba(15,36,56,.12), inset 0 1px 0 white; scroll-snap-align: start; transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease; }
.route-catalog .route-entry::after { position: absolute; z-index: 3; top: 0; right: 0; width: 90px; height: 90px; content: ""; border-top: 1px solid rgba(54,175,175,.5); border-right: 1px solid rgba(54,175,175,.5); pointer-events: none; transition: width .35s ease, height .35s ease; }
.route-catalog .route-entry:hover { border-color: rgba(24,119,132,.42); box-shadow: 0 34px 72px rgba(15,36,56,.27), 0 12px 24px rgba(15,36,56,.14), inset 0 1px 0 white; transform: translateY(-5px); }
.route-catalog .route-entry:hover::after { width: 125px; height: 125px; }
.route-entry-reverse { grid-template-columns: minmax(280px, .9fr) minmax(0, 1fr); }
.route-entry-reverse .route-visual { grid-column: 2; }
.route-entry-reverse .route-copy { grid-row: 1; grid-column: 1; }
.route-visual { position: relative; display: block; min-height: 440px; overflow: hidden; background: var(--ocean); box-shadow: 0 20px 44px rgba(15,36,56,.3); }
.route-visual img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 440px; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.route-visual-landscape img { object-position: center; }
.route-visual:hover img { transform: scale(1.025); }
.route-visual::after { position: absolute; inset: auto 0 0; height: 34%; content: ""; background: linear-gradient(transparent, rgba(4,29,39,.68)); }
.route-marker {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  color: var(--ocean-deep);
  background: var(--teal);
  font-family: var(--technical);
  font-size: 1.05rem;
}
.route-caption { position: absolute; z-index: 2; right: 28px; bottom: 25px; left: 28px; color: var(--salt); font-family: var(--technical); font-size: .67rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.route-copy { position: relative; }
.route-copy::before { position: absolute; top: -65px; left: 0; width: 55px; height: 1px; content: ""; background: var(--teal); }
.route-meta { margin: 0 0 18px; color: var(--ocean); font-family: var(--technical); font-size: .66rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.route-copy h3 { margin: 0; color: var(--flow-blue); font-family: var(--display); font-size: clamp(2.35rem, 4vw, 4rem); font-weight: 300; letter-spacing: -.05em; line-height: .98; }
.route-copy > p { margin: 18px 0; color: var(--muted); font-size: .94rem; }
.route-details { margin: 22px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.route-details li { display: grid; grid-template-columns: 92px 1fr; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .8rem; }
.route-details span { color: var(--flow-blue); font-weight: 700; }
.journal-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 28px; padding: 8px 0; color: var(--flow-blue); border-bottom: 1px solid var(--flow-blue); font-family: var(--technical); font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.journal-link span { color: var(--teal); transition: transform .2s ease; }
.journal-link:hover span { transform: translate(3px,-3px); }
.catalog-hint { margin: 20px 0 0; color: var(--muted); font-family: var(--technical); font-size: .66rem; letter-spacing: .07em; text-align: right; text-transform: uppercase; }

.gallery { color: var(--salt); background-color: var(--ocean-deep); background-image: var(--nautical-grid); background-position: center; background-repeat: repeat; background-size: 38px 38px, 38px 38px, 100% 100%; }
.gallery .section-intro h2 { color: var(--salt); }
.gallery .section-intro > p { color: rgba(255,255,255,.66); border-color: var(--line-light); }
.gallery-grid { display: grid; grid-template-columns: 1.15fr .85fr 1fr; grid-template-rows: 320px 250px; gap: 14px; }
.gallery-item { position: relative; min-width: 0; padding: 0; overflow: hidden; color: var(--salt); border: 1px solid rgba(198,231,229,.13); background: var(--ocean); box-shadow: 0 18px 42px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.04); cursor: zoom-in; transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease; }
.gallery-item-1 { grid-row: 1 / 3; }
.gallery-item-4 { grid-row: 1 / 3; grid-column: 3; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s cubic-bezier(.2,.75,.2,1), filter .4s ease; }
.gallery-item::after { position: absolute; inset: auto 0 0; height: 45%; content: ""; background: linear-gradient(transparent, rgba(4,29,39,.82)); }
.gallery-item > span { position: absolute; z-index: 2; right: 18px; bottom: 16px; left: 18px; display: flex; align-items: end; justify-content: space-between; gap: 14px; font-family: var(--display); font-size: .96rem; font-weight: 300; text-align: left; }
.gallery-item small { color: var(--teal-light); font-family: var(--technical); font-size: .58rem; }
.gallery-item:hover, .gallery-item:focus-visible { border-color: rgba(198,231,229,.48); box-shadow: 0 28px 56px rgba(0,0,0,.34), 0 0 0 1px rgba(54,175,175,.2); transform: translateY(-5px); }
.gallery-item:hover img, .gallery-item:focus-visible img { filter: saturate(1.08); transform: scale(1.045); }
.gallery-lightbox { width: min(94vw, 1180px); height: min(90vh, 820px); padding: 0; overflow: visible; color: var(--salt); border: 1px solid rgba(255,255,255,.18); background: var(--ocean-deep); }
.gallery-lightbox::backdrop { background: rgba(4,18,28,.91); backdrop-filter: blur(8px); }
.gallery-lightbox[open] { display: grid; place-items: center; }
.gallery-lightbox figure { display: grid; width: 100%; height: 100%; margin: 0; grid-template-rows: minmax(0,1fr) auto; }
.gallery-lightbox figure img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.gallery-lightbox figcaption { padding: 14px 22px; color: var(--teal-light); font-family: var(--technical); font-size: .72rem; letter-spacing: .08em; text-align: center; }
.lightbox-close, .lightbox-arrow { position: absolute; z-index: 3; display: grid; place-items: center; color: white; border: 1px solid rgba(255,255,255,.4); background: rgba(4,29,39,.7); cursor: pointer; }
.lightbox-close { top: 12px; right: 12px; width: 44px; height: 44px; font-size: 1.6rem; }
.lightbox-arrow { top: 50%; width: 48px; height: 62px; transform: translateY(-50%); }
.lightbox-prev { left: 12px; }
.lightbox-next { right: 12px; }

.has-motion [data-reveal] { opacity: 0; transform: translateY(18px); }
.has-motion [data-reveal].is-visible { opacity: 1; transform: none; }
.proof-card[data-reveal] { transition: opacity .55s ease, transform .55s cubic-bezier(.2,.75,.2,1), background .35s ease, border-color .35s ease, box-shadow .35s ease; }

.sea-break { position: relative; min-height: 780px; overflow: hidden; color: var(--salt); background: var(--ocean-deep); }
.sea-break-image, .sea-break-image::after, .sea-break-image img { position: absolute; inset: 0; width: 100%; height: 100%; }
.sea-break-image img { object-fit: cover; }
.sea-break-image::after { content: ""; background: linear-gradient(90deg, rgba(4,29,39,.86), rgba(4,29,39,.22)), linear-gradient(0deg, rgba(4,29,39,.5), transparent 50%); }
.sea-break-content { position: relative; z-index: 2; display: flex; min-height: 780px; align-items: flex-start; justify-content: center; flex-direction: column; }
.sea-break blockquote { margin: 0; font-family: var(--display); font-size: clamp(3.1rem, 7.2vw, 7.8rem); font-weight: 300; letter-spacing: -.05em; line-height: .94; }
.sea-break-content > p:last-child { margin: 36px 0 0; color: rgba(255,255,255,.74); font-size: .76rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }

.destinations { background-color: var(--salt); background-image: var(--paper-grain); background-position: center; background-repeat: repeat; background-size: 13px 17px, 19px 23px, 100% 100%; }
.destination-controls { display: flex; align-items: center; justify-content: space-between; margin: -48px 0 22px; }
.destination-controls p { margin: 0; color: var(--muted); font-family: var(--technical); font-size: .7rem; letter-spacing: .12em; }
.destination-current { color: var(--ocean); font-size: 1.08rem; font-weight: 700; }
.destination-controls > div { display: flex; gap: 8px; }
.destination-arrow { display: grid; width: 50px; height: 50px; place-items: center; color: var(--ocean); border: 1px solid var(--line); background: rgba(255,255,255,.72); box-shadow: 0 9px 22px rgba(15,36,56,.07); cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.destination-arrow:hover, .destination-arrow:focus-visible { color: var(--salt); background: var(--ocean); transform: translateY(-2px); }
.destination-carousel { display: grid; grid-auto-columns: min(55vw, 520px); grid-auto-flow: column; gap: 18px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.destination-carousel::-webkit-scrollbar { display: none; }
.destination-card { position: relative; height: 360px; min-height: 0; margin: 0; overflow: hidden; border: 1px solid rgba(28,58,83,.12); background: var(--ocean); box-shadow: 0 20px 48px rgba(15,36,56,.18); scroll-snap-align: start; transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease; }
.destination-card img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1), filter .35s ease; }
.destination-card::after { position: absolute; inset: auto 0 0; height: 48%; content: ""; background: linear-gradient(transparent, rgba(4,29,39,.88)); }
.destination-card:hover { border-color: rgba(24,119,132,.42); box-shadow: 0 34px 78px rgba(15,36,56,.28); transform: translateY(-5px); }
.destination-card:hover img { filter: saturate(1.06); transform: scale(1.035); }
.destination-card figcaption { position: absolute; z-index: 2; right: 28px; bottom: 26px; left: 28px; display: grid; align-items: end; grid-template-columns: 42px 1fr auto; gap: 13px; color: var(--salt); }
.destination-card figcaption span { color: var(--teal-light); font-family: var(--technical); }
.destination-card figcaption strong { font-family: var(--display); font-size: clamp(1.5rem,3vw,2.4rem); font-weight: 300; }
.destination-card figcaption small { color: rgba(255,255,255,.72); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.destination-footer { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 24px; }
.destination-hint { margin: 0; color: var(--muted); font-family: var(--technical); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.destination-editorial { display: grid; grid-template-columns: 1.08fr .92fr; gap: 22px; }
.destination-editorial figure { position: relative; margin: 0; overflow: hidden; border: 1px solid rgba(28,58,83,.12); background: var(--ocean); box-shadow: 0 18px 45px rgba(15,36,56,.16); transition: box-shadow .35s ease, transform .35s ease; }
.destination-editorial figure:hover { box-shadow: 0 28px 62px rgba(15,36,56,.24); transform: translateY(-4px); }
.destination-editorial img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s ease; }
.destination-editorial figure:hover img { transform: scale(1.025); }
.destination-editorial figure::after { position: absolute; inset: auto 0 0; height: 42%; content: ""; background: linear-gradient(transparent, rgba(4,29,39,.78)); }
.destination-main { min-height: 710px; }
.destination-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 22px; }
.destination-stack figure { min-height: 344px; }
.destination-wide { min-height: 420px; grid-column: 1 / 3; }
.destination-editorial figcaption { position: absolute; z-index: 2; right: 26px; bottom: 24px; left: 26px; display: grid; align-items: end; grid-template-columns: 40px 1fr auto; gap: 12px; color: var(--salt); }
.destination-editorial figcaption span { color: var(--teal-light); font-family: var(--technical); }
.destination-editorial figcaption strong { font-family: var(--display); font-size: 1.4rem; font-weight: 300; }
.destination-editorial figcaption small { color: rgba(255,255,255,.72); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }

.trust { color: var(--salt); background-color: var(--ocean); background-image: var(--nautical-grid); background-position: center; background-repeat: repeat; background-size: 42px 42px, 42px 42px, 100% 100%; }
.trust-layout { display: grid; align-items: center; grid-template-columns: .85fr 1.15fr; gap: clamp(55px, 8vw, 110px); }
.trust-photo { position: relative; min-height: 720px; }
.trust-photo img { width: 100%; height: 720px; object-fit: cover; }
.trust-photo span { position: absolute; right: -1px; bottom: -1px; padding: 14px 20px; color: var(--ocean-deep); background: var(--teal); font-family: var(--technical); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.trust-copy h2 { color: var(--salt); }
.trust-copy > p { max-width: 680px; margin: 27px 0 35px; color: rgba(255,255,255,.7); font-size: 1.04rem; }
.trust-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; border: 0; }
.trust-points article { padding: 23px 18px; border: 1px solid rgba(255,255,255,.14); background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(15,36,56,.08)); box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 14px 32px rgba(15,36,56,.14); transition: transform .3s ease, background .3s ease, border-color .3s ease; }
.trust-points article:hover { border-color: rgba(198,231,229,.42); background: linear-gradient(145deg, rgba(54,175,175,.18), rgba(15,36,56,.08)); transform: translateY(-5px); }
.trust-points article:first-child { padding-left: 18px; }
.trust-points article:last-child { border-right: 1px solid rgba(255,255,255,.14); }
.trust-points strong { color: var(--teal-light); font-family: var(--display); font-size: 1.08rem; font-weight: 300; }
.trust-points p { margin: 6px 0 0; color: rgba(255,255,255,.62); font-size: .78rem; }

.google-proof { background-color: var(--salt); background-image: var(--paper-grain); background-position: center; background-repeat: repeat; background-size: 13px 17px, 19px 23px, 100% 100%; }
.google-proof-heading { display: grid; align-items: end; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: clamp(48px,8vw,110px); margin-bottom: 50px; }
.google-proof-heading h2 { max-width: 710px; color: var(--ocean); }
.google-proof-heading > div > p:last-child { max-width: 620px; margin: 25px 0 0; color: var(--muted); }
.google-rating { position: relative; display: grid; min-height: 150px; align-content: center; grid-template-columns: 38px auto 1fr; column-gap: 14px; padding: 28px 58px 28px 30px; color: var(--ink); border: 1px solid rgba(28,58,83,.14); background: rgba(255,255,255,.82); box-shadow: 0 20px 48px rgba(15,36,56,.12), inset 0 1px 0 white; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.google-rating:hover, .google-rating:focus-visible { border-color: rgba(24,119,132,.38); box-shadow: 0 28px 65px rgba(15,36,56,.18), inset 0 1px 0 white; transform: translateY(-4px); }
.google-mark { width: 38px; height: 38px; align-self: center; grid-row: 1 / 3; }
.google-rating-score { align-self: center; color: var(--ocean); font-family: var(--display); font-size: 2.35rem; font-weight: 500; line-height: 1; }
.google-rating .google-stars { align-self: end; font-size: .94rem; letter-spacing: .08em; }
.google-rating-arrow { position: absolute; top: 24px; right: 25px; color: var(--teal); font-size: 1rem; }
.google-review-grid { display: flex; gap: 22px; overflow-x: auto; padding: 6px 3px 22px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.google-review-grid::-webkit-scrollbar { display: none; }
.google-review { display: flex; min-height: 340px; flex: 0 0 calc((100% - 22px) / 2); justify-content: space-between; flex-direction: column; padding: clamp(30px,4vw,48px); border: 1px solid rgba(28,58,83,.14); background: rgba(255,255,255,.84); box-shadow: 0 22px 52px rgba(15,36,56,.13), 0 5px 14px rgba(15,36,56,.06), inset 0 1px 0 white; scroll-snap-align: start; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.google-review:hover { border-color: rgba(24,119,132,.35); box-shadow: 0 30px 70px rgba(15,36,56,.18), 0 8px 18px rgba(24,119,132,.08), inset 0 1px 0 white; transform: translateY(-5px); }
.google-review-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; color: var(--muted); font-family: var(--technical); font-size: .64rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.google-stars { color: #f9ab00; letter-spacing: .12em; }
.google-review blockquote { max-width: 660px; margin: 34px 0 42px; color: var(--ocean); font-family: var(--display); font-size: clamp(1.35rem,2vw,1.85rem); font-weight: 300; line-height: 1.45; }
.google-review footer { display: flex; align-items: center; gap: 15px; }
.review-avatar { display: grid; width: 46px; height: 46px; flex: 0 0 46px; place-items: center; color: var(--salt); background: linear-gradient(145deg,var(--ocean),var(--teal)); border-radius: 50%; font-family: var(--display); font-size: 1.05rem; }
.google-review footer > span:last-child { display: grid; gap: 2px; }
.google-review footer strong { color: var(--ink); font-size: .85rem; }
.google-review footer small { color: var(--muted); font-size: .68rem; }
.google-proof-link { margin-top: 32px; }

.about { background-color: var(--sand); background-image: var(--paper-grain); background-position: center; background-repeat: repeat; background-size: 13px 17px, 19px 23px, 100% 100%; }
.about-layout { display: grid; align-items: center; grid-template-columns: 1fr .9fr; gap: clamp(60px, 9vw, 130px); }
.about-copy h2 { color: var(--ocean); }
.about-copy > p { max-width: 650px; color: var(--muted); font-size: 1.04rem; }
.about-copy .journal-link { margin-top: 18px; }
.about-photo { position: relative; }
.about-photo img { width: 100%; height: 690px; object-fit: cover; }
.about-photo > p { position: absolute; right: 0; bottom: 35px; width: 230px; margin: 0; padding: 23px; color: var(--salt); background: var(--ocean); font-family: var(--display); font-size: .98rem; font-weight: 300; line-height: 1.35; }
.about-photo > p span { display: block; margin-bottom: 5px; color: var(--teal-light); font-family: var(--technical); font-size: 1.8rem; }

.faq { background-color: var(--salt); background-image: var(--paper-grain); background-position: center; background-repeat: repeat; background-size: 13px 17px, 19px 23px, 100% 100%; }
.faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(50px, 9vw, 120px); }
.faq-layout h2 { color: var(--ocean); }
.faq-layout header > p:last-child { max-width: 360px; color: var(--muted); }
.faq-list { border-top: 0; }
.faq-item { margin-bottom: 12px; padding-inline: 22px; border: 1px solid rgba(28,58,83,.13); background: rgba(255,255,255,.78); box-shadow: 0 12px 30px rgba(15,36,56,.08), inset 0 1px 0 white; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.faq-item:hover, .faq-item.is-open { border-color: rgba(24,119,132,.32); box-shadow: 0 20px 45px rgba(15,36,56,.13), inset 0 1px 0 white; transform: translateY(-2px); }
.faq-question { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 25px; padding: 25px 0; color: var(--ocean); border: 0; background: transparent; font-weight: 800; text-align: left; cursor: pointer; }
.faq-question span:last-child { color: var(--teal); font-family: var(--display); font-size: 1.4rem; }
.faq-answer { display: none; max-width: 730px; padding: 0 45px 24px 0; color: var(--muted); }
.faq-answer p { margin: 0; }
.faq-item.is-open .faq-answer { display: block; }

.final-cta { position: relative; min-height: 720px; overflow: hidden; color: var(--salt); background: var(--ocean-deep); }
.final-cta-media, .final-cta-media::after, .final-cta-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.final-cta-media img { object-fit: cover; }
.final-cta-media::after { content: ""; background: linear-gradient(90deg, rgba(4,29,39,.9), rgba(4,29,39,.24)), linear-gradient(0deg, rgba(4,29,39,.45), transparent); }
.final-cta-content { position: relative; z-index: 2; display: flex; min-height: 720px; align-items: flex-start; justify-content: center; flex-direction: column; }
.final-cta h2 { max-width: 800px; color: var(--salt); }
.final-cta-content > p:not(.eyebrow) { max-width: 610px; margin: 24px 0 31px; color: rgba(255,255,255,.76); }

.site-footer {
  position: relative;
  padding: 40px 0 20px;
  overflow: hidden;
  color: rgba(255,255,255,.7);
  background-color: var(--ocean-deep);
  background-image: var(--flow-waves-dark);
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: 1200px 420px;
  border-top: 1px solid rgba(255,255,255,.1);
  isolation: isolate;
}
.site-footer::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(180deg, rgba(15,36,56,.98), rgba(15,36,56,.77) 55%, rgba(15,36,56,.9)); }
.footer-signature { display: grid; min-height: 160px; align-items: center; grid-template-columns: minmax(430px,.95fr) minmax(460px,1.05fr); gap: clamp(45px,7vw,105px); padding-bottom: 26px; border-bottom: 1px solid rgba(198,231,229,.18); }
.footer-lockup { display: grid; align-items: center; grid-template-columns: 255px 1px auto; gap: 24px; }
.footer-lockup-mark { display: block; width: 255px; height: 142px; overflow: hidden; }
.footer-brand { display: block; width: 255px; max-width: none; height: auto; background: transparent; transform: translateY(-3px); }
.footer-lockup-divider { width: 1px; height: 82px; background: var(--teal); }
.footer-lockup strong { color: var(--salt); font-family: var(--display); font-size: 1.45rem; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; }
.footer-contact { justify-self: end; max-width: 620px; font-family: var(--technical); text-align: right; text-transform: uppercase; }
.footer-domain { color: var(--teal); font-size: .82rem; font-weight: 700; letter-spacing: .2em; }
.footer-contact > p { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; margin: 8px 0 0; color: rgba(255,255,255,.56); font-size: .64rem; letter-spacing: .13em; }
.footer-contact > p a:hover { color: var(--teal-light); }
.footer-contact .footer-location { margin-top: 5px; letter-spacing: .18em; }
.footer-socials { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px 18px; margin-top: 4px; }
.footer-socials a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; padding: 6px 0 6px 9px; color: rgba(255,255,255,.64); font-family: var(--technical); font-size: .59rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; transition: color .2s ease, transform .2s ease; }
.footer-socials a:hover, .footer-socials a:focus-visible { color: var(--teal-light); transform: translateY(-2px); }
.footer-socials svg { width: 18px; height: 18px; flex: 0 0 18px; overflow: visible; fill: currentColor; }
.footer-socials a:first-child svg { fill: none; stroke: currentColor; stroke-width: 1.9; }
.footer-socials a:first-child .social-icon-dot { fill: currentColor; stroke: none; }
.footer-utility { display: grid; min-height: 124px; align-items: center; grid-template-columns: minmax(0,1fr) 122px; gap: 35px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.11); }
.footer-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 10px clamp(18px,2.4vw,35px); }
.footer-nav a { position: relative; color: rgba(255,255,255,.7); font-family: var(--technical); font-size: .61rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.footer-nav a::after { position: absolute; right: 0; bottom: -5px; left: 0; height: 1px; content: ""; background: var(--teal); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.footer-nav a:hover { color: var(--teal-light); }
.footer-nav a:hover::after, .footer-nav a:focus-visible::after { transform: scaleX(1); }
.footer-credentials { display: grid; justify-items: end; }
.cadastur-seal {
  position: relative;
  display: grid;
  width: 112px;
  height: 112px;
  place-items: center;
  align-content: center;
  gap: 3px;
  padding: 17px 12px 13px;
  text-align: center;
  border: 1px solid rgba(198,231,229,.46);
  background:
    radial-gradient(circle at 38% 27%, rgba(54,175,175,.28), transparent 30%),
    radial-gradient(circle, rgba(24,119,132,.48), rgba(15,36,56,.96) 68%);
  border-radius: 50%;
  box-shadow: 0 14px 32px rgba(0,0,0,.26), inset 0 0 0 4px rgba(198,231,229,.06), inset 0 0 22px rgba(54,175,175,.12);
  transition: transform .35s ease, box-shadow .35s ease;
}
.cadastur-seal::before {
  position: absolute;
  inset: 5px;
  content: "";
  border: 1px dashed rgba(198,231,229,.38);
  border-radius: 50%;
}
.cadastur-seal::after {
  position: absolute;
  inset: -5px;
  content: "";
  border: 1px solid rgba(54,175,175,.2);
  border-radius: 50%;
}
.cadastur-seal:hover { box-shadow: 0 20px 42px rgba(0,0,0,.34), inset 0 0 0 4px rgba(198,231,229,.08), inset 0 0 28px rgba(54,175,175,.18); transform: translateY(-3px) rotate(-1deg); }
.cadastur-seal-label { position: relative; z-index: 2; color: var(--teal-light); font-family: var(--technical); font-size: .4rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.cadastur-seal img { position: relative; z-index: 2; width: 72px; margin: 0; padding: 3px; border: 1px solid rgba(255,255,255,.7); background: white; box-shadow: 0 5px 12px rgba(0,0,0,.18); }
.cadastur-seal strong { position: relative; z-index: 2; color: var(--salt); font-family: var(--technical); font-size: .4rem; font-weight: 700; letter-spacing: .08em; line-height: 1.05; text-transform: uppercase; }
.cadastur-seal small { position: relative; z-index: 2; color: rgba(255,255,255,.62); font-size: .4rem; letter-spacing: 0; }
.footer-bottom { display: grid; min-height: 62px; align-items: center; grid-template-columns: 1fr auto 1fr; gap: 25px; padding-top: 14px; font-size: .62rem; letter-spacing: .06em; }
.footer-bottom > span:last-child { text-align: right; }
.developer-seal { position: relative; display: flex; min-width: 154px; min-height: 50px; align-items: center; justify-content: center; gap: 10px; padding: 6px 24px 6px 9px; border: 1px solid rgba(202,164,112,.42); color: rgba(255,255,255,.78); background: #203f49; transition: border-color .25s ease, background .25s ease, transform .25s ease; }
.developer-seal small { color: rgba(255,255,255,.58); font-family: var(--technical); font-size: .4rem; letter-spacing: .12em; line-height: 1.25; text-transform: uppercase; }
.developer-seal img { width: 25px; height: 35px; object-fit: cover; }
.developer-seal span { position: absolute; right: 8px; bottom: 5px; color: #caa470; font-size: .62rem; }
.developer-seal:hover, .developer-seal:focus-visible { border-color: #caa470; background: rgba(202,164,112,.08); transform: translateY(-2px); }

.whatsapp-float {
  position: fixed;
  z-index: 90;
  right: 20px;
  bottom: 20px;
  display: inline-flex;
  width: 58px;
  height: 58px;
  align-items: center;
  justify-content: center;
  color: var(--salt);
  overflow: visible;
  background: linear-gradient(145deg, #25d366, #128c54);
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 50%;
  box-shadow: 0 18px 40px rgba(4,29,39,.34), 0 7px 18px rgba(18,140,84,.34), inset 0 1px 0 rgba(255,255,255,.42);
  isolation: isolate;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
.whatsapp-float::before { position: absolute; z-index: -1; inset: -9px; content: ""; border: 1px solid rgba(37,211,102,.48); border-radius: 50%; animation: whatsapp-breathe 2.8s ease-out infinite; }
.whatsapp-float::after { position: absolute; top: 7px; left: 11px; width: 18px; height: 9px; content: ""; background: linear-gradient(110deg, rgba(255,255,255,.46), transparent); border-radius: 50%; transform: rotate(-24deg); }
.whatsapp-float svg { position: relative; z-index: 2; width: 29px; height: 29px; filter: drop-shadow(0 2px 3px rgba(0,0,0,.16)); }
.whatsapp-float span { position: absolute; right: 70px; padding: 7px 10px; color: var(--salt); background: var(--ocean-deep); border-radius: 3px; font-size: .68rem; font-weight: 800; opacity: 0; transform: translateX(8px); transition: opacity .2s ease, transform .2s ease; }
.whatsapp-float:hover { box-shadow: 0 24px 52px rgba(4,29,39,.4), 0 9px 25px rgba(18,140,84,.42), inset 0 1px 0 rgba(255,255,255,.5); transform: translateY(-5px) scale(1.045); }
.whatsapp-float:hover span { opacity: 1; transform: none; }
body:has(dialog[open]) .whatsapp-float { opacity: 0; pointer-events: none; transform: translateY(10px); }
@keyframes whatsapp-breathe { 0%, 35% { opacity: .72; transform: scale(.88); } 80%, 100% { opacity: 0; transform: scale(1.28); } }

.booking-dialog {
  width: min(94vw, 820px);
  max-height: 92dvh;
  padding: clamp(30px,5vw,56px);
  overflow-y: auto;
  color: var(--ink);
  border: 1px solid rgba(28,58,83,.18);
  background-color: var(--sand);
  background-image: var(--paper-grain);
  background-size: 13px 17px, 19px 23px, 100% 100%;
  box-shadow: 0 38px 100px rgba(4,29,39,.38), inset 0 1px 0 white;
}
.booking-dialog::backdrop { background: rgba(4,18,28,.84); backdrop-filter: blur(9px); }
.booking-close { position: absolute; top: 14px; right: 14px; display: grid; width: 44px; height: 44px; place-items: center; color: var(--ocean); border: 1px solid var(--line); background: rgba(255,255,255,.72); cursor: pointer; font-size: 1.5rem; }
.booking-heading { max-width: 650px; margin-bottom: 30px; }
.booking-heading h2 { margin: 0; color: var(--ocean); font-family: var(--display); font-size: clamp(2.5rem,6vw,4.8rem); font-weight: 300; letter-spacing: -.05em; line-height: .98; }
.booking-heading > p:last-child { max-width: 610px; margin: 18px 0 0; color: var(--muted); }
.booking-form { display: grid; gap: 20px; }
.booking-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.booking-field { display: grid; gap: 7px; }
.booking-field > span, .booking-options legend { color: var(--flow-blue); font-family: var(--technical); font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.booking-field input, .booking-field select { width: 100%; min-height: 54px; padding: 12px 14px; color: var(--ink); border: 1px solid rgba(28,58,83,.2); border-radius: 0; outline: none; background: rgba(255,255,255,.84); box-shadow: inset 0 1px 0 white; }
.booking-field input:focus, .booking-field select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(54,175,175,.14), inset 0 1px 0 white; }
.booking-options { display: grid; margin: 0; padding: 0; border: 0; grid-template-columns: 1fr 1fr; gap: 10px; }
.booking-options legend { width: 100%; margin-bottom: 8px; }
.booking-options label { position: relative; cursor: pointer; }
.booking-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.booking-options label > span { display: grid; min-height: 70px; align-content: center; padding: 13px 16px; color: var(--muted); border: 1px solid rgba(28,58,83,.16); background: rgba(255,255,255,.72); box-shadow: 0 9px 24px rgba(15,36,56,.07); transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; }
.booking-options label:hover > span { border-color: rgba(24,119,132,.38); transform: translateY(-2px); }
.booking-options input:checked + span { color: var(--flow-blue); border-color: var(--teal); background: rgba(198,231,229,.5); box-shadow: 0 12px 28px rgba(24,119,132,.13), inset 4px 0 0 var(--teal); }
.booking-options input:focus-visible + span { outline: 2px solid var(--teal); outline-offset: 2px; }
.booking-options strong, .booking-options small { display: block; }
.booking-options strong { font-family: var(--display); font-size: .96rem; font-weight: 500; }
.booking-options small { font-size: .72rem; }
.booking-safety { padding: 15px 17px; color: var(--muted); border: 1px solid rgba(24,119,132,.18); background: linear-gradient(135deg, rgba(198,231,229,.56), rgba(255,255,255,.82)); box-shadow: inset 4px 0 0 var(--teal); }
.booking-safety strong { display: block; color: var(--ocean); font-family: var(--technical); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }
.booking-safety p { margin: 7px 0 0; font-size: .78rem; line-height: 1.55; }
.booking-acceptance { display: grid; grid-template-columns: 20px 1fr; gap: 11px; align-items: start; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.booking-acceptance input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--teal); }
.booking-acceptance a { color: var(--ocean); font-weight: 800; text-decoration-color: rgba(24,119,132,.35); }
.booking-submit { width: 100%; margin-top: 4px; gap: 12px; cursor: pointer; }
.booking-note { margin: -7px 0 0; color: var(--muted); font-size: .72rem; text-align: center; }

.page-content { min-height: 70vh; padding: 155px 0 100px; }
.page-content h1 { color: var(--flow-blue); font-family: var(--display); font-size: clamp(2.8rem, 6vw, 5.5rem); font-weight: 300; letter-spacing: -.05em; }

.inner-hero { position: relative; display: grid; min-height: 590px; align-items: end; overflow: hidden; color: var(--salt); background: var(--ocean-deep); }
.inner-hero-media, .inner-hero-media::after, .inner-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.inner-hero-media img { object-fit: cover; }
.inner-hero-media::after { content: ""; background: linear-gradient(90deg, rgba(4,29,39,.9), rgba(4,29,39,.28)), linear-gradient(0deg, rgba(4,29,39,.72), transparent 60%); }
.inner-hero-content { position: relative; z-index: 2; max-width: 910px; padding-top: 170px; padding-bottom: 78px; }
.inner-hero h1 { margin: 0; color: var(--salt); font-family: var(--display); font-size: clamp(3.4rem, 7vw, 7.2rem); font-weight: 300; letter-spacing: -.055em; line-height: .94; text-wrap: balance; }
.inner-hero-content > p:last-child { max-width: 660px; margin: 25px 0 0; color: rgba(255,255,255,.76); font-size: 1.08rem; }
.breadcrumb { margin-bottom: 26px; color: var(--teal-light); font-family: var(--technical); font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.breadcrumb a { color: rgba(255,255,255,.7); }
.breadcrumb a { display: inline-flex; min-height: 44px; align-items: center; }
.breadcrumb span { margin-inline: 9px; }
.inner-intro { display: grid; grid-template-columns: 1fr .7fr; gap: 80px; margin-bottom: 65px; }
.inner-intro h2 { margin: 0; color: var(--ocean); font-family: var(--display); font-size: clamp(2.6rem, 5vw, 5.1rem); font-weight: 300; letter-spacing: -.045em; line-height: 1; }
.inner-intro > p { margin: 0; padding-top: 22px; color: var(--muted); border-top: 1px solid var(--line); }
.route-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.route-page-card { position: relative; display: grid; min-height: 690px; align-content: end; overflow: hidden; color: var(--salt); border: 1px solid rgba(28,58,83,.13); background: var(--ocean); box-shadow: var(--card-shadow); transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease; }
.route-page-card > img, .route-page-card::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.route-page-card > img { object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1); }
.route-page-card::after { content: ""; background: linear-gradient(0deg, rgba(4,29,39,.94), rgba(4,29,39,.05) 72%); }
.route-page-card:hover { border-color: rgba(24,119,132,.45); box-shadow: var(--card-shadow-hover); transform: translateY(-7px); }
.route-page-card:hover > img { transform: scale(1.045); }
.route-page-copy { position: relative; z-index: 2; padding: clamp(25px,4vw,48px); }
.route-page-copy .route-meta { color: var(--teal-light); }
.route-page-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(2.3rem,4vw,4.2rem); font-weight: 300; letter-spacing: -.045em; line-height: 1; }
.route-page-copy > p { max-width: 590px; color: rgba(255,255,255,.74); }
.route-page-copy .journal-link { color: var(--salt); border-color: rgba(255,255,255,.6); }
.page-gallery { background-color: var(--salt); background-image: var(--paper-grain); background-size: 13px 17px, 19px 23px, 100% 100%; }
.page-gallery .gallery-grid { grid-template-rows: 330px 280px 330px; }
.page-gallery .gallery-item-1 { grid-row: 1 / 3; }
.page-gallery .gallery-item-4 { grid-row: 1 / 3; }
.page-gallery .gallery-item-7 { grid-column: 1 / 3; }
.page-gallery .gallery-item-8 { grid-column: 3; }
.faq-page { background-color: var(--salt); background-image: var(--paper-grain); background-size: 13px 17px, 19px 23px, 100% 100%; }
.faq-category { margin: 0 0 58px; }
.faq-category-title { display: flex; align-items: center; gap: 15px; margin: 0 0 18px; color: var(--ocean); font-family: var(--technical); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.faq-category-title::before { width: 35px; height: 1px; content: ""; background: var(--teal); }
.faq-page .faq-list { max-width: 920px; margin-left: auto; }
.policy-page { background-color: var(--sand); background-image: var(--paper-grain); background-size: 13px 17px, 19px 23px, 100% 100%; }
.policy-layout { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: clamp(45px,8vw,110px); }
.policy-aside { position: sticky; top: 125px; align-self: start; padding: 24px; color: var(--salt); background: var(--ocean); }
.policy-aside span { display: block; color: var(--teal-light); font-family: var(--technical); font-size: .61rem; letter-spacing: .14em; text-transform: uppercase; }
.policy-aside strong { display: block; margin: 8px 0 18px; font-family: var(--display); font-size: 1.2rem; font-weight: 300; }
.policy-aside small { display: block; color: rgba(255,255,255,.7); }
.policy-document { max-width: 850px; }
.policy-lead { margin: 0 0 45px; padding: 24px 27px; color: var(--muted); border-left: 3px solid var(--teal); background: white; }
.policy-clause { padding: 30px 0; border-top: 1px solid var(--line); }
.policy-clause h2 { margin: 0 0 16px; color: var(--ocean); font-family: var(--display); font-size: clamp(1.55rem,3vw,2.3rem); font-weight: 400; }
.policy-clause p, .policy-clause li { color: var(--muted); }
.policy-clause ul { margin: 12px 0 0; padding-left: 20px; }
.service-detail, .about-flow-page { background-color: var(--salt); background-image: var(--paper-grain); background-size: 13px 17px, 19px 23px, 100% 100%; }
.service-layout { display: grid; align-items: start; grid-template-columns: minmax(280px, 360px) minmax(0,1fr); gap: clamp(36px,7vw,92px); }
.quick-card { position: sticky; top: 122px; padding: clamp(24px,3vw,34px); border: 1px solid rgba(28,58,83,.13); background: rgba(255,255,255,.82); box-shadow: 0 28px 65px rgba(15,36,56,.14), 0 6px 16px rgba(15,36,56,.06), inset 0 1px 0 white; }
.quick-card .eyebrow::before { display: none; }
.quick-card dl { display: grid; margin: 0 0 26px; }
.quick-card dl > div { display: grid; gap: 6px; padding: 15px 0; border-bottom: 1px solid rgba(28,58,83,.12); }
.quick-card dt { color: var(--flow-blue); font-family: var(--technical); font-size: .63rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.quick-card dd { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.55; }
.service-pending { margin: clamp(34px,5vw,54px) 0; padding: clamp(24px,4vw,36px); border: 1px solid rgba(24,119,132,.18); background: rgba(255,255,255,.78); box-shadow: 0 18px 45px rgba(15,36,56,.1), inset 0 1px 0 white; }
.service-pending .eyebrow::before { display: none; }
.service-pending h2 { max-width: 680px; margin: 0 0 15px; color: var(--ocean); font-family: var(--display); font-size: clamp(1.65rem,3vw,2.45rem); font-weight: 300; letter-spacing: -.035em; line-height: 1.04; }
.service-pending p { color: var(--muted); }
.service-pending ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 22px; margin: 22px 0 0; padding: 0; list-style: none; }
.service-pending li { position: relative; padding-left: 20px; color: var(--muted); font-size: .9rem; line-height: 1.55; }
.service-pending li::before { position: absolute; top: .72em; left: 0; width: 7px; height: 7px; content: ""; background: var(--teal); border-radius: 50%; box-shadow: 0 0 0 4px rgba(54,175,175,.13); }
.service-safety { margin: clamp(36px,5vw,58px) 0; padding: clamp(24px,4vw,38px); color: var(--salt); background: linear-gradient(135deg, rgba(11,49,68,.96), rgba(24,128,139,.94)); box-shadow: 0 24px 55px rgba(15,36,56,.18), inset 0 1px 0 rgba(255,255,255,.15); }
.service-safety .eyebrow { color: var(--teal-light); }
.service-safety .eyebrow::before { background: rgba(255,255,255,.45); }
.service-safety h2 { max-width: 720px; margin: 0 0 17px; color: var(--salt); font-family: var(--display); font-size: clamp(1.7rem,3vw,2.7rem); font-weight: 300; letter-spacing: -.035em; line-height: 1.04; }
.service-safety p:not(.eyebrow) { max-width: 760px; color: rgba(255,255,255,.78); }
.service-article { min-width: 0; }
.service-intro { max-width: 900px; margin-bottom: 46px; }
.service-intro h2 { margin: 0 0 24px; color: var(--ocean); font-family: var(--display); font-size: clamp(2.4rem,5vw,5.2rem); font-weight: 300; letter-spacing: -.045em; line-height: 1; text-wrap: balance; }
.service-intro p { max-width: 790px; color: var(--muted); }
.service-blocks { display: grid; gap: 16px; }
.service-block { padding: clamp(24px,3vw,34px); border: 1px solid rgba(28,58,83,.12); background: rgba(255,255,255,.72); box-shadow: 0 16px 42px rgba(15,36,56,.08), inset 0 1px 0 white; }
.service-block h2 { margin: 0 0 12px; color: var(--flow-blue); font-family: var(--display); font-size: clamp(1.55rem,2.7vw,2.35rem); font-weight: 400; letter-spacing: -.02em; line-height: 1.08; }
.service-block p { margin: 0; color: var(--muted); }
.service-faq { margin-top: 58px; }
.service-faq .faq-list { max-width: none; }
.service-cta { position: relative; display: grid; min-height: 620px; align-items: center; overflow: hidden; color: var(--salt); background: var(--ocean-deep); }
.service-cta-media, .service-cta-media::after, .service-cta-media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.service-cta-media img { object-fit: cover; }
.service-cta-media::after { content: ""; background: linear-gradient(90deg, rgba(4,29,39,.92), rgba(4,29,39,.2)), linear-gradient(0deg, rgba(4,29,39,.55), transparent 58%); }
.service-cta-content { position: relative; z-index: 2; max-width: 820px; }
.service-cta h2 { margin: 0; color: var(--salt); font-family: var(--display); font-size: clamp(3rem,7vw,6.4rem); font-weight: 300; letter-spacing: -.055em; line-height: .96; text-wrap: balance; }
.service-cta p:not(.eyebrow) { max-width: 610px; margin: 24px 0 31px; color: rgba(255,255,255,.76); }
.related-pages { color: var(--salt); background-color: var(--ocean); background-image: var(--nautical-grid); background-size: 40px 40px, 40px 40px, 100% 100%; }
.related-kicker { margin-bottom: 12px; }
.related-heading { max-width: 720px; margin: 0 0 34px; color: var(--salt); font-family: var(--display); font-size: clamp(2rem,4vw,3.4rem); font-weight: 300; letter-spacing: -.045em; line-height: 1; }
.related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(255,255,255,.18); }
.related-grid-routes { grid-template-columns: repeat(5,minmax(0,1fr)); }
.related-card { position: relative; min-height: 190px; padding: 28px; overflow: hidden; border: 1px solid rgba(255,255,255,.08); background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(15,36,56,.14)); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 16px 38px rgba(15,36,56,.15); transition: background .25s ease, transform .3s ease, border-color .3s ease; }
.related-card::after { position: absolute; right: -35px; bottom: -35px; width: 95px; height: 95px; content: ""; border: 1px solid rgba(198,231,229,.14); border-radius: 50%; transition: transform .4s ease, border-color .3s ease; }
.related-card:hover { border-color: rgba(198,231,229,.34); background: linear-gradient(145deg, rgba(54,175,175,.14), rgba(15,36,56,.2)); transform: translateY(-5px); }
.related-card:hover::after { border-color: rgba(198,231,229,.4); transform: scale(1.28); }
.related-card span { color: var(--teal-light); font-family: var(--technical); font-size: .58rem; letter-spacing: .13em; text-transform: uppercase; }
.related-card strong { display: block; margin-top: 28px; font-family: var(--display); font-size: 1.35rem; font-weight: 300; }

@media (max-width: 1020px) {
  .brand { width: 132px; }
  .brand img { width: 110px; }
  .main-nav { gap: 13px; }
  .main-nav > a { font-size: .61rem; letter-spacing: .035em; }
  .nav-cta { padding-inline: 10px; }
  .opening-grid { grid-template-columns: 55px 1fr; }
  .opening-copy { grid-column: 2; }
  .route-entry, .route-entry-reverse { grid-template-columns: 1fr 1fr; gap: 48px; }
  .route-catalog .route-entry { flex-basis: 100%; }
  .route-visual, .route-visual img { min-height: 440px; }
  .trust-layout { grid-template-columns: .8fr 1.2fr; gap: 45px; }
  .trust-photo, .trust-photo img { min-height: 650px; height: 650px; }
  .about-photo > p { right: 12px; }
  .footer-signature { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 30px; }
  .footer-lockup { grid-template-columns: 210px 1px auto; gap: 18px; }
  .footer-lockup-mark { width: 210px; height: 118px; }
  .footer-brand { width: 210px; }
  .footer-lockup strong { font-size: 1.08rem; letter-spacing: .2em; }
  .footer-contact { max-width: 470px; }
}

@media (min-width: 761px) and (max-width: 840px) {
  .route-catalog .route-entry { height: 590px; }
}

@media (max-width: 760px) {
  .container { width: min(calc(100% - 30px), var(--content)); }
  html { scroll-padding-top: 76px; }
  .header-inner { min-height: 86px; }
  .brand { width: 132px; height: 82px; }
  .brand img { width: 110px; }
  .main-nav { display: none; }
  .menu-toggle { display: grid; }
  .main-nav.is-open {
    position: absolute;
    z-index: 99;
    top: 86px;
    right: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: calc(100dvh - 86px);
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
    padding: 28px 24px calc(32px + env(safe-area-inset-bottom));
    overflow-y: auto;
    background: var(--ocean-deep);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 22px 55px rgba(4,18,28,.38);
    overscroll-behavior: contain;
  }
  .main-nav.is-open > a { display: flex; width: 100%; min-height: 52px; align-items: center; padding: 10px 0; color: var(--salt); font-family: var(--display); font-size: 1.35rem; font-weight: 300; text-transform: none; border-bottom: 1px solid rgba(255,255,255,.12); }
  .main-nav.is-open .nav-cta { width: auto; margin-top: 15px; padding: 13px 17px; font-family: var(--sans); font-size: .82rem; background: var(--teal); color: var(--ocean-deep); }
  .hero { min-width: 0; min-height: 100svh; }
  .hero-layout, .hero-proof { min-width: 0; overflow-x: hidden; }
  .hero-video-desktop { display: none; }
  .hero-video-mobile { display: block; object-position: center center; }
  .hero-media::before { background: linear-gradient(90deg, rgba(4,29,39,.72), rgba(4,29,39,.18)); }
  .hero-media::after { background: linear-gradient(0deg, rgba(4,29,39,.92), rgba(4,29,39,.06) 76%); }
  .hero-layout { min-height: calc(100svh - 89px); grid-template-columns: 1fr; align-items: end; padding-top: 115px; padding-bottom: 34px; }
  .hero-content, .inner-hero-content { min-width: 0; max-width: 100%; }
  .hero h1, .inner-hero h1 { max-width: 100%; overflow-wrap: anywhere; }
  .hero h1 { max-width: 560px; font-size: clamp(2.75rem, 11.4vw, 4.15rem); line-height: .98; }
  .hero-copy { margin: 20px 0 25px; font-size: .98rem; }
  .button-row { align-items: stretch; flex-direction: column; gap: 15px; }
  .button-row .button { width: 100%; }
  .hero-text-link { align-self: center; }
  .hero-coordinate { display: none; }
  .hero-proof { background: var(--ocean-deep); backdrop-filter: none; }
  .proof-grid { width: 100%; max-width: 100%; min-width: 0; min-height: 0; margin-inline: 0; grid-template-columns: none; grid-auto-columns: minmax(235px, 78%); grid-auto-flow: column; gap: 10px; padding: 12px 15px 15px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .proof-grid::-webkit-scrollbar { display: none; }
  .proof-card { min-height: 92px; padding: 16px 18px; scroll-snap-align: center; }
  .proof-grid strong { font-size: .83rem; line-height: 1.15; }
  .proof-kicker { font-size: .5rem; }
  .editorial-section { padding: 82px 0; }
  .opening-grid { grid-template-columns: 1fr; gap: 28px; }
  .opening-index { display: none; }
  .opening-copy { grid-column: auto; padding-top: 25px; }
  .opening h2, .section-intro h2, .trust-copy h2, .about-copy h2, .faq-layout h2, .final-cta h2 { font-size: clamp(2.65rem, 12vw, 4rem); }
  .section-intro { grid-template-columns: 1fr; gap: 30px; margin-bottom: 62px; }
  .catalog-toolbar { margin-top: -38px; }
  .catalog-stage { padding-inline: 0; }
  .route-journal { gap: 13px; }
  .route-catalog::after { flex-basis: 15px; }
  .catalog-side-arrow { top: 164px; width: 46px; height: 46px; }
  .catalog-side-prev { left: 4px; }
  .catalog-side-next { right: 4px; }
  .route-catalog .route-entry { flex-basis: 100%; height: 790px; align-content: start; align-items: start; padding: 14px; }
  .route-entry, .route-entry-reverse { grid-template-columns: 1fr; gap: 22px; }
  .route-entry-reverse .route-visual, .route-entry-reverse .route-copy { grid-row: auto; grid-column: auto; }
  .route-visual, .route-visual img { min-height: 300px; }
  .route-marker { width: 58px; height: 58px; }
  .route-copy::before { display: none; }
  .route-copy h3 { font-size: clamp(2.35rem, 11vw, 3.45rem); }
  .route-copy > p { margin-block: 15px; font-size: .9rem; }
  .route-details { margin-block: 18px; }
  .route-details li { grid-template-columns: 82px 1fr; gap: 14px; }
  .sea-break, .sea-break-content { min-height: 630px; }
  .sea-break-image img { object-position: 57% center; }
  .sea-break blockquote { font-size: clamp(3.2rem, 15vw, 5rem); }
  .destination-editorial { grid-template-columns: 1fr; gap: 15px; }
  .destination-main { min-height: 580px; }
  .destination-stack { gap: 15px; }
  .destination-stack figure { min-height: 280px; }
  .destination-wide { min-height: 310px; grid-column: auto; }
  .destination-editorial figcaption { grid-template-columns: 32px 1fr; }
  .destination-editorial figcaption small { display: none; }
  .destination-controls { margin-top: -37px; }
  .destination-carousel { width: 100%; grid-auto-columns: 82%; gap: 12px; }
  .destination-card { height: 300px; }
  .destination-card figcaption { right: 19px; bottom: 18px; left: 19px; grid-template-columns: 30px 1fr; }
  .destination-card figcaption small { display: none; }
  .destination-footer { align-items: flex-start; flex-direction: column; gap: 18px; }
  .gallery-grid { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .gallery-grid::-webkit-scrollbar { display: none; }
  .gallery-item, .gallery-item-1, .gallery-item-4 { flex: 0 0 82vw; height: 480px; grid-area: auto; scroll-snap-align: center; }
  .gallery-lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; border: 0; }
  .trust-layout { grid-template-columns: 1fr; gap: 55px; }
  .trust-photo, .trust-photo img { min-height: 520px; height: 520px; }
  .trust-points { grid-template-columns: 1fr; }
  .trust-points article, .trust-points article:first-child { padding: 18px; border: 1px solid rgba(255,255,255,.14); }
  .trust-points article:last-child { border: 1px solid rgba(255,255,255,.14); }
  .google-proof-heading { grid-template-columns: 1fr; gap: 28px; margin-bottom: 34px; }
  .google-rating { min-height: 142px; }
  .google-review-grid { gap: 15px; padding-bottom: 18px; }
  .google-review { flex-basis: 86%; }
  .google-review { min-height: 0; }
  .about-layout { grid-template-columns: 1fr; gap: 58px; }
  .about-photo img { height: 570px; }
  .about-photo > p { right: 12px; bottom: 12px; }
  .faq-layout { grid-template-columns: 1fr; gap: 45px; }
  .final-cta, .final-cta-content { min-height: 650px; }
  .final-cta-media img { object-position: 44% center; }
  .site-footer { padding-top: 44px; background-size: 900px 315px; }
  .footer-signature { min-height: 0; grid-template-columns: 1fr; gap: 28px; padding-bottom: 28px; }
  .footer-lockup { grid-template-columns: 190px 1px auto; gap: 15px; }
  .footer-lockup-mark { width: 190px; height: 106px; }
  .footer-brand { width: 190px; }
  .footer-lockup-divider { height: 64px; }
  .footer-lockup strong { font-size: .92rem; letter-spacing: .18em; }
  .footer-contact { width: 100%; max-width: none; justify-self: stretch; text-align: left; }
  .footer-contact > p, .footer-socials { justify-content: flex-start; }
  .footer-domain { font-size: .76rem; }
  .footer-socials { gap: 4px 13px; }
  .footer-utility { grid-template-columns: minmax(0,1fr) 108px; gap: 18px; }
  .footer-nav { align-content: center; gap: 10px 18px; }
  .footer-credentials { justify-items: end; }
  .cadastur-seal { width: 104px; height: 104px; }
  .footer-bottom { align-items: start; grid-template-columns: 1fr; gap: 12px; }
  .footer-bottom > span:last-child { text-align: left; }
  .developer-seal { order: 3; margin-top: 4px; }
  .whatsapp-float { right: 13px; bottom: max(16px, env(safe-area-inset-bottom)); width: 52px; height: 52px; }
  .whatsapp-float span { display: none; }
  .booking-dialog { inset: 0; width: 100%; height: 100dvh; max-width: 100%; max-height: none; margin: 0; padding: 58px 16px 24px; border: 0; }
  .booking-heading { margin-bottom: 24px; }
  .booking-row, .booking-options { grid-template-columns: 1fr; }
  .booking-options { gap: 8px; }
  .booking-options label > span { min-height: 62px; }
  .booking-form { gap: 15px; }
  .booking-submit { position: sticky; z-index: 3; bottom: 0; box-shadow: 0 -10px 24px rgba(244,249,248,.94), 0 14px 32px rgba(15,36,56,.18); }
  .inner-hero { min-height: 530px; }
  .inner-hero-content { padding-top: 145px; padding-bottom: 58px; }
  .inner-hero h1 { font-size: clamp(3rem,15vw,4.6rem); }
  .service-hero h1 { font-size: clamp(2.75rem, 12vw, 3.85rem); overflow-wrap: normal; }
  .inner-intro { grid-template-columns: 1fr; gap: 28px; margin-bottom: 45px; }
  .route-page-grid { grid-template-columns: 1fr; }
  .route-page-card { min-height: 580px; }
  .page-gallery .gallery-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: none; overflow: visible; }
  .page-gallery .gallery-item, .page-gallery .gallery-item-1, .page-gallery .gallery-item-4, .page-gallery .gallery-item-7, .page-gallery .gallery-item-8 { width: 100%; height: 420px; grid-area: auto; }
  .faq-page .faq-list { margin-left: 0; }
  .policy-layout { grid-template-columns: 1fr; }
  .policy-aside { position: static; }
  .service-layout { grid-template-columns: 1fr; }
  .quick-card { position: static; }
  .service-pending ul { grid-template-columns: 1fr; }
  .service-intro h2 { font-size: clamp(2.5rem, 12vw, 4rem); }
  .service-cta { min-height: 610px; }
  .service-cta h2 { font-size: clamp(2.7rem, 13vw, 4.4rem); }
  .related-grid { grid-template-columns: 1fr; }
  .site-footer { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}

@media (max-width: 480px) {
  .route-catalog .route-entry { height: 850px; }
  .service-hero h1 { font-size: clamp(2.35rem, 11.5vw, 3.2rem); }
  .footer-lockup { grid-template-columns: minmax(0,170px) 1px auto; gap: 12px; }
  .footer-lockup-mark { width: 170px; height: 95px; }
  .footer-brand { width: 170px; }
  .footer-lockup strong { font-size: .78rem; }
  .footer-contact > p { align-items: flex-start; flex-direction: column; gap: 2px; }
  .footer-contact > p > span { display: none; }
  .footer-socials a { padding-left: 0; }
  .footer-socials a:first-child { width: 100%; }
  .footer-utility { grid-template-columns: 1fr; }
  .footer-nav { justify-content: center; }
  .footer-credentials { justify-items: center; }
}

@media (max-width: 370px) {
  .hero h1 { font-size: 2.35rem; }
  .inner-hero h1 { font-size: 2.65rem; }
  .hero-copy { font-size: .91rem; }
  .button { min-height: 52px; padding-inline: 15px; font-size: .78rem; }
  .proof-grid strong { font-size: .74rem; }
  .route-catalog .route-entry { height: 900px; }
  .route-visual, .route-visual img { min-height: 280px; }
  .catalog-side-arrow { top: 154px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
