html{
    scroll-padding-top:104px;
}

.event-page-body{
    min-height:100vh;
    background:
        radial-gradient(circle at top left, rgba(49,231,211,.12), transparent 28%),
        radial-gradient(circle at 84% 10%, rgba(255,159,67,.12), transparent 24%),
        #050706;
}

.event-header{
    background:rgba(5,7,6,.94);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
}

.event-main{
    overflow:hidden;
}

.event-hero{
    position:relative;
    min-height:720px;
    display:flex;
    align-items:end;
    padding:136px 0 68px;
    border-bottom:1px solid rgba(255,255,255,.08);
    isolation:isolate;
}

.event-hero-bg,
.event-hero-overlay{
    position:absolute;
    inset:0;
    z-index:-2;
}

.event-hero-bg{
    background-position:center;
    background-size:cover;
    filter:saturate(1) brightness(.55);
    transform:scale(1.02);
}

.event-hero-overlay{
    z-index:-1;
    background:
        linear-gradient(95deg, rgba(5,7,6,.94), rgba(5,7,6,.58) 56%, rgba(5,7,6,.86)),
        linear-gradient(180deg, rgba(5,7,6,.06), #050706 100%);
}

.event-hero-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,430px);
    gap:34px;
    align-items:end;
}

.event-hero-copy h1{
    max-width:10ch;
    font-size:clamp(58px,8vw,112px);
    line-height:.84;
    letter-spacing:-.075em;
    text-transform:uppercase;
    margin-bottom:20px;
}

.event-hero-copy .lead{
    max-width:780px;
    color:#d7e5df;
}

.event-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:28px;
}

.event-facts{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:24px;
}

.event-facts span{
    display:inline-flex;
    align-items:center;
    padding:11px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.06);
    color:#d8e4df;
    font-size:13px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.event-poster-card{
    overflow:hidden;
    border-radius:30px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.05);
    box-shadow:0 30px 90px rgba(0,0,0,.36),0 0 70px rgba(49,231,211,.12);
}

.event-poster-card img{
    display:block;
    width:100%;
    height:auto;
}

.event-anchor-strip{
    position:sticky;
    top:76px;
    z-index:15;
    padding:12px 0;
    background:rgba(5,7,6,.94);
    border-bottom:1px solid rgba(255,255,255,.08);
}

.event-anchor-list{
    display:flex;
    gap:10px;
    overflow-x:auto;
    scrollbar-width:none;
}

.event-anchor-list::-webkit-scrollbar{display:none}

.event-anchor-list a{
    display:inline-flex;
    align-items:center;
    gap:9px;
    flex:0 0 auto;
    padding:11px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.045);
    color:#d6e3dd;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.event-anchor-list a:hover{
    border-color:rgba(49,231,211,.5);
    background:rgba(49,231,211,.1);
    color:#effffc;
}

.event-anchor-list span{
    color:var(--accent);
    letter-spacing:.16em;
}

.event-section{
    padding:84px 0;
    border-bottom:1px solid rgba(255,255,255,.07);
    background:
        radial-gradient(circle at 12% 10%, rgba(49,231,211,.08), transparent 26%),
        #050706;
}

.event-section-alt{
    background:
        radial-gradient(circle at 86% 14%, rgba(255,159,67,.08), transparent 22%),
        #060807;
}

.event-section .section-head h2,
.event-program-copy h2,
.event-included-copy h2{
    max-width:none;
    font-size:clamp(36px,5vw,68px);
    line-height:.92;
    letter-spacing:-.06em;
    text-transform:none;
    margin-bottom:12px;
}

.event-section-lead,
.event-program-copy p,
.event-included-copy p{
    max-width:820px;
    margin:0;
    color:#c8d8d2;
    font-size:18px;
    line-height:1.7;
}

.event-highlight-grid,
.event-activity-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:16px;
    margin-top:26px;
}

.event-highlight-card,
.event-activity-card{
    min-width:0;
    padding:22px 24px;
    border-radius:26px;
    border:1px solid rgba(255,255,255,.1);
    background:rgba(255,255,255,.05);
    box-shadow:0 22px 70px rgba(0,0,0,.2);
}

