/* =========================================================
   COMPONENT 17 — COURSE ACCOMMODATION
   STEP 3 — PREMIUM DESIGN
   ========================================================= */


/* =========================================================
   DESIGN TOKENS
   ========================================================= */

.course-accommodation {

    --ca-green:
        #123f33;

    --ca-green-dark:
        #0c3329;

    --ca-green-soft:
        #1d5142;

    --ca-gold:
        #b88932;

    --ca-gold-light:
        #d2aa63;

    --ca-cream:
        #faf8f2;

    --ca-ivory:
        #fffdf8;

    --ca-text:
        #193d33;

    --ca-muted:
        #707772;

    --ca-border:
        rgba(
            31,
            65,
            54,
            .12
        );

    --ca-shadow:
        0 18px 45px
        rgba(
            22,
            56,
            45,
            .08
        );

    --ca-radius:
        10px;

    position:
        relative;

    padding:
        110px 0 105px;

    color:
        var(--ca-text);

    background:
        linear-gradient(
            180deg,
            #fcfbf7 0%,
            #f7f4ec 100%
        );

    overflow:
        hidden;
}


/* =========================================================
   SUBTLE BACKGROUND
   ========================================================= */

.course-accommodation::before {

    content:
        "";

    position:
        absolute;

    width:
        650px;

    height:
        650px;

    top:
        -350px;

    left:
        -280px;

    background:
        radial-gradient(
            circle,
            rgba(
                184,
                137,
                50,
                .055
            ),
            transparent 68%
        );

    pointer-events:
        none;
}


.course-accommodation::after {

    content:
        "";

    position:
        absolute;

    width:
        700px;

    height:
        700px;

    right:
        -400px;

    bottom:
        -420px;

    background:
        radial-gradient(
            circle,
            rgba(
                18,
                63,
                51,
                .055
            ),
            transparent 68%
        );

    pointer-events:
        none;
}


/* =========================================================
   CONTAINER
   ========================================================= */

.course-accommodation__container {

    position:
        relative;

    z-index:
        2;

    width:
        min(
            1480px,
            calc(100% - 50px)
        );

    margin:
        0 auto;
}


/* =========================================================
   HEADER
   ========================================================= */

.course-accommodation__header {

    max-width:
        980px;

    margin:
        0 auto 44px;

    text-align:
        center;
}


/* =========================================================
   EYEBROW
   ========================================================= */

.course-accommodation__eyebrow {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        15px;

    margin-bottom:
        17px;

    color:
        var(--ca-gold);

    font-size:
        .57rem;

    font-weight:
        700;

    letter-spacing:
        .24em;

    text-transform:
        uppercase;
}


.course-accommodation__eyebrow-line {

    width:
        45px;

    height:
        1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--ca-gold)
        );
}


.course-accommodation__eyebrow-line:last-child {

    background:
        linear-gradient(
            90deg,
            var(--ca-gold),
            transparent
        );
}


/* =========================================================
   TITLE
   ========================================================= */

.course-accommodation__title {

    margin:
        0;

    color:
        var(--ca-green);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            2.6rem,
            4vw,
            4.25rem
        );

    font-weight:
        400;

    line-height:
        1.04;

    letter-spacing:
        -.045em;
}


.course-accommodation__title span {

    display:
        inline;

    color:
        var(--ca-green);

}


/* =========================================================
   DIVIDER
   ========================================================= */

.course-accommodation__divider {

    margin:
        16px 0 12px;

    color:
        var(--ca-gold);

    font-size:
        1rem;

    line-height:
        1;
}


/* =========================================================
   INTRO
   ========================================================= */

.course-accommodation__intro {

    max-width:
        760px;

    margin:
        0 auto;

    color:
        #5e6863;

    font-size:
        .82rem;

    line-height:
        1.85;

}


/* =========================================================
   INFORMATION BAR
   ========================================================= */

.course-accommodation__info {

    display:
        grid;

    grid-template-columns:
        repeat(4, 1fr);

    margin:
        0 auto 34px;

    background:
        rgba(
            255,
            255,
            255,
            .82
        );

    border:
        1px solid
        rgba(
            31,
            65,
            54,
            .11
        );

    border-radius:
        10px;

    box-shadow:
        0 12px 35px
        rgba(
            25,
            58,
            47,
            .055
        );

    overflow:
        hidden;
}


