/* --- HERO SECTION --- */
.hero-section {
    position: relative;
    height: 50vh; 
    width: 100%;
    overflow: hidden;
}
.hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
}
.hero-content {
    position: relative;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: flex-start; 
    text-align: center;
    height: 100%;
    padding: 32px 16px;
}
.hero-title {
    color: white;
    font-weight: bold;
    font-size: 2.25rem; 
    line-height: 1.2;
}
.title-main { margin-top: 8px; }
.br-desktop { display: none; }

.hero-btn, .request-btn {
    background-color: white;
    color: #111827; 
    font-weight: 600;
    padding: 12px 32px; 
    border-radius: 9999px; 
    border: none;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.2s;
}
.hero-btn { margin-top: 32px; }
.hero-btn:hover, .request-btn:hover { background-color: #f3f4f6; }

.request-section {
    position: relative;
    width: 100%;
    height: 60vh; 
    overflow: hidden;
}
.request-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.request-content {
    position: relative;
    z-index: 10;
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
}
.request-container { max-width: 1024px; text-align: center; }
.request-title {
    color: white;
    font-weight: bold;
    font-size: 1.25rem; 
    margin-bottom: 32px; 
    line-height: 1.4;
}
.request-btn { display: inline-block; text-decoration: none; }
.request-btn:hover { transform: translateY(-2px); }



/* --- BREAKPOINTS --- */

/* Small Devices (sm: 640px) */
@media (min-width: 640px) {
    /* HERO */
    .hero-content { align-items: center; }
    .hero-title { font-size: 3rem; }
    .br-desktop { display: block; }
    .request-title { font-size: 1.5rem; }
}

/* Medium Devices (md: 768px) */
@media (min-width: 768px) {
    /* HERO */
    .hero-section { height: 85vh; }
    .hero-title { font-size: 3.75rem; }
    .request-section { height: 70vh; }
    .request-title { font-size: 1.875rem; }
}

/* Large Devices (lg: 1024px) */
@media (min-width: 1024px) {
    /* HERO */
    .hero-title { font-size: 4.5rem; }
    .request-title { font-size: 2.25rem; }
}

/* Landing mobile polish */
.hero-title,
.request-title {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.hero-btn,
.request-btn {
    min-height: 44px;
    text-align: center;
}

@media (max-width: 767px) {
    .hero-section {
        min-height: 420px;
        height: 58vh;
    }

    .hero-content {
        align-items: center;
        padding: 28px 18px;
    }

    .hero-title {
        font-size: 2rem;
    }

    .hero-btn,
    .request-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: min(100%, 320px);
        padding: 12px 20px;
    }

    .request-section {
        min-height: 360px;
        height: auto;
    }

    .request-content {
        min-height: 360px;
        padding: 40px 18px;
    }

    .request-title {
        font-size: 1.2rem;
        margin-bottom: 24px;
    }
}

@media (max-width: 380px) {
    .hero-title {
        font-size: 1.75rem;
    }

    .request-title {
        font-size: 1.05rem;
    }
}
