/* CMS compatibility is scoped to InvestQN; Template tokens remain authoritative. */
/* Translation chrome must stay hidden on module pages, which do not load main.css. */
#portalTranslate,
body[class*="body-mod-"] > .skiptranslate,
.goog-te-banner-frame,
.VIpgJd-ZVi9od-ORHb-OEVmcd,
.goog-te-balloon-frame,
#goog-gt-tt { display:none !important; visibility:hidden !important; }
html { margin-top:0 !important; }
body[class*="body-mod-"] { top:0 !important; }
#body:empty { display:none; }
.portal input { font-family:inherit; }
.portal-nav a { text-decoration:none; }
.portal .gateway a { overflow-wrap:anywhere; }
.investqn-module-content { padding-top:24px; padding-bottom:24px; }
.portal-footer a { color:inherit; }
/* Bound dynamic headlines to the prototype's existing slots; full titles remain link text. */
.portal .gateway:first-child li a { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.portal .gateway h2 { line-height:1.35; }
@media(max-width:760px) { .portal .gateway:first-child li:nth-child(3) a { -webkit-line-clamp:1; } }
.qeza-chatbot {
    --qeza-navy: #052f60;
    --qeza-blue: #0c5594;
    --qeza-border: #dfe7ef;
    --qeza-bg-soft: #f7fbff;
    --qeza-font: "Be Vietnam Pro", Arial, "Helvetica Neue", sans-serif;
    position: relative;
    z-index: 1000;
}
.qeza-chatbot-fab {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1002;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 54px;
    padding: 6px 14px 6px 7px;
    border: 0;
    border-radius: 28px;
    background: var(--qeza-navy);
    color: #fff;
    box-shadow: 0 8px 22px rgba(5, 47, 96, .24);
    cursor: pointer;
    font: 700 12px/1.3 var(--qeza-font);
    text-align: left;
}
.qeza-chatbot-fab:hover,
.qeza-chatbot-fab:focus { background: var(--qeza-blue); }
.qeza-chatbot-fab:focus-visible,
.qeza-chatbot-close:focus-visible { outline: 3px solid rgba(242, 184, 50, .8); outline-offset: 2px; }
.qeza-chatbot-fab-avatar {
    width: 43px;
    height: 43px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
}
.qeza-chatbot-fab-label { white-space: nowrap; }
.qeza-chatbot-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(2, 38, 78, .36);
}
.qeza-chatbot-panel {
    position: fixed;
    right: 24px;
    bottom: 92px;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    width: 440px;
    max-width: calc(100vw - 48px);
    height: 620px;
    max-height: calc(100vh - 132px);
    max-height: calc(100dvh - 132px);
    min-height: 300px;
    overflow: hidden;
    border: 1px solid var(--qeza-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(2, 38, 78, .28);
}
.qeza-chatbot-panel[hidden],
.qeza-chatbot-overlay[hidden] { display: none; }
.qeza-chatbot-header {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    padding: 12px 14px;
    background: linear-gradient(135deg, var(--qeza-navy), var(--qeza-blue));
    color: #fff;
}
.qeza-chatbot-header-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
}
.qeza-chatbot-header h2 {
    margin: 0;
    color: #fff;
    font-size: 15px;
    line-height: 1.3;
}
.qeza-chatbot-header p {
    margin: 2px 0 0;
    color: #dcecfb;
    font-size: 11px;
}
.qeza-chatbot-close {
    width: 34px;
    height: 34px;
    margin-left: auto;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #fff;
    cursor: pointer;
    font-size: 25px;
    line-height: 1;
}
.qeza-chatbot-close:hover,
.qeza-chatbot-close:focus { background: rgba(255, 255, 255, .14); }
.qeza-chatbot-frame-wrap {
    flex: 1 1 auto;
    min-height: 0;
    background: var(--qeza-bg-soft);
}
.qeza-chatbot-frame-wrap iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 300px;
    border: 0;
    background: #fff;
}
@media (max-width: 992px) {
.qeza-chatbot-fab {
        right: 14px;
        bottom: 14px;
        min-height: 50px;
        padding-right: 11px;
    }
.qeza-chatbot-fab-avatar { width: 40px; height: 40px; }
.qeza-chatbot-panel {
        right: 14px;
        bottom: 76px;
        left: 14px;
        width: auto;
        max-width: none;
        height: calc(100vh - 94px);
        height: calc(100dvh - 94px);
        max-height: calc(100vh - 94px);
        max-height: calc(100dvh - 94px);
        border-radius: 12px;
    }
.qeza-chatbot-frame-wrap iframe { min-height: 0; }
}
@media (max-width: 992px) {
.qeza-chatbot,
    #contactButton,
    .qeza-chatbot-fab,
    .qeza-chatbot-panel,
    .fix_banner_left,
    .fix_banner_right {
        z-index: 1000 !important;
    }
}
.qeza-root,
.qeza-root *,
.qeza-section-nav,
.qeza-section-nav *,
.qeza-chatbot,
.qeza-chatbot * { box-sizing: border-box; }
.qeza-root,
.qeza-section-nav,
.qeza-chatbot { font-family: "Be Vietnam Pro", Arial, "Helvetica Neue", sans-serif; }
.qeza-chatbot-fab {
    right: 16px;
    bottom: 58px;
    width: 120px;
    min-height: 0;
    height: auto;
    padding: 0;
    gap: 0;
    flex-direction: column;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.qeza-chatbot-fab:hover,
.qeza-chatbot-fab:focus { background: transparent; }
.qeza-chatbot-fab-avatar {
    width: 120px;
    height: 100px;
    border-radius: 0;
    object-fit: cover;
    object-position: top center;
    background: transparent;
    filter: drop-shadow(0 4px 12px rgba(0, 39, 83, .3));
}
.qeza-chatbot-fab-label {
    display: block;
    padding: 5px 12px;
    border-radius: 8px;
    background: linear-gradient(135deg, #2196f3, #1976d2);
    box-shadow: 0 3px 10px rgba(0, 39, 83, .25);
    color: #fff;
    font-size: 11px;
    text-align: center;
}
@media (max-width: 992px) {
.qeza-chatbot-fab { right: 10px; bottom: 10px; width: 100px; }
.qeza-chatbot-fab-avatar { width: 100px; height: 84px; }
.qeza-chatbot-fab-label { padding: 4px 8px; font-size: 9px; }
}

.partner-strip img { max-width:200px; height:auto; object-fit:contain; }
.portal-footer .footer-address { list-style:none; padding:0; margin:0; }
.portal-header, .portal-footer { font-family:"Roboto Condensed",Arial,sans-serif; }
@media(max-width:760px) { .partner-strip img { max-width:130px; } }

.section-body.portal-home > .wraper,
.section-body.portal-home > .wraper > section > .container { width:100%; max-width:none; padding:0; margin:0; }


.section-body.qeza-root:not(.portal-home) { font-size:14px; line-height:1.42857143; color:#333; }

@media(min-width:1101px) { #portalHome.portal { --layout-unit:calc(100vw / 1366); } }
/* Gateway images now come from Admin, not the removed prototype sprite. */
.portal .gateway-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.portal-footer .company_info.footer-address,
.portal-footer .company_info.footer-address li,
.portal-footer .company_info.footer-address a { color:#003e88; }
.portal-footer .company_info.footer-address li { font-size:clamp(16px,1.3vw,18px); line-height:1.6; overflow-wrap:anywhere; }
.portal-footer .company_info.footer-address .company_name { font-size:clamp(18px,1.5vw,22px); font-weight:700; text-transform:uppercase; }

.partner-strip .partners { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; text-align:center; align-items:center; }
.partner-strip .nv-block-banners { display:flex; flex-direction:column; align-items:center; margin:0; min-width:0; }
.partner-strip .nv-block-banners a { display:block; width:100%; }
.partner-strip .nv-block-banners img { display:block; width:100%; max-width:200px; height:72px; object-fit:contain; margin:0 auto; }
@media(max-width:760px) { .partner-strip .partners { grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:16px; padding-bottom:16px; } .partner-strip .nv-block-banners img { max-width:150px; } }
.section-body.portal-home #body { border-left:0; border-right:0; }
.portal-hero { width:100%; max-width:none; margin-inline:0; height:max(320px,calc(100vh - var(--hero-chrome-height, 329px))); height:max(320px,calc(100svh - var(--hero-chrome-height, 329px))); }
.portal-hero .portal-video,.portal-hero .portal-map { width:100%; height:100%; margin:0; }
.portal-hero .portal-video > img { width:100%; height:100%; object-fit:cover; }
.portal-hero [hidden] { display:none !important; }
.portal-hero .portal-map { position:relative; overflow:hidden; background:#004e6c; color:#fff; }
.portal-hero .hero-map-frame { position:absolute; inset:0; }
.portal-hero .map-background,.portal-hero iframe { position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:cover; }
.portal-hero .map-background { filter:none; }
.portal-hero .map-tabs { position:absolute; z-index:2; top:13px; left:32px; right:20px; display:flex; flex-wrap:wrap; width:max-content; max-width:calc(100% - 52px); }
.portal-hero .map-tabs button { background:#102e43d9; }
.portal-hero .map-tabs button[aria-selected=true] { background:#c9dfef; color:#00498f; }
.portal-hero .map-tabs i { margin-right:6px; }
.portal-hero .map-video-back { position:absolute; z-index:2; bottom:10px; left:20px; border:1px solid white; border-radius:6px; background:#133b4ce6; color:white; padding:8px 14px; }
.portal-hero .map-mini { z-index:2; padding:0; cursor:pointer; }
.portal-hero.has-vector-map .map-mini { display:none; }
.portal-hero.has-vector-map .map-tabs button { flex-shrink:0; white-space:nowrap; }
.portal-hero.has-vector-map .hero-map-frame { inset:0; }
.portal-hero.has-vector-map .map-tabs { left:56px; right:290px; max-width:calc(100% - 346px); flex-wrap:nowrap; overflow-x:auto; }
@media(max-width:760px) {
    .portal-hero.has-vector-map .map-tabs { left:56px; right:210px; max-width:calc(100% - 266px); }
}
.portal-hero .map-mini span { color:white; }
.portal-hero button:focus-visible { outline:2px solid #f2b832; outline-offset:2px; }
@media(max-width:760px) { .portal-hero .map-tabs { left:12px; top:10px; max-width:calc(100% - 24px); } .portal-hero .map-tabs button { padding:8px; font-size:12px; } .portal-hero .map-mini { width:110px; height:60px; right:12px; } .portal-hero .map-mini span { padding:4px 6px; font-size:11px; } }

/* Three independent zones keep labels on one line without squeezing the metrics. */
.portal .visitor-strip .visitors { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(240px,1.2fr) minmax(0,2fr); align-items:center; gap:32px; padding-block:20px; }
.portal .visitor-summary { display:contents; }
.portal .visitor-total { min-width:0; white-space:nowrap; }
.portal .visitor-total b { font-size:40px; font-weight:700; line-height:1.1; letter-spacing:0; }
.portal .visitor-total span { font-size:18px; }
.portal .visitor-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; min-width:0; }
.portal .visitor-metrics,.portal .visitor-countries { border-left:1px solid rgba(255,255,255,.25); padding-left:16px; }
.portal .visitor-metric { margin:0; min-width:0; text-align:left; }
.portal .visitor-metric dt { font-size:14px; font-weight:400; line-height:1.4; white-space:nowrap; }
.portal .visitor-metric dd { margin:4px 0 0; font-size:26px; font-weight:700; line-height:1.2; white-space:nowrap; }
.portal .visitor-countries { min-width:0; }
.portal .visitor-countries > p { font-size:16px; white-space:nowrap; margin:0 0 8px; }
.portal .visitor-countries > div { justify-content:flex-start; flex-wrap:wrap; gap:12px 20px; }
.portal .visitor-countries > div > span { flex-shrink:0; gap:8px; font-size:14px; white-space:nowrap; }
.portal .visitor-countries img,.portal .visitor-countries i { width:32px; height:32px; flex-shrink:0; }
.portal .visitor-countries i { font-size:20px; line-height:1; }
.portal .visitor-countries b { display:inline; font-weight:700; }
.portal .portal-footer-grid { display:block; padding-block:28px; }
.portal-footer .portal-copyright > .portal-container { visibility:hidden; }
.portal-footer .company_info.footer-address { width:100%; max-width:960px; margin-inline:auto; text-align:center; }
.portal-footer .company_info.footer-address em { margin-right:10px; }
@media(min-width:761px) and (max-width:1100px) {
    .portal .visitor-strip .visitors { grid-template-columns:minmax(0,1.3fr) minmax(0,3fr); gap:24px 32px; }
    .portal .visitor-metrics { gap:24px; }
    .portal .visitor-countries { grid-column:1 / -1; border-left:0; padding-left:0; }
}
@media(max-width:760px) {
    .portal .visitor-strip .visitors { grid-template-columns:minmax(0,1fr); gap:24px; }
    .portal .visitor-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
    .portal .visitor-countries > div { flex-wrap:nowrap; overflow-x:auto; }
    .portal .visitor-metrics,.portal .visitor-countries { border-left:0; padding-left:0; }
}
@media(min-width:761px) { .portal .gateway-grid:has(> :nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* News categories use the same portal cards, with one consistent headline budget. */
.portal .portal-news-three-column li a { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.portal .portal-news-three-column .gateway:first-child li:nth-child(3) a { -webkit-line-clamp:2; }
.portal .portal-news-three-column h2 { min-height:2.7em; }
.portal .portal-news-three-column .gateway-photo > a { display:block; height:100%; }

/* Header content shares the centered portal shell. */
.portal .portal-header { height:84px; }
.portal .header-layout { padding:0; grid-template-columns:auto minmax(0,1fr); align-items:center; }
.portal .portal-brand { justify-content:flex-start; align-items:center; width:auto; height:auto; }
.portal .portal-brand img { width:auto; height:64px; object-fit:contain; display:block; }
.portal .header-right { min-width:0; justify-content:center; }
.portal .header-utilities { display:flex; justify-content:flex-end; align-items:center; min-width:0; }
.portal .header-layout .portal-languages { position:static; transform:none; width:max-content; max-width:100%; justify-content:flex-end; flex-wrap:nowrap; gap:18px; overflow-x:auto; }
.portal .portal-languages button { flex-shrink:0; min-height:44px; min-width:44px; font-size:14px; font-weight:500; line-height:1.4; gap:8px; padding:0 9px 0 0; border:0; border-right:1px solid #dbe5f1; border-radius:0; background:transparent; color:#252a36; }
.portal .portal-languages button:last-child { border-right:0; padding-right:0; }
.portal .portal-languages button[aria-pressed="true"] { font-weight:700; color:#003e88; }
.portal .portal-languages button:hover { color:#008cd1; text-decoration:underline; }
.portal .portal-languages img { width:20px; height:14px; }
.portal-home .video-actions { height:80px; padding-block:0; }
.portal .welcome { position:relative; display:flex; justify-content:center; align-items:center; height:80px; min-height:0; margin-top:-80px; padding:0; pointer-events:none; }
.portal-home .welcome .qeza-chatbot-fab.is-docked { width:80px; transform:translateY(-18px); pointer-events:auto; }
.portal-home .welcome .qeza-chatbot-fab-avatar { width:80px; height:67px; }
.portal-home .welcome .qeza-chatbot-fab-label { padding:4px 8px; font-size:10px; }
@media(max-width:760px) {
    .portal-home .video-actions { height:96px; align-items:flex-end; justify-content:center; padding-bottom:4px; }
    .portal-home .welcome { height:96px; margin-top:-96px; align-items:flex-start; }
    .portal-home .welcome .qeza-chatbot-fab.is-docked { width:68px; transform:translateY(-38px); }
    .portal-home .welcome .qeza-chatbot-fab-avatar { width:68px; height:57px; }
    .portal-home .welcome .qeza-chatbot-fab-label { font-size:9px; }
}
.welcome .qeza-chatbot-fab.is-docked { --qeza-font:"Be Vietnam Pro",Arial,"Helvetica Neue",sans-serif; position:static; margin:0; transform:none; z-index:auto; font-family:var(--qeza-font); }
@media(min-width:761px) and (max-width:1100px) { .portal .portal-languages button { font-size:14px; } }
@media(max-width:760px) {
    .portal .portal-header { height:64px; }
    .portal .header-layout { min-height:64px; padding:0; gap:14px; }
    .portal .portal-brand img { height:42px; }
    .portal .header-utilities { padding-right:48px; }
    .portal .header-layout .portal-languages { min-width:0; justify-content:flex-start; gap:8px; }
    .portal .portal-language-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
}

/* Homepage demo chat uses the prototype's inline panel, not the inner-page modal. */
.portal-home .welcome.chat-is-open { display:none; }
.investqn-chat { --chat-height:min(600px,calc(100dvh - 24px)); color:#173b62; font-family:"Be Vietnam Pro",Arial,sans-serif; }
.investqn-chat:has(.chat-panel[hidden]) { display:none; }
.investqn-chat .chat-panel[hidden] { display:none; }
.investqn-chat .chat-panel { position:relative; inset:auto; width:100%; max-width:none; max-height:none; z-index:auto; transform:none; display:flex; flex-direction:column; height:var(--chat-height); margin:12px 0 20px; background:#fff; border:1px solid #dce7f4; border-radius:18px; box-shadow:0 16px 50px #002d6533; overflow:hidden; animation:investqn-chat-open .24s ease-out; }
.investqn-chat--popup { flex:1; min-height:0; display:flex; }
.qeza-chatbot .qeza-chatbot-fab[aria-expanded="true"] { visibility:hidden; }
.investqn-chat--popup .chat-panel { height:auto; flex:1; min-height:0; margin:0; border:0; border-radius:0; box-shadow:none; animation:none; }
.investqn-chat--popup .chat-messages { padding:12px; }
.investqn-chat--popup .chat-bubble { padding:10px 12px; }
.investqn-chat .chat-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 18px; border-bottom:1px solid #e2eaf4; flex-shrink:0; }
.investqn-chat .chat-heading strong { display:block; font-size:15px; }
.investqn-chat .chat-heading small { display:block; font-size:12px; color:#526678; margin-top:3px; }
.investqn-chat button { font-family:inherit; cursor:pointer; }
.investqn-chat .chat-minimize { display:grid; place-items:center; padding:0; width:36px; height:36px; flex-shrink:0; border:1px solid #d7e3f1; border-radius:50%; background:#fff; color:#16599f; line-height:1; }
.investqn-chat .chat-messages { flex:1; min-height:0; overflow:auto; padding:18px 24px; background:#f5f8fc; overscroll-behavior:contain; display:flex; flex-direction:column; gap:16px; }
.investqn-chat .chat-message { max-width:min(100%,820px); align-self:flex-start; flex-shrink:0; }
.investqn-chat .chat-message--user { align-self:flex-end; max-width:min(100%,620px); }
.investqn-chat .chat-message-author { display:block; font-size:11px; color:#6b819a; margin:0 4px 5px; }
.investqn-chat .chat-message--user .chat-message-author { text-align:right; }
.investqn-chat .chat-bubble { border:1px solid #e2eaf4; border-radius:2px 13px 13px; padding:12px 16px; background:#fff; font-size:14px; line-height:1.6; overflow-wrap:anywhere; white-space:pre-wrap; }
.investqn-chat .chat-message--user .chat-bubble { background:#0866dd; border-color:#0866dd; color:#fff; border-radius:13px 2px 13px 13px; }
.investqn-chat .chat-bubble p { margin:0 0 8px; }
.investqn-chat .chat-bubble p:last-child { margin-bottom:0; }
.investqn-chat .chat-bubble ul,.investqn-chat .chat-bubble ol { white-space:normal; margin:8px 0; padding-left:22px; }
.investqn-chat .chat-bubble ul { list-style:disc; }
.investqn-chat .chat-bubble ol { list-style:decimal; }
.investqn-chat .chat-bubble strong { font-weight:700; }
.investqn-chat .chat-bubble a { color:#0862cd; text-decoration:underline; }
.investqn-chat .chat-suggestions { display:flex; flex-wrap:wrap; gap:8px; padding:10px 16px; flex-shrink:0; }
.investqn-chat .chat-suggestions[hidden] { display:none; }
.investqn-chat .chat-suggestions button { border:1px solid #cbdff5; background:#f3f8ff; color:#16599f; border-radius:16px; padding:7px 11px; font-size:12px; line-height:1.4; text-align:left; }
.investqn-chat .chat-status { flex-shrink:0; margin:0; padding:3px 16px; color:#526678; font-size:12px; min-height:23px; }
.investqn-chat .chat-form { display:flex; align-items:flex-end; gap:10px; padding:12px 16px 14px; border-top:1px solid #e2eaf4; flex-shrink:0; }
.investqn-chat textarea { flex:1; min-width:0; max-height:100px; resize:none; border:1px solid #d3dfed; border-radius:12px; padding:11px 14px; font:14px/1.5 "Be Vietnam Pro",Arial,sans-serif; color:#173b62; background:#fff; }
.investqn-chat [type=submit] { width:44px; height:44px; flex-shrink:0; border:0; border-radius:12px; background:#0866dd; color:white; font-size:20px; }
.investqn-chat button:hover { filter:brightness(.96); }
.investqn-chat button:disabled { opacity:.55; cursor:wait; }
.investqn-chat :is(button,textarea,a):focus-visible { outline:2px solid #00a5ef; outline-offset:2px; }
@keyframes investqn-chat-open { from { height:0; opacity:0; } to { height:var(--chat-height); opacity:1; } }
@media(max-width:760px) {
  .investqn-chat { --chat-height:min(560px,calc(100dvh - 24px)); }
  .investqn-chat .chat-panel { border-radius:14px; }
  .investqn-chat .chat-messages { padding:12px; }
  .investqn-chat .chat-heading { padding:6px 12px; }
  .investqn-chat .chat-bubble { padding:10px 12px; }
  .investqn-chat .chat-suggestions { padding:8px 12px; gap:6px; }
  .investqn-chat .chat-form { padding:10px; }
  .investqn-chat textarea { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .investqn-chat .chat-panel { animation:none; } }

.investqn-chat .chat-table-scroll { max-width:100%; overflow:auto; }
.investqn-chat table { border-collapse:collapse; min-width:360px; width:100%; font-size:14px; }
.investqn-chat th,.investqn-chat td { min-width:90px; overflow-wrap:normal; word-break:normal; border:1px solid #dfe7ef; padding:8px 10px; text-align:left; vertical-align:top; }
.investqn-chat th { background:#f1f5f9; font-weight:700; }
