/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!./src/scss/theme-styles.scss ***!
  \***********************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * File:	lumina-theme.css
 * Theme:	Lumina
 * 
 * The stylesheet for the Lumina theme. It has all the non block-specific 
 * css. The block-specific css is in /blocks folder. 
 *
 * NOTE: This file is AUTO-GENERATED from the SASS source files 
 * in /src/scss/lumina-theme.scss. Do not make updates here.
 * 
 * @package lumina
 * @since 	1.0
 */
/* ==========================================================================
   LUMINA THEME: CSS styles
   v1.0.0 Alpha
   ========================================================================== */
/*-----------------------------------------------------------------------------
# Normalize
-----------------------------------------------------------------------------*/
/* 
 * Default to contain borders and padding within blocks and prevent iOS from 
 * adjusting text sizes after orientation change. 
 */
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: auto !important;
}

*, *::before, *::after {
  box-sizing: inherit;
}

/*
 * Font smoothing
 * These are niche settings that will not be available via Global Styles.
 * https://github.com/WordPress/gutenberg/issues/35934
 */
body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

/*-----------------------------------------------------------------------------
# Elements
-----------------------------------------------------------------------------*/
/* Base Typography Reset */
:where(ul, ol, dl,
blockquote,
figure) {
  margin-block-start: 0;
  margin-block-end: 0;
}

:where(p, .wp-block-paragraph,
h1, h2, h3, h4, h5, h6,
.wp-block-heading) {
  margin-block-start: var(--wp--style--block-gap);
  margin-block-end: 0;
}

/* Use bold font-weight from theme.json */
strong,
b {
  font-weight: var(--wp--custom--typography--font-weight--bold, 400);
}

/* Prevent multi-line preformatted code blocks from breaking page layouts */
pre,
.wp-block-code {
  overflow-x: auto;
}

/* Style inline code chips and raw pre blocks */
code:not(pre > code),
pre:not(.wp-block-code) {
  font-size: var(--wp--preset--font-size--small);
  padding: 0.15em 0.35em;
  border-radius: var(--wp--custom--border--radius, var(--wp--preset--border-radius--lg));
  border: var(--wp--custom--border--width, 1px) var(--wp--custom--border--style, solid) var(--wp--custom--border--color, var(--wp--preset--color--neutral-alt));
  word-break: break-word;
}

/* Background list container padding reset */
ol.has-background:not(.wp-block-navigation__container):not(.wp-block-navigation-submenu):not(.wp-block-page-list),
ul.has-background:not(.wp-block-navigation__container):not(.wp-block-navigation-submenu):not(.wp-block-page-list) {
  padding: var(--wp--preset--spacing--40);
  list-style-position: inside;
}

/* Center captions and remove default link underlines */
.wp-element-caption {
  text-align: center;
}
.wp-element-caption a {
  text-decoration: none;
}

/* Style raw HTML/legacy quotes like block quotes without specificity leaks */
:where(blockquote:not(.wp-block-quote):not(.wp-block-pullquote blockquote)) {
  border-left: 6px solid var(--wp--preset--color--primary);
  padding-left: var(--wp--preset--spacing--40);
}

/*-----------------------------------------------------------------------------
# Forms
-----------------------------------------------------------------------------*/
form {
  margin-block-end: 0;
}

fieldset {
  font-size: var(--wp--preset--font-size--normal, 18px);
  font-weight: var(--wp--custom--typography--font-weight--normal, 300);
  line-height: 1.5;
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
  border: 1px solid var(--wp--custom--color--border, color-mix(in srgb, currentColor 15%, transparent));
  border-radius: var(--wp--preset--border-radius--sm, var(--wp--preset--spacing--20, 6px));
  text-shadow: none;
  -webkit-appearance: none;
}

select,
textarea,
input:not([type=button]):not([type=submit]):not([type=reset]):not(.wp-element-button) {
  font-family: inherit;
  color: inherit;
  background-color: color-mix(in srgb, currentColor 4%, transparent);
  border: 1px solid var(--wp--custom--color--border, color-mix(in srgb, currentColor 12%, transparent));
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

select {
  font-size: var(--wp--preset--font-size--small, 16px);
  font-weight: var(--wp--custom--typography--font-weight--normal, 300);
  line-height: 1.5;
  border-radius: var(--wp--preset--border-radius--sm, var(--wp--preset--spacing--20, 8px));
  text-shadow: none;
}

textarea,
input:not([type=radio]):not([type=checkbox]):not([type=file]):not([type=image]) {
  font-size: var(--wp--preset--font-size--normal);
  font-weight: var(--wp--custom--typography--font-weight--normal, 300);
  line-height: 1.5;
  border-radius: var(--wp--preset--border-radius--sm, var(--wp--preset--spacing--20, 8px));
  text-shadow: none;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

input:focus,
textarea:focus,
select:focus {
  outline: none !important;
  border-color: color-mix(in srgb, currentColor 40%, transparent);
  box-shadow: 0 0 0 3px var(--wp--custom--color--field--outline, color-mix(in srgb, currentColor 20%, transparent));
}

/*-----------------------------------------------------------------------------
# Links, Images & Basic HTML Form Elements
-----------------------------------------------------------------------------*/
/* 1. Base Link Underline Styles */
a:not(.wp-element-button, .wp-block-button__link, .wp-block-social-link-anchor),
.wp-block-accordion-heading__toggle {
  text-decoration-style: var(--wp--custom--link--style, solid);
  text-decoration-thickness: var(--wp--custom--link--thickness, 1px);
  text-underline-position: var(--wp--custom--link--position, under);
  text-underline-offset: var(--wp--custom--link--offset, 0);
}

/* 2. Link Layer Transitions */
a,
.wp-block-navigation a,
.wp-block-navigation-submenu__toggle {
  cursor: pointer;
  will-change: opacity, filter;
  backface-visibility: hidden;
  transition: opacity var(--wp--custom--animation--duration--short, 250ms) ease-in-out, color var(--wp--custom--animation--duration--short, 250ms) ease-in-out;
}

/* 3. Text Link Hovers */
a:where(:not(.wp-element-button,
.wp-block-button__link,
.wp-block-social-link-anchor,
.wp-block-image a,
figure > a,
.wp-block-post-featured-image a,
.wp-block-latest-posts__featured-image a,
.wp-block-media-text__media a)):hover, a:where(:not(.wp-element-button,
.wp-block-button__link,
.wp-block-social-link-anchor,
.wp-block-image a,
figure > a,
.wp-block-post-featured-image a,
.wp-block-latest-posts__featured-image a,
.wp-block-media-text__media a)):active {
  opacity: var(--wp--custom--color--link--hover-opacity, 0.7);
}

/* 4. Decoupled Linked Image Hovers */
.wp-block-image a:hover, .wp-block-image a:active,
figure > a:hover,
figure > a:active,
.wp-block-post-featured-image a:hover,
.wp-block-post-featured-image a:active,
.wp-block-latest-posts__featured-image a:hover,
.wp-block-latest-posts__featured-image a:active,
.wp-block-media-text__media a:hover,
.wp-block-media-text__media a:active {
  opacity: var(--wp--custom--color--image--hover-opacity, 1);
}

/* 5. Basic HTML Form Buttons (Style-matched to block buttons) */
input[type=button]:not(.wp-element-button),
input[type=submit][class*=button]:not(.wp-element-button),
input[type=submit][class*=submit]:not(.wp-element-button),
input[type=reset][class*=button]:not(.wp-element-button),
input[type=file]::file-selector-button {
  background-color: var(--wp--custom--color--button--background, var(--wp--custom--color--navigation--highlight, var(--wp--preset--color--primary)));
  color: var(--wp--custom--color--button--text, var(--wp--preset--color--off-white));
  border: none;
  border-width: 0;
  border-radius: var(--wp--custom--button--radius, 0);
  padding: var(--wp--preset--spacing--30, 9px) var(--wp--preset--spacing--40, 18px);
  font-size: var(--wp--preset--font-size--normal, 18px);
  font-weight: var(--wp--custom--typography--font-weight--medium, 400);
  line-height: 1.5;
  text-shadow: none;
}

input[type=file] {
  font-size: var(--wp--preset--font-size--small, 16px);
  width: 100%;
}

/* 6. Outline Inheritance Rules */
.is-style-outline > .wp-element-button, .is-style-outline > .wp-block-button__link, [class*=is-style-button-outline-] > .wp-element-button, [class*=is-style-button-outline-] > .wp-block-button__link {
  color: inherit;
}

/* 7. WordPress Core Helper Fixes */
.wp-block-button__link,
.wp-element-button {
  width: auto;
  height: auto;
  vertical-align: middle;
}

/* 8. Custom Underline Utilities */
.is-style-link-underline a:not(.wp-block-navigation-item__content) {
  text-decoration-line: underline !important;
}

.is-style-link-no-underline a {
  text-decoration: none !important;
}

.is-style-link-underline-hover a {
  text-decoration: none !important;
  opacity: 1;
}
.is-style-link-underline-hover a:hover, .is-style-link-underline-hover a:active {
  text-decoration-line: underline !important;
  text-decoration-color: currentcolor !important;
  opacity: 1;
}

/*-----------------------------------------------------------------------------
# Alignments
-----------------------------------------------------------------------------*/
/*
 * Don't let anything be wider than our max width. This is so fullwidth images
 * don't get so wide they lose resolution.
 */
.wp-site-blocks {
  max-width: var(--wp--custom--layout--full-size, 1600px);
  margin-left: auto;
  margin-right: auto;
}

/* FIX align center for WordPress v6.7 */
.aligncenter {
  text-align: center;
}

/* ADD padding and margin to align left and align right to match wide width */
.wp-site-blocks > .alignleft {
  margin-right: var(--wp--style--root--padding-right, var(--wp--preset--spacing--50));
}

body .is-layout-constrained > .alignleft {
  padding-left: calc(0.5 * (100% - var(--wp--style--global--wide-size)));
  margin-inline-end: var(--wp--style--root--padding-right, var(--wp--preset--spacing--50));
}

.wp-site-blocks > .alignright {
  margin-left: var(--wp--style--root--padding-left, var(--wp--preset--spacing--50));
}

body .is-layout-constrained > .alignright {
  padding-right: calc(0.5 * (100% - var(--wp--style--global--wide-size)));
  margin-inline-start: var(--wp--style--root--padding-left, var(--wp--preset--spacing--50));
}

/* Automatically clear floats on Groups with align left or right */
.wp-block-group:not(.is-layout-flex):not(.is-style-fixed-header):has(.alignleft, .alignright)::after {
  content: "";
  clear: both;
  display: table;
}

/*------------------------------------------------------------------------------
# Margins (Vertical spacing)
------------------------------------------------------------------------------*/
/* Don't allow top-margin on main or footers */
:where(.wp-site-blocks) > *,
.wp-block-post-content {
  margin-block-start: 0;
}

/* 
 * Push down WordPress top-margin suppression on template part contents.
 * e.g. Headings within template parts in footer template parts
 */
:root :where(.is-layout-flow) > .wp-block-template-part > :first-child,
:root :where(.is-layout-constrained) > .wp-block-template-part > :first-child {
  margin-block-start: 0;
}

/* 
 * Push top margin down to first-child of main or post content, if needed.
 * .e.g Page / post title, non-full width images
 */
:root main > :first-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part,
.content-home-top),
:root main > :first-child.wp-block-template-part > :first-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part,
.content-home-top),
.wp-block-post-content > :first-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part,
.content-home-top),
.content-home-top > :first-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part,
.content-home-top) {
  margin-block-start: var(--wp--preset--spacing--50);
}

