/* Caratteri ospitati sul nostro server (V2.0.116): niente Google Fonts, piu' veloce e nessun dato dei visitatori a Google (nLPD).
   File in assets/fonts/ (licenza SIL Open Font License 1.1), solo la parte «latin»: basta per italiano, francese, tedesco e inglese. */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('assets/fonts/space-grotesk-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-display:swap;src:url('assets/fonts/ibm-plex-sans-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500 600;font-display:swap;src:url('assets/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/* =====================================================================
   SITO PUBBLICO (V2.0.209) - un solo sistema di stile per tutte le pagine,
   preso dal modulo del profilo: campi alti con angoli morbidi, pulsanti rossi,
   carte bianche con ombra leggera, titoli in Space Grotesk.
   Parti del file:
     1. gettoni e base            5. sezioni, carte, passi, domande
     2. intestazione e menu       6. home (modulo, cartina, tappe, numeri)
     3. piede di pagina           7. offerte e «lavoro per mestiere»
     4. intestazione di pagina    8. chi siamo, contatti, legale, documenti
   In fondo, invariati: i componenti dei moduli e il modulo del profilo.
   ===================================================================== */

/* ---------- 1. gettoni e base ---------- */
:root{
  --paper:#FAF9F6; --ink:#1B1F23; --red:#D6402C; --slate:#5F676E; --red-text:#C23A26;
  --line:#DEDBD3; --green:#1B1F23; --cream-card:#F1EFE8;
  /* usati anche dal modulo del profilo: non cambiarli */
  --r:20px; --btn:#C4361F;
  --shadow:0 1px 2px rgba(27,31,35,.05), 0 14px 34px -16px rgba(27,31,35,.18);
  --shadow-hover:0 2px 4px rgba(27,31,35,.06), 0 22px 44px -18px rgba(27,31,35,.26);
  /* sito pubblico */
  --cream:#F3F1EA; --field:#F7F6F3; --line-strong:#CFCCC4; --btn-hover:#AA2E1A;
  --r-field:12px; --r-card:20px; --r-panel:28px;
  --wrap:1240px; --gutter:32px;
  --shadow-panel:0 40px 70px -40px rgba(27,31,35,.35);
  accent-color:var(--ink);
}
*{box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent;}
html{background:var(--cream); scroll-behavior:smooth; overflow-x:hidden; max-width:100%; scroll-padding-top:88px; -webkit-text-size-adjust:100%;}
[id]{scroll-margin-top:88px}
body{position:relative; z-index:0; background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', sans-serif; line-height:1.5; -webkit-font-smoothing:antialiased; overflow-x:hidden; max-width:100%;}
h1,h2,h3{font-family:'Space Grotesk', sans-serif; font-weight:600; letter-spacing:-0.01em; overflow-wrap:break-word;}
p{overflow-wrap:break-word;}
img,svg{max-width:100%;}
.mono{font-family:'IBM Plex Mono', monospace; letter-spacing:0.02em;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:calc(var(--wrap) + 2 * var(--gutter)); margin:0 auto; padding:0 var(--gutter);}
button{-webkit-appearance:none; appearance:none; background:none; border:none; font-family:inherit; font-size:inherit; color:inherit;}
input:focus-visible, select:focus-visible, textarea:focus-visible,
button:focus-visible, .chip-toggle:focus-visible, .card-option input:focus-visible + .opt-label{outline:2px solid var(--red); outline-offset:2px;}
:focus-visible{outline:2px solid var(--red); outline-offset:3px}
main:focus{outline:none}
section{padding:60px 0;}
.visually-hidden{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.skip-link{position:absolute; left:12px; top:-60px; z-index:300; background:var(--ink); color:var(--paper); padding:12px 18px; border-radius:var(--r-field); font-size:.95rem; transition:top .15s ease;}
.skip-link:focus{top:12px;}
/* parole lunghe (soprattutto in tedesco): vanno a capo senza uscire dallo schermo; il trattino solo sui titoli in tedesco, su schermo stretto */
main :where(h1,h2,h3,p,li,summary,label,a,dd){overflow-wrap:break-word}
@media (max-width:600px){ main :where(h1,h2,h3):lang(de){hyphens:auto} }
@media (max-width:760px){ :root{--gutter:20px} }
@media (max-width:380px){ :root{--gutter:16px} }

/* pulsanti */
.ag2-btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; height:52px; padding:0 24px; border-radius:var(--r-field); border:1.5px solid transparent;
  font:700 1rem/1 'Space Grotesk',sans-serif; letter-spacing:-.005em; text-decoration:none; text-align:center; cursor:pointer; white-space:nowrap;
  transition:background-color .18s, border-color .18s, transform .18s, box-shadow .18s;}
.ag2-btn svg{width:18px; height:18px; flex:none}
.ag2-btn-red{background:var(--btn); color:#fff}
.ag2-btn-red:hover{background:var(--btn-hover); transform:translateY(-1px); box-shadow:0 14px 26px -14px rgba(196,54,31,.75)}
.ag2-btn-ghost{background:#fff; border-color:var(--line); color:var(--ink)}
.ag2-btn-ghost:hover{border-color:var(--ink)}
.ag2-ctas{display:flex; flex-wrap:wrap; gap:12px}

/* ---------- 2. intestazione e menu ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(250,249,246,.9); -webkit-backdrop-filter:saturate(1.4) blur(10px); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line); transform:translateY(0); transition:transform .25s ease;}
header.header-hide{transform:translateY(-100%);}
nav{display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; padding:0 var(--gutter); max-width:calc(var(--wrap) + 2 * var(--gutter)); margin:0 auto;}
.logo{font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:1.18rem; letter-spacing:-.02em; display:flex; align-items:center; gap:9px; min-height:44px; flex:none}
.logo-mark{width:28px; height:auto; flex-shrink:0;}
.logo-dot{color:var(--red); display:inline-block; will-change:transform; transform-origin:50% 65%}
/* V2.3.10: la pallina rimbalza sulle punte degli scalini del simbolo e torna tra «passo» e «oltre» (main.js); ferma con prefers-reduced-motion */
.nav-menu{display:flex; align-items:center; flex:1; justify-content:space-between; gap:24px; min-width:0}
.nav-links{display:flex; align-items:center; gap:4px; margin-left:8px}
.nav-links a{display:inline-flex; align-items:center; min-height:40px; padding:0 12px; border-radius:10px; font-size:.95rem; color:#3c4248; white-space:nowrap; transition:color .15s, background-color .15s}
.nav-links a:hover{color:var(--ink); background:rgba(27,31,35,.05)}
.nav-links a.is-current-page{color:var(--red-text); font-weight:600}
.nav-ctas{display:flex; align-items:center; gap:10px}
.nav-agency, .nav-cta{display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:var(--r-field); font:600 .92rem/1 'Space Grotesk',sans-serif; white-space:nowrap; transition:background-color .15s, border-color .15s}
.nav-agency{color:var(--ink); border:1.5px solid var(--line); background:#fff}
.nav-agency:hover{border-color:var(--ink)}
.nav-cta{color:#fff; background:var(--btn); border:1.5px solid var(--btn)}
.nav-cta:hover{background:var(--btn-hover); border-color:var(--btn-hover); color:#fff}
.nav-cta-mobile{display:none}
.nav-langs{display:none}
.burger{display:none; width:44px; height:44px; align-items:center; justify-content:center; border-radius:var(--r-field); font-size:1.35rem; line-height:1; color:var(--ink); cursor:pointer}
.burger:hover{background:rgba(27,31,35,.05)}
/* lingua: tendina senza script */
.lang-menu{position:relative; display:inline-block; border:0; padding:0; font-family:'IBM Plex Mono', monospace; font-size:.85rem}
.lang-menu summary{display:flex; align-items:center; gap:4px; min-height:42px; padding:0 12px; border-radius:var(--r-field); list-style:none; cursor:pointer; color:var(--slate); font:500 .85rem 'IBM Plex Mono',monospace}
.lang-menu summary::-webkit-details-marker{display:none}
.lang-menu summary::after, .lang-menu[open] summary::after{content:''; width:7px; height:7px; margin:-3px 0 0 4px; border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); font-size:0}
.lang-menu[open] summary::after{transform:rotate(-135deg); margin-top:3px}
.lang-menu summary:hover, .lang-menu[open] summary{color:var(--ink); background:rgba(27,31,35,.05)}
.lang-menu:not([open]) .lang-menu-list{display:none}
.lang-menu-list{position:absolute; right:0; top:calc(100% + 8px); z-index:60; min-width:180px; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:14px; padding:6px; box-shadow:var(--shadow-hover)}
.lang-menu-list a{display:flex; align-items:center; min-height:42px; padding:0 12px; border-radius:10px; color:var(--ink); font-family:'IBM Plex Sans',sans-serif; font-size:.95rem}
.lang-menu-list a:hover{background:var(--cream); color:var(--red-text)}
@media (max-width:1440px){ nav{gap:16px} .nav-menu{gap:16px} .nav-links{margin-left:0; gap:0} .nav-links a{padding:0 9px; font-size:.92rem} .nav-ctas{gap:8px} .nav-agency, .nav-cta{padding:0 14px} .lang-menu summary{padding:0 8px} }
/* telefono e tablet: menu a scomparsa (francese e tedesco hanno voci lunghe) */
@media (max-width:1240px){
  header.header-hide{transform:none}
  nav{flex-wrap:wrap; gap:0 8px; min-height:64px}
  .nav-menu{display:none}
  .nav-cta-mobile{display:inline-flex; order:2; margin-left:auto; min-height:42px; padding:0 16px}
  .burger{display:inline-flex; order:3}
  nav.nav-open .nav-cta-mobile{visibility:hidden}
  nav.nav-open .nav-menu{order:4; display:flex; flex-basis:100%; flex-direction:column; align-items:stretch; gap:0; margin:4px 0 0; padding:8px 0 18px; border-top:1px solid var(--line)}
  nav.nav-open .nav-links{flex-direction:column; align-items:stretch; gap:2px; margin:0; padding:4px 0 10px}
  nav.nav-open .nav-links a{min-height:50px; padding:0 12px; font-size:1.06rem; color:var(--ink)}
  nav.nav-open .nav-links a.is-current-page{color:var(--red-text); background:rgba(214,64,44,.07)}
  nav.nav-open .nav-ctas{flex-direction:column; align-items:stretch; gap:10px; padding:12px 0 6px; border-top:1px solid var(--line)}
  nav.nav-open .nav-agency, nav.nav-open .nav-ctas .nav-cta{min-height:52px; font-size:1rem}
  .lang-menu{display:none}
  nav.nav-open .nav-langs{display:flex; justify-content:center; gap:6px; padding:10px 0 0; font-family:'IBM Plex Mono', monospace; font-size:.92rem}
  .nav-langs a, .nav-langs span{display:inline-flex; align-items:center; justify-content:center; min-width:48px; min-height:44px; border-radius:var(--r-field)}
  .nav-langs a{color:var(--slate)}
  .nav-langs a:hover{background:rgba(27,31,35,.05); color:var(--ink)}
  .nav-langs span{color:var(--ink); font-weight:600; background:var(--cream)}
}
@media (max-width:420px){
  .logo{font-size:1.06rem; gap:7px} .logo-mark{width:24px}
  .nav-cta-mobile{padding:0 12px; font-size:.86rem; min-height:40px}
  .burger{width:42px; height:42px}
}
@media (max-width:340px){ .logo-word{font-size:.98rem} .nav-cta-mobile{padding:0 10px; font-size:.8rem} }

/* ---------- 3. piede di pagina ---------- */
footer{background:var(--cream); border-top:1px solid var(--line); padding:64px 0 32px; font-size:.92rem; color:var(--slate)}
.footer-grid{display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr 1fr; gap:32px; margin-bottom:44px}
.footer-col h3{font:500 .8rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; color:var(--ink); margin:10px 0 12px}
.footer-col a:not(.footer-logo){display:flex; align-items:center; min-height:36px; color:var(--slate); transition:color .15s}
.footer-col a:not(.footer-logo):hover{color:var(--red-text)}
.footer-col a.footer-logo{display:inline-flex; align-items:center; gap:10px; font:700 1.15rem 'Space Grotesk',sans-serif; letter-spacing:-.02em; color:var(--ink); min-height:44px}
.footer-logo .logo-mark{width:27px; height:auto; flex-shrink:0; display:block}
.footer-tagline{font-size:.85rem; color:var(--ink); margin:6px 0 12px}
.footer-text{max-width:320px; line-height:1.6}
.footer-address{display:block; margin-top:16px; font-size:.85rem; color:var(--ink); font-style:normal; line-height:1.7}
.footer-legal{display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; border-top:1px solid var(--line); padding-top:22px; font-size:.86rem}
.footer-version{font-family:'IBM Plex Mono', monospace; font-size:.8rem; color:var(--slate)}
@media (max-width:980px){ .footer-grid{grid-template-columns:1fr 1fr 1fr} .footer-col-brand{grid-column:1 / -1} }
@media (max-width:400px){ .footer-grid{grid-template-columns:minmax(0,1fr)} }
@media (max-width:620px){ footer{padding:48px 0 28px} .footer-grid{grid-template-columns:1fr 1fr; gap:24px 20px; margin-bottom:32px} .footer-col a:not(.footer-logo){min-height:44px} }

/* ---------- 4. intestazione di pagina ---------- */
.ag2-hero{position:relative; background:transparent; color:var(--ink); padding:48px 0 52px; scroll-margin-top:0}
.ag2-hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:56px; align-items:center}
.ag2-hero-copy{min-width:0; max-width:880px}
.ag2-eyebrow{display:inline-flex; align-items:center; gap:9px; max-width:100%; background:#FBECE8; color:var(--red-text); padding:8px 14px; border-radius:99px;
  font:500 .8rem/1.3 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase; margin-bottom:22px}
.ag2-eyebrow::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--red); flex:none}
.ag2-hero h1{font-size:clamp(2rem, 1.2rem + 2.6vw, 3.1rem); line-height:1.05; letter-spacing:-.04em; font-weight:700; color:var(--ink); margin-bottom:22px}
.ag2-hero h1{text-wrap:pretty}
.ag2-hero h1 em{display:block; font-style:normal; color:var(--red)}
.ag2-sub{font-size:1.15rem; line-height:1.6; color:var(--slate); max-width:600px; margin-bottom:32px}
.ag2-hero-copy > :last-child{margin-bottom:0}
.ag2-already{margin-top:18px; font-size:.95rem; color:var(--slate)}
.ag2-already a{color:var(--ink); text-decoration:underline; text-underline-offset:3px; font-weight:500}
/* scelta «chi sei» (agenzie / alloggi) */
.ag2-switch{position:relative; display:flex; width:max-content; max-width:100%; flex-wrap:wrap; align-items:center; gap:2px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:4px; margin:0 0 22px; box-shadow:var(--shadow); view-transition-name:ag2-switch}
.ag2-switch > span{font:500 .8rem 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); padding:0 10px 0 12px}
.ag2-switch a{display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 20px; border-radius:999px; font:600 .95rem 'Space Grotesk',sans-serif; color:var(--ink); transition:background-color .2s}
.ag2-switch a:not(.is-on):hover{background:var(--cream)}
.ag2-switch a.is-on{background:var(--ink); color:#fff; box-shadow:0 6px 14px -8px rgba(27,31,35,.6); view-transition-name:ag2-switch-on}
/* carta d'esempio a destra (agenzie, alloggi) */
.ag2-card-wrap{display:flex; justify-content:center}
.ag2-card{position:relative; width:100%; max-width:360px; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:24px; padding:24px; box-shadow:var(--shadow-panel); transform:rotate(2deg)}
.ag2-card-tag{position:absolute; top:-13px; right:18px; background:var(--red); color:#fff; font:500 .75rem 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase; padding:6px 11px; border-radius:99px}
.ag2-card-head{display:flex; gap:14px; align-items:center; margin-bottom:16px}
.ag2-card-head > div{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.ag2-avatar{width:56px; height:56px; border-radius:50%; background:var(--ink); color:#fff; display:grid; place-items:center; font:700 1.05rem 'Space Grotesk',sans-serif; flex:none}
.ag2-avatar-home svg{width:28px; height:28px}
.ag2-card-head strong{display:block; font:700 1.12rem 'Space Grotesk',sans-serif}
.ag2-card-head span:not(.ag2-avatar){display:block; font-size:.95rem; color:var(--ink)}
.ag2-card-head small{color:var(--slate); font-size:.875rem}
.ag2-chips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px}
.ag2-chips span{border:1.5px solid var(--line); border-radius:99px; padding:5px 12px; font-size:.875rem; font-weight:500}
.ag2-zone{font:500 .875rem 'IBM Plex Mono',monospace; color:var(--slate); margin-bottom:12px}
.ag2-badges{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px}
.ag2-badges span{display:inline-flex; align-items:center; gap:6px; border-radius:99px; padding:6px 11px; font-size:.875rem; font-weight:600}
.ag2-b-ok{background:rgba(27,31,35,.07); color:var(--ink)}
.ag2-b-ok svg{width:13px; height:13px}
.ag2-b-av{background:rgba(214,64,44,.1); color:#B8331F}
.ag2-card-btn{display:flex; align-items:center; justify-content:center; height:48px; border-radius:var(--r-field); background:var(--btn); color:#fff; font:700 .95rem 'Space Grotesk',sans-serif}
@media (max-width:980px){
  .ag2-hero{padding:36px 0 40px}
  .ag2-hero-grid{grid-template-columns:minmax(0,1fr); gap:40px}
  .ag2-card{transform:none}
}
@media (max-width:560px){
  .ag2-hero{padding:26px 0 32px}
  .ag2-eyebrow{font-size:.75rem; letter-spacing:.04em; padding:7px 12px; margin-bottom:18px}
  .ag2-sub{font-size:1.06rem; margin-bottom:26px}
  .ag2-ctas{flex-direction:column}
  .ag2-ctas .ag2-btn{width:100%}
  /* tre voci brevi (pagina legale): restano affiancate */
  .ag2-ctas:has(> :nth-child(3)){flex-direction:row; flex-wrap:wrap; gap:8px}
  .ag2-ctas:has(> :nth-child(3)) .ag2-btn{width:auto; flex:1 1 auto; height:46px; padding:0 16px}
  .ag2-switch{width:100%; border-radius:26px}
  .ag2-switch > span{width:100%; padding:6px 10px 4px}
  .ag2-switch a{flex:1; text-align:center; padding:0 10px}
  .ag2-card-wrap{display:none}
}

/* ---------- 5. sezioni, carte, passi, domande ---------- */
.ag2-sec{padding:96px 0}
.ag2-sec-cream{background:var(--cream)}
.ag2-tag{display:block; font:500 .8rem 'IBM Plex Mono',monospace; letter-spacing:.1em; text-transform:uppercase; color:var(--red-text); margin-bottom:12px}
.ag2-h2{font-size:clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem); line-height:1.1; letter-spacing:-.035em; font-weight:700; margin-bottom:40px; max-width:820px; text-wrap:balance}
.ag2-h2.ag2-center{text-align:left; margin-left:0}
.ag2-h2:has(+ .ag2-lead){margin-bottom:16px}
.ag2-lead{color:var(--slate); max-width:720px; line-height:1.65; margin:0 0 40px; font-size:1.06rem}
.ag2-more{margin-top:28px}
@media (max-width:560px){ .ag2-more .ag2-btn{width:100%} }
/* subito sotto l'intestazione di pagina, sullo stesso fondo: meno vuoto */
.ag2-hero + .ag2-sec:not(.ag2-sec-cream){padding-top:24px}
.ag2-hero + .offers-section.ag2-sec{padding-top:8px}
.ag2-narrow{max-width:calc(900px + 2 * var(--gutter)); margin-left:0}
@media (min-width:1305px){ .ag2-narrow{margin-left:calc((100% - var(--wrap) - 2 * var(--gutter)) / 2)} }
/* due colonne: titolo a sinistra (resta fermo scorrendo), contenuto a destra */
.ag2-split{display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:32px 80px; align-items:start}
.ag2-head{position:sticky; top:104px}
.ag2-head .ag2-h2{margin-bottom:0}
.ag2-head .ag2-lead{margin:18px 0 0}
.ag2-body{min-width:0}
.ag2-body > :last-child{margin-bottom:0}
@media (max-width:980px){
  .ag2-split{grid-template-columns:minmax(0,1fr); gap:0}
  .ag2-head{position:static; margin-bottom:32px}
}
@media (max-width:980px){ .ag2-sec{padding:72px 0} }
@media (max-width:560px){ .ag2-sec{padding:56px 0} .ag2-h2{margin-bottom:28px} .ag2-head{margin-bottom:24px} .ag2-lead{font-size:1rem; margin-bottom:28px} }

/* carte */
.ag2-feat, .ag2-step, .team-member, .value, .trust-item, .offer-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow)}
.ag2-feats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.ag2-feats-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ag2-feat{display:flex; flex-direction:column; align-items:flex-start; padding:28px 26px; transition:transform .2s, box-shadow .2s}
.ag2-feat:hover{transform:translateY(-3px); box-shadow:var(--shadow-hover)}
.ag2-feat-ic{display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:rgba(214,64,44,.09); color:var(--red); margin-bottom:18px; flex:none}
.ag2-feat-ic svg{width:24px; height:24px}
.ag2-feat h3{font-size:1.14rem; line-height:1.3; letter-spacing:-.015em; margin-bottom:8px}
.ag2-feat p{font-size:.98rem; line-height:1.6; color:var(--slate)}
.ag2-feat .ag2-tag{margin-bottom:10px}
.ag2-feat .ag2-btn{margin-top:auto; height:48px; padding:0 20px}
.ag2-feat p + .ag2-btn{margin-top:22px}
.ag2-feat:has(.ag2-btn) p{margin-bottom:22px}
.ag2-feat:has(.ag2-btn) p + .ag2-btn{margin-top:auto}
@media (max-width:1100px){ .ag2-feats-4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:900px){ .ag2-feats{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){
  .ag2-feats, .ag2-feats-4{grid-template-columns:minmax(0,1fr); gap:14px}
  .ag2-feat{padding:22px 20px}
  .ag2-feat .ag2-btn{width:100%}
  /* telefono: icona accanto al titolo, carte piu' basse */
  .ag2-feat:has(> .ag2-feat-ic){display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:14px; align-items:center}
  .ag2-feat:has(> .ag2-feat-ic) > .ag2-feat-ic{width:44px; height:44px; margin:0; border-radius:12px}
  .ag2-feat:has(> .ag2-feat-ic) > h3{margin:0}
  .ag2-feat:has(> .ag2-feat-ic) > p{grid-column:1 / -1; margin-top:12px}
}

/* passi numerati */
.ag2-steps{list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; counter-reset:none}
.ag2-steps-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ag2-steps-vertical{grid-template-columns:minmax(0,1fr); gap:14px}
.ag2-step{display:grid; grid-template-columns:44px minmax(0,1fr); gap:8px 16px; align-items:center; padding:24px}
.ag2-step-n{grid-row:1 / span 2; align-self:start; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--ink); color:#fff; font:700 1.05rem 'Space Grotesk',sans-serif}
.ag2-step:first-child .ag2-step-n{background:var(--red)}
.ag2-step h3{grid-column:2; align-self:end; padding-top:10px; font-size:1.1rem; line-height:1.3; letter-spacing:-.015em}
.ag2-step p{grid-column:2; font-size:.98rem; line-height:1.6; color:var(--slate)}
.ag2-steps:not(.ag2-steps-vertical) .ag2-step{grid-template-columns:minmax(0,1fr); align-items:start; align-content:start; gap:0}
.ag2-steps:not(.ag2-steps-vertical) .ag2-step-n{margin-bottom:18px}
.ag2-steps:not(.ag2-steps-vertical) .ag2-step h3, .ag2-steps:not(.ag2-steps-vertical) .ag2-step p{grid-column:1}
.ag2-steps:not(.ag2-steps-vertical) .ag2-step h3{margin-bottom:8px; padding-top:0}
.ag2-steps:not(.ag2-steps-vertical) .ag2-step-n{grid-row:auto}
@media (max-width:1000px){ .ag2-steps, .ag2-steps-3{grid-template-columns:repeat(2,minmax(0,1fr))} .ag2-steps-vertical{grid-template-columns:minmax(0,1fr)} }
@media (max-width:600px){
  .ag2-steps, .ag2-steps-3{grid-template-columns:minmax(0,1fr); gap:12px}
  .ag2-step, .ag2-steps:not(.ag2-steps-vertical) .ag2-step{grid-template-columns:40px minmax(0,1fr); gap:6px 14px; align-items:center; padding:20px 18px}
  .ag2-step-n, .ag2-steps:not(.ag2-steps-vertical) .ag2-step-n{width:40px; height:40px; font-size:1rem; margin:0}
  .ag2-steps:not(.ag2-steps-vertical) .ag2-step h3, .ag2-steps:not(.ag2-steps-vertical) .ag2-step p{grid-column:2; margin:0}
}

/* confronto (da solo / con noi) */
.ag2-compare{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px}
.ag2-col{border-radius:var(--r-card); padding:32px}
.ag2-col h3{font-size:1.2rem; letter-spacing:-.015em; margin-bottom:18px}
.ag2-col ul{list-style:none; display:flex; flex-direction:column; gap:14px}
.ag2-col li{display:flex; gap:12px; align-items:flex-start; font-size:1rem; line-height:1.5}
.ag2-col-before{background:transparent; border:1.5px dashed var(--line-strong); color:var(--slate)}
.ag2-col-with{background:#fff; color:var(--ink); border:2px solid var(--red); box-shadow:var(--shadow-hover)}
.ag2-col:not(.ag2-col-before):not(.ag2-col-with){background:#fff; border:1px solid var(--line); box-shadow:var(--shadow)}
.ag2-ic{width:24px; height:24px; border-radius:50%; display:grid; place-items:center; flex:none; margin-top:0}
.ag2-ic svg{width:14px; height:14px}
.ag2-ic-no{background:#E7E3DA; color:#4d555b}
.ag2-ic-yes{background:var(--btn); color:#fff}
@media (max-width:820px){ .ag2-compare{grid-template-columns:minmax(0,1fr); gap:16px} }
@media (max-width:560px){ .ag2-col{padding:24px 20px} }

/* numeri (agenzie) */
.ag2-stats{background:#fff; border-bottom:1px solid var(--line); padding:0}
.ag2-stats-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr))}
.ag2-stat{padding:40px 28px; border-left:1px solid var(--line)}
.ag2-stat:first-child{border-left:0; padding-left:0}
.ag2-stat-n{font:700 clamp(2.2rem,1.6rem + 2vw,3rem)/1 'Space Grotesk',sans-serif; letter-spacing:-.035em; color:var(--ink)}
.ag2-stat-l{margin-top:10px; font-size:.95rem; color:var(--slate); line-height:1.45}
@media (max-width:900px){
  .ag2-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ag2-stat{padding:28px 20px}
  .ag2-stat:nth-child(odd){border-left:0; padding-left:0}
  .ag2-stat:nth-child(n+3){border-top:1px solid var(--line)}
}

/* domande frequenti */
.ag2-faq{background:#fff; border:1px solid var(--line); border-radius:16px; margin:0 0 10px; padding:0; transition:border-color .15s, box-shadow .15s}
.ag2-faq:hover{border-color:var(--line-strong)}
.ag2-faq[open]{border-color:var(--ink); box-shadow:var(--shadow)}
.ag2-faq summary{display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:64px; padding:16px 20px 16px 24px; cursor:pointer; list-style:none;
  font:600 1.05rem/1.35 'Space Grotesk',sans-serif; letter-spacing:-.01em; color:var(--ink); border-radius:16px}
.ag2-faq summary:hover{color:var(--ink)}
.ag2-faq summary::-webkit-details-marker{display:none}
.ag2-faq summary::after, .ag2-faq[open] summary::after{content:'+'; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; flex:none; background:var(--cream); color:var(--red-text);
  font:400 1.35rem/1 'IBM Plex Sans',sans-serif; transition:transform .2s, background-color .2s, color .2s}
.ag2-faq[open] summary::after{transform:rotate(45deg); background:var(--ink); color:#fff}
.ag2-faq p{margin:0; padding:0 24px 22px; max-width:none; color:var(--slate); font-size:1rem; line-height:1.65}
.ag2-faq p + p{padding-top:0; margin-top:-8px}
.ag2-faq a{color:var(--red-text); text-decoration:underline; text-underline-offset:3px}
.ag2-faq summary:focus-visible{outline:2px solid var(--red); outline-offset:-2px}
@media (max-width:560px){ .ag2-faq summary{padding:14px 14px 14px 18px; font-size:1rem; min-height:60px} .ag2-faq p{padding:0 18px 20px} }

/* chiamata finale: pannello scuro */
.ag2-cta{padding:24px 0 104px; background:transparent}
.ag2-cta > .wrap{position:relative; overflow:hidden; background:var(--ink); color:#fff; border-radius:var(--r-panel); padding:72px 48px;
  max-width:var(--wrap); width:calc(100% - 2 * var(--gutter))}
.ag2-cta > .wrap::before{content:''; position:absolute; left:-130px; bottom:-230px; width:400px; height:400px; border-radius:50%; background:rgba(214,64,44,.22); pointer-events:none}
.ag2-cta > .wrap::after{content:''; position:absolute; right:-110px; top:-170px; width:320px; height:320px; border-radius:50%; border:1.5px solid rgba(214,64,44,.55); pointer-events:none}
.ag2-cta > .wrap > *{position:relative; z-index:1}
.ag2-cta-head{text-align:center; max-width:720px; margin:0 auto}
.ag2-cta-head:not(:last-child){margin-bottom:36px}
.ag2-cta .ag2-tag{color:#FFB4A8}
.ag2-cta h2, .ag2-cta .ag2-cta-head h2{font-size:clamp(1.75rem,1.2rem + 1.8vw,2.5rem); line-height:1.12; letter-spacing:-.035em; font-weight:700; color:#fff; text-wrap:balance}
.ag2-cta-head p{color:#D9DCDF; font-size:1.08rem; margin-top:12px}
.ag2-cta-head .ag2-btn, .ag2-cta-head + div > .ag2-btn{margin-top:28px}
.ag2-cta-head + div:not(.ag-form-wrap){text-align:center}
.ag2-cta-head + div:not(.ag-form-wrap) .ag2-btn{margin-top:0}
.ag2-cta :focus-visible{outline-color:#fff}
@media (max-width:900px){ .ag2-cta{padding:12px 0 72px} .ag2-cta > .wrap{padding:52px 28px; border-radius:24px} }
@media (max-width:560px){
  .ag2-cta{padding:8px 0 56px}
  .ag2-cta > .wrap{padding:44px 20px; border-radius:22px; width:calc(100% - 2 * var(--gutter))}
  .ag2-cta > .wrap:has(.ag-form){padding:40px 10px 10px}
  .ag2-cta > .wrap:has(.ag-form) .ag2-cta-head{padding:0 10px}
  .ag2-cta-head .ag2-btn{width:100%}
}

/* campi dei moduli pubblici: come nel modulo del profilo */
.ag-form-wrap{display:flex; flex-wrap:wrap; justify-content:center; gap:24px}
.ag-form-callback > h3{margin:0 0 6px}
.ag-form-callback > p{margin:0 0 22px; color:var(--slate)}
.ag-form{width:100%; max-width:620px; background:#fff; color:var(--ink); border:0; border-radius:24px; padding:36px; box-shadow:var(--shadow-panel); text-align:left}
.ag-form .form-row{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:0}
.ag-form .form-field{margin-bottom:18px}
.ag-form .form-row .form-field{margin-bottom:18px}
.ag-form .form-field label, .hero-form .quick-grid label{display:block; margin-bottom:8px; font:600 .9rem 'Space Grotesk',sans-serif; text-transform:none; letter-spacing:-.005em; color:var(--ink)}
.ag-form .form-field input, .ag-form .form-field select, .ag-form .form-field textarea,
.hero-form .quick-grid input, .hero-form .quick-grid select, .offers-filter select, .offers-filter input, .hero-form #magicCodeInput{
  width:100%; min-width:0; height:54px; border:1.5px solid var(--line); border-radius:var(--r-field); padding:0 16px; background-color:var(--field);
  font:400 16px 'Space Grotesk',sans-serif; color:var(--ink); outline:0; transition:border-color .15s, box-shadow .15s, background-color .15s}
.ag-form .form-field textarea{height:auto; min-height:130px; padding:14px 16px; line-height:1.5; resize:vertical}
.ag-form .form-field input::placeholder, .ag-form .form-field textarea::placeholder, .hero-form .quick-grid input::placeholder, .offers-filter input::placeholder{color:#6F6D67}
.ag-form .form-field input:hover, .ag-form .form-field textarea:hover, .hero-form .quick-grid input:hover, .hero-form .quick-grid select:hover, .offers-filter select:hover, .offers-filter input:hover{border-color:var(--line-strong)}
.ag-form .form-field input:focus, .ag-form .form-field textarea:focus, .ag-form .form-field select:focus,
.hero-form .quick-grid input:focus, .hero-form .quick-grid select:focus, .offers-filter select:focus, .offers-filter input:focus, .hero-form #magicCodeInput:focus{
  border-color:var(--ink); background-color:#fff; box-shadow:0 0 0 4px rgba(27,31,35,.07); outline:2px solid var(--red); outline-offset:2px}
.hero-form .quick-grid select, .offers-filter select, .ag-form .form-field select{appearance:none; -webkit-appearance:none; padding-right:42px; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none' stroke='%231B1F23' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center}
/* campo lasciato vuoto o sbagliato, dopo che si e' provato a inviare: bordo rosso */
.ag-form .form-field input:user-invalid, .ag-form .form-field textarea:user-invalid, .hero-form .quick-grid input:user-invalid{border-color:var(--red); box-shadow:0 0 0 4px rgba(214,64,44,.1)}
.ag-form button[type=submit], .ag-form .btn-primary{display:flex; align-items:center; justify-content:center; width:100%; height:54px; margin-top:8px; border:0; border-radius:var(--r-field);
  background:var(--btn); color:#fff; font:700 1rem 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .18s, transform .18s}
.ag-form button[type=submit]:hover, .ag-form .btn-primary:hover{background:var(--btn-hover); transform:translateY(-1px)}
.ag-form .form-status{margin-top:12px; font-size:.95rem}
.ag-form .form-status:empty{display:none}
.ag-form p, .ag-form .ag-note{color:var(--slate)}
.ag-note{font-size:.9rem; line-height:1.55; margin-top:18px}
.ag-form :focus-visible{outline-color:var(--red)}
@media (max-width:640px){ .ag-form{padding:26px 20px; border-radius:20px} .ag-form .form-row{grid-template-columns:minmax(0,1fr); gap:0} }

/* finestra (link scaduto) */
.link-modal-overlay .link-modal{border-radius:24px; padding:40px 32px; border:0; box-shadow:var(--shadow-panel)}
.link-modal-overlay .link-modal .btn-primary{height:52px; border-radius:var(--r-field); background:var(--btn); font:700 1rem 'Space Grotesk',sans-serif}
.link-modal-overlay .link-modal-close{width:44px; height:44px; display:grid; place-items:center; border-radius:var(--r-field)}

/* comparsa morbida allo scorrimento (solo se il browser la regge e chi visita non l'ha disattivata) */
.reveal-on [data-reveal]{opacity:0; transform:translateY(16px); transition:opacity .55s ease, transform .55s ease, box-shadow .2s}
.reveal-on [data-reveal].is-in{opacity:1; transform:none}

/* ---------- 6. home ---------- */
.home-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,480px); gap:64px; align-items:start}
.home-hero-grid .ag2-hero-copy{padding-top:12px}
.home-hero-grid h1 br{display:none}
.home-hero-grid h1{font-size:clamp(2.15rem, .9rem + 2.7vw, 3.5rem)}
.home-hero-form{min-width:0}
.hero-form.form-card{max-width:none; margin:0; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:var(--r-panel); padding:32px; box-shadow:var(--shadow-panel); text-align:left}
.quick-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 14px}
.quick-grid .q-tel, .quick-grid .quick-email{grid-column:1 / -1}
.tel-row{display:flex; gap:10px}
.hero-form .quick-grid .tel-row .tel-prefix{flex:0 0 auto; width:116px; padding:0 34px 0 14px; background-position:right 12px center; font:500 15px 'IBM Plex Mono',monospace}
.tel-row input{flex:1; min-width:0}
.tel-picker{position:relative; flex:0 0 auto}
.hero-form .quick-grid .tel-row .tel-picker .tel-picker-native{position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none}
.tel-picker-btn{display:inline-flex; align-items:center; gap:9px; height:54px; padding:0 14px; border:1.5px solid var(--line); border-radius:var(--r-field); background:var(--field); color:var(--ink);
  font:500 15px 'IBM Plex Mono',monospace; cursor:pointer; transition:border-color .15s, background-color .15s, box-shadow .15s}
.tel-picker-btn:hover{border-color:var(--line-strong)}
.tel-picker-btn:focus-visible, .tel-picker.is-open .tel-picker-btn{outline:0; border-color:var(--ink); background:#fff; box-shadow:0 0 0 4px rgba(27,31,35,.07)}
.tel-flag{width:24px; height:16px; flex:none; border-radius:3px; clip-path:inset(0 round 3px); box-shadow:inset 0 0 0 1px rgba(27,31,35,.1)}
.tel-picker-caret{width:7px; height:7px; margin:-3px 0 0 2px; border:solid currentColor; border-width:0 1.6px 1.6px 0; transform:rotate(45deg); transition:transform .2s}
.tel-picker.is-open .tel-picker-caret{transform:rotate(-135deg); margin-top:3px}
.tel-picker-list{position:absolute; left:0; top:calc(100% + 6px); z-index:40; width:300px; max-width:calc(100vw - 2 * var(--gutter) - 20px); max-height:310px; overflow-y:auto; overscroll-behavior:contain;
  list-style:none; margin:0; padding:6px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-hover); animation:po-pop .16s ease-out}
.tel-picker-list[hidden]{display:none}
.tel-picker-list:focus{outline:none}
.tel-picker-list li{display:flex; align-items:center; gap:12px; min-height:44px; padding:0 12px; border-radius:10px; cursor:pointer; font-size:.95rem; color:var(--ink)}
.tel-picker-list li.is-active{background:var(--cream)}
.tel-picker-list li[aria-selected="true"] .tel-picker-name{font-weight:600}
.tel-picker-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.tel-picker-code{font:500 .875rem 'IBM Plex Mono',monospace; color:var(--slate)}
@keyframes po-pop{from{opacity:0; transform:translateY(-4px) scale(.98)} to{opacity:1; transform:none}}
#registerForm.is-access .q{display:none}
#registerForm.is-access .quick-grid{grid-template-columns:minmax(0,1fr)}
.hero-form .btn-primary, .hero-form.form-card .btn-primary{display:flex; align-items:center; justify-content:center; gap:8px; width:100%; height:54px; margin:22px 0 0; padding:0 22px; border:0; border-radius:var(--r-field);
  background:var(--btn); color:#fff; font:700 1rem 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .18s, transform .18s}
.hero-form .btn-primary:hover{background:var(--btn-hover); transform:translateY(-1px)}
.hero-form .btn-primary[disabled]{opacity:.6; cursor:not-allowed; transform:none}
.hero-form .btn-secondary{display:flex; align-items:center; justify-content:center; width:100%; min-height:50px; margin-top:16px; padding:10px 18px; border:1.5px solid var(--line); border-radius:var(--r-field); background:#fff; color:var(--ink); font:600 .95rem 'Space Grotesk',sans-serif; cursor:pointer}
.hero-form .btn-secondary:hover{border-color:var(--ink)}
/* «resta connesso»: casella grande, facile da toccare */
.hero-form .form-remember{display:flex; align-items:center; gap:10px; margin:14px 0 0; min-height:40px; font-size:.95rem; color:var(--ink); cursor:pointer}
.hero-form .form-remember input{appearance:none; -webkit-appearance:none; flex:none; width:22px; height:22px; margin:0; border:1.5px solid var(--line-strong); border-radius:7px; background:#fff; display:grid; place-items:center; cursor:pointer; transition:background-color .15s, border-color .15s}
.hero-form .form-remember input::after{content:''; width:6px; height:11px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg) translate(-1px,-1px); opacity:0}
.hero-form .form-remember input:checked{background:var(--ink); border-color:var(--ink)}
.hero-form .form-remember input:checked::after{opacity:1}
.hero-form .form-remember input:focus-visible{outline:2px solid var(--red); outline-offset:2px}
.hero-form .form-note{margin-top:14px; font-size:.875rem; line-height:1.55; color:var(--slate)}
.hero-form .form-note a{color:var(--red-text); text-decoration:underline; text-underline-offset:3px}
.hero-form .quick-toggle{margin-top:10px; padding-top:14px; border-top:1px solid var(--line)}
.hero-form .quick-toggle a{display:inline-flex; align-items:center; min-height:36px; font-weight:600; font-size:.95rem}
.hero-form .form-status{margin-top:12px; font-size:.95rem}
.hero-form .form-status:empty{display:none}
/* dopo l'iscrizione */
.register-sent{text-align:center; padding:8px 0}
.register-sent[hidden]{display:none}
.register-sent > svg{width:48px; height:48px; margin:0 auto 16px; display:block}
.register-sent h3{font-size:1.4rem; letter-spacing:-.02em; margin-bottom:10px}
.register-sent > p{color:var(--slate); line-height:1.6; margin-bottom:20px}
.register-sent .form-note{margin-top:14px; margin-bottom:0}
.register-sent .spam-note{margin:-6px 0 22px; padding:12px 14px; border-radius:var(--r-field); background:rgba(214,64,44,.08); color:var(--ink); font-size:.92rem; text-align:left}
.code-entry label{display:block; margin-bottom:12px}
.code-row{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:10px}
.hero-form #magicCodeInput{width:170px; text-align:center; letter-spacing:6px; font:500 1.2rem 'IBM Plex Mono',monospace}
.hero-form .code-row .btn-primary{width:auto; margin:0}
.otp .otp-box{width:48px; height:58px; border:1.5px solid var(--line); border-radius:var(--r-field); background:var(--field)}
.otp .otp-box:focus{border-color:var(--ink); background:#fff; box-shadow:0 0 0 4px rgba(27,31,35,.07)}
.hero-note{margin-top:16px; font-size:.92rem; line-height:1.5; color:var(--slate); text-align:center}
.hero-note::before{content:''; display:inline-block; vertical-align:-4px; margin-right:7px; width:18px; height:18px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C4361F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8.4-7 10-4-1.6-7-5.5-7-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat}
.social-proof{display:block; width:100%; color:var(--slate)}
/* cartina */
.route-box{position:relative; margin-top:36px; max-width:500px}
.swiss-map{display:block; width:100%; height:auto; overflow:visible}
.sm-zones{filter:drop-shadow(0 12px 16px rgba(27,31,35,.10))}
/* un solo colore, solo i confini tra le tre regioni linguistiche; si colora la regione d'arrivo, col rosa dei cerchi */
.sm-r{fill:#EAE6DE; stroke:#fff; stroke-width:2.4; stroke-linejoin:round; transition:fill .6s ease}
.sm-r.is-to{fill:#F4D8D0}
.sm-dot{fill:#fff; stroke:#8C9298; stroke-width:1.5; transition:fill .3s, stroke .3s}
.sm-city.is-from .sm-dot{fill:var(--ink); stroke:var(--ink)}
.sm-city.is-to .sm-dot{stroke:var(--red); stroke-width:2}
.sm-city.is-arrived .sm-dot{fill:var(--red); stroke:var(--red)}
.sm-label{font:600 13px 'Space Grotesk',sans-serif; fill:var(--ink); paint-order:stroke; stroke:#FBFAF8; stroke-width:4px; stroke-linejoin:round; opacity:0; transition:opacity .35s}
.sm-city.is-from .sm-label, .sm-city.is-to .sm-label{opacity:1}
.sm-city.is-to .sm-label{fill:var(--red-text)}
.sm-pulse{fill:none; stroke:var(--red); stroke-width:1.5; opacity:0; transform-box:fill-box; transform-origin:center}
.sm-city.is-arrived .sm-pulse{animation:sm-pulse 1.1s ease-out}
@keyframes sm-pulse{from{opacity:.8; transform:scale(1)} to{opacity:0; transform:scale(3.4)}}
/* il percorso resta nascosto (sorpresa): si vede solo la testa rossa con la scia che si schiarisce */
.sm-arc{fill:none; stroke:none; stroke-width:1.3; stroke-linejoin:round; stroke-linecap:round; opacity:0; transition:opacity .45s}
.sm-seg{fill:none; stroke:var(--red); stroke-linecap:round; stroke-linejoin:round}
.sm-trail, .sm-traveler{opacity:0; transition:opacity .45s}
.sm-traveler{fill:var(--red); stroke:#fff; stroke-width:2.2}
.swiss-map.is-moving .sm-arc, .swiss-map.is-moving .sm-trail, .swiss-map.is-moving .sm-traveler,
.swiss-map.is-static .sm-arc, .swiss-map.is-static .sm-traveler{opacity:1}
.swiss-map.is-fading .sm-arc, .swiss-map.is-fading .sm-trail, .swiss-map.is-fading .sm-traveler{opacity:0}
.route-caption{font:500 .8rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.04em; color:var(--slate); margin-top:10px; text-align:center}
@media (max-width:1100px){ .home-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:40px} }
@media (max-width:980px){
  .home-hero-grid{grid-template-columns:minmax(0,1fr); gap:28px}
  .home-hero-grid .ag2-hero-copy{padding-top:0; max-width:none}
  .route-box{display:none}
  .home-hero-form{max-width:560px}
}
@media (max-width:560px){
  .hero-form.form-card{padding:22px 18px; border-radius:22px}
  .quick-grid{grid-template-columns:minmax(0,1fr); gap:16px}
  .hero-form .quick-grid .tel-row .tel-prefix{width:108px}
  .home-hero-form{margin:0 -4px}
}
/* fiducia: tre carte sotto l'intestazione */
.trust-bar{padding:0 0 24px; background:var(--paper)}
.trust-bar-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.trust-item{display:flex; align-items:flex-start; gap:16px; padding:24px}
.trust-item > svg{width:28px; height:28px; flex:none; margin-top:1px}
.trust-icon{color:var(--red)}
.trust-item h2{font-size:1.05rem; letter-spacing:-.01em; margin-bottom:6px}
.trust-item p{font-size:.95rem; line-height:1.55; color:var(--slate)}
.trust-item a{color:var(--red-text); text-decoration:underline; text-underline-offset:3px}
@media (max-width:900px){ .trust-bar-grid{grid-template-columns:minmax(0,1fr); gap:12px} .trust-item{padding:20px} }
/* come funziona: tappe che si accendono scorrendo */
.dark-section{background:transparent; color:var(--ink); padding:96px 0}
#come-funziona > .wrap{display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:32px 80px; align-items:start}
#come-funziona .section-head{position:sticky; top:104px; margin:0}
#come-funziona .ag2-h2{margin-bottom:0}
.vt-timeline{position:relative; padding-left:88px}
.vt-track{position:absolute; left:27px; top:28px; width:2px; background:var(--line)}
.vt-track-fill{position:absolute; top:0; left:0; width:100%; height:0%; background:var(--red)}
.vt-step{position:relative; padding-bottom:52px}
.vt-step:last-child{padding-bottom:0}
.vt-marker-wrap{position:absolute; left:-88px; top:-4px; width:56px; display:flex; justify-content:center}
.vt-step-number{width:56px; height:56px; display:grid; place-items:center; border-radius:50%; background:#fff; border:2px solid var(--line); color:var(--slate);
  font:700 1.2rem 'Space Grotesk',sans-serif; transition:background-color .25s, border-color .25s, color .25s, box-shadow .25s}
.vt-step.is-active .vt-step-number{background:var(--red); border-color:var(--red); color:#fff; box-shadow:0 10px 24px -8px rgba(214,64,44,.6)}
.vt-step-body{display:flex; align-items:flex-start; justify-content:space-between; gap:28px; background:#fff; border:1px solid var(--line); border-radius:var(--r-card); padding:24px 26px; box-shadow:var(--shadow); transition:border-color .25s}
.vt-step.is-active .vt-step-body{border-color:var(--line-strong)}
.vt-step-body h3{font-size:1.2rem; letter-spacing:-.015em; margin-bottom:8px; color:var(--ink)}
.vt-step-body p{color:var(--slate); line-height:1.6; font-size:1rem}
.vt-step-icon{width:30px; height:30px; flex:none; color:#B9B6AD; transition:color .25s}
.vt-step.is-active .vt-step-icon{color:var(--red)}
@media (prefers-reduced-motion: reduce){
  .vt-step .vt-step-number{background:var(--red); border-color:var(--red); color:#fff}
  .vt-step .vt-step-icon{color:var(--red)}
  .vt-track-fill{transform:none !important}
}
@media (max-width:980px){
  .dark-section{padding:72px 0}
  #come-funziona > .wrap{grid-template-columns:minmax(0,1fr); gap:0}
  #come-funziona .section-head{position:static; margin-bottom:32px}
}
@media (max-width:600px){
  .dark-section{padding:56px 0}
  .vt-timeline{padding-left:58px}
  .vt-marker-wrap{left:-58px; width:42px; top:0}
  .vt-step-number{width:42px; height:42px; font-size:1rem}
  .vt-track{left:20px}
  .vt-step{padding-bottom:16px}
  .vt-step-body{flex-direction:column; gap:10px; padding:18px 18px 20px}
  .vt-step-icon{order:-1; width:24px; height:24px}
}
/* numeri della home: stessa fascia della pagina agenzie */
.dark-section:has(.ct-stats){background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0}
.ct-stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr))}
.ct-stat{padding:40px 28px; border-left:1px solid var(--line)}
.ct-stat:first-child{border-left:0; padding-left:0}
.ct-num{font:700 clamp(2.2rem,1.6rem + 2vw,3rem)/1 'Space Grotesk',sans-serif; letter-spacing:-.035em; color:var(--ink); white-space:nowrap}
.ct-label{margin-top:10px; font-size:.95rem; line-height:1.45; color:var(--slate)}
@media (max-width:900px){
  .ct-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ct-stat{padding:28px 20px}
  .ct-stat:nth-child(odd){border-left:0; padding-left:0}
  .ct-stat:nth-child(n+3){border-top:1px solid var(--line)}
}
/* per le agenzie: una carta orizzontale */
#agenzie{padding:24px 0 96px}
#agenzie > .wrap{display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:48px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r-panel); padding:48px 52px; box-shadow:var(--shadow);
  max-width:var(--wrap); width:calc(100% - 2 * var(--gutter))}
#agenzie .ag2-tag, #agenzie .ag2-h2, #agenzie .ag2-lead{grid-column:1}
#agenzie .ag2-h2{margin-bottom:12px}
#agenzie .ag2-lead{margin:0}
#agenzie .ag2-ctas{grid-column:2; grid-row:1 / span 3}
@media (max-width:900px){
  #agenzie{padding:8px 0 72px}
  #agenzie > .wrap{grid-template-columns:minmax(0,1fr); padding:36px 28px}
  #agenzie .ag2-ctas{grid-column:1; grid-row:auto; margin-top:24px}
}
@media (max-width:560px){ #agenzie > .wrap{padding:28px 20px; border-radius:22px} }
#agenzie + .ag2-cta{padding-top:0}
/* invito fisso «Crea il tuo profilo» (solo schermo largo) */
.sticky-cta, .sticky-cta.btn-primary{position:fixed; right:24px; bottom:24px; z-index:80; display:inline-flex; align-items:center; gap:10px; height:52px; padding:0 22px; border-radius:var(--r-field);
  background:var(--btn); color:#fff; font:700 1rem 'Space Grotesk',sans-serif; box-shadow:0 16px 34px -12px rgba(27,31,35,.4);
  opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .25s ease, transform .25s ease, background-color .18s}
.sticky-cta svg{width:18px; height:18px}
.sticky-cta.btn-primary:hover{background:var(--btn-hover)}
.sticky-cta.btn-primary.is-visible{opacity:1; transform:none; pointer-events:auto}
@media (max-width:760px){ .sticky-cta, .sticky-cta.btn-primary{display:none} }

/* ---------- 7. offerte e «lavoro per mestiere» ---------- */
.offers-section.ag2-sec{padding:40px 0 96px}
.offers-filter{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr) auto; gap:12px; padding:14px; background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow); margin-bottom:18px}
.offers-filter label{min-width:0}
.offers-filter select, .offers-filter input{background-color:var(--field)}
.offers-filter .btn-primary{height:54px; margin:0; padding:0 28px; border:0; border-radius:var(--r-field); background:var(--btn); color:#fff; font:700 1rem 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .18s}
.offers-filter .btn-primary:hover{background:var(--btn-hover)}
.offers-count{display:inline-flex; align-items:center; min-height:36px; margin:0 18px 14px 0; font-size:.875rem; color:var(--slate)}
.offers-count a{color:var(--red-text); text-decoration:underline; text-underline-offset:3px}
.offers-notice{background:rgba(214,64,44,.08); border-radius:var(--r-field); padding:14px 16px; margin-bottom:18px}
.offers-list{display:grid; grid-template-columns:repeat(auto-fill, minmax(270px, 1fr)); gap:20px; margin-top:6px}
.offer-card{display:flex; flex-direction:column; gap:12px; padding:24px; color:var(--ink); text-decoration:none; transition:transform .2s, box-shadow .2s, border-color .2s}
.offer-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-hover); border-color:var(--line-strong)}
.offer-card h2{font-size:1.2rem; line-height:1.3; letter-spacing:-.015em; margin:0}
@media (min-width:561px){ .offers-list .offer-region{min-height:2.9em} }
.offer-region{font:500 .78rem/1.45 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase; color:var(--red-text)}
.offer-chips{display:flex; flex-wrap:wrap; gap:6px}
.offer-chips span{font-size:.875rem; background:var(--cream); border-radius:999px; padding:5px 11px}
.offer-more{margin-top:auto; padding-top:6px; font:700 .95rem 'Space Grotesk',sans-serif; color:var(--red-text)}
.offers-empty{background:#fff; border:1.5px dashed var(--line-strong); border-radius:var(--r-card); padding:36px 28px; text-align:center}
.offers-empty p{margin-bottom:12px; color:var(--slate)}
.offers-empty .btn-primary{display:inline-flex; align-items:center; height:52px; padding:0 24px; border-radius:var(--r-field); background:var(--btn); color:#fff; font:700 1rem 'Space Grotesk',sans-serif}
@media (max-width:900px){ .offers-filter{grid-template-columns:repeat(2,minmax(0,1fr))} .offers-filter .offers-q{grid-column:1 / -1} .offers-filter .btn-primary{grid-column:1 / -1} }
@media (max-width:560px){ .offers-filter{grid-template-columns:minmax(0,1fr); padding:12px} .offers-list{grid-template-columns:minmax(0,1fr); gap:14px} .offer-card{padding:20px} }
/* scheda dell'offerta */
.offer-hero .ag2-hero-grid{grid-template-columns:minmax(0,1fr)}
.offer-hero .ag2-hero-copy{max-width:none}
.offer-back{display:flex; width:max-content; align-items:center; min-height:40px; margin:-10px 0 8px; color:var(--slate); font-size:.95rem; font-weight:500}
.offer-back:hover{color:var(--ink)}
.offer-hero h1{margin-bottom:22px; font-size:clamp(1.9rem, 1.2rem + 2.2vw, 2.9rem)}
.offer-hero .ag2-eyebrow{margin-bottom:14px}
.offer-facts{display:flex; flex-wrap:wrap; gap:0; background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow); width:max-content; max-width:100%}
.offer-facts > div{padding:16px 24px; border-left:1px solid var(--line)}
.offer-facts > div:first-child{border-left:0}
.offer-facts dt{font:500 .78rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--slate)}
.offer-facts dd{margin:4px 0 0; font:600 1.05rem 'Space Grotesk',sans-serif; color:var(--ink)}
.offer-layout{display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:56px; align-items:start}
.offer-body{min-width:0; max-width:720px}
.offer-body h2{font-size:1.4rem; letter-spacing:-.02em; margin:0 0 12px}
.offer-body * + h2{margin-top:36px}
.offer-body p{font-size:1.05rem; line-height:1.7; margin-bottom:14px}
.offer-body ol, .offer-body ul:not([class]){padding-left:24px; margin:0 0 14px}
.offer-body ol li, .offer-body ul:not([class]) li{font-size:1.05rem; line-height:1.6; margin-bottom:6px; padding-left:4px}
.offer-body h3{font-size:1.1rem; letter-spacing:-.01em; margin:20px 0 4px}
.offer-body h3 + p{margin-bottom:10px}
.offer-req{list-style:none; display:flex; flex-direction:column; gap:10px; margin:0 0 14px}
.offer-req li{position:relative; padding-left:26px; font-size:1.05rem; line-height:1.6}
.offer-req li::before{content:''; position:absolute; left:4px; top:.6em; width:8px; height:8px; border-radius:50%; background:var(--red)}
.offer-note{margin-top:32px; padding:16px 18px; background:var(--cream); border-radius:var(--r-field); font-size:.95rem !important; line-height:1.55 !important; color:var(--slate)}
.offer-note + .offer-note{margin-top:10px}
.offer-date{font-size:.85rem !important; color:var(--slate); margin-top:16px}
.offer-apply{position:sticky; top:96px; background:#fff; border:1px solid var(--line); border-radius:var(--r-panel); padding:30px; box-shadow:var(--shadow-panel)}
.offer-apply > h2{font-size:1.35rem; letter-spacing:-.02em; margin:0 0 8px}
.offer-apply > p{color:var(--slate); font-size:.95rem; line-height:1.55; margin-bottom:20px}
.offer-apply .hero-form.form-card{padding:0; border:0; border-radius:0; box-shadow:none; background:none}
.offer-apply .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1000px){
  .offer-layout{grid-template-columns:minmax(0,1fr); gap:40px}
  .offer-apply{position:static; max-width:600px}
}
@media (max-width:640px){
  .offer-facts{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%}
  .offer-facts > div{padding:14px 16px}
  .offer-facts > div:nth-child(odd){border-left:0}
  .offer-facts > div:nth-child(n+3){border-top:1px solid var(--line)}
  .offer-apply{padding:22px 18px; border-radius:22px}
  .offer-apply .quick-grid{grid-template-columns:minmax(0,1fr)}
}
/* lavoro per mestiere */
.offers-section > .wrap > h2{font-size:1.3rem; letter-spacing:-.02em; margin:36px 0 14px}
.offers-section > .wrap > h2:first-child{margin-top:0}
.lavoro-links{list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0 0 8px; padding:0}
.lavoro-links a{display:inline-flex; align-items:center; min-height:44px; padding:0 18px; background:#fff; border:1.5px solid var(--line); border-radius:999px; font-weight:500; transition:border-color .15s, color .15s}
.lavoro-links a:hover{border-color:var(--ink); color:var(--red-text)}
.offers-section > .wrap > p:last-child a{display:inline-flex; align-items:center; min-height:44px; margin-top:20px; color:var(--red-text); font-weight:600; text-decoration:underline; text-underline-offset:3px}
.offers-section .hero-form.form-card{max-width:560px; margin-top:12px}

/* ---------- 8. chi siamo, contatti, legale, documenti ---------- */
.team-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px}
.team-member{display:grid; grid-template-columns:64px minmax(0,1fr); column-gap:20px; align-content:start; padding:28px; text-align:left; transition:transform .2s, box-shadow .2s}
.team-member > *{grid-column:2}
.team-member > .member-avatar{grid-column:1; grid-row:1 / span 6}
.member-avatar{width:64px; height:64px; border-radius:50%; background:var(--ink); color:#fff; display:grid; place-items:center; font:700 1.15rem 'Space Grotesk',sans-serif}
/* foto del team (Chi siamo): al posto delle iniziali, piu' grande */
.team-member:has(.member-photo){grid-template-columns:150px minmax(0,1fr); column-gap:24px}
.member-photo{width:150px; height:188px; border-radius:14px; overflow:hidden}
.member-photo img{width:100%; height:100%; object-fit:cover; display:block}
.team-member:has(.member-photo) .member-btn{max-width:100%; height:auto; min-height:44px; padding:10px 18px; white-space:normal; text-align:center}
.region-flag{font:500 .8rem 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase; color:var(--red-text); margin:4px 0 6px}
.team-member h3{font-size:1.3rem; letter-spacing:-.02em; margin:0 0 8px}
.team-member h3 .member-name-link{display:inline-flex; align-items:center; min-height:44px; color:inherit; text-decoration:none}
.team-member h3 .member-name-link:hover,.team-member h3 .member-name-link:focus-visible{text-decoration:underline; text-underline-offset:3px}
.team-member p{color:var(--slate); font-size:1rem; line-height:1.6; margin:0}
.team-member .member-btn{margin-top:16px; justify-self:start; height:44px; padding:0 18px; font-size:.95rem}
.contact-links{display:flex; flex-wrap:wrap; gap:8px 10px; margin-top:18px}
.contact-links a:not(.ag2-btn){display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1.5px solid var(--line); border-radius:var(--r-field); background:#fff; color:var(--ink); font-weight:600; font-size:.95rem; transition:border-color .15s}
.contact-links a:not(.ag2-btn):hover{border-color:var(--ink)}
.contact-links .ag2-btn{height:44px; padding:0 16px; font-size:.95rem}
.contact-links .whatsapp-link svg{width:18px; height:18px}
@media (max-width:820px){ .team-list{grid-template-columns:minmax(0,1fr); gap:14px} }
@media (max-width:480px){
  .team-member{grid-template-columns:52px minmax(0,1fr); column-gap:16px; padding:22px 18px}
  .member-avatar{width:52px; height:52px; font-size:1rem}
  .team-member:has(.member-photo){grid-template-columns:100px minmax(0,1fr); column-gap:16px}
  .member-photo{width:100px; height:125px}
  .team-member > .member-avatar{grid-row:1 / span 2; align-self:center}
  .team-member > p, .team-member > .contact-links, .team-member > div:not(.member-avatar){grid-column:1 / -1}
  .team-member > p{margin-top:12px}
  .contact-links a:not(.ag2-btn), .contact-links .ag2-btn{width:100%; justify-content:center}
}
.values{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.value{padding:28px 26px}
.value-num{display:block; font:500 .8rem 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase; color:var(--red-text); margin-bottom:14px}
.value h3{font-size:1.2rem; line-height:1.3; letter-spacing:-.015em; margin-bottom:10px}
.value p{color:var(--slate); font-size:1rem; line-height:1.6}
@media (max-width:900px){ .values{grid-template-columns:minmax(0,1fr); gap:14px} .value{padding:22px 20px} }
.name-content p{color:var(--slate); font-size:1.06rem; line-height:1.75; margin-bottom:18px}
.name-content p:last-child{margin-bottom:0}
.name-content em{color:var(--ink)}
.name-card{margin-top:28px; background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow); padding:28px; display:flex; flex-direction:column; gap:8px}
.name-card-label{font:500 .8rem 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--slate)}
.name-card-word{font:700 2rem 'Space Grotesk',sans-serif; letter-spacing:-.035em}
.name-card-def{color:var(--slate); line-height:1.6}
.info-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px}
.info-grid > div{background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow); padding:26px}
.info-grid h3{font:500 .8rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.08em; color:var(--slate); margin-bottom:12px}
.info-grid p, .info-grid address{color:var(--ink); font-style:normal; font-size:1.02rem; line-height:1.6}
.info-grid a{color:var(--red-text); font-weight:600; text-decoration:underline; text-underline-offset:3px; display:inline-flex; align-items:center; min-height:40px}
/* legale */
.legal-block{padding:0 0 56px; margin:0 0 56px; border-bottom:1px solid var(--line)}
.legal-block:last-child{border-bottom:0; margin-bottom:0; padding-bottom:0}
.legal-block h2{font-size:clamp(1.5rem,1.2rem + 1vw,1.9rem); letter-spacing:-.03em; line-height:1.15; margin-bottom:20px}
.legal-block h3{font-size:1.12rem; letter-spacing:-.01em; margin:30px 0 10px}
.legal-block p, .legal-block li{color:var(--slate); font-size:1rem; line-height:1.7; margin-bottom:12px}
.legal-block ul, .legal-block ol{padding-left:22px; margin-bottom:12px}
.legal-block li{margin-bottom:6px}
.legal-block li strong, .legal-block p strong{color:var(--ink)}
.legal-block a{color:var(--red-text); text-decoration:underline; text-underline-offset:3px}
.legal-block p.mono{background:#fff; border:1px solid var(--line); border-radius:var(--r-field); padding:16px 18px; font-size:.92rem; color:var(--ink); line-height:1.75}
@media (max-width:560px){ .legal-block{padding-bottom:40px; margin-bottom:40px} }

/* ---------- 9. movimenti (V2.0.213) ---------- */
/* domande: la risposta si apre e si chiude scorrendo (dove il browser lo permette; altrove si apre di colpo) */
details.ag2-faq{interpolate-size:allow-keywords}
details.ag2-faq::details-content{block-size:0; overflow:hidden; transition:block-size .32s cubic-bezier(.3,.7,.2,1), content-visibility .32s allow-discrete}
details.ag2-faq[open]::details-content{block-size:auto}
/* menu del telefono e lingue: compaiono con una breve dissolvenza */
nav.nav-open .nav-menu{animation:po-drop .22s ease-out}
@keyframes po-drop{from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none}}
.lang-menu[open] .lang-menu-list{animation:po-pop .16s ease-out}
/* pulsanti: si premono al tocco */
.ag2-btn:active, .nav-cta:active, .nav-agency:active, .hero-form .btn-primary:active, .ag-form button[type=submit]:active, .offers-filter .btn-primary:active, .sticky-cta:active, .tel-picker-btn:active{transform:scale(.98); transition-duration:.06s}
/* cambio di pagina: il contenuto sfuma, menu e scelta chi sei restano fermi */
@view-transition{navigation:auto}
header{view-transition-name:site-header}
::view-transition-old(root), ::view-transition-new(root){animation-duration:.22s}
/* «Chi sei?»: il fondo scuro scivola dalla voce di prima a quella nuova mentre la pagina cambia */
::view-transition-group(ag2-switch-on){animation-duration:.32s; animation-timing-function:cubic-bezier(.3,.7,.2,1)}
::view-transition-old(ag2-switch-on), ::view-transition-new(ag2-switch-on){animation-duration:.32s; height:100%}
@media (prefers-reduced-motion: reduce){
  @view-transition{navigation:none}
  details.ag2-faq::details-content{transition:none}
  nav.nav-open .nav-menu, .lang-menu[open] .lang-menu-list, .tel-picker-list{animation:none}
}
/* schermi stretti: niente anelli, passerebbero sopra al testo e ai pulsanti */
@media (max-width:980px){ body::after, .ag2-cta > .wrap::after{display:none} }

/* cerchi rossi dietro a tutto (V2.0.214): un disco e un anello in cima alla pagina, anche sotto al menu (che e' semitrasparente) */
body::before, body::after{content:''; position:absolute; z-index:-1; border-radius:50%; pointer-events:none}
body::before{top:-200px; right:-160px; width:600px; height:600px; background:#F4D8D0}
body::after{top:-80px; right:-40px; width:600px; height:600px; border:2px solid rgba(214,64,44,.32)}
@media (max-width:980px){ body::before{width:420px; height:420px; top:-170px; right:-200px} }
@media (max-width:560px){ body::before{width:280px; height:280px; top:-120px; right:-150px} }
/* confronto sul telefono: ogni problema con sotto la sua soluzione (V2.0.214) */
.ag2-pairs{display:none}
@media (max-width:820px){
  .ag2-compare.has-pairs{display:none}
  .ag2-pairs{display:block}
  .ag2-pairs-head{display:flex; align-items:center; gap:10px; margin:0 0 14px; font:600 .95rem 'Space Grotesk',sans-serif}
  .ag2-pairs-head .ph-no{color:var(--slate)}
  .ag2-pairs-head .ph-arrow{color:var(--red); font-weight:400}
  .ag2-pairs-head .ph-yes{color:var(--red-text)}
  .ag2-pairs ol{list-style:none; display:flex; flex-direction:column; gap:12px; margin:0; padding:0}
  .ag2-pair{position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow); overflow:hidden}
  .ag2-pair > div{display:flex; gap:12px; align-items:flex-start; padding:16px 18px; font-size:.98rem; line-height:1.45}
  .pair-no{background:#F6F4EF; color:var(--slate); border-bottom:1px dashed var(--line-strong)}
  .pair-yes{color:var(--ink); font-weight:500}
  .ag2-pair .ag2-ic{margin-top:0}
}

/* cartina con la zona dell'offerta (V2.0.218): le zone sono fatte di tanti comuni, il bordo del colore del fondo chiude le fessure */
.offer-map{margin:32px 0 0; padding:20px 20px 16px; background:#fff; border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow); max-width:560px}
.offer-map svg{display:block; width:100%; height:auto}
.offer-map path{fill:#EAE6DE; stroke:#EAE6DE; stroke-width:1; stroke-linejoin:round}
.offer-map path.is-on{fill:var(--red); stroke:var(--red)}
.offer-map figcaption{display:flex; align-items:center; gap:10px; margin-top:12px; font:600 1rem 'Space Grotesk',sans-serif; color:var(--ink)}
.offer-map-dot{width:12px; height:12px; border-radius:4px; background:var(--red); flex:none}

/* =====================================================================
   COMPONENTI DEI MODULI E MODULO DEL PROFILO - invariati (V2.0.209)
   ===================================================================== */

/* ---- pulsanti di base (anche nel profilo) ---- */
  .eyebrow{
    font-family:'IBM Plex Mono', monospace; font-size:0.78rem; text-transform:uppercase;
    letter-spacing:0.12em; color:var(--red-text); margin-bottom:18px; display:block;
  }
  .hero h1{font-size:2.7rem; line-height:1.12; margin-bottom:20px;}
  .hero h1 em{color:var(--red); font-style:normal;}
  .hero p{font-size:1.08rem; color:var(--slate); max-width:460px; margin-bottom:32px;}
  .btn-primary{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--ink); color:var(--paper); font-weight:500;
    padding:14px 26px; border-radius:4px; font-size:0.98rem;
    transition:background 0.15s;
  }
  .btn-primary:hover{background:var(--red);}
  .btn-primary svg{width:16px; height:16px;}

/* ---- moduli: carta, righe, campi, note ---- */
  /* FORM PREVIEW */
  .form-section{background:var(--ink); color:var(--paper);}
  .form-section .section-tag{color:#B8A99C;}
  .form-section .section-head p{color:#C7C2BB; margin-top:14px; font-size:0.98rem;}
  .form-card{
    background:var(--paper); color:var(--ink); border-radius:8px; padding:34px;
    max-width:600px;
  }
  .form-card-mini{max-width:440px; margin:0 auto; border:1px solid var(--line);}
  .register-sent{text-align:center; padding:10px 0;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
  .form-field label{
    font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--slate);
    text-transform:uppercase; letter-spacing:0.06em; display:block; margin-bottom:6px;
  }
  .form-field input, .form-field select, .form-field textarea{
    width:100%; border:1px solid var(--line); border-radius:4px; padding:10px 12px;
    font-family:'IBM Plex Sans', sans-serif; font-size:0.92rem; background:var(--paper); color:var(--ink);
  }
  .form-field textarea{resize:vertical; font-family:'IBM Plex Mono', monospace; font-size:0.82rem; line-height:1.5;}
  .form-field select + input[data-field-custom]{margin-top:8px;}
  .contract-edit-article{border-top:1px solid var(--line); padding-top:14px; margin-top:14px;}
  .contract-edit-article label:not(:first-child){margin-top:10px;}
  #tabContracts .form-row .btn-secondary{width:100%; justify-content:center; display:flex; align-items:center;}
  .form-consent{
    display:flex; gap:10px; align-items:flex-start; font-size:0.82rem; color:var(--slate);
    margin-top:16px; margin-bottom:6px;
  }
  .form-consent input{margin-top:3px;}
  .form-note{font-size:0.76rem; color:var(--slate); margin-top:4px;}
  .form-card .btn-primary{margin-top:18px; width:100%; justify-content:center;}
  /* Campo anti-bot nascosto: display:none, non solo spostato fuori
     schermo. Un box di 1x1px (anche a -9999px) ha comunque una dimensione
     "visibile" diversa da zero, e su alcuni browser/piattaforme (Windows
     in particolare, si e' visto) l'autofill lo considera comunque un
     campo compilabile — e se lo compila, l'invio si ferma silenziosamente
     qui (honeypot = "e' un bot") senza mai chiamare l'API, anche con
     l'email corretta nell'altro campo. display:none non ha proprio un box
     renderizzato: nessun browser lo autocompila mai. */
  .form-honeypot{display:none;}
  .form-status{font-size:0.86rem; margin-top:12px; min-height:1.2em;}
  .form-status.is-success{color:var(--green);}
  .verify-missing{margin:0 0 0 20px; padding:0; list-style:disc; color:var(--ink); font-size:0.92rem;}
  .verify-missing li{margin:4px 0;}
  .form-status.is-error{color:var(--red-text);}
  .btn-primary[disabled]{opacity:0.6; cursor:not-allowed;}

/* ---- telefono: campi a 16px (niente zoom su iOS) ---- */
  /* Su iOS Safari un campo con font-size sotto i 16px fa zoomare la pagina
     quando lo si tocca: forziamo 16px su telefono per evitarlo. Specificita'
     alta + !important perche' regole come ".form-field input" (definite
     sopra) hanno specificita' maggiore del semplice "input" e altrimenti
     vincerebbero comunque, vanificando il fix. */
  @media (max-width:600px){
    input, select, textarea,
    .form-field input, .form-field select, .form-field textarea,
    .canton-picker select,
    .ag-form textarea, .chip-add-row input, .chat-form textarea,
    #magicCodeInput{
      font-size:16px !important;
    }
    /* Fix per i campi data su mobile: evita overflow orizzontale */
    input[type="date"],
    input[type="datetime-local"],
    input[type="time"]{
      max-width:100%;
      min-width:0;
    }
  }

/* ---- finestra del link scaduto ---- */
  /* LINK MODAL (es. magic link scaduto/non valido) */
  .link-modal-overlay{
    position:fixed; inset:0; z-index:400; background:rgba(20,18,16,0.55);
    align-items:center; justify-content:center; padding:20px;
  }
  .link-modal-overlay[hidden]{display:none;}
  .link-modal-overlay:not([hidden]){display:flex;}
  .link-modal{
    position:relative; background:var(--paper); border:1px solid var(--line); border-radius:8px;
    padding:36px 32px; max-width:420px; width:100%; text-align:center;
    box-shadow:0 20px 60px rgba(0,0,0,0.25);
  }
  .link-modal h3{font-size:1.25rem; margin-bottom:12px;}
  .link-modal p{color:var(--slate); font-size:0.94rem; margin-bottom:24px;}
  .link-modal .btn-primary{width:100%; justify-content:center;}
  .link-modal-close{
    position:absolute; top:12px; right:12px; background:none; border:none; font-size:1.5rem;
    line-height:1; color:var(--slate); cursor:pointer; padding:6px;
  }
  .link-modal-close:hover{color:var(--ink);}

/* ---- modulo a passi ---- */
  /* FORM MULTI-STEP */
  .form-progress{margin-bottom:26px;}
  .form-progress-bar{height:4px; background:var(--line); border-radius:2px; overflow:hidden; margin-bottom:8px;}
  .form-progress-fill{height:100%; background:var(--red); width:25%; transition:width 0.3s ease;}
  .form-progress-label{
    font-family:'IBM Plex Mono', monospace; font-size:0.85rem; font-weight:600; text-transform:uppercase;
    letter-spacing:0.04em; color:var(--ink);
  }
  .form-progress-label strong{color:var(--red-text);}
  .form-progress-bar{height:6px; border-radius:3px;}
  .form-progress-fill.is-near{background:var(--red);}
  .gg-pct{color:var(--red-text);}
  .form-progress-sub{margin:4px 0 0; font-size:0.85rem; color:var(--slate);}
  .form-milestone{margin:6px 0 0; font-size:0.92rem; font-weight:600; color:var(--ink); min-height:1.2em;}
  .form-milestone:empty{display:none;}
  @media (prefers-reduced-motion: reduce){.po-confetti{display:none;}}
  .social-proof{display:inline-block; margin-left:6px; color:var(--slate);}
  .form-step{display:none;}
  .form-step.is-active{display:block;}
  .form-step-nav{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:24px;}
  .form-step-nav .btn-primary{margin-top:0; width:auto; flex-shrink:0;}
  .btn-secondary{
    display:inline-block; background:none; border:1px solid var(--line); color:var(--ink); font-weight:500;
    padding:14px 22px; border-radius:4px; font-size:0.98rem; cursor:pointer; transition:border-color 0.15s;
  }
  .btn-secondary:hover{border-color:var(--slate);}

  /* form group titles */
  .form-group-title{
    font-family:'IBM Plex Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em;
    color:var(--slate); margin:26px 0 14px; padding-top:18px; border-top:1px solid var(--line);
  }
  .form-card .form-group-title:first-child{margin-top:0; padding-top:0; border-top:none;}

/* ---- suggerimenti, lingue ---- */
  /* autocomplete professioni */
  .autocomplete-wrap{position:relative;}
  .autocomplete-list{
    position:absolute; top:100%; left:0; right:0; z-index:20;
    background:var(--paper); border:1px solid var(--line); border-top:none; border-radius:0 0 4px 4px;
    max-height:220px; overflow-y:auto; list-style:none; display:none; box-shadow:0 8px 16px rgba(0,0,0,0.08);
  }
  .autocomplete-list.open{display:block;}
  .autocomplete-list li{
    padding:9px 12px; font-size:0.9rem; cursor:pointer; color:var(--ink);
  }
  .autocomplete-list li:hover, .autocomplete-list li.active{background:var(--cream-card);}
  .autocomplete-list li .match{color:var(--red-text); font-weight:600;}
  /* professioni (V2.1.57): titolo dei suggerimenti, settore o sinonimo trovato, «Forse cercavi», «Altro» */
  .autocomplete-list{max-height:300px;}
  .autocomplete-list li.po-prof-head{cursor:default; font-size:0.78rem; font-weight:600; color:var(--slate); text-transform:uppercase; letter-spacing:0.04em; padding:8px 12px 4px;}
  .autocomplete-list li.po-prof-head:hover{background:none;}
  .po-prof-opt .po-prof-hint{display:block; font-size:0.78rem; color:var(--slate); margin-top:2px;}
  .po-prof-opt .po-prof-maybe{color:var(--red-text); font-weight:600;}
  .autocomplete-list li.po-prof-other{border-top:1px solid var(--line);}

  /* lingue con livello: una riga per lingua, il livello e' sempre visibile
     (solo disattivato finche' non selezionata) cosi' la lista non si sposta
     e si capisce subito che va scelto un livello */
  .lang-grid{display:flex; flex-direction:column; gap:8px;}
  .lang-chip{
    display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:8px;
    padding:10px 14px; font-size:0.9rem; cursor:pointer; background:var(--paper); transition:border-color 0.15s;
    user-select:none;
  }
  .lang-chip:hover{border-color:var(--slate);}
  .lang-chip.selected{border-color:var(--red);}
  .lang-chip .lang-name{font-weight:500; flex:1;}
  .lang-check{
    width:18px; height:18px; border-radius:4px; border:1.5px solid var(--line); flex-shrink:0;
    position:relative; transition:border-color 0.15s, background 0.15s;
  }
  .lang-chip.selected .lang-check{background:var(--red); border-color:var(--red);}
  .lang-chip.selected .lang-check::after{
    content:''; position:absolute; left:5px; top:2px; width:5px; height:9px;
    border:solid var(--paper); border-width:0 2px 2px 0; transform:rotate(45deg);
  }
  .lang-chip select{
    border:1px solid var(--line); background:var(--paper); color:var(--ink); font-family:'IBM Plex Mono', monospace;
    font-size:0.76rem; border-radius:6px; padding:5px 8px; cursor:pointer; flex-shrink:0;
    opacity:0.4; pointer-events:none; transition:opacity 0.15s, border-color 0.15s;
  }
  .lang-chip.selected select{opacity:1; pointer-events:auto; border-color:var(--red);}

/* ---- caricamento file ---- */
  /* upload cv */
  .file-drop{
    border:1px dashed var(--line); border-radius:4px; padding:16px 14px;
    display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:0.86rem; color:var(--slate);
  }
  label.file-drop-btn{
    font-family:'IBM Plex Mono', monospace; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.04em;
    background:var(--ink); color:var(--paper); padding:7px 12px; border-radius:4px; white-space:nowrap; flex-shrink:0;
    display:inline-block; margin-bottom:0; cursor:pointer;
  }
  label.file-drop-btn:hover{background:var(--red);}
  @media (max-width:500px){
    .file-drop{flex-direction:column; align-items:flex-start;}
  }

/* ---- domande apri/chiudi (base) ---- */
  details{border-bottom:1px solid var(--line); padding:22px 0;}
  summary{
    font-family:'Space Grotesk', sans-serif; font-size:1.02rem; font-weight:600;
    cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
    transition:color 0.15s;
  }
  summary:hover{color:var(--red-text);}
  summary::-webkit-details-marker{display:none;}
  summary::after{content:'+'; font-family:'IBM Plex Mono', monospace; color:var(--red-text); font-size:1.2rem;}
  details[open] summary::after{content:'–';}
  details p{margin-top:14px; color:var(--slate); font-size:0.94rem; max-width:600px;}

/* ---- profilo: flusso e scelte ---- */
/* ===== Stile specifico: profilo.html (flusso magic link) ===== */
.profile-hero{padding:22px 0 0;}
  .profile-hero h1{font-size:1.45rem; line-height:1.25; max-width:640px; margin:0 auto;}
  .profile-welcome-back[hidden]{display:none;}
  .profile-welcome-back{background:var(--cream-card); border-radius:6px; padding:12px 16px; font-size:0.92rem; margin-top:16px; display:inline-block;}
  .profile-form-section{padding:14px 0 50px;}
  .autosave-indicator{font-size:0.76rem; color:var(--slate); text-align:right; min-height:16px; margin-bottom:6px; opacity:0; transition:opacity 0.3s;}
  .autosave-indicator.is-visible{opacity:1;}

  .card-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .card-option{position:relative; display:block; border:1px solid var(--line); border-radius:6px; padding:12px 14px; cursor:pointer; transition:border-color 0.15s, background 0.15s;}
  .card-option input{position:absolute; opacity:0; width:1px; height:1px;}
  .card-option.selected{border-color:var(--red); border-width:2px; padding:11px 13px; background:#FBEEEA;}
  .card-option.selected .opt-label{color:var(--red-text);}
  /* zone di lavoro (profilo, passo 7): scelta multipla raggruppata per regione */
  .zone-grid{display:grid; gap:8px;}
  .zone-group{font:600 .72rem 'IBM Plex Mono', monospace; text-transform:uppercase; letter-spacing:.08em; color:var(--slate); margin:10px 0 0;}
  .zone-group:first-child{margin-top:0;}
  .zone-option .opt-label small{display:block; font-weight:400; font-size:.8rem; color:var(--slate); margin-top:2px;}
  .zone-option.selected .opt-label small{color:var(--slate);}
  .card-option .opt-label{font-weight:600; font-size:0.92rem; display:block;}
  .card-option .opt-hint{font-size:0.78rem; color:var(--slate); display:block; margin-top:2px;}

  .chip-grid{display:flex; flex-wrap:wrap; gap:8px;}
  .chip-toggle{border:1px solid var(--line); border-radius:20px; padding:8px 16px; font-size:0.88rem; cursor:pointer; background:var(--paper); transition:border-color 0.15s, background 0.15s, color 0.15s;}
  .chip-toggle.selected{border-color:var(--red); background:var(--red); color:var(--paper);}
  .chip-toggle.is-disabled{opacity:0.35; cursor:not-allowed;}
  .chip-toggle.chip-custom{display:inline-flex; align-items:center; gap:6px;}
  .chip-remove{font-size:1rem; line-height:1; opacity:0.7;}
  .chip-remove:hover{opacity:1;}
  .chip-count{font-size:0.78rem; color:var(--slate); margin-top:10px;}
  .chip-add-row{display:flex; gap:8px; margin-top:12px;}
  .chip-add-row input{
    flex:1; min-width:0; border:1px solid var(--line); border-radius:4px; padding:9px 12px;
    font-family:'IBM Plex Sans', sans-serif; font-size:0.88rem; background:var(--paper); color:var(--ink);
  }
  .chip-add-row .btn-secondary{padding:9px 16px; font-size:0.88rem; flex-shrink:0;}

  @media (max-width:520px){ .card-grid{grid-template-columns:1fr;} }

/* ---- profilo: riepilogo e consensi ---- */
  .admin-overlay{position:fixed; inset:0; background:rgba(27,31,35,0.55); display:flex; align-items:flex-start; justify-content:center; z-index:100; padding:40px 20px; overflow-y:auto;}
  .admin-overlay[hidden]{display:none;}
  .admin-panel{background:var(--paper); max-width:620px; width:100%; border-radius:8px; padding:30px; box-shadow:0 10px 40px rgba(0,0,0,0.2);}
  .admin-summary{display:flex; flex-direction:column; gap:0;}
  .admin-row{display:grid; grid-template-columns:150px 1fr; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:0.86rem;}
  .admin-row-k{font-family:'IBM Plex Mono', monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--slate);}
  .admin-log-row{display:flex; flex-direction:column; gap:2px; padding:9px 0; border-bottom:1px solid var(--line); font-size:0.86rem;}
  .admin-log-row .mono{font-size:0.72rem; color:var(--slate);}

/* ===== Stile specifico: gestione dati (profilo.html, dopo il completamento) ===== */
.session-banner{margin-top:16px; color:var(--slate); font-size:.9rem; line-height:1.5}
.po-sess-link{border:0; background:none; padding:0; margin-left:4px; font:inherit; color:var(--ink); text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.po-sess-link:hover{color:var(--red-text)}
.po-sess-link:disabled{opacity:.5; cursor:default}
  .manage-section-title{font-size:0.8rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--red-text); font-family:'IBM Plex Mono', monospace; margin-bottom:14px;}
  .consent-row{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 0; border-bottom:1px solid var(--line);}
  .consent-row:last-child{border-bottom:none;}
  .consent-row-name{font-weight:600; font-size:0.94rem;}
  .consent-badge{margin-top:5px; display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; padding:3px 8px; border-radius:3px;}
  .consent-badge.on{background:color-mix(in srgb, var(--green) 16%, transparent); color:var(--green);}
  .consent-badge.off{background:var(--line); color:var(--slate);}
  .btn-revoke{border:2px solid var(--red); background:none; color:var(--red-text); padding:12px 16px; border-radius:4px; font-weight:700; font-size:0.9rem; cursor:pointer; transition:background 0.15s;}
  .btn-revoke:hover{background:color-mix(in srgb, var(--red) 10%, transparent);}
  .btn-revoke-small{border:1px solid var(--line); background:none; color:var(--red-text); padding:8px 12px; border-radius:4px; font-size:0.82rem; cursor:pointer;}
  .btn-revoke-small:hover{background:color-mix(in srgb, var(--red) 8%, transparent);}

/* ---- chat ---- */
/* ===== Chat mediata candidato/agenzia (profilo, portale agenzie, backoffice) =====
   Stile a "conversazione" ispirato a WhatsApp: bolle con coda, allineate a
   destra/sinistra secondo il mittente, sfondo del thread distinto dalla
   card che lo contiene, ora sempre in basso a destra dentro la bolla. */
.chat-thread-card{border:1px solid var(--line); border-radius:8px; padding:14px; margin-bottom:12px;}
.chat-thread-head{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px;}
.chat-thread-body{
  margin-top:12px; max-height:360px; overflow-y:auto; display:flex; flex-direction:column; gap:6px;
  background:#E9E3D7; border-radius:8px; padding:14px 12px;
}
.chat-bubble{
  max-width:78%; padding:7px 11px 6px; border-radius:12px; font-size:0.88rem; line-height:1.42;
  position:relative; box-shadow:0 1px 1px rgba(27,31,35,0.1);
}
.chat-bubble .chat-meta{display:block; font-size:0.66rem; color:var(--slate); margin-top:3px; text-align:right;}
.chat-mine{align-self:flex-end; background:#F6D8C9; color:var(--ink); border-bottom-right-radius:3px;}
.chat-mine .chat-meta{color:#93695A;}
.chat-mine::after{
  content:''; position:absolute; right:-6px; bottom:0; width:0; height:0;
  border-left:7px solid #F6D8C9; border-bottom:7px solid transparent;
}
.chat-theirs{align-self:flex-start; background:var(--paper); border-bottom-left-radius:3px;}
.chat-theirs::after{
  content:''; position:absolute; left:-6px; bottom:0; width:0; height:0;
  border-right:7px solid var(--paper); border-bottom:7px solid transparent;
}
.chat-form{display:flex; gap:8px; margin-top:10px; align-items:flex-end;}
.chat-form textarea{flex:1; resize:none; font-family:inherit; font-size:0.88rem; padding:10px 14px; border:1px solid var(--line); border-radius:20px; background:var(--paper);}
.chat-form .btn-secondary{border-radius:20px;}

/* ---- telefono: bordi piu' visibili sui campi ---- */
/* Bordi da 1px, con il colore chiaro --line, diventano quasi invisibili su
   schermo piccolo: li rinforziamo sugli elementi dove serve vedere bene il
   contorno (campi, card, chip). Solo su telefono. */
@media (max-width:600px){
  .form-card-mini,
  .form-field input, .form-field select, .form-field textarea,
  .card-option, .chip-toggle, .lang-chip,
  .canton-rank-item, .canton-picker select,
  .contact-person, .link-modal,
  .chip-add-row input{
    border-width:1.5px;
  }
}

/* ---- documenti del profilo ---- */
/* Documenti del profilo: una sezione per tipo, file con "Sostituisci" */
.doc-kind{padding:10px 0;border-bottom:1px solid var(--line);}
.doc-kind-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.doc-kind-label{font-family:'IBM Plex Mono',monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);}
.doc-btn, .doc-kind-btns .doc-cvb{width:auto;flex:none;padding:6px 14px;font-size:.82rem;}
.doc-files{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;}
.doc-files li{display:flex;align-items:center;gap:10px;font-size:.86rem;}
.doc-files a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ---- campi obbligatori e «finisci dopo» ---- */
/* Campi obbligatori del profilo, avviso di passo incompleto e "finisci dopo" */
.req::after{content:" *"; color:var(--red-text); font-weight:600;}
.is-missing{outline:2px solid var(--red); outline-offset:3px; border-radius:6px;}
input.is-missing, select.is-missing, textarea.is-missing{border-color:var(--red);}
.req-msg{margin:12px 0 0; min-height:0;}
.req-msg:empty{display:none;}
.req-legend{margin:0 0 14px;}
.form-later{display:block; margin:14px auto 0; background:none; border:none; padding:6px 10px; color:var(--slate); font-size:0.88rem; text-decoration:underline; cursor:pointer;}
.form-later:hover{color:var(--red-text);}
.later-overlay{position:fixed; inset:0; z-index:300; background:rgba(20,18,16,0.55); display:flex; align-items:center; justify-content:center; padding:20px;}
.later-overlay[hidden]{display:none;}
.later-box{background:var(--paper); border-radius:10px; padding:26px; max-width:440px; width:100%; box-shadow:0 10px 40px rgba(0,0,0,0.25);}
.later-box h3{margin:0 36px 8px 0; font-size:1.2rem;}
.later-box{position:relative;}
.later-close{position:absolute; top:10px; right:10px; width:40px; height:40px; border:0; border-radius:8px; background:none; font-size:1.6rem; line-height:1; color:var(--slate); cursor:pointer;}
.later-close:hover, .later-close:focus-visible{color:var(--ink); background:rgba(0,0,0,.06);}
.later-box p{color:var(--slate); margin:0 0 14px; line-height:1.5;}
.later-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px;}
.later-actions button{flex:1 1 auto; justify-content:center;}

/* ---- modulo del profilo ---- */
/* ===== Formulario profilo: semplice e corto (V2.0.167) ===== */
.profile-form-section .form-card{padding:20px 22px;}
.profile-welcome-back{display:block; max-width:640px; margin:10px auto 0;}
.profile-form-section .form-progress{margin-bottom:14px;}
.profile-form-section .autosave-indicator{min-height:14px; margin:0 0 6px;}
.profile-form-section .form-progress-sub{display:none;}
.profile-form-section .req-legend{display:none;}
.profile-form-section .form-step .form-field{margin-bottom:14px;}
.profile-form-section .form-row .form-field{margin-bottom:0;}
.profile-form-section .form-row{margin-bottom:14px;}
.profile-form-section .form-block > label{display:block; margin-bottom:8px;}
.profile-form-section .card-grid{gap:8px;}
.profile-form-section .card-option{padding:10px 12px;}
.profile-form-section .card-option.selected{padding:9px 11px;}
.profile-form-section .lang-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
.profile-form-section .zone-grid{grid-template-columns:1fr 1fr; gap:8px;}
.profile-form-section .zone-group{grid-column:1 / -1; margin:6px 0 0;}
.profile-form-section .form-step-nav{margin-top:18px;}
.form-more{border:1px solid var(--line); border-radius:6px; padding:0 12px; margin-bottom:10px; background:var(--paper);}
.form-more summary{cursor:pointer; padding:11px 0; font-weight:600; font-size:0.92rem; list-style:none;}
.form-more summary::-webkit-details-marker{display:none;}
.form-more summary::after{content:'+'; float:right; color:var(--slate); font-weight:400;}
.form-more[open] summary::after{content:'\2212';}
.form-more summary span{font-weight:400; color:var(--slate);}
.form-more[open]{padding-bottom:12px;}
@media (max-width:560px){
  .profile-form-section .form-card{padding:16px 12px;}
  .profile-form-section .zone-grid{grid-template-columns:minmax(0,1fr);}
  .profile-hero h1{font-size:1.25rem;}
  .profile-form-section .zone-option .opt-label small{display:none;}
}
.profile-form-section .form-milestone{display:none;}
.profile-form-section #afcGrid{grid-template-columns:1fr 1fr !important;}
.profile-form-section #relocGrid .card-option:last-child{grid-column:1 / -1;}
.profile-form-section .lang-chip{min-width:0; padding:9px 10px; gap:8px;}
.profile-form-section .lang-chip .lang-name{min-width:0; font-size:0.9rem;}
.profile-form-section .lang-chip select{width:auto; max-width:48%; padding:5px 6px;}
.profile-form-section .lang-chip:not(.selected) select{display:none;}
.profile-form-section .zone-group{display:none;}
.profile-form-section .zone-option .opt-label small{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.profile-form-section .zone-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.profile-form-section .zone-option{min-width:0;}
@media (max-width:560px){ .profile-form-section .zone-grid{grid-template-columns:minmax(0,1fr);} }

/* ===== Formulario profilo: ogni domanda e' un riquadro a se' (V2.0.169) ===== */
.profile-form-section .form-step::before{content:attr(data-label); display:block; font:700 1.35rem/1.2 'Space Grotesk',sans-serif; letter-spacing:-.01em; margin:2px 0 14px;}
.profile-form-section .form-step > .form-field,
.profile-form-section .form-step > .form-row,
.profile-form-section .form-step > details.form-more{background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px; margin:0 0 12px;}
.profile-form-section .form-step > .form-row{gap:14px;}
.profile-form-section .form-step > .form-row .form-field{margin:0;}
.profile-form-section .form-step > details.form-more{padding:0 16px;}
.profile-form-section .form-step > details.form-more[open]{padding-bottom:14px;}
.profile-form-section .form-field > label:first-child{font:600 1rem/1.3 'IBM Plex Sans',sans-serif; text-transform:none; letter-spacing:0; color:var(--ink); margin-bottom:10px;}
.profile-form-section .form-field > label:first-child span{font-weight:400; color:var(--slate);}
.profile-form-section .form-field > label:first-child.req::after, .profile-form-section label.req::after{color:var(--red);}
.profile-form-section .card-option, .profile-form-section .card-option .opt-label{font-family:'IBM Plex Sans',sans-serif; text-transform:none; letter-spacing:0;}
.profile-form-section .card-option{background:var(--paper); font-size:.95rem;}
.profile-form-section .card-option .opt-label{font-weight:500; font-size:.95rem;}
.profile-form-section .card-option.selected{background:#FBEEEA;}
.profile-form-section .card-option.selected .opt-label{font-weight:600;}
.profile-form-section .zone-option .opt-label small{font-family:'IBM Plex Sans',sans-serif; text-transform:none; letter-spacing:0; font-size:.78rem;}
.profile-form-section .lang-chip{background:var(--paper);}
.profile-form-section .lang-chip .lang-name{font-family:'IBM Plex Sans',sans-serif; text-transform:none; letter-spacing:0; font-weight:500;}
.profile-form-section .form-note{font-size:.82rem; margin:8px 0 0;}
.profile-form-section .form-step > .form-note{margin:-4px 4px 12px;}
.profile-form-section .form-progress-label{font-size:.78rem;}
.profile-form-section .form-step-nav{margin-top:16px;}
.profile-form-section .req-msg:empty{display:none;}
@media (max-width:560px){
  .profile-form-section .form-step > .form-field, .profile-form-section .form-step > .form-row{padding:14px 12px;}
  .profile-form-section .form-step::before{font-size:1.2rem;}
}
.profile-form-section .lang-chip{flex-wrap:wrap;}
.profile-form-section .lang-chip select{flex:1 1 100%; max-width:100%; width:100%; margin-top:2px;}

/* ===== Formulario profilo: barra laterale e spunte verdi nei campi (V2.0.170) =====
   Stesse domande di prima: cambia solo l'aspetto (variante 1 del mockup). Tutto sotto .po-shell. */
.profile-form-section .po-shell{
  --po-ok:#1B1F23; --po-field:#F7F6F3; --po-hov:#cfccc4; --po-r:14px;
  --po-chkw:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E");
  --po-chkg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%231B1F23' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E");
  --po-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none' stroke='%231B1F23' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  display:grid; grid-template-columns:300px minmax(0,1fr); max-width:1000px; margin:0 auto; padding:0;
  background:#fff; border:1px solid var(--line); border-radius:30px; overflow:hidden; min-height:640px;
  box-shadow:0 40px 70px -40px rgba(27,31,35,.35);
}
.profile-form-section .po-shell[hidden]{display:none}
.profile-form-section .po-shell :focus-visible{outline:2px solid #2F6BFF; outline-offset:2px}

/* barra laterale */
.po-rail{background:var(--ink); color:#fff; padding:34px 30px; display:flex; flex-direction:column; position:relative; overflow:hidden; font-family:'Space Grotesk',sans-serif}
.po-logo{font-size:24px; font-weight:700; letter-spacing:-.025em; position:relative; z-index:1}
.po-logo i{color:var(--red); font-style:normal}
.po-rbar{height:3px; background:rgba(255,255,255,.14); border-radius:9px; margin:26px 0 24px; overflow:hidden; position:relative; z-index:1}
.po-rbar span{display:block; height:100%; width:0; background:var(--red); transition:width .45s cubic-bezier(.3,.7,.2,1)}
.po-rsteps{list-style:none; display:flex; flex-direction:column; gap:6px; position:relative; z-index:1}
.po-rsteps li{display:flex; gap:14px; align-items:center; padding:9px 0; color:#8f959b; transition:.25s}
.po-n{width:34px; height:34px; border-radius:50%; border:1.5px solid #3b4249; display:grid; place-items:center; font:500 12px 'IBM Plex Mono',monospace; flex:none; transition:.25s}
.po-t{font-size:15px; font-weight:600; line-height:1.25}
.po-rsteps li.active{color:#fff}
.po-rsteps li.active .po-n{background:var(--red); border-color:var(--red); color:#fff}
.po-rsteps li.is-done{color:#c9cdd1}
.po-rsteps li.is-done .po-n{background:rgba(255,255,255,.18); border-color:transparent; font-size:0; position:relative}
.po-rsteps li.is-done .po-n::after{content:''; width:14px; height:14px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E") center/contain no-repeat}
.po-cnt{margin-top:auto; padding-top:22px; margin-bottom:16px; position:relative; z-index:1}
.po-cl{font:400 12px 'IBM Plex Mono',monospace; color:#c9cdd1; display:flex; justify-content:space-between}
.po-cl b{color:#fff; font-weight:500}
.po-cb{height:6px; border-radius:9px; background:rgba(255,255,255,.14); margin-top:8px; overflow:hidden}
.po-cb span{display:block; height:100%; width:0; background:#fff; border-radius:9px; transition:width .4s}
.po-blob{position:absolute; left:-70px; bottom:-90px; width:230px; height:230px; border-radius:50%; background:var(--red); opacity:.95}

/* pannello */
.profile-form-section .po-shell .po-pane{padding:44px 52px 34px; display:flex; flex-direction:column; min-width:0; position:relative}
.profile-form-section .po-shell .form-progress{margin-bottom:6px}
.profile-form-section .po-shell .form-progress-bar{display:none}
.profile-form-section .po-shell .form-progress-label{font:500 12px 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--slate)}
.profile-form-section .po-shell .form-progress-label strong{color:var(--red-text, var(--red))}
.profile-form-section .po-shell .autosave-indicator{margin:0 0 4px; font-family:'IBM Plex Mono',monospace}
.profile-form-section .po-shell .form-step::before{
  font:700 34px/1.12 'Space Grotesk',sans-serif; letter-spacing:-.03em; margin:6px 0 26px; color:var(--ink);
}
.profile-form-section .po-shell .form-step > .form-field,
.profile-form-section .po-shell .form-step > .form-row{background:none; border:0; border-radius:0; padding:0; margin:0 0 24px}
.profile-form-section .po-shell .form-step > .form-row{gap:24px 18px}
.profile-form-section .po-shell .form-step .form-field{position:relative}
.profile-form-section .po-shell .form-field > label:first-child{
  font:600 14px 'Space Grotesk',sans-serif; text-transform:none; letter-spacing:-.005em; color:var(--ink); margin-bottom:8px;
}
.profile-form-section .po-shell .form-field > label:first-child span{font:400 11px 'IBM Plex Mono',monospace; color:var(--slate)}
.profile-form-section .po-shell .form-note{font-size:13px; color:var(--slate)}

/* campi */
.profile-form-section .po-shell .form-field input[type=text],
.profile-form-section .po-shell .form-field input[type=tel],
.profile-form-section .po-shell .form-field input[type=date],
.profile-form-section .po-shell .form-field input[type=email],
.profile-form-section .po-shell .form-field select{
  width:100%; height:54px; border:1.5px solid var(--line); border-radius:var(--po-r); padding:0 44px 0 16px;
  font-family:'Space Grotesk',sans-serif; font-size:16px; color:var(--ink); background-color:var(--po-field);
  outline:0; transition:border-color .15s, box-shadow .15s, background-color .15s;
}
.profile-form-section .po-shell .form-field input::placeholder{color:#a9a7a0}
.profile-form-section .po-shell .form-field input:hover,
.profile-form-section .po-shell .form-field select:hover{border-color:var(--po-hov)}
.profile-form-section .po-shell .form-field input:focus,
.profile-form-section .po-shell .form-field select:focus,
.profile-form-section .po-shell .form-field textarea:focus{border-color:var(--ink); background-color:#fff; box-shadow:0 0 0 4px rgba(27,31,35,.07)}
.profile-form-section .po-shell .form-field select{
  appearance:none; -webkit-appearance:none; background-image:var(--po-arrow); background-repeat:no-repeat; background-position:right 16px center;
}
.profile-form-section .po-shell .form-field textarea{
  width:100%; min-height:110px; border:1.5px solid var(--line) !important; border-radius:var(--po-r) !important; padding:14px 16px !important;
  font-family:'Space Grotesk',sans-serif !important; font-size:16px !important; background:var(--po-field) !important; outline:0;
  transition:border-color .15s, box-shadow .15s;
}
.profile-form-section .po-shell input.is-missing,
.profile-form-section .po-shell select.is-missing,
.profile-form-section .po-shell textarea.is-missing{outline:0; border-color:var(--red); box-shadow:0 0 0 4px rgba(214,64,44,.12)}
.profile-form-section .po-shell .is-missing{border-radius:var(--po-r)}

/* spunta verde dentro il campo, a destra (select e data: a sinistra della freccia / del calendario) */
.po-host.po-ok::after{
  content:''; position:absolute; right:16px; bottom:18px; width:18px; height:18px; pointer-events:none;
  background:var(--po-chkg) center/contain no-repeat; animation:po-tick .3s cubic-bezier(.3,.7,.2,1);
}
.po-host.po-ok.po-offset::after{right:42px}
.po-host.po-ok.po-offset input,
.po-host.po-ok.po-offset select{padding-right:70px !important}
@keyframes po-tick{from{opacity:0; transform:scale(.4)}to{opacity:1; transform:none}}

/* scelte */
.profile-form-section .po-shell .card-grid{gap:12px}
.profile-form-section .po-shell .card-option{border:1.5px solid var(--line); border-radius:var(--po-r); padding:14px 16px; background:#fff; transition:.18s}
.profile-form-section .po-shell .card-option:hover{border-color:var(--ink)}
.profile-form-section .po-shell .card-option.selected{border-color:var(--red); border-width:1.5px; padding:14px 16px; background:rgba(214,64,44,.07); box-shadow:0 0 0 4px rgba(214,64,44,.1)}
.profile-form-section .po-shell .card-option, .profile-form-section .po-shell .card-option .opt-label{font-family:'Space Grotesk',sans-serif}
.profile-form-section .po-shell .card-option .opt-label{font-size:15px; font-weight:500}
.profile-form-section .po-shell .card-option.selected .opt-label{font-weight:600}
.profile-form-section .po-shell .chip-grid{gap:8px}
.profile-form-section .po-shell .chip-toggle{border:1.5px solid var(--line); border-radius:999px; padding:9px 15px; font:500 14px 'Space Grotesk',sans-serif; background:#fff; color:var(--ink); display:inline-flex; align-items:center; gap:6px; transition:.15s}
.profile-form-section .po-shell .chip-toggle:hover{border-color:var(--ink)}
.profile-form-section .po-shell .chip-toggle.selected{background:var(--ink); border-color:var(--ink); color:#fff}
.profile-form-section .po-shell .chip-toggle.selected::before{content:''; width:12px; height:12px; background:var(--po-chkw) center/contain no-repeat}
.profile-form-section .po-shell .lang-chip{border:1.5px solid var(--line); border-radius:var(--po-r); padding:11px 14px; background:#fff}
.profile-form-section .po-shell .lang-chip:hover{border-color:var(--ink)}
.profile-form-section .po-shell .lang-chip.selected{border-color:var(--red); background:rgba(214,64,44,.07); box-shadow:0 0 0 4px rgba(214,64,44,.1)}
.profile-form-section .po-shell .lang-chip .lang-name{font-family:'Space Grotesk',sans-serif}
.profile-form-section .po-shell .lang-chip select{border:1.5px solid var(--line); border-radius:10px; background:#fff}
.profile-form-section .po-shell .file-drop,
.profile-form-section .po-shell .photo-drop{border:2px dashed var(--po-hov); border-radius:var(--po-r); padding:18px; background:var(--po-field); transition:.18s}
.profile-form-section .po-shell .file-drop:hover,
.profile-form-section .po-shell .photo-drop:hover{border-color:var(--red); background:rgba(214,64,44,.07)}
.profile-form-section .po-shell label.file-drop-btn{background:var(--ink); border-radius:10px; padding:9px 14px}
.profile-form-section .po-shell label.file-drop-btn:hover{background:var(--red)}
.profile-form-section .po-shell details.form-more{border:1.5px solid var(--line); border-radius:var(--po-r); background:#fff; padding:0 18px}
.profile-form-section .po-shell details.form-more summary{font-family:'Space Grotesk',sans-serif; font-size:15px; padding:15px 0}

/* navigazione */
.profile-form-section .po-shell .form-step-nav{margin-top:30px; padding-top:22px; border-top:1px solid var(--line)}
.profile-form-section .po-shell .form-step-nav .btn-primary{
  margin:0 0 0 auto; width:auto; height:54px; padding:0 28px; border:0; border-radius:var(--po-r); background:var(--red); color:#fff;
  font:700 16px 'Space Grotesk',sans-serif; display:inline-flex; align-items:center; justify-content:center; transition:.18s;
}
.profile-form-section .po-shell .form-step-nav .btn-primary:hover{filter:brightness(.92); transform:translateY(-1px); background:var(--red)}
.profile-form-section .po-shell .form-step-nav .btn-secondary{border:0; background:none; height:54px; padding:0 14px; color:var(--slate); font:500 16px 'Space Grotesk',sans-serif; border-radius:var(--po-r)}
.profile-form-section .po-shell .form-step-nav .btn-secondary:hover{color:var(--ink)}
.profile-form-section .po-shell .form-step.is-active{animation:po-slide .4s cubic-bezier(.3,.7,.2,1)}
@keyframes po-slide{from{opacity:0; transform:translateX(22px)}to{opacity:1; transform:none}}

@media (max-width:860px){
  .profile-form-section .po-shell{grid-template-columns:1fr; min-height:0; border-radius:24px}
  .po-rail{padding:18px 22px; flex-direction:row; align-items:center; gap:18px}
  .po-rbar{flex:1; margin:0}
  .po-rsteps, .po-cnt{display:none}
  .po-blob{width:120px; height:120px; left:auto; right:-50px; bottom:-70px}
  .profile-form-section .po-shell .po-pane{padding:26px 20px 22px}
  .profile-form-section .po-shell .form-step::before{font-size:26px; margin-bottom:20px}
}
@media (max-width:560px){
  .profile-form-section .po-shell .form-step > .form-row{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.profile-form-section .po-shell *{animation:none!important; transition:none!important}}

/* ===== V2.0.187: data in tre campi, livello lingue, cartina delle zone, pallini info ===== */
.po-dob{display:grid; grid-template-columns:1fr 1.5fr 1.1fr; gap:12px}
.po-host.po-ok.po-no-tick::after{display:none}
.po-host.po-ok .po-dob select{border-color:var(--ink)}
.profile-form-section .po-shell .po-dob select, .po-host.po-ok.po-offset .po-dob select{padding:0 28px 0 10px !important; background-position:right 9px center; font-size:15px}
.po-dob.is-missing{outline:0; border-radius:var(--po-r, 14px); box-shadow:0 0 0 3px rgba(214,64,44,.35)}
@media (max-width:420px){ .po-dob{gap:8px} .profile-form-section .po-shell .po-dob select{padding-left:12px; padding-right:30px; background-position:right 10px center} }

/* livello delle lingue: ben leggibile */
.profile-form-section .po-shell .lang-chip.selected select{
  opacity:1; height:46px; font:600 15px 'Space Grotesk',sans-serif; color:var(--ink); background-color:#fff;
  appearance:none; -webkit-appearance:none; background-image:var(--po-arrow); background-repeat:no-repeat; background-position:right 14px center;
  border:1.5px solid var(--ink); border-radius:10px; padding:0 40px 0 14px; cursor:pointer;
}
.profile-form-section .po-shell .lang-chip.selected select:focus{box-shadow:0 0 0 4px rgba(27,31,35,.1); outline:0}
.profile-form-section .po-shell .lang-chip .lang-name{font-size:16px; font-weight:600}

/* zone: lingua tra parentesi e cartina */
.profile-form-section .po-shell .zone-lang{font-weight:400; color:var(--slate)}
.profile-form-section .po-shell .zone-option.is-hover{border-color:var(--ink)}
.zone-map{margin:0 0 16px; padding:14px; border:1.5px solid var(--line); border-radius:var(--po-r, 14px); background:#fff}
.zone-map svg{display:block; width:100%; max-width:440px; height:auto; margin:0 auto}
.zone-map .zm{stroke:#fff; stroke-width:1.1; stroke-linejoin:round; cursor:pointer; transition:fill .15s}
.zone-map .zm-ti{fill:#EADFD0}
.zone-map .zm-leman{fill:#D9D3C7}
.zone-map .zm-valais{fill:#C4BDAF}
.zone-map .zm-arc{fill:#E4DFD4}
.zone-map .zm-nordovest{fill:#D5D8DC}
.zone-map .zm-zurigo{fill:#B9BEC5}
.zone-map .zm-est{fill:#E6E8EA}
.zone-map .zm.is-hover{stroke:var(--ink); stroke-width:1.6}
.zone-map .zm.is-on{fill:var(--red)}
.zone-map .zm.is-on.is-hover{fill:#B8331F}
.zone-legend{display:flex; flex-wrap:wrap; gap:6px 14px; justify-content:center; align-items:center; margin:10px 0 0; font-size:.8rem; color:var(--slate)}
.zone-legend .zl{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:-8px}
.zl-it{background:#EADFD0}.zl-fr{background:#C4BDAF}.zl-de{background:#B9BEC5}
.zone-hint{margin:6px 0 0; text-align:center; font-size:.8rem; color:var(--slate)}

/* pallino info blu: la spiegazione si apre sotto la domanda */
.po-i{position:relative; width:22px; height:22px; border-radius:50%; border:1.5px solid #2F6BFF; background:#fff; color:#2F6BFF; font:700 12px/1 'Space Grotesk',sans-serif; display:inline-grid; place-items:center; padding:0; cursor:pointer; transition:.2s; flex:none; vertical-align:middle; margin-left:8px}
.po-i::after{content:''; position:absolute; inset:-9px}
.po-i:hover{background:#EEF3FF}
.po-i[aria-expanded=true]{background:#2F6BFF; color:#fff; box-shadow:0 0 0 4px rgba(47,107,255,.18)}
.po-i-abs{position:absolute; top:-1px; right:0; margin:0}
.po-info{display:none; margin:0 0 12px}
.po-info.open{display:block; animation:po-slide .25s cubic-bezier(.3,.7,.2,1)}
.po-info p{margin:0; background:#EEF3FF; color:#1B3FA0; border-left:3px solid #2F6BFF; border-radius:3px 12px 12px 3px; padding:12px 14px; font-size:.9rem; line-height:1.5; box-shadow:0 0 0 1px rgba(47,107,255,.12)}
.profile-form-section .po-shell .form-field > label:first-child{padding-right:34px}

/* ===== V2.0.187: schermata di conferma e area personale a schede ===== */
/* conferma */
.po-celebrate{position:relative; z-index:1; overflow:hidden; max-width:680px; margin:0 auto; padding:54px 40px 44px; text-align:center; color:#fff;
  background:var(--ink); border-radius:30px; box-shadow:0 40px 70px -40px rgba(27,31,35,.5); font-family:'Space Grotesk',sans-serif}
.po-celebrate[hidden]{display:none}
.po-celebrate::before{content:''; position:absolute; left:-90px; bottom:-120px; width:300px; height:300px; border-radius:50%; background:var(--red); opacity:.95}
.po-celebrate::after{content:''; position:absolute; right:-70px; top:-90px; width:200px; height:200px; border-radius:50%; background:var(--red); opacity:.9}
.po-celebrate > *{position:relative; z-index:1}
.po-celeb-check{width:92px; height:92px; fill:none; stroke:#fff; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; margin-bottom:10px}
.po-celeb-check circle{stroke:#fff; stroke-dasharray:152; stroke-dashoffset:152; animation:po-dr .7s .1s forwards}
.po-celeb-check path{stroke-dasharray:40; stroke-dashoffset:40; animation:po-dr .5s .7s forwards}
@keyframes po-dr{to{stroke-dashoffset:0}}
.po-celeb-title{font-size:clamp(2rem, 6vw, 2.9rem); line-height:1.08; letter-spacing:-.035em; margin:6px 0 10px; animation:po-rise .6s .5s both cubic-bezier(.3,.7,.2,1)}
.po-celeb-slogan{font-size:clamp(1.1rem, 3.2vw, 1.4rem); font-weight:500; line-height:1.35; max-width:30ch; margin:0 auto 26px; color:#e6e8ea; animation:po-rise .6s .7s both cubic-bezier(.3,.7,.2,1)}
.po-celeb-call{display:flex; gap:14px; align-items:flex-start; text-align:left; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:18px; padding:16px 18px; margin:0 auto 26px; max-width:460px; animation:po-rise .6s .9s both cubic-bezier(.3,.7,.2,1)}
.po-celeb-call svg{width:30px; height:30px; flex:none; margin-top:2px; color:#fff}
.po-celeb-call strong{display:block; font-size:1.05rem; margin-bottom:3px}
.po-celeb-call p{margin:0; color:#d6d9dc; font-size:.95rem; line-height:1.45}
.po-celeb-go{border:0; background:var(--red); color:#fff; height:56px; padding:0 30px; border-radius:14px; font:700 17px 'Space Grotesk',sans-serif; cursor:pointer; transition:.18s; animation:po-rise .6s 1.1s both cubic-bezier(.3,.7,.2,1)}
.po-celeb-go:hover{filter:brightness(.92); transform:translateY(-1px)}
@keyframes po-rise{from{opacity:0; transform:translateY(14px)}to{opacity:1; transform:none}}
.po-confetti{position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden}
.po-confetti i{position:absolute; top:-14px; width:9px; height:15px; border-radius:2px; opacity:0; animation:po-fall var(--d) var(--w) cubic-bezier(.25,.6,.4,1) forwards}
@keyframes po-fall{0%{opacity:1; transform:translate3d(0,0,0) rotate(0)}100%{opacity:0; transform:translate3d(var(--x),105vh,0) rotate(var(--r))}}
@media (max-width:560px){ .po-celebrate{padding:40px 20px 34px; border-radius:24px} }
@media (prefers-reduced-motion:reduce){ .po-confetti{display:none} .po-celeb-check circle,.po-celeb-check path{stroke-dashoffset:0} }

/* area personale a schede */
.profile-form-section .po-shell.po-dash{min-height:560px}
.po-rail-sub{margin:6px 0 0; font-size:.85rem; color:#aab0b6; position:relative; z-index:1}
.po-dnav{display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:4px; margin:34px 0 0; padding:0; max-width:none; width:100%; height:auto; position:relative; z-index:1}
.po-dnav-btn{display:flex; align-items:center; gap:12px; width:100%; text-align:left; border:0; background:none; color:#aab0b6; padding:12px 14px; border-radius:12px; font:600 15px 'Space Grotesk',sans-serif; cursor:pointer; transition:.2s}
.po-dnav-btn:hover{background:rgba(255,255,255,.07); color:#fff}
.po-dnav-btn .po-dot{width:10px; height:10px; border-radius:50%; border:1.5px solid #5b636b; flex:none; transition:.2s}
.po-dnav-btn.is-on{background:rgba(255,255,255,.12); color:#fff}
.po-dnav-btn.is-on .po-dot{background:var(--red); border-color:var(--red)}
.po-dnav-btn[hidden], .po-tile[hidden]{display:none}
.po-tab[hidden]{display:none}
.po-tab.is-on{animation:po-slide .35s cubic-bezier(.3,.7,.2,1)}
.po-eyebrow{font:500 12px 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-top:2px}
.po-h{font:700 32px/1.15 'Space Grotesk',sans-serif; letter-spacing:-.03em; margin:8px 0 18px}
.po-h .po-h-sub{display:block; margin-top:6px; font:500 1rem/1.4 'IBM Plex Sans',sans-serif; letter-spacing:0; color:var(--slate)}
.po-lead{font-size:.95rem; color:var(--slate); margin:-6px 0 20px; max-width:56ch}
.po-h3{font:600 14px 'Space Grotesk',sans-serif; letter-spacing:-.005em; margin:0 0 12px; color:var(--ink)}
.po-h3-pad{margin-top:26px}
.po-box{border:1.5px solid var(--line); border-radius:14px; padding:18px 20px; margin:0 0 18px; background:#fff}
.po-box .manage-section-title{margin-top:0}
.po-steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px}
.po-steps li{display:flex; gap:14px; align-items:flex-start}
.po-steps .po-sn{width:32px; height:32px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; font:500 12px 'IBM Plex Mono',monospace; color:var(--slate); flex:none}
.po-steps li.is-done .po-sn{background:var(--ink); border-color:var(--ink); color:#fff; font-size:15px}
.po-steps li.is-now .po-sn{background:var(--red); border-color:var(--red); color:#fff}
.po-steps strong{display:block; font-size:.98rem}
.po-steps p{margin:2px 0 0; font-size:.88rem; color:var(--slate)}
.po-tiles{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.po-tile{display:flex; flex-direction:column; gap:3px; text-align:left; border:1.5px solid var(--line); border-radius:14px; background:#fff; padding:16px 18px; cursor:pointer; transition:.18s; font-family:'Space Grotesk',sans-serif; color:var(--ink)}
.po-tile:hover{border-color:var(--ink); transform:translateY(-1px)}
.po-tile strong{font-size:1rem}
.po-tile span{font:400 .86rem 'IBM Plex Sans',sans-serif; color:var(--slate)}
.po-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px}
.po-actions .btn-primary{margin:0; width:auto; background:var(--red); border-radius:14px; height:50px; padding:0 22px; font:700 15px 'Space Grotesk',sans-serif}
.po-actions .btn-secondary{border:1.5px solid var(--line); border-radius:14px; height:50px; padding:0 20px; font:600 15px 'Space Grotesk',sans-serif; background:#fff}
.po-actions .btn-secondary:hover{border-color:var(--ink)}
.po-dash .session-banner{margin:0 0 14px}
@media (max-width:860px){
  .profile-form-section .po-shell.po-dash{min-height:0}
  .profile-form-section .po-shell.po-dash .po-rail{flex-direction:column; align-items:stretch; gap:6px; padding:16px 16px 12px}
  .po-rail-sub{display:none}
  .profile-form-section .po-shell.po-dash .po-dnav{display:flex !important; flex-direction:row; flex-wrap:nowrap; overflow-x:auto; margin-top:8px; gap:6px; -webkit-overflow-scrolling:touch}
  .po-dnav-btn{width:auto; flex:none; white-space:nowrap; padding:9px 13px; font-size:14px}
  .po-dnav-btn .po-dot{display:none}
  .po-h{font-size:26px}
  .po-tiles{grid-template-columns:1fr}
}

/* ===== V2.0.187: tasto «Carica documento» da parte e menu dei tipi ===== */
.po-head-row{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap}
.po-head-row .po-h{margin-bottom:10px}
.po-menu-wrap{position:relative; margin-top:6px}
.po-side-btn{height:46px; padding:0 18px; border:0; border-radius:14px; background:var(--red); color:#fff; font:700 14px 'Space Grotesk',sans-serif; cursor:pointer; white-space:nowrap}
.po-side-btn:hover{filter:brightness(.92)}
.po-kindmenu{position:absolute; right:0; top:calc(100% + 6px); z-index:20; width:250px; background:#fff; border:1.5px solid var(--line); border-radius:14px; padding:8px; box-shadow:0 18px 40px -16px rgba(27,31,35,.35)}
.po-kindmenu[hidden]{display:none}
.po-kindmenu-t{margin:4px 8px 6px; font:500 12px 'IBM Plex Mono',monospace; color:var(--slate); text-transform:uppercase; letter-spacing:.05em}
.po-kindmenu-i{display:block; width:100%; text-align:left; border:0; background:none; padding:10px 12px; border-radius:10px; font:500 15px 'Space Grotesk',sans-serif; color:var(--ink); cursor:pointer}
.po-kindmenu-i:hover{background:var(--cream-card)}

/* ===== V2.0.187: documenti nel riepilogo, con i tasti accanto ===== */
.po-sumdoc{display:grid; grid-template-columns:minmax(0,150px) minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:.9rem}
.po-sumdoc-k{font:400 .7rem 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em; color:var(--slate)}
.po-sumdoc-v{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600}
.po-sumdoc-v a{color:var(--ink); text-decoration:underline}
.po-sumdoc-v.is-miss{color:var(--red-text, var(--red)); font-weight:500}
.po-sumdoc .btn-secondary{height:40px; padding:0 14px; font:600 13px 'Space Grotesk',sans-serif; border:1.5px solid var(--line); border-radius:12px; background:#fff; white-space:nowrap}
.po-sumdoc .btn-secondary:hover{border-color:var(--ink)}
@media (max-width:560px){ .po-sumdoc{grid-template-columns:1fr auto} .po-sumdoc-k{grid-column:1 / -1} }

/* ---- codice a 6 cifre ---- */
/* ---- codice a 6 cifre: un riquadro per cifra ---- */
.otp{display:flex; gap:8px; justify-content:center; flex-wrap:nowrap;}
.otp-box{width:46px; height:56px; padding:0; text-align:center; font-family:'IBM Plex Mono', monospace; font-size:1.5rem; font-weight:600; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:6px; caret-color:var(--red); transition:border-color .15s, box-shadow .15s;}
.otp-box:focus{outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(214,64,44,.18);}
@media (max-width:400px){ .otp{gap:6px;} .otp-box{width:40px; height:52px; font-size:1.3rem;} }

/* ---- modulo del profilo nello stile chiaro ---- */
/* V2.0.208: modulo del profilo (dopo l'iscrizione) nel nuovo stile chiaro - barra laterale su panna, niente blocco nero */
.profile-form-section .po-shell{border-radius:28px; box-shadow:var(--shadow-hover); --po-r:12px}
.profile-form-section .po-shell :focus-visible{outline-color:var(--red)}
.po-rail{background:#F3F1EA; color:var(--ink); border-right:1px solid var(--line)}
.po-rbar{background:var(--line)}
.po-rsteps li{color:var(--slate)}
.po-n{border-color:var(--line); background:#fff; color:var(--slate)}
.po-rsteps li.active{color:var(--ink)}
.po-rsteps li.active .po-n{background:var(--red); border-color:var(--red); color:#fff; box-shadow:0 8px 18px -8px rgba(214,64,44,.6)}
.po-rsteps li.is-done{color:var(--ink)}
.po-rsteps li.is-done .po-n{background:var(--ink); border-color:var(--ink)}
.po-cl{color:var(--slate)} .po-cl b{color:var(--ink)}
.po-cb{background:var(--line)} .po-cb span{background:var(--red)}
.po-blob{background:radial-gradient(circle, rgba(214,64,44,.22), rgba(214,64,44,0) 70%); opacity:1; left:-90px; bottom:-110px; width:300px; height:300px}
.po-rail-sub{color:var(--slate)}
.po-dnav-btn{color:var(--slate)}
.po-dnav-btn:hover{background:#fff; color:var(--ink)}
.po-dnav-btn .po-dot{border-color:#b9b6ad}
.po-dnav-btn.is-on{background:#fff; color:var(--ink); box-shadow:var(--shadow)}
.profile-form-section .po-shell .form-step-nav .btn-primary, .po-actions .btn-primary{background:var(--btn)}
.profile-form-section .po-shell .form-step-nav .btn-primary:hover{background:var(--btn)}
.po-box, .po-tile{border-radius:var(--r); border-color:var(--line)}
.po-tile{box-shadow:var(--shadow)} .po-tile:hover{border-color:var(--line); box-shadow:var(--shadow-hover); transform:translateY(-3px)}
@media (max-width:860px){ .po-rail{border-right:0; border-bottom:1px solid var(--line)} }

@media (max-width:860px){ .form-row{grid-template-columns:1fr;} }
/* modulo del profilo: stessi margini e stesse dimensioni dei testi di prima (non toccare) */
.profile-form-section .wrap{max-width:1400px; padding:0 28px}
@media (max-width:480px){ .profile-form-section .wrap{padding:0 12px} }
.profile-form-section :where(h1,h2,h3,p,li,summary,label,a,dd){overflow-wrap:anywhere; hyphens:auto}
body .form-note, body small, body .form-status, body .form-field label, body .form-note a, .form-note label{font-size:.875rem}


/* =====================================================================
   MODULO DEL PROFILO - ritocchi chiesti (V2.0.219), dopo le regole originali
   ===================================================================== */
/* intestazione piu' bassa: il modulo si vede subito */
.ag2-hero-slim{padding:22px 0 6px}
.ag2-hero-slim h1{font-size:clamp(1.55rem, 1.1rem + 1.5vw, 2.2rem); margin-bottom:0}
.ag2-hero-slim .profile-welcome-back{margin-top:12px}
@media (max-width:560px){ .ag2-hero-slim{padding:16px 0 2px} }
/* barra laterale: la spunta dei passi fatti al centro del cerchio */
.po-rsteps li.is-done .po-n::after{position:absolute; inset:0; margin:auto}
/* lingue: il livello si vede sempre, cosi' i riquadri sono tutti uguali; finche' la lingua non e' scelta e' spento */
.profile-form-section .lang-chip:not(.selected) select{display:block}
.profile-form-section .po-shell .lang-chip select{
  opacity:1; height:46px; font:600 15px 'Space Grotesk',sans-serif; color:var(--ink); background-color:#fff;
  appearance:none; -webkit-appearance:none; background-image:var(--po-arrow); background-repeat:no-repeat; background-position:right 14px center;
  border:1.5px solid var(--ink); border-radius:10px; padding:0 40px 0 14px; cursor:pointer}
.profile-form-section .po-shell .lang-chip:not(.selected) select{color:#9A9890; border-color:var(--line); background-color:var(--po-field); opacity:.85; pointer-events:none}
/* nota tra parentesi accanto alla domanda (zone) */
.profile-form-section .po-shell .form-field > label:first-child .label-hint, .label-hint{font:400 .875rem 'IBM Plex Sans',sans-serif; letter-spacing:0; text-transform:none; color:var(--slate); hyphens:manual}



/* =====================================================================
   10. Principi Apple (V2.0.230): risposta immediata, molle senza rimbalzo, materiali, tipografia
   - ogni pressione risponde subito (al tocco, non al rilascio) e torna con una molla
   - la molla e' sempre «smorzamento critico»: si assesta senza rimbalzo (il rimbalzo si usa solo dopo un gesto con slancio, e qui non ce ne sono)
   - menu e tendine escono dallo stesso punto da cui entrano (dal pulsante che le apre)
   - menu e tendine sono vetro: piu' grandi = piu' spessi; chi chiede meno trasparenza o piu' contrasto li vede pieni
   ===================================================================== */
:root{
  --spring:cubic-bezier(.3,.7,.2,1);        /* ripiego per i browser senza linear() */
  --spring-out:cubic-bezier(.22,1,.36,1);
}
@supports (transition-timing-function:linear(0,1)){
  :root{--spring:linear(0, 0.064, 0.1978, 0.3472, 0.4867, 0.6062, 0.7032, 0.7795, 0.8381, 0.8821, 0.9149, 0.9389, 0.9564, 0.969, 0.9781, 0.9846, 0.9892, 0.9924, 0.9947, 0.9963, 0.9974, 0.9982, 1)}
}

/* --- risposta: niente attesa del doppio tocco, feedback alla pressione --- */
a, button, summary, label, select, input, textarea, [role=button]{touch-action:manipulation}
.ag2-btn, .nav-cta, .nav-agency, .hero-form .btn-primary, .ag-form button[type=submit], .ag-form .btn-primary, .offers-filter .btn-primary, .sticky-cta, .tel-picker-btn{
  transition:background-color .18s, border-color .18s, box-shadow .18s, transform .45s var(--spring)}
.nav-links a, .nav-langs a, .footer-col a:not(.footer-logo), .lang-menu summary, .burger, .ag2-switch a, .ag2-faq summary, .lang-menu-list a, .offer-card, .po-tile{
  transition:color .15s, background-color .15s, border-color .15s, box-shadow .2s, transform .45s var(--spring)}
.nav-links a:active, .nav-langs a:active, .footer-col a:not(.footer-logo):active, .lang-menu summary:active, .burger:active, .ag2-switch a:active, .lang-menu-list a:active{
  transform:scale(.97); transition-duration:.1s}
.ag2-faq summary:active{transform:scale(.99); transition-duration:.1s}
.ag2-btn:active, .nav-cta:active, .nav-agency:active, .hero-form .btn-primary:active, .ag-form button[type=submit]:active, .ag-form .btn-primary:active, .offers-filter .btn-primary:active, .sticky-cta:active, .tel-picker-btn:active{
  transform:scale(.97); transition-duration:.1s}
.offer-card:active, .po-tile:active{transform:scale(.985); transition-duration:.1s}
/* il segno + delle domande ruota con la stessa molla */
.ag2-faq summary::after, .ag2-faq[open] summary::after{transition:transform .5s var(--spring), background-color .2s, color .2s}

/* --- spostamenti con molla: menu in alto, invito fisso, comparsa allo scorrimento --- */
header{transition:transform .5s var(--spring)}
.sticky-cta, .sticky-cta.btn-primary{transition:opacity .25s ease, transform .5s var(--spring), background-color .18s}
.reveal-on [data-reveal]{transition:opacity .5s var(--spring-out), transform .7s var(--spring), box-shadow .2s}

/* --- tendina delle lingue: nasce dal suo pulsante --- */
.lang-menu-list{transform-origin:top right}
.lang-menu[open] .lang-menu-list{animation:ag-pop .4s var(--spring-out)}
@keyframes ag-pop{from{opacity:0; transform:scale(.94) translateY(-4px)} to{opacity:1; transform:none}}

/* --- materiali: vetro per le superfici che stanno sopra al contenuto; piu' grande = piu' spesso --- */
header{background:rgba(250,249,246,.72); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); border-bottom-color:rgba(27,31,35,.08)}
header:has(nav.nav-open){background:rgba(250,249,246,.94)}
.lang-menu-list{background:rgba(255,255,255,.82); -webkit-backdrop-filter:saturate(180%) blur(24px); backdrop-filter:saturate(180%) blur(24px); border-color:rgba(27,31,35,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 24px 48px -16px rgba(27,31,35,.28)}

/* --- tipografia: tracking e interlinea cambiano con la misura --- */
body{font-optical-sizing:auto; text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
h2{letter-spacing:-.03em; line-height:1.12}
h3{letter-spacing:-.015em; line-height:1.25}
main :where(p, li, dd){line-height:1.6}
.ag2-card-head small, .form-note, .footer-legal, .footer-address, .ag2-stat-l, .ct-label, .ag2-chips span, .ag2-badges span, .ag-note, .footer-version{letter-spacing:.01em}

/* --- accessibilita': meno trasparenza, piu' contrasto, meno movimento --- */
@media (prefers-reduced-transparency: reduce){
  header, header:has(nav.nav-open), .lang-menu-list{background:#fff; -webkit-backdrop-filter:none; backdrop-filter:none}
}
@media (prefers-contrast: more){
  :root{--line:#8D8A82; --line-strong:#5F676E}
  header, header:has(nav.nav-open){background:var(--paper); -webkit-backdrop-filter:none; backdrop-filter:none; border-bottom-color:var(--ink)}
  .ag2-btn-ghost, .nav-agency, .ag2-faq, .offer-card{border-color:var(--ink)}
  .ag2-sub, .footer-col a:not(.footer-logo){color:var(--ink)}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  /* niente spostamenti: restano le dissolvenze, che non danno il capogiro */
  header, .burger, .ag2-btn, .nav-cta, .nav-agency, .offer-card, .po-tile, .sticky-cta, .ag2-faq summary::after{transition-property:opacity, background-color, border-color, color, box-shadow}
  .ag2-btn:hover, .ag2-btn-red:hover, .offer-card:hover, .po-tile:hover{transform:none}
  .ag2-btn:active, .nav-cta:active, .nav-agency:active, .offer-card:active, .po-tile:active, .burger:active, .nav-links a:active{transform:none}
  .nav-menu{transform:none !important; transition:opacity .2s linear, display .2s allow-discrete}
  .lang-menu[open] .lang-menu-list{animation:none}
}
/* rifiniture dal controllo (V2.0.230) */
.ag2-pairs-head .ph-arrow{color:var(--red-text)}
.offers-count a{display:inline-flex; align-items:center; min-height:40px}
/* vetro leggibile: la tendina sta sopra ai campi, il testo deve restare nitido (vibrancy) */
.lang-menu-list{background:rgba(255,255,255,.95)}
.lang-menu-list a{color:var(--ink); font-weight:500}

/* intestazione fissa (V2.0.233): con overflow-x:hidden su html e body il corpo della pagina diventa un contenitore che non scorre e l'intestazione sticky se ne andava con la pagina (anche su iPhone). «clip» taglia l'orizzontale senza creare un contenitore. */
@supports (overflow:clip){ html, body{overflow-x:clip} }

/* iPhone e tocco: lo stato :hover resta «attaccato» dopo un tocco, quindi senza mouse niente sollevamenti */
@media (hover:none){
  .ag2-btn:hover, .ag2-btn-red:hover, .offer-card:hover, .po-tile:hover, .team-member:hover, .ag2-feat:hover, .ag-form button[type=submit]:hover, .ag-form .btn-primary:hover{transform:none}
}

/* =====================================================================
   Menu del telefono, versione per iPhone (V2.0.237)
   Prima il menu si apriva allargando l'intestazione: la pagina sotto si spostava a ogni passo dell'animazione e Safari lo disegnava a scatti,
   con in piu' un vetro sfocato a tutta larghezza da ridisegnare. Ora:
   - il menu e' un pannello sopra alla pagina (position:absolute): aprirlo non sposta niente
   - si anima solo trasparenza e spostamento (le due cose che Safari fa sulla scheda video), con una curva breve
   - chiuso resta nel disegno ma invisibile e non cliccabile (visibility), cosi' la chiusura si anima come l'apertura
   - su schermo stretto o senza mouse l'intestazione non ha sfocatura: e' quasi piena
   ===================================================================== */
@media (max-width:1240px){
  nav{position:relative}
  .nav-menu, nav.nav-open .nav-menu{display:flex; flex-direction:column; align-items:stretch; position:absolute; left:0; right:0; top:100%; order:0; flex:none; flex-basis:auto;
    gap:0; margin:0; padding:8px var(--gutter) 22px; background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    box-shadow:0 28px 40px -28px rgba(27,31,35,.35); max-height:calc(100vh - 72px); max-height:calc(100dvh - 72px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; animation:none}
  .nav-menu{visibility:hidden; opacity:0; transform:translate3d(0,-8px,0); pointer-events:none;
    transition:opacity .2s ease, transform .28s cubic-bezier(.3,.7,.2,1), visibility 0s linear .28s}
  nav.nav-open .nav-menu{visibility:visible; opacity:1; transform:none; pointer-events:auto; transition-delay:0s}
  .burger{transition:background-color .15s}
}
@media (max-width:1240px), (hover:none){
  header{-webkit-backdrop-filter:none; backdrop-filter:none; background:rgba(250,249,246,.97); transition:none}
  header:has(nav.nav-open){background:var(--paper)}
  .reveal-on [data-reveal]{transition:opacity .35s ease, transform .4s ease, box-shadow .2s}
}
@media (prefers-reduced-motion: reduce){ .nav-menu{transform:none; transition:opacity .15s linear, visibility 0s linear .15s} }
/* iPhone: il cambio pagina con dissolvenza (view transition) puo' far lampeggiare la pagina a ogni tocco: sui telefoni si cambia pagina subito */
@media (hover:none){ @view-transition{navigation:none} }

/* =====================================================================
   Barra in alto, definitiva (V2.0.239): sempre ferma e visibile, senza sfocatura ne' spostamenti.
   La barra che si nascondeva e ricompariva (spostamento + vetro sfocato) andava a scatti e lasciava una banda scura sotto.
   ===================================================================== */
header, header.header-hide{transform:none !important; transition:none !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; will-change:auto; background:rgba(250,249,246,.97)}
header:has(nav.nav-open){background:var(--paper)}
/* il «salta al contenuto» (nero) sta fuori dallo schermo: nascosto davvero, non solo spostato (con l'elastico di iPhone in cima compariva) */
.skip-link:not(:focus){clip-path:inset(50%); opacity:0; pointer-events:none}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more){ header{background:var(--paper)} }

/* =====================================================================
   Barra in alto fissata alla finestra (V2.0.241)
   Su iPhone una barra «sticky» puo' tremare mentre Safari nasconde e mostra la sua barra degli indirizzi durante lo scorrimento.
   Fissata alla finestra (position:fixed) resta immobile; il corpo della pagina parte sotto di lei, con la stessa altezza.
   ===================================================================== */
:root{--header-h:73px}
@media (max-width:1240px){ :root{--header-h:65px} }
header{position:fixed; top:0; left:0; right:0; width:100%}
header nav{height:calc(var(--header-h) - 1px); min-height:0}
.ag2-switch{height:auto; min-height:0}
body{padding-top:var(--header-h)}

/* ===================== V2.0.251: pagina /easywork (lavoratori di Easy Work) ===================== */
.ew-facts{list-style:none; margin:0; padding:0; display:grid; gap:14px}
.ew-facts li{position:relative; padding:16px 18px 16px 48px; background:#fff; border:1px solid var(--line); border-radius:var(--r-field); line-height:1.5}
.ew-facts li::before{content:''; position:absolute; left:18px; top:20px; width:16px; height:16px; border-radius:50%; background:var(--red);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8'/%3E%3C/svg%3E") center/contain no-repeat}
.ew-facts li::after{content:''; position:absolute; left:23px; top:24px; width:5px; height:8px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg)}
.ew-group{border:0; padding:0; margin:0 0 18px; min-width:0}
.ew-group legend{display:block; padding:0; margin-bottom:10px; font:600 .9rem 'Space Grotesk',sans-serif; color:var(--ink)}
.ew-chips{display:flex; flex-wrap:wrap; gap:8px}
.ew-chip{position:relative; display:inline-flex; cursor:pointer}
.ew-chip input{position:absolute; opacity:0; width:1px; height:1px; pointer-events:none}
.ew-chip span{display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:1.5px solid var(--line); border-radius:999px; background:var(--field);
  font-size:.95rem; color:var(--ink); transition:background-color .15s, border-color .15s, color .15s, transform .4s var(--spring)}
.ew-chip:active span{transform:scale(.96); transition-duration:.08s}
.ew-chip input:checked + span, .ew-chip.on span{background:var(--ink); border-color:var(--ink); color:#fff}
.ew-chip input:focus-visible + span{outline:2px solid var(--red); outline-offset:2px}
@media (hover:hover){ .ew-chip:hover input:not(:checked) + span{border-color:var(--line-strong)} }
.ew-group > input[type=text]{margin-top:10px}
.ew-more{margin-top:10px}
.ew-more summary{display:inline-flex; align-items:center; min-height:44px; cursor:pointer; font-weight:600; color:var(--red-text); list-style:none}
.ew-more summary::-webkit-details-marker{display:none}
.ew-more summary::after{content:'+'; margin-left:8px; font-weight:400}
.ew-more[open] summary::after{content:'−'}
.ew-more .ew-chips{margin-top:6px}
.ag-form .form-field input[type=file]{height:auto; padding:12px; font-size:.9rem; background:var(--field)}
.ew-consent{display:flex; gap:12px; align-items:flex-start; margin:6px 0 10px; padding:14px 16px; border:1.5px solid var(--line); border-radius:var(--r-field); background:var(--field);
  font-size:.92rem; line-height:1.5; cursor:pointer}
.ew-consent input{flex:none; width:22px; height:22px; margin:1px 0 0; accent-color:var(--red)}
.ew-consent:has(input[aria-invalid=true]){border-color:var(--red)}
.ew-privacy{margin:0 0 18px}
.ew-submit{width:100%}
.ag-form [aria-invalid=true]{border-color:var(--red) !important}
.ag-form .form-status.is-error{color:var(--red-text); font-weight:600}
.ew-more{border:0; padding:0}
.ew-privacy a{color:var(--ink); text-decoration:underline; text-underline-offset:2px}
.ew-file{position:relative; display:flex; align-items:center; gap:12px; min-height:52px; padding:6px; border:1.5px solid var(--line); border-radius:var(--r-field); background:var(--field)}
.ew-file input{position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer}
.ew-file-btn{flex:none; display:inline-flex; align-items:center; min-height:38px; padding:0 14px; border-radius:9px; background:var(--ink); color:#fff; font:600 .88rem 'Space Grotesk',sans-serif}
.ew-file-name{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.9rem; color:var(--slate)}
.ew-file:has(input:focus-visible){outline:2px solid var(--red); outline-offset:2px}
.ew-file:has(input[aria-invalid=true]){border-color:var(--red)}

/* V2.0.252: iscrizione dalla home con nome ed e-mail soltanto (cognome e telefono nel profilo): un campo per riga */
#modulo #registerForm .quick-grid{grid-template-columns:minmax(0,1fr)}

/* V2.0.252, /easywork: spunta centrata nel cerchio (un solo disegno, niente pezzi sovrapposti) */
.ew-facts li::before{left:16px; top:17px; width:20px; height:20px; border-radius:0; -webkit-mask:none; mask:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23D6402C'/%3E%3Cpath d='M5.8 10.3l2.7 2.7 5.7-5.9' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.ew-facts li::after{content:none}
/* zone di lavoro: le stesse schede del profilo, una per riga sul telefono */
.ew-zones{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.ag-form .ew-zone{position:relative; display:block; margin:0; cursor:pointer}
.ag-form .ew-zone input{position:absolute; top:0; left:0; width:1px; height:1px; opacity:0; pointer-events:none}
.ew-zone-box{display:block; height:100%; padding:12px 14px 12px 44px; border:1.5px solid var(--line); border-radius:var(--r-field); background:var(--field); position:relative;
  transition:border-color .15s, background-color .15s, transform .4s var(--spring)}
.ew-zone-box::before{content:''; position:absolute; left:14px; top:14px; width:20px; height:20px; border-radius:6px; border:1.5px solid var(--line-strong); background:#fff; transition:background-color .15s, border-color .15s}
.ew-zone input:checked + .ew-zone-box, .ew-zone.on .ew-zone-box{border-color:var(--ink); background:#fff}
.ew-zone input:checked + .ew-zone-box::before, .ew-zone.on .ew-zone-box::before{border-color:var(--ink);
  background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.3l2.8 2.8 6-6.1' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.ew-zone input:focus-visible + .ew-zone-box{outline:2px solid var(--red); outline-offset:2px}
.ew-zone:active .ew-zone-box{transform:scale(.98); transition-duration:.08s}
.ew-zone-name{display:block; font:600 .93rem/1.3 'Space Grotesk',sans-serif; color:var(--ink)}
.ew-zone-lang{font:400 .8rem 'IBM Plex Sans',sans-serif; color:var(--slate)}
.ew-zone-box small{display:block; margin-top:3px; font-size:.78rem; line-height:1.4; color:var(--slate)}
@media (max-width:640px){ .ew-zones{grid-template-columns:minmax(0,1fr)} }
/* data in 3 caselle */
.ew-date{display:flex; align-items:center; gap:8px}
.ag-form .ew-date input{width:64px; flex:none; text-align:center; padding:0 6px; font-variant-numeric:tabular-nums}
.ag-form .ew-date input#ew-yy{width:88px}
.ew-date span{color:var(--slate); font-weight:600}
/* telefono con la bandiera, come nella home */
.ag-form .tel-row .tel-picker .tel-picker-native{position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none}
/* V2.1.11: anche nel profilo del candidato; la bandiera e' alta come il campo del numero */
#profileForm .tel-row{align-items:stretch}
#profileForm .tel-row .tel-picker .tel-picker-native{position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none}
#profileForm .tel-picker{display:flex}
#profileForm .tel-picker-btn{height:auto; min-height:44px}

/* V2.0.252: intestazione sul telefono che si nasconde scendendo e torna risalendo (main.js). Esce accelerando verso l'alto,
   rientra con una molla morbida e una leggera ombra che la stacca dal contenuto. Con «riduci movimento» resta sempre ferma. */
@media (max-width:900px) and (prefers-reduced-motion:no-preference){
  html body header{transition:transform .5s cubic-bezier(.32,.72,0,1), box-shadow .3s ease !important; will-change:transform}
  html body header.hdr-float{box-shadow:0 10px 26px -18px rgba(27,31,35,.45)}
  html body header.hdr-away{transform:translate3d(0,calc(-100% - 6px),0) !important; box-shadow:none;
    transition:transform .3s cubic-bezier(.4,0,.9,.5), box-shadow .2s ease !important}
}
.ag-form .form-field .ew-zone, .ag-form .form-field .ew-chip{margin:0}

/* V2.0.256: pulsante chiaro/scuro nell'intestazione. Luna nel tema chiaro (porta allo scuro), sole nello scuro.
   Nel menu del telefono ha anche la scritta. Durante il cambio i colori sfumano invece di scattare. */
.theme-btn{display:inline-grid; place-items:center; width:40px; height:40px; padding:0; border:1.5px solid var(--line); border-radius:999px; background:transparent; color:var(--ink); cursor:pointer;
  transition:border-color .15s, background-color .15s, transform .4s var(--spring)}
.theme-btn svg{width:19px; height:19px; grid-area:1 / 1; transition:opacity .25s, transform .45s var(--spring)}
.theme-btn .ic-sun{opacity:0; transform:rotate(-60deg) scale(.6)}
.theme-btn[aria-pressed="true"] .ic-sun{opacity:1; transform:none}
.theme-btn[aria-pressed="true"] .ic-moon{opacity:0; transform:rotate(60deg) scale(.6)}
.theme-btn:active{transform:scale(.92); transition-duration:.08s}
@media (hover:hover){ .theme-btn:hover{border-color:var(--line-strong)} }
.theme-btn-txt{display:none}
nav.nav-open .theme-btn{display:flex; width:auto; height:auto; min-height:50px; gap:10px; justify-content:center; border-radius:var(--r-field)}
nav.nav-open .theme-btn svg{grid-area:auto}
nav.nav-open .theme-btn .ic-sun, nav.nav-open .theme-btn .ic-moon{position:static}
nav.nav-open .theme-btn[aria-pressed="true"] .ic-moon, nav.nav-open .theme-btn[aria-pressed="false"] .ic-sun{display:none}
nav.nav-open .theme-btn-txt{display:inline; font:500 1rem 'Space Grotesk',sans-serif}
/* cambio di tema: dissolvenza unica di tutta la pagina */
::view-transition-old(root), ::view-transition-new(root){animation-duration:.35s; animation-timing-function:ease}
@media (prefers-reduced-motion:reduce){ .theme-btn svg{transition:none} }

/* V2.0.257: «Chi sei?» sul telefono. Un riquadro solo: il titoletto in alto, sotto due pulsanti affiancati della stessa misura,
   angoli concentrici (riquadro 20px, pulsanti 14px). Prima il riquadro a pillola non conteneva bene i pulsanti. */
@media (max-width:640px){
  .ag2-switch{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); width:100%; gap:4px; padding:6px; border-radius:20px}
  .ag2-switch > span{grid-column:1 / -1; width:auto; padding:4px 8px 4px; font-size:.72rem}
  .ag2-switch a{min-height:46px; padding:0 8px; border-radius:14px; font-size:.92rem; text-align:center; line-height:1.15}
  .ag2-switch a:not(.is-on){background:var(--cream)}
}

/* V2.1.0: festeggiamento a fine profilo - titolo e testi senza parole spezzate col trattino; sopra non resta «completiamo il tuo profilo» */
.profile-form-section .po-celebrate :where(h1,h2,h3,p,strong,span){hyphens:manual; overflow-wrap:normal; word-break:normal}
.po-celebrate h2{text-wrap:balance}
@media (max-width:480px){ .po-celeb-title{font-size:1.75rem} }
main:has(#profileCelebrate:not([hidden])) > .ag2-hero-slim{display:none}
/* profilo completato: lo spazio personale ha gia' il suo saluto («Ciao Flavia! Il tuo profilo è inviato») */
main:has(#profileDoneCard:not([hidden])) > .ag2-hero-slim{display:none}
main:has(#profileDoneCard:not([hidden])) > .profile-form-section{padding-top:20px}
/* «I tuoi dati»: indirizzi e testi lunghi vanno a capo invece di uscire dalla colonna */
#profileDoneCard :where(dd, td, .po-kv-v, span, a){overflow-wrap:anywhere}

/* V2.1.2: menu del telefono - il tema accanto alle lingue (non piu' un pulsante grande a parte) */
nav.nav-open .nav-ctas .theme-btn{display:none}
.nav-langs{align-items:center}
.nav-langs .theme-btn-mini{display:inline-grid; width:40px; height:40px; margin-left:10px; border-radius:999px}
nav.nav-open .nav-langs .theme-btn-mini{display:inline-grid; width:40px; height:40px; min-height:0; padding:0; border-radius:999px}
nav.nav-open .nav-langs .theme-btn-mini svg{grid-area:1 / 1}
nav.nav-open .nav-langs .theme-btn-mini[aria-pressed="false"] .ic-sun{display:block; opacity:0}
nav.nav-open .nav-langs .theme-btn-mini[aria-pressed="true"] .ic-moon{display:block; opacity:0}
/* piede della pagina sul telefono: voci piu' vicine */
@media (max-width:640px){
  .footer-col a:not(.footer-logo){min-height:34px; padding:0}
  .footer-col ul, .footer-col{gap:0}
  .footer-col li{margin:0}
}

/* ===== Crea il tuo CV (V2.1.10, rifatto nella V2.1.11; cv-builder.js) ===== */
.cvb-entry{display:flex; align-items:center; gap:14px; margin:-2px 0 16px; padding:16px 18px; border:1.5px solid rgba(214,64,44,.35); border-radius:var(--r-card); background:linear-gradient(135deg, rgba(214,64,44,.08), rgba(214,64,44,.02))}
.cvb-entry-ic{flex:none; display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:var(--btn); color:#fff}
.cvb-entry-ic svg{width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.cvb-entry-tx{flex:1; min-width:0}
.cvb-entry-tx b{display:block; font:600 1rem/1.3 'Space Grotesk',sans-serif; color:var(--ink)}
.cvb-entry-tx small{display:block; margin-top:4px; font-size:.84rem; line-height:1.45; color:var(--slate)}
.cvb-open{flex:none; display:inline-flex; align-items:center; gap:8px; height:46px; padding:0 18px; border:0; border-radius:999px; background:var(--btn); color:#fff; font:700 .95rem 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .15s, transform .12s}
.cvb-open:hover{background:var(--btn-hover)}
.cvb-open:active{transform:scale(.97)}
.cvb-open:focus-visible{outline:2px solid var(--ink); outline-offset:3px}
@media (max-width:640px){
  .cvb-entry{flex-wrap:wrap; padding:16px}
  .cvb-entry-tx{flex:1 1 calc(100% - 60px)}
  .cvb-open{width:100%; justify-content:center}
}
html.cvb-lock{overflow:hidden}
.cvb{position:fixed; inset:0; margin:auto; width:min(1120px, calc(100vw - 48px)); height:min(860px, calc(100dvh - 48px)); max-width:none; max-height:none; padding:0; border:0; border-radius:24px; background:var(--paper); color:var(--ink); box-shadow:0 40px 90px -30px rgba(0,0,0,.55); overflow:hidden}
.cvb::backdrop{background:rgba(15,17,20,.55); backdrop-filter:blur(3px)}
.cvb[open]{display:block; animation:cvb-in .22s ease-out}
@keyframes cvb-in{from{opacity:0; transform:translateY(10px) scale(.985)} to{opacity:1; transform:none}}
.cvb-in{display:flex; flex-direction:column; height:100%}
.cvb-head{flex:none; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 28px 18px; border-bottom:1px solid var(--line); background:var(--paper)}
.cvb-head h2{margin:0; font:700 1.45rem/1.2 'Space Grotesk',sans-serif; letter-spacing:-.02em}
.cvb-head p{margin:6px 0 0; max-width:60ch; font-size:.9rem; line-height:1.5; color:var(--slate)}
.cvb-x{flex:none; display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); cursor:pointer; transition:background-color .15s, transform .12s}
.cvb-x:hover{background:var(--cream)}
.cvb-x:active{transform:scale(.94)}
.cvb-x svg, .cvb-rm svg{width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round}
.cvb-main{flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 340px}
.cvb-body{min-height:0; overflow:auto; overscroll-behavior:contain; padding:22px 28px 28px}
.cvb-quiz .cvb-main{grid-template-columns:minmax(0,1fr)}
.cvb-quiz-body{min-height:0; overflow:auto; overscroll-behavior:contain; padding:22px 28px 28px; max-width:720px; width:100%; margin:0 auto}
.cvb-q{margin:0 0 6px; font:600 1.25rem 'Space Grotesk',sans-serif}
.cvb-qh{margin:0 0 16px; color:var(--slate,#5f676e); font-size:.95rem}
.cvb-sec{padding:0 0 22px; margin:0 0 22px; border-bottom:1px solid var(--line)}
.cvb-sec:last-child{border-bottom:0; margin-bottom:0}
.cvb-sec h3{display:flex; align-items:center; gap:10px; margin:0 0 14px; font:600 1.02rem 'Space Grotesk',sans-serif}
.cvb-n{display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--ink); color:var(--paper); font:700 .8rem 'IBM Plex Mono',monospace}
.cvb-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px 14px}
.cvb-wide{grid-column:1 / -1}
.cvb-f{display:flex; flex-direction:column; gap:6px; margin:0; min-width:0}
.cvb-f span{font-size:.8rem; font-weight:600; color:var(--slate)}
.cvb-f input, .cvb-f textarea{width:100%; box-sizing:border-box; border:1.5px solid var(--line); border-radius:12px; padding:11px 13px; background:var(--field); color:var(--ink); font:inherit; font-size:16px; transition:border-color .15s, box-shadow .15s}
.cvb-f input::placeholder, .cvb-f textarea::placeholder{color:var(--slate); opacity:.7}
.cvb-f textarea{resize:vertical; line-height:1.45; min-height:72px}
.cvb-f input:focus, .cvb-f textarea:focus{outline:0; border-color:var(--ink); box-shadow:0 0 0 4px rgba(127,127,127,.15)}
.cvb-f .is-invalid{border-color:var(--red)}
.cvb-check{grid-column:1 / -1; display:flex; gap:10px; align-items:center; min-height:44px; font-size:.92rem; cursor:pointer}
.cvb-check input{width:20px; height:20px; accent-color:var(--btn)}
.cvb-list{display:flex; flex-direction:column; gap:12px}
.cvb-item{position:relative; padding:16px 52px 16px 16px; border:1px solid var(--line); border-radius:16px; background:var(--cream-card)}
.cvb-item.is-new{animation:cvb-in .22s ease-out}
.cvb-rm{position:absolute; top:10px; right:10px; display:grid; place-items:center; width:34px; height:34px; border:0; border-radius:50%; background:transparent; color:var(--slate); cursor:pointer; transition:background-color .15s, color .15s}
.cvb-rm:hover{background:var(--paper); color:var(--red-text)}
.cvb-add{display:inline-flex; align-items:center; min-height:42px; margin-top:12px; padding:0 16px; border:1.5px dashed var(--line-strong); border-radius:999px; background:transparent; color:var(--ink); font:600 .9rem 'Space Grotesk',sans-serif; cursor:pointer; transition:border-color .15s, background-color .15s, transform .12s}
.cvb-add:hover{border-color:var(--ink); background:var(--cream)}
.cvb-add:active{transform:scale(.97)}
/* anteprima: un foglio bianco anche nel tema scuro (colori in rgb, che il generatore del tema scuro non tocca) */
.cvb-prev{min-height:0; overflow:auto; padding:22px 24px; border-left:1px solid var(--line); background:var(--cream)}
.cvb-prev-l{margin:0 0 10px; font:500 .72rem 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--slate)}
.cvb-paper-wrap{position:relative; overflow:hidden; border-radius:6px; box-shadow:0 12px 30px -12px rgba(0,0,0,.35)}
.cvb-paper{position:absolute; top:0; left:0; width:595px; height:842px; transform-origin:0 0; display:grid; grid-template-columns:187px 1fr; background:rgb(255,255,255); color:rgb(27,31,35); font:10px/1.4 Helvetica, Arial, sans-serif; overflow:hidden}
.cp-side{background:rgb(241,239,232); padding:40px 22px}
.cp-photo{display:block; width:108px; height:135px; object-fit:cover; margin:0 0 22px 11px}
.cp-b{margin-bottom:16px}
.cp-b h5{margin:0 0 4px; font-size:8.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:rgb(194,58,38)}
.cp-b p{margin:0; font-size:9px}
.cp-main{padding:56px 34px 30px 34px; min-width:0}
.cp-main h4{margin:0; font-size:24px; line-height:1.1; font-weight:700}
.cp-t{margin:6px 0 0; font-size:13px; color:rgb(194,58,38)}
.cp-rule{display:block; width:62px; height:2px; margin:12px 0 22px; background:rgb(194,58,38)}
.cp-main h6{margin:16px 0 8px; padding-bottom:4px; border-bottom:1px solid rgb(222,219,211); font-size:10.5px; font-weight:700; text-transform:uppercase}
.cp-main > p{margin:0; font-size:9.5px}
.cp-e{margin-bottom:10px}
.cp-e small{display:block; font-size:8.5px; color:rgb(95,103,110)}
.cp-e b{display:block; font-size:10.5px}
.cp-e em{display:block; font-style:normal; font-size:9.5px; color:rgb(95,103,110)}
.cp-e p{margin:3px 0 0; font-size:9.5px}
/* piede */
.cvb-foot{flex:none; display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:10px; padding:14px 28px; border-top:1px solid var(--line); background:var(--paper)}
.cvb-msg{flex:1 1 220px; margin:0; font-size:.85rem; color:var(--slate)}
.cvb-msg.is-error{color:var(--red-text); font-weight:500}
.cvb-btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:8px; height:48px; padding:0 22px; border:1.5px solid var(--line-strong); border-radius:var(--r-field); background:var(--paper); color:var(--ink); font:700 .95rem 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .15s, border-color .15s, transform .12s}
.cvb-btn:hover{border-color:var(--ink)}
.cvb-btn:active{transform:scale(.97)}
.cvb-btn-primary{border-color:var(--btn); background:var(--btn); color:#fff}
.cvb-btn-primary:hover{border-color:var(--btn-hover); background:var(--btn-hover)}
.cvb-btn:disabled{opacity:.65; cursor:progress; transform:none}
@media (max-width:900px){
  .cvb-main{grid-template-columns:minmax(0,1fr)}
  .cvb-prev{display:none}
}
@media (max-width:640px){
  .cvb{width:100vw; height:100dvh; border-radius:0}
  .cvb-head{padding:16px 16px 14px}
  .cvb-head h2{font-size:1.25rem}
  .cvb-head p{font-size:.84rem}
  .cvb-body,.cvb-quiz-body{padding:18px 16px 24px}
  .cvb-grid{grid-template-columns:1fr}
  .cvb-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .cvb-msg{flex-basis:100%}
  .cvb-btn{flex:1 1 0; height:auto; min-height:48px; padding:8px 12px; line-height:1.2; text-align:center}
}
@media (prefers-reduced-motion:reduce){ .cvb[open], .cvb-item.is-new{animation:none} }

.card-option[hidden], .cert-more[hidden]{display:none !important}
.cert-more{display:inline-flex; align-items:center; min-height:40px; margin-top:12px; padding:0 14px; border:1.5px solid var(--line-strong); border-radius:999px; background:transparent; color:var(--ink); font:600 .88rem 'Space Grotesk',sans-serif; cursor:pointer}
.cert-more:hover{border-color:var(--ink)}

/* ===== Home su telefono (V2.1.11): titolo e descrizione corti, modulo subito, poi la cartina. Il computer resta com'era. ===== */
.ag2-sub-short{display:none}
@media (max-width:980px){
  /* il testo e il modulo diventano fratelli nella stessa colonna, cosi' la cartina puo' andare dopo il modulo */
  .home-hero-grid .ag2-hero-copy{display:contents}
  .home-hero-grid .home-hero-form{order:1}
  .home-hero-grid .route-box{display:block; order:2; width:100%; max-width:440px; margin:12px auto 0}
}
@media (max-width:640px){
  .home-hero-grid .h1-more{display:none}
  .home-hero-grid .ag2-sub-long{display:none}
  .home-hero-grid .ag2-sub-short{display:block; margin-bottom:0}
  .home-hero-grid{gap:16px}
  .home-hero-grid h1{margin-bottom:0}
  .home-hero-grid .ag2-eyebrow{margin-bottom:14px}
  .home-hero-grid .route-box{max-width:340px; margin-top:4px}
  .home-hero-grid .route-caption{font-size:.7rem}
}

/* ===== Pagina profilo (V2.1.15): torna la fascia rosata calda della 2.0.208 dietro il titolo (tutta la larghezza, fino al modulo) ===== */
/* fascia e alone sono un solo sfondo sfumato: nessun bordo netto, il testo sopra resta pieno */
.ag2-hero-slim{isolation:isolate; padding:30px 0 34px}
.ag2-hero-slim::before{content:''; position:absolute; z-index:-1; inset:0; width:auto; height:auto; border-radius:0; pointer-events:none; opacity:1;
  background:radial-gradient(560px 420px at calc(100% - 120px) 0%, rgba(214,64,44,.15), rgba(214,64,44,0) 70%),
             linear-gradient(180deg, rgba(214,64,44,.10) 0%, rgba(214,64,44,.05) 65%, rgba(214,64,44,0) 100%);
  -webkit-mask-image:linear-gradient(180deg, #000 45%, transparent 100%); mask-image:linear-gradient(180deg, #000 45%, transparent 100%)}
.ag2-hero-slim .profile-welcome-back{background:#fff}
body:has(.ag2-hero-slim)::before, body:has(.ag2-hero-slim)::after{display:none} /* qui c'e' la fascia sfumata: niente cerchi netti sopra */
@media (max-width:560px){ .ag2-hero-slim{padding:26px 0 30px} }

/* ===== V2.3.9: menu a tendina del modulo (date, paese del titolo), come quello del prefisso ===== */
.po-pick{position:relative; min-width:0}
.po-pick .po-pick-native, .profile-form-section .po-shell .form-field select.po-pick-native{position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none}
.po-pick-btn{display:flex; align-items:center; gap:10px; width:100%; height:54px; padding:0 14px 0 16px; border:1.5px solid var(--line); border-radius:var(--po-r, 14px); background:var(--po-field, var(--field));
  color:var(--ink); font:500 16px 'Space Grotesk',sans-serif; text-align:left; cursor:pointer; transition:border-color .15s, box-shadow .15s}
.po-pick-btn:hover{border-color:var(--line-strong)}
.po-pick-btn:focus-visible, .po-pick.is-open .po-pick-btn{outline:0; border-color:var(--ink); box-shadow:0 0 0 4px rgba(27,31,35,.07)}
.po-pick-val{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.po-pick-val.is-ph{color:var(--slate)}
.po-pick.is-open .tel-picker-caret{transform:rotate(-135deg); margin-top:3px}
.po-pick-pop{position:absolute; left:0; top:calc(100% + 6px); z-index:40; min-width:100%; width:max-content; max-width:min(340px, calc(100vw - 32px)); padding:6px;
  background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-hover); animation:po-pop .16s ease-out}
.po-pick-pop[hidden]{display:none}
.po-pick-q{width:100%; height:44px; margin:0 0 6px; padding:0 12px; border:1.5px solid var(--line); border-radius:10px; font:inherit; font-size:16px; background:var(--field); color:var(--ink)}
.po-pick-q:focus{outline:0; border-color:var(--ink)}
.po-pick-list{list-style:none; margin:0; padding:0; max-height:280px; overflow-y:auto; overscroll-behavior:contain}
.po-pick-list:focus{outline:none}
.po-pick-list li{display:flex; align-items:center; gap:12px; min-height:42px; padding:0 12px; border-radius:10px; cursor:pointer; font-size:.95rem; color:var(--ink)}
.po-pick-list li.is-active{background:var(--cream)}
.po-pick-list li[aria-selected="true"]{font-weight:700}
.po-pick-list li.po-pick-none{cursor:default; color:var(--slate)}
.po-pick-name{flex:1; min-width:0}
.po-pick-dob .po-pick-pop{width:100%; min-width:120px}
.po-pick-dob .po-pick-list li{justify-content:center}
.po-pick-country{margin:0 0 8px}
#profileForm .po-pick-res{flex:0 0 auto; width:86px}
#profileForm .po-pick-res .po-pick-btn .po-pick-val{display:none}
#profileForm .po-pick-res .po-pick-btn{justify-content:space-between}
.po-host.po-ok .po-dob .po-pick-btn{border-color:var(--ink)}
/* data di nascita: tre caselle strette, testo centrato e senza freccia, cosi' «Giorno» e «Anno» si leggono interi */
.po-dob{gap:8px}
.po-dob .po-pick-btn{justify-content:center; padding:0 6px; font-size:15px}
.po-dob .po-pick-val{flex:0 1 auto; text-align:center}
.po-dob .tel-picker-caret{display:none}
.po-pick-dob-d .po-pick-pop{width:292px; max-width:calc(100vw - 32px)}
.po-pick-dob-d .po-pick-list{display:grid; grid-template-columns:repeat(7, 1fr); gap:2px; max-height:none}
.po-pick-dob-d .po-pick-list li{min-height:38px; padding:0; justify-content:center}
.po-pick-dob-m .po-pick-pop{width:180px}
.po-pick-dob-m .po-pick-list li{justify-content:flex-start}
.po-pick-dob-y .po-pick-pop{right:0; left:auto}
#profileForm .form-field[hidden]{display:none}
#profileForm .po-reveal{animation:po-rise .35s cubic-bezier(.3,.7,.2,1)}
.po-fdocs{margin:6px 0 18px}
.po-fdocs-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.po-fdoc{display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 14px 0 8px; border:1.5px dashed var(--line-strong); border-radius:999px; background:none; color:var(--ink);
  font:500 .92rem 'Space Grotesk',sans-serif; cursor:pointer; transition:border-color .15s, background-color .15s}
.po-fdoc:hover{border-color:var(--ink)}
.po-fdoc-ico{display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--cream); font-weight:700}
.po-fdoc.is-done{border-style:solid; border-color:var(--ink)}
.po-fdoc.is-done .po-fdoc-ico{background:var(--ink); color:var(--paper)}
.po-fdoc.is-busy{opacity:.55; pointer-events:none}
.consent-row{display:flex; align-items:center; justify-content:flex-start; flex-wrap:wrap; gap:14px}
.consent-row .consent-badge{margin:0}
.consent-badge.on{background:#E3F4E8; color:#1E7B3A}
.btn-revoke-mini{border:0; background:none; padding:2px 0; font:400 .8rem 'IBM Plex Sans',sans-serif; color:var(--red-text); opacity:.8; text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.btn-revoke-mini:hover{opacity:1}
.po-danger{margin-top:36px; padding-top:18px; border-top:1px solid var(--line)}
.po-danger .btn-revoke{padding:10px 14px; font-size:.85rem}
.po-danger .po-del-note{margin-top:8px}
/* «I miei dati» (V2.3.9): gruppi del riepilogo e modifica dentro il gruppo */
.po-sum-group{padding:4px 0 18px}
.po-sum-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0 6px}
.po-sum-head .po-h3{margin:0}
.po-sum-edit{height:36px; padding:0 14px; border:1.5px solid var(--line); border-radius:999px; background:none; color:var(--ink); font:600 13px 'Space Grotesk',sans-serif; cursor:pointer}
.po-sum-edit:hover{border-color:var(--ink)}
.po-sum-group.is-editing > .admin-row, .po-sum-group.is-editing .po-sum-edit{display:none}
.form-card.is-single{display:block; max-width:none; min-height:0; margin:8px 0 0; padding:18px; border:1.5px solid var(--ink); border-radius:18px; box-shadow:none; background:var(--paper); animation:po-rise .25s cubic-bezier(.3,.7,.2,1)}
.form-card.is-single .po-rail, .form-card.is-single .form-progress, .form-card.is-single .form-step-nav, .form-card.is-single .form-later, .form-card.is-single #welcomeBack, .form-card.is-single .form-intro{display:none !important}
.form-card.is-single .po-pane{padding:0; max-width:none}
.profile-form-section .form-card.is-single .form-step::before{display:none}
.po-edit-bar{display:flex; justify-content:flex-end; gap:10px; margin-top:18px; padding-top:14px; border-top:1px solid var(--line)}
.po-edit-bar[hidden]{display:none}
.profile-form-section .po-edit-bar button{flex:0 0 auto; height:46px; min-height:0; padding:0 22px; border-radius:14px; font:600 15px 'Space Grotesk',sans-serif; width:auto; margin:0; cursor:pointer}
.profile-form-section .po-edit-bar .btn-secondary{border:1.5px solid var(--line); background:none; color:var(--ink)}
.profile-form-section .po-edit-bar .btn-secondary:hover{border-color:var(--ink)}
.profile-form-section .po-edit-bar .btn-primary{border:0; background:var(--btn, var(--red)); color:#fff}
@media (max-width:560px){ .form-card.is-single{padding:14px} .profile-form-section .po-edit-bar button{flex:1 1 0} }
/* ===== V2.3.9: generatore di CV ===== */
.cvb{width:min(1320px, calc(100vw - 32px)); height:calc(100dvh - 32px)}
@media (min-width:901px){ .cvb-main{grid-template-columns:minmax(0,1fr) minmax(380px, 44%)} }
.cvb-prev{padding:18px 22px}
.cvb-styles{display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; margin:0 0 8px}
.cvb-style{display:flex; flex-direction:column; align-items:center; gap:6px; padding:8px 6px; border:1.5px solid var(--line); border-radius:12px; background:var(--paper); color:var(--ink); font:600 .8rem 'Space Grotesk',sans-serif; cursor:pointer}
.cvb-style:hover{border-color:var(--line-strong)}
.cvb-style.is-on{border-color:var(--ink); box-shadow:0 0 0 3px rgba(127,127,127,.18)}
.cvb-style i{display:block; width:38px; height:50px; border-radius:3px; background:rgb(255,255,255); box-shadow:inset 0 0 0 1px rgb(222,219,211)}
.cvb-style-classic i{background:linear-gradient(90deg, rgb(241,239,232) 0 34%, rgb(255,255,255) 34%)}
.cvb-style-modern i{background:linear-gradient(rgb(27,31,35) 0 26%, rgb(255,255,255) 26%)}
.cvb-style-essential i{background:repeating-linear-gradient(rgb(255,255,255) 0 6px, rgb(200,200,200) 6px 7px)}
.cvb-style-elegant i{background:radial-gradient(circle at 50% 18%, rgb(150,150,150) 0 5px, transparent 6px), rgb(255,255,255)}
.cvb-style-tip{margin:0 0 12px; font-size:.78rem; color:var(--slate)}
/* anteprima, stili a una colonna */
.cvb-paper.cp-modern, .cvb-paper.cp-essential, .cvb-paper.cp-elegant{display:block; padding:0}
.cvb-paper:not(.cp-classic) .cp-head{display:flex; align-items:center; gap:18px; flex-direction:row-reverse; justify-content:flex-end; padding:46px 51px 6px}
.cvb-paper:not(.cp-classic) .cp-head > div{flex:1}
.cvb-paper:not(.cp-classic) .cp-head h4{margin:0; font-size:24px; line-height:1.1; font-weight:700}
.cvb-paper:not(.cp-classic) .cp-head .cp-t{margin:6px 0 0; font-size:13px}
.cvb-paper:not(.cp-classic) .cp-photo{width:74px; height:92px; margin:0}
.cvb-paper:not(.cp-classic) .cp-contact{margin:0 51px; padding:6px 0 12px; border-bottom:1px solid rgb(222,219,211); font-size:9px; color:rgb(95,103,110)}
.cvb-paper:not(.cp-classic) .cp-main{padding:18px 51px 30px}
.cvb-paper:not(.cp-classic) .cp-t{color:rgb(95,103,110)}
.cvb-paper:not(.cp-classic) .cp-e{display:grid; grid-template-columns:85px 1fr; gap:0 8px}
.cp-xs .cp-x p{margin:0; font-size:9.5px}
.cp-modern .cp-head{background:rgb(27,31,35); color:rgb(255,255,255); padding:30px 51px 26px !important; margin-bottom:12px}
.cp-modern .cp-head .cp-t{color:rgb(255,160,140) !important}
.cp-modern .cp-main h6{color:rgb(194,58,38)}
.cp-essential .cp-main h6{border-bottom-color:rgb(27,31,35)}
.cp-elegant{font-family:Georgia, 'Times New Roman', serif !important}
.cp-elegant .cp-head{flex-direction:column !important; text-align:center; gap:10px !important; padding-top:36px !important}
.cp-elegant .cp-head .cp-t{font-style:italic}
.cp-elegant .cp-contact{text-align:center; border-bottom-color:rgb(27,31,35) !important}
.cp-elegant .cp-main h6{text-align:center; border-bottom:0; letter-spacing:.12em}
/* periodo in due caselle */
.cvb-yy{display:flex; align-items:center; gap:8px}
.cvb-yy input{width:100%; min-width:0; text-align:center; font-variant-numeric:tabular-nums}
.cvb-yy span{color:var(--slate); flex:none}
/* punti forti a bolle */
.cvb-chips{display:flex; flex-wrap:wrap; gap:8px}
.cvb-chip{min-height:38px; padding:0 14px; border:1.5px solid var(--line); border-radius:999px; background:var(--paper); color:var(--ink); font:500 .9rem 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .15s, border-color .15s}
.cvb-chip:hover{border-color:var(--ink)}
.cvb-chip.is-on{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.cvb-chip.is-on::before{content:'✓ '}
.cvb-chip:disabled{opacity:.4; cursor:not-allowed}
.cvb-chip-add{display:flex; gap:8px; margin-top:8px}
.cvb-chip-add input{flex:1; min-width:0; height:40px; border:1.5px solid var(--line); border-radius:12px; padding:0 12px; background:var(--field); color:var(--ink); font:inherit; font-size:16px}
.cvb-add-mini{flex:none; height:40px; padding:0 14px; border:1.5px solid var(--ink); border-radius:12px; background:none; color:var(--ink); font:600 .88rem 'Space Grotesk',sans-serif; cursor:pointer}
/* foto */
.cvb-photo{display:flex; align-items:center; gap:14px; padding:12px; border:1px dashed var(--line-strong); border-radius:14px}
.cvb-photo img{width:64px; height:80px; object-fit:cover; border-radius:8px}
.cvb-photo .cvb-check{grid-column:auto}
.cvb-photo p{margin:0 0 8px; font-size:.88rem; color:var(--slate)}
.cvb-sil{flex:none; width:64px; height:80px; color:var(--ink)}
.cvb-sil svg{width:100%; height:100%}
/* «aggiungi» ben visibile */
.cvb-add{width:100%; justify-content:center; min-height:50px; border-width:2px; border-radius:14px; font-size:.95rem}
/* riquadro con il CV pronto */
.cvb-entry.is-ready{border-color:var(--line-strong); background:var(--cream-card)}
.cvb-entry-tools{display:flex; gap:8px; flex:none}
.cvb-entry-tools[hidden]{display:none}
.cvb-mini{display:inline-flex; align-items:center; height:46px; padding:0 16px; border:1.5px solid var(--line-strong); border-radius:999px; background:var(--paper); color:var(--ink); font:600 .9rem 'Space Grotesk',sans-serif; text-decoration:none; cursor:pointer}
.cvb-mini:hover{border-color:var(--ink)}
.cvb-entry.is-ready .cvb-open{background:var(--ink); color:var(--paper)}
.cvb-entry.is-ready{flex-wrap:wrap}
.cvb-entry.is-ready .cvb-entry-tx{flex:1 1 calc(100% - 60px)}
.cvb-entry.is-ready .cvb-entry-tools{order:3; margin-left:60px}
.cvb-entry.is-ready .cvb-open{order:4; height:46px}
.cvb-entry.is-ready .cvb-entry-tx small{word-break:break-all}
.cvb-pdfv{display:block}
.cvb-pdfv iframe{width:100%; height:100%; border:0; background:var(--cream)}
.cvb-prev-toggle{display:none}
@media (max-width:900px){
  .cvb-prev-toggle{display:inline-flex}
  .cvb.cvb-show-prev .cvb-body{display:none}
  .cvb.cvb-show-prev .cvb-prev{display:block; border-left:0}
}
@media (max-width:640px){
  .cvb{width:100vw; height:100dvh}
  .cvb-entry.is-ready .cvb-entry-tools{width:100%; margin-left:0} .cvb-entry-tools .cvb-mini{flex:1; justify-content:center}
  .cvb-styles{grid-template-columns:repeat(2, 1fr)}
}

/* la «i» resta sotto il mouse: niente aggancio automatico dello scorrimento mentre si apre il riquadro */
#profileForm .form-field{overflow-anchor:none}

/* ===== V2.3.11: segnaposto mentre si carica (schede grigie con un riflesso che scorre) ===== */
.po-sk{display:block; background:linear-gradient(90deg,#ECEAE4 25%,#F7F5F0 40%,#ECEAE4 60%); background-size:300% 100%; animation:po-sk 1.4s ease-in-out infinite; border-radius:999px}
@keyframes po-sk{from{background-position:100% 0} to{background-position:0 0}}
.po-skel-card{display:flex; align-items:center; gap:16px; padding:20px; border:1px solid var(--line); border-radius:16px; background:#fff; margin-bottom:12px; text-align:left}
.po-skel-card .po-sk-pic{width:48px; height:48px; border-radius:12px; flex:none}
.po-skel-card .po-sk-l{flex:1; display:grid; gap:10px}
@media (prefers-reduced-motion:reduce){.po-sk{animation:none}}

/* ===== TEMA SCURO (generato da apps/sito/scripts/make-dark-css.py: non modificare a mano) ===== */
@media (prefers-color-scheme: dark){
html:not([data-theme="light"]){
  --paper:#121417; --ink:#ECE9E1; --slate:#A6AEB5; --line:#2D3339; --line-strong:#3B434A;
  --cream:#171A1E; --cream-card:#1D2126; --field:#1A1E22; --green:#ECE9E1;
  --red:#E8604D; --red-text:#FF8F7D; --btn:#C9402A; --btn-hover:#DD5039;
  --d-card:#1B1F23; --d-soft:#1F2429; --d-strong:#2A3036;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 34px -16px rgba(0,0,0,.6);
  --shadow-hover:0 2px 4px rgba(0,0,0,.45), 0 22px 44px -18px rgba(0,0,0,.7);
  --shadow-panel:0 40px 70px -40px rgba(0,0,0,.8);
  color-scheme:dark; accent-color:#ECE9E1;
}
html:not([data-theme="light"]) body{background:var(--paper); color:var(--ink)}
html:not([data-theme="light"]) img:not([src$=".svg"]){filter:brightness(.92)}
html:not([data-theme="light"]) .skip-link{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .ag2-btn-ghost{background:var(--d-card)}
html:not([data-theme="light"]) header{background:rgba(18,20,23,.9)}
html:not([data-theme="light"]) .nav-links a{color:var(--slate)}
html:not([data-theme="light"]) .nav-agency{background:var(--d-card)}
html:not([data-theme="light"]) .lang-menu-list{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-eyebrow{background:var(--d-soft)}
html:not([data-theme="light"]) .ag2-switch{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-switch a.is-on{background:var(--d-strong)}
html:not([data-theme="light"]) .ag2-card{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-avatar{background:var(--d-strong)}
html:not([data-theme="light"]) .ag2-b-av{color:var(--red-text)}
html:not([data-theme="light"]) .ag2-feat,html:not([data-theme="light"]) .ag2-step,html:not([data-theme="light"]) .team-member,html:not([data-theme="light"]) .value,html:not([data-theme="light"]) .trust-item,html:not([data-theme="light"]) .offer-card{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-step-n{background:var(--d-strong)}
html:not([data-theme="light"]) .ag2-col-with{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-col:not(.ag2-col-before):not(.ag2-col-with){background:var(--d-card)}
html:not([data-theme="light"]) .ag2-ic-no{background:var(--d-soft);color:var(--slate)}
html:not([data-theme="light"]) .ag2-stats{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-faq{background:var(--d-card)}
html:not([data-theme="light"]) .ag2-faq[open] summary::after{background:var(--d-strong)}
html:not([data-theme="light"]) .ag2-cta > .wrap{background:var(--d-strong)}
html:not([data-theme="light"]) .ag2-cta :focus-visible{outline-color:var(--line)}
html:not([data-theme="light"]) .ag-form{background:var(--d-card)}
html:not([data-theme="light"]) .ag-form .form-field input::placeholder,html:not([data-theme="light"]) .ag-form .form-field textarea::placeholder,html:not([data-theme="light"]) .hero-form .quick-grid input::placeholder,html:not([data-theme="light"]) .offers-filter input::placeholder{color:var(--slate)}
html:not([data-theme="light"]) .ag-form .form-field input:focus,html:not([data-theme="light"]) .ag-form .form-field textarea:focus,html:not([data-theme="light"]) .ag-form .form-field select:focus,html:not([data-theme="light"]) .hero-form .quick-grid input:focus,html:not([data-theme="light"]) .hero-form .quick-grid select:focus,html:not([data-theme="light"]) .offers-filter select:focus,html:not([data-theme="light"]) .offers-filter input:focus,html:not([data-theme="light"]) .hero-form #magicCodeInput:focus{background-color:var(--d-card)}
html:not([data-theme="light"]) .hero-form.form-card{background:var(--d-card)}
html:not([data-theme="light"]) .tel-picker-btn:focus-visible,html:not([data-theme="light"]) .tel-picker.is-open .tel-picker-btn{background:var(--d-card)}
html:not([data-theme="light"]) .tel-picker-list{background:var(--d-card)}
html:not([data-theme="light"]) .hero-form .btn-secondary{background:var(--d-card)}
html:not([data-theme="light"]) .hero-form .form-remember input{background:var(--d-card)}
html:not([data-theme="light"]) .hero-form .form-remember input::after{border:solid var(--line)}
html:not([data-theme="light"]) .hero-form .form-remember input:checked{background:var(--d-strong)}
html:not([data-theme="light"]) .otp .otp-box:focus{background:var(--d-card)}
html:not([data-theme="light"]) .sm-r{fill:var(--d-soft);stroke:var(--line)}
html:not([data-theme="light"]) .sm-r.is-to{fill:rgba(232,96,77,.14)}
html:not([data-theme="light"]) .sm-dot{fill:var(--d-card)}
html:not([data-theme="light"]) .sm-city.is-from .sm-dot{fill:var(--d-strong)}
html:not([data-theme="light"]) .sm-label{fill:var(--d-strong);stroke:var(--line)}
html:not([data-theme="light"]) .sm-traveler{stroke:var(--line)}
html:not([data-theme="light"]) .vt-step-number{background:var(--d-card)}
html:not([data-theme="light"]) .vt-step-body{background:var(--d-card)}
html:not([data-theme="light"]) .dark-section:has(.ct-stats){background:var(--d-card)}
html:not([data-theme="light"]) #agenzie > .wrap{background:var(--d-card)}
html:not([data-theme="light"]) .offers-filter{background:var(--d-card)}
html:not([data-theme="light"]) .offers-empty{background:var(--d-card)}
html:not([data-theme="light"]) .offer-facts{background:var(--d-card)}
html:not([data-theme="light"]) .offer-apply{background:var(--d-card)}
html:not([data-theme="light"]) .lavoro-links a{background:var(--d-card)}
html:not([data-theme="light"]) .member-avatar{background:var(--d-strong)}
html:not([data-theme="light"]) .contact-links a:not(.ag2-btn){background:var(--d-card)}
html:not([data-theme="light"]) .name-card{background:var(--d-card)}
html:not([data-theme="light"]) .info-grid > div{background:var(--d-card)}
html:not([data-theme="light"]) .legal-block p.mono{background:var(--d-card)}
html:not([data-theme="light"]) body::before{background:rgba(232,96,77,.14)}
@media (max-width:820px){
html:not([data-theme="light"]) .ag2-pair{background:var(--d-card)}
html:not([data-theme="light"]) .pair-no{background:var(--d-soft)}
}
html:not([data-theme="light"]) .offer-map{background:var(--d-card)}
html:not([data-theme="light"]) .offer-map path{fill:var(--d-soft);stroke:var(--line)}
html:not([data-theme="light"]) .btn-primary{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .form-section{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) label.file-drop-btn{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .card-option.selected{background:var(--d-soft)}
html:not([data-theme="light"]) .chip-toggle.selected{color:#F6F4EF}
html:not([data-theme="light"]) .chat-thread-body{background:var(--d-soft)}
html:not([data-theme="light"]) .chat-mine{background:rgba(232,96,77,.14)}
html:not([data-theme="light"]) .chat-mine .chat-meta{color:var(--red-text)}
html:not([data-theme="light"]) .profile-form-section .form-step > .form-field,html:not([data-theme="light"]) .profile-form-section .form-step > .form-row,html:not([data-theme="light"]) .profile-form-section .form-step > details.form-more{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .card-option.selected{background:var(--d-soft)}
html:not([data-theme="light"]) .profile-form-section .po-shell{--po-ok:#ECE9E1;--po-field:var(--d-soft);--po-hov:var(--line);--po-chkw:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23121417' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E");--po-chkg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23ECE9E1' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E");--po-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none' stroke='%23ECE9E1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");background:var(--d-card)}
html:not([data-theme="light"]) .po-rail{background:var(--d-strong)}
html:not([data-theme="light"]) .po-rbar{background:rgba(18,20,23,.14)}
html:not([data-theme="light"]) .po-rsteps li.is-done .po-n{background:rgba(18,20,23,.18)}
html:not([data-theme="light"]) .po-cb{background:rgba(18,20,23,.14)}
html:not([data-theme="light"]) .po-cb span{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .form-field input:focus,html:not([data-theme="light"]) .profile-form-section .po-shell .form-field select:focus,html:not([data-theme="light"]) .profile-form-section .po-shell .form-field textarea:focus{background-color:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .card-option{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .chip-toggle{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .chip-toggle.selected{background:var(--d-strong)}
html:not([data-theme="light"]) .profile-form-section .po-shell .lang-chip{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .lang-chip select{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell label.file-drop-btn{background:var(--d-strong)}
html:not([data-theme="light"]) .profile-form-section .po-shell details.form-more{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .lang-chip.selected select{background-color:var(--d-card)}
html:not([data-theme="light"]) .zone-map{background:var(--d-card)}
html:not([data-theme="light"]) .zone-map .zm{stroke:var(--line)}
html:not([data-theme="light"]) .zone-map .zm-ti{fill:rgba(232,96,77,.14)}
html:not([data-theme="light"]) .zone-map .zm-leman{fill:var(--d-soft)}
html:not([data-theme="light"]) .zone-map .zm-arc{fill:var(--d-soft)}
html:not([data-theme="light"]) .zone-map .zm-nordovest{fill:var(--d-soft)}
html:not([data-theme="light"]) .zone-map .zm-est{fill:var(--d-soft)}
html:not([data-theme="light"]) .zl-it{background:rgba(232,96,77,.14)}
html:not([data-theme="light"]) .po-i{background:var(--d-card)}
html:not([data-theme="light"]) .po-i:hover{background:var(--d-soft)}
html:not([data-theme="light"]) .po-info p{background:var(--d-soft)}
html:not([data-theme="light"]) .po-celebrate{background:var(--d-strong)}
html:not([data-theme="light"]) .po-celeb-check{stroke:var(--line)}
html:not([data-theme="light"]) .po-celeb-check circle{stroke:var(--line)}
html:not([data-theme="light"]) .po-celeb-call{background:rgba(18,20,23,.1)}
html:not([data-theme="light"]) .po-dnav-btn:hover{background:rgba(18,20,23,.07)}
html:not([data-theme="light"]) .po-dnav-btn.is-on{background:rgba(18,20,23,.12)}
html:not([data-theme="light"]) .po-box{background:var(--d-card)}
html:not([data-theme="light"]) .po-steps li.is-done .po-sn{background:var(--d-strong)}
html:not([data-theme="light"]) .po-tile{background:var(--d-card)}
html:not([data-theme="light"]) .po-actions .btn-secondary{background:var(--d-card)}
html:not([data-theme="light"]) .po-kindmenu{background:var(--d-card)}
html:not([data-theme="light"]) .po-sumdoc .btn-secondary{background:var(--d-card)}
html:not([data-theme="light"]) .po-rail{background:var(--d-soft)}
html:not([data-theme="light"]) .po-n{background:var(--d-card)}
html:not([data-theme="light"]) .po-rsteps li.is-done .po-n{background:var(--d-strong)}
html:not([data-theme="light"]) .po-dnav-btn:hover{background:var(--d-card)}
html:not([data-theme="light"]) .po-dnav-btn .po-dot{border-color:var(--line)}
html:not([data-theme="light"]) .po-dnav-btn.is-on{background:var(--d-card)}
html:not([data-theme="light"]) .profile-form-section .po-shell .lang-chip select{background-color:var(--d-card)}
html:not([data-theme="light"]) header{background:rgba(18,20,23,.72)}
html:not([data-theme="light"]) header:has(nav.nav-open){background:rgba(18,20,23,.94)}
html:not([data-theme="light"]) .lang-menu-list{background:rgba(18,20,23,.82)}
@media (prefers-reduced-transparency: reduce){
html:not([data-theme="light"]) header,html:not([data-theme="light"]) header:has(nav.nav-open),html:not([data-theme="light"]) .lang-menu-list{background:var(--d-card)}
}
html:not([data-theme="light"]) .lang-menu-list{background:rgba(18,20,23,.95)}
@media (max-width:1240px), (hover:none){
html:not([data-theme="light"]) header{background:rgba(18,20,23,.97)}
}
html:not([data-theme="light"]) header,html:not([data-theme="light"]) header.header-hide{background:rgba(18,20,23,.97)}
html:not([data-theme="light"]) .ew-facts li{background:var(--d-card)}
html:not([data-theme="light"]) .ew-facts li::after{border:solid var(--line)}
html:not([data-theme="light"]) .ew-chip input:checked + span,html:not([data-theme="light"]) .ew-chip.on span{background:var(--d-strong)}
html:not([data-theme="light"]) .ew-file-btn{background:var(--d-strong)}
html:not([data-theme="light"]) .ew-zone-box::before{background:var(--d-card)}
html:not([data-theme="light"]) .ew-zone input:checked + .ew-zone-box,html:not([data-theme="light"]) .ew-zone.on .ew-zone-box{background:var(--d-card)}
html:not([data-theme="light"]) .cvb-qh{color:var(--slate,var(--slate))}
html:not([data-theme="light"]) .cvb-n{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .ag2-hero-slim .profile-welcome-back{background:var(--d-card)}
html:not([data-theme="light"]) .po-pick-pop{background:var(--d-card)}
html:not([data-theme="light"]) .po-fdoc.is-done .po-fdoc-ico{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .consent-badge.on{background:var(--d-soft)}
html:not([data-theme="light"]) .cvb-chip.is-on{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .cvb-entry.is-ready .cvb-open{background:var(--d-strong);color:#F6F4EF}
html:not([data-theme="light"]) .po-sk{background:linear-gradient(90deg,var(--d-soft) 25%,var(--d-soft) 40%,var(--d-soft) 60%)}
html:not([data-theme="light"]) .po-skel-card{background:var(--d-card)}
html:not([data-theme="light"]) .po-sk{background:linear-gradient(90deg,#22272c 25%,#2c3238 40%,#22272c 60%);background-size:300% 100%}
html:not([data-theme="light"]) .po-skel-card{background:var(--d-card)}
html:not([data-theme="light"]) body::before{background:rgba(232,96,77,.07)}
html:not([data-theme="light"]) body::after{border-color:rgba(232,96,77,.26)}
html:not([data-theme="light"]) .ag2-switch a.is-on{background:var(--ink); color:var(--paper); box-shadow:none}
html:not([data-theme="light"]) .zone-map .zm{stroke:var(--paper)}
html:not([data-theme="light"]) .zone-map .zm-ti{fill:#4A3F36} html:not([data-theme="light"]) .zone-map .zm-leman{fill:#323A45} html:not([data-theme="light"]) .zone-map .zm-valais{fill:#3A4452} html:not([data-theme="light"]) .zone-map .zm-arc{fill:#2C333C}
html:not([data-theme="light"]) .zone-map .zm-nordovest{fill:#3B4440} html:not([data-theme="light"]) .zone-map .zm-zurigo{fill:#46504B} html:not([data-theme="light"]) .zone-map .zm-est{fill:#333B37}
html:not([data-theme="light"]) .zone-map .zm.is-on{fill:var(--red)} html:not([data-theme="light"]) .zone-map .zm.is-on.is-hover{fill:#C9402A}
html:not([data-theme="light"]) .zl-it{background:#4A3F36} html:not([data-theme="light"]) .zl-fr{background:#3A4452} html:not([data-theme="light"]) .zl-de{background:#46504B}
html:not([data-theme="light"]) .offer-map path.is-on{fill:var(--red); stroke:var(--red)}
html:not([data-theme="light"]) .po-celeb-check, html:not([data-theme="light"]) .po-celeb-check circle{stroke:#F6F4EF}
html:not([data-theme="light"]) .po-celeb-call{background:rgba(255,255,255,.07)}
html:not([data-theme="light"]) .consent-badge.on{background:rgba(52,199,89,.16); color:#7DDB98}
}
html[data-theme="dark"]{
  --paper:#121417; --ink:#ECE9E1; --slate:#A6AEB5; --line:#2D3339; --line-strong:#3B434A;
  --cream:#171A1E; --cream-card:#1D2126; --field:#1A1E22; --green:#ECE9E1;
  --red:#E8604D; --red-text:#FF8F7D; --btn:#C9402A; --btn-hover:#DD5039;
  --d-card:#1B1F23; --d-soft:#1F2429; --d-strong:#2A3036;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 34px -16px rgba(0,0,0,.6);
  --shadow-hover:0 2px 4px rgba(0,0,0,.45), 0 22px 44px -18px rgba(0,0,0,.7);
  --shadow-panel:0 40px 70px -40px rgba(0,0,0,.8);
  color-scheme:dark; accent-color:#ECE9E1;
}
html[data-theme="dark"] body{background:var(--paper); color:var(--ink)}
html[data-theme="dark"] img:not([src$=".svg"]){filter:brightness(.92)}
html[data-theme="dark"] .skip-link{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .ag2-btn-ghost{background:var(--d-card)}
html[data-theme="dark"] header{background:rgba(18,20,23,.9)}
html[data-theme="dark"] .nav-links a{color:var(--slate)}
html[data-theme="dark"] .nav-agency{background:var(--d-card)}
html[data-theme="dark"] .lang-menu-list{background:var(--d-card)}
html[data-theme="dark"] .ag2-eyebrow{background:var(--d-soft)}
html[data-theme="dark"] .ag2-switch{background:var(--d-card)}
html[data-theme="dark"] .ag2-switch a.is-on{background:var(--d-strong)}
html[data-theme="dark"] .ag2-card{background:var(--d-card)}
html[data-theme="dark"] .ag2-avatar{background:var(--d-strong)}
html[data-theme="dark"] .ag2-b-av{color:var(--red-text)}
html[data-theme="dark"] .ag2-feat,html[data-theme="dark"] .ag2-step,html[data-theme="dark"] .team-member,html[data-theme="dark"] .value,html[data-theme="dark"] .trust-item,html[data-theme="dark"] .offer-card{background:var(--d-card)}
html[data-theme="dark"] .ag2-step-n{background:var(--d-strong)}
html[data-theme="dark"] .ag2-col-with{background:var(--d-card)}
html[data-theme="dark"] .ag2-col:not(.ag2-col-before):not(.ag2-col-with){background:var(--d-card)}
html[data-theme="dark"] .ag2-ic-no{background:var(--d-soft);color:var(--slate)}
html[data-theme="dark"] .ag2-stats{background:var(--d-card)}
html[data-theme="dark"] .ag2-faq{background:var(--d-card)}
html[data-theme="dark"] .ag2-faq[open] summary::after{background:var(--d-strong)}
html[data-theme="dark"] .ag2-cta > .wrap{background:var(--d-strong)}
html[data-theme="dark"] .ag2-cta :focus-visible{outline-color:var(--line)}
html[data-theme="dark"] .ag-form{background:var(--d-card)}
html[data-theme="dark"] .ag-form .form-field input::placeholder,html[data-theme="dark"] .ag-form .form-field textarea::placeholder,html[data-theme="dark"] .hero-form .quick-grid input::placeholder,html[data-theme="dark"] .offers-filter input::placeholder{color:var(--slate)}
html[data-theme="dark"] .ag-form .form-field input:focus,html[data-theme="dark"] .ag-form .form-field textarea:focus,html[data-theme="dark"] .ag-form .form-field select:focus,html[data-theme="dark"] .hero-form .quick-grid input:focus,html[data-theme="dark"] .hero-form .quick-grid select:focus,html[data-theme="dark"] .offers-filter select:focus,html[data-theme="dark"] .offers-filter input:focus,html[data-theme="dark"] .hero-form #magicCodeInput:focus{background-color:var(--d-card)}
html[data-theme="dark"] .hero-form.form-card{background:var(--d-card)}
html[data-theme="dark"] .tel-picker-btn:focus-visible,html[data-theme="dark"] .tel-picker.is-open .tel-picker-btn{background:var(--d-card)}
html[data-theme="dark"] .tel-picker-list{background:var(--d-card)}
html[data-theme="dark"] .hero-form .btn-secondary{background:var(--d-card)}
html[data-theme="dark"] .hero-form .form-remember input{background:var(--d-card)}
html[data-theme="dark"] .hero-form .form-remember input::after{border:solid var(--line)}
html[data-theme="dark"] .hero-form .form-remember input:checked{background:var(--d-strong)}
html[data-theme="dark"] .otp .otp-box:focus{background:var(--d-card)}
html[data-theme="dark"] .sm-r{fill:var(--d-soft);stroke:var(--line)}
html[data-theme="dark"] .sm-r.is-to{fill:rgba(232,96,77,.14)}
html[data-theme="dark"] .sm-dot{fill:var(--d-card)}
html[data-theme="dark"] .sm-city.is-from .sm-dot{fill:var(--d-strong)}
html[data-theme="dark"] .sm-label{fill:var(--d-strong);stroke:var(--line)}
html[data-theme="dark"] .sm-traveler{stroke:var(--line)}
html[data-theme="dark"] .vt-step-number{background:var(--d-card)}
html[data-theme="dark"] .vt-step-body{background:var(--d-card)}
html[data-theme="dark"] .dark-section:has(.ct-stats){background:var(--d-card)}
html[data-theme="dark"] #agenzie > .wrap{background:var(--d-card)}
html[data-theme="dark"] .offers-filter{background:var(--d-card)}
html[data-theme="dark"] .offers-empty{background:var(--d-card)}
html[data-theme="dark"] .offer-facts{background:var(--d-card)}
html[data-theme="dark"] .offer-apply{background:var(--d-card)}
html[data-theme="dark"] .lavoro-links a{background:var(--d-card)}
html[data-theme="dark"] .member-avatar{background:var(--d-strong)}
html[data-theme="dark"] .contact-links a:not(.ag2-btn){background:var(--d-card)}
html[data-theme="dark"] .name-card{background:var(--d-card)}
html[data-theme="dark"] .info-grid > div{background:var(--d-card)}
html[data-theme="dark"] .legal-block p.mono{background:var(--d-card)}
html[data-theme="dark"] body::before{background:rgba(232,96,77,.14)}
@media (max-width:820px){
html[data-theme="dark"] .ag2-pair{background:var(--d-card)}
html[data-theme="dark"] .pair-no{background:var(--d-soft)}
}
html[data-theme="dark"] .offer-map{background:var(--d-card)}
html[data-theme="dark"] .offer-map path{fill:var(--d-soft);stroke:var(--line)}
html[data-theme="dark"] .btn-primary{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .form-section{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] label.file-drop-btn{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .card-option.selected{background:var(--d-soft)}
html[data-theme="dark"] .chip-toggle.selected{color:#F6F4EF}
html[data-theme="dark"] .chat-thread-body{background:var(--d-soft)}
html[data-theme="dark"] .chat-mine{background:rgba(232,96,77,.14)}
html[data-theme="dark"] .chat-mine .chat-meta{color:var(--red-text)}
html[data-theme="dark"] .profile-form-section .form-step > .form-field,html[data-theme="dark"] .profile-form-section .form-step > .form-row,html[data-theme="dark"] .profile-form-section .form-step > details.form-more{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .card-option.selected{background:var(--d-soft)}
html[data-theme="dark"] .profile-form-section .po-shell{--po-ok:#ECE9E1;--po-field:var(--d-soft);--po-hov:var(--line);--po-chkw:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23121417' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E");--po-chkg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23ECE9E1' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5l3 3 5-6'/%3E%3C/svg%3E");--po-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' fill='none' stroke='%23ECE9E1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E");background:var(--d-card)}
html[data-theme="dark"] .po-rail{background:var(--d-strong)}
html[data-theme="dark"] .po-rbar{background:rgba(18,20,23,.14)}
html[data-theme="dark"] .po-rsteps li.is-done .po-n{background:rgba(18,20,23,.18)}
html[data-theme="dark"] .po-cb{background:rgba(18,20,23,.14)}
html[data-theme="dark"] .po-cb span{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .form-field input:focus,html[data-theme="dark"] .profile-form-section .po-shell .form-field select:focus,html[data-theme="dark"] .profile-form-section .po-shell .form-field textarea:focus{background-color:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .card-option{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .chip-toggle{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .chip-toggle.selected{background:var(--d-strong)}
html[data-theme="dark"] .profile-form-section .po-shell .lang-chip{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .lang-chip select{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell label.file-drop-btn{background:var(--d-strong)}
html[data-theme="dark"] .profile-form-section .po-shell details.form-more{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .lang-chip.selected select{background-color:var(--d-card)}
html[data-theme="dark"] .zone-map{background:var(--d-card)}
html[data-theme="dark"] .zone-map .zm{stroke:var(--line)}
html[data-theme="dark"] .zone-map .zm-ti{fill:rgba(232,96,77,.14)}
html[data-theme="dark"] .zone-map .zm-leman{fill:var(--d-soft)}
html[data-theme="dark"] .zone-map .zm-arc{fill:var(--d-soft)}
html[data-theme="dark"] .zone-map .zm-nordovest{fill:var(--d-soft)}
html[data-theme="dark"] .zone-map .zm-est{fill:var(--d-soft)}
html[data-theme="dark"] .zl-it{background:rgba(232,96,77,.14)}
html[data-theme="dark"] .po-i{background:var(--d-card)}
html[data-theme="dark"] .po-i:hover{background:var(--d-soft)}
html[data-theme="dark"] .po-info p{background:var(--d-soft)}
html[data-theme="dark"] .po-celebrate{background:var(--d-strong)}
html[data-theme="dark"] .po-celeb-check{stroke:var(--line)}
html[data-theme="dark"] .po-celeb-check circle{stroke:var(--line)}
html[data-theme="dark"] .po-celeb-call{background:rgba(18,20,23,.1)}
html[data-theme="dark"] .po-dnav-btn:hover{background:rgba(18,20,23,.07)}
html[data-theme="dark"] .po-dnav-btn.is-on{background:rgba(18,20,23,.12)}
html[data-theme="dark"] .po-box{background:var(--d-card)}
html[data-theme="dark"] .po-steps li.is-done .po-sn{background:var(--d-strong)}
html[data-theme="dark"] .po-tile{background:var(--d-card)}
html[data-theme="dark"] .po-actions .btn-secondary{background:var(--d-card)}
html[data-theme="dark"] .po-kindmenu{background:var(--d-card)}
html[data-theme="dark"] .po-sumdoc .btn-secondary{background:var(--d-card)}
html[data-theme="dark"] .po-rail{background:var(--d-soft)}
html[data-theme="dark"] .po-n{background:var(--d-card)}
html[data-theme="dark"] .po-rsteps li.is-done .po-n{background:var(--d-strong)}
html[data-theme="dark"] .po-dnav-btn:hover{background:var(--d-card)}
html[data-theme="dark"] .po-dnav-btn .po-dot{border-color:var(--line)}
html[data-theme="dark"] .po-dnav-btn.is-on{background:var(--d-card)}
html[data-theme="dark"] .profile-form-section .po-shell .lang-chip select{background-color:var(--d-card)}
html[data-theme="dark"] header{background:rgba(18,20,23,.72)}
html[data-theme="dark"] header:has(nav.nav-open){background:rgba(18,20,23,.94)}
html[data-theme="dark"] .lang-menu-list{background:rgba(18,20,23,.82)}
@media (prefers-reduced-transparency: reduce){
html[data-theme="dark"] header,html[data-theme="dark"] header:has(nav.nav-open),html[data-theme="dark"] .lang-menu-list{background:var(--d-card)}
}
html[data-theme="dark"] .lang-menu-list{background:rgba(18,20,23,.95)}
@media (max-width:1240px), (hover:none){
html[data-theme="dark"] header{background:rgba(18,20,23,.97)}
}
html[data-theme="dark"] header,html[data-theme="dark"] header.header-hide{background:rgba(18,20,23,.97)}
html[data-theme="dark"] .ew-facts li{background:var(--d-card)}
html[data-theme="dark"] .ew-facts li::after{border:solid var(--line)}
html[data-theme="dark"] .ew-chip input:checked + span,html[data-theme="dark"] .ew-chip.on span{background:var(--d-strong)}
html[data-theme="dark"] .ew-file-btn{background:var(--d-strong)}
html[data-theme="dark"] .ew-zone-box::before{background:var(--d-card)}
html[data-theme="dark"] .ew-zone input:checked + .ew-zone-box,html[data-theme="dark"] .ew-zone.on .ew-zone-box{background:var(--d-card)}
html[data-theme="dark"] .cvb-qh{color:var(--slate,var(--slate))}
html[data-theme="dark"] .cvb-n{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .ag2-hero-slim .profile-welcome-back{background:var(--d-card)}
html[data-theme="dark"] .po-pick-pop{background:var(--d-card)}
html[data-theme="dark"] .po-fdoc.is-done .po-fdoc-ico{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .consent-badge.on{background:var(--d-soft)}
html[data-theme="dark"] .cvb-chip.is-on{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .cvb-entry.is-ready .cvb-open{background:var(--d-strong);color:#F6F4EF}
html[data-theme="dark"] .po-sk{background:linear-gradient(90deg,var(--d-soft) 25%,var(--d-soft) 40%,var(--d-soft) 60%)}
html[data-theme="dark"] .po-skel-card{background:var(--d-card)}
html[data-theme="dark"] .po-sk{background:linear-gradient(90deg,#22272c 25%,#2c3238 40%,#22272c 60%);background-size:300% 100%}
html[data-theme="dark"] .po-skel-card{background:var(--d-card)}
html[data-theme="dark"] body::before{background:rgba(232,96,77,.07)}
html[data-theme="dark"] body::after{border-color:rgba(232,96,77,.26)}
html[data-theme="dark"] .ag2-switch a.is-on{background:var(--ink); color:var(--paper); box-shadow:none}
html[data-theme="dark"] .zone-map .zm{stroke:var(--paper)}
html[data-theme="dark"] .zone-map .zm-ti{fill:#4A3F36} html[data-theme="dark"] .zone-map .zm-leman{fill:#323A45} html[data-theme="dark"] .zone-map .zm-valais{fill:#3A4452} html[data-theme="dark"] .zone-map .zm-arc{fill:#2C333C}
html[data-theme="dark"] .zone-map .zm-nordovest{fill:#3B4440} html[data-theme="dark"] .zone-map .zm-zurigo{fill:#46504B} html[data-theme="dark"] .zone-map .zm-est{fill:#333B37}
html[data-theme="dark"] .zone-map .zm.is-on{fill:var(--red)} html[data-theme="dark"] .zone-map .zm.is-on.is-hover{fill:#C9402A}
html[data-theme="dark"] .zl-it{background:#4A3F36} html[data-theme="dark"] .zl-fr{background:#3A4452} html[data-theme="dark"] .zl-de{background:#46504B}
html[data-theme="dark"] .offer-map path.is-on{fill:var(--red); stroke:var(--red)}
html[data-theme="dark"] .po-celeb-check, html[data-theme="dark"] .po-celeb-check circle{stroke:#F6F4EF}
html[data-theme="dark"] .po-celeb-call{background:rgba(255,255,255,.07)}
html[data-theme="dark"] .consent-badge.on{background:rgba(52,199,89,.16); color:#7DDB98}
/* ===== TEMA SCURO (fine) ===== */

/* V2.3.50: titoli in piu' dietro «+», scelte a pillola che non cambiano larghezza con la spunta, paese del titolo mancante */
.profile-form-section .card-option[hidden]{display:none !important}
.po-more-btn{margin:10px 0 0; padding:8px 2px; border:0; background:none; font:600 14px 'Space Grotesk',sans-serif; color:var(--ink); text-decoration:underline; text-underline-offset:3px; cursor:pointer}
.po-more-btn[hidden]{display:none}
.profile-form-section .po-shell .chip-toggle{padding-left:24px; padding-right:24px; justify-content:center}
.profile-form-section .po-shell .chip-toggle.selected{padding-left:15px; padding-right:15px}
.po-pick.is-missing .po-pick-btn{border-color:var(--red); box-shadow:0 0 0 3px rgba(212,74,52,.12)}
.doc-kind-btns{display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:flex-end}
.po-cvbox .doc-kind-btns{justify-content:flex-start; margin-top:4px}
.po-cvbox .po-lead{margin:0 0 14px}
.po-cvbox .doc-kind-btns .btn-primary, .po-cvbox .doc-kind-btns .btn-secondary{width:auto; flex:0 0 auto}
/* V2.3.50: area personale con piu' aria tra titoli, testi e righe */
.po-tab .po-h3{margin-bottom:14px}
.po-tab .po-h3 + .po-lead, .po-tab .po-h + .po-lead{margin-top:0}
.po-tab .po-head-row + .po-lead{margin-top:4px; margin-bottom:26px}
.po-tab .doc-kind{padding:12px 0}
.po-tab .admin-log-row{padding:12px 0; gap:4px}
.po-tab .po-sumdoc{padding:12px 0}
/* V2.3.52: riquadro «Manca il tuo CV»: due pulsanti alla stessa altezza, «Crea il CV» in evidenza */
.po-cv-actions{display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin-top:6px}
.po-cv-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 18px; border-radius:12px; border:1.5px solid var(--line); background:#fff; color:var(--ink); font:600 15px/1 'Space Grotesk',sans-serif; cursor:pointer; transition:background-color .15s, border-color .15s}
.po-cv-btn:hover{border-color:var(--ink)}
.po-cv-btn.is-main{background:var(--btn, var(--red)); border-color:var(--btn, var(--red)); color:#fff}
.po-cv-btn.is-main:hover{background:var(--btn-hover, var(--red)); border-color:var(--btn-hover, var(--red))}
.po-cv-btn svg{width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
@media (max-width:480px){ .po-cv-btn{flex:1 1 100%} }

/* V2.3.60: moduli del profilo piu' leggibili e piu' ariosi.
   - le domande sempre in testo normale, scuro e un po' piu' grande (prima «Che titolo hai…» era piccola, grigia e monospazio);
   - piu' spazio fra una domanda e l'altra e fra le caselle;
   - «Altri diplomi» e «Un'altra lingua» separati dalla domanda sopra, con un filo e il loro titolo leggibile. */
.profile-form-section .po-shell .form-field > label:first-child{font:600 16px/1.35 'Space Grotesk',sans-serif; color:var(--ink); margin-bottom:12px}
.profile-form-section .po-shell .form-field > label:first-child > span:only-child,
.profile-form-section .po-shell #afcQ{font:inherit; color:inherit; text-transform:none; letter-spacing:inherit}
.profile-form-section .po-shell .form-step .form-field{margin-bottom:32px !important}
.profile-form-section .po-shell .form-step .form-row .form-field{margin-bottom:0 !important}
.profile-form-section .po-shell .card-grid{gap:14px}
.profile-form-section .po-more-btn{margin:16px 0 0; padding:10px 2px}
.profile-form-section .lang-add{margin:24px 0 0; padding:20px 0 0; border-top:1px solid var(--line, #e6e1d4)}
.profile-form-section .lang-add > label{display:block; margin:0 0 10px; font:500 15px/1.35 'IBM Plex Sans',sans-serif; text-transform:none; letter-spacing:0; color:var(--ink)}
.profile-form-section .lang-add-row{display:flex; gap:10px; align-items:stretch}
.profile-form-section .lang-add-row > select, .profile-form-section .lang-add-row > input{flex:1; min-width:0}
.profile-form-section .lang-add-row > .btn-secondary{flex:none; padding:0 20px}
.profile-form-section .dip-list:not(:empty){margin-top:12px}
@media (max-width:520px){ .profile-form-section .lang-add-row{flex-direction:column} .profile-form-section .lang-add-row > .btn-secondary{min-height:48px} }
.profile-form-section .dip-list{list-style:none; padding:0}
.profile-form-section .dip-list li{display:flex; align-items:center; gap:8px; padding:6px 0}

/* V2.3.61: creatore del CV - lingua del CV in alto e referenze */
.cvb-lang{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:10px 0 0}
.cvb-lang > span{font:600 .85rem 'Space Grotesk',sans-serif; color:var(--ink); margin-right:4px}
.cvb-lang-b{min-width:44px; min-height:36px; padding:0 10px; border:1.5px solid var(--line); border-radius:999px; background:var(--paper); color:var(--ink); font:600 .8rem 'Space Grotesk',sans-serif; cursor:pointer}
.cvb-lang-b.is-on{border-color:var(--ink); background:var(--ink); color:#fff}
.cvb-lang > small{flex-basis:100%; color:var(--slate); font-size:.8rem}
.cvb-help{margin:0 0 10px; color:var(--slate); font-size:.9rem}

/* V2.4.4: categorie di carrello elevatore, PLE e gru sotto gli attestati */
.cert-classes{margin-top:14px;}
.cert-class-group{border:0;margin:0 0 14px;padding:0;min-width:0;}
.cert-class-group legend{font-weight:600;font-size:.92rem;margin-bottom:8px;padding:0;}
.cert-class-grid .card-option{min-height:0;}

/* V2.5.0: altre professioni nel passo «Il tuo lavoro» */
.other-profs{margin-top:16px;}
.other-prof-q{display:block;font-weight:600;margin-bottom:8px;}
.other-prof{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:12px;position:relative;}
.other-prof .form-field{margin-bottom:10px;}
.other-prof-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:640px){.other-prof-row{grid-template-columns:1fr;gap:0;}}
.other-prof-x{background:none;border:0;padding:4px 0;color:var(--red,#b42318);font:inherit;font-size:.9rem;cursor:pointer;text-decoration:underline;min-height:44px;}
.other-prof-add{margin-top:4px;}
