/* Enterprise layer: loaded last. Flat, restrained, navy-led; gold is an accent only. */
body.bb{--radius:6px;--ent-shadow:0 1px 2px rgba(13,27,74,.06),0 1px 3px rgba(13,27,74,.04);--teal:#1f3a8a;--teal-dark:#162b6b}
body.bb,body.bb button,body.bb input,body.bb select,body.bb textarea{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body.bb h1,body.bb h2,body.bb h3,body.bb h4{font-weight:700;letter-spacing:-.015em}
body.bb p,body.bb li{font-weight:400}

/* Buttons: square-ish, solid navy primary, no glow */
body.bb .btn-primary,body.bb .nav-cta,body.bb.home .btn-primary,body.bb.home .nav-cta{background:var(--navy);color:#fff !important;border-radius:var(--radius);box-shadow:none;font-weight:600;letter-spacing:0;text-transform:none}
body.bb .btn-primary:hover,body.bb .nav-cta:hover,body.bb.home .btn-primary:hover,body.bb.home .nav-cta:hover{background:var(--navy-mid);box-shadow:none;transform:none}
body.bb .btn-outline,body.bb .h-ghost{border-radius:var(--radius);border:1px solid var(--teal);color:var(--teal);font-weight:600;background:transparent}
/* on dark surfaces: white button, navy text */
body.bb .service-hero .btn-primary,body.bb .contact-hero .btn-primary,body.bb .blog-hero .btn-primary,body.bb .cta-band .btn-primary,body.bb .h-hero .btn-primary,body.bb .h-sec.dark .btn-primary{background:#fff;color:var(--navy) !important;border:1px solid #fff}
body.bb .service-hero .btn-primary:hover,body.bb .cta-band .btn-primary:hover,body.bb .h-hero .btn-primary:hover{background:#e8edfb}
body.bb .h-hero .h-ghost,body.bb .h-sec.dark .h-ghost{border-color:rgba(255,255,255,.5);color:#fff}

/* Hero: solid, calm */
body.bb .service-hero,body.bb .contact-hero,body.bb .blog-hero,body.bb .h-hero{background:var(--navy);background-image:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}
body.bb .h-hero::after,body.bb .blog-hero::before{display:none}
body.bb .h-hero h1 em,body.bb .h-title em{color:inherit;font-style:normal;border-bottom:3px solid var(--gold)}
body.bb .h-hero h1{font-weight:700;letter-spacing:-.02em}
body.bb .cta-band{background:var(--navy);border-top:3px solid var(--gold)}

/* Cards and surfaces: flat, 1px border, small radius, no hover lift */
body.bb .benefit-card,body.bb .h-card,body.bb .h-step,body.bb .h-stage,body.bb .h-kpi,body.bb .bb-steps>li,body.bb .bb-kpis>div,body.bb .sidebar-cta,body.bb .services-nav-card,body.bb .service-card,body.bb .h-report,body.bb .h-faq details{border-radius:var(--radius);box-shadow:var(--ent-shadow);border:1px solid var(--border);transition:border-color .15s}
body.bb .benefit-card:hover,body.bb .h-card:hover,body.bb .service-card:hover,body.bb .h-trio .h-card:hover{transform:none;box-shadow:var(--ent-shadow);border-color:var(--teal)}
body.bb .bb-table-wrap,body.bb .bb-callout,body.bb .highlight-box{border-radius:var(--radius)}
body.bb .highlight-box{background:var(--section-bg);border:1px solid var(--border);border-left:3px solid var(--gold)}
body.bb .bb-callout{border-left-width:3px}
body.bb .service-content h2{border-left:0;padding-left:0;font-size:1.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}
body.bb .bb-steps>li::before{border-radius:var(--radius);background:var(--navy);color:#fff}

/* Chips, pills, tags: rectangular */
body.bb .h-chips li,body.bb .h-pill,body.bb .h-tag,body.bb .h-pills a,body.bb .h-pills span{border-radius:4px}

/* Nav and forms */
body.bb .navbar{box-shadow:none;border-bottom:1px solid var(--border)}
body.bb input,body.bb select,body.bb textarea{border-radius:var(--radius)}

/* Section labels: quiet uppercase, no ornament */
body.bb .section-label{letter-spacing:.08em;font-size:.75rem;font-weight:600;color:var(--teal)}

/* Home hero: report card stretches to the full height of the left column */
@media (min-width:861px){
body.bb .h-hero-grid{align-items:stretch}
body.bb .h-report{display:flex;flex-direction:column;padding:2rem 2.1rem}
body.bb .h-report .h-bars{flex:1;align-content:space-evenly;gap:.9rem}
body.bb .h-report .h-bar{font-size:.85rem}
body.bb .h-report .h-kpi{padding:1rem}
body.bb .h-report .h-kpi strong{font-size:1.9rem}
}


/* Sticky nav: the nav's <header> wrapper is only nav-high, so sticky had no room; lift the nav into body.
   overflow-x:clip (not hidden) so html/body do not become scroll containers. */
body>header{display:contents}
html,body{overflow-x:clip}

/* ── Accessibility ── */
/* links inside running text must not rely on colour alone (WCAG 1.4.1) */
body.bb main p a:not(.btn-primary):not(.btn-outline):not(.h-more),body.bb main li a:not([class]),body.bb footer p a{text-decoration:underline;text-underline-offset:2px}
/* keyboard users can open the Services mega menu (it only opened on :hover) */
.has-dropdown:focus-within .nav-mega{opacity:1;visibility:visible;pointer-events:all;transform:translateY(0)}
.has-dropdown:focus-within>a::after{transform:rotate(180deg)}
/* clear, high-contrast focus ring on light and dark surfaces */
body.bb :focus-visible{outline:3px solid #1f3a8a;outline-offset:3px;box-shadow:0 0 0 5px #fff}
body.bb footer :focus-visible,body.bb .cta-band :focus-visible,body.bb .service-hero :focus-visible,body.bb .h-hero :focus-visible,body.bb .h-sec.dark :focus-visible,body.bb .sidebar-cta:focus-visible{outline-color:#fff;box-shadow:0 0 0 5px #0d1b4a}
/* clickable cards get a visible focus state */
.blog-card[role="link"]:focus-visible,.service-card:focus-visible{outline:3px solid #1f3a8a;outline-offset:2px}
/* respect reduced-motion preference */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal{opacity:1 !important;transform:none !important}
}
/* forced-colors / high-contrast mode keeps button and card boundaries */
@media (forced-colors:active){body.bb .btn-primary,body.bb .btn-outline,body.bb .nav-cta{border:1px solid ButtonText}}

/* ── Listen (audio reader) ── */
.listen-widget{position:fixed;left:1rem;bottom:1rem;z-index:950;font-family:inherit}
.listen-open,.listen-btn,.listen-speed{font:inherit;cursor:pointer}
.listen-open{display:inline-flex;align-items:center;gap:.5rem;background:#0d1b4a;color:#fff;border:1px solid #fff;border-radius:6px;padding:.6rem .9rem;font-size:.85rem;font-weight:600;box-shadow:0 2px 8px rgba(13,27,74,.3)}
.listen-open:hover{background:#1b2f6e}
.listen-widget.is-open .listen-open{display:none}
.listen-panel{display:flex;align-items:center;gap:.35rem;background:#0d1b4a;border:1px solid #fff;border-radius:8px;padding:.4rem;box-shadow:0 4px 16px rgba(13,27,74,.35)}
.listen-panel[hidden]{display:none}
.listen-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;color:#fff;border:1px solid transparent;border-radius:6px}
.listen-btn:hover{background:rgba(255,255,255,.14)}
.listen-play{background:#fff;color:#0d1b4a}
.listen-play:hover{background:#e8edfb}
.listen-play .i-pause{display:none}
.listen-widget[data-state="playing"] .listen-play .i-play{display:none}
.listen-widget[data-state="playing"] .listen-play .i-pause{display:block}
.listen-speed{height:40px;background:#fff;color:#0d1b4a;border:0;border-radius:6px;padding:0 .4rem;font-size:.85rem}
.listen-widget :focus-visible{outline:3px solid #fcaf17;outline-offset:2px;box-shadow:none}
.listen-current{outline:3px solid #fcaf17;outline-offset:4px;background:rgba(252,175,23,.14);border-radius:4px;scroll-margin-top:90px}
@media (max-width:640px){.listen-open span{display:none}.listen-open{padding:.65rem}.listen-widget{bottom:.75rem}.listen-panel{gap:.15rem}.listen-btn{width:36px;height:36px}}
@media print{.listen-widget{display:none}}
.listen-msg{color:#fff;font-size:.8rem;padding:0 .4rem;max-width:11rem}
.listen-msg:empty{display:none}
/* keep the Listen button above the cookie banner until it is dismissed */
body:has([role="region"][aria-label="Cookies"]) .listen-widget{bottom:5.5rem}
@media (max-width:640px){body:has([role="region"][aria-label="Cookies"]) .listen-widget{bottom:9rem}}
/* Listen: headphones button in the navbar; floating button only when there is no navbar */
.listen-nav{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;color:var(--navy);border:1px solid var(--border);border-radius:6px;cursor:pointer}
.listen-nav:hover,.listen-nav[aria-expanded="true"]{background:var(--section-bg);border-color:var(--teal);color:var(--teal)}
.listen-widget.has-nav .listen-open{display:none}
.listen-widget.has-nav:not(.is-open){pointer-events:none}
.listen-voice{max-width:9.5rem;text-overflow:ellipsis}
.listen-voice[hidden]{display:none}
@media (max-width:640px){.listen-panel{flex-wrap:wrap;max-width:calc(100vw - 2rem)}}
@media (max-width:480px){.nav-actions .nav-icon-btn[href^="tel:"]{display:none}#cookie-banner{padding:.6rem 1rem;gap:.5rem}#cookie-banner p{font-size:.75rem;line-height:1.4;min-width:0}}
.a11y-widget{position:fixed;left:.75rem;bottom:.75rem;z-index:950;font-family:inherit}
.a11y-open{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#0d1b4a;color:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(13,27,74,.4);cursor:pointer}
.a11y-open svg{width:16px;height:16px}
.a11y-panel{position:absolute;left:0;bottom:44px;width:208px;background:#fff;color:#0d1b4a;border:1px solid #0d1b4a;border-radius:10px;padding:.9rem;box-shadow:0 8px 28px rgba(13,27,74,.3);display:flex;flex-direction:column;gap:.5rem;font-size:.82rem}
.a11y-panel[hidden]{display:none}
.a11y-title{font-size:1rem}
.a11y-row{display:flex;gap:.5rem}
.a11y-row button,.a11y-reset{flex:1;font:inherit;font-weight:700;padding:.45rem;border:1px solid #0d1b4a;border-radius:6px;background:#fff;color:#0d1b4a;cursor:pointer}
.a11y-row button:hover,.a11y-reset:hover{background:#e8ecf7}
.a11y-opt{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.a11y-opt input{width:18px;height:18px}
html.a11y-contrast{filter:contrast(1.4)}
html.a11y-links a{text-decoration:underline!important;text-underline-offset:3px}
html.a11y-font body,html.a11y-font body *{font-family:Verdana,Tahoma,Arial,sans-serif!important;letter-spacing:.02em;word-spacing:.08em}
html.a11y-nomotion *,html.a11y-nomotion *::before,html.a11y-nomotion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.cta-band{padding:4rem 2rem}
.cta-band p:last-child{margin-bottom:0}
body footer{padding-top:2rem}
@media (max-width:480px){.cta-band{padding:3rem 1.25rem}}
.lang ul{max-height:70vh;overflow-y:auto;min-width:9.5rem}
html:lang(zh) body,html:lang(zh) button,html:lang(zh) input,html:lang(zh) select,html:lang(zh) textarea{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif}
html:lang(ko) body,html:lang(ko) button,html:lang(ko) input,html:lang(ko) select,html:lang(ko) textarea{font-family:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif}
html:lang(ar) body,html:lang(ar) button,html:lang(ar) input,html:lang(ar) select,html:lang(ar) textarea{font-family:"Geeza Pro","Segoe UI",Tahoma,"Noto Sans Arabic",system-ui,sans-serif}
html:lang(zh) *,html:lang(ko) *,html:lang(ar) *{letter-spacing:normal!important}
html[dir=rtl] body{direction:rtl;text-align:right}
html[dir=rtl] .lang ul{right:auto;left:0}
html[dir=rtl] .a11y-widget,html[dir=rtl] .listen-widget{left:auto;right:1rem}
html[dir=rtl] .a11y-panel{left:auto;right:0}
.h-bar{grid-template-columns:120px 1fr 96px}.h-bar>:last-child{white-space:nowrap}
@media (max-width:480px){.h-bar{grid-template-columns:105px 1fr 84px}}
/* header fit: long labels (es, fr, tl, ru, de, vi) need more room than English, so tighten first, then fold into the menu button */
@media (max-width:1536px){.nav-links>li>a{padding:0 .65rem}.nav-actions .nav-icon-btn[href^="tel:"]{display:none}}
@media (max-width:1240px){.nav-links{display:none}.hamburger{display:flex}}
@media (max-width:1300px){html:lang(ru) .nav-links,html:lang(de) .nav-links,html:lang(fr) .nav-links{display:none}html:lang(ru) .hamburger,html:lang(de) .hamburger,html:lang(fr) .hamburger{display:flex}}
@media (max-width:1360px){html:lang(es) .nav-links{display:none}html:lang(es) .hamburger{display:flex}}
@media (max-width:1400px){html:lang(tl) .nav-links{display:none}html:lang(tl) .hamburger{display:flex}}
html:not(:lang(en)) .nav-links>li>a{padding:0 .65rem}
html:not(:lang(en)) .nav-actions .nav-icon-btn[href^="tel:"]{display:none}
/* footer redesign: brand | quick links | services | contact, disclaimer, legal bar */
footer.ft{display:block;background:linear-gradient(180deg,#101c55 0%,#0b1540 100%);color:#c8d3ea;padding:0;border:0;margin:0}
footer.ft a{color:#c8d3ea;text-decoration:none}
footer.ft a:hover{color:#fff;text-decoration:underline}
.ft-wrap{max-width:1240px;margin:0 auto;padding:0 2rem}
.ft-grid{display:grid;grid-template-columns:1.2fr .8fr 1.1fr 1.5fr;gap:2.5rem;padding-top:3.5rem;padding-bottom:2.5rem}
.ft-logo{display:inline-flex;align-items:center;background:#fff;border-radius:10px;padding:8px 12px}
.ft-logo:hover{text-decoration:none!important}
.ft-brand p{margin:1.1rem 0 1.2rem;font-size:.88rem;line-height:1.7;color:#c8d3ea;max-width:22rem}
.ft-social{display:flex;gap:.65rem}
.ft-social a{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;color:#dce6f8;transition:background .15s,border-color .15s}
.ft-social a:hover{background:#0e8f86;border-color:#0e8f86;color:#fff;text-decoration:none}
.ft-heading{display:block;color:#fff;font-weight:700;font-size:1rem;letter-spacing:.01em;margin:0 0 1rem}
.ft-col ul{list-style:none;margin:0;padding:0}
.ft-col li{margin:.5rem 0;font-size:.88rem;line-height:1.45}
.ft-more{margin-top:.7rem}
.ft-more summary{cursor:pointer;color:#7fd8cf;font-size:.86rem;font-weight:600;list-style:none}
.ft-more summary::-webkit-details-marker{display:none}
.ft-more summary::after{content:' \25BE'}
.ft-more[open] summary::after{content:' \25B4'}
.ft-more ul{margin-top:.4rem}
.ft-contact-list li{display:flex;gap:.7rem;align-items:flex-start}
.ft-contact-list svg{width:20px;height:20px;color:#5fd0c5;flex:none;margin-top:.1rem}
.ft-contact-list span:first-child{display:flex}
.ft-disclaimer{border-top:1px solid rgba(255,255,255,.12);padding-top:1.3rem;padding-bottom:1.5rem}
.ft-disclaimer p{margin:0;font-size:.75rem;line-height:1.65;color:rgba(255,255,255,.66);text-align:left}
.ft-bottom{background:rgba(0,0,0,.22);border-top:1px solid rgba(255,255,255,.08)}
.ft-bottom-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-top:1rem;padding-bottom:1rem}
.ft-bottom p{margin:0;font-size:.8rem;color:#aebbd8}
@media (max-width:1000px){.ft-grid{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}
@media (max-width:560px){.ft-wrap{padding:0 1.25rem}.ft-grid{grid-template-columns:1fr;gap:1.8rem;padding-top:2.5rem}.ft-bottom-in{flex-direction:column}}

/* call-to-action band: text left, divider, teal button right (all pages) */
body.bb .cta-band,.cta-band{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:3.5rem;align-items:center;text-align:start;padding:2.8rem max(2rem,calc((100% - 1240px)/2 + 2rem));background:linear-gradient(105deg,#0f1a52 0%,#13306b 55%,#0e5368 100%);border-top:0}
.cta-band h2{grid-column:1;margin:0 0 .45rem;font-size:clamp(1.55rem,2.4vw,2.1rem);font-weight:800;color:#fff;line-height:1.2}
.cta-band>p{grid-column:1;margin:0;max-width:42rem;color:rgba(255,255,255,.82);font-size:1.02rem;line-height:1.65}
.cta-band>a+p{margin-top:.9rem}
.cta-band>a+p a{color:#8fe0d8!important;font-size:.88rem!important;font-weight:600}
body.bb .cta-band .btn-primary,.cta-band .btn-primary{grid-column:2;grid-row:1/span 3;justify-self:end;position:relative;background:#0e8f86;color:#fff!important;border:1px solid #0e8f86;font-weight:700;font-size:1rem;padding:1rem 1.9rem;border-radius:6px;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.25)}
body.bb .cta-band .btn-primary:hover,.cta-band .btn-primary:hover{background:#0a7871;border-color:#0a7871}
.cta-band .btn-primary::before{content:'';position:absolute;left:-1.75rem;top:-.9rem;bottom:-.9rem;width:1px;background:rgba(255,255,255,.28)}
html[dir=rtl] .cta-band .btn-primary::before{left:auto;right:-1.75rem}
@media (max-width:900px){
  body.bb .cta-band,.cta-band{grid-template-columns:1fr;padding:2.2rem 1.25rem}
  body.bb .cta-band .btn-primary,.cta-band .btn-primary{grid-column:1;grid-row:auto;justify-self:start;margin-top:1.2rem;white-space:normal;text-align:center}
  .cta-band .btn-primary::before{display:none}
}

/* polish: card-style call to action overlapping a solid footer, lockup, small-caps headings */
body.bb .cta-band,.cta-band{max-width:1240px;width:calc(100% - 4rem);margin:0 auto -3.4rem;padding:2.6rem 3rem;border-radius:18px;background:linear-gradient(110deg,#0e8f86 0%,#127f9c 45%,#1d4f9e 100%);position:relative;z-index:3;box-shadow:0 22px 48px rgba(10,20,70,.32);overflow:hidden}
.cta-band::before{display:none}
.cta-band h2{font-size:clamp(1.5rem,2.3vw,2rem)}
.cta-band>p{color:rgba(255,255,255,.92)}
.cta-band>a+p a,.cta-band>p+p a{color:#fff!important;font-size:.88rem!important;font-weight:600;text-decoration:underline;text-underline-offset:3px}
body.bb .cta-band .btn-primary,.cta-band .btn-primary{background:#fff;color:#14205b!important;border-color:#fff;box-shadow:0 8px 22px rgba(8,20,70,.28)}
body.bb .cta-band .btn-primary:hover,.cta-band .btn-primary:hover{background:#eef4fb;border-color:#eef4fb}
.cta-band .btn-primary::before{background:rgba(255,255,255,.4)}
footer.ft{background:#0a1340;padding-top:3.4rem}
.ft-grid{padding-top:4.2rem}
.ft-logo{display:inline-flex;align-items:center;gap:.8rem;background:none;padding:0;border-radius:0}
.ft-logo-tile{display:inline-flex;background:#fff;border-radius:8px;padding:6px 9px}
.ft-name{display:flex;flex-direction:column;line-height:1.15}
.ft-name-main{color:#fff;font-size:1.12rem;font-weight:500}
.ft-name-main strong{font-weight:800}
.ft-name-tag{color:#7fd8cf;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-top:.2rem}
.ft-heading{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:1.3rem;position:relative;padding-bottom:.7rem}
.ft-heading::after{content:'';position:absolute;left:0;bottom:0;width:28px;height:2px;background:#0e8f86}
html[dir=rtl] .ft-heading::after{left:auto;right:0}
.ft-col li{font-size:.9rem;margin:.6rem 0}
footer.ft .ft-col a{color:#b6c3e0}
footer.ft .ft-col a:hover{color:#fff}
.ft-social a{border-radius:50%;width:36px;height:36px}
.ft-brand p{margin-top:1.3rem;color:#b6c3e0}
.ft-disclaimer{border-top:1px solid rgba(255,255,255,.1)}
.ft-disclaimer p{color:rgba(255,255,255,.55)}
.ft-bottom{background:#070e30}
@media (max-width:900px){
  body.bb .cta-band,.cta-band{width:calc(100% - 2rem);padding:2rem 1.4rem;margin-bottom:-2.4rem;border-radius:14px}
  .ft-grid{padding-top:3.4rem}
}
