* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  margin-bottom: 1rem;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: currentcolor;
  text-decoration: none;
}
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover {
  text-decoration: underline;
}
h1 + p,
h2 + p,
h3 + p,
h4 + p,
h5 + p,
h6 + p {
  margin-top: 1rem;
}
h1 + h1,
h1 h2,
h1 h3,
h1 h4,
h1 h5,
h1 h6,
h2 + h1,
h2 h2,
h2 h3,
h2 h4,
h2 h5,
h2 h6,
h3 + h1,
h3 h2,
h3 h3,
h3 h4,
h3 h5,
h3 h6,
h4 + h1,
h4 h2,
h4 h3,
h4 h4,
h4 h5,
h4 h6,
h5 + h1,
h5 h2,
h5 h3,
h5 h4,
h5 h5,
h5 h6,
h6 + h1,
h6 h2,
h6 h3,
h6 h4,
h6 h5,
h6 h6 {
  margin-top: 1rem;
}

ul {
  padding-left: 20px;
}

legend,
label {
  font-weight: 700;
}

label {
  font-size: var(--wp--preset--font-size--small);
}

input,
textarea,
select {
  width: 100%;
  border: 1px solid;
  border-radius: 4px;
  padding: calc(0.367em + 2px) calc(0.667em + 2px);
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--normal);
  line-height: var(--wp--custom--typography--line-height--normal);
  font-weight: normal;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: border-color 0.2s ease;
}
input:focus,
textarea:focus,
select:focus {
  border-width: 2px;
}

input[type=radio] {
  padding: 0;
  width: auto;
  height: auto;
  line-height: normal;
  -webkit-appearance: radio;
  -moz-appearance: radio;
  appearance: radio;
}

input[type=checkbox] {
  padding: 0;
  width: auto;
  height: auto;
  line-height: normal;
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  appearance: checkbox;
}

input[type=submit] {
  cursor: pointer;
}

figcaption {
  font-size: var(--wp--preset--font-size--small) !important;
}

.has-box-shadow {
  box-shadow: 0 20px 30px -10px rgba(0, 0, 0, 0.15);
}

a {
  text-decoration-thickness: 2px;
  text-underline-offset: 0.25ch;
}
a:hover, a:focus {
  text-decoration: none;
}
a:active {
  text-decoration-thickness: 2px;
}
a img {
  transition: opacity 400ms linear;
}
a:hover img {
  opacity: 0.8;
}

.no-underline a {
  text-decoration: none;
}

.font-size-huge {
  font-size: var(--wp--custom--typography--font-size--huge) !important;
}

