/*//////////////////////////////////////////////////////////////////
  SD CUSTOM CSS
//////////////////////////////////////////////////////////////////*/


/* ===============================
   Root Variables
   =============================== */

:root {

  /* Core Responsive Breakpoints */
  --sd-breakpoint-xs: 544px;
  --sd-breakpoint-sm: 768px;
  --sd-breakpoint-md: 1024px;
  --sd-breakpoint-lg: 1280px;

  /* Responsive Layout System (4/3/2/1 model) */
  --sd-layout-4up: 1024px; /* 4 items */
  --sd-layout-3up: 850px;  /* 3 items */
  --sd-layout-2up: 600px;  /* 2 items */
  --sd-layout-1up: 0px;    /* 1 item */

  /* Layout */
  --sd-cover-min-height: 80vh;
  --sd-page-header-min-height: clamp(30rem, 50vh, 60rem);
  --sd-page-header-p-t: var(--sd-space-6);
  --sd-page-header-p-b: var(--sd-space-6);

  /* Typography */
  --sd-site-serif: serif;

  /* Widths */
  --sd-site-width: 1140px;
  --sd-site-width-wide: 1480px;
  --sd-site-width-wide-boxed: 1680px;
  --sd-site-width-med: 1280px;
  --sd-site-width-smaller: 940px;
  --sd-site-width-narrow: 780px;
  --sd-site-width-xnarrow: 540px;
  --sd-site-width-compact: 200px;
  --sd-site-width-full: 100%;

  /* Spacing */
  --sd-space-0: clamp(0rem, 0vw, 0rem);
  --sd-space-1: clamp(0.25rem, 1vw, 0.5rem);
  --sd-space-2: clamp(0.5rem, 1.5vw, 1rem);
  --sd-space-3: clamp(1rem, 2vw, 2rem);
  --sd-space-4: clamp(2rem, 4vw, 4rem);
  --sd-space-5: clamp(4rem, 6vw, 8rem);
  --sd-space-6: clamp(6rem, 8vw, 12rem);


/* Display font desktop defaults */

  --sd-fs-display-1: 5rem;
  --sd-fs-display-2: 3.9rem;
  --sd-fs-display-3: 2.8rem;
  --sd-fs-display-4: 2.35rem;
  --sd-fs-display-5: 1.8rem;



  /* Font Sizes */
  --sd-fs-xs: 0.85rem;
  --sd-fs-sm: 0.95rem;
  --sd-fs-base: 1rem;
  --sd-fs-base-plus: 1.1rem;
  --sd-fs-md: 1.25rem;
  --sd-fs-lg: 1.5rem;
  --sd-fs-xl: 2rem;
  --sd-h-1: 1.5rem;
  --sd-h-2: 1.25rem;
  --sd-h-3: 1.05rem;
  --sd-h-4: 1rem;
  --sd-h-5: 0.9rem;


/* line height */
  --sd-h-lh-1: 1.25;
  --sd-h-lh-2: 1.3;
  --sd-h-lh-3: 1.35;
  --sd-h-lh-4: 1.4;
  --sd-h-lh-5: 1.45;
  --sd-h-lh-6: 1.5;


  /* Type Details */
  --sd-lh-xs: .95;
  --sd-lh-sm: 1;
  --sd-lh-md: 1.3;
  --sd-lh-lg: 1.6;
  --sd-lh-xl: 1.75;
  --sd-lsp-h: 0.04em;
  --sd-fs-lead: 1.15rem;
  --sd-fs-lede: 1.25rem;
  --sd-lsp-btn: 0.1em;

 
  /* SVG Filters */
  --sd-icon-filter: invert(78%) sepia(8%) saturate(1175%) hue-rotate(9deg) brightness(80%) contrast(85%);
  --sd-icon-filter-white: invert(99%) sepia(0%) saturate(1573%) hue-rotate(224deg) brightness(106%) contrast(100%);

  /* Icon Sizes */
  --sd-icon-sm: 24px;
  --sd-icon-md: 32px;
  --sd-icon-lg: 48px;

  /* Colors */
  --sd-color-text-white: #eeeeee;
  --sd-color-text-white-m: #cccccc;
  --sd-color-fff: #ffffff;
  --sd-color-transparent: transparent;
  --sd-color-primary: var(--ast-global-color-0);
  --sd-color-primary-alt: var(--ast-global-color-2);
  --sd-color-muted-light: rgba(255, 255, 255, 0.6);
  --sd-color-muted-light-x: rgba(255, 255, 255, 0.3);
  --sd-color-light-1: var(--ast-global-color-4);
  --sd-color-light-2: var(--ast-global-color-6);
  --sd-color-dark-1: var(--ast-global-color-1);
  --sd-color-dark-2: var(--ast-global-color-8);
  --sd-color-black: #000000;
  --sd-color-text: #192029;
  --sd-color-light: #f8f9fa;
  --sd-color-dark: var(--ast-global-color-1);
  --sd-color-dark-opacity: #0a0a0d33; /* fallback */
  --sd-color-accent: #b5a974;
  --sd-menu-active-color: var(--ast-global-color-0);
  --sd-overlay-gradient-color-1-rgb: 18, 19, 28;

  /* Extended Palette */
  --sd-color-main-1: var(--ast-global-color-0);
  --sd-color-main-2: var(--ast-global-color-1);
  --sd-color-heading: var(--ast-global-color-2);
  --sd-color-body: var(--ast-global-color-3);
  --sd-color-muted: #6c757d;
  --sd-color-border: #dee2e6;
  --sd-color-success: #198754;
  --sd-color-warning: #ffc107;
  --sd-color-danger: #dc3545;
  --sd-color-info: #0dcaf0;

  /* Borders */
  --sd-border-color-light: rgba(255, 255, 255, 0.15);
  --sd-border-color-dark: var(--ast-global-color-4);

  /* Button Defaults */
  --sd-btn-font-size: 0.95rem;
  --sd-btn-padding-y: 0.9rem;
  --sd-btn-padding-x: 1.5rem;
  --sd-btn-radius: 0px;
  --sd-btn-fw: 400;
  --sd-btn-hover-opacity: 0.85;
  --sd-btn-primary-bg: #12141e;
  --sd-btn-primary-text: #ffffff;
  --sd-btn-primary-bg-light: #f2f5f7;
  --sd-btn-primary-text-light: #12141e;
  --sd-btn-secondary-bg: transparent;
  --sd-btn-secondary-border: #12141e;
  --sd-btn-secondary-text: #12141e;
  --sd-btn-secondary-bg-light: transparent;
  --sd-btn-secondary-border-light: #ffffff;
  --sd-btn-secondary-text-light: #ffffff;



  /* Transitions */
  --sd-transition-fast: 0.2s;
  --sd-transition-medium: 0.4s;
  --sd-transition-slow: 0.6s;

  /* Optional Max Widths */
  --sd-max-xs: 24rem;
  --sd-max-sm: 36rem;
  --sd-max-md: 48rem;
  --sd-max-lg: 64rem;
  --sd-max-xl: 80rem;

  /* Percentage Widths */
  --sd-w-5: 5%;
  --sd-w-10: 10%;
  --sd-w-15: 15%;
  --sd-w-20: 20%;
  --sd-w-25: 25%;
  --sd-w-30: 30%;
  --sd-w-35: 35%;
  --sd-w-40: 40%;
  --sd-w-45: 45%;
  --sd-w-50: 50%;
  --sd-w-55: 55%;
  --sd-w-60: 60%;
  --sd-w-65: 65%;
  --sd-w-70: 70%;
  --sd-w-75: 75%;
  --sd-w-80: 80%;
  --sd-w-85: 85%;
  --sd-w-90: 90%;
  --sd-w-95: 95%;

  --sd-text-gradient-start: var(--ast-global-color-0);
  --sd-text-gradient-end: var(--ast-global-color-1);

}


/* ----------------------------------
   Progressive enhancement
---------------------------------- */

@supports (color: color-mix(in srgb, black, transparent)) {
  :root {
    --sd-color-dark-opacity: color-mix(
      in srgb,
      var(--ast-global-color-1) 15%,
      transparent
    );
  }
}


/* ===============================
   Responsive Typography Adjustments
   Display / Serif Scale
   =============================== */

/* Tablet */
@media (max-width: 1024px) {
  :root {
    --sd-fs-display-1: 4.4rem;
    --sd-fs-display-2: 3.4rem;
    --sd-fs-display-3: 2.55rem;
    --sd-fs-display-4: 2.15rem;
    --sd-fs-display-5: 1.7rem;
  }
}

/* Mobile */
@media (max-width: 544px) {
  :root {
    --sd-fs-display-1: 3.2rem;
    --sd-fs-display-2: 2.3rem;
    --sd-fs-display-3: 1.8rem;
    --sd-fs-display-4: 1.7rem;
    --sd-fs-display-5: 1.45rem;
    --sd-fs-lead: 1.05rem;
    --sd-fs-lede: 1.1rem;
  }
}



@media (max-width: 544px) {
  :root {
    --sd-space-4: clamp(1.75rem, 5vw, 3rem);
    --sd-space-5: clamp(3rem, 8vw, 5rem);
    --sd-space-6: clamp(4rem, 10vw, 6rem);
  }
}


/* ===============================
   Responsive Layout Stubs – 4/3/2/1 Pattern
   =============================== */

@media (max-width: 1024px) {
  /* ↓ Layout degrades to 3 columns */
}

@media (max-width: 850px) {
  /* ↓ Layout degrades to 2 columns */
}

@media (max-width: 600px) {
  /* ↓ Layout degrades to 1 column */
}



/* ===============================
   List Utility — Row Links
   Makes list links behave like full menu rows
   =============================== */

