.setup-reservation{--sr-bg:#12100d;--sr-card:#1e1a15;--sr-line:rgba(255,255,255,.12);--sr-text:#fffaf0;--sr-muted:#cfc5b5;--sr-accent:#d8b56d;--sr-danger:#b94a48;--sr-ok:#7dd87d;max-width:960px;margin:0 auto 48px;color:var(--sr-text);font-family:inherit}.setup-reservation *{box-sizing:border-box}.setup-reservation__hero{padding:42px 28px;border-radius:28px;background:radial-gradient(circle at top left,rgba(216,181,109,.24),transparent 32%),linear-gradient(135deg,#17130f,#080706);border:1px solid var(--sr-line);box-shadow:0 20px 60px rgba(0,0,0,.25);margin-bottom:18px}.setup-reservation__eyebrow{margin:0 0 8px;letter-spacing:.16em;color:var(--sr-accent);font-size:12px;font-weight:700}.setup-reservation h2{font-size:clamp(28px,4vw,46px);line-height:1.15;margin:0 0 12px}.setup-reservation__hero p:last-child{margin:0;color:var(--sr-muted);font-size:15px;line-height:1.8}.setup-reservation__panel,.setup-reservation__form{background:rgba(30,26,21,.94);border:1px solid var(--sr-line);border-radius:24px;padding:24px;box-shadow:0 14px 40px rgba(0,0,0,.18)}.setup-reservation__label{display:block;margin-bottom:8px;color:var(--sr-muted);font-weight:700}.setup-reservation__date,.setup-reservation input,.setup-reservation select,.setup-reservation textarea{width:100%;border:1px solid rgba(255,255,255,.16);background:#0d0b09;color:var(--sr-text);border-radius:14px;padding:13px 14px;font-size:16px}.setup-reservation__date{max-width:260px}.setup-reservation__slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.setup-reservation__slot{border:1px solid var(--sr-line);border-radius:18px;background:rgba(255,255,255,.03);overflow:hidden}.setup-reservation__slot button{position:relative;width:100%;min-height:104px;padding:18px;text-align:left;border:0;background:linear-gradient(135deg,rgba(216,181,109,.14),rgba(255,255,255,.03));color:var(--sr-text);cursor:pointer}.setup-reservation__slot button:hover{background:linear-gradient(135deg,rgba(216,181,109,.25),rgba(255,255,255,.06));transform:translateY(-1px)}.setup-reservation__slot button:disabled{cursor:not-allowed;background:rgba(255,255,255,.025);opacity:.58}.setup-reservation__slot-main{display:block;font-size:20px;font-weight:800;margin-bottom:8px}.setup-reservation__slot-sub{display:block;color:var(--sr-muted);font-size:13px}.setup-reservation__badge{position:absolute;right:14px;top:14px;padding:5px 9px;border-radius:999px;background:rgba(125,216,125,.16);color:var(--sr-ok);font-size:12px;font-weight:700}.setup-reservation__slot--reserved .setup-reservation__badge,.setup-reservation__slot--closed .setup-reservation__badge{background:rgba(255,255,255,.08);color:#ddd}.setup-reservation__slot--cutoff .setup-reservation__badge{background:rgba(216,181,109,.14);color:var(--sr-accent)}.setup-reservation__slot-note{padding:0 16px;margin:12px 0 10px;color:var(--sr-muted);font-size:13px;line-height:1.6}.setup-reservation__line{display:inline-block;margin:0 16px 16px;padding:10px 14px;border-radius:999px;background:#06c755;color:#fff!important;text-decoration:none;font-weight:800;font-size:13px}.setup-reservation__form{margin-top:18px}.setup-reservation__selected{margin-bottom:18px;padding:14px 16px;border-radius:16px;background:rgba(216,181,109,.12);border:1px solid rgba(216,181,109,.24);color:var(--sr-text)}.setup-reservation__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.setup-reservation label{display:block;color:var(--sr-muted);font-size:14px;font-weight:700}.setup-reservation label input,.setup-reservation label select,.setup-reservation label textarea{margin-top:8px}.setup-reservation__agree{display:flex!important;align-items:center;gap:9px;margin-top:14px}.setup-reservation__agree input{width:auto;margin:0}.setup-reservation__submit{margin-top:16px;width:100%;border:0;border-radius:16px;background:linear-gradient(135deg,#d8b56d,#f3d99a);color:#1a140c;padding:15px 18px;font-size:16px;font-weight:900;cursor:pointer}.setup-reservation__submit:disabled{opacity:.55;cursor:wait}.setup-reservation__message{margin-top:14px;line-height:1.7}.setup-reservation__message.is-success{color:var(--sr-ok)}.setup-reservation__message.is-error,.setup-reservation__error{color:#ff9a96}.setup-reservation__loading,.setup-reservation__empty{grid-column:1/-1;color:var(--sr-muted);padding:16px}@media(max-width:700px){.setup-reservation{margin:0 0 32px}.setup-reservation__hero,.setup-reservation__panel,.setup-reservation__form{border-radius:20px;padding:20px}.setup-reservation__slots,.setup-reservation__grid{grid-template-columns:1fr}.setup-reservation__date{max-width:none}.setup-reservation__slot button{min-height:98px}.setup-reservation__slot-main{font-size:18px}}


/* Date picker icon visibility on dark backgrounds */
.setup-reservation input[type="date"]::-webkit-calendar-picker-indicator,
.setup-reservation__date::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(2) contrast(1.2);
  opacity: 0.95;
  cursor: pointer;
}

