
.osc-detail {
    max-width: 1280px;
    margin: 0 auto;
    padding: 28px 20px 60px;
}


.osc-detail-back {
    margin-bottom: 22px;
}

.osc-detail-back a {
    font-weight: 600;
    text-decoration: none;
}


/* HERO */

.osc-detail-hero {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 38px;
    align-items: center;

    background: #fff;
    border-radius: 18px;
    padding: 28px;

    margin-bottom: 32px;

    box-shadow:
        0 8px 28px
        rgba(18, 50, 90, 0.08);
}


.osc-detail-hero-image img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 14px;
}


.osc-detail-category {
    text-transform: uppercase;
    font-size: 0.82rem;
    letter-spacing: .06em;
    opacity: .65;
    margin-bottom: 8px;
}


.osc-detail-hero-content h1 {
    margin: 0 0 12px;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.12;
    color: #123f75;
}


.osc-detail-code {
    font-weight: 600;
    opacity: .65;
}


/* MAIN LAYOUT */

.osc-detail-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 2fr)
        minmax(280px, 0.75fr);

    gap: 32px;
    align-items: start;
}


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


.osc-detail-section {
    background: #fff;
    border-radius: 16px;
    padding: 28px 30px;
    margin-bottom: 24px;

    box-shadow:
        0 5px 22px
        rgba(18, 50, 90, 0.06);
}


.osc-detail-section h2 {
    color: #123f75;
    font-size: 1.45rem;
    margin: 0 0 18px;
}


.osc-detail-richtext {
    line-height: 1.75;
}


.osc-detail-richtext ul,
.osc-detail-richtext ol {
    padding-left: 24px;
}


/* SIDEBAR */

.osc-detail-sidebar {
    position: sticky;
    top: 95px;
}


.osc-detail-sidecard {
    background: #fff;
    border-radius: 16px;
    padding: 24px;

    margin-bottom: 22px;

    box-shadow:
        0 5px 22px
        rgba(18, 50, 90, 0.07);
}


.osc-detail-sidecard h3 {
    color: #123f75;
    margin: 0 0 18px;
    font-size: 1.15rem;
}


.osc-detail-sidecard > strong,
.osc-detail-sidecard > span {
    display: block;
}


.osc-detail-sidecard > span {
    margin-top: 5px;
    opacity: .7;
}


.osc-detail-info-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;

    border-bottom: 1px solid #e8edf3;
    padding: 12px 0;
}


.osc-detail-info-row:last-child {
    border-bottom: 0;
}


.osc-detail-info-row span {
    opacity: .68;
}


.osc-detail-info-row strong {
    text-align: right;
}


/* TRAINING SESSION */

.osc-session-card {
    border: 1px solid #e3eaf2;
    border-radius: 14px;

    padding: 20px;
    margin-top: 16px;
}


.osc-session-date {
    font-weight: 700;
    color: #123f75;
    font-size: 1.05rem;
}


.osc-session-location {
    margin-top: 5px;
    opacity: .72;
}


.osc-session-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;

    gap: 18px;
    margin-top: 18px;
}


.osc-session-fee {
    font-size: 1.05rem;
}


.osc-session-registration {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 145px;
    min-height: 42px;

    padding: 9px 20px;

    border-radius: 999px;

    text-decoration: none;
    font-weight: 600;

    background: #123f75;
    color: #fff;
}


.osc-session-registration:hover {
    color: #fff;
    text-decoration: none;
}


.osc-session-registration.is-disabled {
    background: #d5dee8;
    color: #607086;
    cursor: default;
}


/* RESPONSIVE */

@media (max-width: 991.98px) {

    .osc-detail-hero {
        grid-template-columns: 240px minmax(0, 1fr);
    }

    .osc-detail-layout {
        grid-template-columns: 1fr;
    }

    .osc-detail-sidebar {
        position: static;
    }
}


@media (max-width: 767.98px) {

    .osc-detail {
        padding: 18px 14px 40px;
    }

    .osc-detail-hero {
        grid-template-columns: 1fr;
        gap: 22px;
        padding: 20px;
    }

    .osc-detail-section {
        padding: 22px 20px;
    }

    .osc-session-bottom {
        align-items: stretch;
        flex-direction: column;
    }

    .osc-session-registration {
        width: 100%;
    }
}

