/*
Theme Name: Kofile
Theme URI: 
Author: 
Author URI: 
Description: 
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 5.7
Version: 
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kofile
Tags: 
*/
:root {
  --transition: 0.3s;
}

@media screen and (max-width: 767px) {
  :root {
    --wp--preset--spacing--x-large: 60px !important;
    --wp--preset--spacing--xx-large: 82px !important;
  }
}

* {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  scroll-behavior: smooth;
}

img {
  max-width: 100%;
}

/** TYPOGRAPHY */
h1,
.has-heading-1-font-size {
  line-height: 1.1;
  font-weight: 300;
}

h2,
.has-heading-2-font-size {
  line-height: 1.1;
  font-weight: 300;
}

h3,
.has-heading-3-font-size {
  line-height: 1.1;
  font-weight: 300;
}

h4,
.has-heading-4-font-size {
  line-height: 1.2;
  font-weight: 300;
}

h5,
.has-heading-5-font-size {
  line-height: 1.2;
  font-weight: 300;
}

h6,
.has-heading-6-font-size {
  line-height: 1.2;
  font-weight: 300;
}

.has-section-head-01-font-size {
  font-weight: 300;
  line-height: 1.1;
}

.has-section-head-02-font-size {
  font-weight: 300;
  line-height: 1.1;
}

.has-section-head-03-font-size {
  font-weight: 300;
  line-height: 1.2;
}

.has-section-head-04-font-size {
  font-weight: 300;
  line-height: 1.2;
}

.has-content-head-01-font-size {
  font-weight: 300;
  line-height: 1.2;
}

.has-content-head-02-font-size {
  font-weight: 300;
  line-height: 1.3;
}

.has-content-head-03-font-size {
  font-weight: 300;
  line-height: 1.3;
}

.has-subheading-1-font-size {
  font-weight: 300;
  line-height: 1.2;
}

.has-subheading-2-font-size {
  font-weight: 300;
  line-height: 1.3;
}

.has-subheading-3-font-size {
  font-weight: 300;
  line-height: 1.3;
}

sup {
  font-size: 0.5em;
}

/** UTILITIES */
.is-position-sticky:not(.sticky-header) {
  top: calc(115px + var(--wp-admin--admin-bar--position-offset, 0px)) !important;
}

@media screen and (max-width: 767px) {
  .hide-on-mobile {
    display: none !important;
  }

  .mobile-no-background {
    background-image: none !important;
  }

  .mobile-background-cover {
    background-size: cover !important;
    background-position: top !important;
  }

  .mobile-background-contain {
    background-size: contain !important;
    background-repeat: no-repeat;
  }
}

/** FORMS */
form fieldset+fieldset {
  margin-top: 1rem !important;
}

input[type="text"],
input[type="tel"],
input[type="email"],
textarea,
select {
  background-color: #fff;
  border: 1px solid #a7adaa;
  border-radius: 37px;
  padding: 12px 20px;
  font-size: 0.9375rem;
}

form select {
  -moz-appearance: none;
  /* Firefox */
  -webkit-appearance: none;
  /* Safari and Chrome */
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 9'%3E%3Cpath stroke='%23333' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 1 8 8 1 1'/%3E%3C/svg%3E");
  background-size: 14px;
  background-repeat: no-repeat;
  background-position: center right 16px;
}

textarea {
  border-radius: 7px;
}

input[type="submit"] {
  background-color: var(--wp--preset--color--bright-green);
  color: var(--wp--preset--color--black);
  font-family: var(--wp--preset--font-family--public-sans);
  line-height: 1.5;
  padding-top: 12px;
  padding-right: 20px;
  padding-bottom: 12px;
  padding-left: 20px;
  border-radius: 9999px;
  border: none;
  font-size: 1.125rem;
}

form .hs_recaptcha {
  margin: 1rem 0;
}

/** HEADER */
.sticky-header {
  z-index: 100 !important;
}

.wp-block-search.wp-block-search__button-only {
  position: relative;
}

.wp-block-search__inside-wrapper {
  align-items: center;
}

.wp-block-search.wp-block-search__button-only .wp-block-search__input {
  position: absolute;
  top: 100%;
  left: 0;
}

.wp-block-search.wp-block-search__button-only .wp-block-search__button {
  padding: 11px;
  text-indent: -9999px;
}

