/*  ********************************************************************************
    Overall CSS styles
    ********************************************************************************  */


:root {
    --a-link-base-text: #ffffff; 
    --a-link-hover-color: #a3a3a3;
    --a-link-active-color: #000000;
    --base-background-color: #333333;
    --base-text-color: #ffffff;
    --blog-date-color:  #b8b8b8;
    --border-color-grey: #b3b3b3;
    --border-color-dark: #1d1d1d;
    --gradient-start-color: #5e5e5e;
    --gradient-end-color: #404040;
    --image-box-shadow-color: #aaaaaa;
    --image-text-color: #ffffff;
    --modal-accept-button-color: #323232;
    --modal-background-color: #000000;
    --modal-close-button-background: #FF0000;
    --modal-close-button-color: #ffffff;
    --red-text: #FF0000;
    --slide-advance-button-color: #ffffff;
    --slide-background-color: #333333;
    --slide-caption-text-color: #A9A9A9;
    --slide-image-number-color: #ffffff;
    --white-text: #ffffff;
  }

@media (prefers-color-scheme: dark) {
  
  :root {
    --a-link-base-text: #ffffff; 
    --base-background-color: #333333;
    --base-text-color: #ffffff;
    --border-color-grey: #b3b3b3;
    --gradient-start-color: #5e5e5e;
    --gradient-end-color: #404040;
    --slide-background-color: #333333;
    --slide-caption-text-color: #A9A9A9;
  }
  
}

@media (prefers-color-scheme: light) {
  
  :root {
    --a-link-base-text: #000000; 
    --base-background-color: #ffffff;
    --base-text-color: #000000;
    --border-color-grey: #ffffff;
    --gradient-start-color: #ffffff;
    --gradient-end-color: #ffffff;
    --slide-background-color: #ffffff;
    --slide-caption-text-color: #707070;
  }

}

.red {
  color: var(--red-text);
}
    
    
/*  ******************************************************************************** 
    Page Body styles
    ********************************************************************************  */

  
body {
  background-color: var(--base-background-color);
  color: var(--base-text-color);
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  line-height: 1.5em;
  height: 100%;
  margin: 0px;
  min-width: 250px;
  width: 100%;
}

body.dark-theme {
  --a-link-base-text: #ffffff; 
  --base-background-color: #333333;
  --base-text-color: #ffffff;
  --border-color-grey: #b3b3b3;
  --gradient-start-color: #5e5e5e;
  --gradient-end-color: #404040;
  --slide-background-color: #333333;
  --slide-caption-text-color: #A9A9A9;
}

body.light-theme {
  --a-link-base-text: #000000; 
  --base-background-color: #ffffff;
  --base-text-color: #000000;
  --border-color-grey: #ffffff;
  --gradient-start-color: #ffffff;
  --gradient-end-color: #ffffff;
  --slide-background-color: #ffffff;
  --slide-caption-text-color: #707070;
}


/*  ********************************************************************************
    Overall CSS grid structure 
    ********************************************************************************  */


.master-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
}

.header-grid {
  background-image: linear-gradient(var(--gradient-start-color), var(--gradient-end-color));
  border-bottom: 2px solid var(--border-color-dark);
  grid-column: 1 / span 12;
  margin-bottom: 20px;
}

.main-grid {
  grid-column: 1 / span 12;
  height: 100%;
}
 
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 2px;
}


/*  ********************************************************************************
    Overall CSS page styles
    ********************************************************************************  */


.btn-toggle {
  margin: 10px 0px 0px 20px;
}

.date-today {
  display: inline;
  float: right;
  margin: 10px 20px 0px 0px;
  text-align: right; 
} 
 
