/* ==========================================================================
   MetisRes - stile del sito
   Questo e' il file da modificare: colori, font, spaziature, layout.
   (assets/css/tailwind.css contiene solo reset e piccole classi di utilita':
   non serve toccarlo.)
   ========================================================================== */

/* --- Colori principali ----------------------------------------------------
   --primary = bordeaux MetisRes, --background = sabbia, --foreground = testo */
:root {
  --radius: 0.25rem;
  --background: oklch(0.952 0.021 85);
  --foreground: oklch(0.32 0 0);
  --card: oklch(0.972 0.014 85);
  --card-foreground: oklch(0.129 0.042 264.695);
  --popover: oklch(0.972 0.014 85);
  --popover-foreground: oklch(0.129 0.042 264.695);
  --metis-grey: #404040;
  --primary: oklch(0.374 0.107 28.3);
  --primary-foreground: oklch(1 0 0);
  --secondary: oklch(0.912 0.026 85);
  --secondary-foreground: oklch(0.208 0.042 265.755);
  --muted: oklch(0.912 0.026 85);
  --muted-foreground: oklch(0.45 0 0);
  --accent: oklch(0.912 0.026 85);
  --accent-foreground: oklch(0.208 0.042 265.755);
  --destructive: oklch(0.577 0.245 27.325);
  --destructive-foreground: oklch(0.984 0.003 247.858);
  --border: oklch(0.855 0.022 85);
  --input: oklch(0.855 0.022 85);
  --ring: oklch(0.704 0.04 256.788);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(0.952 0.021 85);
  --sidebar-foreground: oklch(0.129 0.042 264.695);
  --sidebar-primary: oklch(0.208 0.042 265.755);
  --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
  --sidebar-accent: oklch(0.912 0.026 85);
  --sidebar-accent-foreground: oklch(0.208 0.042 265.755);
  --sidebar-border: oklch(0.855 0.022 85);
  --sidebar-ring: oklch(0.704 0.04 256.788);
}

/* --- Stile del sito ------------------------------------------------------ */
:root {
  --hero-foreground: oklch(1 0 0);
  --control-background: oklch(0 0 0 / 27%);
  --footer-background: oklch(0.267 0.014 85);
  --footer-foreground: oklch(0.68 0 0);
  --contact-accent: oklch(0.71 0.13 177);
  --surface-subtle: oklch(0.922 0.028 85);
  --utility-bar-height: 38px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(100px + var(--utility-bar-height)); }