.wp-block-search.wp-block-search__button-only .wp-block-search__button::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m14.75 14.75-3.378-3.378m0 0a6.222 6.222 0 1 0-8.8-8.8 6.222 6.222 0 0 0 8.8 8.8'/%3E%3C/svg%3E");
  content: '';
  display: block;
  width: 16px;
  height: 16px;
}

.wp-block-search__button svg {
  display: none !important;
}

/** HOME HERO */
.home-hero::before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-image: linear-gradient(to right, #0987E1, #0987E1 10%, rgba(255, 255, 255, 0.7) 10%, rgba(255, 255, 255, 0.7));
  clip-path: polygon(0px 0px, 100% 0, 100% 100%, calc(100% + 0.61*100vmax) 100vmax);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  backdrop-filter: blur(16px) saturate(180%);
  z-index: 3;
}

.home-hero::after {
  content: '';
  display: block;
  position: absolute;
  width: 10%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.7);
  z-index: 1;
}

.home-hero>div {
  position: relative;
  z-index: 3;
}

@media screen and (min-width: 768px) {
  .home-hero::after {
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    backdrop-filter: blur(16px) saturate(180%);
  }
}

@media screen and (max-width: 767px) {

  :root :where(p),
  :root :where(.wp-block-heading) {
    text-align: left;
  }

  .home-hero {
    min-height: 750px !important;
    background-size: auto clamp(350px, 65vw, 750px) !important;
    background-position: bottom left !important;
    background-repeat: no-repeat;
  }

  .home-hero::before {
    background: rgba(255, 255, 255, 0.7);
    clip-path: polygon(0px 0px, 100% 0, 100% 80%, 0 55%);
  }

  .home-hero::after {
    content: '';
    width: 0;
    height: 0;
    background-color: transparent;
    border-bottom: 40px solid transparent;
    border-top: 40px solid #0987E1;
    border-right: 40px solid transparent;
    z-index: 5;
  }

  .home-hero>.wp-block-group {
    padding-top: 40px !important;
    padding-left: var(--wp--preset--spacing--small) !important;
    padding-right: var(--wp--preset--spacing--small) !important;
  }

  .home-hero .wp-block-heading {
    text-align: left !important;
  }

  .home-hero .wp-block-group-is-layout-constrained>.wp-block-buttons {
    max-width: none;
    justify-content: end;
  }

  .home-hero .wp-block-group-is-layout-constrained>*:not(.wp-block-buttons) {
    margin-left: 0 !important;
  }
}

/** PAGE HERO */
.page-hero {
  background-size: cover !important;
  background-position: top right !important;
  background-repeat: no-repeat;
}

.page-hero-copy {
  position: relative;
  z-index: 8;
}

.page-hero-copy-wrapper {
  position: relative;
}

.page-hero::before {
  content: '';
  display: block;
  top: 0;
  left: 0;
  position: absolute;
  width: 72%;
  height: calc(100% + 224px);
  background-color: var(--wp--preset--color--pale-green);
  background-image: linear-gradient(to bottom, var(--wp--preset--color--pastel-green-02), var(--wp--preset--color--pastel-green-02) calc(100% - 224px), var(--wp--preset--color--pale-green) calc(100% - 224px), var(--wp--preset--color--pale-green));
  clip-path: polygon(0px 0px, 0px 100%, 0% 100%, 100% 0%);
  z-index: 6;
}

.page-hero::after {
  content: '';
  display: block;
  top: 100%;
  right: 0;
  position: absolute;
  width: 100%;
  height: 77px;
  background-color: var(--wp--preset--color--pastel-green-02);
}

@media screen and (max-width: 767px) {
  .page-hero {
    background-size: auto 60% !important;
    background-position: 15px 120% !important;
    background-repeat: no-repeat;
    margin-bottom: 124px !important;
  }

  .page-hero::before {
    clip-path: polygon(0 0, 100% 0, 100% 35%, 0 75%);
    width: 100%;
  }

  .page-hero::after {
    height: 24px !important;
  }

  .page-hero-copy {
    padding-top: 40px !important;
  }

  .page-hero-copy>*:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
    max-width: 26ch;
  }
}

/** SECTION INTRO */
@media screen and (max-width: 767px) {
  .section-intro>* {
    text-align: left !important;
  }
}

/** SECTION NAVIGATOR */
.section-navigator {
  list-style: none;
  padding: 0;
  scroll-margin-top: 150px;
}

.section-navigator a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
  padding-top: 12px;
  padding-bottom: 12px;
  border-top: 1px solid #e5e6e0;
}