header {
  background-image: linear-gradient(#5e5e5e, #404040); 
  padding: 20px 20px 20px 20px;
}


/*  Text styles
    ********************************************************************************  */
	
a {
  color: var(--a-link-base-text);
  text-decoration: none;
    -o-transition: color 0.1s ease-in, background 0.1s ease-in;
    -webkit-transition: color 0.1s ease-in, background 0.1s ease-in;  
  transition: color 0.1s ease-in, background 0.1s ease-in;
  word-wrap: break-word;
}

a:hover, a:focus {
  color: var(--a-link-hover-color);
  outline: 0px;
  text-decoration: none;
}

article.text{
  margin: auto;
  width: 60%;
  text-align: center;
}

summary {
  outline:none;
  cursor: hand;
}

summary h3 {
  color: grey;
  text-align: right; 
  
}
summary::-webkit-details-marker {
  display: none;
}

summary h3:before {
  content: "Click to read more of the Blog ...";
}

details[open] summary h3:before {
  content: "Click to close the Blog ...";
}


/*  Menu control and styles
    ********************************************************************************  */
    
.menu {
  clear: both;
}
    
ul.menu {
  float: right;
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

ul.menu li {
  float: left;
}

ul.menu li a {
  color: var(--a-link-base-text);
  display: inline-block;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  transition: 0.3s;
}

ul.menu li a:hover {
  color: var(--a-link-hover-color);
}

ul.menu li a:active {
  color: var(--a-link-hover-color);
}

ul.menu li.icon {
  display: none;
}


/*  ********************************************************************************
    Carousel slideshow
    ********************************************************************************  */


.carousel {
  height: 100%;
  width: 100%;
  position: relative;
}

.carousel-slide {
    -webkit-animation-name: fadeIn; 
    -webkit-animation-duration: 2s;
  animation-name: fadeIn;
  animation-duration: 2s;
  height: auto;  
  width: 100%;
}

.carousel .overlay-name {
  color: var(--image-text-color);
  font-family:"Helvetica Neue", Arial, sans-serif;
  font-size: 4vw;
  font-weight: 100;
  position: absolute;
    left: 0;
    top: 5%;
  text-align: center;
  width: 100%;
}

.carousel .overlay-copyright {
  color: var(--image-text-color);
  font-family:"Helvetica Neue", Arial, sans-serif;
  font-size: 1.5vw;
  font-weight: 100;
  position: absolute;
    left: 0;
    bottom: 5%;
  text-align: center;
  width: 100%;
}


/*  ********************************************************************************
    Gallery image grid
    ********************************************************************************  */


.gallery {
   margin: auto;
   border: var(--base-background-color) solid 2px;
   background: var(--base-background-color);
 }
 

.gallery-item {
  position: relative;
}

.gallery-image {
  line-height: 0;
  overflow: hidden;
}

.gallery-image img {
  /* need to overwrite inline dimensions */
  filter: blur(0px);
  height: auto;
  transition: filter 0.3s ease-in;
  width: 100%;
}

.gallery-name {
  align-items: center;
  background-color: rgba(52, 52, 52, 0.1);
  color: var(--image-text-color);
  display: flex;
  font-family:"Helvetica Neue", Arial, sans-serif;
  font-size: 2vw;
  font-weight: 100;
  height: 100%;
  justify-content: center;
  opacity: 0;
  position: absolute;
    left: 0;
    top: 0;
  text-decoration: none;
  transition: opacity .5s;
  width: 100%;
  z-index: 1;  
}

.gallery-item a {
  color: var(--image-text-color);
}

.gallery-item:hover .gallery-name {
  opacity: 1;
}

.gallery-item:hover .gallery-image img {
  filter: blur(1px);
}


/*  ********************************************************************************
    Slideshow modal
    ********************************************************************************  */


/* The Modal (background) */
.slide-modal {
  background-color: var(--slide-background-color);
  display: none;
  height: 100%;
  padding-top: 100px;
  position: fixed;
   left: 0;
   top: 0; 
  overflow: auto;
  width: 100%;
/*   z-index: 1; */
}

/* Modal Content */
.slide-modal-content {
    -webkit-animation-name: zoom;
    -webkit-animation-duration: 0.6s;
  animation-name: zoom;
  animation-duration: 0.6s;
  margin: auto;
  max-height: 90%;
  max-width: 1600px;
  padding: 0;
  position: relative;
  width: 90%;
}

/* The Close Button */
.modal-close-button {
  color: var(--modal-close-button-color); 
  font-size: 2vw;
  font-weight: 100;
  padding: 20px 12px 8px 20px;
  position: absolute;
  top: 0px;
  right: 0px;
  transition: 0.6s ease;
}

.modal-close-button:hover,
.modal-close-button:focus {
  color: var(--a-link-hover-color);
  cursor: pointer;
  text-decoration: none;
}

.gallery-slides {  
  display: none;
}

.cursor {
  cursor: pointer
}

.active-slide {
    -webkit-animation-name: fadeIn; 
    -webkit-animation-duration: 2s;
  animation-name: fadeIn;
  animation-duration: 2s;
  max-height: auto;
  width: 100%;
}

.fade-out {
  -webkit-animation-name: fadeOut; 
  -webkit-animation-duration: 2s;
animation-name: fadeOut;
animation-duration: 2s;
max-height: auto;
width: 100%;
}

/* Next & previous buttons */
.prev-button,
.next-button {
  border-radius: 0 3px 3px 0;
  color: var(--slide-advance-button-color);
  cursor: pointer;
  font-size: 2vw;
  font-weight: 100;
  margin-top: -50px;
  padding: 16px;
  position: absolute;
    top: 50%;
  transition: 0.6s ease;
    -webkit-user-select: none;
  user-select: none;
  width: auto;
}

.prev-button{
  left: 1.5%;
}

/* Position the "next button" to the right */
.next-button {
  right: 0;
}

.prev-button:hover,
.next-button:hover,
.prev-button:focus,
.next-button:focus{
  color: var(--a-link-hover-color);
  cursor: pointer;
  text-decoration: none;
}

/* Number text (1/3 etc) */
.slide-number {
  color: var(--slide-image-number-color);
  font-size: 1vw;
  font-weight: 100;
  padding: 20px 12px 8px 20px;
  position: absolute;
    left: 0;
    top: 0;
}

.slide-caption {
  color: var(--slide-caption-text-color);
  font-family:"Helvetica Neue", Arial, sans-serif;
  font-size: 2vw;
  font-weight: 300;
  margin: 10px 0px auto 0px;
  padding-bottom: 10px;
  text-align: center;
}


/*  ********************************************************************************
    The user acceptance modal
    ********************************************************************************  */


.accept-modal {
    -webkit-animation-name: fadeIn; 
    -webkit-animation-duration: 1.0s;
  animation-name: fadeIn;
  animation-duration: 1.0s;
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.5); /* Black w/ opacity */
  display: none; /* Hidden by default */
  height: 100%; /* Full height */
  position: fixed; /* Stay in place */
    left: 0;
    top: 0;
  overflow: auto; /* Enable scroll if needed */
  width: 100%; /* Full width */
  z-index: 1; /* Sit on top */
}

.accept-modal-content {
    -webkit-animation-name: slideIn;
    -webkit-animation-duration: 0.75s;
  animation-name: slideIn;
  animation-duration: 0.75s;
  background-color: var(--modal-background-color);
  color: var(--white-text);
  font-size: 1em;
  padding: 20px 20px;
  position: fixed;
    bottom: 0;
  width: 100%;
}

.accept-modal-content a {
  color: var(--white-text);
  font-weight: bold;
}

.accept-modal-content a:hover {
  color: var(--a-link-hover-color);
}

.accept-button {
  background-color: var(--modal-accept-button-color);
  border: 1px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
  border-radius: 4px;
  color: var(--white-text);
  font-size: 1em;
  margin: 0px 0px 0px 20px; 
  padding: 6px 12px 6px 12px;
  text-decoration: none;
  width: 120px;
}

.accept-button:hover,
.accept-button:focus {
  background-color: var(--modal-close-button-background);
}


/*  ********************************************************************************
    Blog page syles
    ********************************************************************************  */


.blog {
  margin: auto;
  text-align: left;
  width: 70%;
}

.blog-author {
  text-transform: uppercase;
}

.blog-date {  
  color: var(--blog-date-color);
  text-transform: uppercase;
}

.blog-img {  
  height: auto;
  margin-left: 15%;
  width: 70%;
}

.blog p {
  font-size: 1vw;
}

.blog figcaption {
  font-family:"Helvetica Neue", Arial, sans-serif;
  font-size: 1vw;
  font-weight: 200;
  text-align: center;
}


/*  ********************************************************************************
    @keyframs Animation Definitions
    ********************************************************************************  */


@-webkit-keyframes slideIn {
  from {bottom: -300px; opacity: 0} 
  to {bottom: 0; opacity: 1}
}

@keyframes slideIn {
  from {bottom: -300px; opacity: 0}
  to {bottom: 0; opacity: 1}
}

@-webkit-keyframes fadeIn {
  from {opacity: 0;} 
  to {opacity: 1}
}

@keyframes fadeIn {
  from {opacity: 0;} 
  to {opacity: 1;}
}

@-webkit-keyframes fadeOut {
  from {opacity: 1;} 
  to {opacity: 0}
}

@keyframes fadeOut {
  from {opacity: 1;} 
  to {opacity: 0;}
}


/*  ********************************************************************************
    @media Definitions
    ********************************************************************************  */


/*  @media Menu control and styles
    ********************************************************************************  */
  
@media screen and (max-width: 586px) {
  ul.menu {
    float: none;
  }
  ul.menu li:not(:first-child) {
    display: none;
  }
  ul.menu li.icon {
    display: inline-block;    
    float: right;
  }
}

@media screen and (max-width: 586px) {
  ul.menu.responsive {
    position: relative;
  }
  ul.menu.responsive li.icon {
    position: absolute;    
      right: 0;  
      top: 0;
  }
  ul.menu.responsive li {
    float: none;
    display: inline;
  }
  ul.menu.responsive li a {
    display: block;
    text-align: center;
  }
}


/*  @media Image grid styles for touch screen devices
    ********************************************************************************  */
      
@media (hover: none) { 
  .gallery-name {
    opacity: 1;
   }
  .gallery-image img {
    filter: blur(0px);
  }
}


/*  @media Image grid control and styles
    ********************************************************************************  */
       
@media screen and (max-width: 1420px) {
  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .blog-img {  
    height: auto;
    margin-left: 0%;
    width: 100%;
  }
  .blog p {
    font-size: 1.5vw;
  }
}
 
@media screen and (max-width: 980px) {
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .gallery-name {
    font-size: 4vw;
  }
  .blog p {
    font-size: 2vw;
  }
}

@media screen and (max-width: 562px) {
  .carousel .overlay-name { 
    font-size: 5vw;
  }
  .carousel .overlay-copyright {
    font-size: 2.5vw;
  }
  .gallery-grid {
    grid-template-columns: repeat(1, 1fr);
    /* grid-template-columns: 100%; */
  }
  .gallery-name {
    font-size: 8vw;
  }
  .blog {
    margin: auto;
    text-align: left;
    width: 90%;
  }
  .blog p {
    font-size: 3vw;
  }
}
