/* TODO: Might be good to try Tailwind and Sass to make my css more maintable */

/* Colors I like:
    Dark Gray: #363636
    Steel Blue: #4682B4
    Faded Purple: #7D65A8
    Dark Teal: #008080
    Dusty Pink: #A56D74
    Muted Green: #678C67
    Cooled Turquoise: #33ADB5
    Ash Gray: #A9A9A9
    Deep Plum: #663366
    Pale Yellow: #fff3b0
		Some Blue I made up: #5AADF5
*/
html {
    /* todo: add an overscroll easteregg */
    overscroll-behavior: none;
}

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

body {
    font-family: 'Fira Sans',Helvetica,Arial,sans-serif;
    font-size: 18px;
    line-height: 1.5;
}

h1,h2,h3,h4,h5 {
    font-family: 'Sixtyfour Variable';
    font-variation-settings: "BLED" var(--bleed), "SCAN" var(--scan);
    --scan: 3;
    --bleed: 100;
    /* --light-blue: #68a4ff; */
    /* --dark-blue: #083ccf; */
    text-shadow: var(--shadow-color) 0px 0px 0.66em;
}

/* Can't say I understand everythign here */
/* https://css-tricks.com/advanced-css-animation-using-cubic-bezier/ */
.blink_me {
    animation: blinker 3s cubic-bezier(1,13,0,-3) infinite;
}

@keyframes blinker {
    50% {
        opacity: 0;
    }
}

h1 {
    font-size: 5rem;
    font-weight: 500;
    color: #FFD34E;
    --shadow-color: #FFD34E
}

h2 {
    font-size: 2.3rem;
    font-weight: 450;
    color:  #aaFFFF;
    --shadow-color: #aaFFFF;
    /* font-family: 'Schema';     */
}

h3 {
    font-size: 1.8rem;
    font-weight: 400;
    color: #E6BE8A;
    --shadow-color: #E6BE8A;
}

h4 {
    font-size: 1.6rem;
    font-weight: 400;
    color: #66aaE1;
    --shadow-color: #66aaE1;
}

h5 {
    margin-bottom: 1.4em;
    font-size: 1em;
    color: #708090;
    --shadow-color: #708090;
}

/* Site pages */
.container {
    margin-left: auto;
    margin-right: auto;
    max-width: 80rem;
}

.site-post-title {
    text-align: center;
}

.site-post-content {
    max-width: 55rem;
}

.site-post__meta {
    text-align: center;
}

.site-post__meta {
    /* margin: 2rem; */
    font-size: 1.4rem;
    color: #A56D74;
}

.site-post-content div {
    margin-bottom: 1em;
}

.monospace {
    font-family: "JetBrains Mono", monospace;
}

.font__small {
    font-size: 0.8em;
}

.font__med-large {
    font-size: 1.2em;
}

/* TODO: probably use a class style for this, if I want to use BEM, I need better control over
 what org exports calls transcoding. I want enough control to specify the class on the table itself */
table {
    background-color: #232635;
}

.org-src-container pre {
    font-size: 1.3rem;
}

/* Taken from systemcrafters */
pre,
code {
  font-family: "JetBrains Mono", monospace;
  font-weight: 200;
  font-size: 1.3rem;
}

