/* Minimalist original-preview typography: all sans-serif, no Georgia or display serifs. */
:root {
  --bg: #17111F;
  --bg-alt: #1B1423;
  --surface: #29202F;
  --text: #F2EFF2;
  --label: #A9988E;
  --muted: #BDB2BF;
  --rule: #493B4D;
  --ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--ui-font); font-weight: 400; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, .stat strong, .tour-date, .tour-city { font-family: var(--ui-font); font-weight: 400; letter-spacing: -0.035em; color: var(--text); }
.hero { background: var(--bg); }
.hero img { display: block; width: 100%; height: auto; object-fit: cover; }
.section { padding: 80px 8%; }
.container { max-width: 1160px; margin: 0 auto; }
.eyebrow { font-family: var(--ui-font); font-size: 10px; font-weight: 500; line-height: 1.7; letter-spacing: .20em; text-transform: uppercase; color: var(--label); margin-bottom: 17px; }
h1, h2 { font-size: clamp(30px, 4.3vw, 53px); line-height: 1.17; margin-bottom: 44px; }
.intro { background: var(--bg); text-align: center; }
.intro h1 { margin: 15px 0 0; }
.statistics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 42px; }
.stat { text-align: center; padding: 12px 10px; border-right: 1px solid var(--rule); }
.stat:last-child { border: 0; }
.stat strong { display: block; font-size: clamp(32px, 5.3vw, 64px); line-height: 1.05; }
.stat span { display: block; margin-top: 13px; font-size: 10px; line-height: 1.6; font-weight: 400; letter-spacing: .14em; color: var(--muted); }
.performances { background: var(--bg-alt); }
.performance { margin-bottom: 66px; }
.performance:last-child { margin-bottom: 0; }
.performance-index { margin: 0 0 12px; color: var(--label); font-size: 10px; line-height: 1.6; letter-spacing: .18em; }
.performance-index strong { font-weight: 700; color: var(--label); }
.performance-index span { font-weight: 400; }
.performance h3 { margin-bottom: 23px; font-size: clamp(23px, 2.8vw, 30px); line-height: 1.3; }
.video-frame { aspect-ratio: 16 / 9; width: 100%; background: var(--surface); border: 1px solid #45384B; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; }
.video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.play-icon { width: 58px; height: 58px; border: 1px solid var(--text); border-radius: 50%; display: grid; place-items: center; padding-left: 3px; font-size: 19px; color: var(--text); }
.video-hint { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.tour { background: var(--bg); }
.tour h2 { margin-bottom: 38px; }
.tour-row { display: grid; grid-template-columns: 75px minmax(0,1fr) 50px; align-items: center; gap: 15px; border-top: 1px solid var(--rule); padding: 23px 0; }
.tour-row:last-child { border-bottom: 1px solid var(--rule); }
.tour-date { font-size: 16px; letter-spacing: -.015em; white-space: nowrap; }
.tour-city { font-size: 18px; letter-spacing: -.015em; }
.tour-venue { font-size: 12px; margin-top: 7px; color: var(--muted); }
.tour-link { display: block; padding: 10px 9px 10px 0; text-align: center; font-size: 23px; text-decoration: none; transition: opacity .2s; }
.tour-link:hover, .booking-link:hover { opacity: .7; }
.disclaimer { margin: 20px 0 0; font-size: 11px; color: var(--muted); }
.booking { background: var(--bg-alt); text-align: center; }
.booking h2 { margin-bottom: 35px; }
.booking-link { display: inline-block; border: 1px solid var(--muted); padding: 17px 24px; font-size: 10px; font-weight: 500; letter-spacing: .15em; text-decoration: none; }
@media (max-width: 600px) {
  .section { padding: 50px 7%; }
  h1, h2 { font-size: clamp(27px, 6vw, 40px); }
  .statistics { margin-top: 35px; }
  .stat { padding: 10px 4px; }
  .stat strong { font-size: clamp(26px, 7vw, 44px); }
  .stat span { font-size: 8px; letter-spacing: .07em; }
  .performance { margin-bottom: 54px; }
  .tour-row { grid-template-columns: 70px minmax(0,1fr) 30px; gap: 10px; }
  .tour-date { font-size: 14px; }
  .tour-city { font-size: 16px; }
  .tour-link { padding-right: 2px; }
}

/* Editorial endorsements inserted between the existing video sections. */
.editorial-quote {
  margin: 0 0 66px;
  padding: 8px 7% 16px;
  text-align: center;
  border: 0;
}
.editorial-quote p {
  max-width: 780px;
  margin: 0 auto 22px;
  color: var(--text);
  font-family: var(--ui-font);
  font-size: clamp(18px, 2.35vw, 27px);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: -0.025em;
}
.editorial-quote cite {
  display: block;
  font-family: var(--ui-font);
  font-size: 10px;
  font-weight: 600;
  font-style: normal;
  letter-spacing: .20em;
  color: var(--label);
}
@media (max-width: 600px) {
  .editorial-quote { margin-bottom: 54px; padding: 0 2% 8px; }
  .editorial-quote p { font-size: 19px; line-height: 1.55; }
}

/* Targeted refinements: visible video numbers, italic quotes, linked tour dates, minimal footer. */
.performance-index,
.performance-index strong,
.performance-index span { color: var(--label) !important; opacity: 1; }
.performance-index strong { -webkit-text-fill-color: var(--label); }
.editorial-quote p { font-style: italic; }
.tour-year { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; letter-spacing: .10em; }
.tour-link { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; white-space: nowrap; color: var(--text); font-size: 10px; font-weight: 500; letter-spacing: .10em; }
.tour-link span { font-size: 20px; font-weight: 400; letter-spacing: normal; }
.tour-row { grid-template-columns: 78px minmax(0,1fr) 98px; }
.site-footer { background: var(--bg); border-top: 1px solid var(--rule); padding: 32px 8%; }
.footer-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px 24px; color: var(--muted); font-size: 11px; }
.site-footer a { text-decoration: none; transition: color .2s; }
.site-footer a:hover { color: var(--text); }
@media (max-width: 600px) {
  .tour-row { grid-template-columns: 59px minmax(0,1fr) 64px; gap: 10px; }
  .tour-link { font-size: 9px; gap: 3px; padding-right: 0; }
  .tour-link span { font-size: 17px; }
  .tour-year { font-size: 9px; }
  .site-footer { padding: 28px 7%; }
  .footer-inner { gap: 13px 20px; }
}

/* 2026 video embeds: preserve the 16:9 original design on every screen. */
.video-frame { position: relative; overflow: hidden; min-width: 0; }
.video-frame iframe { display: block; width: 100%; height: 100%; border: 0; aspect-ratio: 16 / 9; }
.performance h3 { overflow-wrap: anywhere; }
.tour-place { min-width: 0; }
.tour-venue { overflow-wrap: anywhere; }
@media (max-width: 768px) {
  .section { padding: 56px 7%; }
  .tour-row { grid-template-columns: 66px minmax(0, 1fr) 76px; gap: 10px; }
  .tour-link { font-size: 10px; padding-right: 0; }
  .editorial-quote { padding-left: 1%; padding-right: 1%; }
}
@media (max-width: 600px) {
  .section { padding: 50px 7%; }
  .tour-row { grid-template-columns: 59px minmax(0, 1fr) 64px; }
  .tour-link { font-size: 9px; }
}
@media (max-width: 380px) {
  .stat strong { font-size: 25px; }
  .stat span { font-size: 7px; letter-spacing: .035em; }
  .tour-row { grid-template-columns: 50px minmax(0, 1fr) 55px; gap: 6px; }
  .tour-date { font-size: 12px; }
  .tour-city { font-size: 14px; }
  .tour-venue { font-size: 11px; }
  .tour-link { font-size: 8px; gap: 2px; }
  .tour-link span { font-size: 15px; }
}

/* Requested update — scale only the intro's large text. Micro-labels retain legibility. */
.intro h1 { font-size: clamp(24px, 3.44vw, 42.4px); }
.intro .stat strong { font-size: clamp(25.6px, 4.24vw, 51.2px); }
/* Decorative review-star treatment; source quotations are reproduced unchanged. */
.editorial-quote .quote-stars {
  margin-top: 16px;
  color: #FFFFFF;
  font-size: 20px;
  line-height: 1;
  letter-spacing: .20em;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .intro h1 { font-size: clamp(24.3px, 5.4vw, 36px); }
  .intro .stat strong { font-size: clamp(23.4px, 6.3vw, 39.6px); }
  .editorial-quote .quote-stars { font-size: 17px; margin-top: 14px; }
}


/* About Taimane: replaces only the old performances section heading. */
.about-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
  gap: clamp(32px, 6vw, 90px);
  margin: 0 0 84px;
}
.about-feature h2 {
  margin: 0 0 25px;
  font-size: clamp(30px, 4.15vw, 51px);
  line-height: 1.15;
}
.about-copy p:not(.eyebrow) {
  font-size: clamp(15px, 1.35vw, 17px);
  line-height: 1.85;
  color: var(--muted);
  letter-spacing: 0;
  margin: 0 0 16px;
}
.about-copy p:not(.eyebrow):last-child { margin-bottom: 0; }
.about-photo {
  margin: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid rgba(242, 239, 242, .10);
}
.about-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* Subtle, static hover with no movement or shift to the existing tour rows. */
.tour-row {
  transition: background-color .22s ease;
}
.tour-row:hover,
.tour-row:focus-within { background-color: rgba(242, 239, 242, .035); }
.booking-link { border-color: var(--label); }
.booking-link:hover, .booking-link:focus-visible { border-color: var(--text); }
/* YouTube's error 153 is caused by missing embedding-site identity/referrer.
   iframe policy applies on HTTPS; in file:// previews, the script displays a watch link. */
