/* CPES Featured Event
   Scoped under .featured-event / .fe-* to avoid disturbing existing CPES pages. */

:root {
    --fe-navy: #0b2948;
    --fe-blue: #174f83;
    --fe-blue-bright: #2c78b8;
    --fe-sky: #eaf4fb;
    --fe-ice: #f5f9fc;
    --fe-white: #fff;
    --fe-text: #263746;
    --fe-muted: #607383;
    --fe-border: #d9e4ec;
    --fe-gold: #d6a84d;
    --fe-shadow: 0 18px 50px rgba(11, 41, 72, .12);
    --fe-radius: 22px;
}

.fe-skip-link {
    position: absolute;
    left: -9999px;
    top: auto;
}
.fe-skip-link:focus {
    left: 1rem;
    top: 1rem;
    z-index: 10000;
    padding: .75rem 1rem;
    background: #fff;
    color: #0b2948;
}

.featured-event {
    color: var(--fe-text);
    font-size: 16px;
    line-height: 1.65;
    margin-inline: calc(50% - 50vw);
    overflow: clip;
}
.featured-event *, .featured-event *::before, .featured-event *::after { box-sizing: border-box; }
.featured-event h1, .featured-event h2, .featured-event h3, .featured-event h4 { color: var(--fe-navy); line-height: 1.15; margin-top: 0; }
.featured-event h2 { font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -.035em; }
.featured-event h3 { font-size: 1.25rem; }
.featured-event p { margin-top: 0; }
.featured-event a { text-underline-offset: 3px; }

