/* Reset and Base Styles */

/* Global rem base: 1rem = 20px site-wide. Change :root font-size to scale rem site-wide. */
:root,
html {
    font-size: 20px;
    /* Fixed navbar horizontal inset from viewport (narrow on small screens below) */
    --navbar-margin-inline: 193px;
    /* Register / Apply / More / Less pills and matching surfaces (e.g. introslider cards) */
    --tbs-action-btn-shadow: 0 2px 8px rgba(0, 0, 0, 0.14), 0 1px 3px rgba(0, 0, 0, 0.08);
    /* Matches INTROSLIDER_NAV_GLASS in script.js (navbar + hero introslider cards) */
    --introslider-nav-glass-bg: rgba(0, 49, 83, 0.6);
    --introslider-nav-glass-blur: 5px;
    --introslider-nav-glass-border: rgba(255, 255, 255, 0.2);
    --introslider-nav-glass-shadow: 0 4px 28px rgba(0, 0, 0, 0.22);
    --introslider-hover-lift: 2px;
    /* Mobile hamburger icon bars */
    --hamburger-bar-color: #FFD700;
    --hamburger-bar-shadow: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5)) drop-shadow(0 2px 4px rgba(0, 0, 0, 0.32));
    /* Pull first band up over fixed poster so introslider gradient can fade from the image */
    --home-poster-content-pull: 330px;
    --home-poster-mobile-height: 217.2727272727vw;
    /* Hero introslider band (same bridge as former poster-event-spacer) */
    --introslider-section-gradient: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(0, 49, 83, 0.45) 35%,
        rgba(0, 49, 83, 0.82) 68%,
        #003153 100%
    );
}

@media (prefers-reduced-transparency: reduce) {
    :root {
        --introslider-nav-glass-bg: rgba(0, 49, 83, 0.92);
        --introslider-nav-glass-blur: 0px;
    }
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    border: none;
}

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
    overflow-x: hidden;
    background-color: #ffffff;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    line-height: 1.6;
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    padding: 0;
    transition: opacity 0.3s ease;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--title-font);
    letter-spacing: 0.02em;
}

p {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

body.home-view a,
body.home-view a:hover,
body.home-view a:focus,
body.home-view a:focus-visible,
body.home-view a:active {
    text-decoration: none !important;
}

/* Loading state — no scroll until home init finishes (script removes .loading) */
html.home-scroll-locked,
html.home-scroll-locked body {
    overflow: hidden !important;
    height: 100%;
}

body.loading {
    overflow: hidden !important;
}

/* Home: pale pink full-screen loader (fades out via .home-loading-screen.is-hidden) */
body.home-view.loading {
    opacity: 1;
}

body.home-view.loading::before,
body.home-view.loading::after {
    content: none;
    display: none;
}

.home-loading-screen {
    position: fixed;
    inset: 0;
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--tbs-loading-pink);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition:
        opacity 0.45s ease,
        visibility 0s linear 0s;
}

.home-loading-screen-logo {
    width: auto;
    height: auto;
    max-width: min(80vw, 291.6px);
    max-height: min(18vh, 64.8px);
    object-fit: contain;
}

.home-loading-screen.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 0.45s ease,
        visibility 0s linear 0.45s;
}

/* Non-home pages: keep legacy dim + message if body.loading is used elsewhere */
body.loading:not(.home-view) {
    opacity: 0.7;
}

body.loading:not(.home-view)::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.8);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

body.loading:not(.home-view)::after {
    content: 'Loading...';
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10000;
    font-size: 1.2rem;
    color: #003153;
    font-weight: 500;
}

