/* Discrete, keyboard-accessible language control, shared across every page. */
.fab-language{position:relative;display:inline-flex;align-items:center;flex-shrink:0;margin-left:16px;z-index:10005;color:#17243b;font:500 15px/1.4 'DM Sans',Arial,sans-serif;letter-spacing:0;text-transform:none}
.fab-language svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}
.fab-language label{display:flex;align-items:center;gap:8px}
.fab-language select{appearance:auto!important;width:136px!important;min-width:136px;max-width:136px;height:44px!important;min-height:44px!important;padding:8px 6px!important;border:1px solid #c2cee2!important;border-radius:12px!important;background:#fff!important;color:#14233c!important;font:600 15px/1.4 'DM Sans',Arial,sans-serif!important;letter-spacing:0!important;cursor:pointer;box-shadow:none!important}
.fab-language select:focus-visible{outline:3px solid #315cff;outline-offset:3px}
.fab-language option{color:#14233c;background:white}
.fab-language .fab-lang-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fab-language-header{flex-wrap:wrap;row-gap:12px}
#eco .fab-language,#traco .fab-language{color:#dbe8ff}
.fab header .nav>.fab-language{margin-left:10px}
html:not([lang^=pt]) .fab [role=tablist]{flex-wrap:wrap}
html:not([lang^=pt]) .fab .fs-service-card{height:auto;min-height:310px}
html:not([lang^=pt]) .fab .i12-service-end{flex-wrap:wrap}
html:not([lang^=pt]) .fc-flow-step{height:auto;min-height:145px}
@media(max-width:1000px){.fab-language{margin-left:8px}.fab-language-header{gap:12px}.fab header .nav>.fab-language{margin-left:0}}
@media(max-width:600px){.fab-language svg{display:none}.fab-language select{height:44px!important}.fab-language{margin-left:0}.fab header .nav,.fc-header,.fl-header{column-gap:10px!important}.fab-language-header>a:first-child{margin-right:auto}.fab-language-header .mobile-nav,.fab-language-header .fc-mobile-nav{order:3}.fab-language-header>.fab-language{order:2}#eco header,#perspetiva header,#traco header{gap:10px;flex-wrap:wrap}#eco header>a:last-of-type,#perspetiva header>a:last-of-type,#traco header>a:last-of-type{font-size:13px!important}html:not([lang^=pt]) .fc-flow-step{min-height:0}}

html:not([lang^=pt]) .fab h1,html:not([lang^=pt]) .fab h2,html:not([lang^=pt]) .fc-hero h1{overflow-wrap:anywhere;hyphens:auto}

/* Local vector flags: identical across platforms, no emoji or external assets. */
.fab-language .fab-country-flag{display:block!important;width:28px!important;height:19px!important;min-width:28px!important;stroke:none!important;fill:initial!important;border-radius:3px;box-shadow:0 0 0 1px #17243b25;overflow:hidden!important}
.fab-lang-current-flag{display:inline-flex;flex-shrink:0}
.fab-lang-toast{position:fixed;left:50%;top:112px;z-index:2147483000;display:flex;align-items:center;gap:15px;padding:16px 22px;max-width:calc(100vw - 36px);box-sizing:border-box;border:1px solid #dce4f4;border-radius:20px;background:#fffffff5;color:#14233c;box-shadow:0 14px 45px #10183124;font:500 16px/1.4 'DM Sans',Arial,sans-serif;pointer-events:none;opacity:0;transform:translate(-50%,-12px) scale(.97);transition:opacity .22s,transform .3s;backdrop-filter:blur(14px)}
.fab-lang-toast.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}
.fab-lang-toast .fab-country-flag{display:block;width:45px;height:30px;flex-shrink:0;stroke:none;border-radius:5px;overflow:hidden;box-shadow:0 0 0 1px #14233c20}
.fab-lang-toast small{display:block;font-size:13px!important;line-height:1.5!important;color:#52627a;white-space:nowrap}
.fab-lang-toast strong{display:block;font-size:18px;line-height:1.4;font-weight:600;white-space:nowrap}
.fab-lang-check{width:22px;height:22px;fill:none;stroke:#315cff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-left:6px}
@media(max-width:600px){.fab-language .fab-country-flag{display:block!important;width:23px!important;height:16px!important;min-width:23px!important}.fab-language label{gap:6px}.fab-language select{width:121px!important;min-width:121px!important;max-width:121px!important}.fab-lang-toast{top:108px;padding:13px 17px;gap:12px}.fab-lang-toast .fab-country-flag{width:39px;height:26px}}
@media(prefers-reduced-motion:reduce){.fab-lang-toast{transition:none;transform:translateX(-50%)}.fab-lang-toast.is-visible{transform:translateX(-50%)}}

/* 1.0.2: balanced header and consistent legal-link hit areas. */
.fab-language,.fab-language label{margin-top:0!important;margin-bottom:0!important;line-height:1!important;vertical-align:middle}
.fab-language label{align-items:center!important;padding:0!important}
.fab-language select{width:140px!important;min-width:140px!important;max-width:140px!important;font-size:16px!important;padding:8px 10px!important;box-sizing:border-box!important;text-overflow:clip!important}
.fab-language-header{align-items:center!important}
.fl-links{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px 24px!important}
.fl-links>a,.fl-links>button{display:inline-flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;min-height:44px!important;box-sizing:border-box!important;margin:0!important;padding:8px 0!important;font:500 14px/1.5 'DM Sans',Arial,sans-serif!important;text-align:center!important;vertical-align:middle!important;white-space:normal!important}
.fl-links>button{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;letter-spacing:0!important;text-transform:none!important;transform:none!important}
@media(max-width:700px){.fl-links{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px!important;padding:20px 18px!important}.fl-links>a,.fl-links>button{width:100%;height:100%;overflow-wrap:anywhere}}
@media(max-width:600px){.fab-language select{width:126px!important;min-width:126px!important;max-width:126px!important}.fab-language-header .logo,.fc-header>a:first-child img{max-width:100px!important;height:auto}}
@media(max-width:360px){.fab-language-header{justify-content:space-between!important;gap:8px!important}.fab-language-header>a:first-child{margin-right:0!important}.fab-language-header .logo,.fc-header>a:first-child img{max-width:82px!important}.fab-language select{width:118px!important;min-width:118px!important;max-width:118px!important;padding-left:7px!important;padding-right:7px!important}}

@media(max-width:360px){.fab header .nav,.fc-header,.fl-header{padding-left:14px!important;padding-right:14px!important;column-gap:6px!important}.fab-language-header .logo,.fc-header>a:first-child img{max-width:72px!important}.fab-language select{width:108px!important;min-width:108px!important;max-width:108px!important;padding-left:6px!important;padding-right:6px!important}.fab-language label{gap:4px!important}.fab-language .fab-country-flag{width:20px!important;min-width:20px!important;height:14px!important}.fab-language-header .mobile-nav summary,.fab-language-header .fc-mobile-nav summary{padding:8px 4px!important;font-size:15px!important}}
@media(max-width:360px){.fab .i12-contact-link{gap:12px!important}.fab .i12-contact-link>b{flex-shrink:0}}
@media(max-width:600px){.fab .i12-contact-link>span{min-width:0;overflow-wrap:anywhere}}