pre {
    background-color: #232635;
    padding: 1em;
    overflow-x: scroll;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

code {
    color: #e9e9e9;
    background-color: #232635;
    border: 1px solid;
    border-radius: 0.2rem;
    padding-left: 0.25em;
    padding-right: 0.25em;
    margin-left: 0.1em;
    margin-right: 0.1em;
}

.underline {
    text-decoration: underline;
}

figure {
    overflow-x: scroll;
}

code { white-space: nowrap }

section {
    padding: 2em;

    /* padding-bottom: 2em; */
    /* margin-bottom: 2em; */
}

div {
    font-size: 1em;
}

p {
    font-size: 1.375rem;
    margin-top: 1em;
    margin-bottom: 1em;
}

.center-text {
    text-align: center;
}

/* ul { */
/*     list-style: none; */
/* } */

.hero {
    background-color: black;
    background-size: cover;
    background-repeat: no-repeat;
    color: white;
    text-align: center;
    background-image: url("./assets/rawpixel NASA hubble ufo galaxy.jpg");

    background-position: center;
    min-height: 80vh;
    /* padding: 2em; */
    display: flex;
    flex-direction: column;
}

.hero-words {
    margin-bottom: 10%;
    filter: drop-shadow(0px 0px 5px #000);
}

a {
    /* remove anchor tag underlines */
    text-decoration: none;
    /* margin-top: auto; */
    /* align-self: flex-end; */
    color: #E78BFF;
}

header {
    font-family: 'SixtyFour';
    color: hsl(210,8%,60%);
    background-color: hsl(210,8%,15%);
	  padding: 2em;
}

#main-menu {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 9fr;
    gap: 2rem;
}

/* header nav a { */
/*     color: #fff; */
/* } */

.header-nav a:hover {
    /* background: rgb(255,255,255, 0.3); */
    /* transition: background-color 0.3s; */
    text-decoration: underline;
}

.header-nav a:active {
    color: #528995;
    text-decoration: underline;
}

.header-nav a > span {
    color: red;
}

.drop-down-indicator {
    width: 1em;
    height: 1em;
}

.cta {
    max-width: 90%;
    min-height: 2.5em;
    padding: 0.5em 1em;

    background: orange;
    color: black;

    border-radius: 2em;
    /* to center the text inside the anchor tag, must match height, */
    /* not entirely sure why it looks centered now without specifying line height */
    /* line-height: 2.5em;  */
    font-size: 1.5em;

    appearance: button;
    margin-top: auto;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 20%;
}

.cta:hover {
    background-color: orangered;
    transition: background-color 0.3s;
}

@media (max-width: 640px) {
    h1 {
        font-size: 3rem;
    }

    h2 {
        font-size: 1.5rem;
    }

    h3 {
        font-size: 1.3rem;
    }

    h4 {
        font-size: 1.15rem;
    }

    h5 {
        font-size: 1.1rem;
    }

    .hero .cta {
        font-size: 1em;
    }
}

.background-white {
    background-color: white;
}

.gradient-background-dark-blue {
    background: linear-gradient(60deg, rgb(28, 43, 247) 10%, rgb(6, 28, 89) 90%);
}

.gradient-background-pink-maroon {
    background: linear-gradient(60deg, rgb(247, 43, 247) 10%, rgb(89, 28, 89) 90%);
}

.grid-container {
    display: grid;
    gap: 1em;
}

.grid-container--fit {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.testimonial-grid {
    /* https://css-tricks.com/an-auto-filling-css-grid-with-max-columns/ */
    --grid-layout-gap: 1em;
    --grid-column-count: 3;
    --grid-item--min-width: 280px;

    /**
     * Calculated values.
     */
    --gap-count: calc(var(--grid-column-count) - 1);
    --total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));
    --grid-item--max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));

    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
    grid-gap: var(--grid-layout-gap);
}

.grid-element {
    background-color: deepPink;
    padding: 20px;
    color: #fff;
    border: 1px solid #fff;
}

@media screen and (max-width: 640px) {
    /* nav.header-nav still maintains the background
          since it has a min-width of 42. This just collapses the content.
    Also had to use more selectors for the ul since
    needed higher css specificity to target the display property
   */
    #main-menu  {
        /* visibility: hidden; */
        /* display: none; */
 	      grid-template-columns: repeat(auto-fit, minmax(22vw, 1fr));
    }

    #main-menu submenu {
        /* visibility: hidden; */
        /* display: none; */
    }

    .header-nav #hamburger-menu {
        display: block;
    }

    .drawer {
        width: 100%;
    }
}

#hamburger-menu {
    display: none;
    color: white;
    /* for right aligning */
    margin-left: auto;
    font-size: 2.5em;
}

.hamburger {
    cursor: pointer;
}

#hamburger-menu .checkbox {
    /* for debugging */
    /* opacity: 1; */
    opacity: 0;
    /* can create a horizontal scroll bar  */
    position: absolute;
}

#hamburger-menu .checkbox:checked ~ .drawer {
    transform: translateX(0%);
}

#hamburger-menu .drawer {
    position: fixed;
    right: 0;
    top: 0;
    height: 100%;
    width: max-content;
    max-width: 100%;
    padding: 22px;
    background: black;
    transform: translateX(100%);
    transition: transform 0.5s ease;
}

#hamburger-menu label {
    position: relative;
    z-index: 10;
}

.hamburger .slice {
    display: block;
    width: 100%;
    height: 2px;
    background-color: white;
    transition: all 0.5s ease;
}

.horizontal-center-text {
    text-align: center;
}

.header-logo {
    left: 0;
    top: 0;
    position: absolute;
}

/* .header-nav { */
/*     min-height: 42px; */
/*     padding-left: 120px; */
/*     background-color: black; */
/*     border: none; */
/*     width: 100%; */
/*     /\* border-bottom: 1px solid rgb(255,255,255,0);         *\/ */
/* } */

/* .header-nav:hover { */
/*     /\* border-bottom: 1px solid rgb(255,255,255,0.3);         *\/ */
/* } */