body { margin: 0; font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,p { margin: 0; }
h1,h2,h3,h4,h5 { font-family: var(--font-display); }
a { text-decoration: none; }
button,a { -webkit-tap-highlight-color: transparent; }
.site-header { height: 100px; background: var(--background); position: relative; z-index: 30; }
.header-inner { height: 100%; max-width: 1500px; padding: 0 5.5%; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.brand { display: flex; flex-shrink: 0; height: 92px; align-items: center; }
.brand img { height: 46px; width: auto; max-width: 340px; object-fit: contain; }
.brand-group { display: flex; align-items: center; gap: 28px; min-width: 0; }
.nav-link.about-us-link { color: var(--primary); white-space: nowrap; }
.nav-link.about-us-link:hover, .nav-link.about-us-link:focus-visible { color: var(--primary); opacity: .72; }
.nav-link.about-us-link[aria-current="page"] { color: var(--primary); opacity: 1; text-decoration: underline; text-underline-offset: 6px; }
.desktop-nav { display: flex; align-items: center; gap: 35px; }
.nav-link { font-family: var(--font-display); font-weight: 700; font-size: 14px; text-transform: uppercase; color: var(--foreground); transition: color .2s; }
.nav-link:hover,.nav-link[aria-current=page] { color: var(--primary); }
.menu-toggle { display: none; }
.utility-bar { background: var(--primary); color: var(--primary-foreground); position: relative; z-index: 31; }
.utility-inner { height: var(--utility-bar-height); max-width: 1500px; margin: auto; padding: 0 5.5%; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.utility-home { display: inline-flex; align-items: center; gap: 9px; color: var(--primary-foreground); font-family: var(--font-display); font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; opacity: .88; transition: opacity .2s; }
.utility-home:hover { opacity: 1; text-decoration: underline; text-underline-offset: 5px; }
.utility-home svg { width: 14px; height: 14px; flex-shrink: 0; }
.utility-tag { font-family: var(--font-display); font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; opacity: .72; display: inline-flex; align-items: baseline; gap: 12px; }
.tag-main { font-size: 15px; font-weight: 700; letter-spacing: .28em; opacity: 1; }
.tag-sub { font-size: 10px; font-weight: 500; letter-spacing: .18em; opacity: .72; }

.hero { height: min(860px, calc(100svh - 130px - var(--utility-bar-height))); min-height: 480px; position: relative; overflow: hidden; background: var(--footer-background); }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; }
.hero-slide.active { opacity: 1; }
.hero-image { height: 100%; width: 100%; object-fit: cover; object-position: center; }
.hero-copy { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 0 15%; color: var(--hero-foreground); }
.hero-copy h1 { font-size: 64px; font-weight: 700; line-height: 1.2; text-transform: uppercase; }
.hero-copy p { max-width: 900px; margin-top: 36px; font-size: 27px; line-height: 1.5; font-weight: 300; }
.hero-arrow { position: absolute; bottom: 28px; width: 48px; height: 60px; border-radius: 0; }
.hero-arrow svg { width: 32px; height: 32px; }
.hero-arrow.prev { right: 86px; }.hero-arrow.next { right: 30px; }
.intro { padding: 68px 3.5% 70px; }
.section-heading { text-align: center; }
.section-heading h2 { text-transform: uppercase; font-size: 34px; font-weight: 700; line-height: 1.4; }
.section-heading p { margin-top: 20px; font-size: 26px; line-height: 1.5; font-weight: 300; color: var(--muted-foreground); }
.intro-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 48px; max-width: 1500px; margin: 85px auto 0; }
.intro-column h3 { font-size: 21px; line-height: 1.5; text-transform: uppercase; padding-bottom: 16px; border-bottom: 2px solid var(--primary); margin-bottom: 30px; font-weight: 700; }
.intro-column h3 span { color: var(--primary); }
.intro-column p { font-size: 17px; color: var(--muted-foreground); line-height: 1.85; }
.section-band { padding: 17px 20px 21px; background: var(--primary); color: var(--primary-foreground); text-align: center; }
.section-band h2 { font-size: 34px; font-weight: 700; text-transform: uppercase; line-height: 1.4; }
.section-band p { font-size: 26px; margin-top: 17px; font-weight: 300; line-height: 1.5; }
.stats-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 20px; padding: 105px 4% 115px; max-width: 1600px; margin: auto; }
.stat { text-align: center; color: var(--muted-foreground); }
.stat-icon { width: 57px; height: 57px; margin: auto; stroke-width: 2.5; }
.stat strong { display: block; font-family: var(--font-display); font-size: 46px; line-height: 1.4; margin-top: 20px; font-weight: 600; }
.stat-divider { display: block; width: 30px; height: 2px; background: var(--muted-foreground); margin: 28px auto; }
.stat h3 { font-size: 15px; font-weight: 400; line-height: 1.6; text-transform: uppercase; }
.clients { overflow: hidden; padding: 35px 0; }
.client-track { display: flex; align-items: center; width: max-content; animation: clients-scroll 40s linear infinite; }
.client-track:hover { animation-play-state: paused; }
.client-logo { width: 195px; height: 115px; object-fit: contain; margin: 0 12px; }
@keyframes clients-scroll { to { transform: translateX(-50%); } }
.site-footer { background: var(--footer-background); color: var(--footer-foreground); padding: 45px 4%; font-size: 14px; line-height: 1.8; }
.footer-inner { max-width: 1500px; margin: auto; display: flex; justify-content: space-between; gap: 20px; }
.footer-policies { display: flex; gap: 12px; margin-top: 3px; }
.footer-policies a { color: inherit; border-bottom: 1px dotted var(--footer-foreground); }
.footer-contact { display: flex; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.footer-contact svg { width: 16px; height: 16px; margin-top: 6px; }
.footer-contact a { color: var(--contact-accent); }
.back-to-top { position: fixed; z-index: 40; right: 30px; bottom: 30px; height: 42px; width: 42px; border-radius: 2px; }
.page-title { background: var(--surface-subtle); padding: 45px 5%; }
.page-title h1 { text-transform: uppercase; font-size: 32px; font-weight: 700; }
.page-title p { color: var(--muted-foreground); font-size: 19px; margin-top: 10px; font-weight: 300; }
.content-wrap { max-width: 1250px; margin: auto; padding: 65px 5% 85px; }
.services-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 50px; }
.service-item h2,.contact-layout h2,.team-content h2 { font-size: 23px; text-transform: uppercase; padding-bottom: 16px; margin-bottom: 22px; border-bottom: 2px solid var(--primary); }
.service-item p,.team-content p { font-size: 17px; line-height: 1.85; color: var(--muted-foreground); }
.about-grid { margin-top: 0; }
.about-return { max-width: 1250px; margin: auto; padding: 0 5% 75px; }
.about-return a svg { width: 18px; height: 18px; margin-left: 8px; }
.service-item svg { color: var(--primary); margin-bottom: 20px; height: 34px; width: 34px; }
.work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
.work-item img { height: 260px; width: 100%; object-fit: cover; }
.work-item h2 { font-size: 23px; text-transform: uppercase; margin: 18px 0 12px; }.work-item p { line-height: 1.8; color: var(--muted-foreground); }
.contact-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: 65px; }
.contact-details { font-size: 17px; line-height: 2; }.contact-details a { color: var(--primary); }
.contact-founders { margin-top: 42px; }.contact-founders h2 { margin-top: 0; }.contact-founders p { font-size: 18px; font-weight: 600; color: var(--foreground); line-height: 1.9; }
.contact-location { min-height: 300px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 18px; background: var(--surface-subtle); text-align: center; padding: 30px; }.contact-location svg { color: var(--primary); height: 48px; width: 48px; }
.team-content { max-width: 850px; }.team-content h2:not(:first-child) { margin-top: 45px; }.position-link { display: block; color: var(--primary); padding: 15px 0; font-size: 18px; border-bottom: 1px solid var(--border); }
@media (min-width: 1600px) {
 .utility-inner { max-width: none; padding: 0 5.5% 0 15%; }.site-header { height: 140px; }.header-inner { max-width: none; padding: 0 5.5% 0 15%; }.brand { height: 130px; }.brand img { height: 62px; max-width: 400px; }.desktop-nav { gap: 48px; }.nav-link { font-size: 20px; }
 .hero { height: calc(100svh - 175px - var(--utility-bar-height)); max-height: 960px; }.hero-copy h1 { font-size: 90px; }.hero-copy p { font-size: 36px; max-width: 1150px; margin-top: 46px; }
 .intro { padding-top: 95px; padding-bottom: 90px; }.section-heading h2,.section-band h2 { font-size: 46px; }.section-heading p,.section-band p { font-size: 34px; }.intro-grid { max-width: none; gap: 68px; margin-top: 125px; }.intro-column h3 { font-size: 29px; }.intro-column p { font-size: 23px; }.intro-column h3 { margin-bottom: 44px; }
 .stats-grid { padding-top: 145px; padding-bottom: 155px; max-width: none; }.stat-icon { width: 77px; height: 77px; }.stat strong { font-size: 62px; }.stat h3 { font-size: 21px; }.stat-divider { margin: 38px auto; width: 43px; }.client-logo { width: 240px; height: 170px; }.clients { padding: 45px 0; }.site-footer { font-size: 20px; padding: 65px 4%; }.footer-inner { max-width: none; }
}
@media (max-width: 900px) {
 .utility-inner { padding: 0 4%; }.header-inner { padding: 0 4%; }.desktop-nav { gap: 22px; }.brand img { height: 40px; }.hero-copy { padding: 0 12%; }.hero-copy h1 { font-size: 52px; }.hero-copy p { font-size: 24px; }.intro-grid { gap: 28px; }.intro-column h3 { font-size: 17px; }.intro-column p { font-size: 16px; }
 .footer-inner { flex-direction: column; gap: 22px; }
}
@media (max-width: 640px) {
 .site-header { height: 85px; }.brand { height: 78px; }.brand img { height: 34px; }.menu-toggle { display: inline-flex; }.desktop-nav { display: none; position: absolute; top: 85px; left: 0; right: 0; background: var(--background); padding: 12px 5% 24px; border-top: 1px solid var(--border); }.desktop-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }.nav-link { padding: 14px 0; font-size: 14px; }
 .brand-group { gap: 12px; }
 :root { --utility-bar-height: 32px; }.utility-inner { padding: 0 6%; }.utility-tag { display: none; }.utility-home { font-size: 11px; letter-spacing: .07em; gap: 7px; }

 .hero { height: calc(100svh - 120px - var(--utility-bar-height)); min-height: 440px; max-height: 690px; }.hero-copy { padding: 0 13%; }.hero-copy h1 { font-size: 40px; }.hero-copy p { font-size: 21px; margin-top: 25px; }.hero-arrow { width: 33px; height: 48px; bottom: 14px; }.hero-arrow svg { width: 26px; height: 26px; }.hero-arrow.prev { right: 54px; }.hero-arrow.next { right: 14px; }
 .intro { padding: 48px 6% 55px; }.section-heading h2,.section-band h2 { font-size: 27px; }.section-heading p,.section-band p { font-size: 22px; }.intro-grid { grid-template-columns: 1fr; gap: 40px; margin-top: 50px; }.intro-column h3 { font-size: 20px; margin-bottom: 21px; }.intro-column p { font-size: 17px; }
 .section-band { padding: 23px 6%; }.section-band p { margin-top: 12px; }.stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 55px 6%; gap: 45px 20px; }.stat:last-child { grid-column: 1 / -1; }.stat-icon { width: 47px; height: 47px; }.stat strong { font-size: 39px; margin-top: 12px; }.stat-divider { margin: 19px auto; }.stat h3 { font-size: 13px; }.client-logo { width: 155px; height: 100px; }.clients { padding: 25px 0; }.site-footer { padding: 35px 6%; }.back-to-top { right: 15px; bottom: 15px; }
 .page-title { padding: 32px 6%; }.page-title h1 { font-size: 28px; }.content-wrap { padding: 45px 6% 65px; }.services-grid,.work-grid,.contact-layout { grid-template-columns: 1fr; gap: 35px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.client-track { animation: none; }.hero-slide { transition: none; } }