/* 
 * If an alignwide template part (e.g. Featured Image) immediately precedes the 
 * post-content, add macro top-spacing on its first child.
 */
:root main > :not(.alignfull) + .wp-block-post-content > :first-child {
  margin-block-start: var(--wp--preset--spacing--50);
}

/* 
 * Also push bottom margin to last-child of main or post content, if needed.
 * e.g. Post meta, sharing, comments, etc.
 */
:root main > :last-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part),
:root main > :last-child.wp-block-template-part > :last-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part),
.wp-block-post-content > :last-child:not(.alignfull.wp-block-cover,
.alignfull.wp-block-image,
.alignfull.wp-block-post-featured-image,
.alignfull.has-background,
.wp-block-post-content,
.wp-block-template-part) {
  margin-block-end: var(--wp--preset--spacing--50);
}

/* 
 * Apply macro spacing between top-level section blocks inside main, post-content, 
 * or the content-home-top layout wrapper.
 */
:root main > *:not(h1, h2, h3, h4, h5, h6,
.wp-block-heading,
p, .wp-block-paragraph,
ul, ol, .wp-block-list) + *:not(.wp-block-post-content,
.wp-block-post-excerpt,
p, .wp-block-paragraph,
ul, ol, .wp-block-list),
.wp-block-post-content > *:not(h1, h2, h3, h4, h5, h6,
.wp-block-heading,
p, .wp-block-paragraph,
ul, ol, .wp-block-list) + *:not(.wp-block-post-content,
.wp-block-post-excerpt,
p, .wp-block-paragraph,
ul, ol, .wp-block-list),
.content-home-top > *:not(h1, h2, h3, h4, h5, h6,
.wp-block-heading,
p, .wp-block-paragraph,
ul, ol, .wp-block-list) + *:not(.wp-block-post-content,
.wp-block-post-excerpt,
p, .wp-block-paragraph,
ul, ol, .wp-block-list) {
  margin-block-start: var(--wp--preset--spacing--50);
}

/*-----------------------------------------------------------------------------
# List: Custom
#
# Note: Needed for multiple blocks so load in base stylesheet
-----------------------------------------------------------------------------*/
/* Checkmarks */
.is-style-list-checkmarks {
  list-style-type: "✓ ";
}

.rtl .is-style-list-checkmarks {
  list-style-type: " ✓";
}

/* Plain */
.is-style-list-plain,
.is-style-list-plain ul,
.is-style-list-plain ol {
  list-style: none;
  padding-left: 0;
}

.is-style-list-plain li {
  margin-bottom: var(--wp--preset--spacing--30);
}

.is-style-list-plain:not(.has-background),
.is-style-list-plain:not(.has-background) li {
  margin-left: 0;
}

.is-style-list-plain:not(.has-background) li ul li {
  padding-left: var(--wp--preset--spacing--40);
}

/* Plain Centered */
.is-style-list-plain-centered,
.is-style-list-plain-centered ul,
.is-style-list-plain-centered ol {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
  text-align: center;
}

.is-style-list-plain-centered li {
  margin-left: 0;
}

/* ==========================================================================
   LUMINA ENGINE: Token-Driven Glass & Specular Overlay Engine
   ========================================================================== */
/* --------------------------------------------------------------------------
   00. CONFIG & TOKENS (SCSS and theme.json Driven)
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   00. CONFIG & TOKENS (SCSS and theme.json Driven)
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   01. GLASS CONTAINERS (Groups, Columns, Covers, Headers)
   -------------------------------------------------------------------------- */
