/* ==========================================================================
   Galvão Neves Transportes: sistema visual do site (páginas internas + casca).
   Marinho domina, laranja é luz e sinal. Cantos 2px, sem sombra decorativa:
   profundidade vem de sobreposição, corte diagonal e contraste de fundo.
   O corte diagonal e a faixa laranja vêm do símbolo GN.
   ========================================================================== */

:root {
  --navy: #2B3990;
  --navy-2: #222D74;
  --noite: #0A0D24;
  --noite-2: #10144A;
  --tinta: #1A1A1A;
  --suave: #4B4F6B;
  --suave-claro: #B4B8D8;
  --linha: #E3E5F0;
  --papel: #F5F6FA;
  --laranja: #F78735;
  --laranja-2: #F99A55;
  --branco: #FFFFFF;

  --f-display: "Sora", system-ui, sans-serif;
  --f-texto: "Plus Jakarta Sans", system-ui, sans-serif;

  --gutter: clamp(20px, 5vw, 80px);
  --maxw: 1240px;
  --topo-h: 84px;
  --r: 2px;
  --ease: cubic-bezier(0.23, 1, 0.32, 1);

  /* o motor scrollcraft lê estes: nas internas o chão é branco */
  --sc-canvas: #FFFFFF;
  --sc-surface: #F5F6FA;
  --sc-ink: #1A1A1A;
  --sc-ink-soft: #4B4F6B;
  --sc-accent: #F78735;
  --sc-accent-ink: #14110C;
  --sc-font-display: "Sora", system-ui, sans-serif;
  --sc-font-text: "Plus Jakarta Sans", system-ui, sans-serif;
  --sc-r-sm: 2px; --sc-r-md: 2px; --sc-r-lg: 2px; --sc-r-pill: 2px;
  --sc-e1: none; --sc-e2: none; --sc-e3: none;
}

body.gn {
  margin: 0; background: var(--branco); color: var(--tinta);
  font: 400 1.0625rem/1.65 var(--f-texto);
  -webkit-font-smoothing: antialiased;
}
body.gn.menu-aberto { overflow: hidden; }
:where(.gn) a { color: inherit; }
.gn :is(h1, h2, h3, h4) { font-family: var(--f-display); letter-spacing: -0.02em; text-wrap: balance; margin: 0; }
.gn p { margin: 0; text-wrap: pretty; }
.gn img { max-width: 100%; height: auto; display: block; }
.gn :focus-visible { outline: 2px solid var(--laranja); outline-offset: 3px; }
.gn-pular { position: absolute; left: -9999px; top: 8px; z-index: 200; background: var(--laranja); color: #14110C; padding: 10px 14px; font-weight: 700; }
.gn-pular:focus { left: 8px; }

.gn-caixa { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.gn-secao { padding-block: clamp(4.5rem, 9vw, 8.5rem); }
.gn-secao--papel { background: var(--papel); }
.gn-secao--noite { background: var(--noite); color: var(--branco); }
.gn-rotulo { font: 700 0.78rem/1 var(--f-texto); letter-spacing: 0.14em; text-transform: uppercase; color: var(--navy); }
.gn-secao--noite .gn-rotulo, .gn-hero .gn-rotulo { color: var(--laranja); }
.gn-h2 { font-weight: 800; font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.2rem); line-height: 1.04; color: var(--navy); }
.gn-secao--noite .gn-h2 { color: var(--branco); }
.gn-lead { font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem); line-height: 1.55; color: var(--suave); max-width: 44rem; }
.gn-secao--noite .gn-lead { color: var(--suave-claro); }

