/* =========================================
       Reset & base
       ========================================= */
    *,
    *::before,
    *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
      --bg-light: #ececec;
      --bg-white: #ffffff;
      --bg-dark: #0d3742;
      --bg-dark-teal: #0d3742;
      --text-dark: #6b6b6b;
      --text-darker: #4a4a4a;
      --text-heading: #6b6b6b;
      --accent-yellow: #f5c518;
      --accent-cream: #faf3e6;
      --border-line: #cfcfcf;
      --hero-overlay: rgba(40, 60, 80, 0.35);
    }

html { scroll-behavior: smooth; }

body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      color: var(--text-dark);
      background: var(--bg-light);
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
    }

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

/* =========================================
       Hero
       ========================================= */
    .hero.hero--about {
      position: relative;
      min-height: 100vh;
      background-image:
        url('../images/img-a5a284532e.jpg');
      background-size: cover;
      background-position: center 70%;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

.hero::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 220px;
      background: linear-gradient(to bottom, rgba(13,55,66,0.78) 0%, rgba(13,55,66,0.45) 45%, rgba(13,55,66,0) 100%);
      z-index: 1;
      pointer-events: none;
    }

.hero-nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 32px 56px;
      position: fixed;
      top: 0; left: 0; right: 0;
      transition: background-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), padding 0.45s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.45s cubic-bezier(0.4, 0, 0.2, 1);
      z-index: 1000;
    }

.logo {
      display: inline-flex;
      align-items: center;
      height: 88px;
      line-height: 0;
      position: relative;
      transition: height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

.logo svg { height: 88px; width: auto; display: block; transition: height 0.45s cubic-bezier(0.4, 0, 0.2, 1); }

.logo svg.logo-white { display: block; }

.logo svg.logo-dark { display: none; }

.hero-nav.scrolled .logo svg.logo-white { display: none; }

.hero-nav.scrolled .logo svg.logo-dark { display: block; }

.hero-nav.scrolled .logo svg { height: 64px; }

.hero-nav.scrolled .logo { height: 64px; }

.logo::after {
      content: '';
      display: inline-block;
      width: 14px;
      height: 14px;
      margin-left: 4px;
      background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><circle cx='8' cy='8' r='4'/><circle cx='16' cy='8' r='4'/><circle cx='8' cy='16' r='4'/><circle cx='16' cy='16' r='4'/></svg>") no-repeat center / contain;
      vertical-align: super;
    }

.nav-menu {
      display: flex;
      gap: 44px;
      list-style: none;
    }

.nav-menu a {
      color: #fff;
      font-size: 15px;
      font-weight: 400;
      letter-spacing: 0.01em;
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

.nav-menu a:hover { opacity: 0.75; }

.nav-menu .active { font-weight: 600; }

.hero-content {
      flex: 1;
      display: flex;
      align-items: center;
      padding: 0 56px;
      position: relative;
      z-index: 3;
    }

.hero-title {
      font-size: clamp(36px, 5.5vw, 78px);
      font-weight: 300;
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: #fff;
      max-width: 1100px;
      text-shadow: 0 2px 24px rgba(0,0,0,0.45), 0 1px 4px rgba(0,0,0,0.25);
    }

.hero-title .bold {
      font-weight: 700;
      display: block;
    }

/* =========================================
       Section label (Gestavia / Porque nós / A nossa equipa)
       ========================================= */
    .section-label {
      border-left: 1px solid #999;
      padding: 6px 0 6px 14px;
      margin: 0 0 0 56px;
      font-size: 14px;
      font-weight: 600;
      color: #333;
      width: fit-content;
    }

/* =========================================
       Section: We connect the world
       ========================================= */
    .section-connect {
      background: var(--bg-light);
      padding: 40px 0 100px;
    }

.connect-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
      max-width: 1300px;
      margin: 60px auto 0;
      padding: 0 80px;
    }

.connect-text h2 {
      font-size: 38px;
      font-weight: 300;
      color: var(--text-heading);
      line-height: 1.15;
      text-transform: uppercase;
      margin-bottom: 36px;
    }

.connect-text h2 .bold {
      font-weight: 700;
      display: block;
    }

.connect-text p {
      font-size: 16px;
      line-height: 1.65;
      color: var(--text-dark);
      margin-bottom: 20px;
    }

.connect-image img {
      width: 100%;
      height: auto;
      border-radius: 2px;
    }

/* =========================================
       Section: What Sets Us Apart
       ========================================= */
    .section-apart {
      background: var(--bg-light);
      padding: 30px 0 100px;
    }

.section-apart h2 {
      font-size: 30px;
      font-weight: 300;
      color: var(--text-heading);
      text-transform: uppercase;
      letter-spacing: 0.02em;
      padding: 0 80px;
      margin-bottom: 50px;
      max-width: 1300px;
      margin-left: auto;
      margin-right: auto;
    }

.cards-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 0;
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
    }

.card {
      padding: 60px 40px 50px;
      background: #fff;
      border-right: 1px solid var(--border-line);
      min-height: 380px;
      display: flex;
      flex-direction: column;
      cursor: pointer;
      transition: background-color 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
      position: relative;
      z-index: 1;
    }

.card:last-child { border-right: none; }

.card:hover {
      background: var(--accent-yellow);
      border-right-color: transparent;
      transform: translateY(-30px) scale(1.02);
      box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
      z-index: 2;
    }

/* Quando um card é hovered, o vizinho à direita perde a borda esquerda visual */
    .card:hover + .card { border-left: 1px solid transparent; }

.card .icon {
      width: 44px;
      height: 44px;
      margin-bottom: 60px;
      color: #0d4a5e;
      transition: color 0.35s ease;
    }

.card h3 {
      font-size: 19px;
      font-weight: 500;
      color: #2a2a2a;
      margin-bottom: 18px;
    }

.card p {
      font-size: 15px;
      line-height: 1.6;
      color: #555;
    }

/* =========================================
       Section: Porque nós
       ========================================= */
    .section-why {
      background: #fff;
      padding: 40px 0 80px;
    }

.section-why .section-label {
      margin-bottom: 0;
    }

.why-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      max-width: 1300px;
      margin: 50px auto 0;
      padding: 0 80px;
    }

.why-headline {
      font-size: 38px;
      font-weight: 300;
      color: var(--text-heading);
      line-height: 1.15;
      text-transform: uppercase;
      margin-bottom: 40px;
    }

.why-headline .bold { font-weight: 700; }

.why-intro {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-dark);
      margin-bottom: 50px;
    }

.accordion {
      grid-column: 1 / 2;
      margin-top: 0;
    }

.accordion-item {
      border-bottom: 1px solid #d8d8d8;
    }

.accordion-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 28px 0;
      cursor: pointer;
      user-select: none;
    }

.accordion-header h3 {
      font-size: 19px;
      font-weight: 500;
      color: #2a2a2a;
    }

.accordion-header .arrow {
      font-size: 18px;
      color: #555;
      transition: transform 0.3s;
    }

.accordion-item.open .accordion-header {
      background: var(--accent-cream);
      padding-left: 28px;
      padding-right: 28px;
      margin: 0 -28px;
    }

.accordion-item.open .accordion-header .arrow {
      transform: rotate(180deg);
    }

