@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/Poppins-400.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/Poppins-500.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/Poppins-600.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/Poppins-700.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/Poppins-800.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 900; font-display: swap; src: url("../fonts/Poppins-900.woff2") format("woff2"); }

:root {
  --roeff-primary: #d4af37;
  --roeff-primary-strong: #e1c554;
  --roeff-primary-on-light: #806400;
  --roeff-dark: #17130b;
  --roeff-black: #0d0d0d;
  --roeff-light: #f5f4ef;
  --roeff-surface: #c7c3bf;
  --roeff-border: rgba(255, 255, 255, 0.18);
  --roeff-text: #ffffff;
  --roeff-muted: #c6c2ba;
  --font-display: "Poppins", "Arial Black", sans-serif;
  --font-body: "Poppins", Arial, sans-serif;
  --space-1: clamp(0.5rem, 0.4rem + 0.3vw, 0.75rem);
  --space-2: clamp(0.9rem, 0.75rem + 0.55vw, 1.4rem);
  --space-3: clamp(1.4rem, 1.1rem + 1vw, 2.4rem);
  --space-4: clamp(2.4rem, 1.7rem + 2.2vw, 4.75rem);
  --space-5: clamp(4rem, 2.8rem + 4vw, 8rem);
  --radius-pill: 999px;
  --shadow-float: 0 18px 60px rgba(0, 0, 0, 0.28);
  --blur: 18px;
  --container: min(92vw, 112rem);
  --duration: 520ms;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --nav-height: 5.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: dark; scroll-behavior: smooth; scrollbar-color: var(--roeff-primary) #111; scrollbar-width: thin; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: #111; }
*::-webkit-scrollbar-thumb { border: 2px solid #111; border-radius: 999px; background: var(--roeff-primary); }
*::-webkit-scrollbar-thumb:hover { background: var(--roeff-primary-strong); }
*::-webkit-scrollbar-corner { background: #111; }
section[id], footer [id] { scroll-margin-top: 7rem; }
body.admin-bar section[id], body.admin-bar footer [id] { scroll-margin-top: 10rem; }
body { margin: 0; overflow-x: clip; background: var(--roeff-black); color: var(--roeff-text); font-family: var(--font-body); font-size: 1rem; line-height: 1.6; }
body.menu-open { overflow: hidden; }
[hidden] { display: none !important; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid var(--roeff-primary); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 1000; top: 0.75rem; left: 0.75rem; transform: translateY(-180%); background: var(--roeff-light); color: var(--roeff-black); padding: 0.75rem 1rem; }
.skip-link:focus { transform: translateY(0); }
body.admin-bar .site-nav { top: calc(1rem + 32px); }

.site-nav { position: fixed; z-index: 100; top: 1rem; left: 50%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; width: var(--container); min-height: var(--nav-height); padding: 0 0.75rem 0 1.35rem; transform: translateX(-50%); border: 1px solid rgba(255,255,255,.1); background: rgba(13,13,13,.38); backdrop-filter: blur(10px); transition: min-height var(--duration) var(--ease), background var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease); }
.site-nav.is-scrolled { --nav-height: 4.25rem; background: rgba(13, 13, 13, 0.82); border-color: var(--roeff-border); box-shadow: var(--shadow-float); backdrop-filter: blur(var(--blur)); }
.wordmark { position: relative; z-index: 2; margin: 0; color: #fff; font-family: var(--font-display); font-size: clamp(1.65rem, 2.1vw, 2.5rem); font-weight: 900; letter-spacing: -0.055em; line-height: 0.9; text-decoration: none; }
.wordmark a { color: inherit; text-decoration: none; }
.wordmark span, .gold-dot { color: var(--roeff-primary); }
.site-menu { display: flex; justify-self: center; align-items: center; gap: clamp(1.1rem, 2vw, 2.6rem); }
.site-menu > a, .site-menu .wp-block-navigation-item__content { position: relative; color: rgba(255,255,255,.82); font-size: 0.83rem; font-weight: 600; text-decoration: none; }
.site-menu .wp-block-navigation-item__content { display: inline-flex; min-height: 2.75rem; align-items: center; }
.site-menu > a::after, .site-menu .wp-block-navigation-item__content::after, .text-link::after { position: absolute; right: 0; bottom: -0.35rem; left: 0; height: 1px; content: ""; transform: scaleX(0); transform-origin: right; background: var(--roeff-primary); transition: transform 320ms var(--ease); }
.site-menu > a:hover::after, .site-menu > a:focus-visible::after, .site-menu .wp-block-navigation-item__content:hover::after, .text-link:hover::after { transform: scaleX(1); transform-origin: left; }
.menu-socials, .menu-toggle { display: none; }
.menu-socials a { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: #fff; transition: border-color 220ms ease, color 220ms ease, transform 220ms var(--ease); }
.menu-socials a:hover, .menu-socials a:focus-visible { border-color: var(--roeff-primary); color: var(--roeff-primary); transform: translateY(-2px); }
.menu-socials svg { display: block; width: 1.25rem; min-width: 1.25rem; height: 1.25rem; overflow: visible; fill: currentColor; stroke: none; }
.menu-socials svg rect, .menu-socials svg circle:not(.social-icon__dot) { fill: none; stroke: currentColor; stroke-width: 1.8; }
.menu-socials .social-icon__dot { fill: currentColor; stroke: none; }
.menu-socials a[aria-label*="YouTube"] svg path, .social-icon-links a[aria-label*="YouTube"] svg path { opacity: 1; fill: currentColor !important; stroke: none !important; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--roeff-black) !important; color: #fff !important; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { background: var(--roeff-black); color: #fff !important; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { min-width: 2.75rem; min-height: 2.75rem; color: #fff; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .menu-socials--wp a { border-color: rgba(255,255,255,.42); color: #fff; }
.button { display: inline-flex; min-height: 3.35rem; align-items: center; justify-content: center; border: 1px solid transparent; padding: 0.85rem 1.45rem; color: var(--roeff-black); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.06em; text-decoration: none; text-transform: uppercase; transition: transform 260ms var(--ease), background 260ms ease, color 260ms ease; }
.button:hover { transform: translateY(-3px); }
.button--nav, .button--gold { background: var(--roeff-primary); }
.button--nav:hover, .button--gold:hover { background: var(--roeff-primary-strong); }
.ui-icon { display: block; width: 1rem; min-width: 1rem; height: 1rem; flex: none; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.ui-icon-wrap { display: grid; place-items: center; }
.ui-icon--play { width: 1.15rem; height: 1.15rem; fill: currentColor; stroke: none; transform: translateX(.08rem); }
.ui-icon--pause { display: none; width: 1.15rem; height: 1.15rem; stroke-width: 2.25; }
.is-playing .audio-player__toggle .ui-icon--play { display: none; }
.is-playing .audio-player__toggle .ui-icon--pause { display: block; }
.header-cta .wp-block-button__link { min-height: 3.35rem; border-radius: 0; padding: .95rem 1.45rem; background: var(--roeff-primary); color: var(--roeff-black); font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.hero { position: relative; min-height: max(43rem, calc(100svh - 3.2rem)); overflow: hidden; isolation: isolate; background: var(--roeff-black); }
.hero::after { position: absolute; z-index: 1; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg, rgba(13,13,13,1) 0%, rgba(13,13,13,.82) 28%, rgba(13,13,13,.1) 66%), linear-gradient(0deg, rgba(13,13,13,.9) 0%, transparent 35%); }
.hero__wash { position: absolute; z-index: 0; inset: 0 auto 0 0; width: 45%; background: radial-gradient(circle at 90% 48%, rgba(212,175,55,.18), transparent 55%); }
.hero__media { position: absolute; z-index: 0; top: 0; right: 0; width: min(68vw, 78rem); height: 100%; margin: 0; overflow: hidden; }
.hero__media picture { display: contents; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 0; transform: translate3d(0, var(--hero-shift, 0), 0) scale(1.025); transform-origin: 58% top; filter: saturate(.86) contrast(1.04); will-change: transform; }
.hero__content { position: relative; z-index: 3; display: flex; flex-direction: column; width: var(--container); min-height: max(43rem, calc(100svh - 3.2rem)); margin: 0 auto; padding: calc(var(--nav-height) + 5.25rem) 0 3.25rem; }
.hero__eyebrow { width: fit-content; margin: 0 0 auto; border-left: 3px solid var(--roeff-primary); padding-left: 0.8rem; color: var(--roeff-primary); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.08em; }
.hero__title { margin: 0; font-family: var(--font-display); font-size: clamp(5.3rem, 11.8vw, 13.25rem); font-weight: 900; letter-spacing: -0.078em; line-height: 0.76; text-transform: uppercase; text-wrap: balance; }
.hero__title > span { display: block; }
.hero__title > span:last-child { margin-left: clamp(1.8rem, 10vw, 11rem); }
.hero__bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-top: auto; }
.hero__bottom > p { max-width: 31rem; margin: 2.8rem 0 0; color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.55; }
.hero__actions { display: flex; align-items: center; gap: 1.5rem; }
.text-link { position: relative; display: inline-flex; gap: 0.75rem; align-items: center; padding: 0.6rem 0; font-size: 0.84rem; font-weight: 700; text-decoration: none; }
.hero__side-note { position: absolute; z-index: 3; top: 50%; right: 1.3rem; margin: 0; transform: translateY(-50%) rotate(90deg); transform-origin: center; color: rgba(255,255,255,.52); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.2em; }
.scroll-cue { position: absolute; z-index: 4; bottom: 2rem; left: 50%; display: grid; justify-items: center; gap: 0.5rem; transform: translateX(-50%); color: rgba(255,255,255,.58); font-size: 0.68rem; text-decoration: none; }
.scroll-cue i { display: block; width: 1px; height: 2.7rem; overflow: hidden; background: rgba(255,255,255,.25); }
.scroll-cue i::after { display: block; width: 100%; height: 45%; content: ""; animation: cue 2.2s var(--ease) infinite; background: var(--roeff-primary); }
@keyframes cue { from { transform: translateY(-120%); } 55%, to { transform: translateY(240%); } }

.sr-only, .screen-reader-text { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; }
.section-shell { width: var(--container); margin-inline: auto; }
.section--light { background: var(--roeff-light); color: var(--roeff-black); color-scheme: light; }
.section--dark { background: var(--roeff-black); color: #fff; }
.section-kicker { margin: 0 0 1.2rem; border-left: 3px solid var(--roeff-primary); padding-left: .8rem; color: currentColor; font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.punctuation, .gold-dot { display: inline-block; margin-left: .08em; letter-spacing: 0; }
.section-heading { display: grid; grid-template-columns: 1fr minmax(16rem, 25rem); align-items: end; gap: 2rem; margin-bottom: var(--space-5); }
.section-heading .section-kicker { grid-column: 1 / -1; }
.section-heading h2 { margin: 0; font-family: var(--font-display); font-size: clamp(3.8rem, 7vw, 7.8rem); font-weight: 900; letter-spacing: -.07em; line-height: .82; text-transform: uppercase; }
.section-heading h2 span, .section-heading--dark h2 span { color: var(--roeff-primary); }
.section-heading > p:last-child { max-width: 34ch; margin: 0; color: var(--roeff-muted); font-size: clamp(1rem, 1.4vw, 1.2rem); }
.section-heading--dark > p:last-child { color: #5e5b56; }
.image-frame { position: relative; margin: 0; overflow: hidden; background: #bdb9b4; }
.image-frame picture { display: contents; }
.image-frame img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.image-frame:hover img { transform: scale(1.025); }
.lead { font-size: clamp(1.25rem, 2vw, 1.9rem); font-weight: 600; line-height: 1.4; }
.text-link--dark { color: var(--roeff-black); }
.button--dark { background: var(--roeff-black); color: #fff; }
.button--dark:hover { background: #28241c; }
.button--light { background: var(--roeff-light); color: var(--roeff-black); }
.js [data-reveal], .js .reveal { opacity: 0; transform: translateY(2.2rem); transition: opacity 780ms var(--ease), transform 780ms var(--ease); }
.js [data-reveal].is-visible, .js .reveal.is-visible { opacity: 1; transform: translateY(0); }

.intro { position: relative; padding: clamp(6rem, 9vw, 9.5rem) 0 clamp(6.5rem, 10vw, 10.5rem); overflow: hidden; }
.intro::before { position: absolute; top: 3rem; right: -1.5rem; color: rgba(13,13,13,.045); content: "ROEFF"; font: 900 clamp(8rem, 23vw, 28rem)/.72 var(--font-display); letter-spacing: -.09em; pointer-events: none; }
.intro__headline { position: relative; z-index: 2; }
.intro__headline h2 { max-width: 12ch; margin: 0; font-family: var(--font-display); font-size: clamp(3.8rem, 7.4vw, 8.2rem); font-weight: 900; letter-spacing: -.07em; line-height: .83; text-transform: uppercase; }
.intro__headline h2 span { color: transparent; -webkit-text-stroke: 2px var(--roeff-black); text-stroke: 2px var(--roeff-black); }
.intro__layout { position: relative; display: grid; grid-template-columns: minmax(16rem, .68fr) minmax(20rem, .8fr); justify-content: end; gap: clamp(2.5rem, 6vw, 7rem); margin-top: 1.5rem; padding-right: clamp(0rem, 5vw, 7rem); }
.intro__portrait { aspect-ratio: 4 / 5; transform: translateY(clamp(3rem, 8vw, 8rem)); }
.intro__portrait::after { position: absolute; inset: 0; content: ""; box-shadow: inset 0 0 0 1px rgba(13,13,13,.08); pointer-events: none; }
.intro__portrait img { object-position: 50% 12%; }
.intro__copy { align-self: center; max-width: 35rem; padding-top: 2rem; }
.intro__copy > p:not(.intro__statement) { max-width: 38ch; }
.intro__statement { margin: clamp(2.5rem, 5vw, 5rem) 0 0; font: 900 clamp(2.8rem, 4.6vw, 5.2rem)/.88 var(--font-display); letter-spacing: -.06em; text-transform: uppercase; }
.intro__statement span { color: var(--roeff-primary); }

.type-break { display: grid; min-height: clamp(17rem, 31vw, 31rem); align-items: center; overflow: hidden; background: var(--roeff-primary); color: var(--roeff-black); }
.type-break__line { width: max-content; transform: translateX(-6vw) rotate(-2deg); font: 900 clamp(5.4rem, 12vw, 13.5rem)/.78 var(--font-display); letter-spacing: -.085em; white-space: nowrap; }

.experience { padding: clamp(6rem, 9vw, 9.5rem) 0 clamp(6.5rem, 10vw, 10.5rem); }
.experience__layout { display: grid; grid-template-columns: minmax(22rem, .94fr) minmax(22rem, .8fr); gap: clamp(3rem, 8vw, 10rem); align-items: start; }
.experience__visual { position: sticky; top: 7rem; height: min(58rem, calc(82svh - 5rem)); min-height: 34rem; }
.experience__visual img { object-position: 50% 22%; filter: saturate(.8) contrast(1.03); }
.experience__visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg, rgba(13,13,13,.78), transparent 38%); pointer-events: none; }
.experience__visual figcaption { position: absolute; z-index: 2; right: 1.5rem; bottom: 1.35rem; left: 1.5rem; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.28); padding-top: 1rem; color: rgba(255,255,255,.82); font-size: .75rem; font-weight: 600; letter-spacing: .06em; }
.experience__stories { padding-top: clamp(1rem, 4vw, 4rem); }
.story-item { position: relative; min-height: 40vh; border-top: 1px solid rgba(255,255,255,.16); padding: 2.2rem 0 4.5rem; opacity: .34; transition: opacity 500ms ease; }
.story-item::before { position: absolute; top: 2.8rem; left: -3.3rem; width: 1.5rem; height: 1.5rem; border: 1px solid var(--roeff-primary); border-radius: 50%; content: ""; transform: scale(.38); transition: background 400ms ease, transform 400ms var(--ease); }
.story-item.is-active { opacity: 1; }
.story-item.is-active::before { transform: scale(1); background: var(--roeff-primary); }
.story-item h3 { margin: 0 0 1.2rem; font: 800 clamp(2.8rem, 4.8vw, 5.5rem)/.92 var(--font-display); letter-spacing: -.06em; }
.story-item p { max-width: 32ch; margin: 0; color: var(--roeff-muted); font-size: clamp(1rem, 1.45vw, 1.24rem); }

.show-moment { position: relative; display: grid; min-height: max(38rem, 78svh); overflow: hidden; isolation: isolate; background: #bdb8b3; color: #fff; }
.show-moment::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(13,13,13,.96), rgba(13,13,13,.7) 45%, rgba(13,13,13,.08)); }
.show-moment__image { position: absolute; inset: 0; margin: 0; }
.show-moment__image picture { display: contents; }
.show-moment__image img { width: 100%; height: 100%; object-fit: cover; object-position: 76% 22%; transform: scale(1.025); filter: grayscale(.15) saturate(.8); }
.show-moment__copy { position: relative; z-index: 2; align-self: center; width: var(--container); margin: auto; }
.show-moment__copy p { margin: 0 0 2rem; color: rgba(255,255,255,.64); font-size: clamp(1.15rem, 2vw, 2rem); font-weight: 600; line-height: 1.15; }
.show-moment__copy h2 { max-width: 11ch; margin: 0; font: 900 clamp(4.2rem, 7.5vw, 8.5rem)/.81 var(--font-display); letter-spacing: -.075em; }
.show-moment__copy h2 span { color: var(--roeff-primary); }

.performances { padding: clamp(6rem, 9vw, 9.5rem) 0 clamp(6.5rem, 10vw, 10.5rem); }
.performance-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(10rem, 14vw); gap: 1rem; }
.performance-tile { position: relative; min-height: 22rem; overflow: hidden; background: #bdb9b4; color: #fff; }
.performance-tile picture { display: contents; }
.performance-tile > figure { position: absolute; inset: 0; margin: 0; }
.performance-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 850ms var(--ease), filter 450ms ease; }
.performance-tile::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg, rgba(13,13,13,.88), transparent 60%); }
.performance-tile > div { position: absolute; z-index: 2; right: clamp(1.3rem, 3vw, 3rem); bottom: clamp(1.3rem, 3vw, 3rem); left: clamp(1.3rem, 3vw, 3rem); transition: transform 450ms var(--ease); }
.performance-tile h3 { margin: 0; font: 800 clamp(1.9rem, 3.2vw, 3.8rem)/.92 var(--font-display); letter-spacing: -.055em; }
.performance-tile p { max-width: 32ch; margin: .75rem 0 0; color: rgba(255,255,255,.78); }
.performance-tile:hover img { transform: scale(1.03); filter: contrast(1.04); }
.performance-tile:hover > div { transform: translateY(-.35rem); }
.performance-tile--wide { grid-column: 1 / span 8; grid-row: span 2; }
.performance-tile--wide img { object-position: 50% 22%; }
.performance-tile--tall { grid-column: 9 / span 4; grid-row: span 3; }
.performance-tile--tall img { object-position: 50% 18%; }
.performance-tile--small { grid-column: 1 / span 4; grid-row: span 2; }
.performance-tile--small img { object-position: 50% 18%; }
.performance-tile--medium { grid-column: 5 / span 4; grid-row: span 2; }
.performance-tile--medium img { object-position: 50% 20%; }
.section-action { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid rgba(13,13,13,.2); padding: 2rem 0 1.4rem; }
.section-action p { margin: 0; color: #64615c; }

.media-section { position: relative; padding: clamp(6rem, 9vw, 9.5rem) 0 clamp(5rem, 8vw, 8rem); overflow: hidden; }
.media-section__heading { position: relative; z-index: 2; width: fit-content; margin-bottom: -7vw; }
.media-section__heading h2 { margin: 0; font: 900 clamp(4.2rem, 8vw, 9rem)/.78 var(--font-display); letter-spacing: -.078em; }
.media-section__heading h2 span { color: var(--roeff-primary); }
.video-poster { position: relative; width: 80%; height: min(42rem, 56vw); min-height: 30rem; margin-left: auto; overflow: hidden; background: #bcb7b1; }
.video-poster picture { display: contents; }
.video-poster > figure { position: absolute; inset: 0; margin: 0; }
.video-poster img { width: 100%; height: 100%; object-fit: cover; object-position: 57% 22%; filter: brightness(.7) saturate(.72); transition: transform 1.1s var(--ease); }
.video-poster:hover img { transform: scale(1.025); }
.video-poster::after { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg, rgba(13,13,13,.82), transparent 55%); }
.video-poster__content { position: absolute; z-index: 2; right: clamp(1.5rem, 4vw, 4rem); bottom: clamp(1.5rem, 4vw, 4rem); left: clamp(1.5rem, 4vw, 4rem); display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.video-poster__content > p { max-width: 30rem; margin: 0; color: rgba(255,255,255,.68); }
.play-link { display: inline-flex; align-items: center; gap: 1rem; text-decoration: none; }
.play-link a { display: inline-flex; align-items: center; gap: 1rem; color: inherit; text-decoration: none; }
.play-link > span { display: grid; width: 5rem; height: 5rem; flex: none; place-items: center; border-radius: 50%; background: var(--roeff-primary); color: var(--roeff-black); font-size: 1.2rem; transition: transform 340ms var(--ease); }
.play-link a > span { display: grid; width: 5rem; height: 5rem; flex: none; place-items: center; border-radius: 50%; background: var(--roeff-primary); color: var(--roeff-black); font-size: 1.2rem; transition: transform 340ms var(--ease); }
.play-link:hover > span { transform: scale(1.07); }
.play-link:hover a > span { transform: scale(1.07); }
.play-link strong { max-width: 9rem; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }

.gallery { padding: clamp(4rem, 7vw, 7rem) 0 clamp(6rem, 10vw, 10rem); }
.gallery__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(3rem, 7vw, 7rem); }
.gallery__heading h2 { margin: 0; font: 900 clamp(4rem, 7.5vw, 8.5rem)/.78 var(--font-display); letter-spacing: -.078em; }
.gallery__heading h2 span { color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.78); }
.gallery__heading p { max-width: 22rem; margin: 0 0 .7rem; color: var(--roeff-muted); }
.gallery__grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(8rem, 8vw); gap: 1rem; }
.gallery-item { position: relative; display: block; overflow: hidden; border: 0; padding: 0; cursor: zoom-in; background: #bdb9b4; color: inherit; }
.gallery-item a { display: block; width: 100%; height: 100%; }
.gallery-item::after { position: absolute; right: 1rem; bottom: 1rem; display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; content: "+"; background: rgba(13,13,13,.22); color: #fff; font-size: 1.25rem; backdrop-filter: blur(8px); transition: background 300ms ease, color 300ms ease; }
.gallery-item:hover::after { background: var(--roeff-primary); color: var(--roeff-black); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--ease); }
.gallery-item figcaption { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; }
.gallery-item:hover img { transform: scale(1.03); }
.gallery-item--wide { grid-column: 1 / span 8; grid-row: span 5; }
.gallery-item--wide img { object-position: 50% 22%; }
.gallery-item--portrait { grid-column: 9 / span 4; grid-row: span 7; }
.gallery-item--portrait img { object-position: 50% 18%; }
.gallery-item--square { grid-column: 1 / span 4; grid-row: span 5; }
.gallery-item--square img { object-position: 50% 14%; }
.gallery-item--large { grid-column: 5 / span 8; grid-row: span 7; }
.gallery-item--large img { object-position: 50% 17%; }
.gallery-item--landscape { grid-column: 1 / span 7; grid-row: span 4; }
.gallery-item--landscape img { object-position: 50% 17%; }
.lightbox { width: min(94vw, 82rem); max-width: none; height: min(92svh, 60rem); max-height: none; border: 0; padding: 0; overflow: hidden; background: transparent; color: #fff; }
.lightbox::backdrop { background: rgba(5,5,5,.94); backdrop-filter: blur(12px); }
.lightbox figure { display: grid; width: 100%; height: 100%; grid-template-rows: 1fr auto; margin: 0; }
.lightbox img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.lightbox figcaption { padding: .8rem 3.8rem .2rem 0; color: rgba(255,255,255,.7); font-size: .84rem; }
.lightbox__close { position: absolute; z-index: 2; top: .8rem; right: .8rem; border: 1px solid rgba(255,255,255,.45); padding: .7rem 1rem; background: rgba(13,13,13,.7); color: #fff; cursor: pointer; font-size: .75rem; font-weight: 700; }
.media-modal { width: min(92vw, 78rem); max-width: none; border: 0; padding: 3.6rem .75rem .75rem; background: var(--roeff-black); color: #fff; }
.media-modal::backdrop { background: rgba(5,5,5,.94); backdrop-filter: blur(12px); }
.media-modal__frame { aspect-ratio: 16 / 9; }
.media-modal iframe { width: 100%; height: 100%; border: 0; }
.media-modal__close { position: absolute; top: .65rem; right: .75rem; border: 1px solid rgba(255,255,255,.42); padding: .55rem .8rem; background: transparent; color: #fff; cursor: pointer; }

.about { position: relative; padding: clamp(6.5rem, 10vw, 10.5rem) 0; overflow: hidden; }
.about__layout { display: grid; grid-template-columns: 1.05fr .72fr .72fr; align-items: center; gap: clamp(2rem, 5vw, 6.5rem); }
.about__heading { align-self: start; padding-top: 2rem; }
.about__heading h2 { margin: 0; font: 900 clamp(4rem, 6.8vw, 7.5rem)/.8 var(--font-display); letter-spacing: -.075em; }
.about__heading h2 span { color: var(--roeff-primary); }
.about__portrait { aspect-ratio: 4 / 5; }
.about__portrait img { object-position: 52% 12%; }
.about__copy { align-self: end; padding-bottom: 2rem; }
.about__copy > p:not(.lead) { max-width: 38ch; color: #56534e; }
.about.section--dark { background: var(--roeff-black); color: #fff; }
.about.section--dark .about__copy > p:not(.lead) { color: var(--roeff-muted); }
.about.section--dark .about__portrait { border-bottom: .35rem solid var(--roeff-primary); }
.about.section--dark .social-links a { color: #fff; text-decoration-color: var(--roeff-primary); }
.social-links { display: flex; flex-wrap: wrap; gap: .8rem 1.3rem; margin-top: 2.5rem; }
.social-links a { position: relative; border-bottom: 1px solid currentColor; font-size: .82rem; font-weight: 700; text-decoration: none; }
.about .social-icon-links { gap: .8rem; }
.about .social-icon-links a { display: grid; width: 3.15rem; height: 3.15rem; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: #fff; transition: border-color 220ms ease, color 220ms ease, transform 220ms var(--ease); }
.about .social-icon-links a:hover, .about .social-icon-links a:focus-visible { border-color: var(--roeff-primary); color: var(--roeff-primary); transform: translateY(-2px); }
.about .social-icon-links svg { display: block; width: 1.3rem; min-width: 1.3rem; height: 1.3rem; overflow: visible; fill: currentColor; }
.about .social-icon-links svg rect, .about .social-icon-links svg circle:not(.social-icon__dot) { fill: none; stroke: currentColor; stroke-width: 1.8; }
.about .social-icon-links .social-icon__dot { fill: currentColor; stroke: none; }

.booking-call { position: relative; padding: clamp(6rem, 9vw, 9.5rem) 0; overflow: hidden; background: var(--roeff-primary); color: var(--roeff-black); }
.booking-call__line { position: absolute; right: 7vw; bottom: -11rem; width: clamp(17rem, 31vw, 37rem); aspect-ratio: 1; border: clamp(1.8rem, 3vw, 3.6rem) solid rgba(13,13,13,.08); border-radius: 50%; }
.booking-call p { margin: 0 0 1.4rem; font-size: .8rem; font-weight: 700; letter-spacing: .09em; }
.booking-call h2 { max-width: 12ch; margin: 0 0 3rem; font: 900 clamp(4.2rem, 8vw, 9rem)/.79 var(--font-display); letter-spacing: -.078em; }
.booking-call h2 span { color: var(--roeff-light); }

.booking { padding: clamp(6.5rem, 10vw, 10.5rem) 0; }
.booking__layout { display: grid; grid-template-columns: minmax(20rem, .8fr) minmax(32rem, 1.05fr); gap: clamp(3rem, 8vw, 10rem); align-items: start; }
.booking__intro { position: sticky; top: 7rem; }
.booking__intro h2 { margin: 0; font: 900 clamp(3.8rem, 6.5vw, 7.2rem)/.81 var(--font-display); letter-spacing: -.075em; }
.booking__intro h2 span { color: var(--roeff-primary); }
.booking__intro > p:not(.section-kicker) { max-width: 35rem; margin-top: 2.2rem; color: #5a5751; }
.booking__contact { display: grid; width: min(100%, 32rem); margin-top: clamp(2.5rem, 5vw, 4.5rem); border-top: .3rem solid var(--roeff-primary); background: var(--roeff-black); color: #fff; }
.booking__contact-head { display: grid; gap: .15rem; padding: 1.1rem 1.2rem; }
.booking__contact-head strong { font-size: .92rem; }
.booking__contact-head span { color: #8e8a83; font-size: .7rem; font-weight: 500; }
.booking__contact-link { display: grid; width: 100%; grid-template-columns: 2.65rem minmax(0, 1fr) auto; align-items: center; gap: .9rem; border-top: 1px solid rgba(255,255,255,.16); padding: .9rem 1.2rem; color: #fff; text-decoration: none; transition: background 220ms ease; }
.booking__contact-link:hover { background: #191919; }
.booking__contact-icon { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border: 1px solid rgba(212,175,55,.58); border-radius: 50%; color: var(--roeff-primary); }
.booking__contact-icon svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.booking__contact-copy { display: grid; min-width: 0; gap: .05rem; }
.booking__contact-copy small { color: #8e8a83; font-size: .62rem; font-weight: 600; }
.booking__contact-copy strong { overflow-wrap: anywhere; font-size: clamp(.88rem, 1.2vw, 1.02rem); }
.booking__contact-link > .ui-icon { color: var(--roeff-primary); transition: transform 220ms ease; }
.booking__contact-link:hover > .ui-icon { transform: translate(.12rem, -.12rem); }
.booking-form-shell { position: relative; min-height: 40rem; border-top: .55rem solid var(--roeff-primary); padding: clamp(2rem, 5vw, 4.5rem); background: #fff; box-shadow: 0 2rem 5rem rgba(13,13,13,.1); }
.form-progress { position: relative; display: flex; justify-content: space-between; margin-bottom: clamp(3rem, 6vw, 6rem); padding-bottom: 1.1rem; color: #756f67; font-size: .76rem; font-weight: 700; }
.form-progress > span { transition: color 300ms ease; }
.form-progress > span.is-active { color: var(--roeff-black); }
.form-progress i { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; overflow: hidden; background: #e8e5df; }
.form-progress i b { display: block; width: 25%; height: 100%; background: var(--roeff-primary); transition: width 450ms var(--ease); }
.form-step { min-width: 0; max-width: 100%; border: 0; margin: 0; padding: 0; }
.form-step legend { margin: 0; padding: 0; font: 800 clamp(2.4rem, 5vw, 4.6rem)/.95 var(--font-display); letter-spacing: -.06em; }
.form-step > p { margin: .9rem 0 2.2rem; color: #77726a; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.schedule-picker { position: relative; min-width: 0; max-width: 100%; }
.schedule-picker.is-enhanced .schedule-native-fields { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.schedule-ui[hidden] { display: none; }
.schedule-ui { display: grid; min-width: 0; max-width: 100%; grid-template-columns: minmax(18rem, 1.35fr) minmax(9.5rem, .65fr); border: 1px solid #cbc6bd; background: #fff; }
.schedule-calendar { min-width: 0; padding: 1rem; }
.schedule-calendar__header { display: grid; grid-template-columns: 2.5rem 1fr 2.5rem; align-items: center; margin: -1rem -1rem 1rem; background: var(--roeff-black); color: #fff; }
.schedule-calendar__header strong { padding: .95rem .4rem; font-size: .88rem; text-align: center; text-transform: capitalize; }
.schedule-calendar__header button { display: grid; min-height: 3rem; place-items: center; border: 0; cursor: pointer; background: transparent; color: var(--roeff-primary); font-size: 1.1rem; }
.schedule-calendar__header button:disabled { cursor: default; color: #625f59; }
.schedule-calendar__weekdays, .schedule-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .2rem; }
.schedule-calendar__weekdays { margin-bottom: .35rem; color: #706a62; font-size: .62rem; font-weight: 700; text-align: center; }
.schedule-calendar__days > span { min-height: 2.35rem; }
.schedule-calendar__days button { display: grid; min-width: 0; min-height: 2.35rem; place-items: center; border: 1px solid transparent; cursor: pointer; background: transparent; color: var(--roeff-black); font: 600 .76rem/1 var(--font-display); }
.schedule-calendar__days button:hover { border-color: #b7b1a8; }
.schedule-calendar__days button:disabled { border-color: transparent; cursor: not-allowed; color: #c4c0b8; }
.schedule-calendar__days button.is-today { border-color: var(--roeff-primary); }
.schedule-calendar__days button.is-selected { border-color: var(--roeff-primary); background: var(--roeff-primary); color: var(--roeff-black); font-weight: 800; }
.schedule-time { display: flex; min-width: 0; max-width: 100%; flex-direction: column; border-left: 1px solid #272727; padding: 1.15rem; background: var(--roeff-black); color: #fff; }
.schedule-time > p { margin: 0 0 1rem; color: var(--roeff-primary); font-size: .7rem; font-weight: 700; }
.schedule-time__slots { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.schedule-time__slots button { min-height: 2.75rem; border: 1px solid rgba(255,255,255,.24); cursor: pointer; background: transparent; color: #fff; font: 600 .72rem/1 var(--font-display); }
.schedule-time__slots button:last-child { grid-column: 1 / -1; }
.schedule-time__slots button:hover, .schedule-time__slots button.is-selected { border-color: var(--roeff-primary); background: var(--roeff-primary); color: var(--roeff-black); }
.schedule-time .schedule-time__custom { display: grid; gap: .35rem; margin: .8rem 0 0; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.16); color: #fff; }
.schedule-time__custom > span { color: #aaa69f; font-size: .62rem; font-weight: 600; }
.form-step .schedule-time .schedule-time__custom input { display: block; min-width: 0; max-width: 100%; min-height: 2.65rem; border: 1px solid rgba(255,255,255,.32); padding: .55rem .7rem; background: #1b1b1b; color: #fff; color-scheme: dark; font: 600 .76rem/1 var(--font-display); }
.form-step .schedule-time .schedule-time__custom input:focus { border-color: var(--roeff-primary); box-shadow: 0 0 0 2px var(--roeff-primary); }
.schedule-time small { margin-top: auto; padding-top: 1.2rem; color: #8f8b84; font-size: .62rem; line-height: 1.45; }
.schedule-selection { display: grid; grid-column: 1 / -1; grid-template-columns: auto 1fr; gap: .35rem 1rem; align-items: baseline; padding: .8rem 1rem; background: var(--roeff-primary); color: var(--roeff-black); }
.schedule-selection span { font-size: .62rem; font-weight: 700; }
.schedule-selection strong { font-size: .82rem; text-align: right; }
.schedule-picker[data-invalid] .schedule-ui { outline: 2px solid #a72c22; outline-offset: 2px; }
.schedule-calendar button:focus-visible, .schedule-time button:focus-visible { position: relative; z-index: 1; outline: 3px solid var(--roeff-primary); outline-offset: 2px; }
.form-step label:not(.choice-grid label) { display: grid; gap: .55rem; margin-bottom: 1.1rem; color: #4b4842; font-size: .82rem; font-weight: 600; }
.form-step label small { color: #8e8981; font-weight: 400; }
.form-step input:not([type="radio"]), .form-step textarea, .form-step select { width: 100%; min-width: 0; max-width: 100%; border: 0; border-bottom: 1px solid #bdb8b0; border-radius: 0; padding: .8rem 0; outline: 0; background: transparent; color: var(--roeff-black); }
.form-step input:not([type="radio"]):focus, .form-step textarea:focus { border-bottom-color: var(--roeff-primary); box-shadow: 0 2px 0 var(--roeff-primary); }
.form-step [aria-invalid="true"] { border-bottom-color: #a72c22 !important; box-shadow: 0 2px 0 #a72c22 !important; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-bottom: 1.6rem; }
.choice-grid label { position: relative; display: block; }
.choice-grid input { position: absolute; opacity: 0; }
.choice-grid span { display: grid; min-height: 4rem; place-items: center; border: 1px solid #cfcbc4; padding: .8rem; cursor: pointer; font-weight: 600; transition: border 250ms ease, background 250ms ease; }
.choice-grid input:checked + span { border-color: var(--roeff-black); background: var(--roeff-primary); }
.choice-grid input:focus-visible + span { outline: 3px solid var(--roeff-primary); outline-offset: 3px; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1.3rem; margin-top: 2.2rem; }
.text-button { border: 0; border-bottom: 1px solid currentColor; padding: .55rem 0; cursor: pointer; background: none; color: #5f5a53; font-size: .8rem; font-weight: 700; }
.form-error { margin: 1.2rem 0 0; color: #a72c22; font-weight: 600; }
.form-step > .form-privacy { margin: 1.35rem 0 0; border-left: 2px solid var(--roeff-primary); padding-left: .9rem; color: #68635c; font-size: .72rem; line-height: 1.55; }
.form-privacy a { color: var(--roeff-black); font-weight: 700; text-underline-offset: .2rem; }
.form-privacy a:hover { color: #8b6e0a; }
.form-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-success { display: grid; min-height: 18rem; align-content: center; justify-items: start; }
.form-success > span { display: grid; width: 3.3rem; height: 3.3rem; place-items: center; border-radius: 50%; background: var(--roeff-primary); color: var(--roeff-black); font-weight: 900; }
.form-success > p:first-of-type { margin: 1.5rem 0 .5rem; color: #77726a; font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.form-success h3 { margin: 0; font: 900 clamp(2.6rem, 5vw, 5rem)/.84 var(--font-display); letter-spacing: -.07em; }
.form-success h3 span { color: var(--roeff-primary); }
.form-success > p:last-child { max-width: 34ch; color: #5a5650; }
.booking-form-shell:has(.form-success:not([hidden])) { min-height: 24rem; }

.regions { border-top: 1px solid rgba(13,13,13,.13); padding: clamp(5rem, 9vw, 9rem) 0; }
.regions__layout { display: grid; grid-template-columns: 1fr .7fr; gap: clamp(2rem, 7vw, 8rem); }
.regions h2 { margin: 0; font: 900 clamp(3.2rem, 6vw, 7rem)/.8 var(--font-display); letter-spacing: -.07em; }
.regions h2 span { color: transparent; -webkit-text-stroke: 1.5px var(--roeff-black); }
.regions__layout > p { max-width: 36rem; margin: .2rem 0 0; color: #5a5650; }
.region-list { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .6rem; padding-top: 2rem; }
.region-list span { border: 1px solid #c9c5be; border-radius: var(--radius-pill); padding: .65rem 1rem; color: #625e57; font-size: .8rem; }

.finale { position: relative; display: grid; min-height: max(40rem, 82svh); overflow: hidden; isolation: isolate; background: #bdb8b3; }
.finale::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(13,13,13,.96), rgba(13,13,13,.66) 48%, rgba(13,13,13,.08)), linear-gradient(0deg, rgba(13,13,13,.75), transparent 40%); }
.finale__image { position: absolute; inset: 0; margin: 0; }
.finale__image picture { display: contents; }
.finale__image img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 20%; filter: saturate(.78); }
.finale__content { position: relative; z-index: 2; align-self: center; width: var(--container); margin: auto; color: #fff; }
.wordmark--large { margin: 0 0 4rem; font-size: clamp(2rem, 4vw, 4.5rem); }
.finale__content h2 { max-width: 11ch; margin: 0 0 3rem; font: 900 clamp(4.2rem, 8vw, 9rem)/.79 var(--font-display); letter-spacing: -.078em; }
.finale__content h2 span { color: var(--roeff-primary); }

.site-footer { position: relative; overflow: hidden; padding: clamp(6rem, 10vw, 10rem) 0 2rem; background: var(--roeff-black); color: #fff; }
.site-footer__ghost { position: absolute; right: -2vw; bottom: -.17em; color: rgba(255,255,255,.025); font: 900 clamp(11rem, 30vw, 34rem)/.7 var(--font-display); letter-spacing: -.09em; pointer-events: none; }
.site-footer__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr .45fr .7fr; gap: clamp(2rem, 7vw, 8rem); padding-bottom: clamp(5rem, 9vw, 9rem); }
.wordmark--footer { display: inline-block; font-size: clamp(3rem, 5vw, 5.5rem); }
.site-footer__grid > div:first-child p { max-width: 28rem; color: #8f8b84; }
.site-footer nav, .site-footer__contact { display: grid; align-content: start; justify-items: start; gap: .55rem; }
.site-footer nav a, .site-footer__contact > a { color: #d4d1ca; font-size: .88rem; text-decoration: none; }
.site-footer__contact p { margin: 0; }
.site-footer__contact p a { color: #d4d1ca; font-size: .88rem; text-decoration: none; }
.site-footer nav a:hover, .site-footer__contact > a:hover { color: var(--roeff-primary); }
.social-links--dark { margin-top: 1.8rem; color: var(--roeff-primary); }
.site-footer__bottom { position: relative; z-index: 1; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.13); padding-top: 1.3rem; color: #96918a; font-size: .72rem; }
.site-footer__bottom p { margin: 0; }
.type-break__line { margin-block: 0; }
.wp-block-button.button--gold .wp-block-button__link { border: 0; border-radius: 0; background: var(--roeff-primary); color: var(--roeff-black); }
.wp-block-button.button--light .wp-block-button__link { border: 0; border-radius: 0; background: var(--roeff-light); color: var(--roeff-black); }
.wp-block-button.text-link-button .wp-block-button__link { border: 0; border-radius: 0; padding-inline: 0; background: transparent; color: #fff; font-size: .84rem; }
.wp-block-button .wp-block-button__link { display: inline-flex; min-height: 3.35rem; align-items: center; justify-content: center; padding: .85rem 1.45rem; font-size: .78rem; font-weight: 800; letter-spacing: .06em; line-height: 1.2; text-align: center; text-transform: uppercase; transition: transform 260ms var(--ease), background 260ms ease, color 260ms ease; }
.wp-block-button.text-link-button .wp-block-button__link { min-height: 2.75rem; padding: .55rem 0; letter-spacing: 0; text-transform: none; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-3px); }

@media (max-width: 980px) {
  :root { --container: min(92vw, 68rem); }
  .site-nav { right: 4vw; left: 4vw; width: auto; grid-template-columns: auto 1fr auto; transform: none; background: rgba(13,13,13,.9); backdrop-filter: none; }
  .site-nav.is-scrolled { backdrop-filter: none; }
  .menu-toggle { position: relative; z-index: 102; display: inline-flex; justify-self: end; align-items: center; gap: .75rem; border: 0; background: transparent; color: #fff; font-size: .75rem; font-weight: 700; }
  .menu-toggle i, .menu-toggle i::before { display: block; width: 1.6rem; height: 2px; background: currentColor; transition: transform 260ms var(--ease); content: ""; }
  .menu-toggle i::before { transform: translateY(-.42rem); }
  .menu-toggle[aria-expanded="true"] i { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i::before { transform: rotate(90deg); }
  .site-menu:not(.wp-block-navigation) { position: fixed; z-index: 101; inset: -.05rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .55rem; padding: 7rem 8vw 4rem; visibility: hidden; transform: translateY(-102%); background: var(--roeff-black); transition: transform var(--duration) var(--ease), visibility 0s linear var(--duration); }
  .site-menu:not(.wp-block-navigation)::before { position: absolute; right: -10vw; bottom: -10vw; color: rgba(212,175,55,.08); content: "ROEFF."; font: 900 26vw/.8 var(--font-display); letter-spacing: -.08em; }
  .site-menu:not(.wp-block-navigation).is-open { visibility: visible; transform: translateY(0); transition-delay: 0s; }
  .site-menu:not(.wp-block-navigation) > a { font-size: clamp(2.3rem, 8vw, 4.6rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.05; }
  .site-menu:not(.wp-block-navigation) .menu-socials { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.5rem; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .menu-socials--wp { display: flex; gap: .8rem; margin-top: 2.5rem; }
  .button--nav { display: none; }
  .header-cta { display: none !important; }
  .site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .site-nav .wp-block-navigation__responsive-container-open { display: flex !important; justify-self: end; color: #fff; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open { z-index: 101; padding: 6rem 8vw 4rem; background: var(--roeff-black); color: #fff; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; justify-content: center; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: .6rem; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: clamp(2.3rem, 8vw, 4.6rem); font-weight: 800; letter-spacing: -.055em; line-height: 1.05; }
  .hero__title > span:last-child { margin-left: 0; }
  .hero__bottom { align-items: flex-start; flex-direction: column; }
  .hero__actions { margin-left: auto; }
  .section-heading { grid-template-columns: 1fr; }
  .intro__layout { grid-template-columns: minmax(15rem, .72fr) minmax(18rem, 1fr); margin-top: 2rem; padding-right: 0; }
  .experience__layout { grid-template-columns: .82fr 1fr; gap: 4rem; }
  .story-item::before { left: -2.4rem; }
  .performance-grid { grid-auto-rows: minmax(10rem, 20vw); }
  .media-section__heading { margin-bottom: -2vw; }
  .video-poster { width: 88%; }
  .about__layout { grid-template-columns: 1fr .8fr; }
  .about__heading { grid-column: 1 / -1; }
  .booking__layout { grid-template-columns: 1fr; }
  .booking__intro { position: static; }
  .site-footer__grid { grid-template-columns: 1fr .55fr; }
  .site-footer__contact { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  :root { --container: calc(100vw - 2rem); --nav-height: 4.4rem; }
  .site-nav { top: .65rem; padding-left: .95rem; }
  .site-nav.is-scrolled { --nav-height: 3.9rem; }
  .menu-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .hero { min-height: max(43rem, 100svh); }
  .hero::after { background: linear-gradient(0deg, rgba(13,13,13,.97) 0%, rgba(13,13,13,.45) 50%, rgba(13,13,13,.05) 80%), linear-gradient(90deg, rgba(13,13,13,.35), transparent 70%); }
  .hero__media { width: 100%; height: 78%; }
  .hero__media img { object-position: 50% 16%; }
  .hero__content { min-height: max(43rem, 100svh); padding: calc(var(--nav-height) + 2.4rem) 0 1.35rem; }
  .hero__eyebrow { position: absolute; top: 39%; left: 0; max-width: 12rem; margin: 0; padding: .42rem .6rem; background: rgba(13,13,13,.68); font-size: .7rem; line-height: 1.3; }
  .hero__title { margin-top: auto; font-size: clamp(4.2rem, 22vw, 6.7rem); line-height: .8; }
  .hero__bottom { gap: 1rem; margin-top: 2rem; }
  .hero__bottom > p { margin: 0; font-size: .92rem; }
  .hero__actions { width: 100%; margin: 0; gap: 1.2rem; }
  .hero__actions .button { flex: 1; }
  .hero__side-note, .scroll-cue { display: none; }
  .section-heading { gap: 1.5rem; margin-bottom: 3.5rem; }
  .section-heading h2 { font-size: clamp(3.1rem, 15vw, 4.9rem); }
  .intro { padding: 5.25rem 0 5.75rem; }
  .intro::before { top: 6rem; font-size: 34vw; }
  .intro__headline h2 { font-size: clamp(3rem, 14.5vw, 4.65rem); }
  .intro__headline h2 span { -webkit-text-stroke-width: 1.3px; }
  .intro__layout { display: flex; flex-direction: column; gap: 3rem; margin-top: 2.5rem; }
  .intro__portrait { width: 86%; transform: none; }
  .intro__copy { padding: 0; }
  .intro__statement { font-size: 11vw; }
  .type-break { min-height: 14rem; }
  .type-break__line { font-size: 22vw; }
  .experience { padding: 5.25rem 0 5.75rem; }
  .experience__layout { display: block; }
  .experience__visual { position: relative; top: auto; height: 62svh; min-height: 28rem; margin-bottom: 3rem; }
  .experience__stories { padding: 0; }
  .story-item { min-height: auto; padding: 2rem 0 5rem; opacity: 1; }
  .story-item::before { display: none; }
  .story-item h3 { font-size: 11vw; }
  .show-moment { min-height: 68svh; }
  .show-moment::after { background: linear-gradient(0deg, rgba(13,13,13,.96), rgba(13,13,13,.42) 68%, rgba(13,13,13,.05)); }
  .show-moment__image img { object-position: 50% 18%; }
  .show-moment__copy { align-self: end; padding-bottom: 3rem; }
  .show-moment__copy p { font-size: .92rem; }
  .show-moment__copy h2 { font-size: 13vw; }
  .performances { padding: 5.25rem 0 5.75rem; }
  .performance-grid { display: flex; flex-direction: column; gap: .85rem; }
  .performance-tile { min-height: 28rem; }
  .performance-tile:nth-child(even) { min-height: 22rem; }
  .performance-tile h3 { font-size: 9vw; }
  .section-action { align-items: flex-start; flex-direction: column; }
  .media-section { padding: 5.25rem 0 4.5rem; }
  .media-section__heading { margin: 0 0 2.5rem; }
  .media-section__heading h2 { font-size: 15vw; }
  .video-poster { width: 100%; height: 60svh; min-height: 28rem; }
  .video-poster img { object-position: 50% 18%; }
  .video-poster__content { align-items: flex-start; flex-direction: column; }
  .video-poster__content > p { font-size: .86rem; }
  .play-link > span { width: 4.2rem; height: 4.2rem; }
  .gallery { padding: 3.5rem 0 5.75rem; }
  .gallery__heading { align-items: flex-start; flex-direction: column; }
  .gallery__heading h2 { font-size: 15vw; }
  .gallery__heading h2 span { -webkit-text-stroke-width: 1.3px; }
  .gallery__grid { display: flex; flex-direction: column; }
  .gallery-item { min-height: 24rem; }
  .gallery-item:nth-child(2), .gallery-item:nth-child(5) { min-height: 29rem; }
  .gallery-item:nth-child(3) { min-height: 20rem; }
  .lightbox { width: 96vw; height: 90svh; }
  .about { padding: 5.75rem 0; }
  .about__layout { display: flex; flex-direction: column; align-items: stretch; }
  .about__heading h2 { font-size: 15vw; }
  .about__portrait { width: 88%; margin-left: auto; }
  .about__copy { padding: 1rem 0 0; }
  .booking-call { padding: 5.75rem 0; }
  .booking-call h2 { font-size: 16vw; }
  .booking { padding: 5.75rem 0; }
  .booking__intro h2 { font-size: 15vw; }
  .booking-form-shell { min-height: 35rem; margin-inline: -0.2rem; padding: 2rem 1.2rem; }
  .field-row, .choice-grid { grid-template-columns: 1fr; }
  .form-step legend { font-size: 9vw; }
  .form-actions { justify-content: space-between; }
  .form-actions .button { min-height: 3.15rem; padding-inline: 1.1rem; }
  .regions { padding: 5rem 0; }
  .regions__layout { grid-template-columns: 1fr; }
  .regions h2 { font-size: 12vw; }
  .region-list { grid-column: auto; padding-top: 1rem; }
  .finale { min-height: 72svh; }
  .finale::after { background: linear-gradient(0deg, rgba(13,13,13,.96), rgba(13,13,13,.35) 72%, rgba(13,13,13,.02)); }
  .finale__image img { object-position: 50% 17%; }
  .finale__content { align-self: end; padding-bottom: 3rem; }
  .wordmark--large { margin-bottom: 2.5rem; }
  .finale__content h2 { font-size: 16vw; }
  .site-footer { padding-top: 6rem; }
  .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__contact { grid-column: auto; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: .3rem; }
}

/* Compact editorial revision: announcement, agenda and fewer photo-led sections. */
.announcement-bar { position: relative; z-index: 5; overflow: hidden; border-block: 1px solid rgba(13,13,13,.16); padding: .9rem 0; background: var(--roeff-primary); color: var(--roeff-black); }
.announcement-bar__track { display: flex; width: max-content; align-items: center; gap: 1.65rem; padding-left: 1.65rem; animation: announcement-scroll 40s linear infinite; font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.announcement-bar__track i { font-style: normal; font-size: .62rem; }
@keyframes announcement-scroll { to { transform: translateX(-50%); } }

.intro { padding: clamp(3.5rem, 5vw, 5.5rem) 0; }
.intro::before { top: 1.5rem; }
.intro__headline h2 { font-size: clamp(3rem, 5.2vw, 5.65rem); }
.intro__layout { grid-template-columns: minmax(14rem, .52fr) minmax(20rem, .8fr); gap: clamp(2rem, 4vw, 4.5rem); margin-top: 1.5rem; }
.intro__portrait { max-height: 34rem; transform: none; }
.intro__statement { margin-top: 2.2rem; font-size: clamp(2.25rem, 3.6vw, 4rem); }

.agenda { padding: clamp(3.75rem, 5.5vw, 5.75rem) 0; }
.agenda__layout { display: grid; grid-template-columns: minmax(17rem, .55fr) minmax(30rem, 1fr); gap: clamp(3rem, 8vw, 9rem); }
.agenda__heading h2 { margin: 0; font: 900 clamp(3.1rem, 5.4vw, 5.8rem)/.84 var(--font-display); letter-spacing: -.07em; }
.agenda__heading h2 span { color: var(--roeff-primary); }
.agenda__heading > p:last-child { max-width: 31rem; margin: 1.5rem 0 0; color: var(--roeff-muted); }
.agenda-list { border-top: 1px solid rgba(255,255,255,.25); }
.agenda-item { display: grid; grid-template-columns: 7rem 1fr auto; align-items: center; gap: clamp(1.25rem, 3vw, 3rem); border-bottom: 1px solid rgba(255,255,255,.2); padding: 1.55rem 0; }
.agenda-item__date { margin: 0; color: var(--roeff-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.agenda-item__date span { display: block; color: #fff; font-size: 1.1rem; letter-spacing: -.02em; }
.agenda-item h3 { margin: 0 0 .2rem; font-size: clamp(1.1rem, 1.7vw, 1.45rem); letter-spacing: -.035em; }
.agenda-item div p { margin: 0; color: var(--roeff-muted); font-size: .86rem; }
.agenda-item > a, .agenda-item > p:last-child a { color: #fff; font-size: .75rem; font-weight: 700; text-decoration-color: var(--roeff-primary); text-underline-offset: .28rem; white-space: nowrap; }
.agenda-item > p:last-child { margin: 0; }
.agenda-item__button { display: inline-flex; min-height: 2.75rem; align-items: center; border: 1px solid rgba(255,255,255,.36); padding: .65rem .85rem; text-decoration: none !important; }
.agenda-item__button { justify-content: center; gap: .5rem; min-width: 6.5rem; }
.agenda-item__button:hover { border-color: var(--roeff-primary); background: var(--roeff-primary); color: var(--roeff-black); }
.agenda-empty { margin: 0; border-bottom: 1px solid rgba(255,255,255,.2); padding: 1.8rem 0; color: var(--roeff-muted); }
.agenda-empty a { color: #fff; font-weight: 700; text-decoration-color: var(--roeff-primary); }

.music-player-section { border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); padding: 1.25rem 0; background: #151515; }
.music-player { display: grid; grid-template-columns: auto auto minmax(12rem, .8fr) minmax(12rem, 1.6fr) auto; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); }
.music-player__eyebrow { margin: 0; color: var(--roeff-primary); font-size: .65rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.audio-player__toggle { display: grid; width: 3.5rem; height: 3.5rem; flex: none; place-items: center; border: 0; border-radius: 50%; cursor: pointer; background: var(--roeff-primary); color: var(--roeff-black); transition: transform 240ms var(--ease), background 240ms ease; }
.audio-player__toggle:hover:not(:disabled) { transform: scale(1.06); background: var(--roeff-primary-strong); }
.audio-player__toggle:disabled { cursor: not-allowed; opacity: .72; }
.music-player__meta { display: grid; }
.music-player__meta strong { font-size: clamp(1rem, 1.4vw, 1.3rem); line-height: 1.2; }
.music-player__meta span { color: var(--roeff-muted); font-size: .72rem; font-weight: 600; letter-spacing: .06em; }
.audio-player__timeline { display: block; }
.audio-player__timeline input { width: 100%; height: 3px; margin: 0; appearance: none; border: 0; border-radius: 99px; background: linear-gradient(90deg, var(--roeff-primary) var(--audio-progress, 0%), rgba(255,255,255,.24) var(--audio-progress, 0%)); }
.audio-player__timeline input::-webkit-slider-thumb { width: .9rem; height: .9rem; appearance: none; border: 2px solid var(--roeff-black); border-radius: 50%; background: var(--roeff-primary); box-shadow: 0 0 0 1px var(--roeff-primary); }
.audio-player__timeline input::-moz-range-thumb { width: .72rem; height: .72rem; border: 2px solid var(--roeff-black); border-radius: 50%; background: var(--roeff-primary); box-shadow: 0 0 0 1px var(--roeff-primary); }
.music-player time { color: var(--roeff-muted); font-size: .72rem; font-variant-numeric: tabular-nums; }
.music-player-section__note { width: var(--container); margin: .65rem auto 0; color: #7e7a73; font-size: .68rem; text-align: right; }

.instagram-section { padding: clamp(3.75rem, 5.5vw, 5.75rem) 0 0; overflow: hidden; }
.instagram-section__heading { display: grid; grid-template-columns: 1fr minmax(17rem, .65fr) auto; align-items: end; gap: clamp(1.5rem, 4vw, 4.5rem); margin-bottom: 2.5rem; }
.instagram-section__heading h2 { margin: 0; font: 900 clamp(3rem, 4.8vw, 5.2rem)/.84 var(--font-display); letter-spacing: -.068em; }
.instagram-section__heading h2 span { color: var(--roeff-primary-on-light); }
.instagram-section__heading > p { max-width: 32rem; margin: 0; color: #625e57; }
.instagram-section__heading > a { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 700; text-decoration-color: var(--roeff-primary); text-decoration-thickness: 2px; text-underline-offset: .3rem; white-space: nowrap; }
.instagram-rail { width: 100%; overflow: hidden; padding-bottom: 1rem; }
.instagram-rail__track { --instagram-loop-offset: .333333rem; display: flex; width: max-content; align-items: stretch; gap: 1rem; animation: instagram-scroll 52s linear infinite; }
.instagram-rail__track:hover, .instagram-rail__track:focus-within { animation-play-state: paused; }
.instagram-rail__track > a { position: relative; height: clamp(16rem, 23vw, 24rem); flex: none; overflow: hidden; background: #bdb9b4; }
.instagram-rail__track > .instagram-rail__item--portrait { aspect-ratio: 3 / 4; }
.instagram-rail__track > .instagram-rail__item--landscape { aspect-ratio: 3 / 2; }
.instagram-rail__track img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms var(--ease), filter 300ms ease; }
.instagram-rail__track a:hover img { transform: scale(1.035); filter: contrast(1.05); }
.instagram-rail__track a > .ui-icon { position: absolute; right: .8rem; bottom: .8rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; padding: .65rem; background: var(--roeff-primary); color: var(--roeff-black); }
@keyframes instagram-scroll { to { transform: translateX(calc(-33.333333% - var(--instagram-loop-offset))); } }
.instagram-feed-live { width: var(--container); margin: 0 auto; padding-bottom: 1rem; }
.instagram-section--live #sb_instagram #sbi_images { display: flex !important; flex-wrap: nowrap !important; gap: 1rem; overflow-x: auto; scroll-snap-type: x proximity; }
.instagram-section--live #sb_instagram .sbi_item { width: clamp(16rem, 23vw, 24rem) !important; flex: 0 0 clamp(16rem, 23vw, 24rem) !important; scroll-snap-align: start; }

.music-player-editor, .instagram-feed-editor, .agenda-editor { border: 1px solid #d0cbc2; padding: 1.5rem; background: #fff; color: #0d0d0d; }
.music-player-editor, .instagram-feed-editor { display: grid; gap: .6rem; }
.music-player-editor__status, .instagram-feed-editor > span { width: fit-content; border-radius: 99px; padding: .25rem .55rem; background: #eee9df; color: #57524a; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.agenda-editor code { display: block; margin-top: .75rem; overflow-wrap: anywhere; }

.performances { padding: clamp(3.75rem, 5.5vw, 5.75rem) 0; }
.performances .section-heading { margin-bottom: 2.75rem; }
.performances .section-heading h2 { font-size: clamp(3rem, 5vw, 5.4rem); }
.performance-grid--text { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: auto; gap: 0; border-top: 1px solid rgba(13,13,13,.22); border-left: 1px solid rgba(13,13,13,.22); }
.performance-card { min-height: 15rem; border-right: 1px solid rgba(13,13,13,.22); border-bottom: 1px solid rgba(13,13,13,.22); padding: clamp(1.3rem, 2.2vw, 2rem); background: transparent; color: var(--roeff-black); }
.performance-card .performance-card__meta { margin: 0; color: #6c675f; font-size: .7rem; font-weight: 700; letter-spacing: .045em; }
.performance-card h3 { margin: 2rem 0 .65rem; font: 800 clamp(1.35rem, 1.8vw, 1.9rem)/.98 var(--font-display); letter-spacing: -.045em; }
.performance-card p { margin: 0; color: #625e57; font-size: .88rem; }
.js .performance-card[data-reveal], .js .performance-card.reveal { opacity: 1; transform: none; transition: none; }

.media-strip { padding: clamp(3.25rem, 4.5vw, 4.75rem) 0; }
.media-strip__content { display: grid; grid-template-columns: 1fr minmax(16rem, .55fr) auto; align-items: end; gap: clamp(2rem, 5vw, 6rem); }
.media-strip__content h2 { margin: 0; font: 900 clamp(3rem, 4.8vw, 5.2rem)/.84 var(--font-display); letter-spacing: -.068em; }
.media-strip__content h2 span { color: var(--roeff-primary); }
.media-strip__content > p { max-width: 28rem; margin: 0; color: var(--roeff-muted); }
.media-strip .play-link { align-self: center; }
.media-strip .play-link > span, .media-strip .play-link a > span { width: 4rem; height: 4rem; }

.about { padding: clamp(3.75rem, 5.5vw, 5.75rem) 0; }
.about__layout { grid-template-columns: .85fr .55fr .85fr; gap: clamp(2rem, 4vw, 4.5rem); }
.about__heading { padding-top: 0; }
.about__heading h2 { font-size: clamp(3rem, 4.8vw, 5.2rem); }
.about__portrait { max-height: 34rem; }
.about__copy { padding-bottom: 0; }

.booking { padding: clamp(3.75rem, 5.5vw, 5.75rem) 0; }
.booking__layout { gap: clamp(3rem, 6vw, 7rem); }
.booking__intro h2 { font-size: clamp(3rem, 4.8vw, 5.2rem); }
.booking__contact { margin-top: 2.5rem; }
.booking-form-shell { min-height: 29rem; padding: clamp(2rem, 3.5vw, 3.3rem); }
.form-progress { margin-bottom: clamp(2.2rem, 4vw, 4rem); }
.form-step legend { font-size: clamp(2.25rem, 3.6vw, 3.7rem); }

.site-footer { padding: clamp(3.75rem, 6vw, 6rem) 0 1.5rem; }
.site-footer__grid { grid-template-columns: minmax(20rem, 1.1fr) minmax(8rem, .3fr) minmax(22rem, .8fr); align-items: start; gap: clamp(2rem, 5vw, 6rem); padding-bottom: clamp(3rem, 5vw, 5rem); }
.site-footer__intro h2 { max-width: 14ch; margin: 1.6rem 0 .8rem; font: 800 clamp(2rem, 3.2vw, 3.5rem)/.92 var(--font-display); letter-spacing: -.055em; }
.site-footer__intro h2 span { color: var(--roeff-primary); }
.site-footer nav > span, .site-footer__contact > span, .site-footer__contact > p:first-child, .site-footer__grid > .wp-block-group:nth-child(2) > p:first-child { margin-bottom: .5rem; color: #77736c; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.site-footer__contact { width: 100%; }
.contact-link { display: grid; width: 100% !important; grid-template-columns: 1fr auto; gap: .1rem 1rem; border-top: 1px solid rgba(255,255,255,.18); padding: 1rem 0; color: #fff !important; text-decoration: none !important; }
.contact-link small { color: #88847e; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-link strong { font-size: clamp(.95rem, 1.3vw, 1.12rem); }
.contact-link > .ui-icon { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--roeff-primary); }
.contact-link:hover strong { color: var(--roeff-primary); }
.site-footer .footer-socials { gap: .6rem; margin-top: 1.35rem; }
.site-footer .footer-socials a { display: grid; width: 2.85rem; height: 2.85rem; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; transition: border-color 220ms ease, color 220ms ease, transform 220ms var(--ease); }
.site-footer .footer-socials a:hover, .site-footer .footer-socials a:focus-visible { border-color: var(--roeff-primary); color: var(--roeff-primary); transform: translateY(-2px); }
.site-footer .footer-socials svg { display: block; width: 1.2rem; min-width: 1.2rem; height: 1.2rem; overflow: visible; fill: currentColor; }
.site-footer .footer-socials svg rect, .site-footer .footer-socials svg circle:not(.social-icon__dot) { fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-footer .footer-socials .social-icon__dot { fill: currentColor; stroke: none; }
.site-footer__ghost { opacity: .6; }

.legal-page { width: min(92vw, 58rem); min-height: 65vh; margin: 0 auto; padding: clamp(9rem, 14vw, 12rem) 0 clamp(4rem, 8vw, 7rem); color: #fff; }
.legal-page > h1 { max-width: 11ch; margin: 0 0 3rem; font: 900 clamp(3.8rem, 8vw, 7.5rem)/.82 var(--font-display); letter-spacing: -.07em; text-transform: uppercase; }
.legal-page .wp-block-post-content { max-width: 48rem; }
.legal-page h2 { margin: 2.7rem 0 .8rem; color: var(--roeff-primary); font: 800 clamp(1.45rem, 3vw, 2.1rem)/1.1 var(--font-display); letter-spacing: -.035em; }
.legal-page p { color: #cbc7c0; }
.legal-page a { color: #fff; text-decoration-color: var(--roeff-primary); text-underline-offset: .22rem; }

@media (max-width: 980px) {
  .agenda__layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .performance-grid--text { grid-template-columns: 1fr 1fr; }
  .media-strip__content { grid-template-columns: 1fr auto; }
  .media-strip__content > p { grid-column: 1; }
  .media-strip .play-link { grid-column: 2; grid-row: 1 / span 2; }
  .music-player { grid-template-columns: auto auto 1fr auto; }
  .music-player__eyebrow { grid-column: 1 / -1; }
  .audio-player__timeline { grid-column: 3; }
  .instagram-section__heading { grid-template-columns: 1fr auto; }
  .instagram-section__heading > p { grid-column: 1; }
  .instagram-section__heading > a { grid-column: 2; grid-row: 1 / span 2; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__intro { grid-column: 1 / -1; }
  .site-footer__contact { grid-column: auto; }
}

@media (max-width: 620px) {
	body.admin-bar .site-nav { top: calc(1rem + 46px); }
  .site-nav { right: 1rem; left: 1rem; width: auto; min-height: 3.75rem; padding-right: .8rem; transform: none; background: rgba(13,13,13,.9); border-color: rgba(255,255,255,.12); backdrop-filter: none; }
  .site-nav.is-scrolled { backdrop-filter: none; }
  .menu-toggle { gap: .55rem; padding: .75rem .2rem; }
  .menu-toggle span { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  .site-nav .wp-block-navigation__responsive-container-open { min-height: 2.75rem; align-items: center; gap: .55rem; color: #fff; }
  .site-nav .wp-block-navigation__responsive-container-open::before { content: "Menu"; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--roeff-black); color: #fff; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { color: #fff; }
  .site-nav .wp-block-navigation__responsive-container-close { top: 1.4rem; right: 1.2rem; min-width: 2.75rem; min-height: 2.75rem; color: var(--roeff-black); }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .menu-socials--wp a { border-color: rgba(255,255,255,.42); color: #fff; }
  .site-menu:not(.wp-block-navigation) { top: 0; right: 0; bottom: 0; left: 0; width: 100vw; height: 100svh; justify-content: flex-start; gap: .25rem; padding: 6.5rem 1.4rem 2rem; }
  .site-menu:not(.wp-block-navigation) > a { width: 100%; border-bottom: 1px solid rgba(255,255,255,.14); padding: .52rem 0; font-size: clamp(1.85rem, 9vw, 3rem); }
  .site-menu:not(.wp-block-navigation) .menu-socials { margin-top: auto; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .menu-socials--wp { margin-top: auto; }
  .hero, .hero__content { min-height: max(44rem, 100svh); }
  .hero__media { height: 84%; }
  .hero__media img { object-position: 50% 10%; }
  .hero__content { padding-top: calc(var(--nav-height) + 1.8rem); }
  .hero__title { font-size: clamp(3.85rem, 20vw, 5.7rem); }
  .announcement-bar { padding: .78rem 0; }
  .intro { padding: 3.25rem 0; }
  .intro__headline h2 { font-size: clamp(2.45rem, 11.5vw, 3.55rem); }
  .intro__layout { gap: 2rem; margin-top: 2rem; }
  .intro__portrait { width: 72%; max-height: 27rem; }
  .intro__statement { font-size: 9.5vw; }
  .agenda { padding: 3.25rem 0; }
  .agenda__heading h2 { font-size: 12.5vw; }
  .agenda-item { grid-template-columns: 5.4rem 1fr; gap: 1rem; padding: 1.25rem 0; }
  .agenda-item > a, .agenda-item > p:last-child { grid-column: 2; }
  .agenda-item__date span { font-size: .95rem; }
  .performances { padding: 3.25rem 0; }
  .performances .section-heading { margin-bottom: 2rem; }
  .performances .section-heading h2 { font-size: 11.5vw; }
  .performance-grid--text { grid-template-columns: 1fr; }
  .performance-card { min-height: auto; padding: 1.35rem; }
  .performance-card h3 { margin: 1.5rem 0 .6rem; font-size: 1.65rem; }
  .media-strip { padding: 3rem 0; }
  .media-strip__content { grid-template-columns: 1fr; gap: 1.5rem; }
  .media-strip__content h2 { font-size: 11.5vw; }
  .media-strip__content > p, .media-strip .play-link { grid-column: auto; grid-row: auto; }
  .music-player-section { padding: 1.1rem 0; }
  .music-player { grid-template-columns: auto 1fr auto; gap: .8rem 1rem; }
  .music-player__eyebrow { grid-column: 1 / -1; }
  .audio-player__timeline { grid-column: 1 / -1; grid-row: 3; }
  .music-player-section__note { text-align: left; }
  .instagram-section { padding-top: 3.25rem; }
  .instagram-section__heading { grid-template-columns: 1fr; gap: 1.25rem; margin-bottom: 2rem; }
  .instagram-section__heading h2 { font-size: 11.5vw; }
  .instagram-section__heading > p, .instagram-section__heading > a { grid-column: auto; grid-row: auto; }
  .instagram-rail__track { --instagram-loop-offset: .25rem; gap: .75rem; animation-duration: 42s; }
  .instagram-rail__track > a { width: auto; height: 68vw; max-height: 22rem; }
  .about { padding: 3.25rem 0; }
  .about__layout { gap: 2rem; }
  .about__heading h2 { font-size: 11.5vw; }
  .about__portrait { width: 86%; max-height: none; margin-inline: auto; }
  .about__portrait img { object-position: 50% 12%; }
  .booking { padding: 3.25rem 0; }
  .booking__intro h2 { font-size: 11.5vw; }
  .schedule-ui { grid-template-columns: 1fr; }
  .booking-form, .form-step, .schedule-picker, .schedule-ui, .schedule-calendar, .schedule-time, .schedule-time__custom { width: 100%; min-width: 0; max-width: 100%; }
  .form-step input[type="date"], .form-step input[type="time"] { display: block; width: 100%; min-width: 0; max-width: 100%; -webkit-appearance: none; appearance: none; }
  .schedule-calendar { padding: .85rem; }
  .schedule-calendar__header { margin: -.85rem -.85rem .85rem; }
  .schedule-calendar__days > span, .schedule-calendar__days button { min-height: 2.75rem; }
  .schedule-time { border-top: 1px solid #272727; border-left: 0; }
  .schedule-time small { margin-top: .8rem; padding-top: 0; }
  .schedule-selection { grid-template-columns: 1fr; }
  .schedule-selection strong { text-align: left; }
  .booking-form-shell { min-height: 28rem; }
  .booking-form-shell:has(.form-success:not([hidden])) { min-height: 21rem; }
  .form-success h3 { font-size: 10.5vw; }
  .site-footer { padding-top: 3.5rem; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .site-footer__intro, .site-footer__contact { grid-column: auto; }
  .site-footer__intro h2 { font-size: 10.5vw; }
  .site-footer nav { display: none; }
}

@media (min-width: 981px) {
  .site-nav .wp-block-navigation__responsive-container-open { display: none !important; }
  .site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block !important; }
}

@media (max-width: 980px) {
  .header-cta { display: none !important; }
  .site-menu { justify-self: end; }
  .site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .site-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open { overflow-y: auto; }
  .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: clamp(2.15rem, 6.2vw, 3.9rem); }
}

@media (max-width: 620px) {
  .hero__actions { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; margin: 0; gap: .85rem; }
  .hero__actions .button, .hero__actions .wp-block-button { min-width: 0; flex: none; }
  .hero__actions .wp-block-button__link { width: 100%; }
  .hero__actions .text-link-button { flex: 0 0 auto; }
  .hero__actions .text-link-button .wp-block-button__link { width: auto; padding-inline: .4rem; }
  .hero__actions > .text-link { align-self: center; white-space: nowrap; }
}

@media (max-width: 420px) {
  .hero__actions { grid-template-columns: minmax(0, 1fr); }
  .hero__actions .text-link-button, .hero__actions > .text-link { justify-self: start; }
  .hero__actions .text-link-button .wp-block-button__link { padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
