/* Carisma — manual de normas gráficas V4.0
   Tipografia: títulos Gilda Display, textos Tenor Sans (um só peso, sem itálico); logótipo é arte final (imagem)
   Paleta: Meia-Noite #0E1A2B · Meia-Noite clara #1F2E44 · Pérola #F7F5F1 · Champanhe claro #EFEBE4 (fundo das páginas digitais)
           Champanhe #C4AD82 (um só destaque) · Aço #3A4658 (texto; linhas sobre escuro) · Névoa #B9C0CA (só sobre escuro)
           Tom sobre tom #E5E0D6 (cartões e linhas sobre claro) · Branco só para papel e impressão */
@font-face { font-family: "Gilda Display"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/gilda-display-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Tenor Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/tenor-sans-latin-400-normal.woff2") format("woff2"); }

:root {
  --night: #0E1A2B;
  --night-2: #1F2E44; /* Meia-Noite clara */
  --ink: #3A4658;
  --mist: #B9C0CA;
  --cream: #F7F5F1;   /* Pérola */
  --paper: #EFEBE4;   /* Champanhe claro: fundo das páginas */
  --tone: #E5E0D6;    /* Tom sobre tom */
  --white: #EFEBE4;   /* o branco não se usa no digital */
  --gold: #C4AD82;
  --line: rgba(58,70,88,.2);      /* Aço com transparência, para se ver sobre o Champanhe claro */
  --line-dark: #3A4658;           /* Aço: linhas sobre fundo escuro */
  --display: "Gilda Display", "Bodoni 72", Didot, Georgia, serif;
  --text: "Tenor Sans", "Gill Sans", "Segoe UI", system-ui, sans-serif;
  --wrap: 1280px;
  --pad: clamp(20px, 5.5vw, 92px);
  --header-h: 96px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--text); font-size: 16px; line-height: 1.7; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
[hidden] { display: none !important; }
a { color: inherit; }
ul, ol { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 1.12; color: var(--night); text-wrap: balance; }
p { text-wrap: pretty; }
button, input, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 1px solid var(--gold); outline-offset: 4px; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--gold); color: var(--night); padding: 10px 16px; text-decoration: none; }
.skip:focus { top: 12px; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad); box-sizing: content-box; }

/* Tipografia */
.eyebrow { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink); margin-bottom: 22px; }
.eyebrow--gold { color: var(--mist); }
.label { font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; }
.display, .h1 { font-size: clamp(40px, 4.8vw, 68px); line-height: 1.08; }
.h2 { font-size: clamp(30px, 3.3vw, 48px); line-height: 1.14; }
.lede { font-size: clamp(16px, 1.3vw, 19px); line-height: 1.7; }
.body { font-size: clamp(15.5px, 1.2vw, 17px); line-height: 1.8; }

/* Botões e ligações */
.btn { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 54px; padding: 0 22px 0 26px; border: 1px solid currentColor; background: transparent; font-family: var(--text); font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); }
.btn .chev { font-family: var(--display); font-size: 22px; line-height: 1; letter-spacing: 0; transition: transform .3s var(--ease); }
.btn:hover .chev { transform: translateX(4px); }
.btn--gold { color: var(--cream); border-color: var(--gold); }
.btn--gold:hover { background: var(--gold); color: var(--night); }
.btn--navy { color: var(--night); border-color: var(--night); }
.btn--navy:hover { background: var(--night); color: var(--cream); }
.btn--navy-solid { background: var(--night); color: var(--cream); border-color: var(--night); }
.btn--navy-solid:hover { background: var(--night-2); }
.btn--sm { min-height: 42px; gap: 16px; padding: 0 16px; }
.btns { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 32px; }
.link { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--night); padding-bottom: 6px; border-bottom: 1px solid var(--line); transition: border-color .3s, gap .3s var(--ease); }
.link span { font-family: var(--display); font-size: 20px; letter-spacing: 0; line-height: 1; }
.link:hover { border-color: currentColor; gap: 14px; }
.link--light { color: var(--cream); border-color: var(--line-dark); }