.setup-reservation input[type="date"] {
  color-scheme: dark;
}


/* v0.1.2: hero title reset + visible custom date icon */
.setup-reservation .setup-reservation__title{
  display:block !important;
  margin:0 0 12px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--sr-text) !important;
  font-size:clamp(30px,4.4vw,48px) !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
}
.setup-reservation .setup-reservation__title::before,
.setup-reservation .setup-reservation__title::after{
  content:none !important;
  display:none !important;
}

.setup-reservation .setup-reservation__date{
  position:relative !important;
  color-scheme:dark !important;
  padding-right:54px !important;
  background-color:#0d0b09 !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23d8b56d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 17px center !important;
  background-size:20px 20px !important;
}
.setup-reservation .setup-reservation__date::-webkit-calendar-picker-indicator{
  opacity:0 !important;
  width:48px !important;
  height:100% !important;
  cursor:pointer !important;
}


/* v0.1.3: Strong reset for page theme headings and date icon button */
.setup-reservation .setup-reservation__hero .setup-reservation__title,
.setup-reservation h2.setup-reservation__title{
  display:block !important;
  width:auto !important;
  margin:0 0 14px !important;
  padding:0 !important;
  border:0 !important;
  border-left:0 !important;
  background:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
  color:#fffaf0 !important;
  font-family:inherit !important;
  font-size:clamp(34px,5vw,58px) !important;
  line-height:1.08 !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
}
.setup-reservation h2.setup-reservation__title:before,
.setup-reservation h2.setup-reservation__title:after{
  content:none !important;
  display:none !important;
}
.setup-reservation__date-wrap{
  position:relative !important;
  display:inline-block !important;
  max-width:260px !important;
  width:100% !important;
}
.setup-reservation__date-wrap .setup-reservation__date{
  max-width:none !important;
  width:100% !important;
  padding-right:56px !important;
  color-scheme:dark !important;
}
.setup-reservation__date-wrap .setup-reservation__date::-webkit-calendar-picker-indicator{
  opacity:0 !important;
  width:56px !important;
  height:100% !important;
  cursor:pointer !important;
}
.setup-reservation__date-button{
  position:absolute !important;
  right:8px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:42px !important;
  height:42px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:12px !important;
  background:rgba(216,181,109,.16) !important;
  color:#d8b56d !important;
  font-size:19px !important;
  line-height:1 !important;
  cursor:pointer !important;
  z-index:3 !important;
  box-shadow:none !important;
}
.setup-reservation__date-button:hover{
  background:rgba(216,181,109,.28) !important;
}
@media(max-width:700px){.setup-reservation__date-wrap{max-width:none !important;}}

