/*
Theme Name: Balmasch
Description: A basic custom theme for the Balmasch website
Author: Balmasch Team
Version: 1.0
*/

/* Reset and base styles */
* { margin: 0; padding: 0; box-sizing: border-box; }

/* Light Green Theme Variables */
:root {
    --color-bg: #f6faf4;
    --color-surface: #ffffff;
    --color-surface-alt: #edf5e7;
    --color-border: #d5e6cd;
    --color-primary: #7ac142;
    --color-primary-accent: #5b9e2c;
    --color-primary-soft: #cfecc0;
    --color-accent: #a3d84f;
    --color-text: #2f352d;
    --color-text-light: #5b6258;
    --color-shadow: rgba(0,0,0,0.06);
    --radius-sm: 4px;
    --radius-md: 8px;
    --transition-fast: .25s ease;
    --color-header-bg: #f5f5f5; /* matches logo background */
}

body { font-family: Arial, sans-serif; line-height: 1.6; color: var(--color-text); background: var(--color-bg); -webkit-font-smoothing: antialiased; }

/* Header */
header { background: var(--color-header-bg); color: var(--color-text); padding: .65rem 0; position: sticky; top: 0; z-index: 50; }

.site-title { font-size: 1.75rem; margin: 0; line-height: 1.1; }
.site-title a { color: var(--color-primary-accent); text-decoration: none; font-weight: 600; }

/* Header Layout */
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; position: relative; }
.site-branding { display: flex; align-items: center; gap: 1.25rem; min-width: 0; }
.logo-wrap { flex-shrink: 0; }
.site-logo { max-height: 51px; width: auto; display: block; height: auto; max-width: 240px; }
.title-group { display: flex; flex-direction: column; }
.site-description { margin: .25rem 0 0; font-size: .8rem; letter-spacing: .5px; color: var(--color-text-light); }

/* Mobile Menu Toggle */
.menu-toggle { display: none; background: var(--color-primary); border: none; padding: .65rem .75rem; border-radius: var(--radius-sm); cursor: pointer; }
.menu-toggle:focus-visible { outline: 2px solid var(--color-primary-accent); outline-offset: 2px; }
.menu-toggle-bar { display: block; width: 22px; height: 2px; background: #fff; margin: 4px 0; transition: var(--transition-fast); }
.menu-toggle[aria-expanded='true'] .menu-toggle-bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded='true'] .menu-toggle-bar:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded='true'] .menu-toggle-bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Primary Navigation */
.primary-nav { background: transparent; }
.primary-nav ul { list-style: none; display: flex; align-items: center; gap: 1.75rem; margin: 0; padding: 0; }
.primary-nav li { margin: 0; position: relative; }
.primary-nav a { color: var(--color-text); text-decoration: none; padding: .75rem 0; font-weight: 500; font-size: .95rem; position: relative; display: inline-block; }
.primary-nav a::after { content: ''; position: absolute; left: 0; bottom: .55rem; height: 3px; width: 0; background: linear-gradient(90deg,var(--color-primary), var(--color-accent)); border-radius: 2px; transition: width var(--transition-fast); }
.primary-nav a:hover::after, .primary-nav a:focus::after, .primary-nav .current-menu-item > a::after, .primary-nav .current_page_item > a::after { width: 100%; }

/* Dropdown */
.primary-nav .sub-menu { position: absolute; left: 0; top: 100%; background: var(--color-surface); padding: .75rem 0; margin: 0; list-style: none; min-width: 220px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); box-shadow: 0 8px 24px -4px rgba(0,0,0,.12); display: none; z-index: 100; }
.primary-nav li:hover > .sub-menu, .primary-nav li:focus-within > .sub-menu { display: block; }
.primary-nav .sub-menu li { width: 100%; }
.primary-nav .sub-menu a { padding: .55rem 1rem; display: block; font-size: .85rem; }
.primary-nav .sub-menu a::after { display: none; }
.primary-nav .sub-menu a:hover { background: var(--color-primary-soft); color: var(--color-primary-accent); }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

/* Legacy nav styles fallback (if other navs appear elsewhere) */
nav:not(.primary-nav) { background-color: var(--color-surface-alt); padding: 0.5rem 0; }
nav:not(.primary-nav) ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; }
nav:not(.primary-nav) li { margin: 0 1rem; }
nav:not(.primary-nav) a { color: var(--color-text); text-decoration: none; padding: 0.5rem; display: block; }
nav:not(.primary-nav) a:hover { background-color: var(--color-primary-soft); border-radius: 3px; }

/* Main content */
main { max-width: 1200px; margin: 2rem auto; padding: 0 1rem; background-color: var(--color-surface); border-radius: 5px; box-shadow: 0 2px 5px var(--color-shadow); }

.content {
    padding: 2rem;
}

/* Posts */
.post {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #eee;
}

.post:last-child {
    border-bottom: none;
}

.post-title { font-size: 1.8rem; margin-bottom: 0.5rem; color: var(--color-primary-accent); }
.post-title a { color: var(--color-primary-accent); text-decoration: none; }
.post-title a:hover { color: var(--color-primary); }

