/*
  Theme Name: SiteKrafter Pro
  Theme URI: https://sitekrafter.com
  Version: 6.0
  Template: Divi
  Author: Mak
  Author URI: https://diviuniversity.com
  Description: SiteKrafter Pro helps you build websites faster, with better structure, consistency, and scalability.
  Website: sitekrafter-pro
*/

/* ===================== */
/* BASE & GLOBAL SETTINGS */
/* ===================== */
html {
  font-size: 62.5%;
}

img {
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
  border: 0;
  border-radius: 0.5rem;
  object-fit: cover;
  vertical-align: middle;
}


/* ================ */
/* RESETS & UTILITIES */
/* ================ */
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  text-rendering: optimizelegibility;
}

.et_pb_text {
  margin: 0 !important;
}

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

button, .et_pb_button {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}


/* ============= */
/* TYPOGRAPHY */
/* ============= */
/* Heading Scale */
.sk h1 {
  font-size: clamp(3rem, 2.6591rem + 1.3636vw, 3.75rem);
  line-height: clamp(3.75rem, 3.3239rem + 1.7045vw, 4.6875rem);
  letter-spacing: -1px;
}

.sk h2 {
  font-size: clamp(2.25rem, 1.9943rem + 1.0227vw, 2.8125rem);
  line-height: clamp(2.8125rem, 2.4929rem + 1.2784vw, 3.5156rem);
}

.sk h3 {
  font-size: clamp(1.875rem, 1.6619rem + 0.8523vw, 2.3438rem);
  line-height: clamp(2.3438rem, 2.0774rem + 1.0654vw, 2.9298rem);
}

.sk h4 {
  font-size: clamp(1.5rem, 1.3295rem + 0.6818vw, 1.875rem);
  line-height: clamp(1.875rem, 1.6619rem + 0.8523vw, 2.3438rem);
}

.sk h5 {
  font-size: clamp(1.25rem, 1.108rem + 0.5682vw, 1.5625rem);
  line-height: clamp(1.5625rem, 1.385rem + 0.7103vw, 1.9531rem);
}

.sk h6 {
  font-size: clamp(1.125rem, 0.9972rem + 0.5114vw, 1.4063rem);
  line-height: clamp(1.5625rem, 1.385rem + 0.7103vw, 1.9531rem);
}

/* Text Elements */
.sk p, .sk a, .sk li {
  font-size: clamp(1.6rem, calc(1.7rem + ((1vw - 0.48rem) * 0.3386)), 1.8rem);
  line-height: clamp(2.38rem, calc(2.38rem + ((1vw - 0.48rem) * 0.3386)), 2.8rem);
  overflow-wrap: break-word;
  word-wrap: break-word;
  text-wrap: balance;
}

/* Content Container */
.sk-content {
  font-size: clamp(1.6rem, calc(1.7rem + ((1vw - 0.48rem) * 0.3386)), 1.8rem);
  line-height: clamp(2.38rem, calc(2.38rem + ((1vw - 0.48rem) * 0.3386)), 2.8rem);
  max-width: 70ch;
  margin: 0 auto;
  text-align: center;
  text-wrap: pretty;
}


/* ================ */
/* CUSTOM HEADINGS */
/* ================ */
.heading-xxxlarge {
  font-size: clamp(6rem, calc(6rem + ((1vw - 0.48rem) * 5.2)), 10rem);
  letter-spacing: -1px;
  line-height: clamp(7.2rem, calc(7.2rem + ((1vw - 0.48rem) * 6.2)), 12rem);
  text-wrap: balance;
}

.heading-xxlarge {
  font-size: clamp(5rem, calc(5rem + ((1vw - 0.48rem) * 4.2)), 8.5rem);
  letter-spacing: -1px;
  line-height: clamp(6rem, calc(6rem + ((1vw - 0.48rem) * 5)), 10rem);
  text-wrap: balance;
}