/* =========================================================
   INFO ITEM
   ========================================================= */

.course-accommodation__info-item {

    position:
        relative;

    display:
        flex;

    align-items:
        center;

    gap:
        13px;

    min-height:
        84px;

    padding:
        17px 25px;
}


.course-accommodation__info-item
+ .course-accommodation__info-item::before {

    content:
        "";

    position:
        absolute;

    left:
        0;

    top:
        22px;

    bottom:
        22px;

    width:
        1px;

    background:
        rgba(
            31,
            65,
            54,
            .15
        );
}


/* =========================================================
   INFO ICON
   ========================================================= */

.course-accommodation__info-icon {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 43px;

    width:
        43px;

    height:
        43px;

    color:
        #fff;

    background:
        var(--ca-green);

    border-radius:
        50%;

    box-shadow:
        0 5px 14px
        rgba(
            18,
            63,
            51,
            .12
        );
}


/* =========================================================
   INFO CONTENT
   ========================================================= */

.course-accommodation__info-content {

    display:
        flex;

    flex-direction:
        column;

    gap:
        4px;

}


.course-accommodation__info-content strong {

    color:
        var(--ca-text);

    font-size:
        .73rem;

    font-weight:
        700;

}


.course-accommodation__info-content small {

    color:
        #747c77;

    font-size:
        .58rem;

    line-height:
        1.4;

}


/* =========================================================
   ROOM GRID
   ========================================================= */

.course-accommodation__rooms {

    display:
        grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        17px;

    align-items:
        stretch;

}


/* =========================================================
   ROOM CARD
   ========================================================= */

.course-accommodation__room {

    position:
        relative;

    display:
        flex;

    flex-direction:
        column;

    min-width:
        0;

    background:
        var(--ca-ivory);

    border:
        1px solid
        rgba(
            31,
            65,
            54,
            .10
        );

    border-radius:
        10px;

    box-shadow:
        var(--ca-shadow);

    overflow:
        hidden;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}


.course-accommodation__room:hover {

    transform:
        translateY(-5px);

    border-color:
        rgba(
            184,
            137,
            50,
            .28
        );

    box-shadow:
        0 25px 55px
        rgba(
            20,
            57,
            46,
            .12
        );
}


/* =========================================================
   RECOMMENDED CARD
   ========================================================= */

.course-accommodation__room--recommended {

    border:
        1px solid
        rgba(
            184,
            137,
            50,
            .42
        );

    box-shadow:
        0 22px 55px
        rgba(
            138,
            99,
            37,
            .11
        );
}


/* =========================================================
   ROOM IMAGE
   ========================================================= */

.course-accommodation__room-image {

    position:
        relative;

    width:
        100%;

    aspect-ratio:
        1.48 / 1;

    background:
        #e9e4d9;

    overflow:
        hidden;
}


.course-accommodation__room-image img {

    display:
        block;

    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform .6s ease;
}


.course-accommodation__room:hover
.course-accommodation__room-image img {

    transform:
        scale(1.035);

}


/* =========================================================
   PLACEHOLDER
   ========================================================= */

.course-accommodation__room-placeholder {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    height:
        100%;

    color:
        rgba(
            25,
            61,
            51,
            .45
        );

    background:
        linear-gradient(
            135deg,
            #e9e4d9,
            #f3efe6
        );

    font-size:
        .58rem;

    letter-spacing:
        .12em;

    text-transform:
        uppercase;
}


/* =========================================================
   ROOM NUMBER
   ========================================================= */

.course-accommodation__room-number {

    position:
        absolute;

    top:
        0;

    left:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    min-width:
        43px;

    height:
        43px;

    padding:
        0 10px;

    color:
        #fff;

    background:
        var(--ca-green);

    border-bottom-right-radius:
        7px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        .82rem;

    box-shadow:
        3px 4px 12px
        rgba(
            0,
            0,
            0,
            .10
        );
}


/* =========================================================
   MOST POPULAR
   ========================================================= */

