/* ===================================
   WPFORMS
=================================== */

/* Container */

.wpforms-container {
    max-width: 700px;
    margin: 0 auto;
    padding: 35px 30px;

    background: var(--color-surface);
    border-top: 3px solid var(--color-secondary);
    box-shadow: var(--shadow-md);
}

@media (max-width:768px) {

    .wpforms-container {
        padding: 25px 15px;
    }

}

/* Heading */

.wpforms-title{
    font-family:var(--font-heading);
    font-size:clamp(2rem,3vw,2.25rem);
    font-weight:400;
    line-height:1.3;

    text-align:center;
    color:var(--color-heading);

    margin-bottom:1rem;
}

.wpforms-description{
    text-align:center;
    color:var(--color-text-muted);
    line-height:1.6;
    margin-bottom:2.5rem;
}

/* Labels */

.wpforms-field-label{
    display:block;
    margin-bottom:.5rem;

    font-family:var(--font-body);
    font-weight:var(--font-weight-medium);

    color:var(--color-heading);
}

.wpforms-required-label{
    color:var(--terracotta);
}

/* Fields */

.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field input[type="tel"],
.wpforms-field input[type="url"],
.wpforms-field textarea,
.wpforms-field select{

    width:100%;
    padding:.85rem 1rem;

    background:var(--color-section);
    color:var(--color-text);

    border:1px solid var(--light-gray);

    font-family:var(--font-body);

    transition:
        border-color .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}

.wpforms-field input:focus,
.wpforms-field textarea:focus,
.wpforms-field select:focus{

    background:var(--color-surface);

    border-color:var(--color-accent);

    outline:2px solid var(--color-accent);
    outline-offset:2px;

    box-shadow:none;
}

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

/* Radio */

.wpforms-field-radio ul{
    display:flex;
    flex-direction:column;
    gap:.75rem;
    margin-top:.75rem;
}

.wpforms-field-radio li{
    display:flex;
    align-items:flex-start;
    gap:.75rem;

    padding:.9rem 1rem;

    background:var(--color-section);
    border:1px solid transparent;

    transition:
        background .2s ease,
        border-color .2s ease;
}

.wpforms-field-radio li:hover{
    border-color:var(--color-secondary);
}

.wpforms-field-radio input[type="radio"]{
    accent-color:var(--color-accent);
    margin-top:.2rem;
}

.wpforms-field-radio label{
    flex:1;
    margin:0;
    cursor:pointer;
}

.wpforms-field-radio label strong{
    display:block;
    margin-bottom:.25rem;
}

.wpforms-field-radio label small{
    color:var(--color-text-muted);
}

/* Checkbox */

.wpforms-field-checkbox ul{
    margin-top:1rem;
}

.wpforms-field-checkbox li{
    display:flex;
    gap:.75rem;
    margin-bottom:.75rem;
}

.wpforms-field-checkbox input[type="checkbox"]{
    accent-color:var(--color-secondary);
    margin-top:.2rem;
}

/* Notice */

.wpforms-field-html{
    padding:1.5rem;
    margin-bottom:1.5rem;

    background:var(--color-section);

    border-left:3px solid var(--color-secondary);
}

.wpforms-field-html p{
    margin:0;
    line-height:1.7;
}

.wpforms-field-html strong{
    font-weight:var(--font-weight-bold);
}

/* Submit */

.wpforms-submit-container{
    margin-top:2rem;
}

.wpforms-container .wpforms-submit-container .wpforms-submit{

    padding:1rem 2rem !important;

    background:var(--color-primary) !important;
    color:#fff !important;

    border:none !important;

    font-family:var(--font-body) !important;
    font-size:1rem;
    font-weight:var(--font-weight-medium);

    letter-spacing:.02em;

    cursor:pointer;

    transition:var(--transition-base);
}

.wpforms-container .wpforms-submit-container .wpforms-submit:hover{
    background:var(--color-accent-hover) !important;
}

.wpforms-container .wpforms-submit-container .wpforms-submit:focus-visible{
    outline:2px solid var(--color-accent);
    outline-offset:3px;
}

/* Messages */

.wpforms-field-description,
.wpforms-field-sublabel{
    color:var(--color-text-muted);
    line-height:1.6;
}

.wpforms-error{
    color:var(--terracotta);
    margin-top:.35rem;
}

.wpforms-field.wpforms-has-error input,
.wpforms-field.wpforms-has-error textarea,
.wpforms-field.wpforms-has-error select{
    border-color:var(--terracotta);
}

.wpforms-confirmation-container{
    padding:1.5rem;

    background:var(--color-section);

    border-left:3px solid var(--color-secondary);

    color:var(--color-text);
}

/* Sections */

.wpforms-field-section{
    margin:2rem 0 1.25rem;
}

.wpforms-field-section h3{
    font-family:var(--font-heading);
    font-weight:400;
    color:var(--color-heading);
}

.wpforms-field{
    margin-bottom:1.5rem;
}

.wpforms-container .wpforms-form{
    padding:0;
}

.wpforms-field fieldset{
    border:0;
    margin:0;
    padding:0;
}

.wpforms-field legend{
    font-family:var(--font-heading);
    font-size:1.25rem;
    color:var(--color-heading);

    margin-bottom:1rem;
}

.wpforms-field input::placeholder,
.wpforms-field textarea::placeholder{
    color:var(--color-text-muted);
}

/* Mobile */

@media (max-width:768px){

    .wpforms-field-radio li,
    .wpforms-field-checkbox li{
        padding:.75rem;
    }

    .wpforms-field input,
    .wpforms-field textarea,
    .wpforms-field select{
        font-size:16px;
    }

}