/*
Theme Name: LeanPress
Theme URI: https://leanwebs.com
Author: Neil Beckett
Author URI: https://leanwebs.com
Description: A lean, green WordPress theme.
Version: 1.0.0
*/


/*********************************************************
    RESET
*********************************************************/
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section{display: block;}
[tabindex="-1"]:focus{outline: 0 !important;}
input[type="radio"], input[type="checkbox"]{box-sizing: border-box; padding: 0;}
input, button, select, optgroup, textarea{margin: 0; font-family: inherit; font-size: inherit; line-height: inherit;}
table{border-collapse: collapse;}
fieldset{border: none; padding: 0;}
input[type="text"], input[type="password"], textarea, select {outline: none;}


/*********************************************************
    GLOBAL
*********************************************************/
html{font-family: sans-serif; text-size-adjust: 100%; margin: 0; padding: 0; width: 100%; min-height: 100%; height: 100%; scrollbar-gutter: stable; overflow-y: scroll;} /* Always show scrollbar to prevent layout shifts */
body{font-family: var(--body); font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--text); text-align: left; background-color: var(--background); position: relative; text-rendering: optimizelegibility; font-feature-settings: "liga"; min-height: 100%; height: 100%; padding: 0; margin: 0;}


/*********************************************************
    LAYOUT
*********************************************************/
/* Container - fundamental layout element */
.container{width: 100%; max-width: 1140px; margin-inline: auto; padding-inline: 15px;}
.container-900{max-width: 900px; margin-inline: auto;}
.container-800{max-width: 800px; margin-inline: auto;}
.w-100{width: 100%;}
.h-100{height: 100%;}

/* Responsive container adjustments */
@media (max-width: 991.99px){
  .container{max-width: 100%;}
}


/*********************************************************
    UTILITIES
*********************************************************/
/* Visibility utilities */
.d-none{display: none !important;}
.d-lg-block{display: none !important;}
/* Using hardcoded values for media queries for better browser compatibility */
@media (min-width: 992px){.d-lg-block{display: block !important;}}

