/* Keyz Music Lessons – additions for the PHP site (contact form, gallery). Theme styles live in theme.css. */

/* ---------- Contact form ---------- */
.kz-form-wrap { max-width: 820px; margin: 0 auto 30px; font-family: 'Open Sans', Arial, sans-serif; }
.kz-form { background: #fff; border: 1px solid #E3E3E3; border-radius: 14px; padding: 28px; box-sizing: border-box; }
.kz-row { display: flex; gap: 20px; flex-wrap: wrap; }
.kz-row > .kz-field { flex: 1 1 240px; }
.kz-field { margin: 0 0 18px; border: 0; padding: 0; min-width: 0; }
.kz-field label, .kz-field legend, .kz-label-block { display: block; font-weight: 600; color: #1B2A4A; margin-bottom: 6px; font-size: 15px; padding: 0; }
.kz-req { color: #c0392b; }
.kz-field input[type=text], .kz-field input[type=email], .kz-field input[type=tel], .kz-field input[type=number], .kz-field textarea {
    width: 100%; padding: 10px 12px; border: 1px solid #c9cdd6; border-radius: 8px; font: inherit; color: #222; background: #fff;
    box-sizing: border-box; min-height: 44px; box-shadow: none;
}
.kz-field textarea { min-height: 130px; resize: vertical; }
.kz-field input:focus, .kz-field textarea:focus { outline: 2px solid #1B2A4A; outline-offset: 0; border-color: #1B2A4A; }
.kz-age input { max-width: 160px; }
.kz-radio, .kz-check { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0; cursor: pointer; font-weight: 400 !important; line-height: 1.4; }
.kz-radio input, .kz-check input { margin-top: 4px; flex: 0 0 auto; }
.kz-radio-group { margin-bottom: 18px; }
.kz-note-text { font-size: 13.5px; color: #555; margin: 4px 0 16px; }
.kz-count { display: block; text-align: right; font-size: 12px; color: #777; margin-top: 2px; }
.kz-terms-box { max-height: 190px; overflow: auto; border: 1px solid #E3E3E3; background: #F7F8FA; border-radius: 8px; padding: 12px 14px; font-size: 13.5px; line-height: 1.5; margin-bottom: 10px; }
.kz-terms-box p { margin: 0 0 10px; }
.kz-error { display: block; color: #b3261e; font-size: 13px; margin-top: 4px; }
.kz-alert { background: #fdecea; border: 1px solid #f5c2be; color: #8a1c14; padding: 12px 14px; border-radius: 8px; margin-bottom: 18px; }
.kz-success { background: #eaf6ee; border: 1px solid #b7dfc3; color: #1d5a30; padding: 24px; border-radius: 12px; text-align: center; }
.kz-success h3 { margin-top: 0; color: #1d5a30; }
.kz-submit { background: #1B2A4A; color: #fff; border: 0; border-radius: 8px; padding: 12px 30px; font-weight: 700; font-size: 16px; cursor: pointer; }
.kz-submit:hover, .kz-submit:focus { background: #2b3f6b; }
.kz-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 600px) { .kz-form { padding: 18px; } .kz-row { gap: 0; } }

/* ---------- Photo gallery ---------- */
.kz-gallery { column-count: 5; column-gap: 2px; max-width: 1254px; margin: 0 auto; }
.kz-gallery-item { display: block; break-inside: avoid; margin: 0 0 2px; overflow: hidden; border-radius: 4px; background: rgba(0,0,0,.3); }
.kz-gallery-item img { width: 100%; height: auto; display: block; transition: transform .3s; }
@media (hover: hover) { .kz-gallery-item:hover img { transform: scale(1.06); } }
@media (max-width: 800px) { .kz-gallery { column-count: 3; } }
@media (max-width: 480px) { .kz-gallery { column-count: 2; } }
