/* Design system replicating the original theme's tokens: warm off-white ground, black header/nav, red accent,
   condensed heavy uppercase display type (original: ABC Schengen; here: Archivo variable via wdth axis), 12-col grid, 10px rem base. */
:root{--black:#000;--white:#fff;--red:#ed1c24;--ground:#e8e4df;--grey:#d9d9d9;--grey-dark:#2b2b2b;--grey-mid:#6e6e6e;--column-count:12;--gutter:2rem;--margin:2rem;--header-height:6.6rem;--submenu-height:6rem;--font-a:"Glancyr","Archivo",system-ui,sans-serif;--font-b:"Glancyr","Archivo",system-ui,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
@media (max-width:767px){:root{--header-height:5rem;--margin:1.5rem;--gutter:1.5rem}}
html{font-size:62.5%;scroll-behavior:smooth}
*,*:before,*:after{box-sizing:border-box}
body{margin:0;-webkit-font-smoothing:antialiased;background:var(--ground);color:var(--black);font-family:var(--font-a);font-size:2rem;font-weight:400;line-height:1.1;}
@media (max-width:767px){body{font-size:1.7rem}}
img,video{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,p{margin:0}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hide-mobile{}@media (max-width:767px){.hide-mobile{display:none!important}}

/* Type scale */
.super-title,.hero__heading{font-family:var(--font-b);font-weight:700;font-size:9rem;line-height:.95;text-transform:uppercase;letter-spacing:-.02em}
.super-title--small{font-family:var(--font-b);font-weight:700;font-size:5rem;line-height:1;text-transform:uppercase}
.font-h2{font-family:var(--font-b);font-size:4rem;font-weight:700;line-height:1;text-transform:uppercase}
.font-h3{font-family:var(--font-b);font-size:3rem;font-weight:700;line-height:1;text-transform:uppercase}
.font-h4{font-family:var(--font-b);font-size:2.2rem;font-weight:700;line-height:1.05;text-transform:uppercase}
.details--small{font-size:1.4rem;text-transform:uppercase;letter-spacing:.04em}
.details--large{font-size:1.8rem;text-transform:uppercase;letter-spacing:.02em}
@media (max-width:1023px){.super-title,.hero__heading{font-size:7rem}.super-title--small{font-size:4rem}.font-h2{font-size:3.2rem}.font-h3{font-size:2.6rem}}
@media (max-width:767px){.super-title,.hero__heading{font-size:4.6rem}.super-title--small{font-size:3.2rem}.font-h2{font-size:2.8rem}.font-h3{font-size:2.2rem}}
.wysiwyg-content p{margin:0 0 1em}.wysiwyg-content p:last-child{margin-bottom:0}.wysiwyg-content h2{font-family:var(--font-b);font-size:3rem;font-weight:700;text-transform:uppercase;margin:1.6em 0 .6em}.wysiwyg-content h3{font-size:2.2rem;font-weight:700;text-transform:uppercase;margin:1.4em 0 .5em}.wysiwyg-content ul{list-style:disc;padding-left:1.2em;margin:0 0 1em}.wysiwyg-content a{text-decoration:underline}.wysiwyg-content a:hover{color:var(--red)}
.content-extension{max-width:90rem}

/* Buttons */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:4.2rem;padding:0 2rem;border:2px solid var(--black);border-radius:0;font-family:var(--font-b);font-size:1.5rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;line-height:1;transition:background-color .25s,color .25s,border-color .25s;white-space:nowrap}
.button--primary,.button--filled{background:var(--black);color:var(--white)}.button--primary:hover,.button--filled:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.button--primary-alt{background:var(--red);border-color:var(--red);color:var(--white)}.button--primary-alt:hover{background:var(--black);border-color:var(--black)}
.button--primary-alt2{background:var(--white);color:var(--black)}.button--primary-alt2:hover{background:var(--black);color:var(--white)}
.button--secondary,.button--outline{background:transparent;color:var(--black)}.button--secondary:hover,.button--outline:hover{background:var(--black);color:var(--white)}
.button--secondary-alt{background:var(--white);color:var(--black);border-color:var(--white)}.button--secondary-alt:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.button--normal-text{text-transform:none;letter-spacing:0}
.button--close{border:0;padding:0;text-decoration:underline;min-height:0}.button--close:hover{color:var(--red)}
.button--text{border:0;padding:0;min-height:0;text-decoration:underline}
.button.is-disabled{opacity:.45;pointer-events:none}

/* Layout primitives */
.section{padding:6rem var(--margin)}
.section--border{border-top:2px solid var(--black)}
.section--no-bottom{padding-bottom:0}
.section--full{padding-left:0;padding-right:0}
.main-container{padding-top:var(--header-height);min-height:100vh}
.wrapper{padding-left:var(--margin);padding-right:var(--margin)}
@media (max-width:767px){.section{padding:4rem var(--margin)}}
.grid{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter)}

/* Cookies */
.cookies{position:fixed;left:2rem;bottom:2rem;z-index:7000;background:var(--black);color:var(--white);padding:1.6rem 2rem;display:flex;gap:2rem;align-items:center;font-size:1.4rem;max-width:calc(100% - 4rem)}
.cookies__button{background:var(--white);color:var(--black);border-color:var(--white)}

/* Header */
.header{position:fixed;top:0;left:0;width:100%;height:var(--header-height);z-index:6000;background:var(--black);color:var(--white);text-transform:uppercase;padding-right:var(--margin);transition:background-color .5s;display:flex;align-items:stretch}
.header__container{display:flex;align-items:center;height:100%;flex:1;min-width:0}
.header__back{display:none;width:var(--header-height);height:100%;position:relative;flex-shrink:0;border-right:1px solid var(--grey-dark)}.header__back:before{content:"";position:absolute;left:50%;top:50%;width:1.4rem;height:1.4rem;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translate(-30%,-50%) rotate(45deg)}
.single-space .header__back,.single-event .header__back,.single-event-type .header__back{display:block}
.header__logo{display:flex;align-items:center;height:100%;padding:0 var(--margin);text-decoration:none;font-family:var(--font-b);font-weight:700;font-size:2.8rem;letter-spacing:-.02em}
.header__nav{margin-left:auto;display:flex;align-items:center;gap:2.4rem;height:100%}
.header__menu{display:flex;gap:2.4rem}
.header__menu-item a{text-decoration:none;font-family:var(--font-b);font-weight:700;font-size:1.5rem;letter-spacing:.04em}.header__menu-item--custom a{background:var(--red);padding:1rem 1.6rem}.header__menu-item--custom a:hover{background:var(--white);color:var(--black)}
.header__spotify{display:flex;color:var(--white)}.header__spotify:hover{color:var(--red)}
.burger{display:flex;align-items:center;gap:1rem;font-family:var(--font-b);font-weight:700;font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase;height:100%}
.burger:after{content:"";width:2.4rem;height:1.4rem;border-top:2px solid currentColor;border-bottom:2px solid currentColor;transition:transform .3s}
.burger__close{display:none}.nav-visible .burger__menu{display:none}.nav-visible .burger__close{display:inline}.nav-visible .burger:after{border-bottom:0;height:0;transform:rotate(45deg)}
.sticky-nav{display:none}
@media (max-width:767px){.header__menu-item--custom{display:none}.header__logo{font-size:2.2rem}.header__nav{gap:1.6rem}}

/* Full-screen nav */
.nav{position:fixed;inset:0;z-index:5999;background:var(--black);color:var(--white);visibility:hidden;opacity:0;pointer-events:none;transition:opacity .5s,visibility 0s .5s;overflow:auto;padding:calc(var(--header-height) + 4rem) var(--margin) 4rem}
.nav-visible .nav{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .5s}
.nav-visible{overflow:hidden}
.nav__container{display:flex;flex-direction:column;min-height:100%;max-width:140rem}
.nav-menu{font-family:var(--font-b);font-weight:700;font-size:6rem;line-height:1;text-transform:uppercase;display:flex;flex-direction:column;align-items:flex-start;gap:1.2rem}
.nav-menu .menu-item a{text-decoration:none;display:inline-block}.nav-menu .menu-item a:hover,.nav-menu .menu-item.current-menu-item>a{color:var(--red)}
.nav-menu .menu-item--hidden-desktop{display:none}
.nav-menu .sub-menu{display:flex;flex-direction:column;gap:.6rem;font-size:2.4rem;max-height:0;overflow:hidden;visibility:hidden;transition:max-height .5s var(--ease),visibility 0s .5s}
.nav-menu .sub-menu--active{max-height:60rem;visibility:visible;padding:1.2rem 0 1rem 2rem;transition:max-height .5s var(--ease)}
.nav-menu .menu-item-has-children>a:after{content:" +";color:var(--red)}
.nav__container-footer{margin-top:auto;display:flex;flex-wrap:wrap;gap:2rem;padding-top:4rem;font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em}
.nav__container-footer a{text-decoration:none}.nav__container-footer a:hover{text-decoration:underline}
@media (max-width:1023px){.nav-menu{font-size:4.4rem}.nav-menu .menu-item--hidden-desktop{display:block}}
@media (max-width:767px){.nav-menu{font-size:3.4rem}}
.transition-overlay{position:fixed;inset:0;background:var(--black);z-index:5000;pointer-events:none;opacity:0;transition:opacity var(--transition-duration,.3s)}.is-leaving .transition-overlay{opacity:1}

