/*
Theme Name: AGIT
Theme URI: https://www.agit.it/
Author: Dgitaly
Author URI: https://www.dgitaly.site/
Description: Tema a blocchi di AGIT SRL di Brolo Rag. Luigi & C. — identità di agit.it (verde AGIT, DM Sans, foto a cerchio e griglie di puntini) resa moderna. Contenuti in blocchi core Gutenberg.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
License: Proprietario (cliente). Font DM Sans: SIL Open Font License 1.1 (assets/fonts/OFL-DMSans.txt).
Text Domain: agit
*/

/* ========================================================== token */
:root {
  --agit: #008a76;          /* verde del logo (misurato sul PNG 0,138,118): solo superfici/decorazioni/titoli grandi */
  --agit-600: #00786a;      /* superfici con testo bianco (5,1:1) */
  --agit-700: #005e53;      /* testo verde su chiaro (7,4:1) */
  --agit-900: #0b2e2a;
  --mint: #e9f3f0;
  --mint-2: #f4f8f7;
  --ink: #18222b;
  --ink-2: #48535d;
  --navy: #191f2f;          /* footer attuale di agit.it */
  --line: #d6e2de;
  --paper: #fff;
  --radius: 10px;
  --container: 1240px;
  --gutter: clamp(16px, 4vw, 48px);
  --section-y: clamp(3.5rem, 2.6rem + 3.6vw, 6.5rem);
  --header-h: 84px;
  --shadow: 0 1px 2px rgba(16, 40, 36, .06), 0 12px 32px -12px rgba(16, 40, 36, .18);
  --dots: radial-gradient(circle, var(--agit) 1.7px, transparent 2px);
  --ico-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
  --ico-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.4L4.2 7.3v.1L12 13l7.8-5.6v-.1z'/%3E%3C/svg%3E");
  --ico-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 1 7 7c0 5.2-7 13-7 13S5 14.2 5 9a7 7 0 0 1 7-7zm0 4.5A2.5 2.5 0 1 0 12 11.5 2.5 2.5 0 0 0 12 6.5z'/%3E%3C/svg%3E");
  --ico-fax: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h9l3 3v4h1a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h1zm2 2v5h8V7h-2V5zm-1 9v2h2v-2zm4 0v2h2v-2zm4 0v2h2v-2z'/%3E%3C/svg%3E");
  --ico-doc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h9l5 5v15H6zm8 1.5V8h4.5zM11 11v5.2l-2-2-1.4 1.4L12 20l4.4-4.4-1.4-1.4-2 2V11z'/%3E%3C/svg%3E");
  --ico-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --ico-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --ico-draw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 21l3-1 11-11-2-2L4 18zM14 6l2 2M3 3h7M3 3v7'/%3E%3C/svg%3E");
  --ico-drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3s6 6.5 6 11a6 6 0 0 1-12 0c0-4.5 6-11 6-11z'/%3E%3C/svg%3E");
  --ico-trace: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='6' cy='6' r='2.5'/%3E%3Ccircle cx='18' cy='18' r='2.5'/%3E%3Cpath d='M8.5 6H14a4 4 0 0 1 0 8h-4a4 4 0 0 0 0 8'/%3E%3C/svg%3E");
  --ico-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E");
  --ico-medal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.5 14L7 22l5-3 5 3-1.5-8'/%3E%3C/svg%3E");
  --ico-cal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M8 15l2 2 4-4'/%3E%3C/svg%3E");
  --ico-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3l9 5-9 5-9-5zM3 13l9 5 9-5'/%3E%3C/svg%3E");
  --ico-gear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3M4.9 4.9l2.1 2.1M17 17l2.1 2.1M4.9 19.1L7 17M17 7l2.1-2.1'/%3E%3C/svg%3E");
  --ico-factory: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 21V10l6 4V10l6 4V6h3l1 15zM3 21h18'/%3E%3C/svg%3E");
  --ico-wa: url("assets/img/whatsapp.svg");
}