/* Skip link - visually hidden but accessible */
.skip-link{position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; z-index: 1000;}
.skip-link:focus-visible{width: auto; height: auto; clip: auto; white-space: normal; background: #000; color: #fff; padding: 8px 12px; top: 0; left: 0; margin: 0; overflow: visible; text-decoration: none; font-weight: var(--font-weight-bold); outline: 3px solid var(--blue); outline-offset: 2px;}

/* Screen reader only - visible to screen readers but hidden visually */
.sr-only{position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}

/* Image overlay utilities */
.image-with-overlay{position: relative; display: block; overflow: hidden;}
.image-with-overlay img{width: 100%; height: auto; transition: transform 0.3s ease;}
.image-with-overlay__overlay{position: absolute; inset: 0; mix-blend-mode: multiply; pointer-events: none; transition: transform 0.3s ease;}
.image-with-overlay:hover img,
.image-with-overlay:hover .image-with-overlay__overlay{transform: scale(1.02);}
.image-with-overlay__overlay--orange{background-color: var(--orange);}
.image-with-overlay__overlay-lt-orange{background-color: var(--lt-orange);}
.image-with-overlay__overlay-dark-orange{background-color: var(--dark-orange);}
.image-with-overlay__overlay--primary{background-color: var(--primary);}
.image-with-overlay__overlay--dark{background-color: rgba(0, 0, 0, 0.7);}


/*********************************************************
    IMAGES
*********************************************************/

/* Responsive Image - Universal class for all images */
.responsive-img{max-width: 100%; height: auto; display: block;}

/* Image Hero Section */
.image-hero{position: relative; overflow: hidden; padding-block: var(--space-5);}
.image-hero::before{content: ''; position: absolute; bottom: -25%; left: -5%; width: 130%; height: 50%; background-color: #F36B2D; transform: rotate(-5deg); z-index: 0; pointer-events: none;}
.image-hero::after{content: ''; position: absolute; bottom: -10%; left: -10%; width: 130%; height: 25%; background-color: #F89A6F; transform: rotate(-5deg); z-index: 0; pointer-events: none;}
.image-hero__image-container{position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: center; padding: 0 var(--space-4); z-index: 1;}
.image-hero__image{width: 100%; max-width: 1200px; height: auto; object-fit: contain; object-position: center bottom;}
.image-hero__container{position: relative; z-index: 2; padding-block: var(--space-3); display: flex; flex-direction: column; justify-content: center;}

@media (min-width: 1280px) {
  .image-hero{min-height: 720px; padding-block: var(--space-7);}
  .image-hero__container{justify-content: flex-end;}
}

@media (max-width: 1279.98px) {
  .image-hero{min-height: 600px;}
}

@media (max-width: 991.99px) {
  .image-hero__image-container{padding: 0;}
}

/* Image Overlay Section */
.image-overlay-section{position: relative; min-height: 400px; display: flex; align-items: center; overflow: hidden;}
.image-overlay-section--header{min-height: auto; overflow: visible;}
.image-overlay-section__bg{position: absolute; inset: 0; z-index: 0;}
.image-overlay-section__bg img{width: 100%; height: 100%; object-fit: cover;}
.image-overlay-section__bg.image-with-overlay:hover img,
.image-overlay-section__bg.image-with-overlay:hover .image-with-overlay__overlay{transform: none;}
.image-overlay-section__content{position: relative; z-index: 2;}
.image-overlay-section__form{backdrop-filter: blur(10px); z-index: 3;}
/* Footer Badges */
.footer-badges{display: flex !important; flex-direction: column; gap: var(--space-2);}
.footer-badges__row{display: flex; align-items: center; gap: var(--space-3);}
.footer-badges img{width: clamp(140px, 18vw, 200px); height: auto;}

@media (max-width: 900px) {
  .footer-badges img{width: clamp(120px, 30vw, 160px);}
}

/* Footer Grid Order - Badges below links on mobile/tablet */
@media (max-width: 767.98px) {
  .footer .lp-grid{gap: 0;}
  .footer .lp-grid > div:first-child{order: 2;}
  .footer .lp-grid > div:nth-child(2){order: 1;}
  .footer .lp-grid > div:nth-child(3){order: 1;}
  .footer .lp-grid > div:nth-child(4){order: 1;}
}


/*********************************************************
    ASSETS
*********************************************************/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6{font-family: var(--headline); font-weight: var(--font-weight-extrabold); line-height: var(--line-height-tight); margin-top: 0; margin-bottom: 0.5rem;}
h1, .h1{font-size: var(--font-size-xxl); letter-spacing: var(--letter-spacing-tight);}
h2, .h2{font-size: var(--font-size-xl); letter-spacing: var(--letter-spacing-tight);}
h3, .h3{font-size: var(--font-size-lg); letter-spacing: var(--letter-spacing-normal);}
h4, .h4{font-size: var(--font-size-md); letter-spacing: var(--letter-spacing-normal);}
h5, .h5{font-size: var(--font-size-sm); letter-spacing: var(--letter-spacing-normal);}
h6, .h6{font-size: var(--font-size-xs); letter-spacing: var(--letter-spacing-normal);}
a{color: var(--link); outline: none; transition: 0.2s ease; text-decoration: none;}
.underline{text-decoration: underline !important;}
.no-underline{text-decoration: none !important;}
.small{font-size: var(--font-size-sm) !important; line-height: var(--line-height-base) !important;}
.medium{font-size: var(--font-size-md-plus) !important; line-height: var(--line-height-base) !important;}
.circle{border-radius: var(--radius-full) !important;}
.border{border: 1px solid var(--gray) !important;}
.shadow{box-shadow: var(--shadow-sm);}
.rounded{border-radius: var(--radius-sm) !important;}
.text-left{text-align: left !important;}
.text-right{text-align: right !important;}
.text-center{text-align: center !important;}

/* Responsive text alignment */
@media (max-width: 991.99px){
  .text-lg-center{text-align: center !important;}
}

@media (max-width: 767.98px){
  .text-md-center{text-align: center !important;}
}


/*********************************************************
    COLORS
*********************************************************/
:root{
    /* Color variables */
    --black: #222222;
    --white: #FFFFFF;
    --gray: #DDDDDD;
    --orange: #F36B2D;
    --lt-orange: #F89A6F;
    --dark-orange: #a44920;
    --lt-blue: #eef7ff;
    --blue: #2D3681;

    
    /* Shadow variables */
    --shadow-xs: 0 1px 3px rgba(0, 0, 0, 0.1);
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.15);
    --shadow-md: 0 5px 15px rgba(0, 0, 0, 0.2);
    
    --font-size-xs: 0.75rem;  
    --font-size-sm: 1rem;  
    --font-size-base: clamp(1rem, 0.95rem + 0.25vw, 1.15rem); 
    --font-size-md: clamp(1.125rem, 1.0875rem + 0.1875vw, 1.25rem); 
    --font-size-md-plus: clamp(1.2rem, 1.15rem + 0.35vw, 1.45rem);
    --font-size-md-lg: clamp(1.3rem, 1.2rem + 0.5vw, 1.65rem);
    --font-size-lg: clamp(1.5rem, 1.3rem + 1vw, 2rem);       
    --font-size-xl: clamp(1.75rem, 1.4rem + 1.75vw, 2.75rem);    
    --font-size-xxl: clamp(2.25rem, 1.5rem + 3vw, 3.5rem);    
    
    /* Line heights */
    --line-height-tight: 1.25;   
    --line-height-base: 1.6;     
    
    /* Font weights */
    --font-weight-normal: 400;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    
    /* Letter spacing */
    --letter-spacing-tight: -1.5px;
    --letter-spacing-normal: 0;
    --letter-spacing-wide: 0.05em;
    
    /* Spacing scale */
    --space-0: 0rem;
    --space-1: 0.25rem; 
    --space-2: 0.5rem;   
    --space-3: 1rem;     
    --space-4: 2rem;     
    --space-5: 3rem;     
    --space-6: 4rem;
    --space-7: 6rem;     
    
    /* Border radius */
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --radius-lg: 1rem;
    --radius-full: 50rem;
}

:is(.black, .black a){color: var(--black) !important;}
.black-bg{background-color: var(--black) !important;}

:is(.white, .white a){color: var(--white) !important;}
.white-bg{background-color: var(--white) !important;}

:is(.gray, .gray a){color: var(--gray) !important;}
.gray-bg{background-color: var(--gray) !important;}

:is(.orange, .orange a){color: var(--orange) !important;}
.orange-bg{background-color: var(--orange) !important;}

:is(.lt-orange, .lt-orange a){color: var(--lt-orange) !important;}
.lt-orange-bg{background-color: var(--lt-orange) !important;}

:is(.dark-orange, .dark-orange a){color: var(--dark-orange) !important;}
.dark-orange-bg{background-color: var(--dark-orange) !important;}

:is(.lt-blue, .lt-blue a){color: var(--lt-blue) !important;}
.lt-blue-bg{background-color: var(--lt-blue) !important;}

:is(.blue, .blue a){color: var(--blue) !important;}
.blue-bg{background-color: var(--blue) !important;}

:is(.primary, .primary a){color: var(--primary) !important;}
.primary-bg{background-color: var(--primary) !important;}

:is(.secondary, .secondary a){color: var(--secondary) !important;}
.secondary-bg{background-color: var(--secondary) !important;}

:is(.btn-text, .btn-text a){color: var(--button-text) !important;}
:is(.nav-text, .nav-text a){color: var(--nav-text);}
:is(.body-text, .body-text a){color: var(--text);}

/*********************************************************
    HOVERS
*********************************************************/
.hover-mute:hover{opacity: 0.75;}
.hover-dip:hover{transform: translateY(5px);}
.hover-glow:hover{text-shadow: 0 0 10px #fff!important;}

/*********************************************************
    HELPERS
*********************************************************/
.min-height{min-height: 1000px;}

.p-0{padding: var(--space-0) !important;}
.p-1{padding: var(--space-1) !important;}
.p-2{padding: var(--space-2) !important;}
.p-3{padding: var(--space-3) !important;}
.p-4{padding: var(--space-4) !important;}
.p-5{padding: var(--space-5) !important;}

.px-0{padding-inline: var(--space-0) !important;}
.px-1{padding-inline: var(--space-1) !important;}
.px-2{padding-inline: var(--space-2) !important;}
.px-3{padding-inline: var(--space-3) !important;}
.px-4{padding-inline: var(--space-4) !important;}
.px-5{padding-inline: var(--space-5) !important;}

.py-0{padding-block: var(--space-0) !important;}
.py-1{padding-block: var(--space-1) !important;}
.py-2{padding-block: var(--space-2) !important;}
.py-3{padding-block: var(--space-3) !important;}
.py-4{padding-block: var(--space-4) !important;}
.py-5{padding-block: var(--space-5) !important;}
.py-6{padding-block: var(--space-6) !important;}
.py-7{padding-block: var(--space-7) !important;}

.pb-0{padding-block-end: var(--space-0) !important;}
.pb-1{padding-block-end: var(--space-1) !important;}
.pb-2{padding-block-end: var(--space-2) !important;}
.pb-3{padding-block-end: var(--space-3) !important;}
.pb-4{padding-block-end: var(--space-4) !important;}
.pb-5{padding-block-end: var(--space-5) !important;}

.pt-0{padding-block-start: var(--space-0) !important;}
.pt-1{padding-block-start: var(--space-1) !important;}
.pt-2{padding-block-start: var(--space-2) !important;}
.pt-3{padding-block-start: var(--space-3) !important;}
.pt-4{padding-block-start: var(--space-4) !important;}
.pt-5{padding-block-start: var(--space-5) !important;}

.m-0{margin: var(--space-0) !important;}
.m-1{margin: var(--space-1) !important;}
.m-2{margin: var(--space-2) !important;}
.m-3{margin: var(--space-3) !important;}
.m-4{margin: var(--space-4) !important;}
.m-5{margin: var(--space-5) !important;}

.mx-0{margin-inline: var(--space-0) !important;}
.mx-1{margin-inline: var(--space-1) !important;}
.mx-2{margin-inline: var(--space-2) !important;}
.mx-3{margin-inline: var(--space-3) !important;}
.mx-4{margin-inline: var(--space-4) !important;}
.mx-5{margin-inline: var(--space-5) !important;}

.my-0{margin-block: var(--space-0) !important;}
.my-1{margin-block: var(--space-1) !important;}
.my-2{margin-block: var(--space-2) !important;}
.my-3{margin-block: var(--space-3) !important;}
.my-4{margin-block: var(--space-4) !important;}
.my-5{margin-block: var(--space-5) !important;}

.mb-0{margin-block-end: var(--space-0) !important;}
.mb-1{margin-block-end: var(--space-1) !important;}
.mb-2{margin-block-end: var(--space-2) !important;}
.mb-3{margin-block-end: var(--space-3) !important;}
.mb-4{margin-block-end: var(--space-4) !important;}
.mb-5{margin-block-end: var(--space-5) !important;}

.mt-0{margin-block-start: var(--space-0) !important;}
.mt-1{margin-block-start: var(--space-1) !important;}
.mt-2{margin-block-start: var(--space-2) !important;}
.mt-3{margin-block-start: var(--space-3) !important;}
.mt-4{margin-block-start: var(--space-4) !important;}
.mt-5{margin-block-start: var(--space-5) !important;}


/*********************************************************
    FORMS
*********************************************************/
.btn{display: inline-block; font-weight: var(--font-weight-bold); text-align: center; white-space: normal; vertical-align: middle; user-select: none; border: 1px solid transparent; padding: var(--space-3) var(--space-3); font-size: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem); line-height: 1; margin: 0 0 var(--space-2) 0; text-decoration: none; cursor: pointer; font-family: var(--body); appearance: none; background-color: var(--secondary); color: var(--button-text); transition: opacity 0.2s ease, box-shadow 0.2s ease;}
/* Using :focus-visible for better keyboard navigation accessibility */
.btn:hover{opacity: 0.9; box-shadow: var(--shadow-sm);}
.btn:focus-visible{opacity: 0.9; box-shadow: var(--shadow-sm); outline: 2px solid var(--dark-gray); outline-offset: 2px;}
.btn-sm{font-size: clamp(0.85rem, 0.83rem + 0.1vw, 0.9rem); padding: 0.75rem 1rem; margin: 0;}
.btn-md{font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem); padding: 1rem 1.5rem; margin: 0;}
.form-control{display: block; width: 100%; padding: var(--space-1) var(--space-2); color: var(--text); background-color: var(--white); background-clip: padding-box; border: 1px solid var(--gray); transition: border-color 0.2s ease, box-shadow 0.2s ease;}
.form-control:focus-visible{border-color: var(--dark-gray); box-shadow: var(--shadow-sm); outline: 2px solid var(--dark-gray); outline-offset: 2px;}
.form-group{margin-bottom: var(--space-3);}
.offer__image{display: block; width: 100%; height: auto;}


/*********************************************************
    HEADER & NAVIGATION
*********************************************************/
/* Top Banner */
.top-banner__item{font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); display: flex; align-items: center; justify-content: center;}
.top-banner__item--right{justify-content: center;}
.top-banner__icon{width: 20px; height: 20px; margin-right: var(--space-2); display: block;}
.top-banner__link{text-decoration: none;}

