
.page-header__search {
    --box-shadow-small: var(--root-box-shadow);
    --font-size: var(--root-font-size); /* Reset, use REM */
    --width: 100%;
    --color-background: var(--root-color--white);
}

.page-header__search__input {
    --font-family: inherit;
    --font-size: 1.125rem; /* Always 18px */
    --font-style: normal;
    --font-weight: var(--root-font-weight--normal);
    --line-height: inherit;

    --color-border: var(--root-color--primary);
    --color-background: transparent;
    --color-text: var(--root-color-text);
    --color-placeholder: var(--root-color-text-placeholder);
}

.page-header__search__input:focus {
    --color-border: var(--root-color--primary-dark);
}

.page-header__search__button {
    --font-family: inherit;
    --font-size: 0.937rem; /* Always 15px */
    --font-style: normal;
    --font-weight: var(--root-font-weight--normal);
    --line-height: inherit;

    --color-border: var(--root-color--primary-dark);
    --color-background: var(--root-color--primary-dark);
    --color-text: var(--root-color--white);
}

.page-header__search__button:hover,
.page-header__search__button:focus {
    --color-border: var(--root-color--primary-darkest);
    --color-background: var(--root-color--primary-darkest);
    --color-text: var(--root-color--white);
}

.page-header__search__icon {
    --color-icon: var(--root-color--primary);
}

@media (min-width: 62rem) {
    .page-header__search {
        --color-background: transparent;
        --width: 12.5rem;
    }

    .page-header__search__input {
        --color-border: var(--root-color--primary);
        --color-background: var(--root-color--white);
    }

    .page-header__search__button {
        --color-border: var(--root-color--primary-dark);
    }
}

.page-header__search {
    display: flex;
    overflow: hidden;
    align-items: center;
    flex-shrink: 0;
    justify-content: flex-end;
    margin-left: auto;
}

.page-header__search__form {
    position: relative;
    display: flex;
    align-items: center;
    height: 3rem;
    margin-right: 1rem;
    margin-left: 1rem;
}

input[type="search"].page-header__search__input {
    line-height: 1.5;
    max-width: initial;
    height: 100%;
    padding: 0.625rem 6.25rem 0.625rem 2.75rem;
    transition: border-color 200ms;
    border-width: 0.125rem;
    border-style: solid;
    border-radius: 0.125rem;
}

input[type="search"].page-header__search__input:focus {
    box-shadow: initial;
}

.page-header__search__button {
    height: 100%;
    padding: 0 1.25rem;
    position: absolute;
    right: 0;
    cursor: pointer;
    border-width: 0.125rem;
    border-style: solid;
    border-radius: 0.125em;
}

.page-header__search__icon {
    position: absolute;
    left: 0.75rem;
    width: 1.5rem;
    height: 1.5rem;
}

/* Responsive */
@media (max-width: 61.999rem) {
    .page-header__search {
        position: absolute;
        z-index: -1;
        right: 0;
        left: 0;
        margin: 0;
        transform: translateY(var(--root-page-header-height, 5rem));
    }

    .page-header__search__form {
        margin-top: 1rem;
        margin-bottom: 1rem;
    }
}

.page-header__search {
    font-size: var(--font-size, 1rem); /* Reset, use REM */
    width: var(--width, 100%);
    background-color: var(--color-background);
}

input[type="search"].page-header__search__input {
    font-family: var(--font-family, inherit);
    font-size: var(--font-size, 1em);
    font-style: var(--font-style, normal);
    font-weight: var(--font-weight, normal);
    line-height: var(--line-height, inherit);
    color: var(--color-text, #0349D1);
    border-color: var(--color-border, #022979);
    background-color: var(--color-background, transparent);
}

input[type="search"].page-header__search__input::placeholder {
    color: var(--color-placeholder, #4A86FC);
}

.page-header__search__button {
    font-family: var(--font-family, inherit);
    font-size: var(--font-size, 1em);
    font-weight: var(--font-weight, bold);
    font-style: var(--font-style, normal);
    line-height: var(--line-height, inherit);
    color: var(--color-text, #fff);
    border-color: var(--color-border, #000714);
    background-color: var(--color-background, #022979);
}

.page-header__search__icon {
    fill: var(--color-icon, #022979);
}

/* Responsive */
@media (max-width: 61.999rem) {
    .page-header__search {
        box-shadow: var(--box-shadow-small, 0 0.25rem 1rem 0 rgba(0, 0, 0, 0.16));
    }
}
