/* Source-complete partnerships, event images and the booking entry. */
.night-hero-content > .hero-claim { font-size: 12px; font-weight: 700; letter-spacing: .2em; line-height: 1.6; margin: 0 0 23px; max-width: none; }
.partnerships { background: var(--page); color: var(--text); }
.haie-feature { display: grid; grid-template-columns: 1.35fr .9fr; align-items: center; gap: 5vw; scroll-margin-top: 125px; }
.haie-visual { margin: 0; min-width: 0; }
.haie-visual img { display: block; width: 100%; height: auto; }
.haie-visual figcaption { font-size: 12px; color: var(--text-secondary); margin-top: 13px; }
.haie-copy { min-width: 0; }
.haie-copy h2 { font-size: clamp(46px,6vw,86px); line-height: 1.02; margin: 0; }
.partner-status { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; line-height: 1.6; color: var(--accent-link); }
.haie-copy .partner-status { margin: 24px 0 17px; }
.haie-copy > p:not(.partner-status) { font-size: 16px; line-height: 1.75; max-width: 38ch; color: var(--text-secondary); }
.haie-copy .button { margin-top: 28px; font-size: 13px; }
.partnership-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: end; margin: 110px 0 45px; }
.partnership-intro h2 { font-size: clamp(40px,5.1vw,72px); line-height: 1.04; margin: 0; }
.partnership-intro p { font-size: 16px; line-height: 1.75; color: var(--text-secondary); max-width: 50ch; }
.partnership-intro p + p { margin-top: 18px; }
.official-partners { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.official-partners article { min-width: 0; }
.official-partners figure { margin: 0 0 23px; }
.official-partners img { width: 100%; height: auto; display: block; }
.official-partners h3 { font-family: DM,sans-serif; font-size: clamp(22px,2.3vw,31px); line-height: 1.25; font-weight: 700; letter-spacing: -.025em; }
.official-partners .partner-status { margin: 12px 0; }
.official-partners p:not(.partner-status) { font-size: 15px; line-height: 1.75; max-width: 52ch; color: var(--text-secondary); }
.kd-partner { display: grid; grid-template-columns: 130px minmax(0,1fr) auto; gap: 34px; align-items: center; margin-top: 65px; padding-top: 35px; border-top: 1px solid var(--line); }
.kd-partner > img { width: 130px; height: 130px; object-fit: contain; }
.kd-partner h3 { font-family: DM,sans-serif; font-size: 27px; font-weight: 700; line-height: 1.25; letter-spacing: -.025em; }
.kd-partner p { font-size: 15px; line-height: 1.7; max-width: 58ch; margin-top: 13px; color: var(--text-secondary); }
.kd-partner .text-link { font-size: 13px; }
.hero-partner-link { display: flex; align-items: center; gap: 12px; color: #f6f3fa; }
.hero-partner-link img { display: block; width: 45px; height: 45px; object-fit: contain; }
.hero-partner-link > span { font-size: 14px; font-weight: 700; }
.hero-partner-link small { display: block; margin-top: 3px; font-size: 11px; font-weight: 400; }
.hero-partner-link:hover > span { text-decoration: underline; text-underline-offset: 4px; }
.event-portfolio { background: var(--surface); color: var(--text); }
.event-portfolio-heading { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 8vw; margin-bottom: 45px; }
.event-portfolio-heading h2 { font-size: clamp(45px,6vw,86px); line-height: 1.02; margin: 0; }
.event-portfolio-heading p { font-size: 16px; line-height: 1.75; max-width: 43ch; color: var(--text-secondary); }
.event-portfolio-heading .text-link { display: inline-block; font-size: 14px; margin-top: 22px; }
.event-photo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 42px 30px; }
.event-photo-grid figure { margin: 0; min-width: 0; }
.event-photo-grid button { position: relative; display: block; width: 100%; overflow: hidden; padding: 0; background: #100d17; cursor: zoom-in; }
.event-photo-grid img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .35s ease-out; }
.event-photo-grid figure:nth-child(2) img { object-position: 50% 60%; }
.event-photo-grid button:hover img { transform: scale(1.025); }
.event-photo-grid button > span { position: absolute; right: 16px; bottom: 16px; color: #fff; background: rgb(9 7 15 / .78); padding: 10px 14px; border-radius: 25px; font-size: 12px; }
.event-photo-grid figcaption { margin-top: 18px; }
.event-photo-grid h3 { font-family: DM,sans-serif; font-weight: 700; font-size: 21px; line-height: 1.4; letter-spacing: -.02em; }
.event-photo-grid figcaption p { margin-top: 5px; color: var(--text-secondary); font-size: 13px; line-height: 1.6; }
.booking-start { display: grid; grid-template-columns: .95fr 1.05fr; gap: 0 8vw; background: var(--page); color: var(--text); }
.booking-start-copy h2 { font-size: clamp(44px,5.8vw,82px); line-height: 1.03; margin: 0; }
.booking-start-copy > p { font-size: 16px; line-height: 1.75; color: var(--text-secondary); max-width: 42ch; margin-top: 25px; }
.booking-start-copy .button { margin-top: 29px; font-size: 14px; }
.booking-start-copy .booking-phone { font-size: 13px; }
.booking-phone a { font-size: 19px; font-weight: 700; color: var(--text); text-underline-offset: 5px; text-decoration: underline; }
.booking-route { list-style: none; padding: 0; margin: 0; counter-reset: booking-route; }
.booking-route li { display: grid; grid-template-columns: 30px 1fr; gap: 4px 17px; border-top: 1px solid var(--line); padding: 17px 0; }
.booking-route li:before { counter-increment: booking-route; content: counter(booking-route); grid-row: span 2; color: var(--accent-link); font-size: 14px; line-height: 25px; font-weight: 700; }
.booking-route h3 { font-family: DM,sans-serif; font-weight: 700; font-size: 18px; line-height: 1.4; letter-spacing: -.015em; }
.booking-route p { font-size: 14px; line-height: 1.55; color: var(--text-secondary); }
.booking-occasions { grid-column: 1/-1; margin-top: 50px; }
.booking-occasions h3 { font-family: DM,sans-serif; font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.booking-occasions .event-types { margin-top: 22px; padding-top: 26px; border-top: 1px solid var(--line); }
.contact-booking { margin: 0 0 38px; }
#booking-dialog .booking-direct { margin: 14px 0 0; font-size: 13px; line-height: 1.6; color: var(--text-secondary); }
#booking-dialog .booking-direct a { color: var(--accent-link); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.site-header .button .header-booking-full,.site-header .button .header-booking-short { font-size: inherit; }
.header-booking-short { display: none; }
.site-footer { display: grid; grid-template-columns: 1.4fr 1fr 1.15fr; align-items: start; gap: 45px 6vw; padding: 65px 6vw 28px; color: var(--text); background: var(--page); }
.site-footer > div { display: block; min-width: 0; }
.site-footer .logo { width: 145px; }
.footer-brand > p { font-size: 14px; line-height: 1.75; max-width: 37ch; margin-top: 25px; color: var(--text-secondary); }
.footer-brand > .footer-slogan { color: var(--text); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.site-footer h3 { font-family: DM,sans-serif; font-size: 15px; line-height: 1.5; font-weight: 700; letter-spacing: 0; margin-bottom: 14px; }
.footer-navigation { display: grid; align-content: start; gap: 12px; font-size: 13px; }
.footer-navigation h3 { margin-bottom: 2px; }
.footer-contact > a:not(.button) { display: block; margin-top: 15px; font-size: 14px; }
.footer-contact .button { font-size: 13px; margin: 8px 0 4px; }
.footer-socials { display: flex; gap: 22px; margin-top: 23px; font-size: 13px; }
.site-footer > .footer-bottom { display: flex; grid-column: 1/-1; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding-top: 28px; border-top: 1px solid var(--line); font-size: 12px; }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: 22px; }
.site-footer nav a:hover,.footer-contact > a:not(.button):hover,.footer-socials a:hover { text-decoration: underline; text-underline-offset: 5px; }
@media(max-width:1000px) {
  .haie-feature { grid-template-columns: 1.1fr 1fr; gap: 4vw; }
  .haie-copy h2 { font-size: 6vw; }
  .haie-copy > p:not(.partner-status) { font-size: 14px; }
  .partnership-intro { gap: 5vw; }
  .kd-partner { grid-template-columns: 100px 1fr; gap: 25px; }
  .kd-partner > img { width: 100px; height: 100px; }
  .kd-partner .text-link { grid-column: 2; justify-self: start; }
  .event-portfolio-heading,.booking-start { gap: 35px; }
  .site-footer { gap: 40px; }
}
@media(max-width:700px) {
  .hero-partner-link { display: none; }
  .haie-feature { grid-template-columns: 1fr; gap: 28px; }
  .haie-copy h2 { font-size: 14vw; }
  .haie-copy > p:not(.partner-status) { font-size: 15px; max-width: 42ch; }
  .haie-copy .partner-status { margin: 18px 0 14px; }
  .haie-copy .button { margin-top: 24px; }
  .partnership-intro { grid-template-columns: 1fr; gap: 25px; margin-top: 70px; margin-bottom: 32px; }
  .partnership-intro h2 { font-size: 12vw; }
  .partnership-intro p { font-size: 15px; }
  .official-partners { grid-template-columns: 1fr; gap: 43px; }
  .official-partners h3 { font-size: 24px; }
  .official-partners figure { margin-bottom: 19px; }
  .kd-partner { grid-template-columns: 75px minmax(0,1fr); gap: 22px; margin-top: 45px; padding-top: 28px; }
  .kd-partner > img { width: 75px; height: 75px; align-self: start; }
  .kd-partner h3 { font-size: 23px; }
  .kd-partner p { font-size: 14px; }
  .event-portfolio-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 32px; }
  .event-portfolio-heading h2 { font-size: 12vw; }
  .event-portfolio-heading p { font-size: 15px; }
  .event-photo-grid { grid-template-columns: 1fr; gap: 32px; }
  .event-photo-grid h3 { font-size: 20px; }
  .booking-start { grid-template-columns: 1fr; gap: 40px; }
  .booking-start-copy h2 { font-size: 11.5vw; }
  .booking-start-copy > p { font-size: 15px; }
  .booking-occasions { margin-top: 5px; }
  .site-footer { grid-template-columns: 1fr 1fr; padding: 50px 24px 28px; gap: 36px 25px; }
  .footer-brand { grid-column: 1/-1; }
  .footer-contact .button { padding: 13px 16px; }
}
@media(max-width:500px) {
  .site-footer { grid-template-columns: 1fr; }
  .site-footer > * { grid-column: 1/-1; }
}
@media(max-width:360px) {
  .header-booking-full { display: none; }
  .header-booking-short { display: inline; }
}
@media(prefers-reduced-motion:reduce) { .event-photo-grid img { transition: none; } }
.craft-media-pair { display: grid; gap: 28px; min-width: 0; }
.craft-media-pair figure { margin: 0; }
.craft-media-pair img { display: block; width: 100%; height: auto; }
.craft-media-pair figcaption { margin-top: 12px; color: var(--text-secondary); font-size: 12px; line-height: 1.6; }
.about-offers { grid-column: 1/-1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; margin-top: 15px; }
.about-offers > div { padding-top: 22px; border-top: 1px solid var(--line); }
.about-offers dt { font-size: 17px; font-weight: 700; line-height: 1.4; }
.about-offers dd { margin: 12px 0 0; color: var(--text-secondary); font-size: 14px; line-height: 1.7; }
.about-offers a { display: inline-block; color: var(--accent-link); text-decoration: underline; text-underline-offset: 4px; }
.concept-copy > .concept-phone { font-size: 13px; margin-top: 19px; }
.concept-phone a { font-weight: 700; color: var(--accent-link); text-decoration: underline; text-underline-offset: 4px; }
.faq-person > p { font-size: 14px; line-height: 1.7; color: var(--text-secondary); margin-top: 22px; max-width: 40ch; }
.imagefilm-section { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.8fr); align-items: center; gap: 4.5vw; padding-top: 80px; padding-bottom: 80px; background: var(--page); color: var(--text); }
.imagefilm-heading { min-width: 0; }
.imagefilm-heading h2 { font-size: clamp(44px,4.5vw,68px); line-height: 1.04; margin: 0; }
.imagefilm-heading h2 span { display: block; }
.imagefilm-heading p { font-size: 16px; line-height: 1.75; color: var(--text-secondary); max-width: 43ch; margin-top: 28px; }
.imagefilm-frame { min-width: 0; margin: 0; padding: 0 20px; border: 1px solid #48404f; border-radius: 22px; background: #0b090f; color: #f6f3fa; }
.imagefilm-topline { display: flex; align-items: center; gap: 25px; min-height: 82px; }
.imagefilm-topline img { width: 112px; height: auto; }
.imagefilm-topline > span { font-size: 11px; text-transform: uppercase; letter-spacing: .15em; font-weight: 700; }
.imagefilm-topline .imagefilm-runtime { margin-left: auto; font-variant-numeric: tabular-nums; letter-spacing: .1em; color: #c5bdce; }
.imagefilm-screen { position: relative; overflow: hidden; border-radius: 8px; background: #000; }
.imagefilm-player { display: block; width: 100%; height: auto; aspect-ratio: 1276/720; background: #0b090f; }
.imagefilm-start { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); display: inline-flex; align-items: center; gap: 16px; padding: 17px 25px 17px 18px; min-height: 68px; color: #fff; background: #a71162; border-radius: 60px; white-space: nowrap; }
.imagefilm-start svg { width: 32px; height: 32px; fill: currentColor; }
.imagefilm-start span { font-size: 14px; font-weight: 700; }
.imagefilm-start:hover { background: #c71878; }
.imagefilm-start:focus-visible { outline: 3px solid #00d8db; outline-offset: 6px; }
.imagefilm-frame figcaption { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding: 23px 0 25px; font-size: 13px; line-height: 1.7; }
.imagefilm-frame figcaption strong { font-size: 15px; font-weight: 700; }
.imagefilm-frame figcaption p { color: #c5bdce; margin-top: 3px; font-size: 12px; }
.imagefilm-status { color: #ff95c3; text-align: right; font-size: 12px; }
.gallery-follow { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 18px; padding-top: 28px; margin-top: 35px; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.6; }
.gallery-follow > span { color: var(--text-secondary); }
.gallery-follow a { text-decoration: underline; text-underline-offset: 5px; }
.site-footer > .footer-locations { grid-column: 1/-1; padding-top: 30px; border-top: 1px solid var(--line); }
.footer-locations > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 35px; }
.footer-locations h4 { font-family: DM,sans-serif; font-size: 16px; font-weight: 700; letter-spacing: 0; line-height: 1.5; }
.footer-locations address { font-style: normal; font-size: 13px; line-height: 1.7; color: var(--text-secondary); margin-top: 10px; }
.footer-locations article > a { display: inline-block; margin-top: 13px; font-size: 13px; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:1000px) {
  .about-offers { grid-template-columns: 1fr 1fr; }
  .imagefilm-section { display: block; }
  .imagefilm-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 35px; margin-bottom: 40px; }
  .imagefilm-heading p { margin-top: 0; }
}
@media(max-width:700px) {
  .about-offers { grid-template-columns: 1fr; gap: 24px; margin-top: 0; }
  .imagefilm-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 28px; }
  .imagefilm-heading h2 { font-size: clamp(40px,11.5vw,70px); }
  .imagefilm-heading p { font-size: 15px; }
  .imagefilm-frame { padding: 0 10px; border-radius: 16px; }
  .imagefilm-topline { min-height: 65px; gap: 15px; padding: 0 4px; }
  .imagefilm-topline img { width: 82px; }
  .imagefilm-topline > span { font-size: 9px; letter-spacing: .1em; }
  .imagefilm-start { min-height: 52px; gap: 9px; padding: 11px 17px 11px 12px; }
  .imagefilm-start svg { width: 26px; height: 26px; }
  .imagefilm-start span { font-size: 12px; }
  .imagefilm-frame figcaption { align-items: start; flex-direction: column; gap: 8px; padding: 18px 4px; }
  .imagefilm-frame figcaption strong { font-size: 14px; }
  .footer-locations > div { grid-template-columns: 1fr; gap: 28px; }
}
@media(max-width:700px) { .craft-copy h2 { font-size: clamp(34px,11.3vw,70px); } }
