/* core/styles.css */
/**
 * Central CSS file for One Page Website
 * Contains global styles using CSS variables from admin_colors.php
 */

:root {
  /* These variables will be set dynamically by PHP */
  --site-bg-color: #ffffff;
  --width1-bg-color: #f8f9fa;
  --text-color: #333333;
  --accent-color: #ffa500;
  --menu-bg-color: #343a40;
  --menu-text-color: #ffffff;
  --button-color: #6c757d;
  --button-text-color: #ffffff;
  --button-bg: #0d6efd;
  --footer-bg-color: #343a40;
  --footer-text-color: #ffffff;
  
  /* Button styling variables - change these to affect all buttons */
  --button-border-radius: 4px; /* Change to 0 for square buttons or higher for more rounded */
  --button-padding: 8px 16px;
  --button-border: none;
  --button-transition: all 0.3s ease;
}

/* Global button styles */
.btn,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  padding: var(--button-padding);
  border-radius: var(--button-border-radius);
  border: var(--button-border);
  background-color: var(--button-color);
  color: var(--button-text-color);
  cursor: pointer;
  transition: var(--button-transition);
}

/* Force all buttons to use the color variables from admin_colors.php (ID:3) */
.btn {
  padding: var(--button-padding);
  border-radius: var(--button-border-radius);
  border: var(--button-border);
  background-color: var(--button-color) !important;
  color: var(--button-text-color) !important;
  cursor: pointer;
  transition: var(--button-transition);
}

/* Primary button styles */
.btn-primary,
.primary-button,
.preview-primary-button {
  background-color: var(--button-color) !important;
  color: var(--button-text-color) !important;
}

/* Button hover effects */
.btn:hover,
button:hover,
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover {
  opacity: 0.9 !important;
  background-color: var(--button-hover-color, var(--button-color)) !important;
}

/* Admin button styles - using button-color */
.admin-button,
.preview-admin-btn,
.btn-primary,
.btn-secondary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info {
  background-color: var(--button-color) !important;
  color: var(--button-text-color) !important;
}

/* Background colors */
body {
  background-color: var(--site-bg-color);
  color: var(--text-color);
}

.width1-bg {
  background-color: var(--width1-bg-color);
}

/* Menu styles */
.navbar, 
.menu {
  background-color: var(--menu-bg-color);
}

.navbar a, 
.menu a {
  color: var(--menu-text-color);
}

/* Footer styles */
footer {
  background-color: var(--footer-bg-color);
  color: var(--footer-text-color);
}

/* Section and column background image styles */
.section-with-bg-image {
  position: relative;
  background-size: cover;
  background-position: center;
  /* Let text color inherit from column/section so admin-selected colors apply consistently */
  color: inherit;
}

.section-with-bg-image::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent overlay */
  z-index: 1;
}

.section-with-bg-image > .width1-container {
  position: relative;
  z-index: 2; /* Place content above the overlay */
}

/* Column with background image styles */
.col-with-bg-image {
  position: relative;
  padding: 20px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

.col-with-bg-image::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent overlay */
  z-index: 1;
}

.col-with-bg-image > * {
  position: relative;
  z-index: 2; /* Place content above the overlay */
}

/* Make images responsive and fit container width */
img {
  max-width: 100%;
  display: block;
}

/* Target specific content areas */
.section-content img,
.block-content img,
.content-block img {
  max-width: 100%;
  width: auto;
  margin-bottom: 15px;
}

/* Specific class for responsive images */
.responsive-img {
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  display: block;
  margin-bottom: 15px;
}

/* Column content container */
.column-content {
  width: 100%;
}

/* core/image-fix.css */
/**
 * Consolidated image fixes
 * Uses a single rule set for all image types to reduce redundancy
 */

/* Common image styles for all contexts */
img,
.section-content img,
.col img,
.block-content img,
.content-block img,
[style*="background-color: #"] img,
[style*="background: #"] img {
    max-width: 100% !important;
    width: auto !important; /* Changed from 100% to auto to prevent stretching */
    display: block !important;
    margin: 0 auto !important;
    z-index: 10 !important; /* Ensure images are above other elements */
    visibility: visible !important;
    opacity: 1 !important;
}

/* Force image display */
img[src*="sections"],
img[src*="uploads"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Respect original/inline heights. Only default to auto when height is not explicitly set */
img:not([height]):not([style*="height"]) {
    height: auto !important;
}

/* Ensure no inline width attributes on images can override */
img[width], img[style*="width:"] {
    width: auto !important;
    max-width: 100% !important;
}

/* Image container styles - only apply flex to containers with images */
.content-block img,
.block-content img,
.col img,
.section-content img {
    overflow: visible !important; /* Changed from hidden to visible */
    position: relative !important; /* Added position relative */
    z-index: 10 !important; /* Ensure images are above other elements */
}

/* Image-specific containers */
.image-container {
    width: 100% !important;
    height: auto !important;
    overflow: visible !important; /* Changed from hidden to visible */
    position: relative !important;
    display: block !important; /* Changed from flex to block */
    z-index: 10 !important; /* Ensure containers are above other elements */
}

/* For background images via a dedicated helper class only */
.bg-image {
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    overflow: visible !important;
    z-index: 5 !important;
}

/* Fix for section background images */
.section-with-bg-image {
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Fix for column background images */
.col-with-bg-image {
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

/* For responsive images */
@media (max-width: 768px) {
    img,
    .section-content img,
    .col img,
    .block-content img,
    .content-block img {
        width: auto !important; /* Keep width responsive without forcing fixed width */
        max-width: 100% !important; /* Prevent overflow */
    }
}

/* Debug styles to highlight images */
.debug-mode img {
    border: 3px solid red !important;
}

/* Left-align images inside rendered content areas (overrides earlier centering) */
.section-content img,
.block-content img,
.content-block img {
    margin: 0 0 1em 0 !important; /* no auto-centering */
    float: none !important;
}

/* core/width-fix.css */
/**
 * Fix for width issues
 * Forces the width1-container to respect max-width setting
 */

/* Force width1-container to respect max-width */
html body .width1-container {
    width: 100% !important;
    max-width: var(--max-width) !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* Force width2-container to respect width setting */
html body .width2-container {
    width: var(--content-width) !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

/* Force navbar-wrapper to center content */
html body .navbar-wrapper {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    background-color: transparent !important;
}

/* Apply background color only to width1-container in navbar */
html body .navbar-wrapper .width1-container {
    background-color: var(--menu-bg-color) !important;
}

/* Fix for columns container */
html body .columns-container {
    max-width: var(--max-width) !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-wrap: wrap !important; /* Allow wrapping for responsive behavior */
}

/* Fix for section content */
html body .section-content {
    max-width: var(--max-width) !important;
    box-sizing: border-box !important;
}

/* SIMPLIFIED RESPONSIVE FIXES */

/* Make sure columns respect their width */
.columns-container .col {
    box-sizing: border-box !important;
    flex-shrink: 0 !important; /* Prevent columns from shrinking */
    flex-grow: 0 !important;   /* Prevent columns from growing */
}

/* Tablet view (768px - 992px) */
@media screen and (max-width: 992px) {
    .columns-container {
        display: block !important;
        width: 100% !important;
    }
    
    .columns-container .col {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 20px !important;
        padding: 10px !important;
    }
}

/* Debug styles to visualize column widths */
.debug-columns .col {
    border: 1px dashed rgba(255, 0, 0, 0.5) !important;
    position: relative !important;
}

.debug-columns .col::before {
    content: attr(style);
    position: absolute;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 2px 5px;
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    z-index: 1000;
}

/* Mobile: neutralize max-width constraints for full-bleed layout */
@media (max-width: 768px) {
    html body .width1-container {
        max-width: none !important;
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    html body .width2-container {
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    html body .columns-container {
        max-width: none !important;
        width: 100% !important;
    }
    html body .section-content {
        max-width: none !important;
    }
}

/* core/menu-override.css */
/**
 * Menu Override CSS (scoped to desktop only)
 * This file contains styles that override any conflicting styles from other CSS files
 * It uses high specificity selectors and !important flags to ensure these styles take precedence
 */
@media (min-width: 769px) {

/* Layout 2: Logo right, Menu right - Override all conflicting styles */
body #layout-right-left {
    border-radius: 0 !important;
    margin-bottom: 0 !important;
}

body #layout-right-left .menu-flex-container {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 70px !important;
    padding: 0 !important;
    justify-content: flex-end !important;
    flex-direction: row !important;
}

body #layout-right-left .menu-container {
    display: flex !important;
    padding: 0 !important;
    width: auto !important;
    order: unset !important;
    margin: 0 !important;
}

body #layout-right-left .logo-container {
    display: flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin-left: 20px !important;
    width: auto !important;
    order: unset !important;
}

/* Logo sizing overrides (navbar only) */
.navbar-wrapper .logo-container img {
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    border: none !important;
}

/* Menu items styling overrides */
body #layout-right-left .menu-container ul {
    display: flex !important;
    flex-direction: row !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body #layout-right-left .menu-container ul li {
    margin-right: var(--menu_item_spacing, 20px) !important;
    position: relative !important;
    width: auto !important;
    display: block !important;
}

body #layout-right-left .menu-container ul li a {
    text-decoration: none !important;
    padding: 5px 10px !important;
    transition: all 0.3s ease !important;
    cursor: pointer !important;
    font-size: var(--menu_font_size, 16px) !important;
    color: var(--menu_text_color, #333333) !important;
    display: inline-block !important;
}

.navbar-wrapper #layout-right-right .logo-container img {
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    border: none !important;
}
}

/* core/menu-force-horizontal.css */
/* Clean horizontal menu with layout options - NO SPACES */
.menu-container ul {
    display: table !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    width: auto !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: var(--menu_background_color) !important;
    font-size: 0 !important; /* Remove whitespace */
    letter-spacing: -1px !important; /* Negative letter spacing */
    word-spacing: -1px !important; /* Negative word spacing */
}

.menu-container ul li {
    display: table-cell !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    background-color: var(--menu_background_color) !important;
    font-size: 0 !important; /* Remove whitespace between inline elements */
    vertical-align: top !important; /* Ensure top alignment */
    float: none !important;
    border: 0 !important;
}

/* Override inline styles with minimal !important */
.menu-container ul li[style*="margin-right"],
.menu-container ul li[style*="margin"],
.menu-container ul li[style] {
    margin: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding: 0 !important;
    display: table-cell !important;
}

.menu-container ul li a {
    display: block !important;
    padding: 8px 16px !important;
    font-size: var(--menu_font_size) !important; /* Reset font size */
    color: var(--menu_text_color) !important;
    background-color: var(--menu_background_color) !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    letter-spacing: normal !important; /* Reset letter spacing */
    word-spacing: normal !important; /* Reset word spacing */
    border-radius: 0 !important; /* Remove rounded corners */
    transition: all 0.05s linear !important; /* Immediate transition */
}

.menu-container ul li a:hover {
    background-color: var(--menu_hover_background) !important;
    color: var(--menu_hover_text_color) !important;
}

.menu-container ul li.active a {
    background-color: var(--menu_active_background) !important;
    color: var(--menu_active_text_color) !important;
}

.menu-container ul li a:focus,
.menu-container ul li a:active {
    background-color: var(--menu_active_background) !important;
    color: var(--menu_active_text_color) !important;
}

/* Logo sizing for all layouts */
.logo-container img {
    max-width: 180px;
    max-height: 50px;
    object-fit: contain;
    width: auto;
    height: auto;
    background-color: transparent;
    border: none;
}

/* Layout 1: Logo left, Menu left */
#layout-left-right .menu-flex-container {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: flex-start;
}

