/* =========================================================
   Confirent V3 · site.css
   Base partilhada: tokens, reset, tipografia, layout, botões,
   header, footer, popups, utilitários.
   Breakpoints (desktop-first, iguais ao original):
   1366px · 1180px · 770px · 478px
   ========================================================= */

/* ---------- Fontes ---------- */
@font-face{font-family:"Euclid Circular";font-weight:200;font-display:swap;src:url(../fonts/EuclidCircularA-Light.woff2) format("woff2"),url(../fonts/EuclidCircularA-Light.ttf) format("truetype")}
@font-face{font-family:"Euclid Circular";font-weight:400;font-display:swap;src:url(../fonts/EuclidCircularA-Regular.woff2) format("woff2"),url(../fonts/EuclidCircularA-Regular.ttf) format("truetype")}
@font-face{font-family:"Euclid Circular";font-weight:500;font-display:swap;src:url(../fonts/EuclidCircularA-Medium.woff2) format("woff2"),url(../fonts/EuclidCircularA-Medium.ttf) format("truetype")}
@font-face{font-family:"Euclid Circular";font-weight:700;font-display:swap;src:url(../fonts/EuclidCircularA-Semibold.woff2) format("woff2"),url(../fonts/EuclidCircularA-Semibold.ttf) format("truetype")}
@font-face{font-family:"Euclid Circular";font-weight:900;font-display:swap;src:url(../fonts/EuclidCircularA-Bold-WebS.woff2) format("woff2"),url(../fonts/EuclidCircularA-Bold-WebS.ttf) format("truetype")}

/* ---------- Tokens ---------- */
:root{
  --navy:#1c335e;          /* primário */
  --white:#ffffff;
  --yellow:#ffff00;        /* destaque */
  --grey-50:#f5f5f5;
  --grey-100:#ededed;
  --grey-200:#e0e0e0;
  --grey-400:#bbbbbb;
  --grey-500:#9e9e9e;
  --grey-600:#616161;
  --grey-800:#424242;
  --grey-900:#212121;
  --text:#363636;          /* texto corrente */
  --green:#4caf50;
  --blue-light:#03a9f4;
  --blue-pale:#81D4FA;
  --gradient:linear-gradient(90deg, rgba(3,39,88,1) 0%, rgba(23,216,224,1) 100%);
  --font:"Euclid Circular", "Helvetica Neue", Arial, sans-serif;
  --container:1600px;
  --gutter:50px;
  --ease:all .3s ease-in-out;
  --fxx:all 500ms cubic-bezier(.29,.52,.22,1);
  --header-h:97px;
}
@media (max-width:478px){:root{--gutter:30px}}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.7;color:var(--text);background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font);font-weight:700;line-height:1.4;color:var(--navy)}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;fill:currentColor}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.section{display:flex;flex-direction:column;align-items:center;width:100%}
.section>.container{display:flex;flex-direction:column;align-items:flex-start}
.section--first{margin-top:120px} /* primeira secção das páginas interiores (header fixo de 114px + 6px) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gradient-back{background:var(--gradient)}
.bg-navy{background-color:var(--navy)}
.bg-grey{background-color:var(--grey-50)}
.ease{transition:var(--ease)}
.fxx{transition:var(--fxx)}
.radius-15{border-radius:15px}
.radius-50{border-radius:50px}

/* ---------- Tipografia partilhada ---------- */
.subtitulo{font-size:45px;line-height:1.4;font-weight:700;text-transform:uppercase;text-align:center;color:var(--navy)}
.subtitulo-2{font-size:25px;line-height:1.4;font-weight:400;color:var(--navy)}
@media (max-width:1180px){.subtitulo{font-size:40px}}
@media (max-width:770px){.subtitulo{font-size:31px}}
@media (max-width:478px){.subtitulo{font-size:28px}}
.footer-txt{font-size:20px;line-height:1.3;font-weight:500;color:var(--white)}
@media (max-width:478px){.footer-txt{font-size:16px}}
.bold-6{font-weight:600}.bold-7{font-weight:700}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 25px;font-size:14px;font-weight:400;letter-spacing:.5px;line-height:1.7;text-align:center;border:1px solid transparent;border-radius:50px;cursor:pointer;transition:var(--ease)}
.btn--primary{background:var(--navy);color:var(--white)}
.btn--primary:hover{background:var(--white);color:var(--navy);border-color:var(--navy)}
.btn--transparent{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--transparent:hover{background:var(--white);color:var(--navy)}
.btn--white{background:transparent;color:var(--white);border-color:var(--white)}
.btn--white:hover{background:var(--white);color:var(--navy)}
.btn--wide{padding-left:60px;padding-right:60px}
.btn--search{padding:15px;font-size:19px;font-weight:700;color:var(--yellow);background:var(--navy);border-radius:15px;transition:var(--fxx)}
.btn--search:hover{background:var(--white);color:var(--navy)}
@media (max-width:478px){.btn--mobile{min-width:100%}}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:998;background:var(--gradient);padding:25px 0;transition:background-color .2s,transform .4s}
.site-header--home{border-bottom:5px solid var(--yellow)}
.site-header__inner{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:40px}
.site-header__logo{display:block;width:200px;flex:0 0 auto}
.site-header__logo img{width:100%;height:auto}
.site-header__right{display:flex;flex-direction:row;align-items:center;width:auto}
.main-nav__list{display:flex;gap:30px}
.main-nav__item a{display:flex;font-size:15px;font-weight:800;color:var(--white);transition:var(--ease)}
.main-nav__item:hover a{color:var(--yellow)}
.lang-switcher{margin-left:0}
.lang-switcher__list{display:flex;padding:7px;border:1px solid transparent}
.lang-switcher__link{display:block;padding:5px 10px 6px;line-height:15px}
.lang-switcher__flag{display:inline;width:18px;height:12px}
/* idioma sem bandeira em assets/img: mostra o código em texto, no mesmo espaço */
.lang-switcher__codigo{display:inline-flex;align-items:center;justify-content:center;width:18px;height:12px;font-size:9px;font-weight:700;letter-spacing:.02em;line-height:1;border:1px solid currentColor;border-radius:2px;vertical-align:middle}
/* Entrada da área de cliente no cabeçalho. A barra à esquerda separa-a do menu:
   sem ela ficava colada ao último item e lia-se como se fosse mais um. */
