/*
Theme Name: Fortix Theme TT5
Theme URI: 
Author: Isone Olivier
Author URI: 
Description: A theme made for Fortix, based on WPTT5
Requires at least: 7.1
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: twentytwentyfive
Text Domain: fortix-theme-tt5
Tags: 
*/



/* Universal Box-Sizing to prevent layout overflow & support WCAG Reflow AA compliance */
*, *::before, *::after {
    box-sizing: border-box !important;
}


@media (min-width: 1023px){
    .hide-desktop{
        display: none !important;
    }
}
@media (min-width: 600px) and (max-width: 1022px){
    .hide-tablet {
        display: none !important;
    }
}
@media (max-width: 599px){
    .hide-mobile{
        display: none !important;
    }
}

/* —————————————————————————————————————
    HEADER & MEGA MENU STYLES
——————————————————————————————–––——————— */

header {
    z-index: 99999 !important;
}

.mega-menu > li {
    margin: 0.75em 0 !important;
}

.sec-mm > .con-mm {
    width: 100% !important;
    max-width: var(--wp--style--global--wide-size, 117.8rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0px;
    border: 1px solid var(--wp--preset--color--border-default, #E5E7EB) ;
    border-radius: 1rem;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
    gap: 0px !important;
    overflow: hidden;
}

.sec-mm > .con-mm > div {
    padding: 2rem;
    border-right: 1px solid var(--wp--preset--color--border-default, #E5E7EB);
    margin-right: -1px;
    gap: 1rem;
}

.mm-link-lists {
    column-gap: 1rem !important;
    row-gap: 4rem !important;
}

.mm-link-list-wrap {
    gap: 0.75rem !important;
    padding: 0 !important;
}

.mm-link-list {
    gap: 0.25rem !important;
}


@media (max-width: 1023px) {
    
    .mega-menu > li {
    margin: 0px !important;
    padding: 2rem 0 !important;
    border-bottom: 1px solid var(--wp--preset--color--border-default, #E5E7EB) !important;
    }
    
    
    .mega-sub-menu {
        padding: 0 !important;
    }
    
    .sec-mm {
        padding: 0 !important;
    }
    
    .sec-mm > .con-mm {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #ffffff;
        box-shadow: none !important;
        gap: 1rem !important;
      overflow: visible !important;
    }
    
    .con-mm > div {
      gap: 1rem !important;
      border-right: none !important;
      margin-right: 0px !important;
      padding-left: 0px !important;
      padding-right: 0px !important;
    }
    
    .con-mm > div:not(:last-child) {
    border-bottom: 1px solid var(--wp--preset--color--border-default, #E5E7EB) !important;
    }
    
}


.mm-card-block:hover {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.mm-card-title {
    font-weight: 500 !important;
    margin: 0 !important;
}

.mm-card-cta {
    gap: 0.5em !important;
}


.mm-link-block {
    padding: 1rem;
    border-radius: 0.75rem;
    gap: 0.75rem !important;
    display: flex;
    align-items: center;
    color: var(--wp--preset--color--text-subtle, #70707A);
    font-size: var(--wp--preset--font-size--x-small, 0.75rem) !important;
}

.mm-link-graphic {
    color: inherit !important;
    font-size: inherit !important;
    align-self: flex-start !important;
    
}

.mm-link-block:hover {
    background-color: var(--wp--preset--color--bg-subtle-brand, #F7F7FF) !important;
}


div.mm-link-block > div > p {
    margin: 0 0 0 0 !important;
}

.mm-link-block > div > p:first-of-type {
    font-weight: 500 !important;
    color: var(--wp--preset--color--text-strong, #000000);
}





/* —————————————————————————————————————
LAYOUT STYLES
——————————————————————————————–––——————— */

/* Strip margin and padding from main layout wrappers */
html, 
body,
.wp-site-blocks,
main,
.is-root-container,
.entry-content,
.wp-block-post-content {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* Zero out margin-block-start for structural sections, footers, and template parts */
footer,
section,
.sec,
.sec-m,
.wp-block-group.sec,
.wp-block-template-part,
.wp-block-template-part-footer {
    margin-block-start: 0 ;
    margin-top: 0 ;
    margin-block-end: 0 ;
    margin-bottom: 0 ;
}




/* Base Section Styling */
.sec,
.wp-block-post-content > .sec,
.wp-site-blocks > .sec,
.is-root-container > .sec,
.block-editor-block-list__layout > .sec,
.editor-styles-wrapper .sec {
    max-width: 100% !important;
    width: 100% !important;
    display: block !important;
    padding-top: var(--wp--style--root--padding-top, clamp(2rem, 8vw, 4rem)) !important;
    padding-bottom: var(--wp--style--root--padding-bottom, clamp(2rem, 8vw, 4rem)) !important;
}

.sec-edge,
.wp-block-post-content > .sec-edge,
.wp-site-blocks > .sec-edge,
.is-root-container > .sec-edge,
.block-editor-block-list__layout > .sec-edge,
.editor-styles-wrapper .sec-edge {
    max-width: 100% !important;
    width: 100% !important;
    display: block !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.sec-hero,
.wp-block-post-content > .sec-hero,
.wp-site-blocks > .sec-hero,
.is-root-container > .sec-hero,
.block-editor-block-list__layout > .sec-hero,
.editor-styles-wrapper .sec-hero {
    max-width: 100% !important;
    width: 100% !important;
    display: block !important;
    padding-top: var(--wp--preset--spacing--xxl, clamp(6rem, 12vw, 9rem)) !important;
    padding-bottom: var(--wp--preset--spacing--xxl, clamp(6rem, 12vw, 9rem)) !important;
}

/* Standard Container (80rem max-width) */
.con,
.sec > .con,
.sec .con,
.sec-edge > .con,
.sec-edge .con {
    width: 100% !important;
    max-width: var(--wp--style--global--content-size, 80rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--wp--style--root--padding-left, clamp(1rem, 5vw, 3rem)) !important;
    padding-right: var(--wp--style--root--padding-right, clamp(1rem, 5vw, 3rem)) !important;
}

/* Wide Container (95rem max-width) */
.con-wide,
.sec > .con-wide,
.sec .con-wide,
.sec-edge > .con-wide,
.sec-edge .con-wide {
    width: 100% !important;
    max-width: var(--wp--style--global--wide-size, 117.8rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--wp--style--root--padding-left, clamp(1rem, 5vw, 3rem)) !important;
    padding-right: var(--wp--style--root--padding-right, clamp(1rem, 5vw, 3rem)) !important;
}

/* Full-Width / Edge-to-Edge Container */
.con-edge,
.sec > .con-edge,
.sec .con-edge,
.sec-edge > .con-edge,
.sec-edge .con-edge {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 0 !important;
}

/* Padded Column inside Edge-to-Edge Container */
.col-pad.con-edge > .col-pad,
.con-edge .col-pad {
    display: flex !important;
    width: 100% !important;
    max-width: var(--wp--style--global--wide-size, 117.8rem)!important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 0 !important;
}

/* Flex-Center Col */
.con > .col-cent,
.con .col-cent {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important; 
    align-items: center !important;
    text-align: center !important;
}

.col-pad > .col-pad-inner,
.col-pad .col-pad-inner {
    width: 100% !important;
    max-width: calc(var(--wp--style--global--wide-size, 117.8rem) / 2)  !important;
    padding-top: var(--wp--style--root--padding-top, clamp(2rem, 8vw, 4rem)) !important;
    padding-bottom: var(--wp--style--root--padding-bottom, clamp(2rem, 8vw, 4rem)) !important;
    padding-left: var(--wp--style--root--padding-left, clamp(1rem, 5vw, 3rem)) !important;
    padding-right: var(--wp--style--root--padding-right, clamp(1rem, 5vw, 3rem)) !important;
    
}

/* Padding on Image Col */

.con > .col-img-r,
.con .col-img-r {
    padding-left: var(--wp--style--root--padding-left, clamp(1rem, 5vw, 3rem)) !important;
    max-width: calc( 50% - (1.5rem / 2) ) !important;
}

@media (max-width: 781px) {
    .con > .col-img-l,
    .con .col-img-l,
    .con > .col-img-r,
    .con .col-img-r {
        padding-left: 0px !important;
        padding-right: 0px !important;
        max-width: none !important;
    }
    
    .con > .col-img-l > figure > img,
.con .col-img-l > figure > img,
.con > .col-img-r > figure > img,
.con .col-img-r > figure > img {
        aspect-ratio: 16/9 !important;
    }
}

/* Section Feature Images */
.ft-img,
img.ft-img
{
    border-radius: 1rem !important; 
    overflow: hidden !important;
    border: 1px solid #00000030 !important;
}

/* Default Gutter for the Columns Block -  Targets the Columns block layout to match your 12-column design grid precisely */
:where(.wp-block-columns.is-layout-flex) {
    gap: var(--wp--style--root--block-gap, 1.5rem) !important; /* Force compliance across Gutenberg blocks */
}


/* Edge-to-Edge Columns: Eliminate column gap */
:where(.wp-block-columns.is-layout-flex).con-edge,
.wp-block-columns.con-edge,
.wp-block-columns.co-edge {
    gap: 0 !important;
}

/* ==========================================================================
   Enforce Even Column Counts on Grid Blocks (.even-grid)
   ========================================================================== */

/* 1. Mobile (default): 1 Columns */
.wp-block-group.is-layout-grid.even-grid,
.editor-styles-wrapper .wp-block-group.is-layout-grid.even-grid,
.wp-block-query .even-grid{
    display: grid !important;
    grid-template-columns: repeat(1, 1fr) !important;
}

/* 2. Tablet / Small Desktop (600px - 1023px): 2 Columns */
@media (min-width: 600px) {
    .wp-block-group.is-layout-grid.even-grid,
    .editor-styles-wrapper .wp-block-group.is-layout-grid.even-grid,
.wp-block-query .even-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}


/* 3. Standard Desktop (1024px and up): 4 Columns */
@media (min-width: 1024px) {
    .wp-block-group.is-layout-grid.even-grid,
    .editor-styles-wrapper .wp-block-group.is-layout-grid.even-grid,
.wp-block-query .even-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
    
}

/* ==========================================================================
   CONTENT 
   ========================================================================== */

p, 
.wp-block-heading,
.wp-block-paragraph {
    text-wrap: pretty;
    text-wrap-mode: wrap;
    text-wrap-style: pretty;
}

.is-style-text-annotation + .wp-block-heading ,
.is-style-text-annotation + .wp-block-paragraph,
.is-style-text-annotation + p {
    margin-top: 0 !important;
    margin-block-start: 0 !important;
}

.wp-block-post-content > .wp-block-heading {
    margin-top: 2em !important;
}

.is-style-text-display,
h1.is-style-text-display,
h2.is-style-text-display,
h3.is-style-text-display,
p.is-style-text-display {
    font-size: clamp(3.31rem, 8vw, 7.35rem) !important; /* ~97px mobile to ~118px desktop */
    font-weight: 600 !important;
    line-height: 1.04 !important;
    letter-spacing: -0.035em !important;
    margin-top: 2em;
    margin-bottom: 1.04rem !important;
    max-width: 1080px !important;
}

.editor-styles-wrapper .is-style-title-lg,
.wp-block-heading.is-style-title-lg,
.wp-block-paragraph.is-style-title-lg,
.is-style-title-lg {
    font-size: clamp(2.75rem, 5vw, 4.75rem) !important;
    font-weight: 600 !important;
    line-height: 1.04 !important;
    letter-spacing: -0.035em !important;
    margin-top: 2em;
    margin-bottom: 1.04rem !important;
    max-width: 960px !important;
}

.editor-styles-wrapper .is-style-title,
.wp-block-heading.is-style-title,
.wp-block-paragraph.is-style-title,
.is-style-title {
    font-size: clamp(2.22rem, 3.5vw, 3.31rem) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    margin-top: 0px ;
    margin-bottom: 1.2rem !important;
    max-width: min(800px, 75ch) !important;
}

.editor-styles-wrapper .is-style-text-subtitle,
.wp-block-heading.is-style-text-subtitle,
.wp-block-paragraph.is-style-text-subtitle,
.editor-styles-wrapper .is-style-subtitle,
.wp-block-heading.is-style-subtitle,
.wp-block-paragraph.is-style-subtitle,
.is-style-text-subtitle,
.is-style-subtitle {
    font-size: clamp(1.49rem, 2.5vw, 2.22rem) !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
    margin-top: 0px ;
    margin-bottom: 1.3rem !important;
    max-width: min(1080px, 75ch) !important;
}

.editor-styles-wrapper .is-style-text-annotation,
.wp-block-heading.is-style-text-annotation,
.wp-block-paragraph.is-style-text-annotation,
.editor-styles-wrapper .is-style-annotation,
.wp-block-heading.is-style-annotation,
.wp-block-paragraph.is-style-annotation,
.is-style-text-annotation,
.is-style-annotation {
    display: block !important;
    font-size: var(--wp--preset--font-size--x-small, 0.75rem) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0px !important;
    margin-bottom: 0.25rem !important;
    width: 100% !important;
}

   .has-large-font-size,
   .has-x-large-font-size,
   .has-xx-large-font-size {
    text-wrap: pretty;
    text-wrap-mode: wrap;
    text-wrap-style: pretty;
}

.has-large-font-size {
    max-width: min(720px, 75ch) !important;
}
.has-x-large-font-size {
    max-width: min(720px, 75ch) !important;
}

.has-xx-large-font-size {
    max-width: min(800px, 55ch) !important;
}


/* Applies ONLY to Single Blog Posts (Excludes Pages, Headers, Footers) */
body.single-post .wp-block-post-content .wp-block-image img,
body.single-post .wp-block-post-content .wp-block-post-featured-image img {
    border: 1px solid #00000030;
    border-radius: 0.75rem;
}

/* Blockquote */
.wp-block-quote,
blockquote.wp-block-quote {
    border-left: 3px solid #e5e7eb !important;
}

.wp-block-quote.dark,
blockquote.wp-block-quote.dark {
    border-left: 3px solid #ffffff30 !important;
}

/* lists */



ul.even,
ol.even {
    column-count: 2;
    column-gap: 1em; 
}

ul.even > li ,
ol.even > li {
    break-inside: avoid;
    -webkit-column-break-inside: avoid; /* Safari / older WebKit support */
}

ul.is-style-styled-light,
ul.styled-light,
ul.is-style-styled-dark,
ul.styled-dark,
ul.is-style-checkmark-list,
ul.checkmark-list,
ul.is-style-checkmark-list-dark,
ul.checkmark-list-dark {
    list-style: none !important;
    padding-inline-start: 0 !important;
}

ul.is-style-styled-light > li,
ul.styled-light > li,
ul.is-style-styled-dark > li,
ul.styled-dark > li {
    padding-left: 1rem !important;
    margin-bottom: 0.75rem !important;
}

ul.is-style-styled-light > li,
ul.styled-light > li {
	border-left: 3px solid #e5e7eb !important;
}

ul.is-style-styled-dark > li,
ul.styled-dark > li {
	border-left: 3px solid #ffffff30 !important;
}

ul.is-style-checkmark-list > li,
ul.checkmark-list > li,
ul.is-style-checkmark-list-dark > li,
ul.checkmark-list-dark > li{
    position: relative;
    padding-left: 1.75rem !important;
    margin-bottom: 0.5rem !important;
}

ul.is-style-checkmark-list > li::before,
ul.checkmark-list > li::before,
ul.is-style-checkmark-list-dark > li::before,
ul.checkmark-list-dark > li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.15em; /* Aligns with font baseline */
    width: 1.25rem;
    height: 1.25rem;
    /* Material Icon SVG (Checkmark) */
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='m382-240 518-518-57-57-461 461-213-213-57 57 270 270Z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='m382-240 518-518-57-57-461 461-213-213-57 57 270 270Z'/%3E%3C/svg%3E");
    
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

ul.is-style-checkmark-list > li::before,
ul.checkmark-list > li::before {    
    background-color: var(--wp--preset--color--interactive-brand, #2115FC);
}

ul.is-style-checkmark-list-dark > li::before,
ul.checkmark-list-dark > li::before {    
    background-color: #ffffff !important; 
}


/* Accordions */

.wp-block-accordion {
    border-top: 1px solid var(--wp--preset--color--border-default, #E7E7E9);
}

.wp-block-accordion-item {
    border-bottom: 1px solid var(--wp--preset--color--border-default, #E7E7E9);
    margin: 0 !important;
}

.wp-block-accordion-heading {
    font-size: var(--wp--preset--font-size--medium, 1rem) !important;
}

.wp-block-accordion-heading__toggle {
    padding: 2rem 0.5rem;
}

.wp-block-accordion-panel {
    padding: 0.5rem 0.5rem 2rem 0.5rem;
    margin: 0 !important;
}

/* ==========================================================================
   Button Styles
   ========================================================================== */

/* Shared Base Transition & Formatting */
.wp-block-button__link,
.wp-block-button.is-style-fill .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-soft .wp-block-button__link,
.wp-block-button.is-style-ghost .wp-block-button__link {
    padding: 0.75rem 1.5rem !important; /* Enforces 12px vertical, 24px horizontal padding */
    transition: all 0.2s ease-in-out !important;
    font-weight: 500 !important;
    box-sizing: border-box !important;
    align-items: center;
    justify-content: center;
    text-align: center;
    display: flex;
    gap: 0.25em !important;
}

/* Render Icon by typing icon name (e.g. 'arrow_forward') with inline code */

.wp-block-button__link code {
    font-family: 'Material Icons' !important;
    font-style: normal;
    font-size: 1.25em;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    background: transparent; /* Removes the default inline code background box */
    padding: 0;
    vertical-align: middle;
} 

/* RESTYLED DEFAULT 'FILL' VARIANT (Primary Indigo-Blue) */
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link,
.is-style-fill .wp-block-button__link {
    background-color: var(--wp--preset--color--interactive-brand, #2115FC) !important;
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    border: 1px solid var(--wp--preset--color--interactive-brand, #2115FC) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
    text-decoration: none !important;

}

.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover,
.is-style-fill .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--interactive-hover-brand, #180EC2) !important;
    border-color: var(--wp--preset--color--interactive-hover-brand, #180EC2) !important;
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.06);
}

/* SECONDARY OUTLINE BUTTON VARIANT (.is-style-outline) */
.is-style-outline .wp-block-button__link {
    background-color: #FFFFFF !important;
    color: var(--wp--preset--color--text-strong, #000000) !important;
    border: 1px solid var(--wp--preset--color--border-default, #E5E7EB) !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
    text-decoration: none !important;

}

.is-style-outline .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--neutral-100, #F3F4F6) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.06);
}


/* TERTIARY 'SOFT' VARIANT (.is-style-soft) */
.is-style-soft .wp-block-button__link {
    background-color: rgba(238, 242, 255, 0.75) !important; 
    color: var(--wp--preset--color--interactive-brand, #2115FC) !important;
    border: 2px solid transparent !important;
    text-decoration: none !important;

}

.is-style-soft .wp-block-button__link:hover {
    background-color: rgba(238, 242, 255, 1) !important; 
    color: var(--wp--preset--color--interactive-hover-brand, #180EC2) !important;
    border-color: transparent !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
}
 
/* TERTIARY 'SOFT ON DARK' VARIANT (.is-style-soft) */
.is-style-soft-dark .wp-block-button__link {
    background-color: rgba(238, 242, 255, 0.15) !important; 
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    border: 2px solid transparent !important;
    text-decoration: none !important;

}

.is-style-soft-dark .wp-block-button__link:hover {
    background-color: rgba(238, 242, 255, 0.30) !important; 
    border-color: transparent !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);
}

/* 'GHOST ON LIGHT' VARIANT (.is-style-ghost)  */
.is-style-ghost .wp-block-button__link {
    background-color: transparent !important;
    color: var(--wp--preset--color--text-strong, #000000) !important;
    border: 1px solid transparent !important;
    text-decoration: underline !important;
    text-decoration-color: var(--wp--preset--color--neutral-200, #E5E7EB) !important;
    text-decoration-thickness: 3px !important;
    text-underline-offset: 4px;
    text-decoration-skip-ink: auto;
}

.is-style-ghost .wp-block-button__link:hover {
    background-color: rgba(10, 10, 10, 0.06) !important; /* Subtle neutral hover tint */
    border-color: transparent !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.02);
}

/* 'GHOST ON DARK' VARIANT (.is-style-ghost-dark)  */
.is-style-ghost-dark .wp-block-button__link {
    background-color: transparent !important;
    color: var(--wp--preset--color--text-on-dark, #ffffff) !important;
    border: 1px solid transparent !important;
    text-decoration: underline !important;
    text-decoration-color: var(--wp--preset--color--neutral-800, #333339) !important;
    text-decoration-thickness: 3px !important;
    text-underline-offset: 4px;
    text-decoration-skip-ink: auto;
}

.is-style-ghost-dark .wp-block-button__link:hover {
    background-color: rgba(255, 255, 255, 0.03) !important; /* Subtle white hover tint */
    border-color: transparent !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.02);
}

/* full width on mobile */
.btns-wrap,
.wp-block-buttons {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
}

.btns-wrap > p   {
    margin-left: 0.75rem ;
    
}

@media (max-width: 599px){
    .btns-wrap,
    .wp-block-buttons {
        flex-direction: column !important;
        align-items: stretch !important;
        text-align: center;
        flex-wrap: wrap !important;
    }
    
    .wp-block-buttons.btns-no-wrap {
    flex-direction: row !important;
    }
    
    .wp-block-buttons.btns-no-wrap.btn-grow > * {
    flex-grow: 1 !important;
    }
}

/* —————————————————————————————————————
   Group Block Card Variations
——————————————————————————————–––——————— */


/* Shared Base Properties */
.wp-block-group.is-style-card-light,
.wp-block-group.is-style-card-dark,
.wp-block-group.is-style-card-brand,
.wp-block-group.is-style-card-glass-light,
.wp-block-group.is-style-card-glass-dark,
.wp-block-group.is-style-callout-neutral,
.wp-block-group.is-style-callout-brand {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 1rem;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.card-sm,
.wp-block-group.card-sm {
    padding: var(--wp--preset--spacing--sm, clamp(1rem, 2vw, 1.5rem)) !important;    
    border-radius: 0.75rem !important;
}

/* Card (Light) */
.wp-block-group.is-style-card-light {
    background-color: var(--wp--preset--color--bg-card, #FFFFFF) !important;
    color: var(--wp--preset--color--text-default, #000000) !important;
    border: 1px solid var(--wp--preset--color--border-default, #E7E7E9) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.02) !important;
}

/* Card (Dark) */
.wp-block-group.is-style-card-dark {
    background-color: var(--wp--preset--color--bg-card-dark, #25252A) !important;
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    border: 1px solid var(--wp--preset--color--border-default-dark, #333339) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
}

/* Card (Brand) */
.wp-block-group.is-style-card-brand {
    background: var(--wp--preset--color--brand-500, #362BFF) !important;
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    border: 1px solid var(--wp--preset--color--brand-700, #0E03CD) !important; 
    
}

/* Card (Glass Light) */
.wp-block-group.is-style-card-glass-light {
    background-color: rgba(255, 255, 255, 0.15) !important; /* Light frosted glass tint */
    backdrop-filter: blur(12px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(180%) !important;
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2) !important;
}

/* Card (Glass Dark) */
.wp-block-group.is-style-card-glass-dark {
    background-color: rgba(23, 23, 26, 0.75) !important;
    backdrop-filter: blur(12px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(180%) !important;
    color: var(--wp--preset--color--text-on-dark, #FFFFFF) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
}

/* Callout (Soft) */
.wp-block-group.is-style-callout-brand {
    background-color: rgba(238, 242, 255, 0.75) !important; 
    
}

/* Callout (Neutral) */
.wp-block-group.is-style-callout-neutral {
    background-color: var(--wp--preset--color--neutral-50, #F8F8F9) !important; 
    
}

/* ---Post Cards---  */

.ft-title, 
h2.ft-title {
    font-size: clamp(1rem, 2vw, 2.22rem) !important;
}

/* Hides the outer container if the nested query loop displays "No Results" */
.hide-if-empty-query:has(.wp-block-query-no-results):not([class*="block-editor-"]) {
    display: none !important;
}

/* Target the column, look for an internal cover block, and hide it if there is NO image background inside */
.wp-block-post-template .dynamic-image-column:has(.wp-block-cover):not(:has(img.wp-block-cover__image-background)):not([class*="block-editor-"]) {
    display: none !important;
}



/* —————————————————————————————————————
OTHER STYLES
——————————————————————————————–––——————— */
.gfield_required {
    color: inherit !important;
}

.sub-form > .gform_wrapper > form > .gform_body > .gform_fields {
    row-gap: 1rem !important;
}


@media (max-width: 600px){
    .wp-block-group.sub-form-footer {
        grid-template-columns: 1fr!important; 
    }
    
}

/* Splide */

.logo-marq .splide-slide,
.logo-marq > .splide-slide,
.logo-marq .splide__slide .wp-block-image,
.logo-marq > .splide__slide > .wp-block-image {
    flex:1;
    align-items: center;
    align-content: center;
    text-align: center;
}

@media (min-width: 600px) {

.quote-marq {
    /* Define default fade width (adjust percentage or rem as desired) */
    --marquee-fade-width: clamp(2rem, 8vw, 6rem);

    /* Dynamic alpha mask for seamless gradient fades on both left and right edges */
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        black var(--marquee-fade-width),
        black calc(100% - var(--marquee-fade-width)),
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        black var(--marquee-fade-width),
        black calc(100% - var(--marquee-fade-width)),
        transparent 100%
    );
}
}

/* ==========================================================================
    Responsive Grid Overlay
   ========================================================================== */
   
/* To show on backend: Edit Page > Options > Pannels > Display Grid. To show on frontend: paste [ ?grid=true ] at end of URL */

/* 1) Outer Wrapper Setup */
.global-grid-overlay,
.editor-grid-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    z-index: 999999 !important; /* Sits over everything visual */
    pointer-events: none !important; /* CRITICAL: Permits full block editing/clicking through guides */
} 

/* Make grid follow canvas scrolling in Gutenberg */
.editor-grid-overlay {
    position: absolute !important;
    height: 100% !important;
}

/* Centered Layout Container */
.global-grid-overlay .grid-wrap,
.editor-grid-overlay .grid-wrap {
    height: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    display: grid !important;
    box-sizing: border-box !important;
    
    /* Inherits your exact site layout & margins from theme.json */
    max-width: var(--wp--style--global--content-size, 80rem) !important;
    padding-left: var(--wp--style--root--padding-left, clamp(1rem, 5vw, 3rem)) !important;
    padding-right: var(--wp--style--root--padding-right, clamp(1rem, 5vw, 3rem)) !important;
    column-gap: var(--wp--style--root--block-gap, 1.5rem) !important; 
}

/* Column Guidelines — Using Indigo-Blue #600 (#2115FC) */
.global-grid-overlay .grid-col,
.editor-grid-overlay .grid-col {
    height: 100% !important;
    background-color: rgba(33, 21, 252, 0.015) !important;
    border-left: 1px dashed rgba(33, 21, 252, 0.12) !important;
    border-right: 1px dashed rgba(33, 21, 252, 0.12) !important;
}

/* Responsive Wide Boundary Overlay Guides */

.global-grid-overlay .grid-wide-bounds {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
    
    /* Dynamically captures your wideSize of 117.8rem directly from theme.json */
    max-width: var(--wp--style--global--wide-size, 117.8rem) !important;
    
    /* Thicker dashed guidelines in Indigo-Blue to denote layout boundaries */
    border-left: 2px dashed rgba(33, 21, 252, 0.45) !important;
    border-right: 2px dashed rgba(33, 21, 252, 0.45) !important;
}

/* Hide wide bounds on viewports smaller than standard desktop layout break */
@media (max-width: 1200px) {
    .global-grid-overlay .grid-wide-bounds {
        display: none !important;
    }
}

/* Desktop: 12 Columns (1024px and up) */
@media (min-width: 1024px) {
    .global-grid-overlay .grid-wrap,
    .editor-grid-overlay .grid-wrap {
        grid-template-columns: repeat(12, 1fr) !important;
    }
    .global-grid-overlay .grid-col,
    .editor-grid-overlay .grid-col {
        display: block !important;
    }
}

/* Tablet: 8 Columns (600px to 1023px) */
@media (min-width: 600px) and (max-width: 1023px) {
    .global-grid-overlay .grid-wrap,
    .editor-grid-overlay .grid-wrap {
        grid-template-columns: repeat(8, 1fr) !important;
    }
    /* Safely drop 9 through 12 to maintain structure */
    .global-grid-overlay .grid-col:nth-child(n+9),
    .editor-grid-overlay .grid-col:nth-child(n+9) {
        display: none !important;
    }
    
}

/* Mobile: 4 Columns (under 600px) */
@media (max-width: 599px) {
    .global-grid-overlay .grid-wrap,
    .editor-grid-overlay .grid-wrap {
        grid-template-columns: repeat(4, 1fr) !important;
    }
    /* Safely drop 5 through 12 */
    .global-grid-overlay .grid-col:nth-child(n+5),
    .editor-grid-overlay .grid-col:nth-child(n+5) {
        display: none !important;
    }
    
    
}
