/* P4YE activity landing page — compact, image-first, accessible and responsive. */
.activity-detail-banner {background:#03120e;color:#fff;padding:0 0 clamp(24px,2.5vw,34px)}
.activity-detail-banner.has-hero-image {position:relative;isolation:isolate;overflow:hidden;padding-bottom:clamp(32px,5vw,64px)}
.activity-detail-banner .flow-hero-photo {width:100%;z-index:-2}
.activity-detail-banner.has-hero-image::before {content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,18,14,.93),rgba(3,18,14,.7))}
.activity-detail-banner.has-hero-image>.wrap {position:relative;z-index:1}
.activity-detail-breadcrumbs {display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-height:51px;padding:13px 0 20px;color:#cbd6c5;font-size:12px}
.activity-detail-breadcrumbs a {color:inherit;text-underline-offset:3px}
.activity-detail-breadcrumbs a:hover {text-decoration:underline;color:#fff}
.activity-detail-title {max-width:900px}
.activity-detail-title .eyebrow {color:#97b21d;margin-bottom:9px}
.activity-detail-title h1 {color:#fff;font-size:clamp(30px,3.6vw,46px);line-height:1.08;letter-spacing:-.04em}
.activity-detail-title>p:last-child {color:#d4ddd3;font-size:clamp(15px,1.5vw,18px);line-height:1.65;margin-top:13px;max-width:790px}
.activity-detail-content {background:#f5f7f2;padding:clamp(23px,3vw,44px) 0 clamp(48px,6vw,76px)}
.activity-detail-overview {display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.92fr);gap:clamp(16px,2.5vw,30px);align-items:start}
.activity-detail-overview>* {min-width:0}
.activity-gallery-carousel {background:#eaf0e6;border:1px solid #dde5d8;border-radius:14px;padding:12px;outline-offset:4px}
.activity-gallery-stage {display:grid;grid-template-columns:repeat(var(--gallery-columns,1),minmax(0,1fr));gap:12px;position:relative;background:#e2e9dd;border-radius:9px;overflow:hidden}
.activity-gallery-slide {position:relative;min-width:0;margin:0;text-align:center}
.activity-gallery-slide[hidden] {display:none!important}
.activity-gallery-slide img {display:block;width:100%;height:clamp(300px,26vw,340px);object-fit: contain;object-position:center;margin:auto}
.activity-gallery-slide figcaption {padding:10px 16px;background:#fff;color:#445343;text-align:left;font-size:13px;line-height:1.5}
.activity-gallery-expand {position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:7px;padding:7px 10px;border-radius:8px;border:1px solid #d4ded0;background:rgba(255,255,255,.96);color:#122117;font-size:12px;font-weight:700;cursor:pointer}
.activity-gallery-expand svg {width:15px;height:15px}
.activity-gallery-expand:hover {background:#fff}
.activity-gallery-toolbar {display:flex;align-items:center;justify-content:flex-end;padding:12px 2px 0}
.activity-gallery-buttons {display:flex;align-items:center;gap:10px}
.activity-gallery-buttons button {width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid #264b34;border-radius:10px;background:#153d28;color:#fff;box-shadow:0 2px 5px #102f1814;cursor:pointer;transition:background .18s,transform .18s}
.activity-gallery-buttons button:hover {background:#29573a;transform:translateY(-1px)}
.activity-gallery-buttons svg {display:block;width:20px;height:20px}
@media(prefers-reduced-motion:reduce){.activity-gallery-buttons button{transition:none}.activity-gallery-buttons button:hover{transform:none}}
.activity-gallery-lightbox {max-width:min(94vw,1100px);max-height:94vh;padding:36px 18px 18px;border:0;border-radius:12px;background:#081911;color:#fff}
.activity-gallery-lightbox::backdrop {background:rgba(0,0,0,.85)}
.activity-gallery-lightbox img {max-width:100%;max-height:75vh;object-fit:contain;display:block;margin:auto}
.activity-gallery-lightbox p {margin:9px 0 0;color:#e2e9da;text-align:center;font-size:13px}
.activity-gallery-close {position:absolute;right:8px;top:6px;font-size:27px;color:white;border:0;background:transparent;padding:3px 9px;cursor:pointer}
.activity-detail-session {margin-top:0}
.activity-detail-sidebar {display:flex;flex-direction:column;gap:17px}
.activity-detail-panel {padding:clamp(20px,2.4vw,28px);border:1px solid #dde5d7;border-radius:12px;background:#fff}
.activity-detail-panel h2 {font-size:clamp(21px,2vw,26px);line-height:1.22;letter-spacing:-.02em;margin:0 0 8px}
.activity-detail-panel .eyebrow {font-size:11px;letter-spacing:.11em;margin:0 0 10px;color:#566f12}
.activity-detail-info {margin:18px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.activity-detail-info>div {min-width:0;border-top:1px solid #e5ebe1;padding:12px 0 0}
.activity-detail-info>div:last-child {padding-bottom:0}
.activity-detail-info dt {font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#5a711b;font-weight:800}
.activity-detail-info dd {font-size:14px;color:#2e3a2d;margin:5px 0 0;line-height:1.5}
.activity-detail-register {background:#eaf0dc;border-color:#d5e0bc}
.activity-detail-register p:not(.eyebrow) {font-size:14px;line-height:1.6;color:#4e5c49;margin-bottom:18px}
.activity-detail-register-link {display:flex;align-items:center;justify-content:space-between;gap:16px;background:#97b21d;color:#0a1c10!important;border-radius:8px;padding:13px 16px;font-size:14px;font-weight:800;text-decoration:none;min-height:48px}
.activity-detail-register-link:hover {background:#acc73b;color:#0a1c10;text-decoration:none}
.activity-detail-register-link svg {width:19px;height:19px;flex-shrink:0}
.activity-detail-back {font-weight:700;font-size:13px;color:#405c17;text-decoration:none;display:inline-flex;gap:8px;padding:8px 2px;align-items:center}
.activity-detail-back:hover {text-decoration:underline}
.activity-detail-no-photo {min-height:290px;padding:36px;background:#e7eee0;border-radius:12px;display:flex;flex-direction:column;justify-content:center}
.activity-detail-no-photo strong {font-size:clamp(24px,3vw,34px);line-height:1.15}
.activity-detail-no-photo p:last-child {font-size:14px;line-height:1.6;color:#4c5b47;margin-top:10px}
.activity-detail-story {background:#fff;border:1px solid #dde5d8;border-radius:12px;padding:clamp(22px,3vw,34px);margin-top:24px}
.activity-detail-story .eyebrow {margin-bottom:9px}
.activity-detail-story h2 {font-size:clamp(23px,2.8vw,30px);line-height:1.2;letter-spacing:-.03em;margin:0 0 14px}
.activity-detail-description {color:#4c584a;font-size:15px;line-height:1.8;white-space:normal;overflow-wrap:anywhere;max-width:860px}
.activity-related {margin-top:clamp(35px,4vw,52px)}
.activity-related-heading {display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}
.activity-related-heading .eyebrow {margin-bottom:7px}
.activity-related-heading h2 {font-size:clamp(23px,3vw,32px)}
.activity-related-heading>a {font-size:13px;font-weight:700;color:#425e1c;text-decoration:none}
.activity-related-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.activity-related-card {background:#fff;border:1px solid #dde5d8;border-radius:10px;overflow:hidden}
.activity-related-card>a {text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}
.activity-related-image {height:200px;min-height:0;flex:none;background:#e5ebe1;overflow:hidden}
.activity-related-image img {display:block;width:100%;height:100%;max-height:100%;object-fit:contain}
.activity-related-text {position:relative;background:#fff;color:#142118;padding:20px;display:flex;flex:1;flex-direction:column}
.activity-related-text>span {color:#61751e;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.activity-related-text h3 {font-size:18px;line-height:1.3;margin:8px 0}
.activity-related-text p {font-size:13px;line-height:1.6;color:#566451;margin:0 0 15px}
.activity-related-text strong {font-size:13px;color:#405719;margin-top:auto;padding-top:6px}
.activity-gallery-carousel button:focus-visible,.activity-detail-register-link:focus-visible,.activity-related-card a:focus-visible {outline:3px solid #97b21d;outline-offset:3px}
@media(max-width:920px) {.activity-detail-overview {grid-template-columns:1fr}.activity-detail-sidebar {display:flex}.activity-detail-back {grid-column:1/-1}.activity-gallery-slide img{height:min(57vw,480px)}}
@media(max-width:640px) {.activity-detail-content {padding-top:20px}.activity-detail-title h1{font-size:clamp(32px,8vw,44px)}.activity-detail-overview {gap:18px}.activity-detail-sidebar {display:flex}.activity-gallery-carousel {padding:8px}.activity-gallery-slide img {height:clamp(245px,65vw,360px)}.activity-related-grid {grid-template-columns:1fr}.activity-related-image {height:215px}.activity-related-heading {align-items:start;flex-direction:column;gap:7px}}
@media(min-width:641px) and (max-width:850px) {.activity-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print {.activity-detail-banner {background:#fff;color:#000}.activity-detail-title h1,.activity-detail-title>p:last-child {color:#000}.activity-gallery-toolbar,.activity-gallery-expand,.activity-related {display:none}.activity-detail-content{background:#fff}}
/* Preserve existing What’s On directory link styling when this stylesheet loads there. */
.page-whats-on .activity-card-footer { border-top:1px solid #e2e6dd; margin-top:15px; }
.page-whats-on .activity-card-link { display:flex; align-items:center; justify-content:space-between; gap:14px; font-weight:700; text-decoration:none; }
.page-whats-on .activity-card-link:hover { text-decoration:underline; }
.page-whats-on .activity-card-link .icon { width:17px; height:17px; flex:0 0 auto; }

/* Keep the desktop carousel and the two compact information cards aligned. */
.activity-detail-back-row {display:flex;justify-content:flex-end;margin-top:12px}
@media(min-width:921px) {
    .activity-detail-overview {align-items:stretch}
    .activity-detail-main {display:flex;min-width:0}
    .activity-gallery-carousel {display:flex;flex-direction:column;flex:1;min-width:0}
    .activity-gallery-stage {flex:1}
    .activity-detail-no-photo {flex:1}
    .activity-detail-sidebar {gap:14px}
    .activity-detail-session {flex:1;padding:20px 22px}
    .activity-detail-sidebar h2 {font-size:23px;line-height:1.2}
    .activity-detail-sidebar .eyebrow {margin-bottom:7px}
    .activity-detail-info {margin-top:13px;gap:12px 18px}
    .activity-detail-info>div {padding-top:10px}
    .activity-detail-info dd {font-size:13px;line-height:1.5}
    .activity-detail-register {padding:17px 22px}
    .activity-detail-register h2 {font-size:22px;margin-bottom:6px}
    .activity-detail-register p:not(.eyebrow) {font-size:13px;line-height:1.5;margin-bottom:11px}
    .activity-detail-register-link {min-height:44px;padding:10px 14px;font-size:13px}
}
@media(max-width:920px) {.activity-detail-back-row {justify-content:flex-start}}