[class*=is-style-glass]:not(.wp-block-button) {
  position: relative;
  isolation: isolate;
}
[class*=is-style-glass]:not(.wp-block-button) > * {
  position: relative;
  z-index: 2;
}
[class*=is-style-glass]:not(.wp-block-button) {
  border: none !important;
  box-shadow: inset 0 1px 0 0 color-mix(in srgb, var(--wp--preset--color--base) var(--wp--custom--color--opacity--subtle, 12%), transparent);
}
[class*=is-style-glass]:not(.wp-block-button)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background-color: color-mix(in srgb, var(--wp--custom--color--opacity--tint-color, var(--wp--preset--color--secondary)) var(--wp--custom--color--opacity--subtle, 12%), transparent);
  backdrop-filter: var(--wp--custom--color--opacity--blur, blur(6px));
  pointer-events: none;
}
[class*=is-style-glass]:not(.wp-block-button)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 1px 1px 1px 0 color-mix(in srgb, white var(--wp--custom--color--opacity--subtle, 12%), transparent), inset -1px -1px 1px 0 color-mix(in srgb, white var(--wp--custom--color--opacity--faint, 6%), transparent);
}
:is(.has-background, .wp-block-cover) [class*=is-style-glass]:not(.wp-block-button).is-style-glass::before, [class*=is-style-glass]:not(.wp-block-button).is-style-glass:is(.has-background, .wp-block-cover)::before {
  background-color: color-mix(in srgb, var(--wp--custom--color--opacity--tint, var(--wp--preset--color--base)) var(--wp--custom--color--opacity--faint, 6%), transparent);
}
:is(.has-background, .wp-block-cover) [class*=is-style-glass]:not(.wp-block-button).is-style-glass-frosted::before, [class*=is-style-glass]:not(.wp-block-button).is-style-glass-frosted:is(.has-background, .wp-block-cover)::before {
  background: color-mix(in srgb, var(--wp--custom--color--opacity--tint-frosted, white) var(--wp--custom--color--opacity--subtle, 12%), transparent);
  backdrop-filter: var(--wp--custom--color--opacity--blur-dense, blur(10px));
}
:is(.has-background, .wp-block-cover) [class*=is-style-glass]:not(.wp-block-button).is-style-glass-dark::before, [class*=is-style-glass]:not(.wp-block-button).is-style-glass-dark:is(.has-background, .wp-block-cover)::before {
  background: color-mix(in srgb, var(--wp--custom--color--opacity--tint-dark, var(--wp--preset--color--contrast)) var(--wp--custom--color--opacity--faint, 6%), transparent);
}

/* --------------------------------------------------------------------------
   02. GLASS BUTTONS (.wp-block-button) - FULLY PARAMETERIZED OPTICAL LENS
   -------------------------------------------------------------------------- */
[class*=is-style-glass].wp-block-button > :is(.wp-element-button, .wp-block-button__link) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
[class*=is-style-glass].wp-block-button > :is(.wp-element-button, .wp-block-button__link):not(.has-background) {
  background-color: color-mix(in srgb, var(--wp--custom--color--button--background, var(--wp--preset--color--primary)) var(--wp--custom--color--opacity--subtle, 12%), transparent);
}
[class*=is-style-glass].wp-block-button > :is(.wp-element-button, .wp-block-button__link):not(.has-background):not(.has-text-color) {
  color: inherit;
}
[class*=is-style-glass].wp-block-button > :is(.wp-element-button, .wp-block-button__link).has-background {
  background-image: linear-gradient(color-mix(in srgb, white var(--wp--custom--color--opacity--subtle, 12%), transparent), color-mix(in srgb, white var(--wp--custom--color--opacity--subtle, 12%), transparent));
}
[class*=is-style-glass].wp-block-button > :is(.wp-element-button, .wp-block-button__link).has-background:not(.has-text-color) {
  color: var(--wp--preset--color--off-white);
}
[class*=is-style-glass].wp-block-button > :is(.wp-element-button, .wp-block-button__link)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(180deg, color-mix(in srgb, white var(--wp--custom--color--opacity--subtle, 12%), transparent) 0%, transparent 100%);
  box-shadow: inset 1px 1px 1px 0 color-mix(in srgb, white var(--wp--custom--color--opacity--subtle, 12%), transparent), inset -1px -1px 1px 0 color-mix(in srgb, white var(--wp--custom--color--opacity--faint, 6%), transparent);
}

/* --------------------------------------------------------------------------
   CONTEXTUAL OVERRIDES: Shift Button Glass Tints on Colored/Glass Canvases
   Triggers when sitting inside a Cover block, colored section, or glass container
   -------------------------------------------------------------------------- */
:is(.has-background, .wp-block-cover, [class*=is-style-glass]) .wp-block-button.is-style-glass > :is(.wp-element-button, .wp-block-button__link):not(.has-background) {
  background-color: color-mix(in srgb, var(--wp--custom--color--opacity--tint, var(--wp--preset--color--base)) var(--wp--custom--color--opacity--subtle, 12%), transparent);
}

:is(.has-background, .wp-block-cover, [class*=is-style-glass]) .wp-block-button.is-style-glass-frosted > :is(.wp-element-button, .wp-block-button__link):not(.has-background) {
  background-color: color-mix(in srgb, var(--wp--custom--color--opacity--tint-frosted, white) var(--wp--custom--color--opacity--emphasis, 20%), transparent);
}

:is(.has-background, .wp-block-cover, [class*=is-style-glass]) .wp-block-button.is-style-glass-dark > :is(.wp-element-button, .wp-block-button__link):not(.has-background) {
  background-color: color-mix(in srgb, var(--wp--custom--color--opacity--tint-dark, var(--wp--preset--color--contrast)) var(--wp--custom--color--opacity--subtle, 12%), transparent);
}

/* ==========================================================================
   GLOBAL: Base Image Aspect Ratios
   ========================================================================== */
/* Limit images to 100% so they don't break the layout */
img {
  max-width: 100%;
  height: auto;
}

.avatar,
.wp-block-avatar {
  flex-shrink: 0;
}

/* Core Latest Posts Featured Image Reset */
.wp-block-latest-posts__featured-image img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  -o-object-fit: cover;
     object-fit: cover;
}

