/*!
 * Theme Name: KiS
 * Description: Theme for the 2024 KiS website
 * Version: 1.0.0
 * Author: Jon Crowe @ Purple Frog
 * Text Domain: kis */
/* Categories 01 to 03 are the basics. */
/* Category 04 can contain any default HTML element. Do not add classes here, just give the elements some basic styles. */
:root {
  /* Forms */
  --form--font-family: var(--theme--font-primary);
  --form--font-size: var(--wp--preset--font-size--medium);
  --form--line-height: var(--theme--line-height--body);
  --form--color--text: var(--theme--color--dark-gray) /* Text color in input fields is always dark over light background. */;
  --form--color--ranged: var(--theme--color--secondary);
  --form--color--error: red;
  --form--label-weight: 500;
  --form--border-color: var(--theme--color--kis-blue);
  --form--border-width: 2px;
  --form--border-radius: 5px;
  --form--spacing--unit: calc(0.5 * 10px);
}

input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
.site textarea {
  border: var(--form--border-width) solid var(--form--border-color);
  border-radius: var(--form--border-radius);
  color: var(--form--color--text);
  line-height: var(--theme--line-height--body);
  padding: var(--form--spacing--unit);
  margin: 0 2px;
  max-width: 100%;
  min-height: 40px;
  padding: 7px 10px;
  line-height: 24px;
  font-size: var(--form--font-size);
}
input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
.site textarea:focus {
  color: var(--form--color--text);
  outline-offset: 2px;
  outline: 2px dotted var(--form--border-color);
}
input[type=text]:disabled,
input[type=email]:disabled,
input[type=url]:disabled,
input[type=password]:disabled,
input[type=search]:disabled,
input[type=number]:disabled,
input[type=tel]:disabled,
input[type=date]:disabled,
input[type=month]:disabled,
input[type=week]:disabled,
input[type=time]:disabled,
input[type=datetime]:disabled,
input[type=datetime-local]:disabled,
input[type=color]:disabled,
.site textarea:disabled {
  opacity: 0.7;
}
.is-dark-theme input[type=text],
.is-dark-theme input[type=email],
.is-dark-theme input[type=url],
.is-dark-theme input[type=password],
.is-dark-theme input[type=search],
.is-dark-theme input[type=number],
.is-dark-theme input[type=tel],
.is-dark-theme input[type=date],
.is-dark-theme input[type=month],
.is-dark-theme input[type=week],
.is-dark-theme input[type=time],
.is-dark-theme input[type=datetime],
.is-dark-theme input[type=datetime-local],
.is-dark-theme input[type=color],
.is-dark-theme .site textarea {
  background: var(--theme--color--white-90);
}

input[type=search]:focus {
  outline-offset: -7px;
}
.is-dark-theme input[type=search]:focus {
  outline-color: var(--theme--color--background);
}

input[type=color] {
  padding: calc(var(--form--spacing--unit) / 2);
  height: calc(4 * var(--form--spacing--unit));
}

input[type=email],
input[type=url] {
  direction: ltr;
}

select {
  border: var(--form--border-width) solid var(--form--border-color);
  border-radius: var(--form--border-radius);
  color: var(--form--color--text);
  -moz-appearance: none;
  -webkit-appearance: none;
  font-size: var(--form--font-size);
  appearance: none;
  min-height: 40px;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  line-height: var(--theme--line-height--body);
  padding: var(--form--spacing--unit) calc(3 * var(--form--spacing--unit)) var(--form--spacing--unit) var(--form--spacing--unit);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 0 24 24' width='24px' fill='%235f9acc'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z'/%3E%3C/svg%3E");
  background-position: calc(100% - 12px) center;
  background-repeat: no-repeat;
  background-size: 26px;
}
select:focus {
  outline-offset: 2px;
  outline: 2px dotted var(--form--border-color);
}
.is-dark-theme select {
  background: var(--theme--color--white-90) url("data:image/svg+xmlutf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%2328303d'><polygon points='0,0 10,0 5,5'/></svg>") no-repeat;
  background-position: right var(--form--spacing--unit) top 60%;
}

textarea {
  width: 100%;
}