/* Media */
.media,.media__wrapper{position:relative;overflow:hidden;background:var(--grey-dark)}
.media__image,.media__video{width:100%;height:100%;object-fit:cover}
.media--rect .media__wrapper{aspect-ratio:16/10}.media--square .media__wrapper,.media--square{aspect-ratio:1}
.media--default{aspect-ratio:16/9}

/* Hero */
.section--hero{padding:0}
.hero{position:relative;min-height:calc(100vh - var(--header-height));display:flex;align-items:flex-end;background:var(--black);color:var(--white)}
.hero--version-2{min-height:70vh}
.hero__background{position:absolute;inset:0}.hero__background .media__wrapper{height:100%;width:100%}.hero__background .media__image,.hero__background .media__video{opacity:.75}
.hero__content{position:relative;padding:6rem var(--margin) 4rem;width:100%}
@media (max-width:767px){.hero{min-height:60vh}.hero--version-2{min-height:50vh}}

/* Home: media combo + marquee */
.section--media-combo{position:relative;height:calc(100vh - var(--header-height));min-height:48rem;background:var(--black);color:var(--white);overflow:hidden}
.section--media-combo .media{position:absolute;inset:0;aspect-ratio:auto}
.section--media-combo .media__image,.section--media-combo .media__video{opacity:.8}
.section--media-combo-svg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 var(--margin);pointer-events:none;mix-blend-mode:var(--wordmark-blend,difference);opacity:var(--wordmark-opacity,1);color:#fff;z-index:3}
.media-combo__wordmark{font-family:var(--font-b);font-weight:700;font-size:clamp(5rem,13vw,20rem);line-height:.85;text-transform:uppercase;letter-spacing:-.04em;text-align:center;max-width:100%;overflow:hidden}
.marquee{position:absolute;left:0;right:0;bottom:0;display:flex;overflow:hidden;background:var(--red);color:var(--white);padding:1rem 0;font-family:var(--font-b);font-weight:700;font-size:2rem;text-transform:uppercase;letter-spacing:.06em}
.marquee__track{display:flex;width:max-content;animation:marquee var(--marquee-duration,30s) linear infinite}
.marquee__item{display:flex;flex-shrink:0;white-space:nowrap;padding-right:2rem}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Home events list */
.related-events-hp{padding-left:0;padding-right:0}
.related-events-hp__list{border-top:2px solid var(--black)}
.related-events-hp__item{border-bottom:2px solid var(--black)}
.related-events-hp__item-link{display:flex;align-items:center;gap:2rem;padding:2.2rem var(--margin);text-decoration:none;font-family:var(--font-b);font-weight:700;font-size:3.6rem;line-height:1;text-transform:uppercase;transition:background-color .25s,color .25s}
.related-events-hp__item-link:hover{background:var(--black);color:var(--white)}
.related-events-hp__item-title{width:67%}
.related-events-hp__item-date{flex:1;font-size:1.8rem;font-weight:500}
.related-events-hp__item-status{font-size:1.4rem;letter-spacing:.06em;padding:.9rem 1.4rem;border:2px solid currentColor;}
.related-events-hp__item-status[data-status=sold_out]{opacity:.5}.related-events-hp__item-status[data-status=on_sale]{background:var(--red);border-color:var(--red);color:var(--white)}
.related-events-hp__item--empty{padding:3rem var(--margin)}
.related-events-hp__more{padding:3rem var(--margin)}
@media (max-width:1023px){.related-events-hp__item-link{font-size:2.6rem;flex-wrap:wrap}.related-events-hp__item-title{width:100%}.related-events-hp__item-date{font-size:1.5rem}}

/* Banner (playlist) */
.banner{padding:0 var(--margin) 6rem}
.banner__container{position:relative;background:var(--black);color:var(--white);padding:8rem var(--margin);overflow:hidden;min-height:34rem;display:flex;flex-direction:column;justify-content:center;gap:2.4rem}
.banner__headline{position:relative;z-index:1;font-family:var(--font-b);font-weight:700;font-size:5.6rem;line-height:.95;text-transform:uppercase;max-width:60rem}
.banner__cta{position:relative;z-index:1}
.banner__background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
@media (max-width:767px){.banner__headline{font-size:3.4rem}.banner__container{padding:5rem var(--margin)}}

/* Partners */
.partners{padding-top:2rem;padding-bottom:8rem}
.partners__heading{font-family:var(--font-b);font-size:2rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4rem;text-align:center}
.partners__logotypes{--columns:7;display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));gap:6rem 6rem;align-items:center}
.partners__link{display:flex;align-items:center;justify-content:center;min-height:6rem;filter:grayscale(1);opacity:.85;text-decoration:none}.partners__link:hover{filter:none;opacity:1;color:var(--red)}
.partners__link img{max-height:5rem;object-fit:contain}.partners__name{font-family:var(--font-b);font-weight:700;font-size:1.8rem;text-transform:uppercase;text-align:center}
@media (max-width:1023px){.partners__logotypes{--columns:4;gap:4rem 3rem}}@media (max-width:767px){.partners__logotypes{--columns:2}}

/* What's on / event cards */
.whats-on__headline{font-family:var(--font-b);font-weight:700;font-size:8rem;line-height:1;text-transform:uppercase;margin-bottom:4rem}
.whats-on__grid,.related-events__grid{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter)}
.event-card{grid-column:span 4;display:flex;flex-direction:column;border-top:2px solid var(--black);padding:1.6rem 0 4rem;margin-bottom:2rem}
.event-card__date{font-size:1.5rem;text-transform:uppercase;letter-spacing:.04em}
.event-card__title{font-family:var(--font-b);font-size:4rem;font-weight:700;line-height:1;margin:1rem 0 1.5rem;word-break:break-word}
.event-card__title a{text-decoration:none}.event-card__title a:hover{color:var(--red)}
.event-card__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1.6rem}
.event-card__note{font-size:1.3rem;text-transform:uppercase;color:var(--grey-mid);margin-bottom:1.2rem}
.event-card__lineup{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.6rem;font-size:1.5rem;text-transform:uppercase;line-height:1.35;margin-bottom:2rem}
.event-card__lineup sub{display:block;vertical-align:baseline;font-size:1.1rem;color:var(--grey-mid);letter-spacing:.06em;margin-bottom:.3rem;font-weight:600}
.event-card__image{margin-top:auto;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--grey-dark)}.event-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.event-card__image:hover img{transform:scale(1.04)}
@media (max-width:1279px){.event-card{grid-column:span 6}}@media (max-width:767px){.event-card{grid-column:span 12}.event-card__title{font-size:3rem}.whats-on__headline{font-size:4.6rem}}

