:root {
  --gallery-gap: 30px;
  --fancybox-zIndex: 99999;

  --h1-size: 1.5rem;
  --h2-size: 1.375rem;
  --h3-size: 1.25rem;
  --h4-size: 1.13rem;
  --h5-size: 1rem;
  --h6-size: 0.875rem;

  --adminbar-height: 0px;

  --logo-width: 250px;

  --header-column-gap: 16px;

  --menu-item-gap: 16px;
  --menu-left-right-padding: 16px;
  --menu-font-size: 16px;
  --mobile-menu-font-size: 16px;

  --footer-padding: 0;
}

body.logged-in.admin-bar {
  --adminbar-height: 32px;
}

body:not(.wp-admin, .block-editor-iframe__body) {
  background: var(--body-bg);
}

.has-serif-font-family {
  font-family: var(--wp--preset--font-family--serif-text);
}

.has-sans-serif-font-family {
  font-family: var(--wp--preset--font-family--sans-serif-text);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--wp--preset--font-family--serif-text);
  font-weight: 500;
  text-wrap: balance;
  line-height: 1.5;
  margin: 0;
}

h1 {
  font-size: var(--h1-size); /* 24px */
}

h2 {
  font-size: var(--h2-size); /* 22px */
}

h3 {
  font-size: var(--h3-size); /* 20px */
}

h4 {
  font-size: var(--h4-size); /* 18px */
}

h5 {
  font-size: var(--h5-size); /* 16px */
}

h6 {
  font-size: var(--h6-size); /* 14px */
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  margin-bottom: var(--heading-margin-bottom);
}

p {
  font-size: 1rem; /* 16px */
}

main {
  color: var(--content-text-color);
  margin-top: 0;
}

main a {
  color: var(--content-link-color);
}

main a:hover {
  color: var(--content-link-hover-color);
}

.wp-block-post-content {
  background-color: var(--content-bg);
  color: var(--content-text-color);
}

.wp-block-post-content > div.alignfull,
.wp-block-post-content > div.alignwide {
  max-width: unset !important;
  margin-right: calc(var(--wp--style--root--padding-right) * -1) !important;
  margin-left: calc(var(--wp--style--root--padding-left) * -1) !important;
}

.wp-block-post-content li {
  margin: 0 0 8px 0;
}

.wp-block-post-content li ul {
  margin: 12px 0 12px 0;
  padding: 0 0 0 16px;
}

.wp-block-post-content p {
  font-weight: 300;
  font-size: 1rem;
  letter-spacing: 0.1rem;
  line-height: 1.8;
  margin: 0 0 16px 0;
}

.has-white-color {
  fill: #fff;
}

.home .wp-block-post-content p {
  text-transform: capitalize;
}

.home-news li {
  position: relative;
}

.home-news .post-title {
  position: absolute;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
}

.home-news .wp-block-post-title {
  padding: 8px 16px;
  width: 100%;
  text-align: center;
}

.home-news .wp-block-post-title a {
  display: block;
  color: #fff;
}

.four-column li {
  position: relative;
}

.four-column .post-title {
  position: absolute;
  bottom: 0;
  background: var(--image-overlay-bg);
  width: 100%;
  height: 100%;
  padding: 8px;
}

.four-column .wp-block-post-title {
  display: flex;
  width: 100%;
  min-height: 100%;
}

.four-column .wp-block-post-title a {
  display: flex;
  padding: 8px 16px;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.7);
  justify-content: center;
  align-items: center;
  text-align: center;
  color: #fff;
  text-wrap: balance;
}

.four-column .wp-block-post-title:hover {
  background: rgba(255, 255, 255, 0.2);
}

.grid-4-column-big-left li {
  position: relative;
}

.grid-4-column-big-left ul li:nth-child(1) {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}

.grid-4-column-big-left .post-title {
  display: flex;
  position: absolute;
  bottom: 0;
  width: 100%;
}

.grid-4-column-big-left .post-title {
  position: absolute;
  bottom: 16px;
  width: 100%;
}

.grid-4-column-big-left .wp-block-post-title {
  padding: 8px 16px;
  width: 100%;
  text-align: center;
}

.grid-4-column-big-left .wp-block-post-title a {
  display: block;
  color: #fff;
  font-size: 20px;
  text-wrap: wrap;
}

.grid-4-column-big-left figure {
  min-height: 100%;
  max-width: 100%;
}

.grid-4-column-big-left figure a {
  position: relative;
  text-wrap: wrap;
}