@media (max-width: 767px) {
    .top-banner .lp-grid{gap: var(--space-2);}
}

@media (min-width: 768px) {
    .top-banner__item{justify-content: flex-start;}
    .top-banner__item--right{justify-content: flex-end;}
}

/* Base header styles */
.site-header{padding: var(--space-3) 0; background-color: var(--white); position: relative; width: 100%;}
.site-header .container{width: 100%;}
.header-layout{display: flex; align-items: center; width: 100%;}

/* Logo */
.site-logo{display: block; max-width: 210px;}
.site-logo img{display: block; max-width: 100%; height: auto;}

@media (max-width: 575px) {
    .site-logo{max-width: 170px;}
}

/* Main navigation */
.site-navigation{margin-inline-start: auto;}
.header-right{display: flex; align-items: center; margin-inline-start: var(--space-3);}
.nav-wrapper{display: none;} /* Navigation wrapper - for mobile only */
.primary-menu{display: flex; list-style: none; margin: 0; padding: 0;}
.primary-menu li{position: relative; margin: 0 var(--space-3);}
.primary-menu a{color: var(--nav-text); text-decoration: none; display: block; padding: var(--space-2) 0; font-family: var(--body); font-weight: var(--font-weight-normal); font-size: var(--font-size-base);}
.user-is-tabbing .primary-menu a:focus-visible{outline: 2px solid var(--blue);}

