.booking{display:grid;gap:clamp(28px,4vw,44px);margin-top:32px}.booking .day{display:grid;gap:10px}.booking .day>h3{margin:0 0 4px;font-size:1.15rem;padding-bottom:10px;border-bottom:2px solid var(--sun)}.booking .day>h3:first-letter{text-transform:uppercase}.booking .slot{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:18px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.booking .slot.open>.left .btn{display:none}.booking .slot>.form{grid-column:1 / -1}.booking .time{font-family:var(--font-display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;line-height:1.1;min-width:4.5ch}.booking .time small{display:block;font-family:var(--font-body);font-weight:400;font-size:.8rem;color:var(--muted);margin-top:2px}.booking .what{min-width:0}.booking .what strong{display:block;font-family:var(--font-display);font-weight:600;font-size:1.05rem}.booking .what span{display:block;font-size:.9rem;color:var(--muted)}.booking .left{font-size:.85rem;color:var(--muted);text-align:right;line-height:1.4}.booking .left.full{color:#b3261e;font-weight:600}.booking .slot .btn{padding:.6em 1.3em;font-size:.92rem;margin-top:6px}.booking .form{margin-top:16px;padding-top:18px;border-top:1px solid var(--line)}.booking .form .row{display:grid;gap:14px;grid-template-columns:1fr 1fr}.booking .form select{font:inherit;padding:.85em 1em;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink)}.booking .form .terms{font-size:.9rem;color:var(--muted);margin:0}.booking .packs{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),360px))}.booking .pack{display:grid;gap:6px;align-content:start;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.booking .pack strong{font-family:var(--font-display);font-weight:600;font-size:1.15rem}.booking .pack .price{font-family:var(--font-display);font-weight:600;font-size:2rem;letter-spacing:-.02em;line-height:1.1}.booking .pack span{font-size:.9rem;color:var(--muted)}.booking .pack .btn{justify-self:start;margin-top:10px}.booking .pack.open>.btn{display:none}.booking .pack .save{color:var(--forest);font-weight:600}.booking .offers{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.booking .offer{display:flex;flex-direction:column;gap:8px;padding:26px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.booking .offer.sel{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest),inset 0 4px 0 var(--sun)}.booking .offer strong{font-family:var(--font-display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;line-height:1.15}.booking .offer .price{font-family:var(--font-display);font-weight:600;font-size:2.1rem;letter-spacing:-.02em;line-height:1.1}.booking .offer>span{font-size:.9rem;color:var(--muted)}.booking .offer .desc{margin-top:8px;padding-top:16px;border-top:1px solid var(--line);font-size:.98rem}.booking .offer .desc strong{font-family:inherit;font-size:inherit;letter-spacing:0}.booking .offer .desc li+li{margin-top:.3em}.booking .offer .desc li::marker{color:var(--forest)}.booking .offer .btn{align-self:flex-start;margin-top:auto}.booking .offer>:nth-last-child(2){margin-bottom:14px}.booking .change{justify-self:start;padding:.6em 1.3em;font-size:.92rem}.booking .step{padding-top:clamp(24px,3vw,36px);border-top:1px solid var(--line)}.booking .space{margin:0}.booking .space a{color:var(--forest);font-weight:500}.booking .notice{padding:18px 22px;border-radius:var(--radius);background:var(--paper)}.booking .cal{align-self:start;width:100%;max-width:420px;padding:20px 20px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.booking .cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.booking .cal-head span{font-family:var(--font-display);font-weight:600;font-size:1.2rem;letter-spacing:-.01em}.booking .cal-head span:first-letter{text-transform:uppercase}.booking .cal-head button{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--forest);font:inherit;font-size:1.3rem;line-height:1;cursor:pointer}.booking .cal-head button:hover,.booking .cal-head button:focus-visible{border-color:var(--forest);background:var(--cream)}.booking .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.booking .cal-grid .wd{text-align:center;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:2px 0 6px}.booking .cal-grid .day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--muted);opacity:.55;font:inherit;font-size:.95rem;cursor:default}.booking .cal-grid .day.open{opacity:1;color:var(--forest);font-weight:600;background:var(--cream);cursor:pointer}.booking .cal-grid .day.open:hover,.booking .cal-grid .day.open:focus-visible{border-color:var(--forest)}.booking .cal-grid .day.today{border-color:var(--line)}.booking .cal-grid .day.sel{background:var(--forest);border-color:var(--forest);color:#fff}.booking .cal-grid .day i{display:block;width:14px;height:3px;border-radius:2px;background:var(--sun)}.booking .times{display:grid;gap:10px;align-content:start}.booking .times>h3{margin:0 0 4px;font-size:1.15rem;padding-bottom:10px;border-bottom:2px solid var(--sun)}.booking .times>h3:first-letter{text-transform:uppercase}@media(min-width:820px){.booking:has(>.cal){grid-template-columns:minmax(0,380px) minmax(0,1fr);column-gap:clamp(24px,3vw,40px)}.booking:has(>.cal)>:not(.cal,.times){grid-column:1 / -1}.booking .step:has(>.cal){grid-template-columns:minmax(0,380px) minmax(0,1fr);column-gap:clamp(24px,3vw,40px)}.booking .step:has(>.cal)>:not(.cal,.times){grid-column:1 / -1}}@media(max-width:560px){.booking .form .row{grid-template-columns:1fr}.booking .slot{grid-template-columns:auto 1fr;padding:16px 18px}.booking .slot .left{grid-column:2;justify-self:end}}.booking .left,.booking .what span,.booking .time small,.booking .pack span,.booking .offer>span,.booking .terms,.booking .cal-grid .wd{opacity:1}.booking .day>h3,.booking .times>h3,.booking .cal-head{text-transform:none}.booking .notice{border:0;border-left:4px solid var(--sun)}.booking .notice.err{border-left-color:#b3261e}.booking .cal-grid .day.today{box-shadow:none}.booking .times{margin-top:0}