.heading-xlarge {
  font-size: clamp(4.2rem, calc(4.2rem + ((1vw - 0.48rem) * 3.5)), 7.2rem);
  letter-spacing: -1px;
  line-height: clamp(5rem, calc(5rem + ((1vw - 0.48rem) * 4)), 8.5rem);
  text-wrap: balance;
}

.heading-large {
  font-size: clamp(3.5rem, calc(3.5rem + ((1vw - 0.48rem) * 2.8217)), 6rem);
  line-height: clamp(4.2rem, calc(4.2rem + ((1vw - 0.48rem) * 3.386)), 7.2rem);
  letter-spacing: -1px;
  text-wrap: balance;
}

.heading-medium {
  font-size: clamp(2.4rem, 2.2vw, 3rem);
  letter-spacing: 0px;
  line-height: 1.3;
  text-wrap: balance;
}

.heading-small {
  font-size: clamp(1.8rem, 1.6vw, 2.4rem);
  letter-spacing: 0px;
  line-height: 1.4;
  text-wrap: balance;
}


/* ================== */
/* TEXT UTILITIES */
/* ================== */
/* Transform */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }

/* Alignment */
.left   { text-align: left !important; }
.center { text-align: center !important; }
.right  { text-align: right !important; }
.justify { text-align: justify !important; }


/* ================== */
/* LAYOUT & SPACING */
/* ================== */
/* Responsive Sections */
.large-section {
  padding: clamp(8rem, 12vw, 14rem) clamp(5rem, 8vw, 10rem);
}

.hero-section {
  padding: clamp(10rem, 14vw, 16rem) clamp(6rem, 9vw, 12rem);
}

.medium-section {
  padding: clamp(6rem, 10vw, 12rem) clamp(4rem, 7vw, 8rem);
}

.small-section {
  padding: clamp(4rem, 8vw, 10rem) clamp(2.5rem, 5.5vw, 6.5rem);
}

/* Flexbox System */
.flex          { display: flex; }
.flex-row      { flex-direction: row; }
.flex-column   { flex-direction: column; }
.justify-center { justify-content: center; }
.align-center  { align-items: center; }
.flex-wrap     { flex-wrap: wrap; }
.flex-nowrap   { flex-wrap: nowrap; }

.flexbox {
  display: flex;
  flex: 1 1 0;
  gap: 2rem;
}

@media (max-width: 1024px) {
  .flexbox { flex-direction: column; }
}

/* Gap Sizes */
.gap-xsmall { gap: clamp(0.25rem, 0.5vw, 0.5rem); }
.gap-small  { gap: clamp(0.5rem, 1vw, 1rem); }
.gap-medium { gap: clamp(1rem, 1.5vw, 1.5rem); }
.gap-large  { gap: clamp(1.5rem, 2vw, 2rem); }
.gap-xlarge { gap: clamp(2rem, 3vw, 3rem); }


/* ================ */
/* VISUAL STYLES */
/* ================ */
/* Background Colors */
.light   { background-color: #fafafa; }
.lighter { background-color: #e5e7eb; }

/* Shadow System */
.shadow-small {
  box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05),
              0px 1px 3px rgba(0, 0, 0, 0.1);
}

.shadow-medium {
  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.05),
              0px 2px 4px rgba(0, 0, 0, 0.1);
}

.shadow-large {
  box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.05),
              0px 4px 6px rgba(0, 0, 0, 0.1);
}

.shadow-xlarge {
  box-shadow: 0px 20px 25px rgba(0, 0, 0, 0.05),
              0px 10px 10px rgba(0, 0, 0, 0.1);
}

.shadow-inset {
  box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.1);
}

.shadow-none { box-shadow: none; }

/* Border Radius */
.radius-small   { border-radius: 0.25rem; }
.radius-medium  { border-radius: 0.5rem; }
.radius-large   { border-radius: 1rem; }
.radius-pill    { border-radius: 50px; }
.radius-circle  { border-radius: 50%; }


/* ================== */
/* COMPONENT STYLES */
/* ================== */
/* Notices */
.notice, .warning, .success, .error {
  font-size: 1.6rem;
  padding: 2rem;
  max-width: 65ch;
  border-radius: 0.4rem;
  line-height: 1.5;
  margin: 1rem 0;
}

