:root {
    --ffamily-body: "DM Sans", "Arial", sans-serif;
    --ffamily-title: "Special Gothic Expanded One", "Arial", sans-serif;
    --ffamily-subtitle: "Barlow", "Arial", sans-serif;
}

:root {
    --root-value: 14px;
    --root-unit: var(--root-value);
}

@media (min-width:768px) {
    :root {
        --root-value: 16px;
        --root-unit: var(--root-value);
    }
}

@media (min-width:992px) {
    :root {
        --root-value: 0.83333333vw;
        --root-unit: var(--root-value);
    }
}

@media (min-width:1920px) {
    :root {
        --root-value: 16px;
        --root-unit: var(--root-value);
    }
}

:root {
    --fs-body: var(--root-unit);
}

:root {
    --fs-sm-min: 11px;
    --fs-md-min: 12px;
    --fs-lg-min: 14px;
    --fs-sm-6: .6rem;
    --fs-sm-5: .75rem;
    --fs-sm-4: .8125rem;
    --fs-sm-3: .875rem;
    --fs-sm-2: .925rem;
    --fs-sm-1: 1rem;
    --fs-md: 1rem;
    --fs-lg-1: 1.125rem;
    --fs-lg-2: 1.25rem;
    --fs-lg-3: 1.5rem;
    --fs-lg-4: 1.75rem;
    --fs-lg-5: 2rem;
    --fs-lg-6: 2.25rem;
    --fs-lg-7: 2.5rem;
    --fs-lg-8: 3rem;
    --fs-lg-9: 3.5rem;
    --fs-lg-10: 4rem;
    --fs-lg-11: 4.5rem;
    --fs-lg-12: 5rem;
    --fs-lg-13: 5.5rem;
    --fs-lg-14: 6rem;
    --fs-lg-15: 6.5rem;
    --fs-lg-16: 7rem;
    --fs-lg-17: 7.5rem;
    --fs-lg-18: 8rem;
    --fs-lg-19: 8.5rem;
    --fs-lg-20: 9rem;
    --fs-lg-21: 9.5rem;
    --fs-lg-22: 10rem;
    --fs-lg-23: 10.5rem;
    --fs-lg-24: 11rem;
    --fs-lg-25: 11.5rem;
    --fs-lg-26: 12rem;
    --fs-lg-27: 12.5rem;
    --fs-lg-28: 13rem;
    --fs-lg-29: 13.5rem;
    --fs-lg-30: 14rem;
}

:root {
    --fs-t-type-title: var(--fs-lg-3);
    --fs-t-type-title-small: var(--fs-lg-2);
    --fs-t-type-subtitle: var(--fs-lg-2);
    --fs-t-type-kicker: var(--fs-sm-2);
    --fs-t-type-body: var(--fs-lg-2);
    --fs-t-type-body-large: var(--fs-lg-3);
    --fs-t-type-body-small: var(--fs-md);
    --fs-t-type-heading-hero: var(--fs-lg-5);
    --fs-t-type-heading-hero-small: var(--fs-lg-5);
    --lh-t-type-title: var(--lh-3);
    --lh-t-type-title-small: var(--lh-4);
    --lh-t-type-subtitle: var(--lh-4);
    --lh-t-type-kicker: var(--lh-4);
    --lh-t-type-body: var(--lh-6);
    --lh-t-type-body-large: var(--lh-6);
    --lh-t-type-body-small: var(--lh-6);
    --lh-t-type-heading-hero: var(--lh-4);
}

@media (min-width:992px) {
    :root {
        --fs-t-type-heading-hero: var(--fs-lg-7);
        --fs-t-type-heading-hero-small: var(--fs-lg-7);
        --fs-t-type-title: var(--fs-lg-4);
        --fs-t-type-subtitle: var(--fs-lg-3);
        --fs-t-type-body: var(--fs-lg-2);
        --lh-t-type-title: var(--lh-4);
        --lh-t-type-body: var(--lh-4);
        --lh-t-type-body-large: var(--lh-4);
        --lh-t-type-body-small: var(--lh-4);
    }
}