/* .header-nav > ul { */
/*     gap: 0; */
/* } */

/*  this is so odd that I make the anchor tag a flex parent, but I guess it's the text inside that gets centered */
/* .header-nav #main-menu a { */
/*     /\* flex-grow: 1, flex-shrink: 1, flex-basis: auto *\/ */
/*     flex: auto; */
/*     text-align: center; */

/*     display: flex; */
/*     align-items: center; */
/*     /\* justify-content: center; *\/ */
/*     height: 100%; */
/*     border-radius: 3px; */
/*     padding: 0.3em; */
/* } */

.menu-item-container {
    position: relative;
}

/* this is to help the dropdown not disappear
      when mouse moves to the submenu */
.submenu::before {
    content: "";
    display: block;
    height: 8px;
    position: absolute;
    top: -8px;
    width: 100%;
}

#main-menu li .submenu {
    display: none;
    position: absolute;
    background: cyan;
    width: max-content;
    /* border: 1px solid grey; */
    top: calc(100% + 4px);
    border-radius: 0.25em;
    /* box-shadow: var(--shadow-02); */
    /* added since adding a `filter: drop-shadow(0px 0px 5px #000);`
    to the hero words makes the submenu show up beneath--and I'm not sure why. */
    z-index: 1;
}

#main-menu li:hover .submenu {
    display: block;
}

nav ul {
    padding: 0;
    list-style: none;
    margin: 0;
    /* TODO: how does height 100% work with absolutely positioned elements? */
    /* height: 100%; */
}

li {
    line-height: 1.44;
    font-size: 1.375rem;
}

ul,ol {
    padding-left: 3rem;
}

.testimonial-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
    padding: 1em;
}

.flex-row {
    display: flex;
    flex-direction: row;
    /* align-items: center; */
    gap: 1em;

}

.flex-row--justify-center {
    justify-content: center;
}

.flex-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
    /* padding: 1em; */
}

.flex-column--align-items-right {
    align-items: flex-end;
}

.volunteer-item > * {
    max-width: 500px;
}

.volunteer-item img {
    /* of course this is not a very maintainable pattern:
    I happen to know the padding of the section is 2em, so I hardcoded 4em so that the image would be centered.  */
    max-width: calc(min(500px,100vw) - 4em);
}

@media (max-width: 981px) {
    .volunteer-item {
        flex-direction: column;
        align-items: center;
    }
}

.circle {
    background-color: rgb(87, 158, 39);
    width: 60px;
    height: 60px;
    clip-path: circle(30px at center center);
}

.round-border {
    /* border: 1px solid #dbe4ed; */
    border: 1px solid #666;
    border-radius: 8px;
}

.width-80 {
    width: 80%;
    margin: auto;
}

.features-background {
    background-color: rgb(242, 242, 242);
}

/* .image-card img {
      max-width: 350px;
      max-height: 250px;
      object-fit: cover;
      } */

.resources {
    max-width: 1080px;
    padding: 2em;
}

.resources li {
    min-width: calc(33% - .66667rem);
    overflow: hidden;
}

.image-card a {
    justify-content: left;
}

.image-card {
    border-radius: 8px 8px 8px 8px;
    /* border: 1px solid #dbe4ed; */
    border: 1px solid #000;
}

.image-card:hover {
    box-shadow: 0 10px 50px -5px rgba(21,56,67,.30);
}

.img-wrapper {
    /* max-width: 350px; */
    width: 100%;
    height: 200px;
    overflow: hidden;

    background-size: cover;
    background-position-x: 50%;
    /* background-position-y: 50%; */
    /* background-size: 50% auto; */
    /* border-radius: 8px 8px 0 0; */
}

.background-dna {
    background-image: url("./assets/dna-biology-medicine-gene-163466.jpg");
}

.background-ai {
    background-image: url("./assets/communication-modern-data-internet-1472636.jpg");
    /* background-size: */
}

.background-communication {
    background-image: url("./assets/sound-wave-voice-listen-856771.png.jpg");
}

.image-card-content {
    align-items: start;
    color: #3e576d;
    padding: 1.2rem;
}

.image-card-name {
    font-size: 1.2em;
}

.image-card-description {
}


.image-card-more {
    color: mediumpurple;
    font-weight: 600;

    margin-bottom: 0;
    margin-top: auto;
}

.image-card-more:hover {
    text-decoration: underline;
}

.triplet {
    flex-direction: row;
    align-items: stretch;
    /* max-width: 80vw; */
    /* horizontally center the container itself*/
    margin: 0 auto;

    /* flex items inside are horizontally centered */
    justify-content: center;
}

.triplet > * {
    max-width: 33.333333%;
}

