/* ========================================
   RESET
======================================== */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;

    font-family: Arial, sans-serif;

    background: #f5f5f5;
    color: #1f2933;

    min-width: 0;
}


/* ========================================
   HEADER
======================================== */

.site-header {
    padding: 35px 20px 10px;
}

#Top {
    text-align: center;

    margin: 0 auto 35px;

    font-size: clamp(28px, 5vw, 42px);
    line-height: 1.15;

    max-width: 1000px;
}


/* ========================================
   MAIN BOX
======================================== */

.box {
    width: min(100% - 40px, 1000px);

    margin: 0 auto;

    padding-bottom: 40px;
}


/* ========================================
   APARTMENT CARD
======================================== */

.container {
    display: flex;
    align-items: center;

    gap: 24px;

    width: 100%;

    background: white;

    padding: 20px;
    margin-bottom: 20px;

    border-radius: 12px;

    box-shadow:
        0 2px 10px rgba(0, 0, 0, 0.08);

    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease;
}


/* ========================================
   IMAGE
======================================== */

.image-link {
    flex: 0 0 250px;

    display: block;

    border-radius: 8px;

    overflow: hidden;
}

.container img {
    display: block;

    width: 100%;
    height: 160px;

    object-fit: cover;

    border-radius: 8px;

    transition: transform 0.2s ease;
}

.image-link:hover img {
    transform: scale(1.03);
}


/* ========================================
   TEXT
======================================== */

.text {
    min-width: 0;
}

.text h2 {
    font-size: clamp(22px, 3vw, 28px);

    line-height: 1.2;

    margin: 0 0 10px;
}

.text p {
    font-size: 18px;

    line-height: 1.5;

    color: #666;

    margin: 0;

    overflow-wrap: anywhere;
}


/* ========================================
   TABLET
======================================== */

@media (max-width: 700px) {

    .site-header {
        padding-top: 25px;
    }

    .box {
        width: min(100% - 30px, 650px);
    }

    .container {
        gap: 18px;
        padding: 16px;
    }

    .image-link {
        flex-basis: 210px;
    }

    .container img {
        height: 140px;
    }

}


/* ========================================
   PHONE
======================================== */

@media (max-width: 520px) {

    .site-header {
        padding: 22px 15px 5px;
    }

    #Top {
        margin-bottom: 25px;
    }

    .box {
        width: calc(100% - 24px);

        padding-bottom: 25px;
    }

    .container {
        flex-direction: column;

        align-items: stretch;

        gap: 15px;

        padding: 14px;

        margin-bottom: 15px;
    }

    .image-link {
        flex: none;

        width: 100%;
    }

    .container img {
        width: 100%;
        height: auto;

        aspect-ratio: 16 / 10;
    }

    .text {
        padding: 0 2px 3px;
    }

    .text h2 {
        margin-bottom: 7px;
    }

    .text p {
        font-size: 16px;
    }

}


/* ========================================
   VERY SMALL PHONES
======================================== */

@media (max-width: 360px) {

    .box {
        width: calc(100% - 18px);
    }

    .container {
        padding: 11px;
    }

}