/* Excelsior Group — base partilhada */
:root{
  --ink:#002133;
  --ink-2:#002133;
  --paper:#eef1f3;
  --snow:#ffffff;
  --scene:#002133;
  --navy:#002133;
  --needle:#e3392e;
  --needle-light:#e3392e;
  --muted:#356a7a;
  --grey-text:#4a5960;
  --pad-x:clamp(24px,10vw,144px);
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;font-family:'Jura',system-ui,sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.arrow{display:inline-block;width:.78em;height:.78em;vertical-align:-.04em}

/* ---------- Header ---------- */
.site-header{position:absolute;inset:0 0 auto 0;z-index:50;height:94px;display:flex;align-items:flex-start;justify-content:space-between;padding:0 86px 0 22px;
  background:linear-gradient(to bottom,rgba(0,33,51,.72),rgba(0,33,51,0));color:var(--snow)}
.site-header.is-solid{background:var(--navy);height:118px}
.site-header .brand{display:block;margin-top:23px;width:326px}
.site-header .brand img{width:100%;height:auto}
.site-nav{position:absolute;right:240px;top:40px;display:flex;gap:37px}
.site-nav a,.header-cta{font-size:11px;line-height:14px;text-transform:uppercase;white-space:nowrap}
.site-nav a{position:relative;font-weight:600;letter-spacing:1.04px;opacity:.77;padding:6px 0;margin:-6px 0;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{opacity:1}
.site-nav a:hover{transform:translateY(-1px)}
.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.header-cta{position:absolute;right:86px;top:29px;letter-spacing:1.54px;font-weight:600;display:flex;gap:9px;align-items:center;padding:10px 18px;border:1px solid rgba(255,255,255,.55);transition:background .25s,color .25s,border-color .25s}
.header-cta:hover{background:var(--snow);color:var(--ink);border-color:var(--snow)}
.header-cta .arrow{transition:transform .3s var(--ease)}
.header-cta:hover .arrow{transform:translate(2px,-2px)}
.menu-toggle{display:none}
@media (max-width:1100px){.header-cta{right:32px}.site-nav{right:186px}}

@media (max-width:1000px){
  .site-header{padding:0 20px;height:84px}
  .site-header .brand{width:220px;margin-top:22px}
  .site-nav,.header-cta{display:none}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;margin-top:20px;margin-right:-8px;padding:10px}
  .menu-toggle span{display:block;height:1.5px;background:currentColor;transition:transform .3s var(--ease),opacity .2s}
  .menu-open .menu-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .menu-open .menu-toggle span:nth-child(2){opacity:0}
  .menu-open .menu-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .mobile-menu{position:fixed;inset:0;z-index:40;background:rgba(0,33,51,.97);color:var(--snow);display:flex;flex-direction:column;justify-content:center;padding:96px 32px 40px;gap:4px;
    opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
  .menu-open .mobile-menu{opacity:1;visibility:visible}
  .mobile-menu a{transition:transform .3s var(--ease),opacity .3s;font-family:'Russo One',sans-serif;font-weight:400;font-size:clamp(28px,8vw,40px);line-height:1.35}
  .mobile-menu .mobile-cta{margin-top:28px;font-family:'Jura',sans-serif;font-size:12px;letter-spacing:1.54px;text-transform:uppercase;line-height:1;display:flex;gap:8px;align-items:center;opacity:.9}
  .menu-open .site-header{position:fixed;background:none}
}
@media (min-width:761px){.mobile-menu{display:none}}
@media (max-width:480px){.site-header .brand{width:180px;margin-top:24px}}

.nb{text-transform:none}

/* Comutador de idioma e botão no topo */
.header-right{position:absolute;right:86px;top:29px;display:flex;align-items:center;gap:22px}
.header-right .header-cta{position:static}
.lang-switch{font-size:11px;line-height:14px;font-weight:700;letter-spacing:1.54px;text-transform:uppercase;opacity:.8;padding:10px 6px;border-bottom:1px solid transparent;transition:opacity .25s,border-color .25s}
.lang-switch:hover,.lang-switch:focus-visible{opacity:1;border-color:currentColor}
.site-nav{right:378px}
@media (max-width:1100px){.header-right{right:32px}.site-nav{right:324px}}
@media (max-width:1000px){.site-nav{gap:22px}.header-right{gap:14px}}
@media (max-width:1000px){.header-right{display:none}.mobile-menu .mobile-lang{font-family:'Jura',sans-serif;font-size:14px;letter-spacing:1.54px;text-transform:uppercase;margin-top:20px;opacity:.85}}

.account-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.55);border-radius:50%;color:var(--snow);transition:background .25s,color .25s}
.account-link:hover,.account-link:focus-visible{background:var(--snow);color:var(--ink)}
.account-link--mobile{display:none}
@media (max-width:1000px){.account-link--mobile{display:inline-flex;position:absolute;right:76px;top:22px}}
@media (max-width:760px){.account-link--mobile{right:68px;top:22px}}

/* ===== 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: #ffffff; border-top: 1px solid #c9d2d7; 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; border: 1px solid #002133; color: #002133; }
  .mbar__a--primary { background: #002133; color: #fff; }
  .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-x)); margin-right: calc(-1 * var(--pad-x)); padding: 4px var(--pad-x) 8px; scrollbar-width: none; }
  .mcar::-webkit-scrollbar { display: none; }
  .mcar > * { flex: 0 0 82%; scroll-snap-align: start; margin: 0 !important; max-width: none !important; }
  .mcar__dots { display: flex; justify-content: center; gap: 6px; margin: 4px 0 0; }
  .mcar__dots span { width: 6px; height: 6px; border-radius: 50%; background: #c9d2d7; }
  .mcar__dots span.is-on { background: #002133; width: 18px; border-radius: 3px; }
  .sec--dark .mcar__dots span.is-on { background: #e3392e; }
  .mmore__btn, .mfold__btn { margin-top: 8px; background: none; border: 0; padding: 8px 0; font: inherit; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #002133; border-bottom: 1px solid currentColor; }
  .mfold__btn { margin: 10px 0 6px; }
  .foot-contacts a, .foot-legal a, .foot-row a { padding: 6px 0; display: inline-block; }
}
@media (max-width:600px){.mfold[hidden]{display:none!important}}
@media (max-width:600px){ .mcar{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px} body.inner .wrap .mcar{margin-left:0;margin-right:0;padding-left:0;padding-right:0} }
@media (max-width:600px){ .mcar{scroll-padding-left:20px;scroll-padding-right:20px} }
.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}


.panel__logout{color:#c42b21 !important}
