/**
* This is a variable font
* You can control variable axes as shown below:
* font-variation-settings: wght 700.0;
*
* available axes:
'wght' (range from 200.0 to 700.0
*/
@font-face {
  font-family: 'GeneralSans';
  src: url('../fonts/GeneralSans-Variable.woff2') format('woff2'),
       url('../fonts/GeneralSans-Variable.woff') format('woff'),
       url('../fonts/GeneralSans-Variable.ttf') format('truetype');
  font-weight: 200 700;
  font-display: swap;
  font-style: normal;
}
/**
* This is a variable font
* You can control variable axes as shown below:
* font-variation-settings: wght 700.0;
*
* available axes:
'wght' (range from 200.0 to 700.0
*/
@font-face {
  font-family: 'GeneralSans';
  src: url('../fonts/GeneralSans-VariableItalic.woff2') format('woff2'),
       url('../fonts/GeneralSans-VariableItalic.woff') format('woff'),
       url('../fonts/GeneralSans-VariableItalic.ttf') format('truetype');
  font-weight: 200 700;
  font-display: swap;
  font-style: italic;
}

:root {
  --color-bg: #FCF9EF;
  --color-text: #3F6C5D;
  --color-bg-blue: #D2E9E7;
}

/** ----- Typography ----- */
html {
  height: 100%;
  margin: 0;
  scroll-behavior: smooth !important;
}
body {
  font-family: GeneralSans, Helvetica, sans-serif;
  font-size: 16px;
  letter-spacing: 0.033rem;
  background: var(--color-bg);
  color: var(--color-text);
}
h1, h2, h3, h4 {
  letter-spacing: 0rem;
}
h1 {
  font-variation-settings: "wght" 600;
  font-size: 10vw;
  inline-size: 2em;
  line-height: 1.2em;
  margin-block-end: 0.3em;
}

@media (min-width: 1200px) {
  h1 {
    font-size: 120px;
  } 
}

h2 {
  font-variation-settings: "wght" 500;
  margin-block-start: 0em !important;
  margin-block-end: 0em !important;
  line-height: 1em;
}
#werk h2 {
  margin-left: 2em;
  margin-block-end: 2em !important;
}
h3 {
  text-align: center;
  margin-block-start: 0em;
  margin-block-end: 0em;
  padding: 2em 0;
}
h4 {
  font-variation-settings: "wght" 500;
  font-size: 1.5em;
}

p a,
p a:visited {
  color: var(--color-text);
}
figcaption {
  text-align: center;
  font-size: 0.9em;
}
footer { 
  text-align: center;
}

#werk .bluebox h2 {
   font-variation-settings: "wght" 600;
   margin-left: 0em;
   margin-right: 1em;
   margin-block-end: 0em !important;
}
.bluebox h4 {
    margin-block-start: .33em;
    margin-block-end: .66em;
    font-size: 1.2em;
    line-height: 1.15em;
}
.bluebox .link {
  display: block;
  font-size: 0.9em;
  font-variation-settings: "wght" 600;
  color: var(--color-text);
  text-align: center;
}
.bluebox .link a, .bluebox .link a:visited {
  color: var(--color-text);
}

/** ------- Navigation ------- */

nav {
  top: 1em;
  position: fixed;
  display: inline-block;
  background: var(--color-bg);
  padding: 0 .3em;
  border-radius: 1.5em;
  box-shadow: 4.0px 4.0px 12.0px rgba(210,233,231,0.8);
  z-index: 9;
}
nav ul {
  padding: 0 .3em;
  margin-left: .3em;
  margin-block-start: .5em;
  margin-block-end: .5em;
}
nav li {
  padding: .5;
  list-style-type: none;
  color: var(--color-text);
  font-variation-settings: "wght" 600;
  display: inline-block;
  margin-right: .5em;
  text-decoration: none;
}
nav ul li a:active {
  text-decoration: initial;
}
nav ul li a, nav ul li a:visited {
  color: var(--color-text);
}

/** ------- Layout ------- */

main {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 2em 0 2em;
}
.top {
  padding: 2vw 0;
}
.box {
  background: var(--color-text);
  color: var(--color-bg);
  padding: 3em;
  border-radius: 3em;
  position: relative;
}
.box {

}
.box .left {
  width: 55%;
  position: relative;
}
.box .right {
  width: 35%;
  position: absolute;
  top: 4.5em;
  left: 60%;
}
.box img {
  width: 100%;
  height: auto;
  border-radius: 1em;
  overvlow: hidden;
}

.top .logo {
  position: fixed;
  right: calc(50% - 470px);
  /* Pull it back inside */
  transform: translateX(0%);
  transition: width 0.4s ease;
  top: .5em;
  width: 300px;
  height: 60px;
  z-index: 10;
}
@media (max-width: 960px) {
  .top .logo {
    position: fixed;
    right: 10px;
    transform: translateX(0%);
    transition: width 0.4s ease;
  }
}

.bluebox {
  background: var(--color-bg-blue);
  border-radius: 1.5em;
  max-width: 600px;
  width: calc(100% - 2em);
  margin: 1.5em auto;
  padding: 1em;
  position: relative;
  cursor: pointer;
}

.bluebox .arrow {
  position: absolute;
  display: inline-block;              /* important */
  transition: transform 0.3s ease;
  transform-origin: center;           /* key for SVG */
  transform-box: fill-box; 
  width: 22px;
  height: 25px;
  top: 1em; right: 1em;
}
.bluebox.open .arrow {
  transform: rotate(90deg);
}

.bluebox .arrow img {
  width: 100%;
  height: auto;
}
.bluebox:last-child {
  margin-bottom: 4em ;
}
.showme {
  display: none;
}

