/* ==========================================================================
   MAT ООД – design system v2 ("Dark industrial editorial")
   Loaded by mat-core. Everything is namespaced with .mat-*
   ========================================================================== */

:root {
  --mat-navy: #222A44;
  --mat-navy-d: #161C33;
  --mat-ink: #0B0F1C;
  --mat-ink-2: #121829;
  --mat-accent: #DB3300;
  --mat-accent-h: #F23A00;
  --mat-light: #F3F4F6;
  --mat-white: #FFFFFF;
  --mat-steel: #8A93A8;
  --mat-text: #1D1D1D;
  --mat-muted: #5B6373;
  --mat-line-d: rgba(255, 255, 255, 0.12);
  --mat-line-l: #D9DCE4;
  --mat-font: 'Sofia Sans', system-ui, sans-serif;
  --mat-font-display: 'Sofia Sans Condensed', 'Sofia Sans', system-ui, sans-serif;
  --mat-font-xc: 'Sofia Sans Extra Condensed', 'Sofia Sans Condensed', system-ui, sans-serif;
  --mat-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --mat-ease-io: cubic-bezier(0.65, 0, 0.35, 1);
  --mat-gutter: clamp(16px, 4vw, 64px);
  --mat-header-h: 84px;
}
@media (max-width: 767px) { :root { --mat-header-h: 68px; } }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--mat-font); color: var(--mat-text); background: var(--mat-white); overflow-x: hidden; }
body.mat-menu-open { overflow: hidden; }
::selection { background: var(--mat-accent); color: #fff; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--mat-accent); outline-offset: 3px; }

/* --------------------------------------------------------------------------
   Typography helpers
   -------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6, .mat-display { font-family: var(--mat-font); font-weight: 800; text-transform: none; letter-spacing: -0.02em; line-height: 1.06; margin: 0; overflow-wrap: anywhere; }
h1 { font-size: clamp(2rem, 4.2vw, 3.6rem); line-height: 1.04; }
h2 { font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.06; }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.15; }
h4 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); line-height: 1.2; }
h5 { font-size: 1.05rem; }
h6 { font-size: 1rem; }
.mat-h-xl .elementor-heading-title, .mat-h-xl { font-size: clamp(2.2rem, 4.8vw, 4.4rem) !important; line-height: 1.02 !important; letter-spacing: -0.025em; }
.mat-h-lg .elementor-heading-title, .mat-h-lg { font-size: clamp(1.9rem, 3.6vw, 3.4rem) !important; line-height: 1.05 !important; }
.mat-h-md .elementor-heading-title, .mat-h-md { font-size: clamp(1.6rem, 2.6vw, 2.4rem) !important; line-height: 1.08 !important; }
.mat-h-sm .elementor-heading-title, .mat-h-sm { font-size: clamp(1.2rem, 1.6vw, 1.4rem) !important; line-height: 1.18 !important; }
.mat-h-normal .elementor-heading-title { text-transform: none !important; letter-spacing: 0; }
@media (max-width: 767px) {
  h1 { font-size: 1.9rem; } h2 { font-size: 1.6rem; } h3 { font-size: 1.2rem; }
  .mat-h-xl .elementor-heading-title, .mat-h-xl { font-size: 2.05rem !important; }
  .mat-h-lg .elementor-heading-title, .mat-h-lg { font-size: 1.8rem !important; }
  .mat-h-md .elementor-heading-title, .mat-h-md { font-size: 1.5rem !important; }
  .mat-h-sm .elementor-heading-title, .mat-h-sm { font-size: 1.15rem !important; }
}
.mat-serif-accent em, .mat-accent-word em { font-style: normal; color: var(--mat-accent); }
.mat-outline .elementor-heading-title, .mat-outline { color: rgba(255,255,255,0.35) !important; }
.mat-outline-dark .elementor-heading-title { color: transparent !important; -webkit-text-stroke: 1px rgba(34,42,68,0.5); }

p { margin: 0 0 1em; }.mat-lead .elementor-widget-container, .mat-lead { font-size: clamp(1.1rem, 1.35vw, 1.3rem); line-height: 1.5; }.mat-body-lg .elementor-widget-container, .mat-body-lg { font-size: 1.125rem; line-height: 1.6; }.mat-small .elementor-widget-container, .mat-small { font-size: 0.9rem; line-height: 1.5; }.mat-measure .elementor-widget-container, .mat-measure { max-width: 62ch; }

/* kicker: "01 / ПРОДУКТИ" */
.mat-kicker .elementor-heading-title, .mat-kicker { font-family: var(--mat-font); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase; line-height: 1; color: var(--mat-steel); display: flex; align-items: center; gap: 12px; }
.mat-kicker .elementor-heading-title b, .mat-kicker b { font-weight: 700; color: var(--mat-accent); font-family: var(--mat-font-display); font-size: 1.05rem; letter-spacing: 0; }
.mat-kicker .elementor-heading-title::before, .mat-kicker.mat-kicker-bar::before { content: ""; width: 28px; height: 2px; background: var(--mat-accent); flex: none; }
.mat-kicker-plain .elementor-heading-title::before { display: none; }/* mono-ish meta (dates, numbers) */
.mat-meta .elementor-heading-title, .mat-meta, .mat-meta .elementor-widget-container { font-family: var(--mat-font); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-steel); font-weight: 600; }


/* em helpers inside headings */
.mat-em-outline .elementor-heading-title em { font-style: normal; color: var(--mat-accent); }
.mat-em-outline.mat-hero-title .elementor-heading-title em, .mat-dark .mat-em-outline .elementor-heading-title em { color: #FF5A2A; }
.mat-em-accent .elementor-heading-title em { font-style: normal; color: var(--mat-accent); }
.mat-h-normal-keep .elementor-heading-title { text-transform: uppercase; }
.mat-kicker .elementor-heading-title { display: flex; }

/* --------------------------------------------------------------------------
   Section mechanics
   -------------------------------------------------------------------------- */
.mat-section { position: relative; }
.mat-dark { background: var(--mat-ink); color: #fff; }
.mat-navy { background: var(--mat-navy); color: #fff; }
.mat-light-bg { background: var(--mat-light); }
.mat-dark h1, .mat-dark h2, .mat-dark h3, .mat-dark h4, .mat-navy h1, .mat-navy h2, .mat-navy h3, .mat-navy h4 { color: #fff; }
.mat-dark p, .mat-navy p { color: rgba(255,255,255,0.72); }
.mat-dark .mat-kicker .elementor-heading-title { color: rgba(255,255,255,0.6); }

/* diagonal section edges (echo of the logo stripes) */
.mat-cut-top { clip-path: polygon(0 0, 100% 4.5vw, 100% 100%, 0 100%); margin-top: -4.5vw; padding-top: calc(var(--mat-pad, 120px) + 4.5vw) !important; }
.mat-cut-bottom { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.5vw), 0 100%); padding-bottom: calc(var(--mat-pad, 120px) + 4.5vw) !important; }
.mat-cut-both { clip-path: polygon(0 0, 100% 4.5vw, 100% calc(100% - 4.5vw), 0 100%); margin-top: -4.5vw; padding-top: calc(var(--mat-pad, 120px) + 4.5vw) !important; padding-bottom: calc(var(--mat-pad, 120px) + 4.5vw) !important; }
@media (max-width: 767px) { .mat-cut-top, .mat-cut-both { --mat-pad: 72px; } .mat-cut-bottom { --mat-pad: 72px; } }

/* slanted stripes pattern (logo motif) */
.mat-stripes::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.05;
  background-image: repeating-linear-gradient(115deg, #fff 0 2px, transparent 2px 22px); }
.mat-stripes-accent { position: relative; }
.mat-stripes-accent::before { content: ""; position: absolute; right: var(--mat-gutter); top: 0; width: 140px; height: 100%; pointer-events: none; opacity: 0.9;
  background-image: repeating-linear-gradient(115deg, var(--mat-accent) 0 6px, transparent 6px 20px); mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 70%, transparent); -webkit-mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 70%, transparent); }

/* blueprint grid */
.mat-grid-bg::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 80px 80px; mask-image: radial-gradient(ellipse at 50% 0%, #000 30%, transparent 75%); -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 30%, transparent 75%); }
.mat-grid-bg-light::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(34,42,68,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(34,42,68,0.06) 1px, transparent 1px); background-size: 80px 80px; }

/* corner ticks */
.mat-corners { position: relative; }
.mat-corners::before, .mat-corners::after { content: ""; position: absolute; width: 18px; height: 18px; border: 2px solid var(--mat-accent); pointer-events: none; transition: transform .5s var(--mat-ease); }
.mat-corners::before { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.mat-corners::after { bottom: 0; right: 0; border-left: 0; border-top: 0; }
.mat-corners:hover::before { transform: translate(-4px, -4px); }
.mat-corners:hover::after { transform: translate(4px, 4px); }

/* vertical side label */
.mat-side-label { position: absolute; left: var(--mat-gutter); top: 50%; transform: rotate(-90deg) translateX(-50%); transform-origin: left top; font-size: 0.72rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--mat-steel); white-space: nowrap; pointer-events: none; }
@media (max-width: 1200px) { .mat-side-label { display: none; } }

/* thin ruler line with ticks */
.mat-ruler { position: relative; height: 1px; background: var(--mat-line-d); }
.mat-ruler::before { content: ""; position: absolute; inset: -6px 0 auto 0; height: 13px; background-image: repeating-linear-gradient(90deg, var(--mat-line-d) 0 1px, transparent 1px 40px); opacity: .8; }

/* giant watermark text */
.mat-watermark { position: absolute; right: -0.05em; bottom: -0.12em; font-family: var(--mat-font-xc); font-weight: 800; font-size: clamp(8rem, 26vw, 24rem); line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,0.08); pointer-events: none; user-select: none; white-space: nowrap; }
.mat-light-bg .mat-watermark, .mat-watermark-dark { -webkit-text-stroke: 1px rgba(34,42,68,0.09); }

/* --------------------------------------------------------------------------
   Buttons (Elementor button widget + any .mat-btn)
   -------------------------------------------------------------------------- */
.elementor-widget-button .elementor-button, .mat-btn, .elementor-button.mat-btn, .mat-form .elementor-button[type="submit"] {
  position: relative; overflow: hidden; isolation: isolate; border-radius: 0 !important;
  font-family: var(--mat-font) !important; font-weight: 700 !important; font-size: 0.86rem !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;
  padding: 18px 28px !important; line-height: 1 !important; transition: color .35s var(--mat-ease), background-color .35s var(--mat-ease), border-color .35s var(--mat-ease), transform .35s var(--mat-ease) !important;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}
