.booking-page{background:#08060b;color:#f7f0fa;min-height:100vh;background-image:radial-gradient(ellipse at 10% 35%,#75103d20,transparent 45%),radial-gradient(ellipse at 95% 10%,#50248e20,transparent 50%)}
.book-header,.book-layout,.book-footer{width:min(1240px,calc(100% - 80px));margin-inline:auto}.book-header{display:flex;justify-content:space-between;align-items:center;padding:26px 0;border-bottom:1px solid #ffffff14}.book-brand{display:flex;align-items:center;gap:14px;font-weight:700;text-decoration:none}.book-brand img{border-radius:50%}.book-back{font-size:.8rem;text-decoration:none;color:#c4b8cc}.book-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(35px,7vw,100px);padding-block:64px 80px;align-items:start}.book-intro .overline{font-size:.65rem;color:#cb9fbf;letter-spacing:.15em}.experience .book-intro h1{font-size:clamp(3.5rem,6.2vw,6rem);line-height:1.02;letter-spacing:-.065em;margin:27px 0}.book-intro h1 em{color:#ef80bc;font-style:normal}.book-lead{color:#c3b6c9;max-width:390px;line-height:1.85}.book-explainer{display:flex;gap:17px;margin-top:35px;max-width:410px}.book-marker{color:#ff6bb5;font-size:1.6rem}.book-explainer strong{font-size:.88rem}.book-explainer p{font-size:.8rem;line-height:1.8;color:#ac9eb7;margin-top:9px}.book-diary{display:block;width:min(330px,85%);height:auto;margin:16px 0 8px 40px;opacity:.85;mask-image:radial-gradient(ellipse at center,#000 45%,transparent 75%)}.book-direct{font-size:.78rem;line-height:1.9;color:#ac9eb7}.book-direct a{color:#ecb0d1}.book-panel{align-self:center;background:linear-gradient(150deg,#1c1224ee,#100d16);border:1px solid #b982ce2e;border-radius:26px;padding:30px;box-shadow:0 30px 90px #0004}.book-preview{padding:12px 15px;border:1px solid #d4ac613d;background:#d4ac6109;border-radius:10px;color:#e5cfa7;font-size:.72rem;line-height:1.6;margin:0 0 26px}.book-steps{display:flex;list-style:none;gap:12px;padding:0 0 24px;margin:0 0 28px;border-bottom:1px solid #ffffff16;justify-content:space-between}.book-steps li{font-size:.7rem;color:#b2a3bd}.book-steps span{display:block;font-size:.7rem;margin-bottom:7px;color:#9f85b1}.book-steps [aria-current]{color:#ffb3dd}.book-steps [aria-current] span{color:#ff75bd}.book-panel fieldset{padding:0;border:0;margin:0;min-width:0}.book-panel legend{font-size:1.65rem;font-weight:600;letter-spacing:-.035em}.book-panel .step-copy{color:#bcafc5;font-size:.82rem;line-height:1.7;margin:12px 0 26px}.book-panel label:not(.check-row){display:block;font-size:.78rem;font-weight:500;margin:20px 0 9px}.book-panel label span{font-size:.69rem;color:#afa0ba;font-weight:400}.book-panel input:not([type=checkbox]),.book-panel select,.book-panel textarea{width:100%;min-width:0;border:1px solid #af8abd45;border-radius:9px;background:#08060d;color:#f8effc;padding:13px 12px;font:inherit;font-size:.9rem;min-height:48px;color-scheme:dark}.book-panel textarea{resize:vertical}.book-panel :focus-visible,.book-header a:focus-visible{outline:2px solid #ff8ecc;outline-offset:4px}.book-panel [aria-invalid=true]{border-color:#ff9eb0}.field-help{font-size:.7rem;line-height:1.8;color:#b5a7bf;margin:9px 0 16px}.field-help a{color:#efb9d8}.check-row{display:flex;align-items:flex-start;gap:12px;line-height:1.65;font-size:.77rem;margin:22px 0;cursor:pointer}.check-row input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:#e868b1}.availability{background:#b89ac510;border:1px solid #b89ac525;border-radius:10px;font-size:.82rem;padding:16px;line-height:1.75;margin:24px 0 10px}.availability[data-status=available]{border-color:#7fceb450;color:#ade2cf}.availability[data-status=unavailable]{border-color:#ff8ca550;color:#ffc3d0}.book-primary,.book-secondary,.book-edit{font-family:inherit;cursor:pointer;transition:background .2s;min-height:48px}.book-primary{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:15px 23px;border-radius:9px;border:1px solid #eb78ba;background:linear-gradient(110deg,#e267a8,#b67cde);color:#160b1d;font-weight:700;font-size:.79rem;text-decoration:none}.book-primary:hover{background:#f394ca}.book-primary:disabled{opacity:.55;cursor:wait}.book-panel fieldset> .book-primary{width:100%;margin-top:20px}.book-secondary{padding:12px 18px;background:none;color:#dbc5e2;border:1px solid #ffffff26;border-radius:9px}.book-actions{display:flex;gap:12px;margin-top:25px}.book-actions .book-primary{flex:1}.book-time-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.book-review{margin:28px 0;padding:20px;background:#ffffff04;border:1px solid #ffffff14;border-radius:12px}.experience .book-review h2{font-size:.85rem;letter-spacing:0}.book-review dl{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;font-size:.76rem;line-height:1.6;margin-top:20px;overflow-wrap:anywhere}.book-review dt{color:#ad99b9}.book-review dd{margin:0;color:#e5d7eb}.book-edit{background:none;border:0;color:#ed9ecc;padding:10px 0 0;font-size:.75rem;text-decoration:underline}.book-error{color:#ffc3d0;line-height:1.7;font-size:.8rem;margin-top:20px}.book-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.book-panel [hidden]{display:none!important}.book-footer{border-top:1px solid #ffffff16;padding-block:26px 38px;display:flex;justify-content:space-between;gap:25px;color:#b3a2bf;font-size:.7rem}.book-footer nav{display:flex;gap:22px}.book-footer a{text-decoration:none}.result-mark{display:block;font-size:3rem;color:#ea8ac3;margin:30px 0}.experience #booking-result h2{font-size:2rem;letter-spacing:-.04em}#booking-result p{color:#c5b5cf;line-height:1.8;font-size:.85rem;margin:20px 0}.book-reference{font-family:monospace;color:#f5b3db!important}.book-result-home{display:block;font-size:.8rem;margin:25px 0}
@media(max-width:850px), (max-width:1100px) and (max-height:600px) and (orientation:landscape){.book-layout{grid-template-columns:minmax(0,1fr);max-width:610px;gap:30px;padding-top:35px}.book-diary,.book-explainer,.book-direct{display:none}.experience .book-intro h1{font-size:3.8rem}.book-lead{max-width:none}.book-intro h1 br:first-child{display:none}.book-header,.book-footer{width:calc(100% - 40px)}.book-footer{flex-direction:column}.book-layout{width:calc(100% - 40px)}}
@media(max-width:420px){.book-header{padding-block:17px}.book-brand{font-size:.8rem;gap:8px}.book-brand img{width:42px;height:42px}.book-back{font-size:.68rem}.book-panel{padding:22px 18px;border-radius:20px}.experience .book-intro h1{font-size:3.1rem}.book-steps{gap:8px}.book-steps li{font-size:.64rem}.book-actions{gap:8px}.book-primary{padding:14px;font-size:.73rem}.book-time-row{gap:10px}}
@media(prefers-reduced-motion:reduce){.booking-page *{transition:none!important;scroll-behavior:auto!important}}

/* Let every form track shrink to its panel, including native iOS controls. */
.booking-page .book-layout > *,
.book-panel, #booking-form, .book-panel fieldset,
.book-time-row > *, .book-review, .book-review dl > *,
.book-actions > *, .book-steps > * { min-width: 0; max-width: 100%; }
.book-panel { width: 100%; }
.book-panel fieldset { width: 100%; }
.book-panel legend { max-width: 100%; white-space: normal; }
.book-panel input:not([type=checkbox]), .book-panel select, .book-panel textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  font-size: 16px; /* Prevent iOS focus zoom shifting the form viewport. */
}
.book-panel input[type=date], .book-panel input[type=time] {
  appearance: none;
  -webkit-appearance: none;
  min-inline-size: 0;
  max-inline-size: 100%;
}
.book-panel input::-webkit-date-and-time-value {
  min-width: 0;
  text-align: left;
}
.book-panel input::-webkit-datetime-edit { min-width: 0; padding: 0; }
.book-panel select { text-overflow: ellipsis; }
.book-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.book-steps li { overflow-wrap: anywhere; }
.book-actions { display: grid; grid-template-columns: auto minmax(0,1fr); }
.book-primary, .book-secondary { white-space: normal; overflow-wrap: anywhere; text-align: center; }
.check-row > span { flex: 1; min-width: 0; }
.book-panel .check-row > span { font-size: inherit; color: inherit; }
.book-panel .check-row input { max-width: 18px; }
.book-review dd, .availability, .book-preview, .book-error, #booking-result p { overflow-wrap: anywhere; }
.book-footer nav { flex-wrap: wrap; }
@media(max-width:480px) {
  .book-time-row { grid-template-columns: minmax(0,1fr); gap: 0; }
  .book-review { padding: 16px; }
  .book-review dl { grid-template-columns: 60px minmax(0,1fr); gap: 10px; }
}
@media(max-width:360px) {
  .book-header, .book-layout, .book-footer { width: calc(100% - 24px); }
  .book-header { gap: 12px; }
  .book-back { flex-shrink: 0; }
  .book-actions { grid-template-columns: minmax(0,1fr); }
  .book-actions .book-primary { grid-row: 1; }
}

/* Use the main site's spacing and centred footer on the booking page. */
@media(min-width:1101px) {
  .book-header,.book-layout { width:min(1240px,calc(100% - 88px)); }
}
.booking-page .experience-footer { border-top:1px solid #ffffff13; padding-top:54px; }
.booking-page .footer-top { flex-direction:column; align-items:center; text-align:center; gap:28px; }
.booking-page .footer-top > div { width:100%; }
.booking-page .footer-top p:last-child { margin-inline:auto; }
.booking-page .footer-follow { width:min(780px,100%); justify-content:center; flex-wrap:wrap; }
.booking-page .footer-follow a { flex:1 1 130px; min-width:0; max-width:180px; }
.booking-page .footer-bottom { justify-content:center; align-items:center; text-align:center; }
.booking-page .footer-bottom p { margin:0; }
@media(max-width:640px) {
  .booking-page .experience-footer { padding-top:36px; }
  .booking-page .footer-bottom {
    display:grid; grid-template-columns:max-content max-content;
    justify-content:center; align-items:center; gap:24px 30px; text-align:center;
  }
  .booking-page .footer-bottom::before {
    content:"CH Unplugged"; color:#fff; font-size:.74rem; font-weight:700;
    text-decoration:underline; text-underline-offset:.25em;
  }
  .booking-page .footer-bottom > p:first-child { color:#a797b7; font-size:.74rem; }
  .booking-page .footer-bottom > p:nth-child(2) {
    display:flex; grid-column:1 / -1; justify-content:center; align-items:center;
    gap:20px; font-size:0;
  }
  .booking-page .footer-bottom > p:nth-child(2) > span { display:none; }
  .booking-page .footer-bottom > p:nth-child(2) > a {
    color:#fff; font-size:.8rem; text-decoration:underline; text-underline-offset:.25em;
  }
  .booking-page .footer-bottom > a { display:none; }
}
@media(max-width:360px) {
  .booking-page .footer-bottom { column-gap:16px; }
}