/* Dropdown menu */
.primary-menu .sub-menu{background: var(--white); border: 1px solid var(--gray); box-shadow: var(--shadow-xs); display: none; list-style: none; margin: 0; min-width: 200px; padding: 0; position: absolute; top: 100%; left: 0; z-index: 100;}
.primary-menu .sub-menu li{margin: 0;}
.primary-menu .sub-menu a{color: var(--text); padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--gray); font-size: calc(var(--font-size-base) * 0.95);}
.primary-menu .sub-menu li:last-child a{border-bottom: none;}
.primary-menu .menu-item-has-children > a:after{content: ''; display: inline-block; width: 0.5em; height: 0.5em; margin-inline-start: var(--space-2); margin-block-end: var(--space-1); vertical-align: middle; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(45deg);}

/* Mobile menu toggle */
.mobile-menu-toggle{display: none; background: none; border: none; padding: var(--space-2); cursor: pointer;}
.menu-icon{display: block; width: 24px; height: 3px; background-color: var(--nav-text); position: relative; transition: background-color 0.2s;}
.menu-icon:before, .menu-icon:after{content: ''; display: block; width: 100%; height: 100%; background-color: var(--nav-text); position: absolute; transition: transform 0.2s;}
.menu-icon:before{top: -8px;}
.menu-icon:after{bottom: -8px;}

