form.contact-form {
    display: grid;
    gap: 3rem;

    #contact-tree {
        display: grid;
        gap: 2rem;

        &[data-details] + .contact-details {
            display: grid;
        }
    }

    fieldset {
        display: grid;
        gap: .75rem;
        margin: 0;
        padding: 0;
        border: 0;

        + fieldset {
            margin-top: .5rem;
            border-top: 1px solid rgb(18 32 51 / .08);
        }

        label {
            display: flex;
            align-items: center;
            gap: .65rem;
            padding: .9rem .7rem;
            background: radial-gradient(circle at 20% 30%, var(--col-100) 0%, transparent 68%),
            radial-gradient(circle at 80% 20%, var(--col-100) 0%, transparent 74%),
            radial-gradient(circle at 65% 75%, var(--col-200) 0%, transparent 82%),
            radial-gradient(circle at 25% 80%, var(--col-100) 0%, transparent 56%),
            var(--col-bw-200);
            border-radius: var(--border-radius-s);
            color: var(--color-ink);
            cursor: pointer;
            margin-inline: 0;

            &.active {
                border: 1px solid var(--col-500);
                background-color: var(--col-bw-200);
            }
        }
    }

    legend {
        padding-inline: .75rem;
        margin-bottom: .7rem;
        font-family: var(--font-serif), serif;
        font-size: 1.4rem;
        line-height: 1;
        letter-spacing: -.03em;

        a {
            color: var(--color-muted);
            font-family: var(--font-sans), sans-serif;
            font-size: .9rem;
            text-decoration: underline;
        }
    }


    & input:not([type="radio"]):not([type="checkbox"]),
    & textarea,
    & select,
    .file-wrapper {
        width: 100%;
        border: 0;
        border-radius: var(--border-radius-s);
        background: var(--col-bw-000);
        padding: .75rem;
        color: var(--color-ink);
        font: inherit;
        outline: 0;
        font-size: 1rem;
    }


    & textarea {
        resize: vertical;
    }

    & input:focus,
    & textarea:focus,
    & select:focus {
        outline: 2px solid var(--col-400);
    }


    .emergency-notice {
        padding: .9rem 1rem;
        color: var(--color-ink);
        background: var(--col-danger-100);
        border: 1px solid var(--col-danger-500);
        border-radius: 1rem;

        strong,
        a {
            color: #b81414;
            font-weight: 700;
        }
    }

    .contact-details {
        padding: 1.5rem 0;
        background: var(--col-bw-100);
        border-radius: var(--border-radius-m);

        .section {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));

            @media (max-width: 45rem) {
                grid-template-columns: 1fr;
            }

            label {
                display: grid;
                background: unset;
                gap: .35rem;
                color: var(--color-muted);
                font-size: .9rem;
                margin-inline: .75rem;
                
                &:has(input[type="checkbox"]) {
                    margin-inline: .5rem;
                }

                span {
                    margin-inline: .75rem;
                }


                .validation-message {
                    height: 1.5rem;
                    margin-inline: .75rem;

                    span {
                        margin: 0;
                    }
                }
            }

            .checkbox {
                display: flex;
                grid-template-columns: auto 1fr;
                align-items: start;
            }

            .wide {
                grid-column: 1 / -1;
            }

            select {
                padding: .75rem .5rem;
                border-right: .5rem solid var(--col-bw-000);
            }

            button[type="submit"] {
                float: right;
                font-size: .9rem;
                margin: 0 1rem;
            }

            input[type="file"] {
                position: absolute;
                width: 1px;
                height: 1px;
                padding: 0;
                overflow: hidden;
                clip-path: inset(50%);
                white-space: nowrap;
                border: 0;
            }

            .file-wrapper {
                padding: .5rem .2rem;

                .file-button {
                    margin: 0;
                    padding: .5rem;
                    border: none;
                    outline: none;
                    color: var(--col-600);
                    border-radius: 3rem;
                    transition: all .2s ease;
                    height: fit-content;
                    width: fit-content;

                    &:hover {
                        text-decoration: none;
                        color: var(--col-300);
                    }
                }

                ul {
                    list-style-type: none;
                    margin: 0 .5rem;
                    padding: 0;
                    gap: .5rem;
                    display: flex;
                    flex-direction: column;

                    &:has(li) {
                        margin: .5rem .5rem;
                    }

                    li {
                        color: var(--color-muted);

                        button {
                            padding: .1rem .5rem;
                            color: var(--col-danger-500);
                            background-color: var(--col-danger-100);
                        }
                    }
                }
            }
        }
    }
}




