/*
Theme Name:        Femmeprenista
Theme URI:         https://femmeprenista.com
Author:            Carlene Nisbett / Thrivology Limited
Author URI:        https://femmeprenista.com
Description:       Editorial WordPress theme for Femmeprenista — a private global collective for ambitious female founders building profitable, fulfilling online businesses without burning out. Continuous warm cream canvas, Playfair Display + Lato typography, rare deliberate magenta accents. Custom Femmeprenista theme.
Requires at least: 5.0
Requires PHP:      7.4
Tested up to:      6.9
Version:           1.0.9
License:           Proprietary — for Thrivology Limited use only
Text Domain:       femmeprenista
Tags:              editorial, one-column, custom-menu, featured-images, sticky-post, threaded-comments, translation-ready, theme-options
*/

/*--------------------------

1. common
    - main
    - typography
    - images
    - social
    - color backgrounds
    - button
    - link
    - badge
    - spaces
2. frame
    - main
    - preloader
    - cursor
    - custom scrollbar
    - page transitions
3. components
    - dots
    - cover
    - image frame
    - cards
    - overlay
    - portfolio items
    - partners
    - icon box
    - fields
    - reviews
    - pagination
    - accordion
    - prices
    - 404
4. sections
    - navigation
    - partners
    - counters
    - about
    - footers
    - instagram
    - services
    - video
    - reviews
    - subscribe
    - map
    - portfolio
5. custom
    - fancybox
    - swiper
6. template-styles
    - logo
    - hero
    - scroll hint 1
    - small banner
    - content frame
    - team
    - reviews
    - hero 2
    - hero 3
    - scroll hint 2
    - service card
    - project info

--------------------------*/
/* -------------------------------------------

main

------------------------------------------- */
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
  margin: 0;
}

html,
body {
  padding: 0;
  margin: 0;
  font-family: var(--fp-body), sans-serif;
  font-size: 16px;
  font-weight: 300;
  color: rgba(0, 0, 0, 0.5);
  line-height: 150%;
}
@media screen and (max-width: 768px) {
  html, body {
    font-size: 15px;
  }
}

.fp-wrapper {
  position: relative;
  overflow: hidden;
  max-width: 100%;
}

.container {
  pointer-events: all;
}

.fp-relative {
  position: relative;
}

.fp-o-hidden {
  overflow: hidden;
}

.fp-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.fp-vert-between {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 100%;
}

@media screen and (max-width: 768px) {
  .fp-mobile-hidden {
    display: none;
  }
}

section {
  position: relative;
  overflow: hidden;
}
section.elementor-section {
  overflow: visible;
}

/* -------------------------------------------

typography

------------------------------------------- */
h1,
.fp-h1,
h2,
.fp-h12,
h3,
.fp-h3,
h4,
.fp-h4,
h5,
.fp-h5,
h6,
.fp-h6 {
  font-family: var(--fp-body), sans-serif;
  color: rgb(0, 0, 0);
  font-weight: 500;
  line-height: 120%;
  word-wrap: break-word;
}
@media screen and (max-width: 768px) {
  h1 br,
.fp-h1 br,
h2 br,
.fp-h12 br,
h3 br,
.fp-h3 br,
h4 br,
.fp-h4 br,
h5 br,
.fp-h5 br,
h6 br,
.fp-h6 br {
    display: none;
  }
}

h1,
.fp-h1 {
  font-size: 86px;
}
@media screen and (max-width: 1024px) {
  h1, .fp-h1 {
    font-size: 62px;
  }
}
@media screen and (max-width: 768px) {
  h1, .fp-h1 {
    font-size: 42px;
  }
}

h2,
.fp-h2 {
  font-size: 68px;
  line-height: 120%;
}
@media screen and (max-width: 1024px) {
  h2, .fp-h2 {
    font-size: 52px;
  }
}
@media screen and (max-width: 768px) {
  h2, .fp-h2 {
    font-size: 36px;
  }
}

h3,
.fp-h3 {
  font-size: 42px;
}
@media screen and (max-width: 1024px) {
  h3, .fp-h3 {
    font-size: 36px;
  }
}
@media screen and (max-width: 768px) {
  h3, .fp-h3 {
    font-size: 30px;
  }
}

h4,
.fp-h4 {
  font-size: 28px;
}
@media screen and (max-width: 1024px) {
  h4, .fp-h4 {
    font-size: 26px;
  }
}
@media screen and (max-width: 768px) {
  h4, .fp-h4 {
    font-size: 24px;
  }
}

h5,
.fp-h5 {
  font-size: 20px;
  line-height: 150%;
}
@media screen and (max-width: 768px) {
  h5, .fp-h5 {
    font-size: 18px;
  }
}

h6,
.fp-h6 {
  font-size: 18px;
  line-height: 150%;
}
@media screen and (max-width: 768px) {
  h6, .fp-h6 {
    font-size: 16px;
  }
}

.fp-no-wrap {
  white-space: nowrap;
}

blockquote {
  padding: 60px;
  background-color: rgba(0, 0, 0, 0.05);
  font-size: 18px;
  color: rgb(0, 0, 0);
  font-style: italic;
  border-left: solid 4px rgb(195, 45, 205);
}
@media screen and (max-width: 768px) {
  blockquote {
    padding: 30px;
    font-size: 16px;
  }
}

.fp-text-sm {
  font-size: 15px;
}

.fp-text-lg {
  font-size: 18px;
  line-height: 170%;
}

.fp-text-xl {
  font-size: 22px;
  line-height: 180%;
}
@media screen and (max-width: 768px) {
  .fp-text-xl {
    font-size: 20px;
  }
}

.fp-text p {
  margin-bottom: 30px;
}
.fp-text p:last-child {
  margin-bottom: 0px;
}

.fp-upper {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
}

.fp-bold {
  font-weight: 500;
}

.fp-thin {
  font-weight: 100;
}

a {
  color: inherit;
  text-decoration: none;
}

.fp-complex-title {
  line-height: normal;
}

.fp-accent {
  color: rgb(195, 45, 205);
}

.fp-light {
  color: rgb(255, 255, 255) !important;
}
.fp-light a {
  color: rgb(255, 255, 255) !important;
}

.fp-muted {
  color: var(--fp-charcoal);
}

.fp-dark {
  color: rgb(0, 0, 0);
}

.fp-light-soft {
  color: rgba(255, 255, 255, 0.4);
}

.fp-dark-soft {
  color: rgba(0, 0, 0, 0.5);
}

/* [REMOVED: Decorative element] */

.fp-center {
  text-align: center;
}

.fp-left {
  text-align: left;
}

.fp-right {
  text-align: right;
}

@media screen and (max-width: 576px) {
  .fp-sm-center {
    text-align: center;
  }
}

.fp-suptitle {
  position: relative;
  display: block;
  margin-bottom: 60px;
}
.fp-suptitle:before {
  content: "";
  position: absolute;
  right: calc(100% + 30px);
  top: 10px;
  width: 600px;
  height: 1px;
  background-color: rgb(255, 255, 255);
  opacity: 0.2;
}
.fp-suptitle.fp-suptitle-right {
  text-align: right;
}
.fp-suptitle.fp-suptitle-right:before {
  left: calc(100% + 30px);
}
@media screen and (max-width: 768px) {
  .fp-suptitle.fp-suptitle-right {
    text-align: center;
  }
  .fp-suptitle.fp-suptitle-right:before {
    display: none;
  }
}
.fp-suptitle.fp-suptitle-dark:before {
  background-color: rgb(0, 0, 0);
  opacity: 0.1;
}
@media screen and (max-width: 768px) {
  .fp-suptitle {
    margin-bottom: 60px;
  }
}

.fp-divider {
  width: 100%;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.1);
}

.fp-img-frame {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding-bottom: 140%;
}
.fp-img-frame img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* -------------------------------------------

link

