/* Rampage Open Air — project stylesheet. One rule per selector; responsive variants below. */
@import url("src/fontawesome/v7.1.0/css/fontawesome.min.css");
@import url("src/fontawesome/v7.1.0/css/light.min.css");
@import url("src/fontawesome/v7.1.0/css/brands.min.css");

/* Fonts and design tokens */
@font-face { font-family: 'Archivo'; src: url('src/webfonts/archivo-variablefont_wdth_wght.woff2') format('woff2'); font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap; }
@font-face { font-family: 'Archivo'; src: url('src/webfonts/archivo-italic-variablefont_wdth_wght.woff2') format('woff2'); font-weight: 100 900; font-stretch: 62% 125%; font-style: italic; font-display: swap; }
:root { --roa-surface: #ffffff; --roa-ink: #07133d; --roa-blue: #254fff; --roa-paper: #f5f7ff; --roa-red: #ff3000; --roa-button-red: #d9230b; --roa-line: #07133d; --roa-pad: clamp(22px, 4vw, 76px); --roa-font: 'Archivo', Arial, Helvetica, sans-serif; --roa-width: 1480px; }

/* Foundations and shared layout */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--roa-paper); color: var(--roa-ink); font-family: var(--roa-font); font-size: 1.0625rem; font-weight: 400; font-stretch: 100%; line-height: 1.55; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
figure { margin: 0; }
h1, h2, h3, h4 { overflow-wrap: break-word; }
.centerize { width: min(calc(100% - 2 * var(--roa-pad)), var(--roa-width)); margin-inline: auto; }
.component { padding-block: clamp(48px, 6vw, 90px); }
.clear { clear: both; }
#theme { background: var(--roa-paper); }
main { padding: 0; }
main > .component.centerize { width: 100%; max-width: none; margin: 0; }
.breadcrumbs { display: none; }
#action { padding: 32px var(--roa-pad); background: white; border-bottom: 1px solid var(--roa-line); }
#action .centerize { width: 100%; }
#action h1 { font-weight: 900; }
a:focus-visible, summary:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--roa-blue); outline-offset: 4px; }