.accordion-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s ease, padding 0.4s ease;
      background: var(--accent-cream);
      margin: 0 -28px;
      padding: 0 28px;
    }

.accordion-item.open .accordion-content {
      max-height: 500px;
      padding: 0 28px 32px;
    }

.accordion-content p {
      font-size: 15px;
      line-height: 1.65;
      color: #5a5a5a;
    }

.why-image {
      grid-column: 2 / 3;
      align-self: start;
    }

.why-image img {
      width: 100%;
      height: auto;
      border-radius: 2px;
    }

.why-side-text {
      grid-column: 2 / 3;
      grid-row: 1 / 2;
      align-self: start;
      padding-top: 8px;
    }

.why-side-text p {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-dark);
    }

/* Adjust why-grid to two rows */
    .why-grid {
      grid-template-areas:
        "headline sidetext"
        "accordion image";
      grid-template-columns: 1fr 1fr;
      gap: 60px 80px;
    }

.why-headline { grid-area: headline; margin-bottom: 0; }

.why-side-text { grid-area: sidetext; }

.accordion { grid-area: accordion; }

.why-image { grid-area: image; }

/* =========================================
       Section: Executive Team
       ========================================= */
    .section-team {
      background: var(--bg-light);
      padding: 40px 0 100px;
    }

.section-team h2 {
      font-size: 30px;
      font-weight: 300;
      color: var(--text-heading);
      text-transform: uppercase;
      letter-spacing: 0.02em;
      max-width: 1300px;
      margin: 50px auto 90px;
      padding: 0 80px;
    }

.team-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 40px;
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 120px;
    }

.team-member {
      text-align: center;
    }

.team-member .photo {
      width: 200px;
      height: 200px;
      border-radius: 50%;
      overflow: hidden;
      margin: 0 auto 24px;
      background: #ccc;
      filter: grayscale(100%);
    }

.team-member .photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

.team-member .name {
      font-size: 18px;
      font-weight: 700;
      color: #6b3f1c;
      margin-bottom: 4px;
    }

.team-member .role {
      font-size: 14px;
      color: #6b6b6b;
      font-weight: 400;
    }

/* =========================================
       Footer
       ========================================= */

    
    footer {
      background: var(--bg-dark-teal);
      color: #fff;
      padding: 80px 0 30px;
    }

.footer-grid {
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
      display: grid;
      grid-template-columns: 1.5fr 1fr 1.2fr;
      gap: 60px;
      align-items: start;
    }

.footer-brand {
      display: flex;
      flex-direction: column;
      gap: 80px;
    }

.footer-logo {
      font-size: 56px;
      font-weight: 300;
      font-style: italic;
      color: #fff;
      letter-spacing: -0.02em;
      line-height: 1;
    }

.footer-logo::after {
      content: '';
      display: inline-block;
      width: 18px;
      height: 18px;
      margin-left: 6px;
      background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><circle cx='8' cy='8' r='4'/><circle cx='16' cy='8' r='4'/><circle cx='8' cy='16' r='4'/><circle cx='16' cy='16' r='4'/></svg>") no-repeat center / contain;
      vertical-align: super;
    }

.footer-social {
      display: flex;
      gap: 16px;
    }

.footer-social a {
      width: 28px;
      height: 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

.footer-social a:hover { opacity: 0.7; }

.footer-social svg {
      width: 22px;
      height: 22px;
      display: block;
    }

.footer-links {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

.footer-links a {
      font-size: 15px;
      color: #fff;
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

.footer-links a:hover { opacity: 0.7; }

.footer-contacts h4 {
      font-size: 16px;
      font-weight: 700;
      margin-bottom: 14px;
    }

.footer-contacts p {
      font-size: 15px;
      line-height: 1.7;
      color: #fff;
    }

.footer-bottom {
      max-width: 1300px;
      margin: 60px auto 0;
      padding: 24px 80px 0;
      border-top: 1px solid rgba(255, 255, 255, 0.18);
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 13px;
      color: rgba(255, 255, 255, 0.85);
    }

.footer-bottom a {
      color: rgba(255, 255, 255, 0.85);
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

.footer-bottom a:hover { opacity: 0.7; }

.footer-legal { display: flex; gap: 6px; }

/* =========================================
       Responsive
       ========================================= */
    @media (max-width: 960px) {
      .hero-nav { padding: 24px; }
      .nav-menu { display: none; }
      .hero-content { padding: 0 24px; }
      .section-label { margin-left: 24px; }
      .connect-grid,
      .why-grid,
      .cards-grid,
      .team-grid,
      .connect-grid { grid-template-columns: 1fr; gap: 40px; }
      .cards-grid { grid-template-columns: 1fr; }
      .card { border-right: none; border-bottom: 1px solid var(--border-line); min-height: auto; }
      .card.featured { transform: none; }
      .why-grid {
        grid-template-columns: 1fr;
        grid-template-areas:
          "headline"
          "sidetext"
          "accordion"
          "image";
        gap: 30px;
      }
      .team-grid { grid-template-columns: repeat(2, 1fr); padding: 0 24px; }
      .section-apart h2,
      .section-team h2 { padding: 0 24px; }
    }

/* === Logo image overrides === */
    .footer-logo img { height: 96px; width: auto; display: block; }

.logo::after, .footer-logo::after { content: none !important; }

/* ===== Sticky header (scroll) ===== */
    .hero-nav.scrolled {
      background-color: #ffffff;
      box-shadow: 0 2px 16px rgba(0,0,0,0.12);
      padding-top: 18px;
      padding-bottom: 18px;
    }

.hero-nav.scrolled .nav-menu a {
      color: #0d3742;
    }

.hero-nav.scrolled .nav-menu a.active {
      color: #0d3742;
      font-weight: 600;
    }

/* Logo swap on scroll */
    
  








/* ============================================
   Mobile menu (hamburger + overlay) — REFINED
   ============================================ */
.nav-burger {
  display: none;
  background: transparent;
  border: 0;
  padding: 8px;
  cursor: pointer;
  width: 44px;
  height: 44px;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  align-items: center;
  position: relative;
  z-index: 1001;
}

.nav-burger span {
  display: block;
  width: 24px;
  height: 1.5px;
  background: #fff;
  transition: background 0.3s, transform 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.25s;
  transform-origin: center;
}

.nav-burger span:nth-child(2) { width: 18px; margin-left: auto; }

.hero-nav.scrolled .nav-burger span { background: #0d3742; }

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.45s cubic-bezier(0.4,0,0.2,1);
  overflow: hidden;
}

.mobile-menu.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* Background com gradient sutil e profundidade */
.mobile-menu-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at top right, rgba(76,160,189,0.18) 0%, transparent 55%),
    radial-gradient(ellipse at bottom left, rgba(232,180,93,0.08) 0%, transparent 50%),
    linear-gradient(180deg, #0d3742 0%, #082932 100%);
}

.mobile-menu-inner {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 26px 32px 32px;
}

/* Top bar: logo + close */
.mobile-menu-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.mobile-menu-logo-wrap { display: flex; align-items: center; }

.mobile-menu-logo-wrap svg.mobile-menu-logo {
  height: 38px;
  width: auto;
  display: block;
}

.mobile-menu-close {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  cursor: pointer;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.25s, border-color 0.25s, transform 0.25s;
}

.mobile-menu-close:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.5);
}

/* Navigation list — premium aviation style */
.mobile-menu-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

.mobile-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.mobile-menu-list li {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s cubic-bezier(0.4,0,0.2,1), transform 0.5s cubic-bezier(0.4,0,0.2,1);
}

.mobile-menu-list li:first-child { border-top: 1px solid rgba(255,255,255,0.08); }

.mobile-menu.is-open .mobile-menu-list li { opacity: 1; transform: translateY(0); }

.mobile-menu.is-open .mobile-menu-list li:nth-child(1) { transition-delay: 0.08s; }

.mobile-menu.is-open .mobile-menu-list li:nth-child(2) { transition-delay: 0.13s; }

.mobile-menu.is-open .mobile-menu-list li:nth-child(3) { transition-delay: 0.18s; }

.mobile-menu.is-open .mobile-menu-list li:nth-child(4) { transition-delay: 0.23s; }

.mobile-menu.is-open .mobile-menu-list li:nth-child(5) { transition-delay: 0.28s; }

.mobile-menu.is-open .mobile-menu-list li:nth-child(6) { transition-delay: 0.33s; }

.mobile-menu-list a {
  color: #fff;
  text-decoration: none;
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding: 20px 4px;
  font-size: 26px;
  font-weight: 300;
  letter-spacing: -0.01em;
  line-height: 1;
  transition: color 0.3s, padding-left 0.3s;
  position: relative;
}

.mobile-menu-list a .num {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.4);
  font-family: 'Inter', sans-serif;
  min-width: 22px;
}