label {
  font-size: var(--form--font-size);
  font-weight: var(--form--label-weight);
  margin-bottom: calc(var(--theme--spacing--vertical) / 3);
}

/* https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/
 * https://codepen.io/aaroniker/pen/ZEYoxEY by Aaron Iker.
 * License: MIT. */
label:has(input[type=checkbox]):has(.wpcf7-list-item-label) {
  display: -webkit-box;
  display: flex;
  -webkit-box-align: start;
          align-items: flex-start;
  gap: 10px;
}
label:has(input[type=checkbox]):has(.wpcf7-list-item-label) > * {
  -webkit-box-flex: 1;
          flex: 1 1 auto;
}
label:has(input[type=checkbox]):has(.wpcf7-list-item-label) input[type=checkbox] {
  margin-top: 5px;
}
label:has(input[type=checkbox]):has(.wpcf7-list-item-label) label {
  font-weight: normal;
}

input[type=checkbox] + label,
input[type=radio] + label {
  display: inline-block;
  padding-left: 10px;
  font-size: var(--wp--preset--font-size--x-small);
  vertical-align: top;
}

/* https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */
@supports (-webkit-appearance: none) or (-moz-appearance: none) {
  input[type=range] {
    height: 6px;
    background: var(--form--color--ranged);
    border-radius: 6px;
    outline-offset: 10px;
  }
  input[type=range]:disabled {
    opacity: 0.7;
  }
  input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    border: 3px solid var(--form--color--ranged);
    height: 44px;
    width: 44px;
    border-radius: 50%;
    background: var(--theme--color--background);
    cursor: pointer;
  }
  input[type=range]::-moz-range-thumb {
    border: 3px solid var(--form--color--ranged);
    height: 44px;
    width: 44px;
    border-radius: 50%;
    background: var(--theme--color--background);
    cursor: pointer;
    box-sizing: border-box;
  }
}
input[type=range]::-ms-track {
  width: 100%;
  height: 6px;
  border-radius: 6px;
  border-width: 19px 0;
  border-color: var(--theme--color--background);
  background: transparent;
  color: transparent;
  cursor: pointer;
}

input[type=range]::-ms-fill-upper {
  background: var(--form--color--ranged);
  border-radius: 6px;
}

input[type=range]::-ms-fill-lower {
  background: var(--form--color--ranged);
  border-radius: 6px;
}

input[type=range]::-ms-thumb {
  border: 3px solid var(--form--color--ranged);
  height: 44px;
  width: 44px;
  border-radius: 50%;
  background: var(--theme--color--background);
  cursor: pointer;
}

fieldset {
  display: grid;
  border-color: var(--theme--color--secondary);
  padding: var(--theme--spacing--horizontal);
}
fieldset legend {
  font-size: var(--wp--preset--font-size--large);
}
fieldset input[type=submit] {
  max-width: -webkit-max-content;
  max-width: -moz-max-content;
  max-width: max-content;
}
fieldset input:not([type=submit]) {
  margin-bottom: var(--theme--spacing--unit);
}
fieldset input[type=radio], fieldset input[type=checkbox] {
  margin-bottom: 0;
}
fieldset input[type=radio] + label, fieldset input[type=checkbox] + label {
  font-size: var(--form--font-size);
  padding-left: 0;
  margin-bottom: var(--theme--spacing--unit);
}

::-moz-placeholder {
  opacity: 1;
}

.post-password-message {
  font-size: var(--wp--preset--font-size--large);
}

.post-password-form {
  display: -webkit-box;
  display: flex;
  flex-wrap: wrap;
}
.post-password-form__label {
  width: 100%;
  margin-bottom: 0;
}
.post-password-form input[type=password] {
  -webkit-box-flex: 1;
          flex-grow: 1;
  margin-top: calc(var(--theme--spacing--vertical) / 3);
  margin-right: calc(0.66 * var(--theme--spacing--horizontal));
}
.post-password-form__submit {
  margin-top: calc(var(--theme--spacing--vertical) / 3);
}
@media only screen and (min-width: 768px) {
  .post-password-form__submit {
    margin-left: calc(0.4 * var(--theme--spacing--horizontal));
  }
}