.top .logo img {
  max-width: 100%;
  height: auto;
  transition: width 0.4s ease;
}
.scrolled .top .logo {
  width: 150px;
  transition: width 0.4s ease;
}
#contact, footer {
  margin: 0px;
  background: var(--color-bg-blue);
  box-shadow: 350px 0px 0px var(--color-bg-blue), -350px 0px 0px var(--color-bg-blue),
  700px 0px 0px var(--color-bg-blue), -700px 0px 0px var(--color-bg-blue);
  padding-bottom: 2em;
}
footer {
  margin-bottom: -.5em;
}
#contact .left {
  margin-left: 2em;
  width: 480px;
  float: left;
}

#contact .right {
  width: 250px;
  height: 250px;
  border-radius: 150px;
  padding: 25px;
  float: right;
  overflow:hidden;
  background: var(--color-bg);  
  position: relative;
}
#contact .shadow {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 300px;
  height: 300px;
  border-radius: 150px;
  box-shadow: inset 10px 10px 10px rgba(0,0,0,.1);
}
#contact .right img {
  width: 250px;
  height: auto;
}

.honeypot {
    position: absolute;
    left: -9999px;
}

/** ------- Subpage ------- */


body.subpage {
  background: var(--color-text);
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}

body.subpage main {
  flex: 1;
}
body.subpage h1 {
  font-size: 36px;
  inline-size: inherit;
  margin-block-start: 2em;
  color: var(--color-bg);
  width: 100%;
  max-width: 960px;
  margin: 2em auto .5em auto;
}

body.subpage p,
body.subpage p a,
body.subpage p a:visited {
  color: var(--color-bg);
}

body.subpage p {
  width: 100%;
  max-width: 960px;
  margin: 2em auto;
  font-size: 1.4em;
  line-height: 1.5em;
}

body.subpage footer {
  padding-top: 2em;
  height: 100px;
  max-width: 960px;
  margin: 0 auto;
}

body.subpage nav {
  background: var(--color-text);
  color: var(--color-bg);
  box-shadow: 4px 4px 10px rgba(0,0,0,.15);
}
body.subpage nav li a,
body.subpage nav li a:visited {
  color: var(--color-bg);
}

body.subpage .leftimage,
body.subpage .rightimage {
  width: 48%;
}
body.subpage .leftimage {
  float: left;
}
body.subpage .rightimage {
  float: right;
}

body.subpage .leftimage img,
body.subpage .rightimage img {
  width: 100%;
  height: auto;
}
body.subpage .images {
  margin: 4em 0;
}
body.subpage .image {
  width: 100%;
  max-width: 600px;
  margin: 4em auto;
}
body.subpage .image img {
  width: 100%;
}

.img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 1em;
}
.vid-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 1em;
}
iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  display: block;
}
.img-wrap iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  display: block;
}
/* tint layer using your brand colour */
.img-wrap::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #3F6C5D;
  mix-blend-mode: color;
  opacity: 1;
  transition: opacity 0.6s ease;
  pointer-events: none;
}

.img-wrap img {
  display: block;
  filter: grayscale(100%);
  transition: filter 0.6s ease, transform 0.6s ease;
}

/* on hover: remove tint + restore colour */
.img-wrap:hover::after { opacity: 0; }
.img-wrap:hover img {
  filter: grayscale(0%);
}

/** ------- Contact Form ------- */

/* Container */
form {
  max-width: 600px;
}

/* Labels */
form label {
  display: block;
  margin-bottom: 0.4em;
  color: #3f6b5f;
}

/* Fields wrapper */
.field {
  margin-bottom: 1.5em;
}

/* Inputs + textarea */
form input,
form textarea {
  width: calc(100% - 36px);
  padding: 14px 18px;
  border-radius: 2em;
  border: none;
  outline: none;

  background: #FCF9EF;
  font-size: 1rem;

  /* soft inset look */
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.08);

  transition: all 0.2s ease;
}

/* Textarea specific */
form textarea {
  min-height: 160px;
  resize: vertical;
}

/* Focus state */
form input:focus,
form textarea:focus {
  background: #FFFCF6;
  box-shadow: 0 0 0 2px rgba(63, 107, 95, 0.2);
}

/* Button */
form input[type="submit"] {
  width: auto;
  padding: 14px 28px;
  border-radius: 14px;
  border: none;

  background: #3f6b5f;
  color: white;
  font-size: 1.2rem;
  font-weight: 600;

  cursor: pointer;

  transition: all 0.2s ease;
}
.success {
   font-variation-settings: "wght" 600;
 }

/* Button hover */
form input[type="submit"]:hover {
  background: #355a50;
  transform: translateY(-1px);
}

/* Button active */
form input[type="submit"]:active {
  transform: translateY(1px);
}

/** ------- Media Queries ------- */


@media (max-width: 720px) {
  main {
    padding: 0 1em 0 1em;
  }
  .top .logo {
    max-width: 40vw;
  } 
  .box .left {
    width: 100%;
  }
  .box .right {
    width: 100%;
    position: relative;
    top: inherit;
    left: 0%;
  }
  #contact .left {
    margin-left: 0em;
  }
  body.subpage p {
    font-size: 1.2em;
    line-height: 1.4em;
  }
}

@media (max-width: 600px) {
  body.subpage .leftimage,
  body.subpage .rightimage {
    width: 100%;
    margin-bottom: 1.5em;
  }
}
@media (max-width: 500px) {
  main {
    padding: 0 .2em 0 .2em;
  }
  body.subpage main {
    padding: 0 1em 0 1em;
  }
  h1 {
    margin-block-start: 1.5em;
  }
  .top .logo {
    right: .1em;
  } 
  .box {
    padding: 2em;
  }
  #contact .left {
    width: 96%;
    margin: 0 auto;
  }
  body.subpage p {
    font-size: 1em;
  }

}