.mobile-menu-list a .lbl {
  position: relative;
}

.mobile-menu-list a:hover,
.mobile-menu-list a:focus {
  padding-left: 12px;
}

.mobile-menu-list a:hover .num,
.mobile-menu-list a:focus .num {
  color: #4ca0bd;
}

/* Footer: contact + social */
.mobile-menu-footer {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.1);
  opacity: 0;
  transition: opacity 0.5s ease 0.45s;
}

.mobile-menu.is-open .mobile-menu-footer { opacity: 1; }

.mobile-menu-contact {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.mobile-menu-contact a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.01em;
  transition: color 0.25s;
}

.mobile-menu-contact a:hover { color: #fff; }

.mobile-menu-social {
  display: flex;
  gap: 14px;
}

.mobile-menu-social a {
  color: rgba(255,255,255,0.6);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.25s, border-color 0.25s, transform 0.25s;
}

.mobile-menu-social a:hover {
  color: #fff;
  border-color: rgba(255,255,255,0.45);
  transform: translateY(-2px);
}

/* Body lock */
body.menu-open { overflow: hidden; }

/* ============================================
   Mobile optimization (<= 600px) — added LAST
   ============================================ */
@media (max-width: 600px) {
  html, body { overflow-x: hidden; max-width: 100%; }
  *, *::before, *::after { max-width: 100%; }
  img, svg, video { max-width: 100%; height: auto; }

  /* Logo no nav: menor para mobile */
  .logo { height: 56px !important; }
  .logo svg { height: 56px !important; }
  .hero-nav.scrolled .logo { height: 44px !important; }
  .hero-nav.scrolled .logo svg { height: 44px !important; }
  .hero-nav { padding: 16px 20px !important; }

  /* Footer logo SVG: tamanho controlado e nítido */
  .footer-logo svg.footer-logo-svg { height: 70px; width: auto; display: block; }
  .footer-logo img { display: none; }

  /* Hero card amarelo: alinhar com banner (igual desktop) */
  .hero-card {
    right: 0 !important;
    bottom: 8px !important;
    width: calc(100% - 32px) !important;
    max-width: 340px !important;
    margin-left: auto;
  }

  /* Commitment slider: com margem em volta (não full-screen) */
  .commitment-cards-wrapper {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .c-card {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding: 36px 24px 44px !important;
  }

  /* Mapa: pins menores para melhor visualização */
  .map-pin {
    width: 10px !important;
    height: 10px !important;
  }
  .map-pin::before { content: '' !important; font-size: 0 !important; }
  .map-pin .map-tooltip { font-size: 11px; }

  /* Network grid: 2 por linha em mobile */
  .network-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* Footer: empilhar, sem overflow */
  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 36px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .footer-contacts, .footer-brand, .footer-links { width: auto !important; max-width: 100% !important; }
  .footer-contacts p, .footer-contacts h4 { word-break: break-word; overflow-wrap: anywhere; }

  /* Team members (About): single column, contained */
  .team-grid { grid-template-columns: 1fr !important; gap: 40px !important; padding-left: 24px !important; padding-right: 24px !important; }
  .team-member { width: auto !important; max-width: 100% !important; }
  .team-member .photo { width: 200px; height: 200px; margin: 0 auto; }

  /* Generic grids -> single column */
  .about-grid, .stats-grid, .service-grid, .commitment-header {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .service-grid, .about-grid, .stats-grid,
  .where-headline, .stats-headline, .network-title,
  .sustainability-inner, .commitment-controls, .commitment-header {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Hero title: tamanho confortável */
  .hero-title { font-size: clamp(32px, 9vw, 46px) !important; }

  /* Forms: largura total */
  .field input, .field select, .field textarea { width: 100% !important; max-width: 100% !important; }
  .form-grid, .quote-grid { grid-template-columns: 1fr !important; }

  /* Terms page */
  .terms-wrap { padding-left: 22px !important; padding-right: 22px !important; }
  /* Mapa: padding reduzido para mapa maior em mobile */
  .map-wrapper { padding-left: 12px !important; padding-right: 12px !important; }
  .section-where { padding-left: 0 !important; padding-right: 0 !important; }

  /* Mostrar hamburger no mobile */
  .nav-burger { display: flex !important; }
  /* Permitir overlay mobile aparecer no mobile (default é none no desktop) */
  .mobile-menu { display: flex !important; }
  /* Garantir que menu desktop fique escondido (já está, mas reforço) */
  .nav-menu { display: none !important; }


}

:root {
      --bg-light: #ececec;
      --bg-white: #ffffff;
      --bg-dark-teal: #0d3742;
      --bg-blue-petrol: #3d7a8c;
      --bg-blue-petrol-dark: #0d3742;
      --text-dark: #6b6b6b;
      --text-darker: #4a4a4a;
      --text-heading: #6b6b6b;
      --accent-yellow: #f5c518;
      --accent-blue: #1f6f8b;
      --accent-pin: #2541d8;
      --border-line: #cfcfcf;
    }

button { font-family: inherit; }

/* =========================================
       HERO
       ========================================= */
    .hero {
      position: relative;
      min-height: 100vh;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }

.hero-slides {
      position: absolute;
      inset: 0;
      z-index: 0;
    }

.hero-slide {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      opacity: 0;
      transition: opacity 0.8s ease-in-out;
    }

.hero-slide::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.25) 100%);
    }

.hero-slide.active { opacity: 1; }

/* Banner slideshow images are now applied inline from the template (editable via ACF). */

.hero-inner {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      flex: 1;
    }

.nav-menu a {
      color: #fff;
      font-size: 15px;
      font-weight: 400;
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
      position: relative;
    }

.nav-menu .active::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: -8px;
      height: 2px;
      background: #fff;
    }

