/* Filo Blu: identità fittizia, stessi colori e ritagli della demo di riferimento. */
.brand-dot{color:var(--white)}.site-footer small{grid-column:1/-1;max-width:1000px;font-size:.7rem;line-height:1.7;padding-top:1rem;border-top:1px solid #ffffff35}.site-footer{padding-bottom:3rem}.demo-note{max-width:calc(100vw - 1rem);font-size:.55rem}
.hero-contact a{font-size:.85rem}.hero-contact p{max-width:250px}.appointment-ribbon strong{font-size:clamp(2.8rem,11vw,7rem)}.contact-cut strong{overflow-wrap:anywhere}.contact-cut b{max-width:100%;width:auto}.contact-cut.email-cut strong,.contact-cut.place-cut strong{font-size:clamp(2rem,4.5vw,4.5rem)}
.service-menu{display:grid;gap:3rem;padding:5rem 1.5rem;background:var(--butter);color:var(--ink)}.service-menu h2,.booking-intro h1,.booking-cut h2,.appointment-card h2{font-family:'Arial Black',Arial,sans-serif;letter-spacing:-.065em;line-height:.92;font-weight:900;text-transform:uppercase;margin:1rem 0}
.service-menu h2{font-size:clamp(3.4rem,7vw,7rem)}.service-menu>div>p,.booking-intro>p:first-child,.booking-cut>p:first-child{text-transform:uppercase;font-size:.75rem;font-weight:700;letter-spacing:.08em}
.service-menu__list a{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-top:2px solid var(--ink);padding:1.4rem 0;text-decoration:none}.service-menu__list a:last-child{border-bottom:2px solid var(--ink)}.service-menu__list strong{display:block;font-family:Arial,sans-serif;font-size:1.3rem}.service-menu__list small{display:block;margin-top:.5rem;max-width:470px}.service-menu__list b{display:flex;gap:.8rem;align-items:center;white-space:nowrap;font-size:.8rem}.service-menu__list a:hover strong{text-decoration:underline}
.booking-intro{padding:4rem 1.5rem 5rem;background:var(--cobalt);color:var(--white)}.booking-intro h1{font-size:clamp(3.1rem,8.2vw,8rem)}.booking-intro em{color:var(--butter);font-style:normal}.booking-intro>p:last-child{max-width:600px;font-size:1rem;margin-top:2rem}
.booking-layout{display:grid;gap:3rem;padding:4rem 1.5rem 5rem;background:var(--ink);align-items:start}.booking-aside{min-width:0}.booking-cut{background:var(--butter);color:var(--ink);padding:2.3rem 1.8rem;transform:rotate(-2deg)}.booking-cut h2{font-size:clamp(2.8rem,4.5vw,5rem);margin:1.6rem 0 2rem}.booking-cut small{display:block;line-height:1.7;font-size:.75rem}.booking-aside img{width:100%;height:auto;margin-top:2rem;clip-path:polygon(0 4%,100% 0,96% 100%,3% 96%)}
.appointment-card{min-width:0;background:var(--paper);padding:2rem 1.25rem;border-top:8px solid var(--cobalt)}.appointment-card h2{font-size:clamp(2rem,3vw,3.2rem)}.appointment-card>p{font-size:.8rem;margin:1.4rem 0 2rem}.appointment-card label,.field-label{display:block;font-weight:700;font-size:.85rem;margin:1.6rem 0 .7rem}.booking-hint{font-size:.73rem;line-height:1.65;margin:1rem 0 1.4rem}.selected-day{border-left:4px solid var(--cobalt);padding:.8rem;background:var(--white);font-size:.8rem}
.appointment-card select{width:100%;padding:1rem;border:2px solid var(--ink);font:inherit;background:var(--white);font-size:.9rem}.appointment-card button{font:inherit;cursor:pointer}.appointment-card button:disabled{opacity:.45;cursor:not-allowed}.appointment-card :focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}
.booking-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;min-height:58px;margin-top:1.8rem;padding:1rem;background:var(--cobalt);color:var(--white);border:2px solid var(--cobalt);font-weight:700!important;font-size:.85rem!important;box-shadow:5px 5px 0 var(--butter)}.booking-result{padding:1.3rem;margin:1.8rem 0 0;background:var(--butter);border:2px solid var(--ink);font-size:.85rem}.booking-error{font-size:.8rem;font-weight:700;border-left:4px solid var(--cobalt);padding:.8rem;background:var(--white)}
.studio-select{position:relative;min-width:0}.studio-select:focus-within{z-index:10}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:.8rem;text-align:left;width:100%;min-height:58px;padding:.9rem;border:2px solid var(--ink);background:var(--white);font-size:.9rem!important;line-height:1.4}.select-trigger .icon{transition:transform .18s}.select-trigger[aria-expanded=true]{background:var(--butter)}.select-trigger[aria-expanded=true] .icon{transform:rotate(180deg)}.select-options{position:absolute;z-index:12;top:calc(100% + 5px);left:0;right:0;max-height:270px;overflow:auto;overscroll-behavior:contain;margin:0;padding:5px;background:var(--paper);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--cobalt);list-style:none;animation:studio-select-in .18s ease-out both}.select-options[hidden]{display:none}.select-options [role=option]{min-height:46px;padding:.8rem;font-size:.8rem;cursor:pointer}.select-options [aria-selected=true]{background:var(--butter)}.select-options .is-focused{background:var(--cobalt);color:var(--white)}
@keyframes studio-select-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.salon-calendar{padding:1rem .6rem;background:var(--white);border:2px solid var(--ink)}.calendar-toolbar{display:grid;grid-template-columns:40px 1fr 40px;gap:8px;align-items:center;margin-bottom:1.2rem}.calendar-toolbar strong{text-align:center;text-transform:capitalize;font-size:1rem}.calendar-nav{padding:0;min-height:40px;border:0;background:var(--cobalt);color:var(--white);font-size:1.8rem!important;line-height:1}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{text-align:center;font-weight:700;font-size:.7rem;margin-bottom:.6rem}.calendar-day{min-height:42px;padding:0;min-width:0;border:2px solid transparent;background:var(--paper);color:var(--ink);font-size:.85rem!important}.calendar-day:disabled{background:transparent;text-decoration:line-through}.calendar-day:not(:disabled):hover{background:var(--butter)}.calendar-day.is-selected{background:var(--cobalt);color:var(--white)}.calendar-day[aria-current=date]{border-color:var(--cobalt)}
@media(min-width:641px) and (max-width:980px){.masthead{grid-template-columns:auto 1fr;gap:1rem}.masthead>p{display:none}.masthead nav{justify-self:end}}
@media(min-width:800px){.service-menu{grid-template-columns:.8fr 1.2fr;gap:4rem;padding:6rem 5vw}.booking-layout{grid-template-columns:.8fr 1.2fr;gap:5vw;padding:5rem 5vw}.appointment-card{padding:2.8rem 2rem}.booking-intro{padding:5rem 5vw 6rem}}
@media(max-width:420px){.service-menu__list a{gap:.6rem}.service-menu__list strong{font-size:1.05rem}.service-menu__list small{font-size:.7rem}.service-menu__list b{font-size:.7rem;gap:.4rem}.booking-layout{padding:2rem .8rem 4rem}.appointment-card{padding:1.7rem 1rem}.calendar-toolbar strong{font-size:.86rem}.calendar-day{font-size:.75rem!important}.hero-contact a{font-size:.75rem}.contact-cut.email-cut strong,.contact-cut.place-cut strong{font-size:1.8rem}}