/* Cabeçalho — como no site do Excelsior: transparente sobre a imagem de topo, com esbatido em Meia-Noite; não fica preso ao rolar */
.site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 50; color: var(--cream); background: linear-gradient(to bottom, rgba(14,26,43,.78), rgba(14,26,43,0)); }
.site-header.is-solid { position: relative; background: var(--night); }
.site-header__in { height: var(--header-h); display: flex; align-items: center; gap: clamp(24px, 3vw, 44px); padding: 0 clamp(20px, 5vw, 86px) 0 clamp(20px, 2.4vw, 34px); }
.logo { flex: none; margin-right: auto; }
.logo img { width: clamp(220px, 21vw, 300px); }
.nav ul { display: flex; gap: clamp(22px, 2.6vw, 38px); }
.nav a { position: relative; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--cream); opacity: .78; text-decoration: none; white-space: nowrap; padding: 6px 0; transition: opacity .3s var(--ease); }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform .45s var(--ease); }
.nav a:hover, .nav a:focus-visible, .nav a[aria-current="page"] { opacity: 1; }
.nav a:hover::after, .nav a:focus-visible::after, .nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.header-cta { flex: none; min-height: 44px; padding: 0 16px 0 20px; gap: 18px; font-size: 11.5px; }
.lang-switch { flex: none; padding: 6px 2px; font-size: 12px; letter-spacing: .16em; color: var(--mist); text-decoration: none; }
.lang-switch:hover { color: var(--gold); }
.menu-toggle { display: none; flex: none; width: 46px; height: 46px; padding: 12px 10px; margin-right: -10px; background: none; border: 0; cursor: pointer; }
.menu-toggle span { display: block; height: 1px; background: var(--cream); margin: 6px 0; transition: transform .3s var(--ease), opacity .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.menu-open .site-header { position: fixed; background: var(--night); }
/* Topos escuros ficam por baixo do cabeçalho transparente */
.hero__in { padding-top: calc(var(--header-h) + 72px) !important; }
.hero__in { min-height: min(820px, 100svh); }
.phero--dark { padding-top: 0; }
.phero--dark .phero__inner { padding-top: calc(var(--header-h) + clamp(40px, 5vw, 72px)); }
.mobile-menu { position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0; z-index: 49; background: var(--night); padding: 16px var(--pad) 40px; overflow-y: auto; border-top: 1px solid var(--line-dark); }
.mobile-menu ul { margin-bottom: 32px; }
.mobile-menu li { border-bottom: 1px solid var(--line-dark); }
.mobile-menu a:not(.btn) { display: block; padding: 20px 0; font-family: var(--display); font-size: 28px; color: var(--cream); text-decoration: none; }
.mobile-menu a[aria-current="page"] { color: var(--gold); }
.mobile-menu a.mobile-menu__lang:not(.btn) { display: inline-block; margin-bottom: 24px; padding: 4px 0; font-family: var(--text); font-size: 14px; color: var(--mist); }
.mobile-menu .btn { width: 100%; }

/* Secções */
.section { padding: clamp(72px, 9vw, 136px) 0; }
.section--line { border-top: 1px solid var(--line); }
.section--cream { background: var(--cream); }
.head { margin-bottom: clamp(40px, 5vw, 72px); max-width: 760px; }
.head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; max-width: none; }

/* Hero (início) */
.hero { position: relative; overflow: hidden; background: var(--night); color: var(--cream); }
.hero__media { position: absolute; inset: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,26,43,.86) 0%, rgba(14,26,43,.55) 45%, rgba(14,26,43,.15) 100%); }
.hero__in { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-top: 96px; padding-bottom: 96px; }
.hero .display { color: var(--cream); margin-bottom: 30px; }
.hero .lede { max-width: 520px; color: var(--mist); margin-bottom: 44px; }

/* Colunas numeradas */
.cols { display: grid; gap: clamp(32px, 4vw, 64px); }
.cols--3 { grid-template-columns: repeat(3, 1fr); }
.cols--2 { grid-template-columns: repeat(2, 1fr); row-gap: clamp(48px, 5vw, 72px); }
.cols li { border-top: 1px solid var(--line); padding-top: 26px; }
.cols__n { display: block; font-size: 12px; letter-spacing: .14em; margin-bottom: 18px; }
.cols__t { font-size: clamp(24px, 2vw, 28px); margin-bottom: 16px; }
.cols p { font-size: 15.5px; line-height: 1.75; max-width: 440px; }

/* Linhas numeradas */
.rows { border-top: 1px solid var(--line); }
.rows__item { display: grid; grid-template-columns: 56px minmax(0, .9fr) minmax(0, 1.2fr); gap: 24px; align-items: baseline; padding: clamp(28px, 3vw, 40px) 0; border-bottom: 1px solid var(--line); }
.rows__n { font-size: 12px; letter-spacing: .14em; }
.rows__t { font-size: clamp(24px, 2.1vw, 30px); }
.rows__x { font-size: 15.5px; line-height: 1.75; max-width: 560px; }

