/* Institution session layouts. Colours and typography use the live tokens. */
.sessions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.sessions-grid>*{min-width:0}.sessions-hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:center}
.sessions-hero h1{max-width:24ch}.sessions-photo{max-width:800px;margin:20px 0}.sessions-photo img{aspect-ratio:auto}
.sessions-photo figcaption{font-size:.85rem;color:var(--text-soft);margin-top:10px;line-height:1.5}
.sessions-speaker{max-width:560px}.sessions-small{max-width:400px}.sessions-portrait{max-width:480px}
.sessions-grid .sessions-photo{margin-top:0}.sessions-form{max-width:780px}.sessions-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.sessions-steps{padding-left:24px}.sessions-steps li{margin:12px 0}.sessions-faq{max-width:780px}.sessions-faq h3{margin-top:24px;color:var(--navy)}
.sessions-form [hidden]{display:none!important}.sessions-note{margin:14px 0;color:var(--text-soft)}
@media(max-width:700px){.sessions-grid,.sessions-hero{grid-template-columns:minmax(0,1fr)}.sessions-hero{gap:12px}.sessions-hero .hero-actions .btn{min-width:0;width:100%}}

/* Recent-session cards and the booking-page speaker row. */
.sessions-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px;align-items:start}
.sessions-gallery>.card{min-width:0}
.sessions-gallery .sessions-grid{grid-template-columns:minmax(0,1fr)}
.sessions-gallery .sessions-gallery-pair .sessions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sessions-gallery .sessions-photo{margin:0;max-width:100%}
.sessions-gallery .sessions-photo img{height:auto;aspect-ratio:auto}
.sessions-speaker-layout{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:center}
.sessions-speaker-layout .sessions-speaker{max-width:360px;margin:0}
.sessions-speaker-layout .sessions-speaker img{height:auto;aspect-ratio:auto}
@media(min-width:701px){.sessions-gallery-pair{grid-column:span 2}}
@media(max-width:700px){.sessions-gallery,.sessions-gallery .sessions-gallery-pair .sessions-grid,.sessions-speaker-layout{grid-template-columns:minmax(0,1fr)}}

/* Keep the speaker caption fully opaque throughout scroll entry. */
.sessions-speaker-layout .sessions-speaker{animation:none}
.sessions-speaker-layout .sessions-speaker figcaption{color:var(--text-soft)}

/* Booking media space belongs to a non-replaced container, even before image metadata. */
.sessions-booking .sessions-media{position:relative;width:100%;overflow:hidden;border-radius:var(--r-lg)}
.sessions-booking .sessions-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Keep above-the-fold photos independent of scroll timeline initialization. */
.sessions-booking .aptiguide-photo{animation:none;transform:none;opacity:1}