/* Header, navigation and continuous event ticker */
#container > header.roa-header { position: sticky; top: 0; z-index: 100; height: auto; background: var(--roa-ink); color: white; border-bottom: 1px solid #ffffff55; }
.roa-masthead { display: flex; align-items: center; gap: 28px; min-height: 100px; padding: 16px 26px; }
.roa-logo { display: block; color: white; text-decoration: none; }
.roa-logo img { display: block; width: auto; height: 66px; max-width: min(65vw, 300px); object-fit: contain; }
.roa-logo strong { display: block; font-size: 34px; line-height: .9; font-weight: 900; letter-spacing: -2px; }
.roa-logo strong span { display: block; margin-top: 7px; font-size: 12px; letter-spacing: 6px; }
.roa-menu summary { display: flex; align-items: center; gap: 12px; min-height: 48px; cursor: pointer; list-style: none; }
.roa-menu summary::-webkit-details-marker { display: none; }
.roa-menu-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.roa-hamburger { display: block; width: 42px; height: 28px; border-top: 4px solid; border-bottom: 4px solid; position: relative; }
.roa-hamburger::after { content: ''; position: absolute; top: 8px; width: 100%; border-top: 4px solid; }
.roa-menu[open] .roa-hamburger { color: var(--roa-red); }
.roa-menu nav { position: absolute; top: 100%; left: 0; width: min(650px, 100%); max-height: calc(100dvh - 100px); overflow-y: auto; background: var(--roa-ink); border: 1px solid #ffffff70; }
.roa-menu nav a { display: flex; justify-content: space-between; gap: 20px; padding: 18px 26px; border-bottom: 1px solid #ffffff55; color: white; font-size: clamp(28px, 4vw, 52px); line-height: 1.1; font-weight: 800; text-decoration: none; }
.roa-menu nav a:hover, .roa-menu nav a[aria-current] { color: white; background: var(--roa-button-red); }
.roa-event-strip { display: flex; align-items: stretch; overflow: hidden; background: var(--roa-red); color: var(--roa-ink); border-bottom: 1px solid var(--roa-line); text-transform: uppercase; font-size: clamp(14px, 1.4vw, 19px); font-weight: 800; letter-spacing: .06em; }
.roa-ticker-window { flex: 1; min-width: 0; overflow: hidden; }
.roa-ticker-track { display: flex; width: max-content; animation: roa-ticker var(--roa-ticker-duration, 40s) linear infinite; }
.roa-ticker-group { display: flex; flex: 0 0 auto; }
.roa-ticker-unit { display: flex; flex: 0 0 auto; align-items: center; gap: 32px; padding: 14px 32px 14px 0; white-space: nowrap; }
.roa-event-strip:hover .roa-ticker-track, .roa-event-strip:focus-within .roa-ticker-track { animation-play-state: paused; }
.roa-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes roa-ticker { to { transform: translateX(-50%); } }
.roa-action { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 18px var(--roa-pad); background: var(--roa-ink); color: white; border-bottom: 1px solid var(--roa-line); }
.roa-action > div { display: flex; gap: 18px; flex-wrap: wrap; }

.roa-skip { position: fixed; top: -100px; left: 16px; z-index: 200; padding: 12px; background: var(--roa-red); color: black; }
.roa-skip:focus { top: 12px; }
#roa-content { display: block; scroll-margin-top: 110px; }


/* Minimal filled actions; generic Myti views can keep their existing classes. */
.theme-text-link, .theme-button, .theme-back-link, .roa-action > a, .theme-footer-cta-link, .btn, .button, input[type=submit], button[type=submit] { display: inline-flex; width: fit-content; max-width: 100%; align-items: center; justify-content: center; padding: 15px 22px; border: 0; border-radius: 0; background: var(--roa-ink); color: white; font-size: 13px; font-weight: 800; line-height: 1.4; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background-color 160ms ease; }
.theme-text-link:hover, .theme-button:hover, .theme-back-link:hover, .btn:hover, .button:hover, input[type=submit]:hover, button[type=submit]:hover { background: var(--roa-button-red); color: white; }
.theme-featured-content .theme-text-link, .roa-action > a, .theme-footer-cta-link { background: var(--roa-button-red); color: white; align-self: flex-start; }
.theme-featured-content .theme-text-link:hover, .roa-action > a:hover { background: var(--roa-ink); }
.theme-text-link > span, .theme-button > i, .theme-back-link > i, .theme-footer-cta-link > i, .roa-menu nav a > span { display: none; }
.roa-action > a { flex-shrink: 0; }

/* News opening, featured story and edge-to-edge cards */
.theme-page-intro { padding: clamp(45px, 7vw, 110px) var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-eyebrow { margin: 0 0 26px; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.theme-page-intro h1 { margin: 0; font-size: clamp(70px, 13vw, 210px); font-weight: 900; line-height: .84; letter-spacing: -.075em; text-transform: uppercase; }
.theme-page-intro-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; gap: 40px; }
.theme-page-intro-grid > p { max-width: 40ch; margin: 0; font-size: clamp(17px, 1.7vw, 25px); }
.theme-page-intro-media { margin-top: 45px; height: clamp(300px, 45vw, 650px); overflow: hidden; }
.theme-page-intro-media img { width: 100%; height: 100%; object-fit: cover; }
.theme-featured { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: 0; border-bottom: 1px solid var(--roa-line); background: var(--roa-blue); color: white; }
.theme-featured-media { display: block; min-height: 420px; height: 100%; overflow: hidden; }
.theme-featured-media img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; }
.theme-featured-content { display: flex; flex-direction: column; align-self: center; padding: var(--roa-pad); }
.theme-featured-content h2 { margin: 0; font-size: clamp(36px, 4.5vw, 76px); font-weight: 900; line-height: .98; letter-spacing: -.05em; text-transform: uppercase; }
.theme-featured-content > p { max-width: 50ch; margin: 30px 0; font-size: 1.1875rem; }
.theme-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 28px; font-size: 12px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.theme-news { padding: 0; }
.theme-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 430px); align-items: end; gap: 40px; padding: 36px var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-section-heading h2 { margin: 0; font-size: clamp(32px, 4vw, 64px); font-weight: 900; line-height: 1; letter-spacing: -.05em; }
.theme-section-heading > p { margin: 0; }
.theme-articles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.theme-article { display: flex; flex-direction: column; min-width: 0; padding: 0; border-bottom: 1px solid var(--roa-line); }
.theme-article:nth-child(odd) { border-right: 1px solid var(--roa-line); }
.theme-article:nth-child(4n + 2) { background: white; }
.theme-article > :not(.theme-article-media) { margin-left: var(--roa-pad); margin-right: var(--roa-pad); }
.theme-article-media { display: block; flex-shrink: 0; width: 100%; aspect-ratio: 16/10; margin: 0; overflow: hidden; }
.theme-article-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 200ms ease; }
.theme-article-media:hover img { transform: scale(1.025); }
.theme-article > time { margin-top: 28px; font-size: 12px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.theme-article h3 { margin-top: 15px; margin-bottom: 16px; font-size: clamp(30px, 3vw, 52px); font-weight: 900; line-height: 1.03; letter-spacing: -.045em; text-transform: uppercase; }
.theme-article > p { max-width: 50ch; margin-top: 0; margin-bottom: 24px; font-size: 1rem; }
.theme-article > .theme-text-link { align-self: flex-start; margin-top: auto; margin-bottom: var(--roa-pad); }
.theme-article:not(.has-image) > :first-child:not(.theme-article-media) { margin-top: var(--roa-pad); }
.theme-section-more { padding: 30px var(--roa-pad); }

/* Reusable link buttons, quicklinks, content sections and accordion */
.theme-page-intro-copy { width: min(100%, 850px); margin: 32px 0 0; padding: 0; }
.theme-link-buttons { display: flex; flex-wrap: wrap; align-items: stretch; gap: 16px; padding: 28px var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-link-buttons .theme-button { min-height: 56px; padding: 18px 28px; background: var(--roa-button-red); font-size: 24px; }
.theme-link-buttons .theme-button:hover { background: var(--roa-ink); }
.theme-intro-actions { display: grid; grid-template-columns: minmax(0, 1fr); border-bottom: 1px solid var(--roa-line); }
.theme-intro-actions-lead { min-width: 0; padding: clamp(32px, 4vw, 64px) var(--roa-pad) 28px; }
.theme-intro-actions h1, .theme-intro-actions h2 { margin: 0; font-size: clamp(48px, 7vw, 120px); font-weight: 900; line-height: .95; letter-spacing: -.055em; text-transform: uppercase; overflow-wrap: break-word; }
.theme-intro-actions-summary { max-width: 48ch; margin: 28px 0 0; font-size: clamp(17px, 1.7vw, 24px); }
.theme-intro-actions-body { min-width: 0; padding: 0 var(--roa-pad) clamp(32px, 4vw, 64px); }
.theme-intro-actions-aside { min-width: 0; padding: 28px var(--roa-pad); background: var(--roa-blue); }
.theme-intro-actions .theme-link-buttons { flex-direction: column; padding: 0; border: 0; }
.theme-intro-actions .theme-button { width: 100%; }
.theme-intro-actions.is-cta h2 { font-size: clamp(40px, 5vw, 80px); }
.theme-intro-actions.is-cta .theme-intro-actions-lead { padding-bottom: clamp(32px, 4vw, 64px); }
.theme-quick-links { border-bottom: 1px solid var(--roa-line); }
.theme-quick-links-track { display: flex; flex-wrap: wrap; gap: 1px; background: var(--roa-line); }
.theme-quick-link { display: flex; flex: 1 1 clamp(250px, 30vw, 440px); flex-direction: column; min-width: 0; background: var(--roa-paper); transition: background-color 160ms ease, color 160ms ease; }
.theme-quick-link-copy { flex: 1; padding: 28px var(--roa-pad); }
.theme-quick-link strong { display: block; font-size: clamp(26px, 2.6vw, 42px); font-weight: 900; line-height: 1.05; letter-spacing: -.04em; overflow-wrap: break-word; }
.theme-quick-link .theme-eyebrow { display: block; margin-bottom: 14px; }
.theme-quick-link p { margin: 18px 0 0; font-size: 1rem; }
.theme-quick-link-media { aspect-ratio: 16/10; overflow: hidden; }
.theme-quick-link-media img { width: 100%; height: 100%; object-fit: cover; }
.theme-quick-link:hover, .theme-quick-link:focus-visible { background: var(--roa-blue); color: white; }
.theme-quick-link:focus-visible { outline-offset: -5px; }
.theme-quick-links.is-grid .theme-quick-links-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; gap: 1px; background: var(--roa-line); }
.theme-quick-links.is-grid .theme-quick-link { border: 0; }
.theme-content-section, .theme-accordion-section, .theme-accordion-item { scroll-margin-top: 116px; }
.theme-content-section { border-bottom: 1px solid var(--roa-line); }
.theme-content-section.has-image { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.theme-content-body { min-width: 0; padding: var(--roa-pad); }
.theme-content-section:not(.has-image) .theme-content-body { max-width: 1040px; }
.theme-content-body h2 { margin: 0 0 28px; font-size: clamp(38px, 4.5vw, 72px); font-weight: 900; line-height: .98; letter-spacing: -.05em; text-transform: uppercase; }
.theme-content-lead { margin: 0 0 28px; font-size: 1.2rem; }
.theme-content-copy { width: 100%; margin: 0; padding: 0; font-size: 1.0625rem; }
.theme-content-body > .theme-button { margin-top: 30px; }
.theme-content-media { position: sticky; top: 116px; min-width: 0; align-self: start; }
.theme-content-media img { width: 100%; height: clamp(300px, 65svh, 760px); max-height: calc(100svh - 132px); object-fit: cover; }
.theme-content-media figcaption { padding: 12px 24px; font-size: .8125rem; }
.theme-content-section.has-image.image-left .theme-content-media { grid-column: 1; grid-row: 1; }
.theme-content-section.has-image.image-left .theme-content-body { grid-column: 2; grid-row: 1; }
.theme-accordion-section { border-bottom: 1px solid var(--roa-line); }
.theme-accordion-section .theme-section-heading { padding-block: 48px; }
.theme-accordion-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.theme-accordion-section.has-image .theme-accordion-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.theme-accordion { min-width: 0; }
.theme-accordion-item { border-bottom: 1px solid var(--roa-line); }
.theme-accordion-item:last-child { border-bottom: 0; }
.theme-accordion-item summary { display: flex; align-items: center; gap: 20px; padding: 28px var(--roa-pad); cursor: pointer; list-style: none; }
.theme-accordion-item summary::-webkit-details-marker { display: none; }
.theme-accordion-title { flex: 1; min-width: 0; font-size: clamp(20px, 2vw, 30px); font-weight: 700; line-height: 1.25; overflow-wrap: break-word; }
.theme-accordion-number { font-size: .8125rem; }
.theme-accordion-icon { position: relative; flex: 0 0 20px; width: 20px; height: 20px; }
.theme-accordion-icon::before, .theme-accordion-icon::after { position: absolute; top: 9px; left: 0; width: 20px; height: 2px; background: currentColor; content: ''; }
.theme-accordion-icon::after { transform: rotate(90deg); }
.theme-accordion-item[open] .theme-accordion-icon::after { display: none; }
.theme-accordion-item summary:hover { background: white; }
.theme-accordion-panel { padding: 0 var(--roa-pad) 32px; }
.theme-accordion-panel .theme-content-copy { max-width: 75ch; }
.theme-accordion-lead { margin: 0 0 24px; }
.theme-accordion-answer-image { width: 100%; height: auto; margin-top: 24px; }
.theme-accordion-section .theme-content-media img { height: auto; max-height: none; object-fit: contain; }
.theme-accordion-panel > .theme-button { margin-top: 24px; }

/* FAQ overview: category cards reuse the wrapping quicklinks; answers stay readable. */
.theme-faq-page .theme-page-intro { width: 100%; max-width: none; margin-inline: 0; padding-block: clamp(32px, 4vw, 64px); }
.theme-faq-page .theme-page-intro h1 { font-size: clamp(64px, 10vw, 144px); }
.theme-faq-page .theme-accordion-section.is-highlighted { background: var(--roa-surface); border-top: 4px solid var(--roa-blue); }
.theme-faq-page .theme-accordion-section:not(.has-image) .theme-accordion { width: 100%; max-width: 1200px; margin-inline: auto; }
.theme-faq-page .theme-accordion-panel { max-width: 92ch; }

/* Reusable planning components */
.theme-location-intro { display: grid; grid-template-columns: minmax(0, 1fr); border-bottom: 1px solid var(--roa-line); }
.theme-location-intro-lead { min-width: 0; padding: clamp(32px, 4vw, 64px) var(--roa-pad); }
.theme-location-intro h1 { margin: 0 0 28px; font-size: clamp(56px, 7vw, 120px); font-weight: 900; line-height: .95; letter-spacing: -.055em; text-transform: uppercase; }
.theme-location-intro .theme-content-lead { max-width: 48ch; margin: 0; }
.theme-location-intro-place { min-width: 0; padding: 32px var(--roa-pad); background: var(--roa-ink); color: var(--roa-surface); }
.theme-location-intro-place h2 { margin: 0 0 18px; font-size: clamp(28px, 3vw, 48px); font-weight: 900; line-height: 1; letter-spacing: -.04em; }
.theme-location-address { margin: 0 0 24px; }
.theme-location-intro-place .theme-link-buttons { padding: 0; border: 0; margin-top: 24px; }
.theme-location-intro-place .theme-button:hover { background: var(--roa-blue); }
.theme-location-intro-place img { width: 100%; height: auto; margin-top: 28px; }
.theme-location-intro .theme-content-copy { width: 100%; margin: 0; padding: 0; }
.theme-location-intro .theme-location-intro-body { padding: 28px var(--roa-pad); }
.theme-navigation-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1px; background: var(--roa-line); border-bottom: 1px solid var(--roa-line); scroll-margin-top: 116px; }
.theme-navigation-card { display: flex; flex-direction: column; min-width: 0; background: var(--roa-paper); }
.theme-navigation-card-media { aspect-ratio: 16/10; overflow: hidden; }
.theme-navigation-card-media img { width: 100%; height: 100%; object-fit: cover; }
.theme-navigation-card-copy { display: flex; flex: 1; flex-direction: column; align-items: start; padding: 32px var(--roa-pad); }
.theme-navigation-card h3 { margin: 0 0 20px; font-size: clamp(28px, 3vw, 46px); font-weight: 900; line-height: 1.05; letter-spacing: -.04em; }
.theme-navigation-card-copy > p:not(.theme-eyebrow) { margin: 0 0 28px; }
.theme-navigation-card .theme-button { margin-top: auto; }
.theme-navigation-card[href]:hover, .theme-navigation-card[href]:focus-visible { background: var(--roa-surface); }
.theme-partner-list { border-bottom: 1px solid var(--roa-line); scroll-margin-top: 116px; }
.theme-partner-list table { width: 100%; border-collapse: collapse; text-align: left; }
.theme-partner-list th, .theme-partner-list td { padding: 22px var(--roa-pad); vertical-align: middle; }
.theme-partner-list th { font-size: .8125rem; text-transform: uppercase; }
.theme-partner-list tbody tr { border-top: 1px solid var(--roa-line); }
.theme-partner-country { width: 24%; font-weight: 700; }
.theme-partner-list td:last-child { text-align: right; }
.theme-partner-list td p { margin: 8px 0 0; font-size: .9375rem; }
.theme-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Stay uses the existing full-width building blocks. */
.theme-hierarchy-page .theme-page-intro { width: 100%; max-width: none; margin-inline: 0; padding-block: clamp(36px, 5vw, 80px); }
.theme-hierarchy-page .theme-page-intro h1 { font-size: clamp(52px, 8vw, 140px); line-height: .95; letter-spacing: -.055em; }
.theme-hierarchy-page [id] { scroll-margin-top: 116px; }
.theme-breadcrumbs { padding: 20px var(--roa-pad); border-bottom: 1px solid var(--roa-line); font-size: .875rem; }
.theme-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.theme-breadcrumbs li + li::before { content: '/'; margin-right: 10px; }
.theme-breadcrumbs a:hover { color: var(--roa-blue); }
.theme-filter-buttons { display: flex; flex-wrap: wrap; gap: 10px; padding: 24px var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-filter-buttons button { padding: 12px 18px; border: 1px solid var(--roa-line); border-radius: 0; background: var(--roa-paper); color: var(--roa-ink); font-weight: 700; cursor: pointer; }
.theme-filter-buttons button[aria-pressed=true] { background: var(--roa-ink); color: var(--roa-surface); }
.theme-filter-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 600px), 1fr)); gap: 0; background: var(--roa-paper); border-top: 1px solid var(--roa-line); border-left: 1px solid var(--roa-line); }
.theme-filter-card { display: flex; flex-direction: column; min-width: 0; width: 100%; border-right: 1px solid var(--roa-line); border-bottom: 1px solid var(--roa-line); background: var(--roa-paper); }
/* Only a single visible result is capped; multiple cards share the full row. */
.theme-filter-card-grid:not(:has(.theme-filter-card:not([hidden]) ~ .theme-filter-card:not([hidden]))) .theme-filter-card { max-width: 780px; }
.theme-filter-card-image { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.theme-filter-card-copy { display: flex; flex-direction: column; align-items: start; flex: 1; padding: 28px var(--roa-pad); }
.theme-filter-card h3 { margin: 0 0 18px; font-size: clamp(28px, 3vw, 44px); font-weight: 900; line-height: 1.05; letter-spacing: -.04em; }
.theme-filter-card p { margin: 0 0 20px; }
.theme-card-facts { width: 100%; margin: 0 0 24px; padding: 0; list-style: none; }
.theme-card-facts li { padding: 10px 0; border-bottom: 1px solid var(--roa-line); }
.theme-card-details { width: 100%; margin-bottom: 24px; }
.theme-card-details summary { font-weight: 700; cursor: pointer; }
.theme-card-details .theme-content-copy { width: 100%; margin: 20px 0 0; padding: 0; font-size: 1rem; }
.theme-filter-card .theme-button, .theme-filter-card .theme-availability { margin-top: auto; }
.theme-filter-card .theme-availability { font-weight: 800; }
.theme-filter-buttons[hidden], .theme-filter-card[hidden], .theme-photo-controls[hidden] { display: none; }
.theme-photo-rail { border-bottom: 1px solid var(--roa-line); }
.theme-photo-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -ms-overflow-style: none; }
.theme-photo-track::-webkit-scrollbar { display: none; width: 0; height: 0; }
.theme-photo-track.is-dragging, .theme-photo-track.is-settling { scroll-snap-type: none; scroll-behavior: auto; }
.theme-photo-track.is-dragging { cursor: grabbing; user-select: none; }
@media (hover: hover) and (pointer: fine) { .theme-photo-track { cursor: grab; } .theme-photo-track.is-dragging { cursor: grabbing; } }
.theme-photo-track figure { flex: 0 0 80%; scroll-snap-align: start; }
.theme-photo-track img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.theme-photo-controls { display: flex; justify-content: end; gap: 12px; padding: 18px var(--roa-pad); }
.theme-photo-controls button { width: 48px; height: 48px; border: 0; background: var(--roa-ink); color: var(--roa-surface); cursor: pointer; }
.theme-photo-controls button:disabled { opacity: .35; cursor: default; }