.conta-link{display:inline-flex;align-items:center;gap:8px;margin-left:26px;padding:6px 0 6px 26px;color:var(--white);font-size:15px;font-weight:500;white-space:nowrap;border-left:1px solid rgba(255,255,255,.28);transition:var(--ease)}
.conta-link:hover,.conta-link.is-current{color:var(--yellow)}
.conta-link__icon{width:16px;height:16px;flex:0 0 auto}
@media (max-width:1360px){.conta-link{margin-left:16px;padding-left:16px;font-size:14px}}
@media (max-width:1180px){.conta-link__texto{display:none}}
.mobile-nav__conta a{display:flex;align-items:center;gap:10px}
.mobile-nav__icon{width:18px;height:18px;flex:0 0 auto}
.menu-toggle{display:none;color:var(--white);font-size:35px;line-height:1}
.menu-toggle .icon{width:1em;height:1em}
/* barra de pesquisa resumida (páginas interiores) */
.header-search{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;width:450px;min-height:fit-content;margin-right:auto;padding:10px 30px;color:var(--white);border:1px solid var(--white);border-radius:50px;cursor:pointer;text-align:left}
.header-search__text{display:flex;flex-direction:column;align-items:flex-start;font-size:13px;line-height:1.6}
.header-search__local{font-weight:700}
.header-search__data{text-align:justify}
.header-search__icon{width:25px;height:25px}
@media (max-width:1366px){.site-header__inner{gap:30px}.header-search{width:400px}}
@media (max-width:1180px){.site-header__inner{row-gap:10px}.site-header__logo{width:160px;min-width:160px}.site-header__right{justify-content:flex-end}}
@media (max-width:770px){.site-header__right{display:none}.menu-toggle{display:flex}}
@media (max-width:478px){
  .site-header{padding:15px 0}
  .site-header__inner{position:relative}
  .site-header__logo{min-width:auto}
  .header-search{position:absolute;left:0;right:0;bottom:-60px;width:100%;margin:0;border:0;border-top:1px solid var(--grey-50);border-radius:0 0 15px 15px;background:var(--gradient)}
}

/* ---------- Footer ---------- */
.site-footer{position:relative;padding-top:25px}
.site-footer__locations{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;max-width:1700px;margin:0 auto 30px;padding:0 var(--gutter)}
.site-footer__loc{font-size:14px;font-weight:600;color:var(--navy);line-height:1.7}
.site-footer__sep{display:block;width:1px;height:20px;border-right:1px solid var(--navy)}
.site-footer__band{width:100%}
.site-footer__cols{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;max-width:var(--container);margin:0 auto;padding:40px var(--gutter)}
.site-footer__logo{display:block;width:200px}
.site-footer__menu ul{display:flex;flex-direction:column;gap:10px}
.site-footer__menu a{display:flex;font-size:18px;font-weight:500;color:var(--white);transition:var(--ease)}
.site-footer__menu a:hover{color:var(--yellow)}
.site-footer__menu--1{visibility:hidden}
.site-footer__menu--2 ul{align-items:flex-start}
.site-footer__contact{display:flex;flex-direction:column;align-items:flex-start}
.site-footer__icons{display:flex;gap:15px;margin-top:15px}
.site-footer__icons a{display:block;color:var(--white);font-size:30px;line-height:1;transition:var(--ease)}
.site-footer__icons .icon{width:1em;height:1em}
.site-footer__icons a:hover{color:var(--yellow)}
.site-footer__bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-top:15px;padding-bottom:15px}
.site-footer__copy{font-size:10px;line-height:1.7;color:var(--navy)}
.site-footer__legal ul{display:flex;flex-wrap:wrap;gap:20px}
.site-footer__legal a{display:flex;font-size:12px;font-weight:500;color:var(--navy);line-height:1.7;transition:var(--ease)}
.site-footer__legal a:hover{color:var(--grey-900)}
@media (max-width:1180px){.site-footer__cols{flex-wrap:wrap}.site-footer__logo{width:100%}.site-footer__logo img{width:200px}.site-footer__menu--1{width:33.333%}.site-footer__legal{width:100%}}
@media (max-width:770px){
  .site-footer__cols{column-gap:20px}
  .site-footer__menu--1 ul,.site-footer__menu--2 ul,.site-footer__contact{align-items:center}
  .site-footer__icons{justify-content:center}
  .site-footer__bottom{flex-direction:column;align-items:center}
  .site-footer__copy{text-align:center}
  .site-footer__legal ul{flex-direction:column;gap:10px;align-items:center}
  .site-footer__legal a{justify-content:center}
}
@media (max-width:478px){
  .site-footer__locations{padding:0 30px}
  .site-footer__cols{padding-left:30px;padding-right:30px;justify-content:center}
  .site-footer__logo{display:flex;justify-content:center}
  .site-footer__menu--1{display:none}
  .site-footer__menu--2,.site-footer__contact{width:100%}
  .site-footer__menu a{justify-content:center}
  .site-footer__bottom{padding-left:30px;padding-right:30px}
  .site-footer__copy{text-align:center;width:100%}
}