/* Category 05 is all about adjusting the default block styles to the given layout. I only added three blocks as examples. */
/* Category 06 contains all "bigger" components which contain elements of the previous two categories like header, footer, page template, single template, comments section, archives, ... */
/* Category 07 is for any utility classes that are not assigned to a specific component. */
/* Category 08 is for any specific theme elements */
:root {
  --theme--color--black-rgb: 0 0 0;
  --theme--color--black: rgb( var(--theme--color--black-rgb) / 100%);
  --theme--color--white-rgb: 255 255 255;
  --theme--color--white: rgb( var(--theme--color--white-rgb) / 100%);
  --theme--color--kis-blue-rgb: 25 71 135;
  --theme--color--kis-blue: rgb( var(--theme--color--kis-blue-rgb) / 100%);
  --theme--color--kis-blue-dark-rgb: 10 30 59;
  --theme--color--kis-blue-dark: rgb( var(--theme--color--kis-blue-dark-rgb) / 100%);
  --theme--color--kis-blue-light-rgb: 222 232 247;
  --theme--color--kis-blue-light: rgb( var(--theme--color--kis-blue-light-rgb) / 100%);
  --theme--color--kis-red-rgb: 227 32 40;
  --theme--color--kis-red: rgb( var(--theme--color--kis-red-rgb) / 100%);
  --theme--spacing--5: 5px;
  --theme--spacing--10: 10px;
  --theme--spacing--15: 15px;
  --theme--spacing--20: 20px;
  --theme--spacing--25: 25px;
  --theme--spacing--30: 30px;
  --theme--spacing--35: 35px;
  --theme--spacing--40: 40px;
  --theme--spacing--45: 45px;
  --theme--spacing--50: 50px;
  --theme--spacing--55: 55px;
  --theme--spacing--60: 60px;
  --theme--spacing--65: 65px;
  --theme--spacing--70: 70px;
  --theme--spacing--75: 75px;
  --theme--spacing--80: 80px;
  --theme--spacing--85: 85px;
  --theme--spacing--90: 90px;
  --theme--spacing--95: 95px;
  --theme--spacing--100: 100px;
  --theme--spacing--big-small: 120px;
  --theme--spacing--big-medium: 180px;
  --theme--spacing--big-large: 240px;
  /* Admin-bar height */
  --theme--admin-bar--height: 0px;
}
@media only screen and (max-width: 767px) {
  :root {
    --wp--preset--font-size--x-small: 14px;
    --wp--preset--font-size--small: 16px;
    --wp--preset--font-size--medium: 20px;
    --wp--preset--font-size--large: 25px;
    --wp--preset--font-size--x-large: calc(0.8 * 32px);
    --wp--preset--font-size--xx-large: calc(0.7 * 48px);
    --wp--preset--font-size--xxx-large: calc(0.7 * 64px);
  }
}

.admin-bar {
  --theme--admin-bar--height: 46px;
}
@media only screen and (min-width: 768px) {
  .admin-bar {
    --theme--admin-bar--height: 32px;
  }
}

