#general-form {
    --general-form-page-gap: 1.25vh;
    --general-form-page-field-gap: 2.5vh;
    --general-form-page-radius: calc(var(--base-page-radius, 0vh) / var(--zoom-multiplier, 1));
    
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: space-between;
    
    position: relative;
    
    width: 100vw;
    height: calc(100vh - calc(var(--header-size, 0vh) / var(--zoom-multiplier)));
    padding: calc(var(--fixed-content-padding) / 0.75) var(--page-content-padding);
    gap: var(--fixed-content-padding);
}

#general-form .page-slogan,
#general-form .page-title {
    color: rgb(0, 0, 0);
    white-space: nowrap;
}

#general-form .page-slogan {
    opacity: 0.75;
    font-weight: var(--font-weight-medium);
    font-size: 1.5vh;
}

#general-form .page-title {
    position: relative;
    font-weight: var(--font-weight-black);
    font-size: 3.75vh;
    margin-bottom: var(--general-form-page-field-gap);
}

#general-form .captcha-overlay {
    position: fixed;
    visibility: hidden;
    
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    
    background: rgba(0, 0, 0, 0.5);
    
    bottom: 0;
    left: 0;
    
    width: 100vw;
    height: 100vh;
    
    z-index: 64;
}

#general-form .captcha-overlay.active {
    visibility: visible;
}

#general-form .showcase {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    
    position: relative;
    border-radius: var(--general-form-page-radius);
    overflow: hidden;
    
    flex-shrink: 1;
    flex-grow: 1;
    
    width: 100%;
    gap: var(--general-form-page-gap);
}

#general-form .showcase::before {
    content: "";
    
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.375), rgba(0, 0, 0, 0.875) 100%);
    border-radius: var(--general-form-page-radius);
    position: absolute;
    
    width: 100%;
    height: 100%;
    
    top: 0;
    left: 0;
    
    z-index: 1;
}

#general-form .showcase h2 {
    --font-size: 2.05vh;
    
    color: rgb(255, 255, 255);
    opacity: 0.75;

    font-weight: var(--font-weight-regular);
	font-size: var(--font-size);
	
	line-height: var(--font-size);
	letter-spacing: calc(var(--font-size) * 0.075);

	z-index: 3;
}

#general-form .showcase h1 {
    --font-size: 3.75vh;
    
    color: rgb(var(--active-color));
    text-transform: uppercase;

	font-weight: var(--font-weight-black);
	font-size: var(--font-size);
	
	line-height: var(--font-size);
	letter-spacing: calc(var(--font-size) * 0.1);
	
	z-index: 3;
}

#general-form .showcase img {
    position: absolute;
    
    -o-object-fit: cover;
    object-fit: cover;
    
    -o-object-position: center;
    object-position: center;
    
    -webkit-filter: brightness(0.5);
    -moz-filter: brightness(0.5);
    -o-filter: brightness(0.5);
    filter: brightness(0.5);
    
    top: 0;
    left: 0;
    
    width: 100%;
    height: 100%;
    
    z-index: 0;
}

/*-------------------------------------------------------------------------------------------------------

FORM CONTENT

-------------------------------------------------------------------------------------------------------*/

#general-form .form-page {
    display: none;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-start;
    
    width: 100%;
    height: auto;
    gap: var(--general-form-page-field-gap);
}

#general-form .form-page.active {
    display: flex;
}

#general-form .inline {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    
    flex-shrink: 0;
    flex-grow: 0;
    
    width: 100%;
    height: auto;
    gap: var(--general-form-page-gap);
}

#general-form .container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-start;
    
    flex-shrink: 1;
    flex-grow: 0;
    
    width: 100%;
    height: auto;
    gap: var(--general-form-page-gap);
}

/*-------------------------------------------------------------------------------------------------------

STAR

-------------------------------------------------------------------------------------------------------*/

#general-form .inline:has(#star-value[value="1"]) .one-star img,
#general-form .inline:has(#star-value[value="2"]) .one-star img,
#general-form .inline:has(#star-value[value="2"]) .two-star img,
#general-form .inline:has(#star-value[value="3"]) .one-star img,
#general-form .inline:has(#star-value[value="3"]) .two-star img,
#general-form .inline:has(#star-value[value="3"]) .three-star img,
#general-form .inline:has(#star-value[value="4"]) .one-star img,
#general-form .inline:has(#star-value[value="4"]) .two-star img,
#general-form .inline:has(#star-value[value="4"]) .three-star img,
#general-form .inline:has(#star-value[value="4"]) .four-star img,
#general-form .inline:has(#star-value[value="5"]) .one-star img,
#general-form .inline:has(#star-value[value="5"]) .two-star img,
#general-form .inline:has(#star-value[value="5"]) .three-star img,
#general-form .inline:has(#star-value[value="5"]) .four-star img,
#general-form .inline:has(#star-value[value="5"]) .five-star img {
    opacity: 1;
}