.notice {
  background-color: #BDD1F2;
  border: 2px solid #8FBAFF;
}

.warning {
  background-color: #F7FFA0;
  border: 2px solid #DEF300;
}

.success {
  background-color: #9DFF98;
  border: 2px solid #65FF5D;
}

.error {
  background-color: #FF9F9F;
  border: 2px solid #FF6F6F;
}


/* ================ */
/* INTERACTIVE STATES */
/* ================ */
.hover-scale {
  transition: transform 0.4s ease-in-out;
}
.hover-scale:hover {
  transform: scale(1.05);
}

.hover-shadow {
  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.05),
              0px 2px 4px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease;
}
.hover-shadow:hover {
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2);
}


/* ================== */
/* UTILITY CLASSES */
/* ================== */
/* Font Weights */
.regular  { font-weight: 400; }
.medium   { font-weight: 500; }
.semibold { font-weight: 600; }
.bold     { font-weight: 800; }
.xbold    { font-weight: 850; }
.xxbold   { font-weight: 900; }

/* Text Sizes */
.text-xsmall { font-size: clamp(1.2rem, 0.8vw, 1.4rem); line-height: 1.4; }
.text-small  { font-size: clamp(1.4rem, 0.9vw, 1.6rem); line-height: 1.5; }
.text-medium { font-size: clamp(1.6rem, 1vw, 1.8rem); line-height: 1.6; }
.text-large  { font-size: clamp(1.8rem, 1.2vw, 2rem); line-height: 1.6; }
.text-xlarge { font-size: clamp(2rem, 1.5vw, 2.4rem); line-height: 1.6; }

/* Margins */
.margin-top-xsmall    { margin-top: clamp(0.5rem, 1vw, 1rem) !important; }
.margin-bottom-xsmall { margin-bottom: clamp(0.5rem, 1vw, 1rem) !important; }
.margin-top-small     { margin-top: clamp(1rem, 2vw, 1.5rem) !important; }
.margin-bottom-small  { margin-bottom: clamp(1rem, 2vw, 1.5rem) !important; }
.margin-top-medium    { margin-top: clamp(2rem, 3vw, 3rem) !important; }
.margin-bottom-medium { margin-bottom: clamp(2rem, 3vw, 3rem) !important; }
.margin-top-large     { margin-top: clamp(4rem, 5vw, 6rem) !important; }
.margin-bottom-large  { margin-bottom: clamp(4rem, 5vw, 6rem) !important; }
.margin-top-xlarge    { margin-top: clamp(6rem, 7vw, 8rem) !important; }
.margin-bottom-xlarge { margin-bottom: clamp(6rem, 7vw, 8rem) !important; }

/* Paddings */
.padding-xsmall { padding: clamp(0.5rem, 1vw, 1rem) !important; }
.padding-small  { padding: clamp(1rem, 2vw, 1.5rem) !important; }
.padding-medium { padding: clamp(2rem, 3vw, 3rem) !important; }
.padding-large  { padding: clamp(4rem, 5vw, 6rem) !important; }
.padding-xlarge { padding: clamp(6rem, 7vw, 8rem) !important; }

/* Transparency */
.transparent-20 { opacity: 0.8 !important; }
.transparent-30 { opacity: 0.7 !important; }
.transparent-40 { opacity: 0.6 !important; }
.transparent-50 { opacity: 0.5 !important; }
.transparent-60 { opacity: 0.4 !important; }
.transparent-70 { opacity: 0.3 !important; }

.glass {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 0.4rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  padding: 2rem;
  color: #222222;
}


/* ================== */
/* EDITOR OVERRIDES */
/* ================== */
.et-db #et-boc .et-l .et-fb-modal--with-header-dropdown
.et-fb-font-icon-filter,
.et-db #et-boc .et-l
.et-fb-modal--with-header-dropdown
.et-fb-options-filter {
  top: 0;
  margin-top: 0;
}