/* ==========================
   Hero
========================== */

.home-intro {
    padding: 80px 30px;
}

.intro-content {
    max-width: 1250px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px;
    align-items: center;
}

.intro-text .welcome {
    display: inline-block;
    margin-bottom: 18px;

    color: var(--primary);

    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: .9rem;
    font-weight: 600;
}

.intro-text h1 {
    font-size: 5rem;
    line-height: 1;
    color: var(--primary-dark);

    margin-bottom: 15px;
}

.intro-text h2 {
    font-size: 2.1rem;
    font-weight: 400;

    margin-bottom: 35px;
}

.intro-text p {
    max-width: 540px;

    font-size: 1.1rem;
    line-height: 2;

    color: var(--text-light);

    margin-bottom: 40px;
}

.intro-image img {
    width: 100%;
    height: 620px;

    object-fit: cover;

    border-radius: 24px;

    box-shadow: 0 30px 70px rgba(0, 0, 0, .08);

    transition: .45s ease;
}

.intro-image img:hover {
    transform: scale(1.02);
}


/* ==========================
   Gallery
========================== */

.space-gallery{

    padding:20px 30px 90px;
}

.gallery-container{

    max-width:1250px;

    margin:auto;
}

.gallery-header{

    margin-bottom:50px;
}

.gallery-header span{

    display:block;

    color:var(--primary);

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:.85rem;

    margin-bottom:14px;
}

.gallery-header h2 {

    font-size: 1.9rem;
    line-height: 1.3;
    margin: 0;

}

.gallery-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:22px;
}


/* ==========================
   Topics Preview
========================== */

/* ==========================
   Topics Preview
========================== */

.topics-preview{

    padding:100px 30px;

    background:#F8F6F3;
}

.topics-wrapper{

    max-width:1250px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;
}

.topics-image img{

    width:100%;

    height:560px;

    object-fit:cover;

    border-radius:24px;

    box-shadow:0 30px 70px rgba(0,0,0,.08);

    transition:.45s ease;
}

.topics-image img:hover{

    transform:scale(1.02);
}

.topics-content{

    max-width:560px;
}

.topics-content span{

    display:inline-block;

    margin-bottom:18px;

    color:var(--primary);

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:.85rem;

    font-weight:600;
}

.topics-content h2{

    font-size:3rem;

    line-height:1.25;

    color:var(--primary-dark);

    margin-bottom:30px;
}

.topics-content p{

    font-size:1.1rem;

    line-height:2;

    color:var(--text-light);

    margin-bottom:40px;
}


/* ==========================
   CTA
========================== */

.cta-section {
    padding: 90px 30px;

    text-align: center;
}

.cta-section h2 {
    font-size: 3rem;

    color: var(--primary-dark);

    margin-bottom: 20px;
}

.cta-section p {
    max-width: 650px;

    margin: 0 auto 40px;

    font-size: 1.05rem;
    line-height: 2;

    color: var(--text-light);
}


/* ==========================
   Responsive
========================== */

@media (max-width: 992px) {

    .home-intro,
    .space-gallery,
    .topics-preview,
    .cta-section {
        padding: 60px 20px;
    }

    .intro-content {
        grid-template-columns: 1fr;

        gap: 40px;

        text-align: center;
    }

    .intro-image {
        order: -1;
    }

    .intro-image img {
        height: 340px;
    }

    .intro-text h1 {
        font-size: 3.3rem;
    }

    .intro-text h2 {
        font-size: 1.45rem;
    }

    .intro-text p {
        margin: 0 auto 35px;
    }

    .gallery-header{

    text-align:center;

    margin-bottom:55px;
}

.gallery-header span{

    display:block;

    color:var(--primary);

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:.85rem;

    margin-bottom:18px;
}

.gallery-header h2{

    max-width:720px;

    margin:auto;

    color:var(--primary-dark);

    font-size:3rem;

    line-height:1.3;
}

    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);

        gap: 14px;
    }

    .gallery-grid img {
        height: 170px;

        aspect-ratio: auto;
    }

    .topics-content h2,
    .cta-section h2 {
        font-size: 2.1rem;
    }

    .topics-content p,
    .cta-section p {
        font-size: 1rem;
    }

}

/* ==========================
   Responsive
========================== */

/* ==========================
   Mobile
========================== */

@media (max-width: 576px) {

    .home-intro,
    .topics-preview,
    .space-gallery,
    .cta-section {
        padding: 35px 18px;
    }


    /* ==========================
       HERO
    ========================== */

    .intro-content {

        gap: 22px;

        text-align: left;
    }


    .intro-image {

        order: -1;

    }


    .intro-image img {

        height: 210px;

        border-radius: 16px;

    }


    .intro-text .welcome {

        font-size: .7rem;

        letter-spacing: 1.8px;

        margin-bottom: 10px;

    }


    .intro-text h1 {

        font-size: 2.35rem;

        line-height: 1.1;

        margin-bottom: 10px;

    }


    .intro-text h2 {

        font-size: 1.1rem;

        line-height: 1.45;

        margin-bottom: 18px;

    }


    .intro-text p {

        max-width: 100%;

        font-size: .95rem;

        line-height: 1.7;

        margin: 0 0 25px;

    }



    /* ==========================
       TOPICS
    ========================== */

    .topics-wrapper {

        display:flex;

        flex-direction:column;

        gap:24px;

    }


    .topics-image {

        order:-1;

    }

.topics-image img {

    height:280px;

    border-radius:18px;

}


    .topics-content {

        max-width:100%;

        text-align:left;

    }


    .topics-content span {

        font-size:.7rem;

        letter-spacing:1.8px;

        margin-bottom:12px;

    }


    .topics-content h2 {

        font-size:1.75rem;

        line-height:1.3;

        margin-bottom:16px;

    }


    .topics-content p {

        font-size:.95rem;

        line-height:1.7;

        margin-bottom:25px;

    }



    /* ==========================
       GALLERY
    ========================== */


    .gallery-header {

        text-align:left;

        margin-bottom:25px;

    }


    .gallery-header span {

        font-size:.7rem;

        letter-spacing:1.8px;

        margin-bottom:10px;

    }


    .gallery-header h2 {

        font-size:1.65rem;

        line-height:1.35;

        max-width:330px;

    }


    .gallery-grid {

        grid-template-columns:repeat(2,1fr);

        gap:10px;

    }


    .gallery-grid img {

        height:130px;

        border-radius:12px;

    }



    /* ==========================
       CTA
    ========================== */


    .cta-section {

        text-align:left;

        padding:45px 18px;

    }


    .cta-section h2 {

        font-size:1.8rem;

        line-height:1.3;

        margin-bottom:15px;

    }


    .cta-section p {

        font-size:.95rem;

        line-height:1.7;

        margin:0 0 25px;

    }


    .btn-book {

        width:100%;

        justify-content:center;

    }

}