@tailwind base;
@tailwind components;
@tailwind utilities;

@media (prefers-color-scheme: light) {
    :root {
        --w_color-bg-main: #E0DDCF; /* BEC5AD */
        --w_color-header-footer-text: #F1F0EA; /* A4B494 */
        --w_color-text-primary: #2D232E; /* 34252F */
        --w_color-header-footer: #474448; /* 3B5249 */
        --w_color-name-highlight: #b65e52; /* 8F4E45 */
        --w_color-header-footer-highlight: #D87D74; /* 8F4E45 */
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --w_color-bg-main: #1F1C21;
        --w_color-header-footer: #161418;
        --w_color-text-primary: #E6E2DC;
        --w_color-header-footer-text: #F1F0EA;
        --w_color-name-highlight: #C07A70;
        --w_color-header-footer-highlight: #D87D74; /* 8F4E45 */
    }
}

@media only screen and (max-width: 600px) {
    :root {
        --w_body-font-size: 0.9rem;
        --w_body-h1-font-size: 1rem;
        --w_body-h2-font-size: 1rem;
        --w_header-h1-font-size: 1.1rem;
        --w_header-h2-font-size: 1.1rem;
        --w_header-a-font-size: 1.05rem;
        --w_footer-font-size: 1rem;
        --w_footer-a-font-size: 1rem;
        --w_body-line-height: 1.45;
        --w_body-edge-padding: 1.5rem;
        --w_header_left_obj_width: 25vw;
        --w_header_right_obj_width: 70vw;
        --w_footer-header-edge-padding: 1.5rem;
        --w_footer-header-a-top-padding: 0.4rem;
        --w_footer-header-a-side-padding: 0.7rem;
        --w_footer-top-padding: 2rem;
        --w_header-max-height: auto;
        --w_header-min-height: 7vh;
        --w_sidebar-max-width: 15ch;
        --w_sidebar-line-height: 2;
        --w_page_min_width: 30ch;
        --w_page_max_width: 55ch;
        --w_page_top_padding: 2rem;
        --w_page_bottom_padding: 2rem;
        --w_desktop-ul-visibility: none;
        --w_mobile-ul-visibility: block;
    }
}

@media only screen and (min-width: 600px) {
    :root {
        --w_body-font-size: 1.1rem;
        --w_body-h1-font-size: 1.2rem;
        --w_body-h2-font-size: 1rem;
        --w_header-h1-font-size: 1.1rem;
        --w_header-h2-font-size: 1.1rem;
        --w_header-a-font-size: 1.05rem;
        --w_footer-font-size: 1rem;
        --w_footer-a-font-size: 1rem;
        --w_body-line-height: 1.45;
        --w_body-edge-padding: 1.5rem;
        --w_header_left_obj_width: auto;
        --w_header_right_obj_width: auto;
        --w_footer-header-edge-padding: 1rem;
        --w_footer-header-a-top-padding: 0.4rem;
        --w_footer-header-a-side-padding: 0.7rem;
        --w_footer-top-padding: 2rem;
        --w_header-max-height: auto;
        --w_header-min-height: 7vh;
        --w_sidebar-max-width: 25ch;
        --w_sidebar-line-height: 2;
        --w_page_min_width: 35ch;
        --w_page_max_width: 50ch;
        --w_page_top_padding: 2rem;
        --w_page_bottom_padding: 2rem;
        --w_desktop-ul-visibility: block;
        --w_mobile-ul-visibility: none;
    }
}

@media only screen and (min-width: 768px) {
    :root {
        --w_body-font-size: 1.1rem;
        --w_body-h1-font-size: 3rem;
        --w_body-h2-font-size: 2.5rem;
        --w_header-h1-font-size: 2.0rem;
        --w_header-h2-font-size: 1.5rem;
        --w_header-a-font-size: 1.05rem;
        --w_footer-font-size: 1rem;
        --w_footer-a-font-size: 1rem;
        --w_body-line-height: 1.45;
        --w_body-edge-padding: 1.5rem;
        --w_header_left_obj_width: auto;
        --w_header_right_obj_width: auto;
        --w_footer-header-edge-padding: 1rem;
        --w_footer-header-a-top-padding: 0.4rem;
        --w_footer-header-a-side-padding: 0.7rem;
        --w_footer-top-padding: 2rem;
        --w_header-max-height: auto;
        --w_header-min-height: 7vh;
        --w_sidebar-max-width: 25ch;
        --w_sidebar-line-height: 2;
        --w_page_min_width: 50ch;
        --w_page_max_width: 90ch;
        --w_page_top_padding: 2rem;
        --w_page_bottom_padding: 2rem;
        --w_desktop-ul-visibility: block;
        --w_mobile-ul-visibility: none;
    }
}

@media only screen and (min-width: 1200px) {
    :root {
        --w_body-font-size: 1.3rem;
        --w_body-h1-font-size: 3rem;
        --w_body-h2-font-size: 2.5rem;
        --w_header-h1-font-size: 2.0rem;
        --w_header-h2-font-size: 1.5rem;
        --w_header-a-font-size: 1.3rem;
        --w_footer-font-size: 1.1rem;
        --w_footer-a-font-size: 1.2rem;
        --w_body-line-height: 1.45;
        --w_body-edge-padding: 1.5rem;
        --w_header_left_obj_width: auto;
        --w_header_right_obj_width: auto;
        --w_footer-header-edge-padding: 1rem;
        --w_footer-header-a-top-padding: 0.4rem;
        --w_footer-header-a-side-padding: 0.7rem;
        --w_footer-top-padding: 2rem;
        --w_header-max-height: auto;
        --w_header-min-height: 7vh;
        --w_sidebar-max-width: 25ch;
        --w_sidebar-line-height: 2;
        --w_page_min_width: 50ch;
        --w_page_max_width: 90ch;
        --w_page_top_padding: 2rem;
        --w_page_bottom_padding: 2rem;
        --w_desktop-ul-visibility: block;
        --w_mobile-ul-visibility: none;
    }
}