.grid-4-column-big-left figure a:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--image-overlay-bg);
  transition: background 0.5s;
}

.grid-4-column-big-left li:hover a:before {
  background: rgba(0, 0, 0, 0.2);
}

.wp-block-gallery.masonry {
  display: block !important;
  columns: 3;
  gap: var(--gallery-gap) !important;
}

.wp-block-gallery.masonry figure {
  width: auto !important;
  margin-bottom: var(--gallery-gap) !important;
}

.wp-lightbox-overlay .scrim {
  background-color: rgba(0, 0, 0, 0.9) !important;
}

.wp-lightbox-overlay .close-button {
  fill: #fff !important;
}

.wp-block-gallery.grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gallery-gap) !important;
}

.wp-block-gallery.grid.columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.wp-block-gallery.grid figure {
  width: auto !important;
}

.wp-block-gallery.grid figure.span2 {
  grid-column: span 2;
}

.wp-block-gallery.grid figure.span3 {
  grid-column: span 3;
}

.wp-block-gallery.grid figure.span4 {
  grid-column: span 4;
}

.page-hero-cover {
  overflow: visible;
}

.page-nav ul {
  list-style: none;
  padding: 0;
}

/* expandable block */

figure.alignright {
  margin-top: 8px;
  margin-bottom: 16px;
}

figure.alignleft {
  margin-bottom: 16px;
}

:root {
  --expandable-top-bottom-padding: 24px;
  --expandable-side-padding: 32px;
  --expandable-bottom-margin: 32px;
  --expandable-bg: #f3f3f370;
  --expandable-header-color: #000;
}

/* end expandable block*/

/* Contact forms - general styling */
.wpcf7 fieldset {
  border: 0;
  padding: 0;
}

.wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  word-wrap: normal !important;
}

.wpcf7-form-control-wrap {
  position: relative;
}

.wpcf7-not-valid-tip {
  color: #dc3232; /* Red */
  font-size: 1em;
  font-weight: normal;
  display: block;
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
  position: relative;
  top: -2ex;
  left: 1em;
  z-index: 100;
  border: 1px solid #dc3232;
  background: #fff;
  padding: 0.2em 0.8em;
  width: 24em;
}

.wpcf7-list-item {
  display: inline-block;
  margin: 0 0 0 1em;
}

.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
  content: " ";
}

.wpcf7-spinner {
  visibility: hidden;
  display: inline-block;
  background-color: #23282d; /* Dark Gray 800 */
  opacity: 0.75;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 100%;
  padding: 0;
  margin: 0 24px;
  position: relative;
}

form.submitting .wpcf7-spinner {
  visibility: visible;
}

