/**
 * Kindstart Leerbegeleiding - child template of Cassiopeia.
 *
 * Ported from the Joomla 3 "kindstart" template (Bootstrap 3 + LESS).
 * Cassiopeia supplies Bootstrap 5 and Font Awesome; this file restores the
 * original Kindstart look on top of it, including the Bootstrap 3 metrics
 * (gutters, heading and paragraph spacing, form controls) the design relied on.
 */

/* --------------------------------------------------------------------------
 * Font
 * ----------------------------------------------------------------------- */
@font-face {
  font-family: "AbelRegular";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/abel-regular.woff") format("woff");
}

/* --------------------------------------------------------------------------
 * Variables
 * ----------------------------------------------------------------------- */
:root {
  --ks-wit: #fff;
  --ks-zwart: #000;
  --ks-home: #536137;
  --ks-overmij: #db98c3;
  --ks-traject: #c56348;
  --ks-tarieven: #63477c;
  --ks-contact: #71a4c6;
  --ks-bg: #e0e1e2;
  --ks-text: #333;
  --ks-font: "AbelRegular", sans-serif;
  --ks-offcanvas-width: 320px;

  /* Feed the Cassiopeia / Bootstrap variables with the Kindstart values */
  --body-font-family: var(--ks-font);
  --body-font-size: 20px;
  --body-line-height: 1.5;
  --body-color: var(--ks-text);
  --body-bg: var(--ks-wit);
  --link-color: var(--ks-home);
  --link-color-rgb: 83, 97, 55;
  --link-hover-color: var(--ks-home);
  --link-hover-color-rgb: 83, 97, 55;
  --cassiopeia-font-family-body: var(--ks-font);
  --cassiopeia-font-family-headings: var(--ks-font);
  --cassiopeia-font-weight-headings: 400;
  --cassiopeia-color-primary: var(--ks-home);
  --cassiopeia-color-link: var(--ks-home);
  --cassiopeia-color-hover: var(--ks-home);
}

/* --------------------------------------------------------------------------
 * Base (Bootstrap 3 metrics of the original design)
 * ----------------------------------------------------------------------- */
body {
  display: block;
  min-height: 0;
  margin: 0;
  font-family: var(--ks-font);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ks-text);
  background-color: var(--ks-wit);
  transition: all 400ms ease;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--ks-font);
  line-height: 1.1;
  color: inherit;
}

h1, h2, h3, .h1, .h2, .h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-weight: 400;
}

h4, h5, h6, .h4, .h5, .h6 {
  margin-top: 10px;
  margin-bottom: 10px;
  font-weight: 500;
}

h1, .h1 { font-size: 80px; }
h2, .h2 { font-size: 60px; }
h3, .h3 { font-size: 40px; }
h4, .h4 { font-size: 18px; }
h5, .h5 { font-size: 14px; }
h6, .h6 { font-size: 12px; }

p {
  margin: 0 0 10px;
}

ul, ol {
  margin-top: 0;
  margin-bottom: 10px;
  padding-left: 40px;
}

ul ul, ol ol, ul ol, ol ul {
  margin-bottom: 0;
}

b, strong {
  font-weight: 700;
}

a, a:hover, a:focus, a:active,
a:not([class]) {
  color: var(--ks-home);
  text-decoration: none;
}

label {
  font-weight: 400;
}

legend {
  padding-bottom: 10px;
}

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

/* Grid: Bootstrap 3 used 15px container padding and 30px gutters */
.container-fluid {
  --gutter-x: 30px;
  max-width: 1170px;
  margin: 0 auto;
  padding-right: 15px;
  padding-left: 15px;
}

.row {
  --gutter-x: 30px;
  --gutter-y: 0;
}

