/* ==========================================================================
   i-Robots — stili del tema (sito + editor)
   Colori, font e dimensioni base sono in theme.json; qui layout e componenti.
   Classi: ir-* sulle sezioni dei pattern, is-style-ir-* sugli stili di blocco.
   ========================================================================== */

:root {
  --ir-navy-950: var(--wp--preset--color--navy-950);
  --ir-navy-900: var(--wp--preset--color--navy-900);
  --ir-navy-800: var(--wp--preset--color--navy-800);
  --ir-blue: var(--wp--preset--color--blue);
  --ir-blue-strong: var(--wp--preset--color--blue-strong);
  --ir-blue-bright: #2aa6ea;
  --ir-cyan: var(--wp--preset--color--cyan);
  --ir-teal: var(--wp--preset--color--teal);
  --ir-ice: var(--wp--preset--color--ice);
  --ir-ice-2: #dfeef9;
  --ir-ink: var(--wp--preset--color--ink);
  --ir-muted: var(--wp--preset--color--muted);
  --ir-muted-light: var(--wp--preset--color--muted-light);
  --ir-line: #d6e4f0;
  --ir-line-dark: rgba(150, 190, 230, 0.16);
  --ir-display: var(--wp--preset--font-family--display);
  --ir-radius: 22px;
  --ir-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ir-header-h: 84px;

  /* Cursore custom (skill cursor-custom-sito): cambiano solo le variabili */
  --cursor-color: var(--ir-blue-bright);
  --cursor-ring-color: var(--ir-blue-bright);
  --cursor-label-bg: var(--ir-blue-strong);
  --cursor-label-color: #fff;
  --cursor-size: 8px;
  --cursor-ring-size: 36px;
  --cursor-label-size: 84px;
  --cursor-font: var(--wp--preset--font-family--body);
}

/* overflow-x anche su html: su mobile (iOS) il solo body non impedisce lo scorrimento laterale */
html { scroll-behavior: smooth; overflow-x: clip; }
:where(h1, h2, h3) { text-wrap: balance; }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 2px solid var(--ir-blue-bright); outline-offset: 3px; }

/* Niente spazi bianchi tra template part e tra le sezioni a tutta larghezza */
.wp-site-blocks > *,
.ir-main,
.ir-main .wp-block-post-content > * { margin-block: 0; }
.ir-section > * { margin-block-start: 0; }
.ir-section > * + * { margin-block-start: var(--wp--style--block-gap); }

/* ---------- Header fisso ---------- */
.wp-site-blocks > header.wp-block-template-part { position: fixed; inset: 0 0 auto; z-index: 100; }
body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar .wp-site-blocks > header.wp-block-template-part { top: 46px; } }
/* Sfondo su pseudo-elemento: un backdrop-filter sull'header renderebbe il menu fisso relativo all'header */
.wp-site-blocks > header.wp-block-template-part::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity 0.35s ease;
  background: rgba(6, 20, 43, 0.95); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--ir-line-dark);
}
.wp-site-blocks > header.is-scrolled::before { opacity: 1; }
.ir-header { padding-block: 0; }
.ir-header__inner { min-height: var(--ir-header-h); align-items: center; }
.ir-logo { margin: 0; transition: opacity 0.3s; }
.ir-logo img { width: clamp(150px, 16vw, 200px); height: auto; display: block; }
.ir-header__nav { gap: 10px; align-items: center; }
.ir-btn-sm .wp-block-button__link { padding: 0.7rem 1.25rem; font-size: 0.92rem; }

/* Menu desktop */
.ir-nav { color: #fff; }
.ir-nav .wp-block-navigation__container { gap: 4px; }
.ir-nav .wp-block-navigation-item__content {
  position: relative; padding: 10px 14px; font-weight: 600; font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.82); text-decoration: none; transition: color 0.2s;
}
.ir-nav .wp-block-navigation-item__content:hover,
.ir-nav [aria-current="page"] { color: #fff; }
.ir-nav .wp-block-navigation__responsive-container:not(.is-menu-open) [aria-current="page"]::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--ir-cyan);
}
.ir-nav .ir-nav-cta { display: none; }