/* Blocos imagem + texto */
.split { display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(480px, 46vw, 680px); }
.split__media { position: relative; overflow: hidden; }
.split__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.split__text { display: flex; align-items: center; }
.split__inner { padding: clamp(56px, 6vw, 96px) var(--pad); max-width: 640px; }
.split .h2 { margin-bottom: 30px; }
.split .body { margin-bottom: 36px; }
.split--dark { background: var(--night); color: var(--mist); }
.split--dark .h2 { color: var(--cream); }
.split--light, .split--cream { background: var(--cream); }
.split--rev .split__media { order: 2; }
.plain { margin-bottom: 40px; }
.plain li { font-size: 17px; line-height: 1.85; }
.plain li:last-child { margin-top: 10px; color: var(--cream); }
.caption { position: absolute; left: 24px; bottom: 22px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--cream); background: rgba(14,26,43,.62); padding: 9px 14px; }

/* Faixa com imagem de fundo */
.band { position: relative; overflow: hidden; color: var(--mist); background: var(--night); }
.band__media { position: absolute; inset: 0; }
.band__media img { width: 100%; height: 100%; object-fit: cover; }
.band__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,26,43,.9) 0%, rgba(14,26,43,.7) 50%, rgba(14,26,43,.35) 100%); }
.band__in { position: relative; padding-top: clamp(88px, 10vw, 150px); padding-bottom: clamp(88px, 10vw, 150px); }
.band__in > * { max-width: 600px; }
.band .h2 { color: var(--cream); margin-bottom: 28px; }
.band .body { margin-bottom: 44px; }

/* Hero das páginas */
.phero { display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(520px, 50vw, 720px); }
.phero--light { background: var(--cream); }
.phero--dark { background: var(--night); color: var(--mist); }
.phero--dark .h1 { color: var(--cream); }
.phero__text { display: flex; align-items: center; }
.phero__inner { padding: clamp(56px, 6vw, 96px) var(--pad); max-width: 660px; }
.phero .h1 { margin-bottom: 30px; }
.phero .lede { margin-bottom: 44px; max-width: 480px; }
.phero__media { position: relative; overflow: hidden; }
.phero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.phero__media--fade::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 22%; z-index: 1; background: linear-gradient(90deg, var(--cream), rgba(247,245,241,0)); }

/* Frota */
.klass { padding: clamp(72px, 8vw, 120px) 0; overflow: hidden; }
.klass--light { background: var(--cream); }
.klass--dark { background: var(--night); color: var(--mist); }
.klass--dark .h2 { color: var(--cream); }
.klass__in { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.klass--rev .klass__text { order: 2; }
.klass .h2 { margin-bottom: 24px; }
.klass .body { max-width: 460px; }
.klass__seal { width: auto; height: clamp(90px, 9vw, 130px); margin-top: 44px; }
.klass--dark .klass__seal { height: clamp(110px, 11vw, 160px); }
.klass__car img { width: 100%; height: auto; }

/* Motoristas */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 110px); align-items: start; }