/* Event single */
.event-overview{position:relative}
.event-overview__sticky{position:fixed;right:2rem;bottom:2rem;z-index:100;box-shadow:0 .6rem 2rem rgba(0,0,0,.25)}
.section--single-space-header{padding:0 var(--margin)}
.single-space__image{margin:0 calc(-1 * var(--margin))}
.single-space__title{font-family:var(--font-b);font-weight:700;font-size:8rem;line-height:.95;text-transform:uppercase;padding:4rem 0 2rem}
.overview-info__actions{display:flex;flex-wrap:wrap;gap:1rem;padding-bottom:3rem}
.overview-info__container{padding:0 var(--margin);display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter);border-top:2px solid var(--black)}
.overview-info__lineup{grid-column:1/8;padding:3rem 0;border-right:2px solid var(--black);padding-right:var(--gutter)}
.overview-lineup__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:2.4rem;font-family:var(--font-b);font-weight:700;font-size:2.4rem;line-height:1.2;text-transform:uppercase}
.overview-lineup__list sub{display:block;vertical-align:baseline;font-size:1.2rem;color:var(--grey-mid);letter-spacing:.06em;margin-bottom:.4rem;}
.overview-info__info{grid-column:8/13;padding:3rem 0}
.overview-info__list{display:grid;gap:1.6rem}
.overview-info__item{display:grid;grid-template-columns:12rem 1fr;gap:1rem;border-bottom:1px solid var(--grey);padding-bottom:1.2rem}
.overview-info__title{font-size:1.3rem;text-transform:uppercase;letter-spacing:.06em;color:var(--grey-mid);padding-top:.3rem}
.overview-info__value{font-family:var(--font-b);font-weight:700;font-size:2rem;text-transform:uppercase}
.overview-info__share{display:flex;align-items:center;gap:1.6rem;margin-top:3rem;font-size:1.3rem;text-transform:uppercase;letter-spacing:.06em}
.overview-info__share-icons{display:flex;gap:1rem}.overview-info__share-button{font-size:1.3rem;text-decoration:none;border:2px solid var(--black);padding:.6rem 1rem}.overview-info__share-button:hover{background:var(--black);color:var(--white)}
.event-overview__container{padding:0 var(--margin)}
.event-overview__hero{margin:4rem 0}
.text-cta--event{padding-left:0;padding-right:0}
.related-events{padding-top:6rem}.related-events__title{font-family:var(--font-b);font-weight:700;font-size:4rem;text-transform:uppercase;margin-bottom:3rem}
@media (max-width:1023px){.overview-info__lineup,.overview-info__info{grid-column:1/-1;border-right:0;padding-right:0}.single-space__title{font-size:5rem}}
@media (max-width:767px){.single-space__title{font-size:3.6rem}.overview-lineup__list{font-size:2rem}.overview-info__item{grid-template-columns:1fr}}

/* Text CTA */
.text-cta{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter);row-gap:3rem}
.text-cta__heading{grid-column:1/5}
.text-cta__content{grid-column:5/13;display:flex;flex-direction:column;gap:3rem}
.text-cta--simple .text-cta__content{grid-column:1/10}
.text-cta__text{font-size:3.2rem;line-height:1.15;font-weight:500;letter-spacing:-.01em}
.text-cta--rich .text-cta__text{font-size:2.4rem}
.text-cta__buttons{display:flex;flex-wrap:wrap;gap:1rem}
@media (max-width:1023px){.text-cta__heading,.text-cta__content,.text-cta--simple .text-cta__content{grid-column:1/-1}.text-cta__text{font-size:2.4rem}.text-cta--rich .text-cta__text{font-size:2rem}}

/* Rooms (spaces / event types listing) */
.section--rooms{padding-top:0;padding-bottom:0;padding-left:0;padding-right:0}
.room{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter);align-items:flex-start;padding:8rem var(--margin);border-top:2px solid var(--black)}
.room .media__wrapper{grid-column:1/8}
.room:nth-child(even) .media__wrapper{grid-column:6/13;grid-row:1}
.room:nth-child(even) .room__content{grid-column:1/6;grid-row:1}
.room__content{grid-column:8/13;display:flex;flex-direction:column;gap:2rem;align-self:center}
.room__desc{font-size:1.8rem;line-height:1.35}
.room__button{align-self:flex-start}
@media (max-width:1023px){.room{padding:4rem var(--margin);row-gap:2rem}.room .media__wrapper,.room:nth-child(even) .media__wrapper,.room__content,.room:nth-child(even) .room__content{grid-column:1/-1;grid-row:auto}}

/* Space single */
.section--room-card{padding:4rem var(--margin) 0;position:relative}
.modal__close{position:absolute;top:1.6rem;right:var(--margin);font-size:1.4rem}
.room-card{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter)}
.room-card__desc{grid-column:1/9}.room-card__desc .section{padding-left:0;padding-right:0;border-top:0}
.room-card__details{grid-column:9/13;padding:6rem 0;display:grid;gap:2rem;align-content:start}
.room-card__detail{display:grid;gap:.4rem;border-bottom:2px solid var(--black);padding-bottom:1.2rem}.room-card__detail span{font-size:1.2rem;letter-spacing:.06em;color:var(--grey-mid)}.room-card__detail strong{font-family:var(--font-b);font-size:3rem;font-weight:700;text-transform:uppercase}
@media (max-width:1023px){.room-card__desc,.room-card__details{grid-column:1/-1}.room-card__details{padding:0 0 4rem}}

/* Slider (replaces Swiper) */
.room-slider{padding:0 0 6rem}
.slider{position:relative}
.slider__track{display:flex;gap:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 var(--margin)}.slider__track::-webkit-scrollbar{display:none}
.slider__slide{flex:0 0 min(70vw,110rem);scroll-snap-align:start}.slider__slide .media__wrapper{aspect-ratio:16/10}
.slider__controls{display:flex;align-items:center;gap:1.6rem;padding:2rem var(--margin) 0;font-size:1.4rem;text-transform:uppercase;letter-spacing:.06em}
.slider__prev,.slider__next{width:4.2rem;height:4.2rem;border:2px solid var(--black);display:grid;place-items:center;font-size:2rem}.slider__prev:hover,.slider__next:hover{background:var(--black);color:var(--white)}
@media (max-width:767px){.slider__slide{flex-basis:85vw}}

/* Featured lists */
.featured__heading{margin-bottom:3rem}
.featured__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.featured--big .featured__list{grid-template-columns:repeat(2,minmax(0,1fr))}
.featured__link{display:block;text-decoration:none}
.featured__content{display:flex;flex-direction:column;gap:.8rem;padding:1.6rem 0}
.featured__title{text-decoration:none}.featured__link:hover .featured__title{color:var(--red)}
.featured__desc{font-size:1.6rem;line-height:1.35;color:var(--grey-dark)}
.featured-posts .featured__list{margin:3rem 0}
@media (max-width:1023px){.featured__list,.featured--big .featured__list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.featured__list,.featured--big .featured__list{grid-template-columns:1fr}}

/* Facilities */
.facilities__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;margin-top:3rem}.facilities__list li{border-top:2px solid var(--black);padding-top:1.2rem}
@media (max-width:767px){.facilities__list{grid-template-columns:repeat(2,1fr)}}

/* Gallery */
.section--flexible-gallery{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));gap:var(--gutter)}
.flexible-gallery{grid-column:span 6}.flexible-gallery--squares{grid-column:span 4}.flexible-gallery--squares img{aspect-ratio:1}.flexible-gallery--left{grid-column:1/8}.flexible-gallery--right{grid-column:6/13}.flexible-gallery--wide,.flexible-gallery--fullwidth{grid-column:1/-1}.flexible-gallery--tall{grid-column:span 5}.flexible-gallery--tall img{aspect-ratio:3/4}.flexible-gallery--square_tall{grid-column:span 4}.flexible-gallery--square_tall img{aspect-ratio:4/5}
.flexible-gallery__item{margin:0}.flexible-gallery__item img{width:100%;object-fit:cover;background:var(--grey-dark)}.flexible-gallery__item figcaption{font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;padding-top:.8rem}
@media (max-width:767px){.flexible-gallery,.flexible-gallery--squares,.flexible-gallery--left,.flexible-gallery--right,.flexible-gallery--tall,.flexible-gallery--square_tall{grid-column:1/-1}}
.triple-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}@media (max-width:767px){.triple-gallery{grid-template-columns:1fr}}

/* FAQ accordion */
.question-list{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));column-gap:var(--gutter);row-gap:3rem}
.question-list__content{grid-column:1/5}.question-list__accordion{grid-column:5/13}
.question-list__item{border-bottom:2px solid var(--black)}
.question-list__item-title{font-family:var(--font-b);font-size:2rem;font-weight:600;line-height:1.1;text-transform:uppercase;width:100%;padding:1.8rem 4rem 1.8rem 0;position:relative;text-align:left}
.question-list__item-title:after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:2.6rem;font-weight:400}
.question-list__item-title[aria-expanded=true]:after{content:"–"}.question-list__item-title:hover{color:var(--red)}
.question-list__item-content{padding:0 0 2rem;font-size:1.7rem;line-height:1.4;max-width:70rem}
@media (max-width:1023px){.question-list__content,.question-list__accordion{grid-column:1/-1}}

