/* base.css — LP・申込フォーム共通（新HPたたき台 site-codex のトークンを継承） */
:root {
  --apricot: #e36f2d;
  --apricot-soft: #fbd9b9;
  --apricot-wash: #fff0df;
  --cream: #fff8ed;
  --paper: #fffdf8;
  --cta: #9b3f16;
  --cta-hover: #792d10;
  --deep: #632d19;
  --ink: #342923;
  --soft: #67574f;
  --line: #dfc9b2;
  --ok: #2f6b2a;
  --ng: #b3261e;
  --serif: "Shippori Mincho B1", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --rounded: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  --shadow: 0 8px 22px rgba(99, 45, 25, 0.09);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--rounded); font-size: 18px; line-height: 1.8;
  line-break: strict; word-break: normal; overflow-wrap: anywhere;
}
img { max-width: 100%; display: block; }
a { color: var(--cta); }
.nw { display: inline-block; }
.wrap { max-width: 760px; margin: 0 auto; padding: 0 16px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 56px; padding: 12px 24px; border-radius: 999px; border: 2px solid var(--cta);
  font-family: inherit; font-size: 18px; font-weight: 700; text-decoration: none; cursor: pointer;
  background: var(--cta); color: #fff;
}
.btn:hover { background: var(--cta-hover); border-color: var(--cta-hover); }
.btn.ghost { background: #fff; color: var(--cta); }
.btn.ghost:hover { background: var(--apricot-wash); }
.btn[disabled] { background: #d8cfc7; border-color: #d8cfc7; color: #6d625b; cursor: not-allowed; }
.btn.wide { width: 100%; }

.sample-band {
  background: #3d3d3d; color: #fff; text-align: center; font-size: 14px; font-weight: 700; padding: 6px 12px;
}

h2.sec {
  font-family: var(--serif); font-weight: 800; color: var(--deep);
  font-size: 26px; line-height: 1.5; margin: 0 0 16px;
}

/* 空き枠ボタン */
.day { background: #fff; border: 1.5px solid var(--line); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; }
.day h3 { margin: 0 0 8px; font-size: 19px; color: var(--deep); }
.day h3 .we { color: #a14a06; }
.slots { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.slot {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0;
  min-height: 64px; padding: 6px 12px; line-height: 1.4; border-radius: 10px; border: 2px solid var(--line);
  background: #fff; font-family: inherit; font-size: 17px; font-weight: 700; color: var(--ink);
  text-decoration: none; cursor: pointer; text-align: left;
}
.slot .tm { font-size: 19px; white-space: nowrap; }
.slot .mk { font-size: 15px; white-space: nowrap; }
.slot.open, .slot.few { border-color: var(--cta); }
.slot.open .mk { color: var(--ok); }
.slot.few .mk { color: #a14a06; }
.slot.full, .slot.closed, .slot.deadline, .slot.not_open {
  background: #f3eee9; color: #6d625b; cursor: not-allowed; border-color: #e3dad2;
}
.slot.sel { background: var(--cta); color: #fff; border-color: var(--cta); }
.slot.sel .mk { color: #fff; }
.legend { font-size: 15px; color: var(--soft); margin: 0 0 12px; }

@media (min-width: 720px) {
  .slots { grid-template-columns: repeat(4, 1fr); }
}