#layout-left-right .logo-container {
    display: flex;
    align-items: center;
    padding: 0;
    margin-right: 20px;
}

/* Layout 2: Logo right, Menu right - Enhanced */
#layout-right-left {
    position: relative !important;
    min-height: 70px !important;
}

#layout-right-left > div {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    align-items: center !important;
    padding-right: 10px !important;
}

#layout-right-left .menu-container {
    padding: 0 !important;
    margin: 0 !important;
}

#layout-right-left .menu-container ul {
    display: table !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
}

#layout-right-left .menu-container ul li {
    display: table-cell !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    font-size: 0 !important;
    vertical-align: top !important;
    float: none !important;
}

#layout-right-left .logo-container {
    margin-left: 20px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
}

/* Mobile responsiveness for Layout 2 */
@media (max-width: 768px) {
    #layout-right-left > div {
        position: static !important;
        transform: none !important;
        display: flex !important;
        flex-direction: column-reverse !important;
        align-items: flex-start !important;
        width: 100% !important;
        padding: 10px !important;
    }
    
    #layout-right-left .menu-container {
        width: 100% !important;
        margin-top: 10px !important;
    }
    
    #layout-right-left .menu-container ul {
        display: block !important;
        width: 100% !important;
    }
    
    #layout-right-left .menu-container ul li {
        display: block !important;
        width: 100% !important;
        margin-bottom: 1px !important;
    }
    
    #layout-right-left .logo-container {
        margin: 0 !important;
    }
}

/* Layout 3: Logo top center, Menu below center */
#layout-center-center .menu-flex-container {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#layout-center-center .logo-container {
    margin-bottom: 10px;
    padding: 0;
    display: flex;
    align-items: center;
}

/* Layout 4: Logo left, Menu center */
#layout-left-center {
    position: relative;
}

#layout-left-center .logo-container {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    padding: 0;
    display: flex;
    align-items: center;
}

#layout-left-center .menu-container {
    width: 100%;
    display: flex;
    justify-content: center;
}

/* Layout 5: Logo left, Menu right */
#layout-right-right .menu-flex-container {
    display: flex;
    align-items: center;
    width: 100%;
    justify-content: flex-end;
}

#layout-right-right .logo-container {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    padding: 0;
    display: flex;
    align-items: center;
}

#layout-right-right .menu-container {
    margin-left: auto;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .menu-container ul {
        display: block;
        width: 100%;
    }
    
    .menu-container ul li {
        display: block;
        width: 100%;
        margin-bottom: 1px;
        float: none;
    }
    
    .menu-container ul li a {
        text-align: left;
    }
    
    #layout-right-left .menu-flex-container,
    #layout-left-center .logo-container,
    #layout-right-right .logo-container {
        position: static;
        transform: none;
        margin: 10px 0;
    }
    
    #layout-right-left .menu-flex-container {
        display: block;
        width: 100%;
    }
}

/* core/text-transparency.css */
/* Text Transparency Styles */
.col-text-transparent,
.col-text-transparent p,
.col-text-transparent h1,
.col-text-transparent h2,
.col-text-transparent h3,
.col-text-transparent h4,
.col-text-transparent h5,
.col-text-transparent h6,
.col-text-transparent div,
.col-text-transparent span,
.col-text-transparent li {
    color: inherit !important;
}

/* Ensure text transparency is applied to all text elements */
[id^="col-"] {
    color: inherit;
}

[id^="col-"] * {
    color: inherit;
}

/* Exception for links and buttons */
[id^="col-"] a:not(.inherit-color),
[id^="col-"] button:not(.inherit-color) {
    color: initial;
}

/* Class to force color inheritance */
.inherit-color {
    color: inherit !important;
}

/* core/section-margin-fix.css */
/**
 * Section Margin Fix
 * Ensures that section margins set in the admin panel are applied
 * inside the column background container
 */

/* Basic styling for columns */
.columns-container {
    font-size: 0; /* Remove any space between inline elements */
    padding-top: var(--section-margin-top, 0px);
    padding-bottom: var(--section-margin-bottom, 0px);
}

.columns-container .col {
    vertical-align: top;
    display: inline-block;
    font-size: initial; /* Reset font size for content */
}

/* Keep minimal padding for text readability */
.block-content {
    padding: 10px;
}

/* Fix for mobile view */
@media (max-width: 768px) {
    .block-content {
        padding: 10px; /* match desktop default to keep columns consistent */
    }
}