/* Home: fullscreen media with a large navigation column */
.roa-home-hero { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(320px, 30%) minmax(0, 1fr); min-height: calc(100svh - var(--roa-top-height, 148px)); background: var(--roa-ink); color: white; }
.roa-home-media, .roa-home-shade { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.roa-home-media { background: var(--roa-ink); }
.roa-home-media picture, .roa-home-media img, .roa-home-video { display: block; width: 100%; height: 100%; }
.roa-home-media img, .roa-home-video { object-fit: cover; object-position: center; }
.roa-home-video { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity 300ms ease; }
.roa-home-hero.is-video-playing .roa-home-video { opacity: 1; }
.roa-home-shade { background: linear-gradient(90deg, rgba(7,19,61,.25), transparent 65%); }
.roa-home-menu-column { display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; border-right: 1px solid #ffffffaa; background: rgba(7,19,61,.55); }
.roa-home-menu { display: flex; flex-direction: column; }
.roa-home-menu a { display: flex; align-items: center; min-height: 56px; padding: clamp(10px, 1.3svh, 18px) 24px; border-top: 1px solid #ffffffaa; color: white; font-size: clamp(32px, 3.8vw, 64px); font-weight: 900; line-height: 1.03; letter-spacing: -.045em; text-decoration: none; transition: background-color 160ms ease; }
.roa-home-menu a:hover, .roa-home-menu a:focus-visible { background: var(--roa-button-red); color: white; }
.roa-home-menu a:focus-visible { position: relative; outline: 3px solid white; outline-offset: -5px; }
.roa-home-open-column { display: flex; align-items: flex-end; min-width: 0; }
.roa-home-title { margin: 0; padding: var(--roa-pad); font-size: clamp(48px, 7vw, 120px); font-weight: 900; line-height: .9; letter-spacing: -.06em; text-transform: uppercase; text-shadow: 0 2px 24px var(--roa-ink); }

/* Article detail and editorial content */
.theme-article-detail-header { padding: 60px var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-card-socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.theme-card-socials a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--roa-line); font-size: 20px; }
.theme-card-socials a:hover { color: var(--roa-surface); background: var(--roa-ink); }
.theme-back-link { margin-bottom: 42px; }
.theme-article-detail-header h1 { max-width: 18ch; margin: 0; font-size: clamp(45px, 7vw, 115px); font-weight: 900; line-height: .95; letter-spacing: -.055em; text-transform: uppercase; }
.theme-article-lead { max-width: 790px; margin: 38px 0 0 auto; font-size: clamp(1.25rem, 1.8vw, 1.625rem); }
.theme-article-hero { width: 100%; margin: 0; }
.theme-article-hero img { width: 100%; height: clamp(360px, 56vw, 820px); object-fit: cover; }
.theme-article-detail.is-image-contain .theme-article-hero img { height: auto; max-height: 900px; object-fit: contain; }
.theme-article-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-bottom: 1px solid var(--roa-line); }
.theme-article-intro > .theme-article-detail-header { width: 100%; min-width: 0; margin: 0; border-bottom: 0; display: flex; flex-direction: column; justify-content: center; }
.theme-article-intro .theme-article-detail-header h1 { font-size: clamp(40px, 5vw, 100px); overflow-wrap: anywhere; }
.theme-article-intro .theme-article-lead { margin: 30px 0 0; }
.theme-article-intro > .theme-article-hero { min-width: 0; align-self: center; }
.theme-article-intro > .theme-article-hero img { max-height: min(80svh, 900px); }
.theme-article-hero figcaption { width: min(calc(100% - 48px), 820px); margin: 12px auto 0; font-size: .8125rem; }
.theme-rich-text { width: min(calc(100% - 48px), 820px); margin-inline: auto; padding-block: 45px; font-size: 1.125rem; line-height: 1.75; }
.theme-rich-text > :first-child { margin-top: 0; }
.theme-rich-text > :last-child { margin-bottom: 0; }
.theme-rich-text p, .theme-rich-text ul, .theme-rich-text ol, .theme-rich-text blockquote, .theme-rich-text table { margin: 0 0 1.65em; }
.theme-rich-text h2, .theme-rich-text h3, .theme-rich-text h4 { margin: 1.6em 0 .65em; font-weight: 900; letter-spacing: -.035em; line-height: 1.08; }
.theme-rich-text h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.theme-rich-text h3 { font-size: clamp(1.5rem, 3vw, 2.5rem); }
.theme-rich-text h4 { font-size: 1.375rem; }
.theme-rich-text ul, .theme-rich-text ol { padding-left: 1.35em; }
.theme-rich-text li { margin-bottom: .5em; }
.theme-rich-text a { text-decoration: underline; text-underline-offset: 4px; }
.theme-rich-text h6 > a, .theme-rich-text u > a, .theme-rich-text a:has(> u) { display: inline-block; padding: 15px 22px; background: var(--roa-ink); color: white; font-size: 13px; font-weight: 800; text-decoration: none; text-transform: uppercase; }
.theme-rich-text h6 > a:hover, .theme-rich-text u > a:hover, .theme-rich-text a:has(> u):hover { background: var(--roa-button-red); }
.theme-rich-text u:has(> a), .theme-rich-text a > u { text-decoration: none; }
.theme-rich-text blockquote { padding-left: 24px; border-left: 4px solid var(--roa-red); font-size: clamp(1.3rem, 2.7vw, 2rem); line-height: 1.3; }
.theme-rich-text img { width: auto; height: auto; margin-block: 2em; }
.theme-rich-text iframe { width: 100%; max-width: 100%; }
.theme-rich-text table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.theme-rich-text th, .theme-rich-text td { padding: 12px; border: 1px solid var(--roa-line); text-align: left; }
.theme-article-actions { width: min(calc(100% - 48px), 820px); margin-inline: auto; padding-bottom: 60px; }
.theme-article-embeds, .theme-article-files, .theme-article-tags { width: min(calc(100% - 48px), 980px); margin-inline: auto; margin-bottom: 60px; }
.theme-article-embeds { display: grid; gap: 28px; }
.theme-article-embeds iframe { width: 100%; border: 0; }
.theme-article-embeds iframe:not([height]) { aspect-ratio: 16/9; }
.theme-article-files { display: grid; border-top: 1px solid var(--roa-line); }
.theme-article-files a { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 66px; padding: 14px 4px; border-bottom: 1px solid var(--roa-line); }
.theme-article-files small { font-size: .75rem; }
.theme-article-tags { display: flex; flex-wrap: wrap; gap: 9px; }
.theme-article-tags a { padding: 8px 13px; border: 1px solid var(--roa-line); font-size: .8125rem; }
.theme-article-tags a:hover { background: var(--roa-ink); color: white; }
.theme-article-gallery { width: min(calc(100% - 48px), var(--roa-width)); margin: 0 auto 70px; }
.theme-article-gallery-item { display: block; width: calc((100% - 20px)/2); margin-bottom: 20px; overflow: hidden; }
.theme-article-gallery-item img { width: 100%; height: auto; }

/* Myti pagination and neighbouring articles */
.paginate-table, .theme-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; padding: 30px var(--roa-pad); }
.paginate-table a, .paginate-table span, .theme-pagination > a, .theme-pagination > span { display: inline-grid; place-items: center; min-width: 42px; min-height: 42px; padding: 8px 12px; background: var(--roa-ink); color: white; }
.paginate-table .active, .paginate-table .current, .theme-pagination > span { background: var(--roa-button-red); }
.ias-trigger, .ias-spinner, .ias-noneleft { padding: 30px var(--roa-pad); text-align: center; }
.ias-trigger a { display: inline-block; padding: 15px 22px; background: var(--roa-ink); color: white; font-size: 13px; font-weight: 800; text-transform: uppercase; }
.flow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: min(calc(100% - 48px), var(--roa-width)); margin-inline: auto; padding-block: 40px; border-top: 1px solid var(--roa-line); }
.flow a { min-width: 0; padding: 18px; background: var(--roa-ink); color: white; font-size: clamp(1rem, 1.8vw, 1.5rem); overflow-wrap: break-word; }
.flow a:hover { background: var(--roa-button-red); }
.flow a.placeholder { visibility: hidden; pointer-events: none; }
.flow-item-prev { text-align: left; }
.flow-item-next { text-align: right; }
.flow.arrows-only a { display: grid; place-items: center; width: 58px; min-height: 58px; font-size: 0; }
.flow.arrows-only .flow-item-prev::after { content: '‹'; font-size: 30px; }
.flow.arrows-only .flow-item-next::after { content: '›'; font-size: 30px; }
.flow.arrows-only .flow-item-next { justify-self: end; }