/* Sidebar */
.sidebar { background-color: #ecf0f1; padding: 1rem; margin-top: 2rem; border-radius: 5px; }

.widget {
    margin-bottom: 2rem;
}

.widget-title { font-size: 1.2rem; margin-bottom: 1rem; color: var(--color-primary-accent); border-bottom: 2px solid var(--color-primary); padding-bottom: 0.5rem; }

/* Footer */
footer.site-footer { background: var(--color-surface); color: var(--color-text-light); padding: 3rem 0 2rem; margin-top: 2rem; border-top: 1px solid var(--color-border); }
.footer-widgets { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); max-width: 1200px; margin: 0 auto 2rem; padding: 0 1.25rem; }
.footer-column .widget { text-align: left; }
.footer-column .widget-title { font-size: 1rem; margin: 0 0 .75rem; color: var(--color-primary-accent); font-weight: 600; }
.footer-column p { font-size: .85rem; line-height: 1.5; }
.site-info { text-align: center; font-size: .8rem; color: var(--color-text-light); opacity: .85; }
@media (max-width: 600px){
    .footer-widgets { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px){
    .footer-widgets { grid-template-columns: 1fr; }
}

/* Responsive design */
@media (max-width: 900px) {
    .primary-nav { position: absolute; inset: calc(100% + 4px) 0 auto 0; background: var(--color-surface); border-bottom: 1px solid var(--color-border); box-shadow: 0 8px 16px -4px rgba(0,0,0,.08); display: none; }
    .primary-nav.open { display: block; }
    .primary-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
    .primary-nav a { padding: .9rem 1.25rem; }
    .primary-nav li { width: 100%; }
    .primary-nav .sub-menu { position: static; border: 0; box-shadow: none; padding: 0; display: none !important; }
    .menu-toggle { display: inline-block; }
    .header-inner { flex-wrap: wrap; align-items: center; }
    .site-branding { flex: 1 1 auto; }
}

/* Front Page Styles */
.front-page {
    margin: 0;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Hero Section */
.hero-section {
    background: linear-gradient(135deg, #2c3e50 0%, #3498db 100%);
    color: white;
    padding: 4rem 0;
    text-align: center;
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 1rem;
}

.hero-title {
    font-size: 3.5rem;
    margin-bottom: 1rem;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

.hero-description {
    font-size: 1.2rem;
    margin-bottom: 1.5rem;
    opacity: 0.9;
}

.hero-text {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    opacity: 0.8;
    line-height: 1.6;
}

.hero-buttons {
    margin-top: 2rem;
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 24px;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    transition: all 0.3s ease;
    margin: 0 10px;
    border: 2px solid transparent;
}

.btn-primary {
    background-color: #e74c3c;
    color: white;
}

.btn-primary:hover {
    background-color: #c0392b;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

.btn-secondary {
    background-color: transparent;
    color: white;
    border: 2px solid white;
}

.btn-secondary:hover {
    background-color: white;
    color: #2c3e50;
    transform: translateY(-2px);
}

.btn-outline {
    background-color: transparent;
    color: #3498db;
    border: 2px solid #3498db;
}

.btn-outline:hover {
    background-color: #3498db;
    color: white;
}

/* Section Styles */
.featured-section,
.recent-posts-section {
    padding: 4rem 0;
    background-color: white;
}

.recent-posts-section {
    background-color: #f8f9fa;
}

.section-title {
    text-align: center;
    font-size: 2rem; /* Reduced ~20% from 2.5rem */
    margin-bottom: 3rem;
    color: #2c3e50;
}

/* Featured Grid */
.featured-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-bottom: 2rem;
}

.featured-item {
    background-color: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.featured-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0,0,0,0.2);
}

.featured-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.featured-content {
    padding: 1.5rem;
}

.featured-title {
    margin-bottom: 1rem;
}

.featured-title a {
    color: #2c3e50;
    text-decoration: none;
}

.featured-title a:hover {
    color: #3498db;
}

.featured-excerpt {
    color: #666;
    margin-bottom: 1rem;
    line-height: 1.6;
}

.read-more {
    color: #3498db;
    text-decoration: none;
    font-weight: bold;
}

.read-more:hover {
    color: #2980b9;
}

/* Posts Grid */
.posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: 3rem;
}

.post-item {
    background-color: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.post-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.post-item-image {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.post-item-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.post-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.post-item:hover .post-item-image img {
    transform: scale(1.05);
}

.post-item-content {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--color-border); /* Soft divider from image */
    margin-top: 0; /* ensure no gap */
}

.post-item-title {
    margin-bottom: 0.75rem;
    flex-grow: 1;
}

.post-item-title a {
    color: #2c3e50;
    text-decoration: none;
    font-weight: 600;
    line-height: 1.3;
    display: block;
}

.post-item-title a:hover {
    color: #3498db;
}

.post-item-meta {
    color: #666;
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding-top: .25rem;
    padding-bottom: .35rem;
    border-bottom: 1px solid rgba(0,0,0,0.06); /* subtle separator below date and above excerpt */
}

.post-item-meta .post-date {
    background: var(--color-surface-alt);
    border: 1px solid var(--color-border);
    padding: .3rem .75rem;
    border-radius: 999px;
    font-size: .7rem;
    letter-spacing: .5px;
    font-weight: 600;
    color: var(--color-text-light);
    text-transform: none;
    line-height: 1;
    white-space: nowrap;
}

.post-item-meta span {
    margin-right: 1rem;
}

.post-item-excerpt {
    color: #555;
    line-height: 1.6;
    font-size: 0.9rem;
}

.view-all-posts {
    text-align: center;
}

/* Call to Action Section */
.cta-section {
    background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%);
    color: white;
    padding: 4rem 0;
    text-align: center;
}

.cta-content {
    /* Expanded width to reduce wrapping of CTA title */
    max-width: 80%;
    margin: 0 auto;
}

/* Ensure mobile still uses full width for readability */
@media (max-width: 768px) {
    .cta-content { max-width: 100%; }
}

.cta-title {
    /* Reduced to avoid wrapping Spanish sentence */
    font-size: 1.8rem;
    margin-bottom: 1rem;
}

.cta-description {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    opacity: 0.9;
}


.cta-buttons {
    margin-top: 2rem;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .posts-grid {
    /* Changed to single column for tablet per request */
    grid-template-columns: 1fr;
    gap: 1.5rem;
    }
}

@media (max-width: 768px) {
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-description {
        font-size: 1rem;
    }
    
    .featured-grid {
        grid-template-columns: 1fr;
    }
    
    .posts-grid {
        grid-template-columns: 1fr;
    }
    
    .post-item-image {
        height: 180px;
    }
    
    .btn {
        display: block;
        margin: 10px 0;
        text-align: center;
    }
    
    .section-title {
        font-size: 2rem;
    }
    
    .cta-title {
        font-size: 1.8rem;    }
}

@media (max-width:480px){
    .cta-title{font-size:1.85rem;}
}

/* === Enhanced Front Page Overrides (appended to override earlier definitions) === */
main.front-page { max-width: none; margin: 0; padding: 0; background: transparent; border-radius: 0; box-shadow: none; }

/* Hero Section (green animated gradient) */
.front-page .hero-section { --hero-grad-1:#132112; --hero-grad-2:#1f3b18; --hero-grad-3:#2e6a1d; --hero-grad-4:var(--color-primary); position:relative; isolation:isolate; background:linear-gradient(115deg,var(--hero-grad-1) 0%,var(--hero-grad-2) 28%,var(--hero-grad-3) 55%,var(--hero-grad-4) 92%); background-size:180% 180%; animation:heroGradient 14s ease-in-out infinite alternate; color:#fff; padding:clamp(4rem,10vh,8rem) 0 5rem; text-align:center; min-height:68vh; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.front-page .hero-section::before,.front-page .hero-section::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 32%,rgba(255,255,255,.12),transparent 60%),radial-gradient(circle at 82% 68%,rgba(255,255,255,.10),transparent 65%);mix-blend-mode:overlay;pointer-events:none;animation:heroGlow 18s linear infinite;} .front-page .hero-section::after{filter:blur(40px);opacity:.55;}

.front-page .hero-content{max-width:880px;margin:0 auto;padding:0 1.25rem;}
.front-page .hero-content > *{opacity:0;transform:translateY(28px);animation:fadeUp .9s var(--transition-fast) forwards;}
.front-page .hero-content > *:nth-child(1){animation-delay:.15s;} .front-page .hero-content > *:nth-child(2){animation-delay:.3s;} .front-page .hero-content > *:nth-child(3){animation-delay:.45s;} .front-page .hero-content > *:nth-child(4){animation-delay:.6s;}
.front-page .hero-title{font-size:clamp(2.75rem,7vw,4.25rem);margin:0 0 1rem;font-weight:700;letter-spacing:.5px;line-height:1.05;text-shadow:0 4px 18px rgba(0,0,0,.3);} 
.front-page .hero-description{font-size:clamp(1.05rem,1.9vw,1.35rem);margin:0 0 1.25rem;opacity:.92;font-weight:500;}
.front-page .hero-text{font-size:1.05rem;margin:0 auto 2.2rem;opacity:.85;line-height:1.65;max-width:60ch;}
.front-page .hero-buttons{margin-top:2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;}

/* Button restyle */
.front-page .btn{display:inline-block;padding:.85rem 1.7rem;text-decoration:none;border-radius:var(--radius-sm);font-weight:600;letter-spacing:.4px;line-height:1;position:relative;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);border:2px solid transparent;}
.front-page .btn-primary{background:linear-gradient(90deg,var(--color-primary-accent),var(--color-primary));color:#fff;box-shadow:0 4px 14px -4px rgba(0,0,0,.4),0 0 0 0 rgba(122,193,66,.55);} 
.front-page .btn-primary:hover,.front-page .btn-primary:focus-visible{transform:translateY(-3px);box-shadow:0 8px 22px -6px rgba(0,0,0,.5),0 0 0 4px rgba(122,193,66,.28);} 
.front-page .btn-secondary{background:rgba(255,255,255,.08);color:#fff;border:2px solid rgba(255,255,255,.55);backdrop-filter:blur(3px);} 
.front-page .btn-secondary:hover,.front-page .btn-secondary:focus-visible{background:rgba(255,255,255,.18);border-color:#fff;transform:translateY(-3px);} 
.front-page .btn-outline{background:transparent;color:var(--color-primary-accent);border:2px solid var(--color-primary-accent);} 
.front-page .btn-outline:hover,.front-page .btn-outline:focus-visible{background:var(--color-primary-accent);color:#fff;}

/* Section backgrounds full width */
.front-page .featured-section,.front-page .recent-posts-section{padding:4rem 0;background:var(--color-surface);} 
.front-page .recent-posts-section{background:var(--color-surface-alt);} 
.front-page .section-title{font-size:clamp(1.6rem,4.5vw,2.1rem);margin:0 0 3rem;color:var(--color-primary-accent);font-weight:700;letter-spacing:.5px;} /* Adjusted ~20% smaller overall */

/* Front page posts grid enhancements */
.front-page .posts-grid {
    gap: 2rem;
}

.front-page .post-item {
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    transition: all 0.3s var(--transition-fast);
}

.front-page .post-item:hover {
    border-color: var(--color-primary-soft);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

/* CTA updated gradient */
.front-page .cta-section{position:relative;background:linear-gradient(110deg,var(--color-primary-accent) 0%, var(--color-primary) 55%, var(--color-accent) 100%);color:#fff;padding:4.5rem 0;text-align:center;overflow:hidden;}
.front-page .cta-section::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 40%, rgba(255,255,255,.2), transparent 60%);mix-blend-mode:overlay;pointer-events:none;}

/* Responsive overrides */
@media (max-width:1024px){
    .front-page .posts-grid {
    /* Match tablet breakpoint: single column */
    grid-template-columns: 1fr;
    gap: 1.5rem;
    }
}

@media (max-width:768px){
    .front-page .hero-title{font-size:clamp(2.2rem,10vw,2.9rem);} 
    .front-page .hero-content > *{transform:none;} 
    .front-page .btn{margin:.35rem .5rem;}
    .front-page .posts-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* Animations */
@keyframes heroGradient{0%{background-position:0% 50%;}100%{background-position:100% 50%;}}
@keyframes heroGlow{0%{opacity:.65;}50%{opacity:.4;}100%{opacity:.65;}}
@keyframes fadeUp{0%{opacity:0;transform:translateY(28px);}100%{opacity:1;transform:translateY(0);}}

@media (prefers-reduced-motion:reduce){
    .front-page .hero-section,.front-page .hero-section::before,.front-page .hero-section::after{animation:none !important;} 
    .front-page .hero-content > *{animation:none !important;opacity:1;transform:none;} 
}

/* Allow full-width content inside sections on front page */
.front-page .container { max-width: none; width: 100%; padding-left: clamp(1rem,4vw,3.5rem); padding-right: clamp(1rem,4vw,3.5rem); }

/* === ¿Por qué Balmasch? Section === */
.porque-balmasch-section { background: var(--color-surface); padding: 4rem 0; }
.front-page .porque-balmasch-section { background: var(--color-surface); }
.porque-balmasch-section .section-title { margin-bottom: 1.5rem; font-size: clamp(1.6rem,4.5vw,2.1rem); color: var(--color-primary-accent); text-align: center; }
.porque-balmasch-text { max-width: 850px; margin: 0 auto; font-size: 1.15rem; line-height: 1.55; color: var(--color-text-light); text-align: center; }
@media (max-width:768px){ .porque-balmasch-text { font-size: 1rem; } }

/* === Valores (Values) Section === */
.values-section { background: var(--color-surface-alt); padding: 3.5rem 0 4rem; position: relative; overflow: hidden; }
.values-section::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 15% 20%,rgba(122,193,66,.18),transparent 60%), radial-gradient(circle at 85% 78%, rgba(163,216,79,.18), transparent 65%); mix-blend-mode:overlay; pointer-events:none; }
.values-title { text-align:center; color: var(--color-primary-accent); margin:0 0 2.5rem; }
.values-grid { display:grid; gap:2rem; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); max-width:1200px; margin:0 auto; }
.value-card { background: var(--color-surface); border:1px solid var(--color-border); border-radius: 18px; padding: 1.85rem 1.6rem 1.9rem; position:relative; box-shadow:0 4px 18px -6px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.06); transition: box-shadow var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast); display:flex; flex-direction:column; align-items:center; text-align:center; }
.value-card::after { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(140deg, rgba(122,193,66,.18), rgba(163,216,79,.06)); opacity:0; transition:opacity var(--transition-fast); pointer-events:none; }
.value-card:hover { transform:translateY(-6px); box-shadow:0 10px 34px -10px rgba(0,0,0,.18),0 4px 14px rgba(0,0,0,.08); border-color: var(--color-primary-soft); }
.value-card:hover::after { opacity:1; }
.value-icon { width:64px; height:64px; margin:0 auto 1.25rem; filter: drop-shadow(0 4px 10px rgba(0,0,0,.15)); flex-shrink:0; }
.value-icon svg { width:100%; height:100%; display:block; }
.value-body { display:flex; flex-direction:column; justify-content:center; }
.value-card-title { font-size:1.05rem; margin:0 0 .75rem; font-weight:700; letter-spacing:.3px; color: var(--color-primary-accent); text-transform: none; }
.value-card-text { font-size:.95rem; line-height:1.5; color: var(--color-text-light); margin:0; }
@media (max-width:768px){
    .values-section { padding:3rem 0 3.25rem; }
    .values-grid { grid-template-columns:1fr; }
    .value-card { padding:1.15rem 1.1rem 1.2rem; flex-direction:row; align-items:center; text-align:left; gap:.9rem; }
    .value-icon { width:52px; height:52px; margin:0; display:flex; align-items:center; justify-content:center; }
    .value-body { flex:1; margin-left:.35rem; padding-left:.9rem; border-left:2px solid var(--color-primary-soft); }
    .value-card-title { font-size:1rem; margin:0 0 .4rem; }
    .value-card-text { font-size:.9rem; }
}

/* Tablet breakpoint: collapse values to single column earlier (<= 950px) */
@media (max-width:950px){
    .values-grid { grid-template-columns:1fr; }
    .value-card { flex-direction:row; align-items:center; text-align:left; }
    .value-icon { margin:0; }
    .value-body { margin-left:.4rem; padding-left:1rem; border-left:2px solid var(--color-primary-soft); }
}

/* === Clientes Carousel Fix ===
   Prevent horizontal page expansion & scrollbar when carousel animates.
   We force the track wrapper to clip translated content and make the list a flex row.
   Using !important because some plugin/style sets overflow: visible inline or with equal specificity. */
.balmasch-clientes-track-wrapper { 
    overflow: hidden !important; /* clip moving track */
    position: relative; /* ensure positioned for any abs children */
    max-width: 100%;
    contain: layout paint; /* isolate for perf & prevent accidental overflow calculations */
}

/* Fallback for very new browsers that support overflow: clip; keep hidden for broader support */
@supports (overflow: clip) {
  .balmasch-clientes-track-wrapper { overflow: clip !important; }
}

.balmasch-clientes-track-wrapper .balmasch-clientes-list { 
    display: flex; 
    flex-wrap: nowrap; 
    list-style: none; 
    margin: 0; 
    padding: 0; 
    gap: 2rem; /* adjust spacing if desired */
    will-change: transform; 
}

.balmasch-clientes-track-wrapper .balmasch-clientes-item { 
    flex: 0 0 auto; 
}

/* Safety: ensure no element on page can create horizontal scroll if some other script injects widths */
html, body { overflow-x: hidden; }

/* === Primary Navigation Link Redesign ===
   Green links with smooth bottom border separators & hover effect */
.primary-nav a { 
    color: var(--color-primary-accent); 
    font-weight: 600; 
    position: relative; 
    padding: .75rem 0.85rem .9rem; 
    border-bottom: 2px solid transparent; 
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast); 
}

/* Remove earlier underline pseudo so new border style is dominant */
.primary-nav a::after { content: none !important; }

.primary-nav a:hover, .primary-nav a:focus-visible { 
    color: var(--color-primary); 
    border-bottom-color: var(--color-primary); 
    background: linear-gradient(90deg, rgba(122,193,66,.12), rgba(163,216,79,.18));
    border-radius: 3px 3px 0 0; 
}

/* === Generic Menu Items (fallback if nav lacks .primary-nav class) === */
.menu-item > a {
    color: var(--color-primary-accent);
    text-decoration: none;
    font-weight: 600;
    position: relative;
    display: inline-block;
    padding: .65rem .75rem .7rem;
    border-bottom: 2px solid transparent;
    transition: color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);
}