.everything {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.container {
    max-width: 1725px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Navbar vertical size: padding + tallest row (logo on desktop; tab row on mobile). Use px so it matches .navbar regardless of :root font-size. */
:root {
    --title-font: 'Montserrat', sans-serif;
    /* .navbar padding 16px 0 + .nav-logo .logo 46.656px (≥769px) */
    --navbar-height: calc(16px + 46.656px + 16px);
    --tbs-pink: #fc70d7;
    --tbs-pink-soft: #fc70d7;
    /* Interactive pinks match introslider scrollbar: --tbs-pink at rest, --tbs-pink-soft on hover. */
    /* Same pale pink as .home-loading-screen */
    --tbs-loading-pink: #fce7f3;
    /* Home Event band: Location section title on Prussian */
    --tbs-icy-blue: #a8e6ff;
    /* Register / Apply / More / Less — shared fixed width (sized for “Register”; 75% scale) */
    --tbs-action-btn-width: 4.78125rem;
    /* Programme + speaker carousel cards (home + backend Snippets preview) */
    --home-carousel-slide-width: 450px;
    --home-carousel-minimal-aspect-ratio: 1080 / 1920;
}

/* Header Styles */
.header {
    background: #003153;
    backdrop-filter: none;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
    transition: all 0.3s ease;
}

.header.post-view {
    background: #003153 !important;
    backdrop-filter: none;
}

.navbar {
    background: #003153;
    color: #fff;
    padding: 16px 0;
    margin-bottom: 0;
    position: fixed;
    top: 0;
    left: var(--navbar-margin-inline);
    right: var(--navbar-margin-inline);
    width: auto;
    z-index: 9999;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    transition: background-color 0.3s ease;
    opacity: 1;
    transform: none;
}

.navbar.transparent {
    background: transparent !important;
    box-shadow: none !important;
    transition: background-color 0.3s ease !important;
}

.navbar.transparent .nav-container {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Home (poster / hero): bar over image until scroll past poster (JS fades in introslider-matched frosted glass) */
body.home-view .header:not(.post-view) {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

body.home-view .navbar:not(.navbar--mobile-bottom) {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    /* Align frosted navbar with centered max 1400px main column (main.everything has no horizontal padding) */
    --_home-nav-pad: 0px;
    --_home-nav-avail: calc(100vw - 2 * var(--_home-nav-pad));
    --_home-nav-w: min(1400px, var(--_home-nav-avail));
    left: calc(var(--_home-nav-pad) + max(0px, (var(--_home-nav-avail) - var(--_home-nav-w)) / 2)) !important;
    right: auto !important;
    width: var(--_home-nav-w) !important;
    max-width: var(--_home-nav-w);
    box-sizing: border-box;
}

/* Unified layout: viewer now lives inside .everything, so no special top offset here */

.nav-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Registration layout (outer / container / form) */
.registration-section {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.registration-section-inner-wrapper {
    margin: 0;
    padding: 0;
}

.registration-manifesto,
.registration-to-reserves {
    color: #1f2937;
    line-height: 1.6;
    margin: 0 0 1rem 0;
    font-size: 0.95rem;
}

/* Registration directly under programme block; horizontal inset only (no vertical padding) */
.home-section > .registration-section {
    position: relative;
    background-color: #003153 !important;
    padding: 0 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 0 0 0 0 !important;
}

/* Container matches outer Prussian band (same blue as programme section shell) */
.home-section > .registration-section .registration-section-inner-wrapper {
    position: relative;
    margin: 0;
    padding: 24px 16px 24px 16px;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    background-color: #003153 !important;
    border-radius: 0;
    color: #f1f5f9;
    overflow: hidden;
}

.home-section > .registration-section .registration-section-inner-wrapper .registration-manifesto,
.home-section > .registration-section .registration-section-inner-wrapper .registration-to-reserves {
    color: #ffffff;
}

.home-section > .registration-section .registration-form > .registration-manifesto,
.home-section > .registration-section .registration-form > .registration-manifesto * {
    color: #ffffff;
}

.home-section > .registration-section.registration-section--closed .registration-form > .registration-manifesto,
.home-section > .registration-section.registration-section--closed .registration-form > .registration-to-reserves {
    opacity: 1;
}

.home-section > .registration-section .registration-section-inner-wrapper p,
.home-section > .registration-section .registration-form p {
    color: #F4F0E8;
}

.home-section > .registration-section .registration-form .registration-field label,
.home-section > .registration-section .registration-form .registration-fieldset legend,
.home-section > .registration-section .registration-form .registration-checkbox-group label,
.home-section > .registration-section .registration-form .registration-smallprint {
    color: #f1f5f9;
}

.home-section > .registration-section .registration-form .registration-smallprint {
    color: rgba(255, 255, 255, 0.78);
}

/* Registration form layout */
.registration-form {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: transparent;
    border-radius: 5px;
    border: none;
    padding: 0;
}

.registration-form > * + * {
    margin-top: 24px;
}

.registration-form > .section-titles.registration-section-title + .registration-manifesto {
    margin-top: 0;
}

.registration-form > .section-titles.registration-section-title {
    color: #003153 !important;
    margin: 0;
    padding: 0;
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

.home-section > .registration-section .registration-form > .registration-manifesto,
.home-section > .registration-section .registration-form > .registration-to-reserves {
    margin: 0;
}

.home-section > .registration-section .registration-form > .registration-to-reserves:not([hidden]) {
    border: 1px solid #a8e6ff;
    border-radius: 5px;
    padding: 12px;
    box-sizing: border-box;
}

.home-section > .registration-section .registration-form > .registration-manifesto + .registration-to-reserves:not([hidden]) {
    margin-top: 24px;
}

.registration-form-row {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.registration-form-row--two-up {
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 24px;
    align-items: stretch;
}

.registration-form-row--two-up .registration-field {
    flex: 1 1 200px;
    min-width: 0;
}

.registration-field label {
    display: block;
    font-size: 0.9rem;
    font-weight: 500;
    color: #111827;
    margin-bottom: 0.2rem;
}

/* Registration field labels should use H4-like typography */
.home-section > .registration-section .registration-form .registration-field label {
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: 8px;
    line-height: 1.25;
}

.registration-required-asterisk {
    color: var(--tbs-pink);
}

.registration-field input,
.registration-field textarea,
.registration-field select {
    width: 100%;
    padding: 4px;
    border-radius: 4px;
    border: 1px solid #cbd5e1;
    font: inherit;
    box-sizing: border-box;
}

.registration-field input.registration-email-mismatch {
    background-color: #fc70d7;
}

/* Confirm email: default to white; mismatch state gets pale pink */
.registration-field input#reg-email-confirm {
    background-color: #ffffff;
}

.registration-field input:focus,
.registration-field textarea:focus,
.registration-field select:focus {
    outline: none;
    border-color: #003153;
    box-shadow: 0 0 0 2px rgba(0, 49, 83, 0.15);
}

.registration-field textarea {
    resize: vertical;
    min-height: 60px;
}

/* "Very brief bio" should be noticeably larger than other textareas */
#reg-very-brief-bio {
    min-height: 120px;
}

.registration-fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

/* Ensure these two multi-option fieldsets visually match in height */
.registration-fieldset[aria-label="Base medical speciality"],
.registration-fieldset[aria-label="Level of training"] {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1 1 auto;
}

.registration-fieldset legend {
    font-size: 1rem;
    font-weight: 600;
    color: #111827;
    margin-bottom: 8px;
    line-height: 1.25;
}

/* Make the specific multi-option question titles paragraph-like */
.registration-fieldset[aria-label="Base medical speciality"] legend,
.registration-fieldset[aria-label="Level of training"] legend,
.registration-fieldset[aria-label="Clinical context"] legend {
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.registration-checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    font-size: 0.9rem;
}

.registration-checkbox-group label {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.registration-checkbox-group input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    margin: 0;
    flex: 0 0 24px;
    border: 1px solid #ffffff;
    background-color: transparent;
    border-radius: 50%;
    display: inline-grid;
    place-content: center;
}

.registration-checkbox-group input[type="radio"]::before {
    content: "";
    width: 18px;
    height: 18px;
    border-radius: 50%;
    transform: scale(0);
    transition: transform 120ms ease-in-out;
    background-color: #FFD007;
}

.registration-checkbox-group input[type="radio"]:checked::before {
    transform: scale(1);
}

.registration-checkbox-group--speciality {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.45rem 1rem;
}

.registration-speciality-option {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
    user-select: none;
}

.registration-speciality-option > input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.registration-speciality-box {
    width: 24px;
    height: 24px;
    border-radius: 5px;
    border: 1px solid #ffffff;
    background-color: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
}

/* White border around the question blocks + their options */
.registration-fieldset[aria-label="Base medical speciality"],
.registration-fieldset[aria-label="Level of training"],
.registration-fieldset[aria-label="Clinical context"] {
    border: 1px solid #ffffff;
    border-radius: 5px;
    padding: 12px;
}

.registration-speciality-box::after {
    content: "✓";
    color: #FFD007;
    font-size: 18px;
    line-height: 1;
    opacity: 0;
}

.registration-speciality-option > input[type="checkbox"]:checked + .registration-speciality-box::after {
    opacity: 1;
}

.registration-form-row--actions {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    align-items: center;
    width: 100%;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.registration-success-check {
    display: none;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.35rem;
    color: #16a34a;
}

.registration-success-check:not([hidden]) {
    display: flex;
}

.registration-success-check-icon {
    width: 4.5rem;
    height: 4.5rem;
    display: block;
}

@media (min-width: 769px) {
    .registration-success-check-icon {
        width: 5.5rem;
        height: 5.5rem;
    }
}

.registration-form--submitted .registration-submit-btn {
    display: none !important;
}

.registration-form--inactive {
    pointer-events: none;
}

.registration-section--closed .registration-form > :not(.registration-section-title):not(.registration-manifesto):not(.registration-to-reserves) {
    opacity: 0.55;
}

.registration-form--inactive,
.registration-section--closed .registration-form {
    pointer-events: none;
}

.registration-smallprint {
    font-size: 1rem;
    line-height: 1.6;
    color: #374151;
    margin: 16px 0 0 0;
}

/* Flyer page: same max-width/centering as nav-container (+ horizontal padding here) */
.eventwrapper {
    max-width: 1200px;
    margin: 0 auto 24px auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.eventwrapper .event {
    border-radius: 5px;
    border: 1px solid #003153;
}

.eventwrapper .infoimage {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.eventwrapper .infoimage img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.eventwrapper .infoevent,
.eventwrapper .infosponsors,
.eventwrapper .infolocation,
.eventwrapper .infoprogramme {
    padding: 0 8px;
}

.eventwrapper .infoevent,
.eventwrapper .infosponsors,
.eventwrapper .infolocation,
.eventwrapper .infoprogramme {
    padding-top: 16px;
    padding-bottom: 16px;
}

.eventwrapper .infoevent,
.eventwrapper .infolocation {
    background-color: #003153; /* Prussian blue */
    color: #fff;
}

.eventwrapper .infoprogramme {
    background-color: #FAFAFA;
    color: #000000;
}

.eventwrapper .infoevent h3,
.eventwrapper .infosponsors h3,
.eventwrapper .infolocation h3,
.eventwrapper .infoprogramme h3 {
    font-family: var(--title-font) !important;
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    margin: 0 0 8px 0;
    text-align: left;
}

.eventwrapper .infoevent h3 {
    font-family: var(--title-font) !important;
    color: #FFD700;
}
.eventwrapper .infolocation h3 {
    font-family: var(--title-font) !important;
    color: #FFD700;
}
.eventwrapper .infoprogramme h3 {
    font-family: var(--title-font) !important;
    color: #000000;
}
.eventwrapper .infosponsors h3 {
    font-family: var(--title-font) !important;
}

.eventwrapper .infoevent p,
.eventwrapper .infosponsors p,
.eventwrapper .infolocation p,
.eventwrapper .infoprogramme p {
    font-size: 1rem !important;
    font-weight: 300 !important;
    line-height: 1.6 !important;
    margin-bottom: 0.75rem !important;
}

.eventwrapper .infoevent p:last-of-type,
.eventwrapper .infosponsors p:last-of-type,
.eventwrapper .infolocation p:last-of-type,
.eventwrapper .infoprogramme p:last-of-type {
    margin-bottom: 0.5rem !important;
}

.nav-logo {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    cursor: pointer;
    flex-shrink: 1;
    min-width: 0;
    max-width: min(38vw, 22rem);
}

.nav-logo:focus-visible {
    outline: 2px solid #FFD700;
    outline-offset: 3px;
    border-radius: 4px;
}

.nav-logo .logo {
    height: 64.8px;
    width: auto;
    max-width: 324px;
    object-fit: contain;
    filter: brightness(0) invert(1); /* Makes logo white to contrast with dark header */
}

@media (min-width: 769px) {
    .nav-logo .logo {
        height: 46.656px;   /* 58.32px - 20% */
        max-width: 233.28px; /* 291.6px - 20% */
    }
}

@media (min-width: 769px) {
    .nav-logo {
        flex-shrink: 0;
        max-width: none;
    }
}

.nav-logo h2 {
    color: #FFD700;
    font-weight: 600;
    font-size: 1.5rem;
    margin-left: 10px;
}

@media (max-width: 1019px) {
    .nav-logo {
        display: none;
    }

    .nav-container {
        justify-content: center;
    }

    .nav-menu {
        justify-content: center;
        flex: 1 1 auto;
        width: 100%;
    }

    .mobile-poster-logo-subtitle {
        display: none !important;
    }
}

.nav-menu {
    display: flex;
    list-style: none;
    gap: 1.5rem;
    align-items: center;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.nav-item {
    display: flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
}

.nav-link {
    font-family: var(--title-font);
    letter-spacing: 0.02em;
    text-decoration: none;
    color: #fff;
    font-weight: 400;
    font-size: 1rem;
    transition: color 0.3s ease;
    white-space: nowrap;
}

.nav-link:hover {
    color: #FFD700;
}

.user-icon {
    font-size: 1.656rem; /* +15% vs 1.44rem */
    padding: 0.5rem;
    border-radius: 5px;
    transition: all 0.3s ease;
    color: #FFD700;
}

.user-icon:hover {
    background: rgba(255, 215, 0, 0.1);
    transform: scale(1.1);
}

/* Login and user icon hidden and inactive for now */
.nav-item-hidden {
    display: none !important;
    pointer-events: none;
}

.nav-link.active {
    color: #FFD700;
    font-weight: 500;
}

.nav-link[data-view="feed"] {
    padding-left: 1.625rem; /* 10px + 1rem = 26px total */
}

@media (min-width: 769px) {
    :root {
        --tbs-action-btn-width: 5.34375rem;
    }

    .navbar .nav-link {
        font-size: 1rem;
    }
}

/* Shared width: Register, Apply, More, Less */
.nav-register-pill,
.nav-item-register-desktop .nav-link[data-view="register"],
.registration-submit-btn,
.feed-load-more-btn,
.feed-load-less-btn {
    width: var(--tbs-action-btn-width);
    min-width: var(--tbs-action-btn-width);
    max-width: var(--tbs-action-btn-width);
}

/* Shared Register / Apply pill (navbar + registration form) — type matches .nav-link */
.nav-register-pill,
.nav-item-register-desktop .nav-link[data-view="register"],
.registration-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    -webkit-appearance: none;
    font-family: var(--title-font);
    letter-spacing: 0.02em;
    font-size: 1rem;
    font-weight: 400;
    cursor: pointer;
    background-color: #FFD700;
    color: #003153;
    border: none;
    border-radius: 5px;
    min-height: 33px;
    padding: 6px 12px;
    margin: 0;
    white-space: nowrap;
    box-sizing: border-box;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    line-height: 1.2;
    text-align: center;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.navbar .nav-register-pill,
.navbar .nav-item-register-desktop .nav-link[data-view="register"],
.nav-register-mobile-top .nav-register-pill,
.nav-register-mobile-bar .nav-register-pill {
    padding-left: 4px;
    padding-right: 4px;
}

.registration-submit-btn {
    font-family: var(--title-font);
    letter-spacing: normal;
}

.registration-submit-btn:hover:not(:disabled),
.registration-submit-btn:focus-visible:not(:disabled) {
    background: #003153;
    color: #FFD700;
    outline: none;
}

.registration-submit-btn:disabled {
    background-color: #9ca3af;
    color: #4b5563;
    cursor: not-allowed;
    opacity: 1;
}

/* Navbar Register pill: always gold — no hover or scroll-spy color change */
.navbar .nav-register-pill,
.navbar .nav-item-register-desktop .nav-link[data-view="register"],
.header .nav-register-mobile-top .nav-register-pill,
.nav-register-mobile-top .nav-register-pill,
.header .nav-register-mobile-bar .nav-register-pill,
.nav-register-mobile-bar .nav-register-pill {
    background-color: #FFD700 !important;
    color: #003153 !important;
}

.navbar .nav-register-pill:hover,
.navbar .nav-register-pill:focus,
.navbar .nav-register-pill:focus-visible,
.navbar .nav-register-pill.active,
.navbar .nav-link.nav-register-pill.active,
.navbar .nav-item-register-desktop .nav-link[data-view="register"]:hover,
.navbar .nav-item-register-desktop .nav-link[data-view="register"]:focus,
.navbar .nav-item-register-desktop .nav-link[data-view="register"]:focus-visible,
.navbar .nav-item-register-desktop .nav-link[data-view="register"].active,
.header .nav-register-mobile-top .nav-register-pill:hover,
.header .nav-register-mobile-top .nav-register-pill:focus,
.header .nav-register-mobile-top .nav-register-pill:focus-visible,
.header .nav-register-mobile-top .nav-register-pill.active,
.nav-register-mobile-top .nav-register-pill:hover,
.nav-register-mobile-top .nav-register-pill:focus,
.nav-register-mobile-top .nav-register-pill:focus-visible,
.nav-register-mobile-top .nav-register-pill.active,
.nav-register-mobile-bar .nav-register-pill:hover,
.nav-register-mobile-bar .nav-register-pill:focus,
.nav-register-mobile-bar .nav-register-pill:focus-visible,
.nav-register-mobile-bar .nav-register-pill.active {
    background-color: #FFD700 !important;
    color: #003153 !important;
    outline: none;
}

@media (min-width: 769px) {
    .navbar .nav-register-pill,
    .nav-item-register-desktop .nav-link[data-view="register"],
    .registration-submit-btn {
        font-size: 1rem;
    }
}

/* Mobile-only top tabs: "Talks" (Register in nav-container on mobile; desktop uses .nav-past-desktop + yellow pill) */
.nav-past-mobile,
.nav-register-mobile-top,
.nav-register-mobile-bar {
    display: none;
}

.hamburger {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.hamburger:focus-visible {
    outline: 2px solid #FFD700;
    outline-offset: 2px;
}

.bar {
    display: block;
    width: 25px;
    height: 3px;
    background-color: #FAFAFA;
    margin: 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.hamburger.active .bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.hamburger.active .bar:nth-child(2) {
    opacity: 0;
}

.hamburger.active .bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* Drawer logo: mobile hamburger menu only (never desktop) */
.nav-menu-logo-item {
    display: none !important;
}

/* Hero Section — spacer under fixed navbar; height tracks navbar */
.hero {
    background: #FAFAFA;
    color: #333;
    height: calc(var(--navbar-height) - 2px);
    min-height: calc(var(--navbar-height) - 2px);
    box-sizing: border-box;
    text-align: left;
    position: relative;
    width: 100%;
    margin: 0 0 8px 0;
}

/* Home view: poster starts at viewport top; fixed header overlays the image */
body.home-view .home-section {
    margin-top: 0 !important;
    background-color: #003153 !important;
    max-width: min(1400px, 100%);
    /* 1920×1300 scaled to max 1400px column width */
    --home-poster-layout-height: 948px;
    --home-poster-visual-height: var(--home-poster-layout-height);
    --home-poster-effective-pull: var(--home-poster-content-pull);
    --home-hero-poster-slider-gap: 16px;
}

@media (min-width: 769px) {
    body.home-view .home-section {
        --home-poster-visual-height: min(948px, 67.7083333333vw);
        /* 200px less pull than before → content starts 200px lower vs poster */
        --home-poster-effective-pull: max(0px, min(var(--home-poster-content-pull), 19.1304347826vw) - 200px);
    }
}

/* Deprecated layout aid — introslider moved below Event band */
body.home-view .home-section > .introspacer {
    display: none !important;
}

body.home-view .hero {
    display: none !important;
}

.hero-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    width: 100%;
    box-sizing: border-box;
}



.hero-text-container {
    max-width: none;
    margin: 0;
    padding: 0;
    width: calc(100% - 300px);
    box-sizing: border-box;
    display: inline-block;
}

.hero-text-container p {
    font-size: 1.2rem;
    line-height: 1.6;
    margin: 0;
    font-weight: 300;
}

.hero-title {
    font-family: var(--title-font);
    text-align: center;
    font-size: 3rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.hero-subtitle {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    text-align: left;
    font-size: 1.2rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    opacity: 0.9;
}


.cta-button {
    background: #FFD700;
    color: #003153;
    padding: 6px 7px;
    border: none;
    border-radius: 5px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 70%;
    max-width: 120px;
}

.cta-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

/* Hero Social Links */
.hero-social-links {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    gap: 0.1rem;
    z-index: 10;
    justify-content: flex-end;
    padding: 0;
    background-color: #003153;
    box-sizing: border-box;
    width: auto;
}

.hero-social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    background: transparent;
    color: var(--tbs-pink);
    border-radius: 5px;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1.68em;
    box-shadow: none;
    padding: 0 !important;
    margin: 0;
}

.hero-social-links a i {
    padding: 0 !important;
    margin: 0;
    line-height: 1;
    display: inline-block;
    width: 1em;
    text-align: center;
}

.hero-social-links a:hover,
.hero-social-links a:hover i,
.hero-social-links a:hover i.fab,
.hero-social-links a:hover i.fab.fa-youtube {
    background: transparent;
    color: var(--tbs-pink-soft);
    transform: none;
    box-shadow: none;
}

.hero-social-links a i.fab,
.hero-social-links a i.fab.fa-youtube {
    color: var(--tbs-pink);
}

/* YouTube icon: footer social pink (not platform default red) */
.hero-social-links a i.fab.fa-youtube,
.footer-section .hero-social-links a i.fab.fa-youtube,
.home-social-row-container .social-links a i.fab.fa-youtube,
.home-section .introslider .social-links a i.fab.fa-youtube,
.viewing .youtubereminder-icon i.fab.fa-youtube,
.viewing .youtubereminder-icon .fab.fa-youtube {
    color: var(--tbs-pink) !important;
}

.hero-social-links a:hover i.fab.fa-youtube,
.footer-section .hero-social-links a:hover i.fab.fa-youtube,
.home-social-row-container .social-links a:hover i.fab.fa-youtube,
.home-section .introslider .social-links a:hover i.fab.fa-youtube,
.viewing .youtubereminder-icon:hover i.fab.fa-youtube,
.viewing .youtubereminder-icon:hover .fab.fa-youtube {
    color: var(--tbs-pink-soft) !important;
}

/* Social Links in Footer */
.footer-section .hero-social-links {
    position: static;
    transform: none;
    display: inline-flex;
    align-items: center;
    align-self: center;
    justify-content: flex-start;
    text-align: left;
    margin-top: 0;
}

/* Feed Section */
.home-section {
    /* Programme day strip + speakers slider: same slide width (see speakerslider-track / programme-slider) */
    --home-carousel-slide-width: 450px;
    /* Home programme + speaker carousel cards: 1080×1920 portrait */
    --home-carousel-minimal-aspect-ratio: 1080 / 1920;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    max-width: min(1725px, 100%); /* backend preview; public home overrides via body.home-view */
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    background-color: #FAFAFA;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 0;
    min-width: 0; /* allow flex children to shrink to section width */
    position: relative; /* contain absolute prelock / overlays inside the column */
}

/* Sequential home load: poster first; script removes .home-stage-hidden once each prior band is ready */
body.home-view .home-section > .home-stage-hidden {
    display: none !important;
}

/* Off-screen layout pass: measure introslider card heights before first visible paint (desktop) */
@media (min-width: 769px) {
    body.home-view .home-section > .introslider-inner-wrapper.home-introslider-prelock {
        display: block !important;
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        top: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        z-index: -1 !important;
        margin-top: 0;
        overflow: hidden;
    }
}

/* Match introslider whether it is a direct child (initial HTML) or inside .introslider-inner-wrapper (after feed JS) */
.home-section > picture {
    position: relative;
    display: block;
    z-index: 0;
    border: none;
    outline: none;
}

/* Snow on hero poster — above image, below bottom gradient + mobile logo */
body.home-view .home-section > picture > .poster-snow-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    display: block;
}

body.past-talks-open .home-section > picture > .poster-snow-canvas {
    display: none !important;
}

/* When Past talks / video viewer is open, hide home chrome; only the top Prussian strip (picture) stays. */
body.past-talks-open .home-section {
    padding-top: 0 !important;
}

body.past-talks-open .home-section > :not(picture) {
    display: none !important;
}

/* Past talks / video viewer: no poster art — Prussian top strip in normal flow (not fixed hero poster) */
body.past-talks-open .home-section > picture {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: min(1400px, 100%);
    height: var(--navbar-height);
    min-height: var(--navbar-height);
    box-sizing: border-box;
    overflow: hidden;
    background-color: #003153;
    background-image: none;
    pointer-events: none;
    z-index: 1;
}

body.past-talks-open .home-section > picture img,
body.past-talks-open .home-section > picture .poster-maintitles,
body.past-talks-open .home-section > picture .poster-top-divider {
    display: none !important;
}

/* Event divider: shells + img stay transparent (PNG uses alpha, not baked-in blue). */
body.home-view .poster-top-divider,
body.home-view .event-section-divider-picture,
.home-section .poster-top-divider,
.home-section .event-section-divider-picture,
body.home-view img.event-section-divider,
.home-section img.event-section-divider {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

/* Hero poster: event divider flush below navbar (was +100px) */
body.home-view:not(.past-talks-open) .home-section > picture .poster-top-divider {
    position: fixed;
    top: var(--navbar-height);
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
    max-width: calc(min(1400px, 100vw) * 0.7);
    margin: 0;
    padding: 0;
    z-index: 5;
    display: block;
    pointer-events: none;
    box-sizing: border-box;
}

body.home-view:not(.past-talks-open) .home-section > picture .poster-top-divider .event-section-divider-picture {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

body.home-view:not(.past-talks-open) .home-section > picture .poster-top-divider .event-section-divider {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    background: transparent !important;
    background-color: transparent !important;
}

body.home-view .home-section > .title-section {
    display: none !important;
}

/* Past talks open: remove poster gradient overlay entirely */
body.past-talks-open .home-section > picture::after {
    display: none !important;
    content: none !important;
}

/* Prussian blue wash at bottom of home poster (above image, below mobile logo z-index) */
body.home-view .home-section > picture::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 20%;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(
        to top,
        #003153 0%,
        rgba(0, 49, 83, 0.82) 28%,
        rgba(0, 49, 83, 0.35) 62%,
        rgba(0, 49, 83, 0) 100%
    );
}

/*
 * Hero poster: fixed in the viewport; bands below scroll over it.
 * Centered to match the 1400px home column (no horizontal bleed past .home-section).
 */
body.home-view:not(.past-talks-open) .home-section > picture {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    max-width: min(1400px, 100%);
    height: var(--home-poster-visual-height);
    box-sizing: border-box;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

body.home-view:not(.past-talks-open) .home-section > picture img.home-poster-wide {
    width: 100% !important;
    height: 100% !important;
    max-width: 100%;
    display: block;
    object-fit: cover;
    object-position: top left;
}

body.home-view:not(.past-talks-open) .home-section {
    padding-top: calc(var(--home-poster-visual-height) - var(--home-poster-effective-pull)) !important;
    overflow-x: hidden;
    isolation: isolate;
}

/* Mobile: start scrollable bands below the fold so introslider is not visible until scroll */
@media (max-width: 768px) {
    body.home-view:not(.past-talks-open) .home-section {
        padding-top: max(
            calc(var(--home-poster-mobile-height) - var(--home-poster-content-pull)),
            100dvh,
            100vh
        ) !important;
    }

    body.home-view:not(.past-talks-open) .home-section > picture {
        height: var(--home-poster-mobile-height) !important;
        max-width: 100vw;
    }

    body.home-view:not(.past-talks-open) .home-section > picture img.home-poster-wide {
        object-fit: contain;
        object-position: top center;
    }
}

body.home-view .everything {
    overflow-x: hidden;
    max-width: 100%;
    width: 100%;
}

body.home-view:not(.past-talks-open) .home-section > :not(picture) {
    position: relative;
    z-index: 1;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Hero introslider: blue gradient section shell; frosted glass slide cards. */
body.home-view .home-section > .introslider-section.home-hero-introslider-outer {
    margin: 0;
    padding: 0;
    z-index: 2;
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: transparent;
    background-image: var(--introslider-section-gradient);
    overflow-x: hidden;
}

body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider {
    margin: 0;
    padding: 24px 0 0;
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    isolation: isolate;
}

/* Introslider section: Prussian gradient; inner wrapper + track stay transparent for glass cards. */
body.home-view .home-section > .introslider-section {
    border: none !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-image: var(--introslider-section-gradient) !important;
}

body.home-view .home-section .introslider-inner-wrapper,
body.home-view .home-section .introslider-inner-wrapper > .introslider {
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

body.home-view .home-section > .introslider-inner-wrapper,
body.home-view .home-section .introslider-inner-wrapper {
    border: none !important;
    border-radius: 0 !important;
}

.home-section > .introslider-inner-wrapper.home-hero-introslider .introslider-section-title {
    flex-shrink: 0;
    margin: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-top: 0;
    padding-right: 16px;
    padding-bottom: 4px;
    padding-left: 16px !important;
    color: #ffffff !important;
    text-align: left;
    align-self: flex-start;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

body.home-view .home-section > .introslider-section::before,
body.home-view .home-section > .introslider-inner-wrapper::before {
    display: none;
    content: none;
}

body.home-view .home-section > .feed-section,
body.home-view .home-section > .title-section,
body.home-view .home-section > .sponsors-section,
body.home-view .home-section > .introslider-section,
body.home-view .home-section > .speaker-section,
body.home-view .home-section > .registration-section,
body.home-view .home-section > .programme-section {
    position: relative;
    z-index: 1;
    max-width: 100%;
    min-width: 0;
}

body.home-view .home-section > .ondemand-section {
    display: none !important;
}

/* Feed band slightly above speakers so the load-more chevron can straddle the seam */
body.home-view .home-section > .feed-section {
    z-index: 3;
}

/* Speakers seam chevron overlaps programme below — stack above programme (both were z-index: 2) */
body.home-view .home-section > .speaker-section {
    z-index: 4;
}

.home-section .home-poster-wide {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
    margin-bottom: 0;
    border-radius: 0;
    border: none;
    outline: none;
    box-shadow: none;
}

@media (max-width: 768px) {
    body.home-view .home-section > picture::after {
        z-index: 3;
        height: 38%;
        background: linear-gradient(
            to top,
            #003153 0%,
            rgba(0, 49, 83, 0.95) 18%,
            rgba(0, 49, 83, 0.72) 40%,
            rgba(0, 49, 83, 0.35) 65%,
            rgba(0, 49, 83, 0) 100%
        );
    }

    body.home-view .home-section > picture .poster-maintitles {
        z-index: 4;
    }

    body.home-view .home-section > picture .poster-maintitles .maintitle-heading {
        font-size: 4.8rem !important;
    }

    body.home-view:not(.past-talks-open) .home-section > picture .poster-top-divider {
        width: 100%;
        max-width: 100%;
    }


    body.home-view .home-section > .introslider-section.home-hero-introslider-outer {
        padding: 0;
        margin-left: 0;
        margin-right: 0;
        background-color: transparent;
        background-image: var(--introslider-section-gradient);
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider {
        display: flex;
        flex-direction: column;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
        border-radius: 0 !important;
        overflow: hidden;
    }

    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider {
        gap: 0;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
        background-color: transparent !important;
        background: transparent !important;
    }

    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider > * {
        background: var(--introslider-nav-glass-bg) !important;
        background-color: var(--introslider-nav-glass-bg) !important;
        backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        border: 1px solid var(--introslider-nav-glass-border) !important;
        border-left: none !important;
        border-right: none !important;
        border-bottom: none !important;
        border-radius: 0 !important;
        box-shadow: var(--introslider-nav-glass-shadow) !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider,
    body.home-view .home-section .introslider-inner-wrapper > .introslider {
        width: 100%;
        max-width: 100%;
        margin-right: 0;
        --introslider-column-width: 100%;
        gap: 0;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
        -webkit-overflow-scrolling: touch;
    }

    body.home-view .home-section .introslider-inner-wrapper > .introslider > *,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > * {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.home-view .home-section .introslider-inner-wrapper .introslider-indicators {
        display: flex;
        justify-content: center;
        gap: 8px;
        margin: 0;
        padding: 16px 8px;
        background-color: transparent;
        background: transparent;
    }

    /* No overlap layout on mobile: keep social row in normal flow. */
    body.home-view .home-section > .home-social-row-container {
        margin-top: 0 !important;
    }
}

.home-section .introslider {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-right: 0;
    box-sizing: border-box;
    align-items: stretch;
    align-self: stretch;
    background: transparent;
    background-color: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    overflow-x: auto;
    overflow-y: hidden;
    /* Room for hover lift so the top border is not clipped by overflow-y: hidden */
    padding-top: calc(var(--introslider-hover-lift) + 1px);
}

.home-section .introslider-section,
.home-section .introslider-inner-wrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: none;
    border-radius: 0;
    overflow-x: hidden;
    overflow-y: visible;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.home-section .introslider-section {
    background-color: transparent;
    background-image: var(--introslider-section-gradient);
}

.home-section .introslider-inner-wrapper {
    background: transparent;
    background-color: transparent;
    background-image: none;
}

/* Home: sponsors row below hero introslider (logo heights set in script.js). */
.home-section > .sponsors-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow-x: hidden;
    overflow-y: visible;
    background-color: #003153;
    padding: 24px 8px 24px 8px;
    border-radius: 0 !important;
}

@media (min-width: 769px) {
    .home-section > .sponsors-section {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}

.home-section > .sponsors-section .sponsors-section-inner-wrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.5rem;
    background: #003153;
    border-radius: 0 !important;
    padding: 0;
}

.home-section > .sponsors-section .sponsor-logos {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 2vw, 24px);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: #003153;
    border-radius: 5px;
    padding: 0;
}

.home-section > .sponsors-section .sponsor-logo-slot {
    box-sizing: border-box;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 0;
}

.home-section > .sponsors-section .sponsor-logo-slot .sponsors-logo-image {
    box-sizing: border-box;
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    object-fit: contain;
    object-position: center center;
    filter: brightness(0) invert(1);
}

/* Home: Title band — divider only. */
.home-section > .title-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    overflow-x: hidden;
    overflow-y: visible;
    background-color: #003153;
    padding: 0 8px;
    border-radius: 0 !important;
}

.home-section > .title-section > .event-section-divider-picture,
.home-section > .home-section-divider-band > .event-section-divider-picture,
.home-section > .title-section > .poster-top-divider,
.home-section > .home-section-divider-band > .poster-top-divider {
    display: block;
    width: 70%;
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

.home-section > .title-section > .event-section-divider-picture {
    margin-top: 8px;
}

.home-section > .home-section-divider-band > .event-section-divider-picture {
    margin-top: 0;
    margin-bottom: 0;
}

.home-section > .title-section > .event-section-divider-picture > .event-section-divider,
.home-section > .home-section-divider-band > .event-section-divider-picture > .event-section-divider {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
}

/* Home: Event band — outer Prussian shell matches sponsors / feed (same as former `.location-section` row). */
.home-section > .event-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow-x: hidden;
    overflow-y: visible;
    background-color: #003153;
    padding: 0 8px;
    border-radius: 0 !important;
}

.home-section > .home-section-divider-band {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #003153;
    padding: 8px 8px;
}


/* Mobile: narrow divider asset, full width, no horizontal overflow. */
@media (max-width: 768px) {
    body.home-view .home-section > .title-section {
        z-index: 2;
        overflow-x: hidden;
        padding-top: 16px;
        padding-bottom: 24px;
        padding-left: 0;
        padding-right: 0;
        align-items: center;
    }

    body.home-view .home-section > .event-section {
        z-index: 1;
    }

    .home-section > .home-section-divider-band {
        overflow-x: hidden;
        padding-left: 0;
        padding-right: 0;
        align-items: center;
    }

    .home-section > .title-section > .event-section-divider-picture,
    .home-section > .home-section-divider-band > .event-section-divider-picture,
    .home-section > .title-section > .poster-top-divider,
    .home-section > .home-section-divider-band > .poster-top-divider {
        display: block;
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding: 0;
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
    }

    .home-section > .title-section > .event-section-divider-picture > .event-section-divider,
    .home-section > .home-section-divider-band > .event-section-divider-picture > .event-section-divider {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
        margin: 0;
        padding: 0;
    }

    .home-section > .title-section > .event-section-divider-picture {
        margin-top: 0;
    }

    /* Divider, then event introduction (no video on mobile) */
    body.home-view .home-section > picture {
        order: 0;
    }

    body.home-view .home-section > .title-section {
        order: 20;
    }

    body.home-view .home-section > .event-section {
        order: 30;
    }

    body.home-view .home-section > .introslider-section {
        order: 50;
    }

    body.home-view .home-section > .sponsors-section {
        order: 55;
    }

    body.home-view .home-section > .feed-section {
        order: 60;
    }

    body.home-view .home-section > .programme-section {
        order: 70;
    }

    body.home-view .home-section > .speaker-section {
        order: 80;
    }

    body.home-view .home-section > .ondemand-section {
        order: 90;
    }

    body.home-view .home-section > .registration-section {
        order: 100;
    }

    body.home-view .home-section > .home-section-divider-band {
        order: 110;
    }
}

.home-section > .event-section .event-section-inner-wrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: #003153;
    color: rgba(255, 255, 255, 0.95);
    border-radius: 5px;
    box-shadow: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
        'trailerCol eventIntro';
    align-items: start;
    gap: 24px;
    padding: 24px 0 24px 16px;
}

/* TBS27 + date/venue — hero poster overlay (.poster-maintitles). */
body.home-view:not(.past-talks-open) .home-section > picture {
    --poster-hero-title-color: #f4f0e8;
    --poster-hero-title-shadow:
        0 1px 2px rgba(0, 0, 0, 0.16),
        0 1px 4px rgba(0, 0, 0, 0.1);
    --poster-hero-logo-shadow:
        drop-shadow(0 1px 2px rgba(0, 0, 0, 0.16))
        drop-shadow(0 1px 4px rgba(0, 0, 0, 0.1));
    --poster-maintitles-lift: 130px;
}

body.home-view:not(.past-talks-open) .home-section > picture .poster-maintitles {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.35em;
    position: absolute;
    left: 0;
    top: calc(32% - var(--poster-maintitles-lift));
    z-index: 4;
    pointer-events: none;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 16px;
    box-sizing: border-box;
    text-align: left;
}

body.home-view .home-section > picture .poster-maintitles :is(
    .maintitle-heading,
    .tbs27-card-subtitle,
    .tbs27-card-maintitle-line
) {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-wrap: normal !important;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.home-view .home-section > picture .poster-maintitles .maintitle-heading {
    position: static;
    margin: 0 !important;
    padding: 0;
    color: var(--poster-hero-title-color, #f4f0e8) !important;
    -webkit-text-fill-color: var(--poster-hero-title-color, #f4f0e8) !important;
    font-family: var(--title-font) !important;
    font-size: 4rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em;
    line-height: 1.1;
    text-align: left;
    text-shadow: var(--poster-hero-title-shadow);
}

body.home-view .home-section > picture .poster-maintitles .poster-maintitle-logo {
    display: none;
}

body.home-view .home-section > picture .poster-maintitles .poster-maintitle-text {
    display: inline;
}

body.home-view .home-section > picture .poster-maintitles .tbs27-card-subtitle {
    margin: 0 !important;
    padding: 0;
    color: var(--poster-hero-title-color, #f4f0e8) !important;
    -webkit-text-fill-color: var(--poster-hero-title-color, #f4f0e8) !important;
    font-family: var(--title-font) !important;
    font-size: 1.5rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-align: left;
    text-shadow: var(--poster-hero-title-shadow);
}

/* Wide screens: 27logo image instead of TBS27 text (mobile uses logo in max-width: 768px block). */
@media (min-width: 769px) {
    body.home-view .home-section > picture .poster-maintitles .poster-maintitle-text {
        display: none !important;
    }

    body.home-view .home-section > picture .poster-maintitles .poster-maintitle-logo {
        display: block;
        width: auto;
        height: 7.2rem; /* 4.8rem + 50% */
        max-width: min(54vw, 21rem);
        margin: 0;
        object-fit: contain;
        object-position: left center;
        filter: var(--poster-hero-logo-shadow);
    }

    body.home-view .home-section > picture .poster-maintitles .maintitle-heading {
        overflow: visible;
        text-overflow: clip;
    }
}

@media (min-width: 769px) and (max-width: 1150px) {
    body.home-view:not(.past-talks-open) .home-section > picture .poster-maintitles {
        top: 119px;
    }

    body.home-view .home-section > picture .poster-maintitles .poster-maintitle-logo {
        height: min(7.2rem, 12.5217391304vw);
    }
}


.main-title-subheading {
    display: none;
}

.home-section > .event-section .event-section-inner-wrapper > .eventintroduction {
    grid-area: eventIntro;
    background: transparent;
    padding: 0;
    margin: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: start;
    justify-content: flex-start;
    align-content: flex-start;
    gap: 24px;
}

.home-section > .event-section .event-section-inner-wrapper > .eventintroduction > .event-texts {
    flex: 0 0 auto;
}

.home-section > .event-section .event-section-inner-wrapper > .eventintroduction > .event-texts {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: start;
    justify-content: flex-start;
    gap: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.home-section > .event-section .event-texts > .event-contents {
    min-width: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: start;
    justify-content: flex-start;
    flex: 0 0 auto;
    padding-bottom: 4px;
    margin-bottom: 0;
}

.home-section > .event-section .event-contents {
    min-width: 0;
    box-sizing: border-box;
    padding-left: 8px;
    padding-right: 8px;
    font-size: 1rem;
    line-height: 1.6;
    color: #F4F0E8;
}

/* Firestore / text-editor HTML: inherit rem-based body copy (inline px stripped on inject). */
.home-section > .event-section .event-contents .home-rich-html,
.home-section > .event-section .location-text-body .home-rich-html {
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.home-section > .event-section .home-rich-html :where(p, li, td, th, span, div, a, strong, em, blockquote) {
    font-size: inherit;
    line-height: inherit;
}

.home-section > .event-section .event-contents p {
    margin: 0 0 0.75em 0;
}

.home-section > .event-section .event-contents p:last-child {
    margin-bottom: 0;
}

.home-section > .event-section .event-contents a {
    color: var(--tbs-pink) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.home-section > .event-section .event-contents a:hover {
    color: var(--tbs-pink-soft) !important;
}

.home-section > .event-section .event-contents h3 {
    font-family: var(--title-font) !important;
    font-size: 1.7rem;
    font-weight: 600;
    color: var(--tbs-icy-blue) !important;
    margin: 0;
    padding: 8px 0 4px 0;
    text-transform: none;
    line-height: 1.3;
}

.home-section > .event-section .event-texts > .location-contents {
    min-width: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex: 1 1 auto;
}

.home-section > .event-section .location-contents > .event-section-title {
    flex-shrink: 0;
    margin: 0;
    padding: 8px 0 4px 0;
    color: var(--tbs-icy-blue) !important;
}

.home-section > .event-section .event-section-inner-wrapper > .trailer-embed {
    grid-area: trailerCol;
    min-width: 0;
    box-sizing: border-box;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    align-self: start;
}

.home-section > .event-section .trailer-embed > .embed-section {
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin-top: 8px;
}

.home-section > .event-section .location-content {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex: 1 1 auto;
    min-height: 0;
}

.home-section > .event-section .location-text-body {
    min-width: 0;
}

.home-section > .event-section .location-spacer {
    display: block;
    width: 35%;
    max-width: 35%;
    height: auto;
    margin-top: 16px;
    margin-left: auto;
    margin-right: auto;
    align-self: center;
    flex-shrink: 0;
}

.home-section > .event-section .location-content.programmestyle {
    color: rgba(255, 255, 255, 0.95);
}

.home-section > .event-section .location-content p,
.home-section > .event-section .location-content li,
.home-section > .event-section .location-content td,
.home-section > .event-section .location-content th {
    color: rgba(255, 255, 255, 0.95);
}

.home-section > .event-section .location-content h1,
.home-section > .event-section .location-content h2,
.home-section > .event-section .location-content h3,
.home-section > .event-section .location-content h4,
.home-section > .event-section .location-content h5,
.home-section > .event-section .location-content h6 {
    color: #ffffff;
}

/* Same pink as introslider Location slide (Hotel Alex, etc.) */
.home-section > .event-section .location-content a {
    color: var(--tbs-pink) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.home-section > .event-section .location-content a:hover {
    color: var(--tbs-pink-soft) !important;
}

.home-section > .event-section .location-content p {
    margin: 0 0 0.75em 0;
}

.home-section > .event-section .location-content p:last-child {
    margin-bottom: 0;
}

.home-section > .event-section .trailer {
    min-width: 0;
    box-sizing: border-box;
    border: none;
    border-radius: 5px;
    background: transparent;
    overflow: hidden;
    padding: 0;
    width: 100%;
}

.home-section > .event-section .trailer-media {
    position: relative;
    width: 100%;
    min-height: 0;
    line-height: 0;
    border: none;
    outline: none;
}

/* 50px Prussian blue fade into video at top edge */
.home-section > .event-section .trailer-media::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50px;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(to bottom, #003153 0%, transparent 100%);
}

.home-section > .event-section .trailer-media .trailer-loop-video {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    border: none;
    outline: none;
    box-shadow: none;
    vertical-align: top;
    background: #000;
    filter: grayscale(100%);
}

@media (max-width: 1100px) {
    .home-section > .event-section .event-section-inner-wrapper {
        grid-template-columns: 1fr;
        grid-template-areas:
            'eventIntro'
            'trailerCol';
        gap: 24px;
    }

    .home-section > .event-section .event-section-inner-wrapper > .eventintroduction > .event-texts {
        width: 100%;
        max-width: 100%;
    }

    .home-section > .event-section .event-texts > .event-contents {
        padding-bottom: 8px;
    }

    .home-section > .event-section .event-texts > .location-contents {
        width: 100%;
        max-width: 100%;
    }

    .home-section > .event-section .event-section-inner-wrapper > .trailer-embed {
        width: 100%;
        max-width: 100%;
        align-self: stretch;
    }
}

/* Home: On-demand — Prussian outer band + pale pink inner panel (between Programme and Registration) */
.home-section > .ondemand-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    background-color: #003153 !important;
    padding-left: 8px;
    padding-right: 8px;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    border-radius: 0 !important;
}

.home-section > .ondemand-section .ondemand-inner-wrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: #fc70d7;
    border-radius: 0;
    padding: 24px 16px;
}

.home-section > .ondemand-section .ondemand-section-title {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    color: #003153 !important;
}

/* Home: speakers row — Prussian band; 8px horizontal inset on section + inner */
.home-section > .speaker-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: visible;
    background-color: #003153;
    padding-left: 8px;
    padding-right: 8px;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 0 !important;
}

.home-section > .speaker-section .speakers-inner-wrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: visible;
    position: relative;
    background-color: #ffffff;
    border-radius: 0 0 5px 5px;
    padding: 0;
    padding-top: 24px;
    padding-bottom: 16px;
    min-height: min(50vh, 420px);
}

@media (min-width: 769px) {
    .home-section > .speaker-section .speakers-inner-wrapper {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}

.home-section .speakerslider {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: transparent;
    border-radius: 0;
    overflow: visible;
}

.home-section .speakerslider-track {
    /* Same width token as `.home-section .programme-slider` (--home-carousel-slide-width) */
    --introslider-column-width: var(--home-carousel-slide-width, 450px);
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    justify-content: safe center;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding-left: 0;
    padding-right: 0;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
    scroll-behavior: auto;
    cursor: grab;
}

.home-section .speakerslider-track > .speaker-placeholder {
    flex: 0 0 var(--introslider-column-width);
    width: var(--introslider-column-width);
    min-width: var(--introslider-column-width);
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio);
    height: auto;
    align-self: flex-start;
    overflow-x: hidden;
    overflow-y: auto;
    position: relative;
    border: 1px solid #D1D5DB;
    border-right: none;
    border-radius: 0;
    box-sizing: border-box;
}

.home-section .speakerslider-track > .speaker-placeholder {
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
}

.home-section .speakerslider-track > .speaker-card {
    flex: 0 0 var(--introslider-column-width);
    width: var(--introslider-column-width);
    min-width: var(--introslider-column-width);
    max-width: none;
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio);
    height: auto;
    background-color: #e6f3ff;
    background-image: none;
    border: 1px solid #D1D5DB !important;
    border-right: none !important;
    border-radius: 0;
    box-shadow: none !important;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 0;
    box-sizing: border-box;
    min-height: 0;
    max-height: none;
    align-self: flex-start;
    padding: 16px;
    text-align: left;
    overflow-x: hidden;
    overflow-y: auto;
}

.home-section .speakerslider-track > .speaker-card:last-child,
.home-section .speakerslider-track > .speaker-card:only-child {
    border-right: 1px solid #D1D5DB !important;
}

.home-section .speakerslider-track > .speaker-card--speakerinfo + .speaker-card {
    border-left: none !important;
}

/* Vertical dividers between speaker slides (not outer left edge of first slide) */
.home-section .speakerslider-track > .speaker-card:not(:first-child),
.home-section .speakerslider-track > .speaker-placeholder:not(:first-child) {
    border-left-color: #ffffff !important;
}

.home-section .speakerslider-track > .speaker-card > .speaker-card-inner-wrapper {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    width: 100%;
    box-sizing: border-box;
    overflow-y: auto;
}

/* Home speaker roster: alternate TBS yellows (intro/TBA/stripe classes set in script.js). */
.home-section .speakerslider-track > .speaker-card--stripe-a {
    background-color: #FEDE3A;
}

.home-section .speakerslider-track > .speaker-card--stripe-b {
    background-color: #F4BB00;
}

/* Speaker intro slide: full-bleed artwork via ::before (same pattern as programme-info) */
.home-section .speakerslider-track > .speaker-card--speakerinfo {
    position: relative;
    isolation: isolate;
    overflow: hidden !important;
    background-color: #fede3a;
    background-image: none;
    padding: 24px 50px 24px 16px !important;
    border: 1px solid #D1D5DB;
    border-right: none;
    border-radius: 5px 0 0 5px !important;
}

.home-section .speakerslider-track > .speaker-card--speakerinfo::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: url('images/speakerinfo.png');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: cover;
    pointer-events: none;
}

.home-section .speakerslider-track > .speaker-card--speakerinfo > .speaker-card-inner-wrapper {
    position: relative;
    z-index: 1;
    background-color: transparent;
}

.home-section .speakerslider-track > article.speaker-card[data-expandable-bio] {
    cursor: pointer;
}

.home-section .speakerslider-track > article.speaker-card[data-expandable-bio]:focus-visible {
    outline: 2px solid #003153;
    outline-offset: 2px;
}

/* Speakers strip: same connected-panels treatment as `.programme-slider` day cards */
.home-section .speakerslider-track > .speaker-card:first-child:not(:only-child),
.home-section .speakerslider-track > .speaker-placeholder:first-child:not(:only-child) {
    border-radius: 5px 0 0 5px;
    margin-left: 16px !important;
}

.home-section .speakerslider-track > .speaker-card:last-child:not(:first-child),
.home-section .speakerslider-track > .speaker-placeholder:last-child:not(:first-child) {
    border-radius: 0 5px 5px 0;
    margin-right: 16px !important;
}

.home-section .speakerslider-track > .speaker-card:only-child,
.home-section .speakerslider-track > .speaker-placeholder:only-child {
    border-radius: 5px;
    margin-left: 16px !important;
    margin-right: 16px !important;
}

/* Speaker cards: name + Bio_long HTML (no photo column). */
.home-section .speaker-card > .speaker-card-inner-wrapper {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    width: 100%;
    min-width: 0;
    background-color: transparent;
    border-radius: 5px;
}

.home-section .speaker-card.speaker-card--speakerinfo > .speaker-card-inner-wrapper > .speaker-content {
    flex: 1 1 auto;
    min-width: 0;
}

.home-section .speaker-card.speaker-card--speakerinfo .speaker-card-bio {
    padding-top: 0;
}

.home-section .speaker-card.speaker-card--speakerinfo .speaker-card-bio-main {
    white-space: normal;
}

.home-section .speaker-card.speaker-card--tba > .speaker-card-inner-wrapper {
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.home-section .speaker-card--tba > .speaker-card-inner-wrapper > .speaker-content.home-carousel-tba-body {
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
}

.home-section .speaker-card--tba .speaker-card-name.home-carousel-tba-title,
.home-section .speaker-card--tba .home-carousel-tba-title {
    font-weight: 600;
    color: #3A2A00;
    text-align: center;
    width: 100%;
}

/* Do not stretch every slide to the tallest peer (info HTML can be very tall). */
.home-section .speaker-section.home-carousel--minimal .speakerslider-track {
    align-items: flex-start;
}

.home-section .speaker-section.home-carousel--minimal .speakerslider-track > .speaker-card {
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio);
    height: auto;
    min-height: 0;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    align-self: flex-start;
}

.home-section .speaker-section.home-carousel--minimal .speakerslider-track > .speaker-card > .speaker-card-inner-wrapper {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    width: 100%;
    box-sizing: border-box;
    overflow-y: auto;
}

.home-section .programme-section .programme-slider.home-carousel--minimal,
.home-programme-section .programme-slider.home-carousel--minimal {
    align-items: flex-start;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

.home-section .programme-section .programme-slider.home-carousel--minimal > *,
.home-programme-section .programme-slider.home-carousel--minimal > * {
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio);
    height: auto;
    min-height: 0;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-self: flex-start;
}

.home-section .programme-section .programme-slider.home-carousel--minimal .programme-day-content,
.home-programme-section .programme-slider.home-carousel--minimal .programme-day-content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Shared TBA title placement (speakers + programme when Settings = No) */
.home-carousel--minimal .home-carousel-tba-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 0;
    box-sizing: border-box;
}

.home-carousel--minimal .home-carousel-tba-title {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    border: none;
    font-family: var(--title-font);
    font-size: 1.3rem;
    font-weight: 600 !important;
    line-height: 1.25;
    text-align: center;
    width: 100%;
}

.home-section .programme-slider.home-carousel--minimal > .programme-tba .home-carousel-tba-title,
.home-programme-section .programme-slider.home-carousel--minimal > .programme-tba .home-carousel-tba-title {
    color: #ffffff;
}

.home-section .speaker-section.home-carousel--minimal .speakerslider-track > .speaker-card.speaker-card--tba {
    flex-direction: column;
    align-items: stretch;
}

.home-section .speaker-section.home-carousel--minimal .speaker-card--tba > .speaker-card-inner-wrapper {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 0;
    max-height: 100%;
    box-sizing: border-box;
}

.home-section .speaker-section.home-carousel--minimal .speaker-card--tba > .speaker-card-inner-wrapper > .speaker-content.home-carousel-tba-body {
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.home-section .speaker-section.home-carousel--minimal .speaker-card--tba .speaker-card-name.home-carousel-tba-title,
.home-section .speaker-section.home-carousel--minimal .speaker-card--tba .home-carousel-tba-title {
    font-weight: 600 !important;
    color: #3A2A00;
    text-align: center !important;
    width: 100%;
}

.home-section .speaker-card > .speaker-card-inner-wrapper > .speaker-content {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    background-color: transparent;
    padding: 8px;
    border-radius: 5px;
    box-sizing: border-box;
    overflow: visible;
}

.home-section .speaker-card .speaker-card-long-bio {
    width: 100%;
    max-width: 100%;
    margin-top: 0.5rem;
    padding: 0.5rem 16px 0 16px;
    background: #ffffff;
    border: none;
    border-radius: 5px;
    box-sizing: border-box;
}

.home-section .speaker-card .speaker-card-long-bio-title {
    margin: 0 0 0.4rem 0;
    font-family: var(--title-font);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.25;
    color: #003153;
    text-align: left;
}

.home-section .speaker-card .speaker-card-long-bio-main {
    min-width: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: pre-wrap;
    font-size: 0.9rem;
    line-height: 1.6;
}

.home-section .speaker-card .speaker-card-bio-main {
    min-width: 0;
    overflow-wrap: break-word;
    word-wrap: break-word;
    white-space: normal;
    font-size: 0.9rem;
    line-height: 1.6;
}

/* Same scale as `.programmestyle h3` on programme day cards; colour is black on the white speaker slide. */
.home-section .speaker-card .speaker-card-name {
    flex-shrink: 0;
    font-family: var(--title-font);
    font-size: 1.3rem;
    font-weight: 600;
    color: #3A2A00;
    margin: 0;
    padding: 0;
    border: none;
    line-height: 1.25;
    text-align: center;
    width: 100%;
}

.home-section .speaker-card-bio {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    width: auto;
    max-width: none;
    overflow: visible;
    display: flow-root;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #3A2A00;
    text-align: left;
    white-space: normal;
    background: transparent;
    padding: 8px 0 0 0;
    border-radius: 0;
    box-sizing: border-box;
}

/* Programme day–matched scale; colours inherit from `.speaker-card-bio` (not programme gold/white). */
.home-section .speakerslider .speaker-card-bio h2 {
    font-weight: 600;
    text-align: left;
    white-space: normal;
    margin: 0 0 0.5rem 0;
}

.home-section .speakerslider .speaker-card-bio h3 {
    font-size: 1.3rem;
    font-weight: 600;
    font-family: var(--title-font);
    text-align: center;
    white-space: normal;
    margin: 0 0 0.5rem 0;
}

.home-section .speakerslider .speaker-card-bio h4 {
    font-size: 0.9rem;
    font-weight: 600;
    text-align: left;
    white-space: normal;
    margin: 0 0 0.5rem 0;
}

.home-section .speakerslider .speaker-card-bio p {
    margin: 0 0 1rem 0;
    font-size: 0.9rem;
    line-height: 1.6;
    white-space: normal;
}

.home-section .speakerslider .speaker-card-bio p:last-child {
    margin-bottom: 0;
}

.home-section .speaker-card-bio.about-text a {
    color: #003153;
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: inherit;
}

.home-section .speaker-card-bio.about-text a:hover {
    color: #001f2e;
}

@media (min-width: 769px) {
    .home-section .speaker-card-bio {
        font-size: 0.9rem;
    }
}

.speaker-placeholder-label {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 0.95rem;
    font-weight: 500;
    color: #003153;
}

/* Feed Layout */
.feed {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 0;
}

.introslider,
.programme-slider {
    --introslider-column-width: 400px;
    display: flex;
    flex-wrap: nowrap;
    background-color: transparent;
    border-radius: 0;
    overflow-x: auto;
}

.introslider {
    --introslider-card-width-scale: 0.978285; /* prior scale × 1.1 (+10%) */
    --introslider-column-width: calc(400px * var(--introslider-card-width-scale));
    --introslider-card-shadow: var(--tbs-action-btn-shadow);
    align-items: flex-start;
    overflow-y: hidden;
    gap: 16px;
}

/* All slides share the row cross-size (height of the tallest slide) */
.programme-slider {
    align-items: stretch;
    overflow-y: hidden;
    gap: 0;
    margin: 0;
}

body.horizontal-slider-dragging,
body.horizontal-slider-dragging * {
    cursor: grabbing !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    scroll-behavior: auto !important;
}

/* Wide screens: introslider pink bar; programme + speakers scroll with no visible bar */
@media (min-width: 769px) {
    :root {
        --horizontal-slider-scrollbar-height: 12px;
        --horizontal-slider-scrollbar-radius: 6px;
    }

    .introslider,
    .home-section .speakerslider-track {
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 0;
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-overflow-scrolling: touch;
    }

    .programme-slider {
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 0;
        scrollbar-width: none;
        -ms-overflow-style: none;
        -webkit-overflow-scrolling: touch;
        gap: 0;
    }

    .introslider {
        gap: 16px;
    }

    .home-section .speakerslider-track > .speaker-placeholder {
        max-height: none;
    }

    .home-section .speakerslider-track > .speaker-card {
        align-items: flex-start;
    }

    .home-section .speaker-card > .speaker-card-inner-wrapper > .speaker-content {
        width: auto;
        min-width: 0;
        overflow: visible;
    }

    /* Native scrollbars: hidden on horizontal carousels (introslider uses custom bar below) */
    .introslider::-webkit-scrollbar,
    .programme-slider::-webkit-scrollbar,
    .home-section .speakerslider-track::-webkit-scrollbar,
    .flyer-section .introslider::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }

    .home-section .introslider-inner-wrapper > .introslider,
    .home-section .programmeslider-innerwrapper .programme-slider,
    .home-programme-section .programmeslider-innerwrapper .programme-slider,
    .home-section .speakers-inner-wrapper .speakerslider-track {
        scrollbar-width: none !important;
        -ms-overflow-style: none;
    }

    .home-section .introslider-inner-wrapper > .introslider::-webkit-scrollbar,
    .home-section .programmeslider-innerwrapper .programme-slider::-webkit-scrollbar,
    .home-programme-section .programmeslider-innerwrapper .programme-slider::-webkit-scrollbar,
    .home-section .speakers-inner-wrapper .speakerslider-track::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }

    /* Programme + speakers: no custom scrollbar on wide screens */
    .home-section .programmeslider-innerwrapper > .home-introslider-scrollbar,
    .home-programme-section .programmeslider-innerwrapper > .home-introslider-scrollbar,
    .home-section .speakers-inner-wrapper > .home-introslider-scrollbar {
        display: none !important;
        visibility: hidden !important;
        width: 0 !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        opacity: 0 !important;
        pointer-events: none !important;
        overflow: hidden !important;
    }

    /* Home introslider: custom pink bar (Safari-safe), always visible on wide screens */
    .home-section .introslider-inner-wrapper > .home-introslider-scrollbar {
        display: block;
        visibility: visible;
        flex-shrink: 0;
        align-self: center;
        /* Full scrollbar (gray track + pink thumb) = 2/3 of introslider width */
        width: calc(100% * 2 / 3);
        max-width: calc(100% * 2 / 3);
        height: var(--horizontal-slider-scrollbar-height);
        box-sizing: border-box;
        padding: 0;
        margin: 32px auto 0;
        opacity: 1;
        pointer-events: auto;
    }

    .home-introslider-scrollbar--nooverflow {
        visibility: hidden;
        height: 0;
        margin: 0;
        overflow: hidden;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .home-section .introslider-inner-wrapper > .home-introslider-scrollbar .home-introslider-scrollbar-track {
        position: relative;
        width: 100%;
        max-width: 100%;
        height: 100%;
        border-radius: var(--horizontal-slider-scrollbar-radius);
        background-color: rgba(240, 224, 235, 0.45);
        cursor: pointer;
        pointer-events: auto;
    }

    .home-section .introslider-inner-wrapper > .home-introslider-scrollbar .home-introslider-scrollbar-thumb {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        min-width: 22px;
        border-radius: var(--horizontal-slider-scrollbar-radius);
        background: var(--tbs-pink);
        background-color: var(--tbs-pink);
        pointer-events: auto;
        cursor: grab;
        touch-action: none;
        box-sizing: border-box;
        will-change: transform, width;
    }

    .home-section .introslider-inner-wrapper > .home-introslider-scrollbar .home-introslider-scrollbar-thumb.is-dragging {
        cursor: grabbing;
    }

    .home-section .introslider-inner-wrapper > .home-introslider-scrollbar .home-introslider-scrollbar-thumb:hover {
        background: var(--tbs-pink-soft);
        background-color: var(--tbs-pink-soft);
    }

    /* Inner slide overflow (tall copy): hide scrollbars on wide screens */
    .introslider > *,
    .programme-slider > *,
    .programme-day-slide {
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .introslider > *::-webkit-scrollbar,
    .programme-slider > *::-webkit-scrollbar,
    .programme-day-slide::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }

    /* Site-wide scrollbar suppression (wide screens only) */
    html,
    body {
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    html::-webkit-scrollbar,
    body::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }

    * {
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    *::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
}

/* Introslider slides: fixed width; horizontal scroll when narrow */
.introslider > * {
    flex: 0 0 var(--introslider-column-width);
    width: var(--introslider-column-width);
    min-width: var(--introslider-column-width);
    overflow: hidden;
    position: relative;
    border: 1px solid #D1D5DB;
    border-radius: 5px !important;
    box-shadow: var(--introslider-card-shadow, var(--tbs-action-btn-shadow)) !important;
}

/* Home introslider: card height from content (tallest slide — set in script.js) */
body.home-view .home-section .introslider-inner-wrapper > .introslider {
    align-items: stretch;
}

body.home-view .home-section .introslider-inner-wrapper > .introslider > * {
    aspect-ratio: auto !important;
    height: auto !important;
    min-height: var(--home-introslider-card-height, auto);
    max-height: none !important;
    align-self: stretch !important;
    box-sizing: border-box;
    overflow: hidden;
    padding-top: 8px !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > * {
    padding-top: 8px !important;
    padding-bottom: 0 !important;
}

/* Introslider left edge breathing space (requested) */
.introslider > *:first-child {
    margin-left: 16px;
}

/* Introslider right edge breathing space (requested) */
.introslider > *:last-child {
    margin-right: 16px;
}

/* Programme slides: fixed width; stretch to common row height; no borders */
.programme-slider > * {
    flex: 0 0 var(--introslider-column-width);
    width: var(--introslider-column-width);
    min-width: var(--introslider-column-width);
    min-height: 0;
    align-self: stretch;
    overflow: visible;
    position: relative;
    border: 1px solid #D1D5DB !important;
    border-right: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box;
    background-color: transparent;
    background-image: url('images/starrynight.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    margin: 0;
}

.programme-slider > *:last-child,
.programme-slider > *:only-child {
    border-right: 1px solid #D1D5DB !important;
}

.programme-slider > .programme-info + * {
    border-left: none !important;
}

.programme-slider > .programme-info ~ * {
    padding-top: 24px !important;
}

/* Vertical dividers between programme slides (not outer left edge of first slide) */
.programme-slider > *:not(:first-child) {
    border-left-color: #ffffff !important;
}

.programme-slider > *:first-child:not(:only-child) {
    border-radius: 5px 0 0 5px !important;
}

.programme-slider > *:last-child:not(:first-child) {
    border-radius: 0 5px 5px 0 !important;
}

.programme-slider > *:only-child {
    border-radius: 5px !important;
}

/* Programme day slides (home Tue–Fri + backend editor): shared card chrome */
.programme-slider > .programme-day-slide,
#programme-editor .programme-editor-day.programme-day-slide {
    flex: 0 0 var(--introslider-column-width);
    width: var(--introslider-column-width);
    min-width: var(--introslider-column-width);
    min-height: 0;
    align-self: flex-start;
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
    background-color: transparent;
    background-image: url('images/starrynight.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border: 1px solid #D1D5DB;
    border-right: none;
    border-radius: 0;
    padding: 1.25rem 8px;
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    margin: 0;
    box-shadow: none;
}

.programme-slider > .programme-day-slide {
    align-self: stretch;
}

#programme-editor .programme-editor-day.programme-day-slide {
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio);
    cursor: pointer;
}

.programme-slider > .programme-day-slide:last-child,
.programme-slider > .programme-day-slide:only-child,
#programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide:last-child,
#programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide:only-child {
    border-right: 1px solid #D1D5DB;
}

.programme-slider > .programme-day-slide:not(:first-child),
#programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide:not(:first-child) {
    border-left-color: #ffffff;
}

.programme-slider > .programme-day-slide:first-child:not(:only-child),
#programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide:first-child:not(:only-child) {
    border-radius: 5px 0 0 5px;
}

.programme-slider > .programme-day-slide:last-child:not(:first-child),
#programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide:last-child:not(:first-child) {
    border-radius: 0 5px 5px 0;
}

.programme-slider > .programme-day-slide:only-child,
#programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide:only-child {
    border-radius: 5px;
}

#programme-editor .programme-editor-day.programme-day-slide.is-selected {
    border: 1px solid #fc70d7;
    border-right: 1px solid #fc70d7;
    border-radius: 5px;
    box-sizing: border-box;
    z-index: 1;
}

@media (min-width: 769px) {
    .home-section .programme-section .programme-slider.home-carousel--minimal > .programme-day-slide,
    .home-programme-section .programme-slider.home-carousel--minimal > .programme-day-slide,
    #programme-editor .programme-grid-row > .programme-editor-day.programme-day-slide {
        aspect-ratio: var(--home-carousel-minimal-aspect-ratio) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        align-self: flex-start !important;
        overflow: hidden auto !important;
    }
}

/* Introslider cards: 8px top inset (desktop clickable slides use 24px below) */
.home-section .introslider > * {
    padding-top: 8px;
    padding-bottom: 0;
}

/* Same bottom black gradient on home introslider panels only (not flyer page slider) */
.home-section .introslider > *::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0; /* removed: titles now get their own semi-transparent background */
    background: none;
    pointer-events: none;
    z-index: 0;
}

/* All titles in introslider containers use H3 styling */
.introslider h1,
.introslider h2,
.introslider h4,
.introslider h5,
.introslider h6,
.programme-slider h1,
.programme-slider h2,
.programme-slider h5,
.programme-slider h6,
.programme-day-slide h1,
.programme-day-slide h2,
.programme-day-slide h5,
.programme-day-slide h6 {
    font-size: 1.7rem;
    font-weight: 600;
    font-family: var(--title-font);
}

.introslider-indicators {
    display: none;
}

/* Introslider slide shells — exclude home hero About (white panel at end of file). */
.flyer-section .introslider .about,
.flyer-section .introslider .location,
.flyer-section .introslider .pasttalks,
.flyer-section .introslider .register,
.flyer-section .introslider .about-programme,
.flyer-section .introslider .tbsonsocial,
.introslider-inner-wrapper:not(.home-hero-introslider) .about,
.introslider-inner-wrapper:not(.home-hero-introslider) .location,
.introslider-inner-wrapper:not(.home-hero-introslider) .pasttalks,
.introslider-inner-wrapper:not(.home-hero-introslider) .register,
.introslider-inner-wrapper:not(.home-hero-introslider) .about-programme,
.introslider-inner-wrapper:not(.home-hero-introslider) .tbsonsocial,
.introslider-wrapper .about,
.introslider-wrapper .location,
.introslider-wrapper .pasttalks,
.introslider-wrapper .register,
.introslider-wrapper .about-programme,
.introslider-wrapper .tbsonsocial {
    background-color: #003153;
    padding: 16px 8px;
    display: flex;
    flex-direction: column;
}

.about-title {
    margin: 0;
    font-family: var(--title-font);
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.3;
    color: #FFD700;
    flex-shrink: 0;
}

/* Scoped so generic class name does not hit feed / other pages */
.about .about-text,
.location .about-text,
.pasttalks .about-text,
.register .about-text,
.about-programme .about-text,
.tbsonsocial .about-text,
.about .about-text {
    flex: 1;
    min-height: 0;
    overflow: auto;
    border-radius: 0 !important;
    font-size: 1rem;
    line-height: 1.6;
    color: #ffffff;
}

.about .about-text p,
.location .about-text p,
.pasttalks .about-text p,
.register .about-text p,
.about-programme .about-text p,
.tbsonsocial .about-text p,
.about .about-text p {
    margin: 0 0 1rem 0;
}

.about .about-text p:last-child,
.location .about-text p:last-child,
.pasttalks .about-text p:last-child,
.register .about-text p:last-child,
.about-programme .about-text p:last-child,
.tbsonsocial .about-text p:last-child,
.about .about-text p:last-child {
    margin-bottom: 0;
}

.about .about-text a,
.location .about-text a,
.pasttalks .about-text a,
.register .about-text a,
.about-programme .about-text a,
.tbsonsocial .about-text a,
.about .about-text a {
    color: #fc70d7;
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: inherit;
}

.about .about-text a:hover,
.location .about-text a:hover,
.pasttalks .about-text a:hover,
.register .about-text a:hover,
.about-programme .about-text a:hover,
.tbsonsocial .about-text a:hover,
.about .about-text a:hover {
    color: #fc70d7;
}

/* Home social row below introslider */
.home-social-row-container {
    width: 100%;
    background-color: #003153;
    padding: 0;
    box-sizing: border-box;
    margin: 0;
    position: static;
    z-index: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-top: none;
    box-shadow: none;
}

/* Slider bottom is (gap)px above poster bottom; without this offset the social bar’s top would sit on the poster. */
body.home-view .home-section > .home-social-row-container {
    margin-top: var(--home-hero-poster-slider-gap, 16px);
}

.home-social-row-container .social-links {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    flex-wrap: nowrap;
    justify-content: center;
    width: 100%;
    align-items: center;
}

.home-social-row-container .social-links a,
.home-social-row-container .social-links a i,
.home-social-row-container .social-links a i.fab {
    color: var(--tbs-pink) !important;
    background: transparent !important;
}

.home-social-row-container .social-links a:hover,
.home-social-row-container .social-links a:hover i,
.home-social-row-container .social-links a:hover i.fab {
    color: var(--tbs-pink-soft) !important;
    background: transparent !important;
}

@media (max-width: 768px) {
    body.home-view {
        --mobile-home-header-top: calc(8px + env(safe-area-inset-top, 0px));
        --mobile-home-header-height: 33px;
    }

    body.home-view:not(.past-talks-open) .home-section > picture {
        --poster-mobile-overlay-shift-y: 50px;
    }

    /* Narrow poster: maintitles + logo stacks shifted down on load */
    body.home-view:not(.past-talks-open) .home-section > picture .poster-maintitles {
        top: var(--poster-mobile-overlay-shift-y);
        height: 33.333%;
        max-height: 33.333%;
        justify-content: center;
        z-index: 10049;
        width: 100%;
        max-width: 100%;
        left: 0;
        right: 0;
    }

    body.home-view:not(.past-talks-open) .home-section > picture :is(
        .mobile-poster-logo,
        .poster-bottom-right-logo
    ) {
        transform: translateY(var(--poster-mobile-overlay-shift-y));
    }

    body.home-view .home-section > picture .poster-maintitles .maintitle-heading {
        font-size: 5rem !important;
        font-weight: 500 !important;
        line-height: 1.12 !important;
        overflow: visible;
        text-overflow: clip;
        display: flex;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    body.home-view .home-section > picture .poster-maintitles .poster-maintitle-text {
        display: none !important;
    }

    body.home-view .home-section > picture .poster-maintitles .poster-maintitle-logo {
        display: block;
        width: auto;
        height: 6rem;
        max-width: min(88vw, 432px);
        margin: 0 auto;
        object-fit: contain;
        object-position: center center;
        filter: var(--poster-hero-logo-shadow);
    }

    body.home-view .home-section > picture .poster-maintitles .tbs27-card-subtitle {
        font-size: clamp(1.15rem, 5vw, 1.85rem) !important;
    }

    /* Mobile: move social icons into a Prussian-blue bar below the poster logo */
    body.home-view .home-section > .home-social-row-container {
        position: static;
        width: 100%;
        left: auto;
        right: auto;
        top: auto;
        bottom: auto;
        padding: 0;
        background-color: #003153;
        z-index: auto;
    }

    body.home-view .home-section > .home-social-row-container .social-links {
        width: 100%;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex-wrap: nowrap;
    }

    body.home-view .home-section > .home-social-row-container .social-links a,
    body.home-view .home-section > .home-social-row-container .social-links a i,
    body.home-view .home-section > .home-social-row-container .social-links a i.fab {
        color: var(--tbs-pink) !important;
        background: transparent !important;
    }

    body.home-view .home-section > .home-social-row-container .social-links a:hover,
    body.home-view .home-section > .home-social-row-container .social-links a:hover i,
    body.home-view .home-section > .home-social-row-container .social-links a:hover i.fab {
        color: var(--tbs-pink-soft) !important;
        background: transparent !important;
    }
}

/* TBS27 / flyer section: max-width centered, no horizontal inset */
.flyer-section {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 0 2rem 0;
    box-sizing: border-box;
    min-width: 0;
    background-color: #FAFAFA;
}

/* Home programme block: full width, Prussian band */
.home-programme-section {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-bottom: 0;
    background-color: #003153;
}

/* TBS27: no margins on any element inside the flyer column (.flyer-section keeps horizontal auto margin) */
.flyer-section * {
    margin: 0 !important;
}

/* Programme page: poster row (A3 only); about copy is introslider slide 2 */
.flyer-section > .flyer-poster-about-row {
    --introslider-column-width: 500px;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0 0 1rem 0 !important;
}

@media (max-width: 1024px) {
    .flyer-section > .flyer-poster-about-row {
        --introslider-column-width: 100%;
    }

    .flyer-poster-about-row {
        flex-direction: column;
        gap: 8px;
    }

    .flyer-poster-about-row > .flyer-poster {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

.flyer-poster-about-row > .flyer-poster {
    flex: 0 0 var(--introslider-column-width);
    width: var(--introslider-column-width);
    min-width: var(--introslider-column-width);
    aspect-ratio: 297 / 420;
    border-radius: 5px;
    border: 1px solid #d1d5db;
    overflow: hidden;
    box-sizing: border-box;
    position: relative;
}

.flyer-poster {
    background-color: #ffd700;
}

.flyer-poster .flyer-poster-picture {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    line-height: 0;
}

.flyer-poster-a3-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border: none;
    border-radius: 0;
    margin: 0;
    padding: 0;
    vertical-align: top;
    max-width: none;
}

/* Programme flyer: about slide — spacer.png | scrollable about-text | spacer.png */
.flyer-section .introslider > .about {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    min-height: 0;
    padding: 0;
    background-color: #003153;
    background-image: none;
    box-sizing: border-box;
    position: relative;
    container-type: inline-size;
    container-name: about-slide;
}

.home-section .programme-slider > .about,
.home-programme-section .programme-slider > .about {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    min-height: 0;
    padding: 0;
    background-color: transparent;
    background-image: url('images/starrynight.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    box-sizing: border-box;
    position: relative;
    container-type: inline-size;
    container-name: about-slide;
}

.flyer-section .introslider > .about .about-title,
.home-section .programme-slider > .about .about-title,
.home-programme-section .programme-slider > .about .about-title {
    flex-shrink: 0;
}

/* spacer.png: keep natural proportional height (no cropping; no forced box sizing) */
.flyer-section .introslider > .about > .about-spacer,
.home-section .programme-slider > .about > .about-spacer,
.home-programme-section .programme-slider > .about > .about-spacer,
.home-section .introslider > .about > .about-spacer,
.home-section .introslider > .location > .about-spacer {
    display: block;
    width: 100%;
    height: auto;
    flex-shrink: 0;
    object-fit: contain;
    object-position: center;
    pointer-events: none;
    vertical-align: top;
    transform: scaleY(-1);
    transform-origin: center;
}

.flyer-section .introslider > .about .about-text,
.home-section .programme-slider > .about .about-text,
.home-programme-section .programme-slider > .about .about-text {
    flex: 1 1 auto;
    min-height: 0;
    align-self: stretch;
    width: 100%;
    overflow: visible;
    padding-left: 16px;
    box-sizing: border-box;
}

/* About block: full width of parent (legacy / nested layouts) */
.about {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 0;
    border: none;
    overflow: hidden;
    padding: 0;
}

.flyer-section .introslider > .about .about-text,
.home-section .programme-slider > .about .about-text,
.home-programme-section .programme-slider > .about .about-text {
    padding-top: 4px;
}

/*
 * Event / Location headings in the programme flyer about slide (introslider slide 2).
 * Same typography as .featured-programme-title; margin-bottom 0.3rem; white on navy; no forced caps.
 */
.flyer-section .introslider > .about .about-title,
.home-section .programme-slider > .about .about-title,
.home-programme-section .programme-slider > .about .about-title {
    margin: 0 0 0.3rem 0 !important;
    font-family: var(--title-font);
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.3;
    flex-shrink: 0;
    text-transform: none;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    padding: 0;
    max-height: none;
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    -webkit-box-orient: unset;
}

.flyer-section .introslider > .about .about-title {
    color: #ffd700;
}

.home-section .programme-slider > .about .about-title,
.home-programme-section .programme-slider > .about .about-title {
    color: #ffffff;
}

.about .about {
    border-radius: 0;
    border: none;
}

.about .about-text {
    overflow: visible;
    min-height: 0;
}

/* About: text left, YouTube right; wrap so video drops below text when narrow (no overlap) */
.about .about-body {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 1rem;
    width: 100%;
    min-width: 0;
    padding-left: 16px;
    box-sizing: border-box;
}

.about .about-body .about-text {
    flex: 1 1 280px;
    min-width: 0;
}

/* Fixed max width beside text; shrinks/wraps — never overlaps paragraph */
.about .featured-about-video-wrap {
    flex: 0 1 420px;
    min-width: 0;
    max-width: 100%;
}

/* When the about panel is narrow, video uses full row under the text */
.about .about {
    container-type: inline-size;
    container-name: about-featured;
}

@container about-featured (max-width: 680px) {
    .about .about-body .featured-about-video-wrap {
        flex: 1 1 100%;
        max-width: none;
    }
}

.about .featured-about-video-aspect {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 4px;
    border: 1px solid #FFD700;
    box-sizing: border-box;
    overflow: hidden;
}

.about .featured-about-video-aspect iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Location block: full width below about, outside slider */
.flyer-location-below {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    border-radius: 0;
    border: none;
    overflow: hidden;
}

.flyer-location-below .featured-location {
    border-radius: 0;
    border: none;
}

.flyer-location-below .featured-location-content {
    overflow: visible;
    min-height: 0;
}

.programme-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow: visible;
    background-color: #ffffff !important;
    padding: 0 8px;
    margin: 0;
    border-radius: 0 !important;
}

.programmeslider-innerwrapper {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    overflow: visible;
    position: relative;
    padding-top: 16px;
    padding-bottom: 16px;
    padding-left: 0;
    padding-right: 0;
    border-radius: 0;
}

/* TBS27 introslider track: same width behavior as carousel inside .home-section */
.flyer-section .introslider {
    --introslider-card-width-scale: 0.978285; /* prior scale × 1.1 (+10%) */
    --introslider-column-width: calc(var(--home-carousel-slide-width, 450px) * var(--introslider-card-width-scale));
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: #FAFAFA;
}

/* Home programme track (under .home-section or .home-programme-section feed fallback) */
.home-section .programme-slider,
.home-programme-section .programme-slider {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background-color: transparent;
    background-image: none;
    --introslider-column-width: var(--home-carousel-slide-width, 450px);
    align-items: flex-start;
    justify-content: center;
    justify-content: safe center;
    gap: 0 !important;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding-left: 0;
    padding-right: 0;
    cursor: grab;
}

/* TBS27 slides: same fixed column width as home introslider panels */
.flyer-section .introslider > *,
.home-section .programme-slider > *,
.home-programme-section .programme-slider > * {
    flex: 0 0 var(--introslider-column-width) !important;
    width: var(--introslider-column-width) !important;
    min-width: var(--introslider-column-width) !important;
    max-width: none !important;
}

.flyer-section .introslider > * {
    border: none !important;
    border-radius: 5px !important;
}

.home-section .programme-slider > *,
.home-programme-section .programme-slider > * {
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio);
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    align-self: flex-start !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border: 1px solid #D1D5DB !important;
    border-right: none !important;
    padding-top: 24px !important;
    padding-bottom: 24px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

/*
 * Home programme (displayed): no inner scroll. Every slide — including
 * `.programme-info` — shares one size (CSS vars set in script.js).
 */
body.home-view .home-section .programme-slider,
body.home-view .home-programme-section .programme-slider,
body.home-view .home-section .speakerslider-track {
    align-items: stretch;
}

body.home-view .home-section .programme-slider > *,
body.home-view .home-programme-section .programme-slider > *,
body.home-view .home-section .programme-slider > .programme-info,
body.home-view .home-programme-section .programme-slider > .programme-info,
body.home-view .home-section .speakerslider-track > .speaker-card,
body.home-view .home-section .speakerslider-track > .speaker-placeholder,
body.home-view .home-section .speakerslider-track > .speaker-card--speakerinfo {
    flex: 0 0 var(--home-programme-fit-width, var(--home-carousel-slide-width, 450px)) !important;
    width: var(--home-programme-fit-width, var(--home-carousel-slide-width, 450px)) !important;
    min-width: var(--home-programme-fit-width, var(--home-carousel-slide-width, 450px)) !important;
    max-width: var(--home-programme-fit-width, var(--home-carousel-slide-width, 450px)) !important;
    aspect-ratio: auto !important;
    height: var(--home-programme-fit-height, auto) !important;
    min-height: var(--home-programme-fit-height, calc(var(--home-carousel-slide-width, 450px) * 1920 / 1080)) !important;
    max-height: var(--home-programme-fit-height, none) !important;
    align-self: stretch !important;
    overflow: hidden !important;
}

body.home-view .home-section .speakerslider-track > .speaker-card > .speaker-card-inner-wrapper {
    overflow: hidden;
    max-height: none;
}

body.home-view .home-section .programme-slider:not(.home-carousel--minimal) .programme-day-content,
body.home-view .home-section .programme-slider:not(.home-carousel--minimal) .programme-day-slide .programme-day-content,
body.home-view .home-programme-section .programme-slider:not(.home-carousel--minimal) .programme-day-content,
body.home-view .home-programme-section .programme-slider:not(.home-carousel--minimal) .programme-day-slide .programme-day-content {
    flex: 1 0 auto;
    min-height: min-content;
    max-height: none;
    overflow: visible;
}

.home-section .programme-slider > *:last-child,
.home-programme-section .programme-slider > *:last-child,
.home-section .programme-slider > *:only-child,
.home-programme-section .programme-slider > *:only-child {
    border-right: 1px solid #D1D5DB !important;
}

.home-section .programme-slider > .programme-info + *,
.home-programme-section .programme-slider > .programme-info + * {
    border-left: none !important;
}

.home-section .programme-slider > .programme-info ~ *,
.home-programme-section .programme-slider > .programme-info ~ * {
    padding-top: 24px !important;
}

.home-section .programme-slider > *:not(:first-child),
.home-programme-section .programme-slider > *:not(:first-child) {
    border-left-color: #ffffff !important;
}

.home-section .programme-slider > *:first-child,
.home-programme-section .programme-slider > *:first-child {
    margin-left: 16px !important;
}

.home-section .programme-slider > *:last-child,
.home-programme-section .programme-slider > *:last-child {
    margin-right: 16px !important;
}

.home-section .speakerslider-track > .speaker-card:last-child,
.home-section .speakerslider-track > .speaker-placeholder:last-child {
    margin-right: 16px !important;
}

/* TBS27 daily programme boxes */
.programme-tuesday,
.programme-wednesday,
.programme-thursday,
.programme-friday {
    background-color: transparent;
    background-image: url('images/starrynight.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    padding: 1.25rem 8px;
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    border: 1px solid #D1D5DB;
    border-right: none;
    border-radius: 0 !important;
    box-sizing: border-box;
    box-shadow: none;
}

/* Programme intro card — single source (home carousel + backend Snippets render preview) */
.programme-info {
    position: relative;
    isolation: isolate;
    overflow: hidden !important;
    min-height: 0;
    background-color: #003153;
    background-image: none;
    padding: 24px 50px 24px 16px !important;
    display: flex;
    flex-direction: column;
    border: 1px solid #D1D5DB;
    border-right: none;
    border-radius: 5px 0 0 5px !important;
    box-sizing: border-box;
    box-shadow: none;
    flex: 0 0 var(--home-carousel-slide-width, 450px) !important;
    width: var(--home-carousel-slide-width, 450px) !important;
    min-width: var(--home-carousel-slide-width, 450px) !important;
    max-width: var(--home-carousel-slide-width, 450px) !important;
    aspect-ratio: var(--home-carousel-minimal-aspect-ratio, 1080 / 1920);
    height: auto !important;
    align-self: flex-start !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

.programme-info::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: url('images/programmeinfo.png');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: cover;
    pointer-events: none;
}

.programme-info > .programme-info-title {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    margin: 0 0 0.5rem 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
    text-align: left !important;
    width: 100%;
}

@media (max-width: 768px) {
    .programme-info > .programme-info-title {
        text-align: center !important;
    }
}

.programme-info > .programme-day-content {
    position: relative;
    z-index: 1;
    background-color: transparent;
}

/* Backend Snippets: layout wrapper only — visual design lives on `.programme-info` */
.texteditor-render-html .programme-slider--programme-info-preview {
    display: inline-flex;
    align-items: flex-start;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    box-shadow: none;
    background: transparent;
}

.programme-day-content,
.programme-day-slide .programmestyle,
.programme-tuesday .programmestyle,
.programme-wednesday .programmestyle,
.programme-thursday .programmestyle,
.programme-friday .programmestyle,
.texteditor-render-html .programmestyle {
    flex: 1;
    min-height: 0;
    overflow: auto;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #000000;
}

/* Programme slider: fill stretched card; no inner scrollbar (row height = tallest slide) */
.programme-slider .programme-day-content,
.programme-slider .programme-day-slide .programme-day-content,
.programme-slider .programme-day-slide .programmestyle,
.programme-slider .programme-tuesday .programmestyle,
.programme-slider .programme-wednesday .programmestyle,
.programme-slider .programme-thursday .programmestyle,
.programme-slider .programme-friday .programmestyle,
#programme-editor .programme-editor-day.programme-day-slide .programme-day-content.programmestyle {
    flex: 1 1 auto;
    min-height: 0;
    overflow: visible;
    display: flex;
    flex-direction: column;
    font-size: 0.9rem;
}

/* Home programme slider + backend day cards: base copy size (h4/p also set explicitly below) */
.programme-slider .programme-day-slide .programme-day-content,
.programme-slider .programme-day-slide .programmestyle {
    font-size: 0.9rem;
}

/* Minimal slides: internal scroll (1080×1920 ratio set on home carousel cards above) */
.home-section .speaker-section.home-carousel--minimal .speakerslider-track > .speaker-card > .speaker-card-inner-wrapper,
.home-section .speaker-section.home-carousel--minimal .speaker-card > .speaker-card-inner-wrapper > .speaker-content,
.home-section .programme-slider.home-carousel--minimal .programme-day-content,
.home-section .programme-slider.home-carousel--minimal .programme-day-slide .programme-day-content,
.home-programme-section .programme-slider.home-carousel--minimal .programme-day-content,
.home-programme-section .programme-slider.home-carousel--minimal .programme-day-slide .programme-day-content,
.home-section .programme-slider.home-carousel--minimal .programme-info,
.home-section .programme-slider.home-carousel--minimal .programme-tba,
.home-programme-section .programme-slider.home-carousel--minimal .programme-info,
.home-programme-section .programme-slider.home-carousel--minimal .programme-tba {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow: auto;
}

@media (min-width: 769px) {
    .home-section .speaker-section.home-carousel--minimal .speakerslider-track > .speaker-card,
    .home-section .programme-section .programme-slider.home-carousel--minimal > *,
    .home-programme-section .programme-slider.home-carousel--minimal > * {
        aspect-ratio: var(--home-carousel-minimal-aspect-ratio) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        align-self: flex-start !important;
        overflow: hidden auto !important;
    }
}

.programme-day-content p,
.programme-slider .programme-day-slide .programme-day-content p,
.programme-slider .programme-day-slide .programmestyle p,
.programme-day-slide .programmestyle p,
#programme-editor .programme-editor-day.programme-day-slide .programmestyle p,
.programme-tuesday .programmestyle p,
.programme-wednesday .programmestyle p,
.programme-thursday .programmestyle p,
.programme-friday .programmestyle p,
.texteditor-render-html .programmestyle p {
    margin: 0 0 1rem 0;
    font-size: 0.9rem;
}

.programme-wednesday .programme-day-content p,
.programme-wednesday .programmestyle p,
.texteditor-render-html .programmestyle p {
    color: #000000;
}

.programme-day-content p:last-child,
.programme-day-slide .programmestyle p:last-child,
.programme-tuesday .programmestyle p:last-child,
.programme-wednesday .programmestyle p:last-child,
.programme-thursday .programmestyle p:last-child,
.programme-friday .programmestyle p:last-child,
.texteditor-render-html .programmestyle p:last-child {
    margin-bottom: 0;
}

.programme-day-slide .programmestyle h2,
.programme-tuesday .programmestyle h2,
.programme-wednesday .programmestyle h2,
.programme-thursday .programmestyle h2,
.programme-friday .programmestyle h2,
.texteditor-render-html .programmestyle h2 {
    font-size: 1.7rem;
    font-weight: 600;
    text-align: left;
    color: #FFD700;
}

.programme-day-slide .programmestyle h3,
.programme-tuesday .programmestyle h3,
.programme-wednesday .programmestyle h3,
.programme-thursday .programmestyle h3,
.programme-friday .programmestyle h3,
.texteditor-render-html .programmestyle h3 {
    font-size: 1.3rem;
    font-weight: 600;
    text-align: center;
    color: #ffffff;
}

/* Programme slider: titles on top of patterned backgrounds */
.programme-slider .programmestyle h2,
.programme-day-slide .programmestyle h2 {
    color: #FFD700;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.programme-slider .programmestyle h3,
.programme-day-slide .programmestyle h3 {
    font-weight: 600;
    color: #ffffff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.programme-slider .programmestyle h4,
.programme-day-slide .programmestyle h4 {
    color: #FFD700 !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

/* Programme intro card (Firestore programmeinfo): left-aligned subheads, not day-card centering */
.programme-info .programmestyle h3,
.programme-info .programmestyle h4,
.programme-info .programme-day-content h3,
.programme-info .programme-day-content h4,
.programme-slider .programme-info h3,
.programme-slider .programme-info h4,
.programme-slider .programme-info .programmestyle h3,
.programme-slider .programme-info .programmestyle h4,
.programme-info .about-title,
.programme-slider .programme-info .about-title {
    text-align: left !important;
}

/* Programme intro card: white h2 and h3 (day programme cards use centered white h3) */
.programme-info .programmestyle h2,
.programme-info .programme-day-content h2,
.programme-slider .programme-info .programmestyle h2,
.programme-slider .programme-info .programme-day-content h2,
.programme-slider .programme-info h2,
.texteditor-render-html .programme-info .programmestyle h2,
.texteditor-render-html .programme-info .programme-day-content h2 {
    color: #ffffff !important;
    text-align: left;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.programme-info .programmestyle h3,
.programme-info .programme-day-content h3,
.programme-slider .programme-info .programmestyle h3,
.programme-slider .programme-info .programme-day-content h3,
.programme-slider .programme-info h3,
.texteditor-render-html .programme-info .programmestyle h3,
.texteditor-render-html .programme-info .programme-day-content h3 {
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

/* Programme intro links: same pink as introslider scrollbar (--tbs-pink / --tbs-pink-soft) */
.programme-info .programmestyle a,
.programme-info .programme-day-content a,
.programme-slider .programme-info a,
.texteditor-render-html .programme-info .programmestyle a,
.texteditor-render-html .programme-info .programme-day-content a,
.texteditor-render-surface .texteditor-render-html .programme-info a {
    color: var(--tbs-pink) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.programme-info .programmestyle a:hover,
.programme-info .programme-day-content a:hover,
.programme-slider .programme-info a:hover,
.texteditor-render-html .programme-info .programmestyle a:hover,
.texteditor-render-html .programme-info .programme-day-content a:hover,
.texteditor-render-surface .texteditor-render-html .programme-info a:hover {
    color: var(--tbs-pink-soft) !important;
}

.programme-slider .programmestyle p,
.programme-slider .programme-day-content p,
.programme-day-slide .programmestyle p,
.programme-day-slide .programme-day-content p {
    color: #F4F0E8;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.programme-slider .programme-day-slide .programmestyle h4,
.programme-slider .programme-day-slide .programme-day-content h4,
.programme-day-slide .programmestyle h4,
#programme-editor .programme-editor-day.programme-day-slide .programmestyle h4,
#programme-editor .programme-editor-day .programme-day-session,
.programme-tuesday .programmestyle h4,
.programme-wednesday .programmestyle h4,
.programme-thursday .programmestyle h4,
.programme-friday .programmestyle h4,
.texteditor-render-html .programmestyle h4 {
    font-size: 0.9rem;
    color: #FFD700;
}

/* Programme slots (backend editor + home slider): icy blue times, white name */
.programme-slider .programme-day-slot-time,
.programme-slider .programme-day-slot-time-sep,
.programme-slider .programme-day-slot-starttime,
.programme-slider .programme-day-slot-endtime,
.programme-day-slide .programme-day-slot-time,
.programme-day-slide .programme-day-slot-time-sep,
.programme-day-slide .programme-day-slot-starttime,
.programme-day-slide .programme-day-slot-endtime,
#programme-editor .programme-day-slot-time,
#programme-editor .programme-day-slot-time-sep,
#programme-editor .programme-day-slot-starttime,
#programme-editor .programme-day-slot-endtime {
    color: var(--tbs-icy-blue);
}

.programme-slider .programme-day-slot-detail,
.programme-day-slide .programme-day-slot-detail,
#programme-editor .programme-day-slot-detail {
    color: #ffffff;
}

.programme-slider .programme-day-slot,
.programme-day-slide .programme-day-slot {
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Programme day sessions/slots layout (home slider + backend editor) */
.programme-slider > .programme-day-slide .programme-day-sessions,
#programme-editor .programme-editor-day .programme-day-sessions {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 0;
    min-width: 0;
}

.programme-slider > .programme-day-slide .programme-day-session-block,
#programme-editor .programme-day-session-block {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.programme-slider > .programme-day-slide .programme-day-session-slots,
#programme-editor .programme-day-session-slots {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0;
    min-width: 0;
}

.programme-slider > .programme-day-slide .programme-day-slot,
#programme-editor .programme-day-slot {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    padding: 0.2rem 0.45rem;
    font-size: 0.9rem;
}

.programme-slider > .programme-day-slide .programme-day-slot-time,
#programme-editor .programme-day-slot-time {
    flex-shrink: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0;
    font-variant-numeric: tabular-nums;
}

.programme-slider > .programme-day-slide .programme-day-slot-time-sep,
#programme-editor .programme-day-slot-time-sep {
    flex-shrink: 0;
    user-select: none;
    pointer-events: none;
}

.programme-slider > .programme-day-slide .programme-day-slot-starttime,
.programme-slider > .programme-day-slide .programme-day-slot-endtime,
#programme-editor .programme-day-slot-starttime,
#programme-editor .programme-day-slot-endtime {
    flex-shrink: 0;
}

.programme-slider > .programme-day-slide .programme-day-slot-detail,
#programme-editor .programme-day-slot-detail {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.programme-slider > .programme-day-slide .programme-day-session,
#programme-editor .programme-day-session {
    margin: 0;
    font-size: 0.9rem;
}

/* Location slide: white background (same A3 as .introslider > *) */
.featured-location {
    background-color: #FAFAFA;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
}

.featured-location-title {
    margin: 0 0 1rem 0;
    font-family: var(--title-font);
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.3;
    color: #003153;
    flex-shrink: 0;
}

.featured-location-content {
    flex: 1;
    min-height: 0;
    overflow: auto;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #1f2937;
}

.featured-location-content p {
    margin: 0 0 1rem 0;
}

.featured-location-content p:last-child {
    margin-bottom: 0;
}

/* Programme slide: yellow (TBS27, matches ABOUT slide) */
.featured-programme {
    background-color: #FFD700;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
}

.featured-programme-title {
    margin: 0 0 1rem 0;
    font-family: var(--title-font);
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.3;
    color: #000000;
    flex-shrink: 0;
}

/* .flyer-section * zeros margins; restore programme slide title spacing to match about-column titles */
.flyer-section .featured-programme-title {
    margin: 0 0 1rem 0 !important;
    text-transform: none;
}

.featured-programme-content {
    flex: 1;
    min-height: 0;
    overflow: auto;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #000000;
}

.featured-programme-content p {
    margin: 0 0 1rem 0;
}

.featured-programme-content p:last-child {
    margin-bottom: 0;
}

.featured-bottom-title {
    position: absolute;
    bottom: 0;
    left: 16px;
    right: auto;
    width: fit-content;
    max-width: calc(100% - 16px);
    margin: 0;
    padding: 0 8px;
    border-radius: 5px;
    color: #ffffff;
    font-family: var(--title-font);
    font-size: 1.7rem;
    font-weight: 600;
    text-align: left;
    z-index: 1;
}

.section-title-row {
    display: flex;
    gap: 2rem;
    align-items: stretch;
    justify-content: space-between;
    margin: 0;
    margin-bottom: 0;
    padding-top: 0.335rem;
    padding-bottom: 0.335rem;
}

.section-title {
    display: flex;
    gap: 2rem;
    align-items: stretch;
    justify-content: space-between;
    margin: 0;
    margin-bottom: 0;
    padding-top: 0.67rem;
    padding-bottom: 0;
    font-size: 1.4rem;
    font-weight: 600;
    color: #003153;
    text-align: center;
    background: transparent;
}

.feedtitle {
    display: flex;
    gap: 2rem;
    align-items: stretch;
    justify-content: space-between;
    margin: 0;
    font-size: 1.4rem;
    font-weight: 600;
    color: #003153;
}


.featured-video,
.featured-b,
.featured-pasttalks {
    width: 240px !important;
    max-width: 240px !important;
    background-color: #FFFFFF;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    padding: 16px 0 10px 16px; /* top matches welcometext (16px) */
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    text-align: left;
}

.featured-video {
    position: relative;
    overflow: hidden;
    background-color: #FFFFFF;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.home-section .featured-video,
.past-talks-section .featured-video {
    background-color: #FFFFFF !important;
}

.featured-video .featured-video-image,
.featured-video .featured-video-text {
    width: 100%;
    min-width: 0;
}

.featured-video .featured-video-image {
    flex: 0 0 auto;
    aspect-ratio: 16 / 9;
    background-color: #FFFFFF;
    position: relative;
    overflow: hidden;
}

.featured-video .featured-video-image .featured-video-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.featured-video .featured-video-thumbnail-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.featured-video .featured-video-text {
    flex: 1 1 0;
    min-height: 0;
    padding: 8px;
    background-color: #FFFFFF;
}

.home-section .introslider > .featured-video .featured-video-text {
    padding-bottom: 4rem;
    box-sizing: border-box;
}

.featured-video .featured-video-title {
    font-family: var(--title-font);
    font-size: 1.7rem;
    font-weight: 600;
    color: #003153;
    line-height: 1.3;
    margin: 0;
    padding: 0;
}

/* Home introslider card titles — same size/weight as feed `.post-title` */
.home-section .introslider > .about .about-title:not(.introslider-title),
.home-section .introslider > .location .about-title:not(.introslider-title),
.home-section .introslider > .pasttalks .about-title:not(.introslider-title),
.home-section .introslider > .register .about-title:not(.introslider-title),
.home-section .introslider > .about-programme .about-title:not(.introslider-title),
.home-section .introslider > .about-speakers .about-title:not(.introslider-title),
.home-section .introslider > .tbsonsocial .about-title:not(.introslider-title),
.flyer-section .introslider > .about .about-title:not(.introslider-title),
.home-section .programme-slider > .about .about-title:not(.introslider-title),
.home-programme-section .programme-slider > .about .about-title:not(.introslider-title) {
    font-family: var(--title-font) !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
}

.featured-video .featured-video-name {
    font-size: 1rem;
    font-weight: 400;
    font-style: italic;
    color: #3b82f6;
    margin: 0 0 0 0;
    line-height: 1.4;
    padding: 0 0 4px 0;
}

.featured-video .featured-bottom-title {
    color: #ffffff;
    z-index: 1;
}

.featured-pasttalks {
    position: relative;
    background-color: #BFF0FF;
    background-image: url('images/introslider%20images/pasttalks.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 1.1rem;
    font-weight: 400;
    color: #ffffff;
}

.social-links {
    display: flex;
    gap: 0;
    flex-wrap: nowrap;
    justify-content: space-between;
    width: 100%;
}

.featured-video .social-links a,
.featured-b .social-links a,
.featured-social-spacer .social-links a,
.featured-pasttalks .social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    height: 100%;
    background: transparent;
    color: #fc70d7;
    border-radius: 5px;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1.4em;
    box-shadow: none;
    padding: 0 !important;
    margin: 0;
    flex-shrink: 0;
    width: 18px;
}

.featured-video .social-links a:hover,
.featured-b .social-links a:hover,
.featured-social-spacer .social-links a:hover,
.featured-pasttalks .social-links a:hover {
    background: transparent;
    color: #fc70d7;
    transform: none;
    box-shadow: none;
}

.featured-video .social-links a i.fab,
.featured-b .social-links a i.fab,
.featured-social-spacer .social-links a i.fab,
.featured-pasttalks .social-links a i.fab {
    font-size: 2rem !important;
    line-height: 1 !important;
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    height: 100% !important;
}

.socialframe {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.social-spacer {
    min-height: 10px;
    background-color: blue;
}

@media (max-width: 768px) {
/* Non-hero introsliders only (hero About band uses solid blue cards — see end of file). */
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .about,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .location,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .pasttalks,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .register,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .about-programme,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .about-speakers,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .tbsonsocial,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .featured-video,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .featured-b,
.home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > .featured-pasttalks {
    flex: 0 0 var(--introslider-column-width) !important;
    width: var(--introslider-column-width) !important;
    max-width: none !important;
    min-width: var(--introslider-column-width) !important;
    height: auto !important;
    min-height: var(--home-introslider-card-height, auto);
    background: #003153 !important;
    border-radius: 5px !important;
    box-shadow: var(--introslider-card-shadow, var(--tbs-action-btn-shadow)) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid #D1D5DB !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
}
}

/* Wide screens: restore frosted glass effect */
@media (min-width: 769px) {
    .home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider {
        --home-introslider-copy-width: calc(450px * var(--introslider-card-width-scale, 0.978285));
        --home-introslider-card-width: calc(var(--home-introslider-copy-width) + 2px);
        --introslider-column-width: var(--home-introslider-card-width);
    }

    /* Hero introslider: ~3 cards visible; 16px gap between slides. */
    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider {
        gap: 16px !important;
        --home-introslider-card-width: calc((100% - 32px) / 3 * var(--introslider-card-width-scale, 0.978285));
        --home-introslider-copy-width: var(--home-introslider-card-width);
        --introslider-column-width: var(--home-introslider-card-width);
    }

    .home-section .introslider-inner-wrapper > .introslider {
        align-items: flex-start;
    }

    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider {
        background-color: transparent !important;
        background: transparent !important;
    }

    /* Non-hero introslider slides: frosted glass */
    .home-section .introslider-inner-wrapper:not(.home-hero-introslider) > .introslider > * {
        flex: 0 0 auto !important;
        width: var(--home-introslider-card-width) !important;
        min-width: var(--home-introslider-card-width) !important;
        max-width: var(--home-introslider-card-width) !important;
        height: auto !important;
        min-height: var(--home-introslider-card-height, auto) !important;
        max-height: none !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        background: rgba(0, 49, 83, 0.52) !important;
        border-radius: 5px !important;
        box-shadow: var(--introslider-card-shadow, var(--tbs-action-btn-shadow)) !important;
        backdrop-filter: blur(5px) !important;
        -webkit-backdrop-filter: blur(5px) !important;
        border: 1px solid #D1D5DB !important;
    }

    /* Hero introslider: navbar-matched frosted Prussian glass (script.js INTROSLIDER_NAV_GLASS) */
    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider > * {
        flex: 0 0 auto !important;
        width: var(--home-introslider-card-width) !important;
        min-width: var(--home-introslider-card-width) !important;
        max-width: var(--home-introslider-card-width) !important;
        height: auto !important;
        min-height: var(--home-introslider-card-height, auto) !important;
        max-height: none !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        display: flex !important;
        flex-direction: column !important;
        background: var(--introslider-nav-glass-bg) !important;
        background-color: var(--introslider-nav-glass-bg) !important;
        border-radius: 5px !important;
        box-shadow: var(--introslider-nav-glass-shadow) !important;
        backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        border: 1px solid var(--introslider-nav-glass-border) !important;
        padding-top: 8px !important;
        padding-bottom: 0 !important;
    }

    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider > .introslider-clickable,
    body.home-view .home-section .introslider-inner-wrapper > .introslider > .introslider-clickable,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .introslider-clickable,
    .home-section .introslider > .introslider-clickable {
        padding-top: 24px !important;
    }

    .flyer-section .introslider > * {
        border: 1px solid #D1D5DB !important;
        box-sizing: border-box !important;
    }

    body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider > * .about-text {
        flex: 1 1 auto !important;
        min-height: 0;
        overflow: hidden;
    }

    .home-section .introslider-inner-wrapper > .introslider > * .about-text {
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
    }

    .home-section .introslider > .featured-video .featured-video-text {
        background: rgba(0, 49, 83, 0.5) !important;
        backdrop-filter: blur(4px) !important;
        -webkit-backdrop-filter: blur(4px) !important;
    }

    .home-section .introslider > .featured-video .featured-video-image {
        background-color: rgba(0, 49, 83, 0.28) !important;
    }
}

/* About slide: 5px corners on wide screens only (mobile introslider is square) */
@media (min-width: 769px) {
    .home-section .introslider > .about {
        border-radius: 5px !important;
    }

    .home-section .introslider > .about .about-text {
        border-radius: 5px !important;
    }
}

/* Clickable home introslider slides: 1px pink border + discrete lift on hover */
.home-section .introslider > .introslider-clickable {
    cursor: pointer;
    box-sizing: border-box !important;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.home-section .introslider > .introslider-clickable:hover,
.home-section .introslider > .introslider-clickable:focus-visible {
    border: 1px solid var(--tbs-pink) !important;
    outline: none;
    transform: translateY(calc(-1 * var(--introslider-hover-lift)));
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.24), 0 3px 10px rgba(0, 0, 0, 0.12) !important;
}

@media (max-width: 768px) {
    .home-section .introslider > .introslider-clickable:hover,
    .home-section .introslider > .introslider-clickable:focus-visible {
        border-left: none !important;
        border-right: none !important;
        border-bottom: none !important;
    }
}

@media (min-width: 769px) {
    .home-section .introslider > .introslider-clickable {
        border: 1px solid #D1D5DB !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > .introslider-clickable {
        border: 1px solid var(--introslider-nav-glass-border) !important;
    }
}

.home-section .introslider > .about-programme {
    position: relative;
}

/* Home about slide: spacers flush to edges (same idea as programme .about slide) */
.home-section .introslider > .about,
.home-section .introslider > .location,
.home-section .introslider > .pasttalks,
.home-section .introslider > .register,
.home-section .introslider > .about-programme,
.home-section .introslider > .about-speakers,
.home-section .introslider > .tbsonsocial,
.home-section .introslider > .tbs27 {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
    padding: 0;
    justify-content: flex-start;
}

.home-section > .introslider-inner-wrapper > .introslider > .location:first-child {
    margin-left: 8px;
}

body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider > .introslider > .location:first-child {
    margin-left: 8px !important;
}

.home-section .introslider > .about .about-text,
.home-section .introslider > .location .about-text,
.home-section .introslider > .pasttalks .about-text,
.home-section .introslider > .register .about-text,
.home-section .introslider > .about-programme .about-text,
.home-section .introslider > .about-speakers .about-text,
.home-section .introslider > .tbsonsocial .about-text,
.home-section .introslider > .tbs27 .about-text {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0;
    box-sizing: border-box;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > * > .about-text {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    padding: 0 !important;
}

/* Direct children of .about-text: image wrap + copy block */
.home-section .introslider .about-text > * {
    padding: 0 !important;
    box-sizing: border-box;
}

/* Home introslider: rounded inner copy panel on wide screens only */
@media (min-width: 769px) {
    .home-section .introslider .about-text > * {
        border-radius: 5px !important;
    }

    .home-section .introslider :is(.about, .location, .pasttalks, .register, .about-programme, .about-speakers, .tbsonsocial, .tbs27) .about-text,
    .home-section .introslider .about-text > .introslider-card-image-wrap,
    .home-section .introslider .about-text > .introslider-text,
    .home-section .introslider .about-text .introslider-card-image,
    .home-section .introslider .about-text .introslider-card-video,
    .home-section .introslider .about-text img {
        border-radius: 5px !important;
    }

    .home-section .introslider .about-text > .introslider-card-image-wrap {
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    .home-section .introslider .about-text > .introslider-text {
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
    }
}

.home-section .introslider .about-text > .introslider-text {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
    min-height: var(--introslider-text-height, auto);
    height: auto;
    gap: 0;
    overflow: hidden;
    padding: 0 16px 24px 16px !important;
    box-sizing: border-box;
}

.home-section .introslider .introslider-text > * {
    padding: 0 !important;
    box-sizing: border-box;
}

/* Wide screens: copy column width (must follow padding rule above) */
@media (min-width: 769px) {
    .home-section .introslider-inner-wrapper > .introslider .about-text {
        width: var(--home-introslider-copy-width);
        max-width: var(--home-introslider-copy-width);
        box-sizing: border-box;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > * > .about-text {
        width: 100%;
        max-width: 100%;
    }
}

/* Non-hero home introslider: Prussian glass panels + light copy */
.home-section .introslider-inner-wrapper .introslider > .about .about-title,
.home-section .introslider-inner-wrapper .introslider > .location .about-title,
.home-section .introslider-inner-wrapper .introslider > .pasttalks .about-title,
.home-section .introslider-inner-wrapper .introslider > .register .about-title,
.home-section .introslider-inner-wrapper .introslider > .about-speakers .about-title,
.home-section .introslider-inner-wrapper .introslider > .tbsonsocial .about-title {
    color: #ffd700 !important;
}

.home-section .introslider-inner-wrapper:not(.home-hero-introslider) .introslider > .about-programme .about-title:not(.introslider-title) {
    color: #ffffff !important;
}

.home-section .introslider-inner-wrapper .introslider > .about .about-text,
.home-section .introslider-inner-wrapper .introslider > .location .about-text,
.home-section .introslider-inner-wrapper .introslider > .pasttalks .about-text,
.home-section .introslider-inner-wrapper .introslider > .register .about-text,
.home-section .introslider-inner-wrapper .introslider > .about-programme .about-text,
.home-section .introslider-inner-wrapper .introslider > .about-speakers .about-text,
.home-section .introslider-inner-wrapper .introslider > .tbsonsocial .about-text,
.home-section .introslider-inner-wrapper .introslider > .about .about-text p,
.home-section .introslider-inner-wrapper .introslider > .location .about-text p,
.home-section .introslider-inner-wrapper .introslider > .pasttalks .about-text p,
.home-section .introslider-inner-wrapper .introslider > .register .about-text p,
.home-section .introslider-inner-wrapper .introslider > .about-programme .about-text p,
.home-section .introslider-inner-wrapper .introslider > .about-speakers .about-text p,
.home-section .introslider-inner-wrapper .introslider > .tbsonsocial .about-text p {
    color: #F4F0E8 !important;
}

body.home-view .home-section > .introslider-inner-wrapper.home-hero-introslider .introslider > * .about-text a {
    color: var(--tbs-pink) !important;
}

/*
 * Introslider card with image: put <img> (or .introslider-card-image) then <h3 class="about-title"> then <p>.
 * Title is overlaid bottom-left on the image; paragraph sits below.
 */
.home-section .introslider .about-text:has(> img + .about-title),
.home-section .introslider .about-text:has(> .introslider-card-image + .about-title) {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
}

.home-section .introslider .about-text:has(> img + .about-title)::before,
.home-section .introslider .about-text:has(> .introslider-card-image + .about-title)::before {
    content: '';
    grid-row: 1;
    grid-column: 1;
    align-self: end;
    width: 100%;
    min-height: 45%;
    background: linear-gradient(to top, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.35) 45%, transparent 100%);
    pointer-events: none;
    z-index: 1;
}

.home-section .introslider .about-text:has(> img + .about-title) > img,
.home-section .introslider .about-text:has(> img + .about-title) > .introslider-card-image,
.home-section .introslider .about-text:has(> .introslider-card-image + .about-title) > img,
.home-section .introslider .about-text:has(> .introslider-card-image + .about-title) > .introslider-card-image {
    grid-row: 1;
    grid-column: 1;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    box-sizing: border-box;
}

.home-section .introslider .about-text:has(> img + .about-title) > .about-title,
.home-section .introslider .about-text:has(> .introslider-card-image + .about-title) > .about-title {
    grid-row: 1;
    grid-column: 1;
    align-self: end;
    justify-self: start;
    margin: 0;
    max-width: 100%;
    z-index: 2;
    text-align: left;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.75);
}

.home-section .introslider .about-text:has(> img + .about-title) > p,
.home-section .introslider .about-text:has(> .introslider-card-image + .about-title) > p {
    grid-row: 2;
    grid-column: 1;
    margin-top: 0.75rem;
}

.home-section .introslider > .register .introslider-register-image,
.home-section .introslider .introslider-card-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
}

/* Card image: fills space above copy; crops when the A3 card is too short */
.home-section .introslider .introslider-card-image-wrap {
    position: relative;
    flex: 1 1 auto;
    flex-shrink: 1;
    align-self: stretch;
    margin: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    box-sizing: border-box;
}

.home-section .introslider .introslider-card-image-wrap::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 30px;
    pointer-events: none;
    z-index: 1;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(255, 255, 255, 0.35) 25%,
        rgba(255, 255, 255, 0.75) 50%,
        #ffffff 68%,
        #ffffff 100%
    );
}

.home-section .introslider .introslider-card-image-wrap .introslider-card-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    box-sizing: border-box;
    object-fit: cover;
    object-position: center center;
}

.home-section .introslider .introslider-card-video-wrap .introslider-card-video {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    box-sizing: border-box;
    object-fit: cover;
    object-position: center center;
    background: #000;
    vertical-align: top;
}

.home-section .introslider > .about .about-text a,
.home-section .introslider > .location .about-text a,
.home-section .introslider > .pasttalks .about-text a,
.home-section .introslider > .register .about-text a,
.home-section .introslider > .about-programme .about-text a,
.home-section .introslider > .about-speakers .about-text a,
.home-section .introslider > .tbsonsocial .about-text a {
    color: #FFD700 !important;
}

.home-section .introslider > .about .about-text a:hover,
.home-section .introslider > .location .about-text a:hover,
.home-section .introslider > .pasttalks .about-text a:hover,
.home-section .introslider > .register .about-text a:hover,
.home-section .introslider > .about-programme .about-text a:hover,
.home-section .introslider > .about-speakers .about-text a:hover,
.home-section .introslider > .tbsonsocial .about-text a:hover {
    color: #fc70d7 !important;
}

/* Location slide (Hotel Alex, etc.): same pink as introslider scrollbar */
.home-section .introslider > .location .about-text a {
    color: var(--tbs-pink) !important;
}

.home-section .introslider > .location .about-text a:hover {
    color: var(--tbs-pink-soft) !important;
}

.home-section .introslider > .tbsonsocial .social-links a,
.home-section .introslider > .tbsonsocial .social-links a i.fab {
    color: var(--tbs-pink) !important;
}

.home-section .introslider > .tbsonsocial .social-links a:hover,
.home-section .introslider > .tbsonsocial .social-links a:hover i.fab {
    color: var(--tbs-pink-soft) !important;
}

.home-section .introslider > .featured-video .featured-video-text {
    background: #FFFFFF !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.home-section .introslider > .featured-video .featured-video-image {
    background-color: #FFFFFF !important;
}

.home-section .introslider > .featured-video .featured-video-title {
    color: #ffd700 !important;
}

.home-section .introslider > .featured-video .featured-video-name {
    color: #ffffff !important;
}

.home-section .introslider > .featured-video .featured-video-text,
.home-section .introslider > .featured-video .featured-video-text p {
    color: #ffffff !important;
}

.home-section .introslider > .featured-video .social-links a,
.home-section .introslider > .featured-video .social-links a i.fab {
    color: #FFD700 !important;
}

.home-section .introslider > .featured-video .social-links a:hover,
.home-section .introslider > .featured-video .social-links a:hover i.fab {
    color: #fc70d7 !important;
}

.home-section .introslider > .featured-b {
    color: #ffffff !important;
}

.home-section .introslider > .featured-pasttalks {
    background-image: none !important;
    color: #ffffff !important;
}

.home-section .introslider > .featured-pasttalks .social-links a,
.home-section .introslider > .featured-pasttalks .social-links a i.fab {
    color: #FFD700 !important;
}

.home-section .introslider > .featured-pasttalks .social-links a:hover {
    color: #fc70d7 !important;
}

/* Remove bottom overlay titles across all introsliders */
.introslider .featured-bottom-title {
    display: none !important;
}

/* Past-talks grid featured cards only (not hero introslider) */
.past-talks-section .featured-video,
.past-talks-section .featured-b,
.past-talks-section .featured-pasttalks {
    flex: 0 0 auto !important;
    width: 300px !important;
    max-width: 300px !important;
    background-color: #e6be8a !important;
    overflow: hidden !important;
}

.home-section .featured-video,
.past-talks-section .featured-video {
    background-color: #e6be8a !important;
}

/* Video-section featured cards stay square */
.past-talks-section .featured-video,
.past-talks-section .featured-pasttalks {
    border-radius: 0 !important;
}

.home-section .featured-video .social-links,
.home-section .featured-b .social-links,
.home-section .featured-pasttalks .social-links,
.past-talks-section .featured-video .social-links,
.past-talks-section .featured-b .social-links,
.past-talks-section .featured-pasttalks .social-links {
    gap: 0 !important;
}

.featured-social {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 0;
    flex: 1;
    background-color: #000000;
    position: relative;
    overflow-x: hidden;
}

/* YouTube video embed - 16:9 aspect ratio */
.featured-social-video {
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
    background: #000;
}

.featured-social-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* Title on the gradient (bottom of panel) */
.featured-social-gradient-title {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
    margin: 0;
    padding: 1rem 1rem 1.25rem;
    font-size: 1.1rem;
    font-weight: 600;
    font-family: var(--title-font);
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
    pointer-events: none;
}

/* Home FEATURED slider: bottom titles overlaid on panel (above ::after gradient + content) */
.home-section .introslider > .about .featured-bottom-title,
.home-section .introslider > .location .featured-bottom-title,
.home-section .introslider > .about-programme .featured-bottom-title,
.home-section .introslider > .featured-video .featured-bottom-title,
.home-section .introslider > .featured-pasttalks .featured-bottom-title {
    position: absolute;
    bottom: 0;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: fit-content;
    max-width: calc(100% - 32px);
    z-index: 2;
    margin: 0 0 40px 0;
    padding: 0 8px;
    background: rgba(0, 49, 83, 0.88);
    border-radius: 5px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18), 0 1px 2px rgba(0, 0, 0, 0.12);
    font-size: 1.2rem;
    font-weight: 600;
    font-family: var(--title-font);
    color: #ffd700;
    text-shadow: none;
    pointer-events: none;
    text-align: left;
}

/* Spacer: TBS ON SOCIAL content, fills height, yellow */
.featured-social-spacer {
    flex: 1 1 0;
    min-height: 0;
    background-color: #FFD700;
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    overflow: auto;
}

.featured-social-spacer .social-description {
    margin: 0 0 0.75rem 0;
}

.featured-social-spacer .social-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.featured-social-spacer .social-links a {
    color: #003153;
}

.featured-social-spacer .social-links a:hover {
    color: #003153;
}

.featured-social .shoutbox {
    order: 3;
}

.shoutbox {
    display: none !important;
    width: 0;
    height: 0;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: none;
}

.shoutbox::-webkit-scrollbar { /* Chrome/Safari */
    width: 0;
    height: 0;
}
.shoutbox:hover { /* Show a thin scrollbar on hover */
    scrollbar-width: thin; /* Firefox */
}
.shoutbox:hover::-webkit-scrollbar {
    width: 6px;
}
.shoutbox:hover::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.2);
    border-radius: 4px;
}

.shoutbox .material-symbols-outlined {
    color: #fc70d7;
    vertical-align: middle;
    font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.shoutbox-header {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.shout-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.shout-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.shout-featured {
    animation: shoutBg 3s ease-in-out infinite;
    border-radius: 5px;
}

@keyframes shoutBg {
    0% { background-color: rgba(252, 231, 243, 0); }
    50% { background-color: rgba(252, 231, 243, 0.6); }
    100% { background-color: rgba(252, 231, 243, 0); }
}
.shout-row p {
    margin: 0;
    font-size: 0.8rem;
}
.shout-top-row { display: flex; align-items: center; gap: 8px; }
.shout-name { color: #fc70d7; font-weight: 500; }
.shoutbox .material-symbols-outlined:hover,
.shout-name:hover { color: #fc70d7; }
.shout-date { color: #64748b; white-space: nowrap; }
.shout-title { color: #111827; font-weight: 600; white-space: normal; overflow-wrap: anywhere; }

.latest-short-title {
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0 0 1rem 0;
    color: #003153;
    text-align: center;
}

.no-short-message,
.error-short-message {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #666;
    font-style: italic;
}

.feed-section {
    flex: 3;
    display: block;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background-color: #003153;
    padding: 0 8px;
    margin-bottom: 0;
    border-radius: 0 !important;
}

.feed-section-inner-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 24px 16px 0 16px;
    max-width: 100%;
    background-color: #ffffff;
    border: none;
    border-radius: 5px 5px 0 0 !important;
    overflow: hidden;
}

.feed-section-inner-wrapper .news-card-badges {
    position: relative;
    z-index: 2;
}

.feed-section-inner-wrapper .post-date,
.feed-section-inner-wrapper .news-card-date {
    font-style: italic;
}

/* Feed cards: meta wrapper is layout-neutral on desktop (children stay in title row flex) */
@media (min-width: 769px) {
    .feed-section-inner-wrapper .news-card-title-row .feed-section-post-meta {
        display: contents;
    }

    body.home-view .home-section .feed-section-inner-wrapper .news-card-title-row {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-start;
        gap: 0.5rem 10px;
    }

    body.home-view .home-section .feed-section-inner-wrapper .news-card-title-row .news-card-title-block {
        order: unset;
        flex: 1 1 auto;
        width: auto;
        max-width: none;
    }

    body.home-view .home-section .feed-section-inner-wrapper .news-card .news-card-text-row {
        display: flex !important;
    }

    body.home-view .home-section .feed-section-inner-wrapper .news-card .news-card-text {
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 5 !important;
        line-clamp: 5 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    body.home-view .home-section .feed-section-inner-wrapper .news-card-content:has(.post-title.two-lines) .news-card-text-row .news-card-text {
        -webkit-line-clamp: 1 !important;
        line-clamp: 1 !important;
        max-height: 1.6rem !important;
        text-overflow: ellipsis !important;
    }

    body.home-view .home-section .feed-section-inner-wrapper .news-card h3.post-title {
        display: block !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        -webkit-line-clamp: unset !important;
        line-clamp: unset !important;
        -webkit-box-orient: unset !important;
        max-height: none !important;
        font-size: inherit !important;
        font-weight: 600 !important;
    }
}

.sponsors_wrapper {
    width: 100%;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    box-sizing: border-box;
    background-color: #003153;
    border: none;
}

.sponsors_wrapper .section-titles.sponsors-title {
    color: #FFD700;
    margin: 0;
    padding: 0;
}

.sponsors_wrapper .sponsor-logos-image {
    width: calc(100% - 16px);
    margin: 0 8px 8px 8px;
    height: auto;
    object-fit: contain;
    display: block;
    filter: brightness(0) invert(1);
}

@media (max-width: 768px) {
    /* Mobile: Latest band — full white background */
    .feed-section,
    body.home-view .home-section > .feed-section {
        border-radius: 0 !important;
        padding: 24px 0 0 !important;
        background: #ffffff !important;
        background-color: #ffffff !important;
    }
    .feed-section-inner-wrapper {
        border-radius: 5px 5px 0 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        padding-left: 8px;
        padding-right: 8px;
    }

    .home-section .feed-section-inner-wrapper {
        border-radius: 5px 5px 0 0 !important;
    }

    .home-section .speakerslider-track > .speaker-card--speakerinfo {
        padding-left: 8px !important;
        padding-right: 30px !important;
        padding-bottom: 16px !important;
        border-radius: 0 !important;
    }
}

/* Shared section headings (e.g. Latest, footer Social/Contact, Registration) */
.section-titles,
h1.section-titles,
h2.section-titles,
h3.section-titles {
    font-family: var(--title-font) !important;
    font-size: 1.5rem;
    font-weight: 600;
    color: #000000;
    margin: 0 0 0 0;
    padding: 0;
    text-transform: none;
}

/* Programme band: all h2 headings use `.section-titles` typography (not day-card gold/white styles) */
.programme-section h2 {
    font-family: var(--title-font) !important;
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    color: #000000 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
    text-align: left !important;
    text-shadow: none !important;
    letter-spacing: normal !important;
    line-height: normal !important;
}

/* Section headings — same vertical rhythm (8px top, 4px bottom); left inset where noted */
.home-section > .registration-section .registration-form > h3.section-titles.registration-section-title,
.home-section > .ondemand-section .ondemand-inner-wrapper > h2.section-titles.ondemand-section-title,
.home-section > .event-section .location-contents > .event-section-title,
.home-section > .introslider-inner-wrapper.home-hero-introslider .introslider-section-title {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 16px !important;
}

.feed-section-inner-wrapper > h2.section-titles,
.home-section > .registration-section .registration-form > h3.section-titles.registration-section-title {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0 !important;
}

/* Home Speakers band: anchor for nav scroll (targets #speakers-section in goToHomeSpeakers) */
#speakers-section,
#home-speakers-heading {
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

.home-section .speaker-card--speakerinfo .speakers-section-title,
.texteditor-render-html .texteditor-speaker-info-preview .speakers-section-title {
    flex-shrink: 0;
    margin: 0 0 0.5rem 0;
    padding: 0;
    color: #3A2A00 !important;
    text-align: left;
    width: 100%;
}

/* Home programme block: anchor for nav scroll */
#home-programme-title {
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

/* Home Location band heading: scroll target from introslider Location slide */
#home-location-heading {
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

/* Home Event welcome title: scroll target from introslider Event about-text */
#home-event-welcome-heading {
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

/* On-demand heading: scroll target (fixed nav) */
#home-ondemand-heading {
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

/* Latest feed heading: scroll target from load-less chevron */
#home-feed-latest-heading {
    scroll-margin-top: calc(var(--navbar-height) + 12px);
    padding-left: 0 !important;
}

/* Home: same white as Latest `.feed-section` */
.home-section > .programme-section {
    background-color: #ffffff !important;
}

.home-section > .programme-section .programmeslider-innerwrapper {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0;
    padding-right: 0;
}

/* Registration title: colour; vertical padding shared with Latest above */
.home-section > .registration-section .registration-form > h3.section-titles.registration-section-title {
    flex-shrink: 0;
    margin: 0;
    color: #ffffff !important;
    scroll-margin-top: calc(var(--navbar-height) + 12px);
}

.home-section > .registration-section.registration-section--closed .registration-form > h3.section-titles.registration-section-title {
    color: #ffffff !important;
    opacity: 1;
}

/* Event / Location / Latest — desktop (≥769px); mobile keeps existing .about-title & .section-titles rules */
@media (min-width: 769px) {
    .about-title {
        font-size: 1.7rem;
    }
    /* Desktop-only: introslider paragraph size (same as mobile) */
    .home-section .introslider > .about .about-text,
    .home-section .introslider > .location .about-text,
    .home-section .introslider > .pasttalks .about-text,
    .home-section .introslider > .register .about-text,
    .home-section .introslider > .about-programme .about-text,
    .home-section .introslider > .tbsonsocial .about-text {
        font-size: 1rem;
    }
    .flyer-section .introslider > .about .about-title,
    .home-section .programme-slider > .about .about-title,
    .home-programme-section .programme-slider > .about .about-title {
        font-size: 1.7rem !important;
    }
    .feed-section-inner-wrapper > h2.section-titles {
        font-size: 1.5rem !important;
    }

    .home-section > .registration-section .registration-form > h3.section-titles.registration-section-title {
        font-size: 1.5rem !important;
    }

    .home-section > .event-section .location-contents > .event-section-title {
        font-size: 1.7rem !important;
        padding-top: 8px;
    }
}

/* News grid layout */
.news-grid {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
    margin-bottom: 0;
    min-width: 0;
    max-width: 100%;
    overflow: visible;
    align-items: stretch;
}

@media (min-width: 769px) {
    .news-grid {
        gap: 32px;
    }
}

.feed-section-inner-wrapper .news-grid {
    background-color: #ffffff;
}

/* Home Latest: More / Less — below the white feed wrapper, inside `.feed-section` */
.home-section .feed-section-inner-wrapper .news-card-controls--collapsed {
    display: none !important;
}

.home-section .feed-section > .feed-latest-chevron-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin: 0;
    padding: 0 0 24px;
    background: #ffffff !important;
    background-color: #ffffff !important;
    box-sizing: border-box;
}

@media (min-width: 769px) {
    .home-section .feed-section > .feed-latest-chevron-row {
        padding-bottom: 40px;
    }
}

.home-section .feed-section-inner-wrapper {
    border-radius: 5px 5px 0 0 !important;
    padding-bottom: 0 !important;
}

/* Fallback / non-home: keep in-flow chevron row */
.feed-latest-chevron-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    padding: 0;
    background: #ffffff !important;
    background-color: #ffffff !important;
}

.feed-load-more-btn,
.feed-load-less-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    -webkit-appearance: none;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    cursor: pointer;
    /* Same pink as introslider scrollbar (--tbs-pink / --tbs-pink-soft) */
    background-color: var(--tbs-pink) !important;
    color: #ffffff !important;
    border: 1.5px solid var(--tbs-pink) !important;
    border-radius: 5px;
    min-height: 33px;
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 500;
    margin: 0;
    box-sizing: border-box;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent;
    line-height: 1.2;
    text-align: center;
    box-shadow: var(--tbs-action-btn-shadow);
    transition:
        background-color 0.3s ease,
        color 0.3s ease,
        box-shadow 0.3s ease;
}

.feed-load-more-btn:hover:not(:disabled),
.feed-load-more-btn:focus-visible:not(:disabled),
.feed-load-less-btn:hover:not(:disabled),
.feed-load-less-btn:focus-visible:not(:disabled) {
    background-color: var(--tbs-pink-soft) !important;
    border-color: var(--tbs-pink-soft) !important;
    color: #ffffff !important;
    box-shadow:
        0 4px 14px rgba(0, 0, 0, 0.18),
        0 2px 6px rgba(0, 0, 0, 0.1);
    outline: none;
}

.feed-load-more-btn:disabled,
.feed-load-less-btn:disabled {
    opacity: 0.65;
    cursor: wait;
}

/* News card styles */
.news-card {
    --news-media-width: 288px;
    --news-media-height: 192px;
    border: none;
    border-radius: 5px;
    overflow: hidden;
    transition: all 0.3s ease;
    cursor: pointer;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    aspect-ratio: auto;
    height: auto;
    padding: 0 0 0 0;
    position: relative;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    flex: 1 1 auto;
    box-shadow: none;
}

/* Feed section: thumbnails +50% then −10% vs prior feed size (aspect ratio unchanged) */
.feed-section-inner-wrapper .news-card,
.home-section .feed-section-inner-wrapper .news-card {
    --news-media-width: calc(288px * 1.2 * 0.9 * 1.5 * 0.9);
    --news-media-height: calc(192px * 1.2 * 0.9 * 1.5 * 0.9);
}

/* Featured newsfeed items: pale yellow highlight */
.news-card.news-card--featured {
    background-color: #fef9c3 !important;
    border-radius: 5px;
}

.news-card.news-card--featured:hover {
    background-color: #fef08a !important;
}

/* Dynamic background color classes */
.news-card-bg-pink {
    background-color: #fc70d7 !important;
    border: 2px solid transparent !important;
}

.news-card-bg-pink .news-card-content {
    border-bottom: none !important;
}

.news-card-bg-blue {
    background-color: #E6F3FF !important;
    border: 2px solid transparent !important;
}

.news-card-bg-blue .news-card-content {
    border-bottom: none !important;
}

.news-card-bg-yellow {
    background-color: #fef3c7 !important;
    border: 2px solid transparent !important;
}

.news-card-bg-yellow .news-card-content {
    border-bottom: none !important;
}

.news-card-bg-transparent {
    background-color: transparent !important;
}

.news-card-bg-transparent .news-card-content {
    border-bottom: 1px solid #e2e8f0 !important;
}


.news-card-image {
    flex: 0 0 var(--news-media-width);
    min-width: var(--news-media-width);
    max-width: var(--news-media-width);
    width: var(--news-media-width);
    height: auto;
    background: transparent;
    overflow: hidden;
    position: static;
    margin: 0;
    padding: 0;
    border-right: none;
    line-height: 0;
    border-radius: 5px;
    box-sizing: border-box;
    align-self: flex-start;
}

.news-card-thumbnail {
    position: static;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
    display: block;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    outline: none;
    border-radius: 5px;
}

.news-card-placeholder {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3rem;
    color: #003153;
}

.news-card-logo-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #003153; /* Prussian blue */
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-card-logo {
    max-width: 60%;
    max-height: 60%;
    filter: brightness(0) invert(1); /* Make logo white */
    object-fit: contain;
}

.news-card-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 12px 0 0 1rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    align-self: stretch;
    min-height: 0;
    height: auto;
    overflow: hidden;
    border-radius: 0;
    box-sizing: border-box;
}

/* Excerpt + chevrons: row grows in the column; excerpt stays top, chevrons align to bottom of the row */
.news-card .news-card-text-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-width: 0;
    min-height: 0;
    flex: 1 1 auto;
    flex-wrap: nowrap;
}

.news-card .news-card-text-row .news-card-text {
    flex: 1 1 auto;
    min-width: 0;
    align-self: flex-start;
}

.news-card .news-card-controls {
    flex: 0 0 auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    align-self: flex-end;
    min-width: 0;
}

@media (min-width: 769px) {
    .news-card-content {
        padding-top: 0;
    }
}

.news-card-title-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0;
}

/* Title block + date + badges on one row (badges flush right) */
.news-card-title-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.5rem 10px;
    width: 100%;
    min-width: 0;
}

.news-card-title-block {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.news-card-title-block .post-title {
    padding-right: 0;
}

/* Match `.blog-card-name` (Past talks cards) */
.news-card-name {
    font-size: 1rem;
    font-weight: 400;
    font-style: italic;
    color: #3b82f6;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.news-card-title-row .post-date,
.news-card-title-row .news-card-date {
    flex: 0 0 auto;
    margin: 0;
    align-self: flex-start;
}

.news-card-title-row .news-card-badges {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
    margin-left: auto;
    gap: 0.5rem;
    flex-wrap: nowrap;
    align-self: flex-start;
}

/* Wider viewports: keep title on the same row; truncate with ellipsis instead of wrapping */
@media (min-width: 769px) {
    .news-card-title-row .post-title {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-height: none;
        -webkit-line-clamp: unset;
        line-clamp: unset;
        -webkit-box-orient: unset;
        word-break: normal;
        overflow-wrap: normal;
    }
}

.news-card-meta {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    margin: 0;
    padding-top: 0;
    font-size: inherit;
}

/* YouTube card specific meta padding */
.news-card-youtube-container .news-card-meta-overlay {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.news-card-meta .post-date,
.news-card-meta .news-card-date {
    margin: 0;
}

.news-card-meta .news-card-badges {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.news-card-meta .post-category,
.news-card-meta .news-card-new-badge {
    font-size: inherit;
}

/* Category in title badges on desktop; meta copy is mobile-only (overlay / legacy cards) */
@media (min-width: 769px) {
    .news-card-meta .post-category {
        display: none;
    }
}

.post-date,
.news-card-date {
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 500;
    font-style: italic;
    margin: 0;
    margin-top: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 0.5rem;
    padding-top: 0;
    text-align: left;
}

.post-category {
    background: #003153;
    color: white;
    padding: 0.1rem 0.35rem;
    border-radius: 5px;
    font-size: 0.6rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

/* Type row: NEW matches VIDEO pill width (5 chars + horizontal padding) */
.news-card-badges,
.blog-card-badges,
.viewing .post-meta .post-meta-right {
    --news-type-badge-min-width: calc(5ch + 0.7rem);
}

.news-card-badges .post-category,
.news-card-badges .news-card-new-badge,
.blog-card-badges .post-category,
.blog-card-badges .news-card-new-badge,
.viewing .post-meta .post-meta-right .post-category,
.viewing .post-meta .post-meta-right .news-card-new-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: var(--news-type-badge-min-width);
}

.news-card-new-badge {
    background: #ffd700;
    color: #003153;
    padding: 0.1rem 0.35rem;
    border-radius: 5px;
    font-size: 0.6rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

/* YouTube card styling */
.news-card-youtube-container {
    position: relative;
    flex: 0 0 var(--news-media-width);
    min-width: var(--news-media-width);
    max-width: var(--news-media-width);
    width: var(--news-media-width);
    height: var(--news-media-height);
    border-radius: 5px;
    overflow: hidden;
    border-right: none;
    align-self: flex-start;
}

.news-card-youtube-embed {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: var(--news-media-height);
    border-radius: 5px;
    overflow: hidden;
}

/* Ensure button containers in YouTube cards are centered */


.news-card-meta-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.3), transparent);
    z-index: 10;
    pointer-events: none; /* Allow clicks to pass through to video */
}

.news-card-meta-overlay .post-date,
.news-card-meta-overlay .news-card-date {
    color: white;
    margin: 0;
    font-weight: 500;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
}

.news-card-meta-overlay .news-card-badges {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Shorts specific alignment */
.featured-social .news-card-meta-overlay {
    justify-content: flex-end !important;
}

.featured-social .news-card-meta {
    justify-content: flex-end !important;
}


.youtube-error {
    color: #dc2626;
    font-size: 0.8rem;
    font-style: italic;
    margin: 0.5rem 0 0 0;
}

/* Card / post headings (news feed, Past talks cards, video viewer) — `h3.post-title` */
.post-title {
    font-family: var(--title-font);
    font-size: 1.1rem;
    font-weight: 500;
    color: #000000;
    margin: 0;
    margin-top: 0;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    padding-right: 20px;
    padding-top: 0;
    max-height: calc(2 * 1.1rem * 1.25);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

h3 {
    font-size: 1.2rem;
    margin-bottom: 8px;
}

h4 {
    font-size: 1rem;
    font-weight: 600;
}

/* Five-line excerpt with ellipsis when clipped (~5 × 1.6 line-height) */
.news-card-text {
    color: #000000;
    line-height: 1.6;
    flex-grow: 0;
    font-size: 1rem;
    padding-top: 0;
    padding-bottom: 0;
    margin: 0;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 5;
    line-clamp: 5;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-height: 8rem !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
}

/* When title is 2 lines, give excerpt one text line of vertical space */
.news-card-content:has(.post-title.two-lines) .news-card-text-row .news-card-text {
    -webkit-line-clamp: 1;
    line-clamp: 1;
    max-height: 1.6rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}


.news-card:hover {
    background-color: #f5f5f5 !important;
}




/* Mobile: news cards — title + meta only (no body text), fixed image size */
@media (max-width: 768px) {
    .feed-section,
    body.home-view .home-section > .feed-section {
        border-radius: 0 !important;
        padding: 24px 0 0 !important;
        background: #ffffff !important;
        background-color: #ffffff !important;
    }

    .home-section .feed-section > .feed-latest-chevron-row,
    .feed-section .feed-latest-chevron-row {
        margin-top: 24px;
    }

    .feed-load-more-btn,
    .feed-load-less-btn {
        width: 75vw;
        min-width: 75vw;
        max-width: 75vw;
    }

    .feed-section-inner-wrapper,
    .home-section .feed-section-inner-wrapper {
        border-radius: 5px 5px 0 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        background: #ffffff !important;
        background-color: #ffffff !important;
    }

    .programme-info {
        padding-left: 8px !important;
        padding-right: 50px !important;
        padding-bottom: 16px !important;
        border-radius: 0 !important;
    }

    .home-section .speakerslider-track > .speaker-card--speakerinfo {
        padding-left: 0 !important;
        padding-right: 30px !important;
        border-radius: 0 !important;
    }

    .home-section > .speaker-section .speakers-inner-wrapper {
        padding: 0 !important;
    }

    .sponsors_wrapper {
        width: 100%;
        min-height: 80px;
    }

    .home-section > .registration-section {
        padding-left: 8px;
        padding-right: 8px;
    }

    .programme-section,
    .home-section > .programme-section,
    .home-programme-section > .programme-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-top: 0;
        padding-bottom: 0;
        background-color: #ffffff !important;
    }

    .home-section > .speaker-section {
        padding-left: 0;
        padding-right: 0;
        padding-top: 0;
        padding-bottom: 0;
    }

    /* Programme about slides: horizontal inset on copy only (spacers stay full width) */
    .flyer-section .introslider > .about .about-text,
    .home-section .programme-slider > .about .about-text,
    .home-programme-section .programme-slider > .about .about-text {
        padding-left: 8px;
        padding-right: 8px;
        box-sizing: border-box;
    }

    /* Flyer mobile: one continuous column — no gap between poster, about, and programme slider */
    .flyer-section > .flyer-poster-about-row {
        margin: 0 !important;
        gap: 0;
    }
    /* Flyer: hide stray section titles in this column layout */
    .flyer-section > h2.section-titles {
        display: none;
    }

    .feed-section-inner-wrapper .news-grid,
    .home-section .feed-section-inner-wrapper .news-grid {
        gap: 16px;
    }

    /* Feed-section only: card thumbnails +10% on mobile (maintains 3:2) */
    .feed-section-inner-wrapper .news-card,
    .home-section .feed-section-inner-wrapper .news-card {
        --news-media-width: calc(168px * 0.8 * 1.2 * 0.9 * 1.1);
        --news-media-height: calc(115.2px * 0.8 * 1.2 * 0.9 * 1.1);
    }

    .news-card {
        min-width: 0;
        width: 100%;
        max-width: 100%;
        flex: 1 1 auto;
        flex-direction: row;
        align-items: flex-start;
        --news-media-width: 168px;
        --news-media-height: 115.2px;
    }
    .news-card-image,
    .news-card-youtube-container {
        flex: 0 0 var(--news-media-width);
        min-width: var(--news-media-width);
        max-width: var(--news-media-width);
        width: var(--news-media-width);
    }
    .news-card-image {
        height: auto;
        min-height: 0;
    }
    .news-card-youtube-container {
        height: var(--news-media-height);
    }
    .feed-section-inner-wrapper .news-card-thumbnail,
    .home-section .feed-section-inner-wrapper .news-card-thumbnail {
        width: 100%;
        height: auto;
        max-height: none;
        object-fit: contain;
        object-position: center;
    }
    .news-card .news-card-content,
    .feed-section-inner-wrapper .news-card .news-card-content,
    .home-section .feed-section-inner-wrapper .news-card .news-card-content {
        justify-content: flex-start !important;
        align-items: flex-start !important;
        align-self: flex-start !important;
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        padding: 0 0 0 0.75rem !important;
    }

    .news-card .news-card-content > * {
        align-self: flex-start;
        margin-top: 0;
    }

    .news-card-title-row {
        flex: 0 0 auto;
        align-self: flex-start;
        width: 100%;
        flex-wrap: wrap;
        flex-direction: row;
        align-items: flex-start;
        justify-content: flex-start;
        align-content: flex-start;
        gap: 0;
        row-gap: 0;
        column-gap: 0;
    }

    /* Feed section mobile: date + badges above post-title */
    .feed-section-inner-wrapper .news-card-title-row .feed-section-post-meta {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: flex-start;
        justify-content: flex-start;
        align-content: flex-start;
        order: 1;
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        gap: 0;
        margin: 0;
        box-sizing: border-box;
    }

    .feed-section-inner-wrapper .news-card-title-row .news-card-title-block {
        order: 2;
    }

    .feed-section-inner-wrapper .feed-section-post-meta .post-date,
    .feed-section-inner-wrapper .feed-section-post-meta .news-card-date {
        flex: 0 0 auto;
        align-self: flex-start;
        margin: 0;
    }

    .feed-section-inner-wrapper .feed-section-post-meta .news-card-badges {
        flex: 0 0 auto;
        align-self: flex-start;
        margin-left: auto;
        margin-top: 0;
        margin-bottom: 0;
    }

    .news-card-title-row .news-card-title-block {
        order: 3;
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        align-self: flex-start;
        margin: 0;
        padding: 0;
    }

    .news-card-title-row .news-card-title-block .post-title {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    .news-card-title-row .post-title,
    .news-card .news-card-title-row h3.post-title,
    .feed-section-inner-wrapper .news-card h3.post-title,
    .home-section .feed-section-inner-wrapper .news-card h3.post-title,
    .blog-card h3.post-title,
    .viewing h3.post-title {
        align-self: flex-start;
        margin: 0 !important;
        padding-top: 0;
        font-size: 1.1rem !important;
        font-weight: 500 !important;
        line-height: 1.25 !important;
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        max-height: calc(2 * 1.1rem * 1.25) !important;
        -webkit-line-clamp: 2 !important;
        line-clamp: 2 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .news-card .news-card-text-row {
        display: none !important;
    }

    .news-card .news-card-text {
        display: none !important;
    }

    .news-card-name {
        display: none !important;
    }

    /* TBS27 ABOUT title */
    .flyer-section .about-title {
        font-size: 1rem !important;
        font-weight: 600 !important;
    }

    /* Event titles — mobile: same scale as .flyer-section .featured-programme-title */
    .flyer-section .introslider > .about .about-title {
        font-size: 1.7rem !important;
        font-weight: 500 !important;
        color: #ffd700 !important;
        margin: 0 0 0.3rem 0 !important;
        text-transform: none !important;
        -webkit-line-clamp: unset !important;
        line-clamp: unset !important;
    }

    .home-section .programme-slider > .about .about-title,
    .home-programme-section .programme-slider > .about .about-title {
        font-size: 1.7rem !important;
        font-weight: 500 !important;
        color: #ffffff !important;
        margin: 0 0 0.3rem 0 !important;
        text-transform: none !important;
        -webkit-line-clamp: unset !important;
        line-clamp: unset !important;
    }

    .home-section .introslider > .about .about-title:not(.introslider-title),
    .home-section .introslider > .location .about-title:not(.introslider-title),
    .home-section .introslider > .pasttalks .about-title:not(.introslider-title),
    .home-section .introslider > .register .about-title:not(.introslider-title),
    .home-section .introslider > .about-programme .about-title:not(.introslider-title),
    .home-section .introslider > .about-speakers .about-title:not(.introslider-title),
    .home-section .introslider > .tbsonsocial .about-title:not(.introslider-title),
    .home-section .introslider .section-titles.introslider-title:not(.featured-video-name),
    .home-section .introslider > .tbs27 .section-titles.introslider-title {
        margin: 0 !important;
    }

    .flyer-section .featured-location-title,
    .flyer-section .featured-programme-title {
        font-size: 1.7rem !important;
        font-weight: 500 !important;
    }

    .about .about-body {
        flex-direction: column;
    }

    .about .featured-about-video-wrap {
        flex: none;
        max-width: none;
        width: 100%;
    }

    .section-titles,
    h1.section-titles,
    h2.section-titles,
    h3.section-titles {
        margin-bottom: 0 !important;
        padding: 0 !important;
        text-align: center !important;
    }

    .feed-section-inner-wrapper > h2.section-titles,
    .home-section > .registration-section .registration-form > h3.section-titles.registration-section-title,
    .home-section > .ondemand-section .ondemand-inner-wrapper > h2.section-titles.ondemand-section-title {
        padding-top: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        padding-bottom: 4px !important;
    }

    .home-section > .introslider-inner-wrapper.home-hero-introslider .introslider-section-title {
        margin-left: 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        padding-top: 0 !important;
        padding-bottom: 4px !important;
        text-align: center !important;
        width: 100% !important;
        align-self: center !important;
        color: #ffffff !important;
    }

    .home-section > .event-section .location-contents > .event-section-title {
        text-align: center !important;
    }

    /* Programme band: intro slide + day card main titles */
    .programme-info .about-title,
    .programme-slider .programme-info .about-title,
    .home-section .programme-slider > .programme-info .about-title,
    .home-programme-section .programme-slider > .programme-info .about-title,
    .programme-section h2 {
        text-align: center !important;
    }

    .programme-info .about-title,
    .programme-slider .programme-info .about-title,
    .home-section .programme-slider > .programme-info .about-title,
    .home-programme-section .programme-slider > .programme-info .about-title {
        text-align: center !important;
    }

    /* Speakers intro card: section title */
    .home-section .speaker-card--speakerinfo .speakers-section-title {
        text-align: center !important;
    }

    /* CMS body copy: override legacy inline px from saved editor HTML */
    .home-section > .event-section .event-contents,
    .home-section > .event-section .event-contents .home-rich-html,
    .home-section > .event-section .location-text-body .home-rich-html {
        font-size: 1rem !important;
    }

    .home-section > .event-section .home-rich-html :where(p, li, td, th, span, div, a, strong, em) {
        font-size: inherit !important;
    }

    .home-section > .sponsors-section {
        padding-top: 24px;
    }

    .home-section > .sponsors-section .sponsors-section-inner-wrapper {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .home-section > .sponsors-section .sponsor-logos {
        --sponsor-logo-gap: clamp(10px, 2vw, 24px);
        width: 100%;
        max-width: 100%;
        flex-wrap: wrap;
        justify-content: space-between;
        align-content: center;
        column-gap: var(--sponsor-logo-gap);
        row-gap: var(--sponsor-logo-gap);
    }

    .home-section > .sponsors-section .sponsor-logo-slot,
    .home-section > .sponsors-section .sponsor-logo-slot--solo {
        flex: 0 0 auto;
        max-width: none;
        min-width: 0;
        order: 0;
        justify-content: center;
    }

    .home-section > .sponsors-section .sponsor-logo-slot .sponsors-logo-image {
        max-width: none;
        width: auto;
        height: auto;
    }

    .home-section > .event-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .home-section > .event-section .event-section-inner-wrapper {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .home-section > .event-section .event-section-inner-wrapper > .eventintroduction,
    .home-section > .event-section .eventintroduction > .event-texts {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .home-section > .event-section .trailer-embed,
    .home-section > .event-section .trailer-embed .trailer,
    .home-section > .event-section .trailer-embed .trailer-media {
        border-radius: 0 !important;
    }

    .home-section > .event-section .trailer,
    .home-section > .event-section .trailer-embed .trailer {
        border: none !important;
        background: transparent !important;
    }

    .home-section > .event-section .trailer-embed > .embed-section {
        margin-top: 0 !important;
    }

    /* Event introduction below divider */
    body.home-view .home-section > .event-section .event-section-inner-wrapper {
        display: block;
        grid-template-areas: none;
        grid-template-columns: none;
        gap: 0;
        padding-top: 0;
    }

    body.home-view .home-section > .event-section .eventintroduction {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: 100%;
        padding: 0 8px 16px;
        box-sizing: border-box;
    }

    body.home-view .home-section > .event-section .eventintroduction > .event-texts {
        display: flex !important;
        flex-direction: column;
        width: 100%;
        padding: 0;
        margin: 0;
    }

    body.home-view .home-section > .event-section .event-texts > .event-contents,
    body.home-view .home-section > .event-section .home-skeleton-event-contents {
        display: block !important;
        width: 100%;
        box-sizing: border-box;
    }

    .home-section > .event-section .location-contents > .event-section-title {
        padding-top: 8px !important;
        padding-bottom: 4px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        color: var(--tbs-icy-blue) !important;
    }

    /* Type badges tighter padding on mobile */
    .news-card-badges,
    .blog-card-badges,
    .viewing .post-meta .post-meta-right {
        --news-type-badge-min-width: calc(5ch + 0.5rem);
    }

    .post-category,
    .news-card-new-badge {
        padding: 0.1rem 0.25rem !important;
        border-radius: 4px;
    }
}

@media (max-width: 768px) {
    .home-section {
        --home-carousel-slide-width: 100%;
    }

    .home-introslider-scrollbar {
        display: none !important;
    }

    .home-section .speakers-inner-wrapper {
        padding: 0 !important;
        box-sizing: border-box;
    }

    .introslider {
        --introslider-column-width: calc(100% * var(--introslider-card-width-scale, 0.978285));
        gap: 16px;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .programme-slider {
        --introslider-column-width: 100%;
        gap: 0;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    /* Programme strip outside `.home-section` (feed fallback): full viewport width */
    .home-programme-section .programme-slider {
        --introslider-column-width: 100vw;
    }

    .home-section .speakerslider-track {
        gap: 0;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .home-carousel--minimal .home-carousel-tba-body {
        justify-content: center;
    }

    .introslider::-webkit-scrollbar,
    .programme-slider::-webkit-scrollbar,
    .home-section .speakerslider-track::-webkit-scrollbar {
        display: none;
    }
    .introslider > *,
    .programme-slider > *,
    .home-section .speakerslider-track > .speaker-placeholder,
    .home-section .speakerslider-track > .speaker-card {
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    /* Home carousel track square; slide panels use 5px corners */
    body.home-view .home-section .introslider {
        border-radius: 0;
        gap: 0;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider {
        gap: 0 !important;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0 !important;
    }

    .home-section .introslider > * {
        border-radius: 5px;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > * {
        border-radius: 0 !important;
    }

    .home-section .speakerslider-track {
        border-radius: 0;
    }

    /* Speaker strip: vertical dividers only (no top/bottom borders), same as programme */
    .home-section .speakerslider-track > .speaker-placeholder,
    .home-section .speakerslider-track > .speaker-card {
        border-top: none !important;
        border-bottom: none !important;
        border-left: 1px solid #ffffff !important;
        border-right: none !important;
        padding-left: 16px !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
    }

    .home-section .speakerslider-track > .speaker-card:first-child,
    .home-section .speakerslider-track > .speaker-placeholder:first-child {
        border-left: none !important;
    }

    .home-section .speakerslider-track > .speaker-placeholder {
        padding-right: 16px !important;
    }

    .home-section .speakerslider-track > .speaker-card {
        padding-right: 30px !important;
    }

    .home-section .speakerslider-track > .speaker-card:last-child,
    .home-section .speakerslider-track > .speaker-card:only-child,
    .home-section .speakerslider-track > .speaker-placeholder:last-child,
    .home-section .speakerslider-track > .speaker-placeholder:only-child {
        border-right: none !important;
    }

    /* Programme poster — square corners, no frame */
    .flyer-poster-about-row > .flyer-poster {
        border-radius: 0;
        border: none;
    }

    .flyer-section .introslider > * {
        border: none;
        border-radius: 5px !important;
    }

    .home-section .programme-slider > *,
    .home-programme-section .programme-slider > * {
        border-top: none !important;
        border-bottom: none !important;
        border-left: 1px solid #ffffff !important;
        border-right: none !important;
        box-shadow: none !important;
        box-sizing: border-box !important;
    }

    .home-section .programme-slider > *:first-child,
    .home-programme-section .programme-slider > *:first-child {
        border-left: none !important;
    }

    .home-section .programme-slider > *:last-child,
    .home-programme-section .programme-slider > *:last-child,
    .home-section .programme-slider > *:only-child,
    .home-programme-section .programme-slider > *:only-child {
        border-right: none !important;
    }

    .home-section .programme-slider > *:first-child,
    .home-programme-section .programme-slider > *:first-child,
    .home-section .speakerslider-track > .speaker-card:first-child:not(:only-child),
    .home-section .speakerslider-track > .speaker-placeholder:first-child:not(:only-child) {
        margin-left: 0 !important;
    }

    /* Home: programme + speakers — full-width slides, snap one card per swipe */
    body.home-view .home-section > .programme-section,
    body.home-view .home-section > .speaker-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.home-view .home-section .programme-slider,
    body.home-view .home-section .speakerslider-track {
        --introslider-column-width: 100%;
        --home-carousel-slide-width: 100%;
        width: 100%;
        max-width: 100%;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
    }

    body.home-view .home-section .programme-slider > *,
    body.home-view .home-section .speakerslider-track > .speaker-card,
    body.home-view .home-section .speakerslider-track > .speaker-placeholder {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    body.home-view .home-section .programme-slider > *:first-child,
    body.home-view .home-section .programme-slider > *:last-child,
    body.home-view .home-section .programme-slider > *:only-child,
    body.home-view .home-section .speakerslider-track > .speaker-card,
    body.home-view .home-section .speakerslider-track > .speaker-placeholder {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Programme carousel: full-width portrait slides; grow with copy, no inner scroll */
    body.home-view .home-section .programme-slider > *,
    body.home-view .home-programme-section .programme-slider > *,
    body.home-view .home-section .programme-slider > .programme-info,
    body.home-view .home-programme-section .programme-slider > .programme-info {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        align-self: flex-start !important;
        aspect-ratio: var(--home-carousel-minimal-aspect-ratio) !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        border-top: none !important;
        border-bottom: none !important;
    }

    body.home-view .home-section .programme-slider > *,
    body.home-view .home-programme-section .programme-slider > *,
    body.home-view .home-section .programme-slider > .programme-info,
    body.home-view .home-programme-section .programme-slider > .programme-info,
    body.home-view .home-section .speakerslider-track > .speaker-card,
    body.home-view .home-section .speakerslider-track > .speaker-placeholder,
    body.home-view .home-section .speakerslider-track > .speaker-card--speakerinfo {
        flex: 0 0 100% !important;
        width: var(--home-programme-fit-width, 100%) !important;
        min-width: var(--home-programme-fit-width, 100%) !important;
        max-width: var(--home-programme-fit-width, 100%) !important;
        aspect-ratio: auto !important;
        height: var(--home-programme-fit-height, auto) !important;
        min-height: var(--home-programme-fit-height, calc(100vw * 1920 / 1080)) !important;
        max-height: var(--home-programme-fit-height, none) !important;
        align-self: stretch !important;
        overflow: hidden !important;
    }

    .home-section .speakerslider-track > .speaker-card:not(:first-child),
    .home-section .speakerslider-track > .speaker-placeholder:not(:first-child),
    .home-section .programme-slider > *:not(:first-child),
    .home-programme-section .programme-slider > *:not(:first-child) {
        border-left-color: #ffffff !important;
    }

    .home-section .programme-slider,
    .home-programme-section .programme-slider {
        border: none;
        border-radius: 0;
        box-shadow: none;
        box-sizing: border-box;
    }

    .introslider-wrapper,
    .introslider-section,
    .introslider-inner-wrapper,
    .programme-section,
    .speaker-section {
        position: relative;
    }

    /* Programme + speakers: square corners (sections and all descendants) */
    body.home-view .home-section .programme-section,
    body.home-view .home-section .programme-section *,
    body.home-view .home-section > .speaker-section,
    body.home-view .home-section > .speaker-section * {
        border-radius: 0 !important;
    }

    .introslider-indicators {
        position: relative;
        bottom: auto;
        left: auto;
        right: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
        margin: 0;
        padding: 16px 8px;
        background-color: #003153;
        background: #003153;
        box-sizing: border-box;
    }

    /* Programme row uses custom scrollbar only (no dot indicators). */

    .introslider-dot {
        width: 15px;
        height: 15px;
        border-radius: 50%;
        border: 2px solid #fc70d7;
        background: transparent;
        padding: 0;
        cursor: pointer;
        transition: background 0.2s ease, border-color 0.2s ease;
    }
    .introslider-dot:hover {
        background: rgba(253, 61, 181, 0.3);
    }
    .introslider-dot.active {
        background: #fc70d7;
        border-color: #fc70d7;
    }
    .eventwrapper {
        padding-left: 8px;
        padding-right: 8px;
    }
}

@media (max-width: 480px) {
    .helloworld {
        gap: 0 !important;
        flex-direction: column !important;
        max-height: none !important;
        min-height: auto !important;
        background: #FAFAFA !important;
    }
    
    .flyer-container {
        width: 100% !important;
        height: auto !important;
    }
    
    .welcometext {
        width: 100% !important;
        max-height: none !important;
        padding: 0.5rem !important;
        padding-top: 16px !important;
    }
    
    .featured-text-content h3,
    .section-titles {
        font-family: var(--title-font) !important;
        font-size: 1.5rem !important;
        font-weight: 600 !important;
    }
    .featured-text-content h3 {
        font-weight: 700 !important;
        margin-bottom: 8px !important;
    }
    
    .featured-text-content p {
        font-size: 0.85rem !important;
        margin-bottom: 0.4rem !important;
        line-height: 1.5 !important;
    }
    
    .featured-text-content p:last-of-type {
        margin-bottom: 0.4rem !important;
    }
    
    .eventwrapper .infoevent h3,
    .eventwrapper .infosponsors h3,
    .eventwrapper .infolocation h3,
    .eventwrapper .infoprogramme h3 {
        font-family: var(--title-font) !important;
        font-size: 1.1rem !important;
        font-weight: 600 !important;
    }
    .eventwrapper .infoevent p,
    .eventwrapper .infosponsors p,
    .eventwrapper .infolocation p,
    .eventwrapper .infoprogramme p {
        font-size: 0.85rem !important;
        margin-bottom: 0.4rem !important;
        line-height: 1.5 !important;
    }
    
    .cta-button {
        padding: 0.3rem 0.6rem !important;
        font-size: 0.85rem !important;
    }
}

/* Extra narrow screens */
@media (max-width: 360px) {
    .helloworld {
        gap: 0 !important;
        background: #FAFAFA !important;
    }
    
    .flyer-container {
        height: auto !important;
    }
    
    .welcometext {
        padding: 0.4rem !important;
        padding-top: 16px !important;
    }
    
    .featured-text-content h3,
    .section-titles {
        font-family: var(--title-font) !important;
        font-size: 1.5rem !important;
        font-weight: 600 !important;
    }
    .featured-text-content h3 {
        font-weight: 700 !important;
        margin-bottom: 8px !important;
        line-height: 1.2 !important;
    }
    
    .featured-text-content p {
        font-size: 0.8rem !important;
        margin-bottom: 0.3rem !important;
        line-height: 1.4 !important;
    }
    
    .featured-text-content p:last-of-type {
        margin-bottom: 0.3rem !important;
    }
    
    .eventwrapper .infoevent h3,
    .eventwrapper .infosponsors h3,
    .eventwrapper .infolocation h3,
    .eventwrapper .infoprogramme h3 {
        font-family: var(--title-font) !important;
        font-size: 1rem !important;
        font-weight: 600 !important;
    }
    .eventwrapper .infoevent p,
    .eventwrapper .infosponsors p,
    .eventwrapper .infolocation p,
    .eventwrapper .infoprogramme p {
        font-size: 0.8rem !important;
        margin-bottom: 0.3rem !important;
        line-height: 1.4 !important;
    }
    
    .cta-button {
        padding: 0.25rem 0.5rem !important;
        font-size: 0.8rem !important;
    }
}

/* Ultra narrow screens */
@media (max-width: 320px) {
    .helloworld {
        gap: 0 !important;
        background: #FAFAFA !important;
    }
    
    .flyer-container {
        height: auto !important;
    }
    
    .welcometext {
        padding: 0.3rem !important;
        padding-top: 16px !important;
    }
    
    .featured-text-content h3,
    .section-titles {
        font-family: var(--title-font) !important;
        font-size: 1.5rem !important;
        font-weight: 600 !important;
    }
    .featured-text-content h3 {
        font-weight: 700 !important;
        margin-bottom: 8px !important;
        line-height: 1.1 !important;
    }
    
    .featured-text-content p {
        font-size: 0.75rem !important;
        margin-bottom: 0.2rem !important;
        line-height: 1.3 !important;
    }
    
    .featured-text-content p:last-of-type {
        margin-bottom: 0.2rem !important;
    }
    
    .eventwrapper .infoevent h3,
    .eventwrapper .infosponsors h3,
    .eventwrapper .infolocation h3,
    .eventwrapper .infoprogramme h3 {
        font-family: var(--title-font) !important;
        font-size: 0.9rem !important;
        font-weight: 600 !important;
    }
    .eventwrapper .infoevent p,
    .eventwrapper .infosponsors p,
    .eventwrapper .infolocation p,
    .eventwrapper .infoprogramme p {
        font-size: 0.75rem !important;
        margin-bottom: 0.2rem !important;
        line-height: 1.3 !important;
    }
    
    .cta-button {
        padding: 0.2rem 0.4rem !important;
        font-size: 0.75rem !important;
    }
}

.no-news, .error {
    text-align: center;
    padding: 2rem;
    color: #666;
    font-style: italic;
}

.helloworld {
    width: 100%;
    background: #FAFAFA;
    border: 1px solid #e0e0e0;
    border-radius: 5px;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    overflow: hidden;
    min-height: 0;
}

.flyer-container {
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border-radius: 5px;
    border-bottom-left-radius: 0; /* Square bottom corners */
    border-bottom-right-radius: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
}
.featured-badge {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    position: absolute;
    top: 8px;
    left: 8px;
    background: #FFD700;
    color: #003153;
    padding: 4px 8px;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.flyer-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    border-radius: 5px;
    border-bottom-left-radius: 0; /* Square bottom corners */
    border-bottom-right-radius: 0;
}

/* Featured Text Section */
.welcometext {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 1rem;
    padding-top: 16px;
    padding-bottom: 0; /* No bottom padding */
    height: auto;
    overflow: visible;
    flex: 1 1 auto;
    background-color: #003153; /* Prussian blue */
}


/* Featured meta (date and event) */
.featured-meta {
    color: #64748b;
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
    padding-top: 8px; /* Add top padding */
}
.featured-meta .meta-date,
.featured-meta .meta-event { white-space: nowrap; }

.featured-text-content {
    text-align: left;
    max-width: 100%;
    height: auto;
    overflow: visible;
    display: flex;
    flex-direction: column;
}

.featured-text-content h3,
.welcometext .featured-text-content h3 {
    font-family: var(--title-font) !important;
    color: #000000;
    font-size: 1.7rem;
    font-weight: 600;
    margin-bottom: 8px;
    line-height: 1.3;
}

.welcometext .featured-text-content h3 {
    color: #FFD700; /* yellow on welcome section */
}


.featured-text-content p {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #000000;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 0.75rem;
    flex-shrink: 0;
}

.welcometext .featured-text-content p {
    color: #ffffff;
    font-weight: 300;
}

.featured-text-content p:first-of-type {
    margin-bottom: 0.5rem;
}

.featured-text-content p:last-of-type {
    margin-bottom: 0.5rem;
}

.cta-button {
    color: #003153;
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    display: block;
    padding: 6px 0.75rem;
    border: 1px solid #FFD700;
    border-radius: 5px;
    text-align: center;
    width: 200px;
    box-sizing: border-box;
    background: #FFD700;
    margin: 0 auto 0.5rem auto !important;
}

.cta-button:hover {
    color: #FFD700;
    background: #003153;
    border-color: #003153;
}

/* Featured Social Section */

/* Feed Containers */
.feed-containers {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.feed-container {
    width: 100%;
    height: 100px;
    background-color: #FAFAFA;
    border-radius: 5px;
    border: 1px solid #003153;
}

/* Everything Section */
.everything {
    background: transparent;
}

/* Video Section (Past talks): Prussian blue; 8px horizontal padding inside the centered max 1400px column */
.past-talks-section {
    width: 100%;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    background-color: #003153;
    padding-left: 8px;
    padding-right: 8px;
    padding-top: 0;
    padding-bottom: 0;
    min-width: 0;
}

.past-talks-section.is-collapsed {
    max-height: 0;
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0;
}

.viewer-section.is-collapsed {
    max-height: 0;
    overflow: hidden;
    padding-top: 0;
    padding-bottom: 0;
}

/* Video grid spacing */
.past-talks-section .news-grid {
    gap: 16px;
}

.past-talks-wrapper {
    background: #ffffff;
    padding-top: 16px;
    padding-bottom: 16px;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
    border-radius: 5px;
}

.past-talks-wrapper > .past-talks-section-title {
    color: #003153;
    text-align: center;
    width: 100%;
    margin: 0 0 16px 0;
    padding-bottom: 4px;
}

@media (min-width: 769px) {
    .past-talks-wrapper > .past-talks-section-title {
        text-align: left;
        margin-bottom: 0 !important;
    }
}

/* Fixed background test - bright red to test if fixed positioning works */
.fixed-background-test {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: red !important;
    z-index: 9999 !important; /* High z-index to make sure it's visible */
    pointer-events: none !important;
    border: 5px solid yellow !important; /* Yellow border to make it super obvious */
}

/* Fixed background element */
.fixed-background {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: #FF0000 !important; /* Bright red fallback to test visibility */
    background-image: url('images/starrynight.png') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    z-index: 1 !important; /* Higher z-index to make it visible */
    pointer-events: none !important;
    transform: none !important;
    will-change: auto !important;
}

.welcome-subsection {
    min-height: 800px;
    background: transparent;
    padding: 2rem 0;
    position: relative; /* Ensure content appears above the fixed background */
    z-index: 1; /* Place above the fixed background */
    margin-top: 100vh; /* Add space to account for the fixed background */
}

.welcome-subsection h2 {
    font-size: 2.5rem;
    font-weight: 600;
    color: #003153;
    margin: 0;
}

.event-subsections {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
}

.event-subsection {
    border-radius: 5px;
    padding: 0;
    border: none;
    width: 100%;
    margin: 0;
}

.event-subsection:nth-child(odd) {
    background: #003153;
    color: white;
}

.event-subsection:nth-child(even) {
    background: #FAFAFA;
    color: #003153;
}

.subsection-title {
    font-size: 1.8rem;
    font-weight: 600;
    margin: 0 0 1rem 0;
    text-align: left;
    padding: 3rem 0 0 0;
}

.event-subsection:nth-child(odd) .subsection-title {
    color: white;
}

.event-subsection:nth-child(even) .subsection-title {
    color: #003153;
}

.subsection-content {
    text-align: left;
    line-height: 1.6;
    padding: 0 0 3rem 0;
}

.event-subsection:nth-child(odd) .subsection-content {
    color: #e2e8f0;
}

.event-subsection:nth-child(even) .subsection-content {
    color: #64748b;
}

/* Past talks: event filter row = event buttons (left) + search (right) */
.past-talks-event-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0;
}
.past-talks-event-row .filter-tabs {
    margin: 0;
}
.past-talks-search-wrap {
    flex: 0 0 auto;
    width: 6rem;
    min-width: 6rem;
    background: var(--tbs-loading-pink, #fce7f3);
    background-color: var(--tbs-loading-pink, #fce7f3);
}
.past-talks-search-input {
    width: 100%;
    padding: 4px 12px;
    font-size: 0.8rem;
    border: 2px solid #e2e8f0;
    border-radius: 5px;
    font-family: inherit;
    color: #1e293b;
    background: var(--tbs-loading-pink, #fce7f3);
    background-color: var(--tbs-loading-pink, #fce7f3);
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}
.past-talks-search-input::placeholder {
    color: #94a3b8;
}
.past-talks-search-input:hover,
.past-talks-search-input:focus {
    border-color: #003153;
    outline: none;
}

.section-header {
    text-align: center;
    margin: 0 0 16px 0;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.section-header .past-talks-event-row {
    order: 1;
}

.section-header .topic-filters {
    order: 3;
    width: 100%;
}

.section-header .past-talks-search-wrap {
    order: 2;
}

.section-header h2 {
    font-family: var(--title-font);
    font-size: 2.5rem;
    font-weight: 600;
    color: #1e293b;
    margin: 20px 0;
}

.filter-tabs {
    display: flex;
    justify-content: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 0 0 1rem 0;
}

.topic-filters {
    margin-bottom: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.topic-filters::-webkit-scrollbar {
    display: none;
}
.topic-filters .filter-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.filter-btn {
    background: #FAFAFA;
    border: 2px solid #e2e8f0;
    padding: 4px 12px;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-weight: 500;
    width: 6rem;
    min-width: 6rem;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.filter-btn.active {
    background: #fc70d7;
    color: white;
    border-color: #fc70d7;
}
.filter-btn.active:hover,
.filter-btn.active:focus {
    background: #fc70d7;
    color: white;
    border-color: #fc70d7;
}

.filter-btn:hover {
    background: #003153;
    color: #FFD700;
    border-color: #003153;
}

/* Blog Grid — auto-fit cards, never more than 4 per row (3×16px gaps) */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(max(350px, calc((100% - 48px) / 4)), 1fr));
    row-gap: 24px;
    column-gap: 16px;
    margin-bottom: 16px;
}

/* Blog card hover effect */
.blog-card:hover {
    background-color: #f5f5f5 !important;
}

/* Past Talks (.past-talks-section) should ignore Fieldcolour background overrides */
.past-talks-section .blog-card {
    background-color: transparent !important;
}

.blog-card {
    background: #FAFAFA;
    border-radius: 5px;
    border: 1px solid #e2e8f0;
    overflow: hidden;
    transition: all 0.3s ease;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}


.blog-card-image {
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9 aspect ratio (9/16 = 0.5625) */
    background: linear-gradient(45deg, #f0f8ff, #e6f3ff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: #003153;
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
}

.blog-card-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.blog-card-emoji {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3rem;
    color: #003153;
}

.blog-card-content {
    padding: 8px 8px 16px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.blog-card-name {
    font-size: 1rem;
    font-weight: 400;
    font-style: italic;
    color: #3b82f6; /* medium blue */
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.4;
}

.blog-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0;
    gap: 0.5rem;
}

.blog-card-category {
    background: #003153;
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}

.blog-card-badges {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.blog-card-topic {
    background: #003153;
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 500;
}

.blog-card-excerpt {
    color: #1a1a1a;
    line-height: 1.6;
    margin-bottom: 0;
    flex-grow: 1;
    font-size: 1rem;
}

.blog-card-footer {
    margin-top: auto;
}

.read-more {
    color: #003153;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    display: inline-block;
    padding: 0.375rem 0.75rem;
    border: 1px solid #FFD700;
    border-radius: 5px;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
    background: #FFD700;
}

.read-more:hover {
    color: #FFD700;
    background: #003153;
    border-color: #003153;
}

/* Load More Button */
.load-more {
    text-align: center;
    margin-bottom: 32px;
}

.load-more-container {
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0;
}

/* Past talks “More” uses `.feed-load-more-btn` (same pink as introslider scrollbar). */

.chevron {
    font-size: 2em;
    font-weight: bold;
    line-height: 1;
}

.empty-feed-message {
    text-align: center;
    padding: 2rem;
    color: #64748b;
    font-size: 1.1rem;
    font-style: italic;
}

.hidden-text {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* Newsletter Form in Footer */
.footer-section .newsletter-form {
    display: flex;
    gap: 0.75rem;
    max-width: 300px;
    margin-top: 1rem;
}

/* Feed Loading State */
.feed-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    text-align: center;
}

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #003153;
    border-radius: 5px;
    animation: spin 1s linear infinite;
    margin-bottom: 1rem;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.feed-loading p {
    color: #666;
    font-size: 1.1rem;
    margin: 0;
}

/* Skeleton Loading States */
.skeleton-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.skeleton-card {
    background: #FAFAFA;
    border: 1px solid #e2e8f0;
    border-radius: 5px;
    padding: 1rem;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

.skeleton-image {
    width: 100%;
    height: 200px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    border-radius: 5px;
    margin-bottom: 1rem;
    animation: skeleton-shimmer 1.5s infinite;
}

.skeleton-content {
    padding: 0;
}

.skeleton-title {
    height: 20px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    border-radius: 5px;
    margin-bottom: 0.75rem;
    animation: skeleton-shimmer 1.5s infinite;
}

.skeleton-text {
    height: 16px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    border-radius: 5px;
    margin-bottom: 0.5rem;
    animation: skeleton-shimmer 1.5s infinite;
}

.skeleton-text.short {
    width: 60%;
}

@keyframes skeleton-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

@keyframes skeleton-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.8; }
}

/* Home: skeleton placeholders (CSS-only; no extra network) */
.home-section .feed-section-inner-wrapper .home-skeleton-feed {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
    margin-bottom: 0;
    min-width: 0;
    max-width: 100%;
}

@media (min-width: 769px) {
    .home-section .feed-section-inner-wrapper .home-skeleton-feed {
        gap: 32px;
    }
}

.home-section .skeleton-card--home-feed.news-card {
    --news-media-width: calc(288px * 1.2 * 0.9 * 1.5 * 0.9);
    --news-media-height: calc(192px * 1.2 * 0.9 * 1.5 * 0.9);
    display: flex;
    flex-direction: row;
    align-items: stretch;
    pointer-events: none;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
    background: #fafafa;
    border: 1px solid #e2e8f0;
    border-radius: 5px;
    padding: 0;
    overflow: hidden;
    min-height: 0;
}

.home-section .skeleton-card--home-feed .skeleton-image--news-thumb {
    flex: 0 0 var(--news-media-width);
    width: var(--news-media-width);
    min-width: var(--news-media-width);
    max-width: var(--news-media-width);
    height: var(--news-media-height);
    margin: 0;
    border-radius: 0;
}

.home-section .skeleton-card--home-feed .skeleton-content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 8px 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.5rem;
}

.home-section > .event-section .home-skeleton-event-contents {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.home-section > .event-section .home-skeleton-event-contents .skeleton-title,
.home-section > .event-section .home-skeleton-event-contents .skeleton-text {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.1) 25%,
        rgba(255, 255, 255, 0.22) 50%,
        rgba(255, 255, 255, 0.1) 75%
    );
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
}

.home-section > .event-section .home-skeleton-event-contents .skeleton-title--event-h3 {
    height: 1.5rem;
    width: 72%;
    max-width: 20rem;
    margin: 8px 0 4px;
}

.home-section .speakerslider-track > .speaker-card--skeleton {
    pointer-events: none;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

.home-section .speaker-card--skeleton .skeleton-title,
.home-section .speaker-card--skeleton .skeleton-text {
    background: linear-gradient(90deg, #dce8f5 25%, #c5d9ee 50%, #dce8f5 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
    border-radius: 5px;
}

.home-section .speaker-card--skeleton .skeleton-title--speaker-name {
    height: 1.25rem;
    width: 58%;
    margin: 0 auto 0.75rem;
}

.home-section .speaker-card--skeleton .skeleton-text {
    height: 0.85rem;
    margin-bottom: 0.45rem;
}

.home-section .speaker-card--skeleton .skeleton-text.short {
    width: 45%;
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .home-section .skeleton-card--home-feed.news-card {
        --news-media-width: calc(168px * 0.8 * 1.2 * 0.9 * 1.1);
        --news-media-height: calc(115.2px * 0.8 * 1.2 * 0.9 * 1.1);
    }
}

.footer-section .newsletter-form input {
    flex: 1;
    padding: 10px 12px;
    border: none;
    border-radius: 5px;
    font-size: 0.9rem;
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-section .newsletter-form input::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

.footer-section .newsletter-form input:focus {
    outline: none;
    border-color: #FFD700;
    background: rgba(255, 255, 255, 0.15);
}

.footer-section .newsletter-form button {
    background: #FFD700;
    color: #003153;
    border: none;
    padding: 6px 7px;
    border-radius: 5px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.3s ease;
    font-size: 0.9rem;
    width: 70%;
    max-width: 120px;
}

.footer-section .newsletter-form button:hover {
    background: #FFC107;
}

/* Footer Logo */
.footer-logo-section {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100px;
    border-radius: 5px;
    background: transparent;
}

.footer-logo-container {
    text-align: center;
    padding: 0;
    border-radius: 5px;
    min-height: 100px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.footer-logo {
    max-width: 80px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.footer-logo-fallback {
    text-align: center;
}


/* Program Grid Styles */
.program-section {
    padding: 4rem 0;
    background: #FAFAFA;
}

.program-layout {
    display: flex;
    gap: 3rem;
    align-items: flex-start;
}

.program-grid-container {
    flex: 1;
    max-width: 800px;
}

.speaker-container {
    background: #FAFAFA;
    border: 1px solid #003153;
    border-radius: 5px;
    padding: 2rem;
    min-width: 250px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.speaker-container.drag-over {
    background: #e0f2fe;
    border-color: #FFD700;
    border-width: 3px;
    transform: scale(1.02);
}

.speaker-container-title {
    color: #003153;
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    text-align: center;
}

.speaker-badges {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.speaker-badge {
    background: #FFD700;
    color: #003153;
    border: 1px solid #003153;
    border-radius: 5px;
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: bold;
    font-size: 1rem;
    cursor: grab;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    user-select: none;
    justify-content: center;
    text-align: center;
}

.speaker-badge:hover {
    background: #FFC107;
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

.speaker-badge:active {
    cursor: grabbing;
    transform: scale(0.95);
}

.speaker-badge.dragging {
    opacity: 0.7;
    transform: rotate(5deg);
}

.program-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.program-cell {
    background: #FAFAFA;
    border: 1px solid #003153;
    border-radius: 5px;
    padding: 3rem 2rem;
    text-align: center;
    font-size: 2rem;
    font-weight: bold;
    color: #003153;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 150px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.program-cell:hover {
    background: #fc70d7;
    transform: translateY(-2px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

.program-cell.drag-over {
    background: #e0f2fe;
    border-color: #FFD700;
    border-width: 3px;
    transform: scale(1.05);
}

.program-cell.has-speaker {
    background: #fc70d7;
    border-color: #FFD700;
    border-width: 3px;
}

.speaker-badge-in-cell {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #FFD700;
    color: #003153;
    border: 1px solid #003153;
    border-radius: 5px;
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-weight: bold;
    font-size: 0.9rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    z-index: 10;
}

.speaker-badge-in-cell i {
    font-size: 0.8rem;
}

.speaker-badge-in-cell:hover {
    background: #FFC107;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    cursor: grab;
}

.speaker-badge-in-cell:active {
    cursor: grabbing;
    transform: scale(0.95);
}

.speaker-badge-in-cell.dragging {
    opacity: 0.7;
    transform: rotate(3deg) scale(1.05);
}

/* Footer - outer band matches page; inner block Prussian (matches site chrome) */
.footer {
    background: #ffffff !important;
    color: #003153;
    padding: 0;
    margin: 0 0 50px 0;
    position: relative;
    z-index: 10; /* Ensure footer appears above background elements */
    font-weight: 500;
    box-sizing: border-box;
}

/* Same column as main: centered max 1400px (.home-section / .everything) */
.footer-content {
    max-width: 1400px;
    margin: 0 auto;
    padding: 16px 16px 0 16px;
    width: 100%;
    box-sizing: border-box;
    background: #003153 !important;
    color: #ffffff;
    border-radius: 0 0 10px 10px;
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 1rem;
    row-gap: 0;
    margin-bottom: 0;
    align-items: start;
}

.footer-section-balance {
    display: none;
    visibility: hidden;
    pointer-events: none;
}

/* Equal side columns + invisible third column → logo centered in footer */
@media (min-width: 769px) {
    .footer {
        background: #ffffff !important;
        color: #003153;
        margin-bottom: 0;
        padding-bottom: 50px;
        overflow: visible;
    }

    .footer::before {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        width: 100%;
        max-width: 1400px;
        height: 50px;
        background: #003153;
        transform: translateX(-50%);
        pointer-events: none;
    }

    .footer > .footer-content {
        position: relative;
        z-index: 1;
        transform: translateY(50px);
    }

    .footer-content {
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
    }

    .footer-section-stack {
        grid-column: 1;
        justify-self: start;
    }

    .footer-logo-section {
        grid-column: 2;
        justify-self: center;
    }

    .footer-section-balance {
        grid-column: 3;
        display: block;
        min-height: 1px;
    }
}


/* Footer: Social / Contact — h3.post-title, white on dark */
.footer .footer-section-row > h3.post-title {
    color: #ffffff !important;
    margin: 0;
    margin-bottom: 0;
    align-self: center;
    max-height: none;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    display: block;
    -webkit-box-orient: unset;
    overflow: visible;
    text-overflow: unset;
    padding: 0;
}

/* Footer logo fallback still uses section-titles scale */
.footer h3.section-titles,
.footer .footer-logo-fallback-title {
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 600 !important;
    margin: 0;
    margin-bottom: 0;
}

/* Footer: all text/links at medium (500); icons included per request */
.footer-section p,
.footer-section ul li a {
    font-weight: 500;
}

.footer-section .contact p a {
    font-weight: 500 !important;
}

.footer-logo-fallback h3,
.footer-logo-fallback p {
    font-weight: 500;
}

.footer-logo-fallback .footer-logo-fallback-title {
    color: #ffd700 !important;
    font-weight: 600 !important;
}

.footer-section .newsletter-form input {
    font-weight: 500;
}

/* FA Brands (.fab) only ships weight 400; forcing 500 hides glyphs */
.footer .fab {
    font-weight: 400 !important;
}

.footer-section .hero-social-links a {
    font-weight: 500 !important;
}

/* Social + Contact stacked in first column; logo in second */
.footer-section.footer-section-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
}

/* Heading + icons / email on one row — vertically center title with links */
.footer-section-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
}

.footer-section-row > .hero-social-links,
.footer-section-row > h3.post-title,
.footer-section-row > p {
    align-self: center;
}

.footer-section-row > h3.post-title,
.footer-section-row > h3.section-titles,
.footer-section-row > .section-titles {
    margin: 0;
    flex-shrink: 0;
}

.footer-section p {
    color: #94a3b8;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.footer-section-row p {
    margin: 0;
    line-height: 1.4;
}

.footer-section-contact {
    justify-content: flex-start;
    text-align: left;
    margin-bottom: 24px;
}

.footer-section-contact .footer-contact-email {
    color: #FFD700 !important;
    text-decoration: none;
    font-weight: 500;
}

.footer-section-contact .footer-contact-email:hover,
.footer-section-contact .footer-contact-email:focus-visible {
    color: #ffffff !important;
    text-decoration: underline;
    outline: none;
}

.footer-section ul {
    list-style: none;
}

.footer-section ul li {
    margin-bottom: 0.5rem;
}

.footer-section ul li a {
    color: #94a3b8;
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-section ul li a:hover {
    color: #f1f5f9;
}

.footer-section .contact p a {
    color: #FFD700 !important;
    font-weight: bold !important;
    text-decoration: none !important;
    transition: color 0.3s ease;
}

.footer-section .contact p a:hover {
    color: #FFC107 !important;
}

.contact h4 {
    margin-bottom: 2rem;
}

.contact p {
    margin-top: 1rem;
}

.social-links {
    display: flex;
    gap: 1rem;
}

.social-links a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: #fc70d7;
    color: #003153;
    border-radius: 5px;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1.8em;
}

.social-links a:hover {
    background: #fc70d7;
    color: white;
    transform: translateY(-2px);
}

/* Home social bar: same pink as introslider scrollbar (--tbs-pink / --tbs-pink-soft) */
.home-social-row-container .social-links a,
.home-social-row-container .social-links a i,
.home-social-row-container .social-links a i.fab {
    color: var(--tbs-pink) !important;
    background: transparent !important;
}

.home-social-row-container .social-links a:hover,
.home-social-row-container .social-links a:hover i,
.home-social-row-container .social-links a:hover i.fab {
    color: var(--tbs-pink-soft) !important;
    background: transparent !important;
}

.footer-bottom {
    text-align: center;
    padding-top: 1rem;
    color: #94a3b8;
}



/* Responsive Design */
@media (max-width: 1024px) {
    .hero-social-links {
        position: static;
        display: inline-flex;
        padding: 0;
        width: auto;
        margin-top: 1rem;
    }
    
    .hero-text-container {
        width: 100%;
        display: block;
        margin-bottom: 1rem;
    }
    
}

@media (max-width: 768px) {
    :root {
        /* Mobile: 1rem = 18px */
        font-size: 18px;
        --mobile-tab-bar-height: 56px;
        --mobile-top-nav-height: var(--mobile-tab-bar-height);
        --navbar-height: calc(env(safe-area-inset-top, 0px) + var(--mobile-top-nav-height));
        --mobile-bottom-nav-height: calc(var(--mobile-tab-bar-height) + env(safe-area-inset-bottom, 0px));
        --navbar-margin-inline: 0px;
    }

    /* Mobile: transparent top bar (hamburger + Register) + solid bottom tab bar */
    .header {
        top: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: auto !important;
        pointer-events: none !important;
        box-shadow: none;
        background: transparent !important;
        background-color: transparent !important;
    }

    .navbar--mobile-top {
        top: env(safe-area-inset-top, 0px) !important;
        bottom: auto !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        box-shadow: none !important;
        background: transparent !important;
        background-color: transparent !important;
        pointer-events: auto !important;
    }

    .navbar--mobile-bottom {
        display: block !important;
        top: auto !important;
        bottom: env(safe-area-inset-bottom, 0px) !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        padding: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        pointer-events: auto !important;
        background: var(--introslider-nav-glass-bg) !important;
        background-color: var(--introslider-nav-glass-bg) !important;
        backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        border: none !important;
        border-top: 1px solid var(--introslider-nav-glass-border) !important;
        box-shadow: var(--introslider-nav-glass-shadow) !important;
    }

    body.home-view .header:not(.post-view),
    body.home-view .navbar--mobile-top {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        background: transparent !important;
        background-color: transparent !important;
        box-shadow: none !important;
    }

    body.home-view .navbar--mobile-bottom {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: none !important;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        background: transparent !important;
        background-color: transparent !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        border: none !important;
        border-top: none !important;
        box-shadow: none !important;
    }

    body.home-view.past-talks-open .navbar--mobile-bottom {
        background: var(--introslider-nav-glass-bg) !important;
        background-color: var(--introslider-nav-glass-bg) !important;
        backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        border: none !important;
        border-top: 1px solid var(--introslider-nav-glass-border) !important;
        box-shadow: var(--introslider-nav-glass-shadow) !important;
    }

    body.home-view {
        padding-bottom: var(--mobile-bottom-nav-height) !important;
    }

    body.nav-menu-open {
        overflow: hidden;
    }

    body.nav-menu-open::before {
        display: none;
    }

    body.nav-menu-open .header {
        z-index: 10050 !important;
    }

    body.nav-menu-open .nav-register-mobile-bar,
    body.nav-menu-open .navbar--mobile-bottom {
        display: none !important;
    }

    body.nav-menu-open .hamburger {
        z-index: 10055;
        background: transparent !important;
        background-color: transparent !important;
        border: none !important;
    }

    body.nav-menu-open .hamburger .bar {
        background-color: #003153 !important;
    }

    #speakers-section,
    #home-programme-title,
    #home-location-heading,
    #home-event-welcome-heading,
    #home-ondemand-heading,
    #home-feed-latest-heading,
    #home-registration-heading {
        scroll-margin-top: calc(var(--navbar-height) + 12px);
        scroll-margin-bottom: calc(var(--mobile-bottom-nav-height) + 12px);
    }

    /* Card titles — repeat after :root shrink so 1rem wins over base 1.3rem h3 scale */
    .news-card .news-card-title-row h3.post-title,
    .feed-section-inner-wrapper .news-card h3.post-title,
    .home-section .feed-section-inner-wrapper .news-card h3.post-title,
    .blog-card h3.post-title,
    .viewing h3.post-title {
        font-size: 1.1rem !important;
        font-weight: 500 !important;
        line-height: 1.25 !important;
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        max-height: calc(2 * 1.1rem * 1.25) !important;
        -webkit-line-clamp: 2 !important;
        line-clamp: 2 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .nav-logo {
        display: none !important;
    }

    .nav-container--mobile-top {
        display: flex !important;
        justify-content: space-between;
        align-items: center;
        gap: 8px;
        width: 100%;
        max-width: none;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        padding: 0 8px !important;
        box-sizing: border-box;
        background: transparent;
    }

    /* Past talks / video viewer: frosted top bar + logo centered on viewport */
    body.past-talks-open .nav-container--mobile-top {
        position: relative;
        display: flex !important;
        align-items: center;
        gap: 0;
        justify-content: flex-start;
        background: var(--introslider-nav-glass-bg) !important;
        background-color: var(--introslider-nav-glass-bg) !important;
        backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        border: none !important;
        border-bottom: 1px solid var(--introslider-nav-glass-border) !important;
        box-shadow: var(--introslider-nav-glass-shadow) !important;
    }

    body.past-talks-open .nav-container--mobile-top .hamburger {
        position: relative;
        z-index: 2;
        flex-shrink: 0;
    }

    body.past-talks-open .nav-container--mobile-top .nav-logo {
        display: flex !important;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        align-items: center;
        justify-content: center;
        max-width: min(52vw, 220px);
        min-width: 0;
        margin: 0;
        pointer-events: auto;
        z-index: 1;
    }

    body.past-talks-open .nav-container--mobile-top .nav-logo .logo {
        height: 36px;
        width: auto;
        max-width: min(52vw, 220px);
        object-fit: contain;
        filter: brightness(0) invert(1);
    }

    body.past-talks-open .nav-container--mobile-top .nav-register-mobile-bar {
        display: flex !important;
        position: relative;
        z-index: 2;
    }

    .nav-container--mobile-bottom {
        justify-content: center;
        align-items: center;
        gap: 8px;
        width: 100%;
        max-width: none;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        padding: 0 8px !important;
        box-sizing: border-box;
        background: transparent;
    }

    .hamburger {
        display: flex !important;
        flex-shrink: 0;
        z-index: 10045;
        background: transparent !important;
        background-color: transparent !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        border: none !important;
        box-shadow: none !important;
    }

    .hamburger .bar {
        background-color: var(--hamburger-bar-color);
        filter: var(--hamburger-bar-shadow);
    }

    body.nav-menu-open .hamburger .bar {
        filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.28)) drop-shadow(0 1px 3px rgba(255, 255, 255, 0.22));
    }

    .nav-register-mobile-bar {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        margin-left: auto;
        z-index: 10045;
    }

    .nav-register-mobile-bar .nav-register-pill {
        min-height: 33px;
        height: auto;
        max-height: none;
        padding: 6px 4px;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
    }

    .nav-register-mobile-top {
        display: none !important;
    }

    .navbar--mobile-top .nav-past-mobile {
        display: none !important;
    }

    .nav-item-register-desktop,
    .nav-past-desktop {
        display: none;
    }

    .navbar--mobile-top .nav-menu {
        display: none !important;
        list-style: none;
    }

    .nav-menu--bottom-tabs {
        display: flex !important;
        flex: 1 1 0;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
        margin: 0;
        padding: 0;
        gap: 8px;
        list-style: none;
        background: transparent;
        box-shadow: none;
    }

    .nav-menu--bottom-tabs > .nav-item {
        flex: 0 0 auto;
        height: var(--mobile-tab-bar-height);
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .nav-menu--bottom-tabs .mobile-top-tab-link {
        font-family: var(--title-font);
        font-size: 1.25rem !important;
        font-weight: 500;
        color: #ffffff !important;
        padding: 0 0.15rem;
        line-height: 1.2;
        text-align: center;
        white-space: nowrap;
    }

    .nav-menu--bottom-tabs .mobile-top-tab-link.active {
        color: #FFD700 !important;
    }

    .navbar--mobile-top .nav-menu.active {
        display: flex !important;
        position: fixed;
        inset: 0;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        max-width: none;
        height: auto;
        min-height: 100vh;
        min-height: 100dvh;
        max-height: none;
        margin: 0;
        padding: calc(env(safe-area-inset-top, 0px) + var(--mobile-tab-bar-height) + 12px) 8px
            calc(env(safe-area-inset-bottom, 0px) + 24px);
        gap: 4px;
        background: #ffd700;
        background-color: #ffd700;
        box-shadow: none;
        z-index: 10040;
        pointer-events: auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
    }

    .navbar--mobile-top .nav-menu.active > .nav-item:not(.nav-item-hidden):not(.nav-past-mobile) {
        display: flex !important;
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        height: auto;
        justify-content: center;
        align-items: center;
    }

    .navbar--mobile-top .nav-menu:not(.active) > .nav-menu-logo-item {
        display: none !important;
    }

    .navbar--mobile-top .nav-menu.active > .nav-menu-logo-item {
        display: flex !important;
        justify-content: center;
        align-items: center;
        padding-bottom: 8px;
        margin-bottom: 4px;
    }

    .navbar--mobile-top .nav-menu.active .nav-menu-logo-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin: 0;
        padding: 8px;
        border: none;
        background: transparent;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    .navbar--mobile-top .nav-menu.active .nav-menu-logo-btn:focus-visible {
        outline: 2px solid #003153;
        outline-offset: 2px;
        border-radius: 4px;
    }

    .navbar--mobile-top .nav-menu.active .nav-menu-logo-img {
        display: block;
        width: auto;
        height: auto;
        max-width: min(72vw, 260px);
        max-height: 52px;
        object-fit: contain;
        filter: none;
    }

    .navbar--mobile-top .nav-menu.active > .nav-past-desktop {
        display: flex !important;
        justify-content: center;
        align-items: center;
    }

    .navbar--mobile-top .nav-menu.active > .nav-item-register-desktop {
        display: flex !important;
        justify-content: center;
        align-items: center;
    }

    .navbar--mobile-top .nav-menu.active .nav-link,
    .navbar--mobile-top .nav-menu.active .mobile-top-tab-link {
        font-family: var(--title-font) !important;
        font-size: 1.25rem !important;
        font-weight: 500;
        color: #003153 !important;
        width: 100%;
        padding: 12px 8px;
        margin: 0;
        line-height: 1.2 !important;
        text-align: center;
        -webkit-tap-highlight-color: transparent;
        box-sizing: border-box;
    }

    .navbar--mobile-top .nav-menu.active .nav-link:hover,
    .navbar--mobile-top .nav-menu.active .mobile-top-tab-link:hover,
    .navbar--mobile-top .nav-menu.active .nav-link.active,
    .navbar--mobile-top .nav-menu.active .mobile-top-tab-link.active {
        color: #003153 !important;
    }

    .navbar--mobile-top .nav-menu.active .nav-link.active,
    .navbar--mobile-top .nav-menu.active .mobile-top-tab-link.active {
        font-weight: 600 !important;
    }

    .navbar--mobile-top .nav-menu.active .nav-item-register-desktop .nav-register-pill {
        background: transparent !important;
        background-color: transparent !important;
        box-shadow: none !important;
        border: none !important;
        font-size: 1rem !important;
        margin: 0;
        min-height: 0;
        height: auto;
        max-height: none;
        padding: 12px 4px;
    }

    .navbar--mobile-top .nav-menu.active .nav-item-register-desktop .nav-register-pill:hover,
    .navbar--mobile-top .nav-menu.active .nav-item-register-desktop .nav-register-pill:focus,
    .navbar--mobile-top .nav-menu.active .nav-item-register-desktop .nav-register-pill:focus-visible,
    .navbar--mobile-top .nav-menu.active .nav-item-register-desktop .nav-register-pill.active {
        background: transparent !important;
        background-color: transparent !important;
        color: #003153 !important;
    }

    body.past-talks-open .nav-container--mobile-top {
        display: flex !important;
        visibility: visible !important;
        height: var(--mobile-tab-bar-height) !important;
        min-height: var(--mobile-tab-bar-height) !important;
        max-height: var(--mobile-tab-bar-height) !important;
    }

    body.past-talks-open .navbar--mobile-top {
        display: block !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.past-talks-open .hamburger {
        display: flex !important;
    }

    body.past-talks-open .navbar--mobile-bottom {
        display: block !important;
        z-index: 10055;
    }

    body.past-talks-open .past-talks-section:not(.is-collapsed) {
        padding-bottom: 24px;
        background-color: transparent;
    }

    body.past-talks-open .past-talks-section:not(.is-collapsed)::before,
    body.past-talks-open .viewer-section:not(.is-collapsed)::before {
        content: '';
        display: block;
        width: 100%;
        height: calc(env(safe-area-inset-top, 0px) + var(--mobile-tab-bar-height));
        background-color: #003153;
        flex-shrink: 0;
        pointer-events: none;
    }

    /* Video viewer: Prussian top spacer + off-white content band */
    body.past-talks-open .viewer-section:not(.is-collapsed) {
        padding-top: 0;
        padding-bottom: 0;
        box-sizing: border-box;
        background-color: #F4F3F2;
    }

    body.past-talks-open.nav-menu-open::before {
        display: none;
    }

    .hero {
        margin: 0;
    }

    .section-header .past-talks-event-row {
        order: 1;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .section-header .past-talks-event-row::-webkit-scrollbar {
        display: none;
    }
    .section-header .past-talks-event-row .filter-tabs {
        flex-wrap: nowrap;
    }
    .section-header .topic-filters {
        order: 2;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .section-header .topic-filters::-webkit-scrollbar {
        display: none;
    }
    .section-header .topic-filters.filter-tabs {
        flex-wrap: nowrap;
    }
    .section-header .past-talks-search-wrap {
        order: 3;
    }

    .past-talks-event-row {
        margin-bottom: 0;
        padding-top: 0;
    }

    .hero-title {
        font-size: 2.5rem;
    }

    .hero-subtitle {
        font-size: 1.1rem;
        text-align: left;
    }

    .section-header h2 {
        font-size: 2rem;
    }

    .past-talks-section .section-header {
        padding-left: 8px;
        padding-right: 8px;
        box-sizing: border-box;
    }

    .past-talks-section .blog-grid {
        grid-template-columns: 1fr;
        row-gap: 24px;
        column-gap: 16px;
        background-color: #F4F3F2 !important;
    }

    .past-talks-section .blog-card-content {
        background-color: #ffffff !important;
    }

    .feed-containers {
        gap: 0;
    }

    .footer-section .newsletter-form {
        flex-direction: column;
        max-width: 100%;
    }

    /* Social → Contact → Logo (logo always last on mobile / narrow) */
    .footer-content .footer-logo-section {
        order: 99;
    }

    .footer-logo {
        max-width: 60px;
    }

    .footer {
        margin-bottom: 0 !important;
        padding-bottom: var(--mobile-bottom-nav-height);
    }

    body.home-view:not(.past-talks-open) .footer,
    body.past-talks-open .footer {
        margin-bottom: calc(-1 * var(--mobile-bottom-nav-height)) !important;
    }

    .filter-tabs {
        gap: 0.5rem;
    }

    .filter-btn {
        padding: 3px 10px;
        font-size: 0.9rem;
    }

    .past-talks-search-input {
        padding: 3px 10px;
        font-size: 0.9rem;
    }

    .past-talks-section {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        padding-bottom: 24px;
    }

    .past-talks-wrapper {
        background-color: #ffffff;
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        border-radius: 0;
    }

    .past-talks-wrapper > .past-talks-section-title {
        color: #003153;
        text-align: center !important;
        padding-left: 8px;
        padding-right: 8px;
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
    }

    /* Past talks / viewer: no top Prussian strip on mobile */
    body.past-talks-open .home-section > picture {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
    }

    body.past-talks-open .home-section {
        display: none !important;
    }

    .viewer-section {
        padding-left: 0;
        padding-right: 0;
    }

    body.past-talks-open .viewer-section:not(.is-collapsed) {
        padding-top: 0;
        padding-bottom: 0;
        box-sizing: border-box;
        background-color: #F4F3F2;
    }

    .viewer-section-inner-wrapper {
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
        border-radius: 0 !important;
    }

    .past-talks-section .blog-card {
        box-shadow: none;
    }

}

/* Wide screens: top navbar with logo (undo mobile bottom tab bar layout) */
@media (min-width: 769px) {
    :root {
        --navbar-height: calc(16px + 46.656px + 16px);
        --navbar-margin-inline: 193px;
    }

    .navbar--mobile-bottom {
        display: none !important;
    }

    body.home-view {
        padding-bottom: 0 !important;
    }

    .header {
        top: 0 !important;
        bottom: auto !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: auto !important;
        box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
    }

    .navbar {
        top: 0 !important;
        bottom: auto !important;
        left: var(--navbar-margin-inline) !important;
        right: var(--navbar-margin-inline) !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 16px 0 !important;
        margin: 0 !important;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    }

    body.home-view .header:not(.post-view) {
        background: transparent !important;
        background-color: transparent !important;
        box-shadow: none !important;
    }

    body.home-view .navbar:not(.navbar--mobile-bottom) {
        background: transparent !important;
        background-color: transparent !important;
        box-shadow: none !important;
        --_home-nav-pad: 0px;
        --_home-nav-avail: calc(100vw - 2 * var(--_home-nav-pad));
        --_home-nav-w: min(1400px, var(--_home-nav-avail));
        left: calc(var(--_home-nav-pad) + max(0px, (var(--_home-nav-avail) - var(--_home-nav-w)) / 2)) !important;
        right: auto !important;
        width: var(--_home-nav-w) !important;
        max-width: var(--_home-nav-w);
    }

    .nav-container {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        max-width: 1400px;
        align-items: center !important;
        padding: 0 16px !important;
    }

    .nav-past-mobile,
    .nav-register-mobile-top {
        display: none !important;
    }

    .nav-past-desktop,
    .nav-item-register-desktop {
        display: flex !important;
    }

    .nav-menu {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        align-items: center !important;
        gap: 2rem;
    }

    .nav-menu .mobile-top-tab-link {
        line-height: inherit;
        padding: 0;
    }

    #speakers-section,
    #home-programme-title,
    #home-location-heading,
    #home-event-welcome-heading,
    #home-ondemand-heading,
    #home-feed-latest-heading,
    #home-registration-heading {
        scroll-margin-top: calc(var(--navbar-height) + 12px);
        scroll-margin-bottom: 0;
    }
}

@media (min-width: 1020px) {
    .nav-logo {
        display: flex !important;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 15px;
    }

    .hero-text-container {
        padding: 0;
        width: 100%;
        max-width: none;
        display: block;
        margin-bottom: 1rem;
    }

    .hero-social-links {
        position: static;
        display: inline-flex;
        gap: 0.1rem;
        padding: 0;
        width: auto;
        margin-top: 1rem;
        justify-content: center;
    }

    .hero-text-container p {
        font-size: 1rem;
        line-height: 1.5;
        font-weight: 300;
    }
    
    .hero-social-links a {
        width: 45px;
        height: 45px;
        font-size: 1.4rem;
    }

    .hero-title {
        font-size: 2rem;
    }

    .blog-card-content {
        padding: 8px 8px 16px;
    }

    .footer-content {
        grid-template-columns: 1fr;
        text-align: center;
        border-radius: 0;
        background: transparent !important;
    }

    .footer {
        border-radius: 0;
        margin-bottom: 0 !important;
        padding-bottom: var(--mobile-bottom-nav-height);
        background: #003153 !important;
        color: #ffffff;
    }

    /* Home: tuck footer under bottom tab bar */
    body.home-view:not(.past-talks-open) .footer {
        margin-bottom: calc(-1 * var(--mobile-bottom-nav-height)) !important;
    }

    /* Past talks: tuck footer under bottom tab bar */
    body.past-talks-open .footer {
        margin-bottom: calc(-1 * var(--mobile-bottom-nav-height)) !important;
    }

    /* Social + Contact stack: left-aligned rows; logo centered below */
    .footer-section-stack {
        align-items: flex-start;
        width: 100%;
    }

    .footer-logo-section {
        justify-self: center;
        width: 100%;
    }

    .footer-section-row {
        justify-content: flex-start;
        text-align: left;
    }

    .footer-section-contact {
        justify-content: flex-start;
        text-align: left;
    }

    .footer-section .hero-social-links {
        justify-content: flex-start;
    }

    .program-layout {
        flex-direction: column;
        gap: 2rem;
    }

    .speaker-container {
        min-width: auto;
        width: 100%;
    }

    .speaker-badges {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
    }

    .program-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }

    .program-cell {
        padding: 2rem 1rem;
        font-size: 1.5rem;
        min-height: 120px;
    }
}

@media (max-width: 480px) {
    .program-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .program-cell {
        padding: 1.5rem 1rem;
        font-size: 1.25rem;
        min-height: 100px;
    }
}

/* Loading State */
.loading {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem;
}

.spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f4f6;
    border-top: 4px solid #003153;
    border-radius: 5px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* YouTube Video Embedding in Blog Cards */
.blog-card-video {
    margin: 1rem 0;
}

.blog-card-video .video-container {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 40%; /* Smaller aspect ratio for cards */
    overflow: hidden;
    border-radius: 5px;
}

.blog-card-video .video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}


.post-video {
    margin: 0;
}

.post-video .video-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: 0;
    padding-bottom: 56.25%;
    overflow: hidden;
    border-radius: 5px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin: 0;
    background: #000;
    line-height: 0;
    font-size: 0;
    display: block;
}

.post-video .video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    background: #000;
    margin: 0;
    padding: 0;
    outline: none;
    box-sizing: border-box;
    transform: scale(1.01);
    transform-origin: center center;
}

.news-card-youtube-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    background: #000;
    transform: scale(1.04);
    transform-origin: center center;
}


.post-content {
    margin-top: 0;
    margin-bottom: 0;
    padding: 0.7rem;
    background: #ffffff;
    border-radius: 5px;
    line-height: 1.6;
    color: #333;
}

/* Post Content Styles (Same Page) */
.viewer-section {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 8px;
    background-color: #003153;
    box-sizing: border-box;
}

.viewer-section-inner-wrapper {
    background: #ffffff;
    padding: 16px;
    box-sizing: border-box;
    border-radius: 5px;
}

@media (min-width: 769px) {
    .viewer-section-inner-wrapper {
        padding-top: 24px;
    }
}

.post-header {
    text-align: left;
    margin-bottom: 0;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 1rem;
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 0;
    box-sizing: border-box;
}

.speaker-container {
    display: flex;
    flex-direction: column;
    flex: 1;
    border: none;
    box-shadow: none;
}

.post-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
    margin-bottom: 0;
    flex-wrap: wrap;
}

/* Post meta padding when inside viewing container */
.viewing .post-meta {
    padding: 8px 0 0 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.5rem;
}
.viewing .post-meta .post-date,
.viewing .post-meta .news-card-date {
    flex: 0 0 auto;
}

.viewing .post-meta .post-meta-right {
    flex: 0 1 auto;
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: flex-end;
}

.viewing .post-meta .post-meta-right .post-category,
.viewing .post-meta .post-meta-right .news-card-new-badge {
    flex: 0 0 auto;
    margin: 0;
}

.viewing .post-meta .post-meta-right {
    --news-type-badge-min-width: calc(5ch + 0.5rem + 8px);
}

.viewing .post-meta .post-meta-right .post-category,
.viewing .post-meta .post-meta-right .news-card-new-badge {
    padding: 0.1rem 8px 0.1rem 0.5rem;
    border: none;
    border-radius: 5px;
}

/* Post header in video viewer: stack meta above title (like past talks cards) */
.viewing .post-header {
    flex-direction: column;
    gap: 0;
    background-color: #ffffff;
}

/* Speaker container padding when inside viewing container */
.viewing .speaker-container {
    padding: 0;
    background: transparent !important;
    border: none !important;
    border-radius: 5px;
    box-shadow: none !important;
}

/* Past talks cards + video viewer: titles max 2 lines, ellipsis when clipped */
.past-talks-section .blog-card .post-title,
.viewing .post-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-height: calc(2 * 1.1rem * 1.25) !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}

/* Video viewer: layout (typography from `.post-title`) */
.viewing .post-title {
    margin-top: 0;
    padding: 0;
    padding-right: 0;
}

/* Post name padding when inside viewing container */
.viewing .post-name {
    padding: 0;
    margin: 0;
    font-style: italic;
    color: #3b82f6; /* medium blue */
}

/* Post date padding when inside viewing container */
.viewing .post-date,
.viewing .news-card-date {
    padding-left: 0;
}

.post-date,
.news-card-date {
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 500;
    font-style: italic;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 0.5rem;
    text-align: left;
}

/* Post content margin when inside viewing container – match welcome section typography */
.viewing .post-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    padding: 24px 0 24px 0 !important;
    font-size: 1rem !important;
    font-weight: 300 !important;
    line-height: 1.6 !important;
}
.viewing .post-content p {
    font-size: 1rem !important;
    font-weight: 300 !important;
    line-height: 1.6 !important;
}
.viewing .post-content h1,
.viewing .post-content h2,
.viewing .post-content h3,
.viewing .post-content h4,
.viewing .post-content h5,
.viewing .post-content h6 {
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

/* Light blue container in viewing (same width as post-content) */
.viewing .youtubereminder {
    width: 100%;
    min-height: 4rem;
    flex-shrink: 0;
    background-color: #BFF0FF !important;
    margin-top: 0;
    margin-bottom: 0;
    padding: 8px;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: 1rem;
    font-weight: 300;
}
.viewing .youtubereminder-text {
    flex: 1;
    color: #000000;
}
.viewing .youtubereminder-icon,
.viewing .youtubereminder-icon .fab,
.viewing .youtubereminder-icon .fab.fa-youtube {
    flex-shrink: 0;
    color: var(--tbs-pink) !important;
    font-size: 2.6rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
}
.viewing .youtubereminder-icon:hover,
.viewing .youtubereminder-icon:hover .fab,
.viewing .youtubereminder-icon:hover .fab.fa-youtube {
    color: var(--tbs-pink-soft) !important;
}

.action-btn {
    background: #003153;
    border: none;
    color: #FFD700;
    font-size: 1.62rem;
    cursor: pointer;
    padding: 0.45rem;
    border-radius: 5px;
    transition: all 0.3s ease;
    opacity: 1;
    width: 2.7rem;
    height: 2.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.action-btn:hover {
    opacity: 1;
    transform: scale(1.1);
}

.action-btn:active {
    transform: scale(0.95);
}

/* Remove margins from post content elements inside viewing container */
.viewing .post-content p {
    margin: 0 !important;
}

.viewing .post-content h1, 
.viewing .post-content h2, 
.viewing .post-content h3, 
.viewing .post-content h4, 
.viewing .post-content h5, 
.viewing .post-content h6 {
    margin: 0 !important;
}

.viewing .post-content ul, 
.viewing .post-content ol {
    margin: 0 !important;
}

.viewing .post-content li {
    margin: 0 !important;
}

.post-badges {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.post-topic {
    background: #003153;
    color: white;
    padding: 6px 16px;
    border-radius: 5px;
    font-size: 0.9rem;
    font-weight: 500;
}

.post-name {
    font-size: 1rem;
    font-weight: 400;
    font-style: italic;
    color: #3b82f6; /* medium blue */
    margin: 0;
    line-height: 1.4;
}

.post-excerpt {
    font-size: 1.2rem;
    color: #64748b;
    line-height: 1.6;
    margin-bottom: 2rem;
}

.post-video {
    margin: 0;
}


.post-content {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #333;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 1.4rem;
    background: #ffffff;
    border-radius: 5px;
}

.viewer-section .post-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.post-content p {
    margin-bottom: 1rem;
}

.post-content br {
    line-height: 1.8;
}

.post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5, .post-content h6 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    color: #003153;
    font-weight: 600;
}

.post-content ul, .post-content ol {
    margin-bottom: 1rem;
    padding-left: 2rem;
}

.post-content li {
    margin-bottom: 0.5rem;
}

@media (max-width: 768px) {
    .post-meta { 
        gap: 1rem; 
    }

    .viewing .post-meta .post-meta-right {
        gap: 6px;
    }

    .viewer-section {
        padding-left: 0;
        padding-right: 0;
    }

    body.past-talks-open .viewer-section:not(.is-collapsed) {
        padding-top: 0;
        padding-bottom: 0;
        box-sizing: border-box;
        background-color: #F4F3F2;
    }

    .viewer-section-inner-wrapper {
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
        border-radius: 0 !important;
    }

    .viewer-section .viewing .post-header {
        padding-left: 8px;
        padding-right: 8px;
        box-sizing: border-box;
        background-color: #ffffff !important;
    }

    .viewer-section .viewing .post-content {
        background: #ffffff !important;
        background-color: #ffffff !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        box-sizing: border-box;
    }

    /* Crop YouTube title bar / watermark chrome inside the iframe box */
    .post-video,
    .post-video *:not(.post-video-play-overlay):not(.post-video-play-img) {
        border-radius: 0 !important;
    }

    /* Viewer: thumbnail visible first; iframe preloads underneath until play */
    .post-video--thumbnail-first .post-video-thumbnail-btn {
        position: absolute;
        inset: 0;
        z-index: 2;
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        border: none;
        background: #000;
        cursor: pointer;
        display: block;
        -webkit-tap-highlight-color: transparent;
    }

    .post-video--thumbnail-first .post-video-thumbnail {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
    }

    .post-video--thumbnail-first .post-video-play-overlay {
        --post-video-play-btn-width: clamp(4.5rem, 22vw, 5.75rem);
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: var(--post-video-play-btn-width);
        height: auto;
        border-radius: 0 !important;
        overflow: visible;
        background: transparent;
        border: none;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 0;
        pointer-events: none;
        box-sizing: border-box;
        flex-shrink: 0;
        box-shadow: none;
    }

    .post-video--thumbnail-first .post-video-play-img {
        display: block;
        width: 100%;
        height: auto;
        flex-shrink: 0;
    }

    .post-video--thumbnail-first .post-video-iframe--preload {
        opacity: 0;
        pointer-events: none;
        z-index: 1;
    }

    .post-video--thumbnail-first.post-video--playing .post-video-thumbnail-btn {
        display: none;
    }

    .post-video--thumbnail-first.post-video--playing .post-video-iframe--preload {
        opacity: 1;
        pointer-events: auto;
        z-index: 2;
    }

    .post-video .video-container iframe {
        transform: scale(1.16);
        transform-origin: center center;
    }

    .news-card-youtube-embed iframe {
        transform: scale(1.22);
        transform-origin: center center;
    }
}

/* Mobile landscape (video viewer): iframe fills the viewport */
@media (orientation: landscape) and (max-height: 500px) {
    body.past-talks-open {
        overflow: hidden;
    }

    body.past-talks-open .header,
    body.past-talks-open .navbar--mobile-bottom,
    body.past-talks-open .viewer-section:not(.is-collapsed)::before {
        display: none !important;
    }

    body.past-talks-open .viewer-section:not(.is-collapsed) {
        padding: 0 !important;
        margin: 0 !important;
        background: #000000 !important;
        max-width: none !important;
    }

    body.past-talks-open .viewer-section-inner-wrapper,
    body.past-talks-open .video-layout,
    body.past-talks-open .viewing,
    body.past-talks-open .viewing-main-col {
        padding: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        background: transparent !important;
    }

    body.past-talks-open .viewing-main-col > :not(.post-video),
    body.past-talks-open .video-layout > .morevideos {
        display: none !important;
    }

    body.past-talks-open .post-video {
        position: fixed;
        inset: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px)
            env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
        z-index: 10060;
        width: auto;
        height: auto;
        margin: 0;
        box-shadow: none !important;
    }

    body.past-talks-open .post-video .video-container {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        padding-bottom: 0 !important;
        max-width: none;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    body.past-talks-open .post-video .video-container iframe,
    body.past-talks-open .post-video-iframe--preload {
        transform: none !important;
        width: 100%;
        height: 100%;
    }

    body.past-talks-open .post-video--thumbnail-first .post-video-thumbnail-btn {
        position: absolute;
        inset: 0;
    }

    body.past-talks-open .post-video--thumbnail-first.post-video--playing .post-video-iframe--preload {
        opacity: 1;
        pointer-events: auto;
        z-index: 2;
    }
}

/* Home: password gate when `tbs/Settings.passwordprotecthome` is Yes */
body.home-password-locked .header,
body.home-password-locked .everything,
body.home-password-locked .footer {
    visibility: hidden;
}

.home-password-gate {
    position: fixed;
    inset: 0;
    z-index: 10002;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    background: #003153;
    box-sizing: border-box;
}

.home-password-gate-panel {
    width: 100%;
    max-width: 400px;
    padding: 2rem;
    background: #fafafa;
    border-radius: 5px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
}

.home-password-gate-title {
    margin: 0 0 0.5rem 0;
    font-size: 1.75rem;
    font-weight: 600;
    color: #003153;
    text-align: center;
}

.home-password-gate-subtitle {
    margin: 0 0 1.5rem 0;
    color: #64748b;
    text-align: center;
    font-size: 1rem;
}

.home-password-gate-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.home-password-gate-label {
    font-size: 0.9rem;
    font-weight: 500;
    color: #003153;
}

.home-password-gate-input {
    width: 100%;
    padding: 0.65rem 0.75rem;
    font-size: 1rem;
    border: 1px solid #cbd5e0;
    border-radius: 5px;
    box-sizing: border-box;
}

.home-password-gate-input:focus {
    outline: 2px solid #003153;
    outline-offset: 1px;
    border-color: #003153;
}

.home-password-gate-error {
    margin: 0;
    font-size: 0.9rem;
    color: #b91c1c;
}

.home-password-gate-submit {
    margin-top: 0.5rem;
    padding: 0.65rem 1rem;
    font-size: 1rem;
    font-weight: 600;
    color: #003153;
    background: #ffd700;
    border: 2px solid #ffd700;
    border-radius: 5px;
    cursor: pointer;
}

.home-password-gate-submit:hover {
    filter: brightness(0.95);
}

/* Authentication Styles */
body.login-page {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

body.login-page .login-main {
    margin: 0;
    padding: 0;
}

.auth-section {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #003153;
}

.auth-poster {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.auth-poster-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top left;
}

.auth-section-content {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 2rem 0;
    box-sizing: border-box;
}

.auth-section .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.auth-header-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin-bottom: 2rem;
    max-width: min(100%, 1344px);
    margin-left: auto;
    margin-right: auto;
}

.auth-header-logo-img {
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1) drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
}

/* backendlogo.png is already light-on-dark; do not invert or the black canvas becomes a white block */
.auth-header-logo-img--backend {
    display: block;
    width: auto;
    max-width: min(100%, 1344px);
    height: auto;
    max-height: 201px;
    margin-left: auto;
    margin-right: auto;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.35));
}

.auth-logo-section {
    text-align: center;
    margin-top: 3rem;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

.auth-logo {
    max-width: 120px;
    height: auto;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
}

body.login-page .auth-container {
    background: var(--introslider-nav-glass-bg);
    background-color: var(--introslider-nav-glass-bg);
    backdrop-filter: blur(var(--introslider-nav-glass-blur));
    -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur));
    border: 1px solid var(--introslider-nav-glass-border);
    border-radius: 5px;
    box-shadow:
        var(--introslider-nav-glass-shadow),
        0 14px 48px rgba(0, 0, 0, 0.32),
        0 4px 12px rgba(0, 0, 0, 0.2);
    color: #ffffff;
}

body.login-page .auth-title {
    color: #ffffff;
}

.auth-container {
    max-width: 400px;
    margin: 0 auto;
    padding: 2rem;
    background: #FAFAFA;
    border-radius: 5px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    border: 1px solid #e2e8f0;
}

.auth-title {
    font-family: var(--title-font);
    font-size: 2rem;
    font-weight: 600;
    color: #003153;
    text-align: center;
    margin-bottom: 0.5rem;
}

.auth-subtitle {
    color: #64748b;
    text-align: center;
    margin-bottom: 2rem;
    font-size: 1rem;
}

.form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.form-label {
    font-weight: 500;
    color: #374151;
    font-size: 0.9rem;
}

.form-input {
    padding: 0.75rem 1rem;
    border: 2px solid #e2e8f0;
    border-radius: 5px;
    font-size: 1rem;
    transition: all 0.3s ease;
    background: #FAFAFA;
}

.form-input:focus {
    outline: none;
    border-color: #003153;
    box-shadow: 0 0 0 3px rgba(0, 49, 83, 0.1);
}

.checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    font-size: 0.9rem;
}

.checkbox-text {
    color: #64748b;
}

.btn {
    padding: 6px 7px;
    border: none;
    border-radius: 5px;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
    text-align: center;
    width: 70%;
    max-width: 120px;
}

.btn-primary {
    background: #FFD700;
    color: #003153;
}

.btn-primary:hover {
    background: #e6c200;
    color: #003153;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 215, 0, 0.3);
}

.auth-links {
    text-align: center;
    margin-top: 1rem;
}

.auth-link {
    color: #003153;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.9rem;
}

.auth-link:hover {
    text-decoration: underline;
}

.auth-switch {
    text-align: center;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #e2e8f0;
    color: #64748b;
}

.auth-form {
    animation: fadeIn 0.3s ease-in-out;
}

.auth-container--google {
    text-align: center;
}

.auth-notice {
    margin: 0 0 1.5rem;
    padding: 0.75rem 1rem;
    border-radius: 5px;
    background: #fff8e1;
    border: 1px solid #fde68a;
    color: #854d0e;
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: left;
}

.auth-notice--info {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1e40af;
}

.auth-google-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 0.75rem 1.25rem;
    border: 1px solid #dadce0;
    border-radius: 5px;
    background: #ffffff;
    color: #3c4043;
    font-family: var(--title-font);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    box-shadow: 0 1px 2px rgba(60, 64, 67, 0.18);
}

.auth-google-btn .fab.fa-google {
    font-size: 1.15rem;
    color: #4285f4;
}

.auth-google-btn:hover:not(:disabled) {
    background: #f8f9fa;
    border-color: #d2d5d9;
    box-shadow: 0 2px 6px rgba(60, 64, 67, 0.22);
}

.auth-google-btn:focus-visible {
    outline: 2px solid #003153;
    outline-offset: 2px;
}

.auth-google-btn:disabled,
.auth-google-btn--inactive,
.auth-google-btn[aria-disabled='true'] {
    opacity: 0.55;
    cursor: not-allowed;
    box-shadow: none;
}

.auth-google-help {
    margin: 1rem 0 0;
    color: #64748b;
    font-size: 0.875rem;
    line-height: 1.45;
    text-align: left;
}

.auth-message {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: 5px;
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: left;
    animation: fadeIn 0.3s ease-in-out;
}

.auth-message--info {
    background: #e0f2fe;
    border: 1px solid #7dd3fc;
    color: #0c4a6e;
}

.auth-message--success {
    background: #dcfce7;
    border: 1px solid #bbf7d0;
    color: #166534;
}

.auth-message--error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Auth Mobile Responsiveness */
@media (max-width: 768px) {
    .auth-container {
        margin: 0 20px;
        padding: 1.5rem;
    }
    
    .auth-title {
        font-size: 1.75rem;
    }
    
    .auth-section-content {
        padding: 2rem 0;
    }
}

/* Video layout container */
/* Height comes only from .viewing; sidebar is absolutely positioned so it never affects parent height */
.video-layout {
    position: relative;
    margin: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.viewing {
    background-color: #FAFAFA !important;
    padding: 0;
    border-radius: 5px;
    min-width: 0;
    border: none;
    max-width: 100%;
    box-sizing: border-box;
    margin-right: calc(18% + 8px); /* leave space for absolutely positioned sidebar + gap */
}
.viewing-main-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
/* Sidebar out of flow: top/bottom align to .viewing, scrolls when content overflows */
.video-layout > .morevideos {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 18%;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* More videos container */
.morevideos {
    background-color: #F5F5F5;
    padding: 0 0 0.25rem 0;
    border-radius: 5px;
    border: 1px solid #cbd5e0;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Morevideos title */
.morevideos-title {
    font-weight: 600;
    margin: 0 0 0 0 !important;
    margin-bottom: 0 !important;
    font-size: 0.9rem;
    color: #ffffff;
    text-align: center;
    background-color: #003153;
    padding: 0.25rem;
    width: 100%;
    border-radius: 5px;
}


.featured-video h3,
.featured-b h3 {
    color: #000000;
}

.featured-pasttalks h3 {
    color: #ffffff;
}

/* Match welcome section paragraph ( .featured-text-content p ) */
.social-description {
    font-size: 1rem;
    color: #000000;
    line-height: 1.6;
    margin: 0 0 0.75rem 0;
    padding-left: 0;
}

/* Morevideos cards container */
.morevideos-cards {
    flex: 1;
    min-height: 0; /* Required for overflow scroll in flex container */
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 0 !important;
    padding-top: 0 !important;
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
}

/* Hide scrollbar for morevideos cards */
.morevideos-cards::-webkit-scrollbar {
    display: none; /* Hide scrollbar */
}

/* Individual morevideos card */
.morevideos-card {
    background: #FAFAFA;
    border-radius: 5px;
    padding: 0;
    cursor: pointer;
    border: 1px solid #ddd;
}


.morevideos-card-image {
    width: 100%;
    aspect-ratio: 16/9;
    border-radius: 5px;
    overflow: hidden;
}

.morevideos-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.morevideos-card-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.morevideos-card-title {
    padding-left: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    margin: 0 0 0.25rem 0;
    line-height: 1.2;
    color: #333;
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    flex-shrink: 1;
    word-wrap: break-word;
    hyphens: auto;
}

.morevideos-card-date {
    font-size: 0.8rem;
    color: #666;
    margin: 0;
    text-align: right;
    width: 100%;
}

/* Video viewer: on mobile, single column – viewing then morevideos (horizontal scroll) */
@media (max-width: 768px) {
    .video-layout {
        display: flex;
        flex-direction: column;
    }
    .viewing {
        margin-right: 0;
    }
    .viewing .youtubereminder {
        margin-bottom: 16px;
        margin-left: 8px;
        margin-right: 8px;
        width: auto;
        box-sizing: border-box;
    }
    .video-layout > .morevideos {
        position: static;
        width: 100%;
        height: auto !important;
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 0.5rem;
    }

    .morevideos,
    .morevideos-title {
        border-radius: 0;
    }
    .video-layout .morevideos-cards {
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
        flex-wrap: nowrap;
        gap: 8px;
        padding-left: 8px;
        padding-right: 8px;
        box-sizing: border-box;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .video-layout .morevideos-cards::-webkit-scrollbar {
        display: none;
    }
    .video-layout .morevideos-card {
        flex: 0 0 auto;
        min-width: calc(180px * 1.2);
        max-width: calc(180px * 1.2);
    }
}

/* Introslider card titles — same typography as `.section-titles`; gold only */
.introslider :is(
    .section-titles.introslider-title,
    h1.section-titles.introslider-title,
    h2.section-titles.introslider-title,
    h3.section-titles.introslider-title
):not(.featured-video-name) {
    color: #ffd700 !important;
    -webkit-text-fill-color: #ffd700 !important;
}

.introslider .about-title.introslider-title.section-titles {
    padding: 0 !important;
    box-sizing: border-box;
}

.introslider .introslider-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0 16px 24px 16px;
    box-sizing: border-box;
}

/* Speaker / subtitle line under featured video title — not a primary title colour */
.introslider .featured-video-name.introslider-title {
    color: #3b82f6 !important;
}

.home-section .introslider > .featured-video .featured-video-name.introslider-title {
    color: #ffffff !important;
}

/*
 * Home hero introslider band — last in file so it wins `.location` / `.register` defaults.
 * Blue gradient section; transparent wrapper / track; frosted glass cards.
 */
body.home-view .home-section > .introslider-section.home-hero-introslider-outer {
    padding: 0 !important;
    background-color: transparent !important;
    background-image: var(--introslider-section-gradient) !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > *:first-child {
    margin-left: 8px !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > *:last-child {
    margin-right: 8px !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider {
    padding: 24px 0 0;
    background-color: transparent !important;
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider {
    background-color: transparent !important;
    background: transparent !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .about,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .location,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .pasttalks,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .register,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .about-programme,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .about-speakers,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .tbsonsocial {
    height: auto !important;
    max-height: none !important;
    background-color: var(--introslider-nav-glass-bg) !important;
    background: var(--introslider-nav-glass-bg) !important;
    backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
    -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
    box-shadow: var(--introslider-nav-glass-shadow) !important;
    border: 1px solid var(--introslider-nav-glass-border) !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .about,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .location,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .pasttalks,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .register,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .about-programme,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .about-speakers,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .tbsonsocial {
        border-left: none !important;
        border-right: none !important;
        border-bottom: none !important;
    }
}

@media (min-width: 769px) {
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider {
        border-top-left-radius: 5px !important;
        border-top-right-radius: 5px !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        overflow: hidden;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > :is(
        .about,
        .location,
        .pasttalks,
        .register,
        .about-programme,
        .about-speakers,
        .tbsonsocial
    ) {
        border-radius: 5px !important;
        border: 1px solid var(--introslider-nav-glass-border) !important;
    }
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .introslider-clickable:hover,
body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .introslider-clickable:focus-visible {
    border: 1px solid var(--tbs-pink) !important;
    outline: none;
    transform: translateY(calc(-1 * var(--introslider-hover-lift)));
    box-shadow: 0 8px 36px rgba(0, 0, 0, 0.28), 0 4px 12px rgba(0, 0, 0, 0.14) !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > * .about-text a {
    color: var(--tbs-pink) !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > * .about-text a:hover {
    color: var(--tbs-pink-soft) !important;
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > :is(
    .about,
    .location,
    .pasttalks,
    .register,
    .about-programme,
    .about-speakers,
    .tbsonsocial
) .featured-bottom-title {
    background: rgba(0, 49, 83, 0.55);
    color: #ffffff !important;
    text-shadow: none;
    border: 1px solid var(--introslider-nav-glass-border);
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .introslider-card-image-wrap::after {
    background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(0, 49, 83, 0.25) 25%,
        rgba(0, 49, 83, 0.55) 50%,
        rgba(0, 49, 83, 0.75) 68%,
        rgba(0, 49, 83, 0.92) 100%
    );
}

body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider-section-title {
    color: #ffffff !important;
}

/*
 * Site: headers and titles use Montserrat (wins Inter / League Spartan component rules).
 */
:is(
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .section-titles,
    .about-title,
    .introslider-title,
    .introslider-section-title,
    .event-section-title,
    .speakers-section-title,
    .maintitle-heading,
    .hero-title,
    .auth-title,
    .post-title,
    .past-talks-section-title,
    .past-talks-wrapper > .past-talks-section-title,
    .section-header h2,
    .featured-location-title,
    .featured-programme-title,
    .featured-bottom-title,
    .featured-video-title,
    .featured-social-gradient-title,
    .home-carousel-tba-title,
    .speaker-card-name,
    .speaker-card-long-bio-title,
    .ondemand-section-title,
    .registration-section-title,
    .footer-logo-fallback-title,
    .header .nav-link,
    .header .mobile-top-tab-link,
    .header .nav-register-pill,
    .nav-register-mobile-top .nav-register-pill,
    .home-section :is(h1, h2, h3, h4, h5, h6),
    .home-programme-section :is(h1, h2, h3, h4, h5, h6),
    .footer :is(h1, h2, h3, h4, h5, h6),
    .welcometext .featured-text-content h3,
    .featured-text-content h3
) {
    font-family: var(--title-font) !important;
    letter-spacing: 0.02em;
}

/* Introslider card titles — wins `.home-section .introslider > …` legacy stacks */
.home-section .introslider :is(
    .introslider-title,
    .about-title,
    .featured-bottom-title,
    .featured-video-title
),
.home-section .introslider-inner-wrapper .introslider :is(
    .introslider-title,
    .about-title,
    .featured-bottom-title
),
.introslider :is(.introslider-title, .about-title.introslider-title, .featured-bottom-title) {
    font-family: var(--title-font) !important;
    letter-spacing: 0.02em;
}

/* Navbar tabs + Register pill (desktop header + mobile top pill) */
.navbar :is(.nav-link, .mobile-top-tab-link, .nav-register-pill),
.header :is(.nav-link, .mobile-top-tab-link, .nav-register-pill),
.nav-register-mobile-top :is(.nav-register-pill, .nav-link),
.nav-register-mobile-bar :is(.nav-register-pill, .nav-link) {
    font-family: var(--title-font) !important;
    letter-spacing: 0.02em;
}

/* Montserrat title weights: each role +100 vs site design tokens */
body.home-view :is(
    .nav-link,
    .mobile-top-tab-link,
    .nav-register-pill,
    .registration-submit-btn,
    .featured-video-name.introslider-title
) {
    font-weight: 500 !important;
}

body.home-view .nav-link.active,
body.home-view .mobile-top-tab-link.active {
    font-weight: 600 !important;
}

body.home-view :is(
    .post-title,
    .introslider .featured-bottom-title:not(.introslider-title)
) {
    font-weight: 600 !important;
}

body.home-view :is(
    .about-title:not(.introslider-title),
    .introslider-section-title,
    .event-section-title,
    .ondemand-section-title,
    .speaker-card-name:not(.home-carousel-tba-title),
    .speaker-card-long-bio-title,
    .featured-location-title,
    .featured-programme-title,
    .featured-video-title,
    .featured-social-gradient-title,
    .home-section .event-contents h3,
    .home-section .programmestyle :is(h3, h4):not(.home-carousel-tba-title),
    .home-programme-section .programmestyle :is(h3, h4):not(.home-carousel-tba-title),
    .home-section .speakerslider .speaker-card-bio h3:not(.home-carousel-tba-title),
    .welcometext .featured-text-content h3,
    .featured-text-content h3
) {
    font-weight: 700 !important;
}

/* `.section-titles` — 1.5rem / 600 (poster hero titles excepted above) */
body.home-view :is(
    .section-titles,
    h1.section-titles,
    h2.section-titles,
    h3.section-titles
) {
    font-size: 1.5rem !important;
    font-weight: 600 !important;
}

/* Programme band h2: colour/layout only — font/size/weight match Latest via home h2 rule below */
body.home-view .programme-section h2,
body.home-view .home-programme-section .programme-section h2 {
    color: #000000 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
    text-shadow: none !important;
    line-height: normal !important;
}

body.home-view .programme-section .programme-info > .programme-info-title,
body.home-view .home-programme-section .programme-info > .programme-info-title,
.texteditor-render-html .programme-info > .programme-info-title {
    color: #ffffff !important;
}

/* Home h2: same font and size as Latest (#home-feed-latest-heading); colour unchanged */
body.home-view .home-section h2,
body.home-view .home-programme-section h2 {
    font-family: var(--title-font) !important;
    font-size: 1.5rem !important;
    letter-spacing: 0.02em !important;
}

/* Home + backend h2: semibold 600 (not browser default bold) */
body.home-view h2,
body.backend-page h2 {
    font-weight: 600 !important;
}

/* Section band titles + carousel card headings (incl. Programme/Speakers TBA) */
body.home-view :is(
    .registration-section-title,
    .speakers-section-title,
    .ondemand-section-title,
    .home-carousel-tba-title,
    .speaker-card-name.home-carousel-tba-title
) {
    font-weight: 600 !important;
}

body.home-view .programme-slider h2,
body.home-view .speakerslider h2,
body.home-view .speakerslider .speaker-card-bio h2,
body.backend-page .programme-slider h2 {
    font-weight: 600 !important;
}

/* Introslider card titles — inherit `.section-titles`; gold only */
body.home-view .introslider :is(
    .section-titles.introslider-title,
    h1.section-titles.introslider-title,
    h2.section-titles.introslider-title,
    h3.section-titles.introslider-title
):not(.featured-video-name) {
    color: #ffd700 !important;
    -webkit-text-fill-color: #ffd700 !important;
}

body.home-view :is(.maintitle-heading) {
    font-weight: 800 !important;
}

body.home-view .home-section > picture .poster-maintitles .maintitle-heading,
body.home-view .home-section > picture .poster-maintitles .tbs27-card-subtitle {
    font-weight: 500 !important;
}

/* Mobile: hero About introslider — flush cards; dots in `.about-text` (script.js) */
@media (max-width: 768px) {
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer {
        padding: 0 !important;
        background-color: transparent !important;
        background-image: var(--introslider-section-gradient) !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider {
        background: transparent !important;
        background-color: transparent !important;
    }

    .home-section .introslider-inner-wrapper,
    body.home-view .home-section .introslider-inner-wrapper,
    body.home-view .home-section > .introslider-inner-wrapper {
        position: relative !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        border-radius: 0 !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider {
        position: relative !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        border-radius: 0 !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider {
        position: relative !important;
        scroll-padding-inline: 0 !important;
        gap: 0 !important;
        scroll-snap-type: x mandatory !important;
        background-color: transparent !important;
        background: transparent !important;
    }

    /* No borders; square corners everywhere in section (dots stay round) */
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer,
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer *:not(.introslider-dot) {
        border: none !important;
        outline: none !important;
        border-radius: 0 !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider {
        border: none !important;
        border-width: 0 !important;
        border-radius: 0 !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer .introslider-dot {
        border: 2px solid #fc70d7 !important;
        border-radius: 50% !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer .introslider-dot.active {
        border-color: #fc70d7 !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > * {
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        border: 1px solid var(--introslider-nav-glass-border) !important;
        border-left: none !important;
        border-right: none !important;
        border-bottom: none !important;
        border-radius: 0 !important;
        box-shadow: var(--introslider-nav-glass-shadow) !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        position: relative !important;
        background-color: var(--introslider-nav-glass-bg) !important;
        background: var(--introslider-nav-glass-bg) !important;
        backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
        -webkit-backdrop-filter: blur(var(--introslider-nav-glass-blur)) !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .introslider-clickable:hover,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > .introslider-clickable:focus-visible {
        border: 1px solid var(--tbs-pink) !important;
        border-left: none !important;
        border-right: none !important;
        border-bottom: none !important;
        outline: none !important;
        transform: translateY(calc(-1 * var(--introslider-hover-lift)));
        box-shadow: 0 8px 36px rgba(0, 0, 0, 0.28), 0 4px 12px rgba(0, 0, 0, 0.14) !important;
    }

    /* Dot indicators — fixed at bottom of slider band; cards scroll underneath (script.js) */
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider-indicators.introslider-indicators--mobile-fixed {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 25 !important;
        margin: 0 !important;
        padding: 12px 8px 16px 8px !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 10px !important;
        background: transparent !important;
        background-color: transparent !important;
        box-sizing: border-box !important;
        pointer-events: none;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider-indicators.introslider-indicators--mobile-fixed .introslider-dot {
        pointer-events: auto;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > *:first-child {
        margin-left: 8px !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > *:last-child {
        margin-right: 8px !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > * .about-text,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider > * > .about-text {
        background-color: transparent !important;
        background: transparent !important;
        border-radius: 0 !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text > *,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text :is(.introslider-card-image-wrap, .introslider-text, .introslider-card-image, img) {
        border-radius: 0 !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider-text {
        padding: 0 8px 44px 8px !important;
        background-color: transparent !important;
        background: transparent !important;
    }

    /* Taller image fade on narrow screens; blend into frosted card */
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .introslider-card-image-wrap::after,
    .home-section .introslider .introslider-card-image-wrap::after {
        height: 15%;
        min-height: 0;
        max-height: none;
        background: linear-gradient(
            to bottom,
            transparent 0%,
            rgba(0, 49, 83, 0.25) 25%,
            rgba(0, 49, 83, 0.55) 50%,
            rgba(0, 49, 83, 0.75) 68%,
            rgba(0, 49, 83, 0.92) 100%
        ) !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text:has(> img + .about-title)::before,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text:has(> .introslider-card-image + .about-title)::before {
        background: linear-gradient(to top, rgba(0, 49, 83, 0.92) 0%, rgba(0, 49, 83, 0.35) 45%, transparent 100%) !important;
    }
}

/*
 * Mobile hero introslider — square corners (placed last so late hero-band rules cannot re-round).
 */
@media (max-width: 768px) {
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer,
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer *:not(.introslider-dot),
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer *:not(.introslider-dot)::before,
    body.home-view .home-section > .introslider-section.home-hero-introslider-outer *:not(.introslider-dot)::after {
        border-radius: 0 !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer > .introslider-inner-wrapper.home-hero-introslider,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider {
        border: none !important;
        border-width: 0 !important;
        border-radius: 0 !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider > .introslider > :is(
        .about,
        .location,
        .pasttalks,
        .register,
        .about-programme,
        .about-speakers,
        .tbsonsocial,
        .introslider-clickable
    ),
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text > *,
    body.home-view .home-section .introslider-inner-wrapper.home-hero-introslider .introslider .about-text :is(
        .introslider-card-image-wrap,
        .introslider-text,
        .introslider-card-image,
        .introslider-card-video,
        img
    ) {
        border-radius: 0 !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
    }

    body.home-view .home-section > .introslider-section.home-hero-introslider-outer .introslider-dot {
        border-radius: 50% !important;
    }
}

/* TBA carousel titles — always semibold 600 (wins Montserrat 700 title stack) */
body.home-view h3.home-carousel-tba-title,
body.home-view h3.speaker-card-name.home-carousel-tba-title,
body.home-view .programme-tba h3.home-carousel-tba-title,
body.home-view .speaker-card--tba h3.speaker-card-name.home-carousel-tba-title,
body.home-view .home-section .programmestyle h3.home-carousel-tba-title {
    font-weight: 600 !important;
}

/* TBS Alaska guest registration (embeddable; no home chrome) */
html.alaska-guest-register,
body.alaska-guest-register {
    background-color: #FFD007;
    color: #1a1a1a;
    min-height: 100%;
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
}

body.alaska-guest-register {
    margin: 0;
    padding: 0;
}

body.alaska-guest-register .alaska-guest-register-main {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

body.alaska-guest-register .registration-section {
    padding: 0 8px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.alaska-guest-register .registration-section,
body.alaska-guest-register .registration-section-inner-wrapper {
    background-color: #FFD007;
    color: #1a1a1a;
}

body.alaska-guest-register .registration-section-inner-wrapper {
    padding: 24px 16px;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

body.alaska-guest-register .registration-form .registration-field label,
body.alaska-guest-register .registration-form .registration-fieldset legend,
body.alaska-guest-register .registration-form .registration-checkbox-group label,
body.alaska-guest-register .registration-form .registration-smallprint,
body.alaska-guest-register .registration-form p {
    color: #1a1a1a;
}

body.alaska-guest-register .registration-form .registration-field input,
body.alaska-guest-register .registration-form .registration-field textarea,
body.alaska-guest-register .registration-form .registration-field select {
    color: #1a1a1a;
    background-color: #ffffff;
}

body.alaska-guest-register .registration-form .registration-field input:focus,
body.alaska-guest-register .registration-form .registration-field textarea:focus,
body.alaska-guest-register .registration-form .registration-field select:focus {
    border-color: #1a1a1a;
    box-shadow: 0 0 0 2px rgba(26, 26, 26, 0.18);
}

body.alaska-guest-register .registration-checkbox-group input[type="radio"] {
    border-color: #1a1a1a;
}

body.alaska-guest-register .registration-checkbox-group input[type="radio"]::before {
    background-color: #1a1a1a;
}

body.alaska-guest-register .registration-speciality-box {
    border-color: #1a1a1a;
}

body.alaska-guest-register .registration-speciality-box::after {
    color: #1a1a1a;
}

body.alaska-guest-register .registration-fieldset[aria-label="Base medical speciality"],
body.alaska-guest-register .registration-fieldset[aria-label="Level of training"],
body.alaska-guest-register .registration-fieldset[aria-label="Clinical context"] {
    border-color: #1a1a1a;
}

body.alaska-guest-register .registration-submit-btn {
    background-color: #1a1a1a;
    color: #FFD007;
}

body.alaska-guest-register .registration-submit-btn:hover:not(:disabled),
body.alaska-guest-register .registration-submit-btn:focus-visible:not(:disabled) {
    background-color: #003153;
    color: #FFD007;
}

