/* =============================================================
   main.css — Site-wide styles
   Layout, header, footer, nav, typography, CSS custom properties,
   accessibility (skip-link, focus rings), SPA page transitions.
   Loaded on EVERY page via _includes/base.njk.
   ============================================================= */

:root{
   --font-light: #000000;
   --font-dark: #ffffff;
   --bg-light: #ffffff;
   --bg-dark: #000000;
   --font-size-xsm: 1.2rem;
   --font-size-sm: 1.4rem;
   --font-size-md: 1.6rem;
   --font-size-lg: 2.0rem;
   --font-size-xl: 2.5rem;
   --font-size-xxl: 3.2rem;
   --gap: 2rem;
   --margin-sm: 2rem;
   --margin-md: 3rem;
   --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
   --header-bg: #ffffff;
   --header-border: #000000;
   --footer-text: #000000;
   --link-color: #000000;
   --color-primary-light: #000000;
   --color-primary-dark: #ffff00;
   --color-border-light: #000000;
   --color-text-muted: #000000;
}



/* Skip navigation link for accessibility */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--link-color);
    color: white;
    padding: 8px 16px;
    text-decoration: none;
    z-index: 1000;
    font-size: var(--font-size-xsm);
    font-weight: bold;
}

.skip-link:focus {
    top: 0;
}

/* base styles */
*{
   box-sizing: border-box;
   padding: 0;
   margin: 0;
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid var(--link-color);
    outline-offset: 2px;
}

html{
   font-size: 62.5%;
   scroll-behavior: smooth;
}

body {
   font-family: var(--font-family);
   font-size: var(--font-size-md);
   background-color: var(--bg-light);
   color: var(--font-light);
   line-height: 1.6;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   overflow-x: hidden;
   margin: auto;
   max-width: 980px;
   display:flex;
   flex-direction:column;
   justify-content:center;
}

h1 {
    font-size: var(--font-size-xxl);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0 0 2rem;
}

h2 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.25;
    margin: 3rem 0 1rem;
}

h3 {
    font-size: var(--font-size-lg);
    font-weight: 600;
    line-height: 1.3;
    margin: 2rem 0 0.75rem;
}

p {
    margin: 0 0 1.25em;
}

section {
    display: block;
    margin-bottom: 6rem;
}

/* custom styles */

.ds-header{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-block: 3rem;
    padding-bottom: 4rem;
}

ul {
    padding-left: 0;
    padding-inline-start: 0;
}

.menu{
    text-transform: uppercase;
}

.nav-links{
    list-style-type: none;
    display: flex;
    padding-left: 0;
    gap: 1rem;
}

.logo-header {
    width: 8rem;
    height: 8rem;
    display: block;
}


.footer{
    color: #000000;
    margin: 5rem 0rem;
}




img.refresh-icon{
    height: 1.5rem;
    width: 1.5rem;
    background: url("/src/img/refresh.svg");
    vertical-align: -0.25rem;
    cursor: pointer;
    transition: transform 0.4s ease;
}

img.refresh-icon:hover {
    transform: rotate(180deg);
}

/* media queries */
@media screen and (min-width: 1024px) {
    body{
        padding: 5rem;
    }

}

@media screen and (max-width: 768px) {
    body{
        padding: 1rem;
    }
    .ds-header{
        padding-right: 1rem;
    }
}

@media screen and (min-width: 767px) and (max-width: 1023px) {
    body{
        padding: 2rem;
    }
}

/* ── Page transitions (SPA-style navigation) ───────────── */
#page-content {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
}

/* Exit states — current page slides out */
.page-exit-left {
    transform: translateX(-40px) !important;
    opacity: 0 !important;
}

.page-exit-right {
    transform: translateX(40px) !important;
    opacity: 0 !important;
}

/* Enter states — new page starts off-screen, then slides in */
.page-enter-from-right {
    transform: translateX(60px);
    opacity: 0;
}

.page-enter-from-left {
    transform: translateX(-60px);
    opacity: 0;
}