/*
 Theme Name:   VISUAL CACHE 21.
 Theme URI:    https://visualcache.com
 Description:  VISUAL CACHE Theme
 Author:       Ken.
 Author URI:   http://workbyken.com
 Template:     blankslate
 Version:      1.0.0
 License:      Copyright 2021
 Text Domain:  blankslatechild
*/

@import "style-single.css";
@import "style-search.css";
@import "style-spin.css";

/*** The new CSS Reset - version 1.4.4 (last updated 22.12.2021) ***/

/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
 */
*:where(:not(iframe, canvas, img, svg, video):not(svg *, symbol *)) {
    all: unset;
    display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin-block-end: 0;
    margin-block-start: 0;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
    list-style: none;
}

/* For images to not be able to exceed their container */
img {
    max-width: 100%;
}

/* removes spacing between cells in tables */
table {
    border-collapse: collapse;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
    white-space: revert;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]){
    display:none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly. */
:where([contenteditable]){
    -moz-user-modify: read-write;
    -webkit-user-modify: read-write;
    overflow-wrap: break-word;
    -webkit-line-break: after-white-space;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable="true"]) {
    -webkit-user-drag: element;
}

.has-scroll {
  scrollbar-color: black #F5F4F0;
  scrollbar-width: thin;
}

.has-scroll::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.has-scroll::-webkit-scrollbar-thumb {
  background: black;
  border-radius: 10px;
  padding: 5px;
  border: 1px solid #F5F4F0;
}

.has-scroll::-webkit-scrollbar-track {
  border-radius: 10px;
}



:root {
  --main-bg-color: #F5F4F0;
  --border-black: 1px solid black;
  --padding-desktop: 16px;
  --padding-tablet: 8px;
  --padding-mobile: 6px;
}

html {
  background: black;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
  padding: 0; margin: 0;
  position: absolute;
  width: 100vw;
  width: -webkit-fill-available;
  min-width: 320px;
  height: 100vh;
  height: -webkit-fill-available;
}

body.search {
  overflow: hidden;
}

.container {
  background: var(--main-bg-color);
  margin: 16px;
  height: calc(100% - 32px);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
}

main {
  /* height: 100%; */
  height: calc(100% - 100px);
}

header {
  border-bottom: var(--border-black);
  padding: var(--padding-tablet);

}

footer {
  border-top: var(--border-black);
  padding: var(--padding-tablet);
  text-align: center;
}


.front-grid {
  display: grid;
  grid-auto-columns: 1fr;
  grid-auto-rows: 1fr;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 1.4fr 0.8fr 0.8fr;
  gap: 0px 0px;
  grid-template-areas:
    "feature-1 feature-1 feature-1 feature-1"
    "feature-2 feature-2 feature-3 feature-3"
    "feature-2 feature-2 feature-4 feature-4";
    flex: 1;
    height: 100%;
}