.event-highlight-card span,
.event-activity-card span{
    display:block;
    margin-bottom:12px;
    color:var(--accent);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.18em;
}

.event-highlight-card h3,
.event-activity-card h3,
.event-time-card h3{
    font-size:clamp(22px,2.2vw,30px);
    line-height:1;
    letter-spacing:-.04em;
    text-transform:none;
    margin-bottom:10px;
}

.event-highlight-card p,
.event-activity-card p,
.event-time-card p{
    margin:0;
    color:#c7d9d2;
    line-height:1.65;
}

.event-program-grid,
.event-included-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);
    gap:30px;
    align-items:center;
}

.event-program-copy{
    display:grid;
    gap:16px;
    justify-items:start;
}

.event-program-image{
    position:relative;
    min-height:520px;
    border-radius:32px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.1);
    box-shadow:0 30px 80px rgba(0,0,0,.24);
}

.event-program-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.event-timeline{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:14px;
    margin-top:28px;
}

.event-time-card{
    padding:20px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.1);
    background:rgba(255,255,255,.045);
}

.event-time-card span{
    display:inline-flex;
    margin-bottom:12px;
    padding:8px 11px;
    border-radius:999px;
    background:rgba(49,231,211,.12);
    color:var(--accent);
    font-size:12px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.event-included-list{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-content:start;
}

.event-included-list span{
    display:inline-flex;
    align-items:center;
    padding:12px 15px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.05);
    color:#dce8e3;
    font-size:14px;
    font-weight:800;
    letter-spacing:.03em;
}

.event-bottom-cta{
    padding:34px 0 88px;
    background:#050706;
}

.event-bottom-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:24px;
    align-items:center;
    padding:30px 34px;
    border-radius:32px;
    border:1px solid rgba(49,231,211,.24);
    background:linear-gradient(120deg,rgba(49,231,211,.12),rgba(255,255,255,.04));
}

.event-bottom-card h2{
    max-width:none;
    font-size:clamp(32px,4vw,54px);
    line-height:.94;
    letter-spacing:-.05em;
    text-transform:none;
    margin-bottom:10px;
}

.event-bottom-card p:not(.eyebrow){
    margin:0;
    color:#cad9d3;
    line-height:1.65;
}

.event-bottom-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    justify-content:flex-end;
}

@media (max-width:1180px){
    .event-hero-grid,
    .event-program-grid,
    .event-included-grid,
    .event-bottom-card{
        grid-template-columns:1fr;
    }

    .event-highlight-grid,
    .event-activity-grid,
    .event-timeline{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }

    .event-poster-card,
    .event-bottom-actions{
        justify-self:start;
    }

    .event-poster-card{
        max-width:420px;
    }
}

@media (max-width:860px){
    html{scroll-padding-top:92px}

    .event-hero{
        min-height:auto;
        padding:120px 0 52px;
    }

    .event-hero-copy h1{
        font-size:clamp(42px,13vw,78px);
        max-width:8ch;
    }

    .event-anchor-strip{
        top:70px;
    }

    .event-section{
        padding:58px 0;
    }

    .event-program-image{
        min-height:420px;
    }
}

@media (max-width:560px){
    .event-hero-actions,
    .event-bottom-actions{
        flex-direction:column;
        align-items:stretch;
    }

    .event-hero-actions .btn,
    .event-bottom-actions .btn{
        width:100%;
    }

    .event-facts,
    .event-anchor-list,
    .event-highlight-grid,
    .event-activity-grid,
    .event-timeline{
        display:grid;
        grid-template-columns:1fr;
    }

    .event-highlight-card,
    .event-activity-card,
    .event-time-card,
    .event-bottom-card{
        padding:22px;
    }

    .event-program-image{
        min-height:320px;
        border-radius:24px;
    }
}

/* Event booking popup: only form */
.event-booking-popup{
    position:fixed;
    inset:0;
    z-index:99998;
    display:none;
    align-items:center;
    justify-content:center;
    padding:22px;
}

