.booking{--occupied: #dccfb6;--selected: rgb(61 90 69 / .16);--danger: #a3341f;display:grid;gap:clamp(3rem,7vw,5rem)}.booking>*{min-width:0}.booking [hidden]{display:none!important}.cal__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.cal__period{font-family:var(--font-display);font-size:1.3rem;color:var(--green-dark);text-align:center}.cal__nav{flex-shrink:0;width:3rem;height:3rem;border-radius:999px;border:2px solid var(--green);background:transparent;color:var(--green-dark);font-size:1.3rem;line-height:1;cursor:pointer;transition:background .2s ease}.cal__nav:hover:not(:disabled){background:#3d5a451a}.cal__nav:disabled{opacity:.3;cursor:default}.cal__months{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}.cal__status{grid-column:1 / -1;max-width:none;padding:2.5rem 1.5rem;text-align:center;background:var(--white);border-radius:var(--radius);color:var(--ink-soft)}.cal-month{background:var(--white);border-radius:var(--radius);padding:1.4rem 1.2rem 1.2rem;box-shadow:var(--shadow)}.cal-month h3{font-size:1.2rem;margin-bottom:.9rem;text-align:center}.cal-month__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-month__weekday{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--ink-soft);padding-bottom:.3rem}.cal-day{aspect-ratio:1;display:grid;place-items:center;border:2px solid transparent;border-radius:.55rem;background:transparent;color:var(--ink);font:inherit;font-size:.98rem;font-variant-numeric:tabular-nums;line-height:1;padding:0}.cal-day--past{color:#51604f73}.cal-day--occupied{background:var(--occupied);color:var(--ink-soft);text-decoration:line-through}.cal-day--arrives{background:linear-gradient(135deg,transparent 49%,var(--occupied) 51%)}.cal-day--departs{background:linear-gradient(135deg,var(--occupied) 49%,transparent 51%)}.cal-day--pick{border-color:var(--accent);color:var(--accent-dark);font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}.cal-day--pick:hover{background:var(--accent);color:var(--white);transform:scale(1.06)}.cal-day--in-range{background:var(--selected);border-radius:0}.cal-day--range-start,.cal-day--range-end{background:var(--green-dark);border-color:var(--green-dark);color:var(--cream);font-weight:700}.cal__legend{list-style:none;padding:0;margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.6rem 1.75rem;font-size:.98rem;color:var(--ink-soft)}.cal__legend li{display:flex;align-items:center;gap:.6rem}.cal__legend .cal-day{width:1.7rem;flex-shrink:0;font-size:.75rem;cursor:default}.cal__legend .cal-day--free{background:var(--white);border-color:#25342b26}.booking-form__layout{display:grid;gap:2rem;align-items:start}@media (min-width: 62rem){.booking-form__layout{grid-template-columns:minmax(0,1fr) 22rem}.booking-summary{position:sticky;top:6.5rem}}.booking-form__fields{display:grid;gap:1.75rem}.form-card{background:var(--white);border:none;border-radius:var(--radius);padding:1.9rem clamp(1.25rem,4vw,2rem) 2rem;box-shadow:var(--shadow);min-width:0}.form-card>legend,.form-card>h3{float:left;width:100%;font-family:var(--font-display);font-size:1.35rem;font-weight:560;color:var(--green-dark);padding:0;margin-bottom:1.25rem}.form-card>legend+*{clear:both}.form-grid{display:grid;gap:1.1rem 1.25rem;grid-template-columns:repeat(6,minmax(0,1fr))}.form-grid>*{grid-column:1 / -1}@media (min-width: 36rem){.form-grid>.field--half{grid-column:span 3}.form-grid>.field--wide{grid-column:span 4}.form-grid>.field--narrow{grid-column:span 2}}.field label,.field__label{display:block;font-size:.98rem;font-weight:600;color:var(--green-dark);margin-bottom:.35rem}.field__optional{font-weight:400;color:var(--ink-soft)}.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1.05rem;color:var(--ink);background:var(--white);border:1.5px solid rgb(37 52 43 / .35);border-radius:.6rem;padding:.7rem .85rem}.field textarea{min-height:7rem;resize:vertical;line-height:1.5}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.cal-day--pick:focus-visible,.cal__nav:focus-visible,.choice input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.field [aria-invalid]{border-color:var(--danger)}.field__hint{font-size:.92rem;color:var(--ink-soft);margin-top:.35rem;max-width:none}.field__error{font-size:.95rem;font-weight:600;color:var(--danger);margin-top:.35rem;max-width:none}.choices{display:flex;flex-wrap:wrap;gap:.5rem}.choice{position:relative}.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}.choice span{display:block;padding:.6rem 1rem;white-space:nowrap;border:2px solid var(--green);border-radius:999px;font-weight:600;color:var(--green-dark);transition:background .15s ease,color .15s ease}.choice input:checked+span{background:var(--green-dark);border-color:var(--green-dark);color:var(--cream)}.choice input:disabled{cursor:default}.choice input:disabled+span{border-color:#25342b33;color:#51604f8c;text-decoration:line-through}.stay-times{background:var(--cream-dark);border-radius:.8rem;padding:.9rem 1.1rem;font-size:1rem;max-width:none}.field label.check{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;font-size:1rem;font-weight:400;color:var(--ink);margin:0}.check input{width:1.4rem;height:1.4rem;margin-top:.2rem;accent-color:var(--green-dark)}.field--trap{position:absolute;left:-200vw;width:1px;height:1px;overflow:hidden}.booking-summary{background:var(--green-dark);color:var(--cream);border-radius:var(--radius);padding:1.9rem 1.75rem 2rem;box-shadow:var(--shadow-lg)}.booking-summary h3{color:var(--cream);margin-bottom:.9rem}.booking-summary__stay{font-size:1.05rem;line-height:1.55;color:var(--sand)}.booking-summary__stay strong{color:var(--cream)}.price-lines{margin:1.25rem 0;padding-block:1.1rem;border-block:1px solid rgb(250 247 241 / .2);display:grid;gap:.5rem;font-size:1rem}.price-lines div{display:flex;justify-content:space-between;gap:1rem}.price-lines dt{color:var(--sand)}.price-lines dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.price-lines .price-lines__total{margin-top:.4rem;font-family:var(--font-display);font-size:1.45rem}.price-lines .price-lines__total dt{color:var(--cream)}.booking-summary__notes{list-style:none;padding:0;display:grid;gap:.35rem;font-size:.95rem;color:var(--sand);margin-bottom:1.5rem}.booking-summary .btn{width:100%;justify-content:center}.booking-summary .btn:disabled{opacity:.6;cursor:default;transform:none}.booking-summary__legal{font-size:.9rem;line-height:1.55;color:var(--sand);margin-top:1rem}.form-message{max-width:none;background:#fbeae5;border-left:5px solid var(--danger);border-radius:.6rem;padding:.9rem 1.1rem;color:#6f2214;font-weight:600;font-size:1rem}.booking-summary .form-message{margin-top:1rem}.booking-done{background:var(--white);border-radius:var(--radius);border-top:6px solid var(--green);padding:clamp(1.75rem,5vw,3rem);box-shadow:var(--shadow)}.booking-done:focus{outline:none}.booking-done,.field input,.field select,.field textarea{scroll-margin-top:7rem}.booking-done>*+*{margin-top:1.1rem}.booking-done__reference{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .6rem;background:var(--cream-dark);border-radius:.8rem;padding:.7rem 1.2rem;font-size:1.05rem}.booking-done__reference strong{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.04em;color:var(--green-dark);white-space:nowrap}.booking-done dl{display:grid;gap:.5rem 1.5rem;grid-template-columns:max-content 1fr}.booking-done dt{font-weight:600;color:var(--ink-soft)}.booking-done dd{margin:0}.booking-done ol{padding-left:1.4rem;display:grid;gap:.4rem}
