/*!
Theme Name: Lost Lectures
Theme URI: lostlectures.com
Author: Good Caesar
Author URI: https://goodcaesar.com
Description: Site for Lost Lectures
Version: 1.0.0
*/

@import 'css/normalize.css';

:root {
    --color-super-black:#000;
    --color-black:#222;
    --color-white:#fff;
    --color-off-black:#1a1a1a;
    --border-radius:1rem;
   --font-size: calc(1em + 1vw);
   --font-size-x-small: 60%;
   --font-size-small: 80%;
   --font-size-large: 105%;
   --font-size-x-large: 110%;
   --font-size-xx-large: 115%;
   --font-size-xxx-large: 125%;
   --font-size-xxxx-large: 140%; 
   --space-top:6.5rem;    
}

@media (min-width: 768px) {
  :root {
    --space-top:4.5rem;
  }
}

@media (min-width: 64em) and(hover: hover) and (pointer: fine) {
    :root {
        --font-size: calc(1.25em + 1vw);
        --font-size-x-small: 50%;
        --font-size-small: 65%;
        --font-size-large: 110%;
        --font-size-x-large: 120%;
        --font-size-xx-large: 130%;
        --font-size-xxx-large: 150%;
        --font-size-xxxx-large: 180%;
        --line-height: 1.3em;       
    }
}

body.preload {
   overflow: hidden;
}

body.preload .lost-loader {
  height:100dvh
}

body.preload .lost-loader .loader-wrapper svg {
  opacity: 1; 
}

body.lost-sign .lost-sign-up {
  top:var(--space-top);
  overflow: hidden;
  opacity:1;
  max-height:300px;
  transform:translateY(0);
}

.lost-sign-up {
  margin:1rem 1rem 1rem 1rem;
  position: relative;
  transform:translateY(-100%);
  max-height:0;
  transition:all 0.25s ease-in-out;
  opacity:0;
}

body.lost-sign .overlay-wrapper:after,
body.lost-sign .overlay-wrapper:before {
  width:100%;
  height:100%;
}

.lost-form {
  background:var(--color-off-black);
  border-radius:var(--border-radius);
  padding:1rem;
  z-index:500;
}

.nf-form-content {
  padding:0;
}

.nf-form-content input[type="text"],
.nf-form-content input[type="email"] {
  padding:0.7rem;
  font-weight: 700;
  border:none;
  border-radius: var(--border-radius);
}

.nf-response-msg {
  color:white;
  text-align: center;
}

.nf-form-content input[type="submit"] {
  background-color:var(--color-white);
  color:var(--color-black);
  padding:0.5rem 0.7rem;
  font-size:1.1rem;
  font-weight: 600;
  border-radius: var(--border-radius);
  border:1px solid var(--color-black);
  transition: all 0.25s ease-in-out;
}

.nf-form-content input[type="submit"]:hover {
  cursor:pointer;
  color:white;
  background-color:var(--color-black);
  border-color:white;
}

nf-fields-wrap {
  display:grid;
  grid-gap:1rem;

}
  
  @media (min-width: 768px) {
    nf-fields-wrap {
      grid-template-columns: 1fr 1fr;
    }
  }

.nf-field-container {
  margin-bottom:0 !important;
}

.lost-form h1 {
  letter-spacing: 0.01;
  margin:0 0 0.5rem 0;
}

.lost-form span {
  display:none;
}

.lost-form b a {
  position: absolute;
  top:1px;
  text-decoration: none;
  right:1px;
  background-color:white;
  color:black;
  transition: all 0.25s ease-in-out;
  padding:0.5rem;
}

  .lost-form b a:hover {
    background-color:black;
    color:white;    
  }

.nf-form-fields-required {
  text-align: center;
  display:none;
 padding:0.5rem; 
 font-size:1rem;
}

.lost-loader {
   overflow: hidden;
   position: fixed;
   top:0;
   color:white;
   left:0;
   width:100%;
   height:0dvh;
   z-index:200;
   display:flex;
   justify-content: center;
   align-items: center;
   transition:height 0.25s ease-in-out;
}

