/* Octosynk Theme - Main Stylesheet
 *
 * This file contains the main CSS styles for the Octosynk Theme.
 * It includes global styles, layout adjustments, and component styling.
 *
 * @package Octosynk_Theme
 * @subpackage Styles
 * @since 1.0.0
    */

/* ------------------------------------------------------------------------------------
 * GLOBAL STYLES
 * These styles apply to the entire site and set the foundation for the theme's design.
 * ---------------------------------------------------------------------------------- */

/* 
 * Site Wrapper styles - Ensure the site wrapper takes up the full viewport height.
 * This allows the footer to be pushed to the bottom of the page when there is little content.
 */
.site-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Ensure the main content area takes up remaining space */
#brx-content {
  flex: 1;
  position: relative;
  width: 100%;
}

/* Adjust the minimum height of the site wrapper when the admin bar is present */
.admin-bar .site-wrapper {
  min-height: calc(100vh - 32px);
}

.sec-header--journey {
  position: relative;
}

.sec-header--journey::before,
.sec-header--journey::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(5rem, 15.3061vw + 0.102rem, 20rem);
  height: clamp(5rem, 15.3061vw + 0.102rem, 20rem);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.sec-header--journey::before {
  left: -20rem;
  background-image: url("../icons/grainy-right.svg");
}

.sec-header--journey::after {
  right: -20rem;
  background-image: url("../icons/grainy-left.svg");
}

.os-pricing::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to bottom, transparent 28%, var(--clr-dark) 100%),
    url(../icons/grid-bg.svg);
  background-repeat: repeat-x;
  background-position: top center;
  background-size: 90vw;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}

[class*="has-icon-"] {
  display: flex;
  align-items: center;
  gap: 10px;
}

[class*="has-icon-"]::before {
  content: "";
  width: 2.2rem;
  height: 2.2rem;
  display: inline-block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.has-icon--sparkle::before,
.has-icon--shield::before,
.has-icon--calander::before {
  width: 2.2rem;
  height: 2.2rem;
}

.has-icon--bolt::before {
  background-image: url("../icons/bolt.svg");
}

.has-icon--crown::before {
  background-image: url("../icons/crown.svg");
}

.has-icon--enterprise::before {
  background-image: url("../icons/enterprise.svg");
}

.has-icon--sparkle::before {
  background-image: url("../icons/sparke.svg");
}

.has-icon--list::before {
  background-image: url("../icons/list.svg");
  background-size: 80%;
}

.has-icon--calander::before {
  background-image: url("../icons/calander.svg");
}

.has-icon--shield::before {
  background-image: url("../icons/shield.svg");
}

body.bricks-is-frontend :focus-visible {
  outline: 2px solid var(--clr-primary);
}

#automation,
#features,
#pricing,
#faqs {
  scroll-margin-top: 6rem;
}

/* =========================================================
   ICON STYLES
   Sizing and display rules for inline SVG icons rendered
   via the wpf_icon() helper function.
   ========================================================= */
.wpf-icon {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* ------------------------------------------------------------------------------------
 * RESPONSIVE LAYOUT ADJUSTMENTS
 * These styles ensure the theme looks great on all devices by adjusting the layout for
 * different screen sizes.
 * ---------------------------------------------------------------------------------- */

@media (max-width: 782px) {
  .admin-bar .site-wrapper {
    min-height: calc(100vh - 46px);
  }

  html #wpadminbar {
    position: fixed;
  }
}

@media (max-width: 767px) {
  .sec-header--journey::before {
    left: -16rem;
  }

  .sec-header--journey::after {
    right: -16rem;
  }
}

@media (max-width: 767px) {
  .sec-header--journey::before {
    left: -14rem;
  }

  .sec-header--journey::after {
    right: -14rem;
  }
}

@media (max-width: 640px) {
  .sec-header--journey::before {
    left: -10rem;
  }

  .sec-header--journey::after {
    right: -10rem;
  }
}

@media (max-width: 520px) {
  .sec-header--journey::before {
    left: -6rem;
  }

  .sec-header--journey::after {
    right: -6rem;
  }
}

@media (max-width: 410px) {
  .sec-header--journey::before {
    left: -4rem;
  }

  .sec-header--journey::after {
    right: -4rem;
  }
}