/* ---------- Popups ---------- */
.popup{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100vh;height:calc(var(--vh,1vh)*100)}
/* escondido como o .brx-popup.hide do Bricks: continua em flex, só invisível (o backdrop faz fade de 1s ao abrir) */
.popup[hidden]{display:flex;opacity:0;visibility:hidden;pointer-events:none}
.popup[hidden] .popup__backdrop{opacity:0;visibility:hidden}
.popup__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);opacity:1;transition:all 1s ease-in-out}
.popup__content{position:relative;z-index:1;max-width:100%;padding:30px;background:#fff;overflow-y:auto}
.popup__close{position:absolute;top:35px;right:35px;font-size:35px;line-height:1;color:var(--white);cursor:pointer;z-index:2}
.popup__close .icon{width:1em;height:1em}
/* menu mobile (desliza da direita) */
.popup--menu{align-items:flex-end}
.popup--menu .popup__content{width:40vw;height:100vh;padding:30px;background:var(--navy)}
.popup--menu .popup__close{top:30px;right:30px}
.popup--menu .mobile-nav{display:flex;flex-direction:column;align-items:center;gap:50px;margin-top:40px}
.popup--menu .mobile-nav ul{display:flex;flex-direction:column;gap:15px}
.popup--menu .mobile-nav a{font-size:22px;font-weight:800;color:var(--white)}
.popup--menu .lang-switcher__list{border-color:rgba(255,255,255,.5)}
@media (max-width:770px){.popup--menu .popup__content{width:60vw;padding-left:30px;padding-right:30px}}
@media (max-width:478px){.popup--menu .popup__content{width:80vw}}
/* pesquisa (desliza de cima) */
.popup--search{justify-content:flex-start}
.popup--search .popup__content{width:100vw;height:fit-content;padding:0;overflow:visible;background:transparent}
/* animações (iguais às do animate.css usadas pelo Bricks) */
@keyframes slideInRight{from{transform:translate3d(100%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}
@keyframes slideOutRight{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(100%,0,0)}}
@keyframes slideInDown{from{transform:translate3d(0,-100%,0);visibility:visible}to{transform:translate3d(0,0,0)}}
@keyframes slideOutUp{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,-100%,0)}}
.popup__content.is-animating{animation-fill-mode:both}
@media (prefers-reduced-motion:reduce){.popup .popup__content{animation:none!important}.popup__backdrop{transition:none}}
body.popup-open{overflow:hidden}

/* ---------- Tooltips (data-balloon, como no original) ---------- */
[data-balloon]{position:relative;cursor:help}
[data-balloon]::after{content:attr(data-balloon);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);z-index:20;min-width:120px;max-width:260px;padding:8px 10px;font-size:12px;line-height:1.4;color:#fff;background:#111;border-radius:4px;white-space:normal;overflow-wrap:anywhere;opacity:0;pointer-events:none;transition:opacity .2s}
[data-balloon]:hover::after,[data-balloon]:focus::after{opacity:1}
/* Ícones de ajuda encostados à direita (cartões de seguro, linhas do popup do
   carro): o balão abre para dentro em vez de centrado, senão metade dele cai
   fora do cartão e o overflow:hidden corta-o. */
.plano-cartao-activo [data-balloon]::after,
.plano-cartao-inactivo [data-balloon]::after,
.block-check-reserva__right [data-balloon]::after{left:auto;right:0;transform:none}

/* ---------- Ajustes herdados do original (custom-css-js 17/55) ---------- */
body{overflow-x:hidden}
@media (max-width:768px){html,body{overflow-x:hidden}}