.course-accommodation__recommended {

    position:
        absolute;

    top:
        0;

    left:
        50%;

    transform:
        translateX(-50%);

    z-index:
        3;

    padding:
        8px 15px;

    color:
        #fff;

    background:
        linear-gradient(
            135deg,
            #b7862e,
            #d1a64f
        );

    border-radius:
        0 0 6px 6px;

    font-size:
        .54rem;

    font-weight:
        700;

    letter-spacing:
        .11em;

    text-transform:
        uppercase;

    white-space:
        nowrap;

    box-shadow:
        0 5px 13px
        rgba(
            121,
            84,
            26,
            .20
        );
}


/* =========================================================
   ROOM BODY
   ========================================================= */

.course-accommodation__room-body {

    display:
        flex;

    flex-direction:
        column;

    flex:
        1;

    padding:
        20px 17px 17px;

}


/* =========================================================
   ROOM HEADING
   ========================================================= */

.course-accommodation__room-heading {

    text-align:
        center;

}


.course-accommodation__room-heading h3 {

    margin:
        0;

    color:
        var(--ca-green);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        1.14rem;

    font-weight:
        600;

    line-height:
        1.2;

    letter-spacing:
        -.018em;

}


.course-accommodation__room-heading span {

    display:
        block;

    margin-top:
        6px;

    color:
        #858a85;

    font-size:
        .49rem;

    letter-spacing:
        .13em;

    text-transform:
        uppercase;

}


/* =========================================================
   OCCUPANCY / ELIGIBILITY
   ========================================================= */

.course-accommodation__room-meta {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex-wrap:
        wrap;

    gap:
        7px;

    min-height:
        26px;

    margin:
        7px 0 8px;

    color:
        var(--ca-gold);

    font-size:
        .57rem;

    line-height:
        1.45;

    text-align:
        center;

}


.course-accommodation__room-meta strong {

    font-weight:
        600;

}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.course-accommodation__room-description {

    min-height:
        49px;

    margin:
        7px auto 14px;

    color:
        #626a65;

    font-size:
        .62rem;

    line-height:
        1.65;

    text-align:
        center;

}


/* =========================================================
   AMENITIES
   ========================================================= */

.course-accommodation__amenities {

    display:
        grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        8px 5px;

    min-height:
        62px;

    padding:
        13px 3px;

    border-top:
        1px solid
        rgba(
            31,
            65,
            54,
            .12
        );

    border-bottom:
        1px solid
        rgba(
            31,
            65,
            54,
            .12
        );

}


.course-accommodation__amenity {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        5px;

    min-width:
        0;

    color:
        #3e4944;

    font-size:
        .47rem;

    line-height:
        1.2;

    text-align:
        center;

}


.course-accommodation__amenity-icon {

    display:
        flex;

    flex:
        0 0 auto;

    color:
        var(--ca-green);

}


/* =========================================================
   PRICING
   ========================================================= */

.course-accommodation__pricing {

    position:
        relative;

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        10px;

    align-items:
        end;

    min-height:
        82px;

    padding:
        13px 3px 11px;

}


.course-accommodation__price-original,
.course-accommodation__price-current {

    display:
        flex;

    flex-direction:
        column;

    gap:
        4px;

}


.course-accommodation__price-original {

    align-items:
        flex-start;

}


.course-accommodation__price-current {

    align-items:
        flex-end;

}


.course-accommodation__price-original del {

    color:
        #777b78;

    font-size:
        .78rem;

    font-weight:
        500;

}


.course-accommodation__price-original small,
.course-accommodation__price-current small {

    color:
        #8a8e8a;

    font-size:
        .48rem;

}


.course-accommodation__price-current strong {

    color:
        var(--ca-green);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        1.25rem;

    font-weight:
        700;

    line-height:
        1;

}


/* =========================================================
   DISCOUNT
   ========================================================= */

.course-accommodation__discount {

    position:
        absolute;

    right:
        2px;

    top:
        3px;

    color:
        var(--ca-gold);

    font-size:
        .43rem;

    font-weight:
        700;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;

}


/* =========================================================
   SELECT ROOM BUTTON
   ========================================================= */

