.reservation-page{display:grid;gap:3rem}.site-flash{padding:.9rem 1rem;border-left:4px solid var(--c-terra);background:#fff;border-radius:var(--radius);box-shadow:0 10px 35px rgba(46,42,32,.05)}.site-flash--success{border-left-color:var(--c-salvia)}.site-flash--error{border-left-color:var(--c-terra)}.reservation-confirmation{padding:clamp(1.5rem,4vw,2.4rem);border:1px solid var(--c-linea);border-top:4px solid var(--c-salvia);background:#fff;box-shadow:0 20px 55px rgba(46,42,32,.06)}.reservation-confirmation__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.reservation-confirmation__facts div{padding:1rem;background:var(--c-carta);border:1px solid var(--c-linea)}.reservation-confirmation__facts dt{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-soft)}.reservation-confirmation__facts dd{margin:.2rem 0 0;font-family:var(--f-display);font-size:1.35rem}.reservation-confirmation__reference{margin:0;color:var(--c-ink-soft);font-size:.88rem;word-break:break-word}.booking-native{display:grid;gap:1.8rem}.booking-native__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--c-linea)}.booking-native__head .eyebrow{margin-bottom:.45rem}.booking-native__head .section__title{margin-bottom:0}.booking-native__live{margin:0;font-size:.83rem;color:var(--c-ink-soft);white-space:nowrap}.booking-native__live span{display:inline-block;width:.55rem;height:.55rem;margin-right:.45rem;border-radius:50%;background:var(--c-salvia);box-shadow:0 0 0 .22rem rgba(111,101,73,.14)}.reservation-form{position:relative;display:grid;gap:1.25rem}.reservation-step{display:grid;grid-template-columns:2.7rem minmax(0,1fr);gap:1rem;padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--c-linea);background:#fff;box-shadow:0 16px 45px rgba(46,42,32,.04)}.reservation-step[hidden]{display:none}.reservation-step__number{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--c-terra);color:var(--c-carta);font-family:var(--f-display);font-size:1.1rem}.reservation-step__content{min-width:0}.reservation-step__content h3{font-size:1.35rem;margin:0 0 1rem}.reservation-step__hint{margin:-.45rem 0 1.2rem;color:var(--c-ink-soft);font-size:.9rem}.reservation-form__grid{display:grid;gap:1rem;margin-bottom:1rem}.reservation-field{display:grid;gap:.4rem;font-weight:600}.reservation-field>span{font-size:.9rem;letter-spacing:.02em}.reservation-field small{font-weight:400;color:var(--c-ink-soft)}.reservation-field input,.reservation-field select,.reservation-field textarea{width:100%;border:1px solid var(--c-linea);border-radius:var(--radius);background:var(--c-carta);color:var(--c-ink);font:inherit;padding:.8rem .9rem;box-shadow:0 1px 0 rgba(46,42,32,.03)}.reservation-field select{min-height:3.1rem}.reservation-field textarea{resize:vertical;min-height:7rem}.reservation-field input:focus,.reservation-field select:focus,.reservation-field textarea:focus{outline:3px solid rgba(173,69,42,.18);outline-offset:1px;border-color:var(--c-terra)}.reservation-form__availability-button{margin-top:.15rem}.reservation-form__availability-button:disabled,.reservation-form__actions button:disabled{opacity:.62;cursor:wait}.reservation-form__status{min-height:1.6rem;margin:.85rem 0 0;color:var(--c-ink-soft);font-size:.9rem}.reservation-form__status.is-error{color:var(--c-terra);font-weight:700}.reservation-form__status.is-success{color:var(--c-salvia);font-weight:700}.reservation-slots{margin:1.1rem 0 0;padding:0;border:0}.reservation-slots[hidden]{display:none}.reservation-slots legend{font-weight:700;margin-bottom:.7rem}.reservation-slots__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.65rem}.reservation-slot{position:relative;display:block;cursor:pointer}.reservation-slot input{position:absolute;opacity:0;pointer-events:none}.reservation-slot span{display:grid;place-items:center;min-height:3rem;padding:.65rem .8rem;border:1px solid var(--c-linea);border-radius:var(--radius);background:var(--c-carta);font-weight:700;transition:border-color var(--transition),background var(--transition),color var(--transition),transform var(--transition)}.reservation-slot:hover span{border-color:var(--c-terra);transform:translateY(-1px)}.reservation-slot input:focus-visible+span{outline:3px solid rgba(173,69,42,.22);outline-offset:2px}.reservation-slot input:checked+span{background:var(--c-terra);border-color:var(--c-terra);color:var(--c-carta)}.reservation-form__privacy{display:flex;align-items:flex-start;gap:.7rem;margin-top:1rem;font-size:.9rem;color:var(--c-ink-soft)}.reservation-form__privacy input{margin-top:.35rem;flex:0 0 auto}.reservation-form__actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.2rem}.reservation-form__actions span{font-size:.82rem;color:var(--c-ink-soft)}.reservation-form__trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.booking-unavailable{padding:2rem;border:1px solid var(--c-linea);background:#fff}.booking-unavailable__technical{color:var(--c-ink-soft);font-size:.9rem}.button--ghost-dark{border:1px solid var(--c-terra);color:var(--c-terra);background:transparent}.button--ghost-dark:hover{background:var(--c-terra);color:var(--c-carta)}.booking-fallback{padding-top:3rem;border-top:1px solid var(--c-linea)}.booking-fallback__grid{margin-top:1.4rem}.contact-card{padding:1.5rem;border:1px solid var(--c-linea);background:#fff}.contact-card__title{font-size:1.15rem}.contact-card__big{font-family:var(--f-display);font-size:clamp(1.1rem,3vw,1.4rem);overflow-wrap:anywhere}.contact-card__hint{margin:0;color:var(--c-ink-soft);font-size:.9rem}@media(min-width:48em){.reservation-form__grid{grid-template-columns:1fr 1fr}.reservation-form__grid--search{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}}@media(max-width:47.9375em){.booking-native__head{align-items:flex-start;flex-direction:column}.booking-native__live{white-space:normal}.reservation-confirmation__facts{grid-template-columns:1fr}.reservation-step{grid-template-columns:1fr}.reservation-step__number{margin-bottom:.15rem}}@media(max-width:37.5em){.reservation-step{padding:1.1rem}.reservation-slots__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-form__availability-button,.reservation-form__actions .button{width:100%}}
