*{box-sizing:border-box;margin:0;padding:0}:root{--ink:#171717;--muted:#777;--line:#e8e8e8;--soft:#f5f5f5}html{scroll-behavior:smooth}body{background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;overflow-x:hidden}button,input,textarea{font:inherit}button{color:inherit}.header{height:94px;width:min(100%,1280px);margin:auto;padding:30px 6%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:30;background:#fff}.brand{border:0;background:none;text-align:left;cursor:pointer;letter-spacing:.22em;font-size:21px;font-weight:600}.brand small{display:block;font-size:8px;font-weight:400;letter-spacing:.5em;margin-top:4px}.header-menu{border:0;background:none;font-size:12px;letter-spacing:.12em;cursor:pointer;padding:10px 0;border-bottom:1px solid var(--ink)}.screen{display:none}.screen.active{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.hero-screen{position:relative;width:min(100%,1280px);min-height:calc(100vh - 94px);margin:auto;padding-top:45px;overflow:hidden}.hero-copy{position:absolute;top:50px;left:7%;z-index:3;font-family:serif;font-size:18px;letter-spacing:.16em;transform:rotate(-5deg)}.hero-visual{position:relative;width:min(58vw,610px);height:min(58vw,610px);margin:55px auto 0}.hero-shape{position:absolute;inset:0;overflow:hidden;border-radius:50% 50% 14% 50%/50% 50% 14% 50%;background:#eef0f2}.photo-placeholder{width:100%;height:100%;display:grid;place-items:center;color:#aaa;font-size:10px;letter-spacing:.35em}.reserve-circle{position:absolute;right:-42px;bottom:70px;z-index:5;width:138px;height:138px;border:0;border-radius:50%;background:var(--ink);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .2s}.reserve-circle:hover{transform:scale(1.04)}.reserve-mark{font:italic 28px Georgia,serif;margin-bottom:5px}.reserve-circle strong{font-size:14px;font-weight:500;letter-spacing:.12em}.reserve-circle small{font-size:8px;letter-spacing:.16em;opacity:.65;margin-top:4px}.hero-word{position:absolute;right:-55px;bottom:-15px;z-index:-1;color:#eee;font-size:clamp(100px,16vw,220px);font-weight:700;letter-spacing:-.05em;white-space:nowrap}.booking-screen{min-height:calc(100vh - 94px);border-top:1px solid #f2f2f2}.booking-wrap{width:min(100% - 48px,880px);margin:auto;padding:72px 0 110px}.booking-wrap.narrow{max-width:650px}.step-head{display:flex;align-items:baseline;gap:14px;margin-bottom:28px}.step-no{font-size:12px;border:1px solid var(--ink);border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.step-en{font-size:12px;letter-spacing:.25em;font-weight:600}.booking-wrap h1{font-size:clamp(28px,4vw,45px);font-weight:500;letter-spacing:.04em;line-height:1.45}.subcopy{margin-top:16px;color:var(--muted);font-size:13px;line-height:1.8}.menu-list,.option-list{margin-top:44px;border-top:1px solid var(--ink)}.menu-card,.option-card{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:26px 6px;display:grid;grid-template-columns:1fr auto;gap:18px;text-align:left;cursor:pointer;align-items:center}.menu-card:hover,.option-card:hover{background:#fafafa}.menu-en,.option-en{font-size:19px;letter-spacing:.11em;font-weight:600}.menu-ja,.option-ja{display:block;margin-top:7px;font-size:13px;color:#555}.menu-meta,.option-meta{text-align:right}.menu-price,.option-price{display:block;font-size:15px}.menu-time,.option-time{display:block;margin-top:5px;font-size:10px;color:#999}.menu-arrow{font-size:20px;margin-left:18px}.back{border:0;background:none;color:#777;font-size:11px;margin-bottom:40px;cursor:pointer}.selected-base{margin-top:32px;padding:18px 20px;background:#f7f7f7;border-left:3px solid var(--ink);font-size:12px;line-height:1.8}.option-card{position:relative;padding-right:12px}.option-check{width:29px;height:29px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;margin-left:18px;font-size:16px}.option-card.selected{background:#171717;color:#fff;border-color:#171717}.option-card.selected .option-ja,.option-card.selected .option-time{color:#ccc}.option-card.selected .option-check{background:#fff;color:#171717;border-color:#fff}.primary-button,.secondary-button{width:100%;min-height:62px;margin-top:32px;border:1px solid var(--ink);cursor:pointer;padding:0 22px;letter-spacing:.08em}.primary-button{background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:space-between}.secondary-button{background:#fff}.skip-button{width:100%;border:0;background:#fff;color:#888;padding:20px;cursor:pointer;font-size:11px;text-decoration:underline;text-underline-offset:5px}.booking-summary{margin-top:32px;padding:20px;border:1px solid #ddd;font-size:12px;line-height:1.9}.summary-total{font-weight:600;margin-top:5px}.date-nav{margin-top:42px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:16px}.date-nav button{width:40px;height:40px;border:0;background:#fff;cursor:pointer;font-size:18px}.date-nav strong{font-size:13px}.date-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:18px}.date-button{border:1px solid var(--line);background:#fff;padding:15px 4px;cursor:pointer;min-height:78px}.date-button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.date-button .dow{display:block;font-size:9px;opacity:.65}.date-button .day{display:block;font-size:22px;margin-top:7px}.time-title{font-size:13px;letter-spacing:.15em;margin-top:45px}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.time-button{border:1px solid var(--ink);background:#fff;min-height:52px;cursor:pointer;font-size:14px}.time-button:hover{background:#171717;color:#fff}.time-button.disabled{border-color:#eee;color:#ccc;cursor:not-allowed;text-decoration:line-through}.availability-note{font-size:10px;color:#999;line-height:1.7;margin-top:20px}.field{display:block;margin-top:32px}.field>span{display:block;font-size:12px;margin-bottom:10px;font-weight:600}.field em{font-style:normal;font-size:9px;background:#171717;color:#fff;padding:3px 5px;margin-left:6px}.field i{font-style:normal;font-size:9px;color:#999;margin-left:6px}.field input,.field textarea{width:100%;border:0;border-bottom:1px solid #bbb;border-radius:0;background:#fff;padding:14px 2px;font-size:16px;outline:none}.field textarea{border:1px solid #ddd;padding:14px;resize:vertical}.form-error{min-height:20px;color:#a33;font-size:11px;margin-top:18px}.confirm-card{margin-top:42px;border-top:1px solid var(--ink)}.confirm-row{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:20px 4px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.confirm-row dt{color:#888;font-size:11px}.complete-screen{text-align:center}.complete-mark{width:76px;height:76px;border-radius:50%;background:#171717;color:#fff;display:grid;place-items:center;margin:0 auto 24px;font:italic 30px Georgia,serif}.complete-en{font-size:10px;letter-spacing:.35em;margin-bottom:16px}.complete-screen .confirm-card{text-align:left}
@media(max-width:700px){.header{height:76px;padding:23px 24px}.brand{font-size:18px}.header-menu{font-size:10px}.hero-screen{min-height:calc(100svh - 76px);padding-top:25px}.hero-copy{top:38px;left:7%;font-size:13px}.hero-visual{width:82vw;height:82vw;margin-top:70px}.reserve-circle{right:-6px;bottom:22px;width:108px;height:108px}.reserve-mark{font-size:21px}.reserve-circle strong{font-size:11px}.hero-word{right:-28px;bottom:20px;font-size:92px}.booking-screen{min-height:calc(100svh - 76px)}.booking-wrap{width:calc(100% - 44px);padding:52px 0 90px}.booking-wrap h1{font-size:29px}.menu-list,.option-list{margin-top:34px}.menu-card,.option-card{padding:23px 3px}.menu-en,.option-en{font-size:16px}.date-strip{gap:5px}.date-button{min-height:70px;padding:12px 2px}.date-button .day{font-size:19px}.time-grid{grid-template-columns:repeat(3,1fr);gap:8px}.confirm-row{grid-template-columns:90px 1fr;gap:12px}}
.header-actions{display:flex;align-items:center;gap:24px}.header-admin{border:0;background:none;color:#999;font-size:10px;letter-spacing:.12em;cursor:pointer}.confirm-row small{color:#999;letter-spacing:.08em}@media(max-width:700px){.header-actions{gap:14px}.header-admin{font-size:9px}}

/* v4: supplied hero photo only — existing layout remains unchanged */
.photo-placeholder img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  filter:grayscale(100%);
}

.reservation-actions{margin-top:28px}
.cancel-button,.danger-button{width:100%;min-height:58px;margin-top:14px;cursor:pointer;letter-spacing:.06em}
.cancel-button{background:#fff;border:1px solid #bbb;color:#555}
.danger-button{background:#171717;color:#fff;border:1px solid #171717}
.prototype-link{margin-top:20px;border:0;background:none;color:#999;text-decoration:underline;text-underline-offset:4px;font-size:10px;cursor:pointer}
.disabled-action{opacity:.28!important;cursor:not-allowed!important}

.change-menu-button{
  width:100%;
  min-height:58px;
  margin-top:12px;
  padding:0 22px;
  border:1px solid #171717;
  background:#fff;
  color:#171717;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  letter-spacing:.06em;
}
.change-menu-button:hover{background:#f7f7f7}

/* V7 hero photo replacement: clean supplied image, no screenshot/black bars */
.photo-placeholder img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  filter:grayscale(100%);
}
\n/* V8 Supabase real reservation submit */\n.submit-status{min-height:22px;margin-top:16px;font-size:12px;line-height:1.7;color:#555}\n.submit-status.error{color:#9f2f2f}\n.submit-status.success{color:#333}\n.primary-button.is-loading{opacity:.6;cursor:wait}\n.primary-button:disabled{opacity:.45;cursor:not-allowed}\n
/* V9 customer-facing menu notes */
.menu-note,.option-note,.selected-note{
  display:block;
  margin-top:6px;
  max-width:560px;
  font-size:11px;
  line-height:1.55;
  letter-spacing:.02em;
  color:#777;
  font-weight:400;
}
.option-note{max-width:430px}
.selected-note{margin-top:7px}

/* V10 */
.menu-note,.option-note,.selected-note{font-size:10px;line-height:1.45;font-weight:400;letter-spacing:.02em;color:#777}

/* V11: real-time availability */
.availability-loading,.availability-error{grid-column:1/-1;padding:18px 10px;text-align:center;font-size:13px;line-height:1.7;color:#666}
.availability-error{color:#8a3b3b}

/* V12: actual availability UI */
.time-button.disabled,
.time-button:disabled{
  background:#f7f7f7;
  border-color:#ededed;
  color:#bdbdbd;
  cursor:not-allowed;
  text-decoration:none;
  opacity:1;
}
.time-button:disabled:hover{
  background:#f7f7f7;
  color:#bdbdbd;
}
.availability-loading,
.availability-error{
  grid-column:1/-1;
  padding:22px 12px;
  text-align:center;
  font-size:12px;
  line-height:1.8;
}
.availability-loading{color:#777}
.availability-error{color:#8a3b3b}
.availability-error small{font-size:10px;color:#999}

.build-tag{
  display:inline-block;
  margin-left:8px;
  font-size:8px;
  letter-spacing:.08em;
  color:#bbb;
  vertical-align:middle;
}

/* V16 production candidate */
.manage-link-button{
  width:100%;
  min-height:58px;
  margin-top:14px;
  border:1px solid #171717;
  background:#fff;
  color:#171717;
  cursor:pointer;
  font-size:11px;
  letter-spacing:.08em;
}
.manage-link-button:hover{background:#f7f7f7}
.reservation-loading{
  margin:20px 0;
  text-align:center;
  font-size:12px;
  color:#777;
}

/* V18.1: closed-day calendar */
.date-button.closed{background:#f4f4f4;color:#aaa;border-color:#eee;cursor:not-allowed;position:relative}
.date-button.closed .day{text-decoration:line-through}
.closed-label{display:block;margin-top:3px;font-size:10px;font-weight:600;letter-spacing:.12em}