html, .w_body {
    min-height: 100vh;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-color: var(--w_color-bg-main);
}

.w_body {
    font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'sans-serif';
    line-height: var(--w_body-line-height);
    min-height: 100vh;
    font-size: var(--w_body-font-size);
}

.w_body h1, .w_body h2, .w_body h3, .w_body p {
    color: var(--w_color-text-primary);
}

.w_body h2, h3, p {
    padding-left: var(--w_body-edge-padding);
    padding-right: var(--w_body-edge-padding);
}

.w_header h2 {
    font-size: var(--w_header-h2-font-size);
}

.w_header a {
    font-size: var(--w_header-a-font-size);
}

.w_footer {
    font-size: var(--w_footer-font-size);
}

.w_footer a {
    font-size: var(--w_footer-a-font-size);
}

.w_footer h1, footer h2, footer h3, footer p {
    color: var(--w_color-header-footer-text);
}

.w_header h1, .w_header h2, .w_header h3, .w_header p {
    color: var(--w_color-header-footer-text);
}

.w_container-main {
    min-height: 90vh;
    height: auto;
    display: flex;
    flex-direction: row;
}

.w_header_nav, .w_footer_nav {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    min-height: var(--w_header-min-height);
    max-height: var(--w_header-max-height);
    background-color: var(--w_color-header-footer);
}

.w_header-left-obj .w_header-right-obj {
    height: auto;
    width: var(--w_header_left_obj_width);
}

.w_header-right-obj {
    height: auto;
    width: var(--w_header_right_obj_width);
}

.w_footer-left-obj, .w_footer-right-obj {
    height: 100%;
    width: 100%;
}

.w_header-left-obj, .w_footer-left-obj {
    color: inherit;
    display: flex;
    flex-direction: column;
    align-items: start;
    padding-left: var(--w_footer-header-edge-padding);
}

.w_header-right-obj, .w_footer-right-obj {
    display: flex;
    flex-direction: column;
    align-items: end;
    vertical-align: center;
    padding-right: var(--w_footer-header-edge-padding);
}

.w_name-highlight {
    color: var(--w_color-name-highlight);
    letter-spacing: 0.03em;
    font-weight: bold;
}

.w_mainbody {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.w_page_text {
    min-width: var(--w_page_min_width);
    max-width: var(--w_page_max_width);
    padding-top: var(--w_page_top_padding);
    padding-bottom: var(--w_page_bottom_padding);
    align-items: center;
}

.w_header {
    position: sticky;
    top: 0;
    z-index: 10;
    color: var(--w_color-header-footer-text);
    text-align: left;
    min-height: var(--w_header-min-height);
    max-height: var(--w_header-max-height);
    background-color: var(--w_color-header-footer);
    width: 100vw;
    display: flex;
    flex-direction: row;
    vertical-align: center;
}

.w_header ul {
    margin: 0;
    padding: 0;
    list-style: none;
    vertical-align: center;
}

.w_header ul li {
    display: inline-block;
    vertical-align: center;
}

.w_header ul li a {
    display: block;
    padding: var(--w_footer-header-a-top-padding) var(--w_footer-header-a-side-padding);
    text-decoration: none;
    vertical-align: center;
}

.w_header ul li span {
    display: block;
    padding: var(--w_footer-header-a-top-padding) var(--w_footer-header-a-side-padding);
    text-decoration: none;
    vertical-align: center;
}

.w_header ul li a:hover {
    color: var(--w_color-header-footer-highlight);
}

.desktop_ul {
    display: var(--w_desktop-ul-visibility);
}

.mobile_ul {
    display: var(--w_mobile-ul-visibility);
}

.w_footer {
    background-color: var(--w_color-header-footer);
    color: var(--w_color-header-footer-text);
    padding: var(--w_footer-top-padding) 0;
    margin-top: 2rem;
    text-align: center;
    min-height: var(--w_header-min-height);
    max-height: var(--w_header-max-height);
}

.w_footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.w_footer li {
    display: inline-block;
}

.w_footer a {
    display: block;
    padding: var(--w_footer-header-a-top-padding) var(--w_footer-header-a-side-padding);
    text-decoration: none;
}

.w_footer ul li a &:hover {
    color: var(--w_color-header-footer-highlight);
}

.w_active_page {
    color: var(--w_color-header-footer-highlight);
}

.w_active_page &:hover {
    border-bottom: var(--w_color-header-footer-highlight) 2px solid;
}

.w_sidebar {
    background: var(--w_color-header-footer);
    color: var(--w_color-header-footer-text);
    width: var(--w_sidebar-max-width);
    height: 100%;
}

.w_sidebar h3 {
    text-align: center;
    margin-top: 0;
    padding: var(--w_footer-top-padding) var(--w_header-h2-font-size) 0 var(--w_header-h2-font-size);
    color: var(--w_color-header-footer-highlight);
}

.w_sidebar ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.w_sidebar li {
    text-decoration: none;
    padding: 0 var(--w_header-h2-font-size);
    line-height: var(--w_sidebar-line-height);
}