/* Grid wrapper */
.apn-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

/* Responsive breakpoints */
@media (max-width: 1100px) { .apn-gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 780px)  { .apn-gallery-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .apn-gallery-grid { grid-template-columns: 1fr; } }

/* Card */
.apn-card {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 10px;
    overflow: hidden;
    display:flex;
    flex-direction:column;
    transition: box-shadow .18s ease, transform .12s ease;
}

/* Hover */
.apn-card:hover {
    box-shadow: 0 8px 22px rgba(0,0,0,0.08);
    transform: translateY(-4px);
}

/* Image area fixed square */
.apn-card-image-wrap {
    width:100%;
    height: 260px;
    background:#f9f9f9;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.apn-card-image {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

/* Body */
.apn-card-body {
    padding: 14px;
}

.apn-card-title {
    margin: 0 0 8px 0;
    font-size:16px;
}

/* Inputs and buttons */
.apn-input {
    width:100%;
    padding:8px 10px;
    margin-bottom:8px;
    border:1px solid #ddd;
    border-radius:5px;
    box-sizing:border-box;
}

.apn-btn {
    background:#0073aa;
    color:#fff;
    border:none;
    padding:10px 14px;
    border-radius:6px;
    cursor:pointer;
}

.apn-btn-submit {
    width:100%;
    margin-top:4px;
}
.apn-message { margin-top:8px; font-weight:600; color:green; }