.elementor-widget-button .elementor-button::before, .mat-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; transform: translateX(-101%) skewX(-18deg); transform-origin: left; transition: transform .5s var(--mat-ease); background: var(--mat-btn-fill, #161C33); }
.elementor-widget-button .elementor-button:hover::before, .mat-btn:hover::before { transform: translateX(0) skewX(0); }
.elementor-widget-button .elementor-button .elementor-button-content-wrapper { gap: 12px; align-items: center; }
.elementor-widget-button .elementor-button .elementor-button-icon svg { width: 14px; height: 14px; transition: transform .4s var(--mat-ease); }
.elementor-widget-button .elementor-button:hover .elementor-button-icon svg { transform: translateX(5px); }
/* variants (set via widget css class) */
.mat-btn-primary .elementor-button { background: var(--mat-accent) !important; color: #fff !important; --mat-btn-fill: #161C33; }
.mat-btn-primary .elementor-button:hover { color: #fff !important; }
.mat-btn-navy .elementor-button { background: var(--mat-navy) !important; color: #fff !important; --mat-btn-fill: var(--mat-accent); }
.mat-btn-white .elementor-button { background: #fff !important; color: var(--mat-navy) !important; --mat-btn-fill: var(--mat-accent); }
.mat-btn-white .elementor-button:hover { color: #fff !important; }
.mat-btn-ghost .elementor-button { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,0.4) !important; --mat-btn-fill: #fff; }
.mat-btn-ghost .elementor-button:hover { color: var(--mat-navy) !important; border-color: #fff !important; }
.mat-btn-ghost-dark .elementor-button { background: transparent !important; color: var(--mat-navy) !important; border: 1px solid rgba(34,42,68,0.35) !important; --mat-btn-fill: var(--mat-navy); }
.mat-btn-ghost-dark .elementor-button:hover { color: #fff !important; border-color: var(--mat-navy) !important; }
.mat-btn-lg .elementor-button { padding: 22px 36px !important; font-size: 0.92rem !important; }
.mat-btn-sm .elementor-button { padding: 14px 20px !important; font-size: 0.78rem !important; }
.mat-btn-block .elementor-button { width: 100%; justify-content: center; }
/* text link with arrow */
.mat-link .elementor-button, .mat-link { background: transparent !important; color: var(--mat-accent) !important; padding: 0 !important; clip-path: none; border: 0 !important; }
.mat-link .elementor-button::before { display: none; }
.mat-link .elementor-button .elementor-button-text { position: relative; }
.mat-link .elementor-button .elementor-button-text::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--mat-ease); }
.mat-link .elementor-button:hover .elementor-button-text::after { transform: scaleX(1); transform-origin: left; }
.mat-link-light .elementor-button { color: #fff !important; }
@media (max-width: 767px) { .mat-btn-mobile-full .elementor-button { width: 100%; justify-content: center; } }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.mat-header { position: fixed !important; top: 0; left: 0; right: 0; z-index: 1000; transition: transform .5s var(--mat-ease), background-color .4s, border-color .4s, backdrop-filter .4s; border-bottom: 1px solid transparent; }
.mat-header.is-scrolled { background: rgba(11,15,28,0.86) !important; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom-color: var(--mat-line-d); }
.mat-header.is-hidden { transform: translateY(-100%); }
.mat-header-light { /* header over light pages */ }
.mat-header-light:not(.is-scrolled) .mat-nav .menu-item > a, .mat-header-light:not(.is-scrolled) .mat-phone a { color: var(--mat-navy) !important; }
.mat-header-light:not(.is-scrolled) .mat-logo-white { display: none; }
.mat-header:not(.mat-header-light) .mat-logo-dark, .mat-header-light.is-scrolled .mat-logo-dark { display: none; }
.mat-header-light:not(.is-scrolled) .mat-logo-dark { display: block; }
.mat-header .elementor-widget-image img { width: 150px; }
@media (max-width: 767px) { .mat-header .elementor-widget-image img { width: 118px; } }
/* nav */
.mat-nav .elementor-nav-menu--main .elementor-item { font-family: var(--mat-font); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; padding: 10px 0 !important; position: relative; }
.mat-nav .elementor-nav-menu--main .elementor-item::after { content: ""; position: absolute; left: 0; bottom: 2px; height: 2px; width: 100%; background: var(--mat-accent); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--mat-ease); }
.mat-nav .elementor-nav-menu--main .elementor-item:hover::after, .mat-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after { transform: scaleX(1); transform-origin: left; }
.mat-nav .elementor-nav-menu--main .elementor-item.highlighted, .mat-nav .elementor-nav-menu--main .elementor-item:hover, .mat-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #fff; background: transparent; }
.mat-nav .elementor-nav-menu--main > li { margin: 0 clamp(10px, 1.4vw, 20px); }
.mat-nav .elementor-nav-menu--dropdown { background: var(--mat-ink-2) !important; border: 1px solid var(--mat-line-d); border-top: 2px solid var(--mat-accent); padding: 10px 0; min-width: 300px; box-shadow: 0 30px 60px rgba(0,0,0,0.45); }
.mat-nav .elementor-nav-menu--dropdown a { color: rgba(255,255,255,0.85) !important; font-weight: 500; font-size: 0.95rem; letter-spacing: 0; text-transform: none; padding: 12px 22px !important; border-bottom: 1px solid rgba(255,255,255,0.06); }
.mat-nav .elementor-nav-menu--dropdown a:hover { background: rgba(219,51,0,0.14) !important; color: #fff !important; padding-left: 28px !important; }
.mat-nav .elementor-nav-menu--dropdown li:last-child a { border-bottom: 0; }
.mat-nav .sub-arrow { margin-left: 4px; }
.mat-phone .elementor-icon-list-item a { color: #fff; font-weight: 700; font-size: 0.95rem; letter-spacing: 0.02em; white-space: nowrap; font-family: var(--mat-font-display); font-size: 1.15rem; }
.mat-phone .elementor-icon-list-icon svg { fill: var(--mat-accent); }
.mat-phone small { display: block; font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-steel); font-family: var(--mat-font); font-weight: 600; }
/* burger */
.mat-burger .elementor-button { background: transparent !important; border: 1px solid rgba(255,255,255,0.35) !important; padding: 14px !important; clip-path: none; --mat-btn-fill: var(--mat-accent); }
.mat-burger .elementor-button svg { width: 20px !important; height: 20px !important; fill: #fff; }
.mat-header-light:not(.is-scrolled) .mat-burger .elementor-button { border-color: rgba(34,42,68,0.35) !important; }
.mat-header-light:not(.is-scrolled) .mat-burger .elementor-button svg { fill: var(--mat-navy); }

/* --------------------------------------------------------------------------
   Off-canvas menu (full-screen)
   -------------------------------------------------------------------------- */
.mat-offcanvas .e-off-canvas__main { background: var(--mat-ink) !important; }
.mat-offcanvas .e-off-canvas__content { padding: 24px var(--mat-gutter) calc(72px + env(safe-area-inset-bottom, 0px)) !important; }
.mat-offcanvas.elementor-widget-off-canvas { --e-off-canvas-height: 100%; }
.mat-oc-nav .elementor-icon-list-items { display: flex; flex-direction: column; gap: 0; }
.mat-oc-nav .elementor-icon-list-item { border-bottom: 1px solid var(--mat-line-d); padding: 0 !important; }
.mat-oc-nav .elementor-icon-list-item a { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; }
.mat-oc-nav .elementor-icon-list-text { font-family: var(--mat-font-display); font-weight: 800; text-transform: uppercase; font-size: clamp(2rem, 7vw, 2.8rem); line-height: 1; color: #fff; }
.mat-oc-nav .elementor-icon-list-icon { order: 2; }
.mat-oc-nav .elementor-icon-list-icon svg { fill: var(--mat-accent); width: 18px; }
.mat-oc-sub .elementor-icon-list-item { padding: 0 !important; border: 0; }
.mat-oc-sub .elementor-icon-list-item a { padding: 10px 0; }
.mat-oc-sub .elementor-icon-list-text { font-family: var(--mat-font); font-weight: 500; text-transform: none; font-size: 1.05rem; color: rgba(255,255,255,0.78); }
.mat-oc-sub .elementor-icon-list-icon svg { fill: var(--mat-steel); width: 10px; }
.mat-oc-contact .elementor-icon-list-text { color: rgba(255,255,255,0.8); font-size: 1rem; }
.mat-oc-contact .elementor-icon-list-icon svg { fill: var(--mat-accent); }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.mat-hero { min-height: 100svh; position: relative; isolation: isolate; }
.mat-hero .elementor-background-video-container { z-index: -2; }
.mat-hero .elementor-background-video-container video { filter: saturate(0.9) contrast(1.05); }
.mat-hero-veil { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(11,15,28,0.96) 0%, rgba(11,15,28,0.82) 40%, rgba(11,15,28,0.45) 75%, rgba(11,15,28,0.3) 100%), linear-gradient(180deg, rgba(11,15,28,0.6) 0%, rgba(11,15,28,0.1) 35%, rgba(11,15,28,0.92) 100%); }.mat-hero-title .elementor-heading-title, .mat-hero .mat-lead .elementor-widget-container, .mat-hero .mat-lead { text-shadow: 0 2px 24px rgba(0,0,0,0.45); }
.mat-hero-grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.08; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.mat-hero-title .elementor-heading-title { color: #fff; }
.mat-hero-title .elementor-heading-title em { font-style: normal; color: var(--mat-accent); }
.mat-hero-facts { border-top: 1px solid var(--mat-line-d); }
.mat-hero-fact { border-right: 1px solid var(--mat-line-d); }
.mat-hero-fact:last-child { border-right: 0; }
.mat-fact-n .elementor-heading-title { font-family: var(--mat-font-xc); font-weight: 800; font-size: clamp(2.4rem, 4.2vw, 3.8rem); line-height: 0.9; color: #fff; }
.mat-fact-n .elementor-heading-title small { font-size: 0.5em; color: var(--mat-accent); margin-left: 2px; }.mat-fact-l .elementor-widget-container, .mat-fact-l { font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mat-steel); font-weight: 600; line-height: 1.35; }
/* scroll indicator */
.mat-scroll-hint { display: inline-flex; align-items: center; gap: 12px; font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.mat-scroll-hint::after { content: ""; width: 1px; height: 56px; background: linear-gradient(to bottom, var(--mat-accent), transparent); animation: mat-drop 2.2s var(--mat-ease-io) infinite; transform-origin: top; }
@keyframes mat-drop { 0% { transform: scaleY(0); opacity: 0; } 30% { opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }
/* emergency chip */
.mat-chip { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px; border: 1px solid var(--mat-line-d); background: rgba(255,255,255,0.04); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; text-decoration: none; transition: border-color .3s, background-color .3s; }
.mat-chip:hover { border-color: var(--mat-accent); background: rgba(219,51,0,0.12); color: #fff; }
.mat-chip i { width: 8px; height: 8px; border-radius: 50%; background: var(--mat-accent); box-shadow: 0 0 0 0 rgba(219,51,0,0.7); animation: mat-pulse 1.8s infinite; }
@keyframes mat-pulse { 0% { box-shadow: 0 0 0 0 rgba(219,51,0,0.7); } 70% { box-shadow: 0 0 0 10px rgba(219,51,0,0); } 100% { box-shadow: 0 0 0 0 rgba(219,51,0,0); } }
.mat-chip b { color: var(--mat-accent); font-family: var(--mat-font-display); font-size: 1.05rem; letter-spacing: 0.02em; }

/* inner page hero */
.mat-page-hero { min-height: 62vh; position: relative; isolation: isolate; }
.mat-page-hero-compact { min-height: 0; }
.mat-page-hero .mat-hero-veil { background: linear-gradient(90deg, rgba(11,15,28,0.95) 0%, rgba(11,15,28,0.7) 50%, rgba(11,15,28,0.35) 100%), linear-gradient(0deg, rgba(11,15,28,0.9) 0%, rgba(11,15,28,0) 45%); }.mat-breadcrumbs .elementor-widget-container, .mat-breadcrumbs { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-steel); font-weight: 600; }
.mat-breadcrumbs a { color: rgba(255,255,255,0.6); text-decoration: none; transition: color .3s; }
.mat-breadcrumbs a:hover { color: #fff; }
.mat-breadcrumbs .separator { margin: 0 10px; color: var(--mat-accent); }.mat-breadcrumbs-dark .elementor-widget-container a, .mat-breadcrumbs-dark a { color: var(--mat-muted); }.mat-breadcrumbs-dark .elementor-widget-container a:hover, .mat-breadcrumbs-dark a:hover { color: var(--mat-navy); }
/* line-art illustration */
.mat-lineart img { mix-blend-mode: screen; opacity: 0.95; filter: drop-shadow(0 0 30px rgba(219,51,0,0.15)); }
.mat-lineart-float img { animation: mat-float 7s ease-in-out infinite; }
@keyframes mat-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }

/* --------------------------------------------------------------------------
   Marquee
   -------------------------------------------------------------------------- */
.mat-marquee { overflow: hidden; white-space: nowrap; border-top: 1px solid var(--mat-line-d); border-bottom: 1px solid var(--mat-line-d); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.mat-marquee-track { display: inline-flex; align-items: center; gap: 0; animation: mat-marquee var(--mat-marquee-dur, 40s) linear infinite; will-change: transform; }
.mat-marquee:hover .mat-marquee-track { animation-play-state: paused; }
.mat-marquee-item { display: inline-flex; align-items: center; gap: 28px; padding: 22px 28px 22px 0; font-family: var(--mat-font-display); font-weight: 700; text-transform: uppercase; font-size: clamp(1.4rem, 2.4vw, 2rem); letter-spacing: 0.01em; color: rgba(255,255,255,0.85); }
.mat-marquee-item::after { content: ""; width: 10px; height: 10px; background: var(--mat-accent); transform: rotate(45deg); flex: none; margin-left: 28px; }
.mat-marquee-light .mat-marquee-item { color: var(--mat-navy); }
.mat-marquee-light { border-color: var(--mat-line-l); }
@keyframes mat-marquee { to { transform: translateX(-50%); } }

/* --------------------------------------------------------------------------
   Product index (numbered rows + sticky media)
   -------------------------------------------------------------------------- */
.mat-index-row { border-top: 1px solid var(--mat-line-d); position: relative; transition: background-color .4s var(--mat-ease), padding-left .4s var(--mat-ease); cursor: pointer; }
.mat-index-row:last-child { border-bottom: 1px solid var(--mat-line-d); }
.mat-index-row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--mat-accent); transform: scaleY(0); transform-origin: top; transition: transform .45s var(--mat-ease); }
.mat-index-row:hover::before, .mat-index-row.is-active::before { transform: scaleY(1); }
.mat-index-row:hover, .mat-index-row.is-active { padding-left: 20px !important; }
.mat-index-n .elementor-heading-title { font-family: var(--mat-font-display); font-weight: 700; font-size: 1rem; letter-spacing: 0.1em; color: var(--mat-accent); }
.mat-index-t .elementor-heading-title { font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 0.95; color: #fff; transition: color .3s; }
.mat-index-row:hover .mat-index-t .elementor-heading-title { color: #fff; }.mat-index-d .elementor-widget-container, .mat-index-d { color: var(--mat-steel); font-size: 1rem; line-height: 1.5; max-width: 46ch; }
.mat-index-arrow { width: 52px; height: 52px; border: 1px solid var(--mat-line-d); display: grid; place-items: center; flex: none; transition: background-color .4s var(--mat-ease), border-color .4s, transform .4s var(--mat-ease); }
.mat-index-arrow svg { width: 18px; height: 18px; fill: none; stroke: #fff; stroke-width: 2; transition: transform .4s var(--mat-ease); }
.mat-index-row:hover .mat-index-arrow { background: var(--mat-accent); border-color: var(--mat-accent); }
.mat-index-row:hover .mat-index-arrow svg { transform: translate(3px, -3px); }
.mat-index-media { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--mat-ink-2); }
.mat-index-media .elementor-widget-image { position: absolute; inset: 0; opacity: 0; transition: opacity .6s var(--mat-ease), transform 1.2s var(--mat-ease); transform: scale(1.06); }
.mat-index-media .elementor-widget-image.is-active { opacity: 1; transform: scale(1); }.mat-index-media .elementor-widget-image .elementor-widget-container, .mat-index-media .elementor-widget-image img, .mat-index-media .elementor-widget-image { width: 100%; height: 100%; object-fit: cover; }
.mat-index-media::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(to top, rgba(11,15,28,0.8), transparent); pointer-events: none; }
.mat-index-caption { position: absolute; left: 28px; bottom: 24px; right: 28px; z-index: 2; color: #fff; font-family: var(--mat-font-display); font-weight: 700; text-transform: uppercase; font-size: 1.1rem; letter-spacing: 0.04em; }
.mat-index-caption span { opacity: 0; transition: opacity .4s; display: block; }
.mat-index-caption span.is-active { opacity: 1; }
@media (max-width: 1024px) { .mat-index-media-wrap { display: none !important; } .mat-index-row { padding-left: 0 !important; } .mat-index-row:hover { padding-left: 12px !important; } }

/* --------------------------------------------------------------------------
   Big numbers / stats
   -------------------------------------------------------------------------- */
.mat-stat { position: relative; padding-left: 22px; }
.mat-stat::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 2px; background: var(--mat-accent); }
.mat-stat-n .elementor-heading-title { font-family: var(--mat-font-xc); font-weight: 800; font-size: clamp(4.2rem, 9vw, 8.4rem); line-height: 0.85; letter-spacing: -0.01em; color: #fff; }
.mat-stat-n .elementor-heading-title small { font-size: 0.42em; color: var(--mat-accent); font-family: var(--mat-font-display); margin-left: 4px; }.mat-stat-l .elementor-widget-container, .mat-stat-l { font-size: 0.92rem; color: var(--mat-steel); line-height: 1.45; max-width: 24ch; }
.mat-stat-dark .mat-stat-n .elementor-heading-title { color: var(--mat-navy); }.mat-stat-dark .mat-stat-l .elementor-widget-container, .mat-stat-dark .mat-stat-l { color: var(--mat-muted); }

/* --------------------------------------------------------------------------
   Spec sheet rows (machines, data)
   -------------------------------------------------------------------------- */
.mat-spec { border-top: 1px solid var(--mat-line-d); }
.mat-spec:last-child { border-bottom: 1px solid var(--mat-line-d); }.mat-spec .mat-spec-k .elementor-widget-container, .mat-spec .mat-spec-k { font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-steel); font-weight: 600; }.mat-spec .mat-spec-v .elementor-widget-container, .mat-spec .mat-spec-v .elementor-heading-title, .mat-spec .mat-spec-v { font-family: var(--mat-font-display); font-weight: 700; text-transform: uppercase; font-size: 1.35rem; color: #fff; line-height: 1.05; }
.mat-spec .mat-spec-n .elementor-heading-title { font-family: var(--mat-font-xc); font-weight: 800; font-size: 2.6rem; line-height: 0.9; color: var(--mat-accent); }
.mat-spec-light .mat-spec { border-color: var(--mat-line-l); }.mat-spec-light .mat-spec .mat-spec-v .elementor-widget-container, .mat-spec-light .mat-spec .mat-spec-v .elementor-heading-title, .mat-spec-light .mat-spec .mat-spec-v { color: var(--mat-navy); }

/* --------------------------------------------------------------------------
   Process steps (sticky)
   -------------------------------------------------------------------------- */
.mat-step { border-top: 1px solid var(--mat-line-l); transition: opacity .5s; }
.mat-step:last-child { border-bottom: 1px solid var(--mat-line-l); }
.mat-dark .mat-step, .mat-navy .mat-step { border-color: var(--mat-line-d); }
.mat-step-n .elementor-heading-title { font-family: var(--mat-font-xc); font-weight: 800; font-size: clamp(3.4rem, 6vw, 5.6rem); line-height: 0.85; color: transparent; -webkit-text-stroke: 1px rgba(34,42,68,0.45); transition: color .5s var(--mat-ease), -webkit-text-stroke-color .5s; }
.mat-dark .mat-step-n .elementor-heading-title { -webkit-text-stroke-color: rgba(255,255,255,0.4); }
.mat-step.is-active .mat-step-n .elementor-heading-title { color: var(--mat-accent); -webkit-text-stroke-color: var(--mat-accent); }
.mat-step-t .elementor-heading-title { font-size: clamp(1.5rem, 2.4vw, 2.1rem); }.mat-step-d .elementor-widget-container, .mat-step-d { color: var(--mat-muted); max-width: 48ch; }.mat-dark .mat-step-d .elementor-widget-container, .mat-dark .mat-step-d { color: var(--mat-steel); }
.mat-steps-sticky { position: sticky; top: calc(var(--mat-header-h) + 40px); }

/* --------------------------------------------------------------------------
   Cards / tiles
   -------------------------------------------------------------------------- */
.mat-card { position: relative; background: #fff; border: 1px solid var(--mat-line-l); transition: transform .5s var(--mat-ease), box-shadow .5s var(--mat-ease), border-color .4s; overflow: hidden; }
.mat-card::before { content: ""; position: absolute; top: 0; left: 0; height: 3px; width: 100%; background: var(--mat-accent); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--mat-ease); }
.mat-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(22,28,51,0.35); border-color: transparent; }
.mat-card:hover::before { transform: scaleX(1); }
.mat-card-dark { background: var(--mat-ink-2); border-color: var(--mat-line-d); }
.mat-card-dark .elementor-heading-title { color: #fff; }
.mat-card-dark p { color: var(--mat-steel); }
.mat-card-ghost { background: transparent; border-color: var(--mat-line-d); }
/* media tile with zoom and veil */
.mat-tile { position: relative; overflow: hidden; isolation: isolate; }
.mat-tile::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(11,15,28,0.92) 0%, rgba(11,15,28,0.3) 55%, rgba(11,15,28,0.05) 100%); transition: opacity .5s; pointer-events: none; }
.mat-tile > .elementor-background-overlay { display: none; }
.mat-tile { transition: transform .5s var(--mat-ease); }
.mat-tile .mat-tile-bg { position: absolute; inset: 0; z-index: 0; transition: transform 1.4s var(--mat-ease); background-size: cover; background-position: center; }
.mat-tile:hover .mat-tile-bg { transform: scale(1.06); }
.mat-zoom { overflow: hidden; }
.mat-zoom img { transition: transform 1.4s var(--mat-ease); }
.mat-zoom:hover img { transform: scale(1.06); }.mat-img-cover .elementor-widget-container, .mat-img-cover img, .mat-img-cover { width: 100%; height: 100%; object-fit: cover; display: block; }
.mat-img-tall img { aspect-ratio: 4 / 5; object-fit: cover; }
.mat-img-wide img { aspect-ratio: 16 / 10; object-fit: cover; }
.mat-img-square img { aspect-ratio: 1; object-fit: cover; }
.mat-duotone img { filter: grayscale(1) contrast(1.05); transition: filter .6s var(--mat-ease); }
.mat-duotone:hover img, .mat-duotone.is-in img { filter: grayscale(0); }
.mat-frame { position: relative; }
.mat-frame::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255,255,255,0.35); pointer-events: none; }
.mat-caption-tag { position: absolute; left: 0; bottom: 0; background: var(--mat-accent); color: #fff; padding: 10px 16px; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; z-index: 2; }

/* --------------------------------------------------------------------------
   Icon boxes / features
   -------------------------------------------------------------------------- */
.mat-feature .elementor-icon-box-icon .elementor-icon { width: 56px; height: 56px; display: grid; place-items: center; border: 1px solid var(--mat-line-l); background: #fff; color: var(--mat-accent) !important; font-size: 22px; transition: background-color .4s, border-color .4s, color .4s; }
.mat-feature:hover .elementor-icon-box-icon .elementor-icon { background: var(--mat-accent); border-color: var(--mat-accent); color: #fff !important; }
.mat-feature .elementor-icon-box-title { margin-bottom: 8px; }
.mat-feature .elementor-icon-box-description { color: var(--mat-muted); }
.mat-feature-light .elementor-icon-box-icon .elementor-icon { background: rgba(255,255,255,0.04); border-color: var(--mat-line-d); }
.mat-feature-light .elementor-icon-box-title { color: #fff; }
.mat-feature-light .elementor-icon-box-description { color: var(--mat-steel); }
.mat-feature-n { position: relative; }
.mat-feature-n .elementor-icon-box-wrapper { padding-top: 54px; }
.mat-feature-n::before { content: attr(data-n); position: absolute; top: 0; left: 0; font-family: var(--mat-font-xc); font-weight: 800; font-size: 2.6rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(34,42,68,0.4); }

/* check list */
.mat-check .elementor-icon-list-item { padding: 10px 0 !important; border-bottom: 1px solid var(--mat-line-l); }
.mat-check .elementor-icon-list-item:last-child { border-bottom: 0; }
.mat-check .elementor-icon-list-icon { width: 22px; height: 22px; background: var(--mat-accent); display: grid; place-items: center; }
.mat-check .elementor-icon-list-icon svg { fill: #fff !important; width: 10px !important; }
.mat-check .elementor-icon-list-text { font-weight: 500; }
.mat-check-light .elementor-icon-list-item { border-color: var(--mat-line-d); }
.mat-check-light .elementor-icon-list-text { color: rgba(255,255,255,0.85) !important; }

/* --------------------------------------------------------------------------
   Tables (datasheets)
   -------------------------------------------------------------------------- */
.mat-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--mat-line-l); background: #fff; }
.mat-table table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: 0.95rem; }
.mat-table-sm table { min-width: 0; }
.mat-table th { background: var(--mat-navy); color: #fff; font-family: var(--mat-font-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.95rem; text-align: left; padding: 14px 16px; white-space: nowrap; border-right: 1px solid rgba(255,255,255,0.1); }
.mat-table th:last-child { border-right: 0; }
.mat-table td { padding: 12px 16px; border-bottom: 1px solid var(--mat-line-l); border-right: 1px solid var(--mat-line-l); white-space: nowrap; vertical-align: middle; }
.mat-table td:last-child { border-right: 0; }
.mat-table tbody tr:nth-child(even) td { background: #F8F9FB; }
.mat-table tbody tr:hover td { background: #FFF2EC; }
.mat-table td.num { font-variant-numeric: tabular-nums; font-family: var(--mat-font); font-weight: 600; color: var(--mat-navy); }
.mat-table td:first-child { font-weight: 700; color: var(--mat-navy); }
.mat-table-caption { font-size: 0.82rem; color: var(--mat-muted); margin: 10px 0 0; }

/* --------------------------------------------------------------------------
   Nested tabs / accordion
   -------------------------------------------------------------------------- */
.mat-tabs .e-n-tabs-heading { gap: 8px !important; border-bottom: 1px solid var(--mat-line-l); overflow-x: auto; scrollbar-width: none; }
.mat-tabs .e-n-tabs-heading::-webkit-scrollbar { display: none; }
.mat-tabs .e-n-tab-title { background: transparent !important; border: 0 !important; border-bottom: 3px solid transparent !important; padding: 14px 18px !important; white-space: nowrap; transition: border-color .3s, color .3s; }
.mat-tabs .e-n-tab-title .e-n-tab-title-text { font-family: var(--mat-font-display); font-weight: 700; text-transform: uppercase; font-size: 1.05rem; letter-spacing: 0.04em; color: var(--mat-muted); }
.mat-tabs .e-n-tab-title:hover .e-n-tab-title-text { color: var(--mat-navy); }
.mat-tabs .e-n-tab-title[aria-selected="true"] { border-bottom-color: var(--mat-accent) !important; }
.mat-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text { color: var(--mat-navy); }
.mat-tabs .e-n-tabs-content { padding-top: 28px; }
.mat-tabs .e-n-tabs-content > .e-con { align-content: flex-start; }
.mat-accordion .e-n-accordion-item { border: 0 !important; border-bottom: 1px solid var(--mat-line-l) !important; }
.mat-accordion .e-n-accordion-item-title { padding: 22px 0 !important; background: transparent !important; cursor: pointer; }
.mat-accordion .e-n-accordion-item-title-text { font-family: var(--mat-font-display); font-weight: 700; text-transform: uppercase; font-size: 1.25rem; letter-spacing: 0.02em; color: var(--mat-navy); }
.mat-accordion .e-n-accordion-item-title-icon { color: var(--mat-accent); }
.mat-accordion .e-n-accordion-item-title-icon svg { width: 16px; height: 16px; fill: var(--mat-accent); }
.mat-accordion .e-n-accordion-item > .e-con { padding: 0 0 24px !important; }
.mat-accordion .e-n-accordion-item > .e-con p { color: var(--mat-muted); }
.mat-accordion-light .e-n-accordion-item { border-color: var(--mat-line-d) !important; }
.mat-accordion-light .e-n-accordion-item-title-text { color: #fff; }
.mat-accordion-light .e-n-accordion-item > .e-con p { color: var(--mat-steel); }

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */
.mat-form .elementor-field-group { margin-bottom: 14px; }
.mat-form .elementor-field-label { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: var(--mat-muted); margin-bottom: 8px; }
.mat-form .elementor-field-textual { border: 0 !important; border-bottom: 1px solid var(--mat-line-l) !important; border-radius: 0 !important; background: transparent !important; padding: 14px 0 !important; font-family: var(--mat-font); font-size: 1.05rem; color: var(--mat-text); transition: border-color .3s; }
.mat-form .elementor-field-textual:focus { border-bottom-color: var(--mat-accent) !important; box-shadow: none; outline: 0; }
.mat-form .elementor-field-textual::placeholder { color: #A3A9B8; }
.mat-form textarea.elementor-field-textual { min-height: 120px; }
.mat-form .elementor-field-type-checkbox label, .mat-form .elementor-field-type-acceptance label { font-size: 0.86rem; color: var(--mat-muted); }
.mat-form .elementor-button[type="submit"] { background: var(--mat-accent) !important; color: #fff !important; --mat-btn-fill: #161C33; width: 100%; justify-content: center; margin-top: 8px; }
.mat-form .elementor-button[type="submit"]:hover { color: #fff !important; }
.mat-form-light .elementor-field-label { color: var(--mat-steel); }
.mat-form-light .elementor-field-textual { border-bottom-color: var(--mat-line-d) !important; color: #fff; }
.mat-form-light .elementor-field-textual::placeholder { color: rgba(255,255,255,0.4); }
.mat-form-light .elementor-field-type-checkbox label, .mat-form-light .elementor-field-type-acceptance label { color: var(--mat-steel); }
.mat-form .elementor-message { font-size: 0.9rem; }

/* --------------------------------------------------------------------------
   Loop cards (news / projects)
   -------------------------------------------------------------------------- */
.mat-loop .e-loop-item, .mat-loop-card { height: 100%; }
.mat-loop-card { position: relative; background: #fff; border: 1px solid var(--mat-line-l); transition: transform .5s var(--mat-ease), box-shadow .5s var(--mat-ease); }
.mat-loop-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(22,28,51,0.35); }
.mat-loop-card .mat-loop-media { position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: var(--mat-navy-d); }
.mat-loop-card .mat-loop-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s var(--mat-ease); display: block; }
.mat-loop-card:hover .mat-loop-media img { transform: scale(1.06); }.mat-loop-card .mat-loop-media .elementor-widget-container, .mat-loop-card .mat-loop-media { height: 100%; }
.mat-loop-card .mat-loop-media .elementor-widget-theme-post-featured-image { height: 100%; }
.mat-loop-date { position: absolute; left: 0; top: 0; z-index: 2; background: var(--mat-accent); color: #fff; padding: 8px 12px; font-family: var(--mat-font-display); font-weight: 700; font-size: 0.86rem; letter-spacing: 0.08em; text-transform: uppercase; }
.mat-loop-date .elementor-icon-list-item, .mat-loop-date .elementor-icon-list-text { color: #fff !important; }
.mat-loop-title .elementor-heading-title { font-size: 1.3rem; line-height: 1.08; }
.mat-loop-title .elementor-heading-title a { color: var(--mat-navy); background-image: linear-gradient(var(--mat-accent), var(--mat-accent)); background-size: 0 2px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .5s var(--mat-ease); }
.mat-loop-card:hover .mat-loop-title .elementor-heading-title a { background-size: 100% 2px; }.mat-loop-excerpt .elementor-widget-container, .mat-loop-excerpt { color: var(--mat-muted); font-size: 0.95rem; line-height: 1.55; }
.mat-badge { display: inline-block; padding: 6px 10px; border: 1px solid var(--mat-line-l); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--mat-navy); background: #fff; line-height: 1; }
.mat-badge-accent { border-color: var(--mat-accent); color: var(--mat-accent); }
.mat-badge-fill { background: var(--mat-navy); border-color: var(--mat-navy); color: #fff; }.mat-badge .elementor-heading-title { font-size: inherit; letter-spacing: inherit; color: inherit; }
/* project card (dark image card) */
.mat-proj-card { position: relative; overflow: hidden; isolation: isolate; background: var(--mat-ink-2); min-height: 420px; }
.mat-proj-card .mat-proj-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; transition: transform 1.4s var(--mat-ease); }
.mat-proj-card:hover .mat-proj-bg { transform: scale(1.06); }
.mat-proj-card::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(11,15,28,0.95) 10%, rgba(11,15,28,0.35) 60%, rgba(11,15,28,0.1) 100%); pointer-events: none; }
.mat-proj-card > .e-con-inner, .mat-proj-card > .elementor-widget, .mat-proj-card > .e-con { position: relative; z-index: 2; }
.mat-proj-card .elementor-heading-title a { color: #fff; }
.mat-proj-card .elementor-widget-theme-post-featured-image { position: absolute !important; inset: 0; z-index: 0; }.mat-proj-card .elementor-widget-theme-post-featured-image .elementor-widget-container, .mat-proj-card .elementor-widget-theme-post-featured-image img, .mat-proj-card .elementor-widget-theme-post-featured-image { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--mat-ease); }
.mat-proj-card:hover .elementor-widget-theme-post-featured-image img { transform: scale(1.06); }
/* pagination */
.mat-loop .elementor-pagination, .mat-loop .e-load-more-anchor + .elementor-pagination { margin-top: 48px; display: flex; gap: 6px; justify-content: center; }
.mat-loop .elementor-pagination .page-numbers { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--mat-line-l); color: var(--mat-navy); font-weight: 700; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; transition: background-color .3s, color .3s, border-color .3s; }
.mat-loop .elementor-pagination .page-numbers.current, .mat-loop .elementor-pagination .page-numbers:hover { background: var(--mat-navy); border-color: var(--mat-navy); color: #fff; }
/* taxonomy filter */
.mat-filter .e-filter { gap: 8px; flex-wrap: wrap; }
.mat-filter .e-filter-item { border: 1px solid var(--mat-line-l); padding: 10px 16px; font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--mat-navy); background: #fff; transition: all .3s; cursor: pointer; }
.mat-filter .e-filter-item:hover { border-color: var(--mat-navy); }
.mat-filter .e-filter-item[aria-pressed="true"], .mat-filter .e-filter-item.e-active { background: var(--mat-navy); border-color: var(--mat-navy); color: #fff; }
/* loop carousel arrows */
.mat-carousel .swiper-wrapper { align-items: stretch; }
.mat-carousel .elementor-swiper-button { width: 52px; height: 52px; border: 1px solid var(--mat-line-d); background: rgba(11,15,28,0.6); color: #fff; display: grid; place-items: center; transition: background-color .3s, border-color .3s; }
.mat-carousel .elementor-swiper-button:hover { background: var(--mat-accent); border-color: var(--mat-accent); }
.mat-carousel .elementor-swiper-button svg { width: 16px; height: 16px; fill: #fff; }
.mat-carousel .swiper-pagination-progressbar { background: var(--mat-line-d); height: 2px; }
.mat-carousel .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { background: var(--mat-accent); }
.mat-carousel-light .elementor-swiper-button { border-color: var(--mat-line-l); background: #fff; color: var(--mat-navy); }
.mat-carousel-light .elementor-swiper-button svg { fill: var(--mat-navy); }
.mat-carousel-light .elementor-swiper-button:hover svg { fill: #fff; }

/* --------------------------------------------------------------------------
   Single post / project
   -------------------------------------------------------------------------- */
.mat-article .elementor-widget-theme-post-content { font-size: 1.1rem; line-height: 1.72; }
.mat-article .elementor-widget-theme-post-content p { margin-bottom: 1.4em; }
.mat-article .elementor-widget-theme-post-content h2 { font-size: clamp(1.7rem, 2.6vw, 2.2rem); margin: 2em 0 0.7em; }
.mat-article .elementor-widget-theme-post-content h3 { font-size: clamp(1.3rem, 2vw, 1.6rem); margin: 1.6em 0 0.6em; }
.mat-article .elementor-widget-theme-post-content ul, .mat-article .elementor-widget-theme-post-content ol { padding-left: 1.3em; margin-bottom: 1.4em; }
.mat-article .elementor-widget-theme-post-content li { margin-bottom: 0.5em; }
.mat-article .elementor-widget-theme-post-content a { color: var(--mat-accent); }
.mat-article .elementor-widget-theme-post-content img { margin: 1em 0; }
.mat-article .elementor-widget-theme-post-content blockquote { border-left: 3px solid var(--mat-accent); margin: 1.5em 0; padding: 0.3em 0 0.3em 1.2em; font-family: var(--mat-font-display); font-size: 1.4rem; text-transform: uppercase; line-height: 1.15; color: var(--mat-navy); }
.mat-article .elementor-widget-theme-post-content figure.mat-eu-banner { margin: 0 0 2em; border: 1px solid var(--mat-line-l); background: #fff; padding: 12px; }
.mat-article .elementor-widget-theme-post-content figure.mat-eu-banner img { margin: 0; }
.mat-project-info { display: grid; gap: 0; }
.mat-info-row { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 14px 0; border-bottom: 1px solid var(--mat-line-l); }
.mat-info-label { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-muted); font-weight: 700; }
.mat-info-value { font-weight: 600; color: var(--mat-navy); line-height: 1.4; }
.mat-info-status .mat-info-value { color: var(--mat-accent); font-family: var(--mat-font-display); text-transform: uppercase; font-size: 1.1rem; }
.mat-docs-btn { background: var(--mat-navy) !important; color: #fff !important; display: inline-flex; margin-top: 18px; --mat-btn-fill: var(--mat-accent); }
.mat-sidebar-box { position: sticky; top: calc(var(--mat-header-h) + 32px); }
.mat-share .elementor-share-btn { border-radius: 0 !important; background: var(--mat-light) !important; color: var(--mat-navy) !important; transition: background-color .3s, color .3s; }
.mat-share .elementor-share-btn:hover { background: var(--mat-accent) !important; color: #fff !important; }
.mat-share .elementor-share-btn__icon { color: inherit; }
.mat-share .elementor-share-btn svg { fill: currentColor; width: 1em; height: 1em; }
.mat-prevnext .elementor-post-navigation__link a { color: var(--mat-navy); font-family: var(--mat-font-display); text-transform: uppercase; font-weight: 700; font-size: 1.1rem; }
.mat-prevnext .post-navigation__arrow-wrapper { color: var(--mat-accent); }
.mat-prevnext .post-navigation__prev--label, .mat-prevnext .post-navigation__next--label { font-family: var(--mat-font); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-muted); font-weight: 700; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.mat-footer { position: relative; overflow: hidden; }
.mat-footer .elementor-nav-menu a { color: rgba(255,255,255,0.72) !important; font-size: 0.95rem; padding: 7px 0 !important; transition: color .3s, padding-left .3s; }
.mat-footer .elementor-nav-menu a:hover { color: #fff !important; padding-left: 8px !important; }
.mat-footer-h .elementor-heading-title { font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mat-steel); font-family: var(--mat-font); font-weight: 700; }
.mat-footer-contact .elementor-icon-list-text { color: rgba(255,255,255,0.85) !important; }
.mat-footer-contact .elementor-icon-list-icon svg { fill: var(--mat-accent); }
.mat-footer-legal .elementor-nav-menu a { font-size: 0.8rem; color: var(--mat-steel) !important; }.mat-footer-copy .elementor-widget-container, .mat-footer-copy { font-size: 0.8rem; color: var(--mat-steel); }
.mat-footer-copy a { color: #fff; text-decoration: none; }
.mat-footer-big .elementor-heading-title { font-family: var(--mat-font-xc); font-weight: 800; font-size: clamp(5rem, 18vw, 17rem); line-height: 0.8; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,0.1); white-space: nowrap; }
.mat-footer-cert { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--mat-line-d); padding: 10px 14px; font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.8); font-weight: 700; }
.mat-footer-cert::before { content: ""; width: 8px; height: 8px; background: var(--mat-accent); transform: rotate(45deg); }
.mat-social .elementor-social-icon { background: transparent !important; border: 1px solid var(--mat-line-d); border-radius: 0 !important; transition: background-color .3s, border-color .3s; }
.mat-social .elementor-social-icon:hover { background: var(--mat-accent) !important; border-color: var(--mat-accent); }
.mat-social .elementor-social-icon svg { fill: #fff; }

/* --------------------------------------------------------------------------
   Popup
   -------------------------------------------------------------------------- */
.mat-popup .elementor-popup-modal .dialog-widget-content { border-radius: 0 !important; }
.mat-popup .dialog-close-button { background: var(--mat-navy) !important; color: #fff !important; border-radius: 0 !important; width: 44px; height: 44px; display: grid; place-items: center; }
.mat-popup .dialog-close-button svg { fill: #fff; }

/* --------------------------------------------------------------------------
   Certificates / badges
   -------------------------------------------------------------------------- */
.mat-cert { position: relative; background: #fff; border: 1px solid var(--mat-line-l); transition: transform .5s var(--mat-ease), box-shadow .5s var(--mat-ease); }
.mat-cert:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(22,28,51,0.35); }
.mat-cert img { aspect-ratio: 3 / 4; object-fit: cover; object-position: top; width: 100%; display: block; }
.mat-iso { display: inline-flex; flex-direction: column; gap: 4px; padding: 18px 22px; border: 1px solid var(--mat-line-d); min-width: 150px; }
.mat-iso b { font-family: var(--mat-font-display); font-weight: 800; font-size: 1.7rem; line-height: 1; color: #fff; text-transform: uppercase; }
.mat-iso span { font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mat-steel); font-weight: 600; }
.mat-iso-light { border-color: var(--mat-line-l); }
.mat-iso-light b { color: var(--mat-navy); }

/* map */
.mat-map iframe { filter: grayscale(1) invert(0.92) contrast(0.9) hue-rotate(180deg); }
.mat-map-light iframe { filter: grayscale(1) contrast(1.05); }

/* contact cards */
.mat-contact-card { border: 1px solid var(--mat-line-l); background: #fff; }
.mat-contact-card .elementor-icon-list-text { font-size: 1.05rem; color: var(--mat-navy) !important; }
.mat-contact-card a { color: var(--mat-navy); }
.mat-contact-big .elementor-heading-title a, .mat-contact-big .elementor-heading-title { color: #fff; font-size: clamp(1.6rem, 3vw, 2.6rem); text-decoration: none; }
.mat-contact-big .elementor-heading-title a:hover { color: var(--mat-accent); }

/* --------------------------------------------------------------------------
   Reveal / motion (JS adds classes; without JS everything is visible)
   -------------------------------------------------------------------------- */
.mat-js .mat-reveal:not(.is-in) { opacity: 0; transform: translateY(28px); }
.mat-reveal { transition: opacity .9s var(--mat-ease), transform .9s var(--mat-ease); will-change: opacity, transform; }
.mat-reveal.is-in { opacity: 1; transform: none; }
.mat-reveal-d1 { transition-delay: .1s; } .mat-reveal-d2 { transition-delay: .2s; } .mat-reveal-d3 { transition-delay: .3s; } .mat-reveal-d4 { transition-delay: .4s; } .mat-reveal-d5 { transition-delay: .5s; }
.mat-js .mat-reveal-line:not(.is-in) { transform: scaleX(0); transform-origin: left; }
.mat-reveal-line { transition: transform 1.2s var(--mat-ease); }
/* image reveal via curtain (no clip-path: keeps IntersectionObserver + lazy loading working) */
.mat-reveal-img, .mat-reveal-left { position: relative; overflow: hidden; }
.mat-reveal-img::after, .mat-reveal-left::after { content: ""; position: absolute; inset: 0; background: var(--mat-curtain, #fff); transform-origin: top; transition: transform 1.1s var(--mat-ease); pointer-events: none; z-index: 2; }
.mat-reveal-left::after { transform-origin: right; }
.mat-reveal-img.is-in::after { transform: scaleY(0); }
.mat-reveal-left.is-in::after { transform: scaleX(0); }
html:not(.mat-js) .mat-reveal-img::after, html:not(.mat-js) .mat-reveal-left::after { display: none; }
.mat-js .mat-reveal-img:not(.is-in) img { transform: scale(1.12); }
.mat-reveal-img img { transition: transform 1.6s var(--mat-ease); display: block; }
.mat-dark, .mat-proj-card, .mat-card-dark { --mat-curtain: #0B0F1C; }
.mat-navy { --mat-curtain: #222A44; }
.mat-light-bg { --mat-curtain: #F3F4F6; }
/* word split */
.mat-split .elementor-heading-title .mat-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.mat-split .elementor-heading-title .mat-w > span { display: inline-block; transform: translateY(110%); transition: transform 1s var(--mat-ease); }
.mat-split.is-in .elementor-heading-title .mat-w > span { transform: translateY(0); }
.mat-stagger.is-in > .elementor-element { animation: mat-up .9s var(--mat-ease) both; }
.mat-stagger.is-in > .elementor-element:nth-child(1) { animation-delay: .05s; } .mat-stagger.is-in > .elementor-element:nth-child(2) { animation-delay: .15s; } .mat-stagger.is-in > .elementor-element:nth-child(3) { animation-delay: .25s; } .mat-stagger.is-in > .elementor-element:nth-child(4) { animation-delay: .35s; } .mat-stagger.is-in > .elementor-element:nth-child(5) { animation-delay: .45s; } .mat-stagger.is-in > .elementor-element:nth-child(6) { animation-delay: .55s; }
.mat-js .mat-stagger:not(.is-in) > .elementor-element { opacity: 0; }
@keyframes mat-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .mat-js .mat-reveal:not(.is-in), .mat-js .mat-stagger:not(.is-in) > .elementor-element { opacity: 1; transform: none; }
  .mat-reveal-img::after, .mat-reveal-left::after { display: none; }
  .mat-split .elementor-heading-title .mat-w > span { transform: none; }
  .mat-marquee-track, .mat-chip i, .mat-scroll-hint::after, .mat-lineart-float img { animation: none; }
}

/* --------------------------------------------------------------------------
   Utilities
   -------------------------------------------------------------------------- */
.mat-sticky { position: sticky; top: calc(var(--mat-header-h) + 32px); }
.mat-gutter { padding-left: var(--mat-gutter); padding-right: var(--mat-gutter); }
.mat-nowrap { white-space: nowrap; }
.mat-hide-mobile-img img { display: none; }
.mat-eu-banner { display: flex; align-items: center; gap: 16px; }
.mat-eu-banner img { max-width: 100%; }
.mat-line-h { height: 1px; background: var(--mat-line-l); }
.mat-dark .mat-line-h, .mat-navy .mat-line-h { background: var(--mat-line-d); }
.mat-arrow-link { display: inline-flex; align-items: center; gap: 10px; color: var(--mat-accent); font-weight: 700; font-size: 0.84rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; }
.mat-arrow-link svg { width: 14px; height: 14px; transition: transform .4s var(--mat-ease); }
.mat-arrow-link:hover svg { transform: translate(4px, -4px); }
.mat-counter-sfx { color: var(--mat-accent); }
.grecaptcha-badge { visibility: hidden; }

/* nav spacing fix */
.mat-nav .elementor-nav-menu--main .elementor-nav-menu > li { margin: 0 clamp(10px, 1.3vw, 18px); }
.mat-nav .elementor-nav-menu--main .elementor-nav-menu > li:first-child { margin-left: 0; }
.mat-nav .elementor-nav-menu--main .elementor-nav-menu > li:last-child { margin-right: 0; }

/* horizontal timeline */
.mat-timeline { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--mat-accent) transparent; padding-bottom: 12px; -webkit-overflow-scrolling: touch; }
.mat-timeline::-webkit-scrollbar { height: 4px; } .mat-timeline::-webkit-scrollbar-thumb { background: var(--mat-accent); }
.mat-tl-item { flex: 0 0 300px !important; width: 300px !important; scroll-snap-align: start; border-left: 1px solid var(--mat-line-d); padding: 8px 28px 8px 24px !important; position: relative; }
.mat-tl-item::before { content: ""; position: absolute; left: -5px; top: 8px; width: 9px; height: 9px; background: var(--mat-accent); transform: rotate(45deg); }
.mat-tl-year .elementor-heading-title { font-family: var(--mat-font-xc); font-weight: 800; font-size: 3.4rem; line-height: 0.9; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,0.5); transition: color .4s, -webkit-text-stroke-color .4s; }
.mat-tl-item:hover .mat-tl-year .elementor-heading-title { color: var(--mat-accent); -webkit-text-stroke-color: var(--mat-accent); }
.mat-tl-t .elementor-heading-title { font-size: 1.2rem; color: #fff; }
.mat-tl-d, .mat-tl-d .elementor-widget-container { color: var(--mat-steel); font-size: 0.95rem; line-height: 1.5; }
@media (max-width: 767px) { .mat-tl-item { flex-basis: 260px !important; width: 260px !important; } }
/* contact person card */
.mat-person .mat-person-role, .mat-person .mat-person-role .elementor-widget-container { font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mat-accent); font-weight: 700; }
.mat-person .elementor-icon-list-text { font-size: 0.98rem; color: var(--mat-navy) !important; }
.mat-person .elementor-icon-list-icon svg { fill: var(--mat-accent); }

/* flex children may shrink (tables scroll inside their wrapper instead of overflowing the page) */
.e-con, .elementor-widget-html, .mat-table-block { min-width: 0; max-width: 100%; }
@media (max-width: 767px) { .mat-index-arrow { display: none; } .mat-index-row { padding-left: 0 !important; } }

/* HTML widgets carry absolutely positioned decor (veil, grain, tile bg, watermark): let them position against the container */
.elementor-widget-html { position: static; }
.mat-tile { position: relative; }
.mat-footer { position: relative; }

/* big contact headings on light background */
.mat-contact-big-wrap .mat-contact-big .elementor-heading-title, .mat-contact-big-wrap .mat-contact-big .elementor-heading-title a { color: var(--mat-navy); }
.mat-contact-big-wrap .mat-contact-big .elementor-heading-title a:hover { color: var(--mat-accent); }
.mat-contact-list .elementor-icon-list-icon svg { fill: var(--mat-accent); }

/* loop grid: columns must never grow past the container (min-content of images) */
.elementor-loop-container.elementor-grid { grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr)) !important; }
.e-loop-item { min-width: 0; max-width: 100%; }
.mat-loop-media img, .mat-proj-card img { max-width: 100%; }

/* ===== responsive structure pass ===== */
/* sticky blocks only on desktop (on tablet/mobile they would slide over the following content) */
.mat-sticky, .mat-steps-sticky, .mat-sidebar-box { position: static; top: auto; }
@media (min-width: 1025px) { .mat-sticky, .mat-steps-sticky, .mat-sidebar-box { position: sticky; top: calc(var(--mat-header-h) + 32px); } }
/* decorative layers never over content on small screens */
@media (max-width: 1024px) {
  .mat-stripes-accent::before, .mat-watermark, .mat-side-label, .mat-footer-big { display: none; }
  .mat-hero-fact { border-right: 0; border-bottom: 1px solid var(--mat-line-d); }
  .mat-hero-facts > .e-con:nth-child(odd) { border-right: 1px solid var(--mat-line-d); }
  .mat-hero-facts > .e-con:nth-last-child(-n+2) { border-bottom: 0; }
  .mat-cut-top, .mat-cut-both { margin-top: -4.5vw; }
}
/* consistent image boxes */
.mat-img-wide img { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; }
.mat-img-tall img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; }
.mat-img-square img { aspect-ratio: 1 / 1; width: 100%; object-fit: cover; }
.mat-img-product img { aspect-ratio: 1 / 1; width: 100%; object-fit: contain; background: #fff; padding: 12px; border: 1px solid var(--mat-line-l); }
.mat-img-doc img { aspect-ratio: 3 / 4; width: 100%; object-fit: cover; object-position: top; }
.mat-media-carousel .swiper-slide, .mat-media-carousel .elementor-carousel-image { aspect-ratio: 3 / 2; }
.mat-media-carousel .elementor-carousel-image { background-size: cover !important; }
.e-gallery-item .e-gallery-image { background-size: cover !important; }
@media (max-width: 767px) {
  .mat-img-tall img { aspect-ratio: 4 / 3; }
  .mat-lineart img { max-width: 240px; }
  .mat-page-hero .mat-lineart img { max-width: 220px; }
}
/* tabs: titles scroll horizontally instead of collapsing into an accordion */
.mat-tabs .e-n-tabs-heading { flex-wrap: nowrap !important; overflow-x: auto; }
.mat-tabs .e-n-tab-title { flex: 0 0 auto; }

/* ===== readability pass ===== */
:root { --mat-steel: #A3ABBF; }
.mat-dark p, .mat-navy p { color: rgba(255,255,255,0.82); }
.mat-dark .mat-kicker .elementor-heading-title, .mat-navy .mat-kicker .elementor-heading-title { color: rgba(255,255,255,0.78); }
.mat-breadcrumbs a { color: rgba(255,255,255,0.78); }
.mat-fact-l, .mat-fact-l .elementor-widget-container, .mat-stat-l, .mat-stat-l .elementor-widget-container, .mat-index-d, .mat-spec-k, .mat-tl-d, .mat-step-d { color: #B9C0D1; }
.mat-light-bg .mat-stat-l, .mat-light-bg .mat-step-d, .mat-light-bg .mat-stat-l .elementor-widget-container { color: var(--mat-muted); }
.mat-process .mat-step-d, .mat-process .mat-step-d .elementor-widget-container { color: var(--mat-muted); }
.mat-tile .mat-small, .mat-tile .mat-small .elementor-widget-container { color: rgba(255,255,255,0.88); }
.mat-stat-dark .mat-stat-l, .mat-stat-dark .mat-stat-l .elementor-widget-container { color: var(--mat-muted); }
.mat-step-n .elementor-heading-title { color: rgba(34,42,68,0.22); -webkit-text-stroke: 0; }
.mat-dark .mat-step-n .elementor-heading-title { color: rgba(255,255,255,0.3); }
.mat-tl-year .elementor-heading-title { color: rgba(255,255,255,0.5); -webkit-text-stroke: 0; }
.mat-hero-veil { background: linear-gradient(90deg, rgba(11,15,28,0.96) 0%, rgba(11,15,28,0.86) 45%, rgba(11,15,28,0.55) 80%, rgba(11,15,28,0.45) 100%), linear-gradient(180deg, rgba(11,15,28,0.65) 0%, rgba(11,15,28,0.2) 35%, rgba(11,15,28,0.94) 100%); }
.mat-page-hero .mat-hero-veil { background: linear-gradient(90deg, rgba(11,15,28,0.97) 0%, rgba(11,15,28,0.88) 50%, rgba(11,15,28,0.6) 100%), linear-gradient(0deg, rgba(11,15,28,0.95) 0%, rgba(11,15,28,0.1) 50%); }
@media (max-width: 1024px) {
  .mat-hero-veil, .mat-page-hero .mat-hero-veil { background: rgba(11,15,28,0.86); }
  .mat-hero .elementor-background-video-container { opacity: 0.6; }
}
@media (max-width: 767px) {
  .mat-fact-n .elementor-heading-title { font-size: 1.9rem; }
  .mat-stat-n .elementor-heading-title { font-size: 2.6rem; }
  .mat-step-n .elementor-heading-title { font-size: 2.2rem; }
  .mat-spec .mat-spec-n .elementor-heading-title { font-size: 1.6rem; }
  .mat-tl-year .elementor-heading-title { font-size: 2.4rem; }
  .mat-index-t .elementor-heading-title { font-size: 1.3rem; }
  .mat-marquee-item { font-size: 1.1rem; padding: 14px 18px 14px 0; }
  .mat-footer-big .elementor-heading-title { font-size: 4rem; }
  .mat-oc-nav .elementor-icon-list-text { font-size: 1.7rem; }
  .mat-contact-big .elementor-heading-title, .mat-contact-big .elementor-heading-title a { font-size: 1.5rem; }
  .mat-lead .elementor-widget-container, .mat-lead { font-size: 1.05rem; }
}
.mat-marquee-item { font-family: var(--mat-font); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: clamp(1rem, 1.5vw, 1.25rem); }
.mat-oc-nav .elementor-icon-list-text { font-family: var(--mat-font); letter-spacing: -0.01em; }
.mat-tabs .e-n-tab-title .e-n-tab-title-text, .mat-accordion .e-n-accordion-item-title-text { font-family: var(--mat-font); text-transform: none; letter-spacing: 0; font-weight: 700; }
.mat-accordion .e-n-accordion-item-title-text { font-size: 1.1rem; }
.mat-table th { font-family: var(--mat-font); text-transform: none; letter-spacing: 0; font-size: 0.9rem; }
.mat-spec .mat-spec-v .elementor-widget-container, .mat-spec .mat-spec-v .elementor-heading-title, .mat-spec .mat-spec-v { font-family: var(--mat-font); text-transform: none; letter-spacing: 0; font-size: 1.15rem; }
.mat-loop-date, .mat-caption-tag, .mat-iso b, .mat-footer-cert { font-family: var(--mat-font); }
.mat-iso b { font-size: 1.3rem; text-transform: none; }
.mat-phone .elementor-icon-list-item a { font-family: var(--mat-font); font-size: 1rem; }
.mat-tl-t .elementor-heading-title { font-size: 1.1rem; }
.mat-index-caption { font-family: var(--mat-font); text-transform: none; letter-spacing: 0; }
.mat-article .elementor-widget-theme-post-content blockquote { font-family: var(--mat-font); text-transform: none; font-size: 1.2rem; }

/* ===== contrast fixes (audit) ===== */
.mat-kicker .elementor-heading-title, .mat-kicker { color: var(--mat-muted); }
.mat-dark .mat-kicker .elementor-heading-title, .mat-navy .mat-kicker .elementor-heading-title, .mat-hero .mat-kicker .elementor-heading-title, .mat-page-hero .mat-kicker .elementor-heading-title, .mat-cta .mat-kicker .elementor-heading-title, .mat-card-dark .mat-kicker .elementor-heading-title { color: rgba(255,255,255,0.82); }
:root { --mat-accent-on-dark: #FF7A4D; --mat-accent-text: #C62E00; }
.mat-kicker .elementor-heading-title b, .mat-kicker b { color: var(--mat-accent-text); }
.mat-dark .mat-kicker .elementor-heading-title b, .mat-navy .mat-kicker .elementor-heading-title b, .mat-hero .mat-kicker b, .mat-page-hero .mat-kicker .elementor-heading-title b, .mat-cta .mat-kicker .elementor-heading-title b, .mat-card-dark .mat-kicker b { color: var(--mat-accent-on-dark); }
.mat-chip b, .mat-dark .mat-arrow-link, .mat-navy .mat-arrow-link, .mat-dark .mat-meta, .mat-dark .mat-meta time, .mat-page-hero .mat-meta, .mat-dark .mat-index-n .elementor-heading-title, .mat-dark .mat-spec-n .elementor-heading-title, .mat-dark .mat-link .elementor-button, .mat-navy .mat-link .elementor-button, .mat-dark .mat-link-light .elementor-button, .mat-proj-card .mat-arrow-link, .mat-tile .mat-arrow-link, .mat-dark .mat-stat-n .elementor-heading-title small, .mat-fact-n .elementor-heading-title small, .mat-dark .mat-accordion-light .e-n-accordion-item-title-icon, .mat-dark .mat-em-accent .elementor-heading-title em, .mat-dark .mat-em-outline .elementor-heading-title em, .mat-hero-title .elementor-heading-title em, .mat-navy .mat-em-outline .elementor-heading-title em { color: var(--mat-accent-on-dark) !important; }
.mat-dark .mat-link .elementor-button, .mat-dark .mat-link-light .elementor-button { color: var(--mat-accent-on-dark) !important; }
.mat-link .elementor-button { color: var(--mat-accent-text) !important; }
.mat-arrow-link { color: var(--mat-accent-text); }
.mat-proj-card .elementor-heading-title, .mat-proj-card .elementor-heading-title a, .mat-proj-card .mat-meta { color: #fff; }
.mat-proj-card .mat-meta { color: rgba(255,255,255,0.8); }
.mat-badge { color: var(--mat-navy); background: #fff; }
.mat-badge-accent { color: var(--mat-accent-text); }
.mat-badge-fill { color: #fff; background: var(--mat-navy); }
.mat-dark .mat-badge-fill, .mat-proj-card .mat-badge-fill { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.25); color: #fff; }
.mat-breadcrumbs .separator { color: var(--mat-accent-on-dark); }
.mat-breadcrumbs .last { color: rgba(255,255,255,0.95); }
.mat-footer-copy a { color: #fff; }
.mat-index-row:hover .mat-index-d, .mat-index-d { color: #C3C9D8; }
.mat-hero-fact .mat-fact-l, .mat-hero-fact .mat-fact-l .elementor-widget-container { color: #C3C9D8; }
.mat-person .mat-person-role, .mat-person .mat-person-role .elementor-widget-container { color: var(--mat-accent-text); }
.mat-step.is-active .mat-step-n .elementor-heading-title { color: var(--mat-accent-text); }
.mat-dark .mat-step.is-active .mat-step-n .elementor-heading-title { color: var(--mat-accent-on-dark); }
/* catalog images: whole image visible on white */
.mat-img-catalog img { aspect-ratio: 16 / 10; width: 100%; object-fit: contain; background: #fff; padding: 10px; }
.mat-img-product img { padding: 16px; }

/* ===== structure fixes (audit 2) ===== */
.mat-loop-card .mat-loop-media { height: auto !important; aspect-ratio: 16 / 10; }
.mat-loop-card .mat-loop-media .elementor-widget-theme-post-featured-image { height: 100%; }
.mat-loop-card .mat-loop-media img { width: 100%; height: 100%; object-fit: cover; }
.mat-index-row > .elementor-widget-heading.mat-index-n { flex: 0 0 auto; width: auto; min-width: 2.4rem; }
.mat-index-row > .e-con { flex: 1 1 0; min-width: 0; }
.mat-table table { min-width: 0; }
@media (max-width: 767px) { .mat-table table { font-size: 0.86rem; } .mat-table td, .mat-table th { padding: 9px 10px; } }
.mat-img-cover { height: auto; }

/* ===== audit 3 ===== */
.mat-step-d, .mat-step-d .elementor-widget-container, .mat-stat-l, .mat-stat-l .elementor-widget-container { color: var(--mat-muted); }
.mat-dark .mat-step-d, .mat-navy .mat-step-d, .mat-dark .mat-stat-l, .mat-navy .mat-stat-l, .mat-dark .mat-stat-l .elementor-widget-container { color: #C3C9D8; }
.mat-step-n .elementor-heading-title { color: #6F7890; }
.mat-dark .mat-step-n .elementor-heading-title, .mat-navy .mat-step-n .elementor-heading-title { color: rgba(255,255,255,0.6); }
.mat-footer-h .elementor-heading-title { color: var(--mat-muted); }
.mat-footer .mat-footer-h .elementor-heading-title, .mat-dark .mat-footer-h .elementor-heading-title, .mat-card-dark .mat-footer-h .elementor-heading-title { color: #C3C9D8; }
.mat-contact-list .elementor-icon-list-text { color: var(--mat-navy) !important; }
.mat-contact-list .elementor-icon-list-item a:hover .elementor-icon-list-text { color: var(--mat-accent-text) !important; }
.mat-watermark, .mat-side-label { display: none !important; }
.mat-step > .e-con { flex: 1 1 0; min-width: 0; }
.mat-tl-year .elementor-heading-title { color: rgba(255,255,255,0.7); }

/* ===== audit 4 ===== */
.mat-h-normal-keep .elementor-heading-title { text-transform: none; }
.mat-feature-n::before { left: auto; right: 0; top: 0; }
@media (max-width: 1024px) {
  .mat-spec { flex-wrap: wrap; row-gap: 4px; }
  .mat-spec .mat-spec-k { width: calc(100% - 90px) !important; --container-widget-width: calc(100% - 90px); max-width: calc(100% - 90px); }
  .mat-spec .mat-spec-v { width: 100% !important; --container-widget-width: 100%; padding-left: 90px; }
  .mat-spec .mat-spec-n { width: 66px !important; --container-widget-width: 66px; }
}
@media (max-width: 767px) { .mat-spec .mat-spec-v { padding-left: 0; } .mat-spec .mat-spec-k { width: 100% !important; max-width: 100%; } }
/* html share links */
.mat-share-links { display: flex; gap: 8px; flex-wrap: wrap; }
.mat-share-links a { width: 40px; height: 40px; display: grid; place-items: center; background: var(--mat-light); color: var(--mat-navy); transition: background-color .3s, color .3s; }
.mat-share-links a:hover { background: var(--mat-accent); color: #fff; }
.mat-share-links svg { width: 16px; height: 16px; fill: currentColor; }

/* meta labels readable on light backgrounds */
.mat-meta .elementor-heading-title, .mat-meta, .mat-meta .elementor-widget-container { color: var(--mat-muted); }
.mat-dark .mat-meta, .mat-dark .mat-meta .elementor-heading-title, .mat-navy .mat-meta, .mat-page-hero .mat-meta, .mat-page-hero .mat-meta .elementor-widget-container, .mat-proj-card .mat-meta { color: #C3C9D8; }

/* ===== round 3 ===== */
/* checklists: slim orange diamond markers instead of filled squares */
.mat-check .elementor-icon-list-icon { width: auto; height: auto; background: transparent; display: block; position: relative; margin-top: 0.55em; }
.mat-check .elementor-icon-list-icon svg, .mat-check .elementor-icon-list-icon i { display: none !important; }
.mat-check .elementor-icon-list-icon::before { content: ""; display: block; width: 8px; height: 8px; background: var(--mat-accent); transform: rotate(45deg); }
.mat-check .elementor-icon-list-item { padding: 12px 0 !important; align-items: flex-start; }
.mat-check .elementor-icon-list-text { padding-left: 14px !important; line-height: 1.5; }
.mat-check-light .elementor-icon-list-icon::before { background: var(--mat-accent-on-dark); }
/* hover colours on dark surfaces never fall back to the navy link colour */
.mat-chip:hover, .mat-chip:hover span { color: #fff !important; }
.mat-chip:hover b { color: var(--mat-accent-on-dark) !important; }
.mat-dark a:hover, .mat-navy a:hover, .mat-hero a:hover, .mat-page-hero a:hover, .mat-footer a:hover, .mat-cta a:hover, .mat-card-dark a:hover, .mat-proj-card a:hover, .mat-tile a:hover, .e-off-canvas a:hover { color: #fff; }
.mat-dark .mat-arrow-link:hover, .mat-navy .mat-arrow-link:hover, .mat-proj-card .mat-arrow-link:hover { color: var(--mat-accent-on-dark); }
.mat-footer .elementor-icon-list-item a:hover .elementor-icon-list-text, .mat-oc-contact a:hover .elementor-icon-list-text { color: var(--mat-accent-on-dark) !important; }
.mat-breadcrumbs a:hover { color: #fff; }
.mat-light-bg a:hover, .mat-section:not(.mat-dark):not(.mat-navy) a:hover { color: var(--mat-accent-text); }
/* clickable cards */
.mat-loop-card, .mat-proj-card { cursor: pointer; }
.mat-loop-card .mat-link .elementor-button, .mat-proj-card .mat-link-light .elementor-button { font-size: 0.78rem !important; }
.mat-loop-title .elementor-heading-title a { color: var(--mat-navy); text-decoration: none; }
/* embedded map */
.mat-map-embed { position: relative; width: 100%; height: 420px; border: 1px solid var(--mat-line-l); background: var(--mat-light); box-sizing: border-box; }
.mat-map-embed iframe { position: absolute; top: 0; left: 0; width: 100% !important; height: 100% !important; border: 0; display: block; }
@media (max-width: 1024px) { .mat-map-embed { height: 46vw; } }
@media (max-width: 767px) { .mat-map-embed { height: calc(100vw - 32px); } }
/* Explicit heights: in WebKit a column flex item does not size itself from a child's aspect-ratio / percentage padding,
   so the map box collapsed to a few px on iPhone. */
/* single post/project polish */
.mat-article .elementor-widget-theme-post-content { font-size: 1.05rem; }
.mat-article .elementor-widget-theme-post-content h2 { font-size: clamp(1.4rem, 2.2vw, 1.8rem); margin: 1.6em 0 0.6em; }
.mat-article .elementor-widget-theme-post-content h3 { font-size: clamp(1.15rem, 1.7vw, 1.35rem); }
.mat-article .elementor-widget-theme-post-content ol, .mat-article .elementor-widget-theme-post-content ul { padding-left: 1.4em; }
.mat-article .elementor-widget-theme-post-content li::marker { color: var(--mat-accent); font-weight: 700; }
.mat-article .elementor-widget-theme-post-content a { color: var(--mat-accent-text); text-decoration: underline; text-underline-offset: 3px; }
.mat-article .elementor-widget-theme-post-content strong { color: var(--mat-navy); }
.mat-prevnext .elementor-post-navigation { gap: 16px; }
.mat-prevnext .elementor-post-navigation__link a { font-family: var(--mat-font); text-transform: none; font-size: 0.95rem; line-height: 1.3; }
.mat-prevnext .post-navigation__prev--label, .mat-prevnext .post-navigation__next--label { margin-bottom: 4px; }
.mat-project-info .mat-info-row { padding: 12px 0; }
.mat-project-info .mat-info-value { font-size: 0.98rem; }
@media (max-width: 767px) {
  .mat-article .elementor-widget-theme-post-content { font-size: 1rem; }
  .mat-prevnext .elementor-post-navigation { flex-direction: column; }
  .mat-prevnext .elementor-post-navigation__prev, .mat-prevnext .elementor-post-navigation__next { width: 100%; text-align: left; }
  .mat-prevnext .elementor-post-navigation__next { align-items: flex-start; }
}

/* ===== back to top ===== */
.mat-totop { position: fixed; right: 22px; bottom: 22px; z-index: 990; width: 48px; height: 48px; display: grid; place-items: center; background: var(--mat-accent); color: #fff; box-shadow: 0 12px 30px -10px rgba(219,51,0,0.6); clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .35s var(--mat-ease), transform .35s var(--mat-ease), visibility .35s, background-color .3s; }
.mat-totop, .mat-totop:focus, .mat-totop:active { color: #fff !important; }
.mat-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.mat-totop:hover { background: var(--mat-navy); color: #fff !important; }
.mat-totop svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--mat-ease); }
.mat-totop:hover svg { transform: translateY(-2px); }
@media (max-width: 767px) { .mat-totop { right: 14px; bottom: 14px; width: 44px; height: 44px; } }
.mat-scroll-hint { display: none !important; }

/* ===== off-canvas close button ===== */
.e-off-canvas button.mat-oc-close { position: absolute; top: 32px; right: 28px; z-index: 1200; pointer-events: auto; display: inline-flex; align-items: center; gap: 14px; width: auto; min-width: 0; height: 48px; min-height: 0; margin: 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; color: #fff; font: inherit; line-height: 1; text-transform: none; letter-spacing: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; opacity: 1; transform: none; }
.e-off-canvas button.mat-oc-close:hover, .e-off-canvas button.mat-oc-close:focus { background: none; border: 0; box-shadow: none; color: #fff; }
.mat-oc-close__label { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; line-height: 1; color: #A3ABBF; transition: color .3s; }
.mat-oc-close__icon { position: relative; display: block; box-sizing: border-box; width: 48px; height: 48px; flex: 0 0 48px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.2); clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); transition: background-color .3s, border-color .3s, transform .55s cubic-bezier(.2,.8,.2,1); }
.mat-oc-close__icon i { position: absolute; left: 50%; top: 50%; width: 22px; height: 2px; margin: -1px 0 0 -11px; background: currentColor; transform: rotate(45deg); }
.mat-oc-close__icon i + i { transform: rotate(-45deg); }
.mat-oc-close:hover .mat-oc-close__icon, .mat-oc-close:focus-visible .mat-oc-close__icon { background: var(--mat-accent); border-color: var(--mat-accent); transform: rotate(90deg); }
.mat-oc-close:hover .mat-oc-close__label, .mat-oc-close:focus-visible .mat-oc-close__label { color: #fff; }
.mat-oc-close:active .mat-oc-close__icon { transform: rotate(90deg) scale(.9); transition-duration: .3s, .3s, .15s; }
@media (min-width: 768px) { .e-off-canvas button.mat-oc-close { top: 42px; } }
@media (prefers-reduced-motion: reduce) { .mat-oc-close__icon { transition: none !important; } }

/* off-canvas top bar (solid when the menu is scrolled) + tablet nav size */
.e-off-canvas .mat-oc-top { position: absolute; top: 0; right: 0; width: var(--e-off-canvas-width, 100%); max-width: 100%; height: 116px; z-index: 1200; pointer-events: none; }
.e-off-canvas .mat-oc-top::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, var(--mat-ink) 0%, var(--mat-ink) 74%, rgba(11,15,28,0) 100%); opacity: 0; transition: opacity .25s; }
.e-off-canvas .e-off-canvas__content.is-scrolled ~ .mat-oc-top::before { opacity: 1; }
@media (min-width: 768px) { .e-off-canvas .mat-oc-top { height: 126px; } .e-off-canvas .mat-oc-top::before { background: linear-gradient(to bottom, var(--mat-ink) 0%, var(--mat-ink) 76%, rgba(11,15,28,0) 100%); } }
@media (min-width: 768px) and (max-width: 1024px) { .mat-oc-nav .elementor-icon-list-text { font-size: 2.1rem; } }

/* Elementor Pro enqueues only the entrance animation CSS for the off-canvas; without the exit keyframes
   the close animation never ends and the body keeps overflow:hidden (page scroll stays locked). */
/* Elementor plays exit animations with `.animated.reverse { animation-direction: reverse }`, so the keyframes are
   written in the entrance direction: reversed playback = the panel slides out to the right/left. No visibility
   keyframe (it made the panel vanish for the first part of the exit). */
@keyframes slideOutRight { from { transform: translate3d(100%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
@keyframes slideOutLeft { from { transform: translate3d(-100%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
.e-off-canvas__main.animated.reverse { animation-timing-function: cubic-bezier(.4, 0, 1, 1); }
.e-off-canvas__main.slideOutRight { animation-name: slideOutRight; }
.e-off-canvas__main.slideOutLeft { animation-name: slideOutLeft; }

/* WebKit (iOS): a column flex child with flex-basis 0 whose own flex-wrap is "wrap" (Elementor sets
   --flex-wrap-mobile: wrap on every container) wraps its children into side-by-side columns.
   On phones the step/index bodies must be plain full-width blocks with no wrapping. */
@media (max-width: 767px) {
  .mat-step > .e-con, .mat-index-row > .e-con { flex: 0 1 auto; width: 100%; max-width: 100%; min-width: 0; }
  .mat-step, .mat-step > .e-con, .mat-index-row > .e-con { --flex-wrap-mobile: nowrap; flex-wrap: nowrap !important; }
  .mat-index-row > .e-con { flex: 1 1 auto; }
  .mat-step-d, .mat-step-d .elementor-widget-container, .mat-index-d { max-width: 100%; }
}

/* FAQ accordion: titles left-aligned (the "end" position setting right-aligned them), no default content border */
.mat-accordion .e-n-accordion-item-title { justify-content: flex-start !important; --n-accordion-title-justify-content: flex-start; }
.mat-accordion .e-n-accordion-item > .e-con { border: 0 !important; }
/* Tabs on phones: wrap the titles into chips instead of a horizontal scroller that cuts the last visible title */
@media (max-width: 767px) {
  .mat-tabs .e-n-tabs-heading { flex-wrap: wrap !important; overflow: visible !important; overflow-x: visible !important; gap: 8px !important; border-bottom: 0; padding-bottom: 4px; }
  .mat-tabs .e-n-tab-title { flex: 0 0 auto; border: 1px solid var(--mat-line-l) !important; padding: 10px 14px !important; background: #fff !important; }
  .mat-tabs .e-n-tab-title .e-n-tab-title-text { font-size: 0.92rem; }
  .mat-tabs .e-n-tab-title[aria-selected="true"] { border-color: var(--mat-navy) !important; background: var(--mat-navy) !important; }
  .mat-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text { color: #fff; }
  .mat-tabs .e-n-tabs-content { padding-top: 20px; }
}

/* wide tables: swipe hint + right-edge fade while there is more to scroll */
.mat-table-scroll { position: relative; }
.mat-table-scroll::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 64px; pointer-events: none; background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.92) 70%); opacity: 0; transition: opacity .25s; }
.mat-table-scroll.is-scrollable:not(.is-end)::after { opacity: 1; }
.mat-table-hint { display: none; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; color: var(--mat-muted); }
.mat-table-hint.is-visible { display: flex; }
.mat-table-hint svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: var(--mat-accent-text); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mat-dark .mat-table-hint, .mat-navy .mat-table-hint { color: var(--mat-steel); }

/* Product / catalog image boxes: padding, border and background live on the wrapper, not on the <img>.
   WebKit sizes the wrapper from the image's natural height when the image itself has padding + aspect-ratio,
   so the image overflowed the box and ran over the caption/table on iPhone. */
.mat-img-product, .mat-img-catalog { box-sizing: border-box; background: #fff; }
.mat-img-product { padding: 16px; border: 1px solid var(--mat-line-l); }
.mat-img-catalog { padding: 10px; }
/* The wrapper carries the aspect ratio (definite height even as a column flex item); the image fills it absolutely. */
.mat-img-product, .mat-img-catalog { position: relative; width: 100%; }
.mat-img-product { aspect-ratio: 1 / 1; }
.mat-img-catalog { aspect-ratio: 16 / 10; }
.mat-img-product img, .mat-img-catalog img { position: absolute; display: block; padding: 0 !important; border: 0 !important; background: transparent; object-fit: contain; aspect-ratio: auto; max-width: none; }
.mat-img-product img { top: 16px; left: 16px; width: calc(100% - 32px) !important; height: calc(100% - 32px) !important; }
.mat-img-catalog img { top: 10px; left: 10px; width: calc(100% - 20px) !important; height: calc(100% - 20px) !important; }

/* ===== mobile round 3 (2026-10-08) ===== */
/* Video-background sections: on phones/tablets Elementor shows the poster photo instead of the video and the
   intended 0.86 overlay is lost (.mat-grid-bg::before replaces Elementor's ::before overlay). Dark veil via inset shadow. */
@media (max-width: 1024px) {
  .mat-section[data-settings*="background_video_link"] { box-shadow: inset 0 0 0 100vmax rgba(11,15,28,0.86) !important; }
}
/* Products overview: on phones every chapter shows the picture first, then title and text */
@media (max-width: 767px) {
  .elementor-page-101 .e-con > .mat-frame { order: -1; }
}
/* "link-light" buttons are text links (they rendered as orange buttons with orange text) */
.mat-link-light .elementor-button, .mat-link-light { background: transparent !important; padding: 0 !important; clip-path: none; border: 0 !important; box-shadow: none !important; }
.mat-link-light .elementor-button::before { display: none; }
.mat-link-light .elementor-button .elementor-button-text { position: relative; }
.mat-link-light .elementor-button .elementor-button-text::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .35s var(--mat-ease); }
.mat-link-light .elementor-button:hover .elementor-button-text::after { transform: scaleX(1); transform-origin: left; }
.mat-link-light .elementor-button, .mat-dark .mat-link-light .elementor-button, .mat-navy .mat-link-light .elementor-button { color: #fff !important; }
.mat-link-light .elementor-button:hover { color: var(--mat-accent-on-dark) !important; }
/* project cards keep the solid button, with readable white text */
.mat-proj-card .mat-link-light .elementor-button { background: var(--mat-accent) !important; color: #fff !important; padding: 14px 22px !important; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); }
.mat-proj-card .mat-link-light .elementor-button:hover { background: var(--mat-navy) !important; color: #fff !important; }
.mat-proj-card .mat-link-light .elementor-button .elementor-button-text::after { display: none; }

/* off-canvas holder (the widget is moved to <body> by mat-site.js) */
.mat-oc-holder { position: static; height: 0; overflow: visible; }
.mat-oc-holder > .elementor-widget-off-canvas { position: static; height: 0; }

/* Facts strip: breathing room between the vertical divider and the number/label (all devices) */
.mat-hero-facts > .mat-hero-fact.e-con { --padding-left: 28px; --padding-right: 20px; }
.mat-hero-facts > .mat-hero-fact.e-con:first-child { --padding-left: 0px; }
@media (max-width: 1024px) {
  .mat-hero-facts > .mat-hero-fact.e-con { --padding-left: 20px; --padding-right: 12px; border-right: 0; border-bottom: 1px solid var(--mat-line-d); }
  .mat-hero-facts > .mat-hero-fact.e-con:nth-child(odd) { --padding-left: 0px; border-right: 1px solid var(--mat-line-d); }
  .mat-hero-facts > .mat-hero-fact.e-con:nth-last-child(-n+2) { border-bottom: 0; }
}

/* single post/project sidebar: CSS sticky only (Elementor sticky motion effect removed), never clip the cards */
.mat-sidebar-box { align-self: flex-start; }
.mat-sidebar-box .mat-card { overflow: visible; }
