:root {
    --asl-navy: #0d3f58;
    --asl-ocean: #0f617b;
    --asl-ocean-deep: #0b4f69;
    --asl-sky: #d9edf1;
    --asl-sand: #f5f2eb;
    --asl-ivory: #fbfaf7;
    --asl-ink: #173342;
    --asl-muted: #5b707a;
    --asl-line: rgba(13, 63, 88, 0.15);
    --asl-white: #ffffff;
    --asl-radius-lg: 28px;
    --asl-radius-md: 20px;
    --asl-radius-sm: 12px;
    --asl-shadow: 0 18px 48px rgba(11, 55, 76, 0.12);
}

body.asl-activity-managed .site-main > article > .entry-header,
body.asl-activity-managed .site-main > .page-header,
body.asl-activity-managed main > article > header.entry-header {
    display: none;
}

body.asl-activity-managed .entry-content,
body.asl-activity-managed .page-content {
    max-width: none;
    width: 100%;
}

.asl-activities,
.asl-activities * {
    box-sizing: border-box;
}

.asl-activities {
    width: min(1220px, calc(100% - 40px));
    margin: 0 auto;
    color: var(--asl-ink);
}

.asl-activities h1,
.asl-activities h2,
.asl-activities h3,
.asl-activities p,
.asl-activities ul,
.asl-activities ol,
.asl-activities dl {
    margin-top: 0;
}

.asl-activities h1,
.asl-activities h2,
.asl-activities h3 {
    color: var(--asl-navy);
    line-height: 1.08;
    text-wrap: balance;
}

.asl-activities h1 {
    font-size: clamp(2.4rem, 5vw, 5.15rem);
    letter-spacing: -0.045em;
    margin-bottom: 24px;
}

.asl-activities h2 {
    font-size: clamp(1.6rem, 2.4vw, 2.45rem);
    letter-spacing: -0.025em;
    margin-bottom: 18px;
}

.asl-activities p,
.asl-activities li,
.asl-activities dd {
    font-size: clamp(1rem, 1.1vw, 1.08rem);
    line-height: 1.72;
}

.asl-eyebrow {
    margin-bottom: 10px;
    color: var(--asl-ocean);
    font-size: 0.78rem !important;
    font-weight: 800;
    letter-spacing: 0.13em;
    line-height: 1.3 !important;
    text-transform: uppercase;
}

.asl-lead {
    color: var(--asl-muted);
    font-size: clamp(1.15rem, 1.65vw, 1.38rem) !important;
    line-height: 1.55 !important;
}

.asl-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 21px;
    border: 2px solid var(--asl-ocean);
    border-radius: 999px;
    background: var(--asl-ocean);
    color: var(--asl-white) !important;
    font-size: 0.95rem;
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.asl-button:hover,
.asl-button:focus-visible {
    transform: translateY(-2px);
    background: var(--asl-ocean-deep);
    border-color: var(--asl-ocean-deep);
    box-shadow: 0 12px 26px rgba(11, 79, 105, 0.2);
}

.asl-button--secondary {
    background: transparent;
    color: var(--asl-navy) !important;
}

.asl-button--secondary:hover,
.asl-button--secondary:focus-visible {
    background: rgba(15, 97, 123, 0.08);
}

.asl-button--light {
    border-color: var(--asl-white);
    background: var(--asl-white);
    color: var(--asl-navy) !important;
}

.asl-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.asl-activities-hero,
.asl-detail-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.72fr);
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
    overflow: hidden;
    margin: 28px 0 62px;
    padding: clamp(34px, 6vw, 78px);
    border-radius: var(--asl-radius-lg);
    background:
        radial-gradient(circle at 92% 12%, rgba(255, 255, 255, 0.18) 0 96px, transparent 97px),
        radial-gradient(circle at 74% 82%, rgba(255, 255, 255, 0.09) 0 180px, transparent 181px),
        linear-gradient(135deg, #e8f4f5 0%, #d8edf1 58%, #c9e4ea 100%);
}

.asl-activities-hero__copy,
.asl-detail-hero__copy {
    position: relative;
    z-index: 2;
}

.asl-activities-hero__note,
.asl-detail-hero__facts {
    position: relative;
    z-index: 2;
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: var(--asl-radius-md);
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 0 18px 40px rgba(13, 63, 88, 0.09);
    backdrop-filter: blur(8px);
}