/* Mobile styles */
@media (max-width: 991px) {
    .header-layout{flex-wrap: nowrap;}
    .site-navigation{display: none;} 
    .header-right{margin-inline-start: auto;}
    .mobile-menu-toggle{display: block; margin-left: var(--space-3);}
    
    /* Mobile navigation wrapper */
    .nav-wrapper{display: block; position: fixed; top: 0; right: 0; width: 300px; height: 100%; background-color: var(--white); box-shadow: calc(-1 * var(--shadow-xs)); padding: 0; overflow-y: auto; z-index: 1000; transform: translateX(100%); transition: transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1), visibility 0s 0.3s; will-change: transform; visibility: hidden; pointer-events: none;} /* Hide until active, Prevent interaction when hidden */
    
    /* Mobile menu header */
    .mobile-menu-header{display: flex; align-items: center; padding: var(--space-3); border-bottom: 1px solid var(--gray);}
    .mobile-menu-close{background: none; border: none; padding: var(--space-2); cursor: pointer;}
    .close-icon{display: block; width: 20px; height: 20px; position: relative;}
    .close-icon:before, .close-icon:after{content: ''; position: absolute; width: 100%; height: 3px; background-color: var(--dark-gray); top: 50%; left: 0; transform: rotate(45deg);}
    .close-icon:after{transform: rotate(-45deg);}
    
    /* Active state for mobile menu wrapper */
    .mobile-menu-active .nav-wrapper{transform: translateX(0); visibility: visible; transition: transform 0.3s cubic-bezier(0.4, 0.0, 0.2, 1), visibility 0s 0s; pointer-events: auto;} /* Show when active, Allow interaction when visible */
    
    /* Mobile menu styling */
    .nav-wrapper .primary-menu{flex-direction: column; width: 100%; display: block !important; margin: 0; padding: 0 var(--space-3) var(--space-3) var(--space-3);} /* Ensure menu is always visible in mobile wrapper */
    .nav-wrapper .primary-menu li{margin: 0; border-bottom: 1px solid var(--gray); display: block; width: 100%;}
    /* Keep border on all parent items */
    .nav-wrapper .primary-menu a{padding: var(--space-2) 0; display: block; width: 100%; color: var(--text);}
    .nav-wrapper .sub-menu{position: static; box-shadow: none; border: none; padding: 0 0 0 var(--space-3); background: transparent; width: 100%;}
    .nav-wrapper .sub-menu li{border-bottom: none;}
    .nav-wrapper .sub-menu a{padding: var(--space-2) 0; border-bottom: none;}
    .nav-wrapper .menu-item-has-children > a:after{float: right; margin-top: var(--space-1);}
    
    /* Mobile menu overlay */
    .mobile-menu-overlay{position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5); z-index: 999; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0s 0.3s; pointer-events: none;}
    .mobile-menu-active .mobile-menu-overlay{opacity: 1; visibility: visible; transition: opacity 0.3s ease, visibility 0s 0s; pointer-events: auto;} /* Active state for mobile menu overlay */
    
    /* Fixed positioning for body when menu is open to prevent jumping */
    html, body{overflow-x: hidden; width: 100%; position: relative; margin: 0; padding: 0;}
    body.mobile-menu-active{overflow: hidden; position: fixed; width: 100%; height: 100%;}
}

