.ninja-party-reservation__header{padding:clamp(3rem,7vw,5.5rem) var(--gutter);background:#fff}.ninja-party-reservation__header .container{max-width:68rem}.ninja-party-reservation__header h1{max-width:52rem;margin:.35rem 0 .8rem;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.06}.ninja-party-reservation__header p:last-child{max-width:46rem;margin:0;font-size:1.08rem;line-height:1.65}
.ninja-party-booking{max-width:68rem;margin:0 auto;color:var(--color-ink,#2e2521)}
.ninja-party-booking__back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:1rem;color:#a51224;font-weight:700;text-decoration:none}
.ninja-party-booking__back:hover{text-decoration:underline}.ninja-party-booking__back:focus-visible{outline:3px solid #1e5f8a;outline-offset:3px}
.ninja-party-booking__intro{max-width:48rem;margin-bottom:clamp(1.5rem,4vw,3rem)}
.ninja-party-booking__intro h2{font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.08;margin:.5rem 0 1rem}
.ninja-party-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;list-style:none;padding:0;margin:0 0 2rem;counter-reset:party-step}
.ninja-party-progress li{counter-increment:party-step;padding:.75rem;border-radius:14px;background:#f5eee3;color:#756861;font-weight:700;text-align:center}
.ninja-party-progress li::before{content:counter(party-step) ". ";}
.ninja-party-progress li[aria-current="step"]{background:#fff0d7;color:#a51224;box-shadow:inset 0 0 0 2px #f0a340}
.ninja-party-form{background:#fff;border-radius:30px;padding:clamp(1.25rem,4vw,3rem);box-shadow:0 18px 55px rgba(46,37,33,.1);scroll-margin-top:120px}
.ninja-party-step{border:0;padding:0;margin:0}
.ninja-party-step[hidden]{display:none}
.ninja-party-step legend{font-family:var(--font-heading,"Poppins",sans-serif);font-size:clamp(1.4rem,3vw,2rem);font-weight:700;margin-bottom:1.25rem}
.ninja-party-options{display:grid;gap:.75rem;margin-bottom:1.5rem}
.ninja-party-options--locations{grid-template-columns:repeat(2,minmax(0,1fr))}
.ninja-party-options--times{grid-template-columns:repeat(2,minmax(0,1fr))}
.ninja-party-option{position:relative;display:flex;align-items:stretch;cursor:pointer}
.ninja-party-option input{position:absolute;inline-size:1px;block-size:1px;opacity:.01}
.ninja-party-option span{display:flex;flex:1;flex-direction:column;gap:.25rem;min-height:72px;padding:1rem 1.1rem;border:2px solid #ded3ca;border-radius:16px;background:#fff;transition:border-color .15s,background .15s,transform .15s}
.ninja-party-option small{font-size:.9rem;line-height:1.4;color:#675c56}
.ninja-party-option input:checked+span{border-color:#e36f36;background:#fff4df;transform:translateY(-2px)}
.ninja-party-option input:focus-visible+span{outline:3px solid #1e5f8a;outline-offset:3px}
.ninja-party-schedule{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(17rem,.8fr);gap:clamp(1rem,3vw,2rem);align-items:start}
.ninja-party-calendar,.ninja-party-times{min-width:0;padding:clamp(1rem,2vw,1.4rem);border:1px solid #e6ddd5;border-radius:20px;background:#fff}
.ninja-party-calendar__toolbar{display:grid;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;gap:.5rem;margin-bottom:1rem}
.ninja-party-calendar__toolbar h3{margin:0;text-align:center;text-transform:capitalize;font-size:1.25rem}
.ninja-party-calendar__nav{width:2.75rem;height:2.75rem;border:1px solid #d8ccc2;border-radius:50%;background:#fff;color:#a51224;font-size:1.7rem;line-height:1;cursor:pointer}
.ninja-party-calendar__nav:hover:not(:disabled){background:#fff4df}.ninja-party-calendar__nav:disabled{opacity:.35;cursor:not-allowed}
.ninja-party-calendar__nav:focus-visible,.ninja-party-calendar-day:focus-visible{outline:3px solid #1e5f8a;outline-offset:2px}
.ninja-party-calendar__weekdays,.ninja-party-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.ninja-party-calendar__weekdays{margin-bottom:.35rem;color:#756861;font-size:.75rem;font-weight:700;text-align:center;text-transform:uppercase}
.ninja-party-calendar-day{display:flex;min-width:0;aspect-ratio:1;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.25rem;border:1px solid transparent;border-radius:12px;background:#f6f1ea;color:#82756d}
.ninja-party-calendar-day strong{font-size:1rem}.ninja-party-calendar-day span{font-size:.62rem;line-height:1.1}
.ninja-party-calendar-day.is-available{border-color:#f0a340;background:#fff4df;color:#76202b;cursor:pointer;box-shadow:inset 0 -4px 0 #f0a340}
.ninja-party-calendar-day.is-available:hover{background:#ffe7bd;transform:translateY(-1px)}
.ninja-party-calendar-day.is-available[aria-pressed="true"]{border-color:#a51224;background:#ffe0a8;box-shadow:inset 0 0 0 2px #a51224}
.ninja-party-calendar-day.is-unavailable{opacity:.5}.ninja-party-calendar-day.is-empty{background:transparent}
.ninja-party-calendar__legend{display:flex;align-items:center;gap:.5rem;margin:1rem 0 0;color:#675c56;font-size:.85rem}
.ninja-party-calendar__legend span{width:.8rem;height:.8rem;border-radius:50%;background:#f0a340}
.ninja-party-times h3{margin:.1rem 0 .4rem;font-size:1.15rem}.ninja-party-times>p{margin:0 0 1rem;color:#675c56}
.ninja-party-times h3:focus{outline:none}.ninja-party-times h3:focus-visible{outline:3px solid #1e5f8a;outline-offset:3px}
.ninja-party-options--times{grid-template-columns:1fr;margin-bottom:0}
.ninja-party-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1.5rem}
.ninja-party-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;align-items:stretch}
.ninja-party-details .ninja-party-count{display:flex;min-width:0;flex-direction:column;align-items:stretch;justify-content:space-between;gap:.5rem;margin:0;font-weight:700}
.ninja-party-count>span{display:block;line-height:1.5}
.ninja-party-count select{width:100%;min-width:0;min-height:56px;padding:.75rem 1rem;border:1px solid #b7aaa1;border-radius:10px;background:#fff;color:inherit;font:inherit}
.ninja-party-count select:focus-visible{outline:3px solid #1e5f8a;outline-offset:3px}
.ninja-party-summary{margin:2rem 0 1.5rem;padding:1.5rem;border:1px solid var(--color-line,#e6ddd5);border-radius:16px;background:#fff}
.ninja-party-summary__title{margin:0 0 1rem;font-family:var(--font-display,"Poppins",sans-serif);font-size:1.15rem;font-weight:600;line-height:1.4}
.ninja-party-summary dl{margin:0}
.ninja-party-summary__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:baseline;gap:.5rem 1.5rem;padding:.65rem 0;border-bottom:1px solid var(--color-line,#e6ddd5)}
.ninja-party-summary dt{color:var(--color-ink-soft,#5e5a57);font-weight:600}.ninja-party-summary dd{margin:0;text-align:right;overflow-wrap:anywhere}
.ninja-party-summary__row--total{margin-top:.5rem;padding:1rem 0 0;border-bottom:0}
.ninja-party-summary__row--total dt{color:inherit;font-weight:800}
.ninja-party-summary .ninja-party-summary__price{font-size:1.65rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--color-red,#a51224)}
.ninja-party-claim-note{max-width:44rem;font-size:.95rem;line-height:1.55}
.ninja-party-error{padding:1rem 1.1rem;margin:0 0 1.25rem;border-radius:12px;background:#fde7e9;color:#951224;font-weight:700}
.ninja-party-error[hidden]{display:none}
.ninja-party-noscript,.ninja-party-unavailable{padding:1rem 1.25rem;border-radius:16px;background:#fff4df}
.ninja-party-checkout-claim{padding:1rem 1.25rem;border-radius:12px;background:#e8f6e6;border-left:4px solid #3d792e;margin:0 auto 1.5rem;max-width:75rem}
.ninja-party-checkout-claim p{margin:.35rem 0 0}
@media(max-width:767px){.ninja-party-form{scroll-margin-top:100px}}
@media(max-width:900px){
  .ninja-party-schedule{grid-template-columns:1fr}
}
@media(max-width:600px){
  .ninja-party-progress{grid-template-columns:repeat(3,1fr);font-size:.75rem}
  .ninja-party-progress li{padding:.55rem .25rem}.ninja-party-progress li::before{display:block}
  .ninja-party-options--locations,.ninja-party-options--times{grid-template-columns:1fr}
  .ninja-party-calendar,.ninja-party-times{padding:.8rem}
  .ninja-party-calendar__weekdays,.ninja-party-calendar__grid{gap:.2rem}
  .ninja-party-calendar-day{border-radius:9px}.ninja-party-calendar-day strong{font-size:.9rem}.ninja-party-calendar-day span{font-size:.52rem}
  .ninja-party-details{grid-template-columns:1fr}
  .ninja-party-summary{padding:1rem}
  .ninja-party-summary__row{gap:.5rem 1rem}
  .ninja-party-actions{align-items:stretch;flex-direction:column-reverse}
  .ninja-party-actions .button{width:100%;text-align:center}
}
