.gm-overlay{
    position:fixed;
    inset:0;
    z-index:99999;
    background:rgba(15,23,42,.72);
    backdrop-filter:blur(5px);
    display:none;
    align-items:center;
    justify-content:center;
    padding:18px;
}
.gm-overlay.show{display:flex}
.gm-modal{
    width:min(680px,100%);
    max-height:92vh;
    overflow:auto;
    background:#fff;
    border-radius:22px;
    position:relative;
    box-shadow:0 25px 80px rgba(0,0,0,.3);
    animation:gmIn .2s ease-out;
}
.gm-close{
    position:absolute;
    right:12px;
    top:10px;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:rgba(0,0,0,.55);
    color:#fff;
    font-size:26px;
    line-height:1;
    cursor:pointer;
    z-index:2;
}
.gm-image{
    display:block;
    width:100%;
    max-height:430px;
    object-fit:cover;
}
.gm-body{padding:25px}
.gm-body h2{margin:0 0 12px;font:800 26px/1.2 system-ui,sans-serif;color:#111827}
.gm-description{font:400 16px/1.6 system-ui,sans-serif;color:#4b5563;white-space:pre-line}
.gm-button{
    display:inline-flex;
    margin-top:20px;
    padding:11px 18px;
    border-radius:10px;
    background:#2563eb;
    color:#fff;
    text-decoration:none;
    font:700 14px system-ui,sans-serif;
}
@keyframes gmIn{
    from{opacity:0;transform:translateY(15px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:600px){
    .gm-overlay{padding:10px}
    .gm-modal{border-radius:18px;max-height:94vh}
    .gm-image{max-height:300px}
    .gm-body{padding:20px}
    .gm-body h2{font-size:22px}
}
