/* Appuntamenti - il tema decide lo stile: colore del sito, font e pulsanti arrivano dal tema in uso */
.ap{--ap-colore:var(--colore-personale,#2c3e50);--ap-su:var(--testo-su-personale,#fff);--ap-linea:rgba(0,0,0,.14);--ap-tenue:rgba(0,0,0,.45);--ap-fondo:rgba(0,0,0,.04);text-align:left}
@supports (color:color-mix(in srgb,red,blue)){.ap{--ap-linea:color-mix(in srgb,currentColor 16%,transparent);--ap-tenue:color-mix(in srgb,currentColor 55%,transparent);--ap-fondo:color-mix(in srgb,currentColor 5%,transparent)}}
.ap *{box-sizing:border-box}
.ap [hidden],.ap .ap-nascosto{display:none!important}
/* respiro: tra titolo, testo e passi, e sotto ogni titolo dei passi (segue lo spazio dei paragrafi di Design) */
.ap{--ap-respiro:clamp(14px,1.6vw,24px);--ap-passo:clamp(30px,var(--spazio-paragrafi,60px)*.7,56px)}
html body .ap .ap-titolo{margin:0 0 var(--ap-respiro)!important}
.ap .ap-sopra{margin:0 0 var(--ap-passo)}
html body .ap .ap-testo p,html body .ap .ap-testo :is(ul,ol,blockquote,table){margin:0 0 1em!important}
html body .ap .ap-testo :is(h2,h3,h4,h5){margin:1.3em 0 .45em!important;line-height:1.25!important}
html body .ap .ap-testo>:first-child{margin-top:0!important}
html body .ap .ap-testo>:last-child{margin-bottom:0!important}
html body .ap .ap-testo :is(ul,ol){padding-left:1.4em!important}
html body .ap .ap-testo ul{list-style:disc!important}
html body .ap .ap-testo ol{list-style:decimal!important}
.ap .ap-testo img{max-width:100%;height:auto}
.ap-passo{margin:0 0 var(--ap-passo)}
html body .ap .ap-tit{display:flex;align-items:center;gap:.6em;margin:0 0 var(--ap-respiro)!important}
.ap-num{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.7em;height:1.7em;border-radius:50%;background:var(--ap-colore);color:var(--ap-su);font-size:.75em;line-height:1}
.ap-uno .ap-p1{display:none}

/* servizi */
.ap-servizi{display:flex;flex-direction:column;border-top:1px solid var(--ap-linea)}
.ap-servizio{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--ap-linea);cursor:pointer;font-weight:400!important;margin:0!important}
.ap-servizio input{flex:none;width:18px;height:18px;margin:0!important;accent-color:var(--ap-colore)}
.ap-servizio-testo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ap-servizio-nome{font-weight:600}
.ap-servizio-desc{font-size:.9em;color:var(--ap-tenue)}
.ap-servizio-dett{flex:none;font-size:.9em;color:var(--ap-tenue);white-space:nowrap}
.ap-servizio:has(input:checked){background:var(--ap-fondo)}
.ap-servizio:has(input:checked) .ap-servizio-nome{color:var(--ap-colore)}

/* calendario: più mesi affiancati (lo script ne mette quanti ne stanno, sul telefono uno) */
.ap-mesi{display:flex;gap:32px;align-items:flex-start}
.ap-mese-box{flex:1 1 0;min-width:0;max-width:440px}
.ap-mese{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.ap-mese-nome{font-weight:600;text-transform:capitalize}
.ap-freccia,.ap-freccia-posto{flex:none;width:38px;height:38px}
.ap-freccia{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ap-linea);color:inherit!important;text-decoration:none!important}
.ap-freccia:hover{border-color:var(--ap-colore)}
.ap-freccia.ap-spento{opacity:.3;pointer-events:none}
.ap-griglia{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ap-gs{text-align:center;font-size:.75em;color:var(--ap-tenue);padding:4px 0}
.ap-giorno{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;font-size:.95em;text-decoration:none!important;color:inherit!important;border:1px solid transparent}
a.ap-giorno{font-weight:700;border-color:var(--ap-linea)}
a.ap-giorno:hover{border-color:var(--ap-colore)}
.ap-giorno.ap-spento{color:var(--ap-tenue)!important;opacity:.55}
.ap-giorno.ap-oggi{text-decoration:underline!important}
.ap-giorno.ap-scelto,.ap-fascia.ap-scelto{background:var(--ap-colore);border-color:var(--ap-colore);color:var(--ap-su)!important}

/* orari */
html body .ap .ap-giorno-scelto{margin:0 0 var(--ap-respiro)!important;font-weight:600}
.ap-orari{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px}
.ap-fascia{display:flex;align-items:center;justify-content:center;padding:10px 4px;border:1px solid var(--ap-linea);text-decoration:none!important;color:inherit!important;font-variant-numeric:tabular-nums}
.ap-fascia:hover{border-color:var(--ap-colore)}
.ap .ap-vuoto,.ap .ap-attesa{color:var(--ap-tenue);margin:.6em 0}

/* dati: classe «Formulario» come Contatto, Ospitalità e Catalogo: campi, casella e pulsante li disegna il tema;
   qui si toglie solo la cornice della sezione (sfondo, ombra, margini), perché la cornice è il passo stesso */
html body .ap .ap-riepilogo{margin:0 0 var(--ap-respiro)!important;font-weight:600}
html body .ap .Formulario.ap-formulario{padding:0 !important;margin:0 !important;box-shadow:none !important;background:none !important;float:none !important;width:auto !important}
.ap .ap-formulario .contactform{width:100% !important;float:none}
.ap .ap-formulario .contactform::after{content:"";display:block;clear:both}
.ap .iss-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ap .iss-form-esca{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* invio: pulsante del tema (.PulsantiSito) come «Aggiungi al calendario» e gli altri addon */
.ap .ap-invio{margin:10px 0 0}
html body .ap .ap-invio .simple-button-plugin{margin:0!important}
.ap .ap-btn-invio.ap-attendi{opacity:.6;cursor:wait;pointer-events:none}
.ap .ap-errore{margin-bottom:14px}

/* conferma e pagina dell'appuntamento */
.ap .ap-riga{margin:1em 0}
.ap-gestione{max-width:640px;margin:0 auto var(--spazio-paragrafi,60px)}
.ap-dati{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 20px;margin:1.2em 0;padding:1em 0;border-top:1px solid var(--ap-linea);border-bottom:1px solid var(--ap-linea)}
.ap-dati dt{font-weight:600}
.ap-dati dd{margin:0}
.ap-stato-annullato{text-decoration:line-through}
.ap .ap-nota{color:var(--ap-tenue)}
.ap-azioni{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:1.5em 0 0}
.ap-azioni .ap-annulla{display:contents;margin:0}
html body .ap .ap-azioni .simple-button-plugin{margin:0!important}
@media(max-width:600px){.ap-dati{grid-template-columns:1fr;gap:2px}.ap-dati dd{margin-bottom:8px}.ap-servizio{flex-wrap:wrap}.ap-servizio-dett{width:100%;padding-left:32px}}