.asl-activities-hero__note strong {
    display: block;
    margin-bottom: 8px;
    color: var(--asl-navy);
    font-size: 1.25rem;
}

.asl-activities-hero__note p {
    margin-bottom: 0;
    color: var(--asl-muted);
}

.asl-guide-intro {
    display: grid;
    grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
    gap: 44px;
    align-items: end;
    margin: 0 0 34px;
    padding: 0 4px;
}

.asl-guide-intro h2,
.asl-guide-intro p {
    margin-bottom: 0;
}

.asl-activity-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.asl-activity-card {
    position: relative;
    min-height: 348px;
    overflow: hidden;
    border-radius: var(--asl-radius-md);
    background: linear-gradient(150deg, var(--asl-navy) 0%, var(--asl-ocean) 100%);
    box-shadow: var(--asl-shadow);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.asl-activity-card:nth-child(3n+2) {
    background: linear-gradient(150deg, #12465f 0%, #126b83 100%);
}

.asl-activity-card:nth-child(3n+3) {
    background: linear-gradient(150deg, #0b3952 0%, #175c72 100%);
}

.asl-activity-card:hover,
.asl-activity-card:focus-within {
    transform: translateY(-5px);
    box-shadow: 0 24px 54px rgba(11, 55, 76, 0.2);
}

.asl-activity-card__orb {
    position: absolute;
    top: -44px;
    right: -28px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
}

.asl-activity-card__orb::after {
    content: "";
    position: absolute;
    top: 48px;
    right: 54px;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
}

.asl-activity-card__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 34px 30px 30px;
}

.asl-activity-card h2 {
    max-width: 88%;
    margin-bottom: 18px;
    color: var(--asl-white);
    font-size: clamp(1.45rem, 2vw, 2rem);
    overflow-wrap: anywhere;
    hyphens: auto;
}

.asl-activity-card h2 a {
    color: inherit !important;
    text-decoration: none !important;
}

.asl-activity-card p {
    margin-bottom: 22px;
    color: rgba(255, 255, 255, 0.87);
    font-size: 1rem;
    line-height: 1.62;
}

.asl-levels {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: auto 0 22px;
}

.asl-levels span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);
    color: var(--asl-white);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.025em;
}

.asl-text-link {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    align-self: flex-start;
    color: var(--asl-white) !important;
    font-size: 0.96rem;
    font-weight: 800;
    text-decoration: none !important;
}

.asl-text-link span {
    transition: transform 160ms ease;
}

.asl-text-link:hover span,
.asl-text-link:focus-visible span {
    transform: translateX(4px);
}

.asl-planning-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 36px;
    align-items: center;
    margin: 54px 0 80px;
    padding: clamp(32px, 5vw, 60px);
    border-radius: var(--asl-radius-lg);
    background:
        radial-gradient(circle at 92% 18%, rgba(255, 255, 255, 0.12) 0 105px, transparent 106px),
        linear-gradient(135deg, var(--asl-navy), var(--asl-ocean));
    color: var(--asl-white);
}

.asl-planning-panel h2,
.asl-planning-panel .asl-eyebrow,
.asl-planning-panel p {
    color: var(--asl-white);
}

.asl-planning-panel h2 {
    margin-bottom: 12px;
}

.asl-planning-panel p:last-child {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.83);
}

/* Detail pages */
.asl-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 26px 0 0;
    color: var(--asl-muted);
    font-size: 0.88rem;
}

.asl-breadcrumbs a {
    color: var(--asl-ocean) !important;
    text-decoration: none !important;
}

.asl-detail-hero {
    margin-top: 18px;
}

.asl-detail-hero .asl-levels {
    margin: 24px 0 0;
}

.asl-detail-hero .asl-levels span {
    border-color: rgba(13, 63, 88, 0.18);
    background: rgba(255, 255, 255, 0.55);
    color: var(--asl-navy);
}

.asl-detail-hero__facts h2 {
    margin-bottom: 18px;
    font-size: 1.45rem;
}

.asl-detail-hero__facts dl,
.asl-detail-hero__facts dd {
    margin-bottom: 0;
}

.asl-detail-hero__facts dl > div {
    display: grid;
    grid-template-columns: minmax(105px, 0.75fr) minmax(0, 1.25fr);
    gap: 14px;
    padding: 13px 0;
    border-top: 1px solid var(--asl-line);
}

.asl-detail-hero__facts dl > div:first-child {
    border-top: 0;
    padding-top: 0;
}

