/* Loaded after the theme presets. V1 inherits the established theme unchanged.
   V2/V3 change composition; the common section modifiers below have final say. */

.block-hero.version-v2 { justify-content:flex-start; text-align:left; }
.block-hero.version-v2 .hero-copy { width:100%; margin-inline:auto; max-width:var(--content-width); }
.block-hero.version-v2 .forum-button.secondary { color:inherit; }
.block-hero.version-v2 .hero-copy :is(h1,h2,.hero-subtitle) { margin-left:0; max-width:43rem; }
.block-hero.version-v2 .hero-actions { margin-left:0; justify-content:flex-start; }
.block-hero.version-v3 { min-height:0; padding-block:9rem 3rem; }
.block-hero.version-v3 .hero-copy { max-width:52rem; }
.block-hero.version-v3 .hero-copy :is(h1,h2) { font-size:clamp(2rem,4vw,3rem); }
.block-hero.version-v3 .hero-subtitle { margin-block:1rem; }

.stats-grid>div { min-width:0; overflow-wrap:anywhere; }
.block-stats.version-v2 .stats-grid>div { border:0; border-left:2px solid var(--forum-primary); padding:1rem 1.5rem; text-align:left; }
.block-stats.version-v3 .stats-grid>div { border:0; padding:1.5rem; background:var(--forum-surface); color:var(--forum-text); border-radius:var(--media-radius); }
.block-stats.version-v3 .stats-grid strong { font-size:clamp(2.5rem,5vw,4rem); color:var(--forum-primary); }

.heading-beside .section-heading { text-align:left; margin:0 0 1.5rem; }
.heading-beside .section-heading h2 { font-size:clamp(1.5rem,2.3vw,2rem); font-weight:600; }
.heading-beside .text-image { align-items:start; }
:is(.block-text,.block-venue).version-v2 .text-image { grid-template-columns:minmax(0,1fr) minmax(12.5rem,22.5rem); }
:is(.block-text,.block-venue).version-v2 .text-image>img { order:2; }
:is(.block-text,.block-venue).version-v3 .text-image { grid-template-columns:1fr; max-width:58rem; margin-inline:auto; }
:is(.block-text,.block-venue).version-v3 .text-image>img { width:100%; max-height:30rem; object-fit:cover; }
/* Text without media must never reserve an empty image column. */
.forum-section.media-empty .text-image { grid-template-columns:minmax(0,1fr); max-width:60rem; margin-inline:auto; }
.forum-section.media-empty.version-v2:not(.heading-beside)>.section-container { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:var(--section-gap,clamp(2rem,5vw,5rem)); align-items:start; }
.forum-section:where(.media-empty.version-v2:not(.heading-beside)) .section-heading { margin:0; text-align:left; }
.forum-section.media-empty.version-v2 .section-heading h2 { font-size:clamp(2rem,3vw,3rem); text-transform:none; text-wrap:balance; }
.forum-section.media-empty.version-v2 .rich-text>p:first-child { margin-top:0; }
.forum-section.media-empty.version-v2 .carousel-shell { grid-column:1/-1; }

.block-topics.version-v2 .topics-grid { grid-template-columns:1fr; }
.block-topics.version-v2 .topics-grid article { display:grid; grid-template-columns:auto minmax(0,1fr); text-align:left; gap:.5rem 1.25rem; padding:1.5rem; }
.block-topics.version-v2 .topics-grid :is(img,svg) { grid-row:1/3; width:4rem; height:4rem; }
.block-topics.version-v2 .topics-grid :is(h3,p) { grid-column:2; margin:0; }
.block-topics.version-v3 .topics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.block-topics { --topic-surface:var(--forum-surface); --topic-text:var(--forum-text); --topic-muted:var(--forum-muted); }
.block-topics.version-v3 .topics-grid article { padding:clamp(1.25rem,2vw,2rem); text-align:left; border:1px solid color-mix(in srgb,var(--topic-text) 9%,transparent); background:var(--topic-surface); color:var(--topic-text); border-radius:var(--media-radius); min-width:0; }
.block-topics.version-v3 .topics-grid p { color:var(--topic-muted); }
.block-topics:where(.tone-dark):not([class*="section-background-"]),.block-topics.section-background-dark,.block-topics.section-background-image { --topic-surface:color-mix(in srgb,var(--forum-hero) 88%,var(--forum-hero_text)); --topic-text:var(--forum-hero_text); --topic-muted:color-mix(in srgb,var(--forum-hero_text) 82%,var(--forum-hero)); }
.block-topics.section-text-custom { --topic-text:var(--section-text); --topic-muted:var(--section-text); }
.block-topics.version-v3 .topics-grid :is(img,svg) { width:5rem; height:5rem; }