/* Info list */
.info-list{display:grid;gap:6rem}.info-list__item{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter);align-items:center}.info-list__item:nth-child(even) .info-list__content--image{order:-1}.info-list__content .wysiwyg-content{font-size:1.7rem;line-height:1.4;margin-top:1.6rem}.info-list__content--image img{aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:767px){.info-list__item{grid-template-columns:1fr}.info-list__item:nth-child(even) .info-list__content--image{order:0}}
.button-container{display:flex;gap:1rem;flex-wrap:wrap}

/* About */
.spotlight-alt{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter);align-items:center}.spotlight-alt__content{display:flex;flex-direction:column;gap:2rem;font-size:1.8rem;line-height:1.4}
@media (max-width:767px){.spotlight-alt{grid-template-columns:1fr}}
.social-showcase__links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.4rem}

/* Grid table (contact / venue) */
.grid-table__fields{display:grid;grid-template-columns:repeat(3,1fr);gap:6rem 2.5rem}
.grid-table__title{border-top:2px solid var(--black);padding-top:1rem;margin-bottom:1.2rem;font-weight:600}
.grid-table__content{font-size:1.7rem;line-height:1.4}
@media (max-width:767px){.grid-table__fields{grid-template-columns:1fr;gap:3rem}}

/* Map */
.nearby-map{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter);align-items:stretch;border-top:2px solid var(--black)}
.nearby-map__map{min-height:44rem;background:var(--grey)}.nearby-map__map iframe{width:100%;height:100%;min-height:44rem;border:0;filter:grayscale(1) contrast(1.1)}
.nearby-map__content{display:flex;flex-direction:column;gap:2.4rem;font-size:1.8rem;line-height:1.4}
.nearby-map__list{display:grid;gap:1.6rem}.nearby-map__item{border-top:1px solid var(--grey);padding-top:1.2rem}.nearby-map__item .wysiwyg-content{font-size:1.6rem;margin-top:.6rem}
@media (max-width:767px){.nearby-map{grid-template-columns:1fr}}

/* Forms */
.base-form{display:grid;gap:1.2rem;max-width:64rem}
.base-form__field{position:relative}
.base-form__label{display:flex;flex-direction:column}
.base-form__input{order:1;width:100%;padding:1.8rem 0 1rem;border:0;border-bottom:2px solid var(--black);background:transparent;font:inherit;font-size:1.6rem;outline:none;border-radius:0;transition:border-color .3s}
.base-form__input:focus{border-color:var(--red)}
.base-form__label-text{order:0;font-size:1.3rem;text-transform:uppercase;letter-spacing:.06em;color:var(--grey-mid);transform:translateY(2.4rem);transition:transform .2s,font-size .2s;pointer-events:none}
.base-form__input:focus~.base-form__label-text,.base-form__input:not(:placeholder-shown)~.base-form__label-text,.base-form__field--select .base-form__label-text,.base-form__field--textarea .base-form__label-text{transform:none;font-size:1.1rem}
.base-form__asterisk{color:var(--red);margin-left:.2rem}
.base-form__field--textarea .base-form__input{min-height:10rem;resize:vertical}
.base-form__field--select select{appearance:none;cursor:pointer;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat right center}
.base-form__checkbox-label{display:flex;gap:1.2rem;align-items:flex-start;font-size:1.3rem;line-height:1.4;cursor:pointer}.base-form__checkbox{width:1.8rem;height:1.8rem;margin:.2rem 0 0;accent-color:var(--red);flex-shrink:0}
.base-form__submit{margin-top:1.6rem;justify-self:start}
.base-form__error{color:var(--red);font-size:1.2rem;margin-top:.4rem;text-transform:uppercase;letter-spacing:.04em}
.base-form.is-sending{opacity:.6;pointer-events:none}
.base-form.is-sent{display:none}
.event-form__success,.enquire__success,.download__success{display:none;gap:1.6rem}.event-form__success.is-visible,.enquire__success.is-visible,.download__success.is-visible{display:grid}
.event-form{background:var(--black);color:var(--white)}.event-form .base-form__input{color:var(--white);border-color:var(--white)}.event-form .base-form__label-text{color:var(--grey)}.event-form .button--primary-alt:hover{background:var(--white);color:var(--black);border-color:var(--white)}.event-form .base-form__field--select select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E");color:var(--white)}.event-form option{color:var(--black)}
.event-form__title{margin-bottom:3rem}
.event-form__container{max-width:80rem}

/* Enquire / newsletter full-screen forms */
.section--enquire{background:var(--black);color:var(--white);min-height:100vh;padding:0}
.section--enquire__wrapper{position:relative;padding:4rem var(--margin) 8rem}
.enquire__close{position:absolute;top:2.4rem;right:var(--margin);font-size:1.4rem;text-transform:uppercase;letter-spacing:.06em}
.enquire__container{max-width:80rem;padding-top:6rem}
.enquire__title{margin-bottom:2rem}.enquire__desc{font-size:2rem;line-height:1.4;margin-bottom:4rem;color:var(--grey)}
.section--enquire .base-form__input{color:var(--white);border-color:var(--white)}.section--enquire .base-form__label-text{color:var(--grey)}.section--enquire .base-form__field--select select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E")}.section--enquire option{color:var(--black)}
.enquire__success{padding-top:2rem}
/* Sign-up split */
.signup{display:grid;grid-template-columns:repeat(2,1fr);min-height:calc(100vh - var(--header-height));padding:0}
.signup__media{background:var(--grey-dark)}.signup__media img{width:100%;height:100%;object-fit:cover}
.signup__content{padding:8rem var(--margin);display:flex;flex-direction:column;gap:2.4rem;justify-content:center}.signup__desc{font-size:1.9rem;line-height:1.4}
@media (max-width:767px){.signup{grid-template-columns:1fr}.signup__media{aspect-ratio:16/9}}

/* Dialog */
.static-dialog{border:0;padding:0;background:transparent;max-width:min(64rem,calc(100% - 4rem));width:100%}.static-dialog::backdrop{background:rgba(0,0,0,.7)}
.download-dialog__content{position:relative;background:var(--ground);color:var(--black);padding:5rem 4rem}
.dialog__close{position:absolute;top:1.6rem;right:1.6rem;font-size:1.3rem;text-transform:uppercase;letter-spacing:.06em}
.download__desc{font-size:1.5rem;color:var(--grey-mid);margin-bottom:1rem}.download__title{margin-bottom:3rem}

/* Venue hire: submenu */
.submenu-toggler{height:1px}
.section--sticky-submenu{padding:0;position:sticky;top:var(--header-height);z-index:500}
.submenu{min-height:var(--submenu-height);background:var(--ground);border-bottom:2px solid var(--black);display:flex;align-items:center;justify-content:space-between;padding:0 var(--margin);font-size:1.6rem;gap:2rem}
.submenu__nav{display:flex;align-items:center;justify-content:space-between;width:100%;gap:2rem}
.submenu__dropdown{position:relative}
.submenu__dropdown-trigger{display:flex;align-items:center;gap:1.2rem;font-family:var(--font-b);font-weight:700;font-size:1.6rem;text-transform:uppercase;letter-spacing:.04em;min-height:var(--submenu-height)}
.submenu__dropdown-icon--close{display:none}.submenu__dropdown-trigger[aria-expanded=true] .submenu__dropdown-icon--open{display:none}.submenu__dropdown-trigger[aria-expanded=true] .submenu__dropdown-icon--close{display:inline}
.submenu__dropdown-content{position:absolute;top:100%;left:calc(-1 * var(--margin));min-width:30rem;background:var(--ground);border:2px solid var(--black);border-top:0;display:none;padding:1.6rem var(--margin) 2rem}
.submenu__dropdown-trigger[aria-expanded=true]+.submenu__dropdown-content{display:block}
.submenu__list{display:grid;gap:.8rem}.submenu__item--heading{font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-mid);margin-bottom:.6rem}
.submenu__link{text-decoration:none;font-family:var(--font-b);font-weight:700;font-size:1.8rem;text-transform:uppercase}.submenu__link:hover,.submenu__item--current .submenu__link{color:var(--red)}
@media (max-width:767px){.submenu__button{min-height:3.6rem;padding:0 1.4rem;font-size:1.3rem}}