/*********************************************************
    BLOG & ARCHIVE
*********************************************************/
.post-card{position: relative; display: flex; flex-direction: column; min-width: 0; word-wrap: break-word; background-clip: border-box; transition: 0.2s ease;}
.post-card:hover{transform: translateY(5px); overflow: hidden;}
.post-card__image{position: relative; aspect-ratio: 16/9; overflow: hidden;}
.post-card__image img{display: block; width: 100%; height: 100%; object-fit: cover;}


/*********************************************************
    ARTICLE
*********************************************************/
.article{width: 100%; max-width: 800px; margin: auto;}
.article a{text-decoration: underline;}
.article p{margin-top: 0; margin-bottom: 2.5rem;}
.article ol,ul,dl{margin-top: 0; margin-bottom: 2rem;}
.article ol ol,ul ul,ol ul,ul ol{margin-bottom: 0;}
.article li{margin-bottom: 0.25rem;}
.article iframe{margin-bottom: 2rem; width: 100%; max-width: 100%;}
.article blockquote{padding-left: 2.5rem; margin: 0; color: var(--body); opacity: 0.75; border-left: 5px solid var(--primary); font-style: italic; font-family: var(--text);}

/*********************************************************
    WORDPRESS
*********************************************************/
/* Core alignment classes */
.alignnone, .aligncenter, .alignright, .alignleft, img.alignnone, img.aligncenter, img.alignright, img.alignleft{max-width: 100%; height: auto;}
.aligncenter, div.aligncenter{display: block; margin: var(--space-3) auto;}
.alignright{float: right; margin: 0 0 var(--space-3) var(--space-3);}
.alignleft{float: left; margin: 0 var(--space-3) var(--space-3) 0;}

/* Caption styles */
.wp-caption{max-width: 100%; margin-bottom: var(--space-4);}
.wp-caption img{width: 100%; height: auto; display: block;}
.wp-caption-text{font-size: var(--font-size-xs); margin-top: var(--space-1); color: var(--dark-gray);}