/* Contactos */
.contact { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 110px); align-items: start; }
.contact .h2 { margin-bottom: 26px; }
.contact__other { margin-top: 56px; }
.ways { border-top: 1px solid var(--line); }
.ways li { border-bottom: 1px solid var(--line); }
.ways a { display: grid; grid-template-columns: 150px 1fr; gap: 20px; align-items: baseline; padding: 22px 0; text-decoration: none; }
.ways__t { font-family: var(--display); font-size: 26px; color: var(--night); }
.ways__x { font-size: 15px; }
.ways__x b { font-weight: 400; color: var(--night); }
.ways a:hover .ways__t { color: var(--ink); }
.form { background: var(--tone); border: 0; padding: clamp(28px, 3vw, 44px); display: flex; flex-direction: column; gap: 18px; }
.form .eyebrow { margin-bottom: 8px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field span { font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; }
.field input, .field textarea { width: 100%; border: 1px solid var(--line); background: var(--cream); padding: 15px 16px; font-size: 16px; color: var(--night); border-radius: 0; transition: border-color .2s; }
.field textarea { resize: vertical; min-height: 130px; }
.field input::placeholder, .field textarea::placeholder { color: rgba(58,70,88,.72); }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--night); }
.field.is-invalid input, .field.is-invalid textarea { border-color: #A3262A; }
.form .btn { margin-top: 8px; }
.form__ok { color: #1F5E3B; }
.form__err { color: #8E2328; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Próximo passo */
.cta-band { background: var(--night); color: var(--mist); padding: clamp(64px, 7vw, 104px) 0; }
.cta-band__in { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.cta-band .h2 { color: var(--cream); margin-bottom: 14px; }
.cta-band__note { font-size: 15px; }

/* Rodapé */
.site-footer__main { background: var(--night); color: var(--cream); border-top: 1px solid var(--line-dark); padding: 52px 0 56px; }
.site-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; }
.site-footer__grid--two { grid-template-columns: 1.3fr 2fr; }
.site-footer .label { color: var(--mist); font-size: 11px; margin-bottom: 22px; }
.site-footer__group { display: inline-block; transition: opacity .25s; }
.site-footer__group:hover { opacity: .8; }
.site-footer__group img { width: 280px; }
.site-footer__contacts li + li { margin-top: 8px; }
.site-footer__contacts a { text-decoration: none; background: linear-gradient(var(--gold), var(--gold)) 0 100% / 0 1px no-repeat; transition: background-size .3s var(--ease); }
.site-footer__contacts a:hover { background-size: 100% 1px; }
.site-footer__strip { background: var(--cream); padding: 26px 0 34px; }
.site-footer__strip .label { color: var(--ink); }
.logos { display: grid; grid-template-columns: repeat(3, 1fr); justify-items: center; align-items: center; gap: 24px 32px; }
.logos a { display: block; opacity: .9; transition: opacity .25s, transform .25s var(--ease); }
.logos a:hover { opacity: 1; transform: translateY(-2px); }
.logos img { height: calc(var(--fh, 40) * 1px); width: auto; max-width: 100%; }
.site-footer__base { background: var(--cream); color: var(--ink); font-size: 12px; border-top: 1px solid var(--line); }
.site-footer__base .wrap { display: flex; justify-content: space-between; gap: 16px; padding-top: 16px; padding-bottom: 18px; }
.totop { text-decoration: none; }
.totop:hover { color: var(--night); }

/* Animação de entrada */
.js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js [data-reveal].in-view { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
  * { transition-duration: .01ms !important; }
}

/* ---------- Ecrãs médios ---------- */
@media (max-width: 1100px) {
  .nav, .header-cta { display: none; }
  .menu-toggle { display: block; }
  .rows__item { grid-template-columns: 44px 1fr; }
  .rows__x { grid-column: 2; }
}
@media (max-width: 900px) {
  :root { --header-h: 78px; }
  .logo img { width: 190px; }
  .cols--3 { grid-template-columns: 1fr; gap: 0; }
  .cols--3 li { padding-bottom: 32px; }
  .split, .phero { grid-template-columns: 1fr; min-height: 0; }
  .split__media, .phero__media { aspect-ratio: 4 / 3; }
  .split--rev .split__media { order: 0; }
  .phero__media { order: 2; }
  .phero--dark .phero__inner { padding-top: calc(var(--header-h) + 40px); }
  .phero__media--fade::before { display: none; }
  .split__inner, .phero__inner { max-width: none; }
  .klass__in { grid-template-columns: 1fr; }
  .klass--rev .klass__text { order: 0; }
  .klass__seal { margin-top: 32px; }
  .duo, .contact { grid-template-columns: 1fr; }
  .cta-band__in { flex-direction: column; align-items: flex-start; }
  .head--row { flex-direction: column; align-items: flex-start; }
  .site-footer__grid, .site-footer__grid--two { grid-template-columns: 1fr 1fr; }
  .site-footer__grid > div:first-child { grid-column: 1 / -1; }
  .logos img { height: calc(var(--fh, 40) * .9px); }
}
@media (max-width: 600px) {
  .cols--2 { grid-template-columns: 1fr; row-gap: 0; }
  .cols--2 li { padding-bottom: 32px; }
  .rows__item { grid-template-columns: 34px 1fr; gap: 10px 14px; }
  .hero__in { min-height: 92svh; padding-bottom: 64px; }
  .hero__in { padding-top: calc(var(--header-h) + 40px) !important; }
  .hero__media::after { background: linear-gradient(180deg, rgba(14,26,43,.55) 0%, rgba(14,26,43,.82) 100%); }
  .band__media::after { background: rgba(14,26,43,.8); }
  .btn { width: 100%; }
  .btns { flex-direction: column; align-items: stretch; }
  .btns .link { align-self: flex-start; }
  .ways a { grid-template-columns: 1fr; gap: 4px; }
  .site-footer__main { padding: 40px 0 36px; text-align: center; }
  .site-footer__grid, .site-footer__grid--two { grid-template-columns: 1fr; gap: 0; }
  .site-footer__grid > div { padding: 24px 0; }
  .site-footer__grid > div + div { border-top: 1px solid var(--line-dark); }
  .site-footer__grid > div:first-child { padding-top: 0; }
  .site-footer .label { margin-bottom: 14px; }
  .site-footer__group img { width: 210px; margin: 0 auto; }
  .site-footer__strip { text-align: center; }
  .logos { grid-template-columns: 1fr; gap: 26px; }
  .logos img { height: calc(var(--fh, 40) * .85px); }
  .site-footer__base .wrap { flex-direction: column; align-items: center; text-align: center; gap: 6px; }
}
@media (max-width: 380px) {
  .logo img { width: 160px; }
  .site-header__in { gap: 14px; }
}
@media (max-width: 600px) {
  .section { padding: 60px 0; }
  .head { margin-bottom: 34px; }
  .cols li { padding-top: 22px; }
  .cols--3 li, .cols--2 li { padding-bottom: 26px; }
  .cols__n { margin-bottom: 10px; }
  .cols__t { margin-bottom: 10px; }
  .rows__item { padding: 22px 0; }
  .split__inner, .phero__inner { padding-top: 52px; padding-bottom: 52px; }
  .klass { padding: 60px 0; }
  .klass__seal { height: 80px; margin-top: 26px; }
  .klass--dark .klass__seal { height: 100px; }
  .band__in { padding-top: 72px; padding-bottom: 72px; }
  .cta-band { padding: 56px 0; }
}
.phero > *, .split > *, .contact > *, .klass__in > * { min-width: 0; }
@media (max-width: 600px) {
  .btn { white-space: normal; letter-spacing: .14em; gap: 16px; padding: 12px 18px 12px 20px; text-align: left; }
}

.hero__cue, .mobile-menu__mark { display: none; }

/* ================= Telemóvel: versão editorial ================= */
@media (max-width: 600px) {
  /* 1. Topo em ecrã inteiro */
  .hero__in { min-height: 100svh; justify-content: flex-end; padding-bottom: 88px; }
  .hero__media img { object-position: 64% 50%; }
  .hero__media::after { background: linear-gradient(180deg, rgba(14,26,43,.55) 0%, rgba(14,26,43,.05) 34%, rgba(14,26,43,.2) 55%, rgba(14,26,43,.92) 100%); }
  .hero .display { font-size: clamp(40px, 11.5vw, 50px); line-height: 1.04; margin-bottom: 34px; }
  .hero .lede { display: none; }
  .hero__cue { display: block; position: absolute; left: 50%; bottom: 24px; width: 1px; height: 44px; background: linear-gradient(var(--gold), rgba(196,173,130,0)); animation: cue 2.4s var(--ease) infinite; }
  @keyframes cue { 0% { transform: scaleY(0); transform-origin: top; } 45% { transform: scaleY(1); transform-origin: top; } 55% { transform: scaleY(1); transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

  /* 2 + 3. Imagem vertical com o texto por cima, como numa revista; só título e ligação */
  .split, .phero { display: block; position: relative; background: var(--night); }
  .split__media, .phero__media { aspect-ratio: auto; height: 100svh; max-height: 760px; min-height: 560px; }
  .phero__media { order: 0; }
  .split__media::after, .phero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,26,43,.35) 0%, rgba(14,26,43,0) 30%, rgba(14,26,43,.25) 50%, rgba(14,26,43,.94) 100%); }
  .split__text, .phero__text { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; color: var(--mist); }
  .split__inner, .phero__inner { padding: 0 var(--pad) 48px !important; }
  .split .h2, .phero .h1 { color: var(--cream); }
  .split .eyebrow, .phero .eyebrow { color: var(--mist); }
  .phero .h1 { font-size: clamp(36px, 10vw, 44px); margin-bottom: 30px; }
  .split .h2 { margin-bottom: 24px; }
  .split .body, .split .plain, .phero .lede, .split .caption, .band .body { display: none; }
  .split .link { color: var(--cream); border-color: var(--line-dark); }
  .phero .btn--navy, .split .btn--navy { color: var(--cream); border-color: var(--gold); }
  .phero .btn--navy:hover, .split .btn--navy:hover { background: var(--gold); color: var(--night); }
  .phero__media--fade::before { display: none; }
  .phero--dark .phero__inner { padding-top: 0 !important; }
  .band__in { padding-top: 120px; padding-bottom: 64px; min-height: 78svh; display: flex; flex-direction: column; justify-content: flex-end; }

  /* 5. Frota: uma classe por ecrã, carro grande ao centro */
  .klass { min-height: 100svh; display: flex; align-items: center; padding: 72px 0; }
  .klass__in { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0; width: 100%; }
  .klass__text { display: contents; }
  .klass .eyebrow { order: 1; margin-bottom: 16px; }
  .klass .h2 { order: 2; margin-bottom: 8px; }
  .klass__car { order: 3; width: 100%; margin: 22px 0 10px; }
  .klass__seal { order: 4; margin: 0 0 26px; height: 92px; }
  .klass--dark .klass__seal { height: 112px; }
  .klass .body { order: 5; max-width: 330px; margin: 0 auto; font-size: 15px; }
  .klass .eyebrow, .klass .h2, .klass .body, .klass__seal { opacity: 1; transform: none; }

  /* 8. Menu de ecrã inteiro */
  .mobile-menu { top: 0; padding: calc(var(--header-h) + 24px) var(--pad) 40px; border-top: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
  .mobile-menu[hidden] { display: none; }
  .mobile-menu ul { margin-bottom: 40px; }
  .mobile-menu li { border-bottom: 0; }
  .mobile-menu a:not(.btn) { padding: 10px 0; font-size: 34px; line-height: 1.25; }
  .mobile-menu .btn { width: auto; min-width: 240px; }
  .mobile-menu__mark { display: block; width: 46px; height: 46px; margin-top: 48px; color: var(--mist); opacity: .7; }
}
.hero__in, .band__in { box-sizing: border-box; }

/* Ícone de conta (login na Excelsior) */
.account-link { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid currentColor; border-radius: 50%; color: var(--mist); opacity: .8; transition: opacity .2s, color .2s; }
.account-link:hover, .account-link:focus-visible { opacity: 1; color: var(--gold); }

/* Páginas legais */
.legal { padding: clamp(120px, 14vw, 180px) 0 clamp(64px, 8vw, 120px); }
.legal__in { max-width: 820px; }
.legal__eyebrow { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; margin: 0 0 12px; }
.legal__title { margin: 0 0 10px; font-size: clamp(30px, 4vw, 48px); line-height: 1.1; }
.legal__date { font-size: 14px; opacity: .7; margin: 0 0 36px; }
.legal__ph { background: rgba(255, 200, 0, .35); padding: 0 4px; }
.legal__body { font-size: 16px; line-height: 1.75; }
.legal__body p { margin: 0 0 16px; }
.legal__body a { text-decoration: underline; text-underline-offset: 3px; }
.legal__links { display: inline-flex; gap: 18px; margin-left: 24px; }
.legal__links a { opacity: .85; }
.legal__links a:hover { opacity: 1; text-decoration: underline; }
@media (max-width: 600px) { .legal__links { display: flex; margin: 8px 0 0; width: 100%; } }

/* Mobile compacto */
@media (max-width: 600px) {
  .section { padding: 44px 0; }
  .klass { padding: 36px 0; }
  .hero--full, .hero { min-height: 0; height: auto; }
  .hero .hero__inner, .hero__content { min-height: 72svh; }
  .phero { min-height: 0; }
  .phero__media, .phero__photo { aspect-ratio: 4 / 3; max-height: 52vw; }
  .split .split__media { aspect-ratio: 4 / 3; max-height: 56vw; }
  .split__body { padding-top: 28px; padding-bottom: 28px; }
  .cta-band { padding: 40px 0; }
  .band { min-height: 0; }
  .cols { gap: 20px; }
  .h1, h1 { font-size: clamp(28px, 8vw, 34px); line-height: 1.1; }
  .h2, h2 { font-size: clamp(22px, 6.2vw, 26px); line-height: 1.12; }
  .lede { font-size: 15px; line-height: 1.5; }
}
@media (max-width: 600px) {
  body .split .split__media, body .split--dark .split__media, body .split--light .split__media { height: auto; min-height: 0; aspect-ratio: 16 / 10; max-height: 58vw; }
  body .split .split__media img { height: 100%; object-fit: cover; }
  body .band { min-height: 0; }
  body .band__in { padding-top: 56px; padding-bottom: 40px; min-height: 0; }
  body .band__media, body .band__media img { height: 100%; }
  body .hero { height: auto; min-height: 76svh; }
  body .hero__media, body .hero__media img { height: 100%; }
  body .hero__in { padding-top: 96px; padding-bottom: 56px; min-height: 76svh; }
  body .cols.cols--3 { grid-template-columns: 1fr 1fr; gap: 22px 16px; }
  body .cols .col h3, body .cols .col .h3 { font-size: 15px; }
  body .cols .col p { font-size: 13px; line-height: 1.45; }
  body .rows > li { padding: 14px 0; gap: 10px; }
  body .rows h3 { font-size: 16px; }
  body .rows p { font-size: 13.5px; line-height: 1.45; }
}
@media (max-width: 420px) {
  .site-header__in { gap: 10px; padding-left: 14px; padding-right: 14px; }
  .site-header__in .brand, .site-header__in .logo { margin-right: auto; }
  .site-header__in .brand img, .site-header__in .logo img { max-width: 44vw; height: auto; }
  .account-link { width: 32px; height: 32px; }
  .account-link svg { width: 18px; height: 18px; }
  .lang-switch { padding: 6px 0; }
}
@media (max-width: 600px) {
  body .phero__media, body .phero__photo { aspect-ratio: auto; width: 100%; height: 52vw; max-height: none; }
  body .phero__media img { width: 100%; height: 100%; object-fit: cover; }
}
@media (max-width: 600px) {
  body .split .split__media, body .split--dark .split__media, body .split--light .split__media { aspect-ratio: auto; height: 44vw; max-height: 44vw; }
  body .phero__media, body .phero__photo { height: 44vw; }
  body .hero, body .hero__in { min-height: 66svh; }
  body .band__in { padding-top: 44px; padding-bottom: 36px; }
  body .klass__media, body .klass__photo, body .klass img.car { max-height: 40vw; }
}
@media (max-width: 600px) {
  body .phero .phero__media, body .phero--light .phero__media, body .phero--dark .phero__media, body .phero__media--fade { height: 44vw; min-height: 0; max-height: 44vw; aspect-ratio: auto; }
  body .phero .phero__media img { height: 100%; width: 100%; object-fit: cover; object-position: center; }
}
@media (max-width: 600px) {
  body .klass, body .klass__in, body .klass__inner { min-height: 0; height: auto; }
  body .klass { padding: 32px 0; }
}

/* ===== Telemóvel: barra fixa, carrosséis, ler mais ===== */
@media (max-width: 600px) {
  .mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: #0E1A2B; border-top: 1px solid #3A4658; transform: translateY(110%); transition: transform .3s ease; }
  .mbar.is-on { transform: none; }
  .mbar__a { flex: 1; display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 14px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; border: 1px solid #C4AD82; color: #EFEBE4; background: transparent; }
  .mbar__a--primary { background: #C4AD82; color: #0E1A2B; }
  body.has-mbar { padding-bottom: 0; }
  body.has-mbar .wa-float, body.has-mbar .whatsapp-float, body.has-mbar .wa-fab { display: none !important; }
  .mcar { display: flex !important; grid-template-columns: none !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px !important; margin-left: calc(-1 * var(--pad, 20px)); margin-right: calc(-1 * var(--pad, 20px)); padding: 4px var(--pad, 20px) 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .mcar::-webkit-scrollbar { display: none; }
  .mcar > * { flex: 0 0 80%; scroll-snap-align: start; margin: 0 !important; max-width: none !important; }
  .mcar--narrow > * { flex-basis: 68%; }
  .mcar__dots { display: flex; justify-content: center; gap: 6px; margin: 4px 0 0; }
  .mcar__dots span { width: 6px; height: 6px; border-radius: 50%; background: #3A4658; }
  .mcar__dots span.is-on { background: #C4AD82; width: 18px; border-radius: 3px; }
  .mmore__btn { margin-top: 6px; background: none; border: 0; padding: 8px 0; font: inherit; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #EFEBE4; border-bottom: 1px solid currentColor; }
  footer a, .site-footer a { padding: 6px 0; display: inline-block; }
}
@media (max-width:600px){ .mcar{scroll-padding-left:var(--pad,20px);scroll-padding-right:var(--pad,20px)} }

/* Rodapé compacto (telemóvel) */
@media (max-width: 600px) {
  body .site-footer__main { padding: 28px 0 20px; }
  body .site-footer__grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 18px 16px; text-align: left !important; }
  body .site-footer__grid > div:first-child { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.14); }
  body .site-footer__grid > div:first-child .eyebrow { margin: 0; }
  body .site-footer__group img { width: 150px; height: auto; }
  body .site-footer__tag { display: none; }
  body .site-footer__grid > div { padding: 0 !important; border: 0 !important; text-align: left !important; }
  body .site-footer__grid > div:first-child { border-bottom: 1px solid rgba(255,255,255,.14) !important; padding-bottom: 16px !important; }
  body .site-footer__grid .eyebrow { font-size: 9.5px; margin-bottom: 6px; }
  body .site-footer__contacts { gap: 2px; }
  body .site-footer__contacts li, body .site-footer__contacts a { font-size: 12.5px; line-height: 1.4; word-break: break-word; }
  body .site-footer__contacts a { padding: 4px 0; }
  body .site-footer__group-strip { padding: 18px 0; }
  body .site-footer__group-strip .eyebrow { font-size: 9.5px; margin-bottom: 12px; text-align: center; }
  body .site-footer__group-strip .logos { display: flex !important; flex-direction: row !important; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 10px; }
  body .site-footer__group-strip .logos li { flex: 1 1 0; display: flex; justify-content: center; }
  body .site-footer__group-strip .logos img { height: auto !important; max-height: 26px; width: auto; max-width: 100%; }
  body .site-footer__base .wrap { padding-top: 12px; padding-bottom: 14px; gap: 6px; font-size: 11.5px; }
  body .site-footer__base .legal__links { margin: 0; gap: 14px; justify-content: center; }
}
@media (max-width: 600px) {
  body .site-footer__strip { padding: 18px 0; }
  body .site-footer__strip .label { font-size: 9.5px; margin-bottom: 12px; text-align: center; }
  body .site-footer__strip .logos, body .site-footer__group-strip .logos { display: flex !important; flex-direction: row !important; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 10px; }
  body .site-footer__strip .logos li { flex: 1 1 0; display: flex; justify-content: center; margin: 0; }
  body .site-footer__strip .logos img { height: auto !important; max-height: 26px; width: auto; max-width: 100%; }
  /* contactos: uma coluna, compacta */
  body .site-footer__grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  body .site-footer__grid > div:not(:first-child) { display: grid; grid-template-columns: 38% 1fr; gap: 8px; align-items: baseline; }
  body .site-footer__grid > div:not(:first-child) > :first-child { margin: 0; }
  body .site-footer__contacts { display: flex; flex-direction: column; gap: 0; margin: 0; }
}
@media (max-width: 600px) {
  body .phero .phero__text { position: static; }
  body .phero .phero__inner { padding: 22px var(--pad) 30px !important; }
  body .phero .h1 { font-size: clamp(30px, 8.6vw, 38px); margin-bottom: 18px; }
  body .phero .phero__media { height: 52vw; max-height: 52vw; }
  body .phero .phero__media::after { background: linear-gradient(180deg, rgba(14,26,43,.35) 0%, rgba(14,26,43,0) 35%, rgba(14,26,43,0) 70%, rgba(14,26,43,.6) 100%); }
}
@media (max-width: 600px) {
  .site-header:not(.is-solid) ~ main .phero:first-child .phero__inner, .site-header:not(.is-solid) ~ * .phero:first-child .phero__inner { padding-top: 104px !important; }
}

/* ===== Sistema de imagens (telemóvel) ===== */
@media (max-width: 600px) {
  body .phero .phero__media { height: 56vw !important; max-height: none !important; }
  body .split .split__media { height: 44vw !important; max-height: none !important; }
  body .split .split__media img, body .phero .phero__media img { object-position: center; }
}
@media (max-width: 600px) {
  body .split .split__text { position: static; background: var(--night); }
  body .split .split__body { padding: 22px var(--pad) 28px !important; }
  body .split .split__media::after { background: linear-gradient(180deg, rgba(14,26,43,.25) 0%, rgba(14,26,43,0) 40%, rgba(14,26,43,0) 70%, rgba(14,26,43,.55) 100%); }
  body .split .h2 { font-size: clamp(24px, 7vw, 30px); }
}
@media (max-width: 600px) { body .split .split__inner { padding: 24px var(--pad) 30px !important; } }
.form-privacy{margin:14px 0 0;font-size:12px;line-height:1.5;max-width:60ch}.form-privacy a{color:inherit;text-decoration:underline;text-underline-offset:2px}

.legal__eyebrow,.legal__date,.legal__ph{color:#555d67 !important;opacity:1 !important}