/* I ritagli finali seguono l’altezza del contenuto, senza invadere nota e footer. */
.contact-collage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));height:auto;gap:clamp(2rem,4vw,4rem);padding:4rem clamp(1rem,4vw,4rem) 5rem}
.contact-collage .contact-cut{position:relative;inset:auto;width:auto;max-width:100%;min-width:0;min-height:0;margin:0;padding:clamp(3rem,4vw,4.5rem) clamp(2rem,5vw,5rem)}
.contact-collage .email-cut{grid-column:1/10}.contact-collage .place-cut{grid-column:4/-1}.contact-collage .consultation-cut{grid-column:3/12}
.contact-collage .contact-cut strong{font-size:clamp(1.8rem,4.2vw,4rem);overflow-wrap:normal;word-break:normal;line-height:1}
.contact-collage .contact-cut b{width:100%;font-size:clamp(.75rem,1.1vw,.9rem);line-height:1.5}
.contact-note{margin:0;padding:2rem clamp(1rem,4vw,4rem)}
.site-footer>a:not(.brand-name){display:flex;align-items:center;justify-content:flex-end;gap:.65rem;min-height:2.75rem;justify-self:end;font-weight:700;font-size:.85rem;text-decoration:none}
.site-footer>a:not(.brand-name):hover{text-decoration:underline}
@media(max-width:640px){.contact-collage{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding:2rem 1rem 3rem}.contact-collage .contact-cut{grid-column:1;padding:3rem 1.5rem}.contact-collage .contact-cut strong{font-size:clamp(1.65rem,7.5vw,2.6rem)}}

/* Navigazione essenziale durante la prenotazione. */
.masthead--booking{grid-template-columns:auto 1fr;gap:.5rem;min-height:4.75rem;padding-block:.65rem}
.masthead--booking nav{grid-column:auto;display:flex;justify-self:end;border-top:0}
.masthead--booking nav .nav-back{min-height:2.75rem;padding:.5rem 0;border:0;gap:.5rem;font-size:clamp(.66rem,2.4vw,.82rem);white-space:nowrap}
.masthead--booking .nav-back .icon{transform:rotate(180deg)}
