.visit-intro { text-align: center; max-width: 740px; margin: 20px auto 42px; }
.visit-intro p { font-size: 17px; max-width: 600px; margin: 20px auto; }
.studio-grid { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 22px; }
.studio-card { padding: 30px; border: 1px solid rgb(120, 97, 58); border-radius: 20px; background: radial-gradient(at right top, rgba(50, 36, 20, 0.533), transparent 70%), rgb(13, 12, 10); }
.studio-number { color: var(--gold); font-size: 14px; letter-spacing: 2px; display: flex; justify-content: space-between; margin-bottom: 24px; }
.studio-number span { color: rgb(155, 148, 134); font-size: 10px; text-transform: uppercase; }
.studio-card h2 { font-size: 36px; }
.studio-address { color: rgb(238, 229, 213); min-height: 26px; }
.studio-hours { border-top: 1px solid rgb(64, 54, 35); padding-top: 18px; margin: 22px 0px; }
.studio-hours strong { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--gold); }
.studio-hours p { font-size: 14px; line-height: 1.8; min-height: 50px; margin: 9px 0px; }
.studio-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.studio-info { color: var(--gold); font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
.studio-actions .studio-info { flex-basis: 100%; margin-top: 6px; }
.visit-help { margin: 55px 0px 15px; text-align: center; padding: 35px 20px; border-top: 1px solid rgb(81, 67, 41); }
.visit-help h2 { font-size: 34px; }
.booking-layout { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 30px; align-items: start; }
.booking-aside { position: sticky; top: 20px; border: 1px solid rgb(100, 83, 50); border-radius: 20px; overflow: hidden; padding: 0px 25px 30px; background: rgb(16, 16, 13); }
.booking-aside img { width: calc(100% + 50px); margin-left: -25px; aspect-ratio: 1.25 / 1; object-fit: cover; display: block; }
.booking-aside h2 { font-size: 38px; margin: 20px 0px; }
.booking-aside p { font-size: 14px; }
.booking-panel { border: 1px solid rgb(120, 97, 58); border-radius: 20px; overflow: hidden; background: rgb(255, 255, 255); min-width: 0px; }
.booking-panel iframe { border: 0px; display: block; min-height: 850px; }
.booking-fallback { background: rgb(17, 16, 13); padding: 18px; margin: 0px; text-align: center; font-size: 13px; }
.booking-fallback a { color: var(--gold); text-decoration: underline; }
#chosen-studio { background: rgb(32, 25, 14); color: rgb(231, 207, 158); padding: 16px 20px; margin: 0px; font-size: 14px; }
footer { margin-top: 30px; }
@media (max-width: 700px) {
  main { padding: 25px 20px 35px; }
  .visit-intro { margin: 15px auto 30px; }
  .visit-intro h1 { font-size: 43px; }
  .visit-intro p { font-size: 15px; }
  .studio-grid { grid-template-columns: 1fr; gap: 18px; }
  .studio-card { padding: 24px; }
  .studio-card h2 { font-size: 32px; }
  .studio-hours p { min-height: 0px; }
  .studio-actions .button { flex: 1 1 0%; white-space: nowrap; padding: 12px 14px; }
  .booking-layout { display: block; }
  .booking-aside { position: static; padding: 20px; margin-bottom: 20px; display: grid; grid-template-columns: 85px 1fr; gap: 0px 18px; align-items: center; }
  .booking-aside img { grid-row: 1 / 3; width: 85px; height: 100px; margin: 0px; object-fit: contain; border-radius: 8px; }
  .booking-aside h2 { font-size: 27px; margin: 0px; }
  .booking-aside p { display: none; }
  .booking-aside .studio-info { font-size: 12px; margin-top: 10px; }
  .booking-panel iframe { min-height: 950px; }
  .visit-help h2 { font-size: 30px; }
  .visit-help { margin-top: 35px; }
}
.studio-picker { max-width: 850px; margin: auto; text-align: center; }
.studio-picker h2 { font-size: 32px; margin: 10px 0px 24px; }
.studio-options { display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 12px; }
.studio-option { background: rgb(15, 14, 11); color: rgb(238, 229, 213); border: 1px solid rgb(120, 97, 58); border-radius: 12px; padding: 18px 10px; font: 17px Georgia, serif; min-height: 60px; }
.studio-option[aria-pressed="true"] { background: linear-gradient(110deg, rgb(83, 51, 7), rgb(59, 27, 5)); border-color: rgb(223, 187, 113); color: rgb(255, 231, 172); box-shadow: rgba(223, 187, 113, 0.133) 0px 0px 0px 2px; }
.studio-booking { max-width: 850px; margin: 30px auto; border: 1px solid rgb(120, 97, 58); border-radius: 20px; overflow: hidden; background: rgb(16, 16, 13); }
.studio-booking[hidden] { display: none; }
.booking-selected { display: flex; justify-content: space-between; gap: 15px; align-items: center; padding: 25px; }
.booking-selected h2 { margin: 8px 0px; font-size: 32px; }
.booking-selected p { font-size: 14px; margin: 0px; }
.booking-guidance { padding: 0px 25px 20px; margin: 0px; font-size: 13px; }
.studio-booking iframe { border: 0px; display: block; width: 100%; height: 450px; background: rgb(16, 16, 13); }
.calendar-redirect { padding: 35px 25px; text-align: center; }
.calendar-redirect p { margin-top: 0px; }
.booking-fallback a { cursor: pointer; }
@media (max-width: 600px) {
  .studio-options { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .studio-option { padding: 16px 8px; }
  .booking-selected { padding: 20px; align-items: flex-start; }
  .booking-selected .button { font-size: 12px; padding: 8px 13px; }
  .booking-selected h2 { font-size: 29px; }
  .booking-guidance { padding: 0px 20px 18px; }
  .studio-booking iframe { height: 450px; }
  .visit-intro { margin-bottom: 28px; }
}
.group-booking { margin: 0px 20px 22px; border: 1px solid rgb(120, 97, 58); border-radius: 12px; padding: 16px; background: rgb(33, 25, 13); }
.group-booking summary { color: rgb(232, 201, 129); cursor: pointer; font-size: 14px; }
.group-booking p { font-size: 13px; }
.group-booking label { display: block; font-size: 13px; margin-bottom: 8px; }
.group-booking input { box-sizing: border-box; width: 100%; border: 1px solid rgb(140, 115, 71); border-radius: 8px; padding: 12px; color: rgb(248, 241, 229); background: rgb(13, 12, 9); font-size: 16px; }
.group-booking a[hidden] { display: none; }
.studio-option { cursor: pointer; -webkit-appearance: none; appearance: none; }
.studio-option:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
@media (hover: hover) {
  .studio-option:hover { border-color: var(--gold); background: #20190e; }
}
.booking-product-context{max-width:850px;margin:20px auto;padding:20px;border:1px solid #78613a;border-radius:16px;display:flow-root;text-align:left}.booking-product-context img{float:left;width:100px;height:100px;object-fit:contain;margin:0 20px 12px 0;border-radius:8px}.booking-product-context h2{font-size:22px;margin:0 0 8px}.booking-product-context p{font-size:15px;line-height:1.5;margin:5px 0}

/* Image-backed surfaces avoid native/forced-dark button recolouring on Android. */
.studio-picker .studio-option {
  -webkit-appearance: none !important;
  appearance: none !important;
  background: #0b0b09 url('/assets/choice-black-v73.svg') center / 100% 100% no-repeat !important;
  color: #eee5d5;
  -webkit-text-fill-color: #eee5d5;
}
.studio-picker .studio-option[aria-pressed="true"] {
  background-image: url('/assets/choice-selected-v73.svg') !important;
  border-color: #dfbb71;
  color: #ffe7ac;
  -webkit-text-fill-color: #ffe7ac;
}