/* ---------- botões ---------- */
.gn-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6em; white-space: nowrap;
  font: 700 0.98rem/1 var(--f-texto); text-decoration: none; letter-spacing: 0.01em;
  padding: 1.05rem 1.4rem; border-radius: var(--r); border: 2px solid transparent;
  transition: background-color 160ms var(--ease), color 160ms var(--ease), border-color 160ms var(--ease), transform 120ms var(--ease);
}
.gn-btn:active { transform: translateY(1px); }
.gn-btn--laranja { background: var(--laranja); color: #14110C; }
.gn-btn--navy { background: var(--navy); color: var(--branco); }
.gn-btn--linha { border-color: currentColor; color: inherit; background: transparent; }
.gn-btn svg { width: 1.1em; height: 1.1em; flex: none; }
@media (hover: hover) and (pointer: fine) {
  .gn-btn--laranja:hover { background: var(--laranja-2); }
  .gn-btn--navy:hover { background: var(--navy-2); }
  .gn-btn--linha:hover { background: color-mix(in oklab, currentColor 10%, transparent); }
}
.gn-acoes { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- topo ---------- */
.gn-topo {
  position: fixed; inset: 0 0 auto 0; z-index: 90; height: var(--topo-h);
  color: var(--branco); background: transparent;
  transition: background-color 220ms var(--ease), color 220ms var(--ease), box-shadow 220ms var(--ease);
}
.admin-bar .gn-topo { top: 32px; }
@media (max-width: 782px) { .admin-bar .gn-topo { top: 46px; } }
.gn-topo__in { height: 100%; display: flex; align-items: center; gap: clamp(16px, 2.4vw, 40px); }
.gn-topo__logo { display: block; width: clamp(150px, 13vw, 196px); line-height: 0; flex: none; }
.gn-topo__logo svg { width: 100%; height: auto; }
.gn-logo .gn-navy { fill: #FFFFFF; transition: fill 220ms var(--ease); }
.gn-topo.is-solido, .topo-claro .gn-topo { background: var(--branco); color: var(--navy); box-shadow: 0 1px 0 var(--linha); }
.gn-topo.is-solido .gn-logo .gn-navy, .topo-claro .gn-topo .gn-logo .gn-navy { fill: #2B3990; }
.gn-nav { margin-left: auto; }
.gn-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(8px, 1.6vw, 28px); }
.gn-nav > ul > li { position: relative; }
.gn-nav > ul > li > a, .gn-nav__sub-btn {
  display: inline-flex; align-items: center; gap: 6px; height: var(--topo-h);
  font: 600 0.95rem/1 var(--f-texto); text-decoration: none; background: none; border: 0; color: inherit; cursor: pointer; padding: 0;
  background-image: linear-gradient(var(--laranja), var(--laranja)); background-size: 0 2px; background-repeat: no-repeat; background-position: 0 calc(50% + 14px);
  transition: background-size 200ms var(--ease);
}
.gn-nav > ul > li > a:hover, .gn-nav > ul > li > a[aria-current="page"], .gn-nav__sub-btn:hover { background-size: 100% 2px; }
.gn-nav__sub-btn svg { width: 12px; height: 12px; transition: transform 200ms var(--ease); }
.gn-sub {
  position: absolute; top: calc(var(--topo-h) - 8px); left: -24px; width: min(620px, 80vw);
  background: var(--branco); color: var(--tinta); border-top: 3px solid var(--laranja);
  display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 10px;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity 180ms var(--ease), transform 180ms var(--ease), visibility 0s 180ms;
  box-shadow: 0 24px 48px -24px rgba(10, 13, 36, 0.35);
}
.gn-nav li:hover > .gn-sub, .gn-nav li:focus-within > .gn-sub, .gn-nav li.is-aberto > .gn-sub {
  opacity: 1; visibility: visible; transform: none; transition: opacity 180ms var(--ease), transform 180ms var(--ease);
}
.gn-nav li:hover .gn-nav__sub-btn svg, .gn-nav li.is-aberto .gn-nav__sub-btn svg { transform: rotate(180deg); }
.gn-sub a { display: block; padding: 16px 18px; text-decoration: none; border-radius: var(--r); }
.gn-sub a:hover { background: var(--papel); }
.gn-sub strong { display: block; font: 700 1rem/1.25 var(--f-display); color: var(--navy); margin-bottom: 4px; }
.gn-sub span { display: block; font-size: 0.88rem; line-height: 1.45; color: var(--suave); }
.gn-topo__cta { flex: none; padding: 0.85rem 1.15rem; }
.gn-topo__menu { display: none; margin-left: auto; background: none; border: 1px solid currentColor; color: inherit; font: 600 0.9rem/1 var(--f-texto); padding: 0.7rem 0.95rem; border-radius: var(--r); cursor: pointer; }

.gn-gaveta { position: fixed; inset: 0; z-index: 95; background: var(--noite); color: var(--branco);
  display: flex; flex-direction: column; padding: calc(var(--topo-h) + 16px) var(--gutter) 32px; overflow-y: auto;
  opacity: 0; visibility: hidden; transition: opacity 220ms var(--ease), visibility 0s 220ms; }
.gn-gaveta.is-aberta { opacity: 1; visibility: visible; transition: opacity 220ms var(--ease); }
.gn-gaveta__fechar { position: absolute; top: 22px; right: var(--gutter); background: none; color: inherit; border: 1px solid currentColor; padding: 0.7rem 0.95rem; font: 600 0.9rem/1 var(--f-texto); border-radius: var(--r); }
.gn-gaveta nav a { display: block; font: 700 clamp(1.6rem, 6vw, 2.2rem)/1.15 var(--f-display); text-decoration: none; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.gn-gaveta nav a.sub { font-size: 1.1rem; font-weight: 600; color: var(--suave-claro); padding-left: 16px; }
.gn-gaveta .gn-btn { margin-top: 28px; align-self: flex-start; }

@media (max-width: 1080px) {
  .gn-nav, .gn-topo__cta { display: none; }
  .gn-topo__menu { display: inline-flex; }
  :root { --topo-h: 72px; }
}

/* ---------- abertura (hero) com corte diagonal ---------- */
.gn-hero { position: relative; background: var(--noite); color: var(--branco); isolation: isolate; }
.gn-hero__palco { position: relative; min-height: clamp(560px, 88vh, 860px); display: grid; align-items: end; }
.gn-hero__foto, .gn-hero__faixa { position: absolute; inset: 0 0 0 47%; }
.gn-hero__foto { --corte: 14%; clip-path: polygon(var(--corte) 0, 100% 0, 100% 100%, 0 100%); z-index: -1; overflow: hidden; }
.gn-hero__foto img { width: 100%; height: 100%; object-fit: cover; transform: scale(calc(1.06 - var(--sc-p, 0) * 0.04)); }
.gn-hero__foto::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(10,13,36,0.72) 0%, rgba(10,13,36,0.18) 36%, transparent 62%), linear-gradient(0deg, rgba(10,13,36,0.55), transparent 42%); }
.gn-hero__faixa { --corte: 14%; clip-path: polygon(calc(var(--corte) - 0px) 0, calc(var(--corte) + 14px) 0, 14px 100%, 0 100%); background: var(--laranja); z-index: -1; }
.gn-hero__texto { position: relative; padding: calc(var(--topo-h) + 64px) 0 clamp(120px, 14vh, 160px); max-width: min(40rem, 45%); }
.gn-trilha { display: flex; flex-wrap: wrap; gap: 8px; font: 600 0.82rem/1 var(--f-texto); color: var(--suave-claro); margin-bottom: 28px; }
.gn-trilha a { text-decoration: none; }
.gn-trilha a:hover { color: var(--branco); }
.gn-trilha span[aria-hidden] { color: var(--laranja); }
.gn-hero h1 { font-weight: 800; font-size: clamp(2.3rem, 1.2rem + 3.3vw, 4.3rem); line-height: 1; letter-spacing: -0.035em; margin-bottom: 24px; }
.gn-hero h1 em { font-style: normal; color: var(--laranja); }
.gn-hero__lead { font-size: clamp(1.1rem, 1rem + 0.45vw, 1.35rem); line-height: 1.5; color: #D8DBEF; max-width: 36rem; margin-bottom: 36px; }

.gn-ficha { position: relative; z-index: 2; margin: -64px 0 0; }
.gn-ficha dl { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--branco); color: var(--tinta); border-top: 4px solid var(--laranja); box-shadow: 0 1px 0 var(--linha); }
.gn-ficha div { padding: 26px 28px; border-right: 1px solid var(--linha); }
.gn-ficha div:last-child { border-right: 0; }
.gn-ficha dt { font: 700 0.74rem/1 var(--f-texto); letter-spacing: 0.12em; text-transform: uppercase; color: var(--suave); margin-bottom: 10px; }
.gn-ficha dd { margin: 0; font: 700 1.12rem/1.3 var(--f-display); color: var(--navy); }

@media (max-width: 900px) {
  .gn-hero__palco { min-height: 0; align-items: start; }
  .gn-hero__foto, .gn-hero__faixa { position: relative; inset: auto; width: 100%; height: 46vh; min-height: 280px; }
  .gn-hero__foto { --corte: 0; clip-path: polygon(0 0, 100% 0, 100% 78%, 0 100%); z-index: 0; }
  .gn-hero__faixa { position: absolute; left: 0; right: 0; top: 0; height: 46vh; min-height: 280px; clip-path: polygon(0 calc(100% - 12px), 100% calc(78% - 12px), 100% 78%, 0 100%); z-index: 1; }
  .gn-hero__texto { max-width: none; padding: 28px 0 110px; }
  .gn-hero .gn-caixa { order: 2; }
  .gn-hero__palco { display: flex; flex-direction: column; }
  .gn-hero__palco > .gn-hero__foto { order: 0; }
  .gn-ficha dl { grid-template-columns: 1fr 1fr; }
  .gn-ficha div:nth-child(2) { border-right: 0; }
  .gn-ficha div:nth-child(-n+2) { border-bottom: 1px solid var(--linha); }
}
@media (max-width: 420px) { .gn-ficha div { padding: 18px 16px; } .gn-ficha dd { font-size: 1rem; } }

/* ---------- divisão: título fixo + conteúdo ---------- */
.gn-divide { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.gn-divide__titulo { position: sticky; top: calc(var(--topo-h) + 32px); }
.gn-divide__titulo .gn-rotulo { display: block; margin-bottom: 18px; }
.gn-divide__titulo .gn-lead { margin-top: 20px; }
.gn-texto > * + * { margin-top: 1.1em; }
.gn-texto { font-size: 1.1rem; line-height: 1.7; color: #2B2E45; }
.gn-texto strong { color: var(--tinta); }
.gn-texto a { color: var(--navy); font-weight: 600; text-underline-offset: 3px; }
@media (max-width: 900px) { .gn-divide { grid-template-columns: 1fr; } .gn-divide__titulo { position: static; } }

/* lista com marcador de faixa (paralelogramo laranja) */
.gn-checks { list-style: none; margin: 0; padding: 0; }
.gn-checks li { position: relative; padding: 22px 0 22px 44px; border-top: 1px solid var(--linha); font-size: 1.08rem; line-height: 1.55; }
.gn-checks li:last-child { border-bottom: 1px solid var(--linha); }
.gn-checks li::before { content: ""; position: absolute; left: 0; top: 30px; width: 22px; height: 10px; background: var(--laranja); clip-path: polygon(0 0, 60% 0, 100% 100%, 40% 100%); }
.gn-checks .gn-checks__t { display: block; font: 700 1.12rem/1.3 var(--f-display); color: var(--navy); margin-bottom: 4px; }
.gn-checks strong:not(.gn-checks__t) { font-weight: 700; color: var(--tinta); }
.gn-secao--noite .gn-checks li { border-color: rgba(255,255,255,0.12); color: #D8DBEF; }
.gn-secao--noite .gn-checks strong { color: var(--branco); }

/* ---------- etapas ligadas pela rota ---------- */
.gn-passos { margin-top: clamp(3rem, 6vw, 5rem); display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 28px; position: relative; list-style: none; padding: 0; counter-reset: passo; }
.gn-passos::before, .gn-passos::after { content: ""; position: absolute; left: 0; right: 0; top: 11px; height: 2px; }
.gn-passos::before { background: var(--linha); }
.gn-secao--noite .gn-passos::before { background: rgba(255,255,255,0.14); }
.gn-passos::after { background: var(--laranja); transform-origin: 0 50%; transform: scaleX(var(--rota, 0)); transition: transform 120ms linear; }
.gn-passos li { position: relative; padding-top: 44px; counter-increment: passo; }
.gn-passos li::before { content: ""; position: absolute; left: 0; top: 4px; width: 16px; height: 16px; transform: rotate(45deg); background: var(--branco); border: 2px solid var(--linha); z-index: 1; transition: background-color 200ms var(--ease), border-color 200ms var(--ease); }
.gn-secao--noite .gn-passos li::before { background: var(--noite); border-color: rgba(255,255,255,0.3); }
.gn-passos li.is-passou::before { background: var(--laranja); border-color: var(--laranja); }
.gn-passos .num { font: 700 0.78rem/1 var(--f-texto); letter-spacing: 0.12em; color: var(--laranja); display: block; margin-bottom: 12px; }
.gn-passos h3 { font-size: 1.28rem; line-height: 1.2; font-weight: 700; margin-bottom: 10px; color: var(--navy); }
.gn-secao--noite .gn-passos h3 { color: var(--branco); }
.gn-passos p { color: var(--suave); font-size: 1rem; line-height: 1.6; }
.gn-secao--noite .gn-passos p { color: var(--suave-claro); }
@media (max-width: 900px) {
  .gn-passos { grid-template-columns: 1fr; gap: 0; padding-left: 36px; }
  .gn-passos::before, .gn-passos::after { left: 7px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .gn-passos::after { transform-origin: 50% 0; transform: scaleY(var(--rota, 0)); }
  .gn-passos li { padding: 0 0 36px; }
  .gn-passos li::before { left: -36px; top: 2px; }
}

/* ---------- mosaico: um bloco forte + lista ---------- */
.gn-mosaico { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: 2px; background: var(--linha); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gn-mosaico__forte { background: var(--navy); color: var(--branco); padding: clamp(2rem, 4vw, 3.5rem); display: flex; flex-direction: column; justify-content: space-between; gap: 40px; position: relative; overflow: hidden; }
.gn-mosaico__forte h3 { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.4rem); line-height: 1.08; font-weight: 800; }
.gn-mosaico__forte p { color: #D8DBEF; max-width: 30rem; }
.gn-mosaico__forte > * { position: relative; z-index: 1; }
.gn-mosaico__forte::after { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; background: var(--laranja); clip-path: polygon(0 0, 30% 0, 100% 70%, 100% 100%, 70% 100%, 0 30%); opacity: 0.9; }
.gn-mosaico__lista { background: var(--branco); display: grid; }
.gn-mosaico__item { padding: 28px clamp(1.5rem, 3vw, 2.5rem); border-bottom: 1px solid var(--linha); display: grid; grid-template-columns: 28px 1fr; gap: 16px; align-items: start; }
.gn-mosaico__item:last-child { border-bottom: 0; }
.gn-mosaico__item svg { width: 28px; height: 28px; color: var(--navy); }
.gn-mosaico__item h3 { font-size: 1.12rem; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.gn-mosaico__item p { color: var(--suave); font-size: 1rem; line-height: 1.55; }
.gn-mosaico__item a { color: var(--navy); font-weight: 600; }
@media (max-width: 900px) { .gn-mosaico { grid-template-columns: 1fr; } }

/* ---------- perguntas ---------- */
.gn-faq { margin-top: 12px; }
.gn-faq details { border-top: 1px solid var(--linha); }
.gn-faq details:last-child { border-bottom: 1px solid var(--linha); }
.gn-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; font: 700 1.15rem/1.35 var(--f-display); color: var(--navy); }
.gn-faq summary::-webkit-details-marker { display: none; }
.gn-faq summary::after { content: ""; flex: none; width: 18px; height: 18px; background:
  linear-gradient(var(--laranja), var(--laranja)) center/100% 2px no-repeat, linear-gradient(var(--laranja), var(--laranja)) center/2px 100% no-repeat; transition: transform 200ms var(--ease); }
.gn-faq details[open] summary::after { transform: rotate(45deg); }
.gn-faq details > div { padding: 0 0 26px; color: var(--suave); max-width: 52rem; font-size: 1.05rem; line-height: 1.65; }

/* ---------- chamada (faixa de cotação) ---------- */
.gn-chamada { position: relative; background: var(--navy); color: var(--branco); overflow: hidden; isolation: isolate; }
.gn-chamada__in { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 40px; align-items: end; padding-block: clamp(4rem, 8vw, 6.5rem); }
.gn-chamada h2 { font-weight: 800; font-size: clamp(2rem, 1.2rem + 3vw, 3.6rem); line-height: 1.02; max-width: 18ch; }
.gn-chamada p { color: #D8DBEF; margin-top: 18px; max-width: 34rem; font-size: 1.12rem; }
.gn-chamada__faixa { position: absolute; z-index: -1; right: -6%; top: -30%; width: 46%; height: 160%; background: var(--laranja);
  clip-path: polygon(0 0, 22% 0, 100% 78%, 100% 100%, 78% 100%, 0 22%); opacity: 0.16; }
.gn-chamada .gn-acoes { justify-content: flex-end; }
@media (max-width: 900px) { .gn-chamada__in { grid-template-columns: 1fr; } .gn-chamada .gn-acoes { justify-content: flex-start; } }

/* ---------- outros serviços ---------- */
.gn-outros { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); border-top: 1px solid var(--linha); margin-top: 40px; }
.gn-outros a { display: flex; flex-direction: column; gap: 10px; padding: 28px 24px 28px 0; text-decoration: none; border-bottom: 1px solid var(--linha); }
.gn-outros a + a { padding-left: 24px; border-left: 1px solid var(--linha); }
.gn-outros strong { font: 700 1.3rem/1.2 var(--f-display); color: var(--navy); display: flex; justify-content: space-between; gap: 12px; }
.gn-outros strong::after { content: "→"; color: var(--laranja); transition: transform 180ms var(--ease); }
.gn-outros a:hover strong::after { transform: translateX(6px); }
.gn-outros span { color: var(--suave); font-size: 0.98rem; }
@media (max-width: 760px) { .gn-outros a + a { padding-left: 0; border-left: 0; } }

/* ---------- números reais ---------- */
.gn-numeros { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,0.14); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gn-numeros div { padding: 32px 28px 8px 0; }
.gn-numeros div + div { padding-left: 28px; border-left: 1px solid rgba(255,255,255,0.14); }
.gn-numeros b { display: block; font: 800 clamp(2.8rem, 1.8rem + 3.6vw, 5rem)/0.95 var(--f-display); letter-spacing: -0.04em; color: var(--branco); }
.gn-numeros b i { font-style: normal; color: var(--laranja); }
.gn-numeros span { display: block; margin-top: 14px; color: var(--suave-claro); max-width: 18rem; }
.gn-secao:not(.gn-secao--noite) .gn-numeros { border-color: var(--linha); }
.gn-secao:not(.gn-secao--noite) .gn-numeros b { color: var(--navy); }
.gn-secao:not(.gn-secao--noite) .gn-numeros span { color: var(--suave); }
.gn-secao:not(.gn-secao--noite) .gn-numeros div + div { border-color: var(--linha); }
@media (max-width: 760px) { .gn-numeros { grid-template-columns: 1fr; } .gn-numeros div + div { padding-left: 0; border-left: 0; border-top: 1px solid rgba(255,255,255,0.14); } }

/* ---------- serviços (hub): painéis grandes ---------- */
.gn-paineis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; background: var(--noite); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gn-painel { position: relative; min-height: 440px; color: var(--branco); text-decoration: none; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(1.75rem, 3vw, 2.75rem); isolation: isolate; }
.gn-painel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 600ms var(--ease); }
.gn-painel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(10,13,36,0.92) 0%, rgba(10,13,36,0.55) 45%, rgba(10,13,36,0.15) 100%); }
.gn-painel h3 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); line-height: 1.05; font-weight: 800; margin-bottom: 12px; }
.gn-painel p { color: #D8DBEF; max-width: 30rem; }
.gn-painel .gn-painel__ideal { margin-top: 14px; padding-left: 12px; border-left: 2px solid var(--laranja); color: var(--branco); font-size: 0.95rem; }
.gn-painel__ideal b { color: var(--laranja-2); font-weight: 700; }
.gn-painel .ir { margin-top: 22px; font-weight: 700; display: inline-flex; gap: 10px; align-items: center; }
.gn-painel .ir::after { content: ""; width: 28px; height: 2px; background: var(--laranja); transition: width 200ms var(--ease); }
@media (hover: hover) and (pointer: fine) { .gn-painel:hover img { transform: scale(1.04); } .gn-painel:hover .ir::after { width: 48px; } }
@media (max-width: 860px) { .gn-paineis { grid-template-columns: 1fr; } .gn-painel { min-height: 360px; } }

/* ---------- frota: fichas de veículo ---------- */
.gn-veiculos { display: grid; gap: clamp(3rem, 6vw, 5.5rem); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gn-veiculo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.gn-veiculo:nth-child(even) { grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); }
.gn-veiculo:nth-child(even) .gn-veiculo__foto { order: 2; }
.gn-veiculo__foto { position: relative; background: var(--noite); aspect-ratio: 16 / 10; overflow: hidden; }
.gn-veiculo__foto img { width: 100%; height: 100%; object-fit: cover; }
.gn-veiculo__foto::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38%; height: 8px; background: var(--laranja); clip-path: polygon(0 0, 92% 0, 100% 100%, 0 100%); }
.gn-veiculo h3 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); font-weight: 800; color: var(--navy); line-height: 1; margin-bottom: 18px; }
.gn-veiculo > div > p { color: var(--suave); font-size: 1.08rem; margin-bottom: 24px; }
.gn-spec { margin: 0; border-top: 1px solid var(--linha); }
.gn-spec div { display: grid; grid-template-columns: 9rem 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--linha); }
.gn-spec dt { font: 700 0.76rem/1.6 var(--f-texto); letter-spacing: 0.1em; text-transform: uppercase; color: var(--suave); }
.gn-spec dd { margin: 0; font-weight: 600; color: var(--tinta); }
@media (max-width: 900px) { .gn-veiculo, .gn-veiculo:nth-child(even) { grid-template-columns: 1fr; } .gn-veiculo:nth-child(even) .gn-veiculo__foto { order: 0; } }