.wp-block-button :where(.wp-block-button__link) {
  border-radius: 9999px;
  display: -webkit-inline-box;
  display: inline-flex;
  -webkit-box-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
          align-items: center;
  -webkit-transition: all 250ms ease;
  transition: all 250ms ease;
  min-height: var(--theme--button--min-height);
  font-weight: 400;
}
.wp-block-button :where(.wp-block-button__link):not(.has-background) {
  --theme--button--icon--background: currentColor;
  --theme--button--icon--color: white;
}
.wp-block-button :where(.wp-block-button__link):is(.has-background) {
  --theme--button--icon--color: black;
  --theme--button--icon--background: currentColor;
}
.wp-block-button :where(.wp-block-button__link):is(.has-background):is(.has-contrast-background-color) {
  --theme--button--icon--color: var(--wp--preset--color--contrast);
}
.wp-block-button :where(.wp-block-button__link):is(.has-background):is(.has-contrast-2-background-color) {
  --theme--button--icon--color: var(--wp--preset--color--contrast-2);
}
.wp-block-button :where(.wp-block-button__link):is(.has-background):is(.has-contrast-3-background-color) {
  --theme--button--icon--color: var(--wp--preset--color--contrast-3);
}
.wp-block-button :where(.wp-block-button__link):not(.has-custom-font-size) {
  --theme--button--icon--base: var(--wp--preset--font-size--small);
  --theme--button--min-height: calc(2.5 * var(--wp--preset--font-size--small));
}
.wp-block-button :where(.wp-block-button__link):is(.has-custom-font-size):is(.has-x-small-font-size) {
  --theme--button--icon--base: var(--wp--preset--font-size--x-small);
}
.wp-block-button :where(.wp-block-button__link):is(.has-custom-font-size):is(.has-small-font-size) {
  --theme--button--icon--base: var(--wp--preset--font-size--small);
}
.wp-block-button :where(.wp-block-button__link):is(.has-custom-font-size):is(.has-medium-font-size) {
  --theme--button--icon--base: var(--wp--preset--font-size--medium);
}
.wp-block-button :where(.wp-block-button__link):is(.has-custom-font-size):is(.has-large-font-size) {
  --theme--button--icon--base: var(--wp--preset--font-size--large);
}
.wp-block-button :where(.wp-block-button__link) .__text {
  line-height: 1.2;
}
.wp-block-button :where(.wp-block-button__link) .__icon {
  background: var(--theme--button--icon--background);
  border-radius: 9999px;
  -webkit-transform: translateX(16px);
          transform: translateX(16px);
  width: var(--theme--button--icon--area);
  height: var(--theme--button--icon--area);
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
  --theme--button--icon--area: calc(var(--theme--button--icon--base) * 2);
}
.wp-block-button :where(.wp-block-button__link) .__icon > * {
  color: var(--theme--button--icon--color);
  width: var(--theme--button--icon--area);
  height: var(--theme--button--icon--area);
  font-size: var(--theme--button--icon--area);
  -webkit-transform: scale(0.75);
          transform: scale(0.75);
  display: -webkit-box;
  display: flex;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-box-pack: center;
          justify-content: center;
  -webkit-box-align: center;
          align-items: center;
}
.wp-block-button :where(.wp-block-button__link):hover {
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}
.wp-block-button :where(.wp-block-button__link):active {
  -webkit-transform: translateY(2px);
          transform: translateY(2px);
}

*[hidden] {
  display: none !important;
  visibility: hidden;
}

body header.wp-block-template-part {
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 2.5px 5px rgba(0, 0, 0, 0.05);
          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 2.5px 5px rgba(0, 0, 0, 0.05);
  z-index: 1;
  position: relative;
}
body header.wp-block-template-part .is-layout-constrained > :where(.alignwide, .alignnone) {
  --wp--style--global--wide-size: 1280px;
}

:where(.wp-site-blocks) > header.wp-block-template-part + *:is(:nth-child(2)) {
  -webkit-margin-before: 0 !important;
          margin-block-start: 0 !important;
}

:where(body .is-layout-constrained) > *:is(.wp-block-group.has-background) {
  -webkit-margin-before: 0 !important;
          margin-block-start: 0 !important;
}

footer.wp-block-template-part {
  -webkit-margin-before: 0 !important;
          margin-block-start: 0 !important;
}

:where(body .is-layout-flow) > * {
  -webkit-margin-before: 1.2rem;
          margin-block-start: 1.2rem;
  -webkit-margin-after: 0;
          margin-block-end: 0;
}

.yoast-breadcrumbs {
  color: var(--theme--color--kis-bright-blue);
}
.yoast-breadcrumbs span {
  display: -webkit-inline-box;
  display: inline-flex;
  -webkit-box-align: center;
          align-items: center;
}
.yoast-breadcrumbs a {
  font-weight: 600;
}
.yoast-breadcrumbs a:hover, .yoast-breadcrumbs a:focus {
  color: var(--theme--color--kis-light-blue);
}
.yoast-breadcrumbs span.material-icons {
  opacity: 0.8;
  padding-left: 5px;
  padding-right: 5px;
}
.yoast-breadcrumbs span.breadcrumb_last {
  font-weight: 600;
}

