/* Shared booking page styles */
.bk-hero {
  padding: clamp(80px,10vw,140px) 0 clamp(40px,5vw,60px);
  border-bottom: 1px solid var(--rule);
}
.bk-hero h1 {
  font-family: var(--display);
  font-size: clamp(56px,8vw,120px);
  line-height: 0.92;
  font-weight: 400;
  letter-spacing: -0.03em;
  max-width: 12ch;
}
.bk-hero h1 em { font-style: italic; color: var(--accent); font-weight: 400; }
.bk-hero .sub {
  font-family: var(--serif);
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.55;
  color: var(--ink-2);
  margin-top: 1.5rem;
  max-width: 650px;
}

.bk-body { padding: clamp(60px,8vw,100px) 0 clamp(100px,10vw,160px); }
.bk-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 3rem;
  align-items: start;
}
@media (max-width: 960px) { .bk-grid { grid-template-columns: 1fr; } }

.bk-card {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: clamp(2rem, 4vw, 3rem);
  box-shadow: 0 20px 60px -30px rgba(0,0,0,0.12);
}
.bk-card h2 {
  font-family: var(--display);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 500;
  letter-spacing: -0.01em;
  margin-bottom: 0.5rem;
}
.bk-intro {
  font-family: var(--serif);
  font-size: 17px;
  color: var(--ink-3);
  margin-bottom: 2rem;
  line-height: 1.5;
}

#bk-form { display: flex; flex-direction: column; gap: 1.25rem; }
#bk-form label {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
#bk-form input, #bk-form textarea, #bk-form select {
  padding: 12px 14px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  font-size: 15px;
  background: #fff;
  color: var(--ink);
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  transition: all 0.15s;
}
#bk-form textarea { resize: vertical; font-family: var(--serif); font-size: 16px; line-height: 1.5; }
#bk-form input:focus, #bk-form textarea:focus, #bk-form select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
#bk-form .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media(max-width: 600px) { #bk-form .grid-2 { grid-template-columns: 1fr; } }
#bk-form button[type=submit] { margin-top: 1rem; align-self: flex-start; }

.bk-confirm {
  padding: 2rem;
  background: var(--accent-soft);
  border-radius: var(--radius);
  border-left: 5px solid #B5495B;
  box-shadow:
    inset 5px 0 0 -1px rgba(255,255,255,0.4),
    inset 6px 0 8px -4px rgba(0,0,0,0.25);
}
.bk-confirm h3 {
  font-family: var(--display);
  font-size: 28px;
  font-weight: 500;
  margin-bottom: 0.5rem;
}
.bk-confirm p { font-family: var(--serif); font-size: 17px; color: var(--ink-2); }

/* Summary sidebar */
.bk-summary-col { position: sticky; top: calc(var(--nav-h) + 2rem); display: flex; flex-direction: column; gap: 1.5rem; }
@media(max-width:960px) { .bk-summary-col { position: static; } }

.bk-summary {
  background: var(--charcoal);
  color: var(--paper);
  border-radius: var(--radius);
  padding: 2rem;
  position: relative;
  overflow: hidden;
}
.bk-summary::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: #B5495B;
}
.bk-summary-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.bk-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #B5495B;
  box-shadow: 0 0 12px #B5495B;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } }
.bk-label {
  font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
  color: #B4B1A9; font-weight: 600;
}
.bk-status {
  font-family: var(--serif);
  font-size: 15px;
  color: #D4D0C5;
  font-style: italic;
  line-height: 1.5;
  margin-bottom: 1rem;
}
.bk-draft {
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.55;
  color: #F5F2EB;
  margin-bottom: 1.5rem;
  min-height: 0;
}
.bk-draft:empty { display: none; }

.bk-fit-wrap { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1rem; }
.bk-fit-wrap:has(.bk-fit:empty) { display: none; }
.bk-fit-label {
  font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--accent); font-weight: 600; margin-bottom: 0.5rem;
}
.bk-fit {
  font-size: 14px;
  color: #CFCCC3;
  line-height: 1.5;
}

.bk-meta {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1.75rem;
}
.bk-meta h4 {
  font-family: var(--display);
  font-size: 18px;
  font-weight: 500;
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}
.bk-meta ul { list-style: none; padding: 0; }
.bk-meta li {
  font-family: var(--serif);
  font-size: 15px;
  padding: 10px 0;
  border-top: 1px solid var(--rule);
  line-height: 1.4;
  color: var(--ink-2);
}
.bk-meta li:first-child { border-top: 0; padding-top: 0; }
.bk-meta li strong {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  display: block;
  margin-bottom: 2px;
}

/* Theme overrides — per booking type */
body[data-theme="speak"] { --accent: #B5495B; --accent-deep: #8A2A3A; --accent-soft: #FDF0F2; }
body[data-theme="coach"] { --accent: #B5495B; --accent-deep: #8A2A3A; --accent-soft: #FDF0F2; }
body[data-theme="train"] { --accent: #1A7A4A; --accent-deep: #0E5030; --accent-soft: #EDF7F2; }
body[data-theme="build"] { --accent: #1A3FCC; --accent-deep: #0E2080; --accent-soft: #EEF1FE; }
body[data-theme="connect"] { --accent: #2C2E33; --accent-deep: #000; --accent-soft: #EEEAE3; }