/* Colorbox gallery controls */
#colorbox, #cboxOverlay, #cboxWrapper { position: absolute; top: 0; left: 0; z-index: 99999; overflow: hidden; }
#cboxOverlay { position: fixed; width: 100%; height: 100%; background: rgba(7,19,61,.94); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
#colorbox { outline: 0; }
#cboxWrapper { max-width: none; }
#cboxContent { position: relative; background: var(--roa-ink); }
#cboxLoadedContent { overflow: auto; background: var(--roa-ink); }
#cboxLoadedContent img { display: block; margin: auto; }
#cboxTitle, #cboxCurrent { position: absolute; z-index: 2; bottom: 18px; margin: 0; padding: 8px 12px; background: rgba(7,19,61,.82); color: white; font-size: .75rem; line-height: 1.2; }
#cboxTitle:empty { display: none !important; }
#cboxTitle { left: 18px; max-width: calc(100% - 190px); }
#cboxCurrent { display: none !important; }
#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow { appearance: none; position: absolute; z-index: 3; width: 52px; height: 52px; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 0; background: rgba(7,19,61,.84); color: white; font-size: 0; line-height: 1; cursor: pointer; transition: color .2s ease,background .2s ease,transform .2s ease; }
#cboxPrevious::before, #cboxNext::before, #cboxClose::before { font-family: "Font Awesome 7 Pro"; font-size: 1.35rem; font-weight: 300; }
#cboxPrevious { top: 50%; left: 18px; transform: translateY(-50%); }
#cboxPrevious::before { content: "\f177"; }
#cboxNext { top: 50%; right: 18px; transform: translateY(-50%); }
#cboxNext::before { content: "\f178"; }
#cboxClose { top: 18px; right: 18px; }
#cboxClose::before { content: "\f00d"; }
#cboxPrevious:hover, #cboxNext:hover, #cboxClose:hover { background: var(--roa-red); color: var(--roa-ink); }
#cboxPrevious:hover { transform: translate(-4px,-50%); }
#cboxNext:hover { transform: translate(4px,-50%); }
#cboxClose:hover { transform: rotate(4deg); }
#cboxPrevious:focus-visible, #cboxNext:focus-visible, #cboxClose:focus-visible { outline: 3px solid var(--roa-red); outline-offset: 3px; }
#cboxLoadingOverlay { position: absolute; inset: 0; background: var(--roa-ink); }
#cboxLoadingGraphic { position: absolute; top: 50%; left: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border: 2px solid rgba(255,255,255,.25); border-top-color: var(--roa-red); border-radius: 50%; animation: theme-cbox-spin .7s linear infinite; }
#cboxSlideshow { display: none !important; }
@keyframes theme-cbox-spin { to { transform: rotate(360deg); } }