.asl-detail-hero__facts dt {
    color: var(--asl-navy);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.asl-detail-hero__facts dd {
    color: var(--asl-muted);
    font-size: 0.9rem;
    line-height: 1.5;
}

.asl-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: clamp(36px, 5vw, 70px);
    align-items: start;
}

.asl-detail-main {
    min-width: 0;
}

.asl-content-section,
.asl-two-column-section,
.asl-safety-panel,
.asl-path-grid {
    margin-bottom: 42px;
}

.asl-content-section {
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid var(--asl-line);
    border-radius: var(--asl-radius-md);
    background: var(--asl-white);
}

.asl-content-section p:last-child,
.asl-path-card p:last-child,
.asl-two-column-section > div p:last-child,
.asl-safety-panel ul:last-child {
    margin-bottom: 0;
}

.asl-path-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    scroll-margin-top: 100px;
}

.asl-path-card {
    padding: clamp(28px, 4vw, 44px);
    border-radius: var(--asl-radius-md);
}

.asl-path-card--beginner {
    background: var(--asl-sky);
}

.asl-path-card--experienced {
    background: var(--asl-sand);
}

.asl-path-card h2 {
    font-size: clamp(1.55rem, 2.2vw, 2rem);
}

.asl-two-column-section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.asl-two-column-section > div {
    padding: clamp(28px, 4vw, 44px);
    border: 1px solid var(--asl-line);
    border-radius: var(--asl-radius-md);
    background: var(--asl-ivory);
}

.asl-two-column-section--final > div:first-child {
    background: #eef6f3;
}

.asl-two-column-section--final > div:last-child {
    background: #f7f1e8;
}

.asl-safety-panel {
    display: grid;
    grid-template-columns: minmax(230px, 0.78fr) minmax(0, 1.22fr);
    gap: 36px;
    padding: clamp(30px, 5vw, 54px);
    border-radius: var(--asl-radius-lg);
    background: var(--asl-navy);
    color: var(--asl-white);
}

.asl-safety-panel h2,
.asl-safety-panel .asl-eyebrow,
.asl-safety-panel p,
.asl-safety-panel li {
    color: var(--asl-white);
}

.asl-safety-panel p {
    color: rgba(255, 255, 255, 0.78);
}

.asl-check-list,
.asl-dot-list,
.asl-location-list,
.asl-number-list {
    padding: 0;
    margin-bottom: 0;
    list-style: none;
}

.asl-check-list li,
.asl-dot-list li,
.asl-location-list li {
    position: relative;
    padding: 10px 0 10px 32px;
    border-top: 1px solid var(--asl-line);
}

.asl-check-list li:first-child,
.asl-dot-list li:first-child,
.asl-location-list li:first-child {
    border-top: 0;
    padding-top: 0;
}

.asl-check-list li::before,
.asl-dot-list li::before,
.asl-location-list li::before {
    position: absolute;
    left: 0;
    top: 15px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--asl-sky);
    color: var(--asl-ocean-deep);
    font-size: 0.72rem;
    font-weight: 900;
}

.asl-check-list li:first-child::before,
.asl-dot-list li:first-child::before,
.asl-location-list li:first-child::before {
    top: 5px;
}

.asl-check-list li::before {
    content: "✓";
}

.asl-dot-list li::before {
    content: "•";
}

.asl-location-list li::before {
    content: "⌖";
}

.asl-safety-panel .asl-check-list li {
    border-color: rgba(255, 255, 255, 0.14);
}

.asl-safety-panel .asl-check-list li::before {
    background: rgba(255, 255, 255, 0.16);
    color: var(--asl-white);
}

.asl-season-note {
    margin: 24px 0 0;
    padding: 18px 20px;
    border-left: 4px solid var(--asl-ocean);
    border-radius: 0 var(--asl-radius-sm) var(--asl-radius-sm) 0;
    background: var(--asl-sky);
}

.asl-inline-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 20px 0 0;
}

.asl-inline-links a {
    color: var(--asl-ocean) !important;
    font-weight: 800;
    text-decoration: none !important;
}

.asl-number-list {
    counter-reset: asl-question;
}

.asl-number-list li {
    position: relative;
    counter-increment: asl-question;
    padding: 10px 0 10px 42px;
    border-top: 1px solid var(--asl-line);
}

.asl-number-list li:first-child {
    border-top: 0;
    padding-top: 0;
}