/* Global Theme Aspect Ratios */
/* 16:9 Standard & Full Widescreen Ratios */
img.size-cropped-full,
img.size-cropped-large,
img.size-cropped-thumbnail,
img.size-large,
.size-cropped-full img,
.size-cropped-large img,
.size-cropped-thumbnail img,
.size-large img {
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

/* 21:9 Master Ultrawide Ratio */
img.size-cropped-ultrawide,
.size-cropped-ultrawide img {
  aspect-ratio: 21/9;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

/* 16:4.5 Lumina Slim Banner Ratio */
img.size-cropped-slim,
.size-cropped-slim img {
  aspect-ratio: 16/4.5;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
}

/* ==========================================================================
   SHALLOW VIEWPORT RADIUS CLAMPING (16:4.5 Slim & 21:9 Ultrawide)
   Clamps 16px radius down to 8px ONLY on styled, bordered, or motion images.
   ========================================================================== */
:is(.is-style-image-border,
.is-style-image-round-border,
.is-style-pan-zoom,
.is-style-pan-zoom-hover):is([style*="16/4.5"],
[style*="16 / 4.5"],
[style*="21/9"],
[style*="21 / 9"],
.size-cropped-slim,
.size-cropped-ultrawide,
:has(.size-cropped-slim),
:has(.size-cropped-ultrawide)) {
  border-radius: var(--wp--preset--border-radius--sm, 8px);
}
:is(.is-style-image-border,
.is-style-image-round-border,
.is-style-pan-zoom,
.is-style-pan-zoom-hover):is([style*="16/4.5"],
[style*="16 / 4.5"],
[style*="21/9"],
[style*="21 / 9"],
.size-cropped-slim,
.size-cropped-ultrawide,
:has(.size-cropped-slim),
:has(.size-cropped-ultrawide)) img {
  border-radius: inherit;
}

/* ==========================================================================
   GLOBAL FULL-WIDTH (ALIGNFULL) BREAKOUT & RADIUS RESET
   ========================================================================== */
:is(.wp-block-image, .wp-block-post-featured-image, .wp-block-cover).alignfull {
  max-width: calc(100% + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px));
  border-radius: 0 !important;
}
:is(.wp-block-image, .wp-block-post-featured-image, .wp-block-cover).alignfull img,
:is(.wp-block-image, .wp-block-post-featured-image, .wp-block-cover).alignfull .wp-block-cover__image-background {
  border-radius: 0 !important;
}

/* ==========================================================================
   LUMINA ENGINE: Decoupled Image Hover Opacity
   ========================================================================== */
/* Overrides flat-blocks default opacity to prevent linked images 
   from dimming mid-flight during kinetic scale/zoom transforms */
.wp-block-image a:hover, .wp-block-image a:active,
figure > a:hover,
figure > a:active,
.wp-block-post-featured-image a:hover,
.wp-block-post-featured-image a:active,
.wp-block-latest-posts__featured-image a:hover,
.wp-block-latest-posts__featured-image a:active,
.wp-block-media-text__media a:hover,
.wp-block-media-text__media a:active {
  opacity: var(--wp--custom--color--image--hover-opacity, 1);
}

/* ==========================================================================
   FEATURED HERO PAN & ZOOM (CINEMATIC CAMERA SLIDER ENGINE)
   ========================================================================== */
/* ==========================================================================
   KEYFRAME ANIMATION ENGINES
   ========================================================================== */
@keyframes luminaPanZoomVideoLoop {
  0% {
    transform: translate3d(calc(-1 * 3.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(-1 * 2.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.15 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
  100% {
    transform: translate3d(calc(3.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(2.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.32 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
}
@keyframes luminaPanZoomMobileLoop {
  0% {
    transform: translate3d(0%, 0%, 0) scale(calc(1 + (1.25 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
  50% {
    transform: translate3d(calc(-2.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(-1.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.42 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
  100% {
    transform: translate3d(calc(1.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(-2% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.28 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
}
@keyframes luminaPanZoomSlimLoop {
  0% {
    transform: translate3d(calc(-1 * 4.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(-1 * 7.2% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.18 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
  100% {
    transform: translate3d(calc(4.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(7.2% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.26 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
}
/* Zero-Repaint GPU Overlay Light Flare */
@keyframes luminaLightFlareLoop {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 0.15;
  }
}
/* ==========================================================================
   PAN & ZOOM BLOCK STYLES — MOTION CONTAINERS
   ========================================================================== */
/* 1. Base Motion Wrappers (Non-Shallow Defaults to border-radius-lg) */
.wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover),
.wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover),
.wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) {
  position: relative;
  overflow: hidden;
  border-radius: var(--wp--preset--border-radius--lg, 16px);
}
.wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover).alignfull, .alignfull > .wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover),
.wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover).alignfull,
.alignfull > .wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover),
.wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover).alignfull,
.alignfull > .wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) {
  border: none !important;
  border-radius: 0 !important;
}
.wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
.wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background,
.wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
.wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background,
.wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
.wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background {
  border-radius: inherit !important;
}

/* 2. Media & Text Motion Mask */
.wp-block-media-text:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) > .wp-block-media-text__media {
  position: relative;
  overflow: hidden;
}
.wp-block-media-text:is(.is-style-pan-zoom, .is-style-pan-zoom-hover).is-image-fill-element > .wp-block-media-text__content {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.wp-block-media-text:not(.is-image-fill-element):is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-media-text__media {
  border: var(--wp--custom--border--style, solid) var(--wp--custom--border--width, 1px) var(--wp--custom--color--border, color-mix(in srgb, currentColor 15%, transparent));
  border-radius: var(--wp--preset--border-radius--lg, 16px);
}

/* 3. Universal Nested Image Animation Engine */
.wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
.wp-block-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background,
.wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
.wp-block-post-featured-image:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background,
.wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
.wp-block-cover:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background,
.wp-block-media-text:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-media-text__media img,
.wp-block-media-text:is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-media-text__media .wp-block-cover__image-background {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  will-change: transform;
  transform: translate3d(calc(-1 * 3.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(-1 * 2.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + (1.15 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  backface-visibility: hidden;
  transform-origin: center center;
  animation-name: luminaPanZoomVideoLoop;
  animation-duration: calc(10s * var(--wp--custom--animation--motion--duration-factor, 1));
  animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
  animation-iteration-count: infinite;
  animation-direction: alternate;
  animation-fill-mode: both;
}

/* ==========================================================================
   HOVER / TAP MOTION MODIFIER (.is-style-pan-zoom-hover)
   ========================================================================== */
.is-style-pan-zoom-hover {
  position: relative;
  --motion-active: clamp(0, calc((var(--wp--custom--animation--motion--pan-intensity, 1) + var(--wp--custom--animation--motion--zoom-intensity, 1)) * 1000), 1);
}
.is-style-pan-zoom-hover img,
.is-style-pan-zoom-hover .wp-block-cover__image-background {
  animation-play-state: paused !important;
  backface-visibility: hidden;
}
.is-style-pan-zoom-hover {
  /* 2A. Translucent Circle Background (::before) */
}
.is-style-pan-zoom-hover::before {
  content: "";
  position: absolute;
  bottom: var(--wp--preset--spacing--30, 12px);
  right: var(--wp--preset--spacing--30, 12px);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  opacity: calc(0.7 * var(--motion-active));
  transform: scale(var(--motion-active));
  transition: opacity var(--wp--custom--animation--duration--short, 250ms) cubic-bezier(0.16, 1, 0.3, 1), transform var(--wp--custom--animation--duration--short, 250ms) cubic-bezier(0.16, 1, 0.3, 1), background-color 200ms ease;
  pointer-events: none;
  z-index: 2;
  background-color: color-mix(in srgb, var(--wp--preset--color--contrast, #000000) 80%, transparent);
}
.is-style-pan-zoom-hover {
  /* 2B. Chevron Expand Mask Icon Layer (::after) */
}
.is-style-pan-zoom-hover::after {
  content: "";
  position: absolute;
  bottom: var(--wp--preset--spacing--30, 12px);
  right: var(--wp--preset--spacing--30, 12px);
  width: 28px;
  height: 28px;
  opacity: calc(0.7 * var(--motion-active));
  transform: scale(var(--motion-active)) rotate(0deg);
  transition: opacity var(--wp--custom--animation--duration--short, 250ms) cubic-bezier(0.16, 1, 0.3, 1), transform var(--wp--custom--animation--duration--short, 250ms) cubic-bezier(0.16, 1, 0.3, 1), color 200ms ease;
  pointer-events: none;
  z-index: 3;
  color: var(--wp--preset--color--base, #ffffff);
  background-color: currentColor;
  -webkit-mask-image: url("../icons/theme/motion.svg");
  mask-image: url("../icons/theme/motion.svg");
  -webkit-mask-size: calc(28px * 0.6);
  mask-size: calc(28px * 0.6);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.is-style-pan-zoom-hover {
  /* Inverted Badge for High-Key / Bright Media */
}
.is-style-pan-zoom-hover.is-light::before {
  background-color: color-mix(in srgb, var(--wp--preset--color--base, #ffffff) 75%, transparent);
}
.is-style-pan-zoom-hover.is-light::after {
  color: var(--wp--preset--color--contrast, #000000);
}
.is-style-pan-zoom-hover:hover img,
.is-style-pan-zoom-hover:hover .wp-block-cover__image-background, .is-style-pan-zoom-hover:focus-within img,
.is-style-pan-zoom-hover:focus-within .wp-block-cover__image-background {
  animation-play-state: running !important;
}
.is-style-pan-zoom-hover:hover::before, .is-style-pan-zoom-hover:focus-within::before {
  opacity: var(--motion-active);
  transform: scale(var(--motion-active));
}
.is-style-pan-zoom-hover:hover::after, .is-style-pan-zoom-hover:focus-within::after {
  opacity: var(--motion-active);
  transform: scale(var(--motion-active)) rotate(45deg);
}

/* ==========================================================================
   SHALLOW VIEWPORT DYNAMIC SCALE FLOOR ENGINE
   ========================================================================== */
:is(.is-style-pan-zoom, .is-style-pan-zoom-hover):is([style*="16/4.5"],
[style*="16 / 4.5"],
:has([style*="16/4.5"]),
:has([style*="16 / 4.5"]),
[style*="21/9"],
[style*="21 / 9"],
:has([style*="21/9"]),
:has([style*="21 / 9"]),
:has(.size-cropped-slim),
:has(.size-cropped-ultrawide)):not(.alignfull):not(.alignfull > *) {
  border-radius: var(--wp--preset--border-radius--sm, 8px);
}
:is(.is-style-pan-zoom, .is-style-pan-zoom-hover):is([style*="16/4.5"],
[style*="16 / 4.5"],
:has([style*="16/4.5"]),
:has([style*="16 / 4.5"]),
[style*="21/9"],
[style*="21 / 9"],
:has([style*="21/9"]),
:has([style*="21 / 9"]),
:has(.size-cropped-slim),
:has(.size-cropped-ultrawide)) img, :is(.is-style-pan-zoom, .is-style-pan-zoom-hover):is([style*="16/4.5"],
[style*="16 / 4.5"],
:has([style*="16/4.5"]),
:has([style*="16 / 4.5"]),
[style*="21/9"],
[style*="21 / 9"],
:has([style*="21/9"]),
:has([style*="21 / 9"]),
:has(.size-cropped-slim),
:has(.size-cropped-ultrawide)) .wp-block-cover__image-background {
  animation-name: luminaPanZoomSlimLoop;
  animation-duration: calc(6.2s * var(--wp--custom--animation--motion--duration-factor, 1));
  transform: translate3d(calc(-1 * 4.5% * var(--wp--custom--animation--motion--pan-intensity, 1)), calc(-1 * 7.2% * var(--wp--custom--animation--motion--pan-intensity, 1)), 0) scale(calc(1 + max(2 * 7.2% * var(--wp--custom--animation--motion--pan-intensity, 1) + 0.02, (1.18 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1))));
}

/* ==========================================================================
   LIGHTBOX & ACCESSIBILITY OVERRIDES
   ========================================================================== */
.wp-lightbox-overlay img {
  animation: none !important;
}
.wp-lightbox-overlay *::after,
.wp-lightbox-overlay *::before {
  display: none !important;
  content: none !important;
}

@media (max-width: 781px) {
  :is(.is-style-pan-zoom, .is-style-pan-zoom-hover):not(:is([style*="16/4.5"],
  [style*="16 / 4.5"],
  :has([style*="16/4.5"]),
  :has([style*="16 / 4.5"]),
  [style*="21/9"],
  [style*="21 / 9"],
  :has([style*="21/9"]),
  :has([style*="21 / 9"]),
  :has(.size-cropped-slim),
  :has(.size-cropped-ultrawide))) img,
  :is(.is-style-pan-zoom, .is-style-pan-zoom-hover):not(:is([style*="16/4.5"],
  [style*="16 / 4.5"],
  :has([style*="16/4.5"]),
  :has([style*="16 / 4.5"]),
  [style*="21/9"],
  [style*="21 / 9"],
  :has([style*="21/9"]),
  :has([style*="21 / 9"]),
  :has(.size-cropped-slim),
  :has(.size-cropped-ultrawide))) .wp-block-cover__image-background {
    animation-name: luminaPanZoomMobileLoop;
    animation-duration: calc(6.6s * var(--wp--custom--animation--motion--duration-factor, 1));
    transform: translate3d(0%, 0%, 0) scale(calc(1 + (1.25 - 1) * var(--wp--custom--animation--motion--zoom-intensity, 1)));
  }
}
@media (prefers-reduced-motion: reduce) {
  :is(.is-style-pan-zoom, .is-style-pan-zoom-hover)::after {
    display: none !important;
  }
  :is(.is-style-pan-zoom, .is-style-pan-zoom-hover) img,
  :is(.is-style-pan-zoom, .is-style-pan-zoom-hover) .wp-block-cover__image-background {
    animation: none !important;
    transform: scale(1) !important;
    filter: none !important;
  }
}
/* ==========================================================================
   UNIVERSAL INSET BORDER STYLE (.is-style-inset-border)
   Works on Columns, Column, Groups, Stacks, Rows, and Grid Containers
   ========================================================================== */
/* 1. Single Block Target (Applied directly to a Column, Group, Stack, or Card) */
.is-style-inset-border {
  box-shadow: inset 0 0 0 1px var(--wp--custom--color--divider, color-mix(in srgb, currentColor 18%, transparent));
  transition: box-shadow var(--wp--custom--animation--duration--short, 250ms) ease-in-out;
}
.is-style-inset-border:hover {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);
}

/* 2. Parent Container Target (Applied to a parent Columns or Group Grid to style all direct children) */
:is(.wp-block-columns, .wp-block-group).is-style-inset-border > :is(.wp-block-column, .wp-block-group) {
  box-shadow: inset 0 0 0 1px var(--wp--custom--color--divider, color-mix(in srgb, currentColor 18%, transparent));
  transition: box-shadow var(--wp--custom--animation--duration--short, 250ms) ease-in-out;
}
:is(.wp-block-columns, .wp-block-group).is-style-inset-border > :is(.wp-block-column, .wp-block-group):hover {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);
}

/*--------------------------------------------------------------
# Custom: List Dividers (Lists, Latest Posts, Latest Comments)
--------------------------------------------------------------*/
ul.is-style-list-dividers,
ol.is-style-list-dividers,
.is-style-list-dividers ul,
.is-style-list-dividers ol,
.wp-block-list.is-style-list-dividers {
  list-style: none;
  padding-left: 0;
}

.is-style-list-dividers:not(.wp-block-latest-posts__list.is-grid) li:not(:first-child),
.is-style-list-dividers:not(.wp-block-latest-posts__list.is-grid) li > ul {
  list-style: none;
  border-top: solid 1px var(--wp--custom--color--divider, color-mix(in srgb, currentColor 20%, transparent));
  padding-top: var(--wp--preset--spacing--30);
  margin-top: var(--wp--preset--spacing--30);
}

.is-style-list-dividers:not(.has-background) li ul li {
  padding-left: var(--wp--preset--spacing--40);
}

/*--------------------------------------------------------------
# LUMINA Heading & Text Block Styles (Global Space)
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Custom: Heading w/Separator (Native Block & Flex Edition)
--------------------------------------------------------------*/
.is-style-separator::after {
  content: "";
  display: block;
  width: calc(10 * var(--wp--style--block-gap));
  height: 3px;
  margin-top: var(--wp--preset--spacing--20);
  margin-bottom: var(--wp--preset--spacing--30);
  background-color: var(--wp--custom--color--heading--separator, var(--wp--preset--color--tertiary));
}
.is-style-separator.has-text-align-center::after {
  margin-left: auto;
  margin-right: auto;
}
.is-style-separator.has-text-align-right::after {
  margin-left: auto;
  margin-right: 0;
}
.is-style-separator:is(.is-layout-flex, [class*=is-layout-flex]) {
  position: relative;
  padding-bottom: calc(3px + var(--wp--preset--spacing--30));
}
.is-style-separator:is(.is-layout-flex, [class*=is-layout-flex])::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(10 * var(--wp--style--block-gap)) !important;
  height: 3px !important;
  margin: 0 !important;
  background-color: var(--wp--custom--color--heading--separator, var(--wp--preset--color--tertiary)) !important;
  background-image: none !important;
}
.is-style-separator:is(.is-layout-flex, [class*=is-layout-flex]).has-text-align-center::after {
  left: 50%;
  transform: translateX(-50%);
}
.is-style-separator:is(.is-layout-flex, [class*=is-layout-flex]).has-text-align-right::after {
  left: auto;
  right: 0;
}
.has-background .is-style-separator::after, .is-style-separator.has-background::after {
  background-color: color-mix(in srgb, var(--wp--custom--color--heading--separator, var(--wp--preset--color--tertiary)) 85%, currentColor) !important;
  background-image: none !important;
}

.is-style-separator-2::after {
  content: "";
  display: block;
  width: calc(10 * var(--wp--style--block-gap));
  height: 3px;
  margin-top: var(--wp--preset--spacing--20);
  margin-bottom: var(--wp--preset--spacing--30);
  background-color: var(--wp--custom--color--heading--separator2, var(--wp--preset--color--secondary));
}
.is-style-separator-2.has-text-align-center::after {
  margin-left: auto;
  margin-right: auto;
}
.is-style-separator-2.has-text-align-right::after {
  margin-left: auto;
  margin-right: 0;
}
.is-style-separator-2:is(.is-layout-flex, [class*=is-layout-flex]) {
  position: relative;
  padding-bottom: calc(3px + var(--wp--preset--spacing--30));
}
.is-style-separator-2:is(.is-layout-flex, [class*=is-layout-flex])::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(10 * var(--wp--style--block-gap)) !important;
  height: 3px !important;
  margin: 0 !important;
  background-color: var(--wp--custom--color--heading--separator2, var(--wp--preset--color--secondary)) !important;
  background-image: none !important;
}
.is-style-separator-2:is(.is-layout-flex, [class*=is-layout-flex]).has-text-align-center::after {
  left: 50%;
  transform: translateX(-50%);
}
.is-style-separator-2:is(.is-layout-flex, [class*=is-layout-flex]).has-text-align-right::after {
  left: auto;
  right: 0;
}
.has-background .is-style-separator-2::after, .is-style-separator-2.has-background::after {
  background-color: color-mix(in srgb, var(--wp--custom--color--heading--separator2, var(--wp--preset--color--secondary)) 85%, currentColor) !important;
  background-image: none !important;
}

.is-style-separator-3::after {
  content: "";
  display: block;
  width: calc(10 * var(--wp--style--block-gap));
  height: 3px;
  margin-top: var(--wp--preset--spacing--20);
  margin-bottom: var(--wp--preset--spacing--30);
  background-color: var(--wp--custom--color--heading--separator3, var(--wp--preset--color--neutral));
}
.is-style-separator-3.has-text-align-center::after {
  margin-left: auto;
  margin-right: auto;
}
.is-style-separator-3.has-text-align-right::after {
  margin-left: auto;
  margin-right: 0;
}
.is-style-separator-3:is(.is-layout-flex, [class*=is-layout-flex]) {
  position: relative;
  padding-bottom: calc(3px + var(--wp--preset--spacing--30));
}
.is-style-separator-3:is(.is-layout-flex, [class*=is-layout-flex])::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(10 * var(--wp--style--block-gap)) !important;
  height: 3px !important;
  margin: 0 !important;
  background-color: var(--wp--custom--color--heading--separator3, var(--wp--preset--color--neutral)) !important;
  background-image: none !important;
}
.is-style-separator-3:is(.is-layout-flex, [class*=is-layout-flex]).has-text-align-center::after {
  left: 50%;
  transform: translateX(-50%);
}
.is-style-separator-3:is(.is-layout-flex, [class*=is-layout-flex]).has-text-align-right::after {
  left: auto;
  right: 0;
}
.has-background .is-style-separator-3::after, .is-style-separator-3.has-background::after {
  background-color: color-mix(in srgb, var(--wp--custom--color--heading--separator3, var(--wp--preset--color--neutral)) 85%, currentColor) !important;
  background-image: none !important;
}

/*--------------------------------------------------------------
## Custom Heading Link Animation (Responsive & Mobile-Locked)
--------------------------------------------------------------*/
.wp-block-heading a {
  display: inline;
  text-decoration: none !important;
  padding-bottom: var(--wp--custom--link--offset, 0.1em);
  background-image: linear-gradient(var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)), var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size var(--wp--custom--animation--duration--medium, 500ms) var(--wp--custom--animation--timing-function, cubic-bezier(0.4, 0, 0.2, 1));
}
@media (max-width: 768px) {
  .wp-block-heading a {
    transition: background-size 0s 10s;
  }
}
.wp-block-heading a:hover, .wp-block-heading a:active {
  opacity: 1;
}
.wp-block-heading a:hover, .wp-block-heading a:active, .wp-block-heading a:focus {
  background-size: 100% 2px;
}
@media (max-width: 768px) {
  .wp-block-heading a:hover, .wp-block-heading a:active, .wp-block-heading a:focus {
    transition: background-size 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
  }
}

.wp-block-site-title a {
  display: inline;
  text-decoration: none !important;
  padding-bottom: var(--wp--custom--link--offset, 0.1em);
  background-image: linear-gradient(var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)), var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size var(--wp--custom--animation--duration--medium, 500ms) var(--wp--custom--animation--timing-function, cubic-bezier(0.4, 0, 0.2, 1));
}
@media (max-width: 768px) {
  .wp-block-site-title a {
    transition: background-size 0s 10s;
  }
}
.wp-block-site-title a:hover, .wp-block-site-title a:active {
  opacity: 1;
}
.wp-block-site-title a:hover, .wp-block-site-title a:active, .wp-block-site-title a:focus {
  background-size: 100% 2px;
}
@media (max-width: 768px) {
  .wp-block-site-title a:hover, .wp-block-site-title a:active, .wp-block-site-title a:focus {
    transition: background-size 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
  }
}

.wp-block-post-title a {
  display: inline;
  text-decoration: none !important;
  padding-bottom: var(--wp--custom--link--offset, 0.1em);
  background-image: linear-gradient(var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)), var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size var(--wp--custom--animation--duration--medium, 500ms) var(--wp--custom--animation--timing-function, cubic-bezier(0.4, 0, 0.2, 1));
}
@media (max-width: 768px) {
  .wp-block-post-title a {
    transition: background-size 0s 10s;
  }
}
.wp-block-post-title a:hover, .wp-block-post-title a:active {
  opacity: 1;
}
.wp-block-post-title a:hover, .wp-block-post-title a:active, .wp-block-post-title a:focus {
  background-size: 100% 2px;
}
@media (max-width: 768px) {
  .wp-block-post-title a:hover, .wp-block-post-title a:active, .wp-block-post-title a:focus {
    transition: background-size 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
  }
}

.wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title {
  display: inline;
  text-decoration: none !important;
  padding-bottom: var(--wp--custom--link--offset, 0.1em);
  background-image: linear-gradient(var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)), var(--wp--custom--color--heading--separator, var(--wp--preset--color--primary)));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size var(--wp--custom--animation--duration--medium, 500ms) var(--wp--custom--animation--timing-function, cubic-bezier(0.4, 0, 0.2, 1));
}
@media (max-width: 768px) {
  .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title {
    transition: background-size 0s 10s;
  }
}
.wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:hover, .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:active {
  opacity: 1;
}
.wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:hover, .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:active, .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:focus {
  background-size: 100% 2px;
}
@media (max-width: 768px) {
  .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:hover, .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:active, .wp-block-latest-posts.is-grid .wp-block-latest-posts__post-title:focus {
    transition: background-size 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s;
  }
}

/**
 * Breakpoints & Media Queries
 */
/* =========================================================================
	Content Layout Structural Stabilization
   ========================================================================= */
.is-style-sidebar-right .wp-block-columns.main-content > .wp-block-column.content-column,
body[class*=-sidebar-right] .wp-block-columns.main-content > .wp-block-column.content-column,
body[class*=-sidebar-right] .wp-block-columns.main-content > .wp-block-column.content-column {
  order: 1;
}
.is-style-sidebar-right .wp-block-columns.main-content > .wp-block-column.sidebar-column, .is-style-sidebar-right .wp-block-columns.main-content > .wp-block-column:not(.content-column),
body[class*=-sidebar-right] .wp-block-columns.main-content > .wp-block-column.sidebar-column,
body[class*=-sidebar-right] .wp-block-columns.main-content > .wp-block-column:not(.content-column),
body[class*=-sidebar-right] .wp-block-columns.main-content > .wp-block-column.sidebar-column,
body[class*=-sidebar-right] .wp-block-columns.main-content > .wp-block-column:not(.content-column) {
  order: 2;
}

@media only screen and (max-width: 782px) {
  .is-style-sidebar-left .wp-block-columns.main-content,
  body[class*=-sidebar-left] .wp-block-columns.main-content {
    display: flex;
    flex-direction: column;
  }
  .is-style-sidebar-left .wp-block-columns.main-content > .wp-block-column.content-column,
  body[class*=-sidebar-left] .wp-block-columns.main-content > .wp-block-column.content-column {
    order: 1;
  }
  .is-style-sidebar-left .wp-block-columns.main-content > .wp-block-column.sidebar-column, .is-style-sidebar-left .wp-block-columns.main-content > .wp-block-column:not(.content-column),
  body[class*=-sidebar-left] .wp-block-columns.main-content > .wp-block-column.sidebar-column,
  body[class*=-sidebar-left] .wp-block-columns.main-content > .wp-block-column:not(.content-column) {
    order: 2;
  }
}

/*------------------------------------------------------------------------------
# Icons
#
# Note: Needed for multiple blocks so always load
------------------------------------------------------------------------------*/
/* 1. Standard Icon Links: Keeps theme link color & underline intact */
[class*=is-style-icon-] a {
  outline: none;
  /* Do NOT set color or text-decoration here so normal text links stay styled */
}

/* 2. Pseudo-Elements (The Icons): Prevents underline bleed into the icon box */
[class*=is-style-icon-] a::before,
[class*=is-style-icon-] a::after {
  text-decoration: none !important;
  display: inline-flex;
}

/* 3. Hover State for Standard Icon Links */
[class*=is-style-icon-] a:hover,
[class*=is-style-icon-] a:active {
  opacity: var(--wp--custom--color--link--hover-opacity, 0.7);
}

/* ========================================================================== */
/* 4. Standalone Icon Buttons (-no-text variants ONLY) */
/* ========================================================================== */
[class*=-no-text] a {
  color: inherit;
  text-decoration: none !important;
  /* Keeps standalone UI controls (like scroll-down buttons) unstyled */
}

/* 5. No icons for post meta */
.is-style-no-icon::before {
  content: none !important;
}

/*-----------------------------------------------------------------------------
# Color Compatibility with other themes
#
# This is so that user's content created with other themes will look OK before
# they update it for the Lumina theme.
-----------------------------------------------------------------------------*/
/* Any theme */
:where(.has-background) {
  background-color: var(--wp--preset--color--neutral);
  color: var(--wp--preset--color--contrast);
}
:where(.has-background) .wp-block-heading,
:where(.has-background) h1, :where(.has-background) h2, :where(.has-background) h3, :where(.has-background) h4, :where(.has-background) h5, :where(.has-background) h6 {
  color: inherit;
}

/* Twenty Twenty-Four (TT4) */
:where(.has-accent-background-color) {
  background-color: var(--wp--preset--color--very-light-gray);
}

:where(.has-accent-2-background-color) {
  background-color: var(--wp--preset--color--light-gray);
}

:where(.has-accent-3-background-color) {
  background-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--off-white);
}

:where(.has-accent-4-background-color, .has-base-2-background-color) {
  background-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--off-white);
}
:where(.has-accent-4-background-color, .has-base-2-background-color) .wp-element-button {
  background-color: var(--wp--preset--color--secondary);
}

/* Twenty Twenty-Five (TT5) */
:where(.is-style-section-1, .is-style-section-2) {
  background-color: var(--wp--preset--color--neutral);
}

:where(.is-style-section-3, .is-style-section-5) {
  background-color: var(--wp--preset--color--dark);
  color: var(--wp--preset--color--off-white);
}

:where(.has-accent-background-color,
.has-accent-3-background-color,
.has-accent-4-background-color,
.has-base-2-background-color,
.is-style-section-3,
.is-style-section-5) :is(.wp-block-heading,
h1, h2, h3, h4, h5, h6) {
  color: inherit;
}

@media print {
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
/*-----------------------------------------------------------------------------
# Utilities: Admin Bar Overflow Fixes
-----------------------------------------------------------------------------*/
/* FIX WordPress Admin bar on phones not sticking to the top */
@media only screen and (max-width: 600px) {
  body > #wpadminbar {
    position: fixed;
  }
}
/* Prevent Admin Bar Wrapping */
#wpadminbar .quicklinks {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
}
#wpadminbar .quicklinks #wp-admin-bar-root-default,
#wpadminbar .quicklinks #wp-admin-bar-top-secondary {
  display: flex !important;
  flex-wrap: nowrap !important;
}

#wpadminbar * {
  white-space: nowrap !important;
}

/*-----------------------------------------------------------------------------
# Dashicons: Universal Base Overrides (Front-End & Editor Canvas)
-----------------------------------------------------------------------------*/
/* Specificity (0,2,0): Outranks Core's 20px defaults everywhere */
:is(.dashicons, .dashicons-before, [class*=dashicons-])[class] {
  display: inherit;
  width: auto;
  height: auto;
  font-family: inherit;
  font-size: inherit;
  font-weight: var(--wp--custom--typography--font-weight--normal, 300);
  line-height: inherit;
  text-align: inherit;
  text-transform: inherit;
}
:is(.dashicons, .dashicons-before, [class*=dashicons-])[class].has-text-align-center {
  text-align: center;
}
:is(.dashicons, .dashicons-before, [class*=dashicons-])[class]::before {
  display: inline-block;
  width: auto;
  height: auto;
  font-family: dashicons;
  font-size: 1em;
  line-height: 1;
  font-weight: inherit;
  vertical-align: text-bottom;
}

/* Micro-spacing for inline dashicons preceding text */
[class*=dashicons-]:not(.dashicons-after)::before {
  margin-right: var(--wp--preset--spacing--20, 0.5em);
}

/*-----------------------------------------------------------------------------
# Style Jetpack Contact Form buttons to match ours
-----------------------------------------------------------------------------*/
.wp-block-jetpack-contact-form :is(.wp-block-button, .wp-block-jetpack-button) .wp-block-button__link {
  padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

/*-----------------------------------------------------------------------------
  COLORS: DEFAULT TEXT, HEADING, AND LINK COLORS
 -----------------------------------------------------------------------------*/
/*
 * Default contrast (text) color based on background color.
 *
 * To override, set these in theme.json:
 *		--wp--custom--color--contrast--{color}
 */
:where(:root) .has-primary-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-primary-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-secondary-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-secondary-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-tertiary-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-tertiary-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-contrast-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-highlight-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-highlight-accent-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-dark-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-dark-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-tertiary-dark-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-tertiary-dark-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-not-quite-black-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-almost-black-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-black-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6) {
  /* Inherit heading color */
  color: inherit;
}

:where(:root) .has-primary-subtle-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-secondary-subtle-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-tertiary-subtle-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-primary-subtle-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-secondary-subtle-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-tertiary-subtle-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-neutral-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-neutral-alt-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6), :where(:root) .has-light-gray-background-color :is(.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.wp-block-site-title,
.wp-block-site-tagline,
h1, h2, h3, h4, h5, h6) {
  /* Set heading to custom color heading text */
  color: var(--wp--custom--color--heading--text, var(--wp--preset--color--dark));
}

:where(:root) .has-primary-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-secondary-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-tertiary-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Inherit link color */
  color: inherit;
}

:where(:root) .has-primary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-secondary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-tertiary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Lighten link color on dark backgrounds */
  filter: var(--wp--custom--color--highlight-alt--lighten, brightness(1.5) saturate(0.8));
}

:where(:root) .has-highlight-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-highlight-accent-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Set link color to dark text */
  color: var(--wp--preset--color--almost-black);
}

:where(:root) .has-highlight-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-highlight-accent-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Set link color to light text */
  color: var(--wp--preset--color--off-white);
}

:where(:root) .has-dark-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-dark-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-tertiary-dark-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-tertiary-dark-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-not-quite-black-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-almost-black-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-black-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Set link color to highlight for dark backgrounds */
  color: var(--wp--preset--color--highlight);
}

:where(:root) .has-primary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-secondary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-tertiary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Set link color to highlight-alt for light backgrounds */
  color: var(--wp--preset--color--highlight-alt);
}

:where(:root) .wp-block-post-content .has-primary-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-secondary-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-tertiary-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-highlight-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-highlight-accent-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-highlight-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-highlight-accent-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Underline links */
  text-decoration-line: underline;
}

:where(:root) .has-primary-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-secondary-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-tertiary-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-highlight-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-highlight-accent-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-highlight-alt-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .has-highlight-accent-alt-background-color:is(.site-footer, .footer-info) p :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Special underline links in footers */
  text-decoration-style: var(--wp--custom--link--special-style, dotted);
  text-decoration-line: underline;
}

:where(:root) .wp-block-post-content .has-primary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-secondary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-tertiary-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-dark-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-dark-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-tertiary-dark-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-tertiary-dark-alt-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-not-quite-black-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-almost-black-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))), :where(:root) .wp-block-post-content .has-black-background-color :where(a:not(.wp-element-button, .wp-block-social-link-anchor, .wp-block-navigation-item__content, :has(img), :has(svg))) {
  /* Underline links */
  text-decoration-line: none;
}

/* ==========================================================================
   10 GLOBAL COLORS: Set colors regardless of light or dark mode
========================================================================== */
:where(:root) .has-primary-background-color {
  color: var(--wp--custom--color--contrast--primary, var(--wp--preset--color--off-white));
}

:where(:root) .has-primary-alt-background-color {
  color: var(--wp--custom--color--contrast--primary-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-secondary-background-color {
  color: var(--wp--custom--color--contrast--secondary, var(--wp--preset--color--off-white));
}

:where(:root) .has-secondary-alt-background-color {
  color: var(--wp--custom--color--contrast--secondary-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-tertiary-background-color {
  color: var(--wp--custom--color--contrast--tertiary, var(--wp--preset--color--off-white));
}

:where(:root) .has-tertiary-alt-background-color {
  color: var(--wp--custom--color--contrast--tertiary-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-highlight-background-color {
  color: var(--wp--custom--color--contrast--highlight, var(--wp--preset--color--almost-black));
}

:where(:root) .has-highlight-accent-background-color {
  color: var(--wp--custom--color--contrast--highlight-accent, var(--wp--preset--color--almost-black));
}

:where(:root) .has-highlight-alt-background-color {
  color: var(--wp--custom--color--contrast--highlight-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-highlight-accent-alt-background-color {
  color: var(--wp--custom--color--contrast--highlight-accent-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-white-background-color {
  color: var(--wp--custom--color--contrast--white, var(--wp--preset--color--almost-black));
}

:where(:root) .has-off-white-background-color {
  color: var(--wp--custom--color--contrast--off-white, var(--wp--preset--color--almost-black));
}

:where(:root) .has-dark-background-color {
  color: var(--wp--custom--color--contrast--dark, var(--wp--preset--color--off-white));
}

:where(:root) .has-dark-alt-background-color {
  color: var(--wp--custom--color--contrast--dark-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-tertiary-dark-background-color {
  color: var(--wp--custom--color--contrast--tertiary-dark, var(--wp--preset--color--off-white));
}

:where(:root) .has-tertiary-dark-alt-background-color {
  color: var(--wp--custom--color--contrast--tertiary-dark-alt, var(--wp--preset--color--off-white));
}

:where(:root) .has-not-quite-black-background-color {
  color: var(--wp--custom--color--contrast--not-quite-black, var(--wp--preset--color--off-white));
}

:where(:root) .has-almost-black-background-color {
  color: var(--wp--custom--color--contrast--almost-black, var(--wp--preset--color--off-white));
}

:where(:root) .has-black-background-color {
  color: var(--wp--custom--color--contrast--black, var(--wp--preset--color--off-white));
}

/* ==========================================================================
   20 GRADIENT COLORS: Set colors on gradient backgrounds
========================================================================== */
:root :where([style*="--wp--preset--gradient--"]:not([style*="--wp--preset--gradient--gray)"], .has-gray-gradient-background, [style*="--wp--preset--gradient--primary-subtle)"], .has-primary-subtle-gradient-background, [style*="--wp--preset--gradient--secondary-subtle)"], .has-secondary-subtle-gradient-background, [style*="--wp--preset--gradient--tertiary-subtle)"], .has-tertiary-subtle-gradient-background),
[class*=-gradient-background]:not([style*="--wp--preset--gradient--gray)"], .has-gray-gradient-background, [style*="--wp--preset--gradient--primary-subtle)"], .has-primary-subtle-gradient-background, [style*="--wp--preset--gradient--secondary-subtle)"], .has-secondary-subtle-gradient-background, [style*="--wp--preset--gradient--tertiary-subtle)"], .has-tertiary-subtle-gradient-background)) {
  color: var(--wp--preset--color--off-white);
}

:root :where([style*="--wp--preset--gradient--primary)"], .has-primary-gradient-background) {
  color: var(--wp--custom--color--contrast--primary, var(--wp--preset--color--off-white));
}

:root :where([style*="--wp--preset--gradient--secondary)"], .has-secondary-gradient-background) {
  color: var(--wp--custom--color--contrast--secondary, var(--wp--preset--color--off-white));
}

:root :where([style*="--wp--preset--gradient--tertiary)"], .has-tertiary-gradient-background) {
  color: var(--wp--custom--color--contrast--tertiary, var(--wp--preset--color--off-white));
}

:root :where([style*="--wp--preset--gradient--highlight)"], .has-highlight-gradient-background) {
  color: var(--wp--custom--color--contrast--highlight, var(--wp--preset--color--off-white));
}

:root :where([style*="--wp--preset--gradient--highlight-accent)"], .has-highlight-accent-gradient-background) {
  color: var(--wp--custom--color--contrast--highlight-accent, var(--wp--preset--color--off-white));
}

:root :where([style*="--wp--preset--gradient--"], [class*=-gradient-background]) :where(a:not(.wp-element-button)) {
  color: inherit;
}
:root :where([style*="--wp--preset--gradient--"], [class*=-gradient-background]) :where(:is(.wp-block-heading, .wp-block-post-title, .wp-block-query-title, .wp-block-site-title, .wp-block-site-tagline, h1, h2, h3, h4, h5, h6)) {
  color: inherit;
}