/* Sottomenu Prodotti → robot: tendina navy su desktop */
.ir-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
  min-width: 220px; padding: 8px; gap: 2px; border-radius: 16px;
  background: rgba(10, 31, 64, 0.97) !important; color: #fff !important;
  border: 1px solid var(--ir-line-dark) !important; box-shadow: 0 24px 48px -24px rgba(0, 0, 0, 0.7);
}
.ir-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 10px; font-size: 0.95rem; color: rgba(255, 255, 255, 0.85);
}
.ir-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ir-nav .wp-block-navigation__submenu-container [aria-current="page"] { background: rgba(98, 211, 247, 0.1); color: #fff; }
.ir-nav .wp-block-navigation__submenu-container [aria-current="page"]::after { content: none !important; }
.ir-nav .wp-block-navigation__submenu-icon { color: rgba(255, 255, 255, 0.82); }
.ir-nav-n {
  display: inline-grid; place-items: center; width: 24px; height: 24px; flex-shrink: 0; border-radius: 50%;
  font-family: var(--ir-display); font-size: 0.75rem; font-weight: 700; color: var(--ir-cyan); background: rgba(98, 211, 247, 0.12);
}
.ir-nav .wp-block-navigation__responsive-container-open {
  width: 46px; height: 46px; border-radius: 12px; place-items: center; color: #fff;
  border: 1px solid var(--ir-line-dark); background: rgba(10, 31, 64, 0.5);
}

/* Sotto 860px: hamburger anche tra 600 e 860 (WordPress lo mostra solo sotto 600) */
@media (max-width: 860px) {
  .ir-header__nav .wp-block-buttons.ir-header__cta { display: none; }
  .ir-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; }
  .ir-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Pannello mobile: entra da destra, sfondo navy pieno, logo in alto */
.ir-nav .wp-block-navigation__responsive-container.is-menu-open {
  left: auto; right: 0; width: min(88vw, 400px); box-sizing: border-box;
  padding: 24px 28px 32px; color: #fff;
  background:
    radial-gradient(420px 320px at 100% 0%, rgba(42, 166, 234, 0.28), transparent 70%),
    linear-gradient(180deg, var(--ir-navy-800), var(--ir-navy-950));
  border-left: 1px solid var(--ir-line-dark);
  box-shadow: -30px 0 60px -20px rgba(0, 0, 0, 0.6);
  animation: ir-slide-in 0.5s var(--ir-ease) both;
}
@keyframes ir-slide-in { from { transform: translateX(100%); } to { transform: none; } }
.ir-nav .is-menu-open .wp-block-navigation__responsive-dialog { position: static; }
.ir-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: 28px; right: 24px; color: #fff; }
.ir-nav .is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 76px; align-items: stretch; gap: 0; min-height: calc(100% - 20px); display: flex; flex-direction: column;
}
.ir-nav .is-menu-open .wp-block-navigation__container { flex: 1; }
.ir-nav .is-menu-open .wp-block-navigation__responsive-container-content::before {
  content: ""; position: absolute; top: 30px; left: 28px; width: 150px; height: 22px;
  background: url("../img/logo-white.png") left center / contain no-repeat;
}
.ir-nav .is-menu-open .wp-block-navigation__container { width: 100%; gap: 0; align-items: stretch; }
.ir-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation-item__content {
  box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: 18px 4px !important; border-bottom: 1px solid var(--ir-line-dark);
  font-family: var(--ir-display); font-size: 1.35rem; font-weight: 700; color: #fff;
}
.ir-nav .is-menu-open .wp-block-navigation-item .wp-block-navigation-item__content::after {
  content: "→"; font-size: 1.1rem; color: var(--ir-cyan); opacity: 0.5; transition: transform 0.3s var(--ir-ease), opacity 0.3s;
}
.ir-nav .is-menu-open .wp-block-navigation-item__content:hover::after { transform: translateX(4px); opacity: 1; }
.ir-nav .is-menu-open [aria-current="page"] { color: var(--ir-cyan); }
/* Nel pannello: robot rientrati sotto Prodotti, sempre visibili */
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  padding: 4px 0 12px 14px !important; gap: 0; background: none !important; border: 0 !important;
  border-bottom: 1px solid var(--ir-line-dark) !important;
}
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
  margin: 0 !important; left: auto !important; width: 100% !important;
}
/* Il menu è allineato a destra per il desktop: nel pannello i sottomenu vanno a sinistra, a tutta larghezza */
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .has-child { align-items: stretch !important; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: stretch !important; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { padding: 0 !important; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { border-bottom: 0; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content {
  justify-content: flex-start; gap: 12px; padding: 10px 4px !important; border-bottom: 0;
  font-family: var(--wp--preset--font-family--body); font-size: 1.05rem; font-weight: 600; color: var(--ir-muted-light);
}
.ir-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { content: none; }
.ir-nav .is-menu-open .wp-block-navigation__submenu-container [aria-current="page"] { color: var(--ir-cyan); }
.ir-nav .is-menu-open .ir-nav-cta { display: block; margin-top: 30px; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .ir-nav-cta .wp-block-navigation-item__content {
  justify-content: center; border: 0; border-radius: 99px; padding: 16px 24px !important;
  font-family: var(--wp--preset--font-family--body); font-size: 1rem;
  background: var(--wp--preset--gradient--button);
}
.ir-nav .is-menu-open .ir-nav-cta .wp-block-navigation-item__content::after,
.ir-nav .is-menu-open .ir-nav-contact .wp-block-navigation-item__content::after { content: none; }
.ir-nav .ir-nav-contact { display: none; }
.ir-nav .is-menu-open .ir-nav-contact { display: block; }
.ir-nav .is-menu-open .ir-nav-cta + .ir-nav-contact { margin-top: auto; padding-top: 28px; }
.ir-nav .wp-block-navigation__responsive-container.is-menu-open .ir-nav-contact .wp-block-navigation-item__content {
  padding: 4px 0 !important; border: 0; font-family: var(--wp--preset--font-family--body); font-size: 0.95rem; font-weight: 500; color: var(--ir-muted-light);
}
body.admin-bar .ir-nav .wp-block-navigation__responsive-container.is-menu-open { top: 32px; }
@media (max-width: 782px) { body.admin-bar .ir-nav .wp-block-navigation__responsive-container.is-menu-open { top: 46px; } }
/* Velo sul resto della pagina (clic = chiude, gestito in main.js) */
html.has-modal-open body::after {
  content: ""; position: fixed; inset: 0; z-index: 99;
  background: rgba(4, 13, 29, 0.6); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  animation: ir-fade 0.4s ease both;
}
html.has-modal-open .ir-logo { opacity: 0; }
html.has-modal-open .wp-site-blocks > header::before { opacity: 0; }
@keyframes ir-fade { from { opacity: 0; } }

/* ---------- Sezioni ---------- */
.ir-section { position: relative; padding-block: var(--wp--preset--spacing--60); }
/* :not(.wp-block-button): lo stesso nome è anche uno stile bottone, applicato al wrapper del link */
.is-style-ir-dark:not(.wp-block-button) {
  color: #fff; overflow: hidden;
  background:
    radial-gradient(800px 500px at 100% 0%, rgba(23, 136, 192, 0.25), transparent 60%),
    linear-gradient(180deg, var(--ir-navy-900), var(--ir-navy-950));
}
.is-style-ir-dark :where(h1, h2, h3, h4) { color: #fff; }
.is-style-ir-dark :where(p, li) { color: var(--ir-muted-light); }
.is-style-ir-dark .ir-lead, .is-style-ir-dark .is-style-ir-features li, .is-style-ir-dark .is-style-ir-specs li { color: var(--ir-muted-light); }
.is-style-ir-ice { background: var(--ir-ice); }
.ir-section-head { max-width: 760px; margin-bottom: clamp(40px, 6vw, 72px); }
/* Il layout "constrained" centra i figli con margin auto !important: si allineano a sinistra con padding a destra */
.is-layout-constrained > .ir-section-head:not(.ir-section-head--center),
.is-layout-constrained > .ir-lead,
.is-layout-constrained > .ir-display {
  box-sizing: border-box; max-width: var(--wp--style--global--content-size) !important;
}
.is-layout-constrained > .ir-section-head:not(.ir-section-head--center) { padding-right: max(0px, calc(100% - 760px)); }
.is-layout-constrained > .ir-lead { padding-right: max(0px, calc(100% - 36em)); }
.is-layout-constrained > .ir-display { padding-right: max(0px, calc(100% - 16em)); }
.ir-section-head > * { margin-block: 0; }
.ir-section-head > * + * { margin-top: 16px; }
.ir-section-head--center { text-align: center; margin-inline: auto !important; }
.ir-section-head--center .ir-kicker { justify-content: center; }

.ir-kicker {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--ir-display); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ir-blue-strong); text-wrap: balance;
}
.ir-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.is-style-ir-dark .ir-kicker { color: var(--ir-cyan); }
.ir-kicker--teal::before { background: var(--ir-teal); }
.is-style-ir-dark .ir-kicker--teal, .is-style-ir-dark .ir-kicker--cyan { color: var(--ir-muted-light); }
.ir-kicker--cyan::before { background: var(--ir-cyan); }
.ir-kicker--sky::before { background: #8fb8ff; }
.is-style-ir-dark .ir-kicker--sky { color: var(--ir-muted-light); }

.ir-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 99px;
  font-family: var(--ir-display); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ir-cyan) !important; border: 1px solid var(--ir-line-dark); background: rgba(23, 136, 192, 0.1);
}
.ir-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ir-cyan); box-shadow: 0 0 0 4px rgba(98, 211, 247, 0.18); }

