/* Contacts section — #kontakt. Values measured off the rendered export
   (owner note 2026-07-18 — the first pass diverged):
     section   neutral-200 + the hero's dotted texture, clamp-7 padding
     info card neutral-200, 1.5px neutral-800 border, radius 16, 24/36 pad
     form      two 360px columns with a 32px gutter, message spans both
   Form controls themselves are the shared .input/.field primitives in
   main.css. The Ring mig op card has no export equivalent (new CMS
   feature, sitemap §9) and is styled from tokens. */

.contacts {
    padding-block: clamp(56px, 14.6px + 8.64vw, 128px);
    background-color: var(--neutral-200);
    background-image: var(--contacts-bg-url);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: auto;
}

.contacts__container {
    display: flex;
    flex-direction: column;
    gap: var(--space-40);
}

@media (min-width: 992px) {
    .contacts__container {
        flex-direction: row;
        align-items: flex-start;
        gap: var(--space-56);
    }
}

.contacts__intro {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
}

@media (min-width: 992px) {
    .contacts__intro {
        flex: 0 0 auto;
        width: 100%;
        max-width: 440px;
    }
}

.contacts__title {
    margin: 0;
}

.contacts__sub {
    margin: 0;
    color: var(--secondary);
    line-height: 1.6;
}

.contacts__cards {
    display: grid;
    gap: var(--space-16);
    margin-top: var(--space-8);
}

@media (min-width: 560px) {
    .contacts__cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .contacts__cards {
        grid-template-columns: 1fr;
    }
}

.info-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-20);
    padding: var(--space-24) var(--space-24);
    border: 1.5px solid var(--neutral-800);
    border-radius: var(--radius-lg);
    background: var(--neutral-200);
}

@media (min-width: 768px) {
    .info-card {
        padding: var(--space-24) var(--space-36);
    }
}

.info-card__title {
    margin: 0;
    color: var(--primary);
    font-size: var(--text-button);
    font-weight: 600;
    line-height: 24px;
}

.info-card__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    margin: 0;
    padding: 0;
    list-style: none;
}

.info-card__list li {
    display: flex;
    align-items: center;
    gap: var(--space-12);
    color: var(--secondary);
    font-size: var(--text-button);
    line-height: 24px;
}

.info-card__list a {
    color: var(--secondary);
    text-decoration: none;
    transition: color var(--motion-micro);
}

.info-card__list a:hover {
    color: var(--green-dark);
}

.info-card__icon {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--green);
}

.callback-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    margin-top: var(--space-8);
    padding: var(--space-24);
    border-radius: var(--radius-lg);
    background: var(--white);
    border: 1.5px solid var(--neutral-800);
}

.callback-card__title {
    margin: 0;
    color: var(--primary);
    font-size: var(--text-h4);
    font-weight: 600;
}

.callback-card__sub {
    margin: 0;
    color: var(--secondary);
    font-size: var(--text-sm);
    line-height: 1.6;
}

.callback-card__form {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

@media (min-width: 560px) {
    .callback-card__form {
        flex-direction: row;
    }
}

.callback-card__form .input {
    height: 48px;
}

.callback-card__form .btn {
    flex-shrink: 0;
    height: 48px;
}

.callback-card__fineprint {
    margin: 0;
    color: var(--secondary);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.callback-card__fineprint a {
    color: var(--secondary);
    text-decoration: underline;
}

.contacts__form {
    display: grid;
    gap: var(--space-24);
    width: 100%;
}

@media (min-width: 768px) {
    .contacts__form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-32);
    }

    /* Message and submit run the full width under the paired fields. */
    .contacts__field--wide,
    .contacts__submit {
        grid-column: 1 / -1;
    }
}

.contacts__form textarea.input {
    min-height: 240px;
}

.contacts__submit {
    justify-self: start;
    padding-inline: var(--space-32);
}