.video-frame iframe[hidden] { display: none; }
.offline-video {
  display: none;
  position: absolute;
  inset: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  overflow: hidden;
  color: var(--text);
  text-decoration: none;
  background: var(--surface);
}
.offline-video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.48); }
.offline-video span { position: relative; z-index: 1; padding: 16px 20px; border: 1px solid rgba(242,239,242,.85); font-size: 11px; letter-spacing: .15em; }
.video-external { display: inline-block; margin: 12px 0 0; font-size: 10px; letter-spacing: .13em; color: var(--muted); text-decoration: none; }
.video-external:hover, .video-external:focus-visible { color: var(--text); text-decoration: underline; }
@media (max-width: 768px) {
  .about-feature { grid-template-columns: 1fr; gap: 30px; margin-bottom: 60px; }
  .about-feature h2 { font-size: clamp(29px, 6vw, 43px); margin-bottom: 20px; }
  .about-photo { aspect-ratio: 1 / 1; }
}
@media (prefers-reduced-motion: reduce) {
  .tour-row { transition: none; }
}


/* ------------------------------------------------------------
   New: accessible top-right menu over the existing hero image.
   The supplied hero already had a decorative rasterized menu.
   This subtle overlay hides it without changing the hero artwork.
   ------------------------------------------------------------ */
