@import url('hall-rental.css');
.hero{background:linear-gradient(0deg,rgba(0,7,26,.7),rgba(0,5,24,.35)),url('assets/stage-view.jpg') center 45%/cover}
.hero h1{font-size:clamp(35px,5vw,72px);letter-spacing:.12em;text-indent:.12em}
.hero .sub{letter-spacing:.2em;color:#dfecfa;font-size:13px}
.intro img{width:100%;height:330px;object-fit:cover;border:1px solid #315177}
.intro .copy h2{font:400 clamp(26px,2.9vw,40px)/1.6 'Yu Mincho',serif;letter-spacing:.08em}
.intro .copy>p:not(.eyebrow){font-size:14px;line-height:2.1;color:var(--muted)}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.feature-grid article{padding:30px 24px;background:#091a31;border:1px solid #294b6e}.feature-grid article span{font:18px Georgia,serif;color:#6aa5d9}.feature-grid h3{font-size:17px;font-weight:500;margin:16px 0}.feature-grid p,.steps p,.info-list p,.faq p{font-size:13px;line-height:2;color:#b3c2d7}
.info-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.info-list>div{background:#091a31;border:1px solid #294b6e;padding:25px}.info-list strong{font-weight:500;font-size:16px}.info-list p{margin-bottom:0}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.steps>div{padding:25px 18px;border:1px solid #294b6e;background:#091a31}.steps b{font:28px Georgia,serif;color:#79b5e8}.steps h3{font-size:16px;font-weight:500;margin:18px 0 10px}.small-note{color:var(--muted);font-size:12px;margin-top:18px}
.faq{border-top:1px solid #2d4b6d}.faq details{border-bottom:1px solid #2d4b6d;padding:20px 14px}.faq summary{cursor:pointer;font-size:15px;line-height:1.7}.faq p{margin:15px 0 0}.entry{text-align:center;padding:80px 15px 90px}.entry>span{font-size:11px;letter-spacing:.3em;color:#8baed3}.entry h2{font:400 35px 'Yu Mincho',serif}.entry>p{font-size:14px;line-height:2;color:var(--muted)}.entry .fine{font-size:12px;margin-top:25px}
@media(max-width:720px){.intro img{height:auto;aspect-ratio:16/10}.feature-grid,.info-list{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.feature-grid article{padding:22px}.hero h1{font-size:clamp(30px,8vw,48px)}.entry{padding:55px 8px}}
@media(max-width:400px){.steps{grid-template-columns:1fr}}

/* Booking Live — ticket-back highlight */
.booking-promise{text-align:center;padding:48px 22px;background:radial-gradient(ellipse at 50% 0%,#17395c 0%,#0b203a 50%,#071326 100%);border:1px solid #376797}
.booking-promise .promise-kicker{font:12px Georgia,serif;letter-spacing:.24em;color:#94c8f4}
.booking-promise h3{font:400 clamp(27px,3.5vw,48px)/1.48 'Yu Mincho',serif;letter-spacing:.045em;margin:14px 0 22px}
.booking-promise h3 span{font-size:.87em}
.booking-promise h3 strong{display:inline-block;font:400 clamp(44px,6vw,78px)/1.1 Georgia,serif;color:#89c9ff;letter-spacing:.01em;margin-top:8px}
.booking-promise>p:not(.promise-kicker){max-width:680px;margin:8px auto;color:#d2e0f0;font-size:14px;line-height:2}
.booking-figures{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.booking-figures article{padding:32px 24px;background:#0b1d35;border:1px solid #315679;text-align:center}
.booking-figures article>span{font:12px Georgia,serif;letter-spacing:.13em;color:#85bde9}
.booking-figures h4{font-size:16px;font-weight:500;margin:17px 0 6px}
.booking-figures article>p{margin:0}
.booking-figures article>p strong{font:400 clamp(43px,5vw,66px)/1.3 Georgia,serif;color:white}
.booking-figures article>p small{font:14px sans-serif;margin-left:6px}
.booking-figures .detail{font-size:12px;color:#aec4db;margin-top:8px}
.booking-hourly{padding:27px 22px;text-align:center;border-bottom:1px solid #315679}
.booking-hourly .hourly-catch{font:400 clamp(23px,3vw,35px)/1.6 'Yu Mincho',serif;color:#d9edff;letter-spacing:.06em;margin:0 0 10px}
.booking-hourly p:last-child{font-size:13px;line-height:1.9;color:#b5c8dc;margin:0}
.booking-conditions{font-size:12px;line-height:1.9;color:#a8bed4;margin:22px auto 0;max-width:850px}
@media(max-width:720px){.booking-promise{padding:35px 16px}.booking-figures{grid-template-columns:1fr}.booking-figures article{padding:24px 15px}.booking-hourly{padding:24px 8px}.booking-conditions{font-size:11px}}

/* Booking Live: calendar mock-up. No live availability data connected. */
.booking-schedule-notice{display:flex;flex-direction:column;gap:6px;padding:17px 20px;margin-bottom:18px;border:1px solid #3b6285;background:#10243b;color:#d9e9f7;font-size:13px;line-height:1.7}
.booking-schedule-notice span{color:#b5c8dc}.booking-calendar-wrap{border:1px solid #2b4d70;background:linear-gradient(155deg,#0b213d,#06142b);padding:28px}
.booking-calendar-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.booking-calendar-kicker{font-size:10px;letter-spacing:.2em;color:#87b8e0}.booking-calendar-top h3{font:400 28px Georgia,serif;margin:8px 0 0}.booking-date-jump{background:transparent;border:1px solid #54769a;color:#e2ecf7;padding:13px 16px;cursor:pointer;font:inherit;font-size:13px}.booking-native-date{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.booking-days{display:flex;overflow-x:auto;gap:10px;padding:22px 2px 15px;scroll-snap-type:x proximity}.booking-day{flex:0 0 72px;scroll-snap-align:center;border:1px solid #294c6f;background:#10243b;color:white;min-height:113px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}.booking-day strong{font:400 30px Georgia,serif}.booking-day.selected{border-color:#83e8ab;background:#176842;box-shadow:0 0 0 1px rgba(105,232,155,.3)}.booking-week{font-size:12px;color:#bdcfe3}.booking-day:nth-child(7n) .booking-week{color:#f4a0aa}.booking-day:nth-child(7n - 1) .booking-week{color:#92baf7}.booking-day-mark{color:#8fa8c3;font-size:24px;line-height:1;font-weight:600;display:inline-flex;align-items:center;justify-content:center;min-height:24px}.booking-calendar-legend{display:flex;align-items:center;flex-wrap:wrap;gap:18px;font-size:11px;color:#9eb8d2;margin:2px 0 20px}.booking-calendar-legend i{display:inline-block;width:10px;height:10px;border:1px solid #81a9c9;margin-right:5px}.booking-date-panel{border-top:1px solid #2a4969;padding-top:20px}.booking-date-panel h4{font-size:18px;font-weight:500;margin:0 0 8px}.booking-date-panel>p{font-size:12px;color:#a7c0d7;line-height:1.7}.booking-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:21px 0}.booking-slot{background:#0c2442;border:1px solid #315676;padding:19px 15px;cursor:pointer;color:#e9f2fc;text-align:left;display:flex;align-items:flex-start;flex-direction:column;justify-content:space-between;gap:18px}.booking-slot strong{font-size:18px;font-weight:500;display:block}.booking-slot small{display:block;font-size:11px;color:#9db8d1;margin-top:8px}.booking-slot.chosen{background:#176842;border-color:#83e8ab;box-shadow:0 0 0 1px rgba(105,232,155,.3)}.slot-status{font-size:11px;color:#8fc2ed}.booking-selection{display:flex;flex-wrap:wrap;align-items:center;gap:14px;border-top:1px solid #2a4969;padding-top:20px}.booking-selection p{width:100%;margin:0;color:#b8cfe6;font-size:13px}.booking-copy,.booking-line{border:1px solid #76b7ec;background:#165e94;padding:13px 19px;font-size:13px;color:white;font-family:inherit;cursor:pointer;text-decoration:none}.booking-copy:disabled{opacity:.4;cursor:not-allowed}.booking-line{background:transparent}.booking-calendar-footnote{font-size:11px;color:#a9bfd4;line-height:1.9;margin:18px 0 0}
@media(max-width:720px){.booking-calendar-wrap{padding:18px 12px}.booking-calendar-top h3{font-size:24px}.booking-day{flex-basis:63px;min-height:100px}.booking-slots{grid-template-columns:1fr}.booking-slot{flex-direction:row;align-items:center;gap:10px}.booking-slot strong{font-size:16px}.booking-date-jump{font-size:11px;padding:11px 9px}}

/* One-week calendar with accessible previous/next arrows */
.booking-week-controls{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:10px;margin-top:18px}
.booking-week-controls .booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;overflow:visible;padding:4px 0;scroll-snap-type:none}
.booking-week-controls .booking-day{min-width:0;width:100%;min-height:100px;flex:none;padding:8px 1px;gap:7px}
.booking-week-controls .booking-day strong{font-size:clamp(18px,2.3vw,28px)}
.booking-week-arrow{height:48px;background:#102e50;border:1px solid #547da2;color:#e7f2ff;cursor:pointer;font-size:19px;display:grid;place-items:center;transition:background .2s}
.booking-week-arrow:hover:not(:disabled),.booking-week-arrow:focus-visible{background:#226396;outline:2px solid #80c5ff;outline-offset:2px}
.booking-week-arrow:disabled{opacity:.28;cursor:not-allowed}
.booking-week-range{font-size:12px;color:#abc9e4;text-align:center;margin:10px 0 16px;letter-spacing:.04em}
.booking-week-controls .booking-day:nth-child(7n) .booking-week,.booking-week-controls .booking-day:nth-child(7n - 1) .booking-week{color:#bdcfe3}
.booking-week-controls .booking-day:has(.booking-week:first-child){outline:none}
@media(max-width:720px){.booking-week-controls{grid-template-columns:27px minmax(0,1fr) 27px;gap:5px}.booking-week-controls .booking-days{gap:3px}.booking-week-controls .booking-day{min-height:77px;gap:6px}.booking-week-controls .booking-day strong{font-size:18px}.booking-week-controls .booking-week{font-size:10px}.booking-week-controls .booking-day-mark{font-size:18px;min-height:18px}.booking-week-arrow{height:42px;font-size:14px}.booking-week-range{font-size:11px}}
@media(max-width:390px){.booking-week-controls{grid-template-columns:23px minmax(0,1fr) 23px;gap:3px}.booking-week-controls .booking-days{gap:2px}.booking-week-controls .booking-day strong{font-size:16px}.booking-week-controls .booking-day{min-height:70px}}

/* Day-of-week colors based on actual dates, not grid position. Green selection stays visible. */
.booking-week-controls .booking-day.is-saturday:not(.selected) .booking-week,
.booking-week-controls .booking-day.is-saturday:not(.selected) strong{color:#81b9ff}
.booking-week-controls .booking-day.is-sunday-holiday:not(.selected) .booking-week,
.booking-week-controls .booking-day.is-sunday-holiday:not(.selected) strong{color:#ff8d99}
.booking-week-controls .booking-day.selected .booking-week,
.booking-week-controls .booking-day.selected strong{color:#fff}

/* Hover feedback for booking day and performance time selection. */
.booking-week-controls .booking-day, .booking-slot {
  transition: background-color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
@media (hover:hover) and (pointer:fine) {
  .booking-week-controls .booking-day:not(.selected):hover,
  .booking-slot:not(.chosen):hover {
    background:#0c3026;
    border-color:#23b779;
    box-shadow:0 0 0 1px rgba(35,183,121,.25);
    transform:translateY(-2px);
  }
  .booking-week-controls .booking-day.selected:hover,
  .booking-slot.chosen:hover {
    background:#218355;
    border-color:#a1f5bf;
  }
}
.booking-week-controls .booking-day:focus-visible,
.booking-slot:focus-visible {
  outline:2px solid #8be9b0;
  outline-offset:3px;
}
@media (prefers-reduced-motion:reduce) {
  .booking-week-controls .booking-day, .booking-slot {transition:none;}
  .booking-week-controls .booking-day:hover, .booking-slot:hover {transform:none;}
}


/* Selected booking time card: green check in the upper-right corner */
.booking-slot {
  position: relative;
}
.booking-slot::after {
  content: "✓";
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #35d68c;
  color: #062c1b;
  display: grid;
  place-items: center;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 0 0 4px rgba(53,214,140,.12);
  opacity: 0;
  transform: scale(.7);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}
.booking-slot.chosen::after {
  opacity: 1;
  transform: scale(1);
}
@media (prefers-reduced-motion: reduce) {
  .booking-slot::after { transition: none; }
}

/* BOOKING LIVE — amber spotlight for the 50% ticket-back message */
.booking-promise{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(44px,6vw,78px) 24px;
  border:1px solid #b98037;
  background:
    radial-gradient(ellipse 72% 85% at 50% -5%,rgba(245,174,63,.25),transparent 75%),
    linear-gradient(145deg,#1c160f 0%,#171b26 44%,#081629 100%);
  box-shadow:inset 0 1px rgba(255,220,153,.22),0 0 28px rgba(192,117,24,.10);
}
.booking-promise::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(223,161,70,.16);
  pointer-events:none;
  z-index:-1;
}
.booking-promise .promise-kicker{color:#eebd73;font-weight:600;letter-spacing:.30em}
.booking-promise h3{color:#fff8eb;text-shadow:0 2px 22px rgba(245,166,58,.14);line-height:1.4}
.booking-promise h3 strong{
  color:#ffc46e;
  font-weight:700;
  font-size:clamp(52px,7vw,98px);
  letter-spacing:.015em;
  text-shadow:0 0 16px rgba(255,159,38,.35),0 0 44px rgba(245,149,29,.14);
}
.booking-promise>p:not(.promise-kicker){color:#f1e4d1}
@media(max-width:720px){
 .booking-promise{padding:44px 17px}
 .booking-promise::before{inset:8px}
 .booking-promise h3 strong{font-size:clamp(44px,12vw,70px)}
}


/* Stronger amber hero emphasis for the 50% BACK section */
.booking-promise{
  padding:clamp(52px,7vw,92px) 28px !important;
  border:1px solid #d19a3d !important;
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,196,94,.36) 0%, rgba(255,196,94,.14) 28%, rgba(255,196,94,0) 58%),
    radial-gradient(circle at 50% 50%, rgba(189,112,23,.18) 0%, rgba(189,112,23,0) 70%),
    linear-gradient(145deg,#24170c 0%,#15171e 40%,#081629 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,235,188,.35),
    inset 0 0 34px rgba(255,184,71,.08),
    0 0 0 1px rgba(255,190,86,.10),
    0 18px 48px rgba(173,98,15,.18) !important;
}
.booking-promise::before{
  inset:12px !important;
  border:1px solid rgba(255,206,128,.24) !important;
}
.booking-promise::after{
  content:"";
  position:absolute;
  left:50%;
  top:-18%;
  transform:translateX(-50%);
  width:min(720px,88%);
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,199,103,.22) 0%, rgba(255,199,103,.09) 38%, rgba(255,199,103,0) 72%);
  filter:blur(12px);
  pointer-events:none;
  z-index:-1;
}
.booking-promise .promise-kicker{
  display:inline-block;
  margin:0 auto 12px;
  padding:7px 14px;
  border:1px solid rgba(255,210,141,.35);
  border-radius:999px;
  background:rgba(255,187,79,.08);
  color:#ffd08a !important;
  font-weight:700 !important;
  letter-spacing:.34em !important;
}
.booking-promise h3{
  margin:10px 0 24px !important;
  font-size:clamp(34px,4.3vw,58px) !important;
  line-height:1.24 !important;
  letter-spacing:.03em !important;
  color:#fffaf0 !important;
  text-shadow:0 3px 28px rgba(255,182,73,.18) !important;
}
.booking-promise h3 span{
  display:inline-block;
  font-size:.95em !important;
}
.booking-promise h3 strong{
  display:block;
  margin-top:12px;
  font-size:clamp(68px,10vw,138px) !important;
  line-height:1.02 !important;
  font-weight:800 !important;
  letter-spacing:.03em !important;
  color:#ffc969 !important;
  text-shadow:
    0 0 12px rgba(255,204,114,.42),
    0 0 34px rgba(255,174,56,.26),
    0 0 72px rgba(208,114,8,.18) !important;
}
.booking-promise>p:not(.promise-kicker){
  max-width:760px !important;
  font-size:15px !important;
  line-height:2.05 !important;
  color:#f7e7cf !important;
}
@media(max-width:720px){
  .booking-promise{padding:42px 16px 44px !important;border-radius:22px}
  .booking-promise::before{inset:8px !important}
  .booking-promise::after{width:96%;height:190px;top:-10%}
  .booking-promise h3{font-size:clamp(28px,7vw,40px) !important}
  .booking-promise h3 strong{font-size:clamp(58px,16vw,94px) !important}
  .booking-promise>p:not(.promise-kicker){font-size:14px !important}
}


/* Strong amber feature panel for the hourly-equivalent catchphrase */
.booking-hourly{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  margin-top:20px;
  padding:42px 24px 38px;
  border:1px solid #d49a43;
  border-radius:20px;
  background:
    radial-gradient(ellipse at 50% 0%,rgba(255,192,76,.29),transparent 68%),
    linear-gradient(145deg,#291a0a 0%,#21190f 45%,#101723 100%);
  box-shadow:0 10px 38px rgba(184,108,24,.17),inset 0 0 22px rgba(252,184,85,.06);
}
.booking-hourly::before,.booking-hourly::after{
  content:"";
  position:absolute;
  height:2px;
  width:clamp(65px,15%,170px);
  top:22px;
  background:linear-gradient(90deg,transparent,#ffcc78,transparent);
  opacity:.85;
}
.booking-hourly::before{left:20px}
.booking-hourly::after{right:20px}
.booking-hourly .hourly-catch{
  color:#ffd27c;
  font-size:clamp(30px,4.6vw,54px);
  font-weight:700;
  line-height:1.35;
  letter-spacing:.025em;
  margin:0 0 18px;
  text-shadow:0 0 17px rgba(255,179,57,.28),0 3px 28px rgba(255,168,42,.14);
}
.booking-hourly p:last-child{color:#f4e4ca;font-size:clamp(13px,1.45vw,16px);line-height:1.95;max-width:760px;margin:0 auto}
@media(max-width:720px){
 .booking-hourly{padding:42px 16px 32px;margin-top:16px;border-radius:15px}
 .booking-hourly::before,.booking-hourly::after{width:46px;top:15px}
 .booking-hourly::before{left:10px}.booking-hourly::after{right:10px}
 .booking-hourly .hourly-catch{font-size:clamp(26px,7vw,37px)}
}


/* Performance selection — matching green outlined choice cards */
.booking-performance-form{border-top:1px solid #2a4969;padding-top:30px;margin-top:12px}
.booking-perform-heading h4,.booking-style-panel h4{font-size:21px;font-weight:600;color:#f5f8fd;margin:9px 0 8px}
.booking-perform-heading p{font-size:13px;color:#afc4da;margin:0 0 18px}
.booking-cast-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.booking-cast-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:150px;border:1px solid #355474;border-radius:15px;background:#0b1d35;color:#f7fbff;font-family:inherit;cursor:pointer;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}
.booking-cast-option strong{font-size:29px;font-weight:600;line-height:1.2}
.booking-cast-option small{font-size:11px;color:#b3c9de;line-height:1.5;text-align:center}
.booking-cast-option .cast-check{display:grid;place-items:center;width:28px;height:28px;border:2px solid #7895ad;border-radius:50%;font-size:18px;font-weight:700;color:transparent;line-height:1}
.booking-cast-option.chosen{background:#0d3125;border-color:#47d596;box-shadow:0 0 0 1px rgba(83,214,145,.4)}
.booking-cast-option.chosen .cast-check{background:#39d58a;color:#072519;border-color:#39d58a}
.booking-stage-notice{margin-top:17px;background:#102136;border:1px solid #385578;border-radius:12px;padding:18px 20px}
.booking-stage-notice strong{display:block;font-size:15px;color:#f3c77d;margin-bottom:7px}
.booking-stage-notice p{font-size:13px;line-height:1.85;color:#cedbeb;margin:0}
.booking-stage-notice .booking-cast-alert:not([hidden]){margin-top:9px;color:#ffce82;font-weight:600}
.booking-style-panel{margin:29px 0 26px}.booking-style-panel h4 small,.booking-instrument-label small{color:#9cb7d2;font-size:12px;font-weight:400}
.booking-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.booking-style-option{border:1px solid #365778;border-radius:12px;background:#0b1d35;color:#e7f0fb;padding:15px 10px;min-height:54px;font-family:inherit;font-size:13px;text-align:center;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.booking-style-option.chosen{background:#0d3125;border-color:#47d596;box-shadow:inset 0 0 0 1px rgba(83,214,145,.25);color:#e0ffec}
.booking-style-option.chosen::before{content:'✓ ';color:#68e9a8;font-weight:700}
.booking-instrument-label{display:block;color:#e4eef9;font-size:13px;margin:20px 0 10px}
.booking-instruments{display:block;width:100%;box-sizing:border-box;border:1px solid #375879;border-radius:10px;background:#091b31;color:#edf4fb;padding:13px 15px;font-family:inherit;font-size:13px;line-height:1.7;resize:vertical}
.booking-instruments::placeholder{color:#849fba}
.booking-instruments:focus-visible,.booking-cast-option:focus-visible,.booking-style-option:focus-visible{outline:2px solid #8be9b0;outline-offset:3px}
@media(hover:hover) and (pointer:fine){.booking-cast-option:not(.chosen):hover,.booking-style-option:not(.chosen):hover{background:#103b2c;border-color:#35c585;transform:translateY(-2px)}}
@media(max-width:720px){.booking-cast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-cast-option{min-height:133px}.booking-style-grid{grid-template-columns:1fr}.booking-stage-notice{padding:15px}.booking-perform-heading h4,.booking-style-panel h4{font-size:19px}}
@media(prefers-reduced-motion:reduce){.booking-cast-option,.booking-style-option{transition:none}}

/* Disable LINE prefill link until required selections are complete */
.booking-line.is-disabled{opacity:.42;cursor:not-allowed;pointer-events:none;filter:grayscale(.6)}
.booking-line:not(.is-disabled){background:#176842;border-color:#83e8ab;color:#fff;transition:background .2s,border-color .2s}
.booking-line:not(.is-disabled):hover{background:#248b61;border-color:#b7f5ce}


/* Consistent live SVG controls on every inner-page header. */
.top-header{overflow:visible;isolation:isolate}
.top-header-links{z-index:15;overflow:visible}
.top-header-links .x-link,.top-header-links .instagram,.top-header-links .menu{
  position:absolute;display:flex;align-items:center;justify-content:center;
  top:15% !important;height:68% !important;width:3.25% !important;
  padding:0;margin:0;border:0;background:transparent;color:#f8faff;
  line-height:normal;cursor:pointer;pointer-events:auto;
}
.top-header-links .x-link{left:82.25% !important}
.top-header-links .instagram{left:85.7% !important}
.top-header-links .menu{left:92.05% !important;width:3.65% !important}
.top-header-links .x-link svg,.top-header-links .instagram svg,.top-header-links .menu svg{
  width:71%;height:71%;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}
.top-header-links .menu svg{width:85%;height:85%}
.top-header-links .x-link:hover,.top-header-links .instagram:hover,.top-header-links .menu:hover{color:#9ed1ff}
.top-header-links .line-menu{
  position:absolute;left:89.1%;top:15%;width:3.25%;height:68%;
  pointer-events:auto;z-index:30;line-height:normal;
}
.top-header-links .line-trigger{
  display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  margin:0;padding:0;border:0;background:transparent;color:#f8faff;cursor:pointer;
}
.top-header-links .line-trigger::before,.top-header-links .line-trigger::after{display:none}
.top-header-links .line-trigger svg{display:block;width:91%;height:91%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.top-header-links .line-trigger:hover{color:#9ed1ff}
.top-header-links .line-popup{
  position:absolute;top:calc(100% + 9px);right:0;width:min(340px,34vw);min-width:270px;
  padding:10px;background:rgba(3,12,28,.97);border:1px solid rgba(255,255,255,.2);
  box-shadow:0 14px 34px rgba(0,0,0,.4);opacity:0;visibility:hidden;
  transform:translateY(8px);transition:opacity .2s,visibility .2s,transform .2s;
  z-index:50;line-height:1.5;
}
.top-header-links .line-popup a{position:static !important;display:block !important;height:auto !important;padding:12px 14px !important;text-decoration:none;color:white;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04)}
.top-header-links .line-popup a+a{margin-top:9px}
.top-header-links .line-popup a:hover{background:rgba(6,199,85,.14);border-color:rgba(6,199,85,.45)}
.top-header-links .line-popup-title{display:block;font-size:13px;font-weight:700;line-height:1.5}
.top-header-links .line-popup-url{display:block;font-size:11px;color:#c3d2df;margin-top:5px}
.top-header-links .line-menu:hover .line-popup,.top-header-links .line-menu:focus-within .line-popup{opacity:1;visibility:visible;transform:translateY(0)}
.top-header-links .x-link:focus-visible,.top-header-links .instagram:focus-visible,.top-header-links .menu:focus-visible,.top-header-links .line-trigger:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:720px){.top-header-links .line-popup{width:280px;min-width:280px;right:-10px}}


/* === Unified top-page social/menu icon layout for this page === */
.top-header{overflow:visible;isolation:isolate}
.top-header-links{position:absolute;inset:0;z-index:20;overflow:visible;pointer-events:none}
.top-header-links::after{
  content:"";
  position:absolute;
  left:79.8%;
  top:14%;
  width:1px;
  height:66%;
  background:rgba(255,255,255,.68);
  pointer-events:none;
}
.top-header-links .brand-logo,
.top-header-links .home,
.top-header-links .schedule,
.top-header-links .artists,
.top-header-links .studio,
.top-header-links .contact{pointer-events:auto}
.top-header-links .x-link,
.top-header-links .instagram,
.top-header-links .menu,
.top-header-links .line-menu{
  position:absolute;
  top:14.5% !important;
  height:66% !important;
  pointer-events:auto;
  line-height:normal;
}
.top-header-links .x-link,
.top-header-links .instagram,
.top-header-links .menu{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#f8faff;
  cursor:pointer;
}
.top-header-links .x-link{left:81.9% !important;width:3.6% !important}
.top-header-links .instagram{left:85.8% !important;width:3.6% !important}
.top-header-links .line-menu{left:89.7% !important;width:3.6% !important;min-width:0}
.top-header-links .menu{left:93.6% !important;width:3.6% !important}
.top-header-links .x-link svg,
.top-header-links .instagram svg,
.top-header-links .menu svg,
.top-header-links .line-trigger svg{
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.top-header-links .x-link svg,
.top-header-links .instagram svg,
.top-header-links .menu svg{width:78%;height:78%;stroke-width:1.7}
.top-header-links .menu svg{width:85%;height:85%;stroke-width:1.75}
.top-header-links .x-link:hover,
.top-header-links .instagram:hover,
.top-header-links .menu:hover,
.top-header-links .line-trigger:hover,
.top-header-links .x-link:focus-visible,
.top-header-links .instagram:focus-visible,
.top-header-links .menu:focus-visible,
.top-header-links .line-trigger:focus-visible{color:#9ed1ff}
.top-header-links .line-trigger{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  color:#f8faff;
  cursor:pointer;
}
.top-header-links .line-trigger::before,
.top-header-links .line-trigger::after{display:none}
.top-header-links .line-trigger svg{display:block;width:90%;height:90%;stroke-width:1.8}
.top-header-links .line-trigger text{paint-order:stroke;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}
.top-header-links .line-popup{
  position:absolute;
  top:calc(100% + 9px);
  right:0;
  width:min(340px,34vw);
  min-width:270px;
  padding:10px;
  background:rgba(3,12,28,.97);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 14px 34px rgba(0,0,0,.4);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .2s,visibility .2s,transform .2s;
  z-index:50;
  line-height:1.5;
}
.top-header-links .line-popup a{position:static !important;display:block !important;height:auto !important;padding:12px 14px !important;text-decoration:none;color:white;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04)}
.top-header-links .line-popup a+a{margin-top:9px}
.top-header-links .line-popup a:hover,
.top-header-links .line-popup a:focus-visible{background:rgba(6,199,85,.14);border-color:rgba(6,199,85,.45);outline:none}
.top-header-links .line-popup-title{display:block;font-size:13px;font-weight:700;line-height:1.5}
.top-header-links .line-popup-url{display:block;font-size:11px;color:#c3d2df;margin-top:5px}
.top-header-links .line-menu:hover .line-popup,.top-header-links .line-menu:focus-within .line-popup{opacity:1;visibility:visible;transform:translateY(0)}
.top-header-links .x-link:focus-visible,.top-header-links .instagram:focus-visible,.top-header-links .menu:focus-visible,.top-header-links .line-trigger:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:720px){.top-header-links .line-popup{width:280px;min-width:280px;right:-10px}}

/* BOOKING LIVE only: preserve the original two-column introduction.
   HALL RENTAL intentionally uses a stacked intro, so do not change its CSS. */
@media (min-width:721px) {
  body .intro {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
    gap:52px;
    align-items:center;
  }
  body .intro .copy {min-width:0;}
  body .intro > img {width:100%;height:330px;aspect-ratio:auto;object-fit:cover;}
}
@media (max-width:720px) {
  body .intro {display:grid;grid-template-columns:minmax(0,1fr);gap:24px;}
  body .intro > img {width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;}
}

/* 2026-10-17: 開催日の○を大きく見やすく（－は変更しない） */
.booking-week-controls .booking-day:not(:disabled) .booking-day-mark {
  font-size: 36px;
  line-height: 1;
  min-height: 36px;
  font-weight: 500;
  color: #dcffe9;
}
@media (max-width:720px) {
  .booking-week-controls .booking-day:not(:disabled) .booking-day-mark {
    font-size: 27px;
    min-height: 27px;
  }
}