/* v0.1.4: options and completion screen */
.setup-reservation__options{
  margin:4px 0 18px;
  padding:16px;
  border:1px solid rgba(216,181,109,.20);
  border-radius:18px;
  background:rgba(216,181,109,.07);
}
.setup-reservation__options-title{
  margin:0 0 12px;
  color:#fffaf0;
  font-weight:900;
  letter-spacing:.04em;
}
.setup-reservation__options-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.setup-reservation__option{
  display:flex !important;
  align-items:center;
  gap:10px;
  margin:0;
  padding:12px 13px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(0,0,0,.18);
  color:#fffaf0 !important;
  cursor:pointer;
}
.setup-reservation__option input{
  width:18px !important;
  height:18px !important;
  margin:0 !important;
  accent-color:#d8b56d;
}
.setup-reservation__success{
  margin-top:18px;
}
.setup-reservation__success-card{
  padding:28px;
  border-radius:24px;
  border:1px solid rgba(216,181,109,.32);
  background:radial-gradient(circle at top left,rgba(216,181,109,.20),transparent 36%),rgba(16,13,10,.96);
  box-shadow:0 16px 45px rgba(0,0,0,.26);
}
.setup-reservation__success-kicker{
  margin:0 0 8px;
  color:#d8b56d;
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
}
.setup-reservation__success h3{
  margin:0 0 10px !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  color:#fffaf0 !important;
  font-size:clamp(28px,4vw,44px) !important;
  font-weight:900 !important;
  line-height:1.15 !important;
}
.setup-reservation__success-lead,
.setup-reservation__success-note{
  color:#cfc5b5;
  line-height:1.8;
}
.setup-reservation__success-detail{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
.setup-reservation__success-detail div{
  padding:12px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.09);
}
.setup-reservation__success-detail dt{
  color:#d8b56d;
  font-size:12px;
  font-weight:800;
  margin-bottom:4px;
}
.setup-reservation__success-detail dd{
  margin:0;
  color:#fffaf0;
  font-weight:800;
}
.setup-reservation__success-options{
  margin-top:12px;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(0,0,0,.18);
  color:#fffaf0;
}
.setup-reservation__success-options ul{
  margin:8px 0 0 1.1em;
  padding:0;
  color:#cfc5b5;
}
.setup-reservation__success-options li span{
  color:#d8b56d;
  font-weight:800;
}
@media(max-width:700px){
  .setup-reservation__options-grid,
  .setup-reservation__success-detail{grid-template-columns:1fr;}
  .setup-reservation__success-card{padding:22px;}
}


/* v0.1.6: total price preview before reservation */
.setup-reservation__total{
  margin:4px 0 18px;
  padding:16px;
  border:1px solid rgba(216,181,109,.28);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(216,181,109,.10),rgba(255,255,255,.035));
}
.setup-reservation__total-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:8px 0;
  color:#cfc5b5;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.setup-reservation__total-row strong{
  color:#fffaf0;
  font-size:16px;
}
.setup-reservation__total-row--grand{
  border-bottom:0;
  margin-top:4px;
  padding-top:12px;
  color:#fffaf0;
  font-weight:900;
}
.setup-reservation__total-row--grand strong{
  color:#d8b56d;
  font-size:24px;
  letter-spacing:.02em;
}
.setup-reservation__total-note{
  margin:8px 0 0;
  color:#a99f91;
  font-size:13px;
  line-height:1.7;
}


