:root{
  --km-dark:#3f455f;
  --km-main:#4b526f;
  --km-soft:#949bb7;
  --km-bg1:#d8dceb;
  --km-bg2:#c7ccdf;
  --km-white:#f7f8fc;
  --km-error:#9b3f4e;
  --km-success:#376b52;
}

*{
  box-sizing:border-box;
}

html,
body{
  margin:0;
  min-height:100%;
}

body{
  min-height:100vh;

  font-family:"Jura",sans-serif;
  color:var(--km-dark);

  background:
    linear-gradient(
      rgba(62,65,71,.47),
      rgba(62,65,71,.47)
    ),
    url("https://api.krakkemat.be/media/algemeen/krakkemat-achtergrond.jpg")
    center center / cover fixed no-repeat;

  background-color:#3e4147;
}

/* ==================================================
   PAGINA
================================================== */

.km-contact-shell{
  min-height:100vh;

  display:grid;
  place-items:center;

  padding:40px 24px;
}

/* ==================================================
   HOOFDBLOK
================================================== */

.km-contact-card{
  position:relative;
  overflow:hidden;

  width:100%;
  max-width:1200px;

  padding:64px 34px 38px;

  border:1px solid rgba(255,255,255,.45);
  border-radius:24px;

  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(255,255,255,.30),
      transparent 38%
    ),
    linear-gradient(
      145deg,
      var(--km-bg1),
      var(--km-bg2)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    0 18px 40px rgba(0,0,0,.22);
}

/* ==================================================
   HEIDEBLOEM
================================================== */

.km-contact-flower{
  position:absolute;
  right:-14px;
  top:220px;

  width:190px;
  height:190px;

  opacity:.10;

  background-image:
    url("https://api.krakkemat.be/media/algemeen/bloem.png");

  background-repeat:no-repeat;
  background-size:contain;
  background-position:center;

  transform:rotate(18deg) scaleX(-1);

  pointer-events:none;
  z-index:1;
}

.km-contact-content{
  position:relative;
  z-index:2;

  width:100%;
  max-width:780px;

  margin:0 auto;
}

/* ==================================================
   INTRODUCTIE
================================================== */

.km-contact-header{
  margin-bottom:30px;
  text-align:center;
}

.km-contact-header h1{
  margin:0;

  font-size:clamp(34px,4vw,56px);
  line-height:1.05;

  letter-spacing:.08em;
  font-weight:700;

  color:var(--km-dark);
}

.km-contact-header p{
  max-width:650px;

  margin:18px auto 0;

  font-size:18px;
  line-height:1.6;
  font-weight:500;

  color:var(--km-main);
}

.km-contact-divider{
  width:180px;
  height:1px;

  margin:34px auto 0;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(75,82,111,.28),
      transparent
    );
}

/* ==================================================
   FORMULIER
================================================== */

form{
  display:grid;
  gap:18px;
}

.km-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

label{
  display:grid;
  gap:8px;

  font-size:15px;
  font-weight:600;

  color:var(--km-dark);
}

input,
textarea{
  width:100%;

  padding:14px 16px;

  border:1px solid rgba(63,69,95,.20);
  border-radius:14px;
  outline:none;

  font:500 16px/1.5 "Jura",sans-serif;

  color:var(--km-dark);
  background:rgba(255,255,255,.64);

  box-shadow:
    inset 0 1px 2px rgba(63,69,95,.06);

  transition:
    border-color .2s,
    box-shadow .2s,
    background .2s;
}

textarea{
  min-height:170px;
  resize:vertical;
}

input:focus,
textarea:focus{
  border-color:var(--km-main);

  background:rgba(255,255,255,.84);

  box-shadow:
    0 0 0 3px rgba(75,82,111,.13);
}

/* ==================================================
   VERZENDKNOP
================================================== */

button{
  justify-self:center;

  min-width:230px;

  margin-top:4px;
  padding:14px 24px;

  border:0;
  border-radius:15px;

  cursor:pointer;

  font:700 16px "Jura",sans-serif;
  letter-spacing:.03em;

  color:#fff;

  background:
    linear-gradient(
      135deg,
      var(--km-main),
      var(--km-dark)
    );

  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.18),
    0 8px 18px rgba(63,69,95,.18);
}

button:hover{
  background:var(--km-dark);
}

button:disabled{
  cursor:wait;
  opacity:.62;
}

/* ==================================================
   MELDINGEN
================================================== */

.km-form-message{
  display:none;

  padding:13px 15px;

  border-radius:12px;

  text-align:center;
  font-weight:600;
  line-height:1.5;
}

.km-form-message.is-success{
  display:block;

  color:var(--km-success);
  background:rgba(255,255,255,.50);

  border:1px solid rgba(55,107,82,.30);
}

.km-form-message.is-error{
  display:block;

  color:var(--km-error);
  background:rgba(255,255,255,.50);

  border:1px solid rgba(155,63,78,.30);
}

.km-trap{
  position:absolute !important;
  left:-10000px !important;

  width:1px !important;
  height:1px !important;

  overflow:hidden !important;
}

/* ==================================================
   TERUGKNOP
================================================== */

.km-contact-footer{
  display:flex;
  justify-content:center;

  margin-top:30px;
  padding-top:28px;

  border-top:1px solid rgba(75,82,111,.12);
}

.km-back{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:42px;
  padding:0 24px;

  border:1px solid rgba(75,82,111,.18);
  border-radius:16px;

  text-decoration:none;

  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;

  color:var(--km-dark);
  background:rgba(216,220,235,.72);

  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.45),
    0 6px 14px rgba(63,69,95,.08);
}

.km-back:hover{
  background:rgba(255,255,255,.52);
}

/* ==================================================
   GSM
================================================== */

@media(max-width:650px){

  body{
    background:
      linear-gradient(
        rgba(62,65,71,.47),
        rgba(62,65,71,.47)
      ),
      url("https://api.krakkemat.be/media/algemeen/krakkemat-achtergrond.jpg")
      center center / cover scroll no-repeat;

    background-color:#3e4147;
  }

  .km-contact-shell{
    padding:18px 10px;
  }

  .km-contact-card{
    padding:38px 18px 26px;
    border-radius:20px;
  }

  .km-contact-header{
    margin-bottom:26px;
  }

  .km-contact-header h1{
    font-size:30px;
    line-height:1.12;
  }

  .km-contact-header p{
    font-size:16px;
  }

  .km-contact-header p br{
    display:none;
  }

  .km-form-grid{
    grid-template-columns:1fr;
  }

.km-contact-flower{
  right:-28px;
  top:245px;
  bottom:auto;

  width:135px;
  height:135px;

  opacity:.07;
}

  button{
    width:100%;
  }

  .km-contact-footer{
    margin-top:26px;
  }
}