.block-program.version-v2 .program-list { display:grid; grid-template-columns:1fr; max-width:none; }
.block-program.version-v2 .program-list article { border:0; border-bottom:1px solid var(--forum-muted); border-radius:0; padding:1.5rem 0; box-shadow:none; }
.block-program.version-v2 .program-number { display:none; }
.block-program.version-v3 .program-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; gap:1.5rem; }
.block-program.version-v3 .program-list article { padding:2rem; border:0; border-radius:var(--media-radius); background:var(--forum-surface); }
.block-program.version-v3 .program-number { display:block; color:var(--forum-primary); font-size:2rem; font-weight:700; }

.block-speakers:is(.version-v2,.version-v3) .speaker-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.block-speakers:is(.version-v2,.version-v3) .speaker-grid article:where(:not([hidden])) { display:flex; flex-direction:column; align-items:stretch; gap:.75rem; text-align:left; padding:0 0 1.5rem; border:1px solid color-mix(in srgb,var(--forum-muted) 20%,transparent); border-radius:var(--media-radius); background:var(--card-surface,var(--forum-background)); }
.block-speakers:is(.version-v2,.version-v3) .speaker-grid article>img { width:100%; height:auto; aspect-ratio:1; border-radius:var(--media-radius) var(--media-radius) 0 0; object-fit:cover; object-position:top; margin:0; }
.block-speakers:is(.version-v2,.version-v3) .speaker-grid article> :is(h3,p,.speaker-company,a) { margin:0; padding-inline:1rem; }
.block-speakers.version-v3 .speaker-grid article:where(:not([hidden])) { align-items:center; text-align:center; border:0; background:var(--card-surface,transparent); box-shadow:none; padding:1.5rem .5rem; }
.block-speakers.version-v3 .speaker-grid article>img { width:9rem; height:9rem; border-radius:50%; }
.block-speakers:is(.version-v2,.version-v3) .speaker-company p { padding:0; }

.block-partners.version-v2 .partner-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; }
.block-partners.version-v2 .partner-grid article { border:0; box-shadow:none; background:transparent; }
.block-partners.version-v2 .partner-grid img { height:5rem; object-fit:contain; }
.block-partners.version-v3 .partner-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.block-partners.version-v3 .partner-grid article { border:1px solid color-mix(in srgb,var(--forum-muted) 25%,transparent); padding:2rem 1.5rem; border-radius:var(--media-radius); background:var(--forum-background); }
.block-partners.version-v3 .partner-grid img { height:6rem; }

.block-tickets.version-v2 .ticket-grid { grid-template-columns:1fr; }
.block-tickets.version-v2 .ticket-grid article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem 2rem; align-items:center; border:0; border-bottom:1px solid var(--forum-muted); border-radius:0; box-shadow:none; }
.block-tickets.version-v2 .ticket-grid :is(h3,p) { grid-column:1; margin:0; }
.block-tickets.version-v2 .ticket-grid :is(strong,a) { grid-column:2; }
.block-tickets.version-v3 .ticket-grid article { border:0; border-radius:var(--media-radius); background:var(--forum-surface); padding:2.5rem 2rem; }
.block-tickets.version-v3 .ticket-grid strong { font-size:2.5rem; color:var(--forum-primary); }

.block-gallery.version-v2 .gallery-grid img { aspect-ratio:16/9; height:auto; object-fit:cover; }
.block-gallery.version-v3 .gallery-grid img { aspect-ratio:1; height:auto; object-fit:cover; }
.block-gallery.version-v3 .gallery-grid:not(.carousel-track) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.block-scheme.version-v2 :is(.scheme-image,.gallery-grid) { padding:1.5rem; border:1px solid var(--forum-muted); border-radius:var(--media-radius); background:var(--forum-background); }
.block-scheme.version-v3 :is(.scheme-image,.carousel-shell) { max-width:48rem; margin-inline:auto; }
.block-scheme.version-v3 .scheme-image { display:block; }

.block-faq.version-v2 .faq-list { max-width:none; }
.block-faq.version-v2 .faq-list details { border:0; border-bottom:1px solid var(--forum-muted); border-radius:0; background:transparent; padding-inline:0; }
.block-faq.version-v3 .faq-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 2rem; align-items:start; max-width:none; }
.block-faq.version-v3 .faq-list details { margin:0; padding:1rem 1.5rem; border-radius:var(--media-radius); }

/* Contact and review V2/V3 reuse the existing, proven card layouts. */
.block-contacts.version-v2 .contact-grid article { border-radius:var(--media-radius); }
.block-contacts.version-v3 .contact-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.block-testimonials.version-v3 .review-track>article { border-radius:var(--media-radius); }