@media (min-width:1200px) {
    :root {
        --fs-t-type-body: var(--fs-lg-1);
    }
}

:root {
    --ls-1: .01em;
    --ls-2: .02em;
    --ls-3: .03em;
    --ls-4: .04em;
    --ls-5: .05em;
    --ls-6: .06em;
    --ls-7: .07em;
    --ls-8: .08em;
    --ls-9: .09em;
    --ls-10: .1em;
    --ls-11: .11em;
    --ls-12: .12em;
    --ls-13: .13em;
    --ls-14: .14em;
    --ls-15: .15em;
    --ls-16: .16em;
    --ls-17: .17em;
    --ls-18: .18em;
    --ls-19: .19em;
    --ls-20: .2em;
    --ls-21: .21em;
    --ls-22: .22em;
    --ls-23: .23em;
    --ls-24: .24em;
    --ls-25: .25em;
    --ls-26: .26em;
    --ls-27: .27em;
    --ls-28: .28em;
    --ls-29: .29em;
    --ls-30: .3em;
    --ls-n1: -.01em;
    --ls-n2: -.02em;
    --ls-n3: -.03em;
    --ls-n4: -.04em;
    --ls-n5: -.05em;
    --ls-n6: -.06em;
    --ls-n7: -.07em;
    --ls-n8: -.08em;
    --ls-n9: -.09em;
    --ls-n10: -.1em;
    --ls-n11: -.11em;
    --ls-n12: -.12em;
    --ls-n13: -.13em;
    --ls-n14: -.14em;
    --ls-n15: -.15em;
    --ls-n16: -.16em;
    --ls-n17: -.17em;
    --ls-n18: -.18em;
    --ls-n19: -.19em;
    --ls-n20: -.2em;
    --ls-n21: -.21em;
    --ls-n22: -.22em;
    --ls-n23: -.23em;
    --ls-n24: -.24em;
    --ls-n25: -.25em;
    --ls-n26: -.26em;
    --ls-n27: -.27em;
    --ls-n28: -.28em;
    --ls-n29: -.29em;
    --ls-n30: -.3em;
    --lh-1: 1em;
    --lh-2: 1.2em;
    --lh-3: 1.3em;
    --lh-4: 1.4em;
    --lh-5: 1.5em;
    --lh-6: 1.6em;
    --lh-7: 1.7em;
    --lh-8: 1.8em;
    --lh-9: 1.9em;
    --lh-10: 2em;
    --lh-11: 2.1em;
    --lh-12: 2.2em;
    --lh-13: 2.3em;
    --lh-14: 2.4em;
    --lh-15: 2.5em;
    --lh-16: 2.6em;
    --lh-17: 2.7em;
    --lh-18: 2.8em;
    --lh-19: 2.9em;
    --lh-20: 3em;
    --lh-21: 3.1em;
    --lh-22: 3.2em;
    --lh-23: 3.3em;
    --lh-24: 3.4em;
    --lh-25: 3.5em;
    --lh-26: 3.6em;
    --lh-27: 3.7em;
    --lh-28: 3.8em;
    --lh-29: 3.9em;
    --lh-30: 4em;
}