/* CTA, partner logos, footer columns, social links and legal controls */
.theme-footer-cta { position: relative; display: flex; align-items: flex-end; isolation: isolate; min-height: clamp(400px, 44vw, 650px); overflow: hidden; background: var(--roa-blue) center/cover no-repeat; color: white; }
.theme-footer-cta.has-image::before { position: absolute; inset: 0; z-index: -1; content: ''; background: linear-gradient(90deg, rgba(7,19,61,.9), rgba(7,19,61,.2)); }
.theme-footer-cta-inner { padding-block: clamp(55px, 7vw, 100px); }
.theme-footer-cta-content { max-width: 760px; }
.theme-footer-cta-eyebrow { display: block; margin-bottom: 19px; font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.theme-footer-cta h2 { max-width: 13ch; margin: 0; font-size: clamp(40px, 5vw, 80px); font-weight: 900; line-height: .98; letter-spacing: -.045em; }
.theme-footer-cta p { max-width: 600px; margin: 26px 0 0; font-size: clamp(1rem, 1.3vw, 1.1875rem); }
.theme-footer-cta-link { margin-top: 34px; }
.theme-footer-cta-link:hover { background: white; color: var(--roa-ink); }
.theme-footer-partners { padding-block: 35px; border-top: 1px solid var(--roa-line); background: white; }
.theme-footer-partners-grid { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 32px 60px; }
.theme-footer-partner { display: grid; place-items: center; min-width: 110px; max-width: 180px; height: 48px; }
.theme-footer-partner a { display: grid; place-items: center; height: 100%; }
.theme-footer-partner img { width: auto; max-width: 100%; height: auto; max-height: 48px; object-fit: contain; }
.theme-site-footer { background: var(--roa-ink); color: white; }
.theme-site-footer-grid { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(150px, .75fr) minmax(180px, .9fr) minmax(220px, 1fr); gap: clamp(32px, 4vw, 70px); padding-block: clamp(60px, 8vw, 110px); }
.theme-footer-column { min-width: 0; }
.theme-footer-logo { display: block; width: min(155px, 100%); margin-bottom: 30px; }
.theme-footer-logo img { width: 100%; max-height: 70px; object-fit: contain; object-position: left center; }
.theme-footer-column-title { margin: 0 0 19px; font-size: 12px; font-weight: 700; line-height: 1.3; letter-spacing: .13em; text-transform: uppercase; }
.theme-footer-column-text { font-size: .9375rem; line-height: 1.65; }
.theme-footer-column-text > :first-child { margin-top: 0; }
.theme-footer-column-text > :last-child { margin-bottom: 0; }
.theme-footer-column-text p { margin: 0 0 16px; }
.theme-footer-column-text a { text-decoration: underline; text-underline-offset: 4px; }
.theme-footer-column-text .button, .theme-footer-column-text .btn { margin-top: 10px; background: var(--roa-button-red); text-decoration: none; }
.theme-footer-menu { margin-top: 24px; }
.theme-footer-menu ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.theme-footer-menu a { font-size: .9375rem; }
.theme-footer-menu a:hover, .theme-footer-menu a.active { text-decoration: underline; text-underline-offset: 4px; }
.theme-footer-socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 27px; }
.theme-footer-socials a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #ffffff55; }
.theme-footer-socials a:hover { background: var(--roa-button-red); }
.theme-footer-corporate { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px 56px; padding-block: 25px; border-top: 1px solid #ffffff55; }
.theme-footer-corporate .theme-footer-column-text { max-width: 950px; font-size: .8125rem; }
.theme-footer-corporate-right { text-align: right; }
.theme-footer-corporate-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 22px; margin-top: 10px; font-size: .8125rem; }
.theme-footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 70px; padding-block: 18px; }
.theme-footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.theme-footer-legal a, .theme-footer-legal button, .theme-footer-credit a { color: white; font: inherit; font-size: .75rem; }
.theme-footer-cookie-preferences { margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.theme-footer-credit { flex-shrink: 0; }
.theme-footer-credit i { margin-inline: 2px; color: var(--roa-red); }
.theme-footer-credit span { display: none; }
.theme-site-footer a:focus-visible, .theme-site-footer button:focus-visible { outline-color: white; }

/* Shared Myti form helpers */
.frm-item { margin-bottom: 20px; }
.frm-input input, .frm-select select, .frm-textarea textarea, .frm-file input { display: block; width: 100%; min-height: 52px; padding: 13px 16px; border: 1px solid var(--roa-line); border-radius: 0; background: white; color: var(--roa-ink); }
.frm-textarea textarea { min-height: 160px; resize: vertical; }
.frm-item label { display: block; margin-bottom: 7px; }
.frm-checkbox, .frm-radio { display: flex; align-items: flex-start; gap: 10px; }
.frm-checkbox input, .frm-radio input { flex-shrink: 0; margin-top: 6px; accent-color: var(--roa-blue); }
.frm-checkbox label, .frm-radio label { margin: 0; }
.frm-date { display: flex; gap: 10px; }
.frm-date select { min-width: 0; flex: 1; padding: 13px; border: 1px solid var(--roa-line); background: white; }
.frm-item .empty { border-color: var(--roa-button-red); }
.frm-input-info { margin-top: 7px; font-size: .875rem; }

/* Myti preview indicator */
#myti-preview-header { position: fixed; bottom: 0; left: 0; z-index: 1000; }
#myti-preview-header p { margin: 0; padding: 8px 16px; background: var(--roa-blue); color: white; font-family: var(--roa-font); font-weight: 700; }

/* Responsive layout */
@media (min-width: 901px) {
.theme-location-intro.has-location { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
.theme-location-intro-lead { grid-column: 1; grid-row: 1; }
.theme-location-intro-place { grid-column: 2; grid-row: 1 / 3; }
.theme-location-intro-body { grid-column: 1; grid-row: 2; }
.theme-intro-actions.has-intro.has-actions { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
.theme-intro-actions-lead { grid-column: 1; grid-row: 1; }
.theme-intro-actions-body { grid-column: 1; grid-row: 2; }
.theme-intro-actions-aside { grid-column: 1; grid-row: 1; }
.theme-intro-actions.has-intro.has-actions .theme-intro-actions-aside { grid-column: 2; grid-row: 1 / 3; padding: clamp(32px, 4vw, 64px) clamp(24px, 3vw, 48px); }
}
@media (max-width: 900px) {
.theme-article-intro { grid-template-columns: minmax(0, 1fr); }
.theme-article-intro > .theme-article-hero img { max-height: none; }
.theme-intro-actions-body { padding-top: 28px; }
.theme-content-section.has-image, .theme-accordion-section.has-image .theme-accordion-layout { grid-template-columns: minmax(0, 1fr); }
.theme-content-media { position: static; }
.theme-content-media img { height: clamp(240px, 60vw, 480px); max-height: none; }
.theme-content-section.has-image.image-left .theme-content-media, .theme-content-section.has-image.image-left .theme-content-body { grid-column: auto; grid-row: auto; }
.theme-content-section.has-image .theme-content-media { order: -1; }
.theme-accordion-section.has-image .theme-content-media { order: -1; }
.theme-quick-links.is-grid .theme-quick-links-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
.theme-featured-content { position: sticky; top: 130px; }
}
@media (min-width: 1920px) {
.theme-article-gallery.has-many-images .theme-article-gallery-item { width: calc((100% - 60px)/4); }
}
@media (max-width: 1080px) {
.theme-site-footer-grid { grid-template-columns: 1.2fr .8fr 1fr; }
.theme-footer-contact { grid-column: 1/-1; padding-top: 32px; border-top: 1px solid #ffffff55; }
}
@media (max-width: 700px) {
.theme-hierarchy-page [id] { scroll-margin-top: 98px; }
.theme-filter-card .theme-button { width: 100%; }
.theme-photo-track figure { flex-basis: 100%; }
.theme-partner-list thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.theme-partner-list tbody tr { display: grid; grid-template-columns: minmax(0, 1fr); padding: 24px var(--roa-pad); gap: 12px; }
.theme-partner-list td { display: block; width: auto; padding: 0; text-align: left; }
.theme-partner-list td:last-child { text-align: left; }
.theme-partner-list .theme-button { width: 100%; }
.theme-link-buttons .theme-button { width: 100%; font-size: 16px; }
.theme-quick-link { flex-basis: 100%; }
.theme-quick-link-copy { padding: 28px 22px; }
.theme-content-section, .theme-accordion-section, .theme-accordion-item { scroll-margin-top: 98px; }

.roa-home-hero { grid-template-columns: minmax(0, 1fr); }
.roa-home-menu-column { min-height: calc(100svh - var(--roa-top-height, 130px)); padding-top: clamp(90px, 24svh, 220px); border-right: 0; background: rgba(7,19,61,.4); }
.roa-home-menu a { padding: 12px 20px; font-size: clamp(30px, 7vw, 46px); }
.roa-home-open-column:has(> .roa-sr-only) { display: none; }
.roa-home-title { padding: 30px 20px; }

.roa-masthead { min-height: 82px; padding: 12px 20px; gap: 20px; }
.roa-logo img { height: 54px; }
.roa-menu nav { max-height: calc(100dvh - 82px); }
.roa-action { flex-wrap: wrap; }
.theme-page-intro-grid, .theme-featured, .theme-articles, .theme-section-heading { grid-template-columns: 1fr; }
.theme-page-intro-grid { gap: 30px; }
.theme-featured-media, .theme-featured-media img { min-height: 260px; }
.theme-article:nth-child(odd) { border-right: 0; }
.theme-article-lead { margin-left: 0; }
.theme-article-hero img { height: 390px; }
.theme-article-gallery-item { width: 100%; }
.flow { grid-template-columns: 1fr; gap: 12px; }
.flow a.placeholder { display: none; }
.flow.arrows-only { grid-template-columns: 1fr 1fr; }
.theme-site-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px 28px; }
.theme-footer-brand, .theme-footer-contact { grid-column: 1/-1; }
.theme-footer-bottom-inner { align-items: flex-start; flex-direction: column; }
.theme-footer-corporate-right { text-align: left; }
.theme-footer-corporate-links { justify-content: flex-start; }
#cboxPrevious, #cboxNext, #cboxClose { width: 44px; height: 44px; }
#cboxPrevious { left: 10px; }
#cboxNext { right: 10px; }
#cboxClose { top: 10px; right: 10px; }
#cboxTitle { left: 10px; bottom: 10px; max-width: calc(100% - 140px); }
}
@media (max-width: 480px) {
.theme-quick-links.is-grid .theme-quick-links-track { grid-template-columns: minmax(0, 1fr); }

.theme-site-footer-grid { grid-template-columns: 1fr; }
.theme-footer-brand, .theme-footer-contact { grid-column: auto; }
.theme-footer-column + .theme-footer-column { padding-top: 28px; border-top: 1px solid #ffffff55; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
.theme-quick-link { transition: none; }
.roa-home-video { display: none; }
.roa-home-menu a { transition: none; }

.theme-article-media img, .theme-text-link, .theme-button, .theme-back-link, #cboxPrevious, #cboxNext, #cboxClose { transition: none; }
.roa-ticker-track { animation: none; width: 100%; }
.roa-ticker-group { width: 100%; }
.roa-ticker-group + .roa-ticker-group, .roa-ticker-unit ~ .roa-ticker-unit { display: none; }
.roa-ticker-unit { width: 100%; flex-wrap: wrap; justify-content: center; padding: 14px 20px; gap: 10px 20px; white-space: normal; text-align: center; }
}


/* Cookie consent and media-consent placeholders (aa-ckbr v5.2) */
/* aa-ckbr v5.2 */
#aa-ckbr label,#aa-ckbr-cn{font-family:Arial,sans-serif;color:#000}#aa-ckbr,#aa-ckbr-pref,#aa-ckbr-pref input[type=checkbox],#aa-ckbr-pref-btn{display:none}#aa-ckbr.not-hidden{transition:background .2s linear;z-index:998}#aa-ckbr-scrollcontainer{position:relative}#aa-ckbr-cn{position:fixed;bottom:0;left:0;margin:40px;display:flex;flex-direction:column;gap:20px;background:#f5f5f5;font-weight:400;font-size:16px!important;line-height:1.6em;width:auto;max-width:780px;padding:40px;box-sizing:border-box;border-radius:18px;z-index:999}#aa-ckbr-cn:before{position:absolute;content:"";top:14px;right:14px;width:48px;height:48px;background-color:#f5f5f5;background-image:url('data:image/svg+xml,<svg fill="%23000000" height="800px" width="800px" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.049 299.049"><g><path d="M289.181,206.929c-13.5-12.186-18.511-31.366-12.453-48.699c1.453-4.159-0.94-8.686-5.203-9.82c-27.77-7.387-41.757-38.568-28.893-64.201c2.254-4.492-0.419-9.898-5.348-10.837c-26.521-5.069-42.914-32.288-34.734-58.251c1.284-4.074-1.059-8.414-5.178-9.57C184.243,1.867,170.626,0,156.893,0C74.445,0,7.368,67.076,7.368,149.524s67.076,149.524,149.524,149.524c57.835,0,109.142-33.056,133.998-83.129C292.4,212.879,291.701,209.204,289.181,206.929z M156.893,283.899c-74.095,0-134.374-60.281-134.374-134.374S82.799,15.15,156.893,15.15c9.897,0,19.726,1.078,29.311,3.21c-5.123,29.433,11.948,57.781,39.41,67.502c-9.727,29.867,5.251,62.735,34.745,74.752c-4.104,19.27,1.49,39.104,14.46,53.365C251.758,256.098,207.229,283.899,156.893,283.899z"/><path d="M76.388,154.997c-13.068,0-23.7,10.631-23.7,23.701c0,13.067,10.631,23.7,23.7,23.7c13.067,0,23.7-10.631,23.7-23.7C100.087,165.628,89.456,154.997,76.388,154.997z M76.388,187.247c-4.715,0-8.55-3.835-8.55-8.55s3.835-8.551,8.55-8.551c4.714,0,8.55,3.836,8.55,8.551S81.102,187.247,76.388,187.247z"/><path d="M173.224,90.655c0-14.9-12.121-27.021-27.02-27.021s-27.021,12.121-27.021,27.021c0,14.898,12.121,27.02,27.021,27.02C161.104,117.674,173.224,105.553,173.224,90.655z M134.334,90.655c0-6.545,5.325-11.871,11.871-11.871c6.546,0,11.87,5.325,11.87,11.871s-5.325,11.87-11.87,11.87S134.334,97.199,134.334,90.655z"/><path d="M169.638,187.247c-19.634,0-35.609,15.974-35.609,35.61c0,19.635,15.974,35.61,35.609,35.61c19.635,0,35.61-15.974,35.61-35.61C205.247,203.221,189.273,187.247,169.638,187.247z M169.638,243.315c-11.281,0-20.458-9.178-20.458-20.46s9.178-20.46,20.458-20.46c11.281,0,20.46,9.178,20.46,20.46S180.92,243.315,169.638,243.315z"/></g></svg>');background-size:contain}#aa-ckbr.has-bv{background:rgba(0,0,0,.7)}#aa-ckbr.act-pr:not(.has-bv){background:rgba(0,0,0,.4)}#aa-ckbr.act-pr,#aa-ckbr.has-bv{position:fixed;width:100vw;min-height:100%;top:0;left:0;overflow-y:scroll}#aa-ckbr.act-pr #aa-ckbr-scrollcontainer,#aa-ckbr.has-bv #aa-ckbr-scrollcontainer{position:absolute;display:flex;top:0;left:0;width:100%;min-height:100%;justify-content:center;align-items:center;padding:40px;overflow-y:auto}#aa-ckbr.act-pr #aa-ckbr-scrollcontainer{justify-content:flex-start;align-items:flex-end}#aa-ckbr.act-pr #aa-ckbr-cn,#aa-ckbr.has-bv #aa-ckbr-cn{position:relative;bottom:auto;left:auto;margin:auto}#aa-ckbr.has-sh:not(.has-bv) #aa-ckbr-cn{box-shadow:0 0 0 200vw rgba(0,0,0,.3)}#aa-ckbr:not(.has-bv).act-pr #aa-ckbr-cn{margin:0}#aa-ckbr-msg a{font-weight:700;text-decoration:underline;color:#000}#aa-ckbr-msg-ttl{font-size:160%;font-weight:700;margin-bottom:.4em;padding-right:40px}.aa-ckbr-pref-input{position:relative;padding:10px 10px 10px 32px}#aa-ckbr-pref input[type=checkbox]+label:before{position:absolute;content:"";left:0;top:9px;width:24px;height:24px;border-radius:9px}#aa-ckbr-pref input[type=checkbox]:not(:checked)+label:before{box-shadow:inset 0 0 0 2px #d3d3d3}#aa-ckbr-pref input[type=checkbox]:checked+label:before{background:#32cd32}#aa-ckbr-btn{margin:0;display:flex;flex-direction:row;gap:20px;text-align:center}#aa-ckbr-pref-btn{margin-top:10px;flex-wrap:wrap;gap:10px}#aa-ckbr-btn a,#aa-ckbr-pref-btn a,#aa-ckbr-pref-btn button{position:relative;flex:9 1 auto;padding:18px;min-width:100px;font-size:120%;font-weight:700;text-transform:none;color:#000;background:Orange;border-radius:48px;text-align:center;box-shadow:0 0;cursor:pointer}#aa-ckbr-pref-btn a,#aa-ckbr-pref-btn button.aa-ckbr-submit{background:#d3d3d3}#aa-ckbr-btn a:first-child{flex:0 1 auto;font-weight:400;color:#000;background:0;text-decoration:underline}#aa-ckbr label{font-weight:700;font-size:120%;text-transform:none}@media only screen and (max-width:680px){#aa-ckbr{padding:20px}#aa-ckbr-cn{font-size:12px!important;padding:30px}#aa-ckbr-cn>*{flex:1 100%}#aa-ckbr-pref input[type=checkbox]+label:before{top:7px}#aa-ckbr-btn{flex-direction:column;gap:10px}#aa-ckbr-btn a:first-child{padding:8px 18px}}@media only screen and (hover:hover){#aa-ckbr-cn a:hover,#aa-ckbr-cn button:hover,#aa-ckbr-pref input:hover+label{opacity:.7;cursor:pointer}}@media print{#aa-ckbr{display:none!important}}
html.no-js #aa-ckbr.needs-consent{display:flex}html.no-js #aa-ckbr.needs-consent #aa-ckbr-pref{display:block}html.no-js #aa-ckbr.needs-consent #aa-ckbr-pref-btn{display:flex}html.no-js #aa-ckbr.needs-consent [data-id="toggle-pref"],html.no-js #aa-ckbr.needs-consent [data-id="allow-all"]{display:none}html.no-js #aa-ckbr-pref-btn a[data-id="set-pref"]{display:none}html.no-js #aa-ckbr-pref-btn button.aa-ckbr-submit,html.no-js #aa-ckbr .aa-ckbr-allow-all-submit{display:inline-block}
html.js #aa-ckbr.not-hidden{display:flex}html.js #aa-ckbr.act-pr #aa-ckbr-pref-btn{display:flex}html.js #aa-ckbr #aa-ckbr-btn{display:flex}html.js #aa-ckbr-pref-btn button.aa-ckbr-submit,html.js #aa-ckbr .aa-ckbr-allow-all-submit{display:none}
.aa-embed-ph{display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px dashed #d3d3d3;border-radius:18px;padding:20px;box-sizing:border-box;color:#494949}.aa-embed-ph-inner{max-width:780px;text-align:center;font-family:Arial,sans-serif;font-weight:400;font-size:16px!important;line-height:1.6em}.aa-embed-ph .aa-ckbr-ttl{display:block;font-size:160%;font-weight:700;margin-bottom:.4em;padding-right:0}.aa-embed-ph .aa-ckbr-msg{margin:0 0 12px 0}.aa-embed-ph .aa-ckbr-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.aa-embed-ph [data-id=open-pref]{position:relative;flex:0 0 auto;padding:18px;min-width:160px;font-size:120%;font-weight:700;color:#494949;background:#dddddd;border-radius:48px;text-align:center;box-shadow:0 0;cursor:pointer}@media only screen and (max-width:680px){.aa-embed-ph{padding:10px}.aa-embed-ph-inner{font-size:11px!important}.aa-embed-ph .aa-ckbr-ttl{font-size:120%}.aa-embed-ph .aa-ckbr-msg{margin-bottom:6px}.aa-embed-ph [data-id=open-pref]{padding:12px 16px;min-width:120px}}@media only screen and (hover:hover){.aa-embed-ph button:hover{opacity:.7;cursor:pointer}}@media print{.aa-embed-ph{display:none!important}}


/* Line-up: shared selection links, full posters and flexible artist cards. */
.theme-choice-links { display: flex; flex-wrap: wrap; gap: 10px; padding: 24px var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-choice-link { display: inline-flex; align-items: center; padding: 14px 22px; background: var(--roa-ink); color: var(--roa-surface); font-weight: 800; text-decoration: none; }
.theme-choice-link.is-active, .theme-choice-link:hover { background: var(--roa-button-red); color: white; }
.theme-choice-link:focus-visible { outline: 3px solid var(--roa-blue); outline-offset: 3px; }
.theme-poster { margin: 0; border-bottom: 1px solid var(--roa-line); }
.theme-poster img { display: block; width: 100%; height: auto; }
.theme-poster figcaption { padding: 16px var(--roa-pad); }
.theme-artist-list.is-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); border-top: 1px solid var(--roa-line); }
.theme-artist-list.is-cards.has-single-item { grid-template-columns: minmax(0, min(100%, 780px)); }
.theme-artist-card { display: flex; flex-direction: column; min-width: 0; background: var(--roa-paper); color: var(--roa-ink); text-decoration: none; border-right: 1px solid var(--roa-line); border-bottom: 1px solid var(--roa-line); }
.theme-artist-card figure { margin: 0; aspect-ratio: 1; overflow: hidden; }
.theme-artist-card img { width: 100%; height: 100%; object-fit: cover; }
.theme-artist-card h3 { margin: 0; padding: 24px var(--roa-pad); font-size: clamp(26px, 3vw, 48px); line-height: 1; font-weight: 900; text-transform: uppercase; overflow-wrap: anywhere; }
.theme-artist-eyebrow { margin: -12px 0 24px; padding-inline: var(--roa-pad); font-size: clamp(14px, 1.2vw, 18px); font-weight: 500; line-height: 1.4; letter-spacing: .03em; text-transform: uppercase; }
.theme-artist-card:hover, .theme-artist-card:focus-visible { color: var(--roa-button-red); }
.theme-artist-card:focus-visible { outline: 3px solid var(--roa-blue); outline-offset: -3px; }
.theme-split-roster { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; border-bottom: 1px solid var(--roa-line); background: var(--roa-ink); }
.theme-split-roster-visual { position: sticky; top: 116px; min-height: min(680px, calc(100svh - 116px)); display: flex; align-items: start; overflow: hidden; isolation: isolate; background: var(--roa-ink); color: white; }
.theme-split-roster-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.theme-split-roster-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, var(--roa-ink) 0%, transparent 52%, var(--roa-ink) 100%); z-index: -1; }
.theme-split-roster-title { width: 100%; padding: clamp(28px, 4vw, 76px); }
.theme-split-roster-title h2 { margin: 0; font-size: clamp(44px, 5vw, 110px); line-height: .95; letter-spacing: -.05em; font-weight: 900; text-transform: uppercase; overflow-wrap: anywhere; }
.theme-split-roster-body { min-width: 0; min-height: min(680px, calc(100svh - 116px)); padding: clamp(28px, 4vw, 76px); border-left: 1px solid var(--roa-line); background: var(--roa-paper); align-self: stretch; }
.theme-split-roster.is-reversed .theme-split-roster-visual { grid-column: 2; grid-row: 1; }
.theme-split-roster.is-reversed .theme-split-roster-body { grid-column: 1; grid-row: 1; border-left: 0; border-right: 1px solid var(--roa-line); }
.theme-artist-list.is-poster-names { display: flex; flex-direction: column; gap: 20px; }
.theme-artist-list.is-poster-names .theme-artist-card { display: block; background: transparent; border: 0; }
.theme-artist-list.is-poster-names h3 { display: inline; padding: 0; font-size: clamp(32px, 4.3vw, 92px); line-height: 1.04; font-weight: 900; letter-spacing: -.045em; }
.theme-artist-list.is-poster-names .theme-artist-eyebrow { display: inline-block; max-width: 100%; margin: 0 0 0 12px; padding: 0; vertical-align: baseline; }
.theme-roster-empty { margin: 0; font-size: clamp(24px, 3vw, 48px); font-weight: 800; }
@media (max-width: 900px) {
.theme-split-roster { grid-template-columns: minmax(0, 1fr); }
.theme-split-roster-visual { position: relative; top: auto; min-height: clamp(260px, 65vw, 520px); }
.theme-split-roster-body { min-height: 0; border-left: 0; }
.theme-split-roster.is-reversed .theme-split-roster-visual, .theme-split-roster.is-reversed .theme-split-roster-body { grid-column: 1; grid-row: auto; border-right: 0; }
.theme-artist-list.is-poster-names h3 { font-size: clamp(32px, 7vw, 64px); }
}
@media (max-width: 700px) {
.theme-artist-list.is-cards { grid-template-columns: minmax(0, 1fr); }
}

/* Home enrichment reuses the existing artist and navigation card views. */
.theme-home-collection { border-bottom: 1px solid var(--roa-line); }
.theme-home-intro .theme-editorial-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; width: 100%; margin: 0; padding: clamp(40px, 6vw, 90px) var(--roa-pad); border-bottom: 1px solid var(--roa-line); }
.theme-home-intro h2 { margin: 0; font-size: clamp(36px, 5vw, 80px); line-height: 1; font-weight: 900; letter-spacing: -.05em; text-transform: uppercase; }
.theme-home-intro .theme-editorial-intro-copy > :first-child { margin-top: 0; }
@media (max-width: 900px) {
.theme-home-intro .theme-editorial-intro { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

/* Reusable static logo wall: preserve each logo's complete shape and colours. */
.theme-logo-wall-inner { width: 100%; }
.theme-logo-wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(33.333333%, 413px), 1fr)); border-top: 1px solid var(--roa-line); border-left: 1px solid var(--roa-line); background: var(--roa-surface); }
.theme-logo-wall-item { display: grid; place-items: center; min-width: 0; min-height: clamp(110px, 22vw, 300px); padding: clamp(10px, 2vw, 24px); border-right: 1px solid var(--roa-line); border-bottom: 1px solid var(--roa-line); background: var(--roa-surface); }
.theme-logo-wall-item img { display: block; width: 100%; max-width: 365px; height: clamp(72px, 16vw, 220px); object-fit: contain; }
.theme-logo-wall-item:focus-visible { outline: 3px solid var(--roa-blue); outline-offset: -3px; }
