/* Reservation preview only. Existing booking state and handlers are unchanged. */
body.site-quiet.quiet-nemaru-reservation {
  --reservation-width:1120px;
  --reservation-gutter:32px;
  --reservation-rule:#d7d5ca;
}
body.site-quiet.quiet-nemaru-reservation .booking-page-head {
  max-width:var(--reservation-width); padding:24px var(--reservation-gutter);
  border-bottom:0; gap:24px;
}
body.site-quiet.quiet-nemaru-reservation .booking-page-brand span { display:block; margin:2px 0 0; font-size:.75rem; }
body.site-quiet.quiet-nemaru-reservation .booking-page-back { font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .page {
  max-width:var(--reservation-width); margin:0 auto; padding:44px var(--reservation-gutter) 56px;
}
body.site-quiet.quiet-nemaru-reservation .section-title { font-size:2rem; letter-spacing:0; line-height:1.6; }
body.site-quiet.quiet-nemaru-reservation .section-sub { margin:8px 0 24px; font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .benefit-strip {
  display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 24px;
  margin:0 0 36px; padding:16px 0; border-top:0; border-bottom:1px solid var(--reservation-rule);
  font-size:.8125rem; line-height:1.9;
}
body.site-quiet.quiet-nemaru-reservation .benefit-strip__head { margin:0; flex-shrink:0; font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .benefit-strip__items { flex:1 1 580px; }
body.site-quiet.quiet-nemaru-reservation .step-bar {
  display:flex; justify-content:flex-start; gap:12px; margin:0 0 36px; padding:0;
}
body.site-quiet.quiet-nemaru-reservation .step-item { font-size:.8125rem; gap:8px; }
body.site-quiet.quiet-nemaru-reservation .step-num { width:28px; height:28px; font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .step-arrow { margin:0 6px; }
body.site-quiet.quiet-nemaru-reservation .grid {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:48px; row-gap:0;
}
/* Before a plan is selected, use the same two columns for plan and date. */
body.site-quiet.quiet-nemaru-reservation .grid:has(> :only-child) { grid-template-columns:minmax(0,1fr); justify-content:stretch; }
body.site-quiet.quiet-nemaru-reservation .grid > :only-child {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:48px; align-items:start;
}
body.site-quiet.quiet-nemaru-reservation .panel { min-width:0; padding:24px 0 0; margin-bottom:32px; }
body.site-quiet.quiet-nemaru-reservation .panel-title {
  margin-bottom:20px; font-family:var(--font-sans); font-size:1rem; line-height:1.7;
  display:flex; align-items:center; gap:12px;
}
/* The heading and selectable cards already explain this action. */
body.site-quiet.quiet-nemaru-reservation #plan-panel > .panel-title + div:not(.plan-card) { display:none; }
body.site-quiet.quiet-nemaru-reservation .plan-card {
  display:grid; grid-template-columns:38px minmax(0,1fr); gap:14px; align-items:start;
  padding:20px; margin-bottom:16px; border:1px solid #b9bcaf; background:transparent;
}
body.site-quiet.quiet-nemaru-reservation .plan-card-img {
  width:38px; min-width:0; height:38px; min-height:0; object-fit:cover;
}
body.site-quiet.quiet-nemaru-reservation div.plan-card-img {
  background:transparent!important;
}
body.site-quiet.quiet-nemaru-reservation .plan-card-body { min-width:0; padding:0; }
body.site-quiet.quiet-nemaru-reservation .plan-card-title { font-family:var(--font-sans); font-size:1rem; font-weight:500; line-height:1.7; }
body.site-quiet.quiet-nemaru-reservation .plan-card-price { margin:6px 0 10px; font-size:.875rem; }
body.site-quiet.quiet-nemaru-reservation .plan-card-desc { font-size:.8125rem; line-height:1.9; color:var(--text-mid); }
body.site-quiet.quiet-nemaru-reservation .plan-card-check { margin-top:12px; font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .plan-card.active { background:#eff1e9; }
body.site-quiet.quiet-nemaru-reservation .availability-notice { padding:20px; font-size:.875rem; line-height:1.9; }
body.site-quiet.quiet-nemaru-reservation .availability-notice strong { font-size:.9375rem; }
body.site-quiet.quiet-nemaru-reservation .availability-notice p { margin:10px 0 16px; }
body.site-quiet.quiet-nemaru-reservation .availability-phone { font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .calendar-welcome { margin:12px 0 20px; padding:0; background:none; border:0; font-size:.8125rem; line-height:1.9; }
body.site-quiet.quiet-nemaru-reservation .info-hint { background:#eff1e9; border-radius:0; padding:12px 14px; font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .cal-nav { margin:20px 0 12px; }
body.site-quiet.quiet-nemaru-reservation .cal-grid { gap:4px; }
body.site-quiet.quiet-nemaru-reservation .cal-day { min-height:50px; }
body.site-quiet.quiet-nemaru-reservation .cal-hint { font-size:.8125rem; gap:8px 16px; }
body.site-quiet.quiet-nemaru-reservation .frow { margin-bottom:24px; }
body.site-quiet.quiet-nemaru-reservation .flabel { margin-bottom:8px; font-size:.875rem; }
body.site-quiet.quiet-nemaru-reservation .finline { gap:6px; }
body.site-quiet.quiet-nemaru-reservation .finput { min-width:0; min-height:48px; padding:12px; }
body.site-quiet.quiet-nemaru-reservation :is(.cosleep-box,.optbox,.notes-hints) {
  padding:18px; background:#f0eee6; border:1px solid var(--reservation-rule);
}
body.site-quiet.quiet-nemaru-reservation .optbox.err-box { border-color:var(--red); }
body.site-quiet.quiet-nemaru-reservation .terms-box { margin-top:28px; }
body.site-quiet.quiet-nemaru-reservation .terms-title { font-size:.9375rem; }
body.site-quiet.quiet-nemaru-reservation .terms-body { line-height:1.9; }
body.site-quiet.quiet-nemaru-reservation .submit-reassure { padding:20px 0; font-size:.8125rem; line-height:1.9; }
body.site-quiet.quiet-nemaru-reservation .submit-note { font-size:.8125rem; }
/* Secondary references remain available after the main reservation flow. */
body.site-quiet.quiet-nemaru-reservation .reserve-prebook {
  max-width:var(--reservation-width); margin:0 auto 56px; padding:24px var(--reservation-gutter) 0;
}
body.site-quiet.quiet-nemaru-reservation .reserve-prebook__intro {
  justify-content:space-between; gap:12px 24px; font-size:.8125rem; line-height:1.9;
}
body.site-quiet.quiet-nemaru-reservation .reserve-amenity-details { margin-top:20px; }
body.site-quiet.quiet-nemaru-reservation .reserve-amenity-details > summary { justify-content:space-between; font-size:.8125rem; }
body.site-quiet.quiet-nemaru-reservation .reserve-amenity-content { padding:24px 0; }
body.site-quiet.quiet-nemaru-reservation .reserve-amenity-cols { gap:32px; }
body.site-quiet.quiet-nemaru-reservation .reserve-amenity-col { padding:0; }
/* Match the quiet pages: unfilled strokes with rounded ends, always visible. */
body.site-quiet.quiet-nemaru-reservation .reservation-icon {
  display:inline-block; width:20px; height:20px; flex:0 0 auto;
  margin-inline-end:6px; vertical-align:-.22em; pointer-events:none;
}
body.site-quiet.quiet-nemaru-reservation .panel-title > .reservation-icon {
  width:28px; height:28px; margin:0; color:var(--green);
}
body.site-quiet.quiet-nemaru-reservation .plan-card-img > .reservation-icon {
  width:100%; height:100%; margin:0; color:var(--green);
}
body.site-quiet.quiet-nemaru-reservation .step-num .reservation-icon {
  width:18px; height:18px; margin:0;
}
body.site-quiet.quiet-nemaru-reservation .done-circle > .reservation-icon {
  width:36px; height:36px; margin:0;
}
body.site-quiet.quiet-nemaru-reservation .cal-day > .reservation-icon {
  width:22px; height:22px; margin:0;
}
body.site-quiet.quiet-nemaru-reservation .cal-hint .reservation-icon { width:18px; height:18px; }
body.site-quiet.quiet-nemaru-reservation .reservation-sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
@media(max-width:1000px) {
  body.site-quiet.quiet-nemaru-reservation { --reservation-width:760px; --reservation-gutter:28px; }
  body.site-quiet.quiet-nemaru-reservation .grid,
  body.site-quiet.quiet-nemaru-reservation .grid > :only-child { grid-template-columns:minmax(0,1fr); gap:0; }
}
@media(max-width:600px) {
  body.site-quiet.quiet-nemaru-reservation { --reservation-gutter:20px; }
  body.site-quiet.quiet-nemaru-reservation .booking-page-head { padding-block:20px; flex-wrap:nowrap; gap:16px; }
  body.site-quiet.quiet-nemaru-reservation .booking-page-brand { font-size:1.25rem; }
  body.site-quiet.quiet-nemaru-reservation .booking-page-back { font-size:.75rem; }
  body.site-quiet.quiet-nemaru-reservation .page { padding-top:28px; padding-bottom:32px; }
  body.site-quiet.quiet-nemaru-reservation .section-title { font-size:1.75rem; }
  body.site-quiet.quiet-nemaru-reservation .benefit-strip { margin-bottom:24px; gap:8px; }
  body.site-quiet.quiet-nemaru-reservation .step-bar { gap:6px; margin-bottom:24px; flex-wrap:nowrap; }
  body.site-quiet.quiet-nemaru-reservation .step-item { font-size:.6875rem; gap:4px; white-space:normal; }
  body.site-quiet.quiet-nemaru-reservation .step-num { width:24px; height:24px; font-size:.75rem; flex-shrink:0; }
  body.site-quiet.quiet-nemaru-reservation .step-arrow { margin:0; }
  body.site-quiet.quiet-nemaru-reservation .plan-card { padding:18px 16px; grid-template-columns:28px minmax(0,1fr); gap:12px; }
  body.site-quiet.quiet-nemaru-reservation .plan-card-img { width:28px; height:32px; }
  body.site-quiet.quiet-nemaru-reservation .cal-grid { gap:3px; }
  body.site-quiet.quiet-nemaru-reservation .terms-box { padding:18px 16px; }
}
