.f12-session {
    padding-block: var(--f12-space-5) var(--f12-space-24);
    font-size: var(--f12-font-size-md);
    font-weight: var(--f12-font-weight-regular);
    line-height: var(--f12-line-height-base);
}
.f12-session__media,
.f12-session__content {
    width: calc(100% - 40px);
    margin-inline: auto;
}
.f12-session__media {
    max-width: 1040px;
    overflow: hidden;
    border-radius: 20px;
    background: var(--f12-color-surface-subtle);
    box-shadow: var(--f12-shadow-2);
}
.f12-session__video,
.f12-session__external-video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border: 0;
    background: var(--f12-color-text-heading);
}
.f12-session__external-video {
    position: relative;
    color: var(--f12-color-text-on-dark);
}
.f12-session__external-video > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.f12-session__play {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
}
.f12-session__external-label {
    position: absolute;
    inset: auto 0 var(--f12-space-6);
    text-align: center;
    color: var(--f12-color-text-on-dark);
    font-weight: var(--f12-font-weight-semibold);
}
.f12-session__content {
    max-width: 940px;
    padding: var(--f12-space-10) var(--f12-space-2) 0;
}
.f12-session__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--f12-space-6);
}
.f12-session__header > div {
    min-width: 0;
    flex: 1;
}
.f12-session__meta,
.f12-session__navigation,
.f12-session__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--f12-space-3);
}
.f12-session__meta > :not(:first-child)::before {
    content: "|";
    margin-right: var(--f12-space-3);
}
.f12-session__meta {
    font-size: var(--f12-font-size-md);
    line-height: var(--f12-line-height-base);
}
.f12-session__meta a {
    text-underline-offset: 3px;
}
.f12-session__navigation {
    flex-shrink: 0;
    gap: var(--f12-space-4);
}
.f12-session__nav-link {
    display: inline-flex;
    align-items: center;
    gap: var(--f12-space-3);
    min-height: 44px;
    font-size: var(--f12-font-size-md);
    font-weight: var(--f12-font-weight-regular);
    text-decoration: none;
}
.f12-session__nav-link--previous {
    flex-direction: row-reverse;
}
.f12-session__nav-link--previous svg {
    transform: rotate(180deg);
}
.f12-session__nav-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--f12-radius-pill);
    background: var(--f12-color-surface-subtle);
}
.f12-session svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}
.f12-session__description {
    margin-top: var(--f12-space-8);
    text-wrap: pretty;
}
.f12-session__prose > * + * {
    margin-top: 1em;
}
.f12-session__prose a {
    color: var(--f12-color-brand-editorial);
    text-decoration: none;
}
.f12-session__prose a:hover {
    text-decoration: underline;
}
.f12-session__actions {
    margin-top: var(--f12-space-6);
    gap: var(--f12-space-3);
}
.f12-session__actions-label {
    margin-right: 2px;
    font-size: var(--f12-font-size-md);
    font-weight: var(--f12-font-weight-semibold);
    white-space: nowrap;
}
.f12-session__actions .f12-btn {
    min-height: 46px;
}
.f12-session__platform {
    display: inline-grid;
    place-items: center;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    font-size: var(--f12-font-size-xs);
}
.f12-session__platform img {
    display: block;
    width: 21px;
    height: 21px;
}
.f12-session__share img {
    width: 17px;
    height: 17px;
}
.f12-session__alternate-audio {
    margin-top: var(--f12-space-6);
}
.f12-session__alternate-audio summary {
    cursor: pointer;
    font-size: var(--f12-font-size-sm);
    text-underline-offset: 3px;
}
.f12-session__alternate-audio audio {
    margin-top: var(--f12-space-3);
}
.f12-session__transcript .f12-resource-transcript__body {
    color: var(--f12-color-text-muted);
}
.f12-session__speakers {
    display: grid;
    gap: var(--f12-space-6);
    margin-top: var(--f12-space-16);
}
.f12-session__speaker {
    display: grid;
    grid-template-columns: 102px minmax(0, 1fr);
    align-items: center;
    gap: var(--f12-space-6);
    padding: var(--f12-space-6);
    border: 1px solid var(--f12-color-border-subtle);
    border-radius: var(--f12-radius-2);
    background: var(--f12-color-surface-card);
    box-shadow: var(--f12-shadow-2);
}
.f12-session__speaker:not(:has(> img)) {
    grid-template-columns: minmax(0, 1fr);
}
.f12-session__speaker > img {
    width: 102px;
    height: 102px;
    object-fit: cover;
    border-radius: 50%;
}
.f12-session__speaker h2 {
    font-size: var(--f12-font-size-lg);
}
.f12-session__speaker h2 a,
.f12-session__row h3 a {
    text-decoration: none;
}
.f12-session__speaker-group {
    padding: 0 var(--f12-space-6);
    border: 1px solid var(--f12-color-border-subtle);
    border-radius: var(--f12-radius-2);
    background: var(--f12-color-surface-card);
    box-shadow: var(--f12-shadow-2);
}
.f12-session__speaker-entry + .f12-session__speaker-entry {
    border-top: 1px solid var(--f12-color-border-subtle);
}
.f12-session__speaker-summary {
    display: flex;
    align-items: center;
    gap: var(--f12-space-4);
    min-height: 64px;
    padding: var(--f12-space-4) 0;
    list-style: none;
}
summary.f12-session__speaker-summary { cursor: pointer; }
.f12-session__speaker-summary::-webkit-details-marker { display: none; }
.f12-session__speaker-summary > img {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
}
.f12-session__speaker-name { flex: 1; min-width: 0; font-weight: var(--f12-font-weight-semibold); }
.f12-session__speaker-name a { color: inherit; text-decoration: none; }
.f12-session__speaker-chevron {
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    margin: 0 4px 4px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
}
.f12-session__speaker-entry[open] .f12-session__speaker-chevron { transform: rotate(225deg); margin-bottom: -4px; }
.f12-session__speaker-bio { padding-bottom: var(--f12-space-6); }
@media (max-width: 620px) {
    .f12-session__speaker-group { padding-inline: var(--f12-space-4); }
}
.f12-session__related {
    margin-top: var(--f12-space-16);
}
.f12-session__related-heading {
    margin-bottom: var(--f12-space-6);
    font-size: 28px;
    text-align: left;
}
.f12-session__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.f12-session__row {
    display: grid;
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--f12-space-6);
    padding-block: var(--f12-space-5);
    border-bottom: 1px solid var(--f12-color-border-subtle);
}
.f12-session__list > .f12-session__row:first-child {
    padding-top: 0;
}
.f12-session__list > .f12-session__row:last-child {
    border-bottom: 0;
}
.f12-session__row:not(:has(.f12-session__row-image)) {
    grid-template-columns: minmax(0, 1fr) auto;
}
.f12-session__row:has(audio) {
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
}
.f12-session__row-audio {
    grid-column: 2;
}
.f12-session__row:not(:has(.f12-session__row-image)) .f12-session__row-audio {
    grid-column: 1 / -1;
}
.f12-session__row:has(audio) .f12-session__row-image {
    grid-row: span 2;
}
.f12-session__row > div {
    min-width: 0;
    gap: var(--f12-space-2);
}
.f12-session__row h3 {
    font-size: 20px;
    line-height: 1.3;
}
.f12-session__row-speaker {
    font-weight: var(--f12-font-weight-semibold);
}
.f12-session__row-image {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--f12-radius-2);
}
.f12-session__row-image .f12-media-play svg {
    width: var(--f12-media-play-icon-size);
    height: var(--f12-media-play-icon-size);
}
.f12-session__row-image img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform 550ms var(--f12-ease-standard), filter 550ms var(--f12-ease-standard);
}
.f12-session__row:hover .f12-session__row-image img,
.f12-session__row:focus-within .f12-session__row-image img {
    transform: scale(1.035);
    filter: saturate(1.08);
}
.f12-session__watch {
    min-width: 104px;
}
.f12-session__sessions-toggle {
    display: none;
}
.f12-session__row[hidden] { display: none; }
.f12-session__related.has-more .f12-session__list {
    -webkit-mask-image: linear-gradient(#000 calc(100% - 48px), transparent);
    mask-image: linear-gradient(#000 calc(100% - 48px), transparent);
}
.f12-session__related.has-more .f12-session__sessions-toggle {
    display: flex;
    width: max-content;
    max-width: 100%;
    min-height: 42px;
    margin: var(--f12-space-6) auto 0;
    text-transform: none;
    letter-spacing: 0;
}
.f12-session__toggle-icon {
    width: .45rem;
    height: .45rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-.1rem) rotate(45deg);
    transition: transform var(--f12-duration-fast) var(--f12-ease-standard);
}
.f12-session audio {
    display: block;
    width: 100%;
    max-width: 560px;
    height: 44px;
}
.f12-session .f12-session__row-audio {
    max-width: none;
    height: 42px;
}
.f12-session__audio-lead {
    position: relative;
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    gap: var(--f12-space-4) var(--f12-space-6);
    padding: var(--f12-space-6);
    border: 1px solid var(--f12-color-border-subtle);
    border-radius: var(--f12-radius-2);
    background: var(--f12-color-surface-card);
    box-shadow: var(--f12-shadow-2);
}
.f12-session__audio-lead:not(:has(> img)) {
    grid-template-columns: minmax(0, 1fr);
}
.f12-session__audio-lead > img {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: var(--f12-radius-2);
}
.f12-session__audio-copy {
    min-width: 0;
    padding-right: 48px;
}
.f12-session__audio-indicator {
    position: absolute;
    top: var(--f12-space-6);
    right: var(--f12-space-6);
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: var(--f12-color-text-muted);
    background: var(--f12-color-surface-subtle, #f7f7f7);
}
.f12-session__audio-indicator svg { width: 21px; height: 21px; }
.f12-session__audio-controls {
    min-width: 0;
    grid-column: 2;
}
.f12-session__audio-lead:not(:has(> img)) .f12-session__audio-controls { grid-column: 1; }
.f12-session__audio-controls audio { max-width: none; }
.f12-session__audio-copy h2 {
    font-size: 20px;
}
@media (max-width: 767px) {
    .f12-session__audio-lead { grid-template-columns: 80px minmax(0, 1fr); gap: var(--f12-space-4); padding: var(--f12-space-4); }
    .f12-session__audio-lead:not(:has(> img)) { grid-template-columns: minmax(0, 1fr); }
    .f12-session__audio-lead > img { width: 80px; height: 80px; grid-row: 1; }
    .f12-session__audio-controls { grid-column: 1 / -1; }
    .f12-session__audio-indicator { top: var(--f12-space-4); right: var(--f12-space-4); width: 28px; height: 28px; }
    .f12-session__audio-indicator svg { width: 18px; height: 18px; }
    .f12-session__audio-copy { padding-right: 36px; }
}
@media (max-width: 620px) {
    .f12-session__media, .f12-session__content { width: calc(100% - 32px); }
    .f12-session__media { border-radius: var(--f12-radius-2); }
    .f12-session__content { padding: var(--f12-space-8) 0 0; }
    .f12-session__header { flex-wrap: wrap; gap: var(--f12-space-3); }
    .f12-session__header > div { flex-basis: 100%; }
    .f12-session__navigation { margin-inline: 0 auto; }
    .f12-session__nav-link {
        font-size: var(--f12-font-size-sm);
        color: var(--f12-text-style-meta-sm-color);
        font-weight: var(--f12-text-style-meta-sm-font-weight);
    }
    .f12-session__nav-icon { color: var(--f12-color-text-primary); }
    .f12-session__description { margin-top: var(--f12-space-6); }
    .f12-session__speakers { margin-top: var(--f12-space-10); }
    .f12-session__speaker { grid-template-columns: 64px minmax(0, 1fr); gap: var(--f12-space-4); padding: var(--f12-space-4); align-items: start; }
    .f12-session__speaker > img { width: 64px; height: 64px; }
    .f12-session__speaker > .f12-stack { display: contents; }
    .f12-session__speaker h2 { align-self: center; }
    .f12-session__speaker > .f12-stack > .f12-body { grid-column: 1 / -1; }
}
@media (max-width: 650px) {
    .f12-session__actions { gap: 10px; }
    .f12-session__actions-label { flex-basis: 100%; }
    .f12-session__row, .f12-session__row:has(audio) { grid-template-columns: clamp(120px, 27vw, 152px) minmax(0, 1fr); align-items: start; gap: 14px; padding-block: 14px; }
    .f12-session__row h3 { font-size: var(--f12-font-size-md); }
    .f12-session__row:not(:has(.f12-session__row-image)) { grid-template-columns: minmax(0, 1fr); }
    .f12-session__watch { display: none; }
    .f12-session__row:has(audio) .f12-session__row-image { grid-row: auto; }
    .f12-session__row-audio { grid-column: 1 / -1; }
    .f12-session__row-image .f12-media-play--icon-only { --f12-media-play-icon-size: .68rem; width: 2.35rem; height: 2.35rem; }
}
@media (max-width: 420px) {
    .f12-session__row, .f12-session__row:has(audio) { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; }
}
