/* Preserve the navy / turquoise design, with one readable type scale. */
:root { --type-title:clamp(2rem,3.8vw,3.5rem); --type-section:clamp(1.75rem,2.8vw,2.75rem); --muted:#53636e; }
body { font-family:var(--body); }
h1,h2,h3 { text-wrap:balance; letter-spacing:-.025em; overflow-wrap:break-word; }
.hero h1,.subpage-hero h1,.directory-hero h1 { font-size:var(--type-title); line-height:1.16; letter-spacing:-.03em; }
.section-head h2,.project-heading h2,.company h2,.contact h2,.ai-band h2,.inhouse h2,.catalogue-heading h2,.tidocomp-copy h2,.ev-product-copy h2 { font-size:var(--type-section); line-height:1.2; }
.product-copy h2,.scenario-copy h3 { font-size:clamp(1.6rem,2.5vw,2.3rem); line-height:1.25; }
.solution-card p:not(.card-tag),.reference-grid p,.innovation-grid article>p:not(.card-tag),.capability-grid p,.product-info p,.document-card p,.type-grid p,.ev-range-grid p,.path-grid p,.company-principles p,.inhouse-grid span { font-size:1rem; line-height:1.65; }
.card-tag,.product-info small,.section-kicker,.eyebrow,.reference-status,.case-meta dt { letter-spacing:.07em; }
.site-header nav>a,.products-nav>a,.mega-nav summary,.language { font-weight:700; }
.site-header nav>a,.products-nav>a,.language { line-height:1.4; }
.nav-shell { gap:.5rem; }
.site-header nav { gap:1.1rem; }
.brand { flex-shrink:0; align-self:stretch; position:relative; left:-12px; isolation:isolate; padding-right:8px; }
.brand::before { content:""; position:absolute; inset-block:0; right:-48px; width:100vw; background:linear-gradient(90deg,#aec6d3 calc(100% - 64px),rgba(174,198,211,.85) calc(100% - 48px),rgba(174,198,211,.5) calc(100% - 32px),rgba(174,198,211,.15) calc(100% - 16px),rgba(174,198,211,0)); z-index:-1; pointer-events:none; }
.menu-toggle { flex-direction:column; align-items:center; justify-content:center; width:44px; height:44px; cursor:pointer; }
.menu-toggle span { margin:3px; flex-shrink:0; }
/* Display-size APNG frames already contain smooth edges; srcset covers HiDPI. */
.brand img.animated-logo { position:relative; left:-16px; background:transparent; border-radius:0; padding:0; width:180px; height:52px; object-fit:contain; image-rendering:auto; }
.products-nav { display:flex; align-items:center; gap:.15rem; }
.products-nav>a { color:#e1e9ed; text-decoration:none; font-size:.875rem; padding:.7rem 0; }
.mega-nav summary { display:grid; place-items:center; min-width:36px; min-height:44px; font-size:0; padding:0; }
.mega-nav summary:after { content:""; width:8px; height:8px; border-right:2px solid var(--cyan); border-bottom:2px solid var(--cyan); margin:0; transform:translateY(-2px) rotate(45deg); transition:transform 180ms ease-out; }
.mega-nav[open] summary:after { transform:translateY(2px) rotate(225deg); }
.mega-panel { top:80px; }
.mega-panel a { padding:.35rem 0; }
.language { min-height:44px; align-items:center; justify-content:center; }
.language .lang-active,.language .lang-other { width:1.7em; text-align:center; }
@media(min-width:1361px) {
  /* Reserve room for the longer EN/BG label in each of the nine navigation slots. */
  .site-header nav { display:grid; grid-template-columns:4rem 7.75rem 5rem 5.75rem 5.25rem 10.875rem 4.5rem 6rem 11.5rem; gap:.5rem; flex-shrink:0; }
  .site-header nav>a { display:flex; align-items:center; justify-content:center; min-height:44px; white-space:nowrap; }
  .products-nav { gap:0; }
  .products-nav>a { flex:1; text-align:center; white-space:nowrap; }
}
.hero { min-height:780px; }
.hero-inner { padding-top:92px; padding-bottom:100px; gap:4vw; }
.hero-copy { min-width:0; }
.hero-lead { font-size:1.125rem; color:#c1cdd5; }
.hero-media { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,19,31,.96),rgba(6,19,31,.76)); }
.hero-media img,.hero-media video { width:100%; height:100%; object-fit:cover; }
.hero-media img { animation:hero-drift 20s ease-out both; }
.hero-media video { position:absolute; inset:0; }
@keyframes hero-drift { from { transform:scale(1.04); } to { transform:scale(1); } }
.hero-motion { position:absolute; z-index:3; bottom:65px; right:4vw; min-height:44px; border:1px solid #69818e; background:#0b1d2c; color:#d7e5eb; padding:.5rem .75rem; font-size:.875rem; cursor:pointer; }
.motion-paused * { animation-play-state:paused !important; }
.grid-visual { min-width:0; }
.asset-node small,.dash-toolbar,.dash-metrics small,.dash-metrics span,.chart-axis,.stage-copy li small,.case-meta dt { color:#a8bbc6; }
.asset-node em { display:none; }
.asset-node { max-width:48%; }
.trust-row { gap:1.5rem; }
.trust-row span { color:#b3c3cc; text-transform:none; letter-spacing:0; line-height:1.45; }
.signal-strip { color:#a8bac5; }
.feature-card { align-items:stretch; }
.feature-card .card-media { display:flex; align-items:center; justify-content:center; min-height:0; height:auto; padding:1.5rem; background:#e9efef; }
.feature-card .card-media::after { display:none; }
.feature-card .card-media img { display:block; width:100%; height:auto; object-fit:contain; }
.feature-card .card-body { display:flex; flex-direction:column; justify-content:center; min-width:0; }
.feature-card .card-body>a { margin-top:0; }
.feature-card .card-media .card-index { color:#53636e; top:.5rem; left:.5rem; }
.portfolio-image-trigger { display:block; width:100%; border:0; padding:0; background:transparent; color:#075b59; font:inherit; text-align:center; cursor:zoom-in; }
.portfolio-image-trigger:hover { color:#003f3d; }
.portfolio-image-trigger:focus-visible { outline:3px solid #007b74; outline-offset:6px; }
.portfolio-image-trigger span { display:block; padding-top:.75rem; font-size:.875rem; font-weight:650; text-decoration:underline; text-underline-offset:.2em; }
.portfolio-preview { width:min(1100px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); border:0; padding:1.25rem; background:#e9efef; color:var(--ink); overflow:auto; box-shadow:0 24px 80px rgba(0,0,0,.4); }
.portfolio-preview::backdrop { background:rgba(3,12,19,.8); }
.portfolio-preview header { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.portfolio-preview h2 { margin:0; font-size:1.125rem; }
.portfolio-preview button { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; border:1px solid #8fa6ac; background:transparent; color:var(--ink); cursor:pointer; }
.portfolio-preview button:hover { background:#d6e3e5; }
.portfolio-preview img { display:block; width:100%; height:auto; max-height:calc(100dvh - 190px); object-fit:contain; }
.portfolio-preview a { display:flex; justify-content:center; align-items:center; min-height:44px; margin-top:.75rem; color:#075b59; font-size:.875rem; text-underline-offset:.2em; }
.solution-media { align-self:stretch; flex-shrink:0; height:180px; margin:-2.1rem -2.1rem 1.5rem; overflow:hidden; background:#e9efef; }
.solution-media img { width:100%; height:100%; object-fit:contain; transition:transform 400ms cubic-bezier(.16,1,.3,1); }
.solution-card .card-icon { display:none; }
.solution-media.in-view { animation:portfolio-reveal 600ms cubic-bezier(.16,1,.3,1) both; }
@keyframes portfolio-reveal { from { opacity:.75; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.project-large.in-view img,.project-small.in-view img { animation:hero-drift 900ms ease-out both; }
.product-image { width:100%; border:0; border-bottom:1px solid var(--line); cursor:pointer; font:inherit; color:var(--ink); position:relative; }
.product-image img { transition:transform 300ms cubic-bezier(.16,1,.3,1); }
.product-image .preview-hint { position:absolute; bottom:12px; right:12px; padding:.3rem .6rem; background:var(--navy); color:#fff; font-size:.875rem; }
.product-info { padding:1.4rem; }
.product-info h3 { font-size:1.1rem; line-height:1.4; }
.product-info p { color:#52636e; }
.product-info a { min-height:44px; display:flex; align-items:center; font-size:.9375rem; }
.product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.catalogue-heading { grid-template-columns:1fr minmax(260px,.7fr); gap:2rem; }
.catalogue-tools { grid-template-columns:minmax(260px,340px) 1fr; }
.category-filters button { min-height:44px; font-size:.875rem; }
.catalogue-shell { scroll-margin-top:96px; padding-top:65px; }
.directory-hero { min-height:350px; padding-top:150px; padding-bottom:55px; }
.directory-count strong { font-size:3rem; }
.product-preview { border:0; padding:0; background:var(--paper); color:var(--ink); width:min(850px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; box-shadow:0 24px 80px rgba(0,0,0,.4); }
.product-preview::backdrop { background:rgba(3,12,19,.72); }
.preview-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.preview-image { min-height:300px; display:grid; place-items:center; background:#eaf0f0; padding:2rem; }
.preview-image img { width:100%; height:300px; object-fit:contain; }
.preview-copy { padding:3.5rem 2rem 2rem; }
.preview-copy h2 { font-size:1.75rem; line-height:1.3; }
.preview-copy p { color:#52636e; }
.preview-close { position:absolute; right:.65rem; top:.65rem; width:44px; height:44px; border:0; background:var(--navy); color:#fff; cursor:pointer; }
.preview-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.back-link { display:inline-block; margin-bottom:1.5rem; color:var(--cyan); text-underline-offset:.3em; }
.product-lead>img { object-fit:contain; padding:2rem; height:100%; max-height:650px; }
.detail-specs { grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
.detail-specs dd { overflow-wrap:anywhere; }
#product-image-missing { padding:3rem; align-self:center; }
.contact-form input,.contact-form textarea,.contact-form select { font-size:1rem; letter-spacing:normal; }
.contact-form label { font-size:.875rem; }
.form-note { color:#536773; font-size:.875rem; line-height:1.6; margin:0; text-transform:none; letter-spacing:0; }
.form-note a { display:inline-block; margin-top:.5rem; color:#006e67; font-weight:700; }
.contact-locations { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:4vw; align-items:center; }
.contact-locations h2 { font-size:var(--type-section); }
.contact-list { margin:2rem 0; }
.contact-list div { margin-bottom:1.5rem; }
.contact-list dt { font-size:.875rem; color:#536773; margin-bottom:.3rem; }
.contact-list dd { margin:0; font-weight:600; overflow-wrap:anywhere; }
address { font-style:normal; }
.contact-map { height:420px; background:#e0e9e9; }
.contact-map iframe { width:100%; height:100%; border:0; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:3rem; margin-bottom:3rem; }
.footer-brand { display:block; }
.footer-brand p,.footer-brand span { font-size:.9375rem; color:#b3c4ce; max-width:32ch; }
.footer-column { display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; min-width:0; }
.footer-column h2 { font-size:1rem; margin:0 0 .5rem; }
.footer-column a,.footer-column address { color:#bdccd4; text-decoration:none; font-size:.9375rem; overflow-wrap:anywhere; }
.footer-column a:hover { color:var(--cyan); text-decoration:underline; text-underline-offset:.25em; }
.footer-base { color:#a6bbc7; gap:1rem; flex-wrap:wrap; }
.back-to-top { position:fixed; right:24px; bottom:94px; z-index:25; width:48px; height:48px; border:1px solid #79a5ac; background:var(--navy); color:#fff; display:grid; place-items:center; border-radius:50%; box-shadow:0 8px 24px rgba(0,0,0,.2); }
.back-to-top:hover { background:#123345; color:var(--cyan); }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid #008f86; outline-offset:4px; }
.site-header :focus-visible,.hero :focus-visible,footer :focus-visible { outline-color:var(--cyan); }
input,textarea { caret-color:#00877f; }
::selection { background:#00d8c8; color:#06131f; }
html { scrollbar-color:#64828e #eaf0f0; }
::placeholder { color:#586d79; opacity:1; }
.detail-specs,.spec-grid,.dash-metrics { font-variant-numeric:tabular-nums; }
.visual-topline,.core-mark small,.dash-metrics b em,.flow-node small,.card-index { font-size:.875rem; }
.visual-topline,.core-mark small,.event-row small { color:#b5c8d2; }
.visual-topline,.core-mark small { letter-spacing:.03em; }
.core-mark small { max-width:130px; line-height:1.35; }
.section-kicker,.card-tag,.document-card small,.innovation-grid small { color:#006d66; }
.inhouse .section-kicker,.feature-card .card-tag,.accent-card .card-tag { color:var(--cyan); }
.quick-actions small,.assistant-disclaimer,.result-count,.spec-grid dt { color:#526773; }
.brand-static { display:none; color:#194a8d; font-weight:700; }
.motion-paused .brand img.animated-logo { display:none; }
.motion-paused .brand-static { display:block; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .product-image:hover img { transform:scale(1.06); } }
@media(max-width:1360px) {
  .menu-toggle { display:flex; }
  .site-header nav { position:absolute; display:none; top:100%; left:0; right:0; background:#0b1d2c; padding:1rem 5vw; flex-direction:column; align-items:stretch; max-height:calc(100dvh - 86px); overflow:auto; }
  .site-header nav.open { display:flex; }
  .site-header nav>a { padding:.5rem 0; font-size:1rem; }
  .language { align-self:flex-start; }
  .products-nav { justify-content:space-between; flex-wrap:wrap; }
  .products-nav>a { font-size:1rem; }
  .mega-nav { position:static; }
  .mega-nav[open] { display:contents; }
  .mega-nav[open] summary { margin-left:auto; }
  .mega-panel { position:static; transform:none; width:100%; box-shadow:none; grid-template-columns:1fr; margin-top:.5rem; padding:1rem; gap:1.5rem; }
}
@media(max-width:1180px) {
  .hero-inner { grid-template-columns:1fr; }
  .catalogue-tools { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:820px) {
  .brand img.animated-logo { left:0; }
  .brand::before { right:-64px; }
  .hero-inner { padding-top:55px; }
  .site-header nav { max-height:calc(100dvh - 72px); }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalogue-heading,.contact-locations { grid-template-columns:1fr; gap:2rem; }
  .hero-lead { font-size:1rem; }
  .directory-hero { padding-top:120px; }
  .preview-layout { grid-template-columns:1fr; }
  .preview-image { min-height:200px; }
  .preview-image img { height:200px; }
  .preview-copy { padding:1.5rem; }
  .contact-map { height:320px; }
}
@media(max-width:560px) {
  .brand { left:-4px; }
  html[lang="bg"] .hero h1 { font-size:clamp(1.45rem,7vw,1.75rem); overflow-wrap:normal; }
  .trust-row { gap:.8rem; flex-wrap:wrap; }
  .trust-row>div { flex:1; min-width:135px; }
  .trust-row span { font-size:.875rem; }
  .product-grid,.footer-grid { grid-template-columns:1fr; }
  .footer-grid { gap:2rem; }
  .grid-visual { margin:0; min-height:620px; }
  .asset-node { max-width:calc(100% - 24px); width:calc(50% - 18px); padding:.65rem; }
  .asset-node b { font-size:.875rem; }
  .asset-node small { font-size:.875rem; }
  .asset-node { grid-template-columns:1fr; }
  .asset-node .node-icon { display:none; }
  .visual-core { transform:translate(-50%,-50%); }
  .core-mark { max-width:145px; }
  .signal-strip { gap:.65rem; font-size:.75rem; flex-wrap:wrap; padding:.5rem 1rem; height:auto; min-height:56px; }
  .hero-motion { bottom:90px; }
  .contact-list a { font-size:1rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
}