/* Gutenberg blocks */
.wp-block-image{margin-bottom: var(--space-4); position: relative; display: block; overflow: hidden;}
.wp-block-image img{max-width: 100%; height: auto; display: block;}
.wp-block-image::after{content:""; position:absolute; inset:0; background-color: var(--lt-orange); mix-blend-mode:multiply; pointer-events:none;}
.wp-block-image.no-overlay{overflow: visible;}
.wp-block-image.no-overlay::after{display: none;}
.wp-block-image figcaption{position: relative; z-index: 2;}

/*********************************************************
    SERVICE COMPONENTS
*********************************************************/
/* Service Card */
.service-card{padding: var(--space-3); height: 100%; background-color: var(--lt-blue); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); border: 1px solid var(--primary); transition: transform 0.3s ease, box-shadow 0.3s ease;}
.service-card:hover{transform: translateY(-5px); box-shadow: var(--shadow-sm);}
.service-card--linked{position: relative;}
.service-card__overlay-link{position:absolute; inset:0; z-index:1; border-radius: inherit;}
.service-card__overlay-link:focus-visible{outline:3px solid var(--primary); outline-offset:4px;}
.service-card__content{position: relative; z-index:2;}
.service-card__image img{border-radius: var(--radius-sm); width: 100%; height: auto; display: block;}
.service-card__icon{font-size: 3rem; color: var(--primary); text-align: center; margin-bottom: var(--space-2);}
.service-card__title{font-size: var(--font-size-md); margin-bottom: var(--space-2);}
.service-card__description{color: var(--dark-gray); margin-bottom: var(--space-3);}
.service-card__link{font-weight: var(--font-weight-bold); color: var(--primary); text-decoration: none; display: inline-block; position: relative;}
.service-card__link:after{content: '→'; display: inline-block; margin-left: var(--space-1); transition: transform 0.2s ease;}
.service-card__link:hover:after{transform: translateX(5px);}


/*********************************************************
    TESTIMONIAL COMPONENTS
*********************************************************/
/* Testimonial Card */
.testimonial-card{padding: var(--space-3); height: 100%; background-color: var(--white); border-radius: var(--radius-md); box-shadow: var(--shadow-md); position: relative;}
.testimonial-card__quote{font-style: italic; position: relative;}
.testimonial-card__quote blockquote{margin: 0; padding: 0; border-left: none;}
.testimonial-card__author{display: flex; align-items: center; margin-top: var(--space-3);}
.testimonial-card__author-image{margin-right: var(--space-2); flex-shrink: 0;}
.testimonial-card__author-image img{width: 40px; height: 40px; object-fit: cover; border-radius: 50%; border: 1px solid var(--primary);}
.testimonial-card__author-info{flex: 1;}
.testimonial-card__author-name{font-weight: var(--font-weight-bold);}

/*********************************************************
    SPLIT SECTIONS
*********************************************************/
/* Section Label */
.section-label{font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: 1px; display: inline-block;}

/* Heading Underlines */
.heading-underline{position: relative; padding-top: var(--space-2); padding-bottom: var(--space-4);}
.heading-underline::after{content: ''; position: absolute; bottom: var(--space-2); left: 0; width: 100px; height: 3px; background-color: var(--orange);}
.heading-underline-center{position: relative; padding-top: var(--space-2); padding-bottom: var(--space-4);}
.heading-underline-center::after{content: ''; position: absolute; bottom: var(--space-2); left: 50%; transform: translateX(-50%); width: 100px; height: 3px; background-color: var(--orange);}

/* Split Section Components */
.split-section{position: relative; overflow: hidden;}
.split-section .lp-grid{gap: var(--space-5)!important;}
.split-section__image{margin-bottom: var(--space-3);}
.split-section__image img{width: 100%; height: auto; display: block; transition: transform 0.3s ease;}
.split-section__image:hover img{transform: scale(1.02);}
.split-section__text p:last-child{margin-bottom: 0;}

@media (max-width: 991.98px) {
  .split-section .lp-grid{gap: var(--space-4);}
}

@media (max-width: 767.98px) {
  .split-section .lp-grid{row-gap: var(--space-4); column-gap: var(--space-3);}
  .split-section__image{margin-bottom: var(--space-3);}
}

