.booking-section{padding:var(--space-section-y) 0;background:var(--paper)}.booking-shell{max-width:var(--content-max);margin:0 auto}.booking-progress{grid-template-columns:repeat(6,1fr);width:calc(100% - 356px);margin-bottom:22px;display:grid}.booking-progress div{color:var(--muted);flex-direction:column;align-items:center;gap:7px;display:flex;position:relative}.booking-progress div:before{z-index:0;background:var(--line);content:"";width:100%;height:1px;position:absolute;top:15px;left:-50%}.booking-progress div:first-child:before{display:none}.booking-progress span{z-index:1;background:var(--paper);border:1px solid var(--line);border-radius:0;place-items:center;width:31px;height:31px;font-size:.72rem;font-weight:800;display:grid;position:relative}.booking-progress small{font-size:.68rem;font-weight:700}.booking-progress .is-current,.booking-progress .is-done{color:var(--green)}.booking-progress .is-current span{color:#fff;background:var(--pink);border-color:var(--pink);box-shadow:0 0 0 6px #ff33661f}.booking-progress .is-done span{color:#fff;background:var(--green);border-color:var(--green)}.booking-progress .is-done:before,.booking-progress .is-current:before{background:var(--green)}.booking-layout{grid-template-columns:minmax(0,1fr) 324px;align-items:start;gap:20px;display:grid}.booking-layout--success{grid-template-columns:1fr}.booking-card{border:1px solid var(--line);background:#fff;border-radius:0;min-height:540px;padding:clamp(26px,4vw,46px);box-shadow:0 18px 48px #005e4214}.booking-card section>h2{max-width:680px;color:var(--green);margin:14px 0;font-size:clamp(2.2rem,4vw,3.8rem);line-height:1}.booking-intro{max-width:650px;color:var(--muted);margin-bottom:28px;font-size:.98rem}.form-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.form-grid label,.address-field>label{color:var(--green);flex-direction:column;gap:7px;font-size:.78rem;font-weight:800;display:flex}.form-grid input,.form-grid textarea,.address-field input{width:100%;color:var(--charcoal);border:1px solid var(--line);background:#fff;border-radius:0;outline:0;padding:12px 13px;font-weight:500}.form-grid input:focus,.form-grid textarea:focus,.address-field input:focus{border-color:var(--pink);box-shadow:0 0 0 4px #ff33661a}.field-full{grid-column:1/-1}.form-hint{color:var(--muted);margin:22px 0 0;font-size:.82rem}.availability-calendar{border:1px solid var(--line);background:var(--paper);border-radius:0;overflow:hidden}.calendar-toolbar{background:var(--cream);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;display:flex}.calendar-toolbar>div:first-child{gap:2px;display:grid}.calendar-toolbar__label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.67rem;font-weight:800}.calendar-toolbar strong{color:var(--green);font-family:var(--font-display), Georgia, serif;text-transform:capitalize;font-size:1.75rem;font-style:italic}.calendar-toolbar__actions{gap:7px;display:flex}.calendar-toolbar__actions button{width:40px;height:40px;color:var(--green);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;place-items:center;display:grid}.calendar-toolbar__actions button:hover:not(:disabled){color:#fff;border-color:var(--pink);background:var(--pink)}.calendar-toolbar__actions button:disabled{opacity:.32;cursor:not-allowed}.calendar-toolbar__actions svg{width:18px}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{color:var(--muted);text-align:center;text-transform:uppercase;padding:15px 16px 7px;font-size:.66rem;font-weight:800}.calendar-grid{gap:5px;padding:6px 16px 18px;position:relative}.calendar-grid>button,.calendar-grid__empty{aspect-ratio:1.18;min-height:58px}.calendar-grid>button{color:var(--green);cursor:pointer;background:#fff;border:1px solid #0000;border-radius:999px;place-items:center;transition:color .16s,background .16s,border-color .16s,transform .16s;display:grid;position:relative}.calendar-grid>button:hover:not(:disabled){z-index:1;border-color:var(--mint);transform:translateY(-2px)}.calendar-grid>button span{font-size:.9rem;font-weight:800}.calendar-grid>button i{background:var(--mint);border-radius:50%;width:5px;height:5px;position:absolute;bottom:8px}.calendar-grid>button.is-day-unavailable{color:var(--muted);background:#ffffff7a}.calendar-grid>button.is-day-unavailable i{background:var(--pink)}.calendar-grid>button.is-past{color:var(--muted);background:0 0}.calendar-grid>button.is-past i{display:none}.calendar-grid>button:disabled{cursor:not-allowed}.calendar-grid>button.is-in-range{color:var(--green);background:var(--mint-pale);border-color:#d2eadb57}.calendar-grid>button.is-start,.calendar-grid>button.is-end{color:#fff;border-color:var(--green);background:var(--green);box-shadow:0 8px 22px #005e422e}.calendar-grid>button.is-start i,.calendar-grid>button.is-end i{background:var(--mint)}.calendar-loading{color:var(--green);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffffa3;place-items:center;display:grid;position:absolute;inset:0}.calendar-loading svg{width:26px}.calendar-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.calendar-legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:.68rem;display:flex}.calendar-legend span{align-items:center;gap:6px;display:inline-flex}.calendar-legend i{background:var(--mint);border-radius:50%;width:7px;height:7px}.calendar-legend .is-unavailable{background:var(--pink)}.calendar-legend .is-selected{background:var(--green)}.calendar-clear{color:var(--green);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;flex:none;padding:4px;font-size:.72rem;font-weight:800;text-decoration:underline}.calendar-selection{color:var(--green);background:var(--mint-fog);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:15px 20px;display:flex}.calendar-selection span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}.calendar-selection strong{text-align:right}.calendar-selection p{color:var(--muted);margin:0;font-size:.8rem}.calendar-message{color:var(--charcoal);background:#fff;border-top:1px solid #ff33663d;margin:0;padding:12px 20px;font-size:.8rem;font-weight:700}.logistics-grid{margin-top:22px}.address-field{position:relative}.address-panel{background:var(--cream);border:1px solid #005e421a;border-radius:0;padding:clamp(18px,3vw,26px)}.input-with-icon{position:relative}.input-with-icon>svg:first-child{z-index:1;color:var(--green);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-with-icon input{padding-left:44px}.input-with-icon .spin{position:absolute;top:calc(50% - 9px);right:14px}.address-results{z-index:10;border:1px solid var(--line);width:100%;box-shadow:var(--shadow);background:#fff;border-radius:0;padding:7px;position:absolute;top:calc(100% + 6px)}.address-results button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:flex-start;gap:10px;width:100%;padding:12px;display:flex}.address-results button:hover{background:var(--mint-fog)}.address-results button:focus-visible{outline:2px solid var(--pink);outline-offset:-2px;background:var(--mint-fog)}.address-results svg{color:var(--pink);flex:none;margin-top:3px}.address-source{color:var(--muted);margin:9px 0 0;font-size:.76rem}.address-transport-note{color:var(--muted);border-top:1px solid #005e421f;align-items:center;gap:8px;margin:18px 0 0;padding-top:16px;font-size:.8rem;display:flex}.address-transport-note svg{color:var(--green);flex:none}.quantity-block{background:var(--cream);border:1px solid #005e421a;border-radius:0;justify-content:space-between;align-items:center;gap:30px;padding:21px;display:flex}.quantity-block h3{color:var(--green);margin-bottom:3px;font-size:1.3rem}.quantity-block p{color:var(--muted);margin:0}.quantity-control{border:1px solid var(--line);background:#fff;border-radius:0;align-items:center;display:flex;overflow:hidden}.quantity-control button{width:46px;height:46px;color:var(--green);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.4rem}.quantity-control output{text-align:center;min-width:50px;font-size:1.18rem;font-weight:800}.preset-row{flex-wrap:wrap;gap:9px;margin:18px 0 32px;display:flex}.preset-row button{color:var(--green);border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:9px 14px}.preset-row button.is-active{color:#fff;background:var(--green)}.addon-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.addon-card{border:1px solid var(--line);background:#fff;border-radius:0;justify-content:space-between;align-items:center;gap:18px;padding:19px;display:flex}.addon-card span{flex-direction:column;display:flex}.addon-card strong{color:var(--green)}.addon-card small{color:var(--muted)}.addon-card select{border:1px solid var(--line);border-radius:0;min-width:66px;padding:8px}.addon-card input{width:22px;height:22px;accent-color:var(--pink)}.booking-loading{min-height:220px;color:var(--green);justify-content:center;align-items:center;gap:12px;display:flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.availability-confirmation{background:var(--mint-fog);border:1px solid #d2eadb80;border-radius:0;grid-template-columns:auto 1fr;gap:20px;margin-top:28px;padding:clamp(24px,4vw,38px);display:grid}.availability-confirmation.is-unavailable{background:#fff;border-color:#ff336657}.availability-confirmation__icon{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.availability-confirmation.is-unavailable .availability-confirmation__icon{background:var(--pink-dark)}.availability-confirmation__icon svg{width:23px}.availability-confirmation__label{color:var(--green);letter-spacing:.1em;text-transform:uppercase;margin:0 0 5px;font-size:.68rem;font-weight:800}.availability-confirmation h3{color:var(--green);font-family:var(--font-display), Georgia, serif;margin:0 0 8px;font-size:clamp(1.8rem,3vw,2.7rem);font-style:italic;line-height:1.06}.availability-confirmation p:not(.availability-confirmation__label){color:var(--muted)}.availability-selection{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 0;display:grid}.availability-selection>div{background:#ffffff94;border:1px solid #005e421f;border-radius:0;padding:14px}.availability-selection dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:800}.availability-selection dd{color:var(--green);margin:3px 0 0;font-size:.82rem;font-weight:700}.booking-summary{border:1px solid var(--line);background:#fff;border-radius:0;position:sticky;top:92px;overflow:hidden;box-shadow:0 16px 42px #005e4214}.booking-summary__hero{color:#fff;background:var(--green);padding:24px}.booking-summary__hero small,.booking-summary__hero span{display:block}.booking-summary__hero small{color:var(--mint);letter-spacing:.1em;text-transform:uppercase;font-size:.67rem;font-weight:800}.booking-summary__hero strong{font-family:var(--font-display), Georgia, serif;margin:8px 0 5px;font-size:clamp(1.75rem,2.5vw,2.35rem);font-style:italic;font-weight:600;line-height:1.05;display:block}.booking-summary__hero span{color:#ffffffa8;font-size:.74rem}.booking-summary__body{padding:21px 22px 22px}.booking-summary__label{color:var(--green);letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px;font-size:.68rem;font-weight:800}.booking-summary dl{margin:0}.booking-summary dl>div{border-bottom:1px solid var(--line);padding:13px 0}.booking-summary dt{color:var(--green);align-items:center;gap:8px;font-size:.77rem;font-weight:700;display:flex}.booking-summary dd{color:var(--muted);margin:5px 0 0 25px;font-size:.79rem;line-height:1.45}.booking-summary__trust{color:var(--green);background:var(--mint-fog);border-radius:0;align-items:flex-start;gap:9px;margin-top:18px;padding:13px;font-size:.74rem;line-height:1.45;display:flex}.booking-summary__trust svg{flex:none;margin-top:1px}.terms-check{cursor:pointer;align-items:flex-start;gap:11px;margin-top:22px;display:flex}.terms-check input{width:19px;height:19px;accent-color:var(--green);margin-top:3px}.terms-check span{max-width:700px;color:var(--muted);font-size:.84rem}.booking-review{background:var(--mint-pale);border-radius:0;justify-content:space-between;gap:20px;margin-top:24px;padding:18px 20px;display:flex}.booking-review strong{color:var(--green)}.honeypot{position:absolute!important;left:-10000px!important}.booking-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:28px;padding-top:26px;display:flex}.booking-actions .button{cursor:pointer;border:0}.booking-actions .button:disabled{cursor:wait;opacity:.55}.form-error{color:var(--charcoal);border:1px solid var(--pink);background:#fff;border-radius:0;margin:24px 0 0;padding:12px 15px;font-weight:700}.booking-success{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:500px;display:flex}.success-icon{color:#fff;background:var(--mint);width:72px;height:72px;box-shadow:0 0 0 12px var(--mint-pale);border-radius:50%;place-items:center;margin-bottom:26px;display:grid}.booking-success h2{max-width:680px}.booking-success>p:not(.eyebrow){max-width:620px;color:var(--muted)}.success-total{background:var(--mint-pale);border-radius:0;gap:10px;margin:12px 0 24px;padding:13px 18px;display:flex}.success-total strong{color:var(--green)}@media (max-width:1000px){.booking-progress{width:100%}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static}}@media (max-width:760px){.booking-section{padding-top:30px}.booking-progress small{display:none}.form-grid,.addon-grid{grid-template-columns:1fr}.quantity-block{flex-direction:column;align-items:flex-start}.booking-card{border-radius:0;min-height:560px;padding:24px 18px}.booking-card section>h2{font-size:clamp(2rem,11vw,3rem)}.calendar-toolbar{padding:16px}.calendar-toolbar strong{font-size:1.5rem}.calendar-weekdays{padding-inline:8px}.calendar-grid{gap:3px;padding-inline:8px}.calendar-grid>button,.calendar-grid__empty{aspect-ratio:auto;min-height:44px}.calendar-grid>button i{bottom:5px}.calendar-footer,.calendar-selection{flex-direction:column;align-items:flex-start}.calendar-selection strong{text-align:left}.availability-confirmation,.availability-selection{grid-template-columns:1fr}.booking-actions{gap:10px}.booking-actions .button{min-height:46px;padding-inline:16px}.booking-summary__hero,.booking-summary__body{padding:20px}}
