@font-face {
  font-family:Inter;
  src:url(inter.woff2) format('woff2');
  font-weight:100 900;
  font-display:swap
}
@font-face {
  font-family:Mono;
  src:url(mono.woff2) format('woff2');
  font-weight:100 900;
  font-display:swap
}
:root {
  --bg:#f5f7fb;
  --white:#fff;
  --ink:#13243e;
  --muted:#617087;
  --blue:#3b82f6;
  --deep:#1c63d8;
  --pale:#eaf1fd;
  --line:#dbe3ee;
  --radius:24px;
  --max:1380px;
  --gutter:2rem;
  --font-sans:Inter,Arial,sans-serif;
  --font-display:Inter,Arial,sans-serif;
  --font-mono:Mono,monospace;
  --accent:#3b82f6;
  --ink-2:#4d6078;
  --ink-3:#63748b;
  --bg-2:#edf2f9;
  --line-2:#c8d4e5
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:8.5rem
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:16px/1.6 Inter,Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button {
  cursor:pointer;
  color:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button {
  border:0;
  background:none
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid var(--deep);
  outline-offset:5px
}
img {
  max-width:100%;
  display:block
}
h1,h2,h3,h4,p {
  margin:0
}
h1,h2,h3,h4 {
  font-weight:550;
  letter-spacing:-.045em;
  line-height:1.1
}
h1 {
  font-size:clamp(46px,5.6vw,82px)
}
h2 {
  font-size:clamp(31px,3.5vw,48px)
}
h3 {
  font-size:24px
}
p {
  color:var(--muted)
}
em {
  font-style:normal;
  color:var(--blue)
}
[hidden] {
  display:none!important
}
.wrap {
  padding-left:var(--gutter);
  padding-right:var(--gutter);
  margin:auto
}
.section {
  padding-top:3rem;
  padding-bottom:3rem
}
.eyebrow {
  font:500 10px/1.5 Mono,monospace;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#5173a4;
  display:inline-block
}
.text-link {
  font-size:14px;
  font-weight:550;
  color:var(--deep);
  display:inline-flex;
  gap:1rem;
  align-items:center
}
.text-link:hover {
  color:var(--ink)
}
.btn {
  background:var(--blue);
  color:white;
  border:1px solid var(--blue);
  border-radius:100px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.75rem 1.5rem;
  gap:1rem;
  font-size:14px;
  font-weight:550;
  transition:background .18s,transform .18s;
  line-height:1.5
}
.btn:hover {
  background:var(--deep);
  transform:translateY(-2px)
}
.btn.white {
  background:white;
  color:var(--deep);
  border-color:white
}
.btn.small {
  font-size:12px;
  padding:.75rem 1rem
}
.actions {
  display:flex;
  gap:1.5rem;
  align-items:center;
  flex-wrap:wrap
}
.skip {
  position:absolute;
  top:-100px;
  left:20px;
  z-index:100;
  background:white;
  padding:.75rem
}
.skip:focus {
  top:10px
}
.utility {
  font-size:11px;
  background:#0b1e3c;
  border-bottom:1px solid #dfe6f1;
  color:#eeeeee;
}
.utility .wrap {
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:32px;
  gap:1rem
}
.utility .wrap>div {
  display:flex;
  gap:1.5rem
}
.site-header {
  position:sticky;
  top:0;
  z-index:60;
  background:#fffffff2;
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line)
}
.nav {
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem
}
.logo img {
  width:132px;
  height:auto
}
.nav nav {
  display:flex;
  align-items:center;
  gap:1.5rem
}
.nav nav>a,.nav nav>button {
  font-size:14px;
  padding:.5rem 0;
  white-space:nowrap
}
.nav nav>.btn {
  padding:.75rem 1rem;
  color:white;
  font-size:12px
}
.nav nav button[aria-expanded="true"],.nav nav>a[aria-current="page"] {
  color:var(--deep)
}
.nav nav>button span {
  margin-left:.25rem;
  color:#8a9fbc
}
.wishlist-link {
  display:flex;
  align-items:center;
  gap:.25rem
}
.wishlist-link b {
  border-radius:50%;
  background:#e9f1ff;
  min-width:20px;
  text-align:center;
  color:var(--deep);
  font-size:10px
}
.mobile-toggle {
  display:none
}
.mega-shell {
  position:absolute;
  top:100%;
  left:max(24px,calc((100vw - 1292px)/2));
  right:max(24px,calc((100vw - 1292px)/2));
  border-radius:0 0 26px 26px;
  box-shadow:0 32px 60px #0e2a4826;
  background:#fff;
  border:1px solid var(--line);
  overflow:hidden;
  max-height:calc(100vh - 125px);
  overflow-y:auto
}
.mega-top {
  display:flex;
  align-items:center;
  gap:1.5rem;
  padding:1rem 1.5rem;
  border-bottom:1px solid var(--line);
  font:10px Mono;
  text-transform:uppercase;
  letter-spacing:.06em
}
.mega-top>span {
  margin-right:auto;
  color:var(--muted)
}
.mega-top>a {
  color:var(--deep)
}
.mega-top button {
  font-size:25px;
  line-height:1;
  padding:0 .25rem
}
.mega-body {
  display:grid;
  grid-template-columns:260px 1fr
}
.mega-tabs {
  padding:1.5rem 1rem;
  background:#f5f8fd;
  display:flex;
  flex-direction:column;
  gap:.5rem
}
.mega-tabs button {
  text-align:left;
  position:relative;
  border-radius:16px;
  padding:1rem;
  display:grid;
  gap:.25rem
}
.mega-tabs button>span {
  font:10px Mono;
  color:var(--muted)
}
.mega-tabs button>b {
  font-size:17px;
  font-weight:550;
  letter-spacing:-.03em
}
.mega-tabs button>small {
  font-size:11px;
  color:var(--muted)
}
.mega-tabs button i {
  position:absolute;
  right:14px;
  top:18px;
  font-style:normal
}
.mega-tabs button[aria-selected="true"] {
  background:var(--blue);
  color:white;
  box-shadow:0 6px 14px #3b82f62b
}
.mega-tabs button[aria-selected="true"] span,.mega-tabs button[aria-selected="true"] small {
  color:#e3efff
}
.mega-panel {
  display:grid;
  grid-template-columns:1fr 235px;
  gap:1.5rem;
  padding:1.5rem
}
.mega-categories h3 {
  font-size:28px;
  margin-top:.5rem
}
.mega-categories p {
  font-size:13px;
  margin:.5rem 0 1rem;
  max-width:48ch
}
.sub-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 1rem;
  margin-bottom:1rem
}
.sub-links a {
  display:flex;
  flex-direction:column;
  gap:.25rem;
  border-bottom:1px solid var(--line);
  padding:.75rem 0;
  font-size:13px
}
.sub-links a small {
  font-size:10px;
  color:var(--muted)
}
.sub-links a:hover {
  color:var(--deep)
}
.mega-feature {
  border-radius:18px;
  padding:.75rem;
  background:var(--pale);
  align-self:start;
  display:grid;
  gap:.5rem
}
.mega-feature img {
  width:100%;
  aspect-ratio:1.2;
  object-fit:cover;
  border-radius:12px
}
.mega-feature .eyebrow {
  padding-top:.25rem
}
.mega-feature h4 {
  font-size:23px
}
.mega-feature>span:last-child {
  font-size:11px;
  color:var(--deep)
}
.mega-bottom {
  display:flex;
  gap:1.5rem;
  padding:1rem 1.5rem;
  background:#edf3fd;
  font-size:12px
}
.mega-bottom span {
  color:var(--muted)
}
.mega-bottom a {
  color:var(--deep)
}
.mega-services {
  display:grid;
  grid-template-columns:1fr 1fr .85fr;
  gap:1.5rem;
  padding:1.5rem
}
.mega-services>a>img {
  height:140px;
  width:100%;
  object-fit:cover;
  border-radius:15px;
  margin-bottom:1rem
}
.mega-services h3 {
  margin:.5rem 0;
  font-size:23px
}
.mega-services p {
  font-size:13px
}
.mega-callout {
  background:var(--pale);
  border-radius:18px;
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  gap:.75rem
}
.mega-callout .btn {
  margin-top:auto;
  font-size:12px
}
.mega-news {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:1.5rem;
  gap:1.5rem
}
.mega-news>a {
  padding:1.5rem;
  background:var(--bg);
  border-radius:20px;
  display:grid;
  gap:1rem
}
.mega-news h3 {
  font-size:32px
}
.mega-news p {
  font-size:14px;
  max-width:45ch
}
.menu-backdrop {
  position:fixed;
  inset:0;
  background:#0d244533;
  backdrop-filter:blur(3px);
  z-index:55
}
.hero {
  padding-top:2rem;
  padding-bottom:1.5rem
}
.hero-main {
  display:grid;
  grid-template-columns:1.06fr 1fr;
  gap:1.5rem
}
.hero-copy {
  padding:1.5rem 0 1rem
}
.hero-copy h1 {
  font-size:clamp(65px,7.7vw,111px);
  line-height:.95;
  letter-spacing:-.058em;
  margin:1.5rem 0
}
.hero-copy>p {
  font-size:23px;
  color:var(--ink);
  line-height:1.3;
  letter-spacing:-.025em
}
.hero-description {
  max-width:47ch;
  font-size:15px;
  color:var(--muted);
  margin:1rem 0 1.5rem
}
.live-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--blue);
  margin-right:.5rem
}
.hero-meta {
  margin-top:2rem;
  display:flex;
  gap:1.5rem
}
.hero-meta span {
  font-size:10px;
  color:var(--muted);
  display:flex;
  flex-direction:column;
  padding-right:1.5rem;
  border-right:1px solid var(--line)
}
.hero-meta span:last-child {
  border:0;
  padding:0
}
.hero-meta b {
  font-size:19px;
  font-weight:500;
  color:var(--ink);
  letter-spacing:-.03em
}
.hero-visual {
  position:relative;
  border-radius:26px;
  overflow:hidden;
  background:#132d4d;
  min-height:530px
}
.hero-visual>img {
  height:100%;
  width:100%;
  object-fit:cover;
  position:absolute
}
.hero-visual:after {
  content:'';
  position:absolute;
  inset:35% 0 0;
  background:linear-gradient(transparent,#091e38e8)
}
.image-label {
  position:absolute;
  top:22px;
  left:22px;
  z-index:2;
  border-radius:100px;
  padding:.5rem .75rem;
  background:#ffffffed;
  font:9px Mono;
  color:#294d80
}
.hero-overlay {
  position:absolute;
  left:30px;
  bottom:30px;
  color:white;
  z-index:2
}
.hero-overlay .eyebrow {
  color:#b8d5ff;
  margin-bottom:.75rem
}
.hero-overlay h2 {
  font-size:46px
}
.hero-access {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line);
  border-radius:18px;
  background:white;
  margin-top:1.5rem;
  overflow:hidden
}
.hero-access a {
  padding:1rem 1.5rem;
  display:grid;
  grid-template-columns:1fr auto;
  gap:.25rem;
  border-right:1px solid var(--line)
}
.hero-access a:last-child {
  border:0
}
.hero-access a>span {
  font:10px Mono;
  color:var(--deep)
}
.hero-access b {
  font-weight:500;
  grid-row:2;
  font-size:13px
}
.hero-access i {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  font-style:normal;
  color:var(--deep);
  font-size:21px
}
.hero-access a:hover {
  background:var(--pale)
}
.section-title {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin-bottom:2rem
}
.section-title h2 {
  margin-top:.75rem
}
.category-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem
}
.category-card {
  background:white;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:transform .2s,box-shadow .2s
}
.category-card:hover {
  transform:translateY(-5px);
  box-shadow:0 16px 35px #172b4910
}
.category-top {
  display:flex;
  justify-content:space-between;
  gap:.5rem;
  align-items:center;
  padding:1rem
}
.category-top>span:last-child {
  font-size:10px;
  color:var(--muted)
}
.category-card>img {
  width:calc(100% - 16px);
  margin:0 .5rem;
  aspect-ratio:1.25;
  object-fit:cover;
  border-radius:15px
}
.category-card>div:last-child {
  padding:1.5rem;
  flex:1;
  display:flex;
  flex-direction:column
}
.category-card h3 {
  font-size:23px;
  min-height:51px
}
.category-card p {
  font-size:13px;
  margin:.75rem 0 1rem;
  flex:1
}
.category-card .text-link {
  border-top:1px solid var(--line);
  padding-top:1rem;
  justify-content:space-between;
  font-size:12px
}
.engineering-panel {
  background:#e9f0fc;
  border-radius:28px;
  padding:2rem;
  display:grid;
  grid-template-columns:.8fr 1.4fr;
  gap:2rem;
  border:1px solid #dbe6f7
}
.engineering-intro h2 {
  margin:1rem 0
}
.engineering-intro p {
  font-size:15px;
  max-width:32ch;
  margin-bottom:1.5rem
}
.process-tags {
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin-top:1.5rem
}
.process-tags span {
  padding:.25rem .5rem;
  border:1px solid #c6d6ed;
  border-radius:6px;
  font:9px Mono;
  color:#537199
}
.engineering-cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem
}
.engineering-cards>a {
  border-radius:20px;
  background:white;
  overflow:hidden
}
.engineering-cards img {
  width:100%;
  height:190px;
  object-fit:cover
}
.engineering-cards>a>div {
  padding:1.5rem
}
.engineering-cards small {
  font:9px Mono;
  color:#567aa9;
  text-transform:uppercase
}
.engineering-cards h3 {
  margin-top:.75rem;
  font-size:23px
}
.engineering-cards p {
  font-size:13px;
  margin:.75rem 0 1.5rem
}
.engineering-cards span {
  font-size:12px;
  color:var(--deep)
}
.featured-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem
}
.product-card {
  position:relative;
  background:white;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  transition:box-shadow .2s,transform .2s
}
.product-card:hover {
  box-shadow:0 15px 35px #102b4512;
  transform:translateY(-3px)
}
.product-picture {
  position:relative;
  margin:.5rem;
  border-radius:16px;
  overflow:hidden;
  background:#eff3f9;
  aspect-ratio:1.4;
  display:grid;
  place-items:center
}
.product-picture img {
  height:100%;
  width:100%;
  object-fit:cover;
  mix-blend-mode:multiply
}
.pill {
  font:9px Mono;
  padding:.25rem .5rem;
  background:white;
  border:1px solid #e0e7f1;
  border-radius:100px;
  color:#3a659e;
  display:inline-block
}
.product-picture .pill {
  position:absolute;
  top:12px;
  left:12px
}
.save-product {
  position:absolute;
  right:20px;
  top:20px;
  background:#fff;
  border-radius:50%;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  color:var(--deep);
  font-size:19px;
  border:1px solid var(--line)
}
.save-product[aria-pressed="true"] {
  background:var(--blue);
  color:white
}
.product-copy {
  padding:1rem 1.5rem 1.5rem
}
.product-copy small {
  font:9px Mono;
  color:#74849a;
  text-transform:uppercase
}
.product-copy h3 {
  font-size:24px;
  margin-top:.75rem;
  min-height:53px
}
.card-tail {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:1.5rem;
  padding-top:1rem;
  border-top:1px solid #e9eef5;
  font-size:12px;
  color:var(--deep)
}
.card-tail b {
  font-weight:400;
  font-size:20px
}
.no-image {
  text-align:center;
  color:var(--muted);
  font-size:24px
}
.daq-banner {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:3rem;
  background:#102b4c;
  border-radius:28px;
  color:white;
  padding:3rem;
  position:relative;
  overflow:hidden
}
.daq-banner .eyebrow {
  color:#90baff
}
.daq-banner h2 {
  margin:1rem 0
}
.daq-banner p {
  color:#b5c7df;
  font-size:15px;
  max-width:48ch;
  margin-bottom:1.5rem
}
.module-diagram {
  border:1px solid #365574;
  border-radius:20px;
  padding:1.5rem;
  background:linear-gradient(#ffffff05,#ffffff05),repeating-linear-gradient(0deg,transparent,transparent 23px,#ffffff05 24px)
}
.diagram-top {
  font:10px Mono;
  color:#9fc7ff
}
.module-diagram>div {
  display:flex;
  gap:.5rem;
  margin:2rem 0
}
.module-diagram b,.module-diagram>div>span {
  border:1px solid #6390c9;
  border-radius:10px;
  flex:1;
  padding:1.5rem .5rem;
  text-align:center;
  font:18px Mono;
  background:#24486e;
  box-shadow:inset 0 -5px #0001
}
.module-diagram b {
  background:var(--blue);
  color:white;
  display:grid;
  place-items:center
}
.module-diagram small {
  font:8px Mono;
  color:#b7cde8
}
.company-block {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  align-items:center;
  gap:4rem
}
.company-visual {
  position:relative;
  border-radius:25px;
  overflow:hidden
}
.company-visual img {
  height:400px;
  width:100%;
  object-fit:cover
}
.company-visual span {
  position:absolute;
  bottom:20px;
  left:20px;
  background:#fff;
  padding:1rem 1.5rem;
  border-radius:18px;
  font-size:27px;
  line-height:1.1;
  letter-spacing:-.04em
}
.company-block h2 {
  margin:1rem 0 1.5rem
}
.company-block p {
  font-size:16px;
  margin-bottom:1.5rem;
  max-width:46ch
}
.company-links {
  display:grid;
  margin-top:1.5rem
}
.company-links a {
  font-size:13px;
  border-top:1px solid var(--line);
  padding:.75rem 0;
  color:#506987
}
.sector-strip {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem
}
.sector-strip a {
  padding:1.5rem;
  background:white;
  border-radius:20px;
  border:1px solid var(--line)
}
.sector-strip span {
  font:10px Mono;
  color:var(--muted)
}
.sector-strip h3 {
  font-size:23px;
  margin:1.5rem 0
}
.sector-strip b {
  color:var(--deep);
  font-size:20px;
  font-weight:400
}
.project-cta {
  margin:3rem 0 5rem;
  padding:3rem 3rem;
  border-radius:26px;
  background:var(--blue);
  color:white;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2rem
}
.project-cta .eyebrow {
  color:#d7e7ff
}
.project-cta h2 {
  margin-top:1rem;
  font-size:40px
}
.footer {
  background:#e9eef6;
  border-top:1px solid var(--line);
  padding-top:3rem
}
.footer-grid {
  display:grid;
  grid-template-columns:1.35fr 1fr 1.1fr .7fr 1.1fr;
  gap:1.5rem
}
.footer-grid>div {
  display:flex;
  flex-direction:column;
  gap:.5rem;
  align-items:flex-start
}
.footer img {
  width:135px;
  margin-bottom:.75rem
}
.footer h4 {
  font-size:13px;
  letter-spacing:0;
  margin-bottom:.5rem
}
.footer p,.footer a {
  font-size:12px;
  color:#5b6d87
}
.footer a:hover {
  color:var(--deep)
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  font-size:10px;
  color:var(--muted);
  border-top:1px solid #d7e0ed;
  padding-top:1rem;
  padding-bottom:1rem;
  margin-top:3rem
}
.footer-bottom a {
  font-size:10px
}
/* Modelli interni */
.page-heading {
  padding-top:1.5rem;
  padding-bottom:2rem
}
.breadcrumb {
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:11px;
  padding-top:0;
  margin-bottom:2rem
}
.breadcrumb a {
  color:var(--deep)
}
.page-heading h1 {
  margin:0 0 1.5rem 0;
}
.page-heading>p {
  max-width:58ch;
  font-size:17px
}
.page-tabs {
  display:flex;
  gap:1.5rem;
  flex-wrap:wrap;
  padding-top:1.5rem;
  padding-bottom:1.5rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:13px;
  color:#46638b
}
.page-tabs a:hover {
  color:var(--deep)
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:4rem
}
.split>img {
  border-radius:26px;
  height:420px;
  width:100%;
  object-fit:cover
}
.split.reverse>img {
  order:2
}
.split h2 {
  margin:1rem 0 1.5rem
}
.split p {
  margin-bottom:1rem
}
.detail-list {
  display:grid;
  margin-bottom:1.5rem
}
.detail-list span {
  padding:.75rem 0;
  border-bottom:1px solid var(--line);
  font-size:14px
}
.detail-list span:before {
  content:'↗';
  color:var(--blue);
  margin-right:1rem
}
.info-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem
}
.info-grid article {
  background:white;
  border:1px solid var(--line);
  padding:2rem;
  border-radius:22px
}
.info-grid h3 {
  margin:1.5rem 0 1rem
}
.info-grid p {
  font-size:15px
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1rem
}
.process-grid article {
  border-radius:18px;
  background:#eaf1fc;
  padding:1.5rem
}
.process-grid span {
  font:12px Mono;
  color:var(--deep)
}
.process-grid h3 {
  font-size:23px;
  margin:2rem 0 1rem
}
.process-grid p {
  font-size:13px
}
.sector-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem
}
.sector-grid article {
  background:white;
  border:1px solid var(--line);
  border-radius:24px;
  padding:2rem;
  scroll-margin-top:9rem
}
.sector-grid article>div {
  display:flex;
  align-items:center;
  justify-content:space-between
}
.sector-grid article>div b {
  font:10px Mono;
  background:var(--pale);
  padding:.25rem .5rem;
  border-radius:8px;
  color:var(--deep)
}
.sector-grid h2 {
  font-size:34px;
  margin:2rem 0 1rem
}
.sector-grid p {
  max-width:45ch;
  margin-bottom:1.5rem
}
.company-cover {
  position:relative
}
.company-cover>img {
  height:430px;
  width:100%;
  object-fit:cover;
  border-radius:26px
}
.company-cover>div {
  position:absolute;
  bottom:28px;
  left:72px;
  padding:1.5rem 2rem;
  border-radius:18px;
  background:#fff
}
.company-cover h2 {
  font-size:36px;
  margin-top:1rem
}
.year-block {
  border:1px solid var(--line);
  border-radius:26px;
  background:white;
  min-height:310px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:1rem
}
.year-block strong {
  font-size:125px;
  font-weight:500;
  letter-spacing:-.07em;
  color:var(--blue);
  line-height:1
}
.year-block span {
  font-size:13px;
  color:var(--muted)
}
.editorial-note {
  font-size:12px;
  color:#6a7d95
}
.news-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem
}
.news-grid article {
  background:white;
  border:1px solid var(--line);
  border-radius:22px;
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  gap:1.5rem
}
.news-grid article>div {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center
}
.news-grid time {
  font:9px Mono;
  color:var(--muted)
}
.news-grid h3 {
  font-size:26px;
  line-height:1.2
}
.news-grid p {
  font-size:14px;
  flex:1
}
.catalog-section {
  padding-top:1rem
}
.catalog-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem
}
.search {
  background:white;
  border:1px solid var(--line);
  border-radius:14px;
  display:flex;
  align-items:center;
  gap:1rem;
  padding:.75rem 1rem;
  width:65%
}
.search>span {
  font-size:24px;
  color:var(--deep)
}
.search input {
  width:100%;
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:15px;
  min-width:0
}
.filter-pills {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:1.5rem 0 2rem
}
.filter-pills button {
  border-radius:100px;
  padding:.75rem 1rem;
  background:white;
  border:1px solid var(--line);
  font-size:13px;
  display:flex;
  gap:1rem;
  align-items:center
}
.filter-pills b {
  font-size:10px;
  font-weight:500;
  color:var(--muted)
}
.filter-pills button[aria-pressed="true"] {
  background:var(--blue);
  color:white;
  border-color:var(--blue)
}
.filter-pills button[aria-pressed="true"] b {
  color:white
}
.catalog-layout {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:1.5rem
}
.catalog-sidebar {
  display:flex;
  flex-direction:column;
  gap:1rem
}
.catalog-sidebar label {
  font-size:13px
}
.catalog-sidebar select {
  padding:.75rem;
  border-radius:10px;
  border:1px solid var(--line);
  width:100%;
  font-size:12px;
  background:white;
  color:var(--ink)
}
.sidebar-help {
  padding:1.5rem 1rem;
  background:var(--pale);
  border-radius:20px;
  margin-top:.75rem
}
.sidebar-help h3 {
  font-size:22px
}
.sidebar-help p {
  font-size:13px;
  margin:1rem 0
}
.sidebar-help a {
  font-size:12px;
  color:var(--deep)
}
.sidebar-config {
  background:#183a64;
  color:white;
  border-radius:20px;
  padding:1.5rem 1rem;
  display:grid;
  gap:1rem
}
.sidebar-config .eyebrow {
  color:#b6d1ff
}
.sidebar-config span:last-child {
  font-size:12px
}
.catalog-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem
}
.catalog-grid .product-copy {
  padding:1rem
}
.catalog-grid .product-copy h3 {
  font-size:20px
}
.results-bar {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  font:10px Mono;
  color:var(--muted);
  margin-bottom:1rem
}
.product-crumb {
  padding-top:1.5rem;
  margin-bottom:1.5rem
}
.product-detail {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  padding-bottom:3rem;
  align-items:center
}
.detail-photo {
  position:relative;
  background:#eaf0f8;
  border:1px solid var(--line);
  border-radius:26px;
  overflow:hidden;
  aspect-ratio:1.1
}
.detail-photo>img {
  height:100%;
  width:100%;
  object-fit:contain;
  mix-blend-mode:multiply
}
.detail-photo .pill {
  position:absolute;
  top:22px;
  left:22px
}
.product-detail h1 {
  font-size:50px;
  margin:1rem 0 1.5rem
}
.product-detail p {
  font-size:16px
}
.product-availability {
  font-size:12px;
  padding:1rem 0;
  margin:1rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--muted)
}
.product-assurance {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:1.5rem;
  font-size:10px;
  color:var(--muted)
}
.product-text>p {
  max-width:85ch;
  font-size:18px
}
.spec-table {
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border-radius:18px;
  border:1px solid var(--line);
  font-size:14px;
  background:white
}
.spec-table th,.spec-table td {
  padding:1rem 1.5rem;
  text-align:left;
  border-bottom:1px solid var(--line)
}
.spec-table th {
  font-weight:500;
  width:35%;
  background:#edf3fc
}
.spec-table tr:last-child>* {
  border-bottom:0
}
.application-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem
}
.application-grid>div {
  padding:1.5rem;
  background:white;
  border:1px solid var(--line);
  border-radius:16px;
  font-size:15px
}
.application-grid span {
  display:block;
  font:10px Mono;
  color:var(--deep);
  margin-bottom:1rem
}
.document-panel {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2rem;
  background:var(--pale);
  padding:2rem;
  border-radius:24px
}
.document-panel h2 {
  margin:1rem 0 1rem;
  font-size:36px
}
.document-panel p {
  max-width:52ch
}
.contact-layout {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:5rem
}
.contact-layout h2 {
  margin:1rem 0 1.5rem
}
.contact-layout>div>p {
  max-width:40ch;
  margin-bottom:1.5rem
}
.contact-email {
  font-size:24px;
  color:var(--deep);
  letter-spacing:-.025em
}
.contact-detail {
  display:grid;
  gap:.5rem;
  padding-top:1.5rem;
  margin-top:1.5rem;
  border-top:1px solid var(--line)
}
.contact-detail>span {
  font:10px Mono;
  color:var(--muted);
  text-transform:uppercase
}
.contact-detail address {
  font-style:normal;
  font-size:16px
}
.contact-layout>div>.text-link {
  margin-top:1.5rem
}
.contact-form {
  padding:2rem;
  background:white;
  border-radius:24px;
  border:1px solid var(--line);
  display:grid;
  gap:1.5rem
}
.form-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem
}
.contact-form label {
  font-size:12px;
  color:#536a8a;
  display:grid;
  gap:.5rem
}
.contact-form input,.contact-form select,.contact-form textarea {
  width:100%;
  min-width:0;
  border:1px solid #d7e0ee;
  border-radius:11px;
  background:#f8faff;
  padding:.75rem;
  font-size:14px;
  color:var(--ink)
}
textarea {
  resize:vertical
}
.form-note {
  font-size:12px;
  color:var(--muted)
}
.contact-form .btn {
  justify-self:start
}
#contact-result,#quote-result:not(:empty) {
  padding:1rem;
  border-radius:15px;
  background:var(--pale);
  font-size:14px
}
#contact-result a,#quote-result a {
  color:var(--deep);
  text-decoration:underline
}
.wishlist-row {
  display:grid;
  grid-template-columns:100px 1fr 100px auto;
  gap:1.5rem;
  align-items:center;
  background:white;
  border:1px solid var(--line);
  border-radius:20px;
  padding:1rem;
  margin-bottom:1rem
}
.wishlist-row img {
  width:100%;
  border-radius:12px
}
.wishlist-row h3 {
  font-size:23px
}
.wishlist-row small {
  font:10px Mono;
  color:var(--muted)
}
.wishlist-row input {
  width:75px;
  padding:.5rem;
  border:1px solid var(--line);
  border-radius:9px
}
.wishlist-row label {
  display:grid;
  font-size:11px;
  color:var(--muted)
}
.wishlist-row button {
  font-size:12px;
  color:var(--deep)
}
.wishlist-actions {
  display:flex;
  gap:1.5rem;
  align-items:center;
  margin:1.5rem 0
}
.empty-wishlist {
  padding:4rem;
  background:white;
  border:1px dashed #bccde5;
  border-radius:24px;
  text-align:center
}
.empty-wishlist h2 {
  margin-bottom:1rem
}
.empty-wishlist p {
  margin-bottom:1.5rem
}
.toast {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  background:#16365b;
  color:white;
  padding:.75rem 1.5rem;
  border-radius:100px;
  z-index:80;
  font-size:13px;
  box-shadow:0 10px 30px #1234
}
/* Configuratore conservato dal prototipo, con cornice condivisa. */
#config-root section {
  padding:3rem 0
}
#config-root .display {
  font-size:clamp(42px,6vw,78px)
}
#config-root .lead {
  font-size:17px;
  color:var(--muted);
  max-width:55ch
}
#config-root .mono {
  font:10px Mono;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.08em
}
#config-root button,#config-root select {
  border-radius:10px!important
}
#config-root .btn {
  color:white
}
#config-root .arrow {
  display:inline-block;
  width:14px
}
#config-root .wrap>div[style*="border"] {
  border-radius:18px;
  overflow:hidden
}
#config-root .btn-ghost {
  background:transparent;
  color:var(--deep)
}
@media(max-width:1150px) {
  :root {
    --gutter:28px
  }
  .nav nav {
    gap:1rem
  }
  .nav nav>a,.nav nav>button {
    font-size:12px
  }
  .nav nav>.btn {
    font-size:11px;
    padding:.75rem .75rem
  }
  .logo img {
    width:115px
  }
  .hero-copy h1 {
    font-size:84px
  }
  .hero-visual {
    min-height:520px
  }
  .hero-meta {
    gap:1rem
  }
  .hero-meta span {
    padding-right:1rem
  }
  .hero-access a {
    padding:1rem
  }
  .hero-access b {
    font-size:12px
  }
  .engineering-panel {
    padding:1.5rem;
    gap:1.5rem
  }
  .engineering-cards img {
    height:165px
  }
  .engineering-cards>a>div {
    padding:1rem
  }
  .engineering-cards h3 {
    font-size:21px
  }
  .catalog-layout {
    grid-template-columns:190px 1fr;
    gap:1.5rem
  }
  .catalog-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .footer-grid {
    gap:1.5rem
  }
  .mega-body {
    grid-template-columns:220px 1fr
  }
  .mega-panel {
    grid-template-columns:1fr 200px;
    gap:1rem;
    padding:1.5rem
  }
  .company-block {
    gap:2rem
  }
  .process-grid {
    gap:.5rem
  }
  .process-grid article {
    padding:1rem
  }
  .process-grid h3 {
    font-size:20px
  }
}
@media(max-width:900px) {
  .utility .wrap>span {
    display:none
  }
  .utility .wrap {
    justify-content:flex-end
  }
  .utility .wrap>div {
    gap:1rem
  }
  .mobile-toggle {
    display:block;
    border:1px solid var(--line);
    border-radius:100px;
    padding:.5rem 1rem;
    font-size:13px
  }
  .nav {
    min-height:76px
  }
  .nav nav {
    display:none;
    position:absolute;
    top:100%;
    left:16px;
    right:16px;
    background:white;
    border-radius:0 0 20px 20px;
    padding:1rem;
    border:1px solid var(--line);
    max-height:calc(100dvh - 110px);
    overflow-y:auto;
    flex-direction:column;
    align-items:stretch;
    gap:.25rem
  }
  .nav nav.open {
    display:flex
  }
  .nav nav>a,.nav nav>button {
    font-size:15px;
    padding:.75rem;
    text-align:left
  }
  .nav nav>.btn {
    font-size:14px
  }
  .mega-shell {
    position:fixed;
    top:76px;
    left:12px;
    right:12px;
    max-height:calc(100dvh - 88px);
    border-radius:20px;
    z-index:70
  }
  .mega-top {
    padding:1rem;
    font-size:9px;
    gap:1rem
  }
  .mega-top>a {
    font-size:9px;
    max-width:140px
  }
  .mega-body {
    grid-template-columns:180px 1fr
  }
  .mega-panel {
    grid-template-columns:1fr
  }
  .mega-feature {
    display:none
  }
  .mega-tabs {
    padding:.75rem
  }
  .mega-tabs button {
    padding:.75rem .75rem
  }
  .mega-tabs button>b {
    font-size:15px
  }
  .mega-tabs button>small {
    font-size:10px
  }
  .mega-tabs button i {
    display:none
  }
  .sub-links {
    grid-template-columns:1fr
  }
  .mega-services {
    grid-template-columns:1fr 1fr;
    padding:1rem;
    gap:1rem
  }
  .mega-callout {
    grid-column:1/-1
  }
  .mega-news {
    padding:1rem;
    gap:1rem
  }
  .hero-main {
    gap:1.5rem
  }
  .hero-copy h1 {
    font-size:68px
  }
  .hero-copy>p {
    font-size:20px
  }
  .hero-description {
    font-size:14px
  }
  .hero-copy .eyebrow {
    font-size:9px
  }
  .hero-visual {
    min-height:540px
  }
  .hero-overlay {
    left:22px;
    bottom:25px
  }
  .hero-overlay h2 {
    font-size:36px
  }
  .hero-meta {
    flex-wrap:wrap;
    margin-top:1.5rem
  }
  .hero-meta span {
    font-size:9px
  }
  .hero-meta b {
    font-size:17px
  }
  .hero-access {
    grid-template-columns:1fr 1fr
  }
  .hero-access a:nth-child(2) {
    border-right:0
  }
  .hero-access a:nth-child(-n+2) {
    border-bottom:1px solid var(--line)
  }
  .category-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .category-card h3 {
    min-height:0
  }
  .engineering-panel {
    grid-template-columns:1fr
  }
  .engineering-intro h2 br:nth-child(2) {
    display:none
  }
  .engineering-intro p {
    max-width:50ch
  }
  .engineering-cards img {
    height:210px
  }
  .engineering-cards>a>div {
    padding:1.5rem
  }
  .engineering-cards h3 {
    font-size:26px
  }
  .featured-grid {
    gap:1rem
  }
  .product-copy {
    padding:1rem
  }
  .product-copy h3 {
    font-size:21px
  }
  .daq-banner {
    padding:2rem;
    gap:2rem
  }
  .module-diagram {
    padding:1rem
  }
  .module-diagram>div {
    gap:.25rem
  }
  .module-diagram b,.module-diagram>div>span {
    font-size:14px;
    padding:1.5rem .25rem
  }
  .module-diagram small {
    font-size:7px
  }
  .company-block {
    gap:2rem
  }
  .company-visual img {
    height:370px
  }
  .company-visual span {
    font-size:23px
  }
  .sector-strip {
    grid-template-columns:repeat(2,1fr)
  }
  .project-cta {
    padding:2rem
  }
  .project-cta h2 {
    font-size:32px
  }
  .footer-grid {
    grid-template-columns:repeat(3,1fr)
  }
  .footer-grid>div:first-child {
    grid-column:1/-1
  }
  .footer-grid>div:last-child {
    grid-column:2/4
  }
  .split {
    gap:2rem
  }
  .split>img {
    height:350px
  }
  .process-grid {
    grid-template-columns:repeat(3,1fr)
  }
  .info-grid {
    gap:.75rem
  }
  .info-grid article {
    padding:1.5rem
  }
  .info-grid h3 {
    font-size:23px
  }
  .news-grid {
    grid-template-columns:1fr 1fr
  }
  .contact-layout {
    gap:2rem
  }
  .contact-form {
    padding:1.5rem
  }
  .form-pair {
    grid-template-columns:1fr
  }
  .product-detail {
    gap:2rem
  }
  .product-detail h1 {
    font-size:40px
  }
  .application-grid {
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:600px) {
  :root {
    --gutter:20px
  }
  html {
    scroll-padding-top:6rem
  }
  .utility .wrap>div {
    width:100%;
    justify-content:space-between;
    gap:.75rem
  }
  .utility a[href^="mailto"] {
    display:none
  }
  .utility {
    font-size:9px
  }
  .nav {
    min-height:72px
  }
  .logo img {
    width:117px
  }
  .hero {
    padding-top:1rem
  }
  .hero-main {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .hero-copy {
    padding:1rem 0 0
  }
  .hero-copy h1 {
    font-size:clamp(66px,17vw,85px);
    margin:1rem 0
  }
  .hero-copy>p {
    font-size:22px
  }
  .hero-description {
    font-size:15px;
    max-width:43ch
  }
  .actions {
    gap:1rem
  }
  .actions .text-link {
    font-size:13px
  }
  .hero-meta {
    margin-top:2rem;
    gap:1rem;
    flex-wrap:nowrap
  }
  .hero-meta span {
    font-size:8px;
    padding-right:1rem;
    min-width:0
  }
  .hero-meta b {
    font-size:16px;
    white-space:nowrap
  }
  .hero-visual {
    min-height:340px
  }
  .hero-overlay h2 {
    font-size:34px
  }
  .image-label {
    top:16px;
    left:16px;
    font-size:8px
  }
  .hero-access {
    margin-top:1rem
  }
  .hero-access a {
    padding:1rem
  }
  .hero-access b {
    font-size:11px
  }
  .hero-access i {
    font-size:17px
  }
  .section {
    padding-top:2rem;
    padding-bottom:2rem
  }
  .section-title {
    align-items:flex-start;
    gap:1rem;
    flex-direction:column;
    margin-bottom:1.5rem
  }
  .section-title h2 {
    font-size:33px
  }
  .category-grid {
    gap:.75rem
  }
  .category-top {
    padding:.75rem .75rem;
    gap:.25rem
  }
  .category-top .eyebrow {
    font-size:8px
  }
  .category-top>span:last-child {
    font-size:8px
  }
  .category-card {
    border-radius:19px
  }
  .category-card>div:last-child {
    padding:1rem .75rem
  }
  .category-card h3 {
    font-size:21px;
    min-height:46px
  }
  .category-card p {
    font-size:12px;
    margin:.5rem 0 1rem
  }
  .category-card .text-link {
    font-size:10px;
    gap:.5rem
  }
  .engineering-panel {
    padding:1.5rem;
    border-radius:24px
  }
  .engineering-cards {
    grid-template-columns:1fr
  }
  .engineering-cards img {
    height:180px
  }
  .engineering-cards h3 {
    font-size:25px
  }
  .engineering-intro h2 br {
    display:none
  }
  .engineering-intro h2 {
    font-size:35px
  }
  .featured-grid {
    grid-template-columns:1fr
  }
  .product-picture {
    aspect-ratio:1.5
  }
  .product-copy h3 {
    min-height:0;
    font-size:25px
  }
  .daq-banner {
    grid-template-columns:1fr;
    padding:1.5rem;
    border-radius:24px
  }
  .daq-banner h2 {
    font-size:34px
  }
  .module-diagram {
    padding:1rem
  }
  .module-diagram small {
    font-size:8px
  }
  .module-diagram b,.module-diagram>div>span {
    font-size:17px
  }
  .company-block {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .company-visual img {
    height:290px
  }
  .company-visual span {
    font-size:25px
  }
  .company-block h2 {
    font-size:36px
  }
  .sector-strip {
    gap:.75rem
  }
  .sector-strip a {
    padding:1rem
  }
  .sector-strip h3 {
    font-size:22px
  }
  .project-cta {
    margin:2rem 0 3rem;
    display:block;
    padding:1.5rem
  }
  .project-cta h2 {
    font-size:32px
  }
  .project-cta .btn {
    margin-top:1.5rem
  }
  .footer {
    padding-top:2rem
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:2rem 1rem
  }
  .footer-grid>div:last-child {
    grid-column:auto
  }
  .footer-bottom {
    flex-wrap:wrap;
    font-size:9px;
    gap:1rem
  }
  .footer-bottom>span:nth-child(2) {
    display:none
  }
  .mega-shell {
    top:72px;
    left:10px;
    right:10px
  }
  .mega-top {
    gap:.5rem
  }
  .mega-top>span {
    font-size:8px
  }
  .mega-body {
    display:block
  }
  .mega-tabs {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.5rem;
    padding:.75rem
  }
  .mega-tabs button {
    padding:.75rem
  }
  .mega-tabs button>b {
    font-size:14px
  }
  .mega-tabs button small {
    display:none
  }
  .mega-panel {
    padding:1rem
  }
  .mega-categories h3 {
    font-size:26px
  }
  .mega-categories p {
    font-size:12px
  }
  .sub-links {
    grid-template-columns:1fr 1fr;
    gap:0 .75rem
  }
  .sub-links a {
    font-size:12px
  }
  .sub-links a small {
    font-size:9px
  }
  .mega-bottom {
    padding:1rem;
    gap:.75rem;
    font-size:10px
  }
  .mega-services {
    grid-template-columns:1fr;
    padding:1rem
  }
  .mega-services>a {
    display:grid;
    grid-template-columns:100px 1fr;
    gap:.5rem 1rem
  }
  .mega-services>a>img {
    grid-row:1/4;
    height:110px;
    margin:0
  }
  .mega-services h3 {
    font-size:20px;
    margin:0
  }
  .mega-services .eyebrow {
    font-size:8px
  }
  .mega-services p {
    font-size:12px
  }
  .mega-callout {
    padding:1rem
  }
  .mega-news {
    grid-template-columns:1fr;
    padding:1rem
  }
  .mega-news>a {
    padding:1.5rem;
    gap:.75rem
  }
  .mega-news h3 {
    font-size:27px
  }
  .page-heading {
    padding-top:1.5rem;
    padding-bottom:1.5rem
  }
  .breadcrumb {
    margin-bottom:1.5rem;
    font-size:10px
  }
  .page-heading h1 {
    font-size:43px;
    margin:1rem 0
  }
  .page-heading>p {
    font-size:16px
  }
  .page-tabs {
    gap:.75rem;
    font-size:12px
  }
  .split {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .split.reverse>img {
    order:0
  }
  .split>img {
    height:270px
  }
  .info-grid {
    grid-template-columns:1fr
  }
  .process-grid {
    grid-template-columns:1fr 1fr;
    gap:.75rem
  }
  .process-grid article {
    padding:1rem
  }
  .process-grid h3 {
    font-size:20px;
    overflow-wrap:anywhere
  }
  .sector-grid {
    grid-template-columns:1fr;
    gap:1rem
  }
  .sector-grid article {
    padding:1.5rem
  }
  .sector-grid h2 {
    font-size:32px
  }
  .company-cover>img {
    height:370px
  }
  .company-cover>div {
    left:35px;
    right:35px;
    bottom:15px;
    padding:1.5rem
  }
  .company-cover h2 {
    font-size:28px
  }
  .company-cover .eyebrow {
    font-size:9px
  }
  .year-block {
    min-height:260px
  }
  .year-block strong {
    font-size:100px
  }
  .news-grid {
    grid-template-columns:1fr
  }
  .catalog-toolbar {
    display:block
  }
  .search {
    width:100%;
    padding:.5rem .75rem
  }
  .catalog-toolbar>.text-link {
    margin-top:1rem
  }
  .search input {
    font-size:14px
  }
  .filter-pills {
    gap:.5rem;
    margin:1rem 0
  }
  .filter-pills button {
    padding:.5rem .75rem;
    font-size:11px;
    gap:.5rem
  }
  .catalog-layout {
    grid-template-columns:1fr;
    gap:1rem
  }
  .catalog-sidebar {
    gap:.5rem
  }
  .catalog-sidebar .sidebar-help,.catalog-sidebar .sidebar-config {
    display:none
  }
  .catalog-sidebar>.eyebrow {
    display:none
  }
  .catalog-sidebar select {
    font-size:14px
  }
  .catalog-grid {
    gap:.75rem;
    grid-template-columns:1fr 1fr
  }
  .catalog-grid .product-picture {
    aspect-ratio:1.1;
    margin:.25rem
  }
  .catalog-grid .product-copy {
    padding:.75rem
  }
  .catalog-grid .product-copy h3 {
    font-size:18px;
    overflow-wrap:anywhere;
    min-height:60px
  }
  .catalog-grid .product-copy small {
    font-size:8px
  }
  .catalog-grid .card-tail {
    font-size:10px;
    gap:.25rem;
    margin-top:1rem
  }
  .catalog-grid .pill {
    font-size:8px;
    top:8px;
    left:8px
  }
  .catalog-grid .save-product {
    right:12px;
    top:12px;
    width:26px;
    height:26px;
    font-size:16px
  }
  .product-detail {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .product-detail h1 {
    font-size:38px
  }
  .product-crumb {
    font-size:10px
  }
  .detail-photo {
    aspect-ratio:1.2
  }
  .product-text>p {
    font-size:16px
  }
  .spec-table {
    font-size:12px;
    overflow-wrap:anywhere
  }
  .spec-table th,.spec-table td {
    padding:.75rem .75rem
  }
  .application-grid {
    grid-template-columns:1fr
  }
  .document-panel {
    display:block;
    padding:1.5rem
  }
  .document-panel h2 {
    font-size:32px
  }
  .document-panel .btn {
    margin-top:1.5rem
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:2rem
  }
  .contact-email {
    font-size:22px
  }
  .contact-form {
    padding:1.5rem;
    gap:1rem
  }
  .contact-form input,.contact-form select,.contact-form textarea {
    font-size:16px
  }
  .wishlist-row {
    grid-template-columns:70px 1fr;
    gap:1rem;
    padding:1rem
  }
  .wishlist-row h3 {
    font-size:20px
  }
  .wishlist-row>label {
    grid-column:2
  }
  .wishlist-row button {
    grid-column:2;
    text-align:left;
    padding:0
  }
  .wishlist-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:1rem
  }
  .empty-wishlist {
    padding:2rem 1rem
  }
  .empty-wishlist h2 {
    font-size:30px
  }
  .toast {
    max-width:90vw;
    width:max-content;
    font-size:12px
  }
  .form-note {
    font-size:11px
  }
  #config-root .wrap div[style*="grid-template-columns"] {
    grid-template-columns:minmax(0,1fr)!important
  }
  #config-root .wrap>div {
    min-width:0;
    overflow-wrap:anywhere
  }
  #config-root select {
    max-width:100%;
    min-width:0!important
  }
  #config-root .wrap {
    overflow-x:auto
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.history-panel {
  border:1px solid var(--line);
  border-radius:26px;
  background:white;
  padding:2rem
}
.history-detail strong {
  font-size:90px;
  font-weight:500;
  letter-spacing:-.06em;
  line-height:1;
  color:var(--blue);
  margin-right:1.5rem
}
.history-detail p {
  font-size:24px;
  color:var(--ink);
  margin-top:1.5rem;
  max-width:50ch;
  min-height:78px
}
.history-rail {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  border-top:1px solid var(--line);
  padding-top:1.5rem;
  margin-top:2rem
}
.history-rail button {
  border:1px solid var(--line);
  padding:.5rem 1rem;
  border-radius:100px;
  font:11px Mono
}
.history-rail button[aria-pressed="true"] {
  background:var(--blue);
  color:white;
  border-color:var(--blue)
}
.partners {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:.75rem
}
.partners span {
  display:grid;
  place-items:center;
  padding:1.5rem 1rem;
  border:1px solid var(--line);
  background:white;
  border-radius:15px;
  text-align:center;
  font-size:16px;
  letter-spacing:-.03em
}
@media(max-width:600px) {
  .history-panel {
    padding:1.5rem
  }
  .history-detail strong {
    font-size:74px
  }
  .history-detail p {
    font-size:20px
  }
  .history-rail {
    gap:.5rem
  }
  .history-rail button {
    padding:.5rem .75rem;
    font-size:10px
  }
  .partners {
    grid-template-columns:repeat(2,1fr)
  }
}
@media (max-width: 900px) {
  .mega-shell {
    position: absolute;
    top: 100%;
    max-height: calc(100dvh - 125px);
  }
}

/* Home hero — photographic composition */
.elad-hero { padding-top:1rem; padding-bottom:2rem; }
.elad-hero-stage { position:relative; isolation:isolate; overflow:hidden; border-radius:28px; background:#081c37; color:#fff; min-height:660px; }
.elad-hero-photo { position:absolute; z-index:-2; inset:0 0 0 auto; width:78%; height:100%; object-fit:cover; object-position:56% center; }
.elad-hero-stage::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#081c37 0%,rgba(8,28,55,.96) 24%,rgba(8,28,55,.70) 43%,rgba(8,28,55,.08) 74%),linear-gradient(0deg,rgba(4,20,41,.8),transparent 42%); }
.elad-hero-content { padding:2rem; position:relative; }
.elad-hero-kicker { color:#d4e0f2; font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; margin-bottom:2rem; }
.elad-hero-content h1 { font-size:clamp(76px,7.8vw,112px); font-weight:550; line-height:.96; letter-spacing:-.065em; margin-left:-.25rem; }
.elad-hero-content h1 span { color:#80b2ff; }
.elad-hero-intro { font-size:25px; line-height:1.25; letter-spacing:-.02em; color:white; margin-top:2rem; }
.elad-hero-description { max-width:360px; font-size:14px; line-height:1.65; color:#c4d1e3; margin-top:1rem; }
.elad-hero-actions { display:flex; align-items:center; gap:1.5rem; margin-top:1.5rem; }
.elad-hero-actions .btn { background:#3b82f6; padding:.75rem 1.5rem; gap:2rem; }
.elad-hero-actions .btn:hover { background:#2569d8; }
.elad-hero-link { font-size:13px; display:inline-flex; gap:.75rem; align-items:center; border-bottom:1px solid #7c8fa8; padding:.5rem 0; }
.elad-hero-link:hover { border-color:white; }
.elad-hero-caption { position:absolute; right:38px; bottom:32px; display:flex; gap:2rem; align-items:center; border-top:1px solid #ffffff55; padding-top:1rem; min-width:262px; }
.elad-hero-caption>span:first-child { font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:#d3e0f0; }
.elad-hero-caption strong { display:block; font-size:20px; text-transform:none; letter-spacing:-.02em; font-weight:500; color:white; margin-top:.25rem; }
.elad-hero-circle { width:38px; height:38px; border:1px solid #ffffff66; border-radius:50%; display:grid; place-items:center; transition:background .2s; }
.elad-hero-caption:hover .elad-hero-circle { background:#3b82f6; }
.elad-hero-origin { position:absolute; bottom:32px; left:56px; font-size:10px; letter-spacing:.04em; color:#c4d1e3; }
.elad-hero-families { display:grid; grid-template-columns:repeat(4,1fr); background:white; border:1px solid var(--line); border-radius:20px; margin:.75rem 0 0; overflow:hidden; }
.elad-hero-families a { display:grid; grid-template-columns:1fr auto; gap:.25rem .75rem; padding:1.5rem 1.5rem; position:relative; transition:background .2s; }
.elad-hero-families a+a { border-left:1px solid var(--line); }
.elad-family-code { font-size:25px; font-weight:550; letter-spacing:-.04em; color:var(--deep); }
.elad-family-name { grid-column:1; font-size:11px; color:#617087; }
.elad-family-arrow { grid-column:2; grid-row:1 / 3; align-self:center; font-size:21px; color:var(--deep); transition:transform .2s; }
.elad-hero-families a:hover { background:#edf4ff; }
.elad-hero-families a:hover .elad-family-arrow { transform:translate(2px,-2px); }
.elad-hero-stage a:focus-visible { outline-color:#a8caff; }
@media(max-width:1100px) {
  .elad-hero-content { padding-left:2rem; padding-right:2rem; }
  .elad-hero-origin { left:36px; }
  .elad-hero-caption { min-width:220px; gap:1rem; right:28px; }
  .elad-hero-families a { padding:1rem; }
}
@media(max-width:700px) {
  .elad-hero { padding-top:.75rem; padding-bottom:1rem; }
  .elad-hero-stage { border-radius:23px; min-height:740px; }
  .elad-hero-photo { width:100%; height:58%; top:auto; bottom:0; object-position:center 65%; }
  .elad-hero-stage::before { background:linear-gradient(180deg,#081c37 0%,#081c37 35%,rgba(8,28,55,.95) 46%,rgba(8,28,55,.12) 72%,rgba(8,28,55,.7) 100%); }
  .elad-hero-content { padding:2rem 1.5rem 17rem; max-width:none; }
  .elad-hero-kicker { font-size:9px; letter-spacing:.07em; margin-bottom:1.5rem; max-width:280px; }
  .elad-hero-content h1 { font-size:clamp(55px,10.8vw,76px); margin-left:-2px; }
  .elad-hero-intro { font-size:23px; margin-top:1.5rem; }
  .elad-hero-description { font-size:13px; max-width:330px; margin-top:.75rem; }
  .elad-hero-actions { gap:1rem; flex-wrap:wrap; margin-top:1.5rem; }
  .elad-hero-actions .btn { padding:.75rem 1rem; font-size:13px; gap:1.5rem; }
  .elad-hero-link { font-size:12px; }
  .elad-hero-caption { bottom:26px; left:25px; right:25px; padding-top:.75rem; justify-content:space-between; }
  .elad-hero-origin { display:none; }
  .elad-hero-families { grid-template-columns:repeat(2,1fr); border-radius:18px; margin-top:.5rem; }
  .elad-hero-families a { padding:1rem 1rem; }
  .elad-hero-families a:nth-child(3) { border-left:0; }
  .elad-hero-families a:nth-child(n+3) { border-top:1px solid var(--line); }
  .elad-family-code { font-size:22px; }
  .elad-family-name { font-size:10px; line-height:1.4; }
}

/* Modern shared navigation, homepage and footer */
:root { --bg:#f4f6fa; }
.modern-header { margin:0 auto; max-width:calc(1380px - 48px); width:calc(100% - 48px); top:12px; border:1px solid #dbe3ee; border-radius:22px; box-shadow:0 6px 24px #16325a06; }
.modern-header .nav { min-height:78px; padding:0 2rem; }
.modern-header .logo img { width:120px; }
.modern-header .nav nav { gap:1.5rem; }
.modern-header .nav nav>button { border-radius:9px; padding:.5rem .5rem; }
.modern-header .nav nav>button:hover,.modern-header .nav nav>button[aria-expanded=true] { background:#edf3fd; }
.modern-header .nav nav>.btn { border-radius:13px; padding:.75rem 1rem; }
.modern-header .mega-shell { left:0; right:0; top:calc(100% + 8px); border-radius:22px; }
body[data-page=home] .section { padding-top:4rem; padding-bottom:4rem; }
body[data-page=home] .section-title { align-items:flex-end; margin-bottom:2rem; }
body[data-page=home] .section-title h2 { font-size:clamp(34px,3.7vw,52px); }
body[data-page=home] .category-card { border:0; box-shadow:none; background:white; transition:transform .25s,box-shadow .25s; }
body[data-page=home] .category-card:hover { transform:translateY(-6px); box-shadow:0 18px 36px #183c6c0c; }
body[data-page=home] .category-top { border-bottom:1px solid #edf0f5; }
body[data-page=home] .category-card>img { mix-blend-mode:multiply; transition:transform .4s; }
body[data-page=home] .category-card:hover>img { transform:scale(1.045); }
body[data-page=home] .engineering-panel { background:#e7eef8; border:0; }
body[data-page=home] .news-grid article { border:0; border-top:1px solid #b7c9e2; background:transparent; border-radius:0; padding-left:0; padding-right:1.5rem; }
.signal-stage { min-height:690px; }
.signal-stage .elad-hero-content { padding-bottom:8rem; z-index:2; pointer-events:none; }
.signal-stage .elad-hero-content a { pointer-events:auto; }
.signal-stage .elad-hero-photo { transition:opacity .35s; }
.signal-pixels { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; opacity:.8; }
.signal-stage .elad-hero-caption { z-index:2; bottom:106px; right:32px; }
.signal-controls { position:absolute; z-index:3; left:36px; right:36px; bottom:25px; display:flex; justify-content:space-between; gap:1rem; border-top:1px solid #ffffff30; padding-top:1rem; }
.signal-scenes { display:flex; gap:.5rem; }
.signal-scenes button { color:#bdcde2; border:1px solid transparent; border-radius:11px; padding:.5rem 1rem; font:11px Mono,monospace; display:flex; align-items:center; gap:.75rem; }
.signal-scenes button span { font:13px Inter,sans-serif; }
.signal-scenes button:hover { background:#ffffff12; }
.signal-scenes button[aria-pressed=true] { color:white; background:#ffffff18; border-color:#ffffff35; }
.signal-pause { border:1px solid #ffffff40; border-radius:50%; width:38px; height:38px; color:white; font-size:15px; flex-shrink:0; }
.signal-pause:hover { background:#ffffff22; }
.modern-footer { margin:4rem 1.5rem 1.5rem; border-radius:28px; background:#091f3d; color:white; padding:0; overflow:hidden; }
.footer-invitation { padding-top:4rem; padding-bottom:4rem; display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; }
.modern-footer .eyebrow { color:#9bbce8; }
.footer-invitation h2 { font-size:clamp(46px,6vw,82px); margin-top:1rem; letter-spacing:-.055em; }
.footer-invitation h2 span { color:#80b2ff; }
.modern-footer a.footer-contact { display:flex; align-items:center; gap:2rem; color:white; font-size:16px; margin-bottom:.5rem; }
.footer-contact>span { display:grid; place-items:center; width:60px; height:60px; border:1px solid #6b85a7; border-radius:50%; font-size:28px; transition:background .2s; }
.footer-contact:hover>span { background:#3b82f6; }
.modern-footer .footer-grid { padding-top:2rem; padding-bottom:3rem; border-top:1px solid #ffffff25; gap:1.5rem; }
.modern-footer .footer-grid img { filter:brightness(0) invert(1); width:112px; margin-bottom:.5rem; }
.modern-footer h4 { color:white; font-size:14px; }
.modern-footer p,.modern-footer a { color:#aec0d8; font-size:12px; }
.modern-footer a:hover { color:white; }
.footer-signature { display:flex; align-items:center; gap:2rem; padding-top:1.5rem; padding-bottom:1.5rem; }
.footer-signature>span:first-child { font-size:clamp(80px,13vw,180px); font-weight:600; line-height:1; letter-spacing:-.065em; color:#385b86; }
.footer-signature>span:nth-child(2) { font-size:clamp(22px,3vw,40px); line-height:1.05; letter-spacing:-.04em; color:#7798c1; }
.pixel-mark { margin-left:auto; width:88px; height:88px; opacity:.6; background:repeating-conic-gradient(#70a8fa 0% 25%,transparent 0% 50%) 0/22px 22px; border-radius:4px; mask-image:linear-gradient(135deg,transparent,#000); }
.modern-footer .footer-bottom { border-color:#ffffff25; padding-top:1.5rem; padding-bottom:1.5rem; color:#93aac8; font-size:10px; }
@media(max-width:1100px) and (min-width:901px) { .modern-header .nav nav { gap:.5rem; } .modern-header .nav nav>a,.modern-header .nav nav>button { font-size:12px; } }
@media(max-width:900px) { .modern-header { width:calc(100% - 32px); top:8px; border-radius:18px; } .modern-header .nav { min-height:70px; padding:0 1rem; } .modern-header .mega-shell { max-height:calc(100dvh - 130px); } .modern-header .nav nav { gap:.25rem; left:0; right:0; border-radius:18px; top:calc(100% + 8px); } .footer-invitation { align-items:flex-start; flex-direction:column; } }
@media(max-width:700px) { body[data-page=home] .section { padding-top:2rem; padding-bottom:2rem; } .signal-stage { min-height:800px; } .signal-stage .elad-hero-content { padding-bottom:22rem; } .signal-stage .elad-hero-caption { bottom:103px; left:25px; right:25px; } .signal-controls { left:16px; right:16px; bottom:19px; gap:.25rem; } .signal-scenes { gap:2px; } .signal-scenes button { flex-direction:column; gap:.25rem; padding:.5rem .5rem; font-size:9px; } .signal-scenes button span { font-size:10px; } .signal-pause { align-self:center; width:32px; height:32px; } .signal-pixels { opacity:.6; } .modern-footer { margin:2rem .75rem .75rem; border-radius:22px; } .footer-invitation { padding-top:2rem; padding-bottom:2rem; } .modern-footer .footer-grid { gap:2rem 1rem; } .modern-footer .footer-contact { gap:1rem; } .footer-contact>span { width:46px; height:46px; } .footer-signature { gap:1rem; } .pixel-mark { width:44px; height:66px; background-size:22px 22px; } .modern-footer .footer-bottom { gap:.75rem; } }
@media(prefers-reduced-motion:reduce) { .signal-stage .elad-hero-photo,body[data-page=home] .category-card,body[data-page=home] .category-card>img { transition:none; } }

/* Fullscreen pixel film */
.fullscreen-hero { max-width:none; padding:0; margin:0; }
.fullscreen-hero .video-stage { min-height:100svh; border-radius:0; display:flex; align-items:center; background:#1d3768; }
.hero-pixel-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.fullscreen-hero .video-stage::before { background:linear-gradient(90deg,rgba(7,22,47,.94),rgba(7,22,47,.78) 32%,rgba(7,22,47,.25) 66%,rgba(7,22,47,.06)),linear-gradient(0deg,rgba(7,22,47,.55),transparent 30%); }
.fullscreen-hero .elad-hero-content { width:100%; margin:0 auto; }
.fullscreen-hero .elad-hero-content h1 { font-size:clamp(76px,8.6vw,132px); }
.fullscreen-hero .elad-hero-content h1 span { color:#96bcff; }
.fullscreen-hero .elad-hero-intro { margin-top:1.5rem; }
.fullscreen-hero .elad-hero-description { max-width:375px; }
.hero-video-bottom { position:absolute; bottom:2rem; left:2rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.hero-scroll { color:#d7e7ff; font-size:11px; letter-spacing:.06em; display:flex; align-items:center; gap:1.5rem; }
.hero-scroll span { font-size:23px; }
.video-pause { color:white; border:1px solid #ffffff70; border-radius:50%; width:40px; height:40px; background:#112c5655; }
.video-pause:hover { background:#3b82f6; }
.video-stage a:focus-visible,.video-pause:focus-visible { outline-color:#b6d5ff; }
.fullscreen-hero .elad-hero-families { max-width:1292px; margin:1rem auto 0; width:calc(100% - 88px); }
@media(max-width:700px) {
 .fullscreen-hero .video-stage { min-height:100svh; }
 .fullscreen-hero .elad-hero-content { padding:2rem; }
 .fullscreen-hero .elad-hero-content h1 { font-size:clamp(55px,13vw,82px); }
 .fullscreen-hero .elad-hero-kicker { max-width:280px; margin-bottom:1.5rem; }
 .fullscreen-hero .video-stage::before { background:linear-gradient(90deg,rgba(7,22,47,.9),rgba(7,22,47,.42)),linear-gradient(0deg,rgba(7,22,47,.6),transparent 40%); }
 .fullscreen-hero .elad-hero-description { max-width:310px; }
 .fullscreen-hero .elad-hero-families { width:calc(100% - 36px); margin-top:1rem; }
 .hero-video-bottom { left:1rempx; bottom:1rem; }
}
@media(min-width:701px) and (max-height:800px) {
 .fullscreen-hero .elad-hero-content { padding-top:7.5rem; padding-bottom:5rem; }
 .fullscreen-hero .elad-hero-content h1 { font-size:clamp(72px,12svh,106px); }
 .fullscreen-hero .elad-hero-kicker { margin-bottom:1.5rem; }
}