/* Venue overview */
.section--gallery-card{padding:0 var(--margin)}.gallery-card__background .media__wrapper{aspect-ratio:21/9}
.media-content{position:relative;background:var(--black);color:var(--white);min-height:60vh;display:flex;align-items:flex-end;overflow:hidden}
.media-content__container{position:relative;z-index:1;padding:6rem var(--margin);display:grid;gap:2.4rem;max-width:90rem}
.media-content__heading{font-family:var(--font-b);font-weight:700;font-size:6rem;line-height:.95;text-transform:uppercase}
.media-content__content{display:flex;flex-direction:column;gap:2rem;font-size:1.9rem;align-items:flex-start}
.media-content__background{position:absolute;inset:0}.media-content__background .media__image{height:100%;opacity:.55}
@media (max-width:767px){.media-content__heading{font-size:3.6rem}}
.section--flexible-simple{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));gap:6rem var(--gutter)}
.flexible-simple{display:grid;gap:1.6rem;grid-column:span 6}.flexible-simple--wide_text{grid-column:1/9}.flexible-simple--tall_text{grid-column:9/13}.flexible-simple--tall_text .media__wrapper{aspect-ratio:3/4}.flexible-simple--tall_square_text{grid-column:span 4}.flexible-simple--tall_square_text .media__wrapper{aspect-ratio:1}.flexible-simple--text{grid-column:span 8}
.flexible-simple .media__wrapper{aspect-ratio:16/10}.flexible-simple__text{display:grid;gap:.8rem;font-size:1.6rem;line-height:1.35}
@media (max-width:767px){.flexible-simple,.flexible-simple--wide_text,.flexible-simple--tall_text,.flexible-simple--tall_square_text,.flexible-simple--text{grid-column:1/-1}}
.floor-plan__heading{margin-bottom:3rem}.floor-plan__container{display:grid;gap:2.4rem;justify-items:start}.floor-plan__floors{display:flex;flex-wrap:wrap;gap:.8rem}.floor-plan__button.is-active{background:var(--black);color:var(--white)}
.floor-plan__images{width:100%;background:var(--white);border:2px solid var(--black)}.floor-plan__image{display:none;width:100%;max-height:70vh;object-fit:contain}.floor-plan__image.is-active{display:block}
.fullscreen-card{background:var(--red);color:var(--white)}.fullscreen-card__content{display:grid;gap:2rem;justify-items:start;max-width:80rem;padding:6rem 0}.fullscreen-card .button--primary{border-color:var(--white)}
.fullscreen-card p{font-size:2.2rem}
.intro-media{padding:0;position:relative}.intro-media .media__wrapper{aspect-ratio:21/9}.intro-media .super-title{position:absolute;left:var(--margin);bottom:3rem;color:var(--white)}
.section--flexible-neighborhood{display:grid;grid-template-columns:repeat(var(--column-count),minmax(0,1fr));gap:6rem var(--gutter)}
.flexible-neighborhood{display:grid;gap:1.6rem;grid-column:span 4}.flexible-neighborhood--wide_text{grid-column:span 8}.flexible-neighborhood--tall_text .media__wrapper{aspect-ratio:3/4}.flexible-neighborhood--square_text .media__wrapper{aspect-ratio:1}.flexible-neighborhood .media__wrapper{aspect-ratio:16/10}.flexible-neighborhood__text{display:grid;gap:.8rem;font-size:1.6rem;line-height:1.35}
@media (max-width:767px){.flexible-neighborhood,.flexible-neighborhood--wide_text{grid-column:1/-1}}
.section--flexible-venue{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter);align-items:center}.flexible-venue--media .media__wrapper{aspect-ratio:4/5}.flexible-venue--quote blockquote{margin:0;padding:2rem 0}
@media (max-width:767px){.section--flexible-venue{grid-template-columns:1fr}}
.fullwidth-tile-list__group{margin-bottom:4rem}.fullwidth-tile-list__group h2{margin-bottom:1.6rem}.fullwidth-tile-list__list{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}.fullwidth-tile-list__item a{display:grid;gap:.6rem;border-top:2px solid var(--black);padding:1.2rem 0;text-decoration:none}.fullwidth-tile-list__item a:hover{color:var(--red)}
@media (max-width:767px){.fullwidth-tile-list__list{grid-template-columns:1fr}}

/* Post */
.post-sections{display:grid;gap:4rem;max-width:90rem}.post-text{display:grid;gap:2rem;font-size:1.8rem;line-height:1.5}.post-images--double{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter)}.post-images img{aspect-ratio:4/3;object-fit:cover;width:100%}
.social-share{display:flex;gap:1.2rem;align-items:center;font-size:1.3rem;text-transform:uppercase;letter-spacing:.06em}.social-share a{border:2px solid var(--black);padding:.6rem 1rem;text-decoration:none}.social-share a:hover{background:var(--black);color:var(--white)}

/* Legal / 404 */
.legal__title{margin-bottom:3rem}.legal__body{font-size:1.7rem;line-height:1.5}
.section--404{display:grid;gap:2.4rem;justify-items:start;min-height:60vh}

/* Footer */
.footer{background:var(--black);color:var(--white);padding:6rem var(--margin) 3rem;font-size:1.5rem}
.footer__container{display:grid;grid-template-columns:repeat(4,1fr);gap:4rem var(--gutter)}
.footer__column{display:flex;flex-direction:column;gap:1.6rem}
.footer__heading{font-family:var(--font-b);font-weight:700;font-size:1.4rem;text-transform:uppercase;letter-spacing:.08em;color:var(--grey)}
.footer__list{display:grid;gap:.6rem}.footer__link a{text-decoration:none;text-transform:uppercase;letter-spacing:.04em}.footer__link a:hover{color:var(--red)}
.footer__socials{display:flex;gap:1.6rem}.footer__socials a{display:flex;color:var(--white)}.footer__socials a:hover{color:var(--red)}
.footer__copyrights{grid-column:1/-1;border-top:1px solid var(--grey-dark);padding-top:2rem;font-size:1.3rem;color:var(--grey)}
@media (max-width:767px){.footer__container{grid-template-columns:repeat(2,1fr)}}

/* Reveal animations */
@media (prefers-reduced-motion:no-preference){.js :not(body)[data-reveal=""]{opacity:0;transform:translateY(var(--reveal-distance,2rem));transition:opacity var(--reveal-duration,.8s) var(--ease),transform var(--reveal-duration,.8s) var(--ease)}.js [data-reveal].is-visible{opacity:1;transform:none}}

.section--event-overview{padding-top:0}

/* Video */
.media-content__background .media__video{width:100%;height:100%;object-fit:cover;opacity:.55}
.flexible-gallery__item video{width:100%;display:block;background:var(--grey-dark)}
.room .media__wrapper video{width:100%;height:100%;object-fit:cover}
.gallery-card__background .media__video{width:100%;height:100%;object-fit:cover}
.event-overview__hero .media--video{aspect-ratio:16/9}

/* Screen grid: thin CRT/LCD-style raster laid over every video block. 1px lines on a --grid-size pitch,
   so the lines beat against the video pixels and the display's own pixel grid (aliasing / moiré is the intended effect). */
.screen-grid-target{position:relative;isolation:isolate}
.has-screen-grid .screen-grid-target:after{content:"";position:absolute;inset:-2px;z-index:2;pointer-events:none;mix-blend-mode:multiply;
  background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,var(--grid-opacity)) 0 1px,transparent 1px var(--grid-size));
  background-size:100% var(--grid-size);}
.has-screen-grid.screen-grid--vertical .screen-grid-target:after{background-image:repeating-linear-gradient(to right,rgba(0,0,0,var(--grid-opacity)) 0 1px,transparent 1px var(--grid-size));background-size:var(--grid-size) 100%}
.has-screen-grid.screen-grid--both .screen-grid-target:after{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,var(--grid-opacity)) 0 1px,transparent 1px var(--grid-size)),repeating-linear-gradient(to right,rgba(0,0,0,var(--grid-opacity)) 0 1px,transparent 1px var(--grid-size));background-size:var(--grid-size) var(--grid-size)}
.has-screen-grid.has-screen-grid-rgb .screen-grid-target:before{content:"";position:absolute;inset:-2px;z-index:2;pointer-events:none;mix-blend-mode:screen;opacity:.35;
  background-image:repeating-linear-gradient(to right,rgba(255,0,0,.35) 0 1px,rgba(0,255,0,.35) 1px 2px,rgba(0,0,255,.35) 2px 3px);}