#general-form .inline .one-star:hover img,
#general-form .inline:has(.two-star:hover) .one-star img,
#general-form .inline .two-star:hover img,
#general-form .inline:has(.three-star:hover) .one-star img,
#general-form .inline:has(.three-star:hover) .two-star img,
#general-form .inline .three-star:hover img,
#general-form .inline:has(.four-star:hover) .one-star img,
#general-form .inline:has(.four-star:hover) .two-star img,
#general-form .inline:has(.four-star:hover) .three-star img,
#general-form .inline .four-star:hover img,
#general-form .inline:has(.five-star:hover) .one-star img,
#general-form .inline:has(.five-star:hover) .two-star img,
#general-form .inline:has(.five-star:hover) .three-star img,
#general-form .inline:has(.five-star:hover) .four-star img,
#general-form .inline .five-star:hover img {
    opacity: 1;
}

#general-form .inline:has(.one-star:hover) .two-star img,
#general-form .inline:has(.one-star:hover) .three-star img,
#general-form .inline:has(.one-star:hover) .four-star img,
#general-form .inline:has(.one-star:hover) .five-star img,
#general-form .inline:has(.two-star:hover) .three-star img,
#general-form .inline:has(.two-star:hover) .four-star img,
#general-form .inline:has(.two-star:hover) .five-star img,
#general-form .inline:has(.three-star:hover) .four-star img,
#general-form .inline:has(.three-star:hover) .five-star img,
#general-form .inline:has(.four-star:hover) .five-star img {
    opacity: 0.1 !important;
}

#general-form .inline .star-button {
    position: relative;
    
    background-color: rgb(250, 250, 250);
    border: var(--absolute-pixel-size) solid rgb(240, 240, 240);
    border-radius: var(--general-form-page-radius);
    
    flex-shrink: 1;
    flex-grow: 0;
    
    width: 100%;
    padding: 2vh;
}

#general-form .inline .star-button .star {
    opacity: 0.1;
    
    width: 3.5vh;
    height: 3.5vh;
    
    transition: opacity var(--transition-medium);
}

/*-------------------------------------------------------------------------------------------------------

DROPDOWN

-------------------------------------------------------------------------------------------------------*/

#general-form .dropdown {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-start;
    
    position: relative;
    
    width: 100%;
    height: auto;
}

#general-form .dropdown .dropdown-toggle {
    color: rgb(255, 255, 255);
    background: rgb(0, 0, 0);
    
    border: none;
    
    position: relative;
    border-radius: var(--general-form-page-radius);
    
    font-weight: var(--font-weight-medium);
    font-size: 1.25vh;
    
    text-align: left;
    
    width: 100%;
    padding: calc(3vh - var(--absolute-pixel-size) * 2);
    z-index: 16;
}

#general-form .dropdown .dropdown-toggle img {
    -o-object-fit: contain;
    object-fit: contain;
    
    -o-object-position: center;
    object-position: center;
    
    position: absolute;
    
    -webkit-filter: invert(1);
    -moz-filter: invert(1);
    -o-filter: invert(1);
    filter: invert(1);
    
    top: 50%;
    right: 2.25vh;
    
    width: 1.75vh;
    height: 1.75vh;
    
    -webkit-transform: translateY(-50%) rotate(90deg) scaleX(1);
    -moz-transform: translateY(-50%) rotate(90deg) scaleX(1);
    -o-transform: translateY(-50%) rotate(90deg) scaleX(1);
    -ms-transform: translateY(-50%) rotate(90deg) scaleX(1);
    transform: translateY(-50%) rotate(90deg) scaleX(1);
}

#general-form .dropdown .dropdown-toggle.active img {
    -webkit-transform: translateY(-60%) rotate(90deg) scaleX(-1);
    -moz-transform: translateY(-60%) rotate(90deg) scaleX(-1);
    -o-transform: translateY(-60%) rotate(90deg) scaleX(-1);
    -ms-transform: translateY(-60%) rotate(90deg) scaleX(-1);
    transform: translateY(-60%) rotate(90deg) scaleX(-1);
}