/* ---------- linha do tempo (quem somos) ---------- */
.gn-tempo { list-style: none; margin: clamp(2.5rem, 5vw, 4rem) 0 0; padding: 0 0 0 clamp(40px, 8vw, 120px); position: relative; }
.gn-tempo::before { content: ""; position: absolute; left: clamp(12px, 3vw, 44px); top: 8px; bottom: 8px; width: 2px; background: rgba(255,255,255,0.16); }
.gn-tempo::after { content: ""; position: absolute; left: clamp(12px, 3vw, 44px); top: 8px; bottom: 8px; width: 2px; background: var(--laranja); transform-origin: 50% 0; transform: scaleY(var(--rota, 0)); }
.gn-tempo li { position: relative; padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.gn-tempo li::before { content: ""; position: absolute; left: calc(-1 * clamp(40px, 8vw, 120px) + clamp(12px, 3vw, 44px) - 7px); top: 10px; width: 16px; height: 16px; transform: rotate(45deg); background: var(--noite); border: 2px solid var(--laranja); }
.gn-tempo .quando { font: 800 clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem)/1 var(--f-display); color: var(--laranja); letter-spacing: -0.03em; display: block; margin-bottom: 10px; }
.gn-tempo h3 { font-size: 1.35rem; font-weight: 700; margin-bottom: 8px; }
.gn-tempo p { color: var(--suave-claro); max-width: 40rem; }