.lost-loader .loader-wrapper {
  margin:0 auto;  
  text-align: center;
  position: relative;
  width:100%;
  height:100dvh;
  display:flex;
  justify-content: center;
  align-items: center;
  background-color:var(--color-black);
}

   .lost-loader .loader-wrapper svg {
      height:auto;
      opacity: 0;
      margin:0 auto;  
      left:25%;
      max-width:250px;
   }
   
   @media all and (min-width:600px) {
      .lost-loader .loader-wrapper svg {
         max-width:450px;
         height:auto;
      }
   }
   
   .lost-loader .loader-wrapper svg path {
      stroke: white;  
      stroke-width:5px;
      transition: fill 0.5s ease-in-out;
   }
   
   .filled {
       fill: white;
       transition: fill 1s ease-in-out;
   } 

img {
    max-width: 100%;
    height: auto;
}

body {
   font-family: 'DM Sans', helvetica, sans-serif;
   background-color:var(--color-super-black);
}

header.top {
   position: fixed;
   top:0;
   margin-bottom:4rem;
   width:100%;
   z-index:100;
   background-color: transparent;
   background-image: linear-gradient(#000,transparent 89%);
}

   header.top .lost-logo {
      margin:0;
      position: absolute;
      left:1rem;
      top:1rem;
      transform:translateX(0rem);  
      transition-property: transform,opacity;
      transition-duration:0.25s;
      transition-timing-function: ease-in-out;
   }
   
   header.top .lost-mark {
      left:1rem;
      top:1rem;
      margin:0;
      position: absolute;
      opacity: 0;
      transform:translateX(1rem);  
      transition-property: transform,opacity;
      transition-duration:0.25s;
      transition-timing-function: ease-in-out;
   }
   
   header.top .lost-mark svg {
      width:30px;
      height:auto;
   }
   
   @media all and (min-width:600px) {
     header.top .lost-mark svg {
        width:40px;
        height:auto;
     }
   }
   
   header.top .lost-logo svg {
      width:135px;
      height:auto;   
   }
   
   @media all and (min-width:600px) {
      header.top .lost-logo svg {
         width:150px;
         height:auto;   
      }
   }
   
   header.top.scrolled .lost-logo {
      transform:translateX(-1rem);   
      opacity: 0;
   }
   
   header.top.scrolled .lost-mark {
      transform:translateX(0rem);   
      opacity: 1;
   }
   
   header.top.scrolled ul {
      opacity: 0;
   }
   
      header.top.scroll-up ul {
         opacity: 1;
      }
   
      @media all and (min-width:600px) {
         header.top.scrolled ul {
            opacity: 1;
         }
      }

.header-wrapper {
   padding:0.5rem;
   justify-content: center;
   position: relative;   
    display:flex;       
    align-items: center;
}

   .header-wrapper ul {
      margin:0;
      padding:0 1rem 0 0;
      position: absolute;
      top:4.25rem;
      left:1rem;
      list-style:none; 
      display:flex;
      width:100%;
      justify-content: space-between;
   }
      
      @media all and (min-width:600px) {
         .header-wrapper ul {
            position: relative;
            top:auto;
            margin-top:1rem;
            left:auto;
            align-items: center;
            display:flex;
         }
      }
   
      .header-wrapper ul li {
         margin-right: 1rem;
         display:block;
         font-weight: bold;
         font-size:1rem;
      }
      
      @media all and (min-width:600px) {
         .header-wrapper ul li {
            font-size:1.3rem;  
         }
      }
         
      .header-wrapper ul li a {
         display:block;
         padding:0.35rem 0;
         color:white;
         position: relative;
         transition: all 0.25s ease-in-out;
         text-decoration: none;
      }
      
      .header-wrapper ul li a:before {
        position: absolute;
        bottom:0;
        width:0%;
        height:1px;
        left:0;
        transition: width 0.15s ease-in-out;
        background-color:white;
        content:'';
      }
      
      @media all and (min-width:600px) {
         .header-wrapper ul li a {
            padding:0.35rem;
         }
      }
      
      .header-wrapper ul li.current_page_item a:before {
         width:100%;
      }  
      
      .header-wrapper ul li a:hover:before {
         width:100%;
      }
   
.sign-up {
   position: absolute;
   top:1rem;
   right:1rem;
   
}

   .sign-up a {
      display:block;
      line-height: 1.3;
      padding:0.4em 0.75rem 0.25rem 0.75rem;
      text-decoration:none;
      font-size:1.2rem;
      background-color:var(--color-white);
      color:var(--color-black);
      border-radius:var(--border-radius);    
      transition: all 0.25s ease-in-out;
      border:1px solid var(--color-black);
   }
   
   .sign-up a:hover {
      background-color:var(--color-black);
      color:var(--color-white);
      border-color:var(--color-white);
   }

section.block-grid {
  padding:var(--space-top) 1rem 1rem 1rem;
}

.wide-row {
    margin-bottom:1rem;
}

.wide-row.full {
   display:grid;
   grid-gap:1rem;
   grid-template-columns: 1fr;  
}

.wide-row {
    display:grid;
    grid-gap:1rem;
    grid-template-columns: repeat(12, 1fr);
}

.cell {
    border-radius: var(--border-radius);
    height:16rem;
    overflow: hidden;
    position: relative;
    grid-column: span 6;
}

@media (min-width: 768px) {
   .cell {
       height:18rem;       
   }
}

@media (min-width: 1228px) {
   .cell {
       height:23rem;       
   }
}

@media all and (min-width:321px) and (max-width: 600px) {
   
   .wide-row > .cell:nth-of-type(3) {
       grid-column: span 12;
   }
  
  .cell.block-text {
    grid-column: span 12;
    height:auto;
  }
  
  .cell.block-video {
    grid-column: span 12;
  }
  
  .cell.block-link {
    grid-column: span 12;
  }
    
  .cell.block-image + .cell.block-text {
      grid-column: span 12;
  } 
    
  .cell.block-image:first-of-type + .cell.block-text {
      grid-column: span 12;
  } 
  
  .wide-row > .cell.block-image + .cell.block-text {
    grid-column: span 12;
  }
  
  .wide-row:has(> div.block-image + div.block-text) div.block-image {
    grid-column: span 12;
  }
  
  .cell.block-text + .cell.block-image {
      grid-column: span 12;
  } 
   
  .cell.block-video + .cell.block-image {
      grid-column: span 12;
  } 
}

.wide-row .cell.cell-width-100 {
   grid-column: span 12;
}

@media (min-width: 768px) {

  .cell.cell-width-10 {
      grid-column: span 2;
   }

   .cell.cell-width-20 {
      grid-column: span 3;
   }
   
   .cell.cell-width-33 {
      grid-column: span 4;
   }
   
   .cell.cell-width-66 {
      grid-column: span 8;
   }
   
   .cell.cell-width-80 {
      grid-column: span 9;
   }
   
   .cell.cell-width-90 {
       grid-column: span 10;
   }
   
   .cell.cell-width-100 {
      grid-column: span 12;
   }
   
}

.cell video,
.cell img {
    position: absolute;
    top:0;
    width:100%;
    border-radius: var(--border-radius);
    height:100%;
    object-fit: cover;
    bottom:0;
    right:0;
    left:0;
}

.cell a {
   display:block;
   width:100%;
   height:100%;
   position: relative;   
}

.cell a:hover svg {
   opacity: 1;
   transform:translateX(0rem);  
}

.cell a svg {
   position: absolute;
   bottom:1.5rem;
   right:1.5rem;
   z-index:20;  
   opacity: 0;
   transition-property: opacity,transform;
   transition-duration: 0.25s;
   transition-timing-function: ease-in-out;
   transform:translateX(-1rem);  
}

.cell a.link svg {
  opacity:1;
  bottom:auto;
  top:1.5rem;
  right:0.5rem;
}

@media (min-width: 768px) {
  .cell a.link svg {
    bottom:1.5rem;
    top:auto;
  }
}

.cell .block-text {
   height:100%;
   overflow: hidden;
   position: relative;
   padding:1rem;
   background-color:var(--color-off-black);
}

.cell .block-text h3 {
  position: relative;
}

  @media (min-width: 768px) {
    .cell .block-text {
      padding:1rem;
    }
  }

   .cell .block-text p {
      color:var(--color-white);  
      line-height: 1.35;
      font-size:var(--font-size-small);
   }
   
   .cell .block-text p a {
     color:var(--color-white);  
   }
        
   @media (min-width: 768px) {
     .cell .block-text p {
       font-size:var(--font-size-large);
     }
   }

   .cell .block-text p:first-of-type {
      margin-top:0;  
   }
   
   .cell .block-text p:last-of-type {
      margin-bottom:0;  
   }
   
.cell .block-link {
  position: absolute;
  top:0;
  width:100%;
  bottom:0;
  right:0;
  left:0;
}

.cell a:hover .block-link {
  background-color:var( --color-off-black) !important;
}

.cell a .block-link {
  
}

.cell .block-link h3 {
  padding:1rem;
  margin:0;
  color:var(--color-white); 
}

.cell.block-text h3 {
  position: relative;
  margin:0 0 0.5rem 0;
  color:var(--color-white);
}

.cell.block-video h3,
.cell.block-image h3 {
   margin:0;
   position: absolute;
   bottom:1rem;
   left:1rem;
   color:var(--color-white);
   z-index:10;   
}

section.page-textual {
    padding:0 1rem 1rem 1rem;
}

@media (min-width: 768px) {
   .page-grid {
      display:grid;
      grid-template-columns: 1fr 1fr;
      grid-gap:1rem;
   }
}

.page-grid figure img {    
    border-radius: var(--border-radius);
}

.featured-copy {
    padding:1rem;
    border-radius: var(--border-radius);
    background-color:var(--color-off-black);
    color:white;
}

   .featured-copy p {
      line-height: 1.35;
      font-size:var(--font-size-large);
   }
   
   .featured-copy p:first-of-type {
      margin-top:0;
   }
   
   .featured-copy p:last-of-type {
      margin-bottom:0;
   }
   
.post-textual {
  margin:var(--space-top) 1rem 1rem 1rem;
  padding:1rem;
  color:white;
  border-radius: var(--border-radius);
  background-color:var(--color-off-black);
}   

  .post-textual h1 {
    margin:1rem 1rem 2rem 1rem;
    text-align: center;
  }
  
  @media (min-width: 768px) {
    .post-textual h1 {
      padding:0 20%;
    }
  }


  .responsive-embed-container {
    
  }

  .responsive-embed-container {
    position: relative;
    width:100%;
    padding-bottom:56.5%;
  }
  
  .responsive-embed-container iframe {
    position: absolute;
    bottom:0;
    right:0;
    left:0;
    top:0;
    width:100%;
    height:100%;
  }
  
   .post-textual p {
     line-height: 1.35;
     color:white;
     max-width:650px;
     margin-left:auto;
     margin-right: auto;
     font-size:var(--font-size-large);
   }
   
footer {
 color:white;
  padding:1rem;
}

footer .footer-links ul {
  list-style: none;
  margin:0;
  font-size:1rem;
  padding:0.5rem 0 0.5rem 0;
}

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

  @media (min-width: 768px) {
    footer .footer-links {
      text-align: right; 
    }
  }

footer .footer-links b {
  text-align: center;
  display:inline-block;
  font-weight: normal;
}

footer ul li a {
  padding:0.25rem 0;
  display:block;
  color:white;
}

@media (min-width: 768px) {
  .footer-frame {
    display:flex;
    justify-content: space-between;
  }
}  

@media (min-width: 768px) {
  .social-section {
    max-width:20rem;
    margin-bottom:1rem;
  }
} 
  
.social-section ul {
  display:grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-gap:1rem;
  margin:0;
  padding:0;
  align-content: items;
  justify-content: center;
}

.social-section ul li {
  display:flex;
  align-content: center;
}

.social-section ul li a {
  display:flex;
  border-radius: var(--border-radius);
  background-color:var(--color-off-black);
  align-content: center;
  transition:all 0.25s ease-in-out;
}
   
  
   .social-section ul li a:hover {
     background-color:var(--color-super-black);
  }   
   
   .social-section ul li a svg {  
     max-width:100%;
     padding:15%;
     height:auto;
   }
   
   .social-section ul li a svg path {
     fill:white;
   }