:root {
    --primary: #355c54;
    --primary-5: hsla(168, 27%, 28%, 0.05);
    --primary-10: hsla(168, 27%, 28%, 0.1);
    --primary-20: hsla(168, 27%, 28%, 0.2);
    --primary-30: hsla(168, 27%, 28%, 0.3);
    --primary-40: hsla(168, 27%, 28%, 0.4);
    --primary-50: hsla(168, 27%, 28%, 0.5);
    --primary-60: hsla(168, 27%, 28%, 0.6);
    --primary-70: hsla(168, 27%, 28%, 0.7);
    --primary-80: hsla(168, 27%, 28%, 0.8);
    --primary-90: hsla(168, 27%, 28%, 0.9);
    --primary-d-1: #2c4a43;
    --primary-d-2: #233833;
    --primary-d-3: #1a2724;
    --primary-d-4: #111716;
    --primary-l-1: #5b7a73;
    --primary-l-2: #829a94;
    --primary-l-3: #aabbb7;
    --primary-l-4: #d4dcda;
    --bg-body: hsla(0, 0%, 90%, 1);
    --bg-surface: hsla(0, 0%, 100%, 1);
    --text-body: #355c54;
    --text-body-d-1: #2c4a43;
    --text-body-d-2: #233833;
    --text-body-d-3: #1a2724;
    --text-body-d-4: #111716;
    --text-body-l-1: #5b7a73;
    --text-body-l-2: #829a94;
    --text-body-l-3: #aabbb7;
    --text-body-l-4: #d4dcda;
    --text-title: #355c54;
    --border-primary: #355c54;
    --border: #cccccc;
    --light: hsl(85, 0%, 100%);
    --light-5: hsla(0, 0%, 100%, 0.05);
    --light-10: hsla(0, 0%, 100%, 0.1);
    --light-20: hsla(0, 0%, 100%, 0.2);
    --light-30: hsla(0, 0%, 100%, 0.3);
    --light-40: hsla(0, 0%, 100%, 0.4);
    --light-50: hsla(0, 0%, 100%, 0.5);
    --light-60: hsla(0, 0%, 100%, 0.6);
    --light-70: hsla(0, 0%, 100%, 0.7);
    --light-80: hsla(0, 0%, 100%, 0.8);
    --light-90: hsla(0, 0%, 100%, 0.9);
    --dark: hsla(0, 0%, 0%, 1);
    --dark-5: hsla(0, 0%, 0%, 0.05);
    --dark-10: hsla(0, 0%, 0%, 0.1);
    --dark-20: hsla(0, 0%, 0%, 0.2);
    --dark-30: hsla(0, 0%, 0%, 0.3);
    --dark-40: hsla(0, 0%, 0%, 0.4);
    --dark-50: hsla(0, 0%, 0%, 0.5);
    --dark-60: hsla(0, 0%, 0%, 0.6);
    --dark-70: hsla(0, 0%, 0%, 0.7);
    --dark-80: hsla(0, 0%, 0%, 0.8);
    --dark-90: hsla(0, 0%, 0%, 0.9);
    --success: #16a34a;
    --success-5: hsla(142, 76%, 36%, 0.05);
    --success-10: hsla(142, 76%, 36%, 0.1);
    --success-20: hsla(142, 76%, 36%, 0.2);
    --success-30: hsla(142, 76%, 36%, 0.3);
    --success-40: hsla(142, 76%, 36%, 0.4);
    --success-50: hsla(142, 76%, 36%, 0.5);
    --success-60: hsla(142, 76%, 36%, 0.6);
    --success-70: hsla(142, 76%, 36%, 0.7);
    --success-80: hsla(142, 76%, 36%, 0.8);
    --success-90: hsla(142, 76%, 36%, 0.9);
    --error: #dc2626;
    --error-5: hsla(0, 72%, 51%, 0.05);
    --error-10: hsla(0, 72%, 51%, 0.1);
    --error-20: hsla(0, 72%, 51%, 0.2);
    --error-30: hsla(0, 72%, 51%, 0.3);
    --error-40: hsla(0, 72%, 51%, 0.4);
    --error-50: hsla(0, 72%, 51%, 0.5);
    --error-60: hsla(0, 72%, 51%, 0.6);
    --error-70: hsla(0, 72%, 51%, 0.7);
    --error-80: hsla(0, 72%, 51%, 0.8);
    --error-90: hsla(0, 72%, 51%, 0.9);
    --space-4xs: clamp(0.33rem, calc(-0.03vw + 0.33rem), 0.31rem);
    --space-3xs: clamp(0.41rem, calc(0.04vw + 0.4rem), 0.44rem);
    --space-2xs: clamp(0.51rem, calc(0.16vw + 0.48rem), 0.62rem);
    --space-xs: clamp(0.64rem, calc(0.35vw + 0.57rem), 0.88rem);
    --space-s: clamp(0.8rem, calc(0.65vw + 0.67rem), 1.24rem);
    --space-m: clamp(1rem, calc(1.11vw + 0.78rem), 1.75rem);
    --space-l: clamp(1.25rem, calc(1.81vw + 0.89rem), 2.47rem);
    --space-xl: clamp(1.56rem, calc(2.87vw + 0.99rem), 3.5rem);
    --space-2xl: clamp(1.95rem, calc(4.44vw + 1.07rem), 4.95rem);
    --space-3xl: clamp(2.44rem, calc(6.75vw + 1.09rem), 7rem);
    --space-4xl: clamp(3.05rem, calc(10.13vw + 1.02rem), 9.89rem);
    --text-xs: clamp(0.69rem, calc(-0.19vw + 0.73rem), 0.56rem);
    --text-s: clamp(0.78rem, calc(-0.04vw + 0.79rem), 0.75rem);
    --text-m: clamp(0.88rem, calc(0.19vw + 0.84rem), 1rem);
    --text-l: clamp(0.98rem, calc(0.52vw + 0.88rem), 1.33rem);
    --text-xl: clamp(1.11rem, calc(0.99vw + 0.91rem), 1.78rem);
    --text-2xl: clamp(1.25rem, calc(1.66vw + 0.91rem), 2.37rem);
    --text-3xl: clamp(1.4rem, calc(2.6vw + 0.88rem), 3.16rem);
    --text-4xl: clamp(1.58rem, calc(3.9vw + 0.8rem), 4.21rem);
    --main-font: "GT Flexa", sans-serif;
    --serif-font: "ABC Arizona Serif",serif;
    --radius-xs: clamp(0.25rem, calc(0vw + 0.25rem), 0.25rem);
    --radius-s: clamp(0.38rem, calc(-0.19vw + 0.54rem), 0.5rem);
    --radius-m: clamp(0.63rem, calc(-0.19vw + 0.79rem), 0.75rem);
    --radius-l: clamp(1rem, calc(-0.37vw + 1.32rem), 1.25rem);
    --radius-xl: clamp(1.63rem, calc(-0.56vw + 2.11rem), 2rem);
    --radius-full: 999rem;
}
.btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3xs);
    padding: var(--space-xs) var(--space-s);
    background: var(--primary);
    color: #fff;
    font-size: var(--text-m);
    font-weight: 600;
    border-radius: var(--radius-full);
    border: 1px solid var(--primary-d-1);
    box-shadow: var(--shadow-m);
    transition: all 0.25s ease-in-out;
    outline: 0;
    cursor: pointer;
}
.btn:hover {
    background: var(--primary-l-1);
}
.btn.small {
    font-size: var(--text-s);
    padding: var(--space-xs) var(--space-s);
}
.btn.large {
    font-size: var(--text-l);
    padding: var(--space-s) var(--space-2xl);
    font-family: var(--serif-font);
    font-style: italic;
    font-weight: 400;
}
.btn:focus {
    outline: 4px solid var(--primary-l-3);
    outline-offset: 2px;
}
.btn.no-bg {
    color: var(--dark-80);
    background: transparent;
    box-shadow: none;
    border-color: transparent;
}
.btn.no-bg:hover {
    color: var(--dark);
}
.link {
    color: var(--primary);
    font-size: var(--text-m);
    font-weight: 600;
    letter-spacing: 0.05rem;
    box-shadow: 0 2px 0 var(--primary-20);
    -webkit-text-decoration: none;
    text-decoration: none;
    transition: all 0.15s ease-in-out;
}
.link:hover {
    box-shadow: 0 2px 0 var(--primary-40);
}
.link:focus {
    background: var(--primary-10);
}
.link.secondary {
    color: var(--secondary);
    border-color: var(--secondary-20);
}
.link.tertiary {
    color: var(--tertiary);
    border-color: var(--tertiary-20);
}
input {
    padding: var(--space-xs) 0;
    color: var(--text-title);
    font-size: var(--text-s);
    font-weight: 500;
    border: 0;
    border-bottom: 1px solid var(--border-primary);
    box-shadow: var(--shadow-xs);
    -webkit-appearance: none;
            appearance: none;
    outline: 0;
    height: 50px;
    padding-bottom: 2px;
}
input:focus {
    border-width: 3px;
    padding-bottom: 0;
}
input::placeholder {
    color: var(--text-body-l-2);
    text-transform: uppercase;
    font-size: var(--text-s);
}
input:disabled {
    cursor: not-allowed;
    opacity: .75;
    box-shadow: none;
    background: var(--dark-10);
}
input.hf-invalid {
    color: var(--error);
    border-color: var(--error);
}
input.hf-invalid::placeholder {
    color: var(--error);
}
select {
    padding: var(--space-xs) 0;
    color: var(--text-body-l-2);
    font-size: var(--text-s);
    font-weight: 500;
    border: 0;
    border-bottom: 1px solid var(--border-primary);
    box-shadow: var(--shadow-xs);
    outline: 0;
    text-transform: uppercase;
    padding-bottom: 2px;
    height: 50px;
}
select:focus {
    border-color: var(--primary);
    border-width: 3px;
    padding-bottom: 0;
}
select::placeholder {
    font-size: var(--text-s);
    text-transform: uppercase;
}
select:invalid {
    border-color: var(--error);
    color: var(--error);
}
select:disabled {
    cursor: not-allowed;
    opacity: .75;
    box-shadow: none;
    background: var(--dark-10);
}
select.hf-invalid {
    color: var(--error);
    border-color: var(--error);
}
select.hf-invalid::placeholder {
    color: var(--error);
}
input[type=checkbox] {
    -webkit-appearance: none;
            appearance: none;
    display: grid;
    place-content: center;
    border: 2px solid var(--dark-40);
    width: 1rem;
    height: 1rem;
    padding: 0;
    margin-top: 0;
    margin-left: 0;
}
input[type=checkbox]:checked:before {
    transform: scale(1);
    display: none;
    width: 1rem;
    height: 1rem;
}
input[type=checkbox]::before {
    content: "";
    width: 1em;
    height: 1em;
    box-shadow: inset 1em 1em #fff;
    transform: scale(0);
    transition: transform 0.2s;
}
input[type=checkbox]:hover {
    border-color: var(--primary);
}
input[type=checkbox]:focus {
    outline: 3px solid var(--primary-l-3);
    outline-offset: 2px;
}
input[type=checkbox]:checked {
    background: var(--primary);
    border-color: var(--primary);
}
input[type=radio] {
    -webkit-appearance: none;
            appearance: none;
    display: grid;
    place-content: center;
    border: 2px solid var(--dark-40);
    border-radius: var(--radius-full);
    width: 1rem;
    height: 1rem;
    padding: 0;
    margin-top: 0;
    margin-left: 0;
}
input[type=radio]:checked:before {
    transform: scale(1);
}
input[type=radio]::before {
    content: "";
    width: 1em;
    height: 1em;
    border-radius: 100%;
    transform: scale(0);
    transition: transform 0.2s;
    background: var(--primary);
}
input[type=radio]:hover {
    border-color: var(--primary);
}
input[type=radio]:focus {
    outline: 3px solid var(--primary-l-3);
    outline-offset: 2px;
}
input[type=radio]:checked {
    border-color: var(--primary);
}
H1 {
    font-size: var(--text-4xl);
    line-height: 1.1;
}
H2 {
    font-size: var(--text-3xl);
    line-height: 1.2;
}
H3 {
    font-size: var(--text-2xl);
    line-height: 1.3;
}
H4 {
    font-size: var(--text-xl);
    line-height: 1.3;
}
H5 {
    font-size: var(--text-l);
    line-height: 1.3;
}
H6 {
    font-size: var(--text-m);
    line-height: 1.4;
}