.asl-number-list li::before {
    content: counter(asl-question);
    position: absolute;
    top: 10px;
    left: 0;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background: var(--asl-navy);
    color: var(--asl-white);
    font-size: 0.75rem;
    font-weight: 800;
}

.asl-number-list li:first-child::before {
    top: 0;
}

.asl-detail-sidebar {
    position: relative;
}

.asl-sticky-enquiry {
    position: sticky;
    top: 108px;
    padding: 30px;
    border-radius: var(--asl-radius-md);
    background: linear-gradient(160deg, var(--asl-navy), var(--asl-ocean));
    box-shadow: var(--asl-shadow);
    color: var(--asl-white);
}

.asl-sticky-enquiry h2,
.asl-sticky-enquiry .asl-eyebrow,
.asl-sticky-enquiry p {
    color: var(--asl-white);
}

.asl-sticky-enquiry p {
    color: rgba(255, 255, 255, 0.82);
}

.asl-sticky-enquiry .asl-button {
    width: 100%;
    margin: 8px 0 16px;
    border-color: var(--asl-white);
    background: var(--asl-white);
    color: var(--asl-navy) !important;
}

.asl-small-note {
    margin-bottom: 0 !important;
    font-size: 0.78rem !important;
    line-height: 1.55 !important;
}

.asl-activity-pagination {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    margin: 62px 0 82px;
    padding-top: 28px;
    border-top: 1px solid var(--asl-line);
}

.asl-activity-pagination > div {
    min-width: 0;
}

.asl-activity-pagination__next {
    text-align: right;
}

.asl-activity-pagination span {
    display: block;
    margin-bottom: 4px;
    color: var(--asl-muted);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.asl-activity-pagination a {
    color: var(--asl-ocean) !important;
    font-weight: 800;
    text-decoration: none !important;
}

.asl-all-activities {
    padding: 9px 15px;
    border: 1px solid var(--asl-line);
    border-radius: 999px;
    white-space: nowrap;
}

@media (max-width: 1050px) {
    .asl-activity-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .asl-detail-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .asl-detail-sidebar {
        order: -1;
    }

    .asl-sticky-enquiry {
        position: static;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 16px 28px;
        align-items: center;
    }

    .asl-sticky-enquiry .asl-eyebrow,
    .asl-sticky-enquiry h2,
    .asl-sticky-enquiry p {
        grid-column: 1;
    }

    .asl-sticky-enquiry .asl-button {
        grid-column: 2;
        grid-row: 1 / span 3;
        width: auto;
        margin: 0;
    }

    .asl-sticky-enquiry .asl-small-note {
        grid-column: 1 / -1;
    }
}

@media (max-width: 820px) {
    .asl-activities-hero,
    .asl-detail-hero,
    .asl-guide-intro,
    .asl-planning-panel,
    .asl-safety-panel {
        grid-template-columns: 1fr;
    }

    .asl-path-grid,
    .asl-two-column-section {
        grid-template-columns: 1fr;
    }

    .asl-activity-card {
        min-height: 320px;
    }

    .asl-planning-panel .asl-button {
        justify-self: start;
    }

    .asl-sticky-enquiry {
        display: block;
    }

    .asl-sticky-enquiry .asl-button {
        width: 100%;
        margin: 8px 0 16px;
    }
}

@media (max-width: 620px) {
    .asl-activities {
        width: min(100% - 24px, 1220px);
    }

    .asl-activities-hero,
    .asl-detail-hero {
        margin-top: 16px;
        padding: 30px 22px;
        border-radius: 20px;
    }

    .asl-activity-grid {
        grid-template-columns: 1fr;
    }

    .asl-activity-card {
        min-height: 0;
    }

    .asl-activity-card__content {
        min-height: 325px;
        padding: 30px 24px 26px;
    }

    .asl-content-section,
    .asl-path-card,
    .asl-two-column-section > div,
    .asl-safety-panel,
    .asl-sticky-enquiry {
        padding: 26px 22px;
        border-radius: 18px;
    }

    .asl-detail-hero__facts dl > div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .asl-activity-pagination {
        grid-template-columns: 1fr 1fr;
    }

    .asl-all-activities {
        grid-column: 1 / -1;
        grid-row: 1;
        justify-self: center;
    }

    .asl-activity-pagination__next {
        text-align: right;
    }
}

@media (prefers-reduced-motion: reduce) {
    .asl-button,
    .asl-activity-card,
    .asl-text-link span {
        transition: none;
    }
}
