div#eaa {
    --color-red: #ff0000;
    --color-primary: #267CB1;
    --color-primary-hover: #0065A3;
    --color-border-gray: #b2b2b2;
    --color-white: #fff;
    --color-notice-background: linear-gradient(220deg, #fff 0%, #e2f4ff 100%);
    --color-green: #00aa00;

    div.content {
        padding-top: 50px;

        h1 {
            font-size: 36px;
            font-weight: 700;
            line-height: 44px;
        }

        h2 {
            margin-top: 40px;
            font-size: 28px;
            font-weight: 700;
            line-height: 36px;
            user-select: none;
        }

        p {
            margin: 20px 0;
            font-size: 16px;
            line-height: 24px;
        }

        ul {
            margin: 20px 0 20px 20px;

            li {
                font-size: 16px;
                line-height: 24px;
                list-style-type: disc;

                a {
                    overflow-wrap: break-word;
                }
            }
        }
    }

    div.form {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        align-items: start;
        grid-gap: 16px 30px;
        width: 634px;
        margin: 0 auto;
        padding-top: 50px;
        padding-bottom: 50px;

        div.input {
            display: grid;
        }

        div.input label {
            margin-bottom: 3px;
            font-size: 14px;
            line-height: 1;
            grid-area: 1/1/2/2;
        }

        div.input label span.star {
            color: var(--color-red);
        }

        div.input label span.star::after {
            content: ' ';
        }

        div.input input:not([type="hidden"], .hidden),
        div.input select,
        div.input textarea {
            display: block;
            width: 100%;
            height: 42px;
            padding-left: 10px;
            background-color: var(--color-white);
            border: 1px solid var(--color-border-gray);
            border-radius: 4px;
            box-sizing: border-box;
            font-size: 14px;
            line-height: 16px;
            resize: none;
            grid-area: 2/1/3/2;
        }

        div.input span.validate {
            display: none;
            position: static !important;
            color: var(--color-red);
            font-size: 14px;
            line-height: 1;
            grid-area: 3/1/4/2;
        }

        div.input span.validate:has(*),
        div.input span.validate:not(:empty) {
            margin-top: 6px;
        }

        div.input div.additionalElements {
            margin-top: 6px;
            grid-area: 4/1/5/2;
        }

        div.input.required:not(:has(span.star)) label::before {
            content: '* ';
            color: var(--color-red);
        }

        div.input.error span.validate,
        div.input.wrong span.validate {
            display: block;
        }

        div.input.error::after,
        div.input.wrong::after,
        div.input.success::after,
        div.input.correct::after {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 20px;
            height: 20px;
            margin: 10px;
            visibility: unset;
            border-radius: 100%;
            color: var(--color-white);
            font-size: 15px;
            line-height: 1;
            clear: unset;
            grid-area: 2/1/3/2;
            place-self: start end;
        }

        div.input:is(.error, .wrong)::after {
            content: '✘';
            background-color: var(--color-red);
        }

        div.input:is(.success, .correct)::after {
            content: '✔';
            background-color: var(--color-green);
        }

        div.input.error input:not([type="hidden"], .hidden),
        div.input.wrong input:not([type="hidden"], .hidden),
        div.input.success input:not([type="hidden"], .hidden),
        div.input.correct input:not([type="hidden"], .hidden) {
            padding-right: 32px;
        }

        div.input.error:has(.datepicker)::after,
        div.input.error:has(select)::after,
        div.input.wrong:has(.datepicker)::after,
        div.input.wrong:has(select)::after,
        div.input.success:has(.datepicker)::after,
        div.input.success:has(select)::after,
        div.input.correct:has(.datepicker)::after,
        div.input.correct:has(select)::after {
            margin-right: 35px;
        }

        div.input.phone div.prefixSelector {
            align-self: center;
            position: relative;
            inset: unset !important;
            width: max-content;
            border-right: 1px solid var(--color-border-gray);
            grid-area: 2/1/3/2;
        }

        div.input.phone div.prefixSelector div.options {
            display: unset !important;
        }

        div.input.phone div.prefixSelector.visible div.head::after {
            display: none;
        }

        div.input.phone div.prefixSelector.visible div.head::before {
            display: block;
        }

        div.input.phone div.prefixSelector.visible ul {
            display: flex;
            flex-direction: column;
        }

        div.input.phone div.prefixSelector div.head {
            position: relative;
            padding: 0px 23px 1px 12px;
            cursor: pointer;
        }

        div.input.phone div.prefixSelector div.head img {
            width: 23px;
        }

        div.input.phone div.prefixSelector div.head::after,
        div.input.phone div.prefixSelector div.head::before {
            content: ' ';
            display: block;
            position: absolute;
            top: 10px;
            left: 43px;
            width: 0;
            height: 0;
            border-top: 4px solid #555;
            border-right: 4px solid transparent;
            border-left: 4px solid transparent;
            box-sizing: border-box;
        }

        div.input.phone div.prefixSelector div.head::before {
            display: none;
            top: 10px;
            border-top: none;
            border-bottom: 4px solid #555;
        }

        div.input.phone div.prefixSelector ul {
            display: none;
            position: absolute;
            top: 32px;
            left: 0;
            z-index: 5;
            width: 315px;
            background: var(--color-white);
            border: 0 solid var(--color-border-gray);
            border-width: 0 1px 1px;
        }

        div.input.phone div.prefixSelector ul li {
            order: 2;
            overflow: hidden;
            position: relative;
            padding: 3px 10px;
            cursor: pointer;
            clear: both;
        }

        div.input.phone div.prefixSelector ul li:hover {
            background: #f4f4f4;
        }

        div.input.phone div.prefixSelector ul li img {
            float: left;
            width: 20px;
            margin-top: 2px;
        }

        div.input.phone div.prefixSelector ul li span {
            display: block;
            float: left;
            padding: 5px 0 0 10px;
            font-size: 14px;
        }

        div.input.phone div.prefixSelector ul li span em {
            display: inline-block;
            padding: 0 0 0 10px;
            color: #696969;
        }

        div.input.phone div.prefixSelector ul li.other {
            border-top: 1px solid var(--color-border-gray);
        }

        div.input.phone input {
            text-indent: 65px;
        }

        div.input.blink::before {
            content: '';
            display: block;
            position: relative;
            z-index: 1;
            width: 100%;
            height: 100%;
            border-radius: 4px;
            box-shadow: 0 0 0 2px var(--color-white), 0 0 0 6px var(--color-green);
            animation: blink .65s infinite forwards;
            grid-area: 2/1/3/2;
        }

        label.customCheckbox {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 14px;
            line-height: 18px;
            grid-column: span 4;

            span.checkbox {
                margin-right: 10px;
            }

            span.star {
                color: var(--color-red);
            }

            input {
                width: 30px;
                height: 30px;
                min-width: 30px;
                min-height: 30px;
                appearance: none;
                -webkit-appearance: none;
                -moz-appearance: none;
                background: var(--color-white);
                border: 1px solid var(--color-border-gray);
                border-radius: 4px;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
                transition: border-color 0.2s, background-color 0.2s;
                margin: 0;
            }

            input:checked {
                background: var(--color-primary);
                border-color: var(--color-primary);
            }

            input:checked::after {
                content: '';
                display: block;
                width: 8px;
                height: 14px;
                border: solid var(--color-white);
                border-width: 0 3px 3px 0;
                transform: rotate(45deg);
                margin-top: -5px;
            }

            &.error {
                input {
                    border-color: var(--color-red);
                }

                input:checked {
                    background: var(--color-red);
                    border-color: var(--color-red);
                }
            }
        }

        div.input {
            textarea {
                width: 100%;
                height: 145px;
                padding: 10px;
                border: 1px solid var(--color-border-gray);
                border-radius: 3px;
                box-sizing: border-box;
                font-family: 'Roboto', sans-serif;
                font-size: 14px;
                line-height: 16px;
                resize: none;
            }

            &.place {
                grid-column: span 4;
            }

            &.requiredAccesibility {
                grid-column: span 4;
            }

            &.preferredAccessibility {
                grid-column: span 4;
            }

            &.name {
                grid-column: span 2;
            }

            &.surname {
                grid-column: span 2;
            }

            &.preferredContact {
                grid-column: span 4;
            }

            &.email {
                grid-column: span 4;
            }

            &.phone {
                grid-column: span 4;
            }

            &.postalCode {
                grid-column: span 1;
            }

            &.address {
                grid-column: span 3;
            }

            &.city {
                grid-column: span 4;
            }
        }

        &[data-method="Email"] {
            div.input {

                &.phone,
                &.postalCode,
                &.address,
                &.city {
                    display: none;
                }
            }
        }

        &[data-method="Phone"] {
            div.input {

                &.postalCode,
                &.address,
                &.city {
                    display: none;
                }

                &.email {
                    label {
                        &::before {
                            content: '';
                        }
                    }
                }
            }
        }

        &[data-method="TraditionalMail"] {
            div.input {
                &.email {
                    label {
                        &::before {
                            content: '';
                        }
                    }
                }

                &.phone {
                    display: none;
                }
            }
        }
    }

    a.linkButton {
        display: block;
        margin-top: 50px;
        padding: 20px;
        background: var(--color-primary);
        color: var(--color-white);
        font-size: 24px;
        font-weight: 700;
        justify-self: center;
        grid-column: span 4 / span 4;
    }

    a.linkButton:hover {
        background: var(--color-primary-hover);
    }

    div.success {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 20px;
        padding: 20px 0;

        div.notice {
            padding: 20px;
            background: var(--color-notice-background);
            border: var(--color-primary) 1px solid;
            border-radius: 5px;
            font-size: 16px;
            line-height: 24px;
            text-align: center;
        }

        a {
            display: block;
            margin-top: 20px;
            padding: 10px;
            background: var(--color-primary);
            color: var(--color-white);
            font-size: 14px;
            font-weight: 700;
            line-height: 20px;
        }

        a:hover {
            background: var(--color-primary-hover);
        }
    }
}