/* The entry experience is isolated from the original Engineering styles. */
:root {
  --entry-shade-top: oklch(0.13 0.012 250 / 30%);
  --entry-shade-bottom: oklch(0.13 0.012 250 / 55%);
}
.entry-header { height: 112px; padding: 20px 5%; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border); }
.entry-header img { height: 48px; width: auto; max-width: 300px; }
.entry-page { padding: 28px 3% 0; }
.entry-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.entry-control { color: var(--hero-foreground); border-radius: 0; overflow: hidden; background: var(--footer-background); text-align: left; }
.entry-control-size { padding: 0; width: 100%; height: auto; white-space: normal; }
.entry-choice { position: relative; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 400px; height: calc(100svh - 218px); max-height: 850px; }
.entry-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.entry-shade { position: absolute; inset: 0; background: linear-gradient(180deg,var(--entry-shade-top),var(--entry-shade-bottom)); }
.entry-label { position: relative; display: flex; align-items: center; justify-content: center; text-align: center; gap: 18px; width: 100%; padding: 40px 30px; font-family: var(--font-display); font-size: 30px; font-weight: 600; line-height: 1.35; }
.entry-label > span { min-width: 0; overflow-wrap: anywhere; }
.entry-label-stack { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.entry-label-main { font-family: var(--font-display); font-size: clamp(34px, 5vw, 68px); line-height: .95; font-weight: 700; letter-spacing: .04em; }
.entry-label-sub { font-family: var(--font-display); font-size: clamp(11px, 1.1vw, 16px); line-height: 1.3; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; opacity: .8; }
.entry-arrow { position: absolute; right: 30px; bottom: 28px; z-index: 1; display: flex; align-items: center; justify-content: center; width: 48px; height: 60px; background: var(--control-background); color: var(--hero-foreground); }
.entry-arrow svg { width: 30px; height: 30px; }
.entry-choice:hover .entry-image { transform: scale(1.025); }
.entry-choice:focus-visible { outline: 3px solid var(--primary); outline-offset: 5px; }
.entry-signature { display: flex; justify-content: space-between; gap: 20px; padding: 24px 0; color: var(--muted-foreground); font-size: 13px; }
.critical-entry { min-height: calc(100svh - 112px); display: flex; align-items: center; padding: 80px 8%; background: var(--surface-subtle); }
.critical-entry-content { width: 100%; max-width: 1000px; }
.critical-entry h1 { font-size: 46px; line-height: 1.3; font-weight: 600; overflow-wrap: anywhere; }
.critical-rule { background: var(--primary); width: 60px; height: 3px; margin: 35px 0; }
.critical-entry p { font-size: 19px; color: var(--muted-foreground); }
.critical-return { margin-top: 40px; padding-left: 0; }
@media (max-width: 1000px) {
 .entry-label { font-size: 22px; padding: 26px 20px; gap: 10px; }
 .entry-arrow { right: 22px; bottom: 20px; width: 42px; height: 54px; }.entry-arrow svg { width: 24px; height: 24px; }
}
@media (max-width: 640px) {
 .entry-header { height: 90px; padding: 16px 6%; }.entry-header img { height: 38px; }
 .entry-header .about-us-link { font-size: 12px; }
 .entry-page { padding: 16px 4% 0; }.entry-choices { grid-template-columns: 1fr; gap: 16px; }
 .entry-choice { min-height: 245px; height: calc((100svh - 200px) / 2); max-height: 400px; }
 .entry-label { font-size: 22px; padding: 26px 22px; }.entry-signature { font-size: 12px; padding: 20px 0; }
 .entry-arrow { right: 14px; bottom: 14px; width: 33px; height: 48px; }.entry-arrow svg { width: 20px; height: 20px; }
 .critical-entry { min-height: calc(100svh - 90px); padding: 55px 6%; }.critical-entry h1 { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) { .entry-image { transition: none; }.entry-choice:hover .entry-image { transform: none; } }
/* Critical Infrastructures & AI landing */
.ai-brand-bar { border-bottom: 1px solid var(--border); }
.ai-brand-bar .header-inner { max-width: none; padding: 0 8%; }
.ai-hero { padding: 70px 8% 60px; background: var(--surface-subtle); }
.ai-hero h1 { font-weight: 600; overflow-wrap: anywhere; text-align: center; }
.ai-hero .critical-rule { margin-left: auto; margin-right: auto; }
.ai-hero-main { display: block; font-size: clamp(58px, 8vw, 100px); line-height: .95; font-weight: 700; letter-spacing: .02em; }
.ai-hero-sub { display: block; margin-top: 18px; font-size: clamp(14px, 1.6vw, 20px); font-weight: 600; letter-spacing: .32em; text-transform: uppercase; color: var(--muted-foreground); }
.ai-services { list-style: none; padding: 0; margin: 10px 0 0; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 14px; }
.ai-service { display: flex; align-items: center; justify-content: center; text-align: center; gap: 10px; min-height: 110px; height: 100%; padding: 22px; font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.35; border: 1px solid var(--border); transition: background .2s ease, transform .2s ease, box-shadow .2s ease; }
.ai-service svg { width: 22px; height: 22px; flex-shrink: 0; }
.ai-service-active { position: relative; overflow: hidden; background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
.ai-service-active:hover, .ai-service-active:focus-visible { background: oklch(0.46 0.13 28.3); border-color: oklch(0.46 0.13 28.3); transform: translateY(-2px); box-shadow: 0 10px 22px rgb(0 0 0 / .18); }
.ai-service-active:focus-visible { outline: 3px solid var(--primary); outline-offset: 4px; }
.ai-service-inactive { background: transparent; color: oklch(0.58 0.008 85); border-color: oklch(0.8 0.018 85); cursor: default; user-select: none; display: grid; place-items: center; }
.ai-service-name, .ai-service-soon { grid-area: 1 / 1; transition: opacity .2s ease; }
.ai-service-soon { opacity: 0; color: var(--primary); letter-spacing: .06em; }
.ai-service-inactive:hover .ai-service-name, .ai-service-inactive:focus-within .ai-service-name { opacity: 0; }
.ai-service-inactive:hover .ai-service-soon, .ai-service-inactive:focus-within .ai-service-soon { opacity: 1; }
.ai-service-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.ai-about { padding: 70px 8% 90px; }
.ai-about-inner { max-width: 1100px; }
.ai-about h2 { color: var(--primary); font-size: 30px; font-weight: 600; margin-bottom: 20px; }
.ai-about-lead { font-size: 18px; line-height: 1.75; max-width: 900px; }
.ai-about h3 { font-size: 22px; font-weight: 600; margin: 50px 0 22px; }
.ai-competencies { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ai-competencies article { border-top: 3px solid var(--primary); padding-top: 18px; }
.ai-competencies h4 { font-size: 17px; font-weight: 600; margin-bottom: 10px; }
.ai-competencies p { color: var(--muted-foreground); line-height: 1.7; }
@media (max-width: 1100px) { .ai-services { grid-template-columns: repeat(2,minmax(0,1fr)); } .ai-services li:first-child { grid-column: 1 / -1; } .ai-competencies { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .ai-hero { padding: 45px 6%; } .ai-hero-main { font-size: 46px; } .ai-hero-sub { font-size: 12px; letter-spacing: .22em; margin-top: 12px; } .ai-services { grid-template-columns: 1fr; } .ai-service { min-height: 72px; font-size: 17px; } .ai-about { padding: 50px 6% 70px; } .ai-about-lead { font-size: 16px; } }
/* AeroCert page */
.aero-inner { max-width: 1200px; margin: 0 auto; }
.aero-hero { padding: 50px 8% 80px; background: var(--footer-background); color: var(--hero-foreground); }
.aero-back { color: var(--hero-foreground); padding-left: 0; margin-bottom: 40px; }
.aero-back .back-main { font-size: 17px; font-weight: 700; letter-spacing: .16em; }
.aero-back .back-sub { font-size: 12px; font-weight: 500; letter-spacing: .14em; opacity: .7; }
.aero-headline { font-size: clamp(30px, 5vw, 58px); line-height: 1.15; font-weight: 700; letter-spacing: .01em; max-width: 1000px; overflow-wrap: anywhere; }
.aero-tagline { margin-top: 26px; font-size: clamp(17px, 2vw, 22px); line-height: 1.6; max-width: 820px; opacity: .85; }
.aero-product { padding: 80px 8% 90px; }
.aero-product-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: start; }
.aero-eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--primary); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; font-size: 14px; }
.aero-eyebrow svg { width: 18px; height: 18px; }
.aero-name { font-size: clamp(44px, 7vw, 80px); font-weight: 700; line-height: 1.05; margin: 14px 0 12px; color: var(--primary); }
.aero-subtitle { font-family: var(--font-display); font-size: clamp(15px, 1.6vw, 19px); font-weight: 600; letter-spacing: .1em; }
.aero-description { font-size: 18px; line-height: 1.75; }
.aero-swiss { background: var(--surface-subtle); border-left: 4px solid var(--primary); padding: 34px 32px; }
.aero-swiss svg { width: 36px; height: 36px; color: var(--primary); margin-bottom: 16px; }
.aero-swiss p { font-size: 17px; line-height: 1.75; }
.aero-foca { display: flex; gap: 16px; align-items: center; justify-content: center; text-align: center; font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--muted-foreground); }
.aero-foca-icon { flex-shrink: 0; display: inline-flex; }
.aero-foca-icon svg { width: 28px; height: 28px; color: var(--primary); }
@media (max-width: 640px) { .aero-foca { flex-direction: column; gap: 10px; } .aero-wide .aero-foca { margin-bottom: 30px; } }
@media (max-width: 900px) { .aero-product-grid { grid-template-columns: 1fr; gap: 36px; } }
@media (max-width: 640px) { .aero-hero { padding: 30px 6% 55px; } .aero-back { margin-bottom: 26px; } .aero-product { padding: 50px 6% 60px; } .aero-swiss { padding: 26px 22px; } .aero-description, .aero-swiss p { font-size: 16px; } }
/* AeroCert section 2 */
.aero-arch { padding: 80px 8%; background: var(--surface-subtle); }
.aero-section-title { font-size: clamp(28px, 4vw, 44px); font-weight: 700; line-height: 1.2; margin: 10px 0 18px; }
.aero-section-lead { font-size: 18px; line-height: 1.75; max-width: 860px; }
.aero-arch .aero-eyebrow { display: flex; justify-content: center; }
.aero-arch .aero-section-title { text-align: center; font-size: clamp(22px, 2.6vw, 32px); }
.aero-arch .aero-section-lead { text-align: center; margin: 0 auto 26px; font-size: clamp(19px, 1.9vw, 23px); max-width: 980px; }
.aero-arch .aero-section-lead strong { font-weight: 700; color: var(--foreground); }
@media (max-width: 640px) { .aero-arch .aero-section-lead { font-size: 18px; } }
.aero-arch-checks { text-align: center; margin: 0 0 36px; }
.aero-arch-checks::before { content: ""; display: block; width: 72px; height: 3px; background: var(--primary); margin: 0 auto 22px; }

.aero-arch-checks .aero-checks { max-width: 780px; margin: 0 auto; justify-items: center; }
.aero-arch .aero-layers { margin-left: auto; margin-right: auto; }
.aero-arch .aero-swiss { max-width: 720px; margin: 0 auto; background: var(--background); border: 1px solid var(--border); border-left: 4px solid var(--primary); }



.aero-layers { list-style: none; padding: 0; margin: 40px 0 50px; display: grid; gap: 8px; max-width: 720px; }
.aero-layers li { display: flex; align-items: center; gap: 18px; padding: 18px 22px; background: var(--background); border: 1px solid var(--border); font-family: var(--font-display); font-weight: 600; font-size: 18px; }
.aero-layers li:last-child { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
.aero-layer-num { font-size: 13px; letter-spacing: .1em; opacity: .7; min-width: 26px; }
.aero-two-col { display: grid; grid-template-columns: 1.3fr 1fr; gap: 50px; align-items: start; }
.aero-h3 { font-size: 21px; font-weight: 600; margin-bottom: 18px; }
.aero-checks { list-style: none; padding: 0; display: grid; gap: 12px; }
.aero-checks li { position: relative; padding-left: 26px; line-height: 1.6; font-size: 16px; }
.aero-checks li::before { content: ""; position: absolute; left: 0; top: .55em; width: 12px; height: 3px; background: var(--primary); }
.aero-isolation { padding: 80px 8% 100px; }
.aero-iso-key { font-size: clamp(18px, 2vw, 22px); font-weight: 600; color: var(--primary); line-height: 1.5; max-width: 860px; }
.aero-isolation .aero-section-title { text-align: center; }
.aero-iso-key { text-align: center; margin-left: auto; margin-right: auto; }

.aero-companies { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; margin: 36px auto; max-width: 720px; }
.aero-companies > div:not(.aero-divider) { border: 2px solid var(--primary); padding: 22px; display: grid; gap: 4px; text-align: center; }
.aero-companies span { color: var(--muted-foreground); font-size: 14px; }
.aero-divider { font-size: 28px; color: var(--primary); }
.aero-points { list-style: none; padding: 0; margin: 34px auto 0; display: grid; gap: 18px; max-width: 900px; counter-reset: pt; }
.aero-points li { position: relative; line-height: 1.75; font-size: 16px; padding-left: 46px; }
.aero-points li::before { counter-increment: pt; content: counter(pt); position: absolute; left: 0; top: 3px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in oklab, var(--primary) 10%, transparent); color: var(--primary); font-family: var(--font-display); font-weight: 700; font-size: 14px; }

.aero-iso-note { margin-top: 26px; max-width: 900px; line-height: 1.75; color: var(--muted-foreground); }
.aero-isolation .aero-iso-note { color: var(--primary); text-align: center; margin-left: auto; margin-right: auto; }

@media (max-width: 900px) { .aero-two-col { grid-template-columns: 1fr; gap: 36px; } }
@media (max-width: 640px) { .aero-arch, .aero-isolation { padding: 55px 6%; } .aero-section-lead { font-size: 16px; } .aero-layers li { font-size: 16px; padding: 14px 16px; } .aero-companies { grid-template-columns: 1fr; } .aero-divider { text-align: center; } }
/* AeroCert section 3 */
.aero-founding { padding: 80px 8%; background: var(--surface-subtle); border-top: 1px solid var(--border); }
.aero-conditions { list-style: none; padding: 0; margin: 30px 0 36px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: stretch; max-width: 1000px; counter-reset: cond; }
.aero-conditions li:not(.aero-amp) { counter-increment: cond; background: var(--background); border: 1px solid var(--border); border-top: 3px solid var(--primary); padding: 24px; font-size: 17px; line-height: 1.6; font-weight: 600; }
.aero-conditions li:not(.aero-amp)::before { content: counter(cond); display: block; color: var(--primary); font-family: var(--font-display); font-size: 28px; font-weight: 700; margin-bottom: 8px; }
.aero-amp { align-self: center; font-size: 34px; font-weight: 700; color: var(--primary); }
.aero-founding .aero-eyebrow { display: flex; justify-content: center; }
.aero-founding .aero-section-title, .aero-founding .aero-section-lead { text-align: center; }
.aero-founding .aero-section-lead { margin-left: auto; margin-right: auto; }
.aero-founding .aero-conditions { margin-left: auto; margin-right: auto; }
.aero-founding .aero-conditions li:not(.aero-amp) { text-align: center; }
.aero-founding .aero-found-lead { font-size: clamp(20px, 2.1vw, 26px); line-height: 1.6; color: var(--foreground); font-weight: 500; }
.aero-founding .aero-found-note { font-size: clamp(20px, 2.1vw, 26px); line-height: 1.6; color: var(--foreground); text-align: center; margin: 0 auto; }
.aero-text-rule { border: 0; border-top: 2px solid var(--primary); width: 96px; margin: 30px auto; }

.aero-solution { padding: 70px 8%; background: var(--primary); color: var(--primary-foreground); }
.aero-solution .aero-eyebrow { display: flex; justify-content: center; color: var(--primary-foreground); opacity: .8; }
.aero-solution .aero-section-title { text-align: center; }
.aero-solution .sym-icon { display: grid; margin-left: auto; margin-right: auto; background: color-mix(in oklab, var(--primary-foreground) 16%, transparent); color: var(--primary-foreground); }
.aero-solution .aero-solution-text { text-align: center; margin-left: auto; margin-right: auto; }
.aero-solution-text { font-family: var(--font-display); font-size: clamp(22px, 3vw, 34px); font-weight: 600; line-height: 1.35; max-width: 900px; }
.aero-pillars-sec { padding: 80px 8%; }
.aero-pillars { list-style: none; padding: 0; margin-top: 30px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; counter-reset: pil; }
.aero-pillars li { counter-increment: pil; border: 1px solid var(--border); border-left: 4px solid var(--primary); padding: 28px; }
.aero-pillars h3::before { content: counter(pil) ". "; color: var(--primary); }
.aero-pillars h3 { font-size: 18px; font-weight: 700; line-height: 1.4; margin-bottom: 12px; }
.aero-pillars p { color: var(--muted-foreground); font-size: 14px; letter-spacing: .03em; line-height: 1.7; margin-top: 6px; }
.aero-chars { padding: 80px 8% 100px; background: var(--footer-background); color: var(--hero-foreground); }
.aero-chars .aero-eyebrow { color: var(--hero-foreground); opacity: .7; }
.aero-char-grid { list-style: none; padding: 0; margin-top: 30px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.aero-char-grid li { border-top: 2px solid var(--primary); padding: 18px 4px 0; line-height: 1.6; font-size: 16px; }
@media (max-width: 1000px) { .aero-char-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .aero-conditions { grid-template-columns: 1fr; } .aero-amp { text-align: center; } .aero-pillars { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .aero-founding, .aero-solution, .aero-pillars-sec, .aero-chars { padding: 55px 6%; } .aero-char-grid { grid-template-columns: 1fr; } .aero-pillars li { padding: 22px; } }
/* AeroCert section 4 */
.aero-compare { padding: 80px 8% 100px; }
.aero-table { width: 100%; border-collapse: collapse; margin-top: 30px; font-size: 16px; line-height: 1.55; }
.aero-table thead th { text-align: left; padding: 16px 20px; font-family: var(--font-display); font-weight: 600; background: var(--footer-background); color: var(--hero-foreground); }
.aero-table thead th:last-child { background: var(--primary); color: var(--primary-foreground); }
.aero-table tbody th, .aero-table td { padding: 18px 20px; vertical-align: top; border-bottom: 1px solid var(--border); text-align: left; }
.aero-table tbody th { width: 22%; font-weight: 700; }
.aero-table td { width: 39%; color: var(--muted-foreground); }
.aero-table .aero-td-us { background: var(--surface-subtle); color: var(--foreground); font-weight: 600; border-left: 3px solid var(--primary); }
@media (max-width: 760px) {
  .aero-compare { padding: 55px 6%; }
  .aero-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .aero-table, .aero-table tbody, .aero-table tr, .aero-table th, .aero-table td { display: block; width: 100%; }
  .aero-table tr { margin-bottom: 18px; border: 1px solid var(--border); }
  .aero-table tbody th { background: var(--footer-background); color: var(--hero-foreground); border: 0; }
  .aero-table td::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--primary); margin-bottom: 4px; }
  .aero-table .aero-td-us { border-left: 0; border-top: 3px solid var(--primary); border-bottom: 0; }
}
/* AeroCert section 5 */
.aero-problems { padding: 80px 8%; background: var(--surface-subtle); }
.aero-problem-list { list-style: none; padding: 0; display: grid; gap: 0; background: var(--background); border: 1px solid var(--border); }
.aero-problem-list li { display: flex; gap: 14px; align-items: flex-start; padding: 15px 20px; border-bottom: 1px solid var(--border); line-height: 1.55; }
.aero-problem-list li:last-child { border-bottom: 0; }
.aero-problem-list svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; color: var(--primary); }
.aero-advantages { padding: 80px 8% 100px; }
.aero-adv-grid { list-style: none; padding: 0; margin-top: 30px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.aero-adv-grid li { border: 1px solid var(--border); padding: 26px; }
.aero-adv-grid svg { width: 26px; height: 26px; color: var(--primary); margin-bottom: 14px; }
.aero-adv-grid h3 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.aero-adv-grid p { color: var(--muted-foreground); line-height: 1.65; }
@media (max-width: 1000px) { .aero-adv-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .aero-problems, .aero-advantages { padding: 55px 6%; } .aero-adv-grid { grid-template-columns: 1fr; } .aero-adv-grid li { padding: 22px; } }
/* AeroCert section 6 */
.aero-modules { padding: 80px 8% 110px; background: var(--surface-subtle); }
.aero-modules-intro { font-family: var(--font-display); font-size: clamp(18px, 2vw, 23px); line-height: 1.6; max-width: 950px; border-left: 4px solid var(--primary); padding-left: 22px; }
.aero-module-grid { list-style: none; padding: 0; margin-top: 40px; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 18px; counter-reset: mod; }
.aero-module-grid li { counter-increment: mod; grid-column: span 2; background: var(--background); border: 1px solid var(--border); border-top: 3px solid var(--primary); padding: 26px; }
.aero-module-grid li.aero-module-wide { grid-column: span 3; }
.aero-module-grid h3::before { content: "Module " counter(mod); display: block; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--primary); margin-bottom: 10px; }
.aero-module-grid h3 { font-size: 18px; font-weight: 700; line-height: 1.4; }
.aero-module-grid p { margin-top: 10px; color: var(--muted-foreground); line-height: 1.7; }
@media (max-width: 900px) { .aero-module-grid { grid-template-columns: 1fr; } .aero-module-grid li, .aero-module-grid li.aero-module-wide { grid-column: auto; } }
@media (max-width: 640px) { .aero-modules { padding: 55px 6% 70px; } .aero-module-grid li { padding: 22px; } }
/* AeroCert section navigation */
.aero-subnav { position: sticky; top: 0; z-index: 30; background: var(--metis-grey); border-bottom: 2px solid var(--primary); padding: 0 8%; }
.aero-subnav-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 28px; min-height: 58px; }
.aero-subnav-brand { font-family: var(--font-display); font-weight: 700; color: var(--primary-foreground); font-size: 18px; letter-spacing: .04em; transition: opacity .2s; }
.aero-subnav-brand:hover { opacity: .78; }
.aero-subnav-mobile a { display: block; padding: 12px 0; font-size: 14px; font-weight: 500; color: var(--muted-foreground); border-bottom: 1px solid var(--border); }
.aero-subnav-mobile a:hover { color: var(--foreground); }
.aero-subnav-mobile { margin-left: auto; position: relative; }
.aero-subnav-mobile summary { cursor: pointer; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid color-mix(in oklab, var(--primary-foreground) 32%, transparent); color: var(--primary-foreground); background: transparent; font-size: 14px; font-weight: 600; list-style: none; white-space: nowrap; transition: border-color .2s, background-color .2s; }
.aero-subnav-mobile summary::after { content: "\25BE"; color: color-mix(in oklab, var(--primary) 45%, var(--primary-foreground)); font-size: 12px; }
.aero-subnav-mobile summary:hover { border-color: var(--primary-foreground); background: color-mix(in oklab, var(--primary-foreground) 10%, transparent); color: var(--primary-foreground); }
.aero-subnav-mobile summary:focus-visible { outline: 2px solid var(--primary-foreground); outline-offset: 2px; }
.aero-subnav-mobile ul { position: absolute; right: 0; top: calc(100% + 8px); width: min(320px, 88vw); list-style: none; margin: 0; padding: 6px 16px; background: var(--background); border: 1px solid var(--border); border-top: 2px solid var(--primary); box-shadow: 0 12px 30px -12px color-mix(in oklab, var(--foreground) 30%, transparent); }
.aero-subnav-mobile li:last-child a { border-bottom: 0; }
.aero-subnav-mobile a.is-active { color: var(--primary); }
.aero-explore { padding: 70px 8% 90px; background: var(--surface-subtle); }
.aero-explore-grid { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.aero-explore-card { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 24px; background: var(--background); border: 1px solid var(--border); border-top: 3px solid var(--primary); transition: border-color .2s, transform .2s; }
.aero-explore-card:hover { transform: translateY(-2px); border-color: var(--primary); }
.aero-explore-num { color: var(--primary); font-weight: 700; font-size: 13px; letter-spacing: .08em; }
.aero-explore-card h3 { font-size: 19px; font-weight: 600; }
.aero-explore-card p { color: var(--muted-foreground); line-height: 1.6; flex: 1; }
.aero-explore-go { display: inline-flex; align-items: center; gap: 6px; color: var(--primary); font-weight: 600; font-size: 14px; }
.aero-explore-go svg { width: 16px; height: 16px; }
@media (max-width: 640px) { .aero-subnav { padding: 0 6%; } .aero-explore { padding: 50px 6% 70px; } }

/* Refinement polish */
.entry-choice { overflow: hidden; border-radius: 4px; box-shadow: 0 24px 50px -28px oklch(0.13 0.012 250 / 55%); transition: box-shadow .4s ease, transform .4s ease; }
.entry-choice:hover { box-shadow: 0 30px 60px -26px color-mix(in oklab, var(--primary) 55%, transparent); transform: translateY(-3px); }
.entry-image { transition: transform 1.2s cubic-bezier(.2,.7,.2,1) !important; }
.entry-label { letter-spacing: .06em; }
.entry-arrow svg { transition: transform .35s ease; }
.entry-choice:hover .entry-arrow svg { transform: translate(4px,-4px); }
html { scroll-behavior: smooth; }
::selection { background: var(--primary); color: var(--primary-foreground); }

/* Context photos & symbols */
.photo-figure { position: relative; margin: 36px auto; max-width: 1100px; border-radius: 6px; overflow: hidden; box-shadow: 0 18px 40px -24px color-mix(in oklab, var(--foreground) 45%, transparent); }
.photo-figure img { display: block; width: 100%; height: clamp(200px, 34vw, 420px); object-fit: cover; }
.photo-figure figcaption { position: absolute; left: 0; bottom: 0; display: flex; align-items: center; gap: 12px; padding: 12px 18px; background: color-mix(in oklab, var(--primary) 88%, transparent); color: var(--primary-foreground); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; border-top-right-radius: 6px; }
.photo-badge { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid color-mix(in oklab, var(--primary-foreground) 60%, transparent); border-radius: 50%; }
.photo-badge svg { width: 16px; height: 16px; }
.photo-wrap { padding: 0 20px; }
.sym-icon { display: inline-grid; place-items: center; width: 46px; height: 46px; margin-bottom: 14px; border-radius: 50%; background: color-mix(in oklab, var(--primary) 10%, transparent); color: var(--primary); }
.sym-icon svg { width: 22px; height: 22px; margin: 0; }
.ai-service-text { position: relative; z-index: 1; display: inline-block; white-space: nowrap; text-align: center; }
.ai-service-label { position: relative; display: inline-block; text-align: center; }
.ai-service-line { position: relative; display: inline-block; }
.ai-service-sub { display: block; margin-top: 7px; font-size: 17px; font-weight: 500; letter-spacing: .1em; text-transform: none; opacity: .82; }
@media (max-width: 640px) { .ai-service-sub { font-size: 14px; margin-top: 6px; } }
.ai-service-flight { position: absolute; top: 50%; left: 0; z-index: 2; width: 20px; height: 20px; opacity: 0; pointer-events: none; transform: translate(-50%, -50%); }
.ai-service-flight svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--primary-foreground); filter: drop-shadow(0 0 1.5px var(--primary)) drop-shadow(0 2px 4px rgb(0 0 0 / .3)); }
@media (max-width: 640px) { .ai-service-flight, .ai-service-flight svg { width: 15px; height: 15px; } }
.ai-service-active:hover .ai-service-flight, .ai-service-active:focus-visible .ai-service-flight { animation: plane-glide .42s linear forwards; }
@keyframes plane-glide {
  0% { opacity: 0; left: 0; transform: translate(-50%, -50%); animation-timing-function: linear; }
  10% { opacity: 1; animation-timing-function: linear; }
  80% { left: calc(100% - 3px); transform: translate(-50%, -50%); animation-timing-function: ease-out; }
  100% { opacity: 1; left: calc(100% + 12px); transform: translate(-50%, -95%); }
}
@media (prefers-reduced-motion: reduce) { .ai-service-flight { display: none; } }