.menu-item > a:hover, .menu-item > a:focus-visible {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary);
    background: linear-gradient(90deg, rgba(122,193,66,.10), rgba(163,216,79,.15));
    border-radius: 3px 3px 0 0;
    outline: none;
}

.current-menu-item > a, .current_page_item > a {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary-accent);
}

/* Footer / widget menus: slimmer padding */
footer .menu-item > a { padding: .4rem .35rem .5rem; font-weight:500; }
footer .menu-item > a:hover { background: transparent; }

/* Active/current page indicator */
.primary-nav .current-menu-item > a, .primary-nav .current_page_item > a { 
    color: var(--color-primary); 
    border-bottom-color: var(--color-primary-accent); 
}

/* Mobile stacked menu: add subtle separators between items */
@media (max-width: 900px) {
  .primary-nav li:not(:last-child) > a { 
      border-bottom: 1px solid var(--color-border); 
      border-radius: 0; 
  }
  .primary-nav a { padding: .95rem 1.15rem; }
  .primary-nav a:hover, .primary-nav a:focus-visible { border-bottom-color: var(--color-primary); }
}

/* === Footer Enhanced Background Effect === */
footer.site-footer {
    position: relative;
    background: linear-gradient(135deg, #f6faf4 0%, #eef7ea 40%, #ffffff 100%);
    overflow: hidden;
}
footer.site-footer::before,
footer.site-footer::after { content:""; position:absolute; inset:0; pointer-events:none; }
footer.site-footer::before { 
    background: linear-gradient(120deg, rgba(122,193,66,0.10) 0%, rgba(163,216,79,0.05) 35%, rgba(255,255,255,0) 60%) no-repeat; 
    mix-blend-mode: multiply; 
    animation: footerSheen 14s ease-in-out infinite alternate; 
    background-size: 180% 180%;
}
footer.site-footer::after { 
    background:
        radial-gradient(circle at 18% 30%, rgba(122,193,66,0.18), transparent 60%),
        radial-gradient(circle at 82% 70%, rgba(163,216,79,0.15), transparent 65%),
        repeating-linear-gradient(45deg, rgba(122,193,66,0.06) 0 2px, rgba(122,193,66,0) 2px 16px);
    opacity:.55;
}
@keyframes footerSheen { 0% { background-position:0% 40%; } 100% { background-position:100% 60%; } }
@media (prefers-reduced-motion:reduce){ footer.site-footer::before { animation:none; } }

/* Footer top divider (override earlier light border) */
footer.site-footer { border-top: 4px solid var(--color-primary-accent); box-shadow: 0 -1px 0 rgba(0,0,0,0.04) inset; }
/* Remove default vertical gap above footer */
footer.site-footer { margin-top: 0; }
/* Slightly reduce bottom padding of CTA if directly above footer to tighten space */
.cta-section { padding-bottom: 3rem; }

/* ========================= */
/* Modern Internal Page UI   */
/* ========================= */
.page-hero { position:relative; min-height: clamp(320px,42vh,520px); display:flex; align-items:flex-end; padding:0; isolation:isolate; background: linear-gradient(115deg,#132112,#1f3b18); overflow:hidden; }
.page-hero::before { content:""; position:absolute; inset:0; background: var(--hero-bg, none); background-size:cover; background-position:center; filter: brightness(.75) saturate(.9) contrast(1.05); transform:scale(1.04); }
.page-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.15) 0%, rgba(19,33,18,.88) 85%); mix-blend-mode: multiply; }
.page-hero-shape { position:absolute; inset:0; background:
    radial-gradient(circle at 18% 32%,rgba(122,193,66,.35),transparent 60%),
    radial-gradient(circle at 82% 68%,rgba(163,216,79,.25),transparent 65%);
    opacity:.55; pointer-events:none; }