.wp-block-contact-form-7-contact-form-selector {
  background: #fff;
  border: 1px solid #ebecee;
  border-radius: 28px;
  padding: 5px;
  -webkit-box-flex: 0;
          flex: 0 0 var(--mg--card--width);
  -webkit-box-shadow: 0 1px 1px rgb(var(--theme--color--kis-blue-dark-rgb)/10%), 0 2.5px 10px rgb(var(--theme--color--kis-blue-dark-rgb)/10%);
          box-shadow: 0 1px 1px rgb(var(--theme--color--kis-blue-dark-rgb)/10%), 0 2.5px 10px rgb(var(--theme--color--kis-blue-dark-rgb)/10%);
}

.wpcf7 {
  border: 1px solid #f2f2f2;
  background: white;
  border-radius: 24px;
  padding: 25px;
  -webkit-box-shadow: 0 6px 6px rgba(0, 0, 0, 0.1);
          box-shadow: 0 6px 6px rgba(0, 0, 0, 0.1);
}
.wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  width: 1px;
  margin: 0;
  padding: 0;
  border: 0;
}
.wpcf7 form p {
  padding: 0 0 var(--global--spacing--vertical);
}
.wpcf7 form label {
  padding-bottom: calc(0.5 * var(--global--spacing--vertical));
}
.wpcf7 form label .wpcf7-form-control-wrap {
  display: block;
  padding-top: calc(0.25 * var(--global--spacing--vertical));
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-flow: column nowrap;
  gap: 7.5px;
  padding-top: 7.5px;
}
.wpcf7 form h5 {
  padding: calc(0.5 * var(--global--spacing--vertical)) 0;
}
.wpcf7 form .row {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: start;
          justify-content: flex-start;
  -webkit-box-align: start;
          align-items: flex-start;
  flex-wrap: wrap;
  -webkit-column-gap: var(--global--spacing--horizontal);
     -moz-column-gap: var(--global--spacing--horizontal);
          column-gap: var(--global--spacing--horizontal);
  row-gap: var(--global--spacing--vertical);
}
.wpcf7 form .row p {
  -webkit-box-flex: 0;
          flex: 0 0 auto;
}
.wpcf7 form .wpcf7-response-output {
  background: #fff;
  border: 1px solid #c3c4c7;
  border-bottom-width: 8px;
  -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
          box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  margin: calc(0.5 * var(--global--spacing--vertical)) 0;
  padding: 1px 12px;
  padding: 10px 20px;
  border-radius: 4px;
}
.wpcf7 form .wpcf7-response-output *:not(a) {
  color: var(--theme--color--primary) !important;
}
.wpcf7 form .wpcf7-response-output a {
  color: var(--theme--color--link) !important;
}
.wpcf7 form .wpcf7-response-output a:hover, .wpcf7 form .wpcf7-response-output a:focus {
  color: var(--theme--color--link-hover) !important;
}
.wpcf7 form.init .wpcf7-response-output, .wpcf7 form.resetting .wpcf7-response-output, .wpcf7 form.submitting .wpcf7-response-output {
  display: none;
}
.wpcf7 form.submitting .ajax-loader {
  visibility: visible;
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: #c3c4c7 #c3c4c7 #00a32a;
}
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output {
  border-color: #c3c4c7 #c3c4c7 #d63638;
}
.wpcf7 form.spam .wpcf7-response-output {
  border-color: #c3c4c7 #c3c4c7 #dba617;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: #c3c4c7 #c3c4c7 #72aee6;
}
.wpcf7 .wpcf7-not-valid-tip {
  color: #d63638;
  font-size: var(--wp--preset--font-size--small);
}
.wpcf7 .use-floating-validation-tip .wpcf7-not-valid-tip {
  border: 1px solid #d63638;
}

@media screen and (max-width: 599px) {
  .hidden-mobile,
  .is-hidden--mobile {
    display: none !important;
  }
}
@media screen and (min-width: 600px) {
  .hidden-tablet,
  .is-hidden--tablet {
    display: none !important;
  }
}
@media screen and (max-width: 599px) {
  header.wp-block-template-part .is-content-justification-right--mobile {
    -webkit-box-pack: end !important;
            justify-content: flex-end !important;
  }
}

:where(.wp-site-blocks *:focus) {
  outline-width: 0 !important;
}

:where(.wp-site-blocks *:focus-visible) {
  outline-width: 2px !important;
}