/* ---------- cotação: montador ---------- */
.gn-cotar { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.gn-form { background: var(--branco); border-top: 4px solid var(--laranja); padding: clamp(1.5rem, 3.5vw, 3rem); box-shadow: 0 1px 0 var(--linha), 0 0 0 1px var(--linha); }
.gn-form fieldset { border: 0; margin: 0 0 22px; padding: 0; }
.gn-form legend, .gn-form label > span { display: block; font: 700 0.8rem/1.2 var(--f-texto); letter-spacing: 0.08em; text-transform: uppercase; color: var(--suave); margin-bottom: 8px; }
.gn-form .linha2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gn-form label { display: block; margin-bottom: 18px; }
.gn-form input[type=text], .gn-form select, .gn-form textarea {
  width: 100%; font: 500 1.02rem/1.4 var(--f-texto); color: var(--tinta); background: var(--papel);
  border: 1px solid var(--linha); border-bottom: 2px solid #C9CCE0; border-radius: var(--r); padding: 14px 14px; }
.gn-form input:focus, .gn-form select:focus, .gn-form textarea:focus { outline: none; border-bottom-color: var(--laranja); background: var(--branco); }
.gn-form textarea { min-height: 96px; resize: vertical; }
.gn-opcoes { display: flex; flex-wrap: wrap; gap: 8px; }
.gn-opcoes label { margin: 0; }
.gn-opcoes input { position: absolute; opacity: 0; pointer-events: none; }
.gn-opcoes span { display: inline-block; padding: 11px 16px; border: 1px solid var(--linha); border-radius: var(--r); font-weight: 600; cursor: pointer; background: var(--papel); transition: background-color 150ms var(--ease), border-color 150ms var(--ease), color 150ms var(--ease); }
.gn-opcoes input:checked + span { background: var(--navy); border-color: var(--navy); color: var(--branco); }
.gn-opcoes input:focus-visible + span { outline: 2px solid var(--laranja); outline-offset: 2px; }
.gn-form .gn-acoes { margin-top: 8px; }
.gn-form__nota { margin-top: 16px; font-size: 0.9rem; color: var(--suave); }
.gn-cotar__lado { position: sticky; top: calc(var(--topo-h) + 32px); }
.gn-cotar__lado .gn-checks li { font-size: 1rem; padding-block: 18px; }
@media (max-width: 900px) { .gn-cotar { grid-template-columns: 1fr; } .gn-cotar__lado { position: static; } .gn-form .linha2 { grid-template-columns: 1fr; } }

/* ---------- contato ---------- */
.gn-contatos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; background: var(--linha); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gn-contato { background: var(--branco); padding: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-direction: column; gap: 12px; }
.gn-contato:first-child { background: var(--navy); color: var(--branco); }
.gn-contato h3 { font-size: 0.8rem; font-family: var(--f-texto); letter-spacing: 0.12em; text-transform: uppercase; color: var(--suave); }
.gn-contato:first-child h3 { color: var(--laranja); }
.gn-contato b { font: 700 clamp(1.3rem, 1rem + 1vw, 1.7rem)/1.2 var(--f-display); word-break: break-word; }
.gn-contato p { color: var(--suave); }
.gn-contato:first-child p { color: #D8DBEF; }
.gn-contato .gn-btn { margin-top: auto; align-self: flex-start; }
.gn-mapa { margin-top: 2px; aspect-ratio: 21 / 8; background: var(--papel); }
.gn-mapa iframe { width: 100%; height: 100%; border: 0; filter: grayscale(0.4); }
@media (max-width: 900px) { .gn-contatos { grid-template-columns: 1fr; } .gn-mapa { aspect-ratio: 4 / 3; } }

/* ---------- blog ---------- */
.gn-artigos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; background: var(--linha); margin-top: clamp(2rem, 4vw, 3rem); }
.gn-artigo-card { background: var(--branco); padding: clamp(1.75rem, 3vw, 2.5rem); text-decoration: none; display: flex; flex-direction: column; gap: 14px; min-height: 260px; }
.gn-artigo-card:first-child { grid-column: 1 / -1; background: var(--noite); color: var(--branco); min-height: 320px; justify-content: flex-end; }
.gn-artigo-card .cat { font: 700 0.76rem/1 var(--f-texto); letter-spacing: 0.12em; text-transform: uppercase; color: var(--laranja); }
.gn-artigo-card h2 { font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.8rem); font-weight: 700; line-height: 1.15; color: var(--navy); }
.gn-artigo-card:first-child h2 { color: var(--branco); font-size: clamp(1.8rem, 1.2rem + 2vw, 2.8rem); max-width: 22ch; }
.gn-artigo-card p { color: var(--suave); }
.gn-artigo-card:first-child p { color: var(--suave-claro); max-width: 40rem; }
.gn-artigo-card .ler { margin-top: auto; font-weight: 700; color: var(--navy); }
.gn-artigo-card:first-child .ler { color: var(--branco); }
@media (hover: hover) and (pointer: fine) { .gn-artigo-card:hover h2 { text-decoration: underline; text-decoration-color: var(--laranja); text-underline-offset: 6px; text-decoration-thickness: 2px; } }
@media (max-width: 760px) { .gn-artigos { grid-template-columns: 1fr; } }

/* artigo e documento */
.gn-cabeca { background: var(--papel); padding: calc(var(--topo-h) + clamp(3rem, 7vw, 5.5rem)) 0 clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid var(--linha); }
.gn-cabeca .gn-trilha { color: var(--suave); }
.gn-cabeca .gn-trilha a:hover { color: var(--navy); }
.gn-cabeca h1 { font-weight: 800; font-size: clamp(2.1rem, 1.3rem + 3vw, 3.8rem); line-height: 1.04; color: var(--navy); max-width: 22ch; }
.gn-cabeca .meta { margin-top: 18px; color: var(--suave); font-size: 0.95rem; }
.gn-leitura { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(3rem, 6vw, 5rem); align-items: start; }
.gn-prosa { max-width: 44rem; font-size: 1.12rem; line-height: 1.75; color: #2B2E45; }
.gn-prosa > * + * { margin-top: 1.15em; }
.gn-prosa h2 { font-size: clamp(1.45rem, 1.2rem + 0.9vw, 1.95rem); font-weight: 700; color: var(--navy); line-height: 1.2; margin-top: 2.2em; }
.gn-prosa h3 { font-size: 1.2rem; font-weight: 700; color: var(--navy); margin-top: 1.8em; }
.gn-prosa a { color: var(--navy); font-weight: 600; text-underline-offset: 3px; }
.gn-prosa ul, .gn-prosa ol { padding-left: 1.3em; }
.gn-prosa li + li { margin-top: 0.5em; }
.gn-prosa li::marker { color: var(--laranja); font-weight: 700; }
.gn-prosa strong { color: var(--tinta); }
.gn-prosa .wp-block-buttons { margin: 2em 0; }
.gn-prosa .wp-block-button__link { display: inline-flex; background: var(--navy) !important; color: #fff !important; font-weight: 700; padding: 1rem 1.3rem; border-radius: var(--r) !important; text-decoration: none; }
.gn-prosa .is-style-outline .wp-block-button__link { background: transparent !important; color: var(--navy) !important; border: 2px solid var(--navy); }
.gn-lateral { position: sticky; top: calc(var(--topo-h) + 32px); background: var(--noite); color: var(--branco); padding: 28px; border-top: 4px solid var(--laranja); }
.gn-lateral h2 { font-size: 1.35rem; font-weight: 800; line-height: 1.15; margin-bottom: 12px; }
.gn-lateral p { color: var(--suave-claro); font-size: 0.98rem; margin-bottom: 20px; }
.gn-lateral .gn-btn { width: 100%; }
@media (max-width: 960px) { .gn-leitura { grid-template-columns: 1fr; } .gn-lateral { position: static; } }

/* ---------- rodapé ---------- */
.gn-rodape { position: relative; background: var(--noite); color: var(--branco); overflow: hidden; isolation: isolate; }
.gn-rodape__cta { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 32px; align-items: end; padding-block: clamp(4rem, 8vw, 7rem) clamp(3rem, 6vw, 4.5rem); border-bottom: 1px solid rgba(255,255,255,0.1); }
.gn-rodape__cta h2 { font-weight: 800; font-size: clamp(2.2rem, 1.2rem + 3.6vw, 4.4rem); line-height: 1; letter-spacing: -0.035em; max-width: 14ch; }
.gn-rodape__cta h2 em { font-style: normal; color: var(--laranja); }
.gn-rodape__grade { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 40px; padding-block: clamp(3rem, 5vw, 4rem); }
.gn-rodape__grade h3 { font: 700 0.78rem/1 var(--f-texto); letter-spacing: 0.14em; text-transform: uppercase; color: var(--laranja); margin-bottom: 18px; }
.gn-rodape__grade ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.gn-rodape__grade a { text-decoration: none; color: #D8DBEF; }
.gn-rodape__grade a:hover { color: var(--branco); text-decoration: underline; text-underline-offset: 3px; }
.gn-rodape__marca .gn-logo { width: 190px; margin-bottom: 18px; }
.gn-rodape__marca p { color: var(--suave-claro); max-width: 22rem; font-size: 0.98rem; }
.gn-rodape__contato li { color: #D8DBEF; }
.gn-rodape__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; padding-block: 24px 36px; border-top: 1px solid rgba(255,255,255,0.1); font-size: 0.86rem; color: var(--suave-claro); }
.gn-rodape__base a { color: var(--suave-claro); }
.gn-rodape__gn { position: absolute; z-index: -1; right: -3%; bottom: -8%; width: clamp(260px, 34vw, 520px); opacity: 0.06; }
.gn-rodape__gn path { fill: #FFFFFF; }
@media (max-width: 960px) { .gn-rodape__cta { grid-template-columns: 1fr; } .gn-rodape__grade { grid-template-columns: 1fr 1fr; } .gn-rodape__marca { grid-column: 1 / -1; } }
@media (max-width: 520px) { .gn-rodape__grade { grid-template-columns: 1fr; } }

/* ---------- movimento ---------- */
@media (prefers-reduced-motion: reduce) {
  .gn *, .gn *::before, .gn *::after { transition-duration: 1ms !important; animation: none !important; }
  .gn-hero__foto img { transform: none; }
  .gn-passos::after, .gn-tempo::after { transform: none; }
}

/* ---------- abertura gráfica (sem foto): o símbolo GN grande no corte ---------- */
.gn-hero__foto--grafica { background: radial-gradient(120% 90% at 80% 30%, #1B2070 0%, var(--noite-2) 45%, var(--noite) 100%); display: grid; place-items: center end; }
.gn-hero__foto--grafica::after { display: none; }
.gn-hero__gn { width: min(58%, 520px); height: auto; margin-right: 8%; overflow: visible; }
.gn-hero__gn path { fill: #2A2F86; }
.gn-hero__gn path:first-child { fill: var(--laranja); }
@media (prefers-reduced-motion: no-preference) {
  .gn-hero__gn path:first-child { animation: gn-faixa 1.1s var(--ease) 0.15s both; }
  @keyframes gn-faixa { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
  .gn-hero__foto img { animation: gn-foto 1.2s var(--ease) both; }
  @keyframes gn-foto { from { opacity: 0; } to { opacity: 1; } }
  .gn-hero__faixa { animation: gn-corte 0.9s var(--ease) 0.1s both; }
  @keyframes gn-corte { from { transform: translateY(-100%); } to { transform: none; } }
}
@media (max-width: 900px) { .gn-hero__foto--grafica { place-items: center; } .gn-hero__gn { width: 46%; margin: 0; } }

/* ---------- cabeçalho de seção e destaques ---------- */
.gn-cabeca-secao { max-width: 52rem; }
.gn-cabeca-secao .gn-rotulo { display: block; margin-bottom: 18px; }
.gn-cabeca-secao .gn-lead { margin-top: 20px; }
.gn-h2 em { font-style: normal; color: var(--navy); background: linear-gradient(transparent 68%, rgba(247, 135, 53, 0.42) 68%); }
.gn-secao--noite .gn-h2 em { color: var(--laranja); background: none; }
.gn-chamada h2 em, .gn-rodape__cta h2 em { color: var(--laranja); font-style: normal; }

/* ---------- declaração: frase grande de largura cheia ---------- */
.gn-declara .gn-rotulo { display: block; margin-bottom: 22px; }
.gn-declara h2 { font-weight: 800; font-size: clamp(2rem, 1.1rem + 3.4vw, 4rem); line-height: 1.04; letter-spacing: -0.035em; color: var(--navy); max-width: 22ch; }
.gn-declara h2 em { font-style: normal; background: linear-gradient(transparent 70%, rgba(247, 135, 53, 0.42) 70%); }
.gn-declara__pe { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 28px 48px; margin-top: clamp(1.75rem, 3vw, 2.75rem); padding-top: clamp(1.5rem, 3vw, 2.25rem); border-top: 1px solid var(--linha); }
.gn-declara__pe .gn-lead { max-width: 34rem; }
.gn-secao--noite .gn-declara h2 { color: var(--branco); }

/* ajustes 24/09: chamada com frase longa e e-mail no card de contato */
.gn-chamada h2 { max-width: 26ch; font-size: clamp(1.9rem, 1.1rem + 2.4vw, 3.1rem); line-height: 1.06; }
.gn-contato b { font-size: clamp(1.05rem, 0.9rem + 0.7vw, 1.45rem); overflow-wrap: anywhere; }

/* texto corrido em seção escura (Pedro, 24/09: "fundo escuro com letra escura") */
.gn-secao--noite .gn-texto { color: #D8DBEF; }
.gn-secao--noite .gn-texto strong { color: var(--branco); }
.gn-secao--noite .gn-texto a, .gn-secao--noite .gn-checks a { color: var(--branco); text-decoration-color: var(--laranja); }

/* ---------- Trabalhe conosco: vagas nas empresas do grupo ---------- */
.gn-grupo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; background: var(--linha); margin-top: clamp(2.5rem, 5vw, 4rem); }
.gn-grupo__card { background: var(--branco); padding: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-direction: column; gap: 14px; }
.gn-grupo__card h3 { font-size: clamp(1.3rem, 1rem + 1vw, 1.7rem); line-height: 1.2; color: var(--navy); }
.gn-grupo__card > p { color: var(--suave); }
.gn-grupo__funcoes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gn-grupo__funcoes li { border: 1px solid var(--linha); background: var(--papel); padding: 6px 12px; font-weight: 600; font-size: 0.95rem; }
.gn-grupo__funcoes em { font-style: normal; color: var(--laranja); margin-left: 6px; }
.gn-grupo__local { font-size: 0.92rem; }
.gn-grupo__card .gn-btn { margin-top: auto; align-self: flex-start; }
@media (max-width: 900px) { .gn-grupo { grid-template-columns: 1fr; } }