------------------------------------------- */
.fp-link {
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 12px;
}
.fp-link svg {
  margin-left: 15px;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  padding: 10px;
  background-color: rgba(255, 255, 255, 0.1);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-link svg path {
  fill: rgb(255, 255, 255);
}
.fp-link.fp-accent svg {
  background-color: rgba(255, 255, 255, 0.1);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-link.fp-accent svg path {
  fill: rgb(195, 45, 205);
}
.fp-link.fp-dark svg {
  background-color: rgba(0, 0, 0, 0.1);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-link.fp-dark svg path {
  fill: rgb(0, 0, 0);
}
.fp-link:hover svg {
  -webkit-transform: scale(1.15);
          transform: scale(1.15);
}
.fp-link.fp-down-arrow svg {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.fp-link.fp-down-arrow:hover svg {
  -webkit-transform: scale(1.15) rotate(90deg);
          transform: scale(1.15) rotate(90deg);
}
.fp-link.fp-icon-left {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.fp-link.fp-icon-left svg {
  margin-left: 0;
  margin-right: 15px;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.fp-link.fp-icon-left:hover svg {
  -webkit-transform: scale(1.15) rotate(180deg);
          transform: scale(1.15) rotate(180deg);
}

/* -------------------------------------------

button

------------------------------------------- */
body .metform-form-content {
  overflow-x: visible;
}
.fp-button {
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: none;
  letter-spacing: 2px;
  font-size: 12px;
  background-color: rgb(195, 45, 205);
  color: rgb(0, 0, 0);
  border-radius: 70px;
  padding: 0 15px 0 50px;
  height: 70px;
  text-transform: uppercase;
  font-weight: 500;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  -webkit-appearance: none;
  appearance: none;
}
.fp-button span {
  white-space: nowrap;
}
.fp-button svg {
  vertical-align: middle;
  margin-left: 30px;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  padding: 10px;
  background-color: rgb(0, 0, 0);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-button svg path {
  fill: rgb(195, 45, 205);
}
.fp-button.fp-icon-button {
  padding: 15px;
}
.fp-button.fp-icon-button svg {
  margin-left: 0;
}
.fp-button.fp-icon-button-sm {
  padding: 0;
  height: 40px;
}
.fp-button.fp-icon-button-sm svg {
  margin-left: 0;
  background-color: rgb(195, 45, 205);
}
.fp-button.fp-icon-button-sm svg path {
  fill: rgb(0, 0, 0);
}
.fp-button:hover {
  -webkit-transform: scale(1.015);
          transform: scale(1.015);
  -webkit-filter: brightness(110%);
          filter: brightness(110%);
}
.fp-button:hover svg {
  -webkit-transform: scale(1.15);
          transform: scale(1.15);
}
.fp-button.fp-arrow-down svg {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}
.fp-button.fp-arrow-down:hover {
  -webkit-transform: scale(1.015);
          transform: scale(1.015);
  -webkit-filter: brightness(110%);
          filter: brightness(110%);
}
.fp-button.fp-arrow-down:hover svg {
  -webkit-transform: scale(1.15) rotate(90deg);
          transform: scale(1.15) rotate(90deg);
}
@media screen and (max-width: 768px) {
  .fp-button {
    height: 60px;
    padding: 0 10px 0 40px;
  }
  .fp-button svg {
    margin-left: 25px;
  }
}

/* -------------------------------------------

form

------------------------------------------- */
input,
textarea {
  position: relative;
  height: 70px;
  padding: 0 30px;
  width: 100%;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  font-family: var(--fp-body), sans-serif;
  color: rgb(0, 0, 0);
  border: none;
  border-bottom: solid 1px rgba(0, 0, 0, 0.2);
  margin-bottom: 30px;
}
input:focus,
textarea:focus {
  outline: inherit;
}
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}
input::-moz-placeholder, textarea::-moz-placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}
input::placeholder,
textarea::placeholder {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.5);
}

textarea {
  padding: 15px 30px;
  height: 300px;
}

/* -------------------------------------------

breadcrumbs

------------------------------------------- */
.fp-breadcrumbs {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
}
.fp-breadcrumbs:before {
  content: "";
  position: absolute;
  right: calc(100% + 30px);
  top: 10px;
  width: 100vw;
  height: 1px;
  background-color: rgba(0, 0, 0, 0.1);
}
.fp-breadcrumbs li {
  list-style-type: none;
}
.fp-breadcrumbs li:after {
  content: "/";
  margin: 0 15px;
  color: rgb(0, 0, 0);
}
.fp-breadcrumbs li a {
  color: rgb(0, 0, 0);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  font-size: 12px;
  white-space: nowrap;
  -webkit-transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-breadcrumbs li a:hover {
  color: rgb(195, 45, 205);
}
.fp-breadcrumbs li:last-child {
  margin-right: 0;
  cursor: not-allowed;
}
.fp-breadcrumbs li:last-child a {
  opacity: 0.4;
  pointer-events: none;
}
.fp-breadcrumbs li:last-child:after {
  display: none;
}
.fp-breadcrumbs.fp-light:before {
  background-color: rgba(255, 255, 255, 0.1);
}
.fp-breadcrumbs.fp-light li:after {
  color: rgba(255, 255, 255, 0.9);
}
.fp-breadcrumbs.fp-light li a:hover {
  color: rgb(195, 45, 205) !important;
}
.fp-breadcrumbs.fp-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 768px) {
  .fp-breadcrumbs {
    max-width: 100%;
    overflow: hidden;
  }
}

/* -------------------------------------------

backgrounds

------------------------------------------- */
.fp-dark-bg {
  position: relative;
}
.fp-dark-bg:before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none !important;
  z-index: 2;
  -webkit-backdrop-filter: invert(100%);
          backdrop-filter: invert(100%);
}
.fp-dark-bg .mi-invert-fix {
  height: 100%;
  position: relative;
  pointer-events: none;
  z-index: 3;
}
.fp-dark-bg .mi-invert-fix * {
  pointer-events: all;
}
.fp-soft-bg {
  background-color: rgb(242, 242, 242);
}

/* -------------------------------------------

spaces

------------------------------------------- */
.fp-mr-30 {
  margin-right: 30px;
}

.fp-mb-5 {
  margin-bottom: 5px;
}

.fp-mb-10 {
  margin-bottom: 10px;
}

.fp-mb-15 {
  margin-bottom: 15px;
}

.fp-mb-20 {
  margin-bottom: 15px;
}

.fp-mb-30 {
  margin-bottom: 30px;
}

.fp-mb-60 {
  margin-bottom: 60px;
}

.fp-mb-90 {
  margin-bottom: 90px;
}

.fp-mb-120 {
  margin-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .fp-mb-120 {
    margin-bottom: 90px;
  }
}

.fp-mt-suptitle-offset {
  margin-top: 70px;
}
@media screen and (max-width: 767px) {
  .fp-mt-suptitle-offset {
    margin-top: 30px;
  }
}

.fp-p-120-120 {
  padding-top: 120px;
  padding-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .fp-p-120-120 {
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

.fp-p-120-90 {
  padding-top: 120px;
  padding-bottom: 90px;
}
@media screen and (max-width: 767px) {
  .fp-p-120-90 {
    padding-top: 90px;
    padding-bottom: 60px;
  }
}

.fp-p-0-120 {
  padding-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .fp-p-0-120 {
    padding-bottom: 90px;
  }
}

.fp-p-120-0 {
  padding-top: 120px;
}
@media screen and (max-width: 767px) {
  .fp-p-120-0 {
    padding-top: 90px;
  }
}

.fp-p-120-60 {
  padding-top: 120px;
  padding-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .fp-p-120-60 {
    padding-top: 90px;
    padding-bottom: 30px;
  }
}

.fp-p-90-90 {
  padding-top: 90px;
  padding-bottom: 90px;
}
@media screen and (max-width: 767px) {
  .fp-p-90-90 {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.fp-p-90-120 {
  padding-top: 90px;
  padding-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .fp-p-90-120 {
    padding-top: 60px;
    padding-bottom: 90px;
  }
}

.fp-p-0-90 {
  padding-bottom: 90px;
}
@media screen and (max-width: 767px) {
  .fp-p-0-90 {
    padding-bottom: 60px;
  }
}

.fp-p-0-30 {
  padding-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .fp-p-0-30 {
    padding-bottom: 0;
  }
}

.fp-p-0-60 {
  padding-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .fp-p-0-60 {
    padding-bottom: 30px;
  }
}

.fp-p-120-30 {
  padding-top: 120px;
  padding-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .fp-p-120-30 {
    padding-top: 90px;
    padding-bottom: 0;
  }
}

.fp-adaptive-right {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media screen and (max-width: 768px) {
  .fp-adaptive-right {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

.fp-btn-space {
  margin-right: 30px;
}
@media screen and (max-width: 500px) {
  .fp-btn-space {
    margin-right: 50px;
    margin-bottom: 30px;
  }
}

/* -------------------------------------------

preloader

------------------------------------------- */
.fp-preloader {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: var(--fp-cream);
  pointer-events: none;
}
.fp-preloader .fp-preloader-animation {
  opacity: 0;
  position: relative;
  height: 100vh;
  color: rgb(255, 255, 255);
}
.fp-preloader .fp-preloader-animation .fp-pos-abs {
  position: absolute;
  height: 100vh;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-preloader .fp-preloader-animation .fp-pos-abs p {
  opacity: 0;
  margin-right: 15px;
}
.fp-preloader .fp-preloader-animation .fp-pos-abs p:last-child {
  margin-right: 0px;
}
@media screen and (max-width: 1024px) {
  .fp-preloader .fp-preloader-animation .fp-pos-abs p {
    font-size: 24px;
  }
}
.fp-preloader .fp-preloader-animation .fp-pos-abs .fp-reveal-frame {
  position: relative;
  padding: 0 30px;
}
.fp-preloader .fp-preloader-animation .fp-pos-abs .fp-reveal-frame .fp-reveal-box {
  z-index: 4;
  position: absolute;
  opacity: 0;
  height: 100%;
  background-color: rgb(195, 45, 205);
}
.fp-preloader.fp-hidden {
  pointer-events: none;
}
/* Preloader middle word accent colour (Flourish → magenta) */
.fp-preloader-accent {
  color: var(--fp-magenta, #C32DCD) !important;
}
/* Preloader words — always charcoal on cream, regardless of ACF skin defaults */
.fp-preloader .fp-h3 {
  color: #3D3D3D !important;
}
.fp-preloader .fp-preloader-accent {
  color: #C32DCD !important;
}
/* Preloader logo reveal image — starts hidden; GSAP animates it in after the wipe */
.fp-preloader-logo {
  max-width: 280px;
  height: auto;
  display: block;
  margin: 0 auto;
  opacity: 0; /* GSAP takes over from here */
}

/* -------------------------------------------

cursor

------------------------------------------- */
.fp-ball {
  width: 20px;
  height: 20px;
  position: fixed;
  z-index: 10;
  background-color: rgb(0, 0, 0);
  border-radius: 50%;
  pointer-events: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  opacity: 0.1;
}
.fp-ball .fp-icon-1 {
  position: absolute;
  width: 40px;
  height: 40px;
  -webkit-transform: scale(0);
          transform: scale(0);
}
.fp-ball .fp-icon-1 svg {
  fill: rgba(255, 255, 255, 0.9);
}
.fp-ball .fp-more-text, .fp-ball .fp-choose-text {
  position: absolute;
  width: 100%;
  text-align: center;
  display: block;
  color: rgba(255, 255, 255, 0.9);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  -webkit-transform: scale(0);
          transform: scale(0);
}
.fp-ball.fp-accent .fp-icon-1 svg {
  fill: rgb(0, 0, 0);
}
.fp-ball.fp-accent .fp-more-text, .fp-ball.fp-accent .fp-choose-text {
  color: rgb(0, 0, 0);
}
@media screen and (max-width: 1200px) {
  .fp-ball {
    display: none;
  }
}

/* -------------------------------------------

hidden elements

------------------------------------------- */
/* [REMOVED: Decorative element] */

/* -------------------------------------------

scrollbar

------------------------------------------- */
.fp-scrollbar::-webkit-scrollbar {
  display: none;
}

.fp-progress-track {
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  width: 5px;
  height: 100%;
  background: transparent;
  pointer-events: none;
}
.fp-progress-track .fp-progress {
  width: 5px;
  height: 0;
  background: var(--fp-magenta, #C32DCD);
}
@media screen and (max-width: 768px) {
  .fp-progress-track {
    display: none;
  }
}

/* -------------------------------------------

frame

------------------------------------------- */
.fp-logo {
  font-size: 42px;
  font-weight: 500;
  line-height: 100%;
}
.fp-logo .fp-accent {
  display: block;
  font-size: 14px;
  font-weight: normal;
  line-height: 2;
}
@media screen and (max-width: 768px) {
  .fp-logo {
    font-size: 36px;
  }
}

.fp-frame {
  padding: 50px 60px 60px 60px;
  position: fixed;
  z-index: 2;
  pointer-events: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 1200px) {
  .fp-frame {
    padding: 30px;
  }
}
@media screen and (max-width: 1200px) {
  .fp-frame {
    padding: 0;
    z-index: 999;
    height: 90px;
  }
}
@media screen and (max-width: 1200px) {
  .fp-frame .fp-frame-top {
    height: 90px;
    background-color: rgba(0, 0, 0, 0.95);
    border-bottom: solid 1px rgba(255, 255, 255, 0.1);
    padding: 0;
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
  }
  .fp-frame .fp-frame-top .fp-logo {
    color: rgb(255, 255, 255);
  }
  .fp-frame .fp-frame-top .fp-menu-btn span, .fp-frame .fp-frame-top .fp-menu-btn span:after, .fp-frame .fp-frame-top .fp-menu-btn span:before {
    background: rgb(255, 255, 255);
  }
}
.fp-frame .fp-frame-bottom {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  height: 300px;
}
@media screen and (max-width: 1200px) {
  .fp-frame .fp-frame-bottom {
    display: none;
  }
}
.fp-frame .fp-frame-bottom .fp-current-page {
  pointer-events: none;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 12px;
  width: 300px;
  color: rgb(0, 0, 0);
  -webkit-transform: rotate(-90deg) translateX(138px) translateY(-138px);
          transform: rotate(-90deg) translateX(138px) translateY(-138px);
}
.fp-frame .fp-frame-bottom .fp-back-to-top {
  width: 300px;
  -webkit-transform: rotate(-90deg) translateX(130px) translateY(130px);
          transform: rotate(-90deg) translateX(130px) translateY(130px);
  pointer-events: all;
}

.fp-frame-top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-frame-top .fp-logo {
  pointer-events: all;
  color: rgb(0, 0, 0);
}
.fp-frame-top > div.elementor {
  width: 100%;
}

/* -------------------------------------------

menu button

------------------------------------------- */
.fp-menu-btn {
  pointer-events: all;
  height: 28px;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 768px) {
  .fp-menu-btn {
    -webkit-transform: scale(0.85);
            transform: scale(0.85);
  }
}
.fp-menu-btn span, .fp-menu-btn span:after, .fp-menu-btn span:before {
  content: "";
  display: block;
  width: 28px;
  height: 2.5px;
  background: rgb(0, 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transition: inherit;
  transition: inherit;
}
.fp-menu-btn span {
  position: relative;
}
.fp-menu-btn span:after, .fp-menu-btn span:before {
  position: absolute;
}
.fp-menu-btn span:before {
  top: -9px;
}
.fp-menu-btn span:after {
  width: 18px;
  top: 9px;
}
.fp-menu-btn.fp-active span {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.fp-menu-btn.fp-active span:before {
  -webkit-transform: translate(0px, 9px) rotate(-90deg);
          transform: translate(0px, 9px) rotate(-90deg);
}
.fp-menu-btn.fp-active span:after {
  opacity: 0;
  width: 24px;
  -webkit-transform: translate(0px, -9px) rotate(-90deg);
          transform: translate(0px, -9px) rotate(-90deg);
}

/* -------------------------------------------

menu

------------------------------------------- */
.fp-menu-frame {
  position: fixed;
  z-index: 9;
  width: 100%;
  height: 100vh;
  background-color: rgb(0, 0, 0);
  opacity: 0;
  pointer-events: none;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-wrapper-popup {
  background-color: rgb(0, 0, 0);
}
.fp-menu-frame .container {
  pointer-events: none;
}
.fp-menu-frame .fp-frame-top {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 50px 60px;
  z-index: 1;
}
@media screen and (max-width: 1200px) {
  .fp-menu-frame .fp-frame-top {
    display: none;
  }
}
.fp-menu-frame .fp-frame-top .fp-logo {
  color: rgb(255, 255, 255);
}
.error404 .fp-logo .fp-accent {
  opacity: 0;
}
.fp-menu-frame .fp-frame-top .fp-menu-btn span, .fp-menu-frame .fp-frame-top .fp-menu-btn span:after, .fp-menu-frame .fp-frame-top .fp-menu-btn span:before {
  background-color: rgb(255, 255, 255);
}
.fp-menu-frame .fp-main-menu,
.fp-wrapper-popup .fp-main-menu {
  -webkit-transform: translateX(-30px);
          transform: translateX(-30px);
  opacity: 0;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 1200px) {
  .fp-menu-frame .fp-main-menu,
  .fp-wrapper-popup .fp-main-menu {
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
}
.fp-menu-frame .fp-menu-right-frame,
.fp-wrapper-popup .fp-menu-right-frame {
  padding-left: 60px;
  position: relative;
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  border-left: solid 1px rgba(255, 255, 255, 0.1);
  opacity: 0;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-menu-frame .fp-menu-right-frame .fp-menu-right,
.fp-wrapper-popup .fp-menu-right-frame .fp-menu-right {
  padding-bottom: 60px;
  width: 100%;
}
.fp-menu-frame .fp-menu-right-frame .fp-animation-in,
.fp-wrapper-popup .fp-menu-right-frame .fp-animation-in {
  position: absolute;
  top: -320px;
  right: 0;
  opacity: 0;
  -webkit-transform: translateY(-60px);
          transform: translateY(-60px);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 1024px) {
  .fp-menu-frame .fp-menu-right-frame,
  .fp-wrapper-popup .fp-menu-right-frame {
    display: none;
  }
}
@media screen and (max-height: 800px) {
  .fp-menu-frame .fp-menu-right-frame,
  .fp-wrapper-popup .fp-menu-right-frame {
    display: none;
  }
}
.fp-menu-frame.fp-active {
  opacity: 1;
  pointer-events: all;
}
.fp-menu-frame.fp-active .container {
  pointer-events: all;
}
.fp-menu-frame.fp-active .fp-main-menu,
.fp-wrapper-popup .fp-main-menu {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}
.fp-menu-frame.fp-active .fp-menu-right-frame,
.fp-wrapper-popup .fp-menu-right-frame {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}
.fp-menu-frame.fp-active .fp-menu-right-frame .fp-animation-in,
.fp-wrapper-popup .fp-menu-right-frame .fp-animation-in {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-delay: 0.8s;
          transition-delay: 0.8s;
}

.fp-menu-list li {
  list-style-type: none;
  margin-bottom: 15px;
}
.fp-menu-list li:last-child {
  margin-bottom: 0;
}
.fp-menu-list li a,
.fp-menu-list li a .fp-light-soft {
  display: block;
  -webkit-transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-menu-list li a:hover {
  -webkit-transform: translateX(5px);
          transform: translateX(5px);
  color: rgb(255, 255, 255);
}
.fp-menu-list li a:hover .fp-light-soft {
  color: rgb(255, 255, 255);
}
.fp-menu-list.fp-hori-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.fp-menu-list.fp-hori-list li {
  margin-bottom: 0;
  margin-right: 30px;
}
.fp-menu-list.fp-dark li a {
  color: rgb(0, 0, 0);
}

.fp-main-menu {
  height: 100vh;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-main-menu ul {
  padding: 0;
  margin: 0;
}
.fp-main-menu ul li {
  margin-bottom: 40px;
}
.fp-main-menu ul li:last-child {
  margin-bottom: 0;
}
.fp-main-menu ul li a {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
  font-size: 34px;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 768px) {
  .fp-main-menu ul li a {
    font-size: 26px;
  }
}
.fp-main-menu ul li a:before {
  content: "";
  position: absolute;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.4);
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-main-menu ul li a:hover {
  color: rgb(255, 255, 255);
}
.fp-main-menu ul li a.fp-active {
  padding-left: 25px;
}
.fp-main-menu ul li a.fp-active:before {
  -webkit-transform: scale(1);
          transform: scale(1);
  background-color: rgb(195, 45, 205);
}
.fp-main-menu ul li.fp-active > a {
  color: rgb(195, 45, 205);
}
.fp-main-menu ul li.fp-active > a:hover {
  color: rgb(195, 45, 205) !important;
  -webkit-filter: brightness(110%);
          filter: brightness(110%);
}
.fp-main-menu ul li.fp-has-children > a:hover {
  color: rgb(255, 255, 255);
  padding-left: 25px;
}
.fp-main-menu ul li.fp-has-children > a:hover:before {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.fp-main-menu ul li.fp-has-children ul {
  padding-left: 25px;
  overflow: hidden;
  max-height: 0;
  -webkit-transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-main-menu ul li.fp-has-children ul ul {
  max-height: none;
}
.fp-main-menu ul li.fp-has-children ul ul li:first-child {
  margin-top: 10px;
}
.fp-main-menu ul li.fp-has-children ul ul li a {
  position: relative;
  display: inline-block;
  padding-left: 15px;
}
.fp-main-menu ul li.fp-has-children ul ul li a::after {
  content: '';
  position: absolute;
  left: 0px;
  top: 10px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: rgba(255,255,255,0.3);
}
.fp-main-menu ul li.fp-has-children ul li {
  margin-bottom: 5px;
}
.fp-main-menu ul li.fp-has-children ul li:first-child {
  margin-top: 40px;
}
.fp-main-menu ul li.fp-has-children ul li a {
  display: block;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 2px;
  font-weight: 500;
  text-transform: uppercase;
}
.fp-main-menu ul li.fp-has-children ul li a:before {
  display: none;
}
.fp-main-menu ul li.fp-has-children ul li a:hover {
  color: rgba(255, 255, 255, 0.8);
  -webkit-transform: translateX(5px);
          transform: translateX(5px);
}
.fp-main-menu ul li.fp-has-children ul li.current-menu-item a {
  color: rgba(255, 255, 255, 1);
}
.fp-main-menu ul li.fp-has-children ul.fp-active {
  max-height: 200px;
  overflow-y: auto;
}
@media screen and (max-width: 1200px) {
  .fp-main-menu {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .fp-main-menu ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .fp-main-menu ul li {
    margin-bottom: 30px;
    text-align: center;
  }
  .fp-main-menu ul li a {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .fp-main-menu ul li a:before {
    display: none;
  }
  .fp-main-menu ul li a.fp-active {
    padding-left: 0 !important;
  }
  .fp-main-menu ul li.fp-has-children ul {
    padding-left: 0;
  }
  .fp-main-menu ul li.fp-has-children ul li:first-child {
    margin-top: 30px;
  }
  .fp-main-menu ul li.fp-has-children ul li {
    text-align: center;
  }
}

/* -------------------------------------------

banner

------------------------------------------- */
.fp-banner {
  height: 100vh;
}
.fp-banner .container {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.fp-banner .fp-banner-content {
  width: 100%;
  padding-bottom: 120px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .fp-banner .container {
    align-items: center;
  }
  .fp-banner .fp-banner-content {
    padding-bottom: 0;
  }
}
.fp-banner /* [REMOVED: Decorative element] */

.fp-inner-banner .fp-banner-content {
  padding: 150px 0 0 0;
}
@media screen and (max-width: 1200px) {
  .fp-inner-banner .fp-banner-content {
    padding: 180px 0 0 0;
  }
}

.fp-banner-personal {
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.1);
}
.fp-banner-personal .fp-banner-content {
  position: relative;
  padding-top: 90px;
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal .fp-banner-content {
    padding-top: 180px;
  }
}
.fp-banner-personal .fp-banner-content .fp-personal-text {
  margin-bottom: 300px;
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal .fp-banner-content .fp-personal-text {
    margin-bottom: 80px;
    text-align: center;
  }
}
.fp-banner-personal .fp-banner-content .fp-banner-panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0 60px 0 90px;
  background-color: rgb(255, 255, 255);
  height: 180px;
  position: absolute;
  top: calc(100vh - 180px);
  left: 0;
  width: 100%;
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal .fp-banner-content .fp-banner-panel {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: auto;
    padding: 60px 30px;
  }
  .fp-banner-personal .fp-banner-content .fp-banner-panel h5 {
    margin-bottom: 60px;
    text-align: center;
    width: 80%;
  }
}
.fp-banner-personal .fp-banner-content .fp-banner-panel .fp-right {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.fp-banner-personal .fp-banner-content .fp-banner-panel .fp-right .fp-social-frame {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-right: 30px;
  padding: 0 50px;
  background-color: rgba(0, 0, 0, 0.1);
  height: 70px;
  border-radius: 70px;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-banner-personal .fp-banner-content .fp-banner-panel .fp-right .fp-social-frame:hover {
  -webkit-transform: scale(1.015);
          transform: scale(1.015);
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal .fp-banner-content .fp-banner-panel .fp-right {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .fp-banner-personal .fp-banner-content .fp-banner-panel .fp-right .fp-social-frame {
    margin-right: 0;
    margin-bottom: 30px;
    height: 60px;
  }
}
.fp-banner-personal .fp-banner-content .fp-banner-panel .fp-button {
  margin: 0 !important;
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal .fp-banner-content .fp-banner-panel {
    bottom: 0;
    top: auto;
  }
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal .fp-banner-content .fp-banner-panel {
    position: relative;
    margin-bottom: 90px;
    z-index: 2;
  }
}
@media screen and (max-width: 1024px) {
  .fp-banner-personal {
    height: auto;
  }
}
.fp-banner {
  min-height: 800px;
}
@media screen and (max-width: 768px) {
  .fp-banner {
    height: auto;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 100px 0;
  }
}

.fp-portrait-frame {
  position: relative;
}
.fp-portrait-frame img,
.elementor .fp-portrait-frame img {
  position: relative;
  bottom: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.fp-portrait-frame .fp-nimbus {
  background: radial-gradient(50% 50% at 50% 50%, rgb(195, 45, 205) 0%, rgba(250, 168, 69, 0) 100%);
  width: 100%;
  padding-bottom: 100%;
  position: absolute;
  opacity: 0.6;
}
@media screen and (max-width: 768px) {
  .fp-portrait-frame {
    height: 800px;
  }
  .fp-portrait-frame img,
  .elementor .fp-portrait-frame img {
    -o-object-fit: contain;
       object-fit: contain;
    -o-object-position: top;
       object-position: top;
  }
}

/* -------------------------------------------

circle text

------------------------------------------- */
.fp-circle-text {
  position: absolute;
  right: 0;
  bottom: 90px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 140px;
  height: 140px;
}
.fp-circle-text .fp-ct-svg {
  -webkit-transform: scale(2);
          transform: scale(2);
  width: 140px;
  height: 140px;
}
.fp-circle-text .fp-ct-svg text {
  fill: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 500;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-circle-text .fp-button {
  position: absolute;
}
.fp-circle-text:hover svg text {
  fill: rgb(255, 255, 255);
}
@media screen and (max-width: 768px) {
  .fp-circle-text {
    display: none;
  }
}

/* -------------------------------------------

lines

------------------------------------------- */
@-webkit-keyframes move {
  from {
    -webkit-transform: translateY(-75px);
            transform: translateY(-75px);
  }
  50% {
    -webkit-transform: translateY(75px);
            transform: translateY(75px);
  }
  to {
    -webkit-transform: translateY(-75px);
            transform: translateY(-75px);
  }
}
@keyframes move {
  from {
    -webkit-transform: translateY(-75px);
            transform: translateY(-75px);
  }
  50% {
    -webkit-transform: translateY(75px);
            transform: translateY(75px);
  }
  to {
    -webkit-transform: translateY(-75px);
            transform: translateY(-75px);
  }
}
/* [REMOVED: Decorative element] */
@media screen and (max-width: 768px) {
  /* [REMOVED: Decorative element] */
}
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */

/* -------------------------------------------

dodecahedron

------------------------------------------- */
/* [REMOVED: Decorative element] */

.fp-animation {
  position: absolute;
  display: inline-block;
  width: 300px;
  height: 300px;
  opacity: 0.2;
  pointer-events: none !important;
}

/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */

/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
@media screen and (max-width: 1024px) {
  /* [REMOVED: Decorative element] */
}

/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
@media screen and (max-width: 1024px) {
  /* [REMOVED: Decorative element] */
}

/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
@media screen and (max-width: 1024px) {
  /* [REMOVED: Decorative element] */
}
/* [REMOVED: Decorative element] */

/* [REMOVED: Decorative element] */
@-webkit-keyframes rotate {
  from {
    -webkit-transform: rotateX(0deg) rotateY(360deg) rotateZ(360deg);
            transform: rotateX(0deg) rotateY(360deg) rotateZ(360deg);
  }
  to {
    -webkit-transform: rotateX(360deg) rotateY(0deg) rotateZ(-360deg);
            transform: rotateX(360deg) rotateY(0deg) rotateZ(-360deg);
  }
}
/* [REMOVED: Decorative element] */
  to {
    -webkit-transform: rotateX(360deg) rotateY(0deg) rotateZ(-360deg);
            transform: rotateX(360deg) rotateY(0deg) rotateZ(-360deg);
  }
}

/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */
/* [REMOVED: Decorative element] */

@-webkit-keyframes jump {
  0% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
  }
  50% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
  }
}

/* [REMOVED: Decorative element] */
  50% {
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
  }
}
/* -------------------------------------------

about

------------------------------------------- */
.fp-about-quote {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-about-quote .fp-avatar {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  position: relative;
}
.fp-about-quote .fp-avatar:after {
  content: ' " ';
  color: rgb(0, 0, 0);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: rgb(195, 45, 205);
  position: absolute;
  bottom: 0;
  right: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 12px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 36px;
}
.fp-about-quote .fp-avatar img {
  border-radius: 50%;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}
.fp-about-quote .fp-quote {
  padding-left: 30px;
  width: calc(100% - 90px);
}
@media screen and (max-width: 768px) {
  .fp-about-quote .fp-avatar {
    width: 70px;
    height: 70px;
  }
  .fp-about-quote .fp-avatar:after {
    padding-top: 7px;
    width: 25px;
    height: 25px;
    font-size: 24px;
  }
  .fp-about-quote .fp-quote {
    font-size: 16px;
    padding-left: 30px;
    width: calc(100% - 70px);
  }
}

.fp-about-photo {
  position: relative;
}
.fp-about-photo /* [REMOVED: Decorative element] */

/* -------------------------------------------

partners

------------------------------------------- */
.fp-infinite-show .swiper-wrapper {
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
}

.fp-partner-frame {
  display: block;
}
.fp-partner-frame img {
  width: 100%;
}

/* -------------------------------------------

services

------------------------------------------- */
.fp-complex-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-complex-text .fp-button {
  margin-left: 30px;
}
@media screen and (max-width: 768px) {
  .fp-complex-text {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .fp-complex-text .fp-button {
    margin-left: 0;
    margin-top: 60px;
  }
}

.fp-text-image {
  height: 80px;
  width: 250px;
  display: inline-block;
  overflow: hidden;
  border-radius: 70px;
  margin-right: 30px;
}
.fp-text-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-text-image:hover img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
@media screen and (max-width: 768px) {
  .fp-text-image {
    display: block;
    margin: 0 0 30px 0;
  }
}

.fp-service-card-sm {
  position: relative;
  display: block;
  padding: 60px 30px;
}
.fp-service-card-sm p {
  opacity: 0;
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-service-card-sm .fp-button {
  -webkit-transform: scale(0.3);
          transform: scale(0.3);
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  opacity: 0.4;
}
.fp-service-card-sm:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 4px;
  width: 0;
  background-color: rgb(195, 45, 205);
  -webkit-transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-service-card-sm:hover p {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.fp-service-card-sm:hover .fp-button {
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
.fp-service-card-sm:hover:before {
  width: 100%;
}
@media screen and (max-width: 768px) {
  .fp-service-card-sm p {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  .fp-service-card-sm .fp-button {
    -webkit-transform: scale(1);
            transform: scale(1);
    -webkit-filter: grayscale(0);
            filter: grayscale(0);
    opacity: 1;
  }
}

.fp-services-grid {
  border-top: solid 1px rgba(255, 255, 255, 0.1);
}
.fp-services-grid .fp-services-grid-item {
  border-right: solid 1px rgba(255, 255, 255, 0.1);
}
.fp-services-grid .fp-services-grid-item:first-child {
  border-left: solid 1px rgba(255, 255, 255, 0.1);
}
@media screen and (max-width: 768px) {
  .fp-services-grid .fp-services-grid-item {
    border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  }
  .fp-services-grid .fp-services-grid-item {
    border-left: solid 1px rgba(255, 255, 255, 0.1);
  }
  .fp-services-grid .fp-services-grid-item:nth-child(3) {
    border-left: solid 1px rgba(255, 255, 255, 0.1);
  }
}
@media screen and (max-width: 767px) {
  .fp-services-grid {
    padding-bottom: 90px;
  }
}

.fp-service-card-lg {
  display: block;
}
.fp-service-card-lg .fp-descr {
  padding-right: 30px;
}
.fp-service-card-lg.fp-offset {
  margin-top: 60px;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .fp-service-card-lg.fp-offset {
    margin-top: 0;
  }
}
@media screen and (max-width: 768px) {
  .fp-service-card-lg {
    margin-bottom: 60px;
  }
}
.fp-service-card-lg.fp-other-card {
  overflow: hidden;
  position: relative;
  border: solid 1px rgb(229, 229, 229);
  padding: 60px;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-service-card-lg.fp-other-card .fp-descr {
  padding-right: 0;
}
.fp-service-card-lg.fp-other-card:hover {
  background-color: rgb(195, 45, 205);
}
.fp-service-card-lg.fp-other-card:hover .fp-link svg {
  background-color: rgb(0, 0, 0);
}
.fp-service-card-lg.fp-other-card:hover .fp-link svg path {
  fill: rgb(195, 45, 205);
}
@media screen and (max-width: 1200px) {
  .fp-service-card-lg.fp-other-card {
    padding: 30px;
  }
}

.fp-service-list li {
  border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  list-style-type: none;
  padding: 15px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  font-size: 12px;
}
.fp-service-list li:first-child {
  border-top: solid 1px rgba(255, 255, 255, 0.1);
}
.fp-service-list.fp-light li {
  color: rgba(255, 255, 255, 0.6);
}
.fp-service-list li {
  border-bottom: solid 1px rgba(0, 0, 0, 0.1);
}
.fp-service-list li:first-child {
  border-top: solid 1px rgba(0, 0, 0, 0.1);
}

/* -------------------------------------------

team

------------------------------------------- */
.fp-team-card {
  position: relative;
  overflow: hidden;
  padding-bottom: 130%;
}
.fp-team-card:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  width: 0;
  background-color: rgb(195, 45, 205);
  -webkit-transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-team-card img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-team-card.fp-offset-card {
  -webkit-transform: translateY(60px);
          transform: translateY(60px);
}
@media screen and (max-width: 768px) {
  .fp-team-card.fp-offset-card {
    -webkit-transform: none;
            transform: none;
  }
}
.fp-team-card .fp-description {
  opacity: 0;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.8);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 60px 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  pointer-events: none;
  -webkit-transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.6s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-team-card .fp-description .fp-secrc-text {
  opacity: 0;
  -webkit-transform: translateY(15px);
          transform: translateY(15px);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}
.fp-team-card .fp-description .fp-secrc-text a {
  color: rgb(255, 255, 255);
  -webkit-transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.2s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-team-card .fp-description .fp-secrc-text a:hover {
  color: rgb(195, 45, 205);
}
.fp-team-card:hover img {
  -webkit-transform: scale(1);
          transform: scale(1);
}
.fp-team-card:hover:after {
  width: 100%;
}
.fp-team-card:hover .fp-description {
  opacity: 1;
  pointer-events: all;
}
.fp-team-card:hover .fp-description .fp-secrc-text {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s;
}

.fp-team-list {
  position: relative;
}
.fp-team-list /* [REMOVED: Decorative element] */

/* -------------------------------------------

social icons

------------------------------------------- */
.fp-social-icons {
  padding: 0;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.fp-social-icons.fp-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.fp-social-icons li {
  list-style-type: none;
  margin-right: 15px;
}
.fp-social-icons li:last-child {
  margin-right: 0;
}
.fp-social-icons li a {
  color: rgb(255, 255, 255);
  font-size: 18px;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-social-icons li a svg {
  width: 18px;
  display: inline-block;
  fill: rgb(255, 255, 255);
}
.fp-social-icons li a:hover {
  color: rgb(195, 45, 205);
}
.fp-social-icons li a:hover svg {
  fill: rgb(195, 45, 205);
}
.fp-social-icons.fp-dark li a {
  color: rgb(0, 0, 0);
}
.fp-social-icons.fp-dark li a:hover {
  color: rgb(195, 45, 205);
}
.fp-social-icons.fp-dark li a:hover svg {
  fill: rgb(195, 45, 205);
}

/* -------------------------------------------

revievs

------------------------------------------- */
.fp-revi-pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media screen and (max-width: 768px) {
  .fp-revi-pagination {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
.fp-revi-pagination .swiper-pagination-bullet {
  padding: 0;
  width: 110px;
  height: 110px;
  padding: 10px;
  opacity: 1;
  border: none;
  background-color: transparent;
  margin: 0 !important;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1) !important;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1) !important;
}
@media screen and (max-width: 768px) {
  .fp-revi-pagination .swiper-pagination-bullet {
    width: 90px;
    height: 90px;
  }
}
.fp-revi-pagination .swiper-pagination-bullet:nth-child(2n) {
  margin-top: 30px !important;
}
@media screen and (max-width: 768px) {
  .fp-revi-pagination .swiper-pagination-bullet:nth-child(2n) {
    margin-top: 0 !important;
  }
}
.fp-revi-pagination .swiper-pagination-bullet:hover {
  -webkit-box-shadow: inset 0 0 0 4px rgb(255, 255, 255);
          box-shadow: inset 0 0 0 4px rgb(255, 255, 255);
}
.fp-revi-pagination .swiper-pagination-bullet .fp-custom-dot {
  background-color: red;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background-size: cover;
  background-position: top;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1) !important;
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1) !important;
  display: block;
}
@media screen and (max-width: 768px) {
  .fp-revi-pagination .swiper-pagination-bullet .fp-custom-dot {
    width: 70px;
    height: 70px;
  }
}
.fp-revi-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
  -webkit-box-shadow: inset 0 0 0 4px rgb(195, 45, 205);
          box-shadow: inset 0 0 0 4px rgb(195, 45, 205);
}

.fp-quote-icon {
  display: block;
  margin: 0 auto;
  width: 40px;
  height: 40px;
  margin-bottom: 15px;
}
.fp-quote-icon path {
  fill: rgb(195, 45, 205);
}

.fp-slider-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.fp-slider-nav .fp-slider-arrow {
  width: 40px;
  height: 40px;
  padding: 10px;
  background-color: rgb(0, 0, 0);
  border-radius: 50%;
  cursor: pointer;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-slider-nav .fp-slider-arrow svg path {
  fill: rgb(195, 45, 205);
}
.fp-slider-nav .fp-slider-arrow.fp-prev {
  margin-right: 10px;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.fp-slider-nav .fp-slider-arrow.swiper-button-disabled {
  opacity: 0.1;
  cursor: not-allowed;
}
.fp-slider-nav .fp-slider-arrow:hover {
  -webkit-transform: scale(1.15);
          transform: scale(1.15);
}
.fp-slider-nav .fp-slider-arrow:hover.fp-prev {
  -webkit-transform: rotate(180deg) scale(1.15);
          transform: rotate(180deg) scale(1.15);
}
.fp-slider-nav.fp-reviews-nav {
  position: absolute;
  top: 160px;
  left: 0;
  width: 100%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .fp-slider-nav.fp-reviews-nav {
    top: 0;
  }
}
.fp-slider-nav.fp-soft .fp-slider-arrow {
  background-color: rgb(229, 229, 229);
}
.fp-slider-nav.fp-soft .fp-slider-arrow svg path {
  fill: rgb(0, 0, 0);
}

/* -------------------------------------------

blog

------------------------------------------- */
.fp-blog-card {
  display: block;
}
.fp-blog-card .fp-cover-frame {
  position: relative;
  overflow: hidden;
  padding-bottom: 65%;
  margin-bottom: 30px;
}
.fp-blog-card .fp-cover-frame img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-blog-card .fp-post-descr {
  padding: 30px 30px 0 0;
}
.fp-blog-card .fp-post-descr .fp-post-text .fp-el-more {
  display: block;
  margin-top: 30px;
}
.fp-blog-card:hover .fp-cover-frame img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
.fp-blog-card.fp-blog-card-hori {
  padding-top: 60px;
  border-top: solid 1px rgb(229, 229, 229);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-blog-card.fp-blog-card-hori .fp-cover-frame {
  margin-bottom: 0;
  width: 450px;
  padding-bottom: 27%;
}
.fp-blog-card.fp-blog-card-hori .fp-post-descr {
  width: calc(100% - 450px);
  padding: 0;
  padding-left: 60px;
}
@media screen and (max-width: 768px) {
  .fp-blog-card.fp-blog-card-hori {
    display: block;
    padding-top: 0;
    border: none;
  }
  .fp-blog-card.fp-blog-card-hori .fp-cover-frame {
    width: 100%;
    padding-bottom: 65%;
    margin-bottom: 30px;
  }
  .fp-blog-card.fp-blog-card-hori .fp-post-descr {
    width: 100%;
    padding: 30px 30px 0 0;
  }
}

.fp-labels {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0;
}
.fp-labels .fp-label {
  margin-right: 15px;
}
.fp-labels .fp-label:last-child {
  margin-right: 0;
}

.fp-pagination {
  padding-top: 60px;
  border-top: solid 1px rgba(0, 0, 0, 0.1);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 20px;
}

.fp-pagination .page-numbers {
  display: inline-block;
  width: 40px;
  height: 40px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.1);
  color: rgb(0, 0, 0);
  text-align: center;
  line-height: 40px;
  text-decoration: none;
  margin-right: 10px;
}

.fp-pagination .page-numbers.current {
  background-color: rgb(195, 45, 205);
}

.fp-pagination .page-numbers.dots {
  background: transparent;
}

.fp-category-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.fp-category-list li {
  list-style-type: none;
  margin-right: 10px;
}
.fp-category-list li:last-child {
  margin-right: 0;
}
.fp-category-list li a,
.fp-category-list li .fp-filter-item {
  height: 40px;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: transparent;
  padding: 0 20px;
  border-radius: 40px;
  color: rgb(0, 0, 0);
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  cursor: pointer;
}
.fp-category-list li a:hover,
.fp-category-list li .fp-filter-item:hover {
  background-color: rgb(229, 229, 229);
}
.fp-category-list li a.fp-active,
.fp-category-list li .fp-filter-item.fp-active {
  background-color: rgb(195, 45, 205);
}
@media screen and (max-width: 768px) {
  .fp-category-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    display: block;
    width: 100%;
    text-align: center;
  }
  .fp-category-list li {
    margin-right: 0;
    margin-bottom: 10px;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    display: inline-block;
  }
  .fp-category-list li:last-child {
    margin-bottom: 0;
  }
  .fp-category-list li a, .fp-category-list li .fp-filter-item {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

/* -------------------------------------------

footer

------------------------------------------- */
.fp-footer-menu {
  margin-bottom: 120px;
}
.fp-footer-menu ul li {
  list-style-type: none;
  margin-bottom: 30px;
}
.fp-footer-menu ul li a {
  display: block;
  font-weight: 500;
  font-size: 28px;
  color: rgba(255, 255, 255, 0.9);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-footer-menu ul li a:hover {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
  color: rgb(195, 45, 205);
}
@media screen and (max-width: 768px) {
  .fp-footer-menu ul li a {
    font-size: 22px;
  }
}
.fp-footer-menu ul li.fp-active a,
.fp-footer-menu ul li.current-menu-item a {
  color: rgb(195, 45, 205);
}
.fp-footer-menu ul li.fp-active a:hover {
  -webkit-transform: none;
          transform: none;
}
@media screen and (max-width: 768px) {
  .fp-footer-menu {
    margin-bottom: 60px;
  }
}

.fp-subscribe-form {
  position: relative;
  height: 70px;
  width: 100%;
}
.fp-subscribe-form input {
  height: 70px;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.1);
  color: rgb(0, 0, 0);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
  border: none;
  border-radius: 70px;
  padding: 0 0 0 50px;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
@media screen and (max-width: 768px) {
  .fp-subscribe-form input {
    padding-left: 30px;
  }
}
.fp-subscribe-form input::-webkit-input-placeholder {
  color: rgb(128, 128, 128);
  font-family: var(--fp-body), sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.fp-subscribe-form input::-moz-placeholder {
  color: rgb(128, 128, 128);
  font-family: var(--fp-body), sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.fp-subscribe-form input:-ms-input-placeholder {
  color: rgb(128, 128, 128);
  font-family: var(--fp-body), sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.fp-subscribe-form input::-ms-input-placeholder {
  color: rgb(128, 128, 128);
  font-family: var(--fp-body), sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.fp-subscribe-form input::placeholder {
  color: rgb(128, 128, 128);
  font-family: var(--fp-body), sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 2px;
}
.fp-subscribe-form input:focus {
  background-color: rgb(255, 255, 255);
  outline: inherit;
}
.fp-subscribe-form input:hover {
  background-color: rgb(255, 255, 255);
}
.fp-subscribe-form .fp-button {
  position: absolute;
  top: 15px;
  right: 15px;
}
.fp-subscribe-form.fp-subscribe-form-2 input {
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.1);
}

/* -------------------------------------------

portfolio

------------------------------------------- */
.fp-portfolio-item {
  display: block;
}
.fp-portfolio-item .fp-cover-frame {
  position: relative;
  overflow: hidden;
  margin-bottom: 30px;
}
.fp-portfolio-item .fp-cover-frame .fp-cover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.fp-portfolio-item .fp-cover-frame .fp-cover img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-portfolio-item .fp-cover-frame.fp-vert {
  padding-bottom: 130%;
}
.fp-portfolio-item .fp-cover-frame.fp-hori {
  padding-bottom: 65%;
}
.fp-portfolio-item:hover .fp-cover-frame .fp-cover img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
.fp-portfolio-item.fp-slider-item .fp-cover-frame {
  margin-bottom: 30px;
  height: calc(100vh - 360px);
}
@media screen and (max-width: 768px) {
  .fp-portfolio-item.fp-slider-item .fp-cover-frame {
    height: auto;
    padding-bottom: 100%;
  }
}
.fp-portfolio-item.fp-slider-item .fp-descr {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 180px;
  background-color: rgb(242, 242, 242);
  padding: 0 60px;
}
@media screen and (max-width: 768px) {
  .fp-portfolio-item.fp-slider-item .fp-descr {
    padding: 30px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    height: auto;
  }
  .fp-portfolio-item.fp-slider-item .fp-descr .fp-descr-text {
    margin-bottom: 30px;
  }
}
.fp-portfolio-item.fp-slider-item:hover .fp-cover-frame .fp-cover img {
  -webkit-transform: none;
          transform: none;
}

.swiper-slide .fp-portfolio-item .fp-descr {
  pointer-events: none;
}
.swiper-slide.swiper-slide-active .fp-portfolio-item .fp-descr {
  pointer-events: all;
}

.fp-portfolio {
  position: relative;
}
.fp-portfolio /* [REMOVED: Decorative element] */
.fp-portfolio /* [REMOVED: Decorative element] */

.fp-portfolio-slider-frame {
  z-index: 0;
  padding-top: 150px;
}
@media screen and (max-width: 768px) {
  .fp-portfolio-slider-frame {
    padding-top: 180px;
  }
}

.fp-portfolio-nav {
  background-color: rgb(242, 242, 242);
  width: 100%;
  padding: 0 60px;
  height: 180px;
  position: absolute;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.fp-portfolio-nav .fp-portfolio-btns-frame {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0 15px;
  height: 70px;
  border-radius: 70px;
  background-color: rgb(255, 255, 255);
}
@media screen and (max-width: 768px) {
  .fp-portfolio-nav {
    position: static;
    height: auto;
    padding: 30px 0 90px;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    background-color: rgb(255, 255, 255);
  }
  .fp-portfolio-nav .fp-portfolio-btns-frame {
    width: 100%;
    height: auto;
    padding: 0;
  }
}

.swiper-portfolio-pagination {
  white-space: nowrap;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 0 15px;
}

.fp-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  height: 120px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-bottom: solid 1px rgba(0, 0, 0, 0.1);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 2px;
  font-weight: 500;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .fp-info {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: auto;
    padding: 30px;
  }
}

.fp-works-nav {
  padding-top: 60px;
  border-top: solid 1px rgba(0, 0, 0, 0.1);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.fp-works-nav .fp-disabled {
  opacity: 0.2;
  cursor: not-allowed;
}
@media screen and (max-width: 768px) {
  .fp-works-nav {
    padding-top: 0;
    border-top: none;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .fp-works-nav .fp-link {
    display: none;
  }
  .fp-works-nav .fp-link:last-child {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

/***************************

map

***************************/
.fp-map-frame {
  background-color: rgb(229, 229, 229);
  pointer-events: all;
  height: 600px;
  position: relative;
  overflow: hidden;
}
.fp-map-frame .fp-map {
  position: absolute;
  top: -25%;
  left: -25%;
  width: 150%;
  height: 150%;
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-map-frame .fp-map iframe {
  width: 100%;
  height: 100%;
}
/* -------------------------------------------

accordion

------------------------------------------- */
.fp-accordion-group {
  border-bottom: solid 1px rgba(0, 0, 0, 0.2);
  margin-bottom: 30px;
}
.fp-accordion-group .fp-accordion-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  cursor: pointer;
  margin-bottom: 30px;
}
.fp-accordion-group .fp-accordion-menu .fp-symbol {
  border-radius: 50%;
  width: 40px;
  height: 40px;
  color: rgb(0, 0, 0);
  background-color: rgb(229, 229, 229);
  font-size: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
}
.fp-accordion-group .fp-accordion-menu .fp-symbol .fp-plus, .fp-accordion-group .fp-accordion-menu .fp-symbol .fp-minus {
  position: absolute;
}
.fp-accordion-group .fp-accordion-menu .fp-symbol .fp-minus {
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}
.fp-accordion-group .fp-accordion-menu .fp-accordion-head {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-weight: 500;
  color: rgb(0, 0, 0);
}

.fp-accordion-content {
  height: 0;
  overflow: hidden;
}

.fp-accordion-content p,
.fp-accordion-content ul,
.fp-accordion-content ol,
.fp-accordion-content h1,
.fp-accordion-content h2,
.fp-accordion-content h3,
.fp-accordion-content h4,
.fp-accordion-content h5,
.fp-accordion-content h6 {
  margin-bottom: 30px;
}

/***************************

price

***************************/
.fp-price-card {
  display: block;
  width: 100%;
  border-top: solid 1px rgba(255, 255, 255, 0.1);
  border-bottom: solid 1px rgba(255, 255, 255, 0.1);
  padding: 60px 0 30px;
}
.fp-price-card .fp-price-number {
  padding-top: 10px;
  line-height: 70%;
  font-size: 54px;
  font-weight: 500;
}
.fp-price-card .fp-price-number .fp-thin {
  font-weight: 200;
  font-size: 18px;
}

/***************************

404

***************************/
.fp-404-banner /* [REMOVED: Decorative element] */

.fp-404-frame {
  padding-top: 100px;
  height: 100vh;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.fp-404-text {
  display: block;
  text-align: center;
  color: rgb(255, 255, 255);
}

.fp-scale-frame {
  -webkit-transform: scale(2.3);
          transform: scale(2.3);
  text-align: center;
  margin-bottom: 90px;
}
@media screen and (max-width: 530px) {
  .fp-scale-frame {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
    margin-bottom: 50px;
  }
}

.fp-404 {
  position: relative;
  color: rgb(255, 255, 255);
  font-size: 6em;
  font-weight: 500;
  animation: glitch-skew 1s infinite linear alternate-reverse;
}
.fp-404::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  left: 2px;
  text-shadow: -2px 0 rgb(195, 45, 205);
  clip: rect(44px, 450px, 56px, 0);
  animation: glitch-anim 5s infinite linear alternate-reverse;
}
.fp-404::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  left: -2px;
  text-shadow: -2px 0 rgb(153, 153, 153), 2px 2px rgb(229, 229, 229);
  animation: glitch-anim2 1s infinite linear alternate-reverse;
}

@-webkit-keyframes glitch-anim {
  0% {
    clip: rect(49px, 9999px, 31px, 0);
    -webkit-transform: skew(0.04deg);
            transform: skew(0.04deg);
  }
  5% {
    clip: rect(63px, 9999px, 92px, 0);
    -webkit-transform: skew(0.18deg);
            transform: skew(0.18deg);
  }
  10% {
    clip: rect(86px, 9999px, 74px, 0);
    -webkit-transform: skew(0.4deg);
            transform: skew(0.4deg);
  }
  15% {
    clip: rect(85px, 9999px, 19px, 0);
    -webkit-transform: skew(0.57deg);
            transform: skew(0.57deg);
  }
  20% {
    clip: rect(64px, 9999px, 75px, 0);
    -webkit-transform: skew(0.96deg);
            transform: skew(0.96deg);
  }
  25% {
    clip: rect(77px, 9999px, 17px, 0);
    -webkit-transform: skew(0.61deg);
            transform: skew(0.61deg);
  }
  30% {
    clip: rect(16px, 9999px, 76px, 0);
    -webkit-transform: skew(0.81deg);
            transform: skew(0.81deg);
  }
  35% {
    clip: rect(5px, 9999px, 61px, 0);
    -webkit-transform: skew(0.56deg);
            transform: skew(0.56deg);
  }
  40% {
    clip: rect(79px, 9999px, 81px, 0);
    -webkit-transform: skew(0.05deg);
            transform: skew(0.05deg);
  }
  45% {
    clip: rect(20px, 9999px, 97px, 0);
    -webkit-transform: skew(0.56deg);
            transform: skew(0.56deg);
  }
  50% {
    clip: rect(33px, 9999px, 100px, 0);
    -webkit-transform: skew(0.16deg);
            transform: skew(0.16deg);
  }
  55% {
    clip: rect(19px, 9999px, 76px, 0);
    -webkit-transform: skew(0.93deg);
            transform: skew(0.93deg);
  }
  60% {
    clip: rect(29px, 9999px, 59px, 0);
    -webkit-transform: skew(0.58deg);
            transform: skew(0.58deg);
  }
  65% {
    clip: rect(19px, 9999px, 95px, 0);
    -webkit-transform: skew(0.83deg);
            transform: skew(0.83deg);
  }
  70% {
    clip: rect(88px, 9999px, 30px, 0);
    -webkit-transform: skew(0.39deg);
            transform: skew(0.39deg);
  }
  75% {
    clip: rect(43px, 9999px, 45px, 0);
    -webkit-transform: skew(0.6deg);
            transform: skew(0.6deg);
  }
  80% {
    clip: rect(30px, 9999px, 4px, 0);
    -webkit-transform: skew(0.89deg);
            transform: skew(0.89deg);
  }
  85% {
    clip: rect(4px, 9999px, 96px, 0);
    -webkit-transform: skew(1deg);
            transform: skew(1deg);
  }
  90% {
    clip: rect(4px, 9999px, 91px, 0);
    -webkit-transform: skew(0.2deg);
            transform: skew(0.2deg);
  }
  95% {
    clip: rect(48px, 9999px, 80px, 0);
    -webkit-transform: skew(0.41deg);
            transform: skew(0.41deg);
  }
  100% {
    clip: rect(10px, 9999px, 58px, 0);
    -webkit-transform: skew(0.91deg);
            transform: skew(0.91deg);
  }
}

@keyframes glitch-anim {
  0% {
    clip: rect(49px, 9999px, 31px, 0);
    -webkit-transform: skew(0.04deg);
            transform: skew(0.04deg);
  }
  5% {
    clip: rect(63px, 9999px, 92px, 0);
    -webkit-transform: skew(0.18deg);
            transform: skew(0.18deg);
  }
  10% {
    clip: rect(86px, 9999px, 74px, 0);
    -webkit-transform: skew(0.4deg);
            transform: skew(0.4deg);
  }
  15% {
    clip: rect(85px, 9999px, 19px, 0);
    -webkit-transform: skew(0.57deg);
            transform: skew(0.57deg);
  }
  20% {
    clip: rect(64px, 9999px, 75px, 0);
    -webkit-transform: skew(0.96deg);
            transform: skew(0.96deg);
  }
  25% {
    clip: rect(77px, 9999px, 17px, 0);
    -webkit-transform: skew(0.61deg);
            transform: skew(0.61deg);
  }
  30% {
    clip: rect(16px, 9999px, 76px, 0);
    -webkit-transform: skew(0.81deg);
            transform: skew(0.81deg);
  }
  35% {
    clip: rect(5px, 9999px, 61px, 0);
    -webkit-transform: skew(0.56deg);
            transform: skew(0.56deg);
  }
  40% {
    clip: rect(79px, 9999px, 81px, 0);
    -webkit-transform: skew(0.05deg);
            transform: skew(0.05deg);
  }
  45% {
    clip: rect(20px, 9999px, 97px, 0);
    -webkit-transform: skew(0.56deg);
            transform: skew(0.56deg);
  }
  50% {
    clip: rect(33px, 9999px, 100px, 0);
    -webkit-transform: skew(0.16deg);
            transform: skew(0.16deg);
  }
  55% {
    clip: rect(19px, 9999px, 76px, 0);
    -webkit-transform: skew(0.93deg);
            transform: skew(0.93deg);
  }
  60% {
    clip: rect(29px, 9999px, 59px, 0);
    -webkit-transform: skew(0.58deg);
            transform: skew(0.58deg);
  }
  65% {
    clip: rect(19px, 9999px, 95px, 0);
    -webkit-transform: skew(0.83deg);
            transform: skew(0.83deg);
  }
  70% {
    clip: rect(88px, 9999px, 30px, 0);
    -webkit-transform: skew(0.39deg);
            transform: skew(0.39deg);
  }
  75% {
    clip: rect(43px, 9999px, 45px, 0);
    -webkit-transform: skew(0.6deg);
            transform: skew(0.6deg);
  }
  80% {
    clip: rect(30px, 9999px, 4px, 0);
    -webkit-transform: skew(0.89deg);
            transform: skew(0.89deg);
  }
  85% {
    clip: rect(4px, 9999px, 96px, 0);
    -webkit-transform: skew(1deg);
            transform: skew(1deg);
  }
  90% {
    clip: rect(4px, 9999px, 91px, 0);
    -webkit-transform: skew(0.2deg);
            transform: skew(0.2deg);
  }
  95% {
    clip: rect(48px, 9999px, 80px, 0);
    -webkit-transform: skew(0.41deg);
            transform: skew(0.41deg);
  }
  100% {
    clip: rect(10px, 9999px, 58px, 0);
    -webkit-transform: skew(0.91deg);
            transform: skew(0.91deg);
  }
}
@-webkit-keyframes glitch-anim2 {
  0% {
    clip: rect(97px, 9999px, 84px, 0);
    -webkit-transform: skew(0.55deg);
            transform: skew(0.55deg);
  }
  5% {
    clip: rect(82px, 9999px, 21px, 0);
    -webkit-transform: skew(0.04deg);
            transform: skew(0.04deg);
  }
  10% {
    clip: rect(51px, 9999px, 99px, 0);
    -webkit-transform: skew(0.93deg);
            transform: skew(0.93deg);
  }
  15% {
    clip: rect(42px, 9999px, 97px, 0);
    -webkit-transform: skew(0.03deg);
            transform: skew(0.03deg);
  }
  20% {
    clip: rect(27px, 9999px, 25px, 0);
    -webkit-transform: skew(0.86deg);
            transform: skew(0.86deg);
  }
  25% {
    clip: rect(69px, 9999px, 5px, 0);
    -webkit-transform: skew(0.95deg);
            transform: skew(0.95deg);
  }
  30% {
    clip: rect(38px, 9999px, 67px, 0);
    -webkit-transform: skew(0.33deg);
            transform: skew(0.33deg);
  }
  35% {
    clip: rect(8px, 9999px, 90px, 0);
    -webkit-transform: skew(0.67deg);
            transform: skew(0.67deg);
  }
  40% {
    clip: rect(34px, 9999px, 31px, 0);
    -webkit-transform: skew(0.33deg);
            transform: skew(0.33deg);
  }
  45% {
    clip: rect(1px, 9999px, 25px, 0);
    -webkit-transform: skew(0.71deg);
            transform: skew(0.71deg);
  }
  50% {
    clip: rect(45px, 9999px, 40px, 0);
    -webkit-transform: skew(0.38deg);
            transform: skew(0.38deg);
  }
  55% {
    clip: rect(84px, 9999px, 96px, 0);
    -webkit-transform: skew(0.3deg);
            transform: skew(0.3deg);
  }
  60% {
    clip: rect(68px, 9999px, 59px, 0);
    -webkit-transform: skew(0.35deg);
            transform: skew(0.35deg);
  }
  65% {
    clip: rect(93px, 9999px, 48px, 0);
    -webkit-transform: skew(0.25deg);
            transform: skew(0.25deg);
  }
  70% {
    clip: rect(19px, 9999px, 40px, 0);
    -webkit-transform: skew(0.97deg);
            transform: skew(0.97deg);
  }
  75% {
    clip: rect(76px, 9999px, 56px, 0);
    -webkit-transform: skew(0.79deg);
            transform: skew(0.79deg);
  }
  80% {
    clip: rect(22px, 9999px, 82px, 0);
    -webkit-transform: skew(0.48deg);
            transform: skew(0.48deg);
  }
  85% {
    clip: rect(30px, 9999px, 63px, 0);
    -webkit-transform: skew(0.91deg);
            transform: skew(0.91deg);
  }
  90% {
    clip: rect(68px, 9999px, 44px, 0);
    -webkit-transform: skew(0.4deg);
            transform: skew(0.4deg);
  }
  95% {
    clip: rect(12px, 9999px, 36px, 0);
    -webkit-transform: skew(0.61deg);
            transform: skew(0.61deg);
  }
  100% {
    clip: rect(24px, 9999px, 5px, 0);
    -webkit-transform: skew(0.96deg);
            transform: skew(0.96deg);
  }
}
@keyframes glitch-anim2 {
  0% {
    clip: rect(97px, 9999px, 84px, 0);
    -webkit-transform: skew(0.55deg);
            transform: skew(0.55deg);
  }
  5% {
    clip: rect(82px, 9999px, 21px, 0);
    -webkit-transform: skew(0.04deg);
            transform: skew(0.04deg);
  }
  10% {
    clip: rect(51px, 9999px, 99px, 0);
    -webkit-transform: skew(0.93deg);
            transform: skew(0.93deg);
  }
  15% {
    clip: rect(42px, 9999px, 97px, 0);
    -webkit-transform: skew(0.03deg);
            transform: skew(0.03deg);
  }
  20% {
    clip: rect(27px, 9999px, 25px, 0);
    -webkit-transform: skew(0.86deg);
            transform: skew(0.86deg);
  }
  25% {
    clip: rect(69px, 9999px, 5px, 0);
    -webkit-transform: skew(0.95deg);
            transform: skew(0.95deg);
  }
  30% {
    clip: rect(38px, 9999px, 67px, 0);
    -webkit-transform: skew(0.33deg);
            transform: skew(0.33deg);
  }
  35% {
    clip: rect(8px, 9999px, 90px, 0);
    -webkit-transform: skew(0.67deg);
            transform: skew(0.67deg);
  }
  40% {
    clip: rect(34px, 9999px, 31px, 0);
    -webkit-transform: skew(0.33deg);
            transform: skew(0.33deg);
  }
  45% {
    clip: rect(1px, 9999px, 25px, 0);
    -webkit-transform: skew(0.71deg);
            transform: skew(0.71deg);
  }
  50% {
    clip: rect(45px, 9999px, 40px, 0);
    -webkit-transform: skew(0.38deg);
            transform: skew(0.38deg);
  }
  55% {
    clip: rect(84px, 9999px, 96px, 0);
    -webkit-transform: skew(0.3deg);
            transform: skew(0.3deg);
  }
  60% {
    clip: rect(68px, 9999px, 59px, 0);
    -webkit-transform: skew(0.35deg);
            transform: skew(0.35deg);
  }
  65% {
    clip: rect(93px, 9999px, 48px, 0);
    -webkit-transform: skew(0.25deg);
            transform: skew(0.25deg);
  }
  70% {
    clip: rect(19px, 9999px, 40px, 0);
    -webkit-transform: skew(0.97deg);
            transform: skew(0.97deg);
  }
  75% {
    clip: rect(76px, 9999px, 56px, 0);
    -webkit-transform: skew(0.79deg);
            transform: skew(0.79deg);
  }
  80% {
    clip: rect(22px, 9999px, 82px, 0);
    -webkit-transform: skew(0.48deg);
            transform: skew(0.48deg);
  }
  85% {
    clip: rect(30px, 9999px, 63px, 0);
    -webkit-transform: skew(0.91deg);
            transform: skew(0.91deg);
  }
  90% {
    clip: rect(68px, 9999px, 44px, 0);
    -webkit-transform: skew(0.4deg);
            transform: skew(0.4deg);
  }
  95% {
    clip: rect(12px, 9999px, 36px, 0);
    -webkit-transform: skew(0.61deg);
            transform: skew(0.61deg);
  }
  100% {
    clip: rect(24px, 9999px, 5px, 0);
    -webkit-transform: skew(0.96deg);
            transform: skew(0.96deg);
  }
}
@-webkit-keyframes glitch-skew {
  0% {
    -webkit-transform: skew(3deg);
            transform: skew(3deg);
  }
  10% {
    -webkit-transform: skew(2deg);
            transform: skew(2deg);
  }
  20% {
    -webkit-transform: skew(0deg);
            transform: skew(0deg);
  }
  30% {
    -webkit-transform: skew(0deg);
            transform: skew(0deg);
  }
  40% {
    -webkit-transform: skew(2deg);
            transform: skew(2deg);
  }
  50% {
    -webkit-transform: skew(-1deg);
            transform: skew(-1deg);
  }
  60% {
    -webkit-transform: skew(-3deg);
            transform: skew(-3deg);
  }
  70% {
    -webkit-transform: skew(-1deg);
            transform: skew(-1deg);
  }
  80% {
    -webkit-transform: skew(-1deg);
            transform: skew(-1deg);
  }
  90% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }
  100% {
    -webkit-transform: skew(-3deg);
            transform: skew(-3deg);
  }
}
@keyframes glitch-skew {
  0% {
    -webkit-transform: skew(3deg);
            transform: skew(3deg);
  }
  10% {
    -webkit-transform: skew(2deg);
            transform: skew(2deg);
  }
  20% {
    -webkit-transform: skew(0deg);
            transform: skew(0deg);
  }
  30% {
    -webkit-transform: skew(0deg);
            transform: skew(0deg);
  }
  40% {
    -webkit-transform: skew(2deg);
            transform: skew(2deg);
  }
  50% {
    -webkit-transform: skew(-1deg);
            transform: skew(-1deg);
  }
  60% {
    -webkit-transform: skew(-3deg);
            transform: skew(-3deg);
  }
  70% {
    -webkit-transform: skew(-1deg);
            transform: skew(-1deg);
  }
  80% {
    -webkit-transform: skew(-1deg);
            transform: skew(-1deg);
  }
  90% {
    -webkit-transform: skew(4deg);
            transform: skew(4deg);
  }
  100% {
    -webkit-transform: skew(-3deg);
            transform: skew(-3deg);
  }
}
/***************************

images

***************************/
.fp-image-frame {
  position: relative;
  overflow: hidden;
}
.fp-image-frame > img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.fp-image-frame.fp-horizontal {
  padding-bottom: 65%;
}
.fp-image-frame.fp-vertical {
  padding-bottom: 140%;
}
.fp-image-frame.fp-square {
  padding-bottom: 100%;
}
.fp-image-frame.fp-fw {
  padding-bottom: 50%;
}
.fp-image-frame .fp-zoom-btn {
  opacity: 0;
  -webkit-transform: translateY(15px);
          transform: translateY(15px);
  position: absolute;
  top: 30px;
  right: 30px;
  width: 40px;
  height: 40px !important;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: rgba(255, 255, 255, 0.8);
  -webkit-transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
  transition: 0.4s cubic-bezier(0, 0, 0.3642, 1);
}
.fp-image-frame .fp-zoom-btn:hover {
  background-color: rgb(255, 255, 255);
}
.fp-image-frame .fp-zoom-btn img {
  height: 17px;
  width: 17px;
}
.fp-image-frame:hover .fp-zoom-btn {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  z-index: 2;
}

/***************************

page transitions

***************************/
.fp-frame {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
  -webkit-transition: 0.6s;
  transition: 0.6s;
}

.fp-curtain {
  position: fixed;
  pointer-events: none !important;
  z-index: 4;
  background-color: rgb(0, 0, 0);
  opacity: 0;
  width: 100%;
  height: 100vh;
  -webkit-transition: 0.6s;
  transition: 0.6s;
}

#swupMain {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.fp-main-transition {
  -webkit-transition: 0.6s;
  transition: 0.6s;
  margin-top: 0;
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}
.fp-main-transition /* [REMOVED: Decorative element] */
.fp-main-transition /* [REMOVED: Decorative element] */

html.is-animating .fp-frame {
  opacity: 0;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}
@media screen and (max-width: 1200px) {
  html.is-animating .fp-frame {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
html.is-animating .fp-curtain {
  opacity: 1;
  pointer-events: all;
}
html.is-animating .fp-main-transition {
  margin-top: 0.1px;
}
html.is-animating .fp-main-transition /* [REMOVED: Decorative element] */
html.is-animating .fp-main-transition /* [REMOVED: Decorative element] */

html.is-animating .fp-menu-frame {
  opacity: 0;
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}


/***************************

Content

***************************/
.single-post-title {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  word-break: break-word;
}

.single-post-text ul {
  padding: 0;
  margin: 0;
}
.single-post-text h1 {
  font-size: 48px;
}
.single-post-text h2 {
  font-size: 36px;
}
.single-post-text h3 {
  font-size: 24px;
}
.single-post-text h4 {
  font-size: 17px;
}
.single-post-text h5 {
  font-size: 16px;
}
.single-post-text h6 {
  font-size: 15px;
}
.single-post-text ul > li,
.single-post-text ol > li {
  margin-bottom: 0.25rem;
}
.single-post-text ul ul,
.single-post-text ol ol,
.single-post-text ul ol,
.single-post-text ol ul {
  margin-top: 0.25rem;
}
.single-post-text ul > li {
  display: block;
  line-height: 150%;
  list-style-type: none;
  position: relative;
  padding-left: 27px;
}
.single-post-text ul > li:before {
  content: "";
  position: absolute;
  top: 10px;
  left: 0px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: rgb(195, 45, 205);
}
.single-post-text ol {
  padding: 0;
  margin: 0 0 0 1.25rem;
}
.single-post-text ol > li {
  line-height: 150%;
  list-style-type: decimal;
}
.single-post-text ol > li::marker {
  color: rgb(0, 0, 0);
}
.single-post-text p, 
.single-post-text ul, 
.single-post-text ol, 
.single-post-text h1, 
.single-post-text h2, 
.single-post-text h3, 
.single-post-text h4, 
.single-post-text h5, 
.single-post-text h6, 
.single-post-text iframe,
.single-post-text table, 
.single-post-text object, 
.single-post-text blockquote {
  margin-bottom: 30px;
}
.single-post-text p:last-child, 
.single-post-text ul:last-child, 
.single-post-text ol:last-child, 
.single-post-text h1:last-child, 
.single-post-text h2:last-child, 
.single-post-text h3:last-child, 
.single-post-text h4:last-child, 
.single-post-text h5:last-child, 
.single-post-text h6:last-child, 
.single-post-text iframe:last-child, 
.single-post-text table:last-child, 
.single-post-text object:last-child, 
.single-post-text blockquote:last-child {
  margin-bottom: 0;
}

/***************************

swiper

***************************/
.fp-content .swiper, 
.fp-content .swiper-container {
  overflow: visible;
}

/*-------------------------
widgets
--------------------------*/
.widget-area .widget-title {
	position: relative;
	font-size: 17px;
}

.widget-area .widget-title i {
	position: absolute;
  right: 0;
	bottom: 4px;
  font-family: "Font Awesome 5 Free";
  color: rgba(0, 0, 0, 0.5);
  font-size: 10px;
  opacity: 0.5;
  font-weight: 900;
}

.widget-area .widget_block h2 {
  line-height: 120%;
  font-size: 18px;
  letter-spacing: 0;
  position: relative;
  margin-bottom: 30px;
}

.widget-area .widget_block h2:before {
  content: "\f063";
  position: absolute;
  right: 0;
  font-family: "Font Awesome 5 Free";
  color: rgba(0, 0, 0, 0.5);
  font-size: 10px;
  opacity: 0.5;
  font-weight: 900;
}

.widget-area .widget {
  margin-bottom: 30px;
}

.widget-area ul,
.widget-area ol {
	padding: 0;
	margin: 0;
  list-style: none;
}

.widget-area ul li,
.widget-area ol li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 17px;
  padding: 15px 0;
  border-bottom: solid 1px rgba(0,0,0,.1);
  color: rgba(0, 0, 0, 0.5);
}

.widget-area ul li:first-child,
.widget-area ol li:first-child {
  border-top: solid 1px rgba(0,0,0,.1);
}

.widget-area ul li a,
.widget-area ol li a {
  display: block;
  text-decoration: none;
  color: rgb(0, 0, 0);
  transition: 0.3s ease-in-out;
}

.widget-area ul li a:hover,
.widget-area ol li a:hover {
  text-decoration: none;
  opacity: 0.7;
}

.widget-area .widget_categories ul ul,
.widget-area ul li.page_item_has_children ul,
.widget-area .widget_nav_menu ul ul,
.widget-area ul.wp-block-categories-list ul {
  border-left: 1px solid rgba(0,0,0,.1);
}
.widget-area .widget_categories ul li,
.widget-area ul li.page_item_has_children,
.widget-area .widget_nav_menu ul li,
.widget-area .widget_recent_comments ul li,
.widget-area ol.wp-block-latest-comments li,
.widget-area .widget_rss ul li,
.widget-area ul.wp-block-categories-list li {
  display: block;
}
.widget-area .widget_categories ul li a,
.widget-area ul li.page_item_has_children a,
.widget-area .widget_nav_menu ul li a,
.widget-area .widget_recent_comments ul li a,
.widget-area ol.wp-block-latest-comments li a,
.widget-area ul.wp-block-categories-list li a {
  display: inline-block;
}
.widget-area .widget_categories ul li li,
.widget-area ul li.page_item_has_children li,
.widget-area .widget_nav_menu ul li li,
.widget-area ul.wp-block-categories-list li li {
  border-bottom: none;
  padding-bottom: 0;
  padding-left: 15px;
  position: relative;
}
.widget-area .widget_categories ul li li:after,
.widget-area ul li.page_item_has_children li:after,
.widget-area .widget_nav_menu ul li li:after,
.widget-area ul.wp-block-categories-list li li:after {
  content: '';
  position: absolute;
  left: 0px;
  top: 26px;
  width: 10px;
  height: 1px;
  background: rgba(0,0,0,.1);
}
.widget-area .widget_categories ul li li:first-child,
.widget-area ul li.page_item_has_children li:first-child,
.widget-area .widget_nav_menu ul li li:first-child,
.widget-area ul.wp-block-categories-list li li:first-child {
  border-top: none;
}

.widget-area .widget_recent_comments ul li .comment-author-link,
.wp-block-latest-comments__comment-author {
	font-weight: 500;
}

.widget-area .widget_rss .rss-date {
  display: inline-block;
  padding: 2px 5px;
  background-color: rgba(0,0,0,.1);
  font-size: 14px;
  font-weight: 400;
  color: rgb(0, 0, 0);
}

.widget-area .widget_rss ul li a {
  transform: none;
  font-weight: 500;
  margin-bottom: 4px;
}

.wp-block-search,
.widget-area .widget_search .search-form {
	position: relative;
  max-width: 300px;
}

.wp-block-search label,
.widget-area .widget_search label {
  margin: 0;
}

.wp-block-search input[type=text],
.wp-block-search input[type=search],
.widget-area .widget_search input.search-field, 
.widget-area select, 
.single-post-text select {
  height: 50px;
  line-height: 50px;
  position: relative;
  padding: 0 60px 0 20px;
  margin-bottom: 0;
  font-size: 17px;
  background-color: #fff;
  display: block;
  width: 100%;
  border: none;
  font-weight: normal;
  text-transform: initial;
  letter-spacing: 1px;
}
.single-post-text select,
.single-post-text .wp-block-search input[type=search] {
	background-color: rgba(0, 0, 0, 0.1);
}

.widget-area .widget_search input.search-submit,
.wp-block-search .wp-block-search__button {
  position: absolute;
  top: 0;
  right: 0;
  height: 50px;
  width: 50px;
  border: none;
  background-color: rgb(195, 45, 205);
  transition: 0.3s ease-in-out;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 40%;
  background-image: url(assets/img/icons/search.svg);
  font-size: 0px;
  color: transparent;
}

.widget_rss a.rss-widget-feed {
  margin-right: 3px;
  display: inline-block;
  vertical-align: baseline;
}

.widget_rss .rss-date,
.widget_rss cite {
  margin: 5px 0 10px 0;
  display: block;
  font-size: 14px;
  font-weight: 400;
  opacity: 0.8;
}

.widget_rss cite {
  margin: 5px 0 20px 0;
  font-style: normal;
}

.widget-area .widget_text img {
  max-width: 100%;
  height: auto;
}

.widget-area .widget_text p {
  margin: 15px 0;
}

.post-text-bottom .tags-links,
.wp-block-tag-cloud .tagcloud,
.widget-area .widget_tag_cloud .tagcloud {
  font-size: 0px;
}

.post-text-bottom .tags-links a,
.wp-block-tag-cloud .tag-cloud-link,
.widget-area .widget_tag_cloud .tag-cloud-link {
  margin: 0 5px 5px 0;
  display: inline-block;
  vertical-align: top;
  padding: 0 7px;
  font-size: 15px !important;
  background-color: rgb(195, 45, 205);
  padding: 2px 5px;
  color: rgb(0, 0, 0);
  transition: 0.3s ease-in-out;
}

.post-text-bottom .tags-links a:hover,
.wp-block-tag-cloud .tag-cloud-link:hover,
.widget-area .widget_tag_cloud .tag-cloud-link:hover {
  filter: brightness(110%);
}

.widget-area table {
  width: 100%;
  margin: 0;
  padding: 0;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.5);
}

.widget-area table caption {
	padding: 5px;
	font-weight: 600;
	font-size: 14px;
	border-bottom: none;
	background: rgba(0, 0, 0, 0.5);
	text-align: center;
	color: rgb(190, 193, 195);
}

.widget-area th {
	padding: 5px 0;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	border: none;
	text-transform: uppercase;
}

.widget-area td {
	border: none;
	padding: 5px 0;
	font-size: 14px;
	background: none;
	text-align: center;
	border: none;
}

.widget-area tfoot td {
	border: none;
}

.widget-area td.pad {
	background: none;
}

.widget-area td#today {
	background: rgb(195, 45, 205);
	color: #000!important;
}

/*-------------------------
global classes
--------------------------*/

.align-center {
	text-align: center !important;
}

.align-right {
	text-align: right !important;
}

.align-left {
	text-align: left !important;
}

.pull-right {
	float: right !important;
}

.pull-left {
	float: left !important;
}

.pull-none {
	float: none !important;
}

.alignright {
	margin-left: 20px !important;
	margin-bottom: 10px !important;
	float: right !important;
	max-width: 50% !important;
}

img.alignright {
  clear: right;
}

.alignleft {
	margin-right: 20px !important;
	margin-bottom: 10px !important;
	float: left !important;
	max-width: 50% !important;
}

img.alignleft {
  clear: left;
}

.aligncenter {
	margin-left: auto !important;
	margin-right: auto !important;
	display: block;
}

.full-width {
	max-width: 100%;
	width: 100%;
}

.full-max-width {
	max-width: 100%;
	width: auto;
}

.centrize {
	display: table !important;
	table-layout: fixed !important;
	height: 100% !important;
	position: relative !important;
	top: 0;
	left: 0;
	z-index: 2;
}

.vertical-center {
	display: table-cell !important;
	vertical-align: middle !important;
}

form input[type="checkbox"] {
	display: inline-block;
	width: auto;
	height: auto;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	-webkit-clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

iframe,
object {
	max-width: 100%;
}

.sticky {
	position: relative;
}

.sticky:before {
	content: '';
	position: absolute;
	left: -30px;
	top: 0;
	bottom: 0;
	width: 4px;
	height: 100%;
	background: rgb(195, 45, 205);
	z-index: 3;
}

.post-edit-link {
	text-decoration: underline;
  	color: rgb(0, 0, 0);
}

.post-edit-link:hover {
	text-decoration: none;
}

.edit-link {
	margin-top: 15px;
	display: block;
}

/*-------------------------
single post
--------------------------*/

.single-post-text > *:first-child {
	margin-top: 0;
}
.single-post-text > *:last-child {
	margin-bottom: 0;
}

.single-post-text ul,
.single-post-text ol {
  line-height: 2;
}

.single-post-text ul {
  display: block;
  list-style-type: disc;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  padding-inline-start: 0px;
}

.single-post-text ul > li {
  list-style-type: disc;
}

.single-post-text li {
  display: list-item;
  text-align: -webkit-match-parent;
}

.single-post-text ol {
  display: block;
  list-style-type: decimal;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
  padding-inline-start: 1.25rem;
}

.single-post-text ol > li {
  list-style-type: decimal;
}

.single-post-text p {
	margin-top: 30px;
	margin-bottom: 30px;
}

.single-post-text img {
	max-width: 100%;
}

.single-post-text img+figure {
	margin-top: 30px;
}

.single-post-text table{
	width: 100%;
	margin: 0;
	padding: 0;
	border-collapse: collapse;
	background: none;
	border: 1px solid rgba(0, 0, 0, 0.3);
}

.single-post-text table th {
  	padding: 15px 20px;
	font-size: 15px;
	font-weight: 700;
	background: #fff;
	border: 1px solid #f2f3f5;
	text-align: left;
}

.single-post-text table tbody th {
	background: #fff;
}

.single-post-text table td {
	border: none;
	padding: 10px;
	font-size: 17px;
	background: #fff;
	border: 1px solid #f2f3f5;
}

.single-post-text table td#today{
	background: rgba(0, 0, 0, 0.3);
	font-weight: 700;
}

.single-post-text table caption {
	margin: 0 0 10px 0;
	padding: 0;
	font-size: 15px;
	font-weight: 600;
  	caption-side: top;
  	text-align: center;
}

@media screen and (max-width: 720px) {
	.single-post-text table th {
		padding: 10px;
		font-size: 13px;
	}
	.single-post-text table td {
		padding: 10px;
		font-size: 13px;
	}
}

.single-post-text {
	line-height: 1.6;
	word-wrap: break-word;
}

.single-post-text:after {
	content: '';
	position: relative;
	clear: both;
	display: block;
}

.single-post-text img {
	max-width: 100%;
	height: auto;
}

.single-post-text p a:hover {
	text-decoration: underline;
}

.single-post-text dt {
	margin-bottom: 5px;
	font-weight: 700;
  color: rgb(0, 0, 0);
}

.single-post-text dd {
	margin-top: 0;
	margin-bottom: 20px;
	margin-left: 20px;
}

.single-post-text blockquote p {
	margin-bottom: 0.5rem!important;
	font-style: normal;
	font-weight: 600;
}

.single-post-text blockquote p:first-child {
	margin-top: 0;
}

.single-post-text blockquote cite {
	font-size: 17px;
	font-style: normal;
}

.single-post-text blockquote cite:before {
	margin-right: 5px;
	content: '-';
}

.single-post-text blockquote cite br {
	display: none;
}

.single-post-text blockquote.has-text-align-right cite:before {
	display: none;
}

.single-post-text blockquote.has-text-align-right cite:after {
	margin-left: 5px;
	content: '-';
}

.wp-block-file__button {
	padding: 0 1rem;
}

.single-post-text figure {
	margin-bottom: 30px;
	max-width: 100%;
	overflow: auto;
}

.single-post-text figure .wp-caption-text,
.gallery-caption {
	font-style: italic;
}

.bypostauthor strong {
  	font-weight: 500;
}

.gallery {
	margin: 30px -10px;
}

.single-post-text .gallery {
	margin-bottom: 0;
}

.single-post-text h1,
.single-post-text h2,
.single-post-text h3,
.single-post-text h4,
.single-post-text h5,
.single-post-text h6 {
	margin-top: 30px;
	margin-bottom: 30px;
}

.single-post-text h1+h2,
.single-post-text h2+h3,
.single-post-text h3+h4,
.single-post-text h4+h5,
.single-post-text h5+h6,
.single-post-text h6 {
	margin-top: 30px;
}

.single-post-text pre.wp-block-code,
.single-post-text pre {
	padding: 20px;
	overflow: auto;
	white-space: pre-wrap;
	background: linear-gradient(159deg, rgb(0, 0, 0) 0%, #23232d 100%);
	background: -webkit-linear-gradient(159deg, rgb(0, 0, 0) 0%, #23232d 100%);
	color: #F2F3F5;
	font-size: 15px;
}

.single-post-text blockquote {
	margin: 30px 0;
	color: rgb(0, 0, 0);
	background: transparent;
	padding: 30px 30px 30px 40px;
	font-style: italic;
	position: relative;
}

.single-post-text blockquote p:last-child {
  margin-bottom: 0px!important;
}

.single-post-text blockquote:before {
	position: absolute;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f10d";
	font-size: 16px;
	opacity: .3;
	color: rgb(0, 0, 0);
	top: 0px;
	left: 10px;
}

.single-post-text blockquote:after {
	position: absolute;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f10d";
	font-size: 17px;
	opacity: .3;
	color: rgb(0, 0, 0);
	bottom: 0px;
	right: 0px;
	transform: rotate(180deg);
}

.single-post-text footer {
	width: auto;
}

.gallery .gallery-item {
	margin: 0;
	padding: 10px;
	display: inline-block;
	vertical-align: top;
	width: 100%;
	text-align: center;
}

.gallery .gallery-item img {
	max-width: 100%;
	height: auto;
}

.gallery.gallery-columns-1 .gallery-item {
	width: 100%;
}

.gallery.gallery-columns-2 .gallery-item {
	width: 50%;
}

.gallery.gallery-columns-3 .gallery-item {
	width: 33.333%;
}

.gallery.gallery-columns-4 .gallery-item {
	width: 25%;
}

.gallery.gallery-columns-5 .gallery-item {
	width: 20%;
}

.gallery.gallery-columns-6 .gallery-item {
	width: 16.666%;
}

.gallery.gallery-columns-7 .gallery-item {
	width: 14.28%;
}

.gallery.gallery-columns-8 .gallery-item {
	width: 12.5%;
}

.gallery.gallery-columns-9 .gallery-item {
	width: 11.111%;
}

.post-text-bottom {
  margin-top: 30px;
  padding-top: 30px;
  color: rgba(0, 0, 0, 0.5);
  border-top: 1px dashed rgb(190, 193, 195);
}

.post-text-bottom > span {
	margin-bottom: 1rem;
	display: block;
}

.post-text-bottom .social-share {
  line-height: 20px;
}

.post-text-bottom .share-btn {
	position: relative;
	display: inline-block;
	top: 1px;
	margin-left: 7px;
	margin-right: 7px;
	font-size: 17px;
}

.social-share strong {
	font-weight: 400;
}

.social-share a {
	margin-right: 15px;
	display: inline-block;
	vertical-align: top;
	text-align: center;
	color: rgb(0, 0, 0);
	transition: all 0.7s cubic-bezier(0.165, 0.85, 0.45, 1);
	-moz-transition: all 0.7s cubic-bezier(0.165, 0.85, 0.45, 1);
	-webkit-transition: all 0.7s cubic-bezier(0.165, 0.85, 0.45, 1);
	-o-transition: all 0.7s cubic-bezier(0.165, 0.85, 0.45, 1);
}

.social-share a .icon {
	color: rgb(0, 0, 0);
	font-size: 17px;
}

.social-share a:hover, 
.social-share a:hover .icon {
	color: rgb(195, 45, 205);
}

.social-share a:last-child {
	margin-right: 0;
}

.social-share span {
	line-height: 28px;
}

.page-links {
	margin-top: 30px;
	clear: both;
}

.post-text-bottom span.cat-links a, 
.page-links a {
	color: rgb(0, 0, 0);
  	text-decoration: none;
}
.page-links a,
.page-links span {
	display: inline-block;
	margin: 0 10px;
}

.post-text-bottom span.cat-links a:hover, 
.page-links a:hover {
	color: rgb(0, 0, 0);
  	text-decoration: underline;
}

.post-text-bottom .tags-links {
	margin: 15px 0;
	display: flex;
  	align-items: center;
  	flex-wrap: wrap;
  	font-size: 15px;
}

.post-text-bottom .tags-links a {
  	margin-top: 2.5px;
  	margin-bottom: 2.5px;
}

.post-text-bottom .tags-links *:nth-child(1) {
	margin-left: 5px;
}

.fp-post-navigation {
    margin-top: 30px;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px dashed rgb(190, 193, 195);
    padding-top: 30px
}

@media (max-width: 768px) {
	.fp-post-navigation > a > span {
		display: none !important;
	}
}

.fp-post-navigation a,
.fp-post-navigation > span {
    font-size: 13px;
    text-transform: uppercase;
}

.fp-post-navigation i:last-child {
    margin-left: 7px
}

.fp-post-navigation i:first-child {
    margin-right: 7px
}

.fp-post-navigation > span {
    opacity: .5;
    cursor: default
}

.fp-post-navigation a span {
    transition: .3s ease 0s;
    display: inline-block
}

.fp-post-navigation a:hover i + span {
    transform: translateX(5px)
}

.fp-post-navigation a:hover span {
    transform: translateX(-5px)
}

.fp-text a,
.single-post-text a {
	color: rgb(0, 0, 0);
	text-decoration: none;
}

.fp-text a:hover,
.single-post-text a:hover {
	color: rgb(0, 0, 0);
	text-decoration: underline;
}

.fp-text .fp-el-more {
	margin-top: 30px;
}

.fp-el-more {
	display: block;
}

/*-------------------------
sidebar
--------------------------*/

.fp-sidebar-frame {
	width: 100%;
	padding: 30px;
}
  
.fp-sidebar-frame .fp-sidebar {
	padding: 15px;
}
  
@media (max-width: 768px) {
	.fp-sidebar-frame.fp-pad-type-1 {
	  margin-top: 60px;
	  margin-bottom: 60px;
	}
	.fp-sidebar-frame.fp-pad-type-2 {
	  margin-top: 90px;
	  margin-bottom: 0;
	}
}
  
@media (max-width: 768px) {
	.fp-sidebar-frame .fp-sidebar {
	  border: none;
	  padding: 0;
	}
}

/*-------------------------
comments
-------------------------*/

.fp-comments-list {
	padding: 0;
	margin-top: 30px;
	position: relative;
}

.fp-comments-list + .form-comment {
  margin-top: 90px;
}

.fp-comments-list + .fp-text {
  margin-top: 60px;
}

.fp-comments-list:before {
	content: '';
	width: 1px;
	height: 100%;
	position: absolute;
	left: 32px;
	top: 0;
}

.fp-comments-list>li {
	list-style-type: none;
	position: relative;
}

.fp-comments-list>li:after {
	content: '';
	display: block;
	clear: both;
	height: 0;
	width: 0;
}

.fp-comments-list .fp-comment-avatar {
	width: 65px;
	height: 65px;
	position: relative;
	z-index: 99;
	float: left;
	border-radius: 50%;
	overflow: hidden;
}

.fp-comments-list .fp-comment-avatar img {
	width: 100%;
	height: 100%;
}

.fp-comments-list .children {
	padding-left: 88px;
	clear: both;
	margin-top: 15px;
	list-style: none;
}

.fp-comments-list .comment {
	list-style: none;
}

.comment-info {
	padding: 15px 0 0 0;
	color: rgb(190, 193, 195);
}

.comment-info span.comment-reply {
	position: absolute;
	top: 0;
	right: 0;
}

.comment-reply-link {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
}

.comment-reply-link:after {
	content: '';
	margin-left: 8px;
	content: '\f3e5';
	display: inline-block;
	vertical-align: middle;
	font-family: 'Font Awesome 5 Free';
	font-size: 12px;
	line-height: 14px;
	opacity: 0.8;
}

.post-comments .title h5 {
	margin-bottom: 30px;
}

.comment-respond {
	position: relative;
	margin-top: 0;
	margin-bottom: 40px;
	margin-left: 90px;
}

.form-comment .comment-respond {
	margin-top: 0;
	margin-left: 0;
}

.trackback .fp-comment-avatar,
.pingback .fp-comment-avatar {
	display: none;
}

.comment-respond .small,
.comment-respond small {
	font-size: 14px;
}

.comment-respond .title_inner small {
	position: absolute;
	top: 10px;
	left: auto;
	right: 0;
	display: block;
	font-size: 14px;
	white-space: nowrap;
}

.comment-respond .title_inner small a {
	text-decoration: none;
	opacity: 0.8;
}

.comment-respond .title_inner small a:hover {
	opacity: 1;
}

.comment:after {
	content: '';
	position: relative;
	display: block;
	clear: both;
}

.comment-reply {
	margin-top: 15px;
}

.fp-comment-box {
	width: calc(100% - 90px);
	float: right;
	position: relative;
	background-color: #fff;
	padding: 20px;
	margin-bottom: 30px;
    border: solid 1px #F2F3F5;
}

.fp-comment-box .fp-comment-head {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	margin-bottom: 20px;
}

.fp-comment-box .fp-comment-head h6 {
	font-size: 13px;
	line-height: 1.5;
}

.fp-comment-box .fp-comment-head .fp-date {
  padding: 2px 5px;
  background-color: #F2F3F5;
  font-size: 12px;
  font-weight: 400;
  color: rgb(0, 0, 0);
}

.fp-comments-list.fp-reply-list>li:last-child .fp-comment-box {
	margin-bottom: 30px !important;
}

.form-comment .fp-group-input textarea {
  background: #fff;
  max-width: 800px;
  height: 180px;
  font-size: 17px;
  font-family: var(--fp-body);
  padding: 20px;
}

@media (max-width: 790px) {
	.fp-comments-list:before {
		left: 17px;
	}
	.fp-comments-list .fp-comment-avatar {
		width: 35px;
		height: 35px;
	}
	.fp-reply-list {
		padding-left: 50px;
	}
	.fp-reply-list>li:before {
		top: 17px;
		left: -33px;
	}
	.fp-comment-box {
		width: calc(100% - 50px);
	}
}

.comment-form-cookies-consent label {
	display: inline;
}

.title.comment-reply-title,
.post-comments .title {
	margin: 0 0 30px 0;
	font-size: 17px;
	font-weight: 600;
}

.post-comments > .form-comment > .comment-respond {
	margin-bottom: 0;
}

@media (max-width: 480px) {
	.comment-respond .title_inner small {
		position: relative;
		top: 0;
		left: 0;
	}
}

@media (max-width: 1160px) {
	.post-comments .post-comment .image {
		width: 60px;
		height: 60px;
	}
	.post-comments .post-comment .desc {
		margin-left: 80px;
	}
	.post-comments .post-comment.pingback .desc {
		margin-left: 0;
	}
	.post-comments ul.children {
		padding: 20px 20px 0 80px;
	}
	.post-comments ul.children ul.children {
		padding: 20px 0 0 20px;
	}
	.post-comments ul.children ul.children ul.children ul.children {
		padding: 20px 0 0 10px;
	}
}

@media (max-width: 840px) {
	.post-comments ul.children {
		padding: 20px 20px 0 20px;
	}
	.post-comments ul.children ul.children {
		padding: 20px 0 0 20px;
	}
	.post-comments ul.children ul.children ul.children {
		padding: 20px 0 0 20px;
	}
	.post-comments ul.children ul.children ul.children ul.children {
		padding: 20px 0 0 10px;
	}
}

@media (max-width: 480px) {
	.post-comments ul.children {
		padding: 15px 15px 15px 15px;
	}
	.post-comments ul.children ul.children {
		padding: 15px 0 0 10px;
	}
	.post-comments ul.children ul.children ul.children {
		padding: 15px 0 0 5px;
	}
	.post-comments ul.children ul.children ul.children ul.children {
		padding: 15px 0 0 5px;
	}
	.post-comments .post-comment .image {
		width: 40px;
		height: 40px;
	}
	.post-comments .post-comment .desc {
		margin-left: 55px;
	}
	.post-comments .post-comment.pingback .desc {
		margin-left: 0;
	}
	.gallery .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-1 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-2 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-3 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-4 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-5 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-6 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-7 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-8 .gallery-item {
		width: 100%;
	}
	.gallery.gallery-columns-9 .gallery-item {
		width: 100%;
	}
}

/*-------------------------
WP Block
-------------------------*/

.wp-caption-text,
.wp-block-image figcaption,
.wp-block-video figcaption,
.wp-block-embed figcaption {
	max-width: 100%;
	margin: 0;
	padding: 5px 10px 0 10px;
	text-align: center;
	font-size: 14px;
	font-style: italic;
	color: rgba(0, 0, 0, 0.5);
}

.wp-block-gallery .blocks-gallery-image,
.wp-block-gallery .blocks-gallery-item {
	padding: 0;
}

.wp-block-gallery .blocks-gallery-image:before,
.wp-block-gallery .blocks-gallery-item:before {
	display: none;
}

.wp-block-cover,
.wp-block-cover-image {
	margin: 30px 0;
}

.wp-block-cover.alignleft,
.wp-block-cover-image.alignleft,
.wp-block-cover.alignright,
.wp-block-cover-image.alignright {
	margin-bottom: 30px!important;
}

.wp-block-cover p a:hover,
.wp-block-cover-image p a:hover {
	text-decoration: underline;
}

.wp-block-quote.is-large,
.wp-block-quote.is-style-large {
	padding: 30px 40px !important;
}

.wp-block-pullquote {
	padding-top: 0;
	padding-bottom: 0;
}

.wp-block-pullquote blockquote {
	padding-bottom: 30px;
	border-left: none;
	border-bottom: 2px solid rgb(195, 45, 205);
}

.wp-block-pullquote.is-style-solid-color {
	background-color: transparent;
	border: none;
}

.wp-block-pullquote.is-style-solid-color blockquote {
	border: none;
}

.wp-block-calendar,
.wp-block-archives,
.wp-block-categories {
	margin: 30px 0;
	max-width: 480px;
}

.wp-block-search .wp-block-search__label {
	display: none;
}

.wp-block-group.has-background {
	padding: 20px;
	color: rgb(0, 0, 0);
}

.wp-block-group.has-background p:first-child {
	margin-top: 0;
}

.wp-block-group.has-background p:last-child {
	margin-bottom: 0;
}

.wp-block-media-text.has-background {
	color: rgb(0, 0, 0);
}

.wp-block-media-text.has-background .has-large-font-size {
	line-height: 1.7;
}

hr.wp-block-separator {
	margin: 30px 0;
	border: none;
	border-bottom: 1px solid rgb(190, 193, 195);
	max-width: 50px;
}

hr.wp-block-separator.is-style-wide {
	max-width: 100%;
}

.wp-block-separator.is-style-dots:before {
	color: rgb(190, 193, 195);
}

.wp-block-button {
	margin-bottom: 30px;
}

.wp-block-button a.wp-block-button__link {
	padding: 13px 35px;
	background: rgb(195, 45, 205);
	color: rgb(0, 0, 0);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	border-radius: 46px;
	-webkit-border-radius: 46px;
}

.wp-block-button a.wp-block-button__link:hover {
	color: rgb(0, 0, 0);
}

.wp-block-button.is-style-outline a.wp-block-button__link {
	padding-top: 11px;
	padding-bottom: 11px;
	border: 2px solid rgb(195, 45, 205);
	color: rgb(195, 45, 205);
	background: none;
}

.wp-block-button.is-style-squared a.wp-block-button__link {
	border-radius: 0;
	-webkit-border-radius: 0;
}

.wp-block-columns {
	margin-bottom: 0;
}

.wp-calendar-nav:after {
	content: '';
	position: relative;
	display: block;
	clear: both;
}

.wp-calendar-nav span.wp-calendar-nav-prev {
	float: left;
}

.wp-calendar-nav span.wp-calendar-nav-next {
	float: right;
}

.wp-block-latest-comments__comment {
  line-height: 1.5;
}

.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,
.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta {
	padding: 0;
}

.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt a,
.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta a {
	font-weight: 600;
}

.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt {
	margin-top: 8px;
	margin-bottom: 22px;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: rgb(190, 193, 195);
}

ul.blocks-gallery-grid {
	margin: 0 !important;
}

body .wp-block-cover-image-text,
body .wp-block-cover-image-text a,
body .wp-block-cover-image-text a:active,
body .wp-block-cover-image-text a:focus,
body .wp-block-cover-image-text a:hover,
body .wp-block-cover-text,
body .wp-block-cover-text a,
body .wp-block-cover-text a:active,
body .wp-block-cover-text a:focus,
body .wp-block-cover-text a:hover,
body section.wp-block-cover-image h2,
body section.wp-block-cover-image h2 a,
body section.wp-block-cover-image h2 a:active,
body section.wp-block-cover-image h2 a:focus,
body section.wp-block-cover-image h2 a:hover {
	color: #fff!important;
}

.wp-block-archives-dropdown .nice-select,
.wp-block-categories-dropdown .nice-select {
	max-width: 390px;
	float: none;
	display: block;
}

.wp-block-calendar,
.wp-block-archives,
.wp-block-categories {
	max-width: 390px;
}

.wp-block-calendar table {
	background: #fff;
  	border: 1px solid rgb(190, 193, 195);
}
.wp-calendar-table tr th {
	padding-left: 5px;
	padding-right: 5px;
	text-align: center!important;
}

.post-password-form label {
	margin-bottom: 0;
	display: inline-block;
	vertical-align: bottom;
}
.post-password-form label input {
	margin-bottom: 0;
  margin-top: 10px;
	border-left: none;
}
.post-password-form input[type="submit"] {
	margin-bottom: 0;
	display: inline-block;
	vertical-align: bottom;
	width: 220px;
	background: rgb(195, 45, 205);
	text-transform: uppercase;
}

.itemGallery__box {
	margin-bottom: 30px;
	position: relative;
	background-color: white;
	-webkit-box-shadow: 0 5px 10px 0 rgb(26 47 51 / 15%);
	box-shadow: 0 5px 10px 0 rgb(26 47 51 / 15%);
	border-radius: 5px;
}
.itemGallery__box a {
	position: relative;
	overflow: hidden;
	display: block;
}
.itemGallery__box a:after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: -moz-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.75) 100%);
	background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%,rgba(0,0,0,0.75) 100%);
	background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.75) 100%);
	opacity: 0;
	-webkit-transition: 0.4s ease-in-out;
	transition: 0.4s ease-in-out;
}
.itemGallery__box img.cover {
	width: 100%;
	height: 300px;
	object-fit: cover;
	border-radius: 5px;
	-webkit-transition: 0.4s ease-in-out;
	transition: 0.4s ease-in-out;
}
.itemGallery__details {
	padding: 30px;
	pointer-events: none;
	position: absolute;
	left: 0;
	bottom: 0;
	color: #fff;
	opacity: 0;
	-webkit-transition: 0.6s ease-in-out;
	transition: 0.6s ease-in-out;
}
.itemGallery__box:hover a:after {
	opacity: 1;
}
.itemGallery__box:hover img.cover {
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}
.itemGallery__box:hover .itemGallery__details {
	opacity: 1;
}

@media (max-width: 768px) {
	.sticky:before {
		left: -1.25rem;
		width: 2px;
	}
}

@media (max-width: 720px) {
	.single-post-text table th {
		padding: 8px;
	}
	.single-post-text table td {
		padding: 8px;
	}
	.post-comments ul.children ul.children ul.children {
		padding: 15px 0 0 10px;
	}
}

@media (max-width: 768px) {
	.blocks-gallery-grid.alignleft,
	.blocks-gallery-grid.alignright,
	.wp-block-gallery.alignleft,
	.wp-block-gallery.alignright {
		width: 100%!important;
		max-width: 100%!important;
		margin-right: 0!important;
		float: none!important;
	}
}

@media (max-width: 767px) {
	.wp-block-quote.is-large p, .wp-block-quote.is-style-large p {
		font-size: 1.2em;
		font-style: italic;
		line-height: 1.4;
	}
	.wp-block-pullquote.is-style-solid-color blockquote {
		max-width: 100%;
	}
	.wp-block-pullquote p {
		font-size: 1.75em;
		line-height: 1.4;
	}
	.single-post-text table th {
		font-size: 12px;
	}
	form.post-password-form label input {
		margin-top: 10px;
		margin-bottom: 10px;
	}
	.post-password-form label {
		display: block;
	}
	.post-password-form input[type="submit"] {
		width: 100%;
	}
	.comment-respond {
		margin-left: 50px;
	}
	.single-post-text table th {
		font-size: 12px;
		text-transform: uppercase;
		letter-spacing: 2px;
	}
	nav.wp-calendar-nav {
		margin-top: 10px;
	}
	.wp-block-categories-list li:last-child, .wp-block-archives-list li:last-child, .widget.widget_nav_menu ul li:last-child, .widget.widget_pages ul li:last-child, .widget_categories ul li:last-child {
		margin-bottom: 0;
	}
}

/*
  Fix intro
*/
.fp-small-banner .fp-image-frame {
  max-height: 580px;
}

/*
  Fix zoom
*/
.fp-image-frame a, .elementor .fp-image-frame a {
  height: 100%;
}
.elementor .fp-image-frame img {
  height: 100% !important;
}

/*
  Fix responsive container
*/
@media screen and (max-width: 768px) {
  .container, 
  .container-fluid, 
  .container-xxl, 
  .container-xl, 
  .container-lg, 
  .container-md, 
  .container-sm {
    --bs-gutter-x: 10px;
  }
  .row {
    --bs-gutter-x: 10px;
  }
}

/*
  Elementor widgets show and hide params
*/
.attr-featured-false .fp-blog-card .fp-cover-frame,
.attr-title-false .fp-blog-card h4,
.attr-title-false .fp-blog-card .fp-h4,
.attr-details-false .fp-blog-card .fp-labels,
.attr-date-false .fp-blog-card .fp-label:not(.fp-accent),
.attr-category-false .fp-blog-card .fp-label.fp-accent,
.attr-more-false .fp-blog-card .fp-post-text .fp-el-more,
.attr-featured-false .fp-portfolio-item .fp-cover-frame,
.attr-title-false .fp-portfolio-item h5,
.attr-title-false .fp-portfolio-item .fp-h5,
.attr-details-false .fp-portfolio-item .fp-labels,
.attr-date-false .fp-portfolio-item .fp-label:not(.fp-accent),
.attr-category-false .fp-portfolio-item .fp-label.fp-accent
{
  display: none !important;
}

.attr-text-false .fp-blog-card .fp-post-text p {
  font-size: 0px !important;
  line-height: 1;
}
.attr-text-false .fp-blog-card .fp-post-text p .fp-el-more {
  margin-top: 0px;
}

/*
  Fix CF7 Errors
*/
.fp-dark-bg .wpcf7-not-valid-tip {
  color: rgba(255,255,255,0.9);
}
.elementor .wpcf7-not-valid-tip {
  margin-top: -20px;
  font-size: 11px;
  text-transform: uppercase;
}
.fp-dark-bg .wpcf7-not-valid-tip {
  color: rgba(255,255,255,0.9);
}
.elementor .wpcf7 form .wpcf7-response-output {
  margin-top: 20px;
  border-width: 1px;
  padding-bottom: 15px;
  padding-top: 15px;
  font-size: 90%;
}
.fp-dark-bg .wpcf7 form .wpcf7-response-output {
  color: rgba(255,255,255,0.9);
}

/*header element pointer events*/
.fp-frame-top .elementor-element {
 pointer-events: all;
}

/*logo invert mobile*/
@media screen and (max-width: 1200px) {
  .fp-frame-top .fp-logo img {
    filter: brightness(0) invert(1);
  }
  .js-replace .fp-logo img {
    filter: none !important;
  }
}

/* logo / menu custom invert */
:root {
  --replace-offset: 50%;
  --replace-offset-2: calc((100% - var(--replace-offset) ) * -1);
  --replace-offset-two: 50%;
  --replace-offset-2-two: calc((100% - var(--replace-offset-two) ) * -1);
  --replace-offset-three: 50%;
  --replace-offset-2-three: calc((100% - var(--replace-offset-three) ) * -1);
}
.js-replace,
.js-replace-two,
.js-replace-three {
  display: grid;
}
.js-replace__item,
.js-replace__item-two,
.js-replace__item-three {
  grid-row: -1 / 1;
  grid-column: -1 / 1; 
  overflow: hidden;
  will-change: transform;
}
.js-replace__item {
  transform: translateY(calc(var(--replace-offset) * 1));
}
.js-replace__item-two {
  transform: translateY(calc(var(--replace-offset-two) * 1));
}
.js-replace__item-three {
  transform: translateY(calc(var(--replace-offset-three) * 1));
}
.js-replace__item .js-replace__content,
.js-replace__item-two .js-replace__content-two,
.js-replace__item-three .js-replace__content-three {
  will-change: transform;
}
.js-replace__item .js-replace__content {
  transform: translateY(calc(var(--replace-offset) * -1));
}
.js-replace__item-two .js-replace__content-two {
  transform: translateY(calc(var(--replace-offset-two) * -1));
}
.js-replace__item-three .js-replace__content-three {
  transform: translateY(calc(var(--replace-offset-three) * -1));
}
.js-replace__item-two .js-replace__content-two {
  float: right;
}
.js-replace__item-two .fp-menu-btn {
  float: none;
}
.js-replace__item--active {
  transform: translateY(calc(var(--replace-offset-2) * 1));  
}
.js-replace__item--active-two {
  transform: translateY(calc(var(--replace-offset-2-two) * 1));  
}
.js-replace__item--active-three {
  transform: translateY(calc(var(--replace-offset-2-three) * 1));  
}
.js-replace__item--active .js-replace__content {
  transform: translateY(calc(var(--replace-offset-2) * -1));  
}
.js-replace__item--active-two .js-replace__content-two {
  transform: translateY(calc(var(--replace-offset-2-two) * -1));  
}
.js-replace__item--active-three .js-replace__content-three {
  transform: translateY(calc(var(--replace-offset-2-three) * -1));  
}
.js-replace__item-two:not(.js-replace__item--active-two) .fp-menu-btn span, 
.js-replace__item-two:not(.js-replace__item--active-two) .fp-menu-btn span:after, 
.js-replace__item-two:not(.js-replace__item--active-two) .fp-menu-btn span:before {
  background: #fff;
}
.js-replace__item-three:not(.js-replace__item--active-three) .fp-link,
.js-replace__item-three:not(.js-replace__item--active-three) .fp-item-link {
  color: #fff;
}
.js-replace__item-three:not(.js-replace__item--active-three) .fp-link svg {
  background-color: rgba(255,255,255,0.1);
}
.js-replace__item-three:not(.js-replace__item--active-three) .fp-link svg path {
  fill: #fff;
}
.js-replace--reverse .js-replace__item {
  transform: translateY(calc(var(--replace-offset-2) * 1));  
}
.js-replace--reverse-two .js-replace__item-two {
  transform: translateY(calc(var(--replace-offset-2-two) * 1));  
}
.js-replace--reverse-three .js-replace__item-three {
  transform: translateY(calc(var(--replace-offset-2-three) * 1));  
}
.js-replace--reverse .js-replace__content {
  transform: translateY(calc(var(--replace-offset-2) * -1));
}
.js-replace--reverse-two .js-replace__content-two {
  transform: translateY(calc(var(--replace-offset-2-two) * -1));
}
.js-replace--reverse-three .js-replace__content-three {
  transform: translateY(calc(var(--replace-offset-2-three) * -1));
}
.js-replace--reverse .js-replace__item--active {
  transform: translateY(calc(var(--replace-offset) * 1));  
}
.js-replace--reverse-two .js-replace__item--active-two {
  transform: translateY(calc(var(--replace-offset-two) * 1));  
}
.js-replace--reverse-three .js-replace__item--active-three {
  transform: translateY(calc(var(--replace-offset-three) * 1));  
}
.js-replace--reverse .js-replace__item--active .js-replace__content {
  transform: translateY(calc(var(--replace-offset) * -1));
}
.js-replace--reverse-two .js-replace__item--active-two .js-replace__content-two {
  transform: translateY(calc(var(--replace-offset-two) * -1));
}
.js-replace--reverse-three .js-replace__item--active-three .js-replace__content-three {
  transform: translateY(calc(var(--replace-offset-three) * -1));
}
@media screen and (max-width: 1200px) {
  .js-replace__item:first-child,
  .js-replace__item-two:first-child,
  .js-replace__item-three:first-child {
    display: none;
  }
  .js-replace__item, .js-replace__content, 
  .js-replace__item-two, .js-replace__content-two,
  .js-replace__item-three, .js-replace__content-three {
    transform: none !important;
  }
}

/*faq fix*/
.fp-accordion-group .fp-accordion-menu .fp-accordion-head {
  max-width: calc(100% - 40px);
}
@media screen and (max-width: 768px) {
  .fp-accordion-group .fp-accordion-menu {
    padding: 30px;
  }
}

/*margin fix*/
@media screen and (min-width: 1200px) {
  .fp-dark-bg .mi-invert-fix {
    padding-left: 105px;
    padding-right: 105px;
  }
}

/*fix menu-btn fix*/
.fp-menu-btn {
  float: right;
}

/*menu dropdown fix*/
.fp-main-menu ul li.fp-has-children ul.fp-active {
  max-height: 1000px;
}

/*swiper fix*/
body .swiper-container:not(.swiper-container-initialized)>.swiper-wrapper, 
body .swiper:not(.swiper-initialized)>.swiper-wrapper {
  overflow: visible;
}

/*x-icon*/
.fab.fa-twitter.x-icon:before {
  display: none
}
.fab.fa-twitter.x-icon svg {
  width: 18px;
  display: inline-block;
  vertical-align: top
}
.footer .fp-social-icons a:hover svg path {
  fill: rgb(195, 45, 205);
}

/*dropdown arrows*/
.fp-main-menu ul li > a {
  display: inline;
}
.fp-main-menu ul li > a:before {
  top: 50%;
  margin-top: -5px;
}
.fp-has-children .arrow-dropdown {
  display: inline-block;
  margin-left: 10px;
  color: #fff;
  cursor: pointer;
  transition: all 0.2s ease 0s;
}
.fp-has-children > a.fp-active + .arrow-dropdown {
  transform: rotate(180deg);
}

/*404 fix*/
.error404 .js-replace__item:not(.js-replace__item--active), 
.error404 .js-replace__item-two:not(.js-replace__item--active-two), 
.error404 .js-replace__item-three:not(.js-replace__item--active-three) {
  display: none;
}
.error404 .js-replace__item, 
.error404 .js-replace__item-two, 
.error404 .js-replace__item-three {
  overflow: visible;
}

/*logo fix in editor*/
.elementor-editor-active .js-replace__item {
  display: none;
}
.elementor-editor-active .js-replace__item.js-replace__item--active {
  display: block;
  transform: none;
}
.elementor-editor-active .js-replace__item--active .js-replace__content {
  transform: none;
}

/* fadeUP animation */
.fadeUpAnime {
  -webkit-animation-name: fadeUpAnime;
          animation-name: fadeUpAnime;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}
@-webkit-keyframes fadeUpAnime {
  0% {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fadeUpAnime {
  0% {
    opacity: 0;
    -webkit-transform: translateY(30px);
            transform: translateY(30px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

/*services fix*/
.fp-services-grid .fp-services-grid-item {
  border-bottom: solid 1px rgba(255, 255, 255, 0.1);
}
.fp-services-grid .col-lg-6.fp-services-grid-item:nth-child(3n) {
  border-left: solid 1px rgba(255, 255, 255, 0.1);
}

/* =================================================================
   FEMMEPRENISTA FOUNDATION CSS v1.1
   Design tokens, editorial type system, button hierarchy, 
   cursor follower, animated butterfly decoration, ghost typography,
   slide-down menu, scroll progress, page curtain, fadeUp animations.
   This section supersedes any conflicting rule above.
   ================================================================= */
/* =================================================================
   FEMMEPRENISTA FOUNDATION CSS v1.1
   =================================================================
   Site-wide stylesheet. Paste into WordPress admin →
   Appearance → Customize → Additional CSS.
   
   v1.1 additions:
     - Custom cursor follower (grey dot → charcoal circle on hover)
     - Floating butterfly decoration (hero sections only)
   
   Built on Design System v2.0 principles, with battle-tested patterns
   adapted from the parent theme and
   restyled for Femmeprenista's editorial cream/charcoal/magenta palette.
   
   Every Femmeprenista custom HTML block on the site should be
   wrapped in <div class="fp-page">…</div> so this CSS catches it.
   
   Section index:
     1.  Design tokens (CSS variables)
     2.  Theme fixes (Hello Elementor wrapper strip)
     3.  Base reset + typography
     4.  Container + layout utilities
     5.  Eyebrow + heading utility classes
     6.  Three-tier button library
     7.  Image frame system
     8.  Editorial type patterns (3-tier title, side-protruding, pull-quote)
     9.  Card patterns (hover scale, reveal-on-hover)
     10. Animated hamburger icon
     11. Slide-down menu panel
     12. Scroll progress indicator (Bailee Hill signature)
     13. Page curtain transition
     14. fadeUp reveal animation
     15. Accordion
     16. Custom scrollbar
     17. Form fields
     18. Responsive helpers
     19. Custom cursor follower (NEW v1.1)
     20. Floating butterfly decoration (NEW v1.1)
     ============================================================= */


/* =================================================================
   1. DESIGN TOKENS
   ============================================================= */

:root {
  /* ─── Palette (locked, Design System v2.0 §3) ─── */
  --fp-cream:        #FAF7F2;
  --fp-bone:         #F2EDE6;
  --fp-white:        #FFFFFF;
  --fp-charcoal:     #3D3D3D;
  --fp-graphite:     #534F51;
  --fp-mist:         #8A8A8A;
  --fp-magenta:      #C32DCD;
  --fp-magenta-deep: #A31FB3;
  --fp-magenta-soft: #F4DCF7;

  /* ─── Typography (locked, Design System v2.0 §4) ─── */
  --fp-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --fp-body:    'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* ─── Type scale ─── */
  --fp-text-xs:   0.75rem;     /* 12px — eyebrow / caption */
  --fp-text-sm:   0.875rem;    /* 14px — fine print */
  --fp-text-base: 1rem;        /* 16px — base body */
  --fp-text-md:   1.0625rem;   /* 17px — lifted body */
  --fp-text-lg:   1.25rem;     /* 20px — italic sub */
  --fp-text-xl:   1.5rem;      /* 24px — H4 */
  --fp-text-2xl:  1.75rem;     /* 28px — H3 */
  --fp-text-3xl:  2.25rem;     /* 36px — H2 */
  --fp-text-4xl:  3rem;        /* 48px — display */
  --fp-text-5xl:  3.75rem;     /* 60px — hero */
  --fp-text-6xl:  5.5rem;      /* 88px — three-tier title */

  /* ─── Spacing scale ─── */
  --fp-space-1:   0.5rem;
  --fp-space-2:   1rem;
  --fp-space-3:   1.5rem;
  --fp-space-4:   2rem;
  --fp-space-5:   3rem;
  --fp-space-6:   4rem;
  --fp-space-7:   5rem;
  --fp-space-8:   6rem;
  --fp-space-9:   8rem;
  --fp-space-10:  10rem;

  /* ─── Section padding (per Design System v2.0 §6) ─── */
  --fp-section-major:    clamp(5rem, 10vw, 8rem);
  --fp-section-connector: clamp(3rem, 6vw, 5rem);
  --fp-section-final-cta-top:    clamp(6rem, 12vw, 10rem);
  --fp-section-final-cta-bottom: clamp(4rem, 8vw, 6rem);

  /* ─── Layout ─── */
  --fp-container-max: 1240px;
  --fp-container-padding: clamp(1.25rem, 4vw, 3rem);

  /* ─── Borders / dividers ─── */
  --fp-line-soft: rgba(83, 79, 81, 0.18);
  --fp-line-faint: rgba(83, 79, 81, 0.1);

  /* ─── Easing curves ─── */
  --fp-ease-out: cubic-bezier(0, 0, 0.3642, 1);
  --fp-ease-in-out: cubic-bezier(0.22, 1, 0.36, 1);

  /* ─── Transitions ─── */
  --fp-t-fast: 200ms var(--fp-ease-out);
  --fp-t-base: 350ms var(--fp-ease-out);
  --fp-t-slow: 600ms var(--fp-ease-out);
}


/* =================================================================
   2. THEME FIXES — strip Hello Elementor wrapper styling on any
   page containing a .fp-page block (locks the universal CSS pattern)
   ============================================================= */

body:has(.fp-page) .page-header,
body:has(.fp-page) .entry-header,
body:has(.fp-page) header.entry-header,
body:has(.fp-page) .page-title-section {
  display: none !important;
}

body:has(.fp-page) #page,
body:has(.fp-page) #content,
body:has(.fp-page) .site-content,
body:has(.fp-page) #primary,
body:has(.fp-page) main#main {
  padding: 0 !important;
  margin: 0 !important;
}

body:has(.fp-page) article,
body:has(.fp-page) .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

body:has(.fp-page) .e-con {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body:has(.fp-page) .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

body:has(.fp-page) {
  margin: 0 !important;
  padding: 0 !important;
}


/* =================================================================
   3. BASE RESET + TYPOGRAPHY
   ============================================================= */

.fp-page,
.fp-page *,
.fp-page *::before,
.fp-page *::after {
  box-sizing: border-box;
}

.fp-page {
  font-family: var(--fp-body);
  font-weight: 300;
  font-size: var(--fp-text-base);
  line-height: 1.6;
  color: var(--fp-charcoal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.fp-page p {
  margin: 0 0 var(--fp-space-3);
  line-height: 1.65;
}
.fp-page p:last-child { margin-bottom: 0; }

.fp-page h1,
.fp-page h2,
.fp-page h3,
.fp-page h4,
.fp-page h5,
.fp-page h6 {
  font-family: var(--fp-display);
  font-weight: 500;
  line-height: 1.15;
  color: var(--fp-charcoal);
  margin: 0 0 var(--fp-space-3);
}

.fp-page a {
  color: inherit;
  text-decoration: none;
  transition: color var(--fp-t-fast);
}

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

.fp-page ul,
.fp-page ol {
  list-style: none;
  padding: 0;
  margin: 0;
}


/* =================================================================
   4. CONTAINER + LAYOUT UTILITIES
   ============================================================= */

.fp-container {
  max-width: var(--fp-container-max);
  margin: 0 auto;
  padding: 0 var(--fp-container-padding);
  position: relative;
}

.fp-container--narrow { max-width: 880px; }
.fp-container--wide   { max-width: 1400px; }

/* Section padding utilities */
.fp-section-major {
  padding-top: var(--fp-section-major);
  padding-bottom: var(--fp-section-major);
}
.fp-section-connector {
  padding-top: var(--fp-section-connector);
  padding-bottom: var(--fp-section-connector);
}
.fp-section-final-cta {
  padding-top: var(--fp-section-final-cta-top);
  padding-bottom: var(--fp-section-final-cta-bottom);
}

/* Background canvases */
.fp-bg-cream { background: var(--fp-cream); }
.fp-bg-bone  { background: var(--fp-bone); }
.fp-bg-white { background: var(--fp-white); }

/* Two-column grid (collapses at 900px) */
.fp-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

/* Three-column grid (collapses at 900px) */
.fp-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 4vw, 3rem);
}

@media (max-width: 900px) {
  .fp-grid-2,
  .fp-grid-3 {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
}

/* Vertical hairline divider */
.fp-hairline-v {
  width: 1px;
  background: var(--fp-line-soft);
}

/* Horizontal hairline divider */
.fp-hairline-h {
  height: 1px;
  background: var(--fp-line-soft);
  width: 100%;
}

/* Magenta hairline (for accent moments) */
.fp-hairline-magenta {
  height: 1px;
  background: var(--fp-magenta);
  opacity: 0.6;
}


/* =================================================================
   5. EYEBROW + HEADING UTILITY CLASSES
   ============================================================= */

.fp-eyebrow {
  display: inline-block;
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: var(--fp-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--fp-magenta);
  margin-bottom: var(--fp-space-3);
}

.fp-eyebrow--charcoal { color: var(--fp-charcoal); }

.fp-display {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(2.25rem, 4.5vw, var(--fp-text-5xl));
  line-height: 1;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}

.fp-h2 {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  line-height: 1.1;
  text-transform: uppercase;
}

.fp-h3 {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(1.25rem, 2vw, var(--fp-text-2xl));
  line-height: 1.15;
}

.fp-h4 {
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: var(--fp-text-base);
  text-transform: uppercase;
  letter-spacing: 0.18em;
}

/* Italic editorial sub-paragraph */
.fp-sub-italic {
  font-family: var(--fp-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.0625rem, 1.3vw, var(--fp-text-lg));
  line-height: 1.55;
  color: var(--fp-graphite);
}

/* Body copy lift */
.fp-body-md {
  font-family: var(--fp-body);
  font-weight: 300;
  font-size: var(--fp-text-md);
  line-height: 1.65;
  color: var(--fp-charcoal);
}

/* Caption / fine print */
.fp-caption {
  font-family: var(--fp-body);
  font-weight: 400;
  font-size: var(--fp-text-sm);
  line-height: 1.5;
  color: var(--fp-mist);
}


/* =================================================================
   6. THREE-TIER BUTTON LIBRARY (Design System v2.0 §5)
   ============================================================= */

/* ─── Tier 1: Primary action (magenta pill) ─── */
.fp-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--fp-magenta);
  color: var(--fp-white);
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  text-decoration: none;
  padding: 0.95rem 2rem;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  transition: all var(--fp-t-base);
  line-height: 1;
}
.fp-btn-primary:hover {
  background: var(--fp-magenta-deep);
  color: var(--fp-white);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgba(195, 45, 205, 0.4);
}
.fp-btn-primary--with-arrow::after {
  content: '→';
  transition: transform var(--fp-t-base);
}
.fp-btn-primary--with-arrow:hover::after {
  transform: translateX(4px);
}

/* ─── Tier 2: Browse / explore (square outline) ─── */
.fp-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: transparent;
  color: var(--fp-charcoal);
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  text-decoration: none;
  padding: 0.75rem 1.5rem;
  border: 1px solid var(--fp-charcoal);
  border-radius: 0;
  cursor: pointer;
  transition: all var(--fp-t-base);
  line-height: 1;
}
.fp-btn-outline::after {
  content: '→';
  transition: transform var(--fp-t-base);
}
.fp-btn-outline:hover {
  background: var(--fp-charcoal);
  color: var(--fp-white);
}
.fp-btn-outline:hover::after {
  transform: translateX(4px);
}

/* ─── Tier 3: Text link (no button) ─── */
.fp-btn-text {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--fp-charcoal);
  text-decoration: none;
  border-bottom: 1px solid var(--fp-charcoal);
  padding-bottom: 4px;
  transition: all var(--fp-t-fast);
  background: transparent;
  border-top: none;
  border-left: none;
  border-right: none;
  cursor: pointer;
}
.fp-btn-text::after {
  content: '→';
  transition: transform var(--fp-t-base);
}
.fp-btn-text:hover {
  color: var(--fp-magenta);
  border-color: var(--fp-magenta);
}
.fp-btn-text:hover::after {
  transform: translateX(4px);
}


/* =================================================================
   7. IMAGE FRAME SYSTEM
   Use: <div class="fp-img-frame fp-img-frame--vertical">
          <img src="..." alt="...">
        </div>
   ============================================================= */

.fp-img-frame {
  position: relative;
  overflow: hidden;
  width: 100%;
  background: var(--fp-bone);
}
.fp-img-frame > img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform var(--fp-t-base);
}

/* Aspect ratio variants */
.fp-img-frame--vertical    { padding-bottom: 140%; }   /* 5:7 */
.fp-img-frame--horizontal  { padding-bottom: 65%;  }   /* ~3:2 */
.fp-img-frame--square      { padding-bottom: 100%; }
.fp-img-frame--fw          { padding-bottom: 50%;  }   /* 2:1 wide */
.fp-img-frame--portrait-3-4 { padding-bottom: 133%; }
.fp-img-frame--landscape-4-5 { padding-bottom: 80%; }

/* Object-fit variants */
.fp-img-frame--contain > img { object-fit: contain; }

/* Hover scale on parent */
.fp-img-frame--hover-zoom:hover > img,
a:hover .fp-img-frame--hover-zoom > img,
.fp-card:hover .fp-img-frame--hover-zoom > img {
  transform: scale(1.05);
}

/* Circular image (for avatars / portrait crops) */
.fp-img-circle {
  border-radius: 50%;
  overflow: hidden;
  background: var(--fp-bone);
}
.fp-img-circle > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}


/* =================================================================
   8. EDITORIAL TYPE PATTERNS (Design System v2.0 §4)
   ============================================================= */

/* ─── Three-tier title treatment ─── 
   Markup:
     <div class="fp-title-3tier">
       <span class="fp-title-3tier__line">JOURNAL</span>
       <span class="fp-title-3tier__line fp-title-3tier__line--accent">Journal</span>
       <span class="fp-title-3tier__line">JOURNAL</span>
     </div>
*/
.fp-title-3tier {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.0;
}
.fp-title-3tier__line {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(3rem, 7vw, 5.5rem);
  text-transform: uppercase;
  color: var(--fp-charcoal);
  line-height: 1.05;
  display: block;
}
.fp-title-3tier__line--accent {
  font-style: italic;
  font-weight: 400;
  color: var(--fp-magenta);
  text-transform: lowercase;
  padding-left: 8%;
}
.fp-title-3tier--center { align-items: center; }
.fp-title-3tier--right  { align-items: flex-end; }

/* ─── Side-protruding decorative type ─── 
   Markup:
     <div class="fp-side-type-wrap">
       <span class="fp-side-type" aria-hidden="true">CARLENE</span>
       <div class="fp-side-type-content">…content here…</div>
     </div>
*/
.fp-side-type-wrap {
  position: relative;
  padding-left: clamp(2rem, 8vw, 8rem);
}
.fp-side-type {
  position: absolute;
  left: -5vw;
  top: -0.1em;
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(5rem, 14vw, 13rem);
  line-height: 1;
  color: var(--fp-charcoal);
  text-transform: uppercase;
  letter-spacing: -0.03em;
  pointer-events: none;
  white-space: nowrap;
  opacity: 1;
  z-index: 0;
}
.fp-side-type-content {
  position: relative;
  z-index: 1;
}

@media (max-width: 900px) {
  .fp-side-type-wrap { padding-left: 1.5rem; }
  .fp-side-type {
    position: static;
    font-size: clamp(3rem, 12vw, 6rem);
    margin-bottom: 1rem;
  }
}

/* ─── Italic highlight word in headline ─── 
   Add this class to a <em> or <span> inside an .fp-display heading
*/
.fp-italic-accent {
  font-style: italic;
  color: var(--fp-magenta);
  font-weight: 400;
  text-transform: none;
}

/* ─── Pull-quote with oversized magenta " mark ─── 
   Markup:
     <blockquote class="fp-pullquote">
       <span class="fp-pullquote__mark" aria-hidden="true">"</span>
       <p class="fp-pullquote__text">Quote text here.</p>
       <cite class="fp-pullquote__attr">— Attribution</cite>
     </blockquote>
*/
.fp-pullquote {
  position: relative;
  text-align: center;
  max-width: 880px;
  margin: 0 auto;
  padding: var(--fp-space-5) 0;
}
.fp-pullquote__mark {
  display: block;
  font-family: var(--fp-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(6rem, 12vw, 10rem);
  line-height: 0.6;
  color: var(--fp-magenta);
  margin-bottom: 1rem;
}
.fp-pullquote__text {
  font-family: var(--fp-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  line-height: 1.4;
  color: var(--fp-charcoal);
  margin-bottom: var(--fp-space-3);
}
.fp-pullquote__attr {
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: var(--fp-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--fp-charcoal);
  font-style: normal;
}

/* ─── Vertical sidebar label (e.g. "FREEDOM · BY DESIGN") ─── */
.fp-vlabel {
  position: absolute;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--fp-display);
  font-style: italic;
  font-weight: 400;
  font-size: var(--fp-text-base);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--fp-magenta);
  z-index: 5;
}
.fp-vlabel--left  { left: clamp(0.75rem, 2vw, 1.75rem); top: 50%; transform: translateY(-50%) rotate(180deg); }
.fp-vlabel--right { right: clamp(0.75rem, 2vw, 1.75rem); top: 50%; transform: translateY(-50%) rotate(180deg); }

@media (max-width: 1024px) {
  .fp-vlabel { display: none; }
}


/* =================================================================
   9. CARD PATTERNS
   ============================================================= */

/* ─── Generic card with hover image scale ─── */
.fp-card {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* ─── Reveal-on-hover content panel (used on team / services cards) ─── */
.fp-reveal-card {
  position: relative;
  overflow: hidden;
}
.fp-reveal-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(61, 61, 61, 0.85);
  padding: var(--fp-space-5) var(--fp-space-4);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  opacity: 0;
  transition: opacity var(--fp-t-slow);
  pointer-events: none;
  color: var(--fp-cream);
}
.fp-reveal-card__inner {
  opacity: 0;
  transform: translateY(15px);
  transition: opacity var(--fp-t-base), transform var(--fp-t-base);
}
.fp-reveal-card:hover .fp-reveal-card__overlay {
  opacity: 1;
  pointer-events: auto;
}
.fp-reveal-card:hover .fp-reveal-card__inner {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 100ms;
}
/* Magenta underline grows on hover */
.fp-reveal-card::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--fp-magenta);
  transition: width var(--fp-t-slow);
  z-index: 2;
}
.fp-reveal-card:hover::after { width: 100%; }


/* =================================================================
   10. ANIMATED HAMBURGER ICON
   ============================================================= */

.fp-burger {
  pointer-events: all;
  height: 28px;
  width: 28px;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: transparent;
  border: none;
  padding: 0;
  transition: transform var(--fp-t-base);
}
.fp-burger span,
.fp-burger span::after,
.fp-burger span::before {
  content: '';
  display: block;
  width: 28px;
  height: 2.5px;
  background: var(--fp-charcoal);
  backface-visibility: hidden;
  transition: inherit;
}
.fp-burger span { position: relative; }
.fp-burger span::after,
.fp-burger span::before { position: absolute; }
.fp-burger span::before { top: -9px; }
.fp-burger span::after  { top: 9px; width: 18px; }

.fp-burger.is-active span { transform: rotate(45deg); }
.fp-burger.is-active span::before {
  transform: translate(0, 9px) rotate(-90deg);
}
.fp-burger.is-active span::after {
  opacity: 0;
  width: 24px;
  transform: translate(0, -9px) rotate(-90deg);
}

/* ─── Hamburger inside a magenta circle (Femmeprenista variant) ─── */
.fp-burger-circle {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--fp-magenta);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  transition: all var(--fp-t-base);
  padding: 0;
}
.fp-burger-circle:hover {
  background: var(--fp-magenta-deep);
  transform: scale(1.05);
  box-shadow: 0 8px 20px -6px rgba(195, 45, 205, 0.5);
}
.fp-burger-circle span,
.fp-burger-circle span::after,
.fp-burger-circle span::before {
  background: var(--fp-white);
}


/* =================================================================
   11. SLIDE-DOWN MENU PANEL
   ============================================================= */

.fp-menu-panel {
  position: fixed;
  inset: 0;
  background: var(--fp-charcoal);
  z-index: 9999;
  transform: translateY(-100%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 500ms var(--fp-ease-in-out), visibility 0s 500ms;
  display: flex;
  flex-direction: column;
  padding: 2rem clamp(1.5rem, 3vw, 2.5rem);
  overflow-y: auto;
}
.fp-menu-panel.is-open {
  transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
  transition: transform 500ms var(--fp-ease-in-out), visibility 0s 0s;
}

.fp-menu-panel__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(2rem, 5vw, 4rem);
}
.fp-menu-panel__brand {
  font-family: var(--fp-display);
  font-weight: 400;
  font-size: var(--fp-text-lg);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--fp-white);
  text-decoration: none;
}
.fp-menu-panel__brand:hover { color: var(--fp-cream); }

.fp-menu-panel__close {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all var(--fp-t-base);
  padding: 0;
}
.fp-menu-panel__close:hover {
  background: var(--fp-magenta);
  border-color: var(--fp-magenta);
  transform: rotate(90deg);
}
.fp-menu-panel__close svg {
  width: 18px; height: 18px; fill: var(--fp-white);
}

.fp-menu-panel__nav {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(0.5rem, 1.5vw, 1rem);
  margin: auto 0;
  padding-right: clamp(1rem, 4vw, 4rem);
  width: 100%;
}
.fp-menu-panel__nav li {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 400ms var(--fp-ease-in-out), transform 400ms var(--fp-ease-in-out);
}
.fp-menu-panel.is-open .fp-menu-panel__nav li { opacity: 1; transform: translateX(0); }
.fp-menu-panel.is-open .fp-menu-panel__nav li:nth-child(1) { transition-delay: 200ms; }
.fp-menu-panel.is-open .fp-menu-panel__nav li:nth-child(2) { transition-delay: 280ms; }
.fp-menu-panel.is-open .fp-menu-panel__nav li:nth-child(3) { transition-delay: 360ms; }
.fp-menu-panel.is-open .fp-menu-panel__nav li:nth-child(4) { transition-delay: 440ms; }
.fp-menu-panel.is-open .fp-menu-panel__nav li:nth-child(5) { transition-delay: 520ms; }
.fp-menu-panel.is-open .fp-menu-panel__nav li:nth-child(6) { transition-delay: 600ms; }

.fp-menu-panel__nav a {
  font-family: var(--fp-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.1;
  color: var(--fp-white);
  text-decoration: none;
  transition: color var(--fp-t-fast);
}
.fp-menu-panel__nav a:hover { color: var(--fp-magenta); }

body.fp-menu-locked { overflow: hidden; }


/* =================================================================
   12. SCROLL PROGRESS INDICATOR
   ============================================================= */

/* fp-progress-track rules consolidated above */


/* =================================================================
   13. PAGE CURTAIN TRANSITION
   ============================================================= */

.fp-curtain {
  position: fixed;
  inset: 0;
  background: var(--fp-cream);
  opacity: 0;
  pointer-events: none;
  z-index: 9998;
  transition: opacity var(--fp-t-slow);
}
.fp-curtain.is-active {
  opacity: 1;
  pointer-events: all;
}


/* =================================================================
   14. fadeUp REVEAL ANIMATION
   ============================================================= */

@keyframes fp-fadeUp {
  0%   { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}

.fp-reveal {
  opacity: 0;
}
.fp-reveal.is-revealed {
  animation: fp-fadeUp 600ms var(--fp-ease-out) forwards;
}

/* Stagger children */
.fp-reveal-stagger > * {
  opacity: 0;
  animation: fp-fadeUp 600ms var(--fp-ease-out) forwards;
}
.fp-reveal-stagger > *:nth-child(1) { animation-delay: 100ms; }
.fp-reveal-stagger > *:nth-child(2) { animation-delay: 200ms; }
.fp-reveal-stagger > *:nth-child(3) { animation-delay: 300ms; }
.fp-reveal-stagger > *:nth-child(4) { animation-delay: 400ms; }
.fp-reveal-stagger > *:nth-child(5) { animation-delay: 500ms; }
.fp-reveal-stagger > *:nth-child(6) { animation-delay: 600ms; }


/* =================================================================
   15. ACCORDION
   ============================================================= */

.fp-accordion {
  border-bottom: 1px solid var(--fp-line-soft);
}
.fp-accordion__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  padding: var(--fp-space-3) 0;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
}
.fp-accordion__title {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: var(--fp-text-xl);
  color: var(--fp-charcoal);
  margin: 0;
}
.fp-accordion__symbol {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--fp-bone);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: background var(--fp-t-fast);
}
.fp-accordion__symbol::before,
.fp-accordion__symbol::after {
  content: '';
  position: absolute;
  background: var(--fp-charcoal);
  transition: transform var(--fp-t-base);
}
.fp-accordion__symbol::before {
  width: 12px;
  height: 2px;
}
.fp-accordion__symbol::after {
  width: 2px;
  height: 12px;
}
.fp-accordion.is-open .fp-accordion__symbol {
  background: var(--fp-magenta);
}
.fp-accordion.is-open .fp-accordion__symbol::before,
.fp-accordion.is-open .fp-accordion__symbol::after {
  background: var(--fp-white);
}
.fp-accordion.is-open .fp-accordion__symbol::after {
  transform: scaleY(0);
}
.fp-accordion__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--fp-t-slow);
}
.fp-accordion.is-open .fp-accordion__body {
  max-height: 600px;
}
.fp-accordion__content {
  padding: 0 0 var(--fp-space-3);
}


/* =================================================================
   16. CUSTOM SCROLLBAR (Bailee Hill signature)
   ============================================================= */

@media (min-width: 1025px) {
  body:has(.fp-page)::-webkit-scrollbar {
    width: 10px;
  }
  body:has(.fp-page)::-webkit-scrollbar-track {
    background: transparent;
  }
  body:has(.fp-page)::-webkit-scrollbar-thumb {
    background-color: var(--fp-magenta);
    border-radius: 5px;
  }
  body:has(.fp-page)::-webkit-scrollbar-thumb:hover {
    background-color: var(--fp-magenta-deep);
  }
}


/* =================================================================
   17. FORM FIELDS
   ============================================================= */

.fp-input,
.fp-textarea {
  width: 100%;
  padding: 0.95rem 1.25rem;
  font-family: var(--fp-body);
  font-weight: 400;
  font-size: var(--fp-text-md);
  color: var(--fp-charcoal);
  background: var(--fp-white);
  border: 1px solid var(--fp-line-soft);
  border-radius: 0;
  transition: border-color var(--fp-t-fast);
}
.fp-input:focus,
.fp-textarea:focus {
  outline: none;
  border-color: var(--fp-magenta);
}
.fp-input::placeholder,
.fp-textarea::placeholder {
  color: var(--fp-mist);
}
.fp-textarea {
  min-height: 180px;
  resize: vertical;
}

.fp-label {
  display: block;
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: var(--fp-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--fp-charcoal);
  margin-bottom: 0.5rem;
}


/* =================================================================
   18. RESPONSIVE HELPERS
   ============================================================= */

.fp-hide-mobile { display: revert; }
.fp-show-mobile { display: none; }

@media (max-width: 768px) {
  .fp-hide-mobile { display: none !important; }
  .fp-show-mobile { display: revert; }
}

/* Mobile text alignment helpers */
@media (max-width: 768px) {
  .fp-mobile-center { text-align: center !important; }
  .fp-mobile-left   { text-align: left !important; }
}

/* End of base foundation. Sections 19 + 20 below are v1.1 additions. */


/* =================================================================
   19. CUSTOM CURSOR FOLLOWER (v1.1)
   =================================================================
   Small grey dot follows the mouse on desktop.
   Expands to a charcoal circle with text on hover over interactive elements.
   Hidden on mobile/tablet (touch devices, no cursor).
   
   Markup needed (paste once in your global header HTML widget):
     <div class="fp-cursor" id="fpCursor" aria-hidden="true">
       <span class="fp-cursor__text">Learn More</span>
     </div>
   
   Add data-cursor="more" attribute to elements that should expand it:
     <a href="/about" data-cursor="more">…</a>
     <img src="…" data-cursor="more" alt="…">
   
   You can override the text per-element with data-cursor-text:
     <a href="/strategy-session" data-cursor="more" data-cursor-text="Book Now">…</a>
   ============================================================= */

.fp-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10000;
  width: 12px;
  height: 12px;
  pointer-events: none;
  background-color: var(--fp-mist);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translate(-50%, -50%);
  transition:
    width 350ms var(--fp-ease-in-out),
    height 350ms var(--fp-ease-in-out),
    background-color 350ms var(--fp-ease-in-out),
    opacity 200ms ease;
  /* Movement uses CSS variable updated by JS each frame */
  left: var(--fp-cursor-x, 0px);
  top: var(--fp-cursor-y, 0px);
}

.fp-cursor.is-active {
  opacity: 1;
}

.fp-cursor__text {
  font-family: var(--fp-body);
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--fp-cream);
  white-space: nowrap;
  transform: scale(0);
  opacity: 0;
  transition:
    transform 350ms var(--fp-ease-in-out),
    opacity 200ms ease;
}

/* Expanded state — when hovering over [data-cursor="more"] */
.fp-cursor.is-expanded {
  width: 110px;
  height: 110px;
  background-color: var(--fp-charcoal);
}
.fp-cursor.is-expanded .fp-cursor__text {
  transform: scale(1);
  opacity: 1;
}

/* Hide on touch devices and small screens */
@media (max-width: 1200px), (hover: none), (pointer: coarse) {
  .fp-cursor { display: none !important; }
}


/* =================================================================
   20. FLOATING BUTTERFLY DECORATION (v1.1)
   =================================================================
   Subtle decorative butterflies that float gently in hero sections only.
   Use sparingly — 2 per hero maximum, opposite corners.
   Uses the favicon_000000-1.png at low opacity for an editorial sketch feel.
   Hidden on mobile (would clutter the small viewport).
   
   Markup needed (paste inside hero section, after the main content):
     <div class="fp-butterfly fp-butterfly--top-right" aria-hidden="true">
       <img src="https://femmeprenista.com/wp-content/uploads/2026/04/favicon_000000-1.png" alt="">
     </div>
     <div class="fp-butterfly fp-butterfly--bottom-left" aria-hidden="true">
       <img src="https://femmeprenista.com/wp-content/uploads/2026/04/favicon_000000-1.png" alt="">
     </div>
   
   Position variants:
     fp-butterfly--top-left
     fp-butterfly--top-right
     fp-butterfly--bottom-left
     fp-butterfly--bottom-right
     fp-butterfly--center-left  (mid-height left edge, very subtle)
     fp-butterfly--center-right (mid-height right edge, very subtle)
   ============================================================= */

@keyframes fp-butterfly-float {
  0%   { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-12px) rotate(-3deg); }
  50%  { transform: translateY(-6px) rotate(2deg); }
  75%  { transform: translateY(-18px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes fp-butterfly-float-alt {
  /* Offset / mirrored variant so two butterflies don't move in sync */
  0%   { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-8px) rotate(4deg); }
  50%  { transform: translateY(-16px) rotate(-2deg); }
  75%  { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.fp-butterfly {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  opacity: 0.10;
  width: clamp(64px, 7vw, 110px);
  height: auto;
  animation: fp-butterfly-float 11s ease-in-out infinite;
  will-change: transform;
}
.fp-butterfly img {
  width: 100%;
  height: auto;
  display: block;
}

/* Position variants */
.fp-butterfly--top-left {
  top: clamp(2rem, 5vw, 5rem);
  left: clamp(2rem, 5vw, 5rem);
}
.fp-butterfly--top-right {
  top: clamp(2rem, 5vw, 5rem);
  right: clamp(2rem, 5vw, 5rem);
  animation-name: fp-butterfly-float-alt;
  animation-duration: 13s;
}
.fp-butterfly--bottom-left {
  bottom: clamp(2rem, 5vw, 5rem);
  left: clamp(2rem, 5vw, 5rem);
  animation-name: fp-butterfly-float-alt;
  animation-duration: 12s;
}
.fp-butterfly--bottom-right {
  bottom: clamp(2rem, 5vw, 5rem);
  right: clamp(2rem, 5vw, 5rem);
  animation-duration: 10s;
}
.fp-butterfly--center-left {
  top: 50%;
  left: clamp(1rem, 3vw, 3rem);
  transform: translateY(-50%);
  opacity: 0.07;
  width: clamp(48px, 5vw, 80px);
}
.fp-butterfly--center-right {
  top: 50%;
  right: clamp(1rem, 3vw, 3rem);
  transform: translateY(-50%);
  opacity: 0.07;
  width: clamp(48px, 5vw, 80px);
}

/* Hide on mobile */
@media (max-width: 768px) {
  .fp-butterfly { display: none; }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .fp-butterfly { animation: none; }
}


/* End of Femmeprenista Foundation CSS */

/* =================================================================
   FEMMEPRENISTA DECORATIVE SYSTEMS
   Two variants (per design session decisions):
   A) Animated SVG butterfly — hero sections
   B) Ghost Playfair typography drift — promise/pull-quote sections
   ================================================================= */

/* ── A) Animated SVG Butterfly (hero sections only) ── */
.fp-butterfly {
  position: absolute;
  width: clamp(64px, 6vw, 96px);
  height: auto;
  opacity: 0.08;
  pointer-events: none;
  z-index: 1;
  transform-origin: center center;
}
.fp-butterfly svg {
  width: 100%;
  height: auto;
  display: block;
}
/* Wing animation — left wing */
.fp-butterfly svg .fp-wing-left {
  transform-origin: right center;
  animation: fpWingLeft 3.5s ease-in-out infinite;
}
/* Wing animation — right wing */
.fp-butterfly svg .fp-wing-right {
  transform-origin: left center;
  animation: fpWingRight 3.5s ease-in-out infinite;
}
/* Whole butterfly drifts gently */
.fp-butterfly--top-right {
  top: 7%;
  right: 5%;
  animation: fpButterflyDrift1 12s ease-in-out infinite;
}
.fp-butterfly--bottom-left {
  bottom: 10%;
  left: 5%;
  animation: fpButterflyDrift2 15s ease-in-out infinite;
}
@keyframes fpWingLeft {
  0%, 100% { transform: scaleX(1) rotate(0deg); }
  40%       { transform: scaleX(0.55) rotate(-4deg); }
  70%       { transform: scaleX(0.85) rotate(2deg); }
}
@keyframes fpWingRight {
  0%, 100% { transform: scaleX(1) rotate(0deg); }
  40%       { transform: scaleX(0.55) rotate(4deg); }
  70%       { transform: scaleX(0.85) rotate(-2deg); }
}
@keyframes fpButterflyDrift1 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30%      { transform: translateY(-14px) rotate(-2deg); }
  60%      { transform: translateY(-6px) rotate(1.5deg); }
}
@keyframes fpButterflyDrift2 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  35%      { transform: translateY(-10px) rotate(3deg); }
  65%      { transform: translateY(-18px) rotate(-1.5deg); }
}
@media (max-width: 767px) { .fp-butterfly { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .fp-butterfly,
  .fp-butterfly svg .fp-wing-left,
  .fp-butterfly svg .fp-wing-right { animation: none; }
}

/* ── B) Ghost Playfair Typography Drift (promise/pull-quote sections) ── */
.fp-ghost-type {
  position: absolute;
  font-family: var(--fp-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(6rem, 14vw, 14rem);
  color: var(--fp-charcoal);
  opacity: 0.04;
  pointer-events: none;
  user-select: none;
  z-index: 0;
  white-space: nowrap;
  letter-spacing: -0.02em;
  line-height: 1;
}
.fp-ghost-type--left  { left: -3%; top: 50%; transform: translateY(-50%); animation: fpGhostDriftLeft 20s ease-in-out infinite; }
.fp-ghost-type--right { right: -3%; top: 50%; transform: translateY(-50%); animation: fpGhostDriftRight 24s ease-in-out infinite; }
@keyframes fpGhostDriftLeft {
  0%, 100% { transform: translateY(-50%) translateX(0); opacity: 0.04; }
  50%       { transform: translateY(-50%) translateX(8px); opacity: 0.055; }
}
@keyframes fpGhostDriftRight {
  0%, 100% { transform: translateY(-50%) translateX(0); opacity: 0.04; }
  50%       { transform: translateY(-50%) translateX(-8px); opacity: 0.055; }
}
@media (max-width: 767px) { .fp-ghost-type { display: none; } }
@media (prefers-reduced-motion: reduce) { .fp-ghost-type { animation: none; } }

/* ── Preloader text colour fix (cream background) ── */
.fp-preloader .fp-muted {
  color: var(--fp-charcoal) !important;
}
.fp-preloader .fp-thin {
  opacity: 0.5;
}


/* =============================================================================
   FOOTER — Femmeprenista 3-column layout + credit ribbon
   ============================================================================= */

/* ── Grid ── */
.fp-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}
@media (max-width: 900px) {
	.fp-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
	.fp-footer__col--freebie {
		grid-column: 1 / -1;
	}
}
@media (max-width: 600px) {
	.fp-footer__grid {
		grid-template-columns: 1fr;
	}
	.fp-footer__col--freebie {
		grid-column: auto;
	}
}

/* ── Column headings ── */
.fp-footer__heading {
	font-family: var(--fp-display);
	font-size: clamp(1.1rem, 1.5vw, 1.4rem);
	font-weight: 500;
	color: var(--fp-charcoal);
	margin-bottom: 1rem;
	letter-spacing: 0.01em;
}

/* ── About column ── */
.fp-footer__portrait-wrap {
	margin-bottom: 1.25rem;
}
.fp-footer__portrait {
	width: clamp(80px, 12vw, 120px);
	height: clamp(80px, 12vw, 120px);
	border-radius: 50%;
	object-fit: cover;
	object-position: top center;
	border: 3px solid var(--fp-magenta);
	display: block;
}
.fp-footer__bio {
	font-family: var(--fp-body);
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--fp-charcoal);
	opacity: 0.8;
	margin-bottom: 1rem;
}
.fp-footer__story-link {
	font-family: var(--fp-body);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--fp-magenta);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	transition: gap 0.25s ease;
}
.fp-footer__story-link::after {
	content: '→';
	font-size: 1rem;
	transition: transform 0.25s ease;
}
.fp-footer__story-link:hover::after {
	transform: translateX(4px);
}

/* ── Freebie column ── */
.fp-footer__freebie-card {
	background: var(--fp-cream);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.fp-footer__freebie-img-wrap {
	overflow: hidden;
	max-height: 180px;
}
.fp-footer__freebie-img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	object-position: center top;
	display: block;
	transition: transform 0.4s ease;
}
.fp-footer__freebie-card:hover .fp-footer__freebie-img {
	transform: scale(1.04);
}
.fp-footer__freebie-body {
	padding: 1.25rem 1.5rem 1.5rem;
}
.fp-footer__freebie-label {
	font-family: var(--fp-body);
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fp-magenta);
	font-weight: 700;
	margin-bottom: 0.4rem;
}
.fp-footer__freebie-title {
	font-family: var(--fp-display);
	font-size: clamp(1rem, 1.3vw, 1.2rem);
	font-weight: 600;
	color: var(--fp-charcoal);
	margin-bottom: 0.5rem;
	line-height: 1.3;
}
.fp-footer__freebie-desc {
	font-family: var(--fp-body);
	font-size: 0.85rem;
	line-height: 1.6;
	color: var(--fp-charcoal);
	opacity: 0.75;
	margin-bottom: 1rem;
}
.fp-footer__freebie-btn {
	display: inline-block;
	width: 100%;
	text-align: center;
}

/* ── Nav column ── */
.fp-footer__nav {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}
.fp-footer__nav li {
	margin-bottom: 0.5rem;
}
.fp-footer__nav a {
	font-family: var(--fp-body);
	font-size: 0.9rem;
	color: var(--fp-charcoal);
	text-decoration: none;
	opacity: 0.75;
	transition: opacity 0.2s ease, color 0.2s ease;
}
.fp-footer__nav a:hover {
	opacity: 1;
	color: var(--fp-magenta);
}

/* ── Social ── */
.fp-footer__social {
	display: flex;
	gap: 0.75rem;
	margin-top: 0.5rem;
}
.fp-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--fp-charcoal);
	color: var(--fp-cream);
	transition: background 0.25s ease, transform 0.25s ease;
}
.fp-footer__social-link:hover {
	background: var(--fp-magenta);
	transform: translateY(-2px);
}
.fp-footer__social-link svg {
	fill: currentColor;
}

/* ── Credit ribbon ── */
.fp-footer__ribbon-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0;
}
.fp-footer__ribbon-link:hover {
	text-decoration: underline !important;
	opacity: 0.85;
}

/* =============================================================================
   HIDDEN ELEMENTS — butterfly template (used by JS)
   ============================================================================= */
.fp-hidden-elements {
	display: none !important;
}


/* =============================================================================
   JOURNAL CARD — fp-journal-card component
   ============================================================================= */

.fp-journal-card {
	display: flex;
	flex-direction: column;
	background: var(--fp-cream, #FAF7F2);
	border-radius: 12px;
	overflow: hidden;
	height: 100%;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.fp-journal-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 50px rgba(0,0,0,0.08);
}

/* ── Image ── */
.fp-journal-card__img-link {
	display: block;
	overflow: hidden;
}
.fp-journal-card__img-wrap {
	overflow: hidden;
	aspect-ratio: 4/3;
}
.fp-journal-card--lg .fp-journal-card__img-wrap {
	aspect-ratio: 16/10;
}
.fp-journal-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.fp-journal-card:hover .fp-journal-card__img {
	transform: scale(1.05);
}

/* ── Body ── */
.fp-journal-card__body {
	padding: 1.5rem 1.75rem 2rem;
	display: flex;
	flex-direction: column;
	flex: 1;
}

/* ── Meta ── */
.fp-journal-card__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem 0.75rem;
}
.fp-journal-card__cat {
	color: var(--fp-magenta) !important;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.fp-journal-card__cat:hover {
	opacity: 0.7;
}
.fp-journal-card__date,
.fp-journal-card__read-time {
	color: var(--fp-charcoal);
	opacity: 0.5;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.fp-journal-card__read-time::before {
	content: '·';
	margin-right: 0.4rem;
	opacity: 0.5;
}

/* ── Title ── */
.fp-journal-card__title {
	font-family: var(--fp-display);
	font-size: clamp(1.05rem, 1.4vw, 1.3rem);
	font-weight: 500;
	line-height: 1.35;
	color: var(--fp-charcoal);
}
.fp-journal-card__title-link {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}
.fp-journal-card__title-link:hover {
	color: var(--fp-magenta);
}

/* ── Excerpt ── */
.fp-journal-card__excerpt p {
	font-family: var(--fp-body);
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--fp-charcoal);
	opacity: 0.7;
	margin: 0;
}

/* ── Read more ── */
.fp-journal-card__more {
	margin-top: auto;
	padding-top: 0.75rem;
	font-family: var(--fp-body);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--fp-magenta);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	transition: gap 0.25s ease;
}
.fp-journal-card__more::after {
	content: '→';
	transition: transform 0.25s ease;
}
.fp-journal-card__more:hover::after {
	transform: translateX(4px);
}

/* ── Horizontal variant ── */
.fp-journal-card--hori {
	flex-direction: row;
}
.fp-journal-card--hori .fp-journal-card__img-wrap {
	width: 40%;
	flex-shrink: 0;
	aspect-ratio: unset;
	min-height: 240px;
}
.fp-journal-card--hori .fp-journal-card__body {
	padding: 2rem 2rem 2rem 2.5rem;
}
@media (max-width: 768px) {
	.fp-journal-card--hori {
		flex-direction: column;
	}
	.fp-journal-card--hori .fp-journal-card__img-wrap {
		width: 100%;
		min-height: 220px;
	}
}

/* ── Small variant ── */
.fp-journal-card--sm .fp-journal-card__body {
	padding: 1rem 1.25rem 1.5rem;
}
.fp-journal-card--sm .fp-journal-card__title {
	font-size: clamp(0.9rem, 1.1vw, 1rem);
}

/* ── Grid spacing ── */
.fp-journal-col {
	margin-bottom: 2rem;
}

/* ── 404 page ── */
.fp-404-frame {
	position: relative;
	z-index: 2;
}