.sd-list-row-links {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sd-list-row-links li {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sd-list-row-links li > a {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding-top: 0.3rem !important;
  padding-bottom: 0.3rem !important;
  color: inherit !important;
  text-decoration: none !important;
}

.sd-list-row-links li:hover > a,
.sd-list-row-links li:focus-within > a {
  color: var(--sd-color-primary) !important;
}



/* ===============================
   Navigation Active Link State
   =============================== */

   
/*.current_page_parent a {
    color: var(--sd-menu-active-color) !important;
}*/

/* ===============================
   Astra Mega Menu Active Link State
   For block/custom links inside Astra mega menus
   =============================== */

.astra-megamenu .sd-link-active,
.astra-megamenu .sd-item-active > a {
  color: var(--sd-menu-active-color) !important;
}

.menu-item.current_page_parent > a {
  color: var(--sd-menu-active-color) !important;
}
/*
.main-header-menu > .menu-item:has(.current-menu-item) > .menu-link {
  color: var(--sd-menu-active-color) !important;
}*/

/* =========================================
   Active + ancestor link coloring (all levels)
   Works with placeholder <span> & <a>
   ========================================= */
.main-header-menu li.current-menu-item > a,
.main-header-menu li.current-menu-item > .menu-text,
.main-header-menu li.current-menu-parent > a,
.main-header-menu li.current-menu-parent > .menu-text,
.main-header-menu li.current-menu-ancestor > a,
.main-header-menu li.current-menu-ancestor > .menu-text,
.main-header-menu li.menu-item:has(.current-menu-item, .current-menu-parent, .current-menu-ancestor)
  > a,
.main-header-menu li.menu-item:has(.current-menu-item, .current-menu-parent, .current-menu-ancestor)
  > .menu-text {
  color: var(--sd-menu-active-color) !important;
}




/* =========================================================
   Background video covers
   ========================================================= */

.sd-video-cover {
  position: relative !important;
  z-index: 0 !important;
  min-height: 20vh !important;
  /*aspect-ratio: 16 / 9;*/
  overflow: hidden !important;
}

.sd-video-cover video {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transform: translate(-50%, -50%);
  z-index: -1 !important;          /* video always behind content */
}

.sd-video-cover .wp-block-cover__inner-container {
  position: relative !important;
  z-index: 1 !important;
    max-width: 100% !important;         /* let content span full width */
  padding: 0 !important;              /* reset container padding */
}

.sd-video-cover.wp-block-cover {
  padding: 0 !important;              /* remove default cover padding */
}

 /* ============================================
   SD Icon List
   ============================================ */

.sd-icon-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Shared item styles */
.sd-icon-list li {
  display: inline-flex !important;
  align-items: center !important;
  font-size: var(--sd-fs-xs, 0.9rem) !important;
  font-weight: 500 !important;
  gap: 0.5rem !important;
  line-height: 1.5 !important;
}

/* Icon styling (works for img or SVG) */
.sd-icon-list li img,
.sd-icon-list li svg {
  width: 1.2em !important;
  height: 1.2em !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  object-fit: contain !important;
  opacity: 0.9;
}

/* ============================
   Layout Variations
   ============================ */

/* Horizontal (inline) */
.sd-icon-list--inline {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: var(--sd-space-3, 1rem) !important;
}

.sd-icon-list--inline li {
  white-space: nowrap !important;
}

/* Vertical (stacked) */
.sd-icon-list--stacked {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: var(--sd-space-2, 0.5rem) !important;
}

/* ============================
   Color and link variations
   ============================ */

.sd-icon-list.sd-text-light li {
  color: var(--sd-color-light, #fff) !important;
}

.sd-icon-list.sd-text-muted li {
  color: var(--sd-color-muted, #6e6e6e) !important;
}

.sd-icon-list a {
  color: inherit !important;
  text-decoration: none !important;
  transition: opacity 0.25s ease !important;
}

.sd-icon-list a:hover {
  opacity: 0.85 !important;
}


/* ===============================
   Text & Links: White on Dark
   =============================== */

/* Base white text + link utility */
.sd-text-link-white,
a.sd-text-link-white,
.sd-text-link-white a,
button.sd-text-link-white,
button .sd-text-link-white,
.sd-modal-link .sd-text-link-white {
  color: var(--sd-color-text-white) !important;
  text-decoration: none !important;
  transition: color 0.25s ease !important;
}

/* Hover & Focus States */
.sd-text-link-white:hover,
a.sd-text-link-white:hover,
.sd-text-link-white a:hover,
button.sd-text-link-white:hover,
button .sd-text-link-white:hover,
.sd-modal-link .sd-text-link-white:hover,
.sd-text-link-white:focus-visible,
a.sd-text-link-white:focus-visible,
.sd-text-link-white a:focus-visible,
button.sd-text-link-white:focus-visible,
button .sd-text-link-white:focus-visible,
.sd-modal-link .sd-text-link-white:focus-visible {
  color: var(--sd-color-primary) !important;
}

/* Optional underline variant */
.sd-text-link-white-underline,
a.sd-text-link-white-underline,
.sd-text-link-white-underline a,
button.sd-text-link-white-underline,
button .sd-text-link-white-underline,
.sd-modal-link .sd-text-link-white-underline {
  color: var(--sd-color-text-white) !important;
  text-decoration: underline !important;
  text-underline-offset: 0.1em !important;
  transition: color 0.25s ease !important;
}

/* Hover/Focus for underline variant */
.sd-text-link-white-underline:hover,
a.sd-text-link-white-underline:hover,
.sd-text-link-white-underline a:hover,
button.sd-text-link-white-underline:hover,
button .sd-text-link-white-underline:hover,
.sd-modal-link .sd-text-link-white-underline:hover,
.sd-text-link-white-underline:focus-visible,
a.sd-text-link-white-underline:focus-visible,
.sd-text-link-white-underline a:focus-visible,
button.sd-text-link-white-underline:focus-visible,
button .sd-text-link-white-underline:focus-visible,
.sd-modal-link .sd-text-link-white-underline:focus-visible {
  color: var(--sd-color-primary) !important;
}




/* ===============================
   Muted On Dark
   =============================== */

/* Base muted color for dark backgrounds */
.sd-text-on-dark-muted {
  color: var(--sd-color-muted-light) !important;
}

/* Link styling on dark backgrounds */
a.sd-link-on-dark-muted,
.sd-link-on-dark-muted a,
ul.sd-link-on-dark-muted li a {
  color: var(--sd-color-muted-light) !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}
a.sd-link-on-dark-muted:hover,
.sd-link-on-dark-muted a:hover,
ul.sd-link-on-dark-muted li a:hover {
  color: var(--sd-color-primary) !important;
}

/* ===============================
   Extra Muted On Dark (–x variant)
   =============================== */


.sd-text-on-dark-muted-x {
  color: var(--sd-color-muted-light-x) !important;
}

a.sd-link-on-dark-muted-x,
.sd-link-on-dark-muted-x a,
ul.sd-link-on-dark-muted-x li a {
  color: var(--sd-color-muted-light-x) !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}
a.sd-link-on-dark-muted-x:hover,
.sd-link-on-dark-muted-x a:hover,
ul.sd-link-on-dark-muted-x li a:hover {
  color: var(--sd-color-primary) !important;
}

/* ===============================
   Link Styles
   =============================== */

.sd-link-hover-underline {
  position: relative;
  color: inherit;
  text-decoration: none;
  transition: color var(--sd-transition-medium) ease;
  padding: 0.5rem 0;
  display: inline-block;
}

.sd-link-hover-underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  height: 2px;
  width: 0;
  background-color: var(--sd-color-primary);
}

@media (prefers-reduced-motion: no-preference) {
  .sd-link-hover-underline::after {
    transition: width var(--sd-transition-medium) ease;
  }
}

.sd-link-hover-underline:hover,
.sd-link-hover-underline:focus-visible {
  color: var(--sd-color-primary);
}

.sd-link-hover-underline:hover::after,
.sd-link-hover-underline:focus-visible::after {
  width: 10%;
}


.sd-subfooter {
  color: var(--sd-color-dark-2);
}



/* ===============================
   Width Utilities
   =============================== */

.sd-w-5 { width: 5% !important; }
.sd-w-10 { width: 10% !important; }
.sd-w-15 { width: 15% !important; }
.sd-w-20 { width: 20% !important; }
.sd-w-25 { width: 25% !important; }
.sd-w-30 { width: 30% !important; }
.sd-w-35 { width: 35% !important; }
.sd-w-40 { width: 40% !important; }
.sd-w-45 { width: 45% !important; }
.sd-w-50 { width: 50% !important; }
.sd-w-55 { width: 55% !important; }
.sd-w-60 { width: 60% !important; }
.sd-w-65 { width: 65% !important; }
.sd-w-70 { width: 70% !important; }
.sd-w-75 { width: 75% !important; }
.sd-w-80 { width: 80% !important; }
.sd-w-85 { width: 85% !important; }
.sd-w-90 { width: 90% !important; }
.sd-w-95 { width: 95% !important; }

/* ===============================
   Dark Mode Utility
   =============================== */

.sd-page-dark .site-content {
  background-color: var(--sd-color-dark) !important;
}

/* ===============================
   Headings
   =============================== */

h1, .wp-block-heading.is-style-h1 { margin-bottom: 1em !important; }
h2, .wp-block-heading.is-style-h2 { margin-bottom: 0.9em !important; }
h3, .wp-block-heading.is-style-h3 { margin-bottom: 0.8em !important; }
h4, .wp-block-heading.is-style-h4 { margin-bottom: 0.75em !important; }
h5, .wp-block-heading.is-style-h5 { margin-bottom: 0.6em !important; }




/* ===============================
   Color Utilities
   =============================== */


.sd-highlight-span {
  background: linear-gradient(
    to right,
    var(--ast-global-color-0) 0%,
    var(--ast-global-color-0) 100%
  );
  background-size: 100% 0.15em;
  background-repeat: no-repeat;
  background-position: 0 80%;
  animation: sd-highlight-fill 1s ease forwards;
}
@keyframes sd-highlight-fill {
  from {
    background-size: 0% 0.15em;
  }
  to {
    background-size: 100% 0.15em;
  }
}

.sd-highlight-span-pointed {
  background: linear-gradient(
    to right,
    var(--ast-global-color-0) 0%,
    var(--ast-global-color-0) 94%,
    transparent 94.01%
  );
  background-size: 100% 0.15em;
  background-repeat: no-repeat;
  background-position: 0 80%;
  animation: sd-highlight-fill 1s ease forwards;
}

@keyframes sd-highlight-fill {
  from {
    background-size: 0% 0.15em;
  }
  to {
    background-size: 100% 0.15em;
  }
}


.sd-text-gradient {
  background: linear-gradient(
    120deg,
    var(--sd-text-gradient-start),
    var(--sd-text-gradient-end)
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
  display: inline-block;
  background-size: 200% 100%;
  background-position: 100% 50%;
  animation: sd-text-gradient-fill 1.2s ease forwards;
}

@keyframes sd-text-gradient-fill {
  from {
    background-position: 100% 50%;
  }
  to {
    background-position: 0% 50%;
  }
}






/* Make inline SVGs adopt the text color (won’t affect <img> SVGs) */
.sd-text-muted-light svg {
  fill: currentColor;
  stroke: currentColor;
}

.sd-svg-icon-color {
  filter: var(--sd-icon-filter) !important;
}

.sd-svg-icon-color-w {
  filter: var(--sd-icon-filter-white) !important;
}

.sd-bg-color-dark { background-color: var(--sd-color-main-2) !important; }
.sd-bg-color-dark-2 { background-color: var(--sd-color-dark-2) !important; }
.sd-bg-color-white { background-color: var(--sd-color-fff) !important; }
.sd-bg-color-gray { background-color: var(--ast-global-color-6) !important; }
.sd-bg-color-light { background-color: var(--ast-global-color-4) !important; }

.sd-text-muted-display {
  color: #939188 !important;
}

/* ===============================
   Icon Sizing
   =============================== */

.sd-icon-container-sm .sd-svg-icon,
.sd-icon-container-sm .sd-svg-icon img {
  width: var(--sd-icon-sm) !important;
  height: auto !important;
}

.sd-icon-container-md .sd-svg-icon,
.sd-icon-container-md .sd-svg-icon img {
  width: var(--sd-icon-md) !important;
  height: auto !important;
}

.sd-icon-container-lg .sd-svg-icon,
.sd-icon-container-lg .sd-svg-icon img {
  width: var(--sd-icon-lg) !important;
  height: auto !important;
}

.sd-icon-center {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ===============================
   Paragraph Utility
   =============================== */

.sd-p-stack p {
    margin: 0 0 var(--sd-space-3) 0;
}

.sd-p-stack p:last-child {
    margin-bottom: 0;
}

/* ===============================
   Typography Utilities
   =============================== */

.sd-serif {
  font-family: var(--sd-site-serif) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.sd-sans {
  font-family: var(--sd-site-sans) !important;
}

.sd-display {
  font-family: var(--sd-site-display) !important;
}

/* Font Family Overrides Inside Content */
.entry-content .sd-serif,
.entry-content h1.sd-serif,
.entry-content h2.sd-serif,
.entry-content h3.sd-serif,
.entry-content h4.sd-serif,
.entry-content h5.sd-serif,
.entry-content h6.sd-serif {
  font-family: var(--sd-site-serif) !important;
  font-weight: 400 !important;
}

.entry-content .sd-display,
.entry-content h1.sd-display,
.entry-content h2.sd-display,
.entry-content h3.sd-display,
.entry-content h4.sd-display,
.entry-content h5.sd-display,
.entry-content h6.sd-display {
  font-family: var(--sd-site-display) !important;
}

.entry-content .sd-sans,
.entry-content h1.sd-sans,
.entry-content h2.sd-sans,
.entry-content h3.sd-sans,
.entry-content h4.sd-sans,
.entry-content h5.sd-sans,
.entry-content h6.sd-sans {
  font-family: var(--sd-site-sans) !important;
}

/* ===============================
   Image Utilities
   =============================== */

.sd-img-fluid {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
}

.sd-object-cover {
  object-fit: cover !important;
}

.wp-block-cover .has-background-dim:not([class*="-background-color"]) {
  background-color: transparent !important;
}

.sd-bg-fixed {
  background-attachment: fixed !important;
}

/* ===============================
   Spacing
   =============================== */

/* Min Height Utilities */
.sd-min-h-100vh { min-height: 100vh !important; }
.sd-min-h-80vh { min-height: 80vh !important; }
.sd-min-h-65vh { min-height: 65vh !important; }
.sd-min-h-50vh { min-height: 50vh !important; }

/* Margin & Reset Utilities */
.sd-m-reset {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.sd-div {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* Section Padding Defaults */
.sd-section-p { padding-top: var(--sd-space-6) !important; padding-bottom: var(--sd-space-6) !important; }
.sd-section-p-md { padding-top: var(--sd-space-4) !important; padding-bottom: var(--sd-space-4) !important; }
.sd-section-p-sm { padding-top: var(--sd-space-3) !important; padding-bottom: var(--sd-space-3) !important; }

.sd-section-p-t { padding-top: var(--sd-space-6) !important; }
.sd-section-p-b { padding-bottom: var(--sd-space-6) !important; }
.sd-section-p-t-md { padding-top: var(--sd-space-4) !important; }
.sd-section-p-b-md { padding-bottom: var(--sd-space-4) !important; }

.sd-padding-display-1 {padding-top: 25vh !important; padding-bottom: 25vh;}

/* Margin Utilities */
.sd-m-0 { margin: var(--sd-space-0) !important; }
.sd-m-1 { margin: var(--sd-space-1) !important; }
.sd-m-2 { margin: var(--sd-space-2) !important; }
.sd-m-3 { margin: var(--sd-space-3) !important; }
.sd-m-4 { margin: var(--sd-space-4) !important; }
.sd-m-5 { margin: var(--sd-space-5) !important; }
.sd-m-6 { margin: var(--sd-space-6) !important; }

/* Padding Utilities */
.sd-p-0 { padding: var(--sd-space-0) !important; }
.sd-p-1 { padding: var(--sd-space-1) !important; }
.sd-p-2 { padding: var(--sd-space-2) !important; }
.sd-p-3 { padding: var(--sd-space-3) !important; }
.sd-p-4 { padding: var(--sd-space-4) !important; }
.sd-p-5 { padding: var(--sd-space-5) !important; }
.sd-p-6 { padding: var(--sd-space-6) !important; }

/* Margin Top */
.sd-m-t-0 { margin-top: var(--sd-space-0) !important; }
.sd-m-t-1 { margin-top: var(--sd-space-1) !important; }
.sd-m-t-2 { margin-top: var(--sd-space-2) !important; }
.sd-m-t-3 { margin-top: var(--sd-space-3) !important; }
.sd-m-t-4 { margin-top: var(--sd-space-4) !important; }
.sd-m-t-5 { margin-top: var(--sd-space-5) !important; }
.sd-m-t-6 { margin-top: var(--sd-space-6) !important; }

/* Margin Bottom */
.sd-m-b-0 { margin-bottom: var(--sd-space-0) !important; }
.sd-m-b-1 { margin-bottom: var(--sd-space-1) !important; }
.sd-m-b-2 { margin-bottom: var(--sd-space-2) !important; }
.sd-m-b-3 { margin-bottom: var(--sd-space-3) !important; }
.sd-m-b-4 { margin-bottom: var(--sd-space-4) !important; }
.sd-m-b-5 { margin-bottom: var(--sd-space-5) !important; }
.sd-m-b-6 { margin-bottom: var(--sd-space-6) !important; }

/* Padding Top */
.sd-p-t-0 { padding-top: var(--sd-space-0) !important; }
.sd-p-t-1 { padding-top: var(--sd-space-1) !important; }
.sd-p-t-2 { padding-top: var(--sd-space-2) !important; }
.sd-p-t-3 { padding-top: var(--sd-space-3) !important; }
.sd-p-t-4 { padding-top: var(--sd-space-4) !important; }
.sd-p-t-5 { padding-top: var(--sd-space-5) !important; }
.sd-p-t-6 { padding-top: var(--sd-space-6) !important; }

/* Padding Bottom */
.sd-p-b-0 { padding-bottom: var(--sd-space-0) !important; }
.sd-p-b-1 { padding-bottom: var(--sd-space-1) !important; }
.sd-p-b-2 { padding-bottom: var(--sd-space-2) !important; }
.sd-p-b-3 { padding-bottom: var(--sd-space-3) !important; }
.sd-p-b-4 { padding-bottom: var(--sd-space-4) !important; }
.sd-p-b-5 { padding-bottom: var(--sd-space-5) !important; }
.sd-p-b-6 { padding-bottom: var(--sd-space-6) !important; }

/* Padding X (Horizontal) */
.sd-p-x-0 { padding-left: var(--sd-space-0) !important; padding-right: var(--sd-space-0) !important; }
.sd-p-x-1 { padding-left: var(--sd-space-1) !important; padding-right: var(--sd-space-1) !important; }
.sd-p-x-2 { padding-left: var(--sd-space-2) !important; padding-right: var(--sd-space-2) !important; }
.sd-p-x-3 { padding-left: var(--sd-space-3) !important; padding-right: var(--sd-space-3) !important; }
.sd-p-x-4 { padding-left: var(--sd-space-4) !important; padding-right: var(--sd-space-4) !important; }
.sd-p-x-5 { padding-left: var(--sd-space-5) !important; padding-right: var(--sd-space-5) !important; }
.sd-p-x-6 { padding-left: var(--sd-space-6) !important; padding-right: var(--sd-space-6) !important; }

/* Padding Y (Vertical) */
.sd-p-y-0 { padding-top: var(--sd-space-0) !important; padding-bottom: var(--sd-space-0) !important; }
.sd-p-y-1 { padding-top: var(--sd-space-1) !important; padding-bottom: var(--sd-space-1) !important; }
.sd-p-y-2 { padding-top: var(--sd-space-2) !important; padding-bottom: var(--sd-space-2) !important; }
.sd-p-y-3 { padding-top: var(--sd-space-3) !important; padding-bottom: var(--sd-space-3) !important; }
.sd-p-y-4 { padding-top: var(--sd-space-4) !important; padding-bottom: var(--sd-space-4) !important; }
.sd-p-y-5 { padding-top: var(--sd-space-5) !important; padding-bottom: var(--sd-space-5) !important; }
.sd-p-y-6 { padding-top: var(--sd-space-6) !important; padding-bottom: var(--sd-space-6) !important; }

/* Margin X (Horizontal) */
.sd-m-x-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.sd-m-x-0 { margin-left: var(--sd-space-0) !important; margin-right: var(--sd-space-0) !important; }
.sd-m-x-1 { margin-left: var(--sd-space-1) !important; margin-right: var(--sd-space-1) !important; }
.sd-m-x-2 { margin-left: var(--sd-space-2) !important; margin-right: var(--sd-space-2) !important; }
.sd-m-x-3 { margin-left: var(--sd-space-3) !important; margin-right: var(--sd-space-3) !important; }
.sd-m-x-4 { margin-left: var(--sd-space-4) !important; margin-right: var(--sd-space-4) !important; }
.sd-m-x-5 { margin-left: var(--sd-space-5) !important; margin-right: var(--sd-space-5) !important; }
.sd-m-x-6 { margin-left: var(--sd-space-6) !important; margin-right: var(--sd-space-6) !important; }

/* Margin Y (Vertical) */
.sd-m-y-0 { margin-top: var(--sd-space-0) !important; margin-bottom: var(--sd-space-0) !important; }
.sd-m-y-1 { margin-top: var(--sd-space-1) !important; margin-bottom: var(--sd-space-1) !important; }
.sd-m-y-2 { margin-top: var(--sd-space-2) !important; margin-bottom: var(--sd-space-2) !important; }
.sd-m-y-3 { margin-top: var(--sd-space-3) !important; margin-bottom: var(--sd-space-3) !important; }
.sd-m-y-4 { margin-top: var(--sd-space-4) !important; margin-bottom: var(--sd-space-4) !important; }
.sd-m-y-5 { margin-top: var(--sd-space-5) !important; margin-bottom: var(--sd-space-5) !important; }
.sd-m-y-6 { margin-top: var(--sd-space-6) !important; margin-bottom: var(--sd-space-6) !important; }


/* ===============================
   Negative Margin Utilities
   =============================== */

/* Negative Margin Top */
.sd-neg-m-t-1 { margin-top: calc(var(--sd-space-1) * -1) !important; }
.sd-neg-m-t-2 { margin-top: calc(var(--sd-space-2) * -1) !important; }
.sd-neg-m-t-3 { margin-top: calc(var(--sd-space-3) * -1) !important; }
.sd-neg-m-t-4 { margin-top: calc(var(--sd-space-4) * -1) !important; }
.sd-neg-m-t-5 { margin-top: calc(var(--sd-space-5) * -1) !important; }
.sd-neg-m-t-6 { margin-top: calc(var(--sd-space-6) * -1) !important; }

/* Negative Margin Bottom */
.sd-neg-m-b-1 { margin-bottom: calc(var(--sd-space-1) * -1) !important; }
.sd-neg-m-b-2 { margin-bottom: calc(var(--sd-space-2) * -1) !important; }
.sd-neg-m-b-3 { margin-bottom: calc(var(--sd-space-3) * -1) !important; }
.sd-neg-m-b-4 { margin-bottom: calc(var(--sd-space-4) * -1) !important; }
.sd-neg-m-b-5 { margin-bottom: calc(var(--sd-space-5) * -1) !important; }
.sd-neg-m-b-6 { margin-bottom: calc(var(--sd-space-6) * -1) !important; }

/* Negative Margin Left */
.sd-neg-m-l-1 { margin-left: calc(var(--sd-space-1) * -1) !important; }
.sd-neg-m-l-2 { margin-left: calc(var(--sd-space-2) * -1) !important; }
.sd-neg-m-l-3 { margin-left: calc(var(--sd-space-3) * -1) !important; }
.sd-neg-m-l-4 { margin-left: calc(var(--sd-space-4) * -1) !important; }
.sd-neg-m-l-5 { margin-left: calc(var(--sd-space-5) * -1) !important; }
.sd-neg-m-l-6 { margin-left: calc(var(--sd-space-6) * -1) !important; }

/* Negative Margin Right */
.sd-neg-m-r-1 { margin-right: calc(var(--sd-space-1) * -1) !important; }
.sd-neg-m-r-2 { margin-right: calc(var(--sd-space-2) * -1) !important; }
.sd-neg-m-r-3 { margin-right: calc(var(--sd-space-3) * -1) !important; }
.sd-neg-m-r-4 { margin-right: calc(var(--sd-space-4) * -1) !important; }
.sd-neg-m-r-5 { margin-right: calc(var(--sd-space-5) * -1) !important; }
.sd-neg-m-r-6 { margin-right: calc(var(--sd-space-6) * -1) !important; }


/* ===============================
   Gutenberg Flow Exceptions
   Preserve global reset, allow deliberate negative spacing
   =============================== */

/* Negative top margin inside flow layouts */
.is-layout-flow > .sd-neg-m-t-1 { margin-block-start: calc(var(--sd-space-1) * -1) !important; }
.is-layout-flow > .sd-neg-m-t-2 { margin-block-start: calc(var(--sd-space-2) * -1) !important; }
.is-layout-flow > .sd-neg-m-t-3 { margin-block-start: calc(var(--sd-space-3) * -1) !important; }
.is-layout-flow > .sd-neg-m-t-4 { margin-block-start: calc(var(--sd-space-4) * -1) !important; }
.is-layout-flow > .sd-neg-m-t-5 { margin-block-start: calc(var(--sd-space-5) * -1) !important; }
.is-layout-flow > .sd-neg-m-t-6 { margin-block-start: calc(var(--sd-space-6) * -1) !important; }

/* Negative bottom margin inside flow layouts */
.is-layout-flow > .sd-neg-m-b-1 { margin-block-end: calc(var(--sd-space-1) * -1) !important; }
.is-layout-flow > .sd-neg-m-b-2 { margin-block-end: calc(var(--sd-space-2) * -1) !important; }
.is-layout-flow > .sd-neg-m-b-3 { margin-block-end: calc(var(--sd-space-3) * -1) !important; }
.is-layout-flow > .sd-neg-m-b-4 { margin-block-end: calc(var(--sd-space-4) * -1) !important; }
.is-layout-flow > .sd-neg-m-b-5 { margin-block-end: calc(var(--sd-space-5) * -1) !important; }
.is-layout-flow > .sd-neg-m-b-6 { margin-block-end: calc(var(--sd-space-6) * -1) !important; }



/* ===============================
   Layout & Widths
   =============================== */

/* Utility: Remove default block padding from Astra */
.sd-no-block-padding {
  padding: 0 !important;
  --wp--custom--ast-default-block-top-padding: 0 !important;
  --wp--custom--ast-default-block-right-padding: 0 !important;
  --wp--custom--ast-default-block-bottom-padding: 0 !important;
  --wp--custom--ast-default-block-left-padding: 0 !important;
}

/* Standard Width Containers */
.sd-site-width,
.sd-site-width-xnarrow,
.sd-site-width-narrow,
.sd-site-width-med,
.sd-site-width-smaller,
.sd-site-width-wide,
.sd-site-width-compact {
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--sd-space-3) !important;
  padding-right: var(--sd-space-3) !important;
}

.sd-site-width {
  max-width: var(--sd-site-width) !important;
}

.sd-site-width-compact {
  max-width: var(--sd-site-width-compact) !important;
}

.sd-site-width-xnarrow {
  max-width: var(--sd-site-width-xnarrow) !important;
}

.sd-site-width-narrow {
  max-width: var(--sd-site-width-narrow) !important;
}

.sd-site-width-med {
  max-width: var(--sd-site-width-med) !important;
}

.sd-site-width-smaller {
  max-width: var(--sd-site-width-smaller) !important;
}

.sd-site-width-wide {
  max-width: var(--sd-site-width-wide) !important;
}

/* Full Width Containers */
.sd-site-width-full {
  max-width: none !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  clear: both !important;
}

/* Deprecated Full Width */
.sd-full-width {
  max-width: none !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  clear: both !important;
}

/* Force Edge-to-Edge Width */
.sd-force-full {
  clear: both;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
}

/* ===============================
   Mobile-only padding utilities
   =============================== */

@media (max-width: 544px) {
  .sd-m-p-x-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .sd-m-m-x-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}


/* ===============================
   Containers & Block Resets
   =============================== */

/* Remove default block padding/margin from Gutenberg blocks */
.sd-block-reset {
  padding: 0 !important;
  margin: 0 !important;
}


/* ===============================
   List Utilities
   =============================== */

.sd-list-unstyled {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sd-list-unstyled li {
  margin-bottom: var(--sd-space-1) !important;
}

.sd-list-unstyled-inline {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap;
  gap: var(--sd-space-3);
}

.sd-list-unstyled-inline li {
  margin: 0 !important;
  padding: 0 !important;
  display: inline-block !important;
}

/* ===============================
   List Utility — Custom Bullet
   =============================== */

.sd-list-bullet {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sd-list-bullet li {
  position: relative;
  padding-left: 1.4rem;
  margin-bottom: var(--sd-space-1);
  line-height: 1.5;
}

/* Bullet icon */
.sd-list-bullet li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;

  width: 1rem;
  height: 1rem;

  background-image: url("/storage/caret-right-light.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;

  filter: var(--sd-icon-filter);
}




/* ===============================
   Border Utilities
   =============================== */

/* Full Borders */
.sd-border-light {
  border: 1px solid var(--sd-border-color-light) !important;
}

.sd-border-dark {
  border: 1px solid var(--sd-border-color-dark) !important;
}

/* Directional Borders — Light */
.sd-border-light-t { border-top: 1px solid var(--sd-border-color-light) !important; }
.sd-border-light-b { border-bottom: 1px solid var(--sd-border-color-light) !important; }
.sd-border-light-l { border-left: 1px solid var(--sd-border-color-light) !important; }
.sd-border-light-r { border-right: 1px solid var(--sd-border-color-light) !important; }

/* Directional Borders — Dark */
.sd-border-dark-t { border-top: 1px solid var(--sd-border-color-dark) !important; }
.sd-border-dark-b { border-bottom: 1px solid var(--sd-border-color-dark) !important; }
.sd-border-dark-l { border-left: 1px solid var(--sd-border-color-dark) !important; }
.sd-border-dark-r { border-right: 1px solid var(--sd-border-color-dark) !important; }













/* ===============================
   Structural Elements & Blocks
   =============================== */

/* === Page Header (.sd-page-header) === */

.sd-page-header {
  position: relative !important;
  z-index: auto;
  overflow: hidden;
  /*min-height: var(--sd-page-header-min-height);*/
  justify-content: flex-start !important;
  align-items: stretch !important;
  background-color: transparent !important;
  padding: 0 !important;
}

.sd-page-header-content {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  padding-bottom: var(--sd-space-4);
  position: relative;
  z-index: 2;
}

/*.sd-page-header h1 {
  font-size: var(--sd-fs-display-2);
  margin-bottom: var(--sd-space-2);
}*/

.sd-page-header .sd-page-intro {
  font-size: var(--sd-fs-base-plus);
  max-width: var(--sd-max-md);
  margin-left: auto;
  margin-right: auto;
}

.sd-page-header-content.is-layout-flow > * {
  margin-block-start: 0 !important;
}

.sd-gradient-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

.sd-overlay-bottom {
  background: linear-gradient(
    to top,
    rgba(var(--sd-overlay-gradient-color-1-rgb), 1) 0%,
    rgba(var(--sd-overlay-gradient-color-1-rgb), 0.5) 70%
  ) !important;
}



.sd-overlay-left {
  background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 50%);
}

.sd-overlay-full {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%);
}

/* Alignment Helpers */
.sd-align-v-top {
  display: flex !important;
  justify-content: flex-start !important;
}

.sd-align-v-center {
  display: flex !important;
  justify-content: center !important;
}

.sd-align-v-bottom {
  display: flex !important;
  justify-content: flex-end !important;
}


/* === Basic Header (.sd-basic-header) === */

.sd-basic-header {
  padding-top: var(--sd-space-4);
  padding-bottom: var(--sd-space-3);
  background-color: var(--sd-color-light-2);
  text-align: center;
}

.sd-basic-header h1 {
  font-size: var(--sd-fs-lg);
  margin-bottom: var(--sd-space-1);
}

.sd-basic-header .sd-page-intro {
  font-size: var(--sd-fs-base);
  max-width: var(--sd-max-sm);
  margin-left: auto;
  margin-right: auto;
}


/* === Feature Box (.sd-feature-box) === */

.sd-feature-box {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: var(--sd-cover-min-height) !important;
  padding: var(--sd-space-4) !important;
  gap: var(--sd-space-2) !important;
}

.sd-feature-box > * {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  max-width: 100% !important;
}

.sd-feature-box h2,
.sd-feature-box .wp-block-heading {
  margin-bottom: var(--sd-space-2) !important;
}

.sd-feature-preheading {
  display: inline-block;
  background-color: rgba(11, 13, 21, 0.5);
  padding: 0.3em 0.6em;
  border-radius: 4px;
  backdrop-filter: blur(6px);
  font-size: var(--sd-fs-xs) !important;
  color: var(--sd-color-white) !important;
  font-weight: 300 !important;
  line-height: 1.4;
}

.sd-feature-box .wp-block-buttons {
  margin-top: var(--sd-space-2) !important;
}

.sd-feature-box .wp-block-buttons.is-layout-flex {
  gap: var(--sd-space-1) !important;
}

.wp-block-cover__inner-container.is-layout-flow > * {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.sd-feature-box .wp-block-cover__inner-container > h2,
.sd-feature-box .wp-block-cover__inner-container > .wp-block-heading {
  margin-bottom: var(--sd-space-2) !important;
}

.sd-grid.is-layout-flow > .wp-block-group.sd-grid-item {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}


/* === Info Box (.sd-info-box) === */

.sd-info-box {
  text-align: center;
  padding: var(--sd-space-3);
  background-color: var(--sd-color-light-1);
  border-radius: var(--sd-btn-radius);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sd-space-2);
}

.sd-info-box .sd-icon {
  font-size: 2rem;
  color: var(--sd-color-primary);
}

.sd-info-box h3 {
  font-size: var(--sd-fs-md);
  margin: 0;
}


/* ===============================
   Typography Utilities
   =============================== */


/* Font Sizes */
.sd-text-lead         { font-size: var(--sd-fs-lead) !important; font-weight: 300 !important; }
.sd-text-lede         { font-size: var(--sd-fs-lede) !important; font-weight: 300 !important; }
.sd-fs-xs             { font-size: var(--sd-fs-xs) !important; }
.sd-fs-sm             { font-size: var(--sd-fs-sm) !important; }
.sd-fs-base           { font-size: var(--sd-fs-base) !important; }
.sd-fs-base-plus      { font-size: var(--sd-fs-base-plus) !important; }
.sd-fs-md             { font-size: var(--sd-fs-md) !important; }
.sd-fs-lg             { font-size: var(--sd-fs-lg) !important; }
.sd-fs-xl             { font-size: var(--sd-fs-xl) !important; }

/* Display Font Sizes */
.sd-fs-display-1 { font-size: var(--sd-fs-display-1) !important; line-height: 1.02 !important; }
.sd-fs-display-2 { font-size: var(--sd-fs-display-2) !important; line-height: 1.05 !important; }
.sd-fs-display-3 { font-size: var(--sd-fs-display-3) !important; line-height: 1.08 !important; }
.sd-fs-display-4 { font-size: var(--sd-fs-display-4) !important; line-height: 1.1 !important; }
.sd-fs-display-5 { font-size: var(--sd-fs-display-5) !important; line-height: 1.15 !important; }

/* Theme heading size overrides */

/* H1 -> level 1 */
h1,
.entry-content h1,
.entry-content :where(h1) {
  font-size: var(--sd-h-1);
  line-height: var(--sd-h-lh-1);
}

/* H2 -> level 2 */
h2,
.entry-content h2,
.entry-content :where(h2) {
  font-size: var(--sd-h-2);
  line-height: var(--sd-h-lh-2);
}

/* H3 -> level 3 */
h3,
.entry-content h3,
.entry-content :where(h3) {
  font-size: var(--sd-h-3);
  line-height: var(--sd-h-lh-3);
}

/* H4 -> level 4 */
h4,
.entry-content h4,
.entry-content :where(h4) {
  font-size: var(--sd-h-4);
  line-height: var(--sd-h-lh-4);
}

/* H5 -> level 5 */
h5,
.entry-content h5,
.entry-content :where(h5) {
  font-size: var(--sd-h-5);
  line-height: var(--sd-h-lh-5);
}

/* H6 -> level 6 */
h6,
.entry-content h6,
.entry-content :where(h6) {
  font-size: var(--sd-h-6);
  line-height: var(--sd-h-lh-6);
}

/* heading size utilities */

.sd-h-level-1 {
  font-size: var(--sd-h-1);
  line-height: var(--sd-h-lh-1);
}

.sd-h-level-2 {
  font-size: var(--sd-h-2);
  line-height: var(--sd-h-lh-2);
}

.sd-h-level-3 {
  font-size: var(--sd-h-3);
  line-height: var(--sd-h-lh-3);
}

.sd-h-level-4 {
  font-size: var(--sd-h-4);
  line-height: var(--sd-h-lh-4);
}

.sd-h-level-5 {
  font-size: var(--sd-h-5);
  line-height: var(--sd-h-lh-5);
}

.sd-h-level-6 {
  font-size: var(--sd-h-6);
  line-height: var(--sd-h-lh-6);
}

/* ===============================
   Mobile Heading Level Utilities
   Visual heading scale override
   =============================== */

@media (max-width: 544px) {
  .sd-h-m-level-1 {
    font-size: var(--sd-h-1) !important;
    line-height: var(--sd-h-lh-1) !important;
  }

  .sd-h-m-level-2 {
    font-size: var(--sd-h-2) !important;
    line-height: var(--sd-h-lh-2) !important;
  }

  .sd-h-m-level-3 {
    font-size: var(--sd-h-3) !important;
    line-height: var(--sd-h-lh-3) !important;
  }

  .sd-h-m-level-4 {
    font-size: var(--sd-h-4) !important;
    line-height: var(--sd-h-lh-4) !important;
  }

  .sd-h-m-level-5 {
    font-size: var(--sd-h-5) !important;
    line-height: var(--sd-h-lh-5) !important;
  }

  .sd-h-m-level-6 {
    font-size: var(--sd-h-6) !important;
    line-height: var(--sd-h-lh-6) !important;
  }
}

/* Letter Spacing */
.sd-letter-spacing-wide { letter-spacing: 0.1em !important; }

/* Font Families - Deprecated? */
/*.sd-font-body         { font-family: var(--sd-font-body) !important; }
.sd-font-serif        { font-family: var(--sd-font-serif) !important; }
.sd-font-display      { font-family: var(--sd-font-display) !important; }*/

/* Text Colors */
.sd-text-dark         { color: var(--sd-color-dark) !important; }
.sd-text-light        { color: var(--sd-color-light) !important; }
.sd-text-primary      { color: var(--sd-color-primary) !important; }
.sd-text-accent       { color: var(--sd-color-accent) !important; }
.sd-text-white        { color: var(--sd-color-text-white) !important; }
.sd-text-white-muted  { color: var(--sd-color-text-white-m) !important; }
.sd-text-white-fff    { color: #ffffff !important; }
.sd-text-black        { color: var(--sd-color-black) !important; }



/* DEPRECATED: Sans Display Combinations */
.sd-sans-display-1    { font-family: var(--sd-font-body); font-size: var(--sd-fs-display-1); line-height: var(--sd-lh-sm); letter-spacing: var(--sd-lsp-h); }
.sd-sans-display-2    { font-family: var(--sd-font-body); font-size: var(--sd-fs-display-2); line-height: var(--sd-lh-sm); letter-spacing: var(--sd-lsp-h); }
.sd-sans-display-3    { font-family: var(--sd-font-body); font-size: var(--sd-fs-display-3); line-height: var(--sd-lh-sm); letter-spacing: var(--sd-lsp-h); }
.sd-sans-display-4    { font-family: var(--sd-font-body); font-size: var(--sd-fs-display-4); line-height: var(--sd-lh-sm); letter-spacing: var(--sd-lsp-h); }

/* DEPRECATED: Serif Display Combinations */
/*
.sd-serif-display-1   { font-family: var(--sd-font-display); font-size: var(--sd-fs-display-1); line-height: var(--sd-lh-sm); letter-spacing: var(--sd-lsp-h); }
.sd-serif-display-2   { font-family: var(--sd-font-display); font-size: var(--sd-fs-display-2); line-height: var(--sd-lh-sm); letter-spacing: var(--sd-lsp-h); }
*/

/* Text Shadow */
.sd-text-shadow {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}


/* Line Heights */
.sd-lh-xs {
    line-height: var(--sd-lh-xs);
}

.sd-lh-sm {
    line-height: var(--sd-lh-sm);
}

.sd-lh-std {
    line-height: var(--sd-lh-std);
}

.sd-lh-lg {
    line-height: var(--sd-lh-lg);
}


/* Letter Spacing */
.sd-ls-h {
    letter-spacing: var(--sd-lsp-h);
}

.sd-ls-btn {
    letter-spacing: var(--sd-lsp-btn);
}

/* ===============================
   Text Alignment & Transform
   =============================== */

/* Base Alignments */
.sd-text-left {
    text-align: left !important;
}

.sd-text-center {
    text-align: center !important;
}

.sd-text-right {
    text-align: right !important;
}

/* Tablet Overrides (≤1024px) */
@media (max-width: 1024px) {
    .sd-text-t-left {
        text-align: left !important;
    }

    .sd-text-t-center {
        text-align: center !important;
    }

    .sd-text-t-right {
        text-align: right !important;
    }
}

/* Mobile Overrides (≤768px) */
@media (max-width: 768px) {
    .sd-text-m-left {
        text-align: left !important;
    }

    .sd-text-m-center {
        text-align: center !important;
    }

    .sd-text-m-right {
        text-align: right !important;
    }
}

/* Text Transform Utility */
.sd-text-no-transform {
    text-transform: none !important;
}

/* ===============================
   Text Transform Utilities
   =============================== */
.sd-text-uppercase {
    text-transform: uppercase !important;
}

.sd-text-capitalize {
    text-transform: capitalize !important;
}

.sd-text-lowercase {
    text-transform: lowercase !important;
}


/* ===============================
   Font Weight Utilities
   =============================== */
.sd-fw-300 {
    font-weight: 300 !important;
}

.sd-fw-400 {
    font-weight: 400 !important;
}

.sd-fw-500 {
    font-weight: 500 !important;
}

.sd-fw-600 {
    font-weight: 600 !important;
}

.sd-fw-700 {
    font-weight: 700 !important;
}


/* ===============================
   Display Utilities
   =============================== */

.sd-inline-block {
    display: inline-block !important;
}

.sd-display-block {
    display: block !important;
}

.sd-display-flex {
    display: flex !important;
}

.sd-display-none {
    display: none !important;
}


/* ===============================
   Background Color Utilities
   =============================== */

.sd-bg-dark {
    background-color: var(--sd-color-dark) !important;
}

.sd-bg-dark-opacity {
  background-color: var(--sd-color-dark-opacity) !important;
}

.sd-bg-light {
    background-color: var(--sd-color-light) !important;
}

.sd-bg-primary {
    background-color: var(--sd-color-primary) !important;
}

.sd-bg-accent {
    background-color: var(--sd-color-accent) !important;
}

.sd-bg-white {
    background-color: var(--sd-color-white) !important;
}

.sd-bg-black {
    background-color: var(--sd-color-black) !important;
}


/* ===============================
   Visibility Utilities
   =============================== */

.sd-hidden {
    display: none !important;
}

@media (min-width: 1025px) {
    .sd-hidden-lg-up {
        display: none !important;
    }
}

@media (max-width: 1024px) {
    .sd-hidden-lg {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .sd-hidden-md {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .sd-hidden-sm {
        display: none !important;
    }
}


/* ===============================
   Positioning Utilities
   =============================== */

.sd-relative {
    position: relative !important;
}

.sd-absolute {
    position: absolute !important;
}

.sd-fixed {
    position: fixed !important;
}

.sd-sticky {
    position: sticky !important;
}


/* ===============================
   Aspect Ratio Utilities
   =============================== */

.sd-aspect-16x9 {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

.sd-aspect-16x9 > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


/* ===============================
   Overflow & Scroll Utilities
   =============================== */

.sd-overflow-hidden {
    overflow: hidden !important;
}

.sd-overflow-auto {
    overflow: auto !important;
}

.sd-scroll-x {
    overflow-x: auto !important;
    white-space: nowrap;
}


/* ===============================
   Effects Utilities
   =============================== */

.sd-fx-blur {
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

/* Transitions */
.sd-transition {
    transition: all var(--sd-transition-medium) ease;
}

.sd-transition-fast {
    transition: all var(--sd-transition-fast) ease;
}

.sd-transition-slow {
    transition: all var(--sd-transition-slow) ease;
}


/* Hover Effects */
.sd-hover-opacity:hover {
    opacity: var(--sd-btn-hover-opacity);
}


/* ===============================
   Border Radius (Numeric Scale)
   =============================== */

.sd-rounded-1 {
    border-radius: 4px;
}

.sd-rounded-2 {
    border-radius: 8px;
}

.sd-rounded-3 {
    border-radius: 16px;
}

.sd-rounded-full {
    border-radius: 9999px;
}

/* ===============================
   Border Radius (Deprecated Semantic)
   =============================== */

.sd-rounded-sm {
    border-radius: 4px; /* deprecated */
}

.sd-rounded-md {
    border-radius: 8px; /* deprecated */
}

.sd-rounded-lg {
    border-radius: 16px; /* deprecated */
}


/* ===============================
   Box Shadows (Numeric Scale)
   =============================== */

.sd-shadow-1 {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.sd-shadow-2 {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.sd-shadow-3 {
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
}

.sd-shadow-0 {
    box-shadow: none;
}

/* ===============================
   Box Shadows (Deprecated Semantic)
   =============================== */

.sd-shadow-sm {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); /* deprecated */
}

.sd-shadow-md {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* deprecated */
}

.sd-shadow-lg {
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15); /* deprecated */
}

.sd-shadow-none {
    box-shadow: none; /* deprecated */
}


/* Z-Index */
.sd-z-1 {
    z-index: 1;
}

.sd-z-10 {
    z-index: 10;
}

.sd-z-100 {
    z-index: 100;
}


/* ===============================
   Reset Astra button defaults sitewide
   =============================== */
button,
.button,
.ast-button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  border-radius: 0 !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  background-clip: border-box !important;
}

/* ===============================
   SD Button Base Utility
   =============================== */

   
.sd-btn {
    display: inline-block;
    text-align: center !important;
    font-family: inherit !important;
    font-weight: var(--sd-btn-fw) !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    letter-spacing: var(--sd-lsp-btn, 0.05em) !important;
    padding: var(--sd-btn-padding-y) var(--sd-btn-padding-x) !important;
    font-size: var(--sd-btn-font-size) !important;
    transition: all var(--sd-transition-medium) ease !important;
    border-radius: var(--sd-btn-radius) !important;
    border: 1px solid transparent !important;
    background-color: var(--sd-btn-primary-bg) !important;
    color: var(--sd-color-primary) !important;
    white-space: nowrap !important;
    margin-top: var(--sd-space-2) !important;
    cursor: pointer !important;
}

.sd-btn-block {
    display: block !important;
    width: 100% !important;
}

/* Responsive Widths */
@media (max-width: 768px) {
    .sd-btn-primary,
    .sd-btn-outline {
        width: 100% !important;
    }
}

/* ===============================
   Gutenberg Compatibility
   =============================== */
.wp-block-button.sd-btn,
.wp-block-button.sd-btn-primary,
.wp-block-button.sd-btn-outline,
.wp-block-button.sd-btn-text {
    padding: 0 !important;
    margin-top: var(--sd-space-2) !important;
}

.wp-block-button.sd-btn .wp-block-button__link,
.wp-block-button.sd-btn-primary .wp-block-button__link,
.wp-block-button.sd-btn-outline .wp-block-button__link,
.wp-block-button.sd-btn-text .wp-block-button__link {
    background: none !important;
    border: none !important;
    font: inherit !important;
    text-align: center !important;
    color: inherit !important;
    line-height: inherit !important;
    text-transform: inherit !important;
    letter-spacing: inherit !important;
    font-weight: inherit !important;
    border-radius: inherit !important;
    transition: inherit !important;
    cursor: inherit !important;
    padding: var(--sd-btn-padding-y) var(--sd-btn-padding-x) !important;
    margin: 0 !important;
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* ===============================
   Button Variants
   =============================== */
.sd-btn-primary {
    background-color: var(--sd-btn-primary-bg) !important;
    color: var(--sd-btn-primary-text) !important;
    border: 1px solid transparent !important;
}
.sd-btn-primary:hover {
    opacity: var(--sd-btn-hover-opacity) !important;
}

.sd-btn-outline {
    background: var(--sd-btn-secondary-bg) !important;
    color: var(--sd-btn-secondary-text) !important;
    border: 1px solid var(--sd-btn-secondary-border) !important;
}
.sd-btn-outline:hover {
    /*background-color: var(--sd-btn-secondary-border) !important;*/
    color: var(--sd-color-text-white) !important;
}

.sd-btn-outline-primary {
  color: var(--sd-color-primary) !important;
  border-color: var(--sd-color-primary) !important;
}

.sd-btn-outline-primary:hover,
.sd-btn-outline-primary:focus-visible {
  color: var(--sd-color-text-white) !important;
  border-color: var(--sd-color-primary) !important;
}



.sd-btn-white {
    --sd-btn-secondary-text: #ffffff;
    --sd-btn-secondary-border: #ffffff;
    --sd-btn-secondary-text-light: #0f1318;
}

.sd-btn-outline-highlight {
    border-color: var(--sd-color-main-1) !important;
    color: var(--sd-color-main-1) !important;
}
.sd-btn-outline-highlight:hover {
    background-color: var(--sd-color-main-1) !important;
    color: var(--sd-color-bg) !important;
}

.sd-btn-glass {
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}



/* =========================================
   SD Button Skin — Outline White
   ========================================= */

.sd-btn-outline-white {
  color: var(--sd-color-text-white) !important;
  border-color: var(--sd-color-text-white) !important;
}

.sd-btn-outline-white:hover,
.sd-btn-outline-white:focus-visible {
  background-color: var(--sd-color-main-2) !important;
  border-color: var(--sd-color-main-2) !important;
  color: var(--sd-color-primary) !important;
}




/* ===============================
   SD Text Link Button Variant
   =============================== */
.wp-block-button.sd-btn-text .wp-block-button__link {
    background: none !important;
    border: none !important;
    font: inherit !important;
    text-align: left !important;
    color: var(--sd-btn-secondary-text) !important;
    line-height: inherit !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-weight: 500 !important;
    border-radius: 0 !important;
    transition: color var(--sd-transition-medium) ease !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: var(--sd-space-1) !important;
}

.wp-block-button.sd-btn-text .wp-block-button__link::after {
    content: "→";
    display: inline-block;
    transition: transform var(--sd-transition-medium) ease;
}

.wp-block-button.sd-btn-text .wp-block-button__link:hover {
    color: var(--sd-color-primary) !important;
}
.wp-block-button.sd-btn-text .wp-block-button__link:hover::after {
    transform: translateX(4px);
}

.wp-block-button.sd-btn-text.sd-btn-text-on-dark .wp-block-button__link {

  color: var(--sd-color-text-white) !important;
}

/* ===============================
   Underline Button Variant
   =============================== */
.sd-btn-underline {
    background: none !important;
    color: var(--sd-color-heading) !important;
    border: none !important;
    padding: 0 !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    text-align: left !important;
    display: inline-block !important;
    position: relative !important;
    transition: color 0.3s ease !important;
}

.sd-btn-underline::before {
    content: "" !important;
    position: absolute !important;
    bottom: -1em !important;
    left: 0 !important;
    width: 0.8em !important;
    height: 5px !important;
    background-color: var(--sd-color-main-1) !important;
    transition: width 0.3s ease !important;
}

.sd-btn-underline:hover::before {
    width: 100% !important;
}


/* ===============================
   Modal / Popup / Offcanvas
   =============================== */

body.sd-hide-scroll { overflow: hidden !important; }

/* Overlay containers */
.sd-modal,
.sd-offcanvas {
  position: fixed !important;
  inset: 0;
  background: rgba(0,0,0,0.7);
  visibility: hidden;
  opacity: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.6s ease;
}
.sd-modal.active,
.sd-offcanvas.active {
  visibility: visible;
  opacity: 1;
}

/* ===============================
   Centered popup
   =============================== */
.sd-modal .sd-modal-wrap {
  background: #fff;
  color: #000;
  max-width: 900px !important;
  width: 90% !important;
  padding: var(--sd-space-4);
  position: relative;
  border-radius: var(--sd-radius-lg, 8px);
  transform: scale(1);
  opacity: 1;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
              opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Popup closing */
.sd-modal.closing { opacity: 0; }
.sd-modal.closing .sd-modal-wrap {
  opacity: 0;
  transform: scale(0.95);
}

/* ===============================
   Offcanvas (right slide)
   =============================== */
.sd-offcanvas .sd-modal-wrap {
  position: absolute;
  top: 0; right: 0;
  height: 100%;
  width: 90% !important;
  max-width: 700px !important;
  background: #fff;
  color: #000;
  padding: var(--sd-space-4);
  transform: translateX(100%);
  opacity: 0;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
              opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.sd-offcanvas.active .sd-modal-wrap {
  transform: translateX(0);
  opacity: 1;
}
/* Close animation for offcanvas (slide + fade; overlay fades too) */
.sd-offcanvas.closing {
  opacity: 0; /* overlay fades out in sync */
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.sd-offcanvas.closing .sd-modal-wrap {
  transform: translateX(100%);
  opacity: 0;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
              opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
/* Ensure it's fully gone after closing */
.sd-offcanvas[aria-hidden="true"]:not(.closing) {
  visibility: hidden !important;
  pointer-events: none !important;
}


/* ===============================
   Shared: Close button
   =============================== */
.sd-modal-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  position: absolute;
  top: var(--sd-space-2);
  right: var(--sd-space-2);
}

/* ===============================
   Offcanvas content layout
   =============================== */
.sd-offcanvas .sd-modal-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100vh;
}
.sd-offcanvas .sd-modal-content {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: 0.5rem;
}
.sd-offcanvas .sd-modal-header {
  flex-shrink: 0;
  margin-bottom: 1rem;
}


/* ===============================
   Modal Link Triggers (Unified Style)
   =============================== */

.sd-modal-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sd-space-2, 0.7rem);
  margin: var(--sd-space-2, 1rem) 0;
}

.sd-modal-links .sd-modal-link {
  display: inline-flex;
  align-items: center;
  gap: var(--sd-space-1, 0.4rem);
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  font-size: var(--sd-fs-xs, 0.9rem);
  font-weight: 400;
  letter-spacing: normal !important;
  text-decoration: none !important; /* ← ensure no underline ever */
  color: var(--sd-color-dark-1, #111);
  cursor: pointer;
  opacity: 0.85;
  transition:
    color var(--sd-transition-fast, 0.25s ease),
    opacity var(--sd-transition-fast, 0.25s ease),
    filter var(--sd-transition-fast, 0.25s ease);
}

/* Explicitly remove underline on focus states too */
.sd-modal-links .sd-modal-link:focus,
.sd-modal-links .sd-modal-link:focus-visible,
.sd-modal-links .sd-modal-link:active {
  text-decoration: none !important;
  outline: none !important;
}

/* Remove Astra button styling from modal links */
.sd-modal-link {
  box-shadow: none !important;
  border-radius: 0 !important;
  background: none !important;
  text-decoration: none !important;
}

/* Ensure inner spans don't inherit decoration */
.sd-modal-link span {
  text-decoration: none !important;
  border: none !important;
}

/* Contextual color override inside product descriptions */
.ae-product-description .sd-modal-links .sd-modal-link {
  color: var(--sd-color-primary, var(--ast-global-color-0));
}

/* Icon styling */
.sd-modal-links .sd-modal-link img {
  width: 1em;
  height: 1em;
  flex-shrink: 0;
  display: inline-block;
  filter: brightness(0) saturate(100%);
  transition: filter var(--sd-transition-fast, 0.25s ease);
}

/* Text styling */
.sd-modal-links .sd-modal-link span {
  display: inline-block;
  line-height: 1.3;
  transition: opacity var(--sd-transition-fast, 0.25s ease);
}

/* Hover/focus: icon + text highlight together */
.sd-modal-links .sd-modal-link:hover,
.sd-modal-links .sd-modal-link:focus-visible {
  opacity: 1;
  color: var(--sd-color-main-1, var(--sd-color-primary, #a58a4a));
}

.sd-modal-links .sd-modal-link:hover img,
.sd-modal-links .sd-modal-link:focus-visible img {
  filter: brightness(0) saturate(100%) invert(56%) sepia(29%) saturate(600%) hue-rotate(12deg);
}

/* Compact modifier */
.sd-modal-links--compact {
  gap: var(--sd-space-1, 0.4rem);
  margin: var(--sd-space-3, 1rem) 0;
}

.sd-modal-links--compact .sd-modal-link {
  font-size: var(--sd-fs-xs, 0.85rem);
  opacity: 0.9;
}





/* ===============================
   Accordion: Base Style
   =============================== */

.sd-accordion-faq {
  margin-top: var(--sd-space-3) !important;
  margin-bottom: var(--sd-space-4) !important;
}

.sd-accordion-item {
  border-bottom: 1px solid var(--sd-color-border);
}

/* IMPORTANT: opt out of Astra button styles */
.sd-accordion-faq button.sd-accordion-trigger {
  font-family: inherit !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.sd-accordion-trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;

  width: 100%;
  padding: var(--sd-space-2) 0;

  font-weight: 400;
  font-size: var(--sd-fs-base);

  background: none !important;
  background-color: transparent !important;

  border: none;
  text-align: left;
  cursor: pointer;
}

/* Kill Astra hover / focus background */
.sd-accordion-trigger:hover,
.sd-accordion-trigger:active,
.sd-accordion-trigger:focus,
.sd-accordion-trigger:focus-visible {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
}

.sd-accordion-trigger[aria-expanded="true"] {
  font-weight: 600 !important;
}

.sd-accordion-icon {
  width: 1rem;
  height: 1rem;
  margin-left: var(--sd-space-2);

  background-image: url("/wp-content/uploads/caret-down-light.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;

  transition: transform 0.3s ease, filter 0.2s ease;
}

.sd-accordion-trigger[aria-expanded="true"] .sd-accordion-icon {
  transform: rotate(-180deg);
}

/* Hover anywhere on trigger affects icon */
.sd-accordion-trigger:hover .sd-accordion-icon,
.sd-accordion-trigger[aria-expanded="true"] .sd-accordion-icon {
  filter: var(--sd-icon-filter) !important;
}

.sd-accordion-panel {
  overflow: hidden;
  line-height: 1.5;
  padding: var(--sd-space-2) 0;
  display: none;
}

.sd-accordion-panel[aria-hidden="false"] {
  display: block;
}

.sd-accordion-label {
  text-transform: none !important;
}



/* ===============================
   Accordion: Minimal Base Style
   =============================== */

.sd-accordion-faq-minimal {
  margin-top: var(--sd-space-3) !important;
  margin-bottom: var(--sd-space-4) !important;
}

.sd-accordion-item-minimal {
  border-bottom: 1px solid var(--sd-color-border);
}

/* IMPORTANT: opt out of Astra button styles */
.sd-accordion-faq-minimal button.sd-accordion-trigger-minimal {
  font-family: inherit !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

.sd-accordion-trigger-minimal {
  display: flex;
  justify-content: space-between;
  align-items: center;

  width: 100%;
  padding: var(--sd-space-2) 0;

  font-weight: 500;
  font-size: var(--sd-fs-base);

  background: none !important;
  background-color: transparent !important;

  border: none;
  text-align: left;
  cursor: pointer;
}

.sd-accordion-trigger-minimal:hover,
.sd-accordion-trigger-minimal:active,
.sd-accordion-trigger-minimal:focus,
.sd-accordion-trigger-minimal:focus-visible {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
}

.sd-accordion-icon-minimal {
  width: 1rem;
  height: 1rem;
  margin-left: var(--sd-space-2);

  background-image: url("/wp-content/uploads/caret-down-light.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;

  transition: transform 0.3s ease, filter 0.2s ease;
}

.sd-accordion-trigger-minimal[aria-expanded="true"] .sd-accordion-icon-minimal {
  transform: rotate(-180deg);
}

.sd-accordion-trigger-minimal:hover .sd-accordion-icon-minimal,
.sd-accordion-trigger-minimal[aria-expanded="true"] .sd-accordion-icon-minimal {
  filter: var(--sd-icon-filter) !important;
}

.sd-accordion-panel-minimal {
  overflow: hidden;
  line-height: 1.5;
  padding: var(--sd-space-2) 0;
  display: none;
}

.sd-accordion-panel-minimal[aria-hidden="false"] {
  display: block;
}

.sd-accordion-label-minimal {
  text-transform: none !important;
}







/* ===============================
   FLEXBOX UTILITIES
   =============================== */

/* Display Types */
.sd-flex {
    display: flex !important;
}

.sd-inline-flex {
    display: inline-flex !important;
}

/* Flex Direction */
.sd-flex-row {
    flex-direction: row !important;
}

.sd-flex-col {
    flex-direction: column !important;
}

/* Wrapping */
.sd-flex-wrap {
    flex-wrap: wrap !important;
}

.sd-flex-nowrap {
    flex-wrap: nowrap !important;
}

/* Justify Content */
.sd-justify-start {
    justify-content: flex-start !important;
}

.sd-justify-center {
    justify-content: center !important;
}

.sd-justify-end {
    justify-content: flex-end !important;
}

.sd-justify-between {
    justify-content: space-between !important;
}

.sd-justify-around {
    justify-content: space-around !important;
}

.sd-justify-evenly {
    justify-content: space-evenly !important;
}

/* Align Items */
.sd-align-start {
    align-items: flex-start !important;
}

.sd-align-center {
    align-items: center !important;
}

.sd-align-end {
    align-items: flex-end !important;
}

.sd-align-stretch {
    align-items: stretch !important;
}

/* Align Self */
.sd-align-self-start {
    align-self: flex-start !important;
}

.sd-align-self-center {
    align-self: center !important;
}

.sd-align-self-end {
    align-self: flex-end !important;
}


/* ===============================
   RESPONSIVE FLEX UTILITIES
   =============================== */
@media (max-width: 1024px) {
    .sd-flex-lg-col {
        flex-direction: column !important;
    }
    .sd-justify-lg-center {
        justify-content: center !important;
    }
    .sd-w-lg-100 {
        width: 100% !important;
    }
}

@media (max-width: 768px) {
    .sd-flex-md-col {
        flex-direction: column !important;
    }
    .sd-justify-md-center {
        justify-content: center !important;
    }
    .sd-w-md-100 {
        width: 100% !important;
    }
}

@media (max-width: 544px) {
    .sd-flex-sm-col {
        flex-direction: column !important;
    }
    .sd-justify-sm-center {
        justify-content: center !important;
    }
    .sd-w-sm-100 {
        width: 100% !important;
    }
}

/* Centered Responsive Widths */
@media (max-width: 768px) {
    .sd-w-md-75, .sd-w-md-66, .sd-w-md-85, .sd-w-md-auto {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .sd-w-md-75 {
        width: 75% !important;
    }
    .sd-w-md-66 {
        width: 66.6667% !important;
    }
    .sd-w-md-85 {
        width: 85% !important;
    }
    .sd-w-md-auto {
        width: auto !important;
    }
}

@media (max-width: 544px) {
    .sd-w-sm-75, .sd-w-sm-66, .sd-w-sm-85, .sd-w-sm-auto {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .sd-w-sm-75 {
        width: 75% !important;
    }
    .sd-w-sm-66 {
        width: 66.6667% !important;
    }
    .sd-w-sm-85 {
        width: 85% !important;
    }
    .sd-w-sm-auto {
        width: auto !important;
    }
}


/* ===============================
   Flexbox Alignment Bundles
   =============================== */

/* Bottom Left */
.sd-align-bottom-left {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    height: 100% !important;
}

/* Bottom Right */
.sd-align-bottom-right {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-end !important;
    height: 100% !important;
}

/* Top Left */
.sd-align-top-left {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    height: 100% !important;
}

/* Top Right */
.sd-align-top-right {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-end !important;
    height: 100% !important;
}

/* Center Center */
.sd-align-center-center {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    height: 100% !important;
}

/* Bottom Center (typically for Cover block use) */
.sd-align-cover-bottom-center {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: center !important;
    height: 100% !important;
}



/* ===============================
   CONSTRAINT-SAFE OVERRIDES
   =============================== */

/* Prevent layout constraints from capping width */
.sd-site-width.is-layout-constrained,
.sd-site-width-wide.is-layout-constrained,
.sd-site-width-med.is-layout-constrained,
.sd-site-width-smaller.is-layout-constrained,
.sd-site-width-narrow.is-layout-constrained,
.sd-site-width-xnarrow.is-layout-constrained {
    max-width: 100% !important;
}

/* Width specific overrides */
.sd-site-width-wide.is-layout-constrained {
    max-width: var(--sd-site-width-wide) !important;
}
.sd-site-width-med.is-layout-constrained {
    max-width: var(--sd-site-width-med) !important;
}
.sd-site-width-smaller.is-layout-constrained {
    max-width: var(--sd-site-width-smaller) !important;
}
.sd-site-width-narrow.is-layout-constrained {
    max-width: var(--sd-site-width-narrow) !important;
}
.sd-site-width-xnarrow.is-layout-constrained {
    max-width: var(--sd-site-width-xnarrow) !important;
}

/* Reset margins and paddings for children */
.sd-grid.is-layout-constrained>*:not(.alignleft):not(.alignright):not(.alignfull),
.sd-feature-box.is-layout-constrained>* {
    margin: 0 !important;
    text-align: inherit !important;
}
.wp-block-group.sd-grid-item.is-layout-constrained {
    padding: 0 !important;
    margin: 0 !important;
}
.sd-grid.is-layout-constrained {
    max-width: 100% !important;
}

/* Remove unwanted vertical margins from first/last child */
.sd-grid.is-layout-constrained>*:first-child {
    margin-block-start: 0 !important;
}
.sd-grid.is-layout-constrained>*:last-child {
    margin-block-end: 0 !important;
}


/* ===============================
   GSAP FX: Parallax Background
   =============================== */

.sd-parallax-bg {
    position: relative !important;
    overflow: hidden !important;
}

.sd-parallax-bg .wp-block-cover__image-background {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 120% !important;
    object-fit: cover !important;
    z-index: 0 !important;
    display: block !important;
    max-width: none !important;
    max-height: none !important;
    pointer-events: none !important;
    will-change: transform !important;
}

/* ===============================
   Cover Block Height Fix - deprecated
   =============================== */
/*
.wp-block-cover__inner-container {
    height: 100% !important;
}
*/

/* ===============================
   SPLIDE Progress Bar
   =============================== */

.sd-slider-progress {
    background: var(--sd-color-light-2);
    height: 0.3rem;
    width: 100%;
}

.sd-slider-progress-bar {
    background: var(--sd-color-primary-alt);
    height: 100%;
    width: 0;
    transition: width 400ms ease;
}


/* ===============================
   ARCHIVE STYLE: SD Style 1
   =============================== */

/* Container Width */
.sd-archive-style-1 .site-content>.ast-container {
    max-width: var(--sd-site-width-full) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--sd-space-4) !important;
    padding-right: var(--sd-space-4) !important;
}

@media (max-width: 768px) {
    .sd-archive-style-1 .site-content>.ast-container {
        padding-left: var(--sd-space-1) !important;
        padding-right: var(--sd-space-1) !important;
    }
}

/* Layout spacing */
.sd-archive-style-1 .ast-row {
    --sd-archive-gap: var(--sd-space-3) !important;
    margin-left: calc(-1 * var(--sd-archive-gap)) !important;
    margin-right: calc(-1 * var(--sd-archive-gap)) !important;
}

.sd-archive-style-1 .ast-grid-common-col {
    padding-left: var(--sd-archive-gap) !important;
    padding-right: var(--sd-archive-gap) !important;
    padding-bottom: var(--sd-archive-gap) !important;
    min-height: 35vh !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    display: flex !important;
    align-items: flex-end !important;
}

/* Background image */
.sd-archive-style-1 .ast-blog-featured-section {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100% !important;
    z-index: 0;
}

.sd-archive-style-1 .ast-blog-featured-section img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    display: block;
}

/* Post Title Styling */
.sd-archive-style-1.archive .ast-article-post .entry-title a {
    position: relative;
    z-index: 1;
    color: var(--sd-color-text-white) !important;
    font-size: var(--sd-fs-md) !important;
    font-weight: 300 !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5) !important;
    display: inline-block;
    margin: 0 !important;
    border-radius: 0 !important;
}

/* Post inner layout */
.sd-archive-style-1 .ast-article-inner {
    padding: var(--sd-space-2) !important;
}

.sd-archive-style-1 .ast-article-post,
.sd-archive-style-1 .entry-content,
.sd-archive-style-1 .ast-article-post .entry-title {
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Gradient overlay */
.sd-archive-style-1 .ast-article-inner .post-thumb::after {
    background: linear-gradient(15deg,
        rgba(var(--sd-color-main-2-rgb), 0.75) 0%,
        rgba(var(--sd-color-main-2-rgb), 0.5) 15%,
        rgba(var(--sd-color-main-2-rgb), 0.25) 25%,
        rgba(var(--sd-color-main-2-rgb), 0) 50%) !important;
    z-index: 1 !important;
    pointer-events: none;
}

:root {
    --sd-color-main-2-rgb: 11, 13, 21;
}




/* ==========================================================
   Share Trigger
========================================================== */

.sd-share-trigger-wrap {
  margin-top: 0.75rem !important;
}

/* Full reset */
.sd-share-trigger {
  all: unset !important;

  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;

  font-family: inherit !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  text-transform: none !important;

  color: inherit !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;

  cursor: pointer !important;
  position: relative !important;
}

/* Explicitly kill ALL interactive backgrounds */
.sd-share-trigger:hover,
.sd-share-trigger:focus,
.sd-share-trigger:focus-visible,
.sd-share-trigger:active {
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Arrow */
.sd-share-trigger::after {
  content: "→" !important;
  font-size: 0.95em !important;
  line-height: 1 !important;

  transform: translateX(0) !important;
  transition: transform 0.25s ease !important;
}

/* Underline */
.sd-share-trigger::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  bottom: -2px !important;

  width: 100% !important;
  height: 1px !important;
  background: currentColor !important;

  opacity: 0 !important;
  transform: scaleX(0.85) !important;
  transition: opacity 0.2s ease, transform 0.25s ease !important;
}

/* Hover effects (desktop only) */
@media (hover: hover) {
  .sd-share-trigger:hover::after {
    transform: translateX(4px) !important;
  }

  .sd-share-trigger:hover::before {
    opacity: 0.6 !important;
    transform: scaleX(1) !important;
  }
}

/* Keyboard accessibility */
.sd-share-trigger:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 4px !important;
}


/* ==========================================================
   Share Panel Layout
========================================================== */

.sd-share-panel {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 1rem;
}

/* ==========================================================
   Share Links (Facebook / WhatsApp / X / Email)
========================================================== */

.sd-share-item {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;

  text-decoration: none;
  color: inherit;

  font-size: 0.95rem;
}

.sd-share-item img {
  width: 1.1rem;
  height: 1.1rem;
  opacity: 0.9;
}

@media (hover: hover) {
  .sd-share-item:hover {
    opacity: 0.75;
  }
}

/* ==========================================================
   Share Action Buttons (device + copy)
========================================================== */

.sd-share-action {
  background: #000;
  color: #fff;
  border: 1px solid #000;

  font-size: 0.8rem;
}

/* Desktop: natural width */
@media (min-width: 768px) {
  .sd-share-action {
    align-self: flex-start;
    min-width: 220px;
  }
}

/* Mobile: full width */
@media (max-width: 767px) {
  .sd-share-action {
    width: 100%;
  }
}




/* ===============================
   RESPONSIVE DISPLAY HELPERS
   =============================== */

/* Hide on Mobile */
@media (max-width: 544px) {
    .sd-hide-m {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: absolute !important;
    }
}

/* Hide on Tablet */
@media (min-width: 545px) and (max-width: 1024px) {
    .sd-hide-t {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: absolute !important;
    }
}

/* Hide on Desktop */
@media (min-width: 1025px) {
    .sd-hide-d {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: absolute !important;
    }
}

/* Hide universally */
.sd-hide-force {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
}


/* ===============================
   GRID SYSTEM
   =============================== */

/* Core Grid */
.sd-grid {
    display: grid !important;
    align-items: stretch !important;
    width: 100%;
}

.sd-grid > .wp-block-group,
.sd-grid-item {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    flex: 1 1 auto !important;
}

/* Images inside grid */
.sd-grid img {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
}

.sd-grid .wp-block-cover__image-background {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
}

/* Grid Gaps */

.sd-gap-1 { gap: var(--sd-space-1); }
.sd-gap-2 { gap: var(--sd-space-2); }
.sd-gap-3 { gap: var(--sd-space-3); }
.sd-gap-4 { gap: var(--sd-space-4); }


/* deprecated */
.sd-gap-sm {
    gap: clamp(0.5rem, 1vw, 1rem);
}

.sd-gap-md {
    gap: clamp(1rem, 2vw, 2rem);
}

.sd-gap-lg {
    gap: clamp(1.5rem, 3vw, 3rem);
}

.sd-gap-xl {
    gap: clamp(2rem, 5vw, 4rem);
}

/* Grid Column Layouts */
.sd-grid-cols-1 { grid-template-columns: 1fr; }
.sd-grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.sd-grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.sd-grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
.sd-grid-cols-6 { grid-template-columns: repeat(6, 1fr); }

/* Responsive Grid Columns */
@media (max-width: 1280px) {
    .sd-grid-cols-lg-1 { grid-template-columns: 1fr; }
    .sd-grid-cols-lg-2 { grid-template-columns: repeat(2, 1fr); }
    .sd-grid-cols-lg-3 { grid-template-columns: repeat(3, 1fr); }
    .sd-grid-cols-lg-4 { grid-template-columns: repeat(4, 1fr); }
    .sd-grid-cols-lg-6 { grid-template-columns: repeat(6, 1fr); }
}

@media (max-width: 1024px) {
    .sd-grid-cols-md-1 { grid-template-columns: 1fr; }
    .sd-grid-cols-md-2 { grid-template-columns: repeat(2, 1fr); }
    .sd-grid-cols-md-3 { grid-template-columns: repeat(3, 1fr); }
    .sd-grid-cols-md-4 { grid-template-columns: repeat(4, 1fr); }
    .sd-grid-cols-md-6 { grid-template-columns: repeat(6, 1fr); }
}

@media (max-width: 768px) {
    .sd-grid-cols-sm-1 { grid-template-columns: 1fr; }
    .sd-grid-cols-sm-2 { grid-template-columns: repeat(2, 1fr); }
    .sd-grid-cols-sm-3 { grid-template-columns: repeat(3, 1fr); }
    .sd-grid-cols-sm-4 { grid-template-columns: repeat(4, 1fr); }
    .sd-grid-cols-sm-6 { grid-template-columns: repeat(6, 1fr); }
}

@media (max-width: 544px) {
    .sd-grid-cols-xs-1 { grid-template-columns: 1fr; }
    .sd-grid-cols-xs-2 { grid-template-columns: repeat(2, 1fr); }
    .sd-grid-cols-xs-3 { grid-template-columns: repeat(3, 1fr); }
    .sd-grid-cols-xs-4 { grid-template-columns: repeat(4, 1fr); }
    .sd-grid-cols-xs-6 { grid-template-columns: repeat(6, 1fr); }
}

/* Grid Item Spanning */
.sd-col-span-2 {
    grid-column: span 2 !important;
}

.ae-recipe-ingredients .sd-grid-item.sd-col-span-2:last-child {
    padding-left: calc(25% + var(--sd-space-2)) !important;
    padding-right: calc(25% + var(--sd-space-2)) !important;
}

.sd-center-child {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
}


/* ===============================
   FLEX-GRID (.sd-row + .sd-flex-cols-*)
   =============================== */

/* Row Wrapper */
.sd-row {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-left: -1rem;
    margin-right: -1rem;
}

.sd-row > * {
    padding-left: 1rem;
    padding-right: 1rem;
}

/* Flex Columns */
.sd-flex-cols-1 { flex: 0 0 100% !important; max-width: 100% !important; }
.sd-flex-cols-2 { flex: 0 0 50% !important; max-width: 50% !important; }
.sd-flex-cols-3 { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
.sd-flex-cols-4 { flex: 0 0 25% !important; max-width: 25% !important; }
.sd-flex-cols-6 { flex: 0 0 16.6667% !important; max-width: 16.6667% !important; }

/* Responsive Flex Columns */
@media (max-width: 1280px) {
    .sd-flex-cols-lg-1 { flex: 0 0 100% !important; max-width: 100% !important; }
    .sd-flex-cols-lg-2 { flex: 0 0 50% !important; max-width: 50% !important; }
    .sd-flex-cols-lg-3 { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
    .sd-flex-cols-lg-4 { flex: 0 0 25% !important; max-width: 25% !important; }
}

@media (max-width: 1024px) {
    .sd-flex-cols-md-1 { flex: 0 0 100% !important; max-width: 100% !important; }
    .sd-flex-cols-md-2 { flex: 0 0 50% !important; max-width: 50% !important; }
    .sd-flex-cols-md-3 { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
}

@media (max-width: 768px) {
    .sd-flex-cols-sm-1 { flex: 0 0 100% !important; max-width: 100% !important; }
    .sd-flex-cols-sm-2 { flex: 0 0 50% !important; max-width: 50% !important; }
}

@media (max-width: 544px) {
    .sd-flex-cols-xs-1 { flex: 0 0 100% !important; max-width: 100% !important; }
    .sd-flex-cols-xs-2 { flex: 0 0 50% !important; max-width: 50% !important; }
}