.course-accommodation__select {

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        10px;

    min-height:
        43px;

    margin-top:
        auto;

    padding:
        0 15px;

    color:
        #fff;

    background:
        var(--ca-green);

    border:
        1px solid
        var(--ca-green);

    border-radius:
        5px;

    text-decoration:
        none;

    font-size:
        .56rem;

    font-weight:
        700;

    letter-spacing:
        .10em;

    text-transform:
        uppercase;

    transition:
        background .25s ease,
        border-color .25s ease,
        transform .25s ease,
        box-shadow .25s ease;

}


.course-accommodation__select:hover {

    color:
        #fff;

    background:
        var(--ca-green-dark);

    border-color:
        var(--ca-green-dark);

    transform:
        translateY(-2px);

    box-shadow:
        0 8px 20px
        rgba(
            18,
            63,
            51,
            .18
        );

}


.course-accommodation__room--recommended
.course-accommodation__select {

    background:
        linear-gradient(
            135deg,
            #c39439,
            #ad7d28
        );

    border-color:
        #b88932;

}


.course-accommodation__room--recommended
.course-accommodation__select:hover {

    background:
        linear-gradient(
            135deg,
            #ae7d28,
            #95691e
        );

    border-color:
        #95691e;

}


/* =========================================================
   ADVISOR CTA
   ========================================================= */

.course-accommodation__advisor {

    display:
        flex;

    align-items:
        center;

    gap:
        20px;

    max-width:
        1100px;

    margin:
        30px auto 0;

    padding:
        18px 22px;

    background:
        rgba(
            255,
            255,
            255,
            .72
        );

    border:
        1px solid
        rgba(
            31,
            65,
            54,
            .10
        );

    border-radius:
        8px;

    box-shadow:
        0 12px 30px
        rgba(
            25,
            58,
            47,
            .045
        );

}


.course-accommodation__advisor-icon {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0 0 50px;

    width:
        50px;

    height:
        50px;

    color:
        var(--ca-gold);

    background:
        rgba(
            184,
            137,
            50,
            .08
        );

    border:
        1px solid
        rgba(
            184,
            137,
            50,
            .18
        );

    border-radius:
        50%;

}


.course-accommodation__advisor-content {

    flex:
        1;

}


.course-accommodation__advisor-content p {

    margin:
        0 0 5px;

    color:
        #646d68;

    font-size:
        .59rem;

    line-height:
        1.5;

}


.course-accommodation__advisor-content strong {

    color:
        var(--ca-gold);

    font-size:
        .62rem;

    font-weight:
        600;

}


.course-accommodation__advisor-button {

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        8px;

    min-height:
        44px;

    padding:
        0 18px;

    color:
        #fff;

    background:
        var(--ca-green);

    border-radius:
        5px;

    text-decoration:
        none;

    font-size:
        .53rem;

    font-weight:
        700;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;

    white-space:
        nowrap;

    transition:
        transform .25s ease,
        background .25s ease,
        box-shadow .25s ease;

}


.course-accommodation__advisor-button:hover {

    color:
        #fff;

    background:
        var(--ca-green-dark);

    transform:
        translateY(-2px);

    box-shadow:
        0 9px 20px
        rgba(
            18,
            63,
            51,
            .16
        );

}


/* =========================================================
   SEO
   ========================================================= */

.course-accommodation__seo {

    max-width:
        900px;

    margin:
        44px auto 0;

    padding-top:
        30px;

    border-top:
        1px solid
        rgba(
            31,
            65,
            54,
            .10
        );

}


.course-accommodation__seo h3 {

    margin:
        0 0 12px;

    color:
        var(--ca-green);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        1.25rem;

    font-weight:
        500;

}


.course-accommodation__seo p {

    margin:
        0 0 12px;

    color:
        #69716d;

    font-size:
        .62rem;

    line-height:
        1.85;

}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.course-accommodation__empty {

    padding:
        50px;

    color:
        var(--ca-muted);

    background:
        rgba(
            255,
            255,
            255,
            .7
        );

    border:
        1px dashed
        rgba(
            31,
            65,
            54,
            .20
        );

    text-align:
        center;

}


/* =========================================================
   LARGE DESKTOP
   ========================================================= */