.hero { position: relative; isolation: isolate; }
.hero-nav-mask {
  position: absolute; top: 0; right: 0; width: 63%;
  height: clamp(75px, 8.3vw, 118px); z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(22,13,31,0) 0%, #1a1026 17%, #1c1028 65%, #1a0f25 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%);
}
.hero-nav { position: absolute; z-index: 2; right: 7.3%; top: clamp(19px, 4.0vw, 59px); }
.hero-nav-desktop { display: flex; align-items: center; gap: clamp(17px,2.2vw,34px); }
.hero-nav a, .hero-nav summary {
  color: #F2EFF2; font-family: var(--ui-font); font-size: 10px;
  font-weight: 600; letter-spacing: .20em; white-space: nowrap;
  text-decoration: none; transition: color .18s ease;
}
.hero-nav a:hover, .hero-nav a:focus-visible { color: #D3B9A0; }
.hero-nav-mobile { display: none; }
#taimane-bio, #featured-videos, #tour, #booking { scroll-margin-top: 24px; }

/* ------------------------------------------------------------
   Inline YouTube playback. A local file:// has no Referer and
   can't reliably play YouTube embeds (error 153), so it shows
   the explanation, never an unwanted redirect.
   ------------------------------------------------------------ */
.video-frame { display: block; position: relative; }
.video-play { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; cursor:pointer; overflow:hidden; background:#29202F; color:#fff; }
.video-play:before { position:absolute; content:''; inset:0; background:linear-gradient(0deg,rgba(11,8,16,.55),rgba(11,8,16,.20)); z-index:1; pointer-events:none; }
.video-play img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.video-play:hover img { transform:scale(1.025); }
.video-play-icon { position:absolute; z-index:2; left:50%; top:50%; transform:translate(-50%,-50%); width:66px; height:66px; padding-left:4px; border:1px solid rgba(255,255,255,.95); border-radius:50%; display:grid;place-items:center;font-size:21px;background:rgba(0,0,0,.17); }
.video-play-caption { position:absolute;z-index:2;left:0;right:0;bottom:8%;text-align:center;font-size:10px;letter-spacing:.18em; }
.video-frame iframe { display:block;position:absolute;inset:0;width:100%;height:100%;border:0; }
.video-inline-notice { position:absolute;z-index:3;left:5%;right:5%;bottom:12%;margin:0;padding:15px 18px;font-size:12px;line-height:1.5;color:#F2EFF2;background:rgba(23,17,31,.95);text-align:center; }
.video-inline-notice[hidden] { display:none; }

/* ------------------------------------------------------------
   Seamless, cinematic booking photo: existing taupe label and
   gold-bordered CTA remain above her floral headdress.
   The near-black image edges blend into the black section.
   ------------------------------------------------------------ */
.booking {
  position:relative; overflow:hidden; text-align:center;
  background:#030303;
  padding:0;
}
.booking:before {
  content:''; position:absolute; z-index:0; inset:0 0 auto 0; height:260px;
  background:linear-gradient(to bottom, var(--bg) 0%, #0d0a10 50%, #030303 100%);
  pointer-events:none;
}
.booking-copy { position:relative; z-index:1; padding:clamp(112px,11vw,172px) 8% 0; }
.booking-copy h2 { margin:0 auto 34px; max-width:900px; }
.booking-link { border-color:var(--label); }
.booking-portrait { position:relative; margin:clamp(48px,7vw,96px) auto 0; width:100%; max-width:1600px; line-height:0; }
.booking-portrait img { display:block; width:100%; height:auto; }
/* Soft join from the section's almost-black canvas to the photo. */
.booking-portrait:before { content:''; position:absolute;inset:0 0 auto 0;height:10%;background:linear-gradient(#030303,transparent);pointer-events:none; }
.booking-portrait:after { content:'';position:absolute;inset:auto 0 0 0;height:8%;background:linear-gradient(transparent,#030303);pointer-events:none; }
@media (max-width:900px) {
  .hero-nav-desktop { gap:13px; }
  .hero-nav a { font-size:9px; letter-spacing:.13em; }
}
@media (max-width:700px) {
  .hero-nav-mask { width:68%; height:57px; }
  .hero-nav { top:14px; right:6%; }
  .hero-nav-desktop { display:none; }
  .hero-nav-mobile { display:block; position:relative; }
  .hero-nav-mobile summary { cursor:pointer;list-style:none;padding:10px 0 10px 16px; }
  .hero-nav-mobile summary::-webkit-details-marker { display:none; }
  .hero-nav-mobile summary span { font-size:13px;margin-left:6px; }
  .hero-nav-dropdown { position:absolute;top:100%;right:0;display:flex;flex-direction:column;min-width:230px;background:rgba(23,17,31,.98);border:1px solid rgba(242,239,242,.15);padding:8px;box-shadow:0 14px 32px rgba(0,0,0,.27); }
  .hero-nav-dropdown a { display:block;padding:13px 10px;font-size:10px; }
  .booking-copy { padding:88px 7% 0; }
  .booking-portrait { width:145%;max-width:none; margin-left:-22.5%; margin-top:54px; }
  .booking-portrait:before { height:9%; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-nav a, .video-play img { transition:none; }
}


/* Small original white Taimane logo at the bottom left of the existing footer. */
.footer-brand { display:flex; align-items:center; gap:16px; min-width:0; }
.footer-logo { display:inline-flex; align-items:center; flex-shrink:0; }
.footer-logo img { display:block; width:94px; max-width:100%; height:auto; opacity:.92; }
.footer-logo:hover img, .footer-logo:focus-visible img { opacity:1; }
@media (max-width:600px) { .footer-brand { gap:12px; } .footer-logo img { width:80px; } }

/* FINAL BOOKING IMAGE + FOOTER TRANSITION — overrides only booking/footer presentation.
   Full-colour photograph retained; no separate background-editing workflow needed. */
.booking {
  isolation:isolate;
  position:relative;
  min-height:clamp(900px,88vw,1240px);
  padding:0;
  overflow:hidden;
  background:var(--bg-alt);
}
.booking:before { display:none; }
.booking-copy {
  position:relative;
  z-index:3;
  padding:clamp(90px,9vw,132px) 8% 0;
}
.booking-copy .eyebrow, .booking-copy h2, .booking-copy .booking-link {
  position:relative;
  z-index:3;
}
.booking-portrait {
  position:absolute;
  z-index:0;
  inset:clamp(235px,22vw,320px) 0 0;
  margin:0;
  max-width:none;
  width:100%;
  height:auto;
  overflow:hidden;
}
.booking-portrait img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}
.booking-portrait:before, .booking-portrait:after {display:none;}
.booking:after {
  content:'';
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:linear-gradient(to bottom,
     #1B1423 0%,
     rgba(27,20,35,.98) 13%,
     rgba(27,20,35,.66) 24%,
     rgba(27,20,35,.08) 39%,
     rgba(23,17,31,.03) 56%,
     rgba(23,17,31,.48) 73%,
     rgba(23,17,31,.90) 88%,
     #17111F 100%);
}
.site-footer {
  position:relative;
  background:#17111F;
  border-top:0;
  padding-top:28px;
}
@media (max-width:700px) {
  .booking {min-height:clamp(730px,150vw,980px);}
  .booking-copy {padding:88px 7% 0;}
  .booking-portrait {
    inset:245px 0 0;
    width:100%;
    margin:0;
    max-width:none;
  }
  .booking-portrait img { object-position:center top; }
  .booking:after {
    background:linear-gradient(to bottom,
      #1B1423 0%,
      rgba(27,20,35,.97) 15%,
      rgba(27,20,35,.65) 31%,
      rgba(27,20,35,.09) 48%,
      rgba(23,17,31,.22) 63%,
      rgba(23,17,31,.83) 84%,
      #17111F 100%);
  }
}

/* Booking-to-footer seamless transition — Nov 2026 refinement.
   Photograph begins 100px higher. The first 15% dissolves into the
   section background. The footer overlaps the lower 120px to eliminate
   a hard boundary, and finishes the fade to its solid plum colour. */
.booking-portrait {
  top: calc(clamp(235px, 22vw, 320px) - 100px);
}
.booking-portrait:before {
  content: '';
  display: block;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(to bottom, #1B1423 0%, rgba(27,20,35,.86) 32%, rgba(27,20,35,.30) 72%, transparent 100%);
  pointer-events: none;
}
.booking:after {
  background: linear-gradient(to bottom,
    #1B1423 0%,
    rgba(27,20,35,.96) 13%,
    rgba(27,20,35,.58) 24%,
    rgba(27,20,35,.08) 39%,
    rgba(23,17,31,.03) 55%,
    rgba(23,17,31,.20) 72%,
    rgba(23,17,31,.42) 88%,
    rgba(23,17,31,.60) 100%);
}
.site-footer {
  z-index: 4;
  margin-top: -120px;
  padding-top: 145px;
  background: linear-gradient(to bottom,
    rgba(23,17,31,0) 0%,
    rgba(23,17,31,.46) 28%,
    rgba(23,17,31,.90) 70%,
    #17111F 96%);
}
@media (max-width:700px) {
  .booking-portrait { top: 145px; }
  .booking-portrait:before { height:15%; }
  .booking:after {
    background:linear-gradient(to bottom,
      #1B1423 0%,
      rgba(27,20,35,.97) 14%,
      rgba(27,20,35,.65) 31%,
      rgba(27,20,35,.10) 48%,
      rgba(23,17,31,.18) 66%,
      rgba(23,17,31,.45) 87%,
      rgba(23,17,31,.61) 100%);
  }
  .site-footer {margin-top:-100px;padding-top:125px;}
}


/* BOOKING + FOOTER: one continuous backdrop, no independent footer background.
   Preserve the existing top fade, and let the photograph continue behind
   the footer before it fades completely into #17111F. */
.booking-footer-unified {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #17111F;
}
.booking-footer-unified > .booking-portrait {
  position: absolute;
  z-index: 0;
  top: calc(clamp(235px, 22vw, 320px) - 100px);
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  max-width: none;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
}
.booking-footer-unified > .booking-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
/* Leave the photo's top 15% gradual reveal unchanged. */
.booking-footer-unified > .booking-portrait::before {
  content: '';
  display: block;
  position: absolute;
  z-index: 1;
  inset: 0 0 auto;
  height: 15%;
  background: linear-gradient(to bottom,
    #1B1423 0%, rgba(27,20,35,.86) 32%,
    rgba(27,20,35,.30) 72%, transparent 100%);
  pointer-events: none;
}
.booking-footer-unified > .booking-portrait::after { display:none; }
/* A single overlay covers both booking and footer, preventing a hard seam. */
.booking-footer-unified::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom,
    #1B1423 0%,
    rgba(27,20,35,.96) 13%,
    rgba(27,20,35,.58) 24%,
    rgba(27,20,35,.08) 39%,
    rgba(23,17,31,.03) 55%,
    rgba(23,17,31,.22) 70%,
    rgba(23,17,31,.66) 86%,
    rgba(23,17,31,.93) 94%,
    #17111F 100%);
}
.booking-footer-unified > .booking {
  position: relative;
  z-index: 2;
  background: transparent;
  isolation: auto;
  min-height: clamp(900px, 88vw, 1240px);
  padding: 0;
  overflow: visible;
}
.booking-footer-unified > .booking::before,
.booking-footer-unified > .booking::after { display: none; }
/* Requested exact spacing above PRIVATE EVENTS & INTERNATIONAL BOOKINGS */
.booking-footer-unified .booking-copy { padding: 90px 8% 0; }
.booking-footer-unified > .site-footer {
  position: relative;
  z-index: 2;
  background: transparent;
  margin: 0;
  padding: 28px 8% 36px;
  border: 0;
}
@media (max-width:700px) {
  .booking-footer-unified > .booking { min-height: clamp(730px,150vw,980px); }
  .booking-footer-unified .booking-copy { padding: 90px 7% 0; }
  .booking-footer-unified > .booking-portrait { top:145px; }
  .booking-footer-unified::after {
    background: linear-gradient(to bottom,
      #1B1423 0%,
      rgba(27,20,35,.97) 14%,
      rgba(27,20,35,.65) 31%,
      rgba(27,20,35,.10) 48%,
      rgba(23,17,31,.17) 63%,
      rgba(23,17,31,.56) 81%,
      rgba(23,17,31,.94) 94%,
      #17111F 100%);
  }
  .booking-footer-unified > .site-footer { padding: 28px 7% 32px; }
}

/* 2026-11-04: supplied replacement artwork and precise layout refinements. */
/* The new hero image has no printed navigation. Do not mask its top-right area. */
.hero-nav-mask { display: none !important; }
.hero > img { display: block; width: 100%; height: auto; object-fit: contain; }
/* Preserve the original live menu styles and links. */

/* New 2048x1222 booking image: preserve its full native landscape composition
   on desktop instead of cropping it to the old 2048x1360 dimensions. */
.booking-footer-unified > .booking-portrait {
  top: clamp(128px, 11vw, 170px);
  bottom: auto;
  height: auto;
}
.booking-footer-unified > .booking-portrait img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
/* One continuous gradient still runs across the image, booking and footer. */
.booking-footer-unified > .booking { min-height: clamp(790px, 74vw, 1120px); }
.booking-footer-unified .booking-copy { padding-top: 70px; }

/* Footer link is geometrically centered in the viewport/container,
   independently of unequal left and right content widths. */
.booking-footer-unified .footer-inner {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  column-gap: 16px;
  row-gap: 18px;
}
.booking-footer-unified .footer-brand { justify-self: start; }
.booking-footer-unified .footer-inner > a:nth-child(2) { justify-self: center; text-align:center; }
.booking-footer-unified .footer-inner > a:last-child { justify-self: end; text-align:right; }
@media (max-width: 700px) {
  .booking-footer-unified > .booking-portrait {
    top: 125px;
    bottom: 0;
    height: auto;
    width: 155%;
    left: -27.5%;
    right: auto;
  }
  .booking-footer-unified > .booking-portrait img { width:100%; height:auto; object-fit:contain; }
  .booking-footer-unified > .booking { min-height: clamp(720px, 157vw, 980px); }
  .booking-footer-unified .booking-copy { padding-top: 70px; }
  .booking-footer-unified .footer-inner { grid-template-columns:1fr auto; row-gap:18px; }
  .booking-footer-unified .footer-brand { grid-column:1; grid-row:1; }
  .booking-footer-unified .footer-inner > a:nth-child(2) { grid-column:1 / -1; grid-row:2; justify-self:center; }
  .booking-footer-unified .footer-inner > a:last-child { grid-column:2; grid-row:1; }
}


/* FINAL FIX: photo spans BOTH the booking section and footer.
   Previous `bottom:auto` and `img height:auto` ended it before the footer. */
.booking-footer-unified { position:relative; overflow:hidden; isolation:isolate; }
.booking-footer-unified > .booking-portrait {
  top: clamp(128px, 11vw, 170px);
  bottom: 0; /* Extend behind the footer; do not terminate at image natural height. */
  height: auto;
  width: 100%;
  left: 0;
  right: 0;
  max-width: none;
}
.booking-footer-unified > .booking-portrait img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center top;
}
/* Same top fade, gradual fade all the way through the shared footer. */
.booking-footer-unified::after {
  background: linear-gradient(to bottom,
    #1B1423 0%,
    rgba(27,20,35,.96) 13%,
    rgba(27,20,35,.58) 24%,
    rgba(27,20,35,.08) 39%,
    rgba(23,17,31,.03) 55%,
    rgba(23,17,31,.17) 70%,
    rgba(23,17,31,.40) 83%,
    rgba(23,17,31,.73) 94%,
    #17111F 100%);
}
/* Retain precise requested booking padding. */
.booking-footer-unified .booking-copy { padding-top:70px; }
/* Move navigation 15px nearer the right edge. */
.hero-nav { right:calc(7.3% - 15px); }
@media (max-width:700px) {
  .booking-footer-unified > .booking-portrait {
    top:125px;
    bottom:0;
    height:auto;
    width:155%;
    left:-27.5%;
    right:auto;
  }
  .booking-footer-unified > .booking-portrait img {
    height:100%; width:100%; object-fit:cover; object-position:center top;
  }
  .booking-footer-unified::after {
    background:linear-gradient(to bottom,
      #1B1423 0%,
      rgba(27,20,35,.97) 14%,
      rgba(27,20,35,.65) 31%,
      rgba(27,20,35,.10) 48%,
      rgba(23,17,31,.17) 63%,
      rgba(23,17,31,.36) 81%,
      rgba(23,17,31,.75) 94%,
      #17111F 100%);
  }
  .hero-nav { right:calc(6% - 15px); }
}


/* Refined editorial hero wordmark + subtle living-purple intro. */
.hero-wordmark {
  position: absolute;
  z-index: 3;
  top: clamp(19px, 4vw, 59px);
  left: 7.3%;
  color: #A9988E;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 1.75vw, 26px);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .11em;
  text-decoration: none;
  text-shadow: 0 1px 12px rgba(0,0,0,.22);
  transition: color .2s ease;
}
.hero-wordmark:hover, .hero-wordmark:focus-visible { color: #D4C2B0; }
.intro {
  background:
    radial-gradient(ellipse 80% 105% at 50% 6%, rgba(75,45,91,.30) 0%, rgba(47,29,62,.15) 50%, transparent 82%),
    linear-gradient(155deg, #17111F 0%, #21162B 49%, #17111F 100%);
}
@media (max-width: 700px) {
  .hero-wordmark { left: 7%; top: 20px; font-size: clamp(15px, 4vw, 19px); letter-spacing:.09em; }
}

/* 2026-11-04 requested precision refinements: preserve all other styles. */
/* Indent both the tour-date and location columns together; keep ticket links aligned. */
.tour-row { padding-left: 18px; padding-right: 18px; }
@media (max-width: 600px) { .tour-row { padding-left: 10px; padding-right: 10px; } }
/* Align the upper edges and visual centres of the top-left wordmark and right navigation. */
@media (min-width: 701px) {
  .hero-wordmark, .hero-nav { top: clamp(19px, 4vw, 59px); }
  .hero-wordmark { line-height: 1.1; }
  .hero-nav-desktop { min-height: 29px; }
  .hero-nav-desktop a { display: inline-flex; align-items: center; min-height: 29px; }
}
@media (max-width: 700px) {
  .hero-wordmark, .hero-nav { top: 20px; }
  .hero-nav-mobile summary { padding-top: 0; padding-bottom: 0; min-height: 24px; display:flex; align-items:center; }
}

/* Credentials — one bundled monochrome SVG mark per organisation, no outbound links. */
.credentials{margin:0 0 86px;padding:42px 0 8px;text-align:center;border-top:1px solid rgba(169,152,142,.19)}
.credentials h2{font-size:clamp(26px,3.15vw,40px);font-weight:400;letter-spacing:-.035em;margin:10px 0 40px}
.credential-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
.credential{color:var(--text);display:flex;align-items:center;flex-direction:column;min-width:0;gap:14px}
.credential-logo{height:116px;width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.credential-logo img{width:min(100%,195px);height:92px;object-fit:contain;object-position:center}
.credential-logo .credential-mark{opacity:.77}
.credential-caption{font-size:9px;line-height:1.6;letter-spacing:.11em;color:var(--label);text-align:center}
.footer-socials{display:flex;gap:15px;justify-self:end;align-items:center;min-width:0}
.footer-socials a{display:inline-flex;justify-content:center;align-items:center;color:var(--label);width:24px;height:28px;transition:color .2s ease,transform .2s ease}
.footer-socials a:hover,.footer-socials a:focus-visible{color:var(--text);transform:translateY(-1px)}
.footer-socials svg{display:block;width:21px;height:21px}
.booking-footer-unified .footer-inner>.footer-socials{justify-self:end}
@media(max-width:780px){.credential-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:18px}.credentials{padding-top:36px;margin-bottom:65px}.credential-logo{height:92px}.credential-logo img{height:75px}.credential-caption{font-size:8.5px}}
@media(max-width:700px){.booking-footer-unified .footer-inner{grid-template-columns:1fr auto}.booking-footer-unified .footer-inner>.footer-socials{grid-column:2;grid-row:1;gap:10px}.booking-footer-unified .footer-inner>a:nth-child(2){grid-column:1 / -1;grid-row:2;justify-self:center}.footer-socials svg{height:19px;width:19px}}
@media(max-width:360px){.footer-socials{gap:7px}.footer-brand{gap:7px}.footer-logo img{width:64px}}

/* Authentic external brand artwork: keep exactly one image per organization.
   Colour harmonization is CSS-only, not a replacement or redrawn logo. */
.credential-logo {overflow: hidden;isolation:isolate;}
.credential-logo .credential-mark {display:block;width:min(100%,195px);height:92px;object-fit:contain;opacity:.85;mix-blend-mode:screen;}
.credential-logo .credential-mark.brand-light {filter:grayscale(1) invert(1) contrast(1.7);}
.credential-logo .credential-mark.brand-dark {filter:grayscale(1) contrast(1.8);}
.credential-logo .credential-mark.brand-hoku {filter:grayscale(1) contrast(1.3);}
@media(max-width:780px){.credential-logo .credential-mark{height:75px;}}

/* Glastonbury artwork: consistent visual treatment with other festival marks. */
.credential-logo img.brand-glastonbury{max-width:125px;height:105px;object-fit:contain;filter:grayscale(1) brightness(1.8) contrast(.85);mix-blend-mode:screen;opacity:.67}

/* Unified international-recognition row: transparent logo only, no captions. */
.credential-grid { align-items:center; gap:clamp(12px,2vw,28px); }
.credential { justify-content:center; gap:0; }
.credential-logo { width:100%; height:112px; overflow:visible; display:flex; align-items:center; justify-content:center; }
.credential-logo img.credential-mark,
.credential-logo img.credential-mark.brand-glastonbury {
 width:100%; max-width:205px; height:94px; object-fit:contain; object-position:center;
 opacity:.85; mix-blend-mode:normal;
}
/* Uploaded images are already softly coloured with transparent backgrounds. */
.credential-logo img.credential-local {filter:none !important;}
/* Preserve Paris Fashion Week's original monochrome colour treatment. */
.credential-logo img.credential-paris {filter:grayscale(1) invert(1) contrast(1.7); mix-blend-mode:screen;}
@media(max-width:780px){
 .credential-logo {height:96px;}
 .credential-logo img.credential-mark, .credential-logo img.credential-mark.brand-glastonbury {max-width:205px;height:82px;}
}
@media(max-width:420px){
 .credential-grid{column-gap:13px;row-gap:10px;}
 .credential-logo{height:77px;}
 .credential-logo img.credential-mark, .credential-logo img.credential-mark.brand-glastonbury {height:65px;}
}

/* Sharp, pure-white credential artwork, sized to visually balance Paris Fashion Week. */
.credential-logo img.credential-local { filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; image-rendering:auto; }
.credential-logo img.credential-paris { opacity:.85; }
.credential-logo img.credential-sf, .credential-logo img.credential-glastonbury {
  width:75% !important; max-width:153.75px !important; height:70.5px !important;
}
.credential-logo img.credential-sf {
  width:67.5% !important; max-width:138.4px !important; height:63.5px !important;
}
@media(max-width:780px){
 .credential-logo img.credential-sf, .credential-logo img.credential-glastonbury{ height:61.5px !important;}
 .credential-logo img.credential-sf{ height:55.4px !important;}
}
@media(max-width:420px){
 .credential-logo img.credential-sf, .credential-logo img.credential-glastonbury{height:48.75px !important;}
 .credential-logo img.credential-sf{height:43.9px !important;}
}

/* A quiet curved-light transition at both ends of the intro panel.
   Top begins in hero plum; bottom fades smoothly into the following section. */
.intro {
  background:
    radial-gradient(ellipse 82% 17% at 50% 0%, rgba(87, 55, 104, .27) 0%, rgba(62, 39, 81, .12) 55%, transparent 100%),
    radial-gradient(ellipse 90% 18% at 50% 100%, rgba(85, 54, 105, .20) 0%, rgba(57, 36, 73, .10) 58%, transparent 100%),
    radial-gradient(ellipse 95% 87% at 50% 47%, rgba(61, 37, 80, .24), transparent 83%),
    linear-gradient(to bottom, #17111F 0%, #201628 9%, #21172A 48%, #201728 90%, #1B1423 100%);
}
/* Matching fine rules above and below the credential marks.
   Keep the original 86px breathing room below the new rule before the videos. */
.credentials {
  border-bottom: 1px solid rgba(169, 152, 142, .19);
  padding-bottom: 42px;
  margin-bottom: 86px;
}
@media (max-width: 780px) {
  .credentials { padding-bottom: 36px; margin-bottom: 65px; }
}


/* Paris Fashion Week colour-match: #DDDCDE is the effective off-white
   of the 85%-opacity PFW logo against this panel's #1B1423 background.
   The three bundled PNG assets carry that same colour directly. */
.credential-logo img.credential-local {
  filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}
/* Subtle purple centre restored near the pre-curvature brightness, while
   retaining the softly bowed upper/lower transitions. */
.intro {
  background:
    radial-gradient(ellipse 94% 19.5% at 50% 0%, rgba(78, 49, 101, .25) 0%, rgba(62, 39, 81, .11) 58%, transparent 100%),
    radial-gradient(ellipse 103% 21% at 50% 100%, rgba(77, 47, 98, .19) 0%, rgba(57, 36, 73, .09) 58%, transparent 100%),
    radial-gradient(ellipse 88% 85% at 50% 49%, rgba(75, 45, 91, .30) 0%, rgba(47, 29, 62, .15) 50%, transparent 86%),
    linear-gradient(to bottom, #17111F 0%, #201629 12%, #21162B 49%, #201629 88%, #1B1423 100%);
}

/* Paris Fashion Week: same perceived #DDDCDE / 85%-alpha as the three local marks.
   Its original externally hosted image is preserved rather than replaced by a substitute.
   The original artwork renders white under the existing colour filter.
   0.72 alpha over this plum panel matches the local logos' composite tone. */
.credential-logo img.credential-paris {
  filter: grayscale(1) invert(1) contrast(1.7) !important;
  opacity: .72 !important;
  mix-blend-mode: normal !important;
}


/* All credential logos are now local transparent PNGs with identical styling. */
.credential-logo img.credential-local, .credential-logo img.credential-paris { filter:none !important; opacity:1 !important; mix-blend-mode:normal !important; image-rendering:-webkit-optimize-contrast; image-rendering:crisp-edges; }
.credential-logo img.credential-paris { width:min(100%,195px); height:92px; object-fit:contain; object-position:center; }
@media(max-width:780px){ .credential-logo img.credential-paris { height:75px; } }
@media(max-width:780px){ .credential-logo img.credential-paris { height:82px !important; max-width:205px; } }
@media(max-width:520px){ .credential-logo img.credential-paris { height:65px !important; } }
@media(max-width:420px){ .credential-logo img.credential-paris { height:65px !important; } }

/* Paris Fashion Week: 20% smaller displayed logo at all breakpoints. */
.credential-logo img.credential-paris {
  width:156px !important;
  max-width:80% !important;
  height:73.6px !important;
}
@media(max-width:780px) {
  .credential-logo img.credential-paris { width:164px !important; height:65.6px !important; }
}
@media(max-width:520px) {
  .credential-logo img.credential-paris { height:52px !important; }
}


/* Mobile QA refinements: avoid horizontal overflow, provide accessible tap targets. */
html, body { max-width:100%; }
img, svg, iframe { max-width:100%; }
.hero-nav-mobile summary { min-height:44px !important; display:flex; align-items:center; justify-content:flex-end; }
.hero-nav-dropdown a { min-height:44px; display:flex; align-items:center; }
.footer-socials a { min-width:38px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:420px) {
  .hero-wordmark { font-size:clamp(14px,4vw,18px); }
  .hero-nav-mobile summary { font-size:11px; }
  .hero-nav-dropdown { max-width:min(88vw,270px); min-width:0; width:230px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Final refinement: darken the opening edge without increasing the purple's
   luminosity or saturation. The elliptical shadow gives a soft curved reveal;
   the existing plum gradients below are left exactly as before. */
.intro {
  background:
    radial-gradient(ellipse 96% 23% at 50% 0%, rgba(7, 6, 13, .50) 0%, rgba(12, 8, 19, .28) 48%, transparent 100%),
    radial-gradient(ellipse 94% 19.5% at 50% 0%, rgba(78, 49, 101, .25) 0%, rgba(62, 39, 81, .11) 58%, transparent 100%),
    radial-gradient(ellipse 103% 21% at 50% 100%, rgba(77, 47, 98, .19) 0%, rgba(57, 36, 73, .09) 58%, transparent 100%),
    radial-gradient(ellipse 88% 85% at 50% 49%, rgba(75, 45, 91, .30) 0%, rgba(47, 29, 62, .15) 50%, transparent 86%),
    linear-gradient(to bottom, #17111F 0%, #201629 12%, #21162B 49%, #201629 88%, #1B1423 100%);
}


/* More performances: consistent with existing understated booking button. */
.more-performances { display:flex; justify-content:center; padding-top:38px; }
.more-youtube-link {
  display:inline-flex; align-items:center; justify-content:center; gap:14px;
  min-height:46px; padding:16px 24px;
  border:1px solid var(--label); color:var(--text);
  font-size:10px; font-weight:500; letter-spacing:.15em;
  text-decoration:none; transition:opacity .2s, border-color .2s;
}
.more-youtube-link span { font-size:16px; line-height:1; letter-spacing:0; }
.more-youtube-link:hover, .more-youtube-link:focus-visible { opacity:.75; border-color:var(--text); }
@media (max-width:600px){.more-performances{padding-top:30px}.more-youtube-link{padding:15px 19px;}}


/* Updated hero: preserve original wide desktop artwork; use the taller, supplied
   1320x918 portrait composition on phones, without cropping the artist or signature. */
.hero > picture { display:block; width:100%; line-height:0; }
.hero > picture > img { display:block; width:100%; height:auto; object-fit:contain; }
@media (max-width:700px) {
  .hero { position:relative; background:#17111F; }
  .hero > picture > img { width:100%; height:auto; object-fit:contain; }
  /* Soft top vignette gives the gold wordmark and menu breathing room without
     adding a solid bar across the floral headdress. */
  .hero::after {
    content:""; position:absolute; z-index:1; inset:0 0 auto;
    height:clamp(42px,13vw,64px);
    background:linear-gradient(to bottom,rgba(17,11,24,.58),rgba(17,11,24,0));
    pointer-events:none;
  }
  .hero-wordmark, .hero-nav { z-index:3; top:clamp(12px,3.8vw,20px) !important; }
  .hero-wordmark { left:6%; }
  .hero-nav { right:6% !important; }
  .hero-nav-dropdown { z-index:5; }
}
/* Match the video CTA and EPK download button, aligned in one row on wide screens. */
.more-performances {display:flex; justify-content:center; align-items:center; gap:14px; flex-wrap:wrap;}
.download-epk-link {white-space:nowrap;}
@media (max-width:600px) {
  .more-performances {gap:10px;}
  .more-performances .more-youtube-link {flex:1 1 175px; max-width:280px; min-height:50px; padding:14px 13px; font-size:9px; letter-spacing:.10em; gap:9px;}
}
@media (max-width:365px) {
  .more-performances .more-youtube-link {flex-basis:100%; max-width:100%;}
}

/* Booking image WebP source switch, preserving the former img layout and fades. */
.booking-footer-unified > .booking-portrait picture {
  display:block; width:100%; height:100%;
}
.booking-footer-unified > .booking-portrait picture > img {
  display:block; width:100%; height:100%; object-fit:cover; object-position:center top;
}

/* Mobile only: lift all booking copy and its button by 25px; keep image/footer fixed. */
@media (max-width: 700px) {
  .booking-footer-unified .booking-copy { padding-top: 45px; }
}
