.mobile-nav button{display:block;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font-size:.85rem;text-align:left}
.contact-secondary{display:block;margin-top:23px;padding:5px 0;border:0;border-bottom:1px solid #d4d7d0;background:none;color:#e9ece4;font-size:.83rem;font-weight:700;transition:color .2s,transform .2s}
.contact-secondary:hover{color:#e9b59f;transform:translateY(-2px)}
.booking-dialog{position:fixed;width:min(96vw,1120px);max-width:96vw;max-height:min(94vh,920px);padding:0;border:0;border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 35px 95px rgba(0,0,0,.38);overflow:auto}
.booking-dialog::backdrop{background:rgba(20,27,20,.76);backdrop-filter:blur(7px)}
.booking-dialog[open]{display:grid;grid-template-columns:minmax(250px,.38fr) minmax(0,.62fr)}
.booking-visual{position:relative;min-height:100%;overflow:hidden;background:#74816f;color:#fff}
.booking-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(19,24,18,.83),transparent 56%)}
.booking-visual img{width:100%;height:100%;object-fit:cover}
.booking-visual>div{position:absolute;z-index:1;right:30px;bottom:36px;left:30px;display:flex;flex-direction:column;gap:13px}
.booking-visual strong{max-width:310px;font-family:var(--display);font-size:clamp(1.7rem,2.8vw,2.9rem);font-weight:600;letter-spacing:-.06em;line-height:1.12}
.booking-visual>div>span:last-child{font-size:.76rem;color:#e5e7dd}
.booking-content{padding:clamp(24px,3.3vw,49px)}
.booking-top{display:flex;align-items:start;justify-content:space-between;gap:18px}
.booking-top .close-button{margin-top:-10px;margin-right:-8px}
.booking-top h3{margin-top:12px;font-size:clamp(2rem,3vw,3rem)}
.booking-top p{margin-top:9px;color:#77746c;font-size:.84rem}
.booking-status{min-height:39px;margin-top:23px;padding:10px 14px;border:1px solid #e3dfd5;border-radius:7px;background:#f5f1e9;color:#726e65;font-size:.74rem;line-height:1.45}
.booking-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.booking-nav button{display:grid;place-items:center;width:36px;height:36px;flex:none;border:1px solid #d5d0c6;border-radius:50%;background:#fff;color:var(--ink);font-size:1.1rem;transition:transform .2s,box-shadow .2s,background .2s}
.booking-nav button:not(:disabled):hover{transform:translateY(-2px);background:#eee7dd;box-shadow:0 4px 0 rgba(63,55,43,.12)}
.booking-nav button:disabled{opacity:.35;cursor:default}
.booking-nav>div{font-family:var(--display);font-size:.78rem;font-weight:700;text-align:center}
.booking-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:18px}
.booking-month h3{margin-bottom:12px;font-size:.83rem;font-weight:700;text-align:center}
.booking-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.booking-weekday{display:grid;place-items:center;height:27px;color:#8a857c;font-size:.63rem;font-weight:700;text-transform:uppercase}
.booking-blank{height:35px}
.booking-day{display:grid;place-items:center;width:100%;height:35px;padding:0;border:1px solid transparent;border-radius:6px;background:#eff2e9;color:#344836;font-size:.76rem;font-weight:700;transition:transform .17s,box-shadow .17s,background .17s}
.booking-day:not(:disabled):hover{position:relative;z-index:1;transform:translateY(-3px);background:#d8e2d3;box-shadow:0 4px 0 rgba(58,78,54,.13)}
.booking-day.is-busy{background:#ead9d1;color:#a05d49;text-decoration:line-through;text-decoration-thickness:1px}
.booking-day.is-past{background:transparent;color:#b9b4aa;text-decoration:none}
.booking-day.is-range{border-radius:0;background:#ead1bf;color:#8a4935}
.booking-day.is-endpoint{background:var(--terra);color:#fff;box-shadow:0 4px 0 #8f4733}
.booking-day:disabled{cursor:default}
.booking-day:focus-visible,.booking-nav button:focus-visible,.booking-dialog button:focus-visible{outline:3px solid #597e6a;outline-offset:2px}
.booking-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:18px;padding-top:16px;border-top:1px solid #e2ddd3;color:#746e65;font-size:.7rem}
.booking-legend span{display:inline-flex;align-items:center;gap:7px}
.booking-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
.legend-free{background:#d8e2d3}.legend-busy{background:#ead9d1}.legend-selected{background:var(--terra)}
.booking-selection{display:flex;align-items:stretch;gap:8px;margin-top:22px}
.booking-selection>div{flex:1;min-width:0;padding:11px 13px;border:1px solid #ded8ce;border-radius:6px;background:#fff}
.booking-selection span{display:block;color:#968e83;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.booking-selection strong{display:block;margin-top:4px;font-size:.79rem;white-space:nowrap}
.booking-selection>button{align-self:center;padding:8px;border:0;background:none;color:var(--terra);font-size:.7rem;font-weight:700}
.booking-actions{display:flex;align-items:center;gap:18px;margin-top:16px}
.booking-actions .button{min-height:49px;gap:10px;padding-inline:16px;font-size:.73rem}
.booking-actions .button:disabled{opacity:.48;cursor:default;box-shadow:none;transform:none}
.booking-actions p{max-width:230px;color:#888178;font-size:.65rem;line-height:1.45}
@media(max-width:900px){.booking-dialog[open]{grid-template-columns:29% 71%}.booking-visual>div{left:20px;right:20px}.booking-months{gap:13px}.booking-content{padding:25px}}
@media(max-width:700px){.booking-dialog{width:min(100vw - 18px,560px);max-height:94svh}.booking-dialog[open]{display:block}.booking-visual{display:none}.booking-content{padding:25px 20px 28px}.booking-top h3{font-size:2.5rem}.booking-months{grid-template-columns:1fr}.booking-month-2{display:none}.booking-month h3{font-size:.95rem}.booking-day{height:43px;font-size:.86rem}.booking-blank{height:43px}.booking-nav>div{font-size:.7rem}.booking-actions{display:block}.booking-actions p{max-width:none;margin-top:12px}.booking-actions .button{width:100%}}
@media(max-width:400px){.booking-content{padding-inline:14px}.booking-selection>div{padding-inline:9px}.booking-selection strong{font-size:.72rem}.booking-legend{gap:8px 12px;font-size:.64rem}}