@media (min-width: 1400px) {

    .course-accommodation__container {

        width:
            min(
                1510px,
                calc(100% - 70px)
            );

    }


    .course-accommodation__rooms {

        gap:
            20px;

    }


    .course-accommodation__room-body {

        padding:
            22px 19px 19px;

    }

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {

    .course-accommodation {

        padding:
            90px 0;

    }


    .course-accommodation__container {

        width:
            min(
                940px,
                calc(100% - 40px)
            );

    }


    .course-accommodation__rooms {

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            20px;

    }


    .course-accommodation__info {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .course-accommodation__info-item:nth-child(3)::before {

        display:
            none;

    }


    .course-accommodation__info-item:nth-child(3),
    .course-accommodation__info-item:nth-child(4) {

        border-top:
            1px solid
            rgba(
                31,
                65,
                54,
                .10
            );

    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .course-accommodation {

        padding:
            70px 0 70px;

    }


    .course-accommodation__container {

        width:
            calc(100% - 30px);

    }


    /* HEADER */

    .course-accommodation__header {

        margin-bottom:
            30px;

    }


    .course-accommodation__eyebrow {

        gap:
            9px;

        font-size:
            .49rem;

        letter-spacing:
            .18em;

    }


    .course-accommodation__eyebrow-line {

        width:
            25px;

    }


    .course-accommodation__title {

        font-size:
            2.25rem;

        line-height:
            1.08;

    }


    .course-accommodation__intro {

        font-size:
            .72rem;

        line-height:
            1.75;

    }


    /* INFORMATION BAR */

    .course-accommodation__info {

        grid-template-columns:
            1fr 1fr;

        margin-bottom:
            22px;

    }


    .course-accommodation__info-item {

        min-height:
            76px;

        padding:
            13px 12px;

        gap:
            9px;

    }


    .course-accommodation__info-item
    + .course-accommodation__info-item::before {

        top:
            18px;

        bottom:
            18px;

    }


    .course-accommodation__info-item:nth-child(3),
    .course-accommodation__info-item:nth-child(4) {

        border-top:
            1px solid
            rgba(
                31,
                65,
                54,
                .10
            );

    }


    .course-accommodation__info-icon {

        flex-basis:
            35px;

        width:
            35px;

        height:
            35px;

    }


    .course-accommodation__info-icon svg {

        width:
            17px;

        height:
            17px;

    }


    .course-accommodation__info-content strong {

        font-size:
            .61rem;

    }


    .course-accommodation__info-content small {

        font-size:
            .49rem;

    }


    /* ROOM GRID */

    .course-accommodation__rooms {

        grid-template-columns:
            1fr;

        gap:
            18px;

    }


    /* IMAGE */

    .course-accommodation__room-image {

        aspect-ratio:
            1.65 / 1;

    }


    /* BODY */

    .course-accommodation__room-body {

        padding:
            20px 17px 17px;

    }


    .course-accommodation__room-heading h3 {

        font-size:
            1.2rem;

    }


    .course-accommodation__room-description {

        min-height:
            auto;

        max-width:
            340px;

    }


    /* PRICING */

    .course-accommodation__pricing {

        min-height:
            75px;

    }


    /* ADVISOR */

    .course-accommodation__advisor {

        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            14px;

        margin-top:
            22px;

        padding:
            18px;

    }


    .course-accommodation__advisor-content {

        width:
            100%;

    }


    .course-accommodation__advisor-button {

        width:
            100%;

    }


    /* SEO */

    .course-accommodation__seo {

        margin-top:
            32px;

        padding-top:
            24px;

    }


    .course-accommodation__seo h3 {

        font-size:
            1.05rem;

    }


    .course-accommodation__seo p {

        font-size:
            .59rem;

    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .course-accommodation__info {

        grid-template-columns:
            1fr;

    }


    .course-accommodation__info-item
    + .course-accommodation__info-item::before {

        display:
            none;

    }


    .course-accommodation__info-item
    + .course-accommodation__info-item {

        border-top:
            1px solid
            rgba(
                31,
                65,
                54,
                .10
            );

    }


    .course-accommodation__title {

        font-size:
            2rem;

    }


    .course-accommodation__room-number {

        min-width:
            39px;

        height:
            39px;

        font-size:
            .72rem;

    }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .course-accommodation__room,
    .course-accommodation__room-image img,
    .course-accommodation__select,
    .course-accommodation__advisor-button {

        transition:
            none;

    }

}