.block-cta.version-v2 .section-container { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.block-cta.version-v2 .section-heading { text-align:left; margin:0; }
.block-cta.version-v2 .forum-button { flex:none; }
.block-cta.version-v3 .section-container { max-width:54rem; text-align:center; }
.block-cta.version-v3 .section-heading h2 { font-size:clamp(2rem,4vw,3rem); }
.block-cta.version-v3 .forum-button { padding:1.25rem 2rem; }

.block-archive.version-v2 .archive-grid { grid-template-columns:1fr; }
.block-archive.version-v2 .archive-link:where(:not([hidden])) { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.5rem 1.5rem; text-align:left; padding:1.5rem 0; border:0; border-bottom:1px solid var(--forum-muted); border-radius:0; box-shadow:none; }
.block-archive.version-v2 .archive-link> :is(img,svg) { grid-row:1/3; max-width:7rem; }
.block-archive.version-v2 .archive-link :is(h3,p) { grid-column:2; margin:0; }
.block-archive.version-v3 .archive-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.block-archive.version-v3 .archive-link { padding:0 0 1.5rem; overflow:hidden; border:1px solid var(--forum-muted); border-radius:var(--media-radius); }
.block-archive.version-v3 .archive-link>img { width:100%; max-height:none; height:12rem; object-fit:cover; }
.block-archive.version-v3 .archive-link :is(h3,p) { margin:1rem 1.5rem; }
.block-actions.version-v2 .hero-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); max-width:none; }
.block-actions.version-v2 .hero-actions .forum-button { width:100%; }
.block-actions.version-v3 .hero-actions { display:flex; flex-direction:column; max-width:30rem; margin-inline:auto; }
.block-actions.version-v3 .hero-actions .forum-button { width:100%; }

.block-inquiry.version-v2 .forum-inquiry { max-width:28rem; margin-inline:auto; gap:.75rem; }
.block-inquiry.version-v3 .forum-inquiry { padding:2rem; border-radius:var(--media-radius); background:var(--forum-surface); color:var(--forum-text); }
.block-html.version-v2 .custom-html { max-width:44rem; margin-inline:auto; }
.block-html.version-v3 .custom-html { padding:2rem; border-left:3px solid var(--forum-primary); border-radius:var(--media-radius); background:var(--forum-surface); color:var(--forum-text); }

