/* V3 / Claro, preciso, próximo.
   Azul e cinza derivados do logo B2B existente; dourado só nos microacentos de lazer.
   Independente de v2.css. site.css permanece como base funcional. */
:root {
  --ink: #193b4c;
  --blue: #194b65;
  --blue-dark: #123b51;
  --navy: #193b4c;
  --muted: #58676f;
  --paper: #f7f8f8;
  --sky: #eef2f4;
  --line: #dce2e5;
  --gold: #927343;
  --radius: 4px;
  --max: 1200px;
}
body { font-family: Arial, Helvetica, sans-serif; background: #fff; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.wrap > *, .split > *, .grid > * { min-width: 0; }
h1, h2, h3 { font-weight: 500; }
h1 { font-size: clamp(2.7rem, 5.2vw, 4.8rem); letter-spacing: -.055em; line-height: 1.06; }
h2 { font-size: clamp(2rem, 3.5vw, 3.3rem); line-height: 1.12; }
h3 { line-height: 1.25; }
.lead { font-size: 1.08rem; line-height: 1.8; }
.eyebrow { color: var(--blue); font-size: .65rem; letter-spacing: .16em; }
.eyebrow:before { height: 1px; width: 28px; }
.preview-banner { color: var(--muted); background: var(--paper); font-size: .61rem; font-weight: 500; padding: 8px 16px; }
.header-row { min-height: 98px; }
.site-header { background: #fff; }
.nav { gap: 26px; }
.nav a { font-size: .78rem; }
.nav .button, .nav .button[aria-current=page] { color: #fff; }
.brand-logo-box { width: 114px; height: 78px; }
.brand-logo-box .brand-logo.b2b { width: 144px; height: 144px; top: -27px; left: -15px; object-fit: contain; }
.brand-b2b-label { font-size: .68rem; font-weight: 500; letter-spacing: .04em; }
.button { font-size: .8rem; font-weight: 600; border-radius: 3px; padding: 15px 20px; gap: 16px; transition: background .2s, border-color .2s; }
.button.secondary { border-color: #a8b7c0; background: #fff; }
.button.secondary:hover { background: var(--paper); }
.text-link { font-size: .84rem; font-weight: 600; text-decoration-thickness: 1px; }
.section { padding-block: 104px; }
.section + .section { border-top: 1px solid var(--line); }
.intro { margin-bottom: 52px; }
.split { gap: 72px; }
.soft { background: var(--paper); }
.sky { background: var(--sky); }
/* Most former dark sections become editorial white space. */
.dark, .route-card.dark { background: var(--paper); color: var(--ink); }
.dark .lead, .dark .muted { color: var(--muted); }
.dark a:not(.button), .dark .eyebrow { color: var(--blue); }
.dark .button.secondary { background: #fff; color: var(--ink); border-color: #a8b7c0; }
.dark .button.secondary:hover { background: var(--sky); }
.home-hero { background: #fff; padding-block: 66px 0; }
.home-stage { display: grid; grid-template-columns: 1.05fr 1fr; align-items: center; gap: 38px 64px; }
.hero-copy { padding-block: 24px; }
.home-hero h1 { font-size: clamp(2.8rem, 4.8vw, 4.6rem); }
.serif-accent { color: #617782; font-style: normal; }
.home-hero .lead { max-width: 49ch; }
.home-hero .actions { gap: 12px; }
.hero-photograph { margin: 0; }
.hero-photograph img { width: 100%; height: auto; aspect-ratio: 1.03; object-fit: cover; object-position: 50% 50%; border-radius: 3px; }
.hero-photograph figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 16px; font-size: .67rem; color: var(--muted); }
.hero-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 20px; font-size: .72rem; color: var(--muted); border-top: 1px solid var(--line); padding-block: 24px; }
.hero-bottom a { text-decoration: none; }
.hero-bottom a span { margin-left: 22px; }
.service-strip { background: var(--paper); border-top: 1px solid var(--line); padding-block: 24px; }
.strip-row { flex-wrap: nowrap; gap: 20px; }
.strip-row > span { display: flex; gap: 10px; align-items: center; font-size: .7rem; font-weight: 500; }
.strip-row span:before { content: none; }
.service-icon { width: 30px; height: 30px; flex: 0 0 30px; color: var(--blue); margin-bottom: 20px; }
.strip-row .service-icon { margin: 0; width: 24px; height: 24px; flex-basis: 24px; }
.pathways .intro { max-width: none; display: grid; grid-template-columns: 1fr 1fr; column-gap: 64px; align-items: end; }
.pathways .intro .eyebrow { grid-column: 1 / -1; }
.pathways .intro h2, .pathways .intro p { margin-bottom: 0; }
.route-card, .route-card.dark { background: #fff; border-radius: 0; padding: 0 0 24px; min-height: 0; border-bottom: 1px solid var(--line); }
.home-route-photo { width: 100%; aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 30px; border-radius: 3px; }
.home-route-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .4s; }
.route-card h3 { font-size: clamp(1.6rem, 2.6vw, 2.25rem); }
.route-card .eyebrow { margin-bottom: 20px; }
.route-card .muted { max-width: 52ch; }
.route-card:nth-child(2) .eyebrow:before { background: var(--gold); }
.home-team .split { grid-template-columns: 1fr 1fr; }
.home-team-photo { margin: 0; }
.home-team-media { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 3px; }
.home-team-media img { width: 100%; height: 100%; object-fit: cover; }
.home-team-photo figcaption, .institution-photo figcaption { color: var(--muted); font-size: .7rem; padding-top: 12px; }
.home-team .line-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.home-team .line-list h3 { font-size: 1.15rem; }
.home-team .line-list p { font-size: .9rem; }
.line-list li { padding: 22px 0; }
.line-list li:before { font-weight: 400; }
.destination-card { border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; transition: border-color .2s; }
.destination-media { display: block; padding: 0; min-height: 0; aspect-ratio: 4 / 3; background: var(--paper); overflow: hidden; border-radius: 3px; }
.destination-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .4s; }
.destination-copy { padding: 28px 0; }
.destination-copy h3 { font-size: 1.8rem; }
.destination-copy p { font-size: .95rem; }
.destination-copy .text-link { text-decoration-color: var(--gold); }
.cta-panel { background: #fff; border: 1px solid var(--line); border-radius: 3px; padding: 60px; }
.page-hero { background: #fff; padding-block: 38px 74px; border-bottom: 1px solid var(--line); }
.page-hero h1 { max-width: 980px; }
.page-hero .lead { margin-bottom: 0; }
.breadcrumbs { color: var(--muted); font-size: .7rem; margin-bottom: 48px; }
.card { border-radius: 3px; box-shadow: none; padding: 32px; }
.card-index, .steps li:before { color: var(--blue); font-weight: 500; }
.quote-line { border-width: 1px; }
.gold-rule { background: var(--blue); width: 40px; height: 1px; }
/* Corporate / preserve all twelve commercial blocks. */
.corporate-hero { background: #fff; padding-block: 78px; border-bottom: 1px solid var(--line); }
.corporate-hero h1 { font-size: clamp(2.6rem, 4.25vw, 4rem); }
.corporate-hero .note { font-size: .75rem; }
.screen-frame { transform: none; border-radius: 6px; padding: 12px; box-shadow: 0 12px 32px #193b4c08; }
.screen-top { padding: 8px 8px 18px; gap: 16px; }
.placeholder { background: #f7f9fa; border: 1px dashed #b8c7cf; border-radius: 3px; }
.placeholder-tag { background: #fff; border-color: var(--line); font-size: .6rem; font-weight: 500; }
.placeholder .placeholder-icon { color: #6b8593; font-weight: 400; }
[data-block="2"] .card { border: 0; border-top: 1px solid var(--line); padding: 28px 0; }
[data-block="3"] .card { padding: 24px; }
[data-block="3"] h3 { font-size: 1.2rem; }
[data-block="4"] { background: #fff; }
.steps { gap: 30px; }
.steps li { border-top-color: #bdcbd2; padding-top: 24px; }
[data-block="5"] .sky.card { padding: 44px; background: var(--paper); }
[data-block="6"] > .wrap { display: grid; grid-template-columns: .85fr 1.2fr; gap: 24px 64px; align-items: start; }
[data-block="6"] .quote-line { grid-column: 2; margin: 0; }
.management-map { padding: 30px; border: 1px solid var(--line); background: #fff; border-radius: 3px; text-align: center; margin-bottom: 32px; }
.map-label { font-size: .65rem; text-transform: uppercase; letter-spacing: .14em; }
.map-center { border: 1px solid #b7c8d1; border-radius: 3px; background: var(--sky); padding: 22px; max-width: 220px; margin: 26px auto; line-height: 1.5; }
.map-center strong { color: var(--blue); }
.map-nodes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.map-nodes span { padding: 12px; border: 1px solid var(--line); font-size: .8rem; }
.management-map small { display: block; margin-top: 24px; color: var(--muted); font-size: .65rem; }
[data-block="8"].dark { background: var(--navy); color: #fff; }
[data-block="8"] .lead, [data-block="8"] .muted { color: #d6e1e7; }
[data-block="8"] .eyebrow, [data-block="8"] .line-list li:before { color: #bacfdc; }
[data-block="8"] .line-list li { border-color: #526d7a; }
[data-block="8"] .button { background: #fff; color: var(--blue); border-color: #fff; margin-bottom: 24px; }
[data-block="8"] .button:hover { background: var(--sky); }
[data-block="8"] :focus-visible { outline-color: #fff; }
.process-heading { display: flex; gap: 50px; border-top: 1px solid var(--line); padding-top: 36px; margin-top: 44px; }
.process-heading p { max-width: 62ch; font-size: .85rem; }
.onboarding { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.onboarding h3 { font-size: 1.08rem; }
.onboarding p { font-size: .84rem; }
.comparison { background: #fff; }
.comparison thead { background: var(--sky); }
details { padding-inline: 0; background: transparent; }
summary { font-weight: 500; }
/* System / browser frames explicitly reserved for approved screenshots. */
.device-frame { padding: 0 12px; border: 1px solid #c7d2d9; border-radius: 6px; background: #fff; box-shadow: 0 8px 24px #193b4c06; }
.device-toolbar { display: flex; justify-content: space-between; gap: 12px; padding: 17px 6px; color: var(--muted); font-size: .62rem; }
.device-footer { padding: 14px 6px; text-align: center; color: var(--muted); font-size: .65rem; }
.device-frame .placeholder { min-height: 350px; }
.screen-section .split { grid-template-columns: .8fr 1.2fr; gap: 70px; }
.screen-section:nth-child(even) { background: #fff; }
.screen-section:nth-child(odd) { background: var(--paper); }
.jump-nav { gap: 8px; }
.jump-nav a { border-radius: 3px; background: #fff; font-size: .75rem; }
.jump-nav a:hover { background: var(--sky); }
/* Institutional pages use editorial divisions instead of boxed card grids. */
.institution-photo { margin: 0; }
.institution-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 3px; }
.page-quem-somos .card { background: transparent; border: 0; border-top: 1px solid var(--line); padding: 32px 0; }
.page-quem-somos [data-placeholder="historia"] { background: transparent; border: 0; border-top: 1px solid var(--line); align-items: flex-start; text-align: left; padding: 28px 0 0; min-height: 0; }
.page-quem-somos [data-placeholder="historia"] .placeholder-icon { display: none; }
.page-quem-somos [data-placeholder="historia"] figcaption { max-width: 70ch; }
.page-diferenciais main > .section .grid { gap: 38px; }
.page-diferenciais .card { border: 0; border-top: 1px solid var(--line); padding: 32px 0; }
.page-destinos main > .section > .wrap > .grid { grid-template-columns: 1fr 1fr; gap: 56px 32px; }
.page-destinos .destination-card:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.65fr 1fr; gap: 50px; align-items: center; border: 0; }
.page-destinos .destination-card:first-child .destination-media { aspect-ratio: 16 / 10; }
.page-destinos .destination-card:first-child h3 { font-size: 2.75rem; }
.page-destinos .page-hero .eyebrow:before, .page-destinos .steps li { border-color: var(--gold); }
.page-destinos .page-hero .eyebrow:before { background: var(--gold); }
[data-contact-form] { background: #fff; min-width: 0; }
input, select, textarea { background: #fff; border: 1px solid #9dacb5; border-radius: 3px; padding: 13px; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); }
.form-grid { gap: 22px; }
.site-footer { background: var(--paper); color: var(--muted); border-top: 1px solid var(--line); padding-block: 60px 24px; }
.site-footer a, .site-footer h2, .site-footer .brand { color: var(--ink); }
.brand-footer { background: transparent; padding: 0; border-radius: 0; }
.footer-bottom { border-color: var(--line); }
.review-label { border-color: #bbc8cf; }
@keyframes enter-v3 { from { opacity: .7; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .in-view { animation: enter-v3 .4s backwards; animation-delay: min(var(--reveal-delay, 0ms), 120ms); }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .route-card:hover .home-route-photo img, .destination-card:hover img { transform: scale(1.018); }
  .destination-card:hover { border-color: #91a8b6; }
}
@media (max-width: 1100px) {
  .nav { gap: 16px; }
  .home-stage, .split, .screen-section .split { gap: 36px; }
  .home-hero .actions { align-items: flex-start; flex-direction: column; }
  .section { padding-block: 80px; }
  .onboarding { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .strip-row { display: grid; grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .header-row { min-height: 88px; padding-block: 4px; }
  .brand-logo-box { height: 78px; }
  .nav { padding: 14px 0 24px; }
  .nav a { font-size: .88rem; }
  .home-hero h1 { font-size: 3.1rem; }
  .hero-photograph img { aspect-ratio: 3 / 4; }
  .pathways .intro { gap: 22px 36px; }
  .home-team .line-list { gap: 22px; }
  [data-block="6"] > .wrap { display: block; }
  [data-block="6"] .quote-line { margin-top: 32px; }
  .screen-section .split { grid-template-columns: 1fr; }
  .page-destinos .destination-card:first-child { gap: 28px; }
}
@media (max-width: 650px) {
  .wrap { width: calc(100% - 40px); }
  .preview-banner { font-size: .54rem; letter-spacing: .025em; }
  .section { padding-block: 60px; }
  .home-hero { padding-top: 26px; }
  .home-stage { grid-template-columns: 1fr; gap: 30px; }
  .hero-copy { padding: 14px 0 0; }
  .home-hero h1 { font-size: clamp(2.6rem, 10.6vw, 3.8rem); }
  .home-hero .actions { align-items: stretch; }
  .hero-photograph img { aspect-ratio: 4 / 3; }
  .hero-bottom { font-size: .63rem; padding-block: 20px; gap: 12px; }
  .hero-bottom a span { margin-left: 6px; }
  .strip-row { grid-template-columns: 1fr 1fr; gap: 22px 16px; }
  .strip-row > span { font-size: .66rem; }
  .pathways .intro, .home-team .split, .home-team .line-list { grid-template-columns: 1fr; }
  .home-team .line-list { gap: 0; }
  .route-card h3 { font-size: 1.8rem; }
  .grid.two { gap: 40px; }
  .page-hero { padding-block: 26px 50px; }
  .page-hero h1 { font-size: clamp(2.35rem, 9.6vw, 3rem); }
  .breadcrumbs { margin-bottom: 32px; }
  .corporate-hero { padding-block: 48px; }
  .corporate-hero h1 { font-size: clamp(2.35rem, 9.6vw, 3rem); }
  .screen-top { font-size: .6rem; }
  .screen-frame { padding: 9px; }
  [data-block="3"] .grid.two { gap: 12px; }
  [data-block="5"] .sky.card { padding: 28px 24px; }
  .process-heading { flex-direction: column; gap: 10px; }
  .onboarding { grid-template-columns: 1fr; }
  .onboarding li { display: grid; grid-template-columns: 30px 1fr; gap: 0 18px; }
  .onboarding li:before { grid-row: 1 / 3; }
  .onboarding p { margin-bottom: 0; }
  .device-frame .placeholder { min-height: 260px; }
  .device-toolbar { font-size: .55rem; }
  .cta-panel { padding: 32px 24px; }
  .page-destinos main > .section > .wrap > .grid, .page-destinos .destination-card:first-child { grid-template-columns: 1fr; gap: 32px; }
  .page-destinos .destination-card:first-child { gap: 0; border-bottom: 1px solid var(--line); }
  .page-destinos .destination-card:first-child h3 { font-size: 1.8rem; }
  .page-destinos .destination-card:first-child .destination-media { aspect-ratio: 4 / 3; }
  .footer-grid { gap: 34px; }
}
@media (max-width: 380px) {
  .brand-b2b-label { font-size: .6rem; padding-left: 8px; }
  .brand { gap: 6px; }
  .header-row { gap: 8px; }
  .brand-logo-box { width: 94px; }
  .brand-logo-box .brand-logo.b2b { left: -25px; }
  .js .menu-toggle { padding: 10px; font-size: .8rem; }
  .hero-bottom { flex-direction: column; }
}