/* Ampersand between "AI" and "Critical Infrastructures" — plain text, sized like the smaller line */
.ai-amp { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-family: var(--font-display); line-height: 1; letter-spacing: 0; text-transform: none; }
.utility-tag .ai-amp { align-self: baseline; font-size: 10px; font-weight: 500; opacity: .72; }
.aero-back .ai-amp { font-size: 12px; font-weight: 500; opacity: .7; }
.entry-label-stack .ai-amp { font-size: clamp(11px, 1.1vw, 16px); font-weight: 600; opacity: .8; }
.ai-hero .ai-amp { color: var(--primary); font-size: clamp(14px, 1.6vw, 20px); font-weight: 600; margin: 12px auto 0; }
.ai-hero .ai-hero-sub { margin-top: 10px; }
@media (max-width: 640px) { .ai-hero .ai-amp { font-size: 12px; margin-top: 8px; } .ai-hero .ai-hero-sub { margin-top: 8px; } }

/* AeroCert redesign: horizontal panels, wider text, compact routine subsection */
.aero-product { padding: 36px 6% 56px; }
.aero-inner { max-width: 1280px; }
.aero-back { margin-bottom: 28px; }
.aero-product-grid { grid-template-columns: 1.4fr 1fr; gap: 56px; }
.aero-description, .aero-section-lead, .aero-iso-note, .aero-iso-key, .aero-points, .aero-solution-text, .aero-modules-intro { max-width: 1100px; }
.aero-routine { padding: 0; }
.aero-routine-title { font-family: var(--font-display); font-size: clamp(20px, 2.2vw, 28px); font-weight: 700; letter-spacing: .04em; color: var(--primary); line-height: 1.3; }
.aero-routine-text { margin-top: 16px; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.65; max-width: 1100px; }
.aero-panels { border-top: 1px solid var(--border); scroll-margin-top: 80px; }
.aero-panels-bar { display: flex; align-items: center; gap: 14px; padding: 18px 6%; max-width: calc(1280px + 12%); margin: 0 auto; }
.aero-panels-steps { flex: 1; display: flex; gap: 6px; list-style: none; padding: 0; margin: 0; min-width: 0; }
.aero-panels-steps li { flex: 1; min-width: 0; }
.aero-panels-steps button { width: 100%; display: flex; align-items: baseline; gap: 8px; padding: 10px 4px 8px; border-bottom: 3px solid var(--border); text-align: left; color: var(--muted-foreground); font-size: 14px; font-weight: 600; transition: color .2s, border-color .2s; cursor: pointer; }
.aero-panels-steps button:hover { color: var(--foreground); }
.aero-panels-steps button.is-active { color: var(--primary); border-color: var(--primary); }
.aero-panels-num { font-family: var(--font-display); font-size: 12px; letter-spacing: .08em; }
.aero-panels-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aero-panels-arrow { flex-shrink: 0; border-radius: 999px; color: var(--primary); }
.aero-panels-viewport { overflow: hidden; touch-action: pan-y; }
.aero-panel { animation: aero-in-right .38s ease both; }
.aero-panel.from-left { animation-name: aero-in-left; }
.aero-panel > section { padding-top: 40px; padding-bottom: 60px; }
.aero-panel > .aero-routine { margin: 40px 6% 60px; padding: 40px 44px; }
.aero-panel > .aero-foca-sec { padding-left: 6%; padding-right: 6%; }
.aero-panels-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@keyframes aero-in-right { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes aero-in-left { from { opacity: 0; transform: translateX(-40px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .aero-panel { animation: none; } }
@media (max-width: 640px) {
  .aero-product { padding: 24px 6% 40px; }
  .aero-panels-bar { padding: 12px 4%; gap: 8px; }
  .aero-panels-label { display: none; }
  .aero-panels-steps button { justify-content: center; }
  .aero-panel > .aero-routine { margin: 28px 5% 40px; padding: 26px 22px; }
}
@media (max-width: 900px) { .aero-product-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
.aero-product .aero-back, .aero-product .aero-back .back-main, .aero-product .aero-back .back-sub, .aero-product .aero-back svg { color: var(--primary); opacity: 1; }
.aero-product .aero-back .back-sub { color: var(--muted-foreground); }

/* AeroCert overview — sketch hierarchy */
.aero-top { text-align: center; padding: 20px 0 8px; }
.aero-top .aero-eyebrow { justify-content: center; }
.aero-top .aero-name { font-size: clamp(52px, 8vw, 96px); letter-spacing: -.01em; }
.aero-top-rule { width: 72px; height: 3px; background: var(--primary); margin: 26px auto; }
.aero-top .aero-description { max-width: 860px; margin: 0 auto; font-size: clamp(17px, 1.7vw, 21px); }
.aero-product .aero-routine { display: block; margin: 46px 0 0; padding: 0; background: none; border-left: 0; }
.aero-routine-icon svg { width: 34px; height: 34px; color: var(--primary); }
.aero-product .aero-routine-title { font-size: clamp(16px, 1.6vw, 20px); }
.aero-product .aero-routine-text { margin-top: 8px; font-size: 17px; }
.aero-wide { margin-top: 48px; }
.aero-wide-text { font-size: clamp(17px, 1.5vw, 19px); line-height: 1.8; }
.aero-wide .aero-foca { margin: 0 0 28px; }
.aero-explore-list { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 14px; }
.aero-explore-row { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 22px; padding: 20px 26px; background: var(--background); border: 1px solid var(--border); transition: border-color .2s, transform .2s; }
.aero-explore-row:hover { border-color: var(--primary); transform: translateX(4px); }
.aero-explore-row .aero-explore-num { display: grid; place-items: center; width: 52px; height: 52px; border: 2px solid var(--primary); border-radius: 999px; font-size: 16px; }
.aero-explore-body h3 { font-size: 19px; font-weight: 600; }
.aero-explore-strong { font-weight: 800; letter-spacing: .01em; }
.aero-explore-body p { color: var(--muted-foreground); margin-top: 4px; line-height: 1.55; }
.aero-explore-arrow { width: 20px; height: 20px; color: var(--primary); }
@media (max-width: 640px) {
  .aero-product .aero-routine { padding: 20px 18px; gap: 14px; }
  .aero-explore-row { grid-template-columns: 44px 1fr; gap: 14px; padding: 16px; }
  .aero-explore-row .aero-explore-num { width: 40px; height: 40px; font-size: 14px; }
  .aero-explore-arrow { display: none; }
}
.aero-product .aero-routine-title { color: var(--muted-foreground); font-weight: 800; text-align: center; }
.aero-wide-swiss { display: flex; gap: 20px; align-items: flex-start; background: var(--surface-subtle); border-left: 4px solid var(--primary); padding: 30px 34px; }
.aero-wide-swiss .aero-routine-icon { flex-shrink: 0; padding-top: 4px; }
@media (max-width: 640px) { .aero-wide-swiss { padding: 20px 18px; gap: 14px; } }
.aero-explore .aero-section-title { text-align: center; }
.header-actions { display: flex; align-items: center; gap: 56px; }
.get-in-touch-btn { letter-spacing: .12em; font-weight: 600; }
.git-dialog { width: min(760px, calc(100vw - 22px)); max-width: min(760px, calc(100vw - 22px)); max-height: calc(100dvh - 22px); overflow: hidden; display: flex; flex-direction: column; gap: clamp(8px, 1.5vh, 16px); padding: clamp(14px, 2.4vh, 26px) clamp(14px, 3vw, 30px); background: var(--background); }
.git-title { font-family: Raleway, sans-serif; font-size: clamp(18px, 3vh, 26px); font-weight: 500; color: var(--foreground); padding-right: 22px; }
.git-form { display: flex; flex-direction: column; gap: clamp(8px, 1.4vh, 14px); flex: 1 1 auto; min-height: 0; }
.git-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto auto minmax(0, 1fr); gap: clamp(7px, 1.3vh, 14px) 16px; flex: 1 1 auto; min-height: 0; }
.git-span { grid-column: 1 / -1; min-width: 0; }
.git-message { display: flex; flex-direction: column; min-height: 0; }
.git-message textarea { flex: 1 1 auto; height: 100%; min-height: clamp(46px, 9vh, 108px); resize: none; }
.git-form label { display: grid; gap: clamp(4px, 0.7vh, 7px); font-size: clamp(10px, 1.4vh, 12px); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--foreground); min-width: 0; }
.git-form input:not([type=checkbox]), .git-form textarea { width: 100%; min-width: 0; border: 1px solid var(--border); background: var(--card); padding: clamp(5px, 0.9vh, 9px) 11px; font-size: clamp(13px, 1.7vh, 15px); font-weight: 400; text-transform: none; letter-spacing: normal; }
.git-form input:focus, .git-form textarea:focus { outline: 2px solid var(--primary); outline-offset: -1px; }
.git-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.git-form .git-consent { display: flex; align-items: center; gap: 9px; }
@media (max-width: 620px) { .git-grid { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: min-content; } .git-foot { flex-direction: column; align-items: stretch; } .git-foot button { width: 100%; } .header-actions { gap: 18px; } .get-in-touch-btn { font-size: 11px; padding: 0 10px; } }


/* Restricted Area is a modal; no password is checked or stored. */
.restricted-dialog { width: min(460px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); overflow-y: auto; background: var(--background); gap: 14px; padding: 28px; }
.restricted-dialog .private-access-symbol { margin: 0 auto; }
.restricted-dialog .git-title { padding-right: 0; }
.restricted-dialog .critical-rule { margin: 4px auto 12px; }
.entry-header-actions, .header-access-actions { display: flex; align-items: center; gap: 16px; }
.private-access-btn { color: var(--primary); border-color: var(--primary); font-weight: 600; letter-spacing: 0; }
.private-access-page { min-height: calc(100svh - 270px); padding: 80px 6% 100px; display: grid; place-items: center; }
.private-access-inner { width: 100%; max-width: 420px; text-align: center; }
.private-access-symbol { width: 36px; height: 36px; color: var(--primary); margin: 0 auto 22px; }
.private-access-inner h1 { font-size: 32px; font-weight: 600; }
.private-access-inner .critical-rule { margin: 24px auto 36px; }
.private-password-label { display: block; text-align: left; font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.private-password-field { display: flex; align-items: center; gap: 8px; padding: 4px 8px 4px 14px; border: 1px solid var(--border); background: var(--card); border-radius: var(--radius); }
.private-password-field:focus-within { outline: 2px solid var(--primary); outline-offset: 2px; }
.private-password-field input { width: 100%; min-width: 0; height: 42px; color: var(--foreground); background: transparent; border: 0; outline: none; font-size: 17px; }
.private-password-field button { flex-shrink: 0; color: var(--muted-foreground); }
.private-access-back { margin-top: 30px; }
@media (min-width: 641px) and (max-width: 1100px) {
 .engineering-header .menu-toggle { display: inline-flex; }
 .engineering-header .desktop-nav { display: none; position: absolute; top: 100px; left: 0; right: 0; background: var(--background); padding: 12px 5% 24px; border-top: 1px solid var(--border); }
 .engineering-header .desktop-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
 .engineering-header .nav-link { padding: 14px 0; }
}
.engineering-header .desktop-nav .private-access-btn { flex-shrink: 0; }
@media (max-width: 1100px) { .engineering-header .desktop-nav .private-access-btn { align-self: flex-start; margin-top: 12px; } }
@media (max-width: 760px) {
 .ai-brand-bar { height: auto; }
 .ai-brand-bar .header-inner { flex-wrap: wrap; gap: 4px; padding: 12px 6% 20px; }
 .ai-brand-bar .brand { height: 62px; }
 .ai-brand-bar .header-actions { width: 100%; justify-content: space-between; gap: 18px; }
 .header-access-actions, .entry-header-actions { gap: 10px; }
 .private-access-btn { font-size: 11px; padding: 0 10px; }
}
@media (max-width: 520px) {
 .entry-header { height: auto; min-height: 112px; flex-wrap: wrap; gap: 18px; }
 .entry-header-actions { width: 100%; justify-content: flex-end; }
 .private-access-page { padding-top: 55px; }
}

/* --- Pulsanti (ex componente Button di Lovable) --------------------------- */
@layer components {
  .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; white-space: nowrap; border-radius: calc(var(--radius) - 2px); font-size: .875rem; line-height: calc(1.25 / .875); font-weight: 500; cursor: pointer; transition: color .15s, background-color .15s, border-color .15s; height: 2.25rem; padding: .5rem 1rem; border: 0; background: transparent; color: inherit; }
  .btn:focus-visible { outline: none; box-shadow: 0 0 0 1px var(--ring); }
  .btn:disabled { pointer-events: none; opacity: .5; cursor: not-allowed; }
  .btn svg { pointer-events: none; width: 1rem; height: 1rem; flex-shrink: 0; }
  .btn-primary { background: var(--primary); color: var(--primary-foreground); box-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1); }
  .btn-primary:hover { background: color-mix(in oklab, var(--primary) 90%, transparent); }
  .btn-outline { border: 1px solid var(--input); background: var(--background); box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05); }
  .btn-outline:hover, .btn-ghost:hover { background: var(--accent); color: var(--accent-foreground); }
  .btn-link { color: var(--primary); text-underline-offset: 4px; }
  .btn-link:hover { text-decoration: underline; }
  .btn-carousel { background: var(--control-background); color: var(--hero-foreground); }
  .btn-carousel:hover { background: color-mix(in oklab, var(--primary) 80%, transparent); }
  .btn-sm { height: 2rem; padding: 0 .75rem; font-size: .75rem; line-height: calc(1 / .75); }
  .btn-lg { height: 2.5rem; padding: 0 2rem; }
  .btn-icon { height: 2.25rem; width: 2.25rem; padding: 0; }
  .btn-entry { color: var(--hero-foreground); border-radius: 0; overflow: hidden; background: var(--footer-background); text-align: left; }
  .btn-entry-size { padding: 0; width: 100%; height: auto; white-space: normal; }
}

/* --- Finestre modali (Get in touch / Restricted Area) --------------------- */
.modal { border: 1px solid var(--border); border-radius: 8px; color: var(--foreground); box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); margin: auto; }
dialog.modal:not([open]) { display: none; }
.modal[open] { display: flex; flex-direction: column; animation: modal-in .2s ease; }
.modal::backdrop { background: rgb(0 0 0 / .8); }
.modal-close { position: absolute; right: 16px; top: 16px; border: 0; background: none; padding: 0; color: inherit; opacity: .7; cursor: pointer; border-radius: 2px; }
.modal-close:hover { opacity: 1; }
.modal-close svg { width: 16px; height: 16px; display: block; }
.modal .form-status { font-size: .875rem; color: var(--primary); }
.modal .form-sent { padding: 24px 0; text-align: center; }
@keyframes modal-in { from { opacity: 0; transform: scale(.95); } to { opacity: 1; transform: none; } }
body.modal-open { overflow: hidden; }
