/* =============================================================
   Meridian Theme — Forms (Novelty-Inspired)
   ============================================================= */

/* ── Form Container ── */
.pkp_form{
    max-width:640px;
    margin:0 auto;
    padding:var(--space-8);
    background:var(--white);
    border:1px solid var(--color-border);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-sm);
}

.pkp_form.pkp_form_error{
    border-color:#dc2626;
}

/* ── Field Group ── */
.pkp_form fieldset{
    border:none;
    padding:0;
    margin:0;
}

.pkp_form legend{
    font-family:var(--font-display);
    font-size:var(--text-xl);
    font-weight:700;
    color:var(--gray-900);
    margin-bottom:var(--space-6);
    padding-bottom:var(--space-3);
    border-bottom:2px solid var(--color-border);
    width:100%;
}

.pkp_form .field{
    margin-bottom:var(--space-5);
}

/* ── Labels ── */
.pkp_form label{
    display:block;
    font-size:var(--text-sm);
    font-weight:600;
    color:var(--gray-700);
    margin-bottom:var(--space-2);
}

.pkp_form label.required:after{
    content:" *";
    color:#dc2626;
}

/* ── Text Inputs ── */
.pkp_form input[type="text"],
.pkp_form input[type="email"],
.pkp_form input[type="password"],
.pkp_form input[type="url"],
.pkp_form input[type="date"],
.pkp_form textarea,
.pkp_form select{
    width:100%;
    padding:var(--space-3) var(--space-4);
    border:1px solid var(--color-border);
    border-radius:var(--radius-md);
    font-size:var(--text-sm);
    font-family:var(--font-body);
    color:var(--gray-800);
    background:var(--white);
    transition:border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.pkp_form input[type="text"]:focus,
.pkp_form input[type="email"]:focus,
.pkp_form input[type="password"]:focus,
.pkp_form input[type="url"]:focus,
.pkp_form input[type="date"]:focus,
.pkp_form textarea:focus,
.pkp_form select:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(37, 99, 235, 0.1);
}

.pkp_form textarea{
    min-height:120px;
    resize:vertical;
}

/* ── Selects ── */
.pkp_form select{
    cursor:pointer;
    appearance:auto;
}

/* ── Checkboxes & Radios ── */
.pkp_form .checkbox,
.pkp_form .radio{
    display:flex;
    align-items:flex-start;
    gap:var(--space-2);
    margin-bottom:var(--space-2);
    cursor:pointer;
}

.pkp_form input[type="checkbox"],
.pkp_form input[type="radio"]{
    margin-top:3px;
    flex-shrink:0;
}

.pkp_form .checkbox label,
.pkp_form .radio label{
    font-weight:400;
    font-size:var(--text-sm);
    color:var(--gray-600);
    cursor:pointer;
}

/* ── Submit Buttons ── */
.pkp_form .buttons{
    display:flex;
    align-items:center;
    gap:var(--space-4);
    margin-top:var(--space-8);
    padding-top:var(--space-6);
    border-top:1px solid var(--color-border);
}

.pkp_form .buttons input[type="submit"],
.pkp_form .buttons button[type="submit"],
.pkp_form button,
input[type="submit"]{
    padding:var(--space-3) var(--space-6);
    background:var(--accent);
    color:var(--white);
    border:none;
    border-radius:var(--radius-md);
    font-size:var(--text-sm);
    font-weight:600;
    font-family:var(--font-body);
    cursor:pointer;
    transition:background var(--transition-fast), transform var(--transition-fast);
}

.pkp_form .buttons input[type="submit"]:hover,
.pkp_form .buttons button[type="submit"]:hover,
.pkp_form button:hover,
input[type="submit"]:hover{
    background:var(--accent-dark);
    transform:translateY(-1px);
}

.pkp_form .buttons input[type="submit"]:active,
.pkp_form .buttons button[type="submit"]:active,
.pkp_form button:active,
input[type="submit"]:active{
    transform:translateY(0);
}

/* ── Secondary / Cancel Buttons ── */
.pkp_form .buttons a,
a.cancel{
    padding:var(--space-3) var(--space-5);
    background:var(--gray-100);
    color:var(--gray-700);
    border-radius:var(--radius-md);
    font-size:var(--text-sm);
    font-weight:500;
    text-decoration:none;
    transition:background var(--transition-fast), color var(--transition-fast);
}

.pkp_form .buttons a:hover,
a.cancel:hover{
    background:var(--gray-200);
    color:var(--gray-900);
    text-decoration:none;
}

/* ── Description / Hint Text ── */
.pkp_form .description{
    font-size:var(--text-xs);
    color:var(--color-text-muted);
    margin-top:var(--space-1);
}

/* ── Error States ── */
.pkp_form .error{
    font-size:var(--text-xs);
    color:#dc2626;
    margin-top:var(--space-1);
}

.pkp_form input.error,
.pkp_form textarea.error{
    border-color:#dc2626;
}

/* ── Search Form ── */
.search_form{
    display:flex;
    gap:var(--space-2);
    max-width:600px;
    margin:0 auto var(--space-8);
}

.search_form input[type="text"],
.search_form input[name="query"]{
    flex:1;
    padding:var(--space-3) var(--space-4);
    border:1px solid var(--color-border);
    border-radius:var(--radius-md);
    font-size:var(--text-sm);
    font-family:var(--font-body);
}

.search_form input[type="text"]:focus,
.search_form input[name="query"]:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(37, 99, 235, 0.1);
}

.search_form button[type="submit"]{
    padding:var(--space-3) var(--space-5);
    background:var(--accent);
    color:var(--white);
    border:none;
    border-radius:var(--radius-md);
    font-size:var(--text-sm);
    font-weight:600;
    cursor:pointer;
    white-space:nowrap;
    transition:background var(--transition-fast);
}

.search_form button[type="submit"]:hover{
    background:var(--accent-dark);
}