/* Photo-led compositions retain their own dimensions while media loads. */
.block-hero.version-v2 .hero-image { opacity:.65; object-position:72% center; mask-image:linear-gradient(90deg,transparent 25%,#000 100%); }
.block-hero.version-v2 .hero-subtitle { max-width:42rem; }
.block-text.version-v1.heading-beside .text-image { grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(2rem,4vw,4rem); align-items:start; }
.block-text.version-v1.heading-beside .text-image>img { display:block; width:100%; height:auto; max-height:none; aspect-ratio:11/10; object-fit:cover; }
.block-topics.version-v3 .topics-grid article:where(:has(>.forum-icon,>img)) { display:flex; flex-direction:column; align-items:center; gap:1.25rem; text-align:center; padding:1.75rem 1.25rem; }
.block-topics.version-v3 .topics-grid article> :is(.forum-icon,img) { width:4.75rem; height:4.75rem; padding:.75rem; margin:0; border-radius:1rem; background:color-mix(in srgb,var(--forum-primary) 12%,white); color:var(--forum-secondary); }
.block-topics.version-v3 .topics-grid h3 { font-size:1.0625rem; line-height:1.5; margin:0 0 .75rem; }
.block-topics.version-v3 .topics-grid article:where(:has(>.forum-icon,>img)) h3 { margin:0; }
.topics-grid p:empty { display:none; }
.block-speakers.version-v2 .speaker-grid article:where(:not([hidden])) { gap:.875rem; padding-bottom:1.5rem; overflow:hidden; }
.block-speakers.version-v2 .speaker-grid article> :is(h3,p,.speaker-company,a) { padding-inline:1.25rem; }
.block-speakers.version-v2 .speaker-grid h3 { padding-top:.25rem; font-size:1.125rem; line-height:1.35; }
.block-speakers.version-v2 .speaker-grid :where(article)>p { color:var(--forum-muted); font-size:1rem; line-height:1.5; }
.block-speakers.version-v2 .speaker-grid article>img { filter:none; }
.block-speakers.version-v2 .speaker-company { color:var(--forum-text); font-size:.875rem; line-height:1.5; }
.block-speakers.version-v2 .speaker-company p { color:inherit; line-height:inherit; }
.block-tickets.version-v3 .ticket-grid { counter-reset:ticket; align-items:stretch; }
.block-tickets.version-v3 .ticket-grid article { counter-increment:ticket; padding:2rem; border:1px solid color-mix(in srgb,var(--forum-muted) 16%,transparent); gap:1rem; }
.block-tickets.version-v3 .ticket-grid article::before { content:counter(ticket,decimal-leading-zero); display:grid; place-items:center; width:3rem; height:3rem; border-radius:1rem; background:color-mix(in srgb,var(--forum-primary) 16%,white); color:var(--forum-secondary); font-weight:700; }
.block-tickets.version-v3 .ticket-grid :is(h3,p) { margin:0; }
.block-tickets.version-v3 .ticket-grid h3 { font-size:1.5rem; }
.block-tickets.version-v3 .ticket-grid p { font-size:1rem; line-height:1.6; }
.block-tickets.version-v3 .ticket-grid .forum-button { width:100%; margin-top:.5rem; padding:.875rem 1rem; background:var(--forum-secondary); color:var(--forum-hero_text); }
.block-venue.version-v2:where(:not(.media-empty)) .text-image { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:center; gap:2.5rem; }
.block-venue.version-v2 .text-image>img { display:block; width:100%; max-height:none; aspect-ratio:4/3; object-fit:cover; }
.block-venue.version-v2 .carousel-shell { margin-top:1.5rem; }
.block-venue.version-v2 .gallery-grid:not(.carousel-track) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.block-venue.version-v2 .gallery-grid img { aspect-ratio:16/10; height:auto; }
.block-testimonials.version-v1 .review-track>article { display:flex; flex-direction:column; padding:1.75rem; }
.block-testimonials.version-v1 .review-track h3 { margin:1rem 0 .75rem; }
.block-testimonials.version-v1 .review-track p { margin:0 0 1rem; line-height:1.6; }
.block-testimonials.version-v1 .review-track>article>a { margin-top:auto; text-underline-offset:.2em; color:var(--forum-secondary); }
.block-archive.version-v3 .archive-link { border:1px solid color-mix(in srgb,var(--forum-muted) 16%,transparent); text-align:center; padding:1.25rem; }
.block-archive.version-v3 .archive-link>img { display:block; height:auto; max-width:10rem; aspect-ratio:1; object-fit:contain; margin:0 auto 1.25rem; }
.block-archive.version-v3 .archive-link h3 { font-size:1rem; line-height:1.5; margin:0; }
.display-mosaic .gallery-grid.carousel-track { display:grid; grid-template-columns:none; grid-template-rows:repeat(2,11rem); grid-auto-flow:column; grid-auto-columns:17rem; gap:1rem; scroll-snap-type:none; scroll-behavior:auto; overflow-anchor:none; align-items:stretch; }
.display-mosaic .gallery-grid.carousel-track .gallery-open { width:100%; height:100%; min-width:0; overflow:hidden; }
.display-mosaic .gallery-grid.carousel-track img { display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
.display-mosaic .carousel-shell { overflow-anchor:none; }
@media(max-width:62rem) {
 .block-text.version-v1.heading-beside .text-image { grid-template-columns:1fr; gap:2rem; }
 .block-text.version-v1.heading-beside .text-image>img { max-width:20rem; margin-inline:auto; }
}
@media(max-width:43.75rem) {
 .block-text.version-v1.heading-beside .text-image,.block-venue.version-v2 .text-image { grid-template-columns:1fr; gap:1.5rem; }
 .block-text.version-v1.heading-beside .text-image>img { max-width:20rem; margin-inline:auto; }
 .block-venue.version-v2 .text-image>img { order:0; }
 .block-venue.version-v2 .gallery-grid:not(.carousel-track) { gap:.625rem; }
 .block-tickets.version-v3 .ticket-grid article { padding:1.5rem; }
 .display-mosaic .gallery-grid.carousel-track { grid-template-rows:repeat(2,8rem); grid-auto-columns:12rem; gap:.75rem; }
 .block-hero.version-v2 .hero-image { opacity:.3; mask-image:linear-gradient(180deg,transparent,#000); }
}

/* Element presentation is independent of the section version. */
.block-stats[class*="items-"] .stats-grid>div { border:0; background:none; color:inherit; padding:1rem 1.5rem; border-radius:0; }
.block-stats.items-dividers .stats-grid>div+div { border-left:2px solid var(--forum-primary); }
.block-stats.items-cards .stats-grid>div { background:var(--forum-surface); color:var(--forum-text); border-radius:var(--media-radius); }
.block-stats.items-outline .stats-grid>div { border:1px solid color-mix(in srgb,var(--forum-primary) 45%,transparent); border-radius:var(--media-radius); }
.block-stats.items-plain .stats-grid>div { padding:0; }

/* Explicit item surfaces; the section version still owns layout and media geometry. */
.items-custom { --item-border:0; --item-surface:transparent; --item-radius:0; --item-padding:1.25rem; --item-ink:inherit; }
.items-custom.items-cards { --item-surface:var(--forum-surface); --item-radius:var(--media-radius); --item-ink:var(--forum-text); }
.items-custom.items-outline { --item-border:1px solid color-mix(in srgb,currentColor 25%,transparent); --item-radius:var(--media-radius); }
.items-custom.items-accent { --item-top:3px solid var(--forum-primary); --item-surface:var(--forum-surface); --item-radius:var(--media-radius); --item-ink:var(--forum-text); }
.items-custom.items-dividers { --item-bottom:1px solid color-mix(in srgb,currentColor 25%,transparent); --item-padding:1.25rem 0; }
.items-custom.items-plain { --item-padding:0; }
.forum-section.items-custom :is(.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.contact-grid,.review-track,.archive-grid,.faq-list)>:is(article,a,details) {
 background:var(--item-surface); border:var(--item-border); border-top:var(--item-top,var(--item-border)); border-bottom:var(--item-bottom,var(--item-border));
 border-radius:var(--item-radius); box-shadow:none; padding:var(--item-padding); color:var(--item-ink);
}
.forum-section.items-custom :is(.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.contact-grid,.review-track,.archive-grid,.faq-list) :is(h3,p,blockquote,summary) { color:inherit; }
.forum-section.items-custom .speaker-company { color:inherit; }
/* Logos retain their white image canvas, without a second decorative frame. */
.block-partners.items-custom .partner-grid .partner-logo { border:0; border-radius:0; padding:.75rem; min-height:7rem; box-shadow:none; }

/* Common section modifiers. Their selectors are independent of block type. */
.section-card-background-white { --card-surface:#fff; }
.section-card-background-soft { --card-surface:var(--forum-surface); }
.section-card-background-transparent { --card-surface:transparent; }
.forum-section[class*="section-card-background-"] :is(.topics-grid,.speaker-grid,.ticket-grid,.review-track,.contact-grid,.partner-grid,.program-list)>article,
.forum-section[class*="section-card-background-"] :is(.archive-link,.stats-grid>div,.faq-list details) { background:var(--card-surface); }
.forum-section:is(.section-card-background-white,.section-card-background-soft) :is(.stats-grid>div,.faq-list details) { padding:1.5rem; border-radius:var(--media-radius); }
.forum-section:is(.section-card-background-white,.section-card-background-soft) :is(.topics-grid,.speaker-grid,.ticket-grid,.review-track,.contact-grid,.partner-grid,.program-list)>article,
.forum-section:is(.section-card-background-white,.section-card-background-soft) :is(.archive-link,.stats-grid>div,.faq-list details) { color:var(--forum-text); }
.forum-section:is(.section-card-background-white,.section-card-background-soft) :is(.topics-grid,.speaker-grid,.ticket-grid,.review-track,.contact-grid,.partner-grid,.program-list)>article>p { color:var(--forum-muted); }
.forum-section.section-pattern-grid { isolation:isolate; }
.forum-section.section-pattern-grid::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(30deg,transparent 49.5%,color-mix(in srgb,var(--forum-primary) 9%,transparent) 50%,transparent 50.5%),linear-gradient(150deg,transparent 49.5%,color-mix(in srgb,var(--forum-primary) 9%,transparent) 50%,transparent 50.5%),linear-gradient(90deg,transparent 49.5%,color-mix(in srgb,var(--forum-primary) 7%,transparent) 50%,transparent 50.5%); background-size:4.5rem 7.75rem; mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent); }
.forum-section.section-pattern-none::after { display:none; }
.forum-socials img { display:block; width:1.75rem; height:1.75rem; object-fit:contain; }
.forum-socials a { display:inline-flex; align-items:center; justify-content:center; flex:none; min-width:2rem; min-height:2.5rem; }
.forum-section.section-background-light { background:var(--forum-background); color:var(--forum-text); }
.forum-section.section-background-soft { background:var(--forum-surface); color:var(--forum-text); }
.forum-section.section-background-dark { background:var(--forum-hero); color:var(--forum-hero_text); }
.forum-section.section-background-primary { background:var(--forum-primary); color:var(--forum-button_text); }
.forum-section.section-background-secondary { background:var(--forum-secondary); color:var(--forum-button_text); }
.forum-section.section-background-transparent { background:transparent; color:var(--forum-text); }
.forum-section.section-background-custom { background:var(--section-background,var(--forum-background)); color:var(--forum-text); }
.forum-section.section-background-image { background:linear-gradient(#0009,#0009),var(--section-image,none) center/cover; color:var(--forum-hero_text); }
.forum-section[class*="section-background-"] :is(.section-heading,.hero-copy) { color:inherit; }
.forum-section[class*="section-background-"] :is(.section-heading h2,.section-heading p,.hero-copy h1,.hero-copy h2,.hero-subtitle,.hero-date) { color:inherit; background:none; -webkit-text-fill-color:currentColor; }
.forum-section[class*="section-background-"]> :is(.hero-image,.hero-video,.video-pause) { display:none; }
.forum-section.section-text-custom { color:var(--section-text); }
.forum-section.section-text-custom :is(.section-heading,.section-heading h2,.section-heading p,.hero-copy,.hero-copy h1,.hero-copy h2,.hero-subtitle,.hero-date,.rich-text) { color:var(--section-text); background-image:none; -webkit-text-fill-color:currentColor; }
.section-width-narrow { --section-width:48rem; }
.section-width-wide { --section-width:var(--content-width,74rem); }
.section-width-full { --section-width:none; }
.forum-section[class*="section-width-"]> :is(.section-container,.hero-copy) { width:100%; max-width:var(--section-width); }
.forum-section[class*="section-width-"] :is(.text-image,.custom-html,.program-list,.faq-list,.forum-inquiry,.scheme-image,.carousel-shell,.hero-actions) { max-width:var(--section-width); }
.section-align-left { --section-align:left; --section-justify:flex-start; }
.section-align-center { --section-align:center; --section-justify:center; }
.section-align-right { --section-align:right; --section-justify:flex-end; }
.forum-section[class*="section-align-"] :is(.section-heading,.hero-copy,.custom-html,.rich-text) { text-align:var(--section-align); }
.forum-section[class*="section-align-"] .hero-actions { justify-content:var(--section-justify); }
.forum-section[class*="section-align-"] .section-mark { margin-left:0; margin-right:0; }
.forum-section.section-align-center .section-mark { margin-inline:auto; }
.forum-section.section-align-right .section-mark { margin-left:auto; }
.section-padding-top-none { --section-top:0rem; }
.section-padding-top-sm { --section-top:1.5rem; }
.section-padding-top-md { --section-top:3rem; }
.section-padding-top-lg { --section-top:clamp(3rem,6vw,5rem); }
.section-padding-top-xl { --section-top:clamp(4rem,8vw,7rem); }
.forum-section[class*="section-padding-top-"] { padding-top:var(--section-top); }
.section-padding-bottom-none { --section-bottom:0rem; }
.section-padding-bottom-sm { --section-bottom:1.5rem; }
.section-padding-bottom-md { --section-bottom:3rem; }
.section-padding-bottom-lg { --section-bottom:clamp(3rem,6vw,5rem); }
.section-padding-bottom-xl { --section-bottom:clamp(4rem,8vw,7rem); }
.forum-section[class*="section-padding-bottom-"] { padding-bottom:var(--section-bottom); }
.section-gap-none { --section-gap:0rem; }
.section-gap-sm { --section-gap:.75rem; }
.section-gap-md { --section-gap:1.5rem; }
.section-gap-lg { --section-gap:2.5rem; }
.forum-section[class*="section-gap-"] :is(.stats-grid,.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.gallery-grid,.contact-grid,.archive-grid,.review-track,.text-image,.hero-actions,.faq-list) { gap:var(--section-gap); }
.forum-section[class*="section-gap-"] :is(.program-list,.faq-list) { display:grid; }
.section-columns-1 { --columns:1; }
.section-columns-2 { --columns:2; }
.section-columns-3 { --columns:3; }
.section-columns-4 { --columns:4; }
.forum-section[class*="section-columns-"] :is(.stats-grid,.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.gallery-grid:not(.carousel-track),.contact-grid,.archive-grid,.review-track:not(.carousel-track),.faq-list,.hero-actions) { display:grid; grid-template-columns:repeat(var(--columns),minmax(0,1fr)); }
.forum-section[class*="media-radius-"] :is(.topics-grid article,.program-list article,.speaker-grid article,.partner-grid article,.partner-grid article>a,.ticket-grid article,.contact-grid article,.archive-link,.review-track>article,.faq-list details,.stats-grid>div,.forum-button) { border-radius:var(--media-radius); }

@media(max-width:43.75rem) {
    .block-hero.version-v3 { padding-top:8rem; }
    .block-hero.version-v2 .hero-actions { grid-template-columns:1fr; }
    :is(.block-text,.block-venue).version-v2 .text-image { grid-template-columns:1fr; }
    :is(.block-topics,.block-program,.block-speakers,.block-partners,.block-contacts,.block-archive).version-v3 :is(.topics-grid,.program-list,.speaker-grid,.partner-grid,.contact-grid,.archive-grid),
    .block-speakers.version-v2 .speaker-grid,.block-partners.version-v2 .partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .block-faq.version-v3 .faq-list { grid-template-columns:1fr; }
    .block-tickets.version-v2 .ticket-grid article { grid-template-columns:1fr; }
    .block-tickets.version-v2 .ticket-grid :is(strong,a) { grid-column:1; }
    .block-cta.version-v2 .section-container { flex-direction:column; align-items:stretch; }
    .forum-section[class*="section-columns-"] :is(.stats-grid,.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.gallery-grid:not(.carousel-track),.contact-grid,.archive-grid,.review-track:not(.carousel-track),.faq-list,.hero-actions) { grid-template-columns:repeat(min(var(--columns),2),minmax(0,1fr)); }
    .forum-section[class*="section-padding-top-"] { padding-top:var(--section-top); }
}
@media(max-width:64rem) {
    .forum-section.media-empty.version-v2:not(.heading-beside)>.section-container { grid-template-columns:minmax(0,1fr); gap:var(--section-gap,1.75rem); }
    .recon-forum .forum-section.section-columns-4 .topics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:28.125rem) {
    :is(.block-topics,.block-program,.block-speakers,.block-contacts,.block-archive):is(.version-v2,.version-v3) :is(.topics-grid,.program-list,.speaker-grid,.contact-grid,.archive-grid),
    .forum-section[class*="section-columns-"] :is(.topics-grid,.program-list,.speaker-grid,.ticket-grid,.contact-grid,.archive-grid,.review-track:not(.carousel-track),.faq-list,.hero-actions) { grid-template-columns:1fr; }
    .block-inquiry.version-v3 .forum-inquiry,.block-html.version-v3 .custom-html { padding:1.25rem; }
}

/* Consistent surfaces and controls shared by every forum palette. */
.block-partners .partner-grid article { background:transparent; padding:0; border:0; box-shadow:none; color:inherit; }
.block-partners .partner-grid article>.partner-logo { display:flex; align-items:center; justify-content:center; width:100%; min-height:9rem; padding:1.75rem; border:1px solid #e5e9ec; border-radius:max(.75rem,var(--media-radius,1rem)); background:#fff; color:#142e3b; text-decoration:none; }
.block-partners .partner-grid .partner-logo img { display:block; width:100%; height:5rem; object-fit:contain; }
.block-partners .partner-grid p { color:inherit; }
.forum-section .carousel-controls .forum-button { width:3rem; height:3rem; min-height:3rem; padding:0; border-radius:.875rem; border:1px solid color-mix(in srgb,var(--forum-text) 12%,transparent); background:color-mix(in srgb,white 88%,var(--forum-primary)); color:var(--forum-text); box-shadow:inset 0 1px 0 #ffffffb3,0 .2rem .65rem #142e3b08; }
.forum-section :is(.archive-tabs,.gallery-tabs) { display:flex; width:fit-content; max-width:100%; flex-wrap:wrap; justify-content:center; gap:.25rem; padding:.375rem; margin:0 auto 2rem; background:var(--forum-surface); border:1px solid color-mix(in srgb,var(--forum-muted) 22%,transparent); border-radius:.75rem; }
.forum-section :is(.archive-tabs,.gallery-tabs) button { border:0; border-radius:.5rem; padding:.5rem .85rem; min-height:2.75rem; background:transparent; color:var(--forum-muted); font-weight:500; transition:background .2s,color .2s,box-shadow .2s; }
.forum-section :is(.archive-tabs,.gallery-tabs) [aria-pressed=true] { background:linear-gradient(135deg,color-mix(in srgb,var(--forum-hero) 75%,var(--forum-primary)),var(--forum-hero)); color:var(--forum-hero_text); box-shadow:0 .35rem .8rem #142e3b22; }
.faq-list details { overflow:clip; }
.faq-list summary span { transition:transform .28s ease; }
.faq-answer { display:flow-root; }
.block-testimonials .review-track .review-summary { margin:1.25rem 0; color:var(--forum-text); font-size:1rem; }
@media(prefers-reduced-motion:reduce) { .faq-list summary span { transition:none; } }

/* A short venue address belongs above its gallery, not in an empty half-page. */
.forum-section:where(.venue-brief) .section-heading { margin-bottom:1rem; }
.forum-section:where(.venue-brief) .text-image { display:block; max-width:none; }
.forum-section:where(.venue-brief) .rich-text { text-align:center; margin:0 0 2rem; }
.forum-section:where(.venue-brief) .rich-text p { margin:0; }
.venue-brief:has(.gallery-grid>:only-child) { --venue-count:1; }
.venue-brief:has(.gallery-grid>:nth-child(2):last-child) { --venue-count:2; }
.forum-section.venue-brief .gallery-grid:not(.carousel-track) { grid-template-columns:repeat(min(var(--columns,3),var(--venue-count,3)),minmax(0,1fr)); }
.forum-section.venue-brief .gallery-grid img { width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; }

/* Review cards use the selected gap when calculating the number visible in a row. */
.block-testimonials .review-track { --review-columns:var(--columns,3); --review-gap:var(--section-gap,1.5rem); gap:var(--review-gap); }
.block-testimonials .review-track.carousel-track>article { flex-basis:calc((100% - (var(--review-columns) - 1)*var(--review-gap))/var(--review-columns)); }
.block-testimonials .review-track:not(.carousel-track) { grid-template-columns:repeat(var(--review-columns),minmax(0,1fr)); }
.review-track>article { min-width:0; overflow-wrap:anywhere; }
.review-track>article:has(.review-full[open]) .review-excerpt { display:none; }
.review-full { margin-top:auto; }
.review-full summary { cursor:pointer; color:var(--forum-secondary); font-size:1rem; font-weight:600; padding:.5rem 0; }
.review-full summary:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

/* Common text controls apply inside every card, including reviews and contacts. */
.forum-section[class*="section-align-"] :is(.stats-grid,.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.contact-grid,.archive-grid,.review-track)>:is(article,div,a),
.forum-section[class*="section-align-"] :is(.topics-grid,.program-list,.speaker-grid,.contact-grid,.archive-grid,.review-track) :is(h3,p,blockquote,summary) { text-align:var(--section-align); }
.forum-section.section-text-custom :is(.stats-grid,.topics-grid,.program-list,.speaker-grid,.partner-grid,.ticket-grid,.contact-grid,.archive-grid,.review-track,.faq-list) :is(strong,h3,p,blockquote,summary,.rich-text,.stats-grid span) { color:var(--section-text); }
.forum-section.section-text-custom .forum-button:not(.button-text-custom) { color:var(--section-text); }
.forum-section .forum-button.button-text-custom { color:var(--button-text); -webkit-text-fill-color:currentColor; }
.forum-section .forum-button.button-background-custom { background:var(--button-background); }
.forum-section .forum-button.button-border-custom { border-color:var(--button-border); }
@media(max-width:43.75rem) {
    .forum-section.venue-brief .gallery-grid:not(.carousel-track) { grid-template-columns:repeat(min(var(--columns,3),var(--venue-count,3),2),minmax(0,1fr)); }
    .block-testimonials .review-track { --review-columns:min(var(--columns,3),2); }
    .block-testimonials .review-track.carousel-track { --review-columns:1; }
}
@media(max-width:28.125rem) {
    .forum-section.venue-brief .gallery-grid:not(.carousel-track) { grid-template-columns:1fr; }
    .block-testimonials .review-track { --review-columns:1; }
}

/* Exhibition plans need the whole slide, including labels at its edges. */
.block-scheme.display-carousel .gallery-grid.carousel-track { display:flex; gap:0; scroll-snap-type:x mandatory; }
.block-scheme.display-carousel .gallery-grid.carousel-track>.gallery-open { flex:0 0 100%; width:100%; max-width:none; scroll-snap-align:start; }
.block-scheme.display-carousel .gallery-grid img { width:100%; height:auto; max-height:42rem; aspect-ratio:auto; object-fit:contain; border-radius:0; }
.block-scheme .scheme-details { margin-top:2rem; }
.block-scheme .stand-cards { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; }
.block-scheme .stand-card { grid-column:span 2; display:flex; flex-direction:column; justify-content:center; gap:.5rem; padding:1.25rem; border:1px solid color-mix(in srgb,var(--forum-muted) 22%,transparent); border-radius:var(--media-radius); background:var(--forum-background); color:var(--forum-text); text-align:center; text-decoration:none; }
.block-scheme .stand-card:nth-last-child(-n+2) { grid-column:span 3; }
.block-scheme .stand-card strong { font-size:1.25rem; }
.block-scheme .stand-card span { color:var(--forum-muted); font-size:.9rem; }
.block-scheme .stand-card:is(:hover,:focus-visible) { border-color:var(--forum-secondary); }
@media(max-width:43.75rem) { .block-scheme .stand-cards { grid-template-columns:1fr; } .block-scheme .stand-card,.block-scheme .stand-card:nth-last-child(-n+2) { grid-column:auto; } }

/* Card FAQ rows need a real grid even with the inherited spacing. */
.block-faq:is(.items-cards,.items-outline,.items-accent,.section-card-background-white,.section-card-background-soft) .faq-list{display:grid;gap:var(--section-gap,1rem);align-items:start}
.block-faq:is(.items-cards,.items-outline,.items-accent) .faq-list>details{margin:0}
.block-actions .forum-button:has(.action-description){flex-direction:column;gap:.4rem}
.block-actions .action-description{display:block;font-size:.875em;font-weight:400;line-height:1.45}
