@font-face{font-family:AnaCondensed;src:url('assets/fonts/bebas-neue.ttf') format('truetype');font-display:swap;font-weight:400}
.hospitality-page{background:#000;color:#fff}
.hospitality-page header,.booking-page header{background:#000}
.inspiration-section{width:100%;margin:0;padding:0;min-width:0;background:#000}
.section-film{position:relative;width:100%;aspect-ratio:16/7.5;max-height:63svh;background:#080808;overflow:hidden}
.section-film video{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.section-film.portrait-film{aspect-ratio:16/7.5;background:#080808}
.section-film.portrait-film video{object-fit:contain}
.section-film-controls{position:absolute;right:clamp(15px,4vw,50px);bottom:clamp(14px,3vw,30px);display:flex;gap:12px}
.section-film-controls button{position:relative;display:grid;place-items:center;border:0;background:#000c;border-radius:50%;color:#fff;width:44px;height:44px;min-height:44px;font:18px Arial,sans-serif;cursor:pointer}
.section-film-controls button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.section-sound.is-muted:after{content:'';position:absolute;width:22px;height:1px;background:#fff;transform:rotate(45deg)}
.section-statement{text-align:center;padding:clamp(45px,6vw,85px) 22px clamp(45px,6vw,90px);max-width:1100px;margin:auto}
.section-category{font:9px/1.6 Arial,sans-serif;letter-spacing:.25em;text-transform:uppercase;color:#b6b6b6;margin:0 0 25px}
.section-statement h1,.contact-intro h1{font-family:AnaScript,Georgia,cursive;font-size:clamp(47px,6vw,90px);font-weight:400;line-height:1.3;letter-spacing:0;margin:0;color:#fff;text-transform:none}
.section-statement h1 em,.contact-intro h1 em{color:#c6b67a;font-style:normal}
.section-statement h2{font-family:AnaCondensed,'Arial Narrow',Arial,sans-serif;font-size:clamp(28px,3.4vw,48px);font-weight:400;line-height:1.25;text-transform:uppercase;letter-spacing:0;margin:22px auto 0;max-width:740px;color:#fff}
.occasion-strip{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(5px,1.1vw,16px)}
.occasion-card{position:relative;aspect-ratio:4/5;min-width:0;max-height:410px;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end;justify-content:center;padding:clamp(12px,2.6vw,40px) 7px;background:#111}
.occasion-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.6);z-index:-2;transition:transform .8s}
.occasion-card:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000a,transparent 70%);z-index:-1}
.occasion-card span{font-family:AnaCondensed,'Arial Narrow',Arial,sans-serif;font-size:clamp(17px,2.5vw,35px);font-weight:400;line-height:1.2;color:#c6b67a;text-transform:uppercase;text-align:center;overflow-wrap:break-word}
.occasion-card:hover img{transform:scale(1.035)}
.section-description{max-width:800px;margin:auto;padding:clamp(38px,6vw,75px) var(--page-gutter) 55px;text-align:center}
.section-description p{font:14px/1.9 Arial,sans-serif;color:#c5c5c5;text-align:justify;text-align-last:center;hyphens:auto;margin:0}
.section-description>a{display:inline-flex;align-items:center;gap:45px;color:#fff;font-size:12px;min-height:44px;padding:12px 0 6px;border-bottom:1px solid #aaa;margin-top:28px}
.contact-intro{text-align:center;margin-bottom:30px}.contact-intro h1{font-size:58px}.contact-intro>p{font-family:AnaCondensed,Arial,sans-serif;font-size:26px;line-height:1.3;color:#fff;letter-spacing:0;margin-top:10px}
@media(max-width:700px){.section-film,.section-film.portrait-film{aspect-ratio:16/9;max-height:none}.section-statement{padding:43px 20px 55px}.section-category{font-size:7px;margin-bottom:16px}.section-statement h1{font-size:clamp(43px,8.8vw,62px)}.section-statement h2{font-size:clamp(27px,5.4vw,36px);max-width:90%;margin-top:20px}.occasion-card{aspect-ratio:1/1.8;max-height:280px;padding-bottom:28px}.occasion-card span{font-size:clamp(14px,3.1vw,22px)}.section-description{padding:36px 25px 42px}.section-description p{font-size:13px;line-height:1.8}.contact-intro h1{font-size:49px}.contact-intro>p{font-size:24px}.section-film-controls{gap:9px;right:16px;bottom:15px}}
@media(max-width:360px){.section-statement h1{font-size:39px}.section-statement h2{font-size:27px}.occasion-card span{font-size:13px}}
@media(prefers-reduced-motion:reduce){.occasion-card img{transition:none}}
/* Viewport composition: allocate space to every content block. */
:root{--compact-header:clamp(52px,8svh,76px)}
body.hospitality-page,body.booking-page{height:100svh;min-height:0;display:grid;grid-template-rows:var(--compact-header) minmax(0,1fr)}
.hospitality-page header,.booking-page header{height:var(--compact-header);min-height:0;grid-row:1;padding-block:8px}
.inspiration-section{height:100%;min-height:0;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,33fr) minmax(0,24fr) minmax(0,19fr) minmax(0,24fr)}
.inspiration-section>*{min-width:0;min-height:0}
.section-film,.section-film.portrait-film{aspect-ratio:auto;height:100%;max-height:none;width:100%}
.section-film video{width:100%;height:100%;object-fit:contain}
.section-statement{height:100%;width:100%;max-width:1100px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 22px;margin:0 auto}
.section-category{font-size:clamp(6px,.95svh,9px);line-height:1.2;margin:0 0 clamp(3px,.7svh,8px)}
.section-statement h1{font-size:clamp(26px,min(5.8vw,5.6svh),62px);line-height:1.13;margin:0;max-width:100%}
.section-statement h2{font-size:clamp(20px,min(3.3vw,3.3svh),36px);line-height:1.1;margin:clamp(4px,.8svh,10px) 0 0;max-width:95%}
.occasion-strip{height:100%;gap:clamp(5px,1vw,14px)}
.occasion-card{height:100%;max-height:none;aspect-ratio:auto;padding:8px 6px clamp(10px,2svh,23px)}
.occasion-card span{font-size:clamp(13px,min(2.4vw,3svh),30px);line-height:1.1}
.section-description{height:100%;width:min(90%,800px);padding:clamp(6px,1.3svh,14px) 0;margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}
.section-description p{font-size:clamp(11px,1.55svh,14px);line-height:1.5;margin:0}
.section-description>a{min-height:36px;font-size:clamp(10px,1.45svh,12px);padding:5px 0;margin:2px 0 0}
.booking-page main{grid-row:2;min-height:0;height:100%}
.booking-page .contact-page-content{height:100%;min-height:0;padding:8px var(--page-gutter) 12px;display:grid;place-items:center}
.booking-page .booking{max-width:720px;min-width:0}
.contact-intro{margin-bottom:clamp(6px,1.5svh,14px)}
.contact-intro h1{font-size:clamp(29px,5svh,45px);line-height:1.1}
.contact-intro>p{font-size:clamp(17px,2.6svh,24px);line-height:1.15;margin-top:6px}
.booking-page #booking-form{gap:clamp(7px,1.3svh,12px) 16px;margin:0}
.booking-page #booking-form label{font-size:clamp(9px,1.4svh,11px);line-height:1.2;gap:4px}
.booking-page #booking-form input,.booking-page #booking-form select{height:clamp(32px,5.2svh,44px);min-height:0;padding:6px 9px;font-size:12px}
.booking-page #booking-form textarea{height:clamp(42px,8svh,68px);min-height:0;resize:none;padding:6px 9px;font-size:12px}
.booking-page #booking-form button{min-height:36px;padding:8px 10px;font-size:11px}
.booking-page #booking-form .form-status{font-size:10px;line-height:1.3;margin:0}.booking-page #booking-form .form-status:empty{display:none}
.booking-page .booking-date-time{gap:16px}
.booking-page .booking-signature{top:8px}.booking-name{font-size:clamp(25px,4.6svh,37px)}.booking-tagline{font-size:clamp(13px,2.2svh,18px)}
@media(max-width:700px){
.inspiration-section{grid-template-rows:minmax(0,27fr) minmax(0,26fr) minmax(0,16fr) minmax(0,31fr)}
.section-statement{padding:5px 16px}.section-statement h1{font-size:clamp(25px,min(8.4vw,5svh),43px)}
.section-statement h2{font-size:clamp(19px,min(5vw,3.1svh),28px);max-width:100%}
.occasion-card{padding:6px 4px 10px}.occasion-card span{font-size:clamp(12px,3.1vw,20px)}
.section-description{width:calc(100% - 38px);padding:6px 0}.section-description p{font-size:clamp(11px,1.65svh,13px);line-height:1.45}
.booking-page .contact-page-content{padding-inline:20px}.booking-page #booking-form{gap:8px 12px}.booking-page .booking-date-time{gap:12px}
}
@media(max-height:550px) and (min-width:650px){
.inspiration-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1.1fr) minmax(0,1.5fr) minmax(0,1fr);gap:8px 20px;padding:8px 20px}
.section-film,.section-film.portrait-film{grid-column:1;grid-row:1/4}
.section-statement{grid-column:2;grid-row:1;padding:0}.section-statement h1{font-size:30px}.section-statement h2{font-size:19px}
.section-description{grid-column:2;grid-row:2;width:100%;padding:0}.section-description p{font-size:11px;line-height:1.4}
.occasion-strip{grid-column:2;grid-row:3}.occasion-card span{font-size:13px}
.booking-page .contact-intro{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:6px}.contact-intro h1{font-size:28px}.contact-intro>p{font-size:18px;margin:0}
.booking-page #booking-form{gap:5px 16px}.booking-page #booking-form input,.booking-page #booking-form select{height:29px}.booking-page #booking-form textarea{height:34px}
}
/* Extremely small/zoomed viewports retain readable content rather than clipping it. */
@media(max-height:430px) and (max-width:649px){body.hospitality-page,body.booking-page{height:auto;min-height:100svh}.inspiration-section{height:auto;grid-template-rows:150px auto 85px auto;gap:12px}.section-statement{padding:10px 18px}.section-description{padding-bottom:18px}.booking-page main{height:auto}}

/* Performance pages: film, statement and image strip fill the available page. */
.hospitality-page .inspiration-section{grid-template-rows:minmax(0,42fr) minmax(0,30fr) minmax(0,28fr)}
@media(max-width:700px){.hospitality-page .inspiration-section{grid-template-rows:minmax(0,40fr) minmax(0,32fr) minmax(0,28fr)}}
@media(max-height:550px) and (min-width:650px){.hospitality-page .inspiration-section{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.hospitality-page .section-film{grid-row:1/3}.hospitality-page .occasion-strip{grid-row:2}}
@media(max-height:430px) and (max-width:649px){.hospitality-page .inspiration-section{grid-template-rows:150px auto 110px}}

/* Contact action follows each performance page, below the first viewport. */
body.hospitality-page{height:auto;min-height:100svh;grid-template-rows:var(--compact-header) minmax(0,calc(100svh - var(--compact-header))) auto}
.section-contact-footer{grid-row:3;display:flex;justify-content:center;align-items:center;width:100%;max-width:none;margin:0;padding:32px 24px 40px;background:#000;border:0}
.contact-ana-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 36px;border:1px solid #dedbd5;border-radius:26px;background:#dedbd5;color:#000;font:600 12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase;transition:background .2s,color .2s}
.contact-ana-button:hover{background:#d2cec7;color:#000}
@media(max-height:430px) and (max-width:649px){body.hospitality-page{grid-template-rows:var(--compact-header) auto auto}}

.section-statement h2.private-vision{text-align:center;text-align-last:center;word-spacing:0;letter-spacing:0;line-height:1.2}.private-vision span{display:block;white-space:nowrap;word-spacing:0;letter-spacing:0}

.section-contact-footer a.contact-ana-button,.section-contact-footer a.contact-ana-button:visited,.section-contact-footer a.contact-ana-button:hover,.section-contact-footer a.contact-ana-button:focus,.section-contact-footer a.contact-ana-button:active{color:#000!important;-webkit-text-fill-color:#000!important;opacity:1;text-shadow:none;font-weight:700}

.section-statement.private-statement h1,.section-statement.private-statement h2{white-space:nowrap;max-width:100%;word-spacing:0;letter-spacing:0;text-align:center;text-align-last:center}

.booking-page .contact-intro{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;text-align:center}
.booking-page .contact-intro h1,.booking-page .contact-intro>p{width:100%;margin:0;text-align:center;text-align-last:center}
.booking-page #booking-form .contact-ana-button{justify-self:center;width:auto;min-width:240px;min-height:48px;padding:13px 30px;border:1px solid #dedbd5;border-radius:26px;background:#dedbd5;color:#000!important;-webkit-text-fill-color:#000!important;opacity:1;text-shadow:none;font:700 12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.booking-page #booking-form .contact-ana-button:hover{background:#d2cec7;color:#000!important}
.booking-page #booking-form .contact-ana-button{margin-top:clamp(7px,1.3svh,12px)}
@media(max-width:700px){.booking-page #booking-form .contact-ana-button{margin-top:8px}}
@media(max-height:550px) and (min-width:650px){.booking-page #booking-form .contact-ana-button{margin-top:5px}}

.occasion-strip.occasion-strip-three{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Desktop: dedicate the first viewport to the performance and its statement. */
@media(min-width:1024px){
 body.hospitality-page{grid-template-rows:var(--compact-header) auto auto;overflow-y:auto}
 .hospitality-page .inspiration-section{height:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:calc((100svh - var(--compact-header)) * .74) calc((100svh - var(--compact-header)) * .26) clamp(260px,44svh,480px);gap:0;padding:0}
 .hospitality-page .section-film,.hospitality-page .section-film.portrait-film{grid-column:1;grid-row:1;width:100%;height:100%;max-height:none;aspect-ratio:auto}
 .hospitality-page .section-film video{width:100%;height:100%;object-fit:contain}
 .hospitality-page .section-statement{grid-column:1;grid-row:2;width:100%;height:100%;padding:16px 32px}
 .hospitality-page .occasion-strip{grid-column:1;grid-row:3;height:100%}
}
