html,
body{
    margin:0;
    padding:0;
    overflow-x:hidden;
}

:root{
    --bg:#050505;
    --gold:#d4af37;
    --accent:#8b1e3f;
    --card:#111111;
    --text:#f5f5f5;
    --muted:#999;
}

*{
    box-sizing:border-box;
}

body{
    background:var(--bg);
    color:var(--text);
    font-family:'Inter',sans-serif;
}

/*
|--------------------------------------------------------------------------
| HERO
|--------------------------------------------------------------------------
*/

.request-hero{
    position:relative;

    width:100%;

    height:520px;
    min-height:520px;
    max-height:520px;

    overflow:hidden;

    background:black;

    margin-bottom:40px;
}

.request-hero::after{
    content:'';

    position:absolute;

    left:0;
    right:0;
    bottom:0;

    height:80px;

    background:linear-gradient(
        to bottom,
        rgba(5,5,5,0),
        rgba(5,5,5,1)
    );

    z-index:4;

    pointer-events:none;
}

.request-hero-image{
    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    object-fit:cover;
    object-position:center;

    filter:brightness(0.75);
}

.request-hero-overlay{
    position:absolute;
    inset:0;

    z-index:2;

    display:flex;
    flex-direction:column;
    justify-content:center;

    padding:0 60px;

    max-width: 720px;

    color:white;
}

.request-hero-overlay h1{
    margin:0 0 18px;

    font-size:52px;
    line-height:1.05;
}

.request-hero-overlay p{
    
    font-size:20px;
    line-height:1.7;

    max-width: 620px;

    color:#ddd;
}

/*
|--------------------------------------------------------------------------
| REQUEST PAGE
|--------------------------------------------------------------------------
*/

.request-page{
    width:100%;
    max-width:1400px;

    margin:0 auto 50px;

    padding:0 40px;

    display:grid;
    grid-template-columns:1fr 420px;

    gap:50px;

    align-items:start;
}

.request-page.no-image{
    grid-template-columns:420px;

    justify-content:center;
}

.request-image{
    width:100%;

    display:block;

    border-radius:18px;

    background:black;
}

/*
|--------------------------------------------------------------------------
| FORM COLUMN
|--------------------------------------------------------------------------
*/

.request-form-column{
    position:sticky;

    top:110px;

    background:var(--card);

    border:1px solid rgba(255,255,255,0.06);
    border-radius:18px;

    padding:30px;
}

.request-form-column h1{
    margin:0 0 18px;

    font-size:38px;
    line-height:1.1;

    color:white;
}

.request-id{
    margin-bottom:28px;

    font-size:16px;

    color:var(--gold);
}

/*
|--------------------------------------------------------------------------
| FORM ELEMENTS
|--------------------------------------------------------------------------
*/

label{
    display:block;

    margin-bottom:10px;

    font-size:14px;

    color:#ddd;
}

input[type="email"]{
    width:100%;
    height:52px;

    padding:0 16px;

    margin-bottom:24px;

    background:#0c0c0c;
    color:white;

    border:1px solid rgba(255,255,255,0.08);
    border-radius:10px;

    font-size:15px;
}

textarea{
    width:100%;
    height:180px;

    resize:vertical;

    padding:16px;

    margin-bottom:24px;

    background:#0c0c0c;
    color:white;

    border:1px solid rgba(255,255,255,0.08);
    border-radius:10px;

    font-size:15px;
    font-family:inherit;
}

input[type="file"]{
    width:100%;

    margin-bottom:24px;

    color:#ccc;
}

.upload-status{
    margin:-10px 0 24px;

    font-size:14px;

    color:var(--muted);
}

button[type="submit"]{
    width:100%;
    height:52px;

    border:none;
    border-radius:10px;

    background:var(--accent);
    color:white;

    font-size:15px;
    font-weight:700;

    cursor:pointer;

    transition:0.25s ease;
}

button[type="submit"]:hover{
    background:#b32650;
}

button[type="submit"]:disabled{
    opacity:0.45;

    cursor:not-allowed;
}

a.help-link{
    margin-top:12px;

    font-size:14px;

    color:var(--muted);

    text-decoration:none;
}

/*
|--------------------------------------------------------------------------
| SUPPORT BOX
|--------------------------------------------------------------------------
*/

.support-box{
    margin-top:30px;

    padding-top:30px;

    border-top:1px solid rgba(255,255,255,0.08);

    display:flex;
    flex-direction:column;
    align-items:center;

    gap:18px;
}

.support-qr{
    width:140px;

    background:white;

    border-radius:12px;

    padding:8px;
}

.support-button{
    width:100%;

    padding:14px 20px;

    text-align:center;

    background:var(--gold);
    color:black;

    text-decoration:none;

    font-weight:700;

    border-radius:10px;
}

.honeypot{
    display:none;
}

/*
|--------------------------------------------------------------------------
| MOBILE
|--------------------------------------------------------------------------
*/

@media(max-width:900px){

    .request-hero{
        height:260px;
        min-height: auto;
        max-height: none;
    }

    .request-hero-overlay{
        padding:0 24px;
    }

    .request-hero-overlay h1{
        font-size:32px;
    }

    .request-hero-overlay p{
        font-size:14px;

        line-height:1.5;
    }

    .hero-slide img,
        .browse-hero-image,
        .category-hero-image,
        .request-hero-image{
        filter:none;
    }

    .request-page{
        grid-template-columns:1fr;

        gap:30px;

        padding:0 20px;

        margin:30px auto;
    }

    .request-form-column{
        position:static;

        padding:24px;
    }

    .request-form-column h1{
        font-size:30px;
    }

}