.hero-title {
      font-size: clamp(40px, 6vw, 92px);
      font-weight: 300;
      line-height: 1.0;
      letter-spacing: -0.01em;
      color: #fff;
      max-width: 1100px;
      text-transform: uppercase;
      text-shadow: 0 2px 24px rgba(0,0,0,0.45), 0 1px 4px rgba(0,0,0,0.25);
    }

/* Yellow CTA card */
    .hero-card {
      position: absolute;
      right: 0;
      bottom: 8px;
      background: var(--accent-yellow);
      padding: 36px 40px 40px;
      width: 320px;
      z-index: 5;
      color: #1a1a1a;
    }

.hero-card .number {
      font-size: 13px;
      color: #1a1a1a;
      opacity: 0.65;
      margin-bottom: 14px;
      letter-spacing: 0.05em;
    }

.hero-card .title {
      font-size: 16px;
      font-weight: 600;
      letter-spacing: 0.04em;
      margin-bottom: 36px;
      color: #1a1a1a;
    }

.hero-card .arrow-btn {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      border: 1.5px solid #1a1a1a;
      background: transparent;
      color: #1a1a1a;
      font-size: 22px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.25s, transform 0.25s;
    }

.hero-card .arrow-btn:hover {
      background: #1a1a1a;
      color: var(--accent-yellow);
      transform: translateX(4px);
    }

/* Teal stripe at bottom of hero */
    .hero-stripe {
      height: 8px;
      background: var(--bg-blue-petrol);
      position: relative;
      z-index: 2;
    }

/* =========================================
       SECTION: Quem somos
       ========================================= */
    .section-about {
      background: var(--bg-light);
      padding: 40px 0 120px;
    }

.about-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
      max-width: 1300px;
      margin: 60px auto 0;
      padding: 0 80px;
    }

.about-image img {
      width: 100%;
      height: auto;
      object-fit: cover;
    }

.about-text h2 {
      font-size: 34px;
      font-weight: 300;
      color: var(--text-heading);
      text-transform: uppercase;
      line-height: 1.2;
      margin-bottom: 36px;
    }

.about-text h2 .bold { font-weight: 700; }

.about-text p {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-dark);
      margin-bottom: 40px;
    }

.btn-saber {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      background: var(--accent-blue);
      color: #fff;
      padding: 18px 26px;
      min-width: 240px;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      border: none;
      cursor: pointer;
      transition: background 0.25s;
      position: relative;
    }

.btn-saber:hover { background: #155a73; }

.btn-saber .divider {
      width: 1px;
      height: 22px;
      background: rgba(255,255,255,0.4);
      margin: 0 18px 0 auto;
    }

.btn-saber .arrow { font-size: 18px; }

/* =========================================
       SECTION: Stats
       ========================================= */
    .section-stats {
      background: var(--bg-light);
      padding: 0 0 120px;
    }

.stats-headline {
      font-size: 34px;
      font-weight: 300;
      color: var(--text-heading);
      text-transform: uppercase;
      line-height: 1.2;
      max-width: 700px;
      padding: 0 80px;
      margin: 0 auto 80px;
      max-width: 1300px;
    }

.stats-headline .bold { font-weight: 700; }

.stats-grid {
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 40px;
      align-items: end;
    }

.stat-item {
      text-align: center;
    }

.stat-item.offset-up { margin-top: -120px; }

.stat-item.offset-down { margin-bottom: -120px; }

.stat-image {
      width: 100%;
      aspect-ratio: 16/10;
      overflow: hidden;
      margin-bottom: 30px;
    }

.stat-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

.stat-label {
      font-size: 13px;
      color: var(--text-dark);
      letter-spacing: 0.14em;
      font-weight: 500;
      margin-bottom: 20px;
      text-transform: uppercase;
    }

.stat-number {
      font-size: 70px;
      font-weight: 700;
      color: #555;
      line-height: 1;
      letter-spacing: -0.03em;
    }

.stat-divider {
      width: 80%;
      height: 1px;
      background: #c0c0c0;
      margin: 24px auto 0;
    }

/* =========================================
       SECTION: Commitment / O que nos distingue
       ========================================= */
    .section-commitment {
      background: var(--bg-blue-petrol);
      padding: 0 0 100px;
      position: relative;
    }

.section-commitment .section-label {
      color: #1a2a30;
      border-color: #1a2a30;
      padding-top: 30px;
    }

.commitment-header {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 80px;
      max-width: 1300px;
      margin: 50px auto 70px;
      padding: 0 80px;
      align-items: start;
    }

.commitment-title {
      font-size: 44px;
      font-weight: 300;
      color: #fff;
      text-transform: uppercase;
      line-height: 1.1;
    }

.commitment-title .bold { font-weight: 700; }

.commitment-intro {
      font-size: 15px;
      line-height: 1.7;
      color: #fff;
      padding-top: 10px;
    }

.commitment-cards-wrapper {
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
    }

.commitment-cards-viewport {
      overflow: hidden;
      position: relative;
    }

.commitment-cards {
      display: flex;
      flex-wrap: nowrap;        /* never wrap into rows */
      gap: 0;
      transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
      will-change: transform;
    }

.c-card {
      flex: 0 0 calc(100% / 3); /* 3 cards visible at a time */
      max-width: calc(100% / 3);
      padding: 50px 40px 60px;
      min-height: 340px;
      display: flex;
      flex-direction: column;
      box-sizing: border-box;
    }

.c-card.light {
      background: #d8d8d8;
      color: #2a2a2a;
    }

.c-card.dark {
      background: var(--bg-blue-petrol-dark);
      color: #fff;
    }

.c-card .icon {
      width: 56px;
      height: 56px;
      margin-bottom: 80px;
      color: var(--accent-blue);
    }

.c-card.dark .icon { color: #4ca0bd; }

.c-card h3 {
      font-size: 20px;
      font-weight: 600;
      margin-bottom: 16px;
    }

.c-card p {
      font-size: 15px;
      line-height: 1.65;
    }

.commitment-controls {
      display: flex;
      gap: 12px;
      justify-content: flex-end;
      max-width: 1300px;
      margin: 40px auto 0;
      padding: 0 80px;
    }

.commitment-controls button {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.55);
      background: transparent;
      color: rgba(255,255,255,0.85);
      font-size: 16px;
      cursor: pointer;
      transition: background 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }

.commitment-controls button:hover:not(:disabled) {
      background: rgba(255,255,255,0.15);
      border-color: rgba(255,255,255,0.85);
      color: #fff;
    }

.commitment-controls button:disabled {
      opacity: 0.3;
      cursor: not-allowed;
    }

/* =========================================
       SECTION: Onde estamos (map)
       ========================================= */
    .section-where {
      background: var(--bg-light);
      padding: 40px 0 80px;
    }

.where-headline {
      max-width: 1300px;
      margin: 60px auto 40px;
      padding: 0 80px;
      font-size: 32px;
      font-weight: 300;
      color: var(--text-heading);
      text-transform: uppercase;
      line-height: 1.25;
    }

.where-headline .bold { font-weight: 700; }

.map-wrapper {
      position: relative;
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 40px;
    }

.map-wrapper .map-frame {
      position: relative;
      width: 100%;
      aspect-ratio: 1.7748 / 1; /* matches reference design */
      overflow: hidden;
    }

.map-wrapper img {
      width: 100%;
      height: 100%;
      object-fit: fill;
      display: block;
    }

.map-pin {
      position: absolute;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background-color: var(--accent-pin);
      background-image: url('../images/pin-gestavia.svg');
      background-repeat: no-repeat;
      background-position: center;
      background-size: 60% 60%;
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transform: translate(-50%, -50%);
      border: 2px solid #fff;
      box-shadow: 0 2px 6px rgba(0,0,0,0.25);
      transition: transform 0.25s ease, box-shadow 0.25s ease;
      z-index: 2;
    }

.map-pin:hover {
      transform: translate(-50%, -50%) scale(1.5);
      box-shadow: 0 4px 12px rgba(0,0,0,0.4);
      z-index: 4;
    }

.map-pin::before {
      content: '';
    }

.map-tooltip {
      position: absolute;
      background: var(--accent-blue);
      color: #fff;
      padding: 18px 22px;
      min-width: 200px;
      font-size: 14px;
      line-height: 1.55;
      opacity: 0;
      pointer-events: none;
      transform: translate(-50%, calc(-100% - 14px));
      transition: opacity 0.25s;
      z-index: 3;
    }

.map-tooltip a {
      color: #fff;
      text-decoration: underline;
      display: block;
      margin-top: 6px;
    }

.map-tooltip.visible {
      opacity: 1;
      pointer-events: auto;
    }

/* =========================================
       SECTION: Our Network (12 airports)
       ========================================= */
    .section-network {
      background: var(--bg-light);
      padding: 60px 0 120px;
      position: relative;
    }

/* Decorative angled corner (from print) */
    .section-network::before {
      content: '';
      position: absolute;
      top: 0;
      left: 200px;
      width: 100px;
      height: 30px;
      background: #b8b8b8;
      clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
    }

.network-title {
      max-width: 1300px;
      margin: 0 auto 60px;
      padding: 0 80px;
    }

.network-title h2 {
      font-size: 32px;
      font-weight: 700;
      color: var(--text-heading);
      text-transform: uppercase;
      line-height: 1.2;
    }

.network-title h2 .light {
      font-weight: 300;
      display: block;
    }

.network-grid {
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 24px;
    }

.network-card {
      background: #fff;
      cursor: default;
      transition: transform 0.25s, box-shadow 0.25s;
    }

.network-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    }

