/* ---------- pagina Contattaci ---------- */
/* fascia iniziale sottile (come Termini e condizioni) */
.chero.legal{padding:44px 0 96px}
.chero.legal h1{font-size:clamp(1.9rem,3.8vw,3rem)}

.ct{position:relative;padding:0 0 100px;z-index:2}
/* tre contatti rapidi */
.qc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:-56px;position:relative;z-index:3}
.qc-card{position:relative;display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px 20px;box-shadow:0 30px 60px -34px rgba(76,47,168,.55);transition:transform .35s var(--ease),box-shadow .35s,border-color .3s;overflow:hidden;isolation:isolate}
.qc-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,var(--purple-xl),var(--orange-xl));opacity:0;transition:opacity .35s}
.qc-card:hover{transform:translateY(-5px);box-shadow:0 40px 70px -34px rgba(76,47,168,.7);border-color:var(--purple-l)}
.qc-card:hover::before{opacity:1}
.qc-card small{display:block;font-size:.64rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--orange)}
.qc-card b{display:block;font-family:var(--display);font-size:1.12rem;font-weight:700;line-height:1.25;letter-spacing:-.005em;overflow-wrap:anywhere}
.qc-card.mail b{font-size:clamp(.82rem,1.15vw,.98rem);overflow-wrap:normal;white-space:nowrap}
.qc-card>div{min-width:0}
.qc-card span{display:block;font-size:.78rem;color:var(--muted);margin-top:1px}
.qc-card .go{margin-left:auto;flex:none;width:34px;height:34px;border-radius:50%;background:var(--purple-xl);color:var(--purple);display:grid;place-items:center;font-style:normal;transition:all .35s var(--ease)}
.qc-card .go svg{width:16px;height:16px}
.qc-card:hover .go{background:var(--purple);color:#fff;transform:rotate(45deg)}
.ic{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;flex:none;color:#fff;transition:transform .4s var(--ease)}
.ic svg{width:23px;height:23px}
.ic.o{background:linear-gradient(135deg,var(--orange),var(--orange-2));box-shadow:0 12px 24px -10px rgba(255,111,57,.75)}
.ic.p{background:linear-gradient(135deg,var(--purple),var(--purple-2));box-shadow:0 12px 24px -10px rgba(108,71,213,.75)}
.qc-card:hover .ic{transform:rotate(-8deg) scale(1.08)}

.ct-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:26px}
.ct-card{position:relative;background:#fff;border-radius:30px;padding:38px 38px 34px;box-shadow:0 40px 80px -40px rgba(76,47,168,.5);min-height:540px;border:1px solid var(--line);overflow:hidden}
.ct-card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--orange),var(--purple-2),var(--orange));background-size:200% 100%;animation:shine 6s linear infinite}
.ct-card h2{font-family:var(--display);font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.15;letter-spacing:-.02em;font-weight:700}
.ct-card h2 em{font-style:normal;color:var(--orange)}
.lead2{color:var(--muted);font-size:.94rem;margin:10px 0 22px;max-width:560px}
.ct-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.ct-topics button{text-align:left;background:var(--purple-xl);border:2px solid transparent;border-radius:18px;padding:14px;cursor:pointer;transition:all .3s var(--ease);display:flex;flex-direction:column;gap:2px;position:relative}
.ct-topics svg{width:24px;height:24px;color:var(--purple);margin-bottom:8px;transition:all .3s var(--ease)}
.ct-topics b{font-family:var(--display);font-size:.92rem;font-weight:600;color:var(--ink);line-height:1.2}
.ct-topics span{font-size:.72rem;color:var(--muted);font-weight:500}
.ct-topics button:hover{background:#f0ebff}
.ct-topics button.on{background:#fff;border-color:var(--purple);box-shadow:0 14px 28px -14px rgba(108,71,213,.75);transform:translateY(-3px)}
.ct-topics button.on svg{color:var(--orange);transform:scale(1.12) rotate(-6deg)}
.ct-topics button.on b{color:var(--purple)}
.fl.area textarea{width:100%;min-height:132px;padding:28px 14px 28px 16px;font:600 .95rem var(--body);color:var(--ink);background:var(--purple-xl);border:2px solid transparent;border-radius:14px;outline:0;resize:vertical;transition:border-color .2s,background .2s,box-shadow .2s}
.fl.area textarea:hover{background:#f0ebff}
.fl.area textarea:focus{border-color:var(--purple);background:#fff;box-shadow:0 0 0 5px rgba(108,71,213,.12)}
.fl.area label{left:16px;top:22px;transform:none}
.fl.area textarea:focus+label,.fl.area textarea:not(:placeholder-shown)+label{top:9px;font-size:.62rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--orange)}
.fl.area .cnt{position:absolute;right:14px;bottom:9px;font-size:.7rem;font-weight:700;color:#a49dbf}
.fl.area .cnt.low{color:var(--orange)}
.fl.area.err textarea{border-color:#ff4d6d;background:#fff5f7;animation:shake .4s}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct-cons{margin:14px 0;max-height:none;overflow:visible}
.ct-err{background:#fff1f3;color:#be123c;border-radius:12px;padding:10px 14px;font-size:.84rem;font-weight:600;margin-bottom:12px}
.ct-err a{text-decoration:underline}
.ct-send{width:100%;padding:17px 24px;font-size:1.02rem}
.ct-send:disabled{opacity:.75;cursor:progress;transform:none}
.spin{width:18px;height:18px;border-radius:50%;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:rot .7s linear infinite}
.ct-ok{text-align:center;padding:70px 10px 30px}
.ct-ok .tick{width:92px;height:92px;margin:0 auto 22px;border-radius:50%;background:linear-gradient(135deg,var(--green),#3ee08a);display:grid;place-items:center;box-shadow:0 22px 44px -16px rgba(0,200,83,.7);animation:pop .7s var(--ease)}
.ct-ok .tick svg{width:44px;height:44px;stroke-dasharray:30;stroke-dashoffset:30;animation:draw .6s var(--ease) .35s forwards}
.ct-ok p{color:var(--muted);margin:10px 0 22px}
.ct-ok .note{font-size:.78rem;background:#fff7ed;color:#7c2d12;border-radius:12px;padding:8px 12px;display:inline-block}
.btn-ghost-o{background:#fff;color:var(--purple);border:2px solid var(--purple-l);padding:11px 20px;font-size:.88rem}
.btn-ghost-o:hover{border-color:var(--purple)}
.swap-enter-active,.swap-leave-active{transition:opacity .3s,transform .35s var(--ease)}
.swap-enter-from{opacity:0;transform:translateY(16px)}
.swap-leave-to{opacity:0;transform:translateY(-10px)}

/* colonna destra */
.ct-side{display:grid;gap:16px}
.hours{background:#fff;border:1px solid var(--line);border-radius:26px;padding:22px 22px 20px;box-shadow:0 30px 60px -40px rgba(76,47,168,.45)}
.hh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.hh h3{font-family:var(--display);font-size:1.1rem;font-weight:700}
.st{white-space:nowrap;font:800 .62rem var(--body);letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:99px;display:inline-flex;align-items:center;gap:6px}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st.on{background:#dcfce7;color:#15803d}
.st.on::before{animation:ping2 1.8s infinite}
.st.off{background:#f1eef8;color:#6b6585}
@keyframes ping2{0%{box-shadow:0 0 0 0 rgba(21,128,61,.5)}100%{box-shadow:0 0 0 7px rgba(21,128,61,0)}}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:14px}
.day{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.68rem;font-weight:700;color:#a49dbf}
.day i{width:100%;height:46px;border-radius:12px;background:#f1eef8;position:relative;overflow:hidden}
.day.open i{background:linear-gradient(180deg,var(--purple-2),var(--purple))}
.day.open i::after{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:rgba(255,255,255,.12)}
.day.open{color:var(--muted)}
.day.today{color:var(--orange)}
.day.today i{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--orange);animation:todayp 2.4s ease-in-out infinite}
.day.today.open i{background:linear-gradient(180deg,var(--orange-2),var(--orange))}
@keyframes todayp{50%{transform:translateY(-3px)}}
.hours p{color:var(--muted);font-size:.84rem;line-height:1.7}
.hours p b{color:var(--ink);font-weight:700}
.soc{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:18px 20px;border-radius:24px;background:linear-gradient(135deg,var(--purple),var(--purple-d));color:#fff;position:relative;overflow:hidden;isolation:isolate}
.soc::after{content:"";position:absolute;width:160px;height:160px;right:-50px;top:-70px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,111,57,.5),transparent);z-index:-1}
.soc b{display:block;font-family:var(--display);font-size:1rem}
.soc span{font-size:.76rem;color:#d9cfff}
.sl{display:flex;gap:10px}
.sl a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);transition:all .3s var(--ease)}
.sl a svg{width:20px;height:20px}
.sl a:hover{background:var(--orange);border-color:var(--orange);transform:translateY(-4px) rotate(-6deg)}
.mini-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-radius:24px;background:var(--orange-xl);border:1px solid #ffd9c9;transition:all .3s var(--ease)}
.mini-cta b{display:block;font-family:var(--display);font-size:1.02rem}
.mini-cta span{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.mini-cta em{width:40px;height:40px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--orange),var(--orange-2));color:#fff;display:grid;place-items:center;box-shadow:0 10px 22px -10px rgba(255,111,57,.8);transition:transform .3s var(--ease)}
.mini-cta em svg{width:18px;height:18px}
.mini-cta:hover{transform:translateY(-3px);box-shadow:0 20px 40px -26px rgba(255,111,57,.7)}
.mini-cta:hover em{transform:translateX(4px)}

/* mappa */
.ct-map{position:relative;margin-top:30px;height:460px;border-radius:32px;overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 80px -44px rgba(76,47,168,.6);background:var(--purple-xl);isolation:isolate}
.ct-map .map{position:absolute;inset:0;z-index:0;background:#eee9f8;font-family:var(--body)}
.ct-map .leaflet-tile-pane{filter:saturate(.5) hue-rotate(212deg) brightness(1.05) contrast(.93)}
.ct-map .leaflet-container{font-family:var(--body)}
.ct-map::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(108,71,213,.12),inset 0 -80px 80px -60px rgba(76,47,168,.18)}
.leaflet-control-zoom{border:0!important;box-shadow:0 14px 30px -12px rgba(76,47,168,.6)!important;border-radius:16px!important;overflow:hidden}
.leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important;font-size:20px!important;color:var(--purple)!important;background:#fff!important;border:0!important;transition:background .2s}
.leaflet-control-zoom a:hover{background:var(--purple-xl)!important}
.leaflet-control-zoom a+a{border-top:1px solid var(--line)!important}
.leaflet-control-attribution{background:rgba(255,255,255,.85)!important;border-radius:10px 0 0 0;font-size:.64rem!important;color:var(--muted)!important}
.leaflet-control-attribution a{color:var(--purple)!important}
.mk-wrap{background:none!important;border:0!important}
.mk{position:relative;width:64px;height:64px;display:grid;place-items:center}
.mk i{position:relative;z-index:2;width:44px;height:44px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:linear-gradient(135deg,var(--orange),var(--orange-2));display:grid;place-items:center;box-shadow:0 14px 26px -8px rgba(255,111,57,.9);border:3px solid #fff}
.mk i svg{width:20px;height:20px;transform:rotate(45deg)}
.mk .pulse{position:absolute;inset:8px;border-radius:50%;background:rgba(108,71,213,.35);animation:mkp 2.4s ease-out infinite;z-index:1}
.mk .pulse.p2{animation-delay:1.2s}
@keyframes mkp{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.map-hint{position:absolute;z-index:4;left:50%;bottom:20px;transform:translateX(-50%);background:rgba(25,21,48,.82);color:#fff;font-size:.78rem;font-weight:600;padding:9px 16px;border-radius:99px;backdrop-filter:blur(6px);pointer-events:none;transition:opacity .4s,transform .4s var(--ease);white-space:nowrap}
.map-hint.hide{opacity:0;transform:translateX(-50%) translateY(10px)}
.map-card{position:absolute;z-index:5;left:24px;top:24px;width:min(300px,calc(100% - 48px));background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.8);border-radius:24px;padding:20px 22px;box-shadow:0 30px 60px -24px rgba(76,47,168,.7);animation:mIn .8s var(--ease)}
.map-card small{display:block;font-size:.64rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--orange)}
.map-card b{display:block;font-family:var(--display);font-size:1.2rem;font-weight:700;margin-top:2px}
.map-card p{color:var(--muted);font-size:.88rem;line-height:1.55;margin:6px 0 14px}
.map-card .acts{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.map-card .btn-sm{padding:10px 18px;font-size:.84rem}
.map-card .lk{font-size:.78rem;font-weight:700;color:var(--purple);text-decoration:underline;text-underline-offset:3px}

@media(max-width:1000px){
  .qc{grid-template-columns:1fr;margin-top:-40px;gap:12px}
  .ct-grid{grid-template-columns:1fr}
  .ct-side{grid-template-columns:1fr 1fr}
  .mini-cta,.soc{grid-column:auto}
  .hours{grid-column:1/-1}
}
@media(max-width:700px){
  .ct-card{padding:28px 20px 24px;border-radius:24px}
  .ct-topics{grid-template-columns:1fr}
  .ct-topics button{flex-direction:row;align-items:center;gap:12px;flex-wrap:wrap}
  .ct-topics svg{margin:0}
  .ct-topics span{width:100%;padding-left:36px;margin-top:-6px}
  .ct-side{grid-template-columns:1fr}
  .ct-map{height:520px;border-radius:24px}
  .map-card{left:12px;right:12px;top:auto;bottom:12px;width:auto;padding:16px 18px}
  .map-hint{bottom:auto;top:14px}
}