.page-hero-inner { position:relative; z-index:2; padding: clamp(3rem,7vh,5.5rem) clamp(1rem,4vw,3.5rem) clamp(2.25rem,5vh,3.5rem); width:100%; }
.page-hero-title { margin:0 0 .75rem; font-size: clamp(2.1rem,6vw,3.4rem); line-height:1.05; letter-spacing:.5px; color:#fff; font-weight:700; text-shadow:0 4px 18px rgba(0,0,0,.45); }
.page-hero-excerpt { max-width: 760px; font-size: clamp(1rem,1.4vw,1.15rem); line-height:1.55; color: #f0f5ed; font-weight:400; margin:0; opacity:.92; }
@media (max-width:680px){ .page-hero-title { font-size: clamp(1.85rem,8vw,2.4rem);} }

/* Page Layout */
.page-modern { background: linear-gradient(180deg, var(--color-bg) 0%, #ffffff 120%); position:relative; }
.page-layout { display:grid; grid-template-columns: minmax(0,1fr) 320px; gap: clamp(2rem,4vw,3rem); align-items:start; padding: clamp(2.5rem,5vh,3.5rem) clamp(1.2rem,4vw,3.5rem) clamp(3rem,8vh,4rem); max-width: 1400px; margin:0 auto; }
/* Variant without sidebar */
.page-layout.page-full { grid-template-columns: minmax(0,1fr); max-width: 1200px; }
.page-layout.page-full .page-article { margin: 0 auto; }
@media (max-width:1100px){ .page-layout { grid-template-columns: minmax(0,1fr) 280px; } }
@media (max-width:960px){ .page-layout { grid-template-columns: 1fr; } .page-layout .sidebar { order:2; } }

/* Article */
.page-article { background: var(--color-surface); border:1px solid var(--color-border); border-radius: 22px; padding: clamp(1.75rem,3vw,3rem) clamp(1.5rem,2.8vw,2.75rem) clamp(2rem,3vw,2.75rem); box-shadow: 0 8px 34px -10px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.04); position:relative; overflow:hidden; }
.page-article::before { content:""; position:absolute; inset:0; background:linear-gradient(140deg, rgba(122,193,66,.08), rgba(163,216,79,.06)); opacity:0; transition:opacity var(--transition-fast); pointer-events:none; }
.page-article:hover::before { opacity:1; }
.page-meta-bar { height:6px; background:linear-gradient(90deg,var(--color-primary-accent),var(--color-primary),var(--color-accent)); border-radius:4px; margin:-.3rem 0 1.5rem; box-shadow:0 2px 6px -2px rgba(0,0,0,.25); }

/* Sidebar restyle */
.page-layout .sidebar { background: var(--color-surface); border:1px solid var(--color-border); border-radius:18px; padding:1.5rem 1.4rem 2rem; box-shadow:0 4px 24px -8px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.04); position:sticky; top:90px; }
@media (max-width:960px){ .page-layout .sidebar { position:static; margin-top:.5rem; } }
.page-layout .widget-title { border:0; padding:0 0 .35rem; margin:0 0 .9rem; font-size:1rem; letter-spacing:.4px; font-weight:700; text-transform:uppercase; color:var(--color-primary-accent); position:relative; }
.page-layout .widget-title::after { content:""; position:absolute; left:0; bottom:0; width:38px; height:3px; background:linear-gradient(90deg,var(--color-primary-accent),var(--color-accent)); border-radius:2px; }
.page-layout .widget { background: linear-gradient(180deg,#fff,#f9fcf7); border:1px solid var(--color-border); padding:1.05rem .95rem 1.1rem; border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.05); }
.page-layout .widget:not(:last-child){ margin-bottom:1.35rem; }
.page-layout .widget ul { list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.page-layout .widget li a { display:block; padding:.55rem .65rem; text-decoration:none; border-radius:8px; font-size:.85rem; line-height:1.3; font-weight:500; color:var(--color-text-light); background:rgba(0,0,0,.015); transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast); }
.page-layout .widget li a:hover { background:var(--color-primary-soft); color:var(--color-primary-accent); transform:translateX(3px); }

/* Prose content (typography) */
.prose { --p-color: var(--color-text-light); }
.prose p { margin:0 0 1.2rem; color:var(--p-color); font-size:1rem; line-height:1.7; }
.prose h1, .prose h2, .prose h3, .prose h4, .prose h5 { font-weight:700; line-height:1.15; letter-spacing:.5px; color: var(--color-primary-accent); margin: 2.2rem 0 1rem; scroll-margin-top: 90px; }
.prose h1 { font-size: clamp(2rem,5vw,2.8rem); }
.prose h2 { font-size: clamp(1.6rem,4vw,2.1rem); }
.prose h3 { font-size: clamp(1.25rem,3vw,1.5rem); }
.prose h4 { font-size: clamp(1.05rem,2vw,1.2rem); }
.prose h5 { font-size: clamp(.95rem,1.8vw,1.05rem); text-transform:uppercase; letter-spacing:1px; }
.prose h1:first-child, .prose h2:first-child { margin-top:0; }
.prose strong { color: var(--color-primary-accent); font-weight:600; }
.prose img { max-width:100%; height:auto; border-radius:14px; display:block; margin:1.5rem auto; box-shadow:0 8px 30px -10px rgba(0,0,0,.25),0 2px 8px rgba(0,0,0,.15); }
.prose a { color: var(--color-primary-accent); text-decoration: none; position:relative; font-weight:600; }
.prose a::after { content:""; position:absolute; left:0; bottom:-2px; height:2px; width:100%; background:linear-gradient(90deg,var(--color-primary-accent),var(--color-accent)); transform:scaleX(0); transform-origin:left; transition:transform var(--transition-fast); }
.prose a:hover::after { transform:scaleX(1); }
.prose blockquote { margin:2rem 0; padding:1.25rem 1.5rem 1.25rem 1.25rem; background:linear-gradient(115deg,#f3fbea,#e6f3db); border-left:6px solid var(--color-primary-accent); border-radius:14px; font-style:italic; color:var(--color-text-light); box-shadow:0 4px 16px -6px rgba(0,0,0,.08); position:relative; }
.prose blockquote::before { content:"\201C"; position:absolute; left:12px; top:-16px; font-size:5rem; line-height:1; color:var(--color-primary-soft); opacity:.45; }
.prose ul, .prose ol { margin: 0 0 1.4rem 1.4rem; padding:0; color:var(--color-text-light); font-size:1rem; line-height:1.7; }
.prose ul { list-style: disc outside; }
.prose ol { list-style: decimal outside; }
.prose li { margin:.4rem 0 .4rem; }
.prose li::marker { color: var(--color-primary-accent); font-weight:600; }
.prose hr { border:0; height:2px; background:linear-gradient(90deg,transparent,var(--color-primary-soft),transparent); margin:3rem 0; opacity:.9; }

/* Accessibility: focus outline inside article */
.page-article a:focus-visible, .page-layout .sidebar a:focus-visible { outline:2px solid var(--color-primary-accent); outline-offset:2px; border-radius:4px; }

/* Tables */
.prose table { width:100%; border-collapse:collapse; margin:2rem 0; font-size:.9rem; }
.prose table th, .prose table td { padding:.75rem .9rem; border:1px solid var(--color-border); text-align:left; }
.prose table th { background:var(--color-surface-alt); color:var(--color-primary-accent); font-weight:600; }
.prose table tr:nth-child(even) td { background:#f9fbf7; }

/* Callout utility */
.callout { border:1px solid var(--color-primary-soft); background:linear-gradient(120deg,#f5fbea,#eef6e3); padding:1.2rem 1.3rem; border-radius:14px; margin:1.75rem 0; position:relative; }
.callout::before { content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:linear-gradient(180deg,var(--color-primary-accent),var(--color-accent)); border-radius:14px 0 0 14px; }
.callout-title { font-weight:700; margin:0 0 .4rem; letter-spacing:.4px; color:var(--color-primary-accent); }

/* Image gallery grid (if Gutenberg outputs plain images stacked) */
.prose .wp-block-image { margin:1.2rem 0; }
.prose .wp-block-gallery { margin:2rem 0; }
.prose figure { margin:1.3rem 0; }
.prose figcaption { font-size:.75rem; text-align:center; margin-top:.5rem; color:var(--color-text-light); letter-spacing:.3px; }

/* Smooth fade-in for hero content */
.page-hero-title, .page-hero-excerpt { opacity:0; animation: fadeUp .9s ease forwards; }
.page-hero-title { animation-delay:.15s; }
.page-hero-excerpt { animation-delay:.35s; }

/* === Flat page variant (no rounded corners / shadows) === */
.page-article { border-radius:0 !important; box-shadow:none !important; }
.page-layout.page-full .page-article { border-radius:0 !important; }
.page-layout .widget, .page-layout .sidebar, .page-layout .widget-title, .page-layout .widget li a { border-radius:0 !important; box-shadow:none !important; }

/* ======================= */
/* Contact Page Redesign   */
/* ======================= */
/* Layout */
body.page-id-6192 .page-article { border:0; background:linear-gradient(180deg,#fff,#fafdf8); }
body.page-id-6192 .page-article .post-content > h1:first-child { margin-top:0; }
body.page-id-6192 form#wpforms-form-6192 { 
    --field-gap:1.25rem; 
    --field-pad:.75rem .85rem; 
    --field-radius:10px; 
    --field-border:1px solid var(--color-border); 
    display:grid; 
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); 
    gap:var(--field-gap) 1.5rem; 
    align-items:start; 
    margin:2rem 0 2.5rem; 
    background:linear-gradient(145deg,#ffffff 0%,#f4f9ef 55%,#eef6e8 100%); 
    padding:2rem clamp(1rem,3vw,2.25rem); 
    border:1px solid var(--color-border); 
    border-radius:18px; 
    box-shadow:0 8px 34px -14px rgba(0,0,0,.14),0 2px 8px rgba(0,0,0,.05); 
}
@media (max-width:640px){ body.page-id-6192 form#wpforms-form-6192 { grid-template-columns:1fr; padding:1.5rem 1.1rem; border-radius:14px; } }

/* Base field styling */
body.page-id-6192 form#wpforms-form-6192 label { font-size:.8rem; font-weight:600; letter-spacing:.5px; text-transform:uppercase; color:var(--color-primary-accent); display:block; margin:0 0 .45rem; }
body.page-id-6192 form#wpforms-form-6192 input[type=text],
body.page-id-6192 form#wpforms-form-6192 input[type=tel],
body.page-id-6192 form#wpforms-form-6192 input[type=email],
body.page-id-6192 form#wpforms-form-6192 select,
body.page-id-6192 form#wpforms-form-6192 textarea { 
    width:100%; 
    padding:var(--field-pad); 
    border:var(--field-border); 
    border-radius:var(--field-radius); 
    font:inherit; 
    background:#fff; 
    line-height:1.3; 
    color:var(--color-text); 
    box-shadow:0 1px 2px rgba(0,0,0,.04) inset; 
    transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast); 
}
body.page-id-6192 form#wpforms-form-6192 textarea { min-height:150px; resize:vertical; }
body.page-id-6192 form#wpforms-form-6192 input:focus,
body.page-id-6192 form#wpforms-form-6192 select:focus,
body.page-id-6192 form#wpforms-form-6192 textarea:focus { 
    outline:none; 
    border-color:var(--color-primary-accent); 
    box-shadow:0 0 0 3px rgba(122,193,66,.25); 
}

/* Checkbox groups */
body.page-id-6192 form#wpforms-form-6192 ul { list-style:none; margin:.25rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; }
body.page-id-6192 form#wpforms-form-6192 ul li { margin:0; display:flex; align-items:center; gap:.45rem; }
body.page-id-6192 form#wpforms-form-6192 input[type=checkbox] { width:18px; height:18px; border:1px solid var(--color-border); border-radius:5px; appearance:none; display:grid; place-items:center; background:#fff; cursor:pointer; transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); }
body.page-id-6192 form#wpforms-form-6192 input[type=checkbox]::after { content:""; width:10px; height:10px; clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%); background:transparent; transform:scale(.6); transition:background var(--transition-fast); }
body.page-id-6192 form#wpforms-form-6192 input[type=checkbox]:checked { background:linear-gradient(90deg,var(--color-primary-accent),var(--color-primary)); border-color:var(--color-primary-accent); box-shadow:0 0 0 2px rgba(122,193,66,.25); }
body.page-id-6192 form#wpforms-form-6192 input[type=checkbox]:checked::after { background:#fff; }
body.page-id-6192 form#wpforms-form-6192 input[type=checkbox]:focus-visible { outline:2px solid var(--color-primary-accent); outline-offset:2px; }

/* Submit button */
body.page-id-6192 form#wpforms-form-6192 button[type=submit] { 
    grid-column:1 / -1; 
    justify-self:start; 
    background:linear-gradient(90deg,var(--color-primary-accent),var(--color-primary)); 
    color:#fff; 
    border:0; 
    padding:.95rem 1.85rem; 
    font-weight:600; 
    letter-spacing:.6px; 
    border-radius:12px; 
    cursor:pointer; 
    position:relative; 
    font-size:.95rem; 
    box-shadow:0 6px 18px -6px rgba(0,0,0,.35),0 0 0 0 rgba(122,193,66,.4); 
    transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-position .5s ease; 
    background-size:200% 100%; 
}
body.page-id-6192 form#wpforms-form-6192 button[type=submit]:hover { transform:translateY(-3px); box-shadow:0 10px 28px -8px rgba(0,0,0,.45),0 0 0 4px rgba(122,193,66,.25); background-position:100% 0; }
body.page-id-6192 form#wpforms-form-6192 button[type=submit]:focus-visible { outline:2px solid #fff; outline-offset:3px; }

/* Field grouping logic: service selects occupy full width */
body.page-id-6192 #wpforms-6192-field_1,
body.page-id-6192 #wpforms-6192-field_25,
body.page-id-6192 #wpforms-6192-field_26 { font-size:.9rem; }
body.page-id-6192 form#wpforms-form-6192 select { background-image:linear-gradient(135deg,#f9fcf7,#eef5e9); }

/* Hide marketing / IT select logic states */
body.page-id-6192 .is-hidden { display:none !important; }

/* Map iframe responsive */
body.page-id-6192 iframe { width:100%; min-height:300px; border:1px solid var(--color-border); border-radius:14px; box-shadow:0 4px 18px -6px rgba(0,0,0,.18); }

/* Contact sections spacing */
body.page-id-6192 .post-content h2, body.page-id-6192 .post-content h3 { scroll-margin-top:90px; }
body.page-id-6192 .post-content h2 { margin-top:3rem; }
body.page-id-6192 .post-content h3 { margin-top:2.2rem; }

/* Links inside contact page callouts */
body.page-id-6192 .post-content a { position:relative; }
body.page-id-6192 .post-content a:hover { color:var(--color-primary); }

/* === Generic WPForms fallback styling (applies if page-id selector mismatch) === */
form.wpforms-form:not(.wpforms-styled) { 
    --field-radius:10px; --field-border-color: var(--color-border); --field-gap:1rem; 
    display:block; /* vertical stack fallback */
    max-width: 100%;
    background:linear-gradient(150deg,#ffffff 0%,#f7faf5 70%);
    padding:1.75rem clamp(1rem,3vw,2rem);
    border:1px solid var(--color-border);
    border-radius:18px;
}
form.wpforms-form:not(.wpforms-styled) label { display:block; font-size:.75rem; font-weight:600; letter-spacing:.6px; text-transform:uppercase; margin:0 0 .35rem; color:var(--color-primary-accent); }
form.wpforms-form:not(.wpforms-styled) input[type=text],
form.wpforms-form:not(.wpforms-styled) input[type=tel],
form.wpforms-form:not(.wpforms-styled) input[type=email],
form.wpforms-form:not(.wpforms-styled) select,
form.wpforms-form:not(.wpforms-styled) textarea { width:100%; padding:.7rem .85rem; border:1px solid var(--field-border-color); border-radius:var(--field-radius); background:#fff; font:inherit; line-height:1.35; color:var(--color-text); box-shadow:0 1px 2px rgba(0,0,0,.05) inset; transition:border-color var(--transition-fast), box-shadow var(--transition-fast); margin:0 0 1rem; }
form.wpforms-form:not(.wpforms-styled) textarea { min-height:150px; resize:vertical; }
form.wpforms-form:not(.wpforms-styled) input:focus,
form.wpforms-form:not(.wpforms-styled) select:focus,
form.wpforms-form:not(.wpforms-styled) textarea:focus { outline:none; border-color:var(--color-primary-accent); box-shadow:0 0 0 3px rgba(122,193,66,.25); }
form.wpforms-form:not(.wpforms-styled) ul { list-style:none; margin:0 0 1rem; padding:0; display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; }
form.wpforms-form:not(.wpforms-styled) ul li { margin:0; display:flex; align-items:center; gap:.45rem; font-size:.8rem; }
form.wpforms-form:not(.wpforms-styled) input[type=checkbox] { width:18px; height:18px; border:1px solid var(--field-border-color); border-radius:5px; appearance:none; background:#fff; display:grid; place-items:center; cursor:pointer; transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast); }
form.wpforms-form:not(.wpforms-styled) input[type=checkbox]::after { content:""; width:10px; height:10px; clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%); background:transparent; transform:scale(.6); transition:background var(--transition-fast); }
form.wpforms-form:not(.wpforms-styled) input[type=checkbox]:checked { background:linear-gradient(90deg,var(--color-primary-accent),var(--color-primary)); border-color:var(--color-primary-accent); box-shadow:0 0 0 2px rgba(122,193,66,.25); }
form.wpforms-form:not(.wpforms-styled) input[type=checkbox]:checked::after { background:#fff; }
form.wpforms-form:not(.wpforms-styled) button[type=submit] { background:linear-gradient(90deg,var(--color-primary-accent),var(--color-primary)); color:#fff; border:0; padding:.85rem 1.6rem; border-radius:12px; font-weight:600; letter-spacing:.5px; cursor:pointer; box-shadow:0 5px 16px -6px rgba(0,0,0,.4); transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-position .5s ease; background-size:200% 100%; }
form.wpforms-form:not(.wpforms-styled) button[type=submit]:hover { transform:translateY(-3px); box-shadow:0 10px 28px -10px rgba(0,0,0,.45),0 0 0 4px rgba(122,193,66,.25); background-position:100% 0; }
form.wpforms-form:not(.wpforms-styled) button[type=submit]:focus-visible { outline:2px solid #fff; outline-offset:3px; }
form.wpforms-form:not(.wpforms-styled) .wpforms-error { border-color:#d33 !important; box-shadow:0 0 0 3px rgba(220,50,50,.25) !important; }
form.wpforms-form:not(.wpforms-styled) .wpforms-error-msg { color:#d33; font-size:.7rem; margin:-.6rem 0 .8rem; font-weight:600; }


/* ===================================================== */
/* Basic Form Styling (additional recommendations applied) */
/* ===================================================== */
/* These styles provide a clean, flexible grid layout and
     enhanced UX for form #wpforms-form-6192. They are placed
     after existing contact page overrides. If conflicts arise
     and you prefer earlier (page-id scoped) design, you can
     comment out this block. */

#wpforms-form-6192 {
    max-width: 880px;
    background: var(--color-surface);
    padding: 2rem 2.25rem 2.5rem;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    box-shadow: 0 6px 22px -8px rgba(0,0,0,.12);
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(240px,1fr));
    gap: 1.25rem 1.5rem;
    font-size: 0.95rem;
}

#wpforms-form-6192 label {
    display: block;
    font-weight: 600;
    color: var(--color-text);
    margin: 0 0 .4rem;
    font-size: .9rem;
    letter-spacing: .25px;
}

#wpforms-form-6192 input[type=text],
#wpforms-form-6192 input[type=tel],
#wpforms-form-6192 input[type=email],
#wpforms-form-6192 select,
#wpforms-form-6192 textarea {
    width: 100%;
    padding: .65rem .75rem;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: var(--color-surface-alt);
    font: inherit;
    line-height: 1.3;
    outline: none;
    transition: background .25s, border-color .25s, box-shadow .25s;
}

#wpforms-form-6192 input:focus,
#wpforms-form-6192 select:focus,
#wpforms-form-6192 textarea:focus {
    background: #fff;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(122,193,66,.25);
}

#wpforms-form-6192 textarea { min-height: 140px; resize: vertical; }

/* Checkbox lists */
#wpforms-form-6192 ul { list-style: none; padding: .5rem .75rem; background: var(--color-surface-alt); border: 1px solid var(--color-border); border-radius: 8px; display: flex; gap: 1.5rem; flex-wrap: wrap; margin:0; }
#wpforms-form-6192 ul li { display: flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 500; }
#wpforms-form-6192 input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--color-primary); cursor: pointer; }

/* Submit button */
#wpforms-submit-6192, #wpforms-form-6192 button[type=submit] {
    grid-column: 1 / -1;
    justify-self: start;
    background: linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-accent) 100%);
    color: #fff;
    border: none;
    padding: .9rem 1.9rem;
    border-radius: 50px;
    font-weight: 600;
    font-size: .95rem;
    letter-spacing: .5px;
    cursor: pointer;
    position: relative;
    transition: background .25s, transform .18s, box-shadow .25s;
    box-shadow: 0 4px 14px -4px rgba(0,0,0,.25);
}
#wpforms-form-6192 button[type=submit]:hover, #wpforms-submit-6192:hover { box-shadow: 0 6px 20px -6px rgba(0,0,0,.3); }
#wpforms-form-6192 button[type=submit]:active, #wpforms-submit-6192:active { transform: translateY(1px); }

/* Responsive: make long message field span all columns */
@media (min-width: 700px) {
    #wpforms-6192-field_18, label[for="wpforms-6192-field_18"] { grid-column: 1 / -1; }
}

/* === Override: Force two-column layout; message field single column === */
#wpforms-form-6192 { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (min-width:700px){
    /* Cancel previous full-width span for message */
    #wpforms-6192-field_18, label[for="wpforms-6192-field_18"] { grid-column: span 1 !important; }
}

/* === Override: Single-column layout for form (requested) === */
#wpforms-form-6192 { grid-template-columns: 1fr !important; }
#wpforms-form-6192 > * { grid-column: 1 / -1 !important; }

/* === Contact Page Map Full-Width (Full-Bleed) === */
/* Make embedded Google Map stretch edge-to-edge beyond article padding. */
body.page-id-6192 .page-article .post-content iframe[src*="maps.google"] {
    width: 100vw !important; /* span entire viewport */
    max-width: 100vw;
    display: block;
    height: 420px; /* taller, adjust if needed */
    border: 0;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw; /* pull to left edge */
    margin-right: -50vw; /* ensure no horizontal scroll */
    border-radius: 0; /* flush edges */
    box-shadow: none;
}
/* Provide inner shadow + border only on larger screens if desired */
@media (min-width: 900px) {
    body.page-id-6192 .page-article .post-content iframe[src*="maps.google"] {
        box-shadow: 0 4px 32px -8px rgba(0,0,0,.25);
    }
}
/* Reduce height on very small screens for better fold usage */
@media (max-width: 520px) {
    body.page-id-6192 .page-article .post-content iframe[src*="maps.google"] { height: 320px; }
}