.ir-display { font-size: var(--wp--preset--font-size--xx-large); font-weight: 700; letter-spacing: -0.025em; line-height: 1.08; max-width: 16em; }
.ir-display em { font-style: normal; color: var(--ir-blue-strong); }
.is-style-ir-dark .ir-display em { color: var(--ir-cyan); }
.ir-lead { font-size: var(--wp--preset--font-size--large); color: var(--ir-muted); max-width: 34em; }

/* ---------- Bottoni ---------- */
.wp-block-button__link {
  box-shadow: 0 10px 30px -10px rgba(42, 166, 234, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transition: transform 0.35s var(--ir-ease), box-shadow 0.35s var(--ir-ease);
}
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -10px rgba(42, 166, 234, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.wp-block-button.is-style-ir-ghost .wp-block-button__link {
  background: transparent; color: #fff; box-shadow: inset 0 0 0 1px rgba(169, 188, 211, 0.45);
}
.wp-block-button.is-style-ir-ghost .wp-block-button__link:hover { box-shadow: inset 0 0 0 1px var(--ir-cyan); }
:where(.ir-section:not(.is-style-ir-dark)) .wp-block-button.is-style-ir-ghost .wp-block-button__link { color: var(--ir-navy-800); box-shadow: inset 0 0 0 1px var(--ir-line); }
.wp-block-button.is-style-ir-dark .wp-block-button__link { background: var(--ir-navy-900); box-shadow: 0 10px 30px -14px rgba(6, 20, 43, 0.8); }
.ir-link-arrow a { display: inline-flex; gap: 10px; font-weight: 700; text-decoration: none; color: var(--ir-cyan); }
.ir-link-arrow a::after { content: "→"; transition: transform 0.35s var(--ir-ease); }
.ir-link-arrow a:hover::after { transform: translateX(6px); }

/* ---------- Stili lista ---------- */
.is-style-ir-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.is-style-ir-chips li {
  margin: 0; padding: 7px 14px; border-radius: 99px; font-size: 0.85rem; font-weight: 700;
  background: var(--ir-ice); color: var(--ir-blue-strong); border: 1px solid var(--ir-line);
}
.is-style-ir-dark .is-style-ir-chips li { background: rgba(98, 211, 247, 0.1); color: #d7ecfb; border-color: var(--ir-line-dark); }
.is-style-ir-features { display: grid; gap: 14px; padding: 0; list-style: none; }
.is-style-ir-features li { position: relative; padding-left: 30px; color: var(--ir-muted); }
.is-style-ir-features li::before {
  content: ""; position: absolute; left: 0; top: 0.5em; width: 14px; height: 14px; border-radius: 4px;
  background: linear-gradient(135deg, var(--ir-blue-strong), var(--ir-cyan));
}
.is-style-ir-features strong { color: var(--ir-ink); }
.is-style-ir-dark .is-style-ir-features strong { color: #fff; }
.is-style-ir-specs { padding: 0; list-style: none; border-top: 1px solid var(--ir-line); }
.is-style-ir-specs li { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; margin: 0; border-bottom: 1px solid var(--ir-line); color: var(--ir-muted); font-size: 0.95rem; }
.is-style-ir-specs li { overflow-wrap: normal; word-break: normal; }
.is-style-ir-specs strong { color: var(--ir-ink); text-align: right; max-width: 62%; }
.is-style-ir-dark .is-style-ir-specs, .is-style-ir-dark .is-style-ir-specs li { border-color: var(--ir-line-dark); }
.is-style-ir-dark .is-style-ir-specs strong { color: #fff; }

/* ---------- Card ---------- */
.is-style-ir-card {
  padding: 32px 30px 30px; border-radius: var(--ir-radius); height: 100%;
  background: linear-gradient(180deg, var(--ir-ice), #fff); border: 1px solid var(--ir-line);
  transition: transform 0.4s var(--ir-ease), box-shadow 0.4s var(--ir-ease);
}
.is-style-ir-card > * { margin-block: 0; }
.is-style-ir-card > * + * { margin-top: 10px; }
.is-style-ir-card p { color: var(--ir-muted); font-size: 0.98rem; }
.is-style-ir-card:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -28px rgba(15, 111, 163, 0.5); }
.is-style-ir-ice .is-style-ir-card { background: #fff; }
.ir-step { font-family: var(--ir-display); font-size: 0.8rem !important; font-weight: 700; color: var(--ir-blue-strong) !important; }
.ir-cards { margin-top: 50px !important; gap: 20px; }

/* ---------- Split testo ---------- */
.ir-split { gap: clamp(40px, 7vw, 100px); }
.ir-split__text { padding-top: 38px; color: var(--ir-muted); font-size: 1.08rem; }
.ir-split__text strong { color: var(--ir-ink); }

/* ---------- Hero ---------- */
.ir-hero {
  min-height: 100svh; display: flex; flex-direction: column; justify-content: center;
  padding-top: 130px; padding-bottom: 80px;
  background:
    radial-gradient(900px 600px at 78% 45%, rgba(23, 136, 192, 0.38), transparent 65%),
    radial-gradient(700px 500px at 10% 100%, rgba(98, 211, 247, 0.12), transparent 60%),
    linear-gradient(180deg, var(--ir-navy-950), var(--ir-navy-900) 60%, var(--ir-navy-800));
}
.ir-hero__inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; width: 100%; }
.ir-hero__copy > * { margin-block: 0; }
.ir-hero__copy > * + * { margin-top: 26px; }
.ir-hero__copy .ir-lead { color: var(--ir-muted-light); }
.ir-hero__copy .wp-block-buttons { margin-top: 36px; }
.ir-sectors { margin-top: 44px !important; }
.ir-sectors li { padding: 5px 12px; font-size: 0.82rem; color: var(--ir-muted-light) !important; background: transparent !important; }

.ir-stage { position: relative; height: clamp(440px, 48vw, 640px); }
.ir-stage > * { margin: 0 !important; }
.ir-stage__fx { position: absolute; inset: 0; }
.ir-platform {
  position: absolute; left: 50%; bottom: 3%; width: 96%; height: 20%; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(98, 211, 247, 0.85), rgba(42, 166, 234, 0.4) 55%, transparent);
  filter: blur(2px);
}
.ir-platform::after { content: ""; position: absolute; inset: 14% 6%; border-radius: 50%; border: 1.5px solid rgba(160, 230, 255, 0.8); }
.ir-orbit { position: absolute; left: 50%; top: 48%; border-radius: 50%; border: 1px dashed rgba(98, 211, 247, 0.22); transform: translate(-50%, -50%); aspect-ratio: 1; }
.ir-orbit--1 { width: 86%; animation: ir-spin 60s linear infinite; }
.ir-orbit--2 { width: 60%; border-style: solid; border-color: rgba(98, 211, 247, 0.1); animation: ir-spin 90s linear infinite reverse; }
.ir-orbit--1::before { content: ""; position: absolute; top: -5px; left: 50%; width: 10px; height: 10px; border-radius: 50%; background: var(--ir-cyan); }
@keyframes ir-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
.ir-stage__ambrogio, .ir-stage__ariel { position: absolute; }
.ir-stage__ambrogio { right: 12%; bottom: 8%; height: 96%; animation: ir-float 7s ease-in-out infinite; }
.ir-stage__ambrogio img { height: 100%; width: auto; }
.ir-stage__ariel { left: 2%; bottom: 7%; width: 50%; animation: ir-float 7s ease-in-out -3.5s infinite; }
.ir-stage__ambrogio img, .ir-stage__ariel img { filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.55)); }
@keyframes ir-float { 50% { transform: translateY(-12px); } }
.ir-tag {
  position: absolute; padding: 10px 16px; border-radius: 14px; font-size: 0.75rem !important; font-weight: 600; line-height: 1.35;
  color: var(--ir-muted-light) !important; border: 1px solid var(--ir-line-dark);
  background: rgba(10, 31, 64, 0.62); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.ir-tag strong { font-family: var(--ir-display); font-size: 0.95rem; color: #fff; }
.ir-tag::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: var(--ir-cyan); }
.ir-tag--ambrogio { right: 0; top: 0; }
.ir-tag--ariel { left: 4%; top: 36%; }
.ir-tag--ariel::after { background: var(--ir-teal); }

/* ---------- Pagine interne ---------- */
.ir-page-hero {
  padding-top: 170px; padding-bottom: clamp(70px, 9vw, 110px);
  background:
    radial-gradient(800px 460px at 85% 20%, rgba(23, 136, 192, 0.35), transparent 65%),
    linear-gradient(180deg, var(--ir-navy-950), var(--ir-navy-900));
}
.ir-page-hero--compact { padding-bottom: 60px; }

/* Hero con video a lato (pagina Ambrogio): due colonne solo se nel gruppo c'è il blocco Video ir-hero-video.
   Lo sfondo dell'hero resta quello di is-style-ir-dark / ir-page-hero. */
.ir-page-hero:has(> .ir-hero-video) {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); column-gap: clamp(40px, 5vw, 84px); align-items: center;
  padding-left: max(var(--wp--style--root--padding-left), calc((100% - var(--wp--style--global--content-size)) / 2));
  padding-right: max(var(--wp--style--root--padding-right), calc((100% - var(--wp--style--global--content-size)) / 2));
  padding-top: 150px;
}
.ir-page-hero:has(> .ir-hero-video) > * { margin: 0 !important; max-width: none !important; min-width: 0; }
.ir-page-hero__text > * { margin-block: 0; }
.ir-page-hero__text > * + * { margin-top: var(--wp--style--block-gap); }
.ir-page-hero__text .ir-display { font-size: clamp(2.3rem, 4.6vw, 4.4rem); max-width: 13em; }
.ir-page-hero__text .wp-block-buttons { margin-top: 36px; }

.ir-hero-video {
  position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 28px;
  background: var(--ir-navy-800); border: 1px solid var(--ir-line-dark);
  box-shadow: 0 40px 90px -45px rgba(42, 166, 234, 0.6), 0 30px 60px -40px rgba(0, 0, 0, 0.8);
}
/* [poster] e !important: il child ha .wp-block-video [poster] { object-fit: contain !important } per gli altri video */
.ir-hero-video video, .ir-hero-video video[poster] { display: block; width: 100%; height: 100%; object-fit: cover !important; }
/* Velo blu: lega il fondo grigio del video al navy del sito */
.ir-hero-video::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(135deg, rgba(23, 136, 192, 0.32), transparent 45%),
    radial-gradient(120% 90% at 50% 45%, transparent 55%, rgba(4, 13, 29, 0.55)),
    linear-gradient(180deg, transparent 62%, rgba(4, 13, 29, 0.7));
}
/* Mirini agli angoli, come nella galleria "Ambrogio in sala" */
.ir-hero-video { --ir-hv-accent: var(--ir-cyan); --ir-hv-line: rgba(98, 211, 247, 0.8); }
.ir-hero-video--ariel { --ir-hv-accent: var(--ir-teal); --ir-hv-line: rgba(63, 217, 176, 0.8); }
.ir-hero-video::before {
  --c: var(--ir-hv-line); --l: 22px; --w: 1.5px;
  content: ""; position: absolute; inset: 16px; z-index: 2; pointer-events: none;
  background:
    linear-gradient(var(--c), var(--c)) top left / var(--l) var(--w), linear-gradient(var(--c), var(--c)) top left / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) top right / var(--l) var(--w), linear-gradient(var(--c), var(--c)) top right / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) bottom left / var(--l) var(--w), linear-gradient(var(--c), var(--c)) bottom left / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) bottom right / var(--l) var(--w), linear-gradient(var(--c), var(--c)) bottom right / var(--w) var(--l);
  background-repeat: no-repeat;
}
.ir-hero-video .wp-element-caption {
  position: absolute; left: 28px; bottom: 26px; z-index: 3; max-width: calc(100% - 56px); margin: 0;
  display: inline-flex; align-items: center; gap: 10px; padding: 7px 13px; border-radius: 99px;
  font-family: var(--ir-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; text-align: left;
  color: #e4f1fb; background: rgba(6, 20, 43, 0.62); border: 1px solid var(--ir-line-dark);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.ir-hero-video .wp-element-caption::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ir-hv-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ir-hv-accent) 20%, transparent); animation: ir-live 2s ease-in-out infinite;
}
@keyframes ir-live { 50% { opacity: 0.35; } }
/* Il video di Ariel ha scritte in basso a sinistra: etichetta in alto a destra, dove il fondo è libero */
.ir-hero-video.ir-hero-video--ariel .wp-element-caption { left: auto; bottom: auto; right: 28px; top: 26px; }
.ir-page-hero .ir-lead { color: var(--ir-muted-light); }
.ir-page-hero .wp-block-buttons { margin-top: 36px; }
.ir-crumbs { font-size: 0.85rem; font-weight: 600; }
.ir-crumbs a { text-decoration: none; color: var(--ir-muted-light); }
.ir-crumbs a:hover { color: #fff; }
.ir-text-page { padding-block: 60px 90px; }

/* ---------- Showcase robot ---------- */
.ir-robot {
  display: grid; grid-template-columns: 1.25fr 1fr; align-items: stretch;
  border-radius: 28px; overflow: hidden; margin-top: 28px !important;
  background: linear-gradient(135deg, rgba(18, 50, 96, 0.55), rgba(6, 20, 43, 0.6));
  border: 1px solid var(--ir-line-dark);
}
.ir-robot--reverse { grid-template-columns: 1fr 1.25fr; }
.ir-robot--reverse > .ir-video { order: 2; }
.ir-robot > * { margin: 0 !important; }
.ir-robot__info { align-self: center; padding: clamp(28px, 4vw, 56px); }
.ir-robot__info > * { margin-block: 0; }
.ir-robot__info > * + * { margin-top: 16px; }
.ir-robot-name { font-size: clamp(2.6rem, 5.4vw, 4.4rem) !important; font-weight: 700; letter-spacing: -0.03em; }
.ir-video { margin: 0; background: var(--ir-navy-900); aspect-ratio: 16 / 9; }
.ir-robot > .ir-video { aspect-ratio: auto; min-height: 380px; }
/* Robot senza video: immagine sulla piattaforma luminosa */
.ir-robot > .ir-robot__image {
  position: relative; min-height: 380px;
  background: radial-gradient(closest-side at 50% 62%, rgba(42, 166, 234, 0.45), transparent 72%), linear-gradient(180deg, var(--ir-navy-800), var(--ir-navy-950));
}
.ir-robot > .ir-robot__image img { position: absolute; inset: 7% 10% 9%; width: 80%; height: 84%; object-fit: contain; filter: drop-shadow(0 26px 30px rgba(4, 13, 29, 0.45)); }
.ir-robot--reverse > .ir-robot__image { order: 2; }
.ir-video video { /*position: absolute;*/ inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.ir-video--framed { margin-top: 26px !important; border-radius: 28px; overflow: hidden; border: 1px solid var(--ir-line); }
.is-style-ir-dark .ir-video--framed { border-color: var(--ir-line-dark); }

/* ---------- Clienti: marquee infinito (regola skill: niente gap, liste identiche) ---------- */
.ir-marquee { display: flex; flex-wrap: wrap; justify-content: center; padding: 0; list-style: none; margin: 0; }
.ir-marquee li {
  display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0;
  min-height: 130px; padding: 0 clamp(36px, 4.5vw, 64px); white-space: nowrap; text-align: center;
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ir-blue-strong);
  border-right: 1px solid var(--ir-line); opacity: 0.85; transition: opacity 0.2s;
}
.ir-marquee li:hover { opacity: 1; }
.ir-marquee li br { display: none; }
.ir-marquee strong {
  display: block; margin-bottom: 4px; font-family: var(--ir-display); font-size: 1.15rem; font-weight: 700;
  letter-spacing: -0.01em; text-transform: none; color: var(--ir-navy-800);
}
.ir-marquee-wrap {
  width: 100vw; margin-left: calc(50% - 50vw) !important; max-width: none !important; overflow: hidden;
  border-top: 1px solid var(--ir-line); border-bottom: 1px solid var(--ir-line);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.ir-marquee-track { display: flex; width: max-content; animation: ir-marquee 42s linear infinite; }
.ir-marquee-wrap:hover .ir-marquee-track { animation-play-state: paused; }
.ir-marquee-track .ir-marquee { flex-wrap: nowrap; flex-shrink: 0; }
@keyframes ir-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* Slider di loghi incollati in un blocco HTML personalizzato (.logo-slider): restano dentro la sezione
   anche se il loro CSS non si applica, altrimenti su mobile la pagina si allarga e scivola di lato. */
.ir-clients { overflow-x: clip; }
.ir-clients .logo-slider { overflow: hidden; max-width: 100%; }

/* ---------- Contatti e form ---------- */
.ir-contact__cols { gap: clamp(40px, 6vw, 90px); }
.ir-contact-lines { display: grid; gap: 18px; padding: 0; list-style: none; margin-top: 36px !important; }
.ir-contact-lines li { padding-bottom: 18px; border-bottom: 1px solid var(--ir-line-dark); color: #e4f1fb !important; font-size: 1.1rem; font-weight: 600; }
.ir-contact-lines li::first-line { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ir-muted-light); }
.ir-contact-lines a { text-decoration: none; }
.ir-contact-lines a:hover { color: var(--ir-cyan); }

.ir-form {
  padding: clamp(24px, 3.5vw, 44px); border-radius: 28px; background: #fff; color: var(--ir-ink);
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.6);
}
.is-style-ir-ice .ir-form { box-shadow: 0 30px 70px -40px rgba(15, 111, 163, 0.5); border: 1px solid var(--ir-line); }
.ir-form p, .ir-form label { color: var(--ir-ink); }
.ir-form .wpcf7-form > p, .ir-form .ir-field { margin: 0 0 18px; }
.ir-form .ir-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ir-form label, .ir-form .ir-legend { display: block; font-size: 0.85rem; font-weight: 700; color: var(--ir-navy-800); margin-bottom: 7px; }
.ir-form .wpcf7-form-control-wrap { display: block; }
.ir-form .ir-field-row > * { min-width: 0; }
.ir-form input[type="text"], .ir-form input[type="email"], .ir-form input[type="tel"], .ir-form select, .ir-form textarea {
  box-sizing: border-box; width: 100%; max-width: 100%; padding: 13px 15px; border-radius: 12px; border: 1px solid var(--ir-line); background: var(--ir-ice);
  font: 500 1rem var(--wp--preset--font-family--body); color: var(--ir-ink); transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.ir-form input:focus, .ir-form select:focus, .ir-form textarea:focus { outline: none; border-color: var(--ir-blue); background: #fff; box-shadow: 0 0 0 4px rgba(23, 136, 192, 0.15); }
.ir-form textarea { min-height: 120px; resize: vertical; }
.ir-form .wpcf7-checkbox { display: flex; flex-wrap: wrap; gap: 10px; }
.ir-form .wpcf7-checkbox .wpcf7-list-item { margin: 0; }
.ir-form .wpcf7-checkbox label { position: relative; margin: 0; cursor: pointer; }
.ir-form .wpcf7-checkbox input { position: absolute; opacity: 0; inset: 0; }
.ir-form .wpcf7-checkbox .wpcf7-list-item-label {
  display: inline-flex; padding: 10px 16px; border-radius: 99px; border: 1px solid var(--ir-line);
  font-weight: 600; font-size: 0.92rem; background: var(--ir-ice); transition: all 0.2s;
}
.ir-form .wpcf7-checkbox input:checked + .wpcf7-list-item-label { background: var(--ir-blue-strong); border-color: var(--ir-blue-strong); color: #fff; }
.ir-form .wpcf7-checkbox input:focus-visible + .wpcf7-list-item-label { outline: 2px solid var(--ir-blue-bright); outline-offset: 2px; }
.ir-form .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-size: 0.88rem; font-weight: 500; color: var(--ir-muted); }
.ir-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.ir-form .wpcf7-acceptance input { margin-top: 4px; width: 17px; height: 17px; accent-color: var(--ir-blue-strong); }
.ir-form .wpcf7-submit {
  box-sizing: border-box; width: 100%; min-height: 54px; border: 0; border-radius: 99px; cursor: pointer;
  font: 700 1rem var(--wp--preset--font-family--body); color: #fff; background: var(--wp--preset--gradient--button);
  box-shadow: 0 10px 30px -10px rgba(42, 166, 234, 0.6);
}
.ir-form .wpcf7-spinner { display: block; margin: 10px auto 0; }
.ir-form .wpcf7-not-valid { border-color: #d0373f !important; background: #fff6f6 !important; }
.ir-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 0.82rem; font-weight: 600; color: #b3242c; }
.ir-form .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: 12px; font-weight: 600; }
.ir-form .wpcf7 form.sent .wpcf7-response-output { border-color: #11805e; color: #11805e; background: #eefaf5; }

.ir-info > p { margin: 0; color: var(--ir-muted); font-size: 0.95rem; }
.ir-info .ir-info__label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.ir-info .ir-info__value { margin-top: 4px; font-size: 1.15rem; font-weight: 700; color: var(--ir-navy-800); }
.ir-info .ir-info__value a { text-decoration: none; }
.ir-info .ir-info__value a:hover { color: var(--ir-blue-strong); }
.ir-info + .ir-info { margin-top: 16px; }
.ir-info { height: auto; }

/* ---------- Metodo, valori, numeri ---------- */
.ir-timeline { padding: 0; list-style: none; counter-reset: ir-step; }
.ir-timeline li { position: relative; margin: 0; padding: 0 0 36px 64px; counter-increment: ir-step; color: var(--ir-muted); }
.ir-timeline li::before {
  content: counter(ir-step, decimal-leading-zero); position: absolute; left: 0; top: 0;
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  font-family: var(--ir-display); font-size: 0.8rem; font-weight: 700; color: #fff; background: var(--ir-navy-800);
}
.ir-timeline li::after { content: ""; position: absolute; left: 20px; top: 46px; bottom: 4px; width: 2px; background: var(--ir-line); }
.ir-timeline li:last-child::after { display: none; }
.ir-timeline li br { display: none; }
.ir-timeline strong { display: block; padding-top: 9px; margin-bottom: 6px; font-family: var(--ir-display); font-size: 1.1rem; color: var(--ir-ink); }
.ir-values { gap: 20px; }
.ir-values .is-style-ir-card:hover { transform: none; box-shadow: none; }
.ir-stats { gap: 0 !important; border-top: 1px solid var(--ir-line); border-bottom: 1px solid var(--ir-line); }
.ir-stats > .wp-block-column { padding: 34px 26px; border-right: 1px solid var(--ir-line); }
.ir-stats > .wp-block-column:last-child { border-right: 0; }
.ir-stats > .wp-block-column > * { margin: 0; }
.ir-stats .ir-stat { font-family: var(--ir-display); font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 800; line-height: 1.1; letter-spacing: -0.03em; color: var(--ir-blue-strong); }
.ir-stats p:not(.ir-stat) { margin-top: 8px; color: var(--ir-muted); font-size: 0.95rem; }

.ir-band { padding-block: clamp(60px, 8vw, 100px); background: radial-gradient(600px 300px at 50% 0%, rgba(98, 211, 247, 0.25), transparent 70%), var(--ir-navy-800); border-top: 1px solid var(--ir-line-dark); }
.ir-band .wp-block-buttons { margin-top: 30px; }

/* ---------- FAQ ---------- */
.ir-faq .wp-block-details { padding: 0; margin: 0; border-bottom: 1px solid var(--ir-line); }
.ir-faq .wp-block-details summary {
  display: flex; justify-content: space-between; gap: 20px; padding: 24px 0; cursor: pointer; list-style: none;
  font-family: var(--ir-display); font-size: 1.1rem; font-weight: 700;
}
.ir-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ir-faq .wp-block-details summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--ir-blue-strong); transition: transform 0.3s var(--ir-ease); }
.ir-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.ir-faq .wp-block-details p { margin: 0; padding-bottom: 24px; color: var(--ir-muted); }

/* ---------- Scheda prodotto ---------- */
.ir-product { scroll-margin-top: 60px; }
.ir-product__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 44px !important; }
.ir-product__head > * { margin: 0; }
.ir-product__head .ir-robot-name { font-size: clamp(3rem, 8vw, 6.5rem) !important; margin-top: 8px; }
.ir-product__head .ir-lead { max-width: 30em; }
.is-style-ir-dark .ir-product__head .ir-lead { color: var(--ir-muted-light); }
.ir-product__cols { gap: clamp(30px, 5vw, 70px); }
.ir-product__cols h3 { margin-top: 0; margin-bottom: 16px; font-size: 1.2rem; font-weight: 700; }
.ir-product__cols ul + h3 { margin-top: 36px; }
.ir-product__cols .wp-block-buttons { margin-top: 30px; }

/* Galleria: senza JS è una griglia di immagini; con JS diventa immagine grande + miniature */
.ir-viewer { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; }
.ir-viewer > figure { margin: 0 !important; }
.ir-viewer.is-ready { grid-template-columns: 1fr 104px; align-items: start; }
.ir-viewer.is-single { grid-template-columns: 1fr; }
.ir-viewer.is-ready > figure { display: none; }
.ir-viewer.is-ready > figure.is-active {
  display: block; position: relative; grid-column: 1; grid-row: 1; aspect-ratio: 1; border-radius: 28px; overflow: hidden;
  background: radial-gradient(closest-side at 50% 60%, rgba(98, 211, 247, 0.35), transparent 70%), linear-gradient(180deg, var(--ir-ice), var(--ir-ice-2));
}
.is-style-ir-dark .ir-viewer.is-ready > figure.is-active {
  background: radial-gradient(closest-side at 50% 62%, rgba(42, 166, 234, 0.45), transparent 72%), linear-gradient(180deg, var(--ir-navy-800), var(--ir-navy-950));
}
.ir-viewer.is-ready > figure.is-active img {
  position: absolute; inset: 9% 10% 11%; width: 80%; height: 80%; object-fit: contain;
  filter: drop-shadow(0 26px 30px rgba(4, 13, 29, 0.35)); animation: ir-fade 0.4s ease;
}
.ir-viewer.is-ready > figure.is-active figcaption {
  position: absolute; left: 20px; bottom: 18px; margin: 0; padding: 6px 12px; border-radius: 99px;
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  background: rgba(255, 255, 255, 0.85); color: var(--ir-navy-800);
}
.is-style-ir-dark .ir-viewer.is-ready > figure.is-active figcaption { background: rgba(10, 31, 64, 0.75); color: #d7ecfb; }
.ir-viewer__thumbs { grid-column: 2; grid-row: 1; display: grid; gap: 12px; align-content: start; }
.ir-viewer__thumb {
  aspect-ratio: 1; padding: 10px; border-radius: 18px; cursor: pointer;
  border: 1px solid var(--ir-line); background: var(--ir-ice); transition: border-color 0.2s, transform 0.3s var(--ir-ease);
}
.is-style-ir-dark .ir-viewer__thumb { background: var(--ir-navy-800); border-color: var(--ir-line-dark); }
.ir-viewer__thumb img { width: 100%; height: 100%; object-fit: contain; }
.ir-viewer__thumb:hover { transform: translateY(-2px); }
.ir-viewer__thumb[aria-pressed="true"] { border-color: var(--ir-blue-bright); box-shadow: 0 0 0 3px rgba(42, 166, 234, 0.25); }

/* ---------- Ambrogio in sala: foto in griglia "tech" ----------
   Solo blocchi nativi (Gruppo + Immagine): le foto si cambiano dall'editor, il mosaico segue l'ordine.
   Desktop mosaico 6 colonne, tablet 2 colonne, mobile carosello a scorrimento. */
.ir-sala { border-top: 1px solid var(--ir-line-dark); }
.ir-sala::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(98, 211, 247, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(98, 211, 247, 0.06) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 0%, #000, transparent 75%);
  mask-image: radial-gradient(ellipse 80% 70% at 50% 0%, #000, transparent 75%);
}
.ir-sala > * { position: relative; }
/* Colore d'accento: ciano per Ambrogio, verde (LED) per Ariel con la classe ir-sala--ariel / ir-sala__split--ariel */
.ir-sala { --ir-sala-accent: var(--ir-cyan); --ir-sala-line: rgba(98, 211, 247, 0.75); }
.ir-sala--ariel, .ir-sala__split--ariel { --ir-sala-accent: var(--ir-teal); --ir-sala-line: rgba(63, 217, 176, 0.75); }
.ir-sala h2 em { font-style: normal; color: var(--ir-sala-accent); }
.ir-sala .ir-section-head .is-style-ir-chips { margin-top: 24px; }

.ir-sala__grid {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: clamp(140px, 14vw, 220px);
  gap: clamp(12px, 1.4vw, 18px); counter-reset: ir-sala;
}
.ir-sala__grid > * { margin: 0 !important; min-width: 0; }
.ir-sala__grid > :nth-child(1) { grid-column: span 4; grid-row: span 2; }
.ir-sala__grid > :nth-child(2), .ir-sala__grid > :nth-child(3) { grid-column: span 2; }
.ir-sala__grid > :nth-child(n+4) { grid-column: span 3; grid-row: span 2; }

.ir-sala__grid > .wp-block-image {
  position: relative; overflow: hidden; border-radius: var(--ir-radius); counter-increment: ir-sala;
  border: 1px solid var(--ir-line-dark); background: var(--ir-navy-800);
  box-shadow: 0 30px 60px -40px rgba(0, 0, 0, 0.8);
}
.ir-sala__grid > .wp-block-image img,
.ir-sala__grid > .wp-block-image .components-resizable-box__container { width: 100% !important; height: 100% !important; }
.ir-sala__grid > .wp-block-image img {
  display: block; object-fit: cover; filter: saturate(0.92) contrast(1.04);
  transition: transform 1.2s var(--ir-ease), filter 0.6s ease;
}
.ir-sala__grid > .wp-block-image:nth-child(2) img { object-position: 70% 50%; }
/* Nelle foto di Ariel il robot è a destra: il ritaglio stretto (mobile) lo tiene in quadro */
.ir-sala--ariel .ir-sala__grid > .wp-block-image img, .ir-sala__split--ariel .ir-sala__grid > .wp-block-image img { object-position: 74% 60%; }
.ir-sala__grid > .wp-block-image:hover img { transform: scale(1.04); filter: none; }
/* Velo blu e sfumatura in basso per leggere la didascalia */
.ir-sala__grid > .wp-block-image::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(135deg, rgba(23, 136, 192, 0.2), transparent 45%), linear-gradient(180deg, transparent 55%, rgba(4, 13, 29, 0.78));
}
/* Mirini agli angoli, come in un'inquadratura */
.ir-sala__grid > .wp-block-image::before {
  --c: var(--ir-sala-line); --l: 18px; --w: 1.5px;
  content: ""; position: absolute; inset: 14px; z-index: 2; pointer-events: none; opacity: 0.6; transition: opacity 0.4s ease, inset 0.5s var(--ir-ease);
  background:
    linear-gradient(var(--c), var(--c)) top left / var(--l) var(--w), linear-gradient(var(--c), var(--c)) top left / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) top right / var(--l) var(--w), linear-gradient(var(--c), var(--c)) top right / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) bottom left / var(--l) var(--w), linear-gradient(var(--c), var(--c)) bottom left / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) bottom right / var(--l) var(--w), linear-gradient(var(--c), var(--c)) bottom right / var(--w) var(--l);
  background-repeat: no-repeat;
}
.ir-sala__grid > .wp-block-image:hover::before { opacity: 1; inset: 10px; }
.ir-sala__grid .wp-element-caption {
  position: absolute; left: 24px; bottom: 22px; z-index: 3; max-width: calc(100% - 48px); margin: 0;
  display: inline-flex; align-items: center; gap: 10px; padding: 7px 13px; border-radius: 99px;
  font-family: var(--ir-display); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; text-align: left;
  color: #e4f1fb; background: rgba(6, 20, 43, 0.62); border: 1px solid var(--ir-line-dark);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.ir-sala__grid .wp-element-caption::before { content: counter(ir-sala, decimal-leading-zero); color: var(--ir-sala-accent); font-weight: 700; }

/* Home: testo a sinistra, tre foto a destra */
.ir-sala__split { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(40px, 6vw, 90px); align-items: center; }
.ir-sala__split > * { margin: 0 !important; }
.ir-sala__copy > * { margin-block: 0; }
.ir-sala__copy > * + * { margin-top: 20px; }
.ir-sala__copy .ir-lead { color: var(--ir-muted-light); }
.ir-sala__copy .wp-block-buttons { margin-top: 34px; }
/* Secondo robot nella stessa sezione della Home: a specchio, foto a sinistra */
.ir-sala__split + .ir-sala__split { margin-top: clamp(80px, 10vw, 140px) !important; }
.ir-sala__split--reverse { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
.ir-sala__split--reverse > .ir-sala__copy { order: 2; }
.ir-sala__grid--home { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 13vw, 210px); }
.ir-sala__grid--home > :nth-child(1) { grid-column: span 2; grid-row: span 2; }
.ir-sala__grid--home > :nth-child(n+2) { grid-column: span 1; grid-row: span 1; }

@media (max-width: 1024px) {
  .ir-sala__split, .ir-sala__split--reverse { grid-template-columns: 1fr; }
  .ir-sala__split--reverse > .ir-sala__copy { order: 0; }
  .ir-sala__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 30vw, 280px); }
  .ir-sala__grid > :nth-child(n) { grid-column: span 1; grid-row: span 1; }
  .ir-sala__grid > :nth-child(1) { grid-column: span 2; grid-row: span 2; }
}
/* Mobile: carosello orizzontale a scatto, la foto successiva si intravede */
@media (max-width: 600px) {
  .ir-sala__grid {
    display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none;
    box-sizing: border-box; max-width: none !important;
    margin-inline: calc(var(--wp--style--root--padding-left) * -1) calc(var(--wp--style--root--padding-right) * -1) !important;
    padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
    scroll-padding-inline: var(--wp--style--root--padding-left);
  }
  .ir-sala__grid::-webkit-scrollbar { display: none; }
  .ir-sala__grid > :nth-child(n) { flex: 0 0 82%; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .ir-sala__grid .wp-element-caption { left: 18px; bottom: 16px; max-width: calc(100% - 36px); }
  .ir-sala__copy .wp-block-button { flex: 1 1 100%; }
  .ir-sala__copy .wp-block-button__link { width: 100%; }
}

/* ---------- Banner cookie (Complianz) ----------
   Logo intero (vedi irobots_cmplz_logo_full in functions.php), alto 44px e in proporzione: il plugin
   imposta width: inherit, che con l'immagine intera la deformerebbe. */
.cmplz-cookiebanner .cmplz-logo img {
  width: auto !important; height: 44px !important; max-height: none !important; max-width: 100%; object-fit: contain; display: block;
}

/* ---------- Footer ---------- */
.ir-footer { padding-block: 70px 30px; background: var(--ir-navy-950); color: var(--ir-muted-light); font-size: 0.95rem; }
.ir-footer p, .ir-footer li { color: var(--ir-muted-light); }
.ir-footer__cols { gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--ir-line-dark); }
.ir-footer__logo img { width: 170px; height: auto; }
.ir-footer__links { padding: 0; list-style: none; display: grid; gap: 8px; margin: 0; }
.ir-footer a { text-decoration: none; }
.ir-footer a:hover { color: #fff; }
.ir-footer__legal { margin-top: 26px !important; font-size: 0.82rem; }

/* ---------- Comparsa allo scroll (solo sul sito, gestita da main.js) ---------- */
.js .ir-reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.9s var(--ir-ease), transform 0.9s var(--ir-ease); }
.js .ir-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .ir-hero__inner { grid-template-columns: 1fr; }
  .ir-stage { height: clamp(380px, 70vw, 560px); max-width: 620px; width: 100%; margin: 0 auto !important; }
  .ir-robot, .ir-robot--reverse { grid-template-columns: 1fr; }
  .ir-robot--reverse > .ir-video, .ir-robot--reverse > .ir-robot__image { order: 0; }
  .ir-robot > .ir-robot__image { aspect-ratio: 16 / 9; min-height: 0; }
  .ir-robot > .ir-video { aspect-ratio: 16 / 9; min-height: 0; }
  .ir-page-hero:has(> .ir-hero-video) { grid-template-columns: minmax(0, 1fr); row-gap: 44px; padding-top: 140px; }
  .ir-page-hero > .ir-hero-video { max-width: 760px !important; }
  .ir-stats { flex-wrap: wrap !important; }
  .ir-stats > .wp-block-column { flex-basis: 50% !important; }
  .ir-stats > .wp-block-column:nth-child(2) { border-right: 0; }
  .ir-stats > .wp-block-column:nth-child(-n+2) { border-bottom: 1px solid var(--ir-line); }
}
@media (max-width: 781px) {
  .ir-split__text { padding-top: 0; }
  .ir-hero-video { aspect-ratio: 4 / 3; border-radius: 22px; }
  /* Il video di Ariel ha scritte e riquadri ai lati: niente ritaglio */
  .ir-hero-video--ariel { aspect-ratio: 16 / 9; }
  .ir-hero-video.ir-hero-video--ariel .wp-element-caption { left: auto; bottom: auto; right: 14px; top: 12px; padding: 5px 10px; font-size: 0.62rem; }
  .ir-hero-video .wp-element-caption { left: 18px; bottom: 16px; max-width: calc(100% - 36px); }
  .ir-hero-video::before { inset: 12px; --l: 16px; }
  .ir-viewer.is-ready { grid-template-columns: 1fr; }
  .ir-viewer__thumbs { grid-column: 1; grid-row: 2; grid-template-columns: repeat(4, 1fr); }
  .ir-footer__cols { gap: 30px; }
}
@media (max-width: 560px) {
  .ir-form .ir-field-row { grid-template-columns: 1fr; gap: 0; }
  .ir-hero { padding-top: 110px; }
  .ir-hero .wp-block-button { flex: 1 1 100%; }
  .ir-hero .wp-block-button__link { width: 100%; }
  .ir-stats > .wp-block-column { flex-basis: 100% !important; border-right: 0; border-bottom: 1px solid var(--ir-line); }
  .ir-stats > .wp-block-column:last-child { border-bottom: 0; }
  .ir-tag { padding: 8px 12px; }
  .ir-eyebrow { font-size: 0.66rem; letter-spacing: 0.06em; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ir-orbit, .ir-stage__ambrogio, .ir-stage__ariel { animation: none; }
  .ir-nav .wp-block-navigation__responsive-container.is-menu-open, html.has-modal-open body::after { animation: none; }
  .js .ir-reveal { opacity: 1; transform: none; transition: none; }
  .ir-marquee-track { animation: none; width: auto; display: block; }
  .ir-marquee-track .ir-marquee { flex-wrap: wrap; flex-shrink: 1; }
  .ir-marquee-track .ir-marquee[aria-hidden="true"], .ir-marquee .ir-rep { display: none; }
  .ir-marquee-wrap { -webkit-mask-image: none; mask-image: none; }
  .ir-marquee li { border: 0; min-height: 96px; }
  .ir-sala__grid > .wp-block-image img, .ir-sala__grid > .wp-block-image::before { transition: none; }
  .ir-sala__grid > .wp-block-image:hover img { transform: none; }
  .ir-hero-video .wp-element-caption::before { animation: none; }
}

/* ==========================================================================
   Cursore custom — dalla skill cursor-custom-sito (non modificare la logica)
   ========================================================================== */
html.has-custom-cursor, html.has-custom-cursor * { cursor: none !important; }
.cursor, .cursor-ring { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 100001; will-change: transform; transition: opacity 0.25s ease; }
.cursor.is-hidden, .cursor-ring.is-hidden { opacity: 0; }
.cursor {
  display: grid; place-items: center; width: var(--cursor-size); height: var(--cursor-size); border-radius: 50%; background: var(--cursor-color);
  transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1), height 0.35s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.35s ease, opacity 0.25s ease;
}
.cursor__text {
  font-family: var(--cursor-font); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--cursor-label-color); white-space: nowrap; opacity: 0; transform: scale(0.6);
  transition: opacity 0.2s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.cursor.cursor--label { width: var(--cursor-label-size); height: var(--cursor-label-size); background: var(--cursor-label-bg); }
.cursor.cursor--label .cursor__text { opacity: 1; transform: scale(1); }
.cursor-ring__shape {
  display: block; width: var(--cursor-ring-size); height: var(--cursor-ring-size); border: 1px solid var(--cursor-ring-color); border-radius: 50%;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
}
.cursor-ring.is-label .cursor-ring__shape { transform: scale(0.5); opacity: 0; }
.cursor-ring__shape.is-pulsing { animation: cursor-pulse 0.55s cubic-bezier(0.22, 1, 0.36, 1); }
@keyframes cursor-pulse { 0% { transform: scale(1); opacity: 1; } 40% { transform: scale(1.6); opacity: 0.35; } 100% { transform: scale(1); opacity: 1; } }
