/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 2. Remove default margin */
*:not(dialog) {
  margin: 0;
}

/* 3. Enable keyword animations */
@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}

body {
  -webkit-font-smoothing: antialiased;
}

/* 6. Improve media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

/* 7. Inherit fonts for form controls */
input, button, textarea, select {
  font-family: inherit;
}

/* 8. Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6 { 
  font-family: "Poppins-Bold";
}

html { 
  scroll-behavior: smooth;
  scrollbar-color: var(--black) var(--white);
}

/*
  10. Create a root stacking context
*/
#root, #__next {
  isolation: isolate;
}

@font-face {
    font-family: "Poppins-Bold";  
    src: url("../fonts/Poppins-Bold.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
}

@font-face {
    font-family: "NotoSans-Regular";  
    src: url("../fonts/NotoSans-Regular.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
}

/* Variables */

:root { 
    /* Font sizing */
    --font-size-xs: 0.5rem; 
    --font-size-s: 0.75rem;
    --font-size-m: 1rem; 
    --font-size-l: 1.25rem; 
    --font-size-xl: 1.5rem; 
    --font-size-xxl: 1.75rem; 
    --font-size-xxxl: 2rem;  

    /* Spacing */
    --spacing-xs: 0.5rem; 
    --spacing-s: 0.75rem;
    --spacing-m: 1rem; 
    --spacing-l: 1.25rem; 
    --spacing-xl: 1.5rem; 
    --spacing-xxl: 1.75rem; 
    --spacing-xxxl: 2rem;  

    /* colors */
    --white: #fcfcfc; 
    --black: #030116; 
    --skyblue: #87ceeb; 
}

body { 
    font-family: "NotoSans-Regular", sans-serif;
    color: var(--black);
    background-color: var(--white);
}

.navbar { 
  display: flex;
  flex-direction: column;
  align-items: center;
}

.navbar__logo-icon { 
  width: 40px;
}

.navbar__logo { 
  display: flex;
  text-decoration: none;
  color: var(--black);
  align-items: center;
  gap: var(--spacing-xs); 
}

.navbar__logo-text { 
  font-size: var(--font-size-xxl);
}

.navbar__links { 
  text-align: center;
  list-style-type: none;
  padding: 0;
  margin: var(--spacing-s) 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.navbar__links a { 
  text-decoration: none;
  color: var(--black); 
  font-size: var(--font-size-m);
}

.navbar__links a:active { 
    text-decoration: underline;
  }



  .scroll-up-button-container a { 
    color: var(--black);
    text-decoration: none;
    font-size: var(--font-size-xxl);
    position: fixed;
    right: 5%;
    bottom: 5%;
    border-radius: 10px;
    border: 2px solid var(--black);
    padding: var(--spacing-m); 
  }

  .sidebar { 
    display: none;
  }

  .content__cards-grid { 
    display: grid;
    grid-template-columns: minmax(200px, 300px);
    place-content: center; 
    grid-gap: 2em;
    padding: 1rem;
  }

  .card { 
    display: flex;
    flex-direction: column;
    gap: var(--spacing-s);
  }

  .card img { 
    object-fit: contain;
    height: 100%;
    width: 100%;
  }

  .section__title { 
    padding: var(--spacing-xxxl) var(--spacing-m);
    font-size: var(--font-size-xxxl);
  }

  .card__title { 
    font-size: var(--font-size-l);
  }

  .card__description { 
    font-size: calc(var(--font-size-m) - 0.1rem);
    line-height: 1.5;
  }

  .card__link { 
    text-decoration: none;
    color: black;
    padding: var(--spacing-xs)   var(--spacing-s);
    border: 1px solid var(--black);
    width: fit-content;
    border-radius: 4px;
    transition: 0.2s all cubic-bezier(0.455, 0.03, 0.515, 0.955);
  }

  .card__link:hover { 
    background-color: var(--black);
    color: var(--white);
  }

  .links-container { 
    display: flex;
    gap: var(--spacing-m);
  }


/* ========== Media queiries ========== */

/* Tablet */
@media (min-width: 750px) { 
  .navbar { 
    justify-content: space-between;
    }

  .navbar__logo-container { 
      padding: var(--spacing-xs) 0.55rem;
  }

  .navbar__links { 
    flex-direction: row;
    padding: var(--spacing-xs);
    border: 2px solid var(--black); 
    border-radius: 5px;
    cursor: pointer; 
  }

  .navbar__links a { 
    padding: var(--spacing-xs);
    transition: 0.1s all ease;
  }

  .navbar__links a:active { 
    background-color: var(--black);
    color: var(--white);
    text-decoration: none;
  }

  .content__cards-grid { 
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px , 200px));
    grid-gap: var(--spacing-xxxl);
  }
}

/* Desktop */

@media (min-width: 950px) { 
  .navbar { 
    display: none;
  }

  .sidebar__logo-icon { 
    width: 40px;
  }

  .sidebar__logo{ 
    display: flex;
    text-decoration: none;
    color: var(--black);
    align-items: center;
    gap: var(--spacing-xs); 
  }

  .sidebar__logo-text { 
    font-size: var(--font-size-xxl);
  }

  .sidebar__links { 
    list-style-type: none;
    padding: 0;
    margin-top: 2em;
    display: flex;
    flex-direction: column;
    gap: 2em;
  }

  .sidebar__links a { 
    text-decoration: none;
    color: var(--black);
    font-size: var(--font-size-m);
    position: relative;
  }

  .sidebar__links a::after { 
    position: absolute;
    content: "";
    bottom: 1px;
    left: 0;
    height: 2px;
    width: 100%;
    scale: 0;
    transform-origin: left;
    background: var(--black);
    transition: 0.3s all cubic-bezier(0.455, 0.03, 0.515, 0.955);
  }

  .sidebar__links a:hover::after { 
    scale: 1;
  }

  .main-content { 
    display: grid;
    grid-template-columns: 320px 1fr;
    max-width: 1200px;
    margin: 0 auto; 
    grid-template-areas: 
    "sidebar page-content"
    "sidebar page-content"
    "footer  footer";
  }

  footer { 
    grid-area: footer;
  }

  .sidebar { 
    display: block;
    grid-area: sidebar;
    position: sticky;
    top: 0;
    padding-top: 4em;
    height: 100vh;
    padding-left: 1em;
  }

  .page-content { 
    grid-area: page-content;
    margin-top: 10%;
  }

  .content__cards-grid { 
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px , auto));
    grid-gap: 2em;
  }

}