:root {
    --color-body: hsl(var(--brand-gray-h) 5% 15%);
    --gray-shade-2: hsl(var(--brand-gray-h) var(--brand-gray-s) 90%);
    --gray-shade-3: hsl(var(--brand-gray-h) var(--brand-gray-s) var(--brand-gray-l));
    --gray-shade-4: hsl(var(--brand-gray-h) var(--brand-gray-s) 80%);
    --gray-shade-5: hsl(var(--brand-gray-h) var(--brand-gray-s) 75%);
    --gray-shade-6: hsl(var(--brand-gray-h) var(--brand-gray-s) 70%);
    --gray-shade-7: hsl(var(--brand-gray-h) var(--brand-gray-s) 65%);
    --gray-shade-8: hsl(var(--brand-gray-h) var(--brand-gray-s) 60%);
    --gray-shade-9: hsl(var(--brand-gray-h) var(--brand-gray-s) 55%);
    --gray-shade-10: hsl(var(--brand-gray-h) var(--brand-gray-s) 50%);
    --gray-shade-11: hsl(var(--brand-gray-h) var(--brand-gray-s) 45%);
    --gray-shade-12: hsl(var(--brand-gray-h) var(--brand-gray-s) 40%);
    --gray-shade-13: hsl(var(--brand-gray-h) var(--brand-gray-s) 35%);
    --gray-shade-14: hsl(var(--brand-gray-h) var(--brand-gray-s) 30%);
    --gray-shade-15: hsl(var(--brand-gray-h) var(--brand-gray-s) 25%);
    --gray-shade-16: hsl(var(--brand-gray-h) var(--brand-gray-s) 20%);
    --gray-shade-17: hsl(var(--brand-gray-h) var(--brand-gray-s) 15%);
    --gray-shade-18: hsl(var(--brand-gray-h) var(--brand-gray-s) 10%);
    --gray-shade-19: hsl(var(--brand-gray-h) var(--brand-gray-s) 5%);
    --gray-shade-20: hsl(var(--brand-gray-h) var(--brand-gray-s) 0%);
    --brand-persian-blue: #052FC6;
    --brand-persian-blue-h: 227deg;
    --brand-persian-blue-s: 95%;
    --brand-persian-blue-l: 40%;
    --brand-prussian-blue: #0E1C3D;
    --brand-prussian-blue-h: 222deg;
    --brand-prussian-blue-s: 62%;
    --brand-prussian-blue-l: 14%;
    --brand-gray: #D8DFE2;
    --brand-gray-h: 198deg;
    --brand-gray-s: 14%;
    --brand-gray-l: 86%;
    --brand-dark: #000;
    --brand-light: #FFF;
    --brand-prussian-blue-secondary: hsl(var(--brand-prussian-blue-h) 100% 11%);
    --brand-prussian-blue-ternary: hsl(var(--brand-prussian-blue-h) 25% 24%);
}

:root {
    --global-border-radius: .5rem;
}

:root {
    --outline-width: 0.5px;
    --outline-style: dotted;
    --outline-color: rgb(255 255 255 / 10%);
}

:root {
    --lines-scale-factor: 16;
}

@media (min-width:768px) {
    :root {
        --lines-scale-factor: 16;
    }
}

:root {
    --line-2xs: calc(calc(calc(calc(.5 * 100) / var(--lines-scale-factor)) / 100) * var(--root-unit));
    --line-xs: calc(calc(calc(calc(1 * 100) / var(--lines-scale-factor)) / 100) * var(--root-unit));
    --line-sm: 1px;
    --line-md: calc(calc(calc(calc(6 * 100) / var(--lines-scale-factor)) / 100) * var(--root-unit));
    --line-lg: calc(calc(calc(calc(8 * 100) / var(--lines-scale-factor)) / 100) * var(--root-unit));
    --line-xl: calc(calc(calc(calc(10 * 100) / var(--lines-scale-factor)) / 100) * var(--root-unit));
    --line-2xl: calc(calc(calc(calc(12 * 100) / var(--lines-scale-factor)) / 100) * var(--root-unit));
}

:root {
    --spacing-x-section-xs: 1rem;
    --spacing-x-section-sm: 1.25rem;
    --spacing-x-section-md: 1.5rem;
    --spacing-x-section-lg: 1.75rem;
    --spacing-x-section-xl: 2rem;
    --spacing-y-section-xs: calc(.5 * 3.75rem);
    --spacing-y-section-sm: calc(.5 * 7.5rem);
    --spacing-y-section-md: calc(.5 * 9.75rem);
    --spacing-y-section-lg: calc(.5 * 15rem);
    --spacing-y-section-xl: calc(.5 * 17.25rem);
    --spacing-blocks-xs: calc(.75 * 2rem);
    --spacing-blocks-sm: calc(.75 * 3.25rem);
    --spacing-blocks-md: calc(.75 * 4.5rem);
    --spacing-blocks-lg: calc(.75 * 5.75rem);
    --spacing-blocks-xl: calc(.75 * 7rem);
}

