@import url('https://fonts.googleapis.com/css2?family=Afacad:ital,wght@0,400..700;1,400..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Mukta:wght@200;300;400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');

:root {
    /* Rounded border radii */
    --rounded-none: 0px;
    --rounded-xs: 6px;
    --rounded-sm: 12px;
    --rounded-md: 18px;
    --rounded-lg: 32px;
    --rounded-full: 100%;

    /* Border */
    --no-border: 0px;
    --border: 1.5px;

    /* Colors */
    --transparent: transparent;
    --white: #ffffff;

    --yellow: #eccb38;

    --red-100: hsl(15, 100%, 93%);
    --red-200: hsl(11, 97%, 86%);
    --red-600: hsl(9, 94%, 55%);

    --green-100: hsl(115, 59%, 87%);
    --green-200: hsl(111, 69%, 80%);
    --green-600: hsl(109, 45%, 36%);

    --orange-50: #fff9f1;
    --orange-100: #fff1dd;
    --orange-200: #fedcB7;
    --orange-300: #fcc791;
    --orange-400: #fbb16b;
    --orange-500: #f99c45;
    --orange-600: #f8871f;
    --orange-700: #e77517;
    --orange-800: #d5640e;
    --orange-900: #c45206;

    --jade-50: #d4ede7;
    --jade-100: #cae4df;
    --jade-200: hsl(170, 20%, 69%);
    --jade-300: #5faea0;
    --jade-400: #2a9380;
    --jade-500: #207464;
    --jade-600: #175448;
    --jade-700: #0d352b;
    --jade-800: #062b1f;
    --jade-900: #03150f;

    /* Font sizes */
    --text-xs: 11px;
    --text-sm: 13px;
    --text-md: 16px;
    --text-lg: 18px;
    --text-xl: 22px;
    --text-2xl: 30px;
    --text-3xl: 36px;
    --text-4xl: 56px;
    --text-5xl: 64px;

    /* Spacing */
    --space-0: 0px;
    --space-1: 8px;
    --space-2: 16px;
    --space-3: 24px;
    --space-4: 32px;
    --space-5: 40px;
    --space-6: 52px;
    --space-7: 64px;
    --space-8: 80px;
    --space-9: 96px;

    /* Block width */
    --block-width-xs: 90px;
    --block-width-sm: 270px;
    --block-width-md: 360px;
    --block-width-lg: 480px;
    --block-width-xl: 560px;

    /* Icon */
    --icon-dimensions: 60px;
    --icon-dimensions-sm: 50px;
    --icon-font: 44px;
    --icon-font-sm: 34px;

    /* Background */
    --background: var(--orange-50);

    /* Fonts */
    --font-normal: "Afacad", sans-serif;
    --font-stylized: "Noto Serif", serif;
}

/* Reset defaults */
* {
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-normal);
}

/* Text */
h1 {
    font-size: clamp(var(--text-3xl), 3vw + 24px, var(--text-4xl));
    font-weight: bold;
    color: var(--jade-700);
    font-family: var(--font-stylized);

    letter-spacing: -2px;
    line-height: 0.9;
}

h2 {
    font-size: var(--text-3xl);
    font-weight: bold;
    color: var(--jade-700);
    font-family: var(--font-stylized);

    line-height: 0.9;
}

h3 {
    font-size: var(--text-xl);
    font-weight: bold;
    color: var(--jade-700);
    font-family: var(--font-stylized);
}

h4 {
    font-size: var(--text-lg);
    font-weight: bold;
    color: var(--jade-700);
    font-family: var(--font-stylized);
}

p, span, blockquote {
    font-size: var(--text-md);
    color: var(--jade-600);
}

label {
    font-size: var(--text-md);
}

input, textarea, .toggle-btn {
    background-color: var(--orange-500);
    color: var(--white);

    border: solid var(--border) var(--orange-300);
    border-radius: var(--rounded-sm);
    
    padding: 8px 8px;
    width: 100%;
    max-width: var(--block-width-md);

    font-size: var(--text-md);
    font-family: var(--font-normal);
}

.toggle-btn.jade-light {
    border-color: var(--jade-700) !important;
    color: var(--jade-700);
    background-color: var(--jade-200);
}

.toggle-btn {
    width: fit-content;
}