.network-card .photo {
      width: 100%;
      aspect-ratio: 1;
      overflow: hidden;
    }

.network-card .photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.4s;
    }

.network-card:hover .photo img { transform: scale(1.05); }

.network-card .info {
      padding: 18px 16px 22px;
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.08em;
      color: var(--text-darker);
      text-transform: uppercase;
    }

.network-card .info .arrow {
      color: var(--accent-blue);
      font-size: 16px;
    }

/* =========================================
       Responsive
       ========================================= */
    @media (max-width: 1100px) {
      .network-grid { grid-template-columns: repeat(4, 1fr); }
    }

@media (max-width: 960px) {
      .hero-nav { padding: 24px; }
      .nav-menu { display: none; }
      .hero-content { padding: 0 24px; }
      .section-label { margin-left: 24px; }
      .about-grid,
      .commitment-header,
      .commitment-cards,
      .stats-grid,
      .network-grid,
      .footer-grid,
      .where-headline,
      .stats-headline,
      .network-title,
      .sustainability-inner,
      .commitment-controls { padding-left: 24px; padding-right: 24px; }
      .about-grid { grid-template-columns: 1fr; gap: 40px; }
      .stats-grid { grid-template-columns: 1fr; gap: 60px; }
      .stat-item.offset-up,
      .stat-item.offset-down { margin: 0; }
      .commitment-header { grid-template-columns: 1fr; gap: 30px; }
      .commitment-cards-wrapper { padding: 0 24px; }
      .c-card { flex: 0 0 100%; padding: 40px 32px 50px; min-height: auto; }
      .commitment-cards { gap: 0; }
      .network-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
      .hero-card { right: 16px; bottom: 24px; width: calc(100% - 32px); max-width: 320px; }
    }

/* Logo swap on scroll */
    
  
    
    .hero-nav.scrolled 
    .logo {
      display: inline-flex;
      align-items: center;
      height: 88px;
      line-height: 0;
      position: relative;
      transition: height 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

:root {
      --bg-light: #ececec;
      --bg-dark-teal: #0d3742;
      --text-dark: #6b6b6b;
      --text-heading: #6b6b6b;
      --accent-blue: #1f6f8b;
    }

body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      color: var(--text-dark);
      background: var(--bg-light);
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
    }

/* =====================================================
       Top bar
       ===================================================== */


    /* =====================================================
       Hero
       ===================================================== */
    .hero.hero--services {
      position: relative;
      min-height: 100vh;
      background-image:
        linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 40%, rgba(0,0,0,0.25) 100%),
        url('../images/img-89adc96044.jpg');
      background-size: cover;
      background-position: center;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