/* Bootstrap 3 visible-xs / hidden-xs (breakpoint 768px) */
@media (max-width: 767.98px) {
  .ks-hidden-xs {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .ks-visible-xs {
    display: none !important;
  }
}

/* --------------------------------------------------------------------------
 * Buttons
 * ----------------------------------------------------------------------- */
.btn {
  font-family: var(--ks-font);
}

.btn-kindstart {
  --btn-color: var(--ks-home);
  --btn-bg: var(--ks-bg);
  --btn-border-color: var(--ks-bg);
  --btn-hover-color: var(--ks-home);
  --btn-hover-bg: #c6c8c9;
  --btn-hover-border-color: #c0c2c4;
  --btn-active-color: var(--ks-home);
  --btn-active-bg: #c6c8c9;
  --btn-active-border-color: #c0c2c4;
  --btn-focus-shadow-rgb: 83, 97, 55;
  display: inline-block;
  padding: 6px 12px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.42857143;
  color: var(--ks-home);
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  background-color: var(--ks-bg);
  background-image: none;
  border: 1px solid var(--ks-bg);
  border-radius: 4px;
}

.btn-kindstart:hover,
.btn-kindstart:focus,
.btn-kindstart:active {
  color: var(--ks-home);
  background-color: #c6c8c9;
  border-color: #c0c2c4;
}

.btn-kindstart.btn-xl {
  padding: 12px 20px;
  font-size: 24px;
  line-height: 1.5;
  border-radius: 8px;
}

/* --------------------------------------------------------------------------
 * Off-canvas (mobile menu)
 * ----------------------------------------------------------------------- */
.ks-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.ks-canvas {
  position: relative;
  width: 100%;
  height: 100%;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  transition: transform 300ms ease;
}

.ks-offcanvas-open .ks-canvas {
  transform: translate3d(calc(-1 * var(--ks-offcanvas-width)), 0, 0);
}

#offcanvas {
  position: absolute;
  top: 0;
  right: calc(-1 * var(--ks-offcanvas-width));
  z-index: 888888;
  width: var(--ks-offcanvas-width);
  height: 100%;
  overflow: hidden;
  background-color: var(--ks-bg);
  backface-visibility: hidden;
}

#offcanvas .sluiten {
  padding-right: 20px;
  text-align: right;
}

#offcanvas .sluiten .toggle-panel {
  color: red;
}

.openen {
  padding-right: 5px;
  text-align: right;
}

.openen .toggle-panel {
  color: var(--ks-home);
}

.frontpage .openen {
  padding-right: 20px;
}

.next .openen {
  margin-top: -10px;
}

.toggle-panel {
  font-size: 36px;
  cursor: pointer;
}

/* --------------------------------------------------------------------------
 * Home page
 * ----------------------------------------------------------------------- */
.homelogo {
  padding: 50px 0;
}

.homelogo .img-fluid {
  margin: 0 auto;
}

.homemenu {
  padding: 50px 0;
  background-color: rgb(224, 224, 224);
}

.homecontent {
  padding-top: 20px;
  padding-bottom: 20px;
}

/* --------------------------------------------------------------------------
 * Kindstart menu (mod_kindstart_menu)
 * ----------------------------------------------------------------------- */
.hvr-grow {
  display: inline-block;
  vertical-align: middle;
  transform: perspective(1px) translateZ(0);
  box-shadow: 0 0 1px transparent;
  transition-duration: 0.3s;
  transition-property: transform;
}

.hvr-grow:hover,
.hvr-grow:focus,
.hvr-grow:active {
  transform: scale(1.1);
}

#ksmenu {
  padding: 0 25px;
}

#ksmenu::after {
  display: table;
  clear: both;
  content: "";
}

#ksmenu .ksknop {
  float: left;
  padding: 0 20px;
  text-align: center;
}

#ksmenu.ksmenu-count-5 > .ksknop { width: 20%; }
#ksmenu.ksmenu-count-4 > .ksknop { width: 25%; }

@media screen and (min-width: 320px) and (max-width: 767px) {
  #ksmenu > .ksknop {
    width: 100%;
  }
}

#ksmenu .ksknop .title {
  display: inline-block;
  padding: 5px 0;
  font-size: 28px;
  font-weight: 700;
}

#ksmenu .ksknop .text {
  font-size: 18px;
}

#ksmenu .ksknop a {
  outline: 0 none;
}

#ksmenu .ksknop a img {
  transition: all 0.3s ease-out;
}

#ksmenu .ksknop:hover a img {
  filter: brightness(50%);
}

#ksmenu.mobile {
  padding: 0 20px;
}

#ksmenu.mobile .ksknop {
  float: none;
  width: auto;
  padding: 0 0 10px;
}

#ksmenu.mobile .title {
  font-size: 20px;
}

#ksmenu.mobile img {
  max-width: 100px;
}