@media (min-width:992px) {
    :root {
        --spacing-y-section-xs: 3.75rem;
        --spacing-y-section-sm: 7.5rem;
        --spacing-y-section-md: 9.75rem;
        --spacing-y-section-lg: 15rem;
        --spacing-y-section-xl: 17.25rem;
        --spacing-blocks-xs: calc(1 * 2rem);
        --spacing-blocks-sm: calc(1 * 3.25rem);
        --spacing-blocks-md: calc(1 * 4.5rem);
        --spacing-blocks-lg: calc(1 * 5.75rem);
        --spacing-blocks-xl: calc(1 * 7rem);
    }
}

:root {
    --column-base: 100%;
}

@media (min-width:520px) {
    :root {
        --column-base: 520px;
    }
}

@media (min-width:768px) {
    :root {
        --column-base: 640px;
    }
}

@media (min-width:992px) {
    :root {
        --column-base: 768px;
    }
}

:root {
    --column-2xs: var(--column-base);
    --column-xs: var(--column-base);
    --column-sm: var(--column-base);
    --column-md: var(--column-base);
    --column-lg: var(--column-base);
    --column-xl: var(--column-base);
    --column-2xl: var(--column-base);
}

@media (min-width:768px) {
    :root {
        --column-lg: 100%;
        --column-xl: 100%;
        --column-2xl: 100%;
    }
}

@media (min-width:992px) {
    :root {
        --column-2xs: 50rem;
        --column-xs: 62.5rem;
        --column-sm: 75rem;
        --column-md: 87.5rem;
        --column-lg: 100rem;
        --column-xl: 112.5rem;
        --column-2xl: 120rem;
    }
}

:root {
    --box-border-radius: var(--global-border-radius);
    --box-border-color: hsl(0deg 0% 100% / 25%);
    --box-border-width: 1px;
}

:root {
    --scale-img-on-hover: 1.05;
}