.toggle-btn:hover {
    background-color: var(--orange-600);
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active  {
    -webkit-box-shadow: 0 0 0 30px var(--orange-500) inset !important;
    -webkit-text-fill-color: var(--white) !important;
}

input::placeholder {
    color: var(--orange-300);
}

/* Standard way */
input:autofill {
    background-color: var(--orange-500) !important;
    color: var(--white);
}

.text-xs { font-size: var(--text-xs); }
.text-sm { font-size: var(--text-sm); }
.text-md { font-size: var(--text-md); }
.text-lg { font-size: var(--text-lg); }
.text-xl { font-size: var(--text-xl); }
.text-2xl { font-size: var(--text-2xl); }
.text-3xl { font-size: var(--text-3xl); }
.text-4xl { font-size: var(--text-4xl); }

blockquote {
    line-height: 1;
}

.wrap-balance {
    text-wrap: balance;
}

.hidden {
    display: none !important;
}

/* Font */ 

.font-light { font-weight: light; }
.font-normal { font-weight: normal; }
.font-bold { font-weight: bold; }

/* Text colors */

.color-white { color: var(--white); }

.color-yellow { color: var(--yellow); }

.color-orange-50 { color: var(--orange-50); }
.color-orange-100 { color: var(--orange-100); }
.color-orange-200 { color: var(--orange-200); }
.color-orange-300, .color-orange-light { color: var(--orange-300); }
.color-orange-400 { color: var(--orange-400); }
.color-orange-500 { color: var(--orange-500); }
.color-orange-600, .color-orange { color: var(--orange-600); }
.color-orange-700 { color: var(--orange-700); }
.color-orange-800 { color: var(--orange-800); }
.color-orange-900 { color: var(--orange-900); }

.color-jade-100 { color: var(--jade-100); }
.color-jade-200 { color: var(--jade-200); }
.color-jade-300 { color: var(--jade-300); }
.color-jade-400 { color: var(--jade-400); }
.color-jade-500, .color-jade-light { color: var(--jade-500); }
.color-jade-600 { color: var(--jade-600); }
.color-jade-700 { color: var(--jade-700); }
.color-jade-800, .color-jade { color: var(--jade-800); }
.color-jade-900 { color: var(--jade-900); }

/* Buttons */

a.link {
    color: var(--jade-400);
    /* font-weight: bold; */
    text-decoration: underline;
}

a.link.white {
    color: var(--white);
}

button, button.orange, a.button, a.button.orange {
    cursor: pointer;

    background-color: var(--orange-600);
    color: var(--white);
    font-size: var(--text-md);
    font-weight: bold;
    font-family: var(--font-normal);
    border-radius: var(--rounded-sm);
    border-width: var(--no-border);
    padding: var(--space-1) var(--space-2);
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: var(--space-1);
    width: fit-content;
    border-width: var(--border);
    border-color: transparent;
    text-wrap: nowrap;
}
button:hover, button.orange:hover, a.button:hover, a.button.orange:hover { background-color: var(--orange-700); }
button:active, button.orange:active, a.button:active, a.button.orange:active { background-color: var(--orange-800); }
button:disabled, a.button:disabled { cursor: not-allowed; }
button.loading:disabled, a.button.loading:disabled { cursor: progress; }



button.large, a.button.large {
    padding: var(--space-2) var(--space-3);
    
    font-size: var(--text-lg);
    font-weight: 600;
    text-wrap: balance;
    letter-spacing: 0.1px;
    line-height: 0.9;
    /* text-transform: uppercase; */
}

button.jade, a.button.jade {
    background-color: var(--jade-600);
    color: var(--white);
}
button.jade:hover, a.button.jade:hover { background-color: var(--jade-700); }
button.jade:active, a.button.jade:active { background-color: var(--jade-600); }
button.jade:disabled, a.button.jade:disabled { background-color: var(--jade-300); }

button.jade-light, a.button.jade-light {
    background-color: var(--jade-50);
    color: var(--jade-800);
    border-color: var(--jade-700);
    border-width: var(--border);
    border-style: solid;
}
button.jade-light:hover, a.button.jade-light:hover { background-color: var(--jade-200); }
button.jade-light:active, a.button.jade-light:active { background-color: var(--jade-300); }

button.white, a.button.white {
    background-color: var(--white);
    color: var(--jade-700);
}
button.white:hover, a.button.white:hover { background-color: var(--orange-100); }
button.white:active, a.button.white:active { background-color: var(--orange-200); }
button.white:disabled, a.button.white:disabled { background-color: var(--orange-50); }

button.orange-light, a.button.orange-light {
    background-color: var(--orange-100);
    color: var(--orange-600);
    border-color: var(--orange-600);
    border-width: var(--border);
    border-style: solid;
}
button.orange-light:hover, a.button.orange-light:hover { background-color: var(--orange-200); }
button.orange-light:active, a.button.orange-light:active { background-color: var(--orange-600); color: var(--white); }

button.red-light, a.button.red-light {
    background-color: var(--red-100);
    color: var(--red-600);
    border-color: var(--red-600);
    border-width: var(--border);
    border-style: solid;
}
button.red-light:hover, a.button.red-light:hover { background-color: var(--red-200); }
button.red-light:active, a.button.red-light:active { background-color: var(--red-600); color: var(--white); }

button.transparent, a.button.transparent {
    background-color: var(--transparent);
    color: var(--orange-300);
}
button.transparent:hover, a.button.transparent:hover { color: var(--orange-600); text-decoration: underline; }
button.transparent:active, a.button.transparent:hover { color: var(--orange-700); text-decoration: underline; }

/* Links */

a {
    text-decoration: none;
}

a.orange-light, button.a.orange-light {
    color: var(--orange-600);
    font-weight: bold;
    background-color: var(--transparent);
    border-width: var(--no-border);
}

a.orange-light:hover:not(.button), button.a.orange-light:hover {
    text-decoration: underline;
}

a.jade {
    color: var(--jade-600);
    font-weight: bold;
    background-color: var(--transparent);
    border-width: var(--no-border);
}

a.jade:hover:not(.button) {
    text-decoration: underline;
}

/* Icons */

.icon:not(.blob), .icon.jade:not(.blob) {
    background-color: var(--jade-400);
    border-radius: var(--rounded-full);
}

.icon, .icon.jade {
    color: var(--white);
    padding: var(--space-1);
    width: var(--icon-dimensions);
    height: var(--icon-dimensions);
}

.icon.small {
    width: var(--icon-dimensions-sm);
    height: var(--icon-dimensions-sm);
    font-size: var(--icon-font-sm);
}

.icon.orange {
    background-color: var(--orange-500);
}

/* Images */

img.block {
    border-radius: var(--rounded-lg);
    border-width: var(--no-border);
}

/* Blocks */

.info-block, .info-block.orange {
    padding: var(--space-4);
    border-radius: var(--rounded-md);
    border-width: var(--border);
    border-style: solid;

    min-width: var(--block-width-xs);
    width: min-content;

    border-color: var(--orange-300);
    background-color: var(--orange-100);
}

.info-block.jade {
    border-color: var(--jade-400);
    background-color: var(--jade-50);
}

.info-block.jade-dark {
    border-color: var(--jade-600);
    background-color: var(--jade-600);
    color: var(--white);
}

.info-block.orange-dark {
    border-width: var(--no-border);
    
    background-color: var(--orange-600);
}

.info-block.space-sm {
    padding: var(--space-2);
}

/* Indent */
.indent {
    margin-left: var(--space-3);
}

.indent-lg {
    margin-left: var(--space-5);
}

/* Backgrounds */

.bg {
    background-color: var(--background);
}

.bg-white {
    background-color: var(--white);
}

.bg-orange-light {
    background-color: var(--orange-50);
}

.bg-orange-100 {
    background-color: var(--orange-100);
}

.bg-orange-200 {
    background-color: var(--orange-200);
}

.bg-orange-300 {
    background-color: var(--orange-300);
}

.bg-orange, .bg-orange-600 {
    background-color: var(--orange-600);
}

.bg-jade-light {
    background-color: var(--jade-50);
}

.bg-jade, .bg-jade-800 {
    background-color: var(--jade-800);
}

.bg-transparent {
    background-color: transparent;
}

/* Position */

.relative {
    position: relative;
}

/* Animations */

.pop {
    animation: pop 1s ease;
}

@keyframes pop {
    0% {
        transform: scale(1);
    }

    10% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
    }
}

.fade-out {
    animation: fadeOut 2s ease 5s forwards;
}

.fade-out-modal {
    animation: fadeOut 1s ease 5s forwards;
}

@keyframes fadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.blob {
    background-size: contain;
    background-repeat: no-repeat;
    background-position-x: center;
    background-position-y: center;
}

.blob-1 { background-image: url("../svg/blob-1.svg"); }
.blob-2 { background-image: url("../svg/blob-2.svg"); }
.blob-3 { background-image: url("../svg/blob-3.svg"); }
.blob-4 { background-image: url("../svg/blob-4.svg"); }
.blob-5 { background-image: url("../svg/blob-5.svg"); }
.blob-6 { background-image: url("../svg/blob-6.svg"); }
.blob-7 { background-image: url("../svg/blob-7.svg"); }
.blob-8 { background-image: url("../svg/blob-8.svg"); }
.blob-9 { background-image: url("../svg/blob-9.svg"); }
.blob-10 { background-image: url("../svg/blob-10.svg"); }
.blob-11 { background-image: url("../svg/blob-11.svg"); }
.blob-12 { background-image: url("../svg/blob-12.svg"); }

.turn-180 {
    transform: rotate(180deg);
}