@media (prefers-reduced-motion:no-preference){
  .has-screen-grid.has-screen-grid-drift .screen-grid-target:after{animation:grid-drift 9s ease-in-out infinite alternate}
  .has-screen-grid.has-screen-grid-drift .screen-grid-target:before{animation:grid-drift 13s ease-in-out infinite alternate-reverse}
}
@keyframes grid-drift{from{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(.4px,-.6px,0) scale(1.004)}to{transform:translate3d(-.5px,.3px,0) scale(1)}}
/* the grid-targets: any wrapper that holds a <video>; lines sit above the video, below text/buttons */
.section--media-combo .media,.hero__background,.media-content__background,.gallery-card__background,.event-overview__hero .media--video,.flexible-gallery__item.is-video,.room .media__wrapper.is-video{position:relative}
.section--media-combo-svg,.hero__content,.media-content__container,.section--media-combo-marquee{z-index:3}

/* Header sponsor logo (replaces playlist icon when set) */
.header__sponsor{display:flex;align-items:center;height:100%}
.header__sponsor img{height:2.8rem;width:auto;max-width:9rem;object-fit:contain;display:block;transition:opacity .25s}
.header__sponsor:hover img{opacity:.7}
@media (max-width:767px){.header__sponsor img{height:2rem;max-width:7rem}}