.nav-menu a {
      color: #fff;
      font-size: 15px;
      font-weight: 400;
      letter-spacing: 0.01em;
      position: relative;
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

.nav-menu .active { font-weight: 700; }

.hero-title {
      font-size: clamp(40px, 5.5vw, 78px);
      font-weight: 300;
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: #fff;
      max-width: 1100px;
      text-shadow: 0 2px 24px rgba(0,0,0,0.45), 0 1px 4px rgba(0,0,0,0.25);
    }

/* =====================================================
       Service blocks
       ===================================================== */
    .service-block {
      padding: 50px 0 80px;
    }

.service-block.bg-light { background: var(--bg-light); }

.service-block.bg-white { background: #ffffff; }

.service-grid {
      max-width: 1300px;
      margin: 50px auto 0;
      padding: 0 80px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start;
    }

.service-text h2 {
      font-size: clamp(32px, 3.4vw, 48px);
      font-weight: 300;
      color: var(--text-heading);
      text-transform: uppercase;
      line-height: 1.1;
      margin-bottom: 30px;
      letter-spacing: -0.005em;
    }

.service-text > p {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-dark);
      margin-bottom: 30px;
    }

.service-text h3 {
      font-size: 16px;
      font-weight: 700;
      color: var(--text-darker, #2a2a2a);
      margin-top: 28px;
      margin-bottom: 12px;
    }

.service-text ul {
      list-style: none;
      padding-left: 4px;
      margin-bottom: 0;
    }

.service-text ul li {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-dark);
      padding-left: 18px;
      position: relative;
    }

.service-text ul li::before {
      content: '•';
      position: absolute;
      left: 0;
      color: var(--text-dark);
    }

.service-text .intro-line {
      font-size: 15px;
      line-height: 1.7;
      color: var(--text-dark);
      margin-top: 4px;
      margin-bottom: 6px;
    }

.service-image img {
      width: 100%;
      height: auto;
      display: block;
      border-radius: 2px;
    }

.tagline-text {
      font-size: clamp(22px, 2vw, 30px);
      font-weight: 500;
      color: var(--accent-blue);
      text-transform: uppercase;
      line-height: 1.25;
      margin-top: 32px;
    }

/* =====================================================
       Footer
       ===================================================== */

    /* =====================================================
       Responsive
       ===================================================== */
    @media (max-width: 960px) {
      .hero-nav { padding: 24px; }
      .nav-menu { display: none; }
      .hero-content { padding: 0 24px; }
      .section-label { margin-left: 24px; }
      .service-grid { grid-template-columns: 1fr; gap: 30px; }
    }

:root {
      --bg-light: #ececec;
      --bg-dark-teal: #0d3742;
      --bg-blue-petrol: #3d7a8c;
      --text-dark: #6b6b6b;
      --text-heading: #6b6b6b;
      --accent-blue: #1f6f8b;
    }

/* =====================================================
       Top bar
       ===================================================== */


    /* =====================================================
       Hero
       ===================================================== */
    .hero.hero--where {
      position: relative;
      min-height: 100vh;
      background-image:
        linear-gradient(to bottom, rgba(20,50,80,0.20) 0%, rgba(20,50,80,0.05) 40%, rgba(20,50,80,0.20) 100%),
        url('../images/img-22c09b0932.jpg');
      background-size: cover;
      background-position: center 60%;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

.hero-content {
      flex: 1;
      display: flex;
      align-items: center;
      padding: 0 56px;
    }

/* Bottom teal stripe like other pages */
    .hero-stripe {
      height: 8px;
      background: var(--bg-blue-petrol);
    }

/* =====================================================
       Section: Sustentabilidade content
       ===================================================== */
    .section-content {
      background: var(--bg-blue-petrol);
      padding: 50px 0 100px;
      color: #fff;
    }

.section-label {
      border-left: 1px solid #1a2a30;
      padding: 6px 0 6px 14px;
      margin: 0 0 0 56px;
      font-size: 14px;
      font-weight: 600;
      color: #1a2a30;
      width: fit-content;
    }

.content-inner {
      max-width: 1300px;
      margin: 80px auto 0;
      padding: 0 80px;
      display: grid;
      grid-template-columns: 1.1fr 1fr;
      gap: 80px;
      align-items: start;
    }

.content-title {
      font-size: clamp(28px, 2.8vw, 38px);
      font-weight: 700;
      color: #fff;
      text-transform: uppercase;
      line-height: 1.2;
    }

.content-body p {
      font-size: 15px;
      line-height: 1.7;
      color: #fff;
      margin-bottom: 20px;
    }

.content-body h3 {
      font-size: 17px;
      font-weight: 700;
      color: #fff;
      margin-top: 14px;
      margin-bottom: 12px;
    }

.content-body ul {
      list-style: none;
      padding-left: 8px;
      margin-bottom: 20px;
    }

.content-body ul li {
      font-size: 15px;
      line-height: 1.7;
      color: #fff;
      padding-left: 16px;
      position: relative;
    }

.content-body ul li::before {
      content: '•';
      position: absolute;
      left: 0;
      color: #fff;
    }

/* =====================================================
       Footer
       ===================================================== */

    /* Responsive */
    @media (max-width: 960px) {
      .hero-nav { padding: 24px; }
      .nav-menu { display: none; }
      .hero-content { padding: 0 24px; }
      .section-label { margin-left: 24px; }
      .content-inner,
      .content-inner { grid-template-columns: 1fr; gap: 30px; }
    }

/* =========================================
       Where We Operate page
       ========================================= */
    .where-hero.where-hero--where {
      position: relative;
      min-height: 100vh;
      background-image: url('../images/img-a9304f21c8.jpg');
      background-size: cover;
      background-position: center 60%;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

.where-hero::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 220px;
      background: linear-gradient(to bottom, rgba(13,55,66,0.78) 0%, rgba(13,55,66,0.45) 45%, rgba(13,55,66,0) 100%);
      z-index: 1;
      pointer-events: none;
    }

.where-hero-content {
      position: relative;
      flex: 1;
      display: flex;
      align-items: center;
      padding: 0 56px;
      z-index: 2;
    }

.where-hero-title {
      font-family: 'Inter', sans-serif;
      font-size: clamp(40px, 5.5vw, 78px);
      font-weight: 300;
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: #fff;
      margin: 0;
      max-width: 1100px;
      text-shadow: 0 2px 24px rgba(0,0,0,0.45), 0 1px 4px rgba(0,0,0,0.25);
    }

.where-hero-title .bold { font-weight: 700; }

.where-intro {
      background: var(--bg-light);
      padding: 80px 0 100px;
    }

.where-intro > .section-label {
      margin-bottom: 60px;
    }

.where-intro-grid {
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start;
      box-sizing: border-box;
    }

.where-intro-title {
      font-family: 'Inter', sans-serif;
      font-size: clamp(28px, 2.8vw, 38px);
      font-weight: 700;
      line-height: 1.2;
      color: #0d3742;
      letter-spacing: -0.01em;
      margin: 0;
    }

.where-intro-list {
      font-size: 16px;
      color: #4a4a4a;
      line-height: 1.55;
    }

.where-intro-list .lead { margin: 0 0 28px; }

.where-intro-list .bullet { margin-bottom: 16px; }

.where-intro-list .bullet-title { font-weight: 700; margin: 0 0 2px; color: #333; }

.where-intro-list .bullet-text { margin: 0; color: #555; }

.airports-section {
      background: var(--bg-blue-petrol);
      padding: 100px 0 100px;
    }

.airports-grid {
      max-width: 1300px;
      margin: 0 auto 70px;
      padding: 0 80px;
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 12px;
      box-sizing: border-box;
    }

.airport-card {
      display: flex;
      flex-direction: column;
      background: #fff;
      text-decoration: none;
      color: inherit;
      transition: transform 0.2s ease;
    }

.airport-card:hover { transform: translateY(-4px); }

.airport-photo {
      aspect-ratio: 1 / 1;
      overflow: hidden;
      background: #ccc;
    }

.airport-photo img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }

.airport-info {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 16px 14px;
      font-size: 12px;
      letter-spacing: 0.04em;
      color: #2a2a2a;
    }

.airport-info .arrow { color: var(--bg-blue-petrol); font-weight: 700; }

.airport-info .name { font-weight: 600; }

.airports-footer-text {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 80px;
      text-align: center;
      color: #fff;
      font-size: 18px;
      line-height: 1.55;
      letter-spacing: 0.02em;
    }

.where-separator {
      display: block;
      width: 100%;
      line-height: 0;
      font-size: 0;
    }

.where-separator img {
      width: 100%;
      height: auto;
      display: block;
    }

@media (max-width: 900px) {
      .where-hero-title { font-size: 36px; }
      .where-hero-content { padding: 0 24px; }
      .where-intro { padding: 60px 0; }
      .where-intro .section-label { margin-left: 24px; }
      .where-intro-grid { padding: 0 24px; grid-template-columns: 1fr; gap: 30px; }
      .where-intro-title { font-size: 24px; }
      .airports-section { padding: 60px 0; }
      .airports-grid { grid-template-columns: repeat(2, 1fr); padding: 0 24px; gap: 10px; }
      .airports-footer-text { padding: 0 24px; font-size: 15px; }
    }

/* =====================================================
       Top bar
       ===================================================== */


    /* =====================================================
       Hero
       ===================================================== */
    .hero.hero--sustainability {
      position: relative;
      min-height: 100vh;
      background-image:
        linear-gradient(to bottom, rgba(20,50,80,0.20) 0%, rgba(20,50,80,0.05) 40%, rgba(20,50,80,0.20) 100%),
        url('../images/img-22c09b0932.jpg');
      background-size: cover;
      background-position: center;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

:root {
      --bg-light: #ececec;
      --bg-dark-teal: #0d3742;
      --bg-blue-petrol: #3d7a8c;
      --text-dark: #6b6b6b;
      --text-darker: #2a2a2a;
      --accent-blue: #1f6f8b;
      --border-input: #c4c4c4;
    }

body {
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      color: var(--text-darker);
      background: #ffffff;
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
    }

/* =====================================================
       Top bar
       ===================================================== */


    /* =====================================================
       Hero
       ===================================================== */
    .hero.hero--quote {
      position: relative;
      min-height: 100vh;
      background-image:
        linear-gradient(to right, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.10) 50%, rgba(0,0,0,0.05) 100%),
        url('../images/img-de372dee59.jpg');
      background-size: cover;
      background-position: center;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

.nav-menu a {
      color: #fff;
      font-size: 15px;
      font-weight: 400;
      position: relative;
      transition: opacity 0.2s, color 0.45s cubic-bezier(0.4, 0, 0.2, 1);
    }

/* =====================================================
       Form section
       ===================================================== */
    .form-section {
      background: var(--bg-light);
      padding: 90px 0 100px;
    }

.form-wrapper {
      max-width: 1300px;
      margin: 0 auto;
      padding: 0 80px;
    }

form {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      gap: 36px 28px;
    }

/* Field building blocks */
    .field {
      display: flex;
      flex-direction: column;
    }

.field label,
    .field-label {
      font-size: 15px;
      color: var(--text-darker);
      margin-bottom: 10px;
      font-weight: 400;
    }

.field input,
    .field select,
    .field textarea {
      font-family: inherit;
      font-size: 15px;
      padding: 14px 16px;
      border: 1px solid var(--border-input);
      border-radius: 8px;
      background: #fff;
      color: #2a2a2a;
      transition: border-color 0.2s;
      width: 100%;
    }

.field input:focus,
    .field select:focus,
    .field textarea:focus {
      outline: none;
      border-color: var(--accent-blue);
    }

.field textarea {
      resize: vertical;
      min-height: 160px;
    }

/* Column spans */
    .col-3 { grid-column: span 3; }

.col-4 { grid-column: span 4; }

.col-6 { grid-column: span 6; }

.col-12 { grid-column: span 12; }

/* Section spacer between form blocks */
    .form-spacer {
      grid-column: 1 / -1;
      height: 12px;
    }

/* Time row label group (Horas/Minutos for arrival + departure) */
    .time-row {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 28px;
    }

/* Services radio group (single column of options stacked in 4 columns) */
    .services-block {
      grid-column: 1 / -1;
    }

.services-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px 28px;
    }

.radio-line {
      display: flex;
      align-items: center;
      gap: 12px;
      font-size: 15px;
      color: var(--text-darker);
      cursor: pointer;
    }

.radio-line input[type="radio"],
    .radio-line input[type="checkbox"] {
      appearance: none;
      width: 18px;
      height: 18px;
      border: 1.5px solid var(--border-input);
      border-radius: 50%;
      cursor: pointer;
      position: relative;
      flex-shrink: 0;
      margin: 0;
    }

.radio-line input[type="checkbox"] {
      border-radius: 50%;
    }

.radio-line input:checked {
      border-color: var(--accent-blue);
    }

.radio-line input:checked::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--accent-blue);
    }

/* Consent block */
    .consent-block {
      grid-column: 1 / -1;
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-top: 4px;
    }

/* Submit */
    .submit-row {
      grid-column: 1 / -1;
      margin-top: 24px;
    }

.btn-submit {
      width: 100%;
      background: var(--accent-blue);
      color: #fff;
      padding: 22px;
      font-size: 18px;
      font-weight: 500;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      transition: background 0.25s;
    }

.btn-submit:hover { background: #155a73; }

/* =====================================================
       Footer
       ===================================================== */

    /* Responsive */
    @media (max-width: 960px) {
      .hero-nav { padding: 24px; }
      .nav-menu { display: none; }
      .hero-content { padding: 0 24px; }
      .form-wrapper { padding: 0 24px; }
      .col-3, .col-4, .col-6 { grid-column: 1 / -1; }
      .time-row { grid-template-columns: repeat(2, 1fr); }
      .services-grid { grid-template-columns: 1fr 1fr; }
    }

:root {
      --bg-light: #ececec;
      --bg-dark-teal: #0d3742;
      --bg-blue-petrol: #3d7a8c;
      --text-dark: #2a2a2a;
      --text-grey: #6b6b6b;
      --accent-blue: #1f6f8b;
      --border-input: #d4d4d4;
    }

/* =====================================================
       Top bar
       ===================================================== */


    /* =====================================================
       Hero
       ===================================================== */
    .hero.hero--contact {
      position: relative;
      min-height: 100vh;
      background-image:
        linear-gradient(to right, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.10) 60%, rgba(0,0,0,0.0) 100%),
        url('../images/img-b1ca094b44.jpg');
      background-size: cover;
      background-position: center;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

/* =====================================================
       Contact section
       ===================================================== */
    .contact-section {
      background: var(--bg-light);
      padding: 50px 0 100px;
    }

.section-label {
      border-left: 1px solid #999;
      padding: 6px 0 6px 14px;
      margin: 0 0 0 56px;
      font-size: 14px;
      font-weight: 600;
      color: var(--text-dark);
      width: fit-content;
    }

.contact-inner {
      max-width: 1300px;
      margin: 60px auto 0;
      padding: 0 80px;
    }

/* Top row: title + contacts */
    .contact-top {
      display: grid;
      grid-template-columns: 1.3fr 1fr;
      gap: 80px;
      margin-bottom: 70px;
      align-items: start;
    }

.contact-title {
      font-size: clamp(28px, 2.6vw, 38px);
      font-weight: 700;
      color: var(--accent-blue);
      text-transform: uppercase;
      line-height: 1.15;
      letter-spacing: -0.005em;
    }

.hq-block h3 {
      font-size: 17px;
      font-weight: 700;
      color: var(--text-dark);
      margin-bottom: 22px;
    }

.hq-block p {
      font-size: 15px;
      line-height: 1.8;
      color: var(--text-dark);
      margin-bottom: 18px;
    }

.hq-block a {
      color: var(--accent-blue);
      text-decoration: underline;
    }

/* Form (single column, full width) */
    form {
      display: flex;
      flex-direction: column;
      gap: 24px;
      max-width: 100%;
    }

.field label {
      font-size: 16px;
      color: var(--text-dark);
      margin-bottom: 10px;
      font-weight: 400;
    }

.field input,
    .field textarea {
      font-family: inherit;
      font-size: 15px;
      padding: 14px 18px;
      border: none;
      border-radius: 6px;
      background: #fff;
      color: #2a2a2a;
      transition: box-shadow 0.2s;
      width: 100%;
      box-shadow: 0 0 0 1px transparent;
    }

.field input::placeholder,
    .field textarea::placeholder {
      color: #c0c0c0;
    }

.field input:focus,
    .field textarea:focus {
      outline: none;
      box-shadow: 0 0 0 2px var(--accent-blue);
    }

.field textarea {
      resize: vertical;
      min-height: 140px;
    }

.btn-submit {
      width: 100%;
      background: var(--accent-blue);
      color: #fff;
      padding: 22px;
      font-size: 18px;
      font-weight: 500;
      border: none;
      border-radius: 6px;
      cursor: pointer;
      transition: background 0.25s;
      margin-top: 10px;
    }

/* =====================================================
       Footer
       ===================================================== */

    /* Responsive */
    @media (max-width: 960px) {
      .hero-nav { padding: 24px; }
      .nav-menu { display: none; }
      .hero-content { padding: 0 24px; }
      .section-label { margin-left: 24px; }
      .contact-inner { padding: 0 24px; }
      .contact-top { grid-template-columns: 1fr; gap: 30px; margin-bottom: 50px; }
    }

/* =====================================================
       Top bar
       ===================================================== */


    /* =====================================================
       Hero
       ===================================================== */
    .hero.hero--terms {
      position: relative;
      min-height: 100vh;
      background-image:
        linear-gradient(to right, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.10) 60%, rgba(0,0,0,0.0) 100%),
        url('../images/img-b1ca094b44.jpg');
      background-size: cover;
      background-position: center;
      color: #fff;
      padding-top: 44px;
      display: flex;
      flex-direction: column;
    }

.terms-hero {
      background: var(--bg-dark, #0d3742);
      padding: 160px 0 70px;
      text-align: center;
    }

.terms-hero h1 {
      color: #fff;
      font-size: clamp(32px, 4vw, 52px);
      font-weight: 300;
      text-transform: uppercase;
      letter-spacing: 0.02em;
    }

.terms-wrap {
      max-width: 860px;
      margin: 0 auto;
      padding: 70px 24px 100px;
      color: #2a2a2a;
      line-height: 1.7;
      font-size: 15px;
    }

.terms-wrap h2 {
      font-size: 20px;
      font-weight: 600;
      color: var(--bg-dark, #0d3742);
      margin: 38px 0 14px;
      text-transform: none;
    }

.terms-wrap p { margin: 0 0 14px; }

.terms-wrap .clause { margin: 0 0 12px; }

.terms-wrap .lead { color: #555; margin-bottom: 30px; }

/* =========================================
   GESTAVIA UPDATE — Team sections (multiple)
   ========================================= */
.section-team + .section-team { padding-top: 0; }
.section-team + .section-team h2 { margin-top: 0; }
.section-team .team-grid { margin-bottom: 0; }

/* =========================================
   GESTAVIA UPDATE — Sustainability extra blocks
   ========================================= */
.section-content .content-inner + .content-inner { margin-top: 110px; }

/* =========================================
   GESTAVIA UPDATE — Form feedback
   ========================================= */
.form-success {
  background: #eaf4ee;
  border-left: 4px solid #2e7d4f;
  color: #1d4d33;
  padding: 16px 20px;
  margin-bottom: 28px;
  font-size: 15px;
}
.form-error {
  background: #fdf0ef;
  border-left: 4px solid #b3392f;
  color: #7a2620;
  padding: 16px 20px;
  margin-bottom: 28px;
  font-size: 15px;
}
.hp-field { position: absolute !important; left: -9999px !important; opacity: 0; height: 0; overflow: hidden; }

/* =========================================
   GESTAVIA UPDATE — Airport detail page
   ========================================= */
.airport-detail { max-width: 1100px; margin: 0 auto; padding: 70px 40px 90px; }
.airport-detail .ap-code { font-size: 22px; font-weight: 800; color: var(--text-heading, #1c1c1c); letter-spacing: 0.04em; }
.airport-detail .ap-name { font-size: 26px; font-weight: 300; color: #3a3a3a; text-transform: uppercase; letter-spacing: 0.06em; margin: 4px 0 34px; }
.ap-meta-row { display: flex; flex-wrap: wrap; gap: 36px; align-items: center; border-top: 1px solid #e3e3e3; border-bottom: 1px solid #e3e3e3; padding: 18px 0; margin-bottom: 36px; }
.ap-meta { display: flex; gap: 10px; align-items: flex-start; }
.ap-meta svg { width: 18px; height: 18px; color: var(--accent-blue, #317a8d); flex: none; margin-top: 2px; }
.ap-meta .lbl { display: block; font-size: 12px; color: #8a8a8a; }
.ap-meta .val { display: block; font-size: 14px; font-weight: 700; color: #2b2b2b; }
.ap-manager { display: flex; gap: 14px; align-items: center; margin-left: auto; }
.ap-manager img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.ap-manager .lbl { display: block; font-size: 12px; color: #8a8a8a; }
.ap-manager .val { display: block; font-size: 14px; font-weight: 700; color: #2b2b2b; }
.ap-desc { font-size: 15px; line-height: 1.7; color: #4a4a4a; max-width: 860px; margin-bottom: 44px; }
.ap-details-bar { background: var(--accent-yellow, #f4b400); padding: 28px 32px; display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 24px; align-items: center; margin-bottom: 44px; }
.ap-details-bar h3 { grid-column: 1 / -1; margin: 0 0 4px; font-size: 18px; font-weight: 700; color: #1c1c1c; text-transform: lowercase; }
.ap-details-bar .lbl { display: block; font-size: 12px; font-weight: 700; color: #1c1c1c; margin-bottom: 4px; }
.ap-details-bar .val { display: block; font-size: 14px; color: #2b2b2b; }
.ap-details-bar .ap-quote-btn { background: var(--accent-blue, #317a8d); color: #fff; text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 14px 22px; display: inline-flex; align-items: center; gap: 10px; justify-self: end; }
.ap-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; margin-bottom: 60px; }
.ap-gallery .g-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ap-gallery .g-side { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.ap-gallery .g-side img { width: 100%; height: 100%; object-fit: cover; display: block; }
.airport-detail form {
  max-width: 760px;
  background: #fbfbfb;
  border: 1px solid #ececec;
  border-radius: 8px;
  padding: 36px 32px;
}
.airport-detail .field input,
.airport-detail .field textarea {
  border: 1px solid #dcdcdc;
  background: #fff;
  box-shadow: none;
}
.airport-detail .field input:focus,
.airport-detail .field textarea:focus {
  border-color: var(--accent-blue, #317a8d);
  box-shadow: 0 0 0 1px var(--accent-blue, #317a8d);
}
.airport-detail .btn-submit { margin-top: 4px; }
@media (max-width: 900px) {
  .airport-detail form { padding: 24px 18px; }
}
@media (max-width: 900px) {
  .airport-detail { padding: 50px 22px 70px; }
  .ap-meta-row { gap: 18px; }
  .ap-manager { margin-left: 0; }
  .ap-details-bar { grid-template-columns: 1fr; }
  .ap-details-bar .ap-quote-btn { justify-self: start; }
  .ap-gallery { grid-template-columns: 1fr; }
}


/* =========================================
   GESTAVIA UPDATE — Solid nav band
   (pages without a hero, e.g. Airport Detail)
   ========================================= */
.ap-nav-band {
  height: 152px;
  background: var(--bg-dark-teal, #0d3742);
}
@media (max-width: 900px) {
  .ap-nav-band { height: 104px; }
}


/* GESTAVIA UPDATE — network cards on Home are now links to the airport pages */
a.network-card { display: block; text-decoration: none; color: inherit; cursor: pointer; }
a.network-card:hover .photo img { transform: scale(1.04); }
.network-card .photo img { transition: transform 0.35s ease; }
