/* 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;}
/* Biglietto da visita digitale (passo-oltre.ch/luca, /emanuele): pensato per il telefono, dopo la scansione del QR. */
:root{--paper:#FAF9F6; --ink:#1B1F23; --red:#D6402C; --red-text:#C23A26; --slate:#5F676E; --line:#DEDBD3; --cream:#F1EFE8; --fog:#B8BCC0; --card:#fff; --top:#1B1F23; --cand:#1B1F23; --on-dark:#FAF9F6; color-scheme:light;}
/* Tema scuro: segue il telefono, oppure la scelta fatta col pulsante (stessa memoria del sito) */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){--paper:#121417; --ink:#ECE9E1; --slate:#A6AEB5; --line:#2D3339; --cream:#22272C; --fog:#9AA2A9; --red-text:#FF8F7D; --card:#1B1F23; --top:#0D0F11; --cand:#2A3036; color-scheme:dark;} }
:root[data-theme="dark"]{--paper:#121417; --ink:#ECE9E1; --slate:#A6AEB5; --line:#2D3339; --cream:#22272C; --fog:#9AA2A9; --red-text:#FF8F7D; --card:#1B1F23; --top:#0D0F11; --cand:#2A3036; color-scheme:dark;}
*{box-sizing:border-box; margin:0; padding:0;}
html{-webkit-text-size-adjust:100%;}
body{background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', system-ui, sans-serif; -webkit-font-smoothing:antialiased; min-height:100vh;}
a{color:inherit;}
.cc-top{background:var(--top); color:var(--on-dark); position:relative; overflow:hidden; padding:22px 20px 84px;}
.cc-top::before,.cc-top::after{content:""; position:absolute; border:1.5px solid var(--red); border-radius:50%; pointer-events:none;}
.cc-top::before{width:340px; height:340px; right:-170px; top:-190px;}
.cc-top::after{width:200px; height:200px; left:-120px; bottom:-150px;}
.cc-bar{display:flex; justify-content:space-between; align-items:center; position:relative; z-index:1; max-width:460px; margin:0 auto;}
.cc-logo{display:flex; align-items:center; gap:8px; text-decoration:none; font:600 1.05rem 'Space Grotesk', sans-serif; letter-spacing:-.01em;}
.cc-logo svg{width:26px; height:24px;}
.cc-logo .dot{color:var(--red);}
.cc-langs{display:flex; gap:2px; align-items:center;}
.cc-langs .cc-theme{display:grid; place-items:center; margin-right:6px; padding:5px 7px; color:var(--on-dark);}
.cc-theme svg{width:16px; height:16px;}
.cc-langs button{background:none; border:0; color:var(--fog); font:500 .72rem 'IBM Plex Mono', monospace; letter-spacing:.06em; padding:6px 7px; border-radius:4px; cursor:pointer;}
.cc-langs button[aria-pressed="true"]{color:var(--on-dark); background:rgba(255,255,255,.12);}
.cc-card{position:relative; z-index:1; max-width:460px; margin:-64px auto 0; padding:0 16px 28px;}
.cc-head{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px 20px 20px; box-shadow:0 12px 30px -16px rgba(27,31,35,.35); text-align:center;}
.cc-avatar{width:76px; height:76px; border-radius:50%; background:var(--red); color:#fff; display:grid; place-items:center; margin:-60px auto 12px; border:4px solid var(--card); font:700 1.6rem 'Space Grotesk', sans-serif; letter-spacing:.02em;}
.cc-name{font:700 1.7rem/1.1 'Space Grotesk', sans-serif; letter-spacing:-.02em;}
.cc-role{color:var(--slate); margin-top:6px; font-size:.95rem;}
.cc-speaks{display:inline-block; margin-top:10px; font:600 .74rem 'IBM Plex Mono', monospace; letter-spacing:.08em; color:var(--red-text); border:1px solid currentColor; border-radius:999px; padding:4px 12px;}
.cc-save{display:flex; align-items:center; justify-content:center; gap:10px; margin-top:18px; background:var(--red); color:#fff; text-decoration:none; font:700 1.08rem 'IBM Plex Sans', sans-serif; padding:16px; border-radius:12px; box-shadow:0 8px 18px -10px rgba(214,64,44,.9);}
.cc-save:active{transform:translateY(1px);}
.cc-save svg{width:22px; height:22px;}
.cc-save-hint{font-size:.8rem; color:var(--slate); margin-top:8px;}
.cc-actions{display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; margin-top:14px;}
.cc-act{display:flex; flex-direction:column; align-items:center; gap:6px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 6px 12px; text-decoration:none; font-weight:600; font-size:.88rem;}
.cc-act svg{width:26px; height:26px;}
.cc-act.wa svg{color:#1FA855;}
.cc-act.call svg,.cc-act.mail svg{color:var(--ink);}
.cc-act:active{background:var(--cream);}
.cc-details{margin-top:14px; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:4px 16px;}
.cc-details a{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 0; text-decoration:none; font-size:.95rem; border-bottom:1px solid var(--cream);}
.cc-details a:last-child{border-bottom:0;}
.cc-details a > span:last-child{font-weight:600; text-align:right; word-break:break-all; align-self:center;}
/* icone al posto delle scritte «Tel», «@», «Sito»: le stesse dei pulsanti qui sopra */
.cc-ico{display:grid; place-items:center; flex:none; width:34px; height:34px; border-radius:10px; background:var(--cream); color:var(--ink);}
.cc-ico svg{width:18px; height:18px;}
.cc-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.cc-box{margin-top:14px; border-radius:14px; padding:18px;}
.cc-box h2{font:700 1.15rem 'Space Grotesk', sans-serif; margin-bottom:6px;}
.cc-box p{font-size:.92rem; line-height:1.5;}
.cc-cand{background:var(--cand); color:var(--on-dark);}
.cc-cand p{color:var(--fog);}
.cc-btns{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px;}
.cc-btn{flex:1 1 auto; text-align:center; text-decoration:none; font-weight:700; padding:12px 14px; border-radius:10px; font-size:.95rem;}
.cc-btn.primary{background:var(--red); color:#fff;}
.cc-btn.ghost{border:1px solid rgba(255,255,255,.35); color:var(--on-dark);}
.cc-ag{background:var(--cream);}
.cc-btn.dark{background:var(--ink); color:var(--paper);}
.cc-foot{text-align:center; color:var(--slate); font:500 .74rem/1.7 'IBM Plex Mono', monospace; margin-top:22px;}
.cc-foot a{color:var(--red-text);}
@media (min-width:600px){ .cc-top{padding-bottom:96px;} }

/* V2.1.22: bottoni lingua e tema da almeno 44 px, con aria fra l'uno e l'altro */
.cc-langs{gap:4px}
.cc-langs button, .cc-langs .cc-theme{min-width:44px; min-height:44px; display:inline-grid; place-items:center}
.cc-foot a{display:inline-block; padding:12px 4px}