.wp-site-blocks {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

header a:not(.custom-logo-link),
footer a:not(.custom-logo-link) {
  text-decoration: none;
  transition: opacity 0.2s linear;
  -webkit-backface-visibility: hidden;
}
header a:not(.custom-logo-link):hover,
footer a:not(.custom-logo-link):hover {
  opacity: 0.7;
}

/* 
	header
*/
@media (max-width: 781px) {
  .header-wrap {
    flex-wrap: nowrap !important;
  }
  nav {
    justify-content: flex-end !important;
  }
}
.wp-block-navigation__submenu-container {
  z-index: 99 !important;
  transform: translate(-50%, 0%) !important;
  left: 50% !important;
}
.wp-block-navigation__submenu-container li:first-of-type {
  padding-top: 1rem;
}
.wp-block-navigation__submenu-container li:last-of-type {
  padding-bottom: 1rem;
}

.wp-block-navigation__submenu-container {
  border: none !important;
  border-radius: 8px;
  box-shadow: 0 20px 30px -10px rgba(0, 0, 0, 0.15);
}

.wp-block-navigation :where(.wp-block-navigation__submenu-container) .wp-block-navigation-item__content {
  padding: 0.2em 1em;
}

.wp-block-spacer {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

footer {
  margin-top: auto !important;
}

/*
 * Responsive menu container padding.
 * This ensures the responsive container inherits the same
 * spacing defined above. This behavior may be built into
 * the Block Editor in the future.
 */
.wp-block-navigation__responsive-container.is-menu-open {
  padding-top: var(--wp--custom--spacing--outer);
  padding-bottom: var(--wp--custom--spacing--large, 8rem);
  padding-right: var(--wp--custom--spacing--outer);
  padding-left: var(--wp--custom--spacing--outer);
}

/*
 * Heading styles.
 * Slight modifications to spacing around headings to help
 * distinguish content sections within the post content only.
 *
 * Using !important as the blockGap value overrides it without.
 */
.wp-block-post-content p + h1:not([style*=margin-top]),
.wp-block-post-content p + h2:not([style*=margin-top]),
.wp-block-post-content p + h3:not([style*=margin-top]),
.wp-block-post-content p + h4:not([style*=margin-top]),
.wp-block-post-content span + h1:not([style*=margin-top]),
.wp-block-post-content span + h2:not([style*=margin-top]),
.wp-block-post-content span + h3:not([style*=margin-top]),
.wp-block-post-content span + h4:not([style*=margin-top]) {
  margin-top: var(--wp--custom--spacing--medium, 6rem) !important;
}

/*
 * Alignment styles.
 * These rules are temporary, and should not be relied on or
 * modified too heavily by themes or plugins that build on
 * Wabi. These are meant to be a precursor to
 * a global solution provided by the Block Editor.
 *
 * Relevant issues:
 * https://github.com/WordPress/gutenberg/issues/35607
 * https://github.com/WordPress/gutenberg/issues/35884
 */
.wp-site-blocks,
body > .is-root-container,
.edit-post-visual-editor__post-title-wrapper,
.wp-block-group.alignfull,
.wp-block-group.has-background,
.wp-block-cover.alignfull,
.is-root-container .wp-block[data-align=full] > .wp-block-group,
.is-root-container .wp-block[data-align=full] > .wp-block-cover,
.wp-block-columns.alignfull,
h1.alignfull,
h2.alignfull,
h3.alignfull,
h4.alignfull,
h5.alignfull,
h6.alignfull,
.wp-block-media-text.alignfull,
.wp-block-query.alignfull {
  padding-left: var(--wp--custom--spacing--outer);
  padding-right: var(--wp--custom--spacing--outer);
}

.wp-site-blocks .alignfull,
.wp-site-blocks > .wp-block-group.has-background,
.wp-site-blocks > .wp-block-cover,
.wp-site-blocks > .wp-block-template-part > .wp-block-group.has-background,
.wp-site-blocks > .wp-block-template-part > .wp-block-cover,
body > .is-root-container > .wp-block-cover,
body > .is-root-container > .wp-block-template-part > .wp-block-group.has-background,
body > .is-root-container > .wp-block-template-part > .wp-block-cover,
.is-root-container .wp-block[data-align=full] {
  margin-left: calc(-1 * var(--wp--custom--spacing--outer)) !important;
  margin-right: calc(-1 * var(--wp--custom--spacing--outer)) !important;
  width: unset;
}

/* Blocks inside columns don't have negative margins. */
.wp-site-blocks .wp-block-columns .wp-block-column .alignfull,
.is-root-container .wp-block-columns .wp-block-column .wp-block[data-align=full],
.wp-site-blocks .alignfull:not(.wp-block-group) .alignfull,
.is-root-container .wp-block[data-align=full] > *:not(.wp-block-group) .wp-block[data-align=full] {
  margin-left: auto !important;
  margin-right: auto !important;
  width: inherit;
}

/*
 * Remove the auto-padding added to group blocks
 * with background colors applied.
 */
.wp-block-group:where(.has-background) {
  padding: 0;
}

/**
	block: pullquote
**/
cite,
.wp-block-pullquote__citation {
  font-weight: 700;
  display: flex !important;
  align-items: center;
}
cite img,
.wp-block-pullquote__citation img {
  border-radius: 50%;
  max-width: 44px;
  margin-right: 10px;
}

.wp-block-pullquote cite,
.wp-block-pullquote footer,
.wp-block-pullquote__citation,
cite {
  font-size: var(--wp--preset--font-size--small) !important;
}

.wp-block-pullquote {
  text-align: inherit;
  padding: var(--wp--custom--spacing--small);
}
.wp-block-pullquote blockquote {
  margin: 0;
}
.wp-block-pullquote p {
  font-size: inherit;
  line-height: inherit;
}
.wp-block-pullquote p:first-of-type {
  margin-top: 0;
}
.wp-block-pullquote cite,
.wp-block-pullquote .wp-block-pullquote__citation {
  text-transform: none;
}

.wp-block-pullquote.has-text-align-center {
  text-align: center;
}
.wp-block-pullquote.has-text-align-center cite {
  justify-content: center;
}

.wp-block-pullquote.has-text-align-right {
  text-align: right;
}
.wp-block-pullquote.has-text-align-right cite {
  justify-content: flex-end;
}

cite,
.wp-block-pullquote__citation {
  font-family: var(--wp--preset--font-family--body);
}

.wp-block-pullquote.alignfull {
  padding-top: calc(2.5 * var(--wp--custom--spacing--outer));
  padding-bottom: calc(2.5 * var(--wp--custom--spacing--outer));
}

/*
 * Image block, within post content.
 * Add additional margin to the image block, so that
 * it displays with the same spacing as paragraphs do.
 */
.wp-block-post-content p + .wp-block-image {
  margin-top: calc(var(--wp--style--block-gap) * 1.5) !important;
  margin-bottom: calc(var(--wp--style--block-gap) * 1.5) !important;
}

/*
 * Image block, when alignfull within post content.
 */
.wp-block-post-content p + .wp-block-image.alignfull {
  margin-top: calc(1.25 * var(--wp--custom--spacing--medium, 8rem)) !important;
  margin-bottom: calc(1.25 * var(--wp--custom--spacing--medium, 8rem)) !important;
}

/*
	query block
*/
.wp-block-post-featured-image a {
  display: block;
}
.wp-block-post-featured-image img {
  margin: 0 auto;
}

/*
 * Post author styles.
 * Minor tweaks to customize the appearance of the
 * core/post-author block.
 */
.is-style-avatar-only .wp-block-post-author__content {
  display: none;
}

.wp-block-post-author__content {
  align-self: center;
}

.wp-block-post-author__avatar img {
  border-radius: 100%;
  vertical-align: bottom;
}

/*
 * Post excerpt styles.
 * Remove excess margin from the block.
 */
.wp-block-post-excerpt__excerpt {
  margin-top: initial;
  margin-bottom: initial;
}

/*
 * Social link styles.
 * Use currentColor for social links to better support style variants.
 * Remove the social link transform transition.
 */
.wp-block-social-links.is-style-logos-only > .wp-social-link {
  color: currentColor;
}

.wp-block-social-link {
  transition: none;
  transform: none !important;
}

/*
 * Query Pagination styles.
 * Remove margin that throws this off alignment.
 */
.wp-block-query-pagination > .wp-block-query-pagination-previous {
  margin-left: 0;
  margin-right: 0;
}

/*
 * Registered block styles.
 */
.wp-block-post-terms {
  margin-bottom: var(--wp--custom--spacing--small);
}

.wp-block-post-terms__separator {
  display: none;
}

.taxonomy-as-buttons {
  gap: 0 !important;
}
.taxonomy-as-buttons .wp-block-post-terms {
  gap: 0 !important;
}
.taxonomy-as-buttons a {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 7px;
  text-decoration: none;
  padding: 5px 14px;
  font-size: var(--wp--preset--font-size--small);
  font-weight: 500;
  display: inline-block;
  margin: 0 0.3rem 0.3rem 0;
  transition: all 0.2s;
}
.taxonomy-as-buttons a:hover {
  opacity: 0.8;
}

.is-style-buttons.wp-block-post-terms .wp-block-post-terms__separator {
  display: none;
}

/*
 * PATTERN > Subscribe Forms
 */
form.default-form {
  display: flex;
}
form.default-form .wp-block-button__link {
  width: auto;
  margin-left: 5px;
  cursor: pointer;
}

@media (max-width: 781px) {
  form.default-form {
    flex-flow: column;
  }
  .wp-block-button__link {
    width: 100%;
    margin: 5px 0;
  }
}
form.inline-form {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
  background-color: #fff;
  border-radius: 8px;
  display: flex;
  align-items: center;
  padding: 0.5rem 0;
  max-width: 40rem;
  margin: auto;
  color: var(--wp--preset--color--body);
}
form.inline-form input {
  border: 0;
  background-color: #fff;
  text-align: left;
  line-height: 1.5;
  padding: 5px 0px 5px 20px;
  font-size: var(--wp--preset--font-size--normal);
}
form.inline-form input:focus {
  outline: 0;
}
form.inline-form input.wp-block-button__link {
  text-align: right;
  margin-right: 20px;
  background: none;
  outline: none;
  color: currentcolor;
  cursor: pointer;
}

@media (max-width: 781px) {
  form.inline-form {
    flex-flow: column;
  }
  form.inline-form input {
    text-align: center;
    width: 100%;
    margin: auto;
    border-bottom: 1px solid;
  }
  form.inline-form input.wp-block-button__link {
    text-align: center;
    width: 100%;
    margin: auto;
    border: none;
  }
}
form.underline-form {
  display: flex;
  border-radius: 0;
  background: none;
  color: currentcolor;
}
form.underline-form input::placeholder {
  color: currentcolor;
  opacity: 1;
}
form.underline-form input:not(.wp-block-button__link) {
  text-align: left;
  padding: 5px 0;
  background: none;
  border: none;
  border-radius: 0;
  border-bottom: 2px solid;
  color: currentcolor;
}

@media (max-width: 781px) {
  form.default-form {
    flex-flow: column;
  }
  .wp-block-button__link {
    width: 100%;
    margin: 5px 0;
  }
}
/*
	modal styles
*/
.blocker {
  z-index: 11;
}

.modal {
  text-align: center;
  max-width: 44rem;
  padding: 80px;
  border-radius: 7px;
  box-shadow: 0 20px 30px rgba(1, 1, 1, 0.3);
}

@media (max-width: 781px) {
  .modal {
    padding: 40px;
  }
}
form input {
  margin: 2px 0;
}
form input[type=submit],
form button {
  border: none;
}

/*
	FAQ pattern
*/
.wp-block-group.faq h2 {
  font-size: var(--wp--preset--font-size--normal);
  padding: 0;
  margin: 0;
}
.wp-block-group.faq p {
  margin-top: var(--wp--custom--spacing--tiny);
}

.wp-block-group.faq {
  margin-top: calc(1.5 * var(--wp--custom--spacing--small));
  margin-bottom: var(--wp--custom--spacing--small);
}

/*
	cover with media column taking full height 
*/
.cover-media-full-height-pattern {
  min-height: none !important;
  padding: 0 !important;
}
.cover-media-full-height-pattern .wp-block-columns {
  margin: 0;
  padding: 0;
  gap: unset;
}
.cover-media-full-height-pattern .wp-block-column {
  flex-basis: 50% !important;
}
.cover-media-full-height-pattern .wp-block-image {
  margin: 0;
}

.cover-media-text-column:where(:not(.alignleft):not(.alignright)) {
  padding-left: calc(2.5 * var(--wp--custom--spacing--outer));
  padding-right: calc(2.5 * var(--wp--custom--spacing--outer));
}

@media (max-width: 781px) {
  .cover-media-text-column,
.wp-block-media-text .wp-block-media-text__content {
    padding: calc(2 * var(--wp--custom--spacing--outer)) var(--wp--custom--spacing--outer);
  }
}
/*
	media text block
*/
@media (max-width: 600px) {
  .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
    padding: 0;
  }
  .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content .is-layout-constrained.wp-block-group {
    padding: 0 !important;
  }
}
/*
	wp-block-separator
*/
.wp-block-separator {
  margin-top: var(--wp--custom--spacing--small);
  margin-bottom: var(--wp--custom--spacing--small);
  margin-left: 0;
}

/*
	wp-block-quote
*/
.wp-block-quote {
  margin-left: 0;
  margin-right: 0;
}

.wp-block-quote:not(.is-style-plain) {
  border-left: 2px solid;
  padding-left: var(--wp--custom--spacing--outer);
}

/*
 * Utility styles.
 * A couple utilities that are used throughout patterns and parts
 * where core does not support these functionalities.
 */
ul.has-normal-font-size {
  padding-left: 20px;
}
ul.has-normal-font-size li {
  margin: 0.5rem 0;
}

.my-0 {
  margin-bottom: 0 !important;
  margin-top: 0 !important;
}

.mt-0 {
  margin-top: 0 !important;
}

.mt-0 .wp-block-post-template {
  margin-top: 0 !important;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mt-1 {
  margin-top: 1rem !important;
}

.mt-2 {
  margin-top: 2rem !important;
}

.items-start {
  align-items: flex-start !important;
}

.relative {
  position: relative;
}

.pr-0 {
  padding-right: 0 !important;
}

.pl-0 {
  padding-left: 0 !important;
}

.p-0 {
  padding: 0 !important;
}

/*
	border styles 
*/
.b-left {
  border-left: 2px solid;
}

.b-right {
  border-right: 2px solid;
}

.b-top {
  border-top: 2px solid;
}

.b-bottom {
  border-bottom: 2px solid;
}

.b-top-0 {
  border-top: none;
}

.b-bottom-0 {
  border-bottom: none;
}

.b-left-0 {
  border-left: none;
}

.b-right-0 {
  border-right: none;
}

/*
	group > testimonial-with-button 
*/
.testimonial-with-button {
  position: relative;
}
.testimonial-with-button .wp-block-buttons {
  position: absolute;
  bottom: 30px;
  left: 20px;
}
.testimonial-with-button .wp-block-buttons .wp-block-button__link {
  background: #fff !important;
  border-radius: 30px !important;
  box-shadow: 5px 5px 0 #000;
}

.testimonial-with-button-right .wp-block-buttons {
  left: auto;
  right: 20px;
}

.button-with-svg .wp-block-button__link {
  display: flex;
  align-items: center;
}
.button-with-svg .wp-block-button__link svg {
  margin-right: 5px;
}

.wp-block-navigation__responsive-close {
  max-width: none !important;
  margin: 0 !important;
}

.equal-height-group {
  display: flex;
  flex-flow: wrap;
  height: 100%;
}

body.logged-in .hide-if-logged-in {
  display: none;
}

body:not(.logged-in) .hide-if-logged-out {
  display: none;
}

@media (min-width: 781px) {
  .hide-on-desktop {
    display: none !important;
  }
}
@media (max-width: 782px) {
  .hide-on-tablet {
    display: none !important;
  }
}
@media (max-width: 599px) {
  .hide-on-mobile {
    display: none !important;
  }
}
@media (max-width: 781px) {
  .wp-block-site-title {
    font-size: 1em;
  }
  .wp-block-site-logo img.custom-logo {
    max-width: 100px;
    height: auto;
  }
  .wp-block-site-logo + .wp-block-site-title {
    display: none;
  }
  .is-responsive.wp-block-navigation {
    order: 10;
  }
  .wp-block-navigation__container,
.wp-block-navigation-item {
    width: 100%;
    align-items: center;
  }
  .wp-block-navigation__container a,
.wp-block-navigation-item a {
    outline: none;
  }
  .wp-block-navigation__submenu-container {
    padding: 0 20px;
  }
  header .wp-block-group,
footer .wp-block-group,
.header-group .wp-block-group,
.wp-block-template-part .wp-block-group,
.wp-block-navigation .wp-block-page-list,
.wp-block-navigation,
.wp-block-navigation .wp-block-page-list,
.wp-block-navigation__container,
.wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-container,
.wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-dialog {
    gap: 0.5rem;
  }
  .single-pagination {
    text-align: left;
  }
  .wp-block-navigation__submenu-container {
    left: auto !important;
    right: auto !important;
    transform: none;
    min-width: 100% !important;
    width: 100% !important;
    position: relative !important;
    padding: 10px 0 !important;
    font-size: 0.8em;
  }
  .grid,
.grid-3 {
    grid-template-columns: repeat(auto-fill, minmax(100%, 1fr)) !important;
  }
  .lesson-thumb {
    width: 60px;
    height: 40px;
    border-radius: 8px;
  }
  .lesson-title {
    font-size: calc(0.7 * var(--wp--preset--font-size--normal));
  }
  .lesson-button {
    display: none;
  }
  body.post-type-archive-courses figure.wp-block-post-featured-image, body.single-courses figure.wp-block-post-featured-image, body.page-template-default figure.wp-block-post-featured-image, body.blog figure.wp-block-post-featured-image, body.category figure.wp-block-post-featured-image {
    min-height: 30vh;
  }
  .wp-block-navigation__responsive-container:not(.has-background) .wp-block-navigation__submenu-container {
    border: none !important;
  }
  .mobile-min-height-empty-cover {
    min-height: 320px !important;
  }
  .mobile-border-0 {
    border: none !important;
  }
  .mobile-border-top {
    border-top: 2px solid !important;
  }
  .mobile-border-bottom {
    border-bottom: 2px solid !important;
  }
  .mobile-border-left {
    border-left: 2px solid !important;
  }
  .mobile-border-right {
    border-right: 2px solid !important;
  }
  .mobile-padding-0 {
    padding: 0 !important;
  }
  .mobile-margin-0 {
    margin: 0 !important;
  }
  .mobile-margin-top-0 {
    margin-top: 0 !important;
  }
  .mobile-justification-center {
    justify-content: center !important;
  }
  .footer-default {
    flex-flow: column;
  }
  .wp-block-cover .wp-block-group.alignfull,
.wp-block-cover .wp-block-columns.alignfull {
    padding-left: 0;
    padding-right: 0;
  }
  .wp-block-navigation__submenu-container {
    box-shadow: none;
  }
  .mobile-min-height-320 {
    min-height: 320px !important;
  }
  .keep-original-gallery-columns-on-mobile.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
    width: calc(30% - var(--wp--style--unstable-gallery-gap, 16px) / 2);
  }
}
