.expo-banner {
    --expo-ink: #030022;
    position: relative;
    margin-top: var(--header-h, 72px);
    overflow: hidden;
    isolation: isolate;
    background: var(--expo-ink);
    color: #fff;
    font-family: Manrope, Arial, sans-serif;
}
.expo-banner *, .expo-banner *::before { box-sizing: border-box; }
.expo-banner__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(230px, 29%);
    align-items: center;
    gap: 40px;
    margin: 0 auto;
    padding-block: 44px 48px;
}
.expo-banner__copy { position: relative; z-index: 2; min-width: 0; }
.expo-banner__question {
    width: fit-content;
    margin: 0 0 14px;
    padding: 20px 28px;
    border-radius: 28px 28px 28px 6px;
    background: #fff;
    color: var(--expo-ink);
    font-size: clamp(26px, 2.65vw, 43px);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.2;
}
.expo-banner__question em { color: #537aff; font-family: 'Source Serif 4', Georgia, serif; font-weight: 500; }
.expo-banner__brand { margin: 0 0 18px 12%; font-size: clamp(30px, 3vw, 48px); line-height: 1.2; letter-spacing: -.04em; }
.expo-banner__date {
    width: fit-content;
    margin: 0 0 18px 12%;
    padding: 18px 26px 22px;
    border-radius: 26px 26px 6px 26px;
    background: #ff439f;
    color: var(--expo-ink);
}
.expo-banner__date p { margin: 0 0 4px; font-size: clamp(30px, 3.3vw, 53px); line-height: 1.15; font-weight: 800; letter-spacing: -.055em; }
.expo-banner__date span { font-size: clamp(17px, 1.65vw, 26px); line-height: 1.35; font-weight: 700; }
.expo-banner__talk { position: relative; margin: 0 0 0 12%; padding: 15px 20px; border-radius: 22px 22px 5px 22px; background: #fff; color: var(--expo-ink); font-size: clamp(16px, 1.3vw, 21px); line-height: 1.45; font-weight: 700; }
.expo-banner__talk strong { white-space: nowrap; font-weight: 800; }
.expo-banner__speaker { position: relative; margin: 0 0 10px; min-width: 0; padding: 0 6px; }
.expo-banner__speaker::before { content: ''; position: absolute; z-index: -1; width: 170%; aspect-ratio: 1; background: #ceff43; border-radius: 50%; top: 50%; left: 55%; transform: translate(-50%, -50%); }
.expo-banner__photo { display: block; width: 100%; height: auto; aspect-ratio: 6 / 7; object-fit: cover; object-position: center 30%; border-radius: 26px; transform: rotate(3deg); background: #191923; }
.expo-banner__badge { position: absolute; bottom: -20px; left: -24px; padding: 15px 20px; border-radius: 15px; background: var(--expo-ink); transform: rotate(-3deg); box-shadow: 0 18px 24px #03002222; }
.expo-banner__badge strong { display: block; font-size: clamp(20px, 1.8vw, 28px); line-height: 1.2; font-weight: 800; }
.expo-banner__badge span { display: block; margin-top: 5px; color: #ceff43; font-size: clamp(11px, 1vw, 15px); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.expo-banner + .v2-hero { padding-top: 28px; }
@media (max-width: 900px) {
    .expo-banner__inner { gap: 24px; padding-block: 32px 42px; grid-template-columns: minmax(0, 1fr) minmax(190px, 29%); }
    .expo-banner__question { padding: 18px 22px; }
    .expo-banner__brand, .expo-banner__date, .expo-banner__talk { margin-left: 0; }
    .expo-banner__badge { left: -12px; padding: 12px 14px; }
}
@media (max-width: 600px) {
    .expo-banner__inner { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 24px 44px; }
    .expo-banner__question { font-size: clamp(25px, 6.6vw, 36px); padding: 18px 20px; border-radius: 23px 23px 23px 5px; }
    .expo-banner__brand { font-size: 34px; margin: 0 0 16px 12px; }
    .expo-banner__date { width: 100%; padding: 20px; }
    .expo-banner__date p { font-size: clamp(30px, 8.1vw, 46px); }
    .expo-banner__date span { font-size: clamp(16px, 4.3vw, 23px); }
    .expo-banner__talk { font-size: 16px; padding: 16px 20px; }
    .expo-banner__speaker { width: min(68%, 280px); justify-self: center; margin: 0 0 16px; }
    .expo-banner__speaker::before { width: 190%; left: 65%; }
    .expo-banner__badge { left: -20px; bottom: -20px; }
    .expo-banner__badge strong { font-size: 23px; }
    .expo-banner__badge span { font-size: 12px; }
}