/* Service Page Layout */
.service-page-content{overflow: visible;}
.service-layout{display: flex; gap: var(--space-4); align-items: flex-start; flex-wrap: nowrap;}
.service-content{flex: 1 1 auto; min-width: 0;}
.service-sidebar{flex: 0 0 320px; position: sticky; top: var(--space-5); margin-top: -330px; align-self: flex-start;}
.service-sidebar__heading{font-size: var(--font-size-md-lg); font-family: var(--headline); line-height: 1.3; margin: 0 0 var(--space-2);}
.service-sidebar-copy{font-size: var(--font-size-sm); line-height: 1.6;}
.service-header-description{max-width: 600px;}
.service-header-description .page-description{font-size: var(--font-size-md);}
.service-sidebar .form-group label{font-size: var(--font-size-sm);}

@media (max-width: 991.98px) {
  .service-sidebar{flex: 0 0 260px;}
  .service-header-description{max-width: 470px;}
}

@media (max-width: 767.98px) {
  .service-layout{flex-direction: column;}
  .service-sidebar{position: static; width: 100%; margin-top: 0;}
  .service-header-description{max-width: 100%;}
  .service-page-content{padding-block: var(--space-4);}
}

/*********************************************************
    CTA COMPONENTS
*********************************************************/
/* Contact CTA */
.contact-cta{position: relative;}
.contact-cta__info{margin-top: var(--space-3);}
.contact-cta__info a{text-decoration: none;}
.contact-cta__info a:hover{text-decoration: underline;}

@media (max-width: 767.98px) {
  .contact-cta .btn{margin-top: var(--space-3);}
}

/*********************************************************
    FAQ SECTION
*********************************************************/
.faq-item{border: 1px solid var(--gray); border-radius: var(--radius-md); overflow: hidden; background-color: var(--white);}
.faq-question{margin: 0; font-size: var(--font-size-base);}
.faq-toggle{display: flex; width: 100%; justify-content: space-between; align-items: center; padding: var(--space-3); background: none; border: none; text-align: left; cursor: pointer; font-weight: var(--font-weight-bold); font-family: var(--headline); color: var(--text); transition: background-color 0.2s ease;}
.faq-toggle:hover{background-color: rgba(0, 0, 0, 0.02);}
.faq-toggle:focus{outline: none;}

/* FAQ icon and animations */
.faq-icon{position: relative; width: 16px; height: 16px; flex-shrink: 0; margin-left: var(--space-2);}
.faq-icon:before, .faq-icon:after{content: ''; position: absolute; background-color: var(--primary); transition: transform 0.25s ease-out;}
.faq-icon:before{top: 50%; left: 0; width: 100%; height: 2px; margin-top: -1px;}
.faq-icon:after{top: 0; left: 50%; width: 2px; height: 100%; margin-left: -1px;}
.faq-toggle[aria-expanded="true"] .faq-icon:after{transform: rotate(90deg);}
.faq-answer-inner{padding: 0 var(--space-3) var(--space-3) var(--space-3);}

/* Collapse animation */
.collapse{display: none;}
.collapse.show{display: block;}
.collapsing{position: relative; height: 0; overflow: hidden; transition: height 0.35s ease;}


/*********************************************************
    COOKIE BANNER
*********************************************************/

.cookie-banner{position:fixed; inset-inline:0; bottom:0; z-index:999; padding: var(--space-3); background: var(--white); color: var(--black); box-shadow: 0 -8px 30px rgba(0,0,0,0.12); transition: opacity 0.3s ease, transform 0.3s ease;}
.cookie-banner__inner{max-width: var(--container-width, 1250px); margin-inline:auto; display:flex; flex-wrap:wrap; align-items:center; gap: var(--space-3); justify-content:space-between;}
.cookie-banner__copy{margin:0; font-size: clamp(0.95rem, 0.92rem + 0.2vw, 1.05rem); line-height: var(--line-height-snug);}
.cookie-banner__link{color: var(--black); text-decoration: underline; font-weight: var(--font-weight-bold);}
.cookie-banner__link:hover{color: var(--primary);} 
.cookie-banner .btn-wrapper::before{top:6px; left:6px; right:-6px; bottom:-6px;}
.cookie-banner .btn{font-size: clamp(0.9rem, 0.88rem + 0.15vw, 1.05rem); padding: 0.65rem 1.4rem;}
.cookie-banner .btn:hover{transform:translate(6px,6px);}
.cookie-banner--accepted{opacity:0; transform: translateY(100%); pointer-events:none;}

@media (max-width: 767.98px) {
  .cookie-banner__inner{flex-direction:column; align-items:center; text-align:center;}
}