/* GAP V13.1 | Rotas discretas e ondas ancoradas no FINAL de Nossas soluções. */
#solucoes,
.gap-flight-routes-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

/* Fundo decorativo somente: nunca vira um bloco antes dos cards. */
#solucoes::before,
.gap-flight-routes-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url('../brand/flight-routes-overlay.png');
  background-repeat: repeat;
  background-size: clamp(450px, 46vw, 700px) auto;
  background-position: center top;
  opacity: .065;
  pointer-events: none;
  z-index: 0;
}

/* As rotas ficam atrás do conteúdo; os cards e títulos permanecem nítidos. */
#solucoes > .container-gap,
.gap-flight-routes-section > .container-gap {
  position: relative;
  z-index: 2;
}

/* A V13 antiga aplicava position:relative em #solucoes > * e empurrava
   o SVG das ondas para CIMA do título. Corrigimos apenas o desenho da onda. */
#solucoes > svg[viewBox="0 0 1600 340"] {
  position: absolute !important;
  inset: auto 0 0 !important;
  display: block;
  width: 100%;
  height: clamp(300px, 29vw, 420px);
  z-index: 1;
  pointer-events: none;
}

/* Compatibilidade com a onda alternativa criada pelo script V5. */
#solucoes > .gap-v5-services-wave {
  position: absolute !important;
  inset: auto 0 0 !important;
  width: 100%;
  height: clamp(300px, 29vw, 420px);
  z-index: 1;
  pointer-events: none;
}

/* Nas outras seções, manter o fundo ainda mais suave. */
.gap-flight-routes-soft::before {
  opacity: .045;
}

.gap-about-card,
.gap-pillar-card{
  height:100%;
  display:flex;
  flex-direction:column;
}
.gap-about-card-media,
.gap-pillar-card-media{
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:18px;
  margin-bottom:1rem;
  background:#efe7dd;
  box-shadow: inset 0 0 0 1px rgba(1,35,64,.06);
}
.gap-about-card-media img,
.gap-pillar-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.gap-about-card-icon{
  width:3rem;
  height:3rem;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(217,124,43,.12);
  color:var(--color-orange);
}
.gap-about-card h3,
.gap-pillar-card h3{
  margin-top:1rem;
}
.gap-pillar-card .gap-pillars-index{
  font-family:var(--font-display);
  font-size:2.25rem;
  line-height:1;
  color:rgba(217,124,43,.8);
}
.gap-about-video-link{
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:24px;
  border:1px solid var(--color-line);
  background:#fff;
  box-shadow:0 1px 2px rgba(1,35,64,.04),0 10px 26px -16px rgba(1,35,64,.18);
}
.gap-about-video-link img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  display:block;
}
.gap-about-video-link::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(1,35,64,.04),rgba(1,35,64,.28));
}
.gap-about-video-play{
  position:absolute;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  width:74px;
  height:74px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.92);
  color:var(--color-orange);
  font-size:1.9rem;
  font-weight:700;
  z-index:1;
  box-shadow:0 10px 30px rgba(1,35,64,.18);
}
.gap-about-video-caption{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:.25rem;
  color:#fff;
}
.gap-about-video-caption strong{
  font-size:1rem;
  font-weight:800;
}
.gap-about-video-caption span{
  font-size:.9rem;
  opacity:.92;
}
@media (max-width: 767px){
  .gap-about-video-play{ width:62px; height:62px; font-size:1.6rem; }
}