/* v0.1.8: reservation policy notice before submit */
.setup-reservation__policy{
  margin:14px 0 0;
  padding:14px 16px;
  border:1px solid rgba(216,181,109,.28);
  border-radius:16px;
  background:rgba(216,181,109,.08);
  color:#cfc5b5;
}
.setup-reservation__policy p{
  margin:0 0 8px;
  color:#fffaf0;
  font-weight:900;
  font-size:14px;
}
.setup-reservation__policy ul{
  margin:0;
  padding-left:1.15em;
}
.setup-reservation__policy li{
  margin:5px 0;
  line-height:1.7;
  font-size:13px;
}


/* v0.1.9: hero reservation deadline notice */
.setup-reservation__hero-notice{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.setup-reservation__hero-notice span,
.setup-reservation__hero-line{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(216,181,109,.12);
  border:1px solid rgba(216,181,109,.24);
  color:#f3d99a;
  font-size:13px;
  font-weight:800;
  line-height:1.3;
  text-decoration:none!important;
}
.setup-reservation__hero-notice span:before{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:#f3d99a;
  box-shadow:0 0 10px rgba(243,217,154,.55);
}
.setup-reservation__hero-line{
  background:#06c755;
  border-color:rgba(255,255,255,.16);
  color:#fff!important;
  box-shadow:0 10px 24px rgba(6,199,85,.22);
}
.setup-reservation__hero-line:before{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 0 10px rgba(255,255,255,.65);
}
.setup-reservation__hero-line:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}
@media(max-width:700px){
  .setup-reservation__hero-notice{gap:8px}
  .setup-reservation__hero-notice span,.setup-reservation__hero-line{width:100%;justify-content:flex-start;font-size:12px;line-height:1.5}
}

/* v0.2.1: option quantities */
.setup-reservation__option--qty{
  justify-content:space-between;
  cursor:default;
}
.setup-reservation__option-name{
  line-height:1.45;
  font-weight:800;
}
.setup-reservation__option-qty{
  width:86px !important;
  min-width:86px !important;
  padding:9px 10px !important;
  border-radius:12px !important;
  border:1px solid rgba(216,181,109,.32) !important;
  background:rgba(0,0,0,.36) !important;
  color:#fffaf0 !important;
  font-weight:900 !important;
}
@media(max-width:700px){
  .setup-reservation__option--qty{align-items:flex-start;}
  .setup-reservation__option-qty{width:78px !important;min-width:78px !important;}
}


/* v0.2.2: keep native option dropdown readable */
.setup-reservation select option{
  background:#1b1712 !important;
  color:#fffaf0 !important;
}
.setup-reservation select option:checked,
.setup-reservation select option:hover{
  background:#d8b56d !important;
  color:#1a140c !important;
}
.setup-reservation__option-qty:focus{
  outline:2px solid rgba(87,240,230,.55) !important;
  outline-offset:2px;
}


/* v0.2.3: completion screen position and mobile option layout */
.setup-reservation__success{
  scroll-margin-top:120px;
}
.setup-reservation__success-options ul{
  margin:10px 0 0 !important;
  padding:0 !important;
  list-style:none !important;
}
.setup-reservation__success-options li{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:#cfc5b5;
  line-height:1.55;
}
.setup-reservation__success-options li:last-child{
  border-bottom:0;
}
.setup-reservation__success-option-label{
  min-width:0;
  overflow-wrap:anywhere;
}
.setup-reservation__success-options li strong{
  flex:0 0 auto;
  color:#d8b56d;
  font-weight:900;
  white-space:nowrap;
}
.setup-reservation__success-options li span:not(.setup-reservation__success-option-label){
  color:inherit;
}
@media(max-width:700px){
  .setup-reservation__success{scroll-margin-top:96px;}
  .setup-reservation__success-card{margin-top:18px;}
  .setup-reservation__success-options li{font-size:14px;gap:10px;}
}


/* v0.3.0: deadline notice text-only, keep LINE button prominent */
.setup-reservation__hero-notice span{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
