/*
 * Post-event homepage (EventPhase): thank-you hero, thanks cards and speaker wall, feedback
 * call to action, and the photo strip. Same palette as the pre-event hero; canonical breakpoints only.
 */

.pe-hero {
    position: relative;
    padding: 110px 0 70px;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(0, 63, 128, 0.92) 0%, rgba(0, 127, 255, 0.85) 60%, rgba(0, 127, 255, 0.75) 100%),
        var(--pe-hero-image, url("/images/venue/17804694_ASL_BrillianceBallroom_Gallery.jpg")) center / cover no-repeat;
}

.pe-hero-logo { max-width: 340px; width: 70%; margin-bottom: 1.5rem; }
.pe-hero-eyebrow { font-weight: 600; letter-spacing: 0.02em; opacity: 0.92; margin-bottom: 0.75rem; }
.pe-hero-sep { margin: 0 0.5rem; }
.pe-hero-title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(2rem, 5vw, 3.25rem); margin-bottom: 1rem; }
.pe-hero-text { font-size: 1.15rem; max-width: 46rem; margin: 0 auto 2rem; opacity: 0.95; }
.pe-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1rem; }
.pe-hero-actions .btn { min-height: 48px; }

.pe-btn-light { background: #fff; color: var(--theme-primary-dark, #003f80); border: 2px solid #fff; }
.pe-btn-light:hover, .pe-btn-light:focus { background: transparent; color: #fff; }

.pe-thanks { background: var(--brand-cloudgrey-100, #f7f8fa); }
.pe-card {
    height: 100%;
    padding: 1.75rem 1.5rem;
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 2px 12px rgba(16, 24, 40, 0.06);
    text-align: center;
}
.pe-card h3 { font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700; margin: 0.75rem 0 0.5rem; }
.pe-card p { margin: 0; color: var(--brand-cloudgrey-700, #4b5563); }
.pe-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--brand-blue-100, #e0f0ff);
    color: var(--theme-primary, #007fff);
    font-size: 1.6rem;
}

.pe-speakers { margin-top: 3rem; text-align: center; }
.pe-subhead { font-family: var(--font-heading); font-size: 1.35rem; font-weight: 700; margin-bottom: 1.25rem; }
.pe-speaker-wall {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    margin: 0 auto 1.25rem;
    max-width: 1000px;
}
.pe-speaker-wall a { display: block; border-radius: 50%; }
.pe-speaker-wall a:focus-visible { outline: 3px solid var(--theme-primary, #007fff); outline-offset: 2px; }
.pe-speaker-wall img {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #fff;
    box-shadow: 0 2px 6px rgba(16, 24, 40, 0.15);
    transition: transform 0.15s ease;
}
@media (hover: hover) { .pe-speaker-wall a:hover img { transform: scale(1.12); } }
.pe-link { font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }

.pe-feedback { background: #fff; }
.pe-action {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
    padding: 1.25rem 1.5rem;
    border: 2px solid var(--brand-blue-200, #c6e0ff);
    border-radius: 0.75rem;
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pe-action:hover, .pe-action:focus-visible { border-color: var(--theme-primary, #007fff); box-shadow: 0 4px 16px rgba(0, 127, 255, 0.15); color: inherit; }
.pe-action-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 0.75rem;
    background: var(--theme-primary, #007fff);
    color: #fff;
    font-size: 1.5rem;
}
.pe-action-body { display: grid; gap: 0.25rem; min-width: 0; }
.pe-action-body strong { font-size: 1.1rem; }
.pe-action-body span { color: var(--brand-cloudgrey-700, #4b5563); }
.pe-action-arrow { margin-left: auto; color: var(--theme-primary, #007fff); }
.pe-note { color: var(--brand-cloudgrey-600, #6c757d); font-size: 0.95rem; margin-top: 1.25rem; margin-bottom: 0; }

.pe-photos { background: var(--brand-cloudgrey-100, #f7f8fa); }
/* Scrolling gallery: several identical copies of the strip; one cycle moves the track left by
   exactly one copy, so the loop is seamless (same technique as sponsor-carousel.css). */
.pe-photo-marquee {
    position: relative;
    overflow: hidden;
    margin-bottom: 1.75rem;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
.pe-photo-track {
    display: flex;
    width: max-content;
    animation: pe-photo-scroll var(--pe-duration, 60s) linear infinite;
}
.pe-photo-marquee:hover .pe-photo-track,
.pe-photo-marquee:focus-within .pe-photo-track { animation-play-state: paused; }
.pe-photo-copy { display: flex; gap: 1rem; margin: 0; padding: 0 0.5rem; }
.pe-photo-copy li { flex: 0 0 auto; }
.pe-photo-copy a {
    display: block;
    width: 300px;
    height: 220px;
    border-radius: 0.75rem;
    overflow: hidden;
    background: #e5e7eb;
    box-shadow: 0 4px 16px rgba(16, 24, 40, 0.12);
}
.pe-photo-copy a:focus-visible { outline: 3px solid var(--theme-primary, #007fff); outline-offset: 3px; }
.pe-photo-copy img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
@media (hover: hover) { .pe-photo-copy a:hover img { transform: scale(1.04); } }

@keyframes pe-photo-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(calc(-100% / var(--pe-copies, 2))); }
}

/* Reduced motion: no drift — a single row people can swipe or scroll on its own. */
@media (prefers-reduced-motion: reduce) {
    .pe-photo-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
    .pe-photo-track { animation: none; }
    .pe-photo-copy[aria-hidden="true"] { display: none; }
}

.pe-photo-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1rem; }
.pe-photo-actions .btn { min-height: 48px; }
.pe-photo-actions .pe-note { flex-basis: 100%; }

@media (min-width: 576px) {
    .pe-speaker-wall img { width: 64px; height: 64px; }
}

@media (max-width: 575.98px) {
    .pe-hero { padding: 80px 0 50px; }
    .pe-hero-text { font-size: 1.05rem; }
    .pe-hero-actions .btn { width: 100%; }
    .pe-action { padding: 1rem; }
    .pe-photo-copy a { width: 220px; height: 160px; }
    .pe-photo-copy { gap: 0.75rem; }
}