/* Admin preview mode */
.preview-bar{position:fixed;top:0;left:0;right:0;z-index:9000;background:var(--red);color:#fff;font:700 1.2rem/1 var(--font-b);letter-spacing:.08em;text-transform:uppercase;padding:.6rem var(--margin);text-align:center}
.is-preview .header{top:2.4rem}
.is-preview .main-container{padding-top:calc(var(--header-height) + 2.4rem)}
/* Rich text content media */
.wysiwyg-content figure{margin:2.4rem 0}.wysiwyg-content img,.wysiwyg-content video{width:100%;height:auto;display:block}.wysiwyg-content figcaption{font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;color:var(--grey-mid);padding-top:.8rem}
.wysiwyg-content .embed{position:relative;aspect-ratio:16/9;background:#000;margin:2.4rem 0}.wysiwyg-content .embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.wysiwyg-content blockquote{margin:2.4rem 0;padding-left:2rem;border-left:3px solid var(--red);font-size:2.4rem;line-height:1.2}
.wysiwyg-content hr{border:0;border-top:2px solid var(--black);margin:3rem 0}
/* ASCII hover layer */
.ascii-layer{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;mix-blend-mode:normal}
.hero__background,.section--media-combo .media,.media-content__background,.gallery-card__background,.event-overview__hero .media,.single-space__image .media,.banner__container,.intro-media .media__wrapper,.flexible-venue--media .media__wrapper,.signup__media,.spotlight-alt__media{position:relative}
.banner__container>.ascii-layer{z-index:0}.banner__headline,.banner__cta{position:relative;z-index:1}

/* hover text scramble */
.hover-text{display:inline-block;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Media banner with text overlay */
.media-banner{position:relative;overflow:hidden}
.media-banner__text{position:absolute;inset:0;z-index:3;display:flex;padding:clamp(1.6rem,4vw,5rem);pointer-events:none;font-family:var(--font-b);font-weight:700;text-transform:uppercase;line-height:.92;letter-spacing:-.01em;color:#fff;text-align:center}
.media-banner__text span{max-width:90%}
.media-banner__text.is-inverted{mix-blend-mode:difference;color:#fff}
.media-banner__text--small{font-size:clamp(2rem,3vw,3.6rem)}.media-banner__text--medium{font-size:clamp(2.8rem,5vw,6rem)}.media-banner__text--large{font-size:clamp(3.6rem,8vw,10rem)}.media-banner__text--huge{font-size:clamp(4.4rem,13vw,18rem)}
.media-banner__text--center{align-items:center;justify-content:center}
.media-banner__text--top-left{align-items:flex-start;justify-content:flex-start;text-align:left}.media-banner__text--top-center{align-items:flex-start;justify-content:center}.media-banner__text--top-right{align-items:flex-start;justify-content:flex-end;text-align:right}
.media-banner__text--center-left{align-items:center;justify-content:flex-start;text-align:left}.media-banner__text--center-right{align-items:center;justify-content:flex-end;text-align:right}
.media-banner__text--bottom-left{align-items:flex-end;justify-content:flex-start;text-align:left}.media-banner__text--bottom-center{align-items:flex-end;justify-content:center}.media-banner__text--bottom-right{align-items:flex-end;justify-content:flex-end;text-align:right}

/* 3D plan overlay (TMNL plan module) over video blocks */
.plan-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:var(--plan-opacity,.7);mix-blend-mode:var(--plan-blend,screen);overflow:hidden;transform:translate(var(--plan-x,0),var(--plan-y,0)) scale(var(--plan-scale,1));transform-origin:center;filter:blur(var(--plan-blur,0)) contrast(var(--plan-contrast,1)) invert(var(--plan-invert,0))}
.plan-overlay tmnl-plan{display:block;width:100%;height:100%;min-height:0;background:transparent}
.plan-overlay.has-tint:after{content:"";position:absolute;inset:0;background:var(--plan-tint);mix-blend-mode:multiply;pointer-events:none}
.plan-overlay--mask-cursor-spotlight{-webkit-mask-image:radial-gradient(circle var(--plan-mask-radius,320px) at var(--mx,50%) var(--my,50%),#000 0%,#000 55%,transparent 100%);mask-image:radial-gradient(circle var(--plan-mask-radius,320px) at var(--mx,50%) var(--my,50%),#000 0%,#000 55%,transparent 100%)}
.plan-overlay--mask-cursor-spotlight.is-idle{opacity:0;transition:opacity .8s}
.plan-overlay--mask-edges-fade{-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 40%,transparent 100%);mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 40%,transparent 100%)}
.plan-overlay--mask-center-fade{-webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,transparent 20%,#000 90%);mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,transparent 20%,#000 90%)}
.plan-overlay.is-paused{opacity:0}
@media (max-width:767px){body[data-plan-mobile="off"] .plan-overlay{display:none}}

/* Hero video effects (Homepage → Video effects) */
.has-hv .section--media-combo .media > video,.has-hv .section--media-combo .media > .media__image{filter:var(--hv-filter,none)}
body.has-hv[data-hv-apply="all-heroes"] .hero__background .media__video,body.has-hv[data-hv-apply="all-heroes"] .hero__background .media__image,body.has-hv[data-hv-apply="all-heroes"] .gallery-card__background .media__video{filter:var(--hv-filter,none)}
.has-hv .section--media-combo .media:before,body.has-hv[data-hv-apply="all-heroes"] .hero__background:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:var(--hv-tint,#ed1c24);opacity:var(--hv-tint-opacity,0);mix-blend-mode:var(--hv-tint-blend,multiply)}
.has-hv .section--media-combo .media .hv-vignette,body.has-hv[data-hv-apply="all-heroes"] .hero__background .hv-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 70% 65% at 50% 50%,transparent 40%,rgba(0,0,0,var(--hv-vignette,0)) 100%)}

/* header logo image */
.header__logo-img{display:block;width:auto;max-width:40vw;object-fit:contain}
@media (max-width:767px){.header__logo-img{max-height:2.2rem}}

/* Wordmark motion blur trail (Effekte → Wortmarke) */
.media-combo__wordmark{position:relative;display:inline-block}
.wm__core{position:relative;z-index:2}
.wm__trail{position:absolute;left:0;top:0;white-space:nowrap;pointer-events:none;transform-origin:left center;filter:url(#wm-mblur);opacity:var(--wm-strength,.65);
  -webkit-mask-image:linear-gradient(to right,rgba(0,0,0,.9),rgba(0,0,0,.35) 60%,transparent);mask-image:linear-gradient(to right,rgba(0,0,0,.9),rgba(0,0,0,.35) 60%,transparent)}
.wm__trail--1{transform:translateX(calc(var(--wm-len,70px) * .35)) scaleX(calc(1 + (var(--wm-stretch,1.15) - 1) * .5))}
.wm__trail--2{transform:translateX(calc(var(--wm-len,70px) * .7)) scaleX(var(--wm-stretch,1.15));opacity:calc(var(--wm-strength,.65) * .6);filter:url(#wm-mblur-2)}
.wm__trail--3{transform:translateX(var(--wm-len,70px)) scaleX(calc(var(--wm-stretch,1.15) * 1.15));opacity:calc(var(--wm-strength,.65) * .3);filter:url(#wm-mblur-2)}
.wm-dir-left .wm__trail{transform-origin:right center;-webkit-mask-image:linear-gradient(to left,rgba(0,0,0,.9),rgba(0,0,0,.35) 60%,transparent);mask-image:linear-gradient(to left,rgba(0,0,0,.9),rgba(0,0,0,.35) 60%,transparent)}
.wm-dir-left .wm__trail--1{transform:translateX(calc(var(--wm-len,70px) * -.35)) scaleX(calc(1 + (var(--wm-stretch,1.15) - 1) * .5))}
.wm-dir-left .wm__trail--2{transform:translateX(calc(var(--wm-len,70px) * -.7)) scaleX(var(--wm-stretch,1.15))}
.wm-dir-left .wm__trail--3{transform:translateX(calc(var(--wm-len,70px) * -1)) scaleX(calc(var(--wm-stretch,1.15) * 1.15))}
.wm-dir-both .wm__trail{transform-origin:center;-webkit-mask-image:none;mask-image:none}
.wm-dir-both .wm__trail--1{transform:scaleX(calc(1 + (var(--wm-stretch,1.15) - 1) * .8))}
.wm-dir-both .wm__trail--2{transform:scaleX(calc(var(--wm-stretch,1.15) * 1.1))}
.wm-dir-both .wm__trail--3{transform:scaleX(calc(var(--wm-stretch,1.15) * 1.35))}
.wm-dir-right{--wm-sign:1}.wm-dir-left{--wm-sign:-1}.wm-dir-both{--wm-sign:1}
@media (prefers-reduced-motion:no-preference){
  /* breathe: trail pulses in place */
  .wm-anim-breathe .wm__trail--1{animation:wm-breathe var(--wm-speed,4s) ease-in-out infinite}
  .wm-anim-breathe .wm__trail--2{animation:wm-breathe var(--wm-speed,4s) ease-in-out infinite;animation-delay:calc(var(--wm-speed,4s) * -.33)}
  .wm-anim-breathe .wm__trail--3{animation:wm-breathe var(--wm-speed,4s) ease-in-out infinite;animation-delay:calc(var(--wm-speed,4s) * -.66)}
  /* sweep: copies shoot out of the letters and fade, staggered so there is always a trail */
  .wm-anim-sweep .wm__trail{animation:wm-sweep var(--wm-speed,4s) cubic-bezier(.15,.7,.3,1) infinite;opacity:0}
  .wm-anim-sweep .wm__trail--2{animation-delay:calc(var(--wm-speed,4s) * -.33)}
  .wm-anim-sweep .wm__trail--3{animation-delay:calc(var(--wm-speed,4s) * -.66)}
  .wm-anim-sweep.wm-dir-both .wm__trail--2{animation-name:wm-sweep-neg}
  /* drift: the whole wordmark glides, trails lag behind with bigger amplitude */
  .wm-anim-drift .wm__core{animation:wm-drift var(--wm-speed,4s) ease-in-out infinite}
  .wm-anim-drift .wm__trail--1{animation:wm-drift-trail var(--wm-speed,4s) ease-in-out infinite;animation-delay:-.12s}
  .wm-anim-drift .wm__trail--2{animation:wm-drift-trail var(--wm-speed,4s) ease-in-out infinite;animation-delay:-.24s}
  .wm-anim-drift .wm__trail--3{animation:wm-drift-trail var(--wm-speed,4s) ease-in-out infinite;animation-delay:-.36s}
}
@keyframes wm-breathe{0%,100%{opacity:var(--wm-strength,.65)}50%{opacity:calc(var(--wm-strength,.65) * .35)}}
@keyframes wm-sweep{0%{transform:translateX(0) scaleX(1);opacity:var(--wm-strength,.65)}60%{opacity:calc(var(--wm-strength,.65) * .45)}100%{transform:translateX(calc(var(--wm-len,70px) * var(--wm-sign,1) * 1.4)) scaleX(calc(var(--wm-stretch,1.15) * 1.2));opacity:0}}
@keyframes wm-sweep-neg{0%{transform:translateX(0) scaleX(1);opacity:var(--wm-strength,.65)}60%{opacity:calc(var(--wm-strength,.65) * .45)}100%{transform:translateX(calc(var(--wm-len,70px) * -1.4)) scaleX(calc(var(--wm-stretch,1.15) * 1.2));opacity:0}}
@keyframes wm-drift{0%,100%{transform:translateX(calc(var(--wm-len,70px) * -.25))}50%{transform:translateX(calc(var(--wm-len,70px) * .25))}}
@keyframes wm-drift-trail{0%,100%{transform:translateX(calc(var(--wm-len,70px) * -.9)) scaleX(var(--wm-stretch,1.15))}50%{transform:translateX(calc(var(--wm-len,70px) * .9)) scaleX(var(--wm-stretch,1.15))}}
.wm-defs{position:absolute;width:0;height:0}

/* wordmark trail v2: softer, longer, may overflow the hero */
.wm__trail--3{filter:url(#wm-mblur-3)}
.section--media-combo-svg.has-wm-motion .wm__trail{-webkit-mask-image:linear-gradient(to right,rgba(0,0,0,1),rgba(0,0,0,.5) 55%,transparent 100%);mask-image:linear-gradient(to right,rgba(0,0,0,1),rgba(0,0,0,.5) 55%,transparent 100%);-webkit-mask-size:200% 100%;mask-size:200% 100%}
.section--media-combo-svg.wm-dir-left .wm__trail{-webkit-mask-image:linear-gradient(to left,rgba(0,0,0,1),rgba(0,0,0,.5) 55%,transparent 100%);mask-image:linear-gradient(to left,rgba(0,0,0,1),rgba(0,0,0,.5) 55%,transparent 100%);-webkit-mask-position:right;mask-position:right}
.section--media-combo-svg.wm-dir-both .wm__trail{-webkit-mask-image:none;mask-image:none}
/* overflow: the wordmark layer escapes the hero box, the media itself stays clipped */
.section--media-combo:has(.wm-overflow){overflow:visible;z-index:2}
.section--media-combo:has(.wm-overflow) .media,.section--media-combo:has(.wm-overflow) .plan-overlay,.section--media-combo:has(.wm-overflow) .marquee{overflow:hidden}
.section--media-combo-svg.wm-overflow{overflow:visible}
@keyframes wm-sweep{0%{transform:translateX(0) scaleX(1);opacity:var(--wm-strength,.7)}55%{opacity:calc(var(--wm-strength,.7) * .5)}100%{transform:translateX(calc(var(--wm-len,180px) * var(--wm-sign,1) * 1.6)) scaleX(calc(var(--wm-stretch,1.5) * 1.3));opacity:0}}
@keyframes wm-sweep-neg{0%{transform:translateX(0) scaleX(1);opacity:var(--wm-strength,.7)}55%{opacity:calc(var(--wm-strength,.7) * .5)}100%{transform:translateX(calc(var(--wm-len,180px) * -1.6)) scaleX(calc(var(--wm-stretch,1.5) * 1.3));opacity:0}}

/* wordmark trail v3: own layer with own blend mode (default screen), core stays in difference */
.section--media-combo-trails{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 var(--margin);pointer-events:none;color:#fff;z-index:3;font-family:var(--font-b);font-weight:700;font-size:clamp(5rem,13vw,20rem);line-height:.85;text-transform:uppercase;letter-spacing:-.04em;text-align:center}
.section--media-combo-trails.wm-overflow{overflow:visible}
.wm__core--ghost{visibility:hidden}
.section--media-combo:has(.wm-overflow){overflow:visible;z-index:2}

/* wordmark motion blur v4: spin + zoom blur built from N ghost copies, amplitude animated via @property */
@property --wm-amp{syntax:'<number>';inherits:true;initial-value:0}
.section--media-combo{--wm-amp:0;--wm-core-fade:0}
.wm__ghost{position:absolute;left:0;top:0;white-space:nowrap;pointer-events:none;color:#fff;transform-origin:50% 50%;
  opacity:calc(var(--wm-strength,1) * 2.4 / var(--wm-n,18) * var(--w,1));
  transform:translateX(calc(var(--wm-shift,36px) * var(--k) * var(--wm-amp))) rotate(calc(var(--wm-angle,7deg) * var(--k) * var(--wm-amp))) scale(calc(1 + var(--wm-zoom,.14) * var(--k) * var(--wm-amp)));
  filter:blur(calc(var(--wm-blur,2.5px) * (0.4 + 0.6 * var(--wm-amp))))}
.section--media-combo-svg .wm__core{opacity:calc(1 - var(--wm-amp) * var(--wm-core-fade,0))}
.wm-anim-static{--wm-amp:1}
@media (prefers-reduced-motion:no-preference){
  .wm-anim-pulse{animation:wm-pulse var(--wm-speed,5s) ease-in-out infinite}
  .wm-anim-settle{animation:wm-settle calc(var(--wm-speed,5s) * .4) cubic-bezier(.2,.8,.2,1) 1 both}
  .wm-anim-shake{animation:wm-shake calc(var(--wm-speed,5s) * .25) ease-in-out infinite}
}
@media (prefers-reduced-motion:reduce){.wm-anim-pulse,.wm-anim-settle,.wm-anim-shake{--wm-amp:.6}}
@keyframes wm-pulse{0%{--wm-amp:0}18%{--wm-amp:1}55%{--wm-amp:0}100%{--wm-amp:0}}
@keyframes wm-settle{0%{--wm-amp:1.5}100%{--wm-amp:0}}
@keyframes wm-shake{0%,100%{--wm-amp:.25}50%{--wm-amp:.6}}
.wm__trail{display:none}

/* wordmark motion blur v5: always-on base amplitude, animation modulates on top; brighter ghost falloff */
.section--media-combo{--wm-amp:var(--wm-base,.75)}
.wm-anim-static{--wm-amp:var(--wm-base,.75)}
.wm__ghost{opacity:calc(var(--wm-strength,1.4) * 2.6 / var(--wm-n,22) * var(--w,1))}
@keyframes wm-pulse{0%{--wm-amp:var(--wm-base,.75)}18%{--wm-amp:calc(var(--wm-base,.75) + .6)}55%{--wm-amp:var(--wm-base,.75)}100%{--wm-amp:var(--wm-base,.75)}}
@keyframes wm-settle{0%{--wm-amp:calc(var(--wm-base,.75) + 1.2)}100%{--wm-amp:var(--wm-base,.75)}}
@keyframes wm-shake{0%,100%{--wm-amp:calc(var(--wm-base,.75) * .8)}50%{--wm-amp:calc(var(--wm-base,.75) + .35)}}
@media (prefers-reduced-motion:reduce){.wm-anim-pulse,.wm-anim-settle,.wm-anim-shake{--wm-amp:var(--wm-base,.75)}}

/* v6: crisp stacked copies -> solid smear wedges like the logo */
.wm__ghost{opacity:calc(var(--wm-strength,1.1) * 3.2 / var(--wm-n,22) * var(--w,1));filter:blur(calc(var(--wm-blur,.6px) * (0.5 + 0.5 * var(--wm-amp))))}
.section--media-combo-trails{z-index:2}.section--media-combo-svg{z-index:3}

/* v7: nothing clips the smear any more, more layers, outer layers lag in time */
.media-combo__wordmark{overflow:visible}
.section--media-combo-trails .media-combo__wordmark--trails{overflow:visible;max-width:none}
.section--media-combo-trails{overflow:visible}
.section--media-combo:has(.wm-overflow) .section--media-combo-svg{overflow:visible}
/* per-layer amplitude: shared pulse (--wm-amp) x own lagging factor (--gm) */
@property --gm{syntax:'<number>';inherits:false;initial-value:1}
.wm__ghost{--gm:1;
  transform:translateX(calc(var(--wm-shift,44px) * var(--k) * var(--wm-amp) * var(--gm))) rotate(calc(var(--wm-angle,10deg) * var(--k) * var(--wm-amp) * var(--gm))) scale(calc(1 + var(--wm-zoom,.2) * var(--k) * var(--wm-amp) * var(--gm)))}
@media (prefers-reduced-motion:no-preference){
  .wm-anim-wave .wm__ghost,.wm-anim-swing .wm__ghost,.wm-anim-pulse .wm__ghost,.wm-anim-shake .wm__ghost{
    animation:wm-lag var(--wm-speed,6s) ease-in-out infinite;
    animation-delay:calc(var(--wm-speed,6s) * var(--lag,0) * -1)}
  .wm-anim-wave{animation:wm-wave var(--wm-speed,6s) ease-in-out infinite}
  .wm-anim-swing{animation:wm-swing var(--wm-speed,6s) ease-in-out infinite}
}
@keyframes wm-lag{0%,100%{--gm:.78}50%{--gm:1.22}}
@keyframes wm-wave{0%,100%{--wm-amp:calc(var(--wm-base,.9) * .55)}50%{--wm-amp:calc(var(--wm-base,.9) * 1.35)}}
@keyframes wm-swing{0%{--wm-amp:calc(var(--wm-base,.9) * -1.1)}50%{--wm-amp:calc(var(--wm-base,.9) * 1.1)}100%{--wm-amp:calc(var(--wm-base,.9) * -1.1)}}

/* wordmark + effect colours from settings */
.section--media-combo-svg{color:var(--wordmark-color,#fff)}
.section--media-combo-trails,.wm__ghost{color:var(--wm-color,#fff)}

/* merged wordmark layer: ghosts + core in one stacking context, blended once */
.section--media-combo-svg.is-merged .wm__core{position:relative;z-index:2}
.section--media-combo-svg.is-merged .wm__ghost{z-index:1}
/* the amplitude animation classes live on the section; ghost lag animation must also apply inside the merged layer */
@media (prefers-reduced-motion:no-preference){
  .section--media-combo-svg.wm-anim-wave .wm__ghost,.section--media-combo-svg.wm-anim-swing .wm__ghost,.section--media-combo-svg.wm-anim-pulse .wm__ghost,.section--media-combo-svg.wm-anim-shake .wm__ghost{animation:wm-lag var(--wm-speed,6s) ease-in-out infinite;animation-delay:calc(var(--wm-speed,6s) * var(--lag,0) * -1)}
}

/* Offline / coming-soon mode */
.page-template-page-offline .main-container{min-height:0}
.page-template-page-offline .section--media-combo{height:100vh;height:100svh}
.header__menu-item--ghost a{border:2px solid var(--white);padding:.8rem 1.4rem}.header__menu-item--ghost a:hover{background:var(--white);color:var(--black)}
.offline{position:fixed;left:0;right:0;bottom:0;z-index:4;padding:0 var(--margin) clamp(2rem,5vh,5rem);pointer-events:none}
.offline__inner{max-width:72rem;margin:0 auto;text-align:center;color:var(--white);opacity:0;transform:translateY(2rem);animation:offline-in 1.2s var(--ease) forwards;animation-delay:var(--waitlist-delay,2.5s);pointer-events:auto}
.offline__headline{font-family:var(--font-b);font-weight:700;font-size:1.4rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.8rem}
.offline__text{font-size:1.6rem;line-height:1.4;opacity:.8;margin-bottom:2rem}
.offline__form{display:flex;gap:0;max-width:56rem;margin:0 auto;flex-wrap:wrap;justify-content:center}
.offline__input{flex:1 1 28rem;min-width:0;padding:1.6rem 1.8rem;border:2px solid var(--white);border-right:0;background:rgba(0,0,0,.55);color:var(--white);font:inherit;font-size:1.6rem;outline:none;backdrop-filter:blur(8px)}
.offline__input::placeholder{color:rgba(255,255,255,.55)}.offline__input:focus{background:rgba(0,0,0,.75)}
.offline__button{flex:0 0 auto;padding:1.6rem 2.4rem;border:2px solid var(--white);background:var(--white);color:var(--black);font-family:var(--font-b);font-weight:700;font-size:1.4rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s}
.offline__button:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.offline__consent{flex-basis:100%;font-size:1.2rem;opacity:.6;margin-top:1.2rem}.offline__consent a{text-decoration:underline}
.offline__form.is-sending{opacity:.6}.offline__form.is-sent{display:none}
.offline__success{display:none;font-size:1.8rem;line-height:1.4;padding:1.6rem;border:2px solid var(--white);background:rgba(0,0,0,.55);backdrop-filter:blur(8px)}.offline__success.is-visible{display:block}
.offline .base-form__error{color:#ff6b6b;font-size:1.3rem;margin-top:.8rem;flex-basis:100%}
@keyframes offline-in{to{opacity:1;transform:none}}
@media (max-width:767px){.offline__input{border-right:2px solid var(--white);border-bottom:0}.offline__button{width:100%}.offline__text{font-size:1.4rem}.header__menu-item--ghost{display:none}}

.offline__form{display:block;max-width:60rem}
.offline__row{display:flex;width:100%}
.offline__row .offline__input{flex:1 1 auto;min-width:0}
.offline__row .offline__button{flex:0 0 auto;white-space:nowrap}
@media (max-width:767px){.offline__row{flex-direction:column}.offline__row .offline__input{border-right:2px solid var(--white);border-bottom:0}}