/* Remove all section margins completely */
.section {
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

/* If a section starts with a Button widget, remove top gap deterministically */
.section:has(>.columns-container > .col:first-child .button-widget-wrapper:first-child),
.section:has(.width1-container .width2-container .row .col:first-child .button-widget-wrapper:first-child),
.section:has(.button-widget-wrapper) {
    margin-top: 0 !important;
}
.columns-container:has(> .col:first-child .button-widget-wrapper:first-child),
.columns-container:has(.button-widget-wrapper) {
    padding-top: 0 !important;
}

/* Fallback without :has(): if the first element inside the first column is a Button wrapper, zero its top margin */
.columns-container > .col:first-child .button-widget-wrapper:first-child {
    margin-top: 0 !important;
}
.width1-container .width2-container .row .col:first-child .button-widget-wrapper:first-child {
    margin-top: 0 !important;
}

/* Mobile: force top margin to 0 so sections don't overlap or pull under navbar */
@media (max-width: 768px) {
    .columns-container {
        /* Override inline custom property from index.php */
        --section-margin-top: 0px !important;
        /* Hard fallback to ensure no gap */
        padding-top: 0 !important;
    }
}

/* core/column-expansion.css */

/* === Expanded section should fill width1-container (opt-in only) === */
/* 1) Ensure inner width2-container stretches to full width inside width1 when expanded */
.section .width1-container .width2-container.width2-expand {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* 2) Within expanded sections, make columns flex to fill available width inside width1 */
.section .columns-container.expand {
  display: flex !important;
  width: 100% !important;
  gap: var(--column-gutter, 0) !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.section .columns-container.expand .col {
  flex: 1 1 0% !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

/* Default safe padding for edge-to-edge content (can be overridden elsewhere) */
:root { --edge-safe-padding-x: 0; }

/* Expanded columns container uses flex to reach edges */
.columns-container.expand {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--column-gutter, 0) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.width1-container.width1-expand,
.section .width1-container.width1-expand {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  /* Configurable inner safe padding to avoid content hugging browser edge */
  padding-left: var(--edge-safe-padding-x, 0) !important;
  padding-right: var(--edge-safe-padding-x, 0) !important;
}

/* When outer is expanded, force immediate inner to full width to avoid 90% centering */
.width1-container.width1-expand > .width2-container {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}


/* core/column-margins-preserve.css */
/**
 * Column Margins Preserve CSS
 * This file preserves top/bottom margins in all views
 * It should be included after other CSS files to ensure it takes precedence
 */

/* Fix spacing between columns while preserving vertical margins */
.columns-container .col {
    /* Only remove horizontal margins */
    margin-left: 0 !important;
    margin-right: 0 !important;
    /* Only remove horizontal padding */
    padding-left: 0 !important;
    padding-right: 0 !important;
    border: none !important;
    /* Use admin values for vertical margins */
    padding-top: var(--col-padding-top, 0) !important;
    padding-bottom: var(--col-padding-bottom, 0) !important;
    margin-top: var(--col-margin-top, 0) !important;
    margin-bottom: var(--col-margin-bottom, 0) !important;
}

/* Apply section margins from database to first and last rows */
.columns-container {
    /* Get section margins from database */
    margin-top: var(--section-margin-top, 0) !important;
    margin-bottom: var(--section-margin-bottom, 0) !important;
}

/* If section contains a Button widget, remove top margin to avoid a blank line */
.columns-container:has(.button-widget-wrapper) {
    margin-top: 0 !important;
}
/* Fallback without :has(): if the first element inside first column is the Button wrapper */
.columns-container > .col:first-child .button-widget-wrapper:first-child {
    /* Parent still has margin; neutralize via padding-top removal elsewhere and set explicit zero here */
    margin-top: 0 !important;
}

/* Override any padding from section-margin-fix.css */
.columns-container.row {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Add padding to column content but not to the column itself */
.columns-container .col .block-content {
    padding-left: 10px !important; /* match desktop default */
    padding-right: 10px !important; /* match desktop default */
}

/* Tablet view margin preservation */
@media screen and (max-width: 992px) {
    .columns-container .col {
        /* Only remove horizontal margins */
        margin-left: 0 !important;
        margin-right: 0 !important;
        /* Only remove horizontal padding */
        padding-left: 0 !important;
        padding-right: 0 !important;
        /* Use admin values for vertical margins */
        padding-top: var(--col-padding-top, 0) !important;
        padding-bottom: var(--col-padding-bottom, 0) !important;
        margin-top: var(--col-margin-top, 0) !important;
        margin-bottom: var(--col-margin-bottom, 0) !important;
    }
    
    /* Tablet: zero inner block-content padding to avoid double with inline-overrides (content-block 10px) */
    .columns-container .col .block-content {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Apply section margins from database */
    .columns-container {
        margin-top: var(--section-margin-top, 0) !important;
        margin-bottom: var(--section-margin-bottom, 0) !important;
    }
    .columns-container:has(.button-widget-wrapper) { margin-top: 0 !important; }
    .columns-container > .col:first-child .button-widget-wrapper:first-child { margin-top: 0 !important; }
}

/* Mobile view margin preservation */
@media screen and (max-width: 768px) {
    .columns-container .col {
        /* Only remove horizontal margins */
        margin-left: 0 !important;
        margin-right: 0 !important;
        /* Only remove horizontal padding */
        padding-left: 0 !important;
        padding-right: 0 !important;
        /* Use admin values for vertical margins */
        padding-top: var(--col-padding-top, 0) !important;
        padding-bottom: var(--col-padding-bottom, 0) !important;
        margin-top: var(--col-margin-top, 0) !important;
        margin-bottom: var(--col-margin-bottom, 0) !important;
    }
    
    /* Add padding to column content but not to the column itself */
    .columns-container .col .block-content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    /* Apply section margins from database */
    .columns-container {
        margin-top: var(--section-margin-top, 0) !important;
        margin-bottom: var(--section-margin-bottom, 0) !important;
    }
}

/* core/footer-fix.css */
/* Footer styling fixes (generic, page-agnostic) */

/* Ensure the last section itself does not paint a full-width background */
main section:last-of-type { background: transparent; }

/* Inner content spacing for the footer area */
main section:last-of-type .width1-container {
    padding-top: var(--footer-pt, 20px);
    padding-bottom: var(--footer-pb, 20px);
}

/* Ensure footer/copyright text (including dynamic year/symbol) inherits the same color on desktop */
main section:last-of-type .section-content,
main section:last-of-type .section-content * {
    color: inherit !important;
}
main section:last-of-type a,
main section:last-of-type a:link,
main section:last-of-type a:visited,
main section:last-of-type .section-content a,
main section:last-of-type .section-content a:link,
main section:last-of-type .section-content a:visited {
    color: inherit !important;
}

/* Links will inherit; keep hover soft effect only */
main section:last-of-type a:hover { opacity: 0.85; }

/* Normalize heading top margin */
main section:last-of-type h1,
main section:last-of-type h2,
main section:last-of-type h3,
main section:last-of-type h4,
main section:last-of-type h5,
main section:last-of-type h6 {
    margin-top: 0;
}

/* Remove any potential margin from the last section */
main section:last-child { margin-bottom: 0; }

/* Force main content to have no bottom margin */
main { margin-bottom: 0; padding-bottom: 0; }

/* Make lists in footer align nicely */
main section:last-of-type ul { padding-left: 1.1rem; margin: 0.5rem 0; }
main section:last-of-type li { margin: 0.25rem 0; }

/* Ensure columns in footer don't overflow on small devices */
@media (max-width: 640px) {
  main section:last-of-type .columns-container,
  main section:last-of-type .row { display: block; }
  main section:last-of-type .columns-container .col,
  main section:last-of-type .row > .col {
    width: 100%;
    max-width: 100%;
    min-width: 100%;
    flex: 0 0 100%;
  }
}

/* responsive-classes.css */
/* Responsive class-based layout adjustments that respect existing gutters */

/* Base containers */
.section { margin: var(--section-margin-top, 0) 0 var(--section-margin-bottom, 0); padding: 0; }
.columns-container { display: flex; flex-wrap: wrap; gap: var(--column-gutter); align-items: stretch; }
.columns-container .col { display: block; box-sizing: border-box; }

/* If a section contains a Button widget, eliminate the top gap deterministically */
.section:has(.button-widget-wrapper) {
  /* Zero the top custom property so any margin/padding derived from it collapses */
  --section-margin-top: 0 !important;
  margin-top: 0 !important;
}
.columns-container:has(.button-widget-wrapper) {
  padding-top: 0 !important;
}

/* Quill often emits leading empty paragraphs as <p><br></p>. Hide them globally */
.content-block .block-content p:empty { margin: 0 !important; padding: 0 !important; height: 0 !important; }
.content-block .block-content > p:first-child:has(> br:only-child) { display: none !important; }
.content-block .block-content > p:first-child:has(> span:empty) { display: none !important; }

/* Content rhythm */
.section-title { margin: 0 0 .5rem; }
.section-content { margin: 0 0 .2rem; padding: 0 !important; line-height: 1.55 !important; }
.section-content p { margin: 0 0 .2rem !important; line-height: 1.55 !important; }
.section-content p:last-child { margin-bottom: 0; }
.content-block .block-content { line-height: 1.55 !important; }
.content-block .block-content p { margin: 0 0 .2rem !important; line-height: 1.55 !important; }
.content-block .block-content p:last-child { margin-bottom: 0; }
.content-block .block-content ul, .content-block .block-content ol { margin: 0 0 .9rem 1.2rem; padding: 0; }
.content-block .block-content ul:last-child, .content-block .block-content ol:last-child { margin-bottom: 0; }
.content-block .block-content h1,
.content-block .block-content h2,
.content-block .block-content h3,
.content-block .block-content h4,
.content-block .block-content h5,
.content-block .block-content h6 { margin: 0 0 .4rem !important; line-height: 1.25; }
.content-block { margin: 0 0 .4rem !important; padding: 0 !important; }
.content-block:last-child { margin-bottom: 0; }
.widget { display: block; width: 100%; }
.content-block + .widget { margin-top: .75rem; }
/* Images */
img { max-width: 100%; height: auto; display: block; }

/* Parallax overlay readability */
.parallax-overlay { padding: .5rem; background: rgba(0,0,0,.35); color: #fff; }

@media (max-width: 768px) {
  .columns-container { gap: var(--column-gutter-mobile, 12px); }
  .columns-container .col { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
  .section-title { margin-bottom: .75rem; }
  .hide-mobile { display: none !important; }
  .only-mobile { display: block !important; }
}
/* Column padding overrides (all sides) */
.columns-container .col { padding: 0 !important; /* remove inner padding; use gap for gutters */ }

/* Tighten paragraph/list spacing (global override) */
.section-content p,
.content-block .block-content p { margin: 0 0 .2rem !important; line-height: 1.55 !important; }
.section-content p:last-child,
.content-block .block-content p:last-child { margin-bottom: 0 !important; }

/* Collapse truly empty paragraphs (avoid extra gaps) */
.content-block .block-content p:empty { margin: 0 !important; }

/* Targeted mobile fix: allow expanded columns containers to wrap/stack */
@media (max-width: 768px) {
  .section .columns-container.expand,
  .columns-container.expand {
    display: block !important;       /* neutralize desktop flex on mobile */
    flex-wrap: wrap !important;      /* ensure wrapping if flex persists */
  }
  /* Targeted mobile fix: containers should be full browser width */
  .width1-container,
  .section .width1-container,
  .width2-container,
  .section .width2-container,
  .section .columns-container {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
}

/* core/textbox-settings.css */
/* textbox-settings.css — single source of truth for text boxes inside sections/columns */

/* Variables: spacing + textbox padding */
:root {
  --paragraph-gap: 0rem;         /* Enter gap between paragraphs */
  --empty-line-gap: 1rem;        /* Spacer for intentionally blank lines */
  --textbox-padding-x: 0.5rem;  /* Left/Right padding for text boxes */
  --textbox-padding-y: 0.5rem;     /* Top/Bottom padding for text boxes */
}

/* Scope: content areas rendered by the builder */
.section-content,
.content-block,
.content-block .block-content {
  line-height: 1.4 !important; /* baseline */
  padding-left: var(--textbox-padding-x) !important;
  padding-right: var(--textbox-padding-x) !important;
  padding-top: var(--textbox-padding-y) !important;
  padding-bottom: var(--textbox-padding-y) !important;
  /* Prevent overflow when containers are expanded to edges */
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: auto !important;
}

/* Override legacy column paddings to ensure exact inner edge control */
.columns-container .col .content-block,
.columns-container .col .block-content {
  padding-left: var(--textbox-padding-x) !important;
  padding-right: var(--textbox-padding-x) !important;
  padding-top: var(--textbox-padding-y) !important;
  padding-bottom: var(--textbox-padding-y) !important;
}

/* First section overrides: neutralize legacy 25px side padding */
section:first-of-type .columns-container .col .content-block,
.section:first-of-type .columns-container .col .content-block,
.section:first-child .columns-container .col .content-block,
.section:nth-child(1) .columns-container .col .content-block,
section:first-of-type .columns-container .col .block-content,
.section:first-of-type .columns-container .col .block-content,
.section:first-child .columns-container .col .block-content,
.section:nth-child(1) .columns-container .col .block-content {
  padding-left: var(--textbox-padding-x) !important;
  padding-right: var(--textbox-padding-x) !important;
}

/* Paragraphs: no default margins; only add gap between consecutive paragraphs */
.section-content p,
.content-block .block-content p {
  margin: 0 !important;
  line-height: inherit !important;
}
.section-content p + p,
.content-block .block-content p + p { margin-top: var(--paragraph-gap) !important; }

/* Compact Shift+Enter spacing inside a paragraph */
.section-content p br,
.content-block .block-content p br {
  display: block !important;
  height: 0 !important;
  margin-top: 0.3em !important; /* fallback */
}
@supports (margin-top: 1lh) {
  .section-content p br,
  .content-block .block-content p br { margin-top: 0.2lh !important; }
}

/* Headings inside content blocks */
.content-block .block-content h1,
.content-block .block-content h2,
.content-block .block-content h3,
.content-block .block-content h4,
.content-block .block-content h5,
.content-block .block-content h6 {
  margin: 0 0 .5rem !important;
  line-height: 1.25;
}

/* Lists inside content blocks */
.content-block .block-content ul,
.content-block .block-content ol {
  margin: 0 0 .6rem 1.1rem !important;
  padding: 0 !important;
}
.content-block .block-content ul:last-child,
.content-block .block-content ol:last-child { margin-bottom: 0 !important; }

/* Tight edges for first/last child */
.section-content > :first-child,
.content-block .block-content > :first-child { margin-top: 0 !important; }
.section-content > :last-child,
.content-block .block-content > :last-child { margin-bottom: 0 !important; }

/* Intentionally blank paragraphs act as a small spacer instead of disappearing */
.section-content p:empty,
.content-block .block-content p:empty {
  display: block !important;
  height: var(--empty-line-gap) !important;
  margin: 0 !important;
  padding: 0 !important;
}
.section-content p > br:only-child,
.content-block .block-content p > br:only-child {
  display: block !important;
  height: var(--empty-line-gap) !important;
}
@supports(selector(:has(*))) {
  .section-content p:has(> br:only-child),
  .content-block .block-content p:has(> br:only-child),
  .section-content p:has(> span:only-child > br:only-child),
  .content-block .block-content p:has(> span:only-child > br:only-child) {
    display: block !important;
    height: var(--empty-line-gap) !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Text alignment utilities used by the editor */
.ql-align-center { text-align: center; }
.ql-align-right { text-align: right; }
.ql-align-justify { text-align: justify; }

/* Indent utilities (rare) */
.ql-indent-1 { padding-left: 3em; }
.ql-indent-2 { padding-left: 6em; }
.ql-indent-3 { padding-left: 9em; }
.ql-indent-4 { padding-left: 12em; }
.ql-indent-5 { padding-left: 15em; }
.ql-indent-6 { padding-left: 18em; }
.ql-indent-7 { padding-left: 21em; }
.ql-indent-8 { padding-left: 24em; }

/* core/new_reset.css */
/* Core reset/finalizers extracted from inline-overrides.css */

/* Disable shadows globally */
* {
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Remove borders/outlines on columns and content panels */
html body .columns-container .col,
html body .columns-container .col .content-block,
html body .columns-container .col .col-text-wrap {
  border: 0 !important;
  outline: none !important;
}

/* Ensure debug mode cannot draw borders/shadows */
.debug-columns .col { border: 0 !important; box-shadow: none !important; }

/* Neutralize menu/dropdown shadows deterministically */
.navbar-menu .submenu,
.dropdown-menu { box-shadow: none !important; }

/* core/new_layout.css */
/* Section spacing and container paddings extracted from inline-overrides.css */

/* Honor per-section vertical padding from the renderer (desktop and mobile vars) */
html body .section > div > .width1-container {
  padding-top: var(--section-pt) !important;
  padding-bottom: var(--section-pb) !important;
}

/* Footer/copyright coloring and global overflow safety */
:root { --menu-offset-tweak: 0px; }
footer, .site-footer, .footer, .copyright { color: var(--footer-text-color) !important; }
footer a, footer a:link, footer a:visited,
.site-footer a, .site-footer a:link, .site-footer a:visited,
.footer a, .footer a:link, .footer a:visited,
.copyright a, .copyright a:link, .copyright a:visited { color: inherit !important; }
/* Ensure dynamic year span inherits */
.copyright-year, [class*="copyright"] { color: inherit !important; }

footer code,
footer kbd,
footer samp,
footer pre { color: inherit !important; background-color: transparent !important; }

/* Some themes render the footer as the last section instead of a <footer> tag */
main section:last-of-type code,
main section:last-of-type kbd,
main section:last-of-type samp,
main section:last-of-type pre,
.site-footer code,
.site-footer kbd,
.site-footer samp,
.site-footer pre,
.footer code,
.footer kbd,
.footer samp,
.footer pre,
.copyright code,
.copyright kbd,
.copyright samp,
.copyright pre { color: inherit !important; background-color: transparent !important; }

/* Fix for potential overflow issues */
html, body, #scale-wrapper { overflow: visible !important; }

/* Ensure sticky navbar works: ancestors must not clip overflow on mobile/tablet */
@media (max-width: 1024px) {
  html, body { overflow-y: visible !important; }
}

/* Mobile/tablet content offset under sticky navbar and first-section hugging */
@media (max-width: 1024px) {
  /* Do not add extra offset; navbar is sticky and occupies its own flow height */
  main { padding-top: 0 !important; }
  main > .section:first-child { margin-top: 0 !important; }
  .section:first-child { margin-top: 0 !important; }
  main > .section:first-child > div > .width1-container { padding-top: 0 !important; }
  html body .section > div > .width1-container {
    padding-top: var(--section-pt-mobile) !important;
    padding-bottom: var(--section-pb) !important;
  }

/* Section-level rich content (outside columns) inherits parent color */
.section .section-content,
.section .section-content * { color: inherit !important; }

/* Ensure code-like inline elements do not force default accent colors */
.columns-container .col code,
.columns-container .col kbd,
.columns-container .col samp,
.columns-container .col pre,
.section .section-content code,
.section .section-content kbd,
.section .section-content samp,
.section .section-content pre,
footer code,
footer kbd,
footer samp,
footer pre { color: inherit !important; background-color: transparent !important; }
}

/* Mobile finalizer: enforce full padding shorthand to beat zeroing rules */
@media (max-width: 768px) {
  /* Single source of truth: explicit mobile bar height */
  main { padding-top: 0 !important; margin-top: 0 !important; }
  .navbar-wrapper ~ main { padding-top: 0 !important; }
  html body .section > div > .width1-container {
    padding: var(--section-pt-mobile) 0 var(--section-pb) 0 !important;
  }
  /* No additional first-section compensation here; offset is handled in new_navbar.css */
}

/* core/new_navbar.css */
/* Navbar sizing and layout extracted from inline-overrides.css */

/* Global: bottom inset for menu text and button padding */
:root { --menu-bottom-inset: 12px; --menu-btn-pad-y: 8px; --menu-btn-pad-x: 16px; }

/* Default: hide hamburger; explicitly enable only on mobile */
.mobile-menu-toggle { display: none !important; }

/* Sticky navbar: keep menu fixed at the top, across all layouts */
.navbar,
.navbar-wrapper,
.navbar-wrapper > .width1-container { /* anchor the actual bar container too */
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 10000 !important;
  height: var(--menu-bar-height, 70px) !important;
  min-height: var(--menu-bar-height, 70px) !important;
  overflow: hidden !important;
}

/* Layout 2 (center-center): total height includes menu links row */
.navbar-wrapper[data-layout-num="2"],
.navbar-wrapper[data-layout-num="2"] > .width1-container {
  height: calc(var(--menu-bar-height, 70px) + var(--menu-links-height, 44px)) !important;
  min-height: calc(var(--menu-bar-height, 70px) + var(--menu-links-height, 44px)) !important;
  overflow: visible !important;
}

/* Logo stack: make (Powered by + Logo) fit exactly inside the configured bar height */
.navbar-wrapper .menu-layout .logo-container {
  height: var(--menu-bar-height, 70px) !important;
  min-height: var(--menu-bar-height, 70px) !important;
  padding: 0 !important;
  max-width: min(420px, 45vw) !important;
  overflow: hidden !important;
}
.navbar-wrapper .menu-layout .qp-logo-stack {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}
.navbar-wrapper .menu-layout .qp-powered-by {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 14px !important;
}
.navbar-wrapper .menu-layout .qp-logo-stack > a {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.navbar-wrapper .menu-layout .qp-logo-stack > a img {
  height: calc(var(--menu-bar-height, 70px) - 14px) !important;
  max-height: none !important;
  width: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

@media (max-width: 768px) {
  .navbar-wrapper .menu-layout .logo-container {
    max-width: min(320px, 70vw) !important;
  }
}
/* Keep inner flex container locked to bar height too (prevents accidental multi-row growth) */
.navbar-wrapper .menu-flex-container {
  height: var(--menu-bar-height, 70px) !important;
  min-height: var(--menu-bar-height, 70px) !important;
}

/* Layout 2 uses a stacked container height; allow it to grow */
.navbar-wrapper[data-layout-num="2"] .menu-flex-container {
  height: calc(var(--menu-bar-height, 70px) + var(--menu-links-height, 44px)) !important;
  min-height: calc(var(--menu-bar-height, 70px) + var(--menu-links-height, 44px)) !important;
}
/* Offset page content for fixed header */
.navbar-wrapper ~ main { padding-top: var(--menu-sticky-offset, var(--menu-bar-height, 70px)) !important; }
/* Remove any residual spacing under the navbar */
.navbar { padding-bottom: 0 !important; border-bottom: 0 !important; }
.navbar-wrapper { margin-bottom: 0 !important; }

/* Desktop: make menu links at least as tall as the bar without changing bar/background */
@media (min-width: 769px) {
  .navbar-wrapper .menu-layout .qp-logo-stack > a img {
    height: calc(var(--menu-bar-height, 70px) - 14px) !important;
    max-height: none !important;
    width: auto !important;
    object-fit: contain !important;
  }
  /* Hide hamburger on desktop (strong guard) */
  html body .navbar-wrapper .mobile-menu-toggle { display: none !important; }
  /* Normal + hover/focus must share identical box metrics (exclude Layout 2) */
  .navbar-wrapper:not([data-layout-num="2"]) .menu-container ul li > a,
  .navbar-wrapper:not([data-layout-num="2"]) .navbar-menu a,
  .navbar-wrapper:not([data-layout-num="2"]) .menu-container ul li > a:hover,
  .navbar-wrapper:not([data-layout-num="2"]) .menu-container ul li > a:focus,
  .navbar-wrapper:not([data-layout-num="2"]) .navbar-menu a:focus {
    display: flex !important;
    align-items: flex-end !important; /* place text at the bottom of the bar */
    /* Use exact bar height; keep text visually at the bottom via padding-bottom */
    height: var(--menu-bar-height, 70px) !important;
    line-height: 1.2 !important;
    padding-top: 0 !important;
    padding-bottom: var(--menu-bottom-inset, 10px) !important; /* adjustable bottom inset */
    box-sizing: border-box !important;
    margin: 0 !important;
    border: 0 !important;
  }
  /* Make LI and A adopt the bar height so background never exceeds */
  .navbar-wrapper .navbar-menu li { height: var(--menu-bar-height, 70px) !important; line-height: 0 !important; margin: 0 !important; padding: 0 !important; }
  .navbar-wrapper .navbar-menu li > a,
  .navbar-wrapper .navbar-menu li > a:hover,
  .navbar-wrapper .navbar-menu li > a:focus,
  .navbar-wrapper .navbar-menu li > a.active {
    height: 100% !important;
    display: flex !important;
    align-items: flex-end !important;
    background-clip: padding-box !important;
  }
  /* Clip any stray overflow from children */
  .navbar-wrapper,
  .navbar-wrapper > .width1-container,
  .navbar-wrapper:not([data-layout-num="2"]) .menu-flex-container { overflow: hidden !important; }
  /* Remove vertical padding inside the bar so there is no gap under it */
  .navbar-wrapper .menu-flex-container { padding-top: 0 !important; padding-bottom: 0 !important; }

  /* Layout 2 (centered menu): keep bar height from settings, but links stay normal height */
  .navbar-wrapper[data-layout-num="2"] .navbar-menu li { margin: 0 !important; padding: 0 !important; height: auto !important; line-height: normal !important; }
  .navbar-wrapper[data-layout-num="2"] .navbar-menu li > a,
  .navbar-wrapper[data-layout-num="2"] .navbar-menu li > a:hover,
  .navbar-wrapper[data-layout-num="2"] .navbar-menu li > a:focus,
  .navbar-wrapper[data-layout-num="2"] .navbar-menu li > a.active {
    height: auto !important;
    line-height: 1.2 !important;
    display: inline-flex !important;
    align-items: center !important;
    padding: 8px 16px !important;
    box-sizing: border-box !important;
  }
}

/* Default: ensure mobile drawer/backdrop never show on desktop */
.menu-backdrop,
.mobile-drawer { display: none !important; }

@media (min-width: 769px) {
  .menu-backdrop,
  .mobile-drawer { display: none !important; }
}

/* Legacy mobile navbar dropdown behavior (≤768px) */
@media (max-width: 768px) {
  :root { --menu-sticky-offset: var(--menu-bar-height) !important; }
  /* Fixed header on mobile so it stays visible while scrolling */
  .navbar, .navbar-wrapper, .navbar-wrapper > .width1-container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 10000 !important;
    height: var(--menu-bar-height) !important;
    min-height: var(--menu-bar-height) !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  /* Layout 2 uses a stacked desktop header; on mobile we use the drawer, so hide the links row */
  .navbar-wrapper[data-layout-num="2"] #layout-center-center .menu-container {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  .navbar-wrapper[data-layout-num="2"] #layout-center-center .menu-flex-container {
    height: var(--menu-bar-height) !important;
    min-height: var(--menu-bar-height) !important;
  }
  .navbar-wrapper,
  .navbar-wrapper > .width1-container,
  .navbar-wrapper .menu-layout .menu-flex-container { height: var(--menu-bar-height) !important; min-height: var(--menu-bar-height) !important; padding: 0 !important; }

  /* Logo centering and size within the fixed bar height */
  .navbar-wrapper .menu-layout .logo-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: var(--menu-bar-height) !important;
    min-height: var(--menu-bar-height) !important;
    padding: 0 !important;
  }
  .navbar-wrapper .menu-layout .logo-container img {
    max-height: var(--menu-logo-max-height, calc(var(--menu-bar-height) - 8px)) !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }

  /* Zero internal spacing so the bar is exactly 56px */
  html body .navbar,
  html body .navbar-wrapper,
  html body .navbar-wrapper > .width1-container,
  html body .navbar-wrapper .menu-layout .menu-flex-container {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }

  /* Enable hamburger only on mobile when drawer is active */
  .navbar-wrapper[data-mobile-drawer="1"] .mobile-menu-toggle { display: inline-flex !important; color: var(--menu_text_color, #e6e6e6) !important; }
  .navbar-wrapper[data-mobile-drawer="1"] .mobile-menu-toggle:hover,
  .navbar-wrapper[data-mobile-drawer="1"] .mobile-menu-toggle:focus { color: var(--menu_hover_text_color, #ffffff) !important; }
  /* Ensure toggle is actually visible/clickable */
  .navbar-wrapper[data-mobile-drawer="1"] .mobile-menu-toggle {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 120000 !important;
    background: transparent !important;
  }
  /* Always hide desktop UL on mobile; use drawer or dropdown only */
  .navbar-wrapper .menu-layout .menu-container > ul,
  .navbar-wrapper .navbar-menu { display: none !important; }

  /* Reset any inline absolute positioning from desktop layouts */
  .navbar-wrapper .menu-layout .logo-container,
  .navbar-wrapper .menu-layout .menu-container {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }
  /* Anchor absolute-positioned toggle without breaking fixed header */
  .navbar-wrapper { position: fixed !important; width: 100% !important; }
  .navbar-wrapper .menu-flex-container { position: relative !important; }
  /* Backdrop becomes visible only when menu is open */
  html.menu-open .menu-backdrop { display: block !important; }
  .navbar-menu-container { justify-content: flex-start; }
  .navbar-menu { flex-direction: column; display: none; position: absolute; top: 100%; left: 0; width: 100%; background-color: var(--menu-bg-color); padding: 10px 0; z-index: 1000; }
  .navbar-menu.active { display: flex; }
  .navbar-menu li { margin: 0; width: 100%; }
  .navbar-menu a { padding: 10px 15px; display: block; }
  .navbar-menu .submenu { position: static; display: none; box-shadow: none; padding-left: 20px; width: 100%; }
  .navbar-menu .has-submenu.open > .submenu { display: block; }
  .navbar-menu .has-submenu > a::after { content: '+'; float: right; }
  .navbar-menu .has-submenu.open > a::after { content: '-'; }
  .mobile-menu-toggle { display: block; }
}

/* Layout 4: mobile drawer menu (restored from xx_mobile-menu.css) */
@media (max-width: 768px) {
  /* Backdrop behind the drawer */
  .menu-backdrop { position: fixed !important; inset: 0 !important; background: rgba(0,0,0,0.35) !important; opacity: 0 !important; pointer-events: none !important; transition: opacity 200ms ease !important; z-index: 90000 !important; }
  html.menu-open .menu-backdrop { opacity: 1 !important; pointer-events: auto !important; }

  /* Lock scroll when drawer is open */
  html.menu-open, html.menu-open body { overflow: hidden !important; }

  /* When drawer variant is active, hide legacy UL */
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-container > ul,
  .navbar-wrapper[data-mobile-drawer="1"] .navbar-menu { display: none !important; }
  /* Safety: if the menu is open, always hide desktop UL on mobile (prevents overlap) */
  html.menu-open .navbar-wrapper .menu-layout .menu-container > ul,
  html.menu-open .navbar-wrapper .navbar-menu,
  html.menu-open .navbar-wrapper .menu-layout .menu-container > ul li,
  html.menu-open .navbar-wrapper .menu-layout .menu-container > ul li > a { display: none !important; }

  /* Drawer base (sibling element after navbar wrapper) */
  .mobile-drawer { display: none !important; }
  .navbar-wrapper[data-mobile-drawer="1"] ~ .mobile-drawer {
    display: none !important; /* hidden by default; only visible when menu-open */
    position: fixed !important;
    top: 0 !important; /* overlay from very top, above navbar */
    bottom: 0 !important;
    height: 100vh !important;
    width: 68vw !important; /* a bit smaller so content is slightly visible */
    max-width: 300px !important;
    padding: 16px 0 16px 0 !important; /* top/bottom spacing; horizontal padding comes from items */
    margin: 0 !important;
    background: var(--menu-bg-color, #222) !important;
    border-radius: 0 !important; /* no radius */
    z-index: 100000 !important;
    overflow-y: auto !important;
    pointer-events: auto !important;
    transition: transform 200ms ease !important;
  }
  .mobile-drawer-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
  .mobile-drawer-list > li { margin: 0 !important; padding: 0 !important; }
  .mobile-drawer-list > li > a {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    height: 40px !important;
    min-height: 40px !important;
    line-height: 40px !important;
    padding: 0 16px !important;
    color: var(--menu_text_color, #e6e6e6) !important;
    background: transparent !important;
    text-decoration: none !important;
    border-radius: 0 !important; /* no radius */
  }
  .mobile-drawer-list > li > a:hover,
  .mobile-drawer-list > li > a:focus {
    color: var(--menu_hover_text_color, #ffffff) !important;
    background: var(--menu_hover_background, rgba(255,255,255,0.08)) !important;
    text-decoration: none !important;
  }
  .mobile-drawer-list > li > a:active {
    color: var(--menu_hover_text_color, #ffffff) !important;
    background: var(--menu_hover_background, rgba(255,255,255,0.12)) !important;
    text-decoration: none !important;
  }
  .mobile-drawer-list > li > a.active {
    color: var(--menu_active_text_color, #000000) !important;
    background: var(--menu_active_background, #e9e9e9) !important;
  }
  /* No separators for full-width background look */
  .mobile-drawer-list > li { border: 0 !important; }

  /* Position off-canvas by side, slide in when html has .menu-open */
  .navbar-wrapper[data-mobile-drawer="1"][data-drawer-side="left"] ~ .mobile-drawer { left: 0 !important; transform: translateX(-100%) !important; }
  .navbar-wrapper[data-mobile-drawer="1"][data-drawer-side="right"] ~ .mobile-drawer { right: 0 !important; transform: translateX(100%) !important; }
  html.menu-open .navbar-wrapper[data-mobile-drawer="1"][data-drawer-side="left"] ~ .mobile-drawer { display: block !important; transform: translateX(0) !important; }
  html.menu-open .navbar-wrapper[data-mobile-drawer="1"][data-drawer-side="right"] ~ .mobile-drawer { display: block !important; transform: translateX(0) !important; }

  /* Drawer submenu indentation: make child links visibly "tabbed" to the right */
  .mobile-drawer .qp-mobile-submenu { padding-left: 0 !important; }
  .mobile-drawer .qp-mobile-submenu a {
    height: 40px !important;
    min-height: 40px !important;
    display: block !important;
    line-height: 40px !important;
    padding: 0 16px !important;
    padding-left: 44px !important;
    text-decoration: none !important;
  }

  /* Submenu toggle: make it match the 40px row height so text appears centered */
  .mobile-drawer .qp-mobile-submenu-toggle {
    height: 40px !important;
    min-height: 40px !important;
    display: block !important;
    padding: 0 12px !important;
    line-height: 40px !important;
    box-sizing: border-box !important;
  }
  /* Mobile drawer submenu hover/tap feedback (mobile has no true hover; use active/focus too) */
  .mobile-drawer .qp-mobile-submenu a:hover,
  .mobile-drawer .qp-mobile-submenu a:focus,
  .mobile-drawer .qp-mobile-submenu a:focus-visible {
    color: var(--menu_hover_text_color, #ffffff) !important;
    background: var(--menu_hover_background, rgba(255,255,255,0.08)) !important;
    text-decoration: none !important;
  }
  .mobile-drawer .qp-mobile-submenu a:active {
    color: var(--menu_hover_text_color, #ffffff) !important;
    background: var(--menu_hover_background, rgba(255,255,255,0.12)) !important;
    text-decoration: none !important;
  }
  /* Safety: if variant attribute is missing but menu is open, still show the drawer */
  html.menu-open .mobile-drawer {
    display: block !important;
    left: 0 !important;
    right: auto !important;
    transform: translateX(0) !important;
  }

  /* Single offset model: header fixed, content starts below header */
  .navbar-wrapper ~ main { padding-top: var(--menu-bar-height, 70px) !important; margin-top: 0 !important; }
  html, body { margin: 0 !important; padding: 0 !important; }
  .navbar-wrapper ~ main > :first-child { margin-top: 0 !important; }
  /* Ensure the very first content block has no extra top spacing */
  .navbar-wrapper ~ main > section:first-of-type { margin-top: 0 !important; }
  .navbar-wrapper ~ main > section:first-of-type { --section-pt: 0px !important; }
  .navbar-wrapper ~ main > section:first-of-type > div > .width1-container { padding-top: 0 !important; }
  .navbar-wrapper ~ main > section:first-of-type .columns-container { margin-top: 0 !important; }
  /* When sections are grouped in a top-repeats wrapper, also clear the first inner section */
  .navbar-wrapper ~ main > section.top-repeats-group:first-of-type section:first-of-type { margin-top: 0 !important; }
  .navbar-wrapper ~ main > section.top-repeats-group:first-of-type section:first-of-type { --section-pt: 0px !important; }
  .navbar-wrapper ~ main > section.top-repeats-group:first-of-type section:first-of-type > div > .width1-container { padding-top: 0 !important; }
  .navbar-wrapper ~ main > section.top-repeats-group:first-of-type section:first-of-type .columns-container { margin-top: 0 !important; }
}

/* Layout 4: header stacking, toggle placement, and legacy UL hygiene */
@media (max-width: 768px) {
  /* Mobile top bar: logo and hamburger on the same line */
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-flex-container {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: var(--menu-bar-height) !important;
    padding: 0 8px !important;
    position: relative !important;
  }

  /* Mobile logo alignment by layout:
     - layout 3 (left-left): logo far RIGHT
     - layout 4 (right-right): logo far LEFT */
  .navbar-wrapper[data-mobile-drawer="1"][data-layout-num="3"] .menu-layout .menu-flex-container {
    justify-content: flex-end !important;
  }
  .navbar-wrapper[data-mobile-drawer="1"][data-layout-num="4"] .menu-layout .menu-flex-container {
    justify-content: flex-start !important;
  }

  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .logo-container {
    order: 1 !important;
    position: relative !important;
    z-index: 0 !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 auto !important;
    width: auto !important;
  }

  .navbar-wrapper[data-mobile-drawer="1"][data-layout-num="3"] .menu-layout .logo-container {
    margin-left: auto !important;
    margin-right: 0 !important;
  }
  .navbar-wrapper[data-mobile-drawer="1"][data-layout-num="4"] .menu-layout .logo-container {
    margin-left: 0 !important;
    margin-right: auto !important;
  }
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .logo-container img { margin: 0 auto !important; padding: 0 !important; }
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-container { order: 2 !important; }

  /* While drawer is open, hide logo so panel fully overlays and do not reserve space */
  html.menu-open .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .logo-container {
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  /* Hamburger positioning by side */
  .navbar-wrapper[data-mobile-drawer="1"] .mobile-menu-toggle {
    display: inline-flex !important;
    position: absolute !important;
    top: 50% !important;
    z-index: 1200 !important;
    padding: 8px 12px !important;
    line-height: 1 !important;
    background: transparent !important;
    border: none !important;
    font-size: 28px !important; /* bigger hamburger */
    min-width: 44px !important; /* comfortable touch target */
    min-height: 44px !important;
    transform: translateY(-50%) !important;
    transform-origin: center !important;
  }
  .navbar-wrapper[data-mobile-drawer="1"][data-drawer-side="left"]  .mobile-menu-toggle { right: 8px !important; left: auto !important; }
  .navbar-wrapper[data-mobile-drawer="1"][data-drawer-side="right"] .mobile-menu-toggle { left: 8px !important;  right: auto !important; }

  /* Legacy UL hygiene (in case present in markup) */
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-container > ul { margin: 0 !important; padding: 0 16px 16px 16px !important; border: 0 !important; }
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-container > ul > li { margin: 0 0 8px 0 !important; padding: 0 !important; }
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-container > ul > li > a { display: block !important; padding: 10px 12px !important; }
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .menu-container > ul > li:first-child > a { margin-top: 0 !important; padding-top: 10px !important; }
  /* Prevent legacy dropdowns from showing in drawer */
  .navbar-wrapper[data-mobile-drawer="1"] .menu-layout .dropdown-menu { display: none !important; }
}

@media (min-width: 769px) {
  .navbar-wrapper .navbar-menu {
    padding-bottom: 0 !important;
  }
}

@media (min-width: 769px) {
  .navbar-wrapper[data-layout-num="2"] .menu-flex-container {
    height: auto !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    align-items: center !important;
  }
  .navbar-wrapper[data-layout-num="2"] .navbar-menu { display: flex !important; align-items: center !important; }
  .navbar-wrapper[data-layout-num="2"] .navbar-menu li { margin: 0 !important; line-height: normal !important; padding: 0 !important; }
  .navbar-wrapper[data-layout-num="2"] .menu-container ul li > a,
  .navbar-wrapper[data-layout-num="2"] .navbar-menu a,
  .navbar-wrapper[data-layout-num="2"] .menu-container ul li > a:hover,
  .navbar-wrapper[data-layout-num="2"] .navbar-menu a:hover,
  .navbar-wrapper[data-layout-num="2"] .menu-container ul li > a:focus,
  .navbar-wrapper[data-layout-num="2"] .navbar-menu a:focus {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: auto !important;
    line-height: 1.2 !important;
    padding: 8px var(--menu-btn-pad-x, 16px) !important;
    box-sizing: border-box !important;
  }
}

/* core/new_widgets.css */
/* Widgets and forms extracted from inline-overrides.css */

/* Forms: inputs should be full-width inside content without overflowing */
.columns-container .col form,
.section .section-content form { max-width: 100% !important; }

/* Override widget-level fixed widths */
.columns-container .col .newsletter-form,
.columns-container .col .contact-form,
.section .section-content .newsletter-form,
.section .section-content .contact-form {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Widget panel symmetric padding */
.columns-container .col .email-subscription-widget,
.columns-container .col .contact-form-widget,
.section .section-content .email-subscription-widget,
.section .section-content .contact-form-widget {
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box !important;
}

/* Mobile/tablet: neutralize asymmetric widget padding so inner .block-content 10px rules govern */
@media (max-width: 1024px) {
  html body .columns-container .col .email-subscription-widget,
  html body .columns-container .col .contact-form-widget,
  html body .section .section-content .email-subscription-widget,
  html body .section .section-content .contact-form-widget {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

/* Remove any lateral margins on common form groups to keep symmetry */
.columns-container .col .mb-3,
.section .section-content .mb-3 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.columns-container .col input[type="text"],
.columns-container .col input[type="email"],
.columns-container .col input[type="tel"],
.columns-container .col input[type="url"],
.columns-container .col input[type="password"],
.columns-container .col input[type="search"],
.columns-container .col input[type="number"],
.columns-container .col textarea,
.columns-container .col select,
.section .section-content input[type="text"],
.section .section-content input[type="email"],
.section .section-content input[type="tel"],
.section .section-content input[type="url"],
.section .section-content input[type="password"],
.section .section-content input[type="search"],
.section .section-content input[type="number"],
.section .section-content textarea,
.section .section-content select {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Common Bootstrap-style class override */
.columns-container .col .form-control,
.section .section-content .form-control {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Strong, widget-specific padding to guarantee symmetry inside panels */
.columns-container .col .contact-form-widget input,
.columns-container .col .contact-form-widget select,
.columns-container .col .contact-form-widget textarea,
.section .section-content .contact-form-widget input,
.section .section-content .contact-form-widget select,
.section .section-content .contact-form-widget textarea,
.columns-container .col .newsletter-form input,
.columns-container .col .newsletter-form select,
.columns-container .col .newsletter-form textarea,
.section .section-content .newsletter-form input,
.section .section-content .newsletter-form select,
.section .section-content .newsletter-form textarea {
  padding-left: 12px !important;
  padding-right: 12px !important;
}

/* Keep buttons auto-sized; do not force full width */
.columns-container .col .block-content button,
.columns-container .col .block-content input[type="submit"],
.columns-container .col .block-content input[type="button"],
.section .section-content button,
.section .section-content input[type="submit"],
.section .section-content input[type="button"] {
  width: auto !important;
}

/* Ensure button and social-media widgets align with text padding in columns */
.columns-container .col .button-widget-wrapper,
.columns-container .col .social-media-widget-wrapper {
  padding-left: 10px !important;
  padding-right: 10px !important;
  box-sizing: border-box !important;
}
/* If wrapped by .block-content (which already provides 10px), avoid double padding */
.columns-container .col .block-content > .button-widget-wrapper,
.columns-container .col .block-content > .social-media-widget-wrapper {
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* core/new_columns.css */
/* Column layering, text color propagation, links, and slideshow bounds
   Extracted from core/inline-overrides.css to modularize column concerns */

/* Layering (global, no section IDs):
   0 = main background (default), 1 = column background, 2 = images, 3 = text */
.width2-container { position: relative; /* z-index: auto (0) */ }
.columns-container { position: relative; }
/* Column background lives on the .col itself */
.columns-container .col { position: relative; z-index: 1; isolation: isolate; }
/* Images stack above the column background */
.columns-container .col img,
.columns-container .col .image,
.col-with-bg-image img { position: relative; z-index: 2; }
/* Text/content at the topmost layer inside columns */
.columns-container .col .content-block,
.columns-container .col .block-content { position: relative; z-index: 3; width: 100% !important; }
/* Do not force width on descendants; keep their intrinsic or responsive rules */
.columns-container .col .content-block *,
.columns-container .col .block-content * { position: relative; z-index: 3; }

/* Equalized/measuring modes and mobile stacking for image/text patterns */
.columns-container.equalized { display: flex !important; align-items: stretch !important; }
.columns-container.equalized .col { display: block !important; }
.columns-container.measure { display: block !important; }
.columns-container.measure .col { display: block !important; height: auto !important; overflow: visible !important; }
.columns-container.equalized { --equalized-height: auto; }
.columns-container.equalized { min-height: var(--equalized-height) !important; }
.columns-container.equalized .col { min-height: var(--equalized-height) !important; }

@media (max-width: 768px) {
  /* Ensure expanded rows stack to 1 column at <=768 so height follows content */
  html body .section .columns-container.expand {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }
  /* If any column prefers text, reorder so text columns appear first on mobile */
  html body .section .columns-container[data-mi-has-textpref="1"] {
    display: flex !important;
    flex-direction: column !important;
  }
  html body .section .columns-container[data-mi-has-textpref="1"] > .col {
    width: 100% !important;
    min-width: 100% !important;
  }
  html body .section .columns-container[data-mi-has-textpref="1"] > .col[data-mi-mobpref="text"]  { order: -1 !important; }
  html body .section .columns-container[data-mi-has-textpref="1"] > .col[data-mi-mobpref="image"] { order: 0 !important; }
  html body .section .columns-container.expand > .col {
    display: block !important;
    min-width: 100% !important;
    width: auto !important;
    flex: 0 0 auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /* Deterministic path: renderer tags rows via data-mi-equalized-imgtext="1" */
  .columns-container.equalized[data-mi-equalized-imgtext="1"],
  .columns-container.equalized[data-mi-equalized-imgtext="1"] > .col {
    height: auto !important;
    min-height: 0 !important;
    --equalized-height: auto !important;
  }
  /* Also handle expanded rows not marked equalized but publishing fixed col height var */
  .section .columns-container.expand[data-mi-equalized-imgtext="1"],
  .section .columns-container.expand[data-mi-equalized-imgtext="1"] > .col {
    height: auto !important;
    min-height: 0 !important;
    --mi-col-height: auto !important;
  }
  /* NON-expanded rows tagged by the renderer */
  .section .columns-container[data-mi-equalized-imgtext="1"],
  .section .columns-container[data-mi-equalized-imgtext="1"] > .col {
    height: auto !important;
    min-height: 0 !important;
    --mi-col-height: auto !important;
  }
  /* Neutralize inline --mi-col-height on NON-expanded rows */
  .section .columns-container[data-mi-equalized-imgtext="1"][style*="--mi-col-height"],
  .section .columns-container[data-mi-equalized-imgtext="1"][style*="--mi-col-height"] > .col {
    height: auto !important;
    min-height: 0 !important;
    --mi-col-height: auto !important;
  }
  /* Stack columns for tagged NON-expanded rows so height follows content */
  .section .columns-container[data-mi-equalized-imgtext="1"] > .col {
    display: block !important;
    min-width: 100% !important;
    width: auto !important;
    flex: 0 0 auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  /* Inner wrappers for NON-expanded rows */
  .columns-container[data-mi-equalized-imgtext="1"] > .col > .col-text-wrap,
  .columns-container[data-mi-equalized-imgtext="1"] > .col > .content-block,
  .columns-container[data-mi-equalized-imgtext="1"] > .col > .content-block > .block-content {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
  }

  /* If a column explicitly uses vertical positioning (data-vpos), keep the text wrapper tall enough
     for middle/bottom alignment to work even on mobile. */
  .columns-container[data-mi-equalized-imgtext="1"] > .col[data-vpos] > .col-text-wrap.vpos-scope {
    min-height: 100% !important;
    flex: 1 1 auto !important;
  }
  /* If any column PREFERS TEXT, neutralize fixed/equalized heights */
  @supports(selector(:has(*))) {
    html body .section .columns-container:has([data-mi-mobpref="text"]) {
      --mi-col-height: auto !important;
      --equalized-height: auto !important;
      height: auto !important;
    }
    html body .section .columns-container:has([data-mi-mobpref="text"]) > .col {
      height: auto !important;
      min-height: 0 !important;
    }
  }
  /* Deterministic path without :has: renderer emits data-mi-has-textpref="1" */
  html body .section .columns-container[data-mi-has-textpref="1"] {
    --mi-col-height: auto !important;
    --equalized-height: auto !important;
    height: auto !important;
  }
  html body .section .columns-container[data-mi-has-textpref="1"] > .col {
    height: auto !important;
    min-height: 0 !important;
  }
  /* Per-column Mobile Priority (admin dropdown) */
  html body .section .columns-container [data-mi-mobpref="text"],
  html body .section .columns-container [data-mi-mobpref="text"] > .col {
    height: auto !important;
    min-height: 0 !important;
    --mi-col-height: auto !important;
    --equalized-height: auto !important;
  }
  html body .section .columns-container [data-mi-mobpref="text"].col-with-bg-image { aspect-ratio: auto !important; }
  html body .section .columns-container [data-mi-mobpref="text"] > .col-text-wrap,
  html body .section .columns-container [data-mi-mobpref="text"] > .content-block,
  html body .section .columns-container [data-mi-mobpref="text"] > .content-block > .block-content {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
  }
  /* If container still sets --mi-col-height inline, ensure TEXT-pref columns use auto height */
  html body .section .columns-container[style*="--mi-col-height"] [data-mi-mobpref="text"] {
    height: auto !important;
    min-height: 0 !important;
  }
  /* IMAGE wins: keep bg-image column aspect; text should NOT increase height */
  html body .section .columns-container [data-mi-mobpref="image"].col-with-bg-image { aspect-ratio: var(--bg-aspect, 16/9) !important; }
  html body .section .columns-container [data-mi-mobpref="image"] > .content-block,
  html body .section .columns-container [data-mi-mobpref="image"] > .content-block > .block-content {
    display: block !important;
    height: auto !important;
  }
  /* Attribute override: inline --mi-col-height neutralization on expand */
  .section .columns-container.expand[data-mi-equalized-imgtext="1"][style*="--mi-col-height"],
  .section .columns-container.expand[data-mi-equalized-imgtext="1"][style*="--mi-col-height"] > .col {
    height: auto !important;
    min-height: 0 !important;
    --mi-col-height: auto !important;
  }

  /* Preserve vertical alignment on mobile when a column has data-vpos (top/middle/bottom).
     Some stacking rules set columns to display:block, which breaks justify-content centering. */
  html body .section .columns-container > .col[data-vpos],
  html body .section .columns-container.expand > .col[data-vpos],
  html body .section .columns-container[data-mi-equalized-imgtext="1"] > .col[data-vpos] {
    display: flex !important;
    flex-direction: column !important;
  }
}
/* Global: color-only rows (no text/images, only background colors) render as a 12px strip */
.columns-container.color-only-row > .col {
  height: 12px !important;
  min-height: 12px !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  box-shadow: none !important;
}

/* Ensure text color set on the column propagates to typical text elements */
.columns-container .col,
.columns-container .col .content-block,
.columns-container .col .block-content,
.columns-container .col .block-content p,
.columns-container .col .block-content span,
.columns-container .col .block-content li,
.columns-container .col .block-content small,
.columns-container .col .block-content strong,
.columns-container .col .block-content em,
.columns-container .col .block-content h1,
.columns-container .col .block-content h2,
.columns-container .col .block-content h3,
.columns-container .col .block-content h4,
.columns-container .col .block-content h5,
.columns-container .col .block-content h6 { color: inherit !important; }

/* Links inside columns inherit the column text color by default */
.columns-container .col a { color: inherit !important; }

/* Ensure slideshow/carousel widgets stay within their column and proper z-index */
/* Slideshow/Parallax: do not constrain on desktop (let libraries control overflow/z-index) */
@media (min-width: 769px) {
  /* Remove vertical padding from the bar so link height matches the visible bar */
  .navbar-wrapper .menu-flex-container { padding-top: 0 !important; padding-bottom: 0 !important; }
  .columns-container .col .slideshow,
  .columns-container .col .carousel,
  .columns-container .col .swiper,
  .columns-container .col .slick-slider,
  .columns-container .col [class*="slideshow"],
  .columns-container .col [class*="carousel"],
  .columns-container .col [class*="swiper"],
  .columns-container .col [class*="slick"] {
    position: relative !important;
    z-index: auto !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
}
/* Mobile: keep widgets safely bounded to avoid layout overflow */
@media (max-width: 768px) {
  .columns-container .col .slideshow,
  .columns-container .col .carousel,
  .columns-container .col .swiper,
  .columns-container .col .slick-slider,
  .columns-container .col [class*="slideshow"],
  .columns-container .col [class*="carousel"],
  .columns-container .col [class*="swiper"],
  .columns-container .col [class*="slick"] {
    position: relative !important;
    z-index: 2 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
}

/* Column background-image helpers and utility classes */
.col-with-bg-image { position: relative; }
/* Removed forced color inheritance so editor-defined colors and column text colors are respected */
.col-with-bg-image::before { display: none !important; content: none !important; background-color: transparent !important; opacity: 0 !important; visibility: hidden !important; }

/* Card helper: when the editor emits .image-top-bleed, make the image full-bleed */
.columns-container .col .content-block.image-top-bleed { padding: 0 !important; margin: 0 !important; }
.columns-container .col .content-block.image-top-bleed > img,
.columns-container .col .content-block.image-top-bleed > a > img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  border-top-left-radius: inherit !important;
  border-top-right-radius: inherit !important;
}
/* If the column has a border radius, clip the image to the card shape */
.columns-container .col[style*="border-radius"] { overflow: hidden !important; }

/* Full-bleed images in card columns: edge-to-edge when a block contains only an image */
@supports(selector(:has(*))) {
  .columns-container .col .block-content:has(> img:only-child),
  .columns-container .col .block-content:has(> a:only-child > img:only-child) {
    padding: 0 !important;
  }
  .columns-container .col .block-content:has(> img:only-child) > img,
  .columns-container .col .block-content:has(> a:only-child > img:only-child) > a > img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
  }
}
/* Fallback without :has(): compensate for the default 10px block padding */
.columns-container .col .block-content > img:first-child,
.columns-container .col .block-content > a:first-child > img:first-child {
  display: block !important;
  width: calc(100% + 20px) !important;
  max-width: none !important;
  height: auto !important;
  margin: -10px -10px 10px -10px !important; /* cancel side/top padding, keep 10px below */
}
.columns-container .col .block-content > p:first-child > img:first-child,
.columns-container .col .block-content > figure:first-child > img:first-child,
.columns-container .col .block-content > p:first-child > a:first-child > img:first-child,
.columns-container .col .block-content > figure:first-child > a:first-child > img:first-child {
  display: block !important;
  width: calc(100% + 20px) !important;
  max-width: none !important;
  height: auto !important;
  margin: -10px -10px 10px -10px !important; /* cancel side/top padding, keep 10px below */
}
/* Generic wrapper fallback: first child wrapper whose first child is an image */
.columns-container .col .block-content > *:first-child > img:first-child {
  display: block !important;
  width: calc(100% + 20px) !important;
  max-width: none !important;
  height: auto !important;
  margin: -10px -10px 10px -10px !important;
}

/* Mobile: respect per-column vertical position via data-vpos (top|middle|bottom) */
@media (max-width: 768px) {
  /* Vertical position: use flex only when vpos is defined to avoid side effects */
  .section .columns-container > .col[data-vpos] { display: flex !important; flex-direction: column !important; }
  .section .columns-container > .col[data-vpos="top"]    { justify-content: flex-start !important; }
  .section .columns-container > .col[data-vpos="middle"] { justify-content: center !important; }
  .section .columns-container > .col[data-vpos="bottom"] { justify-content: flex-end !important; }
  /* Ensure inner wrappers don't stretch oddly */
  .section .columns-container > .col[data-vpos] > .content-block,
  .section .columns-container > .col[data-vpos] > .col-text-wrap { width: 100% !important; max-width: 100% !important; }
  /* Mobile Priority: ensure text-preferred columns do not impose fixed heights (already handled),
     but also prevent background-image columns from pulling content vertically */
  .section .columns-container [data-mi-mobpref="text"] {
    --mi-col-height: auto !important;
    --equalized-height: auto !important;
  }

  /* VPOS WITHOUT FLEX: align by margins on common inner wrappers (works with flow-root) */
  html body .section > div > .width1-container > .width2-container > .columns-container > .col[data-vpos="top"]    > .content-block,
  html body .section > div > .width1-container > .width2-container > .columns-container > .col[data-vpos="top"]    > .col-text-wrap { margin-top: 0 !important;    margin-bottom: auto !important; }
  html body .section > div > .width1-container > .width2-container > .columns-container > .col[data-vpos="middle"] > .content-block,
  html body .section > div > .width1-container > .width2-container > .columns-container > .col[data-vpos="middle"] > .col-text-wrap { margin-top: auto !important;  margin-bottom: auto !important; }
  html body .section > div > .width1-container > .width2-container > .columns-container > .col[data-vpos="bottom"] > .content-block,
  html body .section > div > .width1-container > .width2-container > .columns-container > .col[data-vpos="bottom"] > .col-text-wrap { margin-top: auto !important;  margin-bottom: 0 !important; }

  /* If the row provides a suggested column height, allow vpos to have space to work */
  html body .section > div > .width1-container > .width2-container > .columns-container[style*="--mi-col-height"] > .col[data-vpos],
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-col-height] > .col[data-vpos] {
    min-height: var(--mi-col-height) !important;
  }
}

/* Expand utilities for edge-to-edge columns */
.expand-left { margin-left: 0 !important; padding-left: 0 !important; }
.expand-right { margin-right: 0 !important; padding-right: 0 !important; }

/* Headings in columns should not add extra top margin */
.section .width1-container .width2-container .row .col h1,
.section .width1-container .width2-container .row .col h2,
.section .width1-container .width2-container .row .col h3,
.section .width1-container .width2-container .row .col h4,
.section .width1-container .width2-container .row .col h5,
.section .width1-container .width2-container .row .col h6 { margin-top: 0 !important; }

/* Mobile: apply intrinsic aspect ratio to ALL background-image columns */
@media (max-width: 768px) {
  html body .section .columns-container > .col.col-with-bg-image {
    aspect-ratio: var(--bg-aspect, 16/9) !important;
    width: 100% !important;
    height: auto !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
  }
  /* Text-first priority: let content control height; do not force aspect ratio */
  html body .section .columns-container > .col[data-mi-mobpref="text"].col-with-bg-image {
    aspect-ratio: auto !important;
  }
  /* Fallback: when a row mixes image and text (container flagged), make any inline images responsive */
  html body .section .columns-container[data-mi-equalized-imgtext="1"] img,
  html body .section .columns-container[data-mi-equalized-imgtext="1"] a > img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }
  /* Respect Mobile priority: when any column prefers IMAGE, stack and show image first */
  @supports(selector(:has(*))) {
    html body .section .columns-container:has(> .col[data-mi-mobpref="image"]) {
      display: flex !important;
      flex-direction: column !important;
      gap: 0 !important;
    }
    html body .section .columns-container:has(> .col[data-mi-mobpref="image"]) > .col {
      width: 100% !important;
      min-width: 100% !important;
      max-width: 100% !important;
      flex: 0 0 auto !important;
    }
    html body .section .columns-container:has(> .col[data-mi-mobpref="image"]) > .col[data-mi-mobpref="image"] {
      order: -1 !important;
    }
  }
  /* Inline images in image-priority columns should scale to container width */
  html body .section .columns-container > .col[data-mi-mobpref="image"] img,
  html body .section .columns-container > .col[data-mi-mobpref="image"] a > img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: cover;
  }
}

/* core/new_decorative-row.css */
/* Decorative bar: deterministic via data-mi-deco="1" */

/* Path-specific strong overrides for decorative rows (≤1024px) */
@media (max-width: 1024px) {
  /* Generic override (not path-dependent): keep decorative bars side-by-side even if other mobile rules stack columns */
  html body .columns-container[data-mi-deco="1"] {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }
  html body .columns-container[data-mi-deco="1"] > .col {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
  }

  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"],
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] {
    margin-top: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    height: 12px !important;
    min-height: 12px !important;
    gap: 0 !important;
    padding: 0 !important;
  }

  /* Hide non-.col direct children (e.g., inline <style> nodes) on the bar row */
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"] > :not(.col),
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] > :not(.col) {
    display: none !important;
  }
  /* Ensure each column is a 12px stripe and ignores inline flex sizing */
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"] > .col,
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] > .col {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    height: 12px !important;
    min-height: 12px !important;
    overflow: hidden !important;
  }
  /* Zero inner padding/height for wrappers under the bar */
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"] > .col > .col-text-wrap,
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"] > .col > .content-block,
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] > .col > .col-text-wrap,
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] > .col > .content-block {
    padding: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
}

/* Minimal mobile rule (≤768px) retained for strong specificity at the smallest view */
@media (max-width: 768px) {
  /* Generic override (not path-dependent): keep decorative bars side-by-side even if other mobile rules stack columns */
  html body .columns-container[data-mi-deco="1"] {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }
  html body .columns-container[data-mi-deco="1"] > .col {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
  }

  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"],
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] {
    margin-top: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    height: 12px !important;
    gap: 0 !important;
    padding: 0 !important;
  }
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"] > :not(.col),
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] > :not(.col) {
    display: none !important;
  }
  html body .section > div > .width1-container > .width2-container > .columns-container[data-mi-deco="1"] > .col,
  html body .section > div > .width1-container > .width2-container.width2-expand > .columns-container.expand[data-mi-deco="1"] > .col {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    height: 12px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
}

/* core/new_responsive.css */
/* Responsive-only tweaks migrated from inline-overrides.css */

/* Landscape mode: preserve sticky behavior and prevent scaled wrappers */
@media screen and (orientation: landscape) and (max-width: 932px) {
  html, body { overflow-x: hidden; overflow-y: visible !important; margin: 0 !important; padding: 0 !important; }
  #scale-wrapper { position: relative; left: 0; transform: none !important; transform-origin: top left; width: 100%; min-width: 100%; min-height: 0 !important; box-sizing: border-box; }
  @supports (width: 100svw) {
    #scale-wrapper { width: 100svw; min-width: 100svw; min-height: 0 !important; }
  }
  /* Keep navbar full-width; do not alter content containers */
  .navbar-wrapper, .navbar { max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
}

/* Mobile container hygiene: keep rows edge-to-edge on ≤768px */
@media (max-width: 768px) {
  .row {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Width2 containment on mobile, full-bleed exception for expanded rows */
@media (max-width: 768px) {
  html body .section .width2-container {
    width: var(--content-width, 95%) !important;
    max-width: var(--max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  @supports(selector(:has(*))) {
    html body .section .width2-container:has(> .columns-container.expand) {
      width: 100% !important;
      max-width: none !important;
      margin: 0 !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }
  }
}

/* variables.php (post-core override) */
/* Database error: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'quickpage_db.color_variables' doesn't exist */
:root {
  --max-width: 1800px;
  --content-width: 90%;
  --site-bg-color: #606060;
  --menu-bar-height: 100px;
  --menu-logo-max-height: 86px;
  --menu-sticky-offset: var(--menu-bar-height);
}

/* Utility classes for backgrounds */
.bg-primary { background-color: var(--primary-color, var(--accent-color)); }
.bg-secondary { background-color: var(--secondary-color, #6c757d); }
.bg-site { background-color: var(--site-bg-color); }
.bg-body { background-color: var(--body-bg-color); }
.bg-section { background-color: var(--section-bg-color, #ffffff); }
.bg-width1 { background-color: var(--width1-bg-color); }

/* Utility classes for text colors */
.text-primary { color: var(--primary-color, var(--accent-color)); }
.text-secondary { color: var(--secondary-color, #6c757d); }
.text-body { color: var(--body-text-color); }
.text-heading { color: var(--heading-color); }
.text-link { color: var(--link-color); }

/* Button utility classes */
.btn-primary {
  background-color: var(--button-color, var(--primary-color, var(--accent-color)));
  color: var(--button-text-color, #ffffff);
  border: none;
  padding: 8px 16px;
  border-radius: 4px;
}
.btn-primary:hover {
  background-color: var(--button-hover-color, var(--primary-color-hover, var(--accent-color)));
}
.btn-secondary {
  background-color: var(--secondary-color, #6c757d);
  color: #ffffff;
  border: none;
  padding: 8px 16px;
  border-radius: 4px;
}