.feature {
  padding: var(--padding-desktop);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.figure {
  flex: 1;
  display: block;
  margin: 0; padding: var(--padding-tablet);;
}

figure {
  display: block;
  margin: 0; padding: 0;
  height: 100%;
  flex: 1;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;

  filter:
  /* Each shadow becomes part of the image and the next filter
     adds a shadow beneath it, so we have to be very careful. */
    drop-shadow(0 -1px 0 black)
    drop-shadow(0 1px 0 black)
    drop-shadow(-1px 0 0 black)
    drop-shadow(1px 0 0 black);

    -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

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

.feature-1 { grid-area: feature-1; border-bottom: var(--border-black); }
.feature-2 { grid-area: feature-2; border-right: var(--border-black);  }
.feature-3 { grid-area: feature-3; border-bottom: var(--border-black); }
.feature-4 { grid-area: feature-4; }

a {
  cursor: pointer !important;
  text-decoration: none;
  color: black;
}

a:any-link {
  font-weight: normal;
  text-decoration: none;
  color: black;
}


.submit {
  position: absolute;
  z-index: 19990;
  width: 21.285714285714285%;
  top: calc(-1 * var(--padding-desktop));
  right: calc(-1 * var(--padding-desktop));
}
.submit svg {
  width: 100%;
}

header { position: relative;  }

.logo {
  position: absolute;
  top: -5px; left: -5px;
  height: 120%;
  z-index: 20000;
}

.logo svg {
  height: 100%;
  width: auto;
  animation: rotating 20s linear infinite;
}

@-webkit-keyframes rotating /* Safari and Chrome */ {
  from {
    -webkit-transform: rotate(0deg) translatez(0);
    -o-transform: rotate(0deg) translatez(0);
    transform: rotate(0deg) translatez(0);
  }
  to {
    -webkit-transform: rotate(360deg) translatez(0);
    -o-transform: rotate(360deg) translatez(0);
    transform: rotate(360deg) translatez(0);
  }
}
@keyframes rotating {
  from {
    -ms-transform: rotate(0deg) translatez(0);
    -moz-transform: rotate(0deg) translatez(0);
    -webkit-transform: rotate(0deg) translatez(0);
    -o-transform: rotate(0deg) translatez(0);
    transform: rotate(0deg) translatez(0);
  }
  to {
    -ms-transform: rotate(360deg) translatez(0);
    -moz-transform: rotate(360deg) translatez(0);
    -webkit-transform: rotate(360deg) translatez(0);
    -o-transform: rotate(360deg) translatez(0);
    transform: rotate(360deg) translatez(0);
  }
}


/* Mobile: Typography */

ul {
  padding-inline-start: 0;
}

h1 {
  font-size: 32px;
  text-transform: uppercase;
  white-space: nowrap;
  text-align: center;
  font-weight: normal;
  padding-top:0;
}


.edition-no, h3, nav a {
  font-size: 16px;
  text-align: center;
  font-weight: normal;
}

.edition-no, h3 {
  font-size: 12px; line-height: 1.2;
}

header {
  padding-left: 20px; padding-right: 20px;
}

nav a {
  font-family: Arial; padding: 0 5px;
  font-size: 24px;
}

nav {
  position: relative;
  text-align: center;
}

footer {
  position: relative;
}

.meta {
  position: absolute; z-index: 19998;
  bottom: 70px;
  left: 15px;
  transform-origin: top left;
  transform: translateY(100%) rotate(-90deg);
}

.meta a {
  display: inline-block;
  background-color: white;
  border-radius: 100px;
  padding: 2px 5px;
  font-size: 6px;
  text-transform: uppercase;
}


/* Mobile: Buttons */

.btn {
  border: var(--border-black);
  border-radius: 100px;
  padding: 4px 18px;
  font-size: 16px; text-transform: uppercase;
}

.search-btn {
  position: absolute;
  left: 0;
}

.spin-btn {
  position: absolute;
  right: 0;
}


/* Modal */

.overlay {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.9);
  visibility: hidden;
  opacity: 0;
  z-index: 20001;
}
.overlay:target {
  visibility: visible;
  opacity: 1;
}

.popup {
  display: flex;
  text-align: center;
  color: var(--main-bg-color);
  align-items: center; justify-content: center;
  height: 100%;
}

.popup .close {
  position: absolute;
  bottom: 25px;
  left: 25px;
  transition: all 200ms;
  text-decoration: none;
  padding: 4px 26px;
  color: var(--main-bg-color);
  border-color: var(--main-bg-color);
  cursor: pointer;
}

.search-submit {
  color: var(--main-bg-color);
  border: 1px solid var(--main-bg-color);
  border-radius: 100px;
  padding: 4px 18px;
  text-transform: uppercase;
  margin-top: 14px;
}

.search-field {
  text-align: left;
  border-bottom: 1px solid var(--main-bg-color);
  padding: 5px;
  font-size: 24px;
  margin: 5px;
}

.search-field::placeholder {
  opacity: 0;
}

.no-results {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

footer {
  min-height: 45px;
}


/* Tablet */

@media (min-width: 425px) {

  html {
    overflow-x: hidden;
  }

  body {
    height: 93vh;
    min-height: 700px;
  }

  .logo {
    height: 100%;
  }

  .feature {
    padding: var(--padding-tablet);
    overflow: hidden;
  }

  /* Tablet: Typography */

  h1 {
    font-size: 64px;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .edition-no, h3 {
    font-size: 21px;
  }

  .submit {
    width: 14.285714285714285%;
    top: calc(-1 * var(--padding-desktop));
    right: calc(-1 * var(--padding-desktop));

  }

  footer {
    min-height: 45px;
  }

} /* End Tablet */







/* Desktop */

@media (min-width: 992px) {

html {
  overflow-x: hidden;
}

body {
  min-height: 860px;
  height: 100vh;
}

header {
  padding: var(--padding-desktop);
}

footer {
  padding: var(--padding-desktop);
}

.feature {
  padding: var(--padding-desktop);
  overflow: hidden;
}

.figure {
  margin: var(--padding-desktop);
}

.front-grid {
  display: grid;
  grid-auto-columns: 1fr;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 0px 0px;
  grid-template-areas:
    "feature-1 feature-1 feature-2 feature-2"
    "feature-1 feature-1 feature-3 feature-4";
  flex: 1;
  height: 100%;
}
.feature-1 { grid-area: feature-1; border:0; border-right: var(--border-black);  }
.feature-2 { grid-area: feature-2; border:0; border-bottom: var(--border-black); }
.feature-3 { grid-area: feature-3; border:0; border-right: var(--border-black); }
.feature-4 { grid-area: feature-4; }


.feature-1 {
  flex-direction: column;
}

.submit {
  z-index: 19997;
  top: calc(-1 * var(--padding-desktop));
  right: calc(-1 * var(--padding-desktop));
}

/* Desktop: Typography */

h1 {
  font-size: 112px;
  text-transform: uppercase;
  white-space: nowrap;
  padding-top:12px;
}

.edition-no, h3, nav a {
  font-size: 32px;
}

nav a {
  font-size: 48px;
  padding: 0 24px;
}

/* Mobile: Buttons */

.btn {
  padding: 8px 32px;
  font-size: 32px; text-transform: uppercase;
}


.popup .close {
  top: 35px;
  right: 45px;
  bottom: unset;
  left: unset;
}


.search-submit {
  padding: 8px 32px;
  font-size: 32px;
}

.search-field {
  padding: 12px;
  font-size: 32px;
}


.meta {
  bottom: 110px;
  left: 20px;
}

.meta a {
  padding: 5px 10px;
  font-size: 8px;
}
header {
  padding-top:0;
}
footer {
  min-height: 90px;
}

.logo {
  transform: scale(1.4);
}

} /* End Desktop */
