/* BIJOU 1.3: targeted visual refinements; layout and Core contracts retained. */
.section-heading h2, .intro-band h2, .access-band h2, .recruit-band h2 {
  word-break: keep-all;
  overflow-wrap: normal;
  text-wrap: balance;
}
.section-heading h2 > span { display: inline-block; }
.section-heading .eyebrow, .intro-band .eyebrow, .access-band .eyebrow {
  gap: .65rem;
  font-family: Georgia, serif;
  font-size: .72rem;
  letter-spacing: .2em;
}
.section-heading .eyebrow::before, .intro-band .eyebrow::before, .access-band .eyebrow::before {
  content: "◇";
  width: auto;
  height: auto;
  background: none;
  color: var(--color-gold);
  font-size: .9rem;
  line-height: 1;
}
.section-heading .eyebrow::after, .intro-band .eyebrow::after, .access-band .eyebrow::after {
  content: "";
  width: 30px;
  height: 1px;
  background: #c4aa74;
}
.section-heading--center .eyebrow::before { content: "◇"; }
.cast-card, .schedule-card { border: 1px solid #d5c4a5; box-shadow: 0 3px 12px rgb(27 19 26 / 3%); }
.cast-card__image, .schedule-card__image { aspect-ratio: 4 / 5; border-bottom: 1px solid #c3a56c; background: #fff9f4; }
.cast-card__portrait, .schedule-card__portrait, .cast-profile-hero__portrait { filter: none; object-fit: contain; background: #fff9f4; }
.cast-card__body, .schedule-card__body { background: #fffdfa; padding: 1.15rem .9rem; }
.cast-card__name, .schedule-card h3 { font-family: var(--font-serif); font-size: 1.5rem; letter-spacing: .06em; }
.cast-card__types { color: #776343; }
.cast-card__badges { gap: 4px; right: 8px; }
.cast-card .badge { min-height: 23px; padding: .2rem .45rem; font-size: .58rem; letter-spacing: .04em; }
.badge--new { background: #e4c77d; border: 1px solid #b3985f; color: #221a22; }
.badge--featured { background: #171216; border: 1px solid #b3985f; color: #f1dfb1; }
.badge--today, .badge--active { background: #a70f59; border: 1px solid #a70f59; color: #fff; }
.badge--upcoming { background: #e4c77d; color: #302316; border: 1px solid #b3985f; }
.badge--ended { background: #e8e5e2; color: #59524f; border: 1px solid #cac5c0; }
.schedule-card__today { position: absolute; top: 8px; left: 8px; }
.schedule-chip { display: flex; width: 100%; justify-content: center; min-height: 32px; padding: .4rem .25rem; font-size: .8rem; font-variant-numeric: tabular-nums; }
.schedule-chip.is-off { background: #efebe5; color: #6a6259; }
.schedule-chip.is-working { background: #a70f59; color: #fff; }
.cast-card .text-link { font-size: .76rem; color: #6d5427; text-underline-offset: 5px; }
.cast-card .text-link:hover { color: #a70f59; }
.intro-band { background: #151116; color: #ded4ce; border-block: 1px solid #72582c; }
.intro-band__content h2 { color: #fff9f4; }
.intro-band .eyebrow { color: #f1dfb1; }
.intro-band__visual { min-height: 360px; }
.intro-band__content p { line-height: 1.9; }
.intro-band .button { background: transparent; color: #f1dfb1; border-color: #b59862; }
.intro-band .button:hover { background: #352934; }
.bijou-visit-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; padding: 0; margin: 1.25rem 0; list-style: none; }
.bijou-visit-steps li { border-top: 1px solid #796341; }
.bijou-visit-steps a { display: flex; min-height: 99px; flex-direction: column; gap: .35rem; padding: .7rem .3rem; text-decoration: none; color: #fff9f4; }
.bijou-visit-steps a:hover { background: #2a2029; }
.bijou-visit-steps span { color: #dfc88f; font: 1.35rem Georgia,serif; }
.bijou-visit-steps strong { font-size: .8rem; font-weight: 500; line-height: 1.7; }
.price-summary article { gap: .65rem; border: 1px solid #cfb98d; background: #fffdfa; box-shadow: none; }
.price-summary article::before { inset: 7px; border-color: #eee5d4; }
.price-summary .price-summary__english { color: #84611c; font: .76rem Georgia,serif; letter-spacing: .18em; }
.price-summary strong { font: 3.3rem/1.2 Georgia,serif; color: #a70f59; letter-spacing: -.03em; }
.price-summary article > span:not(.price-summary__english) { font-size: .9rem; }
.price-summary article > small { color: #8b7b63; font-size: .6rem; letter-spacing: .16em; }
.diary-card, .diary-card__image, .diary-card__body { background: #fffdfa; }
.diary-card__image { border-bottom: 1px solid #d0b882; }
.diary-card__photo { filter: none; }
.diary-card__author { color: #6d5427; }
.diary-card__body > p:not(.diary-card__author) { color: #6e606b; }
.section--events { background: #0c0a0d; }
.section--events .empty-state { background: #211a22; color: #f1e8dc; border-color: #76613d; }
.section--events .empty-state p { color: #d6ccc2; }
.section--coupons { background: #fff9f4; }
.coupon-card__ticket { position: relative; background: #fffdf9; border: 1px solid #bea46e; padding: 2rem 1.6rem; }
.coupon-card__ticket::before { display: block; position: absolute; inset: 7px; width: auto; height: auto; border: 1px solid #e6d8bc; border-radius: 0; background: none; transform: none; pointer-events: none; }
.coupon-card__ticket::after { display: none; }
.coupon-card__eyebrow { font-size: .7rem; letter-spacing: .14em; flex-wrap: wrap; gap: .5rem; }
.coupon-card__eyebrow span { font-size: .55rem; letter-spacing: .08em; color: #847455; }
.coupon-card__discount { font-size: clamp(1.7rem,3vw,2.2rem); line-height: 1.45; font-weight: 500; }
.coupon-card h2 { font-size: 1.1rem; }
.coupon-card__notice { font-size: .75rem; }
.coupon-grid:has(> :only-child) { grid-template-columns: minmax(0,620px); justify-content: center; }
.access-band__station { color: #44331c; font-family: var(--font-serif); font-size: 1.65rem; line-height: 1.65; font-weight: 500; text-wrap: balance; word-break: keep-all; }
.recruit-band { background: #0c0a0d; }
.recruit-band__actions .button { min-height: 52px; font-size: .95rem; }
.recruit-band__actions .button--secondary { background: #221a22; border-color: #b59862; color: #f1dfb1; }
.recruit-band__actions .button--secondary:hover { background: #3a2c38; }
.site-footer__nav a { font-size: 13px; line-height: 1.9; padding-block: .35rem; }
.site-footer__nav h2 { font-size: .95rem; letter-spacing: .06em; }
.site-footer__copyright small { font-size: 12px; line-height: 1.8; }
.sticky-actions a:last-child { background: #151116; }
.sticky-actions a.sticky-actions__primary { background: #a70f59; color: #fff; }
.sticky-actions a[aria-current="page"] { color: #f1dfb1; box-shadow: inset 0 2px #c79b3b; }
.sticky-actions a:hover, .sticky-actions a:focus-visible { color: #f1dfb1; outline-offset: -3px; }
.bijou-show-more { display: none; }
@media (max-width: 767px) {
  .home .section { padding-block: 2.8rem; }
  .section-heading { gap: .8rem; margin-bottom: 1.5rem; }
  .section-heading h2 { font-size: 1.5rem; line-height: 1.55; }
  .section-heading .text-link { font-size: .78rem; }
  .cast-grid { gap: .85rem; }
  .cast-card__body, .schedule-card__body { padding: .8rem .65rem; }
  .cast-card__name, .schedule-card h3 { font-size: 1.35rem; }
  .cast-profile-compact { font-size: .72rem; }
  .cast-card__types { font-size: .64rem; }
  .cast-card .text-link { min-height: 44px; display: inline-flex; align-items: center; font-size: .72rem; }
  .schedule-chip { font-size: .74rem; }
  .home .bijou-collapsible[data-expanded="false"] > :nth-child(n+5) { display: none; }
  .bijou-show-more { display: block; min-height: 48px; min-width: 180px; margin: 1.1rem auto 0; padding: .65rem 1.25rem; border: 1px solid #b79b67; border-radius: 3px; background: transparent; color: #5f4823; font: inherit; font-size: .87rem; cursor: pointer; }
  .bijou-show-more:hover { background: #f2e8d7; }
  .home section[aria-labelledby="news-title"] .news-list > :nth-child(n+4) { display: none; }
  .intro-band__inner { gap: 1.3rem; }
  .intro-band__visual { min-height: 160px; max-height: 180px; }
  .intro-band__visual span { font-size: 1rem; margin-bottom: .3rem; }
  .intro-band__visual strong { font-size: 1.15rem; }
  .intro-band__content p { font-size: .85rem; margin-block: .65rem; }
  .bijou-visit-steps { gap: .5rem; margin-block: .85rem; }
  .bijou-visit-steps strong { font-size: .76rem; }
  .intro-band .button { width: 100%; min-height: 48px; }
  .price-summary { grid-template-columns: 1fr; gap: .65rem; }
  .price-summary article { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; text-align: left; padding: 1.1rem; gap: .35rem .6rem; }
  .price-summary article > .price-summary__english { grid-column: 1; grid-row: 1; font-size: .68rem; }
  .price-summary strong { grid-column: 2; grid-row: 1 / 4; font-size: 2.3rem; }
  .price-summary article > span:not(.price-summary__english) { grid-column: 1; font-size: .75rem; }
  .price-summary article > small { grid-column: 1; }
  .diary-grid { gap: 1rem; }
  .diary-card__body { padding: 1rem; }
  .news-card { padding-block: 1.1rem; }
  .access-band__inner { gap: 1.2rem; }
  .access-band__content { order: -1; }
  .access-band__station { font-size: 1.6rem; max-width: 12em; }
  .access-band__map { height: 210px; }
  .access-band__map img { min-height: 0; object-fit: contain; }
  .site-footer__nav { gap: 1.5rem 1rem; }
  .recruit-band__actions { width: 100%; }
  .recruit-band__actions .button { min-height: 52px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .cast-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .section-heading h2 { font-size: 1.8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cast-card:hover .cast-card__portrait, .schedule-card:hover .schedule-card__portrait { transform: none; }
}

/* Label-only cleanup: retain navigation and information footprints. */
[aria-disabled="true"] { cursor: default; opacity: .6; }
a[aria-disabled="true"] { pointer-events: none; }
.text-link, .site-footer__nav a { display: inline-flex; align-items: center; min-height: 44px; }
.button, button, .social-links a { min-height: 44px; }
.diary-card__image { aspect-ratio: 3 / 2; }
.cast-card__body { display: flex; flex-direction: column; }
.cast-card__name { order: 0; }
.cast-card__body .schedule-chip { order: 1; }
.cast-card__profile { order: 2; }
.cast-card__types { order: 3; }
.cast-card__body > .text-link { order: 4; }
:where(main section,main h2)[id] { scroll-margin-top: 110px; }

/* BIJOU 1.4 finishing tokens: no layout, imagery or interaction changes. */
:root {
  --section-space: 56px;
  --section-space-compact: 44px;
  --heading-gap: 28px;
  --bijou-card-border: #d5c4a5;
  --bijou-card-shadow: 0 3px 12px rgb(27 19 26 / 3%);
  --bijou-dark-copy: #f3ede1;
  --bijou-dark-muted: #d6cec4;
}
.section, .home .section { padding-block: var(--section-space); }
.social-section, .home .social-section, .closing-cta, .home .recruit-band { padding-block: var(--section-space-compact); }
.section-heading { margin-bottom: var(--heading-gap); gap: 16px; }
.section-heading h2, .intro-band__content h2, .access-band__content h2, .recruit-band h2 {
  font-size: 26px;
  line-height: 1.5;
  letter-spacing: .06em;
  word-break: keep-all;
  overflow-wrap: normal;
}
.section-heading .eyebrow, .intro-band .eyebrow, .access-band .eyebrow, .recruit-band .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-family: Georgia, serif;
  font-size: 11px;
  line-height: 1.4;
  letter-spacing: .2em;
}
.section-heading .eyebrow::before, .intro-band .eyebrow::before, .access-band .eyebrow::before, .recruit-band .eyebrow::before {
  content: "◇";
  flex: 0 0 auto;
  width: auto;
  height: auto;
  background: none;
  color: var(--color-gold);
  font-size: 14px;
  line-height: 1;
}
.section-heading .eyebrow::after, .intro-band .eyebrow::after, .access-band .eyebrow::after, .recruit-band .eyebrow::after {
  content: "";
  flex: 0 0 30px;
  width: 30px;
  height: 1px;
  background: var(--color-gold);
}
.intro-band__content h2, .access-band__content h2, .recruit-band h2 { margin-bottom: var(--heading-gap); }
.cast-card, .schedule-card, .diary-card, .event-card, .price-table-card, .feature-grid article, .benefit-grid article, .job-grid article, .step-grid li {
  border: 1px solid var(--bijou-card-border);
  box-shadow: var(--bijou-card-shadow);
}
.price-table-card--accent { border-color: #b59862; }
.cast-card__body, .schedule-card__body { padding: 14px 12px; line-height: 1.5; }
.cast-card__name, .schedule-card h3 { font-size: 21px; line-height: 1.5; }
.cast-profile-compact { font-size: 12px; line-height: 1.5; gap: 3px 8px; }
.cast-card__types, .schedule-card__note { font-size: 11.5px; line-height: 1.5; }
.schedule-chip { font-size: 12px; line-height: 1.5; }
.badge, .cast-card .badge { font-size: 11.5px; line-height: 1.4; min-height: 24px; }
.cast-card__badges { align-items: flex-start; gap: 4px; }
.cast-card__badges .badge--today { order: -1; }
.cast-card .text-link { font-size: 14px; letter-spacing: 0; gap: 2px; }
.button, .button--small, button, .hero__actions .button, .bijou-show-more, .text-link, .section-heading .text-link {
  min-height: 44px;
  font-size: 14px;
}
.hero__actions .button:first-child, .recruit-band__actions .button:first-child, .coupon-card .button { background: var(--color-pink-deep); color: #fff; }
.hero__actions .button--secondary, .recruit-band__actions .button--secondary { background: var(--color-charcoal); border-color: #b59862; color: var(--color-gold-light); }
.hero__actions .button--secondary:hover, .recruit-band__actions .button--secondary:hover { background: #3a2c38; }
.intro-band__content p, .hero__lead, .diary-card__body > p:not(.diary-card__author), .event-card__body > p, .news-card > p, .empty-state p { font-size: 14px; }
.schedule-tab small, .diary-card__date, .diary-card__author, .event-card__date, .news-card__date, .breadcrumb, .week-schedule__day small, .miel-form-wrap .required { font-size: 12px; }
.hero__lead, .intro-band__content, .recruit-band, .section--events, .age-gate__panel { color: var(--bijou-dark-copy); }
.intro-band__content p, .recruit-band p:not(.eyebrow), .section--events .empty-state p, .site-footer__intro p, .site-footer address, .site-footer__copyright { color: var(--bijou-dark-muted); }
.site-footer__intro p, .site-footer address { font-size: 14px; }
.site-footer__nav h2 { color: var(--color-gold-light); font-size: 15px; line-height: 1.6; }
.site-footer__nav a { font-size: 13px; line-height: 1.7; color: var(--bijou-dark-copy); }
.site-footer__nav a:hover, .site-footer__nav a:focus-visible { color: var(--color-gold-light); }
.site-footer { padding-bottom: 40px; }
.sticky-actions a { min-height: 44px; font-size: 12px; }
.sticky-actions a > span:only-child { font-size: 14px; }
.diary-card__meta, .diary-card__meta time, .menu-toggle__label { font-size: 12px; }
.step-grid p, .feature-grid p, .benefit-grid p, .job-grid p, .info-table dd, .price-table-card dd, .miel-form-wrap .club-miel-field label { font-size: 14px; }
.welcome-message h2 { font-size: 26px; line-height: 1.6; text-wrap: balance; }
.button-row .button--secondary { background: var(--color-charcoal); border-color: #b59862; color: var(--color-gold-light); }
.button-row .button--ghost { background: var(--color-ivory); border-color: #bba47a; color: var(--color-pink-deep); }
@media (max-width: 1023px) {
  body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
  .site-footer { padding-bottom: 60px; }
}
@media (max-width: 380px) {
  .cast-card .text-link > span { display: none; }
}
@media (min-width: 768px) {
  :root { --section-space: 88px; --section-space-compact: 64px; --heading-gap: 36px; }
  .section-heading h2, .intro-band__content h2, .access-band__content h2, .recruit-band h2 { font-size: 32px; }
  .cast-card__body, .schedule-card__body { padding: 18px 14px; }
  .cast-card__name, .schedule-card h3 { font-size: 24px; }
  .site-footer__nav a { font-size: 14px; }
}

/* Address-only fallback until a verified map embed is configured. */
.bijou-map-address { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-height: 300px; height: 100%; padding: 28px 20px; text-align: center; background: #181613; color: #f3ede1; border: 1px solid #b59862; }
.bijou-map-address h3 { margin: 0; color: #d7bd82; font: 32px Georgia,serif; letter-spacing: .12em; }
.bijou-map-address p { margin: 0; max-width: 36em; overflow-wrap: anywhere; }
.bijou-map-address .button { max-width: 100%; white-space: normal; }
.price-table-card dl div { gap: 12px; }
.price-table-card dt, .price-table-card dd { min-width: 0; overflow-wrap: anywhere; }
.price-table-card__large { font-size: clamp(22px, 3vw, 32px); }

/* Keep the entire interactive map, including Google's attribution, visible. */
.access-band__map:has(.bijou-map-embed) { height: auto; }
.access-band__map .bijou-map-embed,
.access-layout__map .bijou-map-embed {
  display: block;
  width: 100%;
  height: clamp(280px, 36vw, 420px);
  min-height: 280px;
  border: 0;
}
.bijou-map-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 16px;
  background: #181613;
  color: #f3ede1;
  border-top: 1px solid #b59862;
  font-size: 13px;
  text-decoration: none;
}
.bijou-map-link:hover { color: #d7bd82; text-decoration: underline; }
.bijou-map-link:focus-visible { outline: 2px solid #d7bd82; outline-offset: -4px; }
.news-card__meta:has(.news-card__thumbnail) { flex-wrap: wrap; }
.news-card__thumbnail { display: block; flex-basis: 100%; max-width: 195px; }
.news-card__thumbnail img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }

/* Mobile-first copy grouping: keep phrases, times and prices intact. */
.coupon-card h2 { text-wrap: balance; line-height: 1.7; }
.coupon-card__title-line { display: inline-block; }
.coupon-card__discount--timed { margin-block: 1rem; }
.coupon-card__offer { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: .3rem 1rem; padding-block: .85rem; }
.coupon-card__offer + .coupon-card__offer { border-top: 1px solid var(--color-border); }
.coupon-card__time { color: #5d5143; font: 500 15px/1.6 var(--font-sans); white-space: nowrap; }
.coupon-card__amount { white-space: nowrap; line-height: 1.3; }
.coupon-card__offer-note { grid-column: 1 / -1; justify-self: end; color: #5d5143; font: 400 13px/1.6 var(--font-sans); white-space: nowrap; }
.coupon-card dd { white-space: pre-line; }
@media (max-width: 767px) {
  body { min-width: 0; }
  .hero__copy-line { display: block; white-space: nowrap; }
  .hero__tagline { font-size: clamp(19px,5.2vw,24px); line-height: 1.75; letter-spacing: .035em; }
  .hero__lead { max-width: none; margin-top: 1rem; font-size: clamp(12px,3.5vw,14px); line-height: 1.9; letter-spacing: 0; }
  .hero__inner { min-height: 0; padding-block: 2.25rem 2.5rem; }
  .hero__actions { margin-top: 1.25rem; }
  .coupon-card__ticket { padding: 1.5rem 1.25rem; }
  .coupon-card h2 { max-width: 17em; margin-inline: auto; font-size: 17px; }
  .coupon-card__title-line { display: block; }
  .coupon-card__offer { grid-template-columns: minmax(0,1fr); gap: .35rem; padding-block: .9rem; }
  .coupon-card__discount--timed { font-size: clamp(26px,7.2vw,32px); }
  .coupon-card__time { font-size: 14px; }
  .coupon-card__offer-note { grid-column: 1; justify-self: start; }
  .coupon-card dl { font-size: 13px; line-height: 1.9; }
  .coupon-card dl div { grid-template-columns: 1fr; gap: .2rem; padding-block: .75rem; }
  .coupon-card dt { color: #6d5427; }
  .coupon-card dd { min-width: 0; overflow-wrap: anywhere; }
  .single-club_coupon .page-hero h1 { font-size: clamp(22px,6.2vw,28px); line-height: 1.6; text-wrap: balance; }
  .single-club_coupon .page-hero { padding-block: 2.5rem; }
  .coupon-description { font-size: 14px; line-height: 1.9; }
  .coupon-description p strong { display: inline-block; }
}