/* ========================================================== base */
html { scroll-padding-top: calc(var(--header-h) + 24px); }
body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--agit); }
:focus-visible { outline: 3px solid var(--agit); outline-offset: 2px; border-radius: 3px; }
h1, h2, h3, h4 { letter-spacing: -.02em; text-wrap: balance; }
p { text-wrap: pretty; }
strong { font-weight: 700; }
.wp-site-blocks { overflow-x: clip; }
.wp-block-post-content > *, .site-main > * { margin-block: 0; }
.wrap { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.wrap > *, .band > *, .page-head > * { margin-block: 0; }
.band { padding-block: var(--section-y); position: relative; overflow-x: clip; }
.band--tint { background: linear-gradient(180deg, var(--mint-2) 0%, #eef6f3 100%); }
.prose > * + * { margin-block-start: 1.05em; }
.prose p { max-width: 70ch; }
.prose h2 { font-size: clamp(1.4rem, 1.15rem + .8vw, 1.85rem); margin-block-start: 2.1rem; color: var(--ink); }
.prose > h2:first-child { margin-block-start: 0; }
.prose h3 { font-size: 1.2rem; margin-block-start: 1.6rem; }
.prose ul:not([class]) , .prose ol:not([class]) { padding-left: 1.2em; }
.prose ul:not([class]) li + li { margin-top: .35em; }
.band h2 { font-size: clamp(1.9rem, 1.3rem + 1.7vw, 2.75rem); }
.band .lead, .page-head .lead { font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); line-height: 1.6; }

/* pulsanti */
.wp-block-buttons { gap: .75rem; }
.wp-block-button__link { display: inline-flex; align-items: center; gap: .6rem; padding: .95rem 1.35rem; border-radius: 8px; border: 1.5px solid var(--agit-600); transition: background-color .2s, color .2s, transform .2s, box-shadow .2s; text-decoration: none; }
.wp-block-button__link::after { content: ""; width: 1.05em; height: 1.05em; background: currentColor; -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; transition: transform .2s; }
.wp-block-button__link:hover { background: var(--agit-700); border-color: var(--agit-700); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 18px -8px rgba(0, 94, 83, .6); }
.wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-light .wp-block-button__link { background: #fff; color: var(--agit-700); border-color: #fff; }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--mint); color: var(--agit-700); border-color: var(--mint); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: var(--agit-700); border-color: var(--agit-600); }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--agit-600); color: #fff; }
.prose .wp-block-buttons { margin-block-start: 1.6rem; }

/* puntini e cerchi (identità agit.it, rifatta in CSS) */
.ring-photo, .card__img, .frame-photo, .duo { position: relative; }
.ring-photo img, .card__img img { border-radius: 50%; aspect-ratio: 1; width: 100%; height: auto; object-fit: cover; position: relative; z-index: 1; }
.ring-photo::before, .card__img::before { content: ""; position: absolute; inset: -12px; border-radius: 50%; border: 1.5px solid transparent; background: linear-gradient(#fff, #fff) padding-box, conic-gradient(from 210deg, rgba(0, 138, 118, .7), rgba(0, 138, 118, .08) 40%, rgba(0, 138, 118, .45) 75%, rgba(0, 138, 118, .7)) border-box; transition: inset .35s; }
.ring-photo::after { content: ""; position: absolute; z-index: 0; right: -12%; bottom: -10%; width: 52%; height: 44%; background-image: var(--dots); background-size: 18px 18px; -webkit-mask-image: linear-gradient(130deg, #000 15%, rgba(0,0,0,.12)); mask-image: linear-gradient(130deg, #000 15%, rgba(0,0,0,.12)); }
.frame-photo img { border-radius: var(--radius); width: 100%; height: auto; display: block; }
.frame-photo::before { content: ""; position: absolute; z-index: -1; width: 200px; height: 170px; background-image: var(--dots); background-size: 18px 18px; -webkit-mask-image: linear-gradient(120deg, #000 10%, rgba(0,0,0,.15) 90%); mask-image: linear-gradient(120deg, #000 10%, rgba(0,0,0,.15) 90%); }
.frame-photo--dots-tr::before { right: -2.4rem; top: -2.4rem; }
.frame-photo--dots-bl::before { left: -2.4rem; bottom: -2.4rem; }
.wp-block-image { margin: 0; }
.wp-block-image img { vertical-align: top; }

/* ========================================================== testata */
.site-header-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
.topbar { background: var(--agit-600); color: #fff; font-size: .875rem; transition: margin-top .25s ease; }
.topbar__inner { display: flex; justify-content: flex-end; align-items: center; gap: 1.6rem; min-height: 38px; }
.topbar__inner > * { margin: 0; }
.topbar a { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; }
.topbar a:hover { color: #fff; text-decoration: underline; }
.tb a::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--ico-tel) center / contain no-repeat; mask: var(--ico-tel) center / contain no-repeat; }
.tb--mail a::before { -webkit-mask-image: var(--ico-mail); mask-image: var(--ico-mail); }
.lang-switch { display: inline-flex; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; overflow: hidden; font-weight: 700; font-size: .75rem; letter-spacing: .08em; }
.lang-switch a, .lang-switch span { padding: .2rem .65rem; color: #fff; text-decoration: none; line-height: 1.4; }
.lang-switch a[aria-current="page"] { background: #fff; color: var(--agit-700); }
.lang-switch a:hover { text-decoration: none; background: rgba(255,255,255,.18); }
.lang-switch a[aria-current="page"]:hover { background: #fff; }
.site-header { background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--line); transition: box-shadow .25s; }
.is-scrolled .site-header { box-shadow: 0 6px 22px -14px rgba(16, 40, 36, .45); }
.is-scrolled .topbar { margin-top: -38px; }
.header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: var(--header-h); }
.header__inner > * { margin: 0 !important; }
.brand { flex: none; }
.brand img { width: 140px; height: auto; display: block; }
.header-cta-wrap { flex: none; }
.header-cta .wp-block-button__link { padding: .8rem 1.25rem; }
.header-cta .wp-block-button__link::after { display: none; }

/* menu (wp:navigation): desktop sopra 1240px, sotto overlay a tutto schermo */
.site-header .site-nav { margin-left: auto !important; font-size: .96rem; font-weight: 500; }
.site-header .site-nav .wp-block-navigation__container { gap: 1.15rem; flex-wrap: nowrap; }
.site-header .site-nav .wp-block-navigation-item__content { color: var(--ink); text-decoration: none; padding-block: .45rem; position: relative; white-space: nowrap; }
.site-header .site-nav .wp-block-navigation-item__content:hover { color: var(--agit-700); }
.site-header .site-nav .current-menu-item > .wp-block-navigation-item__content::after,
.site-header .site-nav .wp-block-navigation-item__content[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px; background: var(--agit); }
.site-header .site-nav .wp-block-navigation__submenu-icon { margin-left: .3em; width: .65em; height: .65em; }
.site-header .site-nav .wp-block-navigation__submenu-container { background: #fff !important; border: 1px solid var(--line) !important; border-radius: 12px; box-shadow: var(--shadow); padding: .5rem !important; min-width: 270px !important; top: calc(100% + 6px) !important; }
.site-header .site-nav .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.site-header .site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem !important; border-radius: 8px; white-space: normal; }
.site-header .site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--mint); }
.site-header .site-nav .wp-block-navigation__responsive-container-open { width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 8px; justify-content: center; align-items: center; color: var(--ink); }

@media (max-width: 1239px) {
  .site-header .site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .site-header .site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
  .header-cta-wrap { margin-left: auto !important; }
  .site-header .site-nav { margin-left: .5rem !important; order: 3; }
}
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open { position: fixed !important; inset: 0; height: 100vh; max-height: 100vh; overflow-y: auto; -webkit-overflow-scrolling: touch; background: #fff !important; color: var(--ink) !important; padding: 1.25rem var(--gutter) 6rem !important; z-index: 100000; display: flex !important; flex-direction: column; }
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; position: static; margin-left: auto; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: 8px; align-items: center; justify-content: center; }
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 1rem !important; }
.site-header .site-nav .is-menu-open .wp-block-navigation__container { flex-direction: column !important; align-items: stretch !important; gap: 0 !important; width: 100%; }
.site-header .site-nav .is-menu-open .wp-block-navigation-item { width: 100%; flex-direction: column; align-items: stretch !important; border-bottom: 1px solid var(--line); }
.site-header .site-nav .is-menu-open .wp-block-navigation-item__content { width: 100%; text-align: left; padding: .9rem .2rem !important; font-size: 1.1rem; font-weight: 700; }
.site-header .site-nav .is-menu-open .wp-block-navigation__submenu-container { position: static !important; border: 0 !important; box-shadow: none !important; padding: 0 0 .6rem 1rem !important; min-width: 0 !important; background: transparent !important; opacity: 1 !important; visibility: visible !important; height: auto !important; width: auto !important; }
.site-header .site-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.site-header .site-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; font-weight: 500; padding: .45rem .2rem !important; }
.site-header .site-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
.site-header .site-nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }

/* ========================================================== hero (Home) */
.wp-block-cover.hero { padding: 0; min-height: clamp(520px, 74vh, 720px) !important; align-items: center; justify-content: flex-start; color: #fff; overflow: hidden; }
.hero .wp-block-cover__image-background { animation: agit-kb 26s ease-in-out infinite alternate; }
@keyframes agit-kb { from { transform: scale(1.02); } to { transform: scale(1.09) translate(-1.2%, -.8%); } }
.hero .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg, rgba(6, 30, 27, .9) 0%, rgba(6, 30, 27, .74) 40%, rgba(6, 30, 27, .2) 72%, rgba(6, 30, 27, 0) 100%) !important; }
.hero .wp-block-cover__inner-container { width: 100%; max-width: none; z-index: 2; }
.hero::after { content: ""; position: absolute; z-index: 1; right: var(--gutter); bottom: 2.5rem; width: 230px; height: 140px; background-image: radial-gradient(circle, rgba(255,255,255,.8) 1.6px, transparent 1.9px); background-size: 18px 18px; -webkit-mask-image: linear-gradient(120deg, #000 10%, rgba(0,0,0,.15) 90%); mask-image: linear-gradient(120deg, #000 10%, rgba(0,0,0,.15) 90%); pointer-events: none; }
.hero::before { content: ""; position: absolute; z-index: 1; right: 14%; top: 50%; width: clamp(240px, 26vw, 380px); aspect-ratio: 1; translate: 0 -50%; border-radius: 50%; border: 1.5px dashed rgba(255,255,255,.55); background: radial-gradient(circle closest-side, transparent calc(72% - 1px), rgba(255,255,255,.32) calc(72% - 1px), rgba(255,255,255,.32) 72%, transparent calc(72% + .5px)); animation: agit-spin 60s linear infinite; pointer-events: none; }
@keyframes agit-spin { to { rotate: 360deg; } }
.hero__inner { padding-block: 6rem 7.5rem; }
.hero__inner > * { max-width: 680px; margin-block: 0; }
.eyebrow { display: inline-flex; align-items: center; gap: .75rem; font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #9fe3d4; margin-bottom: 1.1rem !important; }
.eyebrow::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.hero__title { font-size: clamp(2.3rem, 1.4rem + 3vw, 3.85rem); line-height: 1.05; letter-spacing: -.03em; margin-bottom: 2rem !important; color: #fff; }
.facts { position: relative; z-index: 3; margin-top: -3.2rem !important; }
.facts__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); }
.facts__list li { padding: 1.4rem 1.6rem; display: flex; align-items: center; gap: 1rem; font-weight: 700; font-size: 1.05rem; line-height: 1.3; margin: 0; }
.facts__list li + li { border-left: 1px solid var(--line); }
.facts__list li::before { content: ""; flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--mint) var(--ico-clock) center / 22px no-repeat; }
.facts__list li::before { background: none; box-shadow: inset 0 0 0 23px var(--mint); position: relative; }
.facts__list li { position: relative; }
.facts__list li::after { content: ""; position: absolute; left: calc(1.6rem + 12px); top: 50%; translate: 0 -50%; width: 22px; height: 22px; background: var(--agit-700); -webkit-mask: var(--ico-clock) center / contain no-repeat; mask: var(--ico-clock) center / contain no-repeat; }
.facts__list li:nth-child(2)::after { -webkit-mask-image: var(--ico-draw); mask-image: var(--ico-draw); }
.facts__list li:nth-child(3)::after { -webkit-mask-image: var(--ico-drop); mask-image: var(--ico-drop); }

/* ========================================================== composizioni */
.split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 6rem); align-items: center; }
.split > * { margin: 0 !important; }
.split--rev > .prose { order: 2; }
.split .prose h2 { margin-bottom: 1.3rem; margin-top: 0; }
.band--intro { padding-top: calc(var(--section-y) + .5rem); }
.duo { display: grid; grid-template-columns: 1.15fr 1fr; gap: 1.2rem; align-items: end; }
.duo > * { margin: 0 !important; }
.duo img { border-radius: var(--radius); width: 100%; object-fit: cover; display: block; }
.duo__a img { aspect-ratio: 1; }
.duo__b img { aspect-ratio: 740 / 1060; }
.duo__b { transform: translateY(2.5rem); }
.duo::before { content: ""; position: absolute; left: -2.5rem; top: -2.5rem; width: 180px; height: 150px; z-index: -1; background-image: var(--dots); background-size: 18px 18px; -webkit-mask-image: linear-gradient(120deg, #000 10%, rgba(0,0,0,.15) 90%); mask-image: linear-gradient(120deg, #000 10%, rgba(0,0,0,.15) 90%); }

/* banda verde (fascia originale di agit.it) */
.band--green { background: radial-gradient(70% 90% at 12% 0%, rgba(0, 160, 136, .28) 0%, rgba(0, 160, 136, 0) 60%), radial-gradient(60% 80% at 100% 100%, rgba(4, 52, 46, .55) 0%, rgba(4, 52, 46, 0) 70%), linear-gradient(rgba(0, 84, 74, .5), rgba(0, 84, 74, .5)), url(assets/img/fascia-verde.webp) center bottom / cover no-repeat, var(--agit-600); color: #fff; text-align: center; isolation: isolate; overflow: clip; }
.band--green::before, .band--green::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.band--green::before { width: clamp(220px, 28vw, 420px); aspect-ratio: 1; left: -6vw; top: -8%; border: 1.5px dashed rgba(255, 255, 255, .22); animation: agit-spin 80s linear infinite; }
.band--green::after { width: clamp(140px, 16vw, 240px); aspect-ratio: 1; right: 4vw; bottom: 6%; background-image: radial-gradient(circle, rgba(255, 255, 255, .35) 1.6px, transparent 1.9px); background-size: 16px 16px; -webkit-mask-image: radial-gradient(circle, #000 35%, transparent 70%); mask-image: radial-gradient(circle, #000 35%, transparent 70%); animation: agit-drift 14s ease-in-out infinite alternate; }
@keyframes agit-drift { from { transform: translate(0, 0); } to { transform: translate(-18px, -12px); } }
.band--green h2, .band--green h2 a { color: #fff; text-decoration: none; }
.band--green h2 a:hover { text-decoration: underline; }
.band--green > .wrap > h2 { margin-bottom: 1rem; }
.band--green .lead { max-width: 66ch; margin: 0 auto 3rem !important; color: #effcf8; }
.band--green.band--cards { padding-top: 3rem; }

/* carte */
.cards { display: grid; gap: 1.25rem; text-align: left; }
.cards > * { margin: 0 !important; }
.cards--2 { grid-template-columns: repeat(2, 1fr); }
.cards--3 { grid-template-columns: repeat(3, 1fr); }
.cards--4 { grid-template-columns: repeat(4, 1fr); }
.cards--5 { grid-template-columns: repeat(5, 1fr); }
.cards--5 .card__img { width: min(72%, 200px); }
.card { position: relative; background: linear-gradient(180deg, #fff 60%, #f3f9f7 100%); color: var(--ink); border-radius: 14px; display: flex; flex-direction: column; align-items: center; padding: 1.6rem 1.25rem 1.4rem; transition: transform .25s ease, box-shadow .25s ease; }
.card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -16px rgba(0, 30, 26, .45); }
.card__img { width: min(64%, 240px); margin: 0 auto 1.1rem !important; }
.card__img::after { content: ""; position: absolute; right: -16%; bottom: -6%; width: 46%; height: 40%; background-image: radial-gradient(circle, var(--agit) 1.6px, transparent 1.9px); background-size: 14px 14px; opacity: .55; }
.card:hover .card__img::before { inset: -16px; }
.card__img img { transition: transform .5s ease; }
.card:hover .card__img img { transform: scale(1.04); }
.card__title { font-size: 1.1rem; margin: 0; text-align: center; letter-spacing: -.01em; }
.card__title a { color: var(--ink); text-decoration: none; }
.card__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.card:hover .card__title a { color: var(--agit-700); }
.card:focus-within { outline: 3px solid #fff; outline-offset: 3px; }
.cards--light .card { border: 1px solid var(--line); }
.band--others { background: var(--mint-2); }
.band--others h2 { text-align: center; margin-bottom: 2.4rem; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); }

/* CTA */
.band--cta { padding-block: clamp(2.5rem, 2rem + 2.5vw, 4.5rem); }
.cta__box { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: clamp(2rem, 4vw, 3.2rem) clamp(1.5rem, 4vw, 3.5rem); border-radius: 18px; background: radial-gradient(80% 140% at 100% 0%, rgba(0, 138, 118, .38) 0%, rgba(0, 138, 118, 0) 60%), linear-gradient(120deg, var(--navy) 0%, #1c2a3a 60%, #13343a 100%); color: #fff; }
.cta__box::before { content: ""; position: absolute; right: -20px; top: -20px; width: 260px; height: 200px; opacity: .5; background-image: var(--dots); background-size: 18px 18px; -webkit-mask-image: linear-gradient(200deg, #000 10%, transparent 80%); mask-image: linear-gradient(200deg, #000 10%, transparent 80%); }
.cta__box > * { position: relative; margin: 0 !important; }
.cta__text h2 { font-size: clamp(1.35rem, 1.05rem + 1vw, 1.95rem); color: #fff; margin: 0 0 .6rem; }
.cta__text p { margin: 0; color: #c9d3dc; max-width: 62ch; }

/* passi */
.steps-head { text-align: center; max-width: 880px; margin: 0 auto 3.4rem !important; }
.steps-head h2 { color: var(--agit-700); margin-bottom: 1.2rem; }
ol.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; position: relative; counter-reset: s; }
ol.steps::before { content: ""; position: absolute; left: 12.5%; right: 12.5%; top: 38px; height: 2px; background: repeating-linear-gradient(90deg, var(--agit) 0 6px, transparent 6px 12px); }
ol.steps li { text-align: center; position: relative; margin: 0; color: var(--ink-2); line-height: 1.45; padding-top: 96px; }
ol.steps li strong { display: block; font-size: 1.15rem; color: var(--ink); }
ol.steps li::before { content: ""; position: absolute; top: 0; left: 50%; translate: -50% 0; width: 76px; height: 76px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1.5px var(--agit); }
ol.steps li::after { counter-increment: s; content: "0" counter(s); position: absolute; top: -6px; left: calc(50% + 24px); font-size: .72rem; font-weight: 700; background: var(--agit-600); color: #fff; border-radius: 999px; padding: .15rem .45rem; line-height: 1.3; }
ol.steps li > strong::before { content: ""; position: absolute; top: 23px; left: 50%; translate: -50% 0; width: 30px; height: 30px; background: var(--agit-700); -webkit-mask: var(--ico-trace) center / contain no-repeat; mask: var(--ico-trace) center / contain no-repeat; }
ol.steps li:nth-child(2) > strong::before { -webkit-mask-image: var(--ico-check); mask-image: var(--ico-check); }
ol.steps li:nth-child(3) > strong::before { -webkit-mask-image: var(--ico-medal); mask-image: var(--ico-medal); }
ol.steps li:nth-child(4) > strong::before { -webkit-mask-image: var(--ico-cal); mask-image: var(--ico-cal); }

/* FAQ */
.faq { max-width: 980px; }
.faq > h2 { margin-bottom: 2rem; }
.faq__item { border-top: 1px solid var(--line); margin: 0 !important; }
.faq__item:last-child { border-bottom: 1px solid var(--line); }
.faq__item summary { list-style: none; cursor: pointer; padding: 1.35rem 3rem 1.35rem 0; font-weight: 700; font-size: 1.12rem; position: relative; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: ""; position: absolute; right: .4rem; top: 50%; width: 24px; height: 24px; translate: 0 -50%; border-radius: 50%; background: var(--mint) linear-gradient(var(--agit-700), var(--agit-700)) center / 10px 2px no-repeat; box-shadow: inset 0 0 0 1px var(--line); }
.faq__item:not([open]) summary::after { background: linear-gradient(var(--agit-700), var(--agit-700)) center / 10px 2px no-repeat, linear-gradient(var(--agit-700), var(--agit-700)) center / 2px 10px no-repeat, var(--mint); }
.faq__item summary:hover { color: var(--agit-700); }
.faq__item p { color: var(--ink-2); max-width: 80ch; margin: 0 0 1em; }
.faq__item[open] { padding-bottom: .6rem; }

/* ========================================================== pagine interne */
.page-head { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Ccircle cx='100' cy='100' r='98' fill='none' stroke='%23008a76' stroke-opacity='.3' stroke-width='.6' stroke-dasharray='2 3'/%3E%3Ccircle cx='100' cy='100' r='76' fill='none' stroke='%23ffffff' stroke-opacity='.7' stroke-width='14'/%3E%3C/svg%3E") right -8vw center / auto 165% no-repeat, radial-gradient(120% 140% at 88% 50%, #d3ebe4 0%, rgba(211, 235, 228, 0) 55%), linear-gradient(115deg, #f4faf8 0%, var(--mint) 55%, #dcefe9 100%); position: relative; }
.page-head::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 48px 48px; opacity: .5; -webkit-mask-image: linear-gradient(90deg, transparent 35%, #000); mask-image: linear-gradient(90deg, transparent 35%, #000); pointer-events: none; }
.page-head__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 3rem; align-items: center; padding-block: clamp(2.5rem, 2rem + 2vw, 3.75rem); }
.page-head__grid--solo { grid-template-columns: minmax(0, 1fr); }
.page-head__grid > * { margin: 0 !important; }
.page-head__text > * { margin-block: 0; }
.crumbs { font-size: .85rem; color: var(--ink-2); margin-bottom: .9rem !important; }
.crumbs a { color: var(--ink-2); text-decoration: none; }
.crumbs a:hover { color: var(--agit-700); text-decoration: underline; }
.crumbs .sep { color: var(--agit); margin-inline: .35rem; }
.page-title { font-size: clamp(2rem, 1.45rem + 1.9vw, 3rem); color: var(--agit-700); line-height: 1.08; }
.page-head .lead { margin-top: 1rem !important; max-width: 52ch; color: var(--ink); }
.page-head--photo .page-head__grid { padding-bottom: clamp(2.5rem, 2rem + 2vw, 3.75rem); }
.page-head__img.ring-photo { width: min(100%, 330px); justify-self: center; margin-block: 0 -5.5rem !important; z-index: 2; }
.page-head__img.ring-photo::before { box-shadow: 0 18px 40px -22px rgba(0, 60, 52, .55); }
.page-head__img.frame-photo { width: min(100%, 460px); justify-self: end; margin-block: 0 -4rem !important; z-index: 2; }
.page-head__img.frame-photo img { box-shadow: var(--shadow); }
.page-head__img.frame-photo::before { right: -2rem; bottom: -2rem; }
.band--body { padding-top: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.product { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.product > * { margin: 0 !important; }
.product > .prose { padding-top: 2.2rem; }
.aside { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-h) + 24px); display: grid; gap: 1rem; }
.aside > * { margin: 0 !important; }
.box { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem 1.5rem; background: #fff; }
.box > * { margin-block: 0; }
.box > * + * { margin-top: .7rem; }
.box__title { font-size: 1.08rem !important; color: var(--agit-700); letter-spacing: -.01em; }
.box p { font-size: .95rem; color: var(--ink-2); }
.box--dark { background: radial-gradient(90% 120% at 100% 0%, rgba(0, 138, 118, .35) 0%, rgba(0, 138, 118, 0) 65%), linear-gradient(150deg, var(--navy), #152a33); border-color: var(--navy); color: #fff; }
.box--dark .box__title { color: #fff; }
.box--dark p { color: #c6ceda; }
.box--dark .wp-block-buttons { margin-top: 1.1rem; }
.box--contacts > * + * { margin-top: .5rem; }
.cl { margin: 0; font-weight: 700; color: var(--ink); }
.cl a { color: var(--ink); text-decoration: none; display: inline-flex; align-items: center; gap: .65rem; }
.cl a:hover { color: var(--agit-700); text-decoration: underline; }
.cl a::before, .cl--fax::before, .cl--vat::before { content: ""; flex: none; width: 18px; height: 18px; background: var(--agit-700); -webkit-mask: var(--ico-tel) center / contain no-repeat; mask: var(--ico-tel) center / contain no-repeat; }
.cl--mail a::before { -webkit-mask-image: var(--ico-mail); mask-image: var(--ico-mail); }
.cl--pin a::before { -webkit-mask-image: var(--ico-pin); mask-image: var(--ico-pin); }
.cl--wa a::before { background: var(--ico-wa) center / contain no-repeat; -webkit-mask: none; mask: none; }
.cl--fax, .cl--vat { display: flex; align-items: center; gap: .65rem; font-weight: 500; }
.cl--fax::before { -webkit-mask-image: var(--ico-fax); mask-image: var(--ico-fax); }
.cl--vat::before { -webkit-mask-image: var(--ico-doc); mask-image: var(--ico-doc); }
.doc-links, .rel-links { list-style: none; margin: 0; padding: 0; font-size: .95rem; }
.doc-links li, .rel-links li { margin: 0; }
.doc-links li + li, .rel-links li + li { border-top: 1px solid var(--line); }
.doc-links a, .rel-links a { display: flex; gap: .6rem; padding: .55rem 0; color: var(--ink); text-decoration: none; line-height: 1.35; }
.doc-links a:hover, .rel-links a:hover { color: var(--agit-700); }
.doc-links a::before { content: ""; flex: none; width: 18px; height: 20px; background: var(--agit-700); -webkit-mask: var(--ico-doc) center / contain no-repeat; mask: var(--ico-doc) center / contain no-repeat; }
.rel-links a::before { content: ""; flex: none; width: 14px; height: 20px; background: var(--agit-700); -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; }

/* elenchi del testo */
.prose ul.features { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.prose ul.features li { margin: 0; padding: 1rem 1.1rem 1rem 2.7rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--mint-2); position: relative; line-height: 1.5; }
.prose ul.features li::before { content: ""; position: absolute; left: 1rem; top: 1.25rem; width: 16px; height: 16px; background: var(--agit-600); -webkit-mask: var(--ico-check) center / contain no-repeat; mask: var(--ico-check) center / contain no-repeat; }
.prose ul.features li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.prose ul.features strong { color: var(--agit-700); }
.prose ul.chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.prose ul.chips li { margin: 0; display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1rem; border-radius: 999px; background: var(--mint); color: var(--agit-700); font-weight: 700; font-size: .95rem; }
.prose ul.chips li::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ico-factory) center / contain no-repeat; mask: var(--ico-factory) center / contain no-repeat; }

/* pagine sorelle */
.band--siblings { padding-block: 2.2rem 2.6rem; border-top: 1px solid var(--line); }
.siblings { display: grid; grid-template-columns: auto 1fr; gap: 1.5rem 2rem; align-items: center; }
.siblings__title { font-size: 1.15rem !important; margin: 0 !important; white-space: nowrap; }
.siblings__title a { color: var(--ink); text-decoration: none; }
.siblings__title a:hover { color: var(--agit-700); }
ul.pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
ul.pills li { margin: 0; }
ul.pills a { display: inline-block; font-size: .9rem; padding: .45rem .85rem; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; color: var(--ink); background: #fff; transition: border-color .2s, color .2s, background-color .2s; }
ul.pills a:hover { border-color: var(--agit); color: var(--agit-700); }
ul.pills a[aria-current="page"] { background: var(--agit-600); color: #fff; border-color: var(--agit-600); }

/* scopri di più */
.band--more { background: linear-gradient(180deg, #fff 0%, var(--mint-2) 100%); }
.more__title { text-align: center; margin-bottom: 2.2rem !important; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem) !important; }
.tcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.tcards > * { margin: 0 !important; }
.tcard { position: relative; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.8rem; background: #fff; transition: transform .25s, box-shadow .25s, border-color .25s; }
.tcard:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: transparent; }
.tcard::before { content: ""; display: block; width: 48px; height: 48px; border-radius: 12px; background: var(--mint); margin-bottom: 1rem; }
.tcard::after { content: ""; position: absolute; left: calc(1.8rem + 12px); top: calc(1.8rem + 12px); width: 24px; height: 24px; background: var(--agit-700); -webkit-mask: var(--ico-layers) center / contain no-repeat; mask: var(--ico-layers) center / contain no-repeat; }
.tcard--gear::after { -webkit-mask-image: var(--ico-gear); mask-image: var(--ico-gear); }
.tcard--doc::after { -webkit-mask-image: var(--ico-doc); mask-image: var(--ico-doc); }
.tcard > * { margin-block: 0; }
.tcard h3 { font-size: 1.25rem; margin-bottom: .6rem; }
.tcard h3 a { color: var(--agit-700); text-decoration: none; }
.tcard h3 a::before { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--radius); }
.tcard p, .tcard ul { font-size: .95rem; color: var(--ink-2); }
.tcard ul { margin: 0; padding-left: 1.1rem; }

/* coppia di foto piccole (alla misura naturale) */
.photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 500px)); gap: 1rem; margin-top: 2rem !important; }
.photo-pair > * { margin: 0 !important; }
.frame-photo--small img { aspect-ratio: 16 / 9; object-fit: cover; }
.frame-photo--small::before { display: none; }

/* Download */
.doc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.doc-grid > * { margin: 0 !important; }
.doc-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.doc-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.doc-card > * { margin: 0; }
.doc-card__img { border-bottom: 1px solid var(--line); }
.doc-card__img img { width: 100%; aspect-ratio: 816 / 528; object-fit: cover; display: block; }
.doc-card__title { font-size: 1.15rem !important; padding: 1.2rem 1.3rem 0; line-height: 1.25; }
.doc-card__title a { color: var(--agit-700); text-decoration: none; }
.doc-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.doc-card__list { margin: .8rem 1.3rem 0 !important; padding-left: 1.1rem; font-size: .93rem; color: var(--ink-2); flex: 1; }
.doc-card__meta { margin: 1rem 1.3rem 1.2rem !important; display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; color: var(--agit-700); }
.doc-card__meta::before { content: ""; width: 16px; height: 18px; background: currentColor; -webkit-mask: var(--ico-doc) center / contain no-repeat; mask: var(--ico-doc) center / contain no-repeat; }

/* Certificazioni */
.cert-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; }
.cert-grid > * { margin: 0 !important; }
.cert-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1rem 1.2rem; transition: transform .25s, box-shadow .25s; }
.cert-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.cert-card > * { margin: 0; }
.cert-card__img img { width: 100%; aspect-ratio: 700 / 990; object-fit: cover; object-position: top; border-radius: 6px; border: 1px solid var(--line); display: block; }
.cert-card__title { font-size: 1.1rem !important; margin-top: 1rem !important; line-height: 1.25; }
.cert-card__title a { color: var(--ink); text-decoration: none; }
.cert-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.cert-card__link { margin-top: .5rem !important; font-size: .92rem; }
.cert-card__link a { color: var(--agit-700); text-decoration: none; font-weight: 700; display: inline-flex; gap: .4rem; align-items: center; }
.cert-card__link a::after { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; }

/* Contatti */
.band--tiles { padding-block: 2.5rem 0; }
.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.tiles > * { margin: 0 !important; }
.tile { position: relative; background: linear-gradient(145deg, #1f2a3c, var(--navy) 60%, #16303a); color: #fff; border-radius: var(--radius); padding: 1.5rem 1.4rem 1.4rem 4.4rem; transition: transform .25s, background-color .25s; }
.tile:hover { transform: translateY(-3px); background: #232b40; }
.tile > * { margin: 0; }
.tile::before { content: ""; position: absolute; left: 1.4rem; top: 50%; translate: 0 -50%; width: 30px; height: 30px; background: #9fe3d4; -webkit-mask: var(--ico-tel) center / contain no-repeat; mask: var(--ico-tel) center / contain no-repeat; }
.tile--mail::before { -webkit-mask-image: var(--ico-mail); mask-image: var(--ico-mail); }
.tile--pin::before { -webkit-mask-image: var(--ico-pin); mask-image: var(--ico-pin); }
.tile--wa::before { background: var(--ico-wa) center / contain no-repeat; -webkit-mask: none; mask: none; }
.tile__label a { color: #fff; text-decoration: none; font-weight: 700; font-size: 1.15rem; }
.tile__label a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.tile__sub { color: #c6ceda; font-size: .9rem; margin-top: .2rem !important; overflow-wrap: anywhere; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.contact-grid > * { margin: 0 !important; }
.box--company .addr { color: var(--ink); }
.contact-form { display: grid; gap: 1rem; }
.contact-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-form .field { margin: 0; display: grid; gap: .35rem; }
.contact-form label { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.contact-form input[type=text], .contact-form input[type=email], .contact-form input[type=tel], .contact-form textarea { font: inherit; font-size: 1rem; padding: .8rem .9rem; border: 1px solid #b9c9c4; border-radius: 8px; background: #fff; color: var(--ink); width: 100%; box-sizing: border-box; }
.contact-form input:focus, .contact-form textarea:focus { outline: 3px solid rgba(0, 138, 118, .35); border-color: var(--agit-600); }
.contact-form input[type=file] { font: inherit; font-size: .92rem; padding: .8rem; border: 1.5px dashed #b9c9c4; border-radius: 8px; background: var(--mint-2); width: 100%; box-sizing: border-box; }
.contact-form .consent { margin: 0; display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; }
.contact-form .consent label { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .92rem; color: var(--ink); }
.contact-form .consent input { margin-top: .25rem; width: 18px; height: 18px; accent-color: var(--agit-600); }
.contact-form .btn-submit { font: 700 .95rem/1 "DM Sans", sans-serif; padding: 1rem 1.6rem; border-radius: 8px; border: 0; background: var(--agit-600); color: #fff; }
.fp-form-notice { margin: 0; padding: .9rem 1rem; border-left: 4px solid var(--agit-600); background: var(--mint); border-radius: 6px; font-size: .92rem; color: var(--ink); }
.contact-form-preview { border: 1px dashed var(--line); padding: 1rem; border-radius: 8px; }

/* testi legali e sitemap */
.prose--legal { max-width: 860px; }
.prose--legal h2 { font-size: 1.2rem; margin-top: 1.8rem; }
.prose--legal p { max-width: none; }
.sitemap-list { columns: 3 240px; column-gap: 2.5rem; padding-left: 1.1rem; }
.sitemap-list li { margin: 0 0 .45rem; break-inside: avoid; }
.not-found-title { font-size: clamp(2rem, 1.45rem + 1.9vw, 3rem); color: var(--agit-700); }

/* ========================================================== piè di pagina */
.site-footer-part { background: radial-gradient(60% 120% at 0% 0%, rgba(0, 138, 118, .16) 0%, rgba(0, 138, 118, 0) 60%), linear-gradient(180deg, #1b2233 0%, var(--navy) 40%, #141927 100%); color: #c6ceda; font-size: .95rem; position: relative; }
.site-footer-part::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--agit) 0%, #36b39c 45%, rgba(0, 138, 118, 0) 100%); }
.foot-grid { display: grid; grid-template-columns: 1.1fr 1fr 1.6fr 1fr; gap: 2.5rem; padding-block: 4.5rem 3rem; }
.foot-grid > * { margin: 0 !important; }
.foot-col > * { margin-block: 0; }
.foot-logo img { width: 130px; height: auto; display: block; margin-bottom: 1.2rem; }
.foot-addr { line-height: 1.8; }
.foot-addr strong { color: #fff; }
.foot-title { color: #fff; font-size: .82rem !important; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1.1rem !important; }
.foot-list { list-style: none; margin: 0; padding: 0; }
.foot-list li { margin: 0 0 .45rem; }
.site-footer-part a { color: #e3e8ef; text-decoration: none; }
.site-footer-part a:hover { color: #8fe6d3; text-decoration: underline; }
.foot-col--seals .foot-list { columns: 2; column-gap: 1.6rem; }
.foot-col--seals .foot-list li { break-inside: avoid; }
.legal { border-top: 1px solid rgba(255,255,255,.1); }
.legal__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem 2rem; padding-block: 1.4rem; font-size: .82rem; color: #9fabba; }
.legal__inner > * { margin: 0 !important; }
.legal-links { white-space: nowrap; }
.legal-links a, .foot-addr a { text-decoration: underline; text-underline-offset: .2em; }
.powered a { display: inline-flex; align-items: center; gap: .45rem; color: #c6ceda; font-size: .82rem; line-height: 1; text-decoration: none; }
.powered a:hover { color: #fff; }
.powered img { width: 18px; height: 18px; padding: 4px; box-sizing: content-box; background: #fff; border-radius: 50%; display: block; flex: none; }

/* torna su */
.to-top { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: calc(18px + var(--lift, 0px)); z-index: 60; width: 48px; height: 48px; border-radius: 50%; border: 0; background: linear-gradient(145deg, var(--agit-600), var(--agit-700)); color: #fff; cursor: pointer; box-shadow: 0 10px 24px -10px rgba(0, 60, 52, .7); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s, transform .25s, visibility 0s .25s; }
.to-top.is-shown { opacity: 1; visibility: visible; transform: none; transition: opacity .25s, transform .25s; }
.to-top span { display: block; width: 20px; height: 20px; margin: auto; background: currentColor; -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; transform: rotate(-90deg); }
.to-top:hover { background: linear-gradient(145deg, var(--agit-700), var(--agit-900)); }
.to-top:focus-visible { outline: 3px solid var(--agit); outline-offset: 3px; }

/* ========================================================== comparse (solo transform: il contrasto non cala mai) */
.rv { transform: translateY(22px); transition: transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--rv-i, 0) * 70ms); }
.rv.rv-in { transform: none; }
.duo__b.rv { transform: translateY(calc(2.5rem + 22px)); }
.duo__b.rv.rv-in { transform: translateY(2.5rem); }

/* ========================================================== responsive */
@media (max-width: 1100px) {
  .cards--5 { grid-template-columns: repeat(3, 1fr); }
  .cards--5 > :nth-child(10) { grid-column: 2; }
  .cert-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards--4 { grid-template-columns: repeat(2, 1fr); }
  .foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .cards--5 { grid-template-columns: repeat(2, 1fr); }
  .cards--5 > :nth-child(10) { grid-column: auto; }
  .split, .page-head__grid, .product, .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .split--rev > .prose { order: 0; }
  .cards--3, .tcards, .doc-grid { grid-template-columns: repeat(2, 1fr); }
  .tiles { grid-template-columns: repeat(2, 1fr); }
  ol.steps { grid-template-columns: 1fr 1fr; row-gap: 2.5rem; }
  ol.steps::before { display: none; }
  .facts__list { grid-template-columns: 1fr; }
  .facts__list li + li { border-left: 0; border-top: 1px solid var(--line); }
  .cta__box { grid-template-columns: 1fr; }
  .hero::before { display: none; }
  .page-head__img.ring-photo { margin: .5rem auto -4.5rem !important; width: min(70%, 290px); }
  .page-head__img.frame-photo { margin: .5rem 0 -3rem !important; justify-self: start; }
  .aside { position: static; }
  .product > .prose { padding-top: 3.5rem; }
  .duo__b, .duo__b.rv, .duo__b.rv.rv-in { transform: none; }
  .siblings { grid-template-columns: 1fr; gap: 1rem; }
}
@media (max-width: 760px) {
  .hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(6, 30, 27, .82) 0%, rgba(6, 30, 27, .8) 70%, rgba(6, 30, 27, .55) 100%) !important; }
}
@media (max-width: 600px) {
  .cards--3, .cards--2, .cards--4, .cards--5, .tcards, .doc-grid { grid-template-columns: 1fr; }
  .cert-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tiles { grid-template-columns: 1fr; }
  .prose ul.features { grid-template-columns: 1fr; }
  .contact-form .row { grid-template-columns: 1fr; }
  .topbar__inner { justify-content: space-between; gap: .8rem; font-size: .8rem; }
  .tb--mail { display: none; }
  .foot-grid { grid-template-columns: 1fr; }
  .hero__inner { padding-block: 4rem 6rem; }
  .brand img { width: 118px; }
  :root { --header-h: 68px; }
  .card__img { width: min(56%, 220px); }
  .hero::after { width: 140px; height: 90px; bottom: 4.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .to-top, .to-top.is-shown { transition: none; transform: none; }
  .hero .wp-block-cover__image-background, .hero::before, .band--green::before, .band--green::after { animation: none; }
  .rv { transform: none !important; transition: none !important; }
  .card, .tcard, .doc-card, .cert-card, .tile, .wp-block-button__link { transition: none; }
}