.section-navigator a:not(:hover):not(.active) {
  color: #b1b1ab;
}

.section-navigator a::after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #b1b1ab;
}

.section-navigator li:last-child a {
  border-bottom: 1px solid #e5e6e0;
}

.section-navigator a:hover::after,
.section-navigator a.active::after {
  background-color: var(--wp--preset--color--bright-green);
}

.overlapping-cards {
  position: relative;
}

.overlapping-cards>.wp-block-group {
  transition: var(--transition);
  position: sticky;
  top: 150px;
  scroll-margin-top: 250px;
}

.overlapping-cards>.wp-block-group.active {
  z-index: 9 !important;
  background-color: #f5f4f1 !important;
}

@media screen and (max-width: 767px) {
  .section-with-navigation>.wp-block-group.is-position-sticky:first-child {
    display: none;
  }

  .section-navigation-content .wp-block-group {
    flex-basis: 100%;
  }

  .overlapping-card>.wp-block-group {
    flex-direction: column;
  }
  
  .overlapping-card>.wp-block-group>.wp-block-group,
  .overlapping-card>.wp-block-group>.wp-block-group>.wp-block-group {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .overlapping-cards>.wp-block-group {
    top: 92px;
  }
}

/** CTA BANNER */
.cta>.wp-block-group>.wp-block-group:first-child {
  padding-top: var(--wp--preset--spacing--standard);
  padding-bottom: var(--wp--preset--spacing--standard);
  padding-left: clamp(var(--wp--style--root--padding-left), 20vw, calc(((100vw - var(--wp--style--global--wide-size)) / 2)));
  padding-right: var(--wp--style--root--padding-right);
}

.cta>.wp-block-group>.wp-block-group:first-child>.wp-block-group {
  padding-left: 0;
  padding-right: 0;
}

.cta>.wp-block-group>.wp-block-group:last-child {
  padding-left: 0;
  padding-right: 0;
}

.cta .wp-block-image {
  height: 100%;
  min-height: 438px;
}

@media screen and (max-width: 767px) {
  .cta .wp-block-group-is-layout-grid {
    grid-template-columns: 1fr;
  }

  .cta .is-style-slanted img {
    clip-path: polygon(0 0, 80% 0, 100% 50%, 100% 100%, 20% 100%, 0% 50%);
  }

  .cta .wp-block-image {
    min-height: 272px;
  }
}

/** POST ARCHIVE */
.archive .wp-block-query li:first-child {
  grid-column: 1/-1;
}

@media screen and (min-width: 768px) {
  .archive .wp-block-query li:first-child>.wp-block-group {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

/** SOLUTIONS GRID */
@media screen and (max-width: 767px) {
  .solutions-grid {
    gap: 20px !important;
  }

  .solutions-grid>.wp-block-group {
    padding: 0 !important;
    min-height: 0 !important;
  }
}

/** TEAM LISTING */
.team-listing .wp-block-post-template li:first-child {
  grid-column: 1/-1;
}

.team-listing .wp-block-post-featured-image {
  aspect-ratio: 315/381 !important;
}

@media screen and (max-width: 600px) {

  .team-listing .wp-block-post>.wp-block-group,
  .team-intro {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wp--style--root--padding-left);
  }

  .team-listing .wp-block-post>.wp-block-group>.wp-block-group,
  .team-intro>* {
    margin: 0 !important;
    flex: 0 1 calc(50% - var(--wp--style--root--padding-left));
  }

  .team-intro>* {
    margin-top: 0 !important;
  }

  .team-intro .wp-block-post-featured-image {
    width: auto !important;
  }

  .team-listing h2 {
    font-size: 1.375rem !important;
  }

  .team-listing .wp-block-post-featured-image {
    aspect-ratio: 157/190 !important;
  }

  .single-kofile_team .wp-block-group.has-background {
    background-image: none !important;
  }
}

@media screen and (max-width: 300px) {

  .team-listing .wp-block-post>.wp-block-group,
  .team-intro {
    flex-direction: column;
  }
}

/** FOOTER */
footer h2 a {
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  footer>.has-background {
    background-image: none !important;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  footer .wp-block-site-logo img {
    width: 152px;
  }

  .footer-menus {
    gap: var(--wp--preset--spacing--large) !important;
  }

  .footer-menus nav {
    gap: 20px !important;
  }

  footer .wp-block-buttons,
  footer .wp-block-button {
    width: 100%;
  }
}