.fe-container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.fe-section { padding: clamp(4rem, 8vw, 7rem) 0; scroll-margin-top: 140px; }
.fe-section--tint { background: linear-gradient(135deg, #f3f8fc 0%, #eaf4fb 100%); }
.fe-section--dark { background: radial-gradient(circle at 85% 0%, rgba(61, 137, 196, .35), transparent 35%), var(--fe-navy); }
.fe-section--dark h2, .fe-section--dark h3, .fe-section--dark p { color: #fff; }
.fe-eyebrow, .fe-kicker { display: block; margin-bottom: .75rem; color: var(--fe-blue-bright); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fe-section-heading { max-width: 760px; margin-bottom: 2.5rem; }
.fe-section-heading--wide { max-width: 900px; }
.fe-section-heading--light .fe-eyebrow { color: #9bd1f5; }
.fe-section-heading--light p { color: #d9e9f4; }
.fe-section-heading--split { max-width: none; display: flex; gap: 2rem; align-items: end; justify-content: space-between; }
.fe-lead { font-size: clamp(1.15rem, 2vw, 1.45rem); color: #40596c; }
.fe-subheading { margin: 3.5rem 0 1.25rem; font-size: 1.65rem !important; }

.fe-hero { position: relative; min-height: 680px; display: grid; align-items: center; color: #fff; background: var(--fe-navy); isolation: isolate; }
.fe-hero::before { content: ''; position: absolute; inset: 0; z-index: -3; background-image: var(--fe-hero-image); background-position: center; background-size: cover; }
.fe-hero::after { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(7, 29, 53, .97) 0%, rgba(9, 44, 76, .88) 48%, rgba(9, 44, 76, .38) 100%); }
.fe-hero__overlay { position: absolute; inset: 0; z-index: -1; opacity: .34; background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(to right, black, transparent 72%); }
.fe-hero__inner { padding-block: 7rem; }
.fe-hero__content { max-width: 850px; }
.fe-hero h1 { max-width: 900px; margin-bottom: 1.2rem; color: #fff; font-size: clamp(2.7rem, 6vw, 5.6rem); letter-spacing: -.05em; text-wrap: balance; }
.fe-hero__theme { max-width: 720px; color: #cde9fa; font-size: clamp(1.25rem, 2.5vw, 1.9rem); }
.fe-kicker { color: #a8d8f5; }
.fe-hero__meta { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; margin: 2rem 0; }
.fe-hero__meta span { display: inline-flex; gap: .6rem; align-items: center; }
.fe-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.fe-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .8rem 1.2rem; border: 1px solid transparent; border-radius: 999px; font-weight: 800; text-decoration: none !important; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.fe-button:hover, .fe-button:focus-visible { transform: translateY(-2px); }
.fe-button--primary { background: var(--fe-blue-bright); color: #fff !important; box-shadow: 0 10px 28px rgba(25, 99, 156, .3); }
.fe-button--ghost { border-color: rgba(255,255,255,.45); color: #fff !important; background: rgba(255,255,255,.08); }
.fe-button--light { background: #fff; color: var(--fe-navy) !important; }
.fe-button--ghost-light { border-color: rgba(255,255,255,.45); color: #fff !important; }

.fe-jump-nav { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--fe-border); box-shadow: 0 8px 24px rgba(11,41,72,.08); backdrop-filter: blur(14px); }
.fe-jump-nav__links { display: flex; justify-content: center; overflow-x: auto; }
.fe-jump-nav__links a { flex: 0 0 auto; padding: 1rem .9rem; color: var(--fe-navy); font-size: .9rem; font-weight: 800; text-decoration: none; }
.fe-jump-nav__links a:hover, .fe-jump-nav__links a:focus { color: var(--fe-blue-bright); }
.fe-jump-nav__toggle { display: none; width: 100%; padding: .9rem 0; border: 0; background: transparent; color: var(--fe-navy); font-weight: 800; text-align: left; }

.fe-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: -7rem; margin-bottom: 5rem; position: relative; z-index: 3; background: #fff; border-radius: var(--fe-radius); box-shadow: var(--fe-shadow); }
.fe-stat { padding: 1.7rem; text-align: center; border-right: 1px solid var(--fe-border); }
.fe-stat:last-child { border-right: 0; }
.fe-stat strong { display: block; color: var(--fe-blue); font-size: 2.25rem; line-height: 1; }
.fe-stat span { color: var(--fe-muted); font-size: .92rem; }
.fe-overview-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; align-items: start; }
.fe-prose { font-size: 1.08rem; }
.fe-partners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fe-partner-card { min-height: 235px; padding: 1.3rem; display: flex; flex-direction: column; align-items: center; text-align: center; border: 1px solid var(--fe-border); border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(11,41,72,.07); }
.fe-partner-card__logo { height: 72px; width: 100%; margin-bottom: 1rem; }
.fe-partner-card__logo img { width: 100%; height: 100%; object-fit: contain; }
.fe-partner-card span { color: var(--fe-muted); font-size: .86rem; }
.fe-partner-card small { margin-top: auto; color: var(--fe-blue); font-weight: 800; }
.fe-timeline { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 4rem; position: relative; }
.fe-timeline::before { content: ''; position: absolute; top: 16px; left: 2%; right: 2%; height: 2px; background: var(--fe-border); }
.fe-timeline__item { position: relative; padding: 3rem 1rem 0; }
.fe-timeline__item::before { content: ''; position: absolute; top: 9px; left: 1rem; width: 16px; height: 16px; border: 4px solid #fff; border-radius: 50%; background: var(--fe-blue-bright); box-shadow: 0 0 0 2px var(--fe-blue-bright); }
.fe-timeline__year { color: var(--fe-blue); font-weight: 900; }
.fe-timeline__item h3 { margin: .35rem 0; }
.fe-timeline__item p { color: var(--fe-muted); font-size: .93rem; }

.fe-welcome { display: grid; grid-template-columns: 330px 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.fe-welcome__portrait { aspect-ratio: 4/5; border-radius: 24px; overflow: hidden; box-shadow: var(--fe-shadow); }
.fe-welcome__portrait img { width: 100%; height: 100%; object-fit: cover; }
.fe-welcome blockquote { margin: 0 0 1.8rem; color: var(--fe-navy); font-size: clamp(1.45rem, 3vw, 2.25rem); font-weight: 750; line-height: 1.35; }
.fe-signature { padding-top: 1rem; border-top: 1px solid var(--fe-border); }

.fe-card-grid { display: grid; gap: 1.25rem; }
.fe-card-grid--three { grid-template-columns: repeat(3, 1fr); }
.fe-icon-card { padding: 2rem; border: 1px solid var(--fe-border); border-radius: var(--fe-radius); background: #fff; box-shadow: 0 14px 35px rgba(11,41,72,.07); }
.fe-icon-card__icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 1.2rem; border-radius: 16px; color: var(--fe-blue); background: var(--fe-sky); font-size: 1.4rem; }
.fe-icon-card p { color: var(--fe-muted); }

.fe-tab-list { display: flex; gap: .6rem; margin-bottom: 1rem; }
.fe-tab { padding: .9rem 1.2rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: transparent; color: #fff; font-weight: 800; }
.fe-tab.is-active { background: #fff; color: var(--fe-navy); }
.fe-tab-panel { display: grid; gap: .8rem; }
.fe-agenda-item { display: grid; grid-template-columns: 180px 1fr; border-radius: 18px; overflow: hidden; background: #fff; }
.fe-agenda-item__time { padding: 1.35rem; background: #eaf4fb; color: var(--fe-navy); font-weight: 850; }
.fe-agenda-item__body { padding: 1.25rem 1.5rem; }
.fe-agenda-item__body h3, .fe-agenda-item__body p { color: var(--fe-text); }
.fe-agenda-item__body h3 { margin: .25rem 0 .35rem; }
.fe-session-type { display: inline-flex; padding: .2rem .6rem; border-radius: 999px; color: var(--fe-blue); background: var(--fe-sky); font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.fe-agenda-item__people { margin-bottom: .45rem; color: var(--fe-muted) !important; }
.fe-disclosure { padding: .25rem 0; border: 0; color: var(--fe-blue); background: transparent; font-weight: 850; }
.fe-disclosure i { margin-left: .35rem; transition: transform .2s ease; }
.fe-disclosure[aria-expanded="true"] i { transform: rotate(180deg); }
.fe-agenda-item__details { padding-top: 1rem; }
.fe-agenda-item__details ul { margin-bottom: 0; padding-left: 1.2rem; }
.fe-track-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.fe-track-card { padding: 1rem; border: 1px solid var(--fe-border); border-radius: 14px; background: var(--fe-ice); }
.fe-track-card span { color: var(--fe-blue); font-size: .8rem; font-weight: 900; text-transform: uppercase; }
.fe-track-card h4 { margin: .35rem 0; }
.fe-track-card p { margin: 0; color: var(--fe-muted); font-size: .9rem; }

.fe-filter { min-width: 220px; }
.fe-filter label { display: block; margin-bottom: .35rem; color: var(--fe-muted); font-size: .82rem; font-weight: 800; }
.fe-filter select { width: 100%; min-height: 44px; padding: .55rem .8rem; border: 1px solid var(--fe-border); border-radius: 10px; background: #fff; }
.fe-people-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.fe-person-card { border: 1px solid var(--fe-border); border-radius: var(--fe-radius); overflow: hidden; background: #fff; box-shadow: 0 14px 35px rgba(11,41,72,.08); }
.fe-person-card[hidden] { display: none; }
.fe-person-card__image { aspect-ratio: 4/3; background: var(--fe-sky); }
.fe-person-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.fe-person-card__content { padding: 1.35rem; }
.fe-person-card__group { display: inline-flex; color: var(--fe-blue); font-size: .76rem; font-weight: 900; text-transform: uppercase; }
.fe-person-card h3 { margin: .25rem 0; }
.fe-person-card__affiliation { margin-bottom: .2rem; color: var(--fe-muted); }
.fe-person-card__role { color: var(--fe-navy); font-size: .88rem; font-weight: 800; }
.fe-person-card__bio { padding-top: .75rem; border-top: 1px solid var(--fe-border); }
.fe-editor-note { margin-top: 1.5rem; padding: 1rem; border-left: 4px solid var(--fe-gold); background: #fff9ec; }

.fe-profile-card { display: grid; grid-template-columns: 115px 1fr; min-height: 160px; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 12px 30px rgba(11,41,72,.07); }
.fe-profile-card__image { background: var(--fe-sky); }
.fe-profile-card__image img { width: 100%; height: 100%; object-fit: cover; }
.fe-profile-card > div:last-child { padding: 1.2rem; }
.fe-profile-card h4 { margin-bottom: .35rem; }
.fe-profile-card p { margin-bottom: .35rem; color: var(--fe-muted); font-size: .9rem; }
.fe-profile-card span { color: var(--fe-blue); font-size: .82rem; font-weight: 800; }
.fe-research-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fe-research-card { display: grid; grid-template-columns: 90px 1fr; min-height: 130px; border: 1px solid var(--fe-border); border-radius: 16px; overflow: hidden; background: #fff; }
.fe-research-card__image { background: var(--fe-sky); }
.fe-research-card__image img { width: 100%; height: 100%; object-fit: cover; }
.fe-research-card > div:last-child { padding: 1rem; }
.fe-research-card span { color: var(--fe-blue); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.fe-research-card h4 { margin: .3rem 0; font-size: 1rem; }
.fe-research-card p { margin: 0; color: var(--fe-muted); font-size: .85rem; }
.fe-lab-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; margin-top: 4rem; }
.fe-lab-card { position: relative; min-height: 390px; border-radius: var(--fe-radius); overflow: hidden; background: var(--fe-navy); }
.fe-lab-card__image { position: absolute; inset: 0; }
.fe-lab-card__image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 20%, rgba(7,29,53,.92) 100%); }
.fe-lab-card__image img { width: 100%; height: 100%; object-fit: cover; }
.fe-lab-card__content { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 2rem; }
.fe-lab-card__content h3, .fe-lab-card__content p { color: #fff; }

.fe-venue { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.fe-venue__address { display: flex; gap: .5rem; color: var(--fe-blue); font-weight: 850; }
.fe-check-list { padding: 0; list-style: none; }
.fe-check-list li { position: relative; padding-left: 1.6rem; margin-bottom: .6rem; }
.fe-check-list li::before { content: '✓'; position: absolute; left: 0; color: var(--fe-blue-bright); font-weight: 900; }
.fe-venue__image { aspect-ratio: 4/3; border-radius: var(--fe-radius); overflow: hidden; box-shadow: var(--fe-shadow); }
.fe-venue__image img { width: 100%; height: 100%; object-fit: cover; }
.fe-committee-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fe-committee-card { padding: 1.5rem; border: 1px solid var(--fe-border); border-radius: 18px; background: #fff; }
.fe-committee-card ul { margin-bottom: 0; padding-left: 1.15rem; color: var(--fe-muted); }

.fe-resources { padding: 4rem 0; color: #fff; background: radial-gradient(circle at 0% 0%, rgba(100,180,230,.3), transparent 35%), var(--fe-blue); }
.fe-resources h2 { color: #fff; }
.fe-resources p { color: #dceef9; }
.fe-resources .fe-eyebrow { color: #bce1f8; }
.fe-resources__inner { display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: center; }

.fe-image-wrap { position: relative; }
.fe-image-missing { display: grid; place-items: center; min-height: 100px; background: linear-gradient(135deg, #dfeef8, #f5f9fc); }
.fe-image-missing::after { content: 'Add event image'; color: #607383; font-size: .75rem; font-weight: 800; text-transform: uppercase; }

@media (max-width: 991px) {
    .fe-stats { grid-template-columns: repeat(2, 1fr); }
    .fe-stat:nth-child(2) { border-right: 0; }
    .fe-stat:nth-child(-n+2) { border-bottom: 1px solid var(--fe-border); }
    .fe-overview-grid, .fe-welcome, .fe-venue { grid-template-columns: 1fr; }
    .fe-partners, .fe-card-grid--three, .fe-people-grid, .fe-research-grid { grid-template-columns: repeat(2, 1fr); }
    .fe-welcome__portrait { max-width: 360px; }
    .fe-timeline { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .fe-timeline::before { display: none; }
    .fe-timeline__item { padding-top: 2.2rem; }
    .fe-committee-grid { grid-template-columns: repeat(2, 1fr); }
    .fe-resources__inner { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .fe-container { width: min(100% - 28px, 1180px); }
    .fe-hero { min-height: auto; }
    .fe-hero__inner { padding-block: 5rem; }
    .fe-jump-nav__toggle { display: flex; align-items: center; justify-content: space-between; }
    .fe-jump-nav__links { display: none; flex-direction: column; padding-bottom: .6rem; }
    .fe-jump-nav__links.is-open { display: flex; }
    .fe-jump-nav__links a { padding: .55rem 0; }
    .fe-stats { margin-top: -4rem; }
    .fe-partners, .fe-card-grid--three, .fe-people-grid, .fe-research-grid, .fe-lab-grid, .fe-committee-grid { grid-template-columns: 1fr; }
    .fe-timeline { grid-template-columns: 1fr; }
    .fe-section-heading--split { align-items: stretch; flex-direction: column; }
    .fe-agenda-item { grid-template-columns: 1fr; }
    .fe-agenda-item__time { padding: .75rem 1.2rem; }
    .fe-track-grid { grid-template-columns: 1fr; }
    .fe-tab-list { display: grid; grid-template-columns: 1fr 1fr; }
    .fe-tab { border-radius: 12px; padding-inline: .6rem; }
    .fe-profile-card { grid-template-columns: 90px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .featured-event *, .featured-event *::before, .featured-event *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media print {
    .fe-jump-nav, .fe-actions, .fe-filter, .fe-disclosure, .fe-editor-note { display: none !important; }
    .featured-event { margin: 0; }
    .fe-hero { min-height: auto; color: #000; background: #fff; }
    .fe-hero::before, .fe-hero::after, .fe-hero__overlay { display: none; }
    .fe-hero h1, .fe-hero__theme { color: #000; }
    .fe-section, .fe-hero__inner { padding: 1rem 0; }
    [hidden] { display: block !important; }
}