.event-booking-popup.is-open{
    display:flex;
}

.event-booking-popup__backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.94);
}

.event-booking-popup__panel{
    position:relative;
    z-index:1;
    width:min(760px,100%);
}

.event-booking-popup__close{
    position:absolute;
    top:18px;
    right:18px;
    z-index:3;
    width:42px;
    height:42px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.16);
    background:rgba(5,7,6,.72);
    color:#fff;
    font-size:28px;
    line-height:1;
    cursor:pointer;
}

.event-booking-popup__close:hover{
    border-color:rgba(49,231,211,.6);
    color:var(--accent);
}

.event-booking-card{
    width:100%;
    border-radius:34px;
    border:1px solid rgba(255,255,255,.12);
    background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));
    box-shadow:0 34px 120px rgba(0,0,0,.62),0 0 80px rgba(49,231,211,.08);
    padding:42px;
}

.event-booking-card h2{
    max-width:none;
    font-size:clamp(34px,5vw,58px);
    line-height:.95;
    letter-spacing:-.06em;
    text-transform:none;
    margin-bottom:22px;
}

.event-booking-fields{
    display:grid;
    gap:18px;
}

.event-booking-fields label{
    display:grid;
    gap:10px;
    color:#fff;
    font-size:22px;
    font-weight:800;
}

.event-booking-fields input{
    min-height:74px;
    border-radius:26px;
    font-size:22px;
    padding:0 28px;
}

.event-booking-consents{
    display:grid;
    gap:16px;
    margin-top:26px;
}

.event-booking-consent{
    display:grid;
    grid-template-columns:96px minmax(0,1fr);
    gap:18px;
    align-items:center;
    cursor:pointer;
    color:#d7e4df;
    line-height:1.35;
}

.event-booking-consent input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.event-booking-consent-toggle{
    position:relative;
    width:86px;
    height:50px;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
    transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;
}

.event-booking-consent-toggle:before{
    content:"";
    position:absolute;
    width:40px;
    height:40px;
    left:5px;
    top:4px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 8px 20px rgba(0,0,0,.32);
    transition:transform .2s ease;
}

.event-booking-consent input:checked + .event-booking-consent-toggle{
    background:var(--accent);
    border-color:rgba(49,231,211,.75);
    box-shadow:0 14px 30px rgba(49,231,211,.18);
}

.event-booking-consent input:checked + .event-booking-consent-toggle:before{
    transform:translateX(36px);
    background:#04110f;
}

.event-booking-consent-text{
    color:#d4e2dc;
    font-size:22px;
}

.event-booking-consent-text a{
    color:var(--accent);
    text-decoration:none;
    border-bottom:1px solid rgba(49,231,211,.5);
}

.event-booking-consent-text a:hover{
    color:#effffc;
    border-bottom-color:#effffc;
}

.event-booking-submit{
    margin-top:26px;
    min-width:330px;
    justify-content:center;
}

.event-booking-submit:disabled{
    opacity:.55;
    cursor:not-allowed;
}

body.has-booking-popup{
    overflow:hidden;
}

@media (max-width:760px){
    .event-booking-popup{
        padding:12px;
        align-items:flex-start;
        overflow:auto;
    }

    .event-booking-popup__panel{
        margin:22px 0;
    }

    .event-booking-card{
        padding:28px 22px;
        border-radius:28px;
    }

    .event-booking-fields input{
        min-height:58px;
        border-radius:20px;
        font-size:18px;
        padding:0 18px;
    }

    .event-booking-fields label{
        font-size:18px;
    }

    .event-booking-consent{
        grid-template-columns:70px minmax(0,1fr);
        gap:14px;
    }

    .event-booking-consent-toggle{
        width:64px;
        height:38px;
    }

    .event-booking-consent-toggle:before{
        width:30px;
        height:30px;
        left:4px;
        top:3px;
    }

    .event-booking-consent input:checked + .event-booking-consent-toggle:before{
        transform:translateX(26px);
    }

    .event-booking-consent-text{
        font-size:16px;
    }

    .event-booking-submit{
        width:100%;
        min-width:0;
    }
}
