/*
 * STAR Contact Form
 * Core presentation layer.
 *
 * Themes may override any --star-contact-* custom property on
 * .star-contact-wrap without replacing Core selectors.
 */

.star-contact-wrap {
    width: 100%;
    --star-contact-gap: 1rem;
    --star-contact-label-gap: .4rem;
    --star-contact-radius: .72rem;
    --star-contact-control-min-height: 3rem;
    --star-contact-control-padding-x: .9rem;
    --star-contact-control-padding-y: .72rem;
    --star-contact-border-width: 1px;
    --star-contact-border-color: rgba(80, 80, 80, .42);
    --star-contact-field-bg: rgba(255, 255, 255, .94);
    --star-contact-field-text: inherit;
    --star-contact-focus-color: currentColor;
    --star-contact-button-bg: currentColor;
    --star-contact-button-text: #fff;
    --star-contact-button-border: currentColor;
    --star-contact-button-radius: .72rem;
    --star-contact-button-padding-x: 1.35rem;
    --star-contact-button-padding-y: .78rem;
}

.star-contact-form {
    display: grid;
    gap: var(--star-contact-gap);
    width: 100%;
}

.star-contact-field {
    display: grid;
    gap: var(--star-contact-label-gap);
    min-width: 0;
}

.star-contact-field > label {
    font: inherit;
    font-weight: 600;
    line-height: 1.35;
}

.star-contact-field input:not([type="checkbox"]):not([type="radio"]),
.star-contact-field select,
.star-contact-field textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: var(--star-contact-control-min-height);
    margin: 0;
    padding: var(--star-contact-control-padding-y)
        var(--star-contact-control-padding-x);
    border: var(--star-contact-border-width) solid
        var(--star-contact-border-color);
    border-radius: var(--star-contact-radius);
    background-color: var(--star-contact-field-bg);
    color: var(--star-contact-field-text);
    font: inherit;
    line-height: 1.35;
    box-shadow: none;
    transition:
        border-color .16s ease,
        box-shadow .16s ease,
        background-color .16s ease;
}

.star-contact-field select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 2.8rem;
    background-image:
        linear-gradient(45deg, transparent 50%, currentColor 50%),
        linear-gradient(135deg, currentColor 50%, transparent 50%);
    background-position:
        calc(100% - 1.12rem) 50%,
        calc(100% - .78rem) 50%;
    background-size: .38rem .38rem, .38rem .38rem;
    background-repeat: no-repeat;
    cursor: pointer;
}

.star-contact-field textarea {
    min-height: 10rem;
    resize: vertical;
    line-height: 1.5;
}

.star-contact-field input:not([type="checkbox"]):not([type="radio"]):hover,
.star-contact-field select:hover,
.star-contact-field textarea:hover {
    border-color: currentColor;
}

.star-contact-field input:not([type="checkbox"]):not([type="radio"]):focus,
.star-contact-field select:focus,
.star-contact-field textarea:focus {
    border-color: var(--star-contact-focus-color);
    outline: 2px solid var(--star-contact-focus-color);
    outline-offset: 2px;
}

.star-contact-check {
    display: grid;
    grid-template-columns: 1.08rem minmax(0, 1fr);
    align-items: start;
    gap: .68rem;
    margin: 0;
    font: inherit;
    line-height: 1.45;
    cursor: pointer;
}

.star-contact-check input[type="checkbox"] {
    width: 1.08rem;
    height: 1.08rem;
    margin: .18em 0 0;
    padding: 0;
    accent-color: var(--star-contact-focus-color);
    cursor: pointer;
}

.star-contact-check > span {
    min-width: 0;
}

.star-contact-privacy-notice {
    line-height: 1.55;
}

.star-contact-form button[type="submit"] {
    justify-self: start;
    min-height: var(--star-contact-control-min-height);
    margin: .15rem 0 0;
    padding:
        var(--star-contact-button-padding-y)
        var(--star-contact-button-padding-x);
    border: 1px solid var(--star-contact-button-border);
    border-radius: var(--star-contact-button-radius);
    background: var(--star-contact-button-bg);
    color: var(--star-contact-button-text);
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: none;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        opacity .16s ease;
}

.star-contact-form button[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 .45rem 1.1rem rgba(0, 0, 0, .14);
}

.star-contact-form button[type="submit"]:focus-visible {
    outline: 2px solid var(--star-contact-focus-color);
    outline-offset: 3px;
}

.star-contact-form button[type="submit"]:active {
    transform: translateY(0);
}

.star-contact-message {
    padding: .85rem 1rem;
    border-radius: var(--star-contact-radius);
    line-height: 1.45;
}

.star-contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 600px) {
    .star-contact-form button[type="submit"] {
        width: 100%;
        justify-self: stretch;
    }
}

@media (prefers-reduced-motion: reduce) {
    .star-contact-field input,
    .star-contact-field select,
    .star-contact-field textarea,
    .star-contact-form button[type="submit"] {
        transition: none;
    }
}