/* --------------------------------------------------------------------------
 * Inner pages
 * ----------------------------------------------------------------------- */
.header {
  padding: 10px 0;
}

.header .logo img {
  min-width: 100px;
}

.titlerow {
  margin-bottom: 50px;
  padding: 30px 0;
}

.titlerow h1 {
  margin: 0;
  font-weight: 700;
  color: var(--ks-wit);
}

.over-mij .titlerow { background-color: var(--ks-overmij); }
.traject .titlerow { background-color: var(--ks-traject); }
.tarieven .titlerow { background-color: var(--ks-tarieven); }
.contact .titlerow { background-color: var(--ks-contact); }

.referenties .titlerow,
.sitemap .titlerow {
  background-color: var(--ks-home);
}

.content {
  padding-bottom: 40px;
}

/* Bootstrap 3 page-header (used by the article titles on the Referenties blog) */
.page-header {
  margin: 40px 0 20px;
  padding-bottom: 9px;
  border-bottom: 1px solid #eee;
}

/* Blog layout: undo Cassiopeia's flex/gutter styling, mimic the J3 blog */
.blog-items {
  display: block;
  margin: 0;
  padding: 0;
}

.blog-item {
  display: block;
  padding: 0;
  overflow: visible;
}

/* Sitemap */
.sitemap-list {
  margin-bottom: 10px;
}

/* --------------------------------------------------------------------------
 * Footer
 * ----------------------------------------------------------------------- */
.footer {
  margin: 0;
  padding: 30px 0;
  color: var(--ks-wit);
  background-color: #242424;
  background-image: none;
}

.footer h3 {
  font-size: 28px;
}

.footer a,
.footer a:focus,
.footer a:not(.btn) {
  color: var(--ks-home);
}

.footer a:hover,
.footer a:not(.btn):hover {
  color: var(--ks-wit);
}

.bottom {
  padding: 20px 0;
  color: var(--ks-wit);
  background-color: var(--ks-home);
}

.bottom .copyright {
  display: block;
  text-align: center;
}

/* --------------------------------------------------------------------------
 * Forms (RSForm! Pro and core forms) - Bootstrap 3 look
 * ----------------------------------------------------------------------- */
.content .form-control,
.content .form-select {
  height: 34px;
  padding: 6px 12px;
  font-family: var(--ks-font);
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}

.content .form-control:focus,
.content .form-select:focus {
  border-color: #66afe9;
  outline: 0;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}

.content textarea.form-control {
  height: auto;
}

/* RSForm! Pro Bootstrap 5 layout -> Bootstrap 3 "form-horizontal" metrics */
.formContainer .rsform-block {
  margin-bottom: 15px !important;
}

.formContainer .rsform-block .formControlLabel {
  margin-bottom: 5px;
  padding-top: 0;
  padding-bottom: 0;
  font-size: inherit;
  line-height: inherit;
  text-align: left;
}

.formContainer .rsform-block .formControls > div:last-child {
  margin: 5px 0 10px;
}

.formContainer .formValidation .formError {
  color: #a94442;
}

@media (max-width: 767.98px) {
  .formContainer .rsform-block > .col-sm-3,
  .formContainer .rsform-block > .col-sm-9 {
    flex: 0 0 auto;
    width: 100%;
  }

  /* Empty label (submit button row): Bootstrap 3 kept a full line box here */
  .formContainer .rsform-block > .formControlLabel:empty {
    min-height: 25px;
  }
}

@media (min-width: 768px) {
  .formContainer .rsform-block .formControlLabel {
    margin-bottom: 0;
    padding-top: 7px;
    text-align: right;
  }
}

/* --------------------------------------------------------------------------
 * Media queries
 * ----------------------------------------------------------------------- */
@media (max-width: 1024px) {
  #ksmenu .ksknop .title {
    font-size: 20px;
  }

  .titlerow {
    margin-bottom: 20px;
    padding: 20px 0;
  }

  .titlerow h1 {
    font-size: 40px;
  }

  h2 {
    font-size: 32px;
  }
}

@media (max-width: 768px) {
  .homelogo {
    padding-top: 0;
    padding-bottom: 10px;
  }

  .titlerow {
    margin-bottom: 15px;
    padding: 15px 0;
  }

  .titlerow h1 {
    font-size: 28px;
  }

  h2 {
    font-size: 28px;
  }
}