.wpcf7-spinner::before {
  content: "";
  position: absolute;
  background-color: #fbfbfc; /* Light Gray 100 */
  top: 4px;
  left: 4px;
  width: 6px;
  height: 6px;
  border: none;
  border-radius: 100%;
  transform-origin: 8px 8px;
  animation-name: spin;
  animation-duration: 1000ms;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
  .wpcf7-spinner::before {
    animation-name: blink;
    animation-duration: 2000ms;
  }
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes blink {
  from {
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.wpcf7 [inert] {
  opacity: 0.5;
}

.wpcf7 input[type="file"] {
  cursor: pointer;
}

.wpcf7 input[type="file"]:disabled {
  cursor: default;
}

.wpcf7 .wpcf7-submit:disabled {
  cursor: not-allowed;
}

.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
  direction: ltr;
}

.wpcf7-reflection > output {
  display: list-item;
  list-style: none;
}

.wpcf7-reflection > output[hidden] {
  display: none;
}

.wpcf7 p {
  margin: 0;
}

.wpcf7 textarea,
.wpcf7 .wpcf7-text,
.wpcf7 .wpcf7-email {
  border: var(--input-border);
  border-radius: var(--input-border-radius);
  font-size: 1rem;
  width: 100%;

  color: var(--input-color);
  padding: var(--input-padding);
  background-color: var(--input-bg);
  outline: none;
}

.wpcf7 textarea {
  min-height: 100px;
  padding-top: 12px;
}

.wpcf7 .wpcf7-submit {
  border: 0;
  font-size: 1rem;
  width: var(--submit-width);
  color: var(--submit-text-color);

  padding: var(--submit-padding);
  background: var(--submit-bg-color);
  text-transform: uppercase;
  cursor: pointer;
}

.wpcf7 .wpcf7-submit:hover {
  background: var(--submit-hover-bg-color);
  color: var(--submit-hover-text-color);
}

.wpcf7 input.wpcf7-not-valid {
  color: var(--invalid-color);
  border: var(--invalid-border);
  background-color: var(--invalid-bg-color);
}

.wpcf7 input.wpcf7-not-valid::placeholder {
  opacity: 1;
  color: var(--invalid-color);
}

.wpcf7 form.invalid .wpcf7-response-output {
  font-size: 1rem;
  margin: 16px 0;
  padding: 8px;
  color: var(--invalid-color);
  border: var(--invalid-border);
  background: var(--invalid-bg-color);
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: #46b450;
  border: 0;
  color: var(--success-color);
  background: var(--success-bg-color);
  padding: 8px;
}

.wpcf7 .wpcf7-response-output br {
  display: block;
}

.wpcf7 .wpcf7-display-none,
.wpcf7 .screen-reader-response,
.wpcf7 .wpcf7-not-valid-tip {
  display: none;
}

.wpcf7-form br {
  display: none;
}

.wpcf7-form .form-field {
  position: relative;
  margin: 0 0 16px 0;
  padding: 0;
}

.wpcf7-form .form-field p {
  position: relative;
  margin-bottom: 16px;
}

.wpcf7-form span.wpcf7-form-control-wrap {
  display: block;
  padding: 0;
  margin: 0;
}

.wpcf7-form .form-field label {
  position: absolute;
  top: 8px;
  left: 14px;
  z-index: 5;
  font-size: 16px;
  color: var(--input-color);
  background: var(--input-bg);
  transition: all 0.1s ease-in-out; /* adding animation */
}

.wpcf7-form .form-field.textarea label {
  position: absolute;
  top: -8px;
  font-size: 0.75rem;
  color: var(--input-color);
  background: var(--input-bg);
  padding: 0;
  height: unset;
  line-height: unset;
  padding: 0 0.5em;
  left: 0.4em;
  z-index: 15;
}

.wpcf7-form .form-field.has-data label {
  position: absolute;
  top: -8px;
  left: 10px;
  font-size: 0.75rem;
  background: var(--input-bg);

  padding: 0;
  height: unset;
  line-height: unset;
  padding: 0 4px;

  z-index: 15;

  transition: all 0.1s ease-in-out; /* adding animation */
}

.wpcf7-form .form-field:has(.wpcf7-not-valid) label {
  color: var(--invalid-color);
}

.wpcf7-submit .spinner svg {
  display: block;
  width: auto;
  height: 25px;
  margin: auto;
  fill: #fff;
  animation: spin 1.5s linear infinite;
  transform: rotate(0deg);
}

/* tablet and desktop <= 1023 */
@media only screen and (max-width: 1023px) {
  main {
    margin-top: var(--header-height);
  }

  body.single .wp-block-post-content :not(.wp-block-gallery) .wp-block-image figure {
    max-width: 50%;
  }

  body.single .wp-block-post-content :not(.wp-block-gallery) figure.alignright {
    float: none !important;
    margin-left: 0 !important;
  }

  body.single .wp-block-post-content :not(.wp-block-gallery) figure.alignleft {
    margin-bottom: 16px;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

@media only screen and (max-width: 768px) {
  body.logged-in.admin-bar {
    --adminbar-height: 46px;
  }
}

/* mobile <= 767px */
@media only screen and (max-width: 767px) {
  :root {
    --logo-width: 250px;

    --header-column-gap: 16px;

    --menu-item-gap: 16px;
    --menu-left-right-padding: 16px;
    --menu-font-size: 16px;
    --mobile-menu-font-size: 16px;

    --footer-padding: 0;
  }

  body {
    --wp--style--root--padding-right: 16px;
    --wp--style--root--padding-left: 16px;
  }

  .wp-block-gallery.grid {
    grid-template-columns: 1fr;
  }

  .wp-block-gallery.grid.columns-4 {
    grid-template-columns: 1fr;
  }

  .wp-block-gallery.grid figure.span2 {
    grid-column: unset;
  }

  .wp-block-gallery.grid figure.span3 {
    grid-column: unset;
  }

  .wp-block-gallery.grid figure.span4 {
    grid-column: unset;
  }

  body.single .wp-block-post-content :not(.wp-block-gallery) figure {
    float: none !important;
    max-width: 100%;
    width: 100% !important;
    margin: 0 0 16px 0 !important;
  }

  body.single .wp-block-post-content :not(.wp-block-gallery) figure img {
    width: 100% !important;
  }
}