:root {
    --form-date-bg: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cdefs%3E%3Cstyle%3E.d%7Bfill:none;%7D.e%7Bfill:%23808080;%7D%3C/style%3E%3C/defs%3E%3Cg id='a'/%3E%3Cg id='b'%3E%3Cg id='c'%3E%3Cpath class='e' d='M192,32v32h128V32c0-17.67,14.3-32,32-32s32,14.33,32,32v32h48c26.5,0,48,21.49,48,48v48H32v-48c0-26.51,21.49-48,48-48h48V32c0-17.67,14.3-32,32-32s32,14.33,32,32ZM32,192H480V464c0,26.5-21.5,48-48,48H80c-26.51,0-48-21.5-48-48V192Zm64,112c0,8.8,7.16,16,16,16h32c8.8,0,16-7.2,16-16v-32c0-8.8-7.2-16-16-16h-32c-8.84,0-16,7.2-16,16v32Zm128,0c0,8.8,7.2,16,16,16h32c8.8,0,16-7.2,16-16v-32c0-8.8-7.2-16-16-16h-32c-8.8,0-16,7.2-16,16v32Zm144-48c-8.8,0-16,7.2-16,16v32c0,8.8,7.2,16,16,16h32c8.8,0,16-7.2,16-16v-32c0-8.8-7.2-16-16-16h-32ZM96,432c0,8.8,7.16,16,16,16h32c8.8,0,16-7.2,16-16v-32c0-8.8-7.2-16-16-16h-32c-8.84,0-16,7.2-16,16v32Zm144-48c-8.8,0-16,7.2-16,16v32c0,8.8,7.2,16,16,16h32c8.8,0,16-7.2,16-16v-32c0-8.8-7.2-16-16-16h-32Zm112,48c0,8.8,7.2,16,16,16h32c8.8,0,16-7.2,16-16v-32c0-8.8-7.2-16-16-16h-32c-8.8,0-16,7.2-16,16v32Z'/%3E%3Crect class='d' width='512' height='512'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    --form-day-bg: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cdefs%3E%3Cstyle%3E.d%7Bfill:none;%7D.e%7Bfill:%23808080;%7D%3C/style%3E%3C/defs%3E%3Cg id='a'/%3E%3Cg id='b'%3E%3Cg id='c'%3E%3Cpath class='e' d='M192,32v32h128V32c0-17.67,14.3-32,32-32s32,14.33,32,32v32h48c26.5,0,48,21.49,48,48v48H32v-48c0-26.51,21.49-48,48-48h48V32c0-17.67,14.3-32,32-32s32,14.33,32,32ZM32,192H480V464c0,26.5-21.5,48-48,48H80c-26.51,0-48-21.5-48-48V192Zm80,64c-8.84,0-16,7.2-16,16v96c0,8.8,7.16,16,16,16h96c8.8,0,16-7.2,16-16v-96c0-8.8-7.2-16-16-16H112Z'/%3E%3Crect class='d' width='512' height='512'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    --form-select-bg: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448.02 447.99'%3E%3Cdefs%3E%3Cstyle%3E.d%7Bfill:none;%7D.e%7Bfill:%23808080;%7D%3C/style%3E%3C/defs%3E%3Cg id='a'/%3E%3Cg id='b'%3E%3Cg id='c'%3E%3Cpath class='e' d='M223.99,352c-8.19,0-16.38-3.12-22.62-9.38L9.38,150.62c-12.5-12.5-12.5-32.75,0-45.25s32.75-12.5,45.25,0l169.37,169.42L393.39,105.4c12.5-12.5,32.75-12.5,45.25,0s12.5,32.75,0,45.25l-192,192c-6.25,6.25-14.45,9.35-22.65,9.35Z'/%3E%3Crect class='d' width='447.99' height='447.99'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    --form-time-bg: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cdefs%3E%3Cstyle%3E.d%7Bfill:%23808080;%7D%3C/style%3E%3C/defs%3E%3Cg id='a'/%3E%3Cg id='b'%3E%3Cg id='c'%3E%3Cpath class='d' d='M256,48.9c55.33,0,107.34,21.54,146.45,60.65s60.65,91.12,60.65,146.45-21.54,107.34-60.65,146.45-91.12,60.65-146.45,60.65-107.34-21.54-146.45-60.65-60.65-91.12-60.65-146.45,21.54-107.34,60.65-146.45,91.12-60.65,146.45-60.65m0-48.9C114.6,0,0,114.6,0,256s114.6,256,256,256,256-114.6,256-256S397.4,0,256,0h0Z'/%3E%3Cpath class='d' d='M232,266c0,8,4,15.5,10.7,19.1l96,64c11,8.2,25.9,5.2,32.4-5.8,8.2-11,5.2-25.9-5.8-33.3l-85.3-56.8v-123.2c0-13.3-10.7-24-24.9-24-12.4,0-24,10.7-24,24l.9,136Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    --form-week-bg: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cdefs%3E%3Cstyle%3E.d%7Bfill:none;%7D.e%7Bfill:%23808080;%7D%3C/style%3E%3C/defs%3E%3Cg id='a'/%3E%3Cg id='b'%3E%3Cg id='c'%3E%3Cpath class='e' d='M192,32v32h128V32c0-17.67,14.3-32,32-32s32,14.33,32,32v32h48c26.5,0,48,21.49,48,48v48H32v-48c0-26.51,21.49-48,48-48h48V32c0-17.67,14.3-32,32-32s32,14.33,32,32ZM32,192H480V464c0,26.5-21.5,48-48,48H80c-26.51,0-48-21.5-48-48V192Zm80,64c-8.84,0-16,7.2-16,16v64c0,8.8,7.16,16,16,16H400c8.8,0,16-7.2,16-16v-64c0-8.8-7.2-16-16-16H112Z'/%3E%3Crect class='d' width='512' height='512'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    --input-bg-color: hsl(0deg 0% 0% / 45%);
    --input-bg-color-hover: hsl(0deg 0% 0% / 100%);
    --input-text-color: #fff;
    --input-border-color: var(--box-border-color);
    --input-border-radius: var(--box-border-radius);
    --input-border-style: solid;
    --input-border-width: var(--box-border-width);
    --input-padding: .5em 1em;
    --input-padding-x: 1em;
    --input-padding-y: .5em;
    --input-transition: background-color 300ms ease;
}