#general-form .dropdown .dropdown-content {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-start;
    
    background: rgb(250, 250, 250);
    border: var(--absolute-pixel-size) solid rgb(240, 240, 240);
    pointer-events: none;
    
    opacity: 0;
    box-shadow: 0 0 1vh rgba(0, 0, 0, 0);
    border-radius: 0 0 var(--general-form-page-radius) var(--general-form-page-radius);
    
    overflow: hidden;
    overflow-y: auto;
    
    position: absolute;
    
    top: 100%;
    left: 0;
    
    width: 100%;
    height: 0;
    
    padding: 0 2.25vh;
    padding-top: var(--general-form-page-radius);
    padding-bottom: 0;
    
    margin-top: calc(var(--general-form-page-radius) * -1);

    z-index: 8;
    transition: opacity var(--transition-medium), height var(--transition-medium), box-shadow var(--transition-medium);
}

#general-form .dropdown:has(.dropdown-toggle.active) .dropdown-content {
    opacity: 1;
    height: 22.5vh;
    box-shadow: 0 1vh 5vh rgb(240, 240, 240);
    pointer-events: auto;
}

#general-form .dropdown .dropdown-content button:first-child {
    margin-top: 1.25vh;
}

#general-form .dropdown .dropdown-content button:last-child {
    margin-bottom: 1.25vh;
}

#general-form .dropdown .dropdown-content button {
    color: rgb(0, 0, 0);
    opacity: 0.25;
    
    background: transparent;
    
    border: none;
    border-radius: 0;

    font-weight: var(--font-weight-medium);
    font-size: 1.325vh;
    
    text-align: left;

    width: 100%;
    padding: 1.25vh 0;
    
    transition: opacity var(--transition-medium);
}

#general-form .dropdown .dropdown-content button.active,
#general-form .dropdown .dropdown-content button:hover {
    opacity: 0.75;
}

#general-form .label {
    color: rgb(0, 0, 0);
    opacity: 0.5;
    
    font-weight: var(--font-weight-medium);
    font-size: 1.25vh;
    
    line-height: 1.25vh;
    white-space: nowrap;
}

#general-form input,
#general-form textarea {
    color: rgb(0, 0, 0);
    opacity: 0.75;
    
    border: var(--absolute-pixel-size) solid rgba(0, 0, 0, 0.15);
    border-radius: var(--general-form-page-radius);
    
    font-weight: var(--font-weight-medium);
    font-size: 1.25vh;
    
    line-height: 1.25vh;
    white-space: nowrap;
    
    width: 100%;
    height: auto;
    padding: calc(3vh - var(--absolute-pixel-size) * 2);
    
    transition: opacity var(--transition-medium), border-color var(--transition-medium);
}

#general-form textarea {
    line-height: 2.5vh;
    white-space: wrap;
    flex-shrink: 1;
    height: 100%;
}

#general-form .container:has(textarea) {
    flex-grow: 1;
}

#general-form input:hover,
#general-form textarea:hover,
#general-form input:focus,
#general-form textarea:focus {
    opacity: 1;
    border-color: rgba(0, 0, 0, 0.25);
}

#general-form input.error,
#general-form textarea.error {
    border-color: rgba(255, 0, 0, 0.5);
}

#general-form .actions {
    margin-top: auto;
}

#general-form .actions button {
    color: rgb(255, 255, 255);
    background: rgb(0, 0, 0);
    
    outline: var(--absolute-pixel-size) solid rgba(0, 0, 0, 0);
    outline-offset: calc(var(--base-page-size) / 1.75);
    
    border: none;
    border-radius: var(--general-form-page-radius);
    
    font-weight: var(--font-weight-medium);
    font-size: 1.25vh;
    
    letter-spacing: calc(1.25vh * 0.125);
    line-height: 1.25vh;
    text-transform: uppercase;
    white-space: nowrap;
    
    width: 100%;
    height: auto;
    padding: calc(3vh + var(--absolute-pixel-size) * 2);
    
    transition: outline-color var(--transition-long);
}

#general-form .actions button:nth-child(2) {
    width: 75%;
    flex-shrink: 0;
}

#general-form button:hover {
    outline-color: rgba(0, 0, 0, 0.15);
    transition: outline-color var(--transition-medium);
}

@media (max-width: 100vh) {
    #general-form .showcase {
        display: none;
    }
}