.color-salmon-1 {
    color: #a66;
}

.color-salmon-2 {
    color: #f66
}

.color-salmon-3 {
    color: red;
}

.pricing-plans {
    max-width: 1400px;
    margin: 0 auto;
}

.pricing-plan-card {
    text-align: center;
    padding: 3% 5%;
    padding-top: 0;
    min-width: 300px;
}

.pricing-plan-card > :last-child {
    margin-bottom: 1em;
}

/* css:project */
.projects-section {
    padding: 0;
}

.projects {
    gap: 0;
    /* grid-template-areas:
    "a a b"
    "a a c"
    "d e f"; */
    /* I wonder why 33vw alone doesn't work?*/
    /* what are the tradeoffs with using 33% in this case? */
    grid-template-columns: repeat(auto-fit, minmax(max(300px, 33vw), 1fr));

    /* grid-template-rows: repeat(auto-fit, minmax(500px, 1fr)); */
}


.projects li:nth-child(even) {
    background-color: salmon;
}

.projects li:nth-child(odd) {
    background-color: lightblue;
}

.projects li {
    max-height: 40vh;
    /* cannot put this here because this creates a gap in the grid under the first area */
    /* min-height: 384px; */
}

.projects .asteroids {
    /* grid-area: 1 / 1 / 3 / 3; */
    /* width: 34vw; */
    max-height: 80vh;
    grid-row: span 2;
    grid-column: span 2;
}

.projects li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.big-words {
    min-height: 40vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    row-gap: 2em;
    align-items: center;
}

.big-words span {
    display: block;
}

@media (max-width: 640px) {
    .projects .asteroids {
        /* this helps collapses the 2 columns
        of the auto-fit grid into 1 column,
        so on mobile it's 1 image wide */
        grid-column: span 1;
    }

    /* does this belong somewhere else? */
    section.section-testimonials, section.section-resources {
        padding-left: unset;
        padding-right: unset;
    }
}

/* .flex-wrapper { */
/*   display: flex; */
/*   min-height: 100vh; */
/*   flex-direction: column; */
/*   justify-content: flex-start; */
/* } */


footer {
	  color: hsl(210,8%,60%);
    background-color: hsl(210,8%,15%);
    display:grid;
    grid-template-columns: 1fr auto 1fr;
	  padding: 2em;
}

footer div:nth-child(1) {
    grid-column-start: 2;
}

/* footer a { */
/*     color: inherit; */
/*     padding: 0.5em 0; */
/* } */

footer a {
    color:  #fff3b0;
}


.footer--nav {
    display: flex;
    /* flex-grow | flex-shrink | flex-basis */
    flex: 2 1 auto;
    flex-wrap: wrap;
    max-width: 70%;
}

.footer--nav a:hover {
    /* background: rgb(255,255,255, 0.3); */
    text-decoration: underline;
}

.marketing-item {
    row-gap: 1.3em;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* justify-content: center; */
    justify-content: space-evenly;

    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 6rem;
}

.marketing-item img {
    border: 1px solid black;
    /* width: 45vw; */
    aspect-ratio: 621 / 320;
    flex: 1 1 0;
    width: 100%;
}

@media (min-width: 980px) {
    .org-src-container pre {
        margin-left: -5rem;
        margin-right: -5rem;
        padding-left: 5rem;
        padding-right: 5rem;
        padding-top: 2rem;
        padding-bottom: 2rem;
        border-radius: 0.5rem;
    }
}

.marketing-text-content {
    /* width: 45vw; */
    /* when it comes to flexbox, setting max-width keeps the flex-basis */
    max-width: min(100%, 895px);
    flex: 1 1 0;
    line-height: 1.8;
}

@media screen and (max-width: 980px) {
    .footer--nav {
        flex-direction: column;
        row-gap: 20px;
    }

    footer ul {
        display: flex;
        column-gap: 24px;
        row-gap: 18px;
        flex-wrap: wrap;
    }

    .triplet {
        flex-direction: column;
    }

    .triplet > * {
        max-width: unset;
    }
}

.footer--col {
    padding: 18px;
    flex: 1 0 auto;
}

@media screen and (max-width: 640px) {
    footer .logo {
        display: none;
    }
}

.hr {
    margin: 3rem -10rem;
}

div.footdef::after {
    content: "";
    clear: both;
    display: table;
}

.footpara {
    width: 99%;
    text-align: left;
    float: right;
    padding: 0;
    margin: 0;
}

.footpara {
    display: inline-block;
    font-size: 1.1rem;
}
.footdef  {
    margin-bottom: 0.5rem; 
    line-height: 2em;
}

footer .logo {
    flex-basis: 2em;
}
