/* =========================================
   LUCA Home Lifts - Frontend Styles
   ========================================= */

/* ---------- CSS Variables ---------- */
:root {
    --luca-primary:     #1a2d5a;
    --luca-gold:        #c9a84c;
    --luca-white:       #ffffff;
    --luca-light:       #f5f7fa;
    --luca-dark:        #111827;
    --luca-gray:        #6b7280;
    --luca-transition:  0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------- Global ---------- */
.luca-widget * { box-sizing: border-box; }
.luca-widget img { max-width: 100%; height: auto; }
.luca-widget a { text-decoration: none; }
.luca-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 14px 32px; border-radius: 4px;
    font-weight: 700; font-size: 15px; cursor: pointer;
    border: 2px solid transparent;
    transition: var(--luca-transition); position: relative; overflow: hidden;
}
.luca-btn::after {
    content: ''; position: absolute; inset: 0;
    background: rgba(255,255,255,0.15);
    transform: translateX(-105%) skewX(-15deg);
    transition: transform 0.45s ease;
}
.luca-btn:hover::after { transform: translateX(105%) skewX(-15deg); }
.luca-btn-primary    { background: var(--luca-gold); color: #fff; border-color: var(--luca-gold); }
.luca-btn-outline    { background: transparent; color: #fff; border-color: #fff; }
.luca-btn-outline:hover { background: #fff; color: var(--luca-primary); }
.luca-section-title  { font-size: clamp(26px,4vw,40px); font-weight: 800; color: var(--luca-primary); line-height: 1.2; }
.luca-section-title span { color: var(--luca-gold); }
.luca-section-sub    { color: var(--luca-gray); font-size: 16px; line-height: 1.7; margin-top: 10px; }

/* ==========================================
   1. HERO BANNER
   ========================================== */
.luca-hero {
    position: relative; overflow: hidden;
    min-height: 90vh; display: flex; align-items: center;
    background: var(--luca-primary);
}
.luca-hero__bg {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
    opacity: 0.18;
    transform: scale(1.08);
    animation: luca-hero-zoom 12s ease-in-out infinite alternate;
}
@keyframes luca-hero-zoom {
    from { transform: scale(1.08); }
    to   { transform: scale(1.00); }
}
.luca-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(120deg, var(--luca-primary) 55%, transparent 100%);
}
.luca-hero__inner {
    position: relative; z-index: 2;
    display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center;
    padding: 80px 60px;
    max-width: 1300px; margin: 0 auto; width: 100%;
}
.luca-hero__badge {
    display: inline-block;
    background: var(--luca-gold); color: #fff;
    padding: 6px 18px; border-radius: 20px;
    font-size: 13px; font-weight: 700; letter-spacing: 1px;
    margin-bottom: 20px;
    animation: luca-fade-up 0.7s ease both;
}
.luca-hero__title {
    font-size: clamp(36px, 5.5vw, 70px);
    font-weight: 900; color: #fff; line-height: 1.1;
    animation: luca-fade-up 0.8s 0.1s ease both;
}
.luca-hero__title span { color: var(--luca-gold); }
.luca-hero__desc {
    color: rgba(255,255,255,0.78); font-size: 17px; line-height: 1.75;
    margin: 24px 0 36px;
    animation: luca-fade-up 0.8s 0.2s ease both;
}
.luca-hero__btns {
    display: flex; gap: 16px; flex-wrap: wrap;
    animation: luca-fade-up 0.8s 0.3s ease both;
}
.luca-hero__stats {
    display: flex; gap: 32px; margin-top: 48px; flex-wrap: wrap;
    animation: luca-fade-up 0.8s 0.4s ease both;
}
.luca-hero__stat-num { font-size: 28px; font-weight: 900; color: var(--luca-gold); display: block; }
.luca-hero__stat-lbl { font-size: 13px; color: rgba(255,255,255,0.65); font-weight: 600; }
.luca-hero__image {
    position: relative; text-align: center;
    animation: luca-fade-left 0.9s 0.2s ease both;
}
.luca-hero__image img {
    border-radius: 16px;
    box-shadow: 0 40px 80px rgba(0,0,0,0.4);
    width: 100%;
    animation: luca-float 6s ease-in-out infinite;
}
@keyframes luca-float {
    0%,100% { transform: translateY(0); }
    50%      { transform: translateY(-14px); }
}
.luca-hero__image-badge {
    position: absolute; bottom: -18px; right: -18px;
    background: var(--luca-gold); color: #fff;
    padding: 16px 22px; border-radius: 12px;
    font-weight: 800; font-size: 22px; line-height: 1.1;
    box-shadow: 0 10px 30px rgba(201,168,76,0.45);
    animation: luca-pulse-badge 2s ease-in-out infinite;
}
.luca-hero__image-badge small { font-size: 12px; display: block; opacity: 0.85; }
@keyframes luca-pulse-badge {
    0%,100% { transform: scale(1); }
    50%      { transform: scale(1.04); }
}
/* Trust badges row */
.luca-hero__trust {
    display: flex; gap: 24px; align-items: center; margin-top: 12px;
    animation: luca-fade-up 0.8s 0.5s ease both;
}
.luca-hero__trust-item {
    display: flex; align-items: center; gap: 6px;
    color: rgba(255,255,255,0.65); font-size: 13px;
}
.luca-hero__trust-item svg { flex-shrink: 0; }

/* ==========================================
   2. STATS BAR
   ========================================== */
.luca-stats-bar {
    background: #fff; border-bottom: 1px solid #e5e7eb;
    padding: 36px 60px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}
.luca-stats-bar__grid {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 20px; max-width: 1100px; margin: 0 auto; text-align: center;
}
.luca-stats-bar__item { padding: 10px 0; }
.luca-stats-bar__num {
    font-size: clamp(28px, 4vw, 44px); font-weight: 900;
    color: var(--luca-primary); display: block; line-height: 1;
}
.luca-stats-bar__num span { color: var(--luca-gold); }
.luca-stats-bar__label { font-size: 14px; color: var(--luca-gray); font-weight: 600; margin-top: 6px; }
.luca-stats-bar__divider {
    width: 1px; background: #e5e7eb;
    height: 50px; align-self: center; margin: 0 auto;
}

/* ==========================================
   3. WHY CHOOSE US
   ========================================== */
.luca-why {
    padding: 100px 60px; background: var(--luca-light);
}
.luca-why__header { text-align: center; margin-bottom: 60px; }
.luca-why__grid {
    display: grid; gap: 28px;
    max-width: 1200px; margin: 0 auto;
}
.luca-why__card {
    background: #fff; border-radius: 16px; padding: 36px 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: var(--luca-transition);
    position: relative; overflow: hidden; cursor: default;
}
.luca-why__card::before {
    content: ''; position: absolute; bottom: 0; left: 0;
    width: 100%; height: 4px;
    background: var(--luca-gold);
    transform: scaleX(0); transform-origin: left;
    transition: transform 0.4s ease;
}
.luca-why__card:hover { transform: translateY(-8px); box-shadow: 0 20px 50px rgba(0,0,0,0.13); }
.luca-why__card:hover::before { transform: scaleX(1); }
.luca-why__icon {
    width: 60px; height: 60px; border-radius: 14px;
    background: linear-gradient(135deg, var(--luca-primary), #2a4a8f);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 22px;
    transition: var(--luca-transition);
}
.luca-why__card:hover .luca-why__icon { transform: scale(1.12) rotate(-5deg); background: var(--luca-gold); }
.luca-why__icon svg, .luca-why__icon i { color: #fff; font-size: 26px; }
.luca-why__card-title { font-size: 19px; font-weight: 800; color: var(--luca-primary); margin-bottom: 12px; }
.luca-why__card-desc  { font-size: 15px; color: var(--luca-gray); line-height: 1.7; }

/* ==========================================
   4. FEATURED SOLUTIONS
   ========================================== */
.luca-solutions { padding: 100px 60px; background: #fff; }
.luca-solutions__header { text-align: center; margin-bottom: 60px; }
.luca-solutions__grid {
    display: grid; gap: 24px;
    max-width: 1300px; margin: 0 auto;
}
.luca-solution-card {
    border-radius: 16px; overflow: hidden; position: relative;
    cursor: pointer;
    box-shadow: 0 6px 24px rgba(0,0,0,0.1);
    transition: var(--luca-transition);
}
.luca-solution-card:hover { transform: translateY(-10px) scale(1.02); box-shadow: 0 24px 60px rgba(0,0,0,0.2); }
.luca-solution-card__img {
    width: 100%; height: 240px; object-fit: cover; display: block;
    transition: transform 0.6s ease;
}
/* Placeholder fallback div same height */
.luca-solution-card .luca-solution-card__placeholder {
    width: 100%; height: 240px;
}
.luca-solution-card:hover .luca-solution-card__img { transform: scale(1.1); }
.luca-solution-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(26,45,90,0.92) 0%, transparent 55%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 24px;
    transform: translateY(30px); opacity: 0.8;
    transition: var(--luca-transition);
}
.luca-solution-card:hover .luca-solution-card__overlay { transform: translateY(0); opacity: 1; }
.luca-solution-card__name  { color: #fff; font-size: 18px; font-weight: 800; }
.luca-solution-card__desc  { color: rgba(255,255,255,0.8); font-size: 13px; line-height: 1.6; margin-top: 8px; }
.luca-solution-card__link  { display: inline-block; margin-top: 14px; color: var(--luca-gold); font-size: 13px; font-weight: 700; }

/* ==========================================
   5. PRICING CTA SECTION
   ========================================== */
.luca-pricing-cta {
    background: linear-gradient(135deg, #0d1e40 0%, #1a2d5a 100%);
    padding: 80px 60px; text-align: center; position: relative; overflow: hidden;
}
.luca-pricing-cta::before {
    content: ''; position: absolute; width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(201,168,76,0.15) 0%, transparent 70%);
    top: -200px; left: -150px; pointer-events: none;
}
.luca-pricing-cta__title { font-size: clamp(28px,5vw,52px); font-weight: 900; color: #fff; }
.luca-pricing-cta__title span { color: var(--luca-gold); }
.luca-pricing-cta__sub  { color: rgba(255,255,255,0.7); font-size: 17px; margin: 16px 0 40px; }
.luca-pricing-cta__options {
    display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; margin-bottom: 40px;
}
.luca-pricing-opt {
    background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15);
    border-radius: 12px; padding: 20px 32px; color: #fff; cursor: pointer;
    transition: var(--luca-transition); min-width: 160px;
}
.luca-pricing-opt:hover, .luca-pricing-opt.active {
    background: var(--luca-gold); border-color: var(--luca-gold);
    transform: translateY(-4px);
}
.luca-pricing-opt__label { font-size: 13px; opacity: 0.75; }
.luca-pricing-opt__value { font-size: 20px; font-weight: 800; margin-top: 4px; }

/* ==========================================
   6. THREE-STEP PROCESS
   ========================================== */
.luca-process { padding: 100px 60px; background: var(--luca-light); }
.luca-process__header { text-align: center; margin-bottom: 70px; }
.luca-process__grid {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 0; max-width: 1100px; margin: 0 auto; position: relative;
}
.luca-process__grid::before {
    content: ''; position: absolute; top: 55px; left: 20%; right: 20%;
    height: 3px; background: linear-gradient(90deg, var(--luca-gold), var(--luca-primary), var(--luca-gold));
    background-size: 200%; animation: luca-line-flow 3s linear infinite;
    z-index: 0;
}
@keyframes luca-line-flow {
    0% { background-position: 0% center; }
    100% { background-position: 200% center; }
}
.luca-process__step {
    text-align: center; padding: 0 32px; position: relative; z-index: 1;
    transition: var(--luca-transition);
}
.luca-process__step:hover { transform: translateY(-6px); }
.luca-process__circle {
    width: 110px; height: 110px; border-radius: 50%;
    background: #fff; border: 4px solid var(--luca-gold);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 28px; position: relative;
    box-shadow: 0 10px 30px rgba(201,168,76,0.25);
    transition: var(--luca-transition);
    font-size: 36px;
}
.luca-process__step:hover .luca-process__circle {
    background: var(--luca-gold); transform: scale(1.1);
}
.luca-process__step:hover .luca-process__circle i,
.luca-process__step:hover .luca-process__circle svg { color: #fff !important; }
.luca-process__num {
    position: absolute; top: -8px; right: -8px;
    width: 30px; height: 30px; background: var(--luca-primary);
    border-radius: 50%; color: #fff; font-size: 13px; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
}
.luca-process__title { font-size: 20px; font-weight: 800; color: var(--luca-primary); margin-bottom: 12px; }
.luca-process__desc  { font-size: 15px; color: var(--luca-gray); line-height: 1.7; }

/* ==========================================
   7. SAFETY & COMFORT
   ========================================== */
.luca-safety { padding: 100px 60px; background: #fff; }
.luca-safety__inner {
    display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
    max-width: 1200px; margin: 0 auto;
}
.luca-safety__features { display: flex; flex-direction: column; gap: 18px; margin-top: 36px; }
.luca-safety__feature {
    display: flex; align-items: flex-start; gap: 16px;
    padding: 18px 20px; border-radius: 12px; border: 1px solid transparent;
    cursor: default; transition: var(--luca-transition);
}
.luca-safety__feature:hover {
    border-color: var(--luca-gold); background: #fffbf0;
    transform: translateX(8px);
    box-shadow: 0 6px 20px rgba(201,168,76,0.15);
}
.luca-safety__feature-icon {
    width: 42px; height: 42px; flex-shrink: 0; border-radius: 10px;
    background: var(--luca-primary); display: flex; align-items: center; justify-content: center;
    transition: var(--luca-transition);
}
.luca-safety__feature:hover .luca-safety__feature-icon { background: var(--luca-gold); }
.luca-safety__feature-icon i { color: #fff; font-size: 18px; }
.luca-safety__feature-text strong { display: block; font-size: 16px; color: var(--luca-primary); font-weight: 700; }
.luca-safety__feature-text span  { font-size: 14px; color: var(--luca-gray); }
.luca-safety__image { position: relative; }
.luca-safety__image img { border-radius: 20px; width: 100%; box-shadow: 0 30px 70px rgba(0,0,0,0.15); }
.luca-safety__badge {
    position: absolute; top: 24px; right: -20px;
    background: var(--luca-primary); color: #fff;
    padding: 12px 20px; border-radius: 12px; font-weight: 700; font-size: 14px;
    box-shadow: 0 12px 30px rgba(26,45,90,0.3);
}

/* ==========================================
   8. RECENT PROJECTS
   ========================================== */
.luca-projects { padding: 100px 60px; background: var(--luca-light); }
.luca-projects__header { text-align: center; margin-bottom: 60px; }
.luca-projects__grid {
    display: grid; gap: 24px;
    max-width: 1200px; margin: 0 auto;
}
.luca-project-card {
    border-radius: 16px; overflow: hidden; position: relative;
    cursor: pointer; box-shadow: 0 6px 24px rgba(0,0,0,0.1);
    transition: var(--luca-transition);
}
.luca-project-card:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 24px 60px rgba(0,0,0,0.18); }
.luca-project-card img { width: 100%; height: 280px; object-fit: cover; transition: transform 0.6s ease; display: block; }
.luca-project-card:hover img { transform: scale(1.1); }
.luca-project-card__overlay {
    position: absolute; inset: 0; background: rgba(26,45,90,0.75);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; transition: var(--luca-transition);
}
.luca-project-card:hover .luca-project-card__overlay { opacity: 1; }
.luca-project-card__icon {
    width: 60px; height: 60px; background: var(--luca-gold); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    transform: scale(0.6); transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
}
.luca-project-card:hover .luca-project-card__icon { transform: scale(1); }
.luca-project-card__label {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(to top, rgba(26,45,90,0.9), transparent);
    color: #fff; padding: 20px 20px 16px; font-weight: 700;
}
.luca-projects__cta { text-align: center; margin-top: 48px; }

/* ==========================================
   9. TESTIMONIALS
   ========================================== */
.luca-testimonials { padding: 100px 60px; background: #fff; }
.luca-testimonials__header { text-align: center; margin-bottom: 60px; }
.luca-testimonials__grid {
    display: grid; gap: 28px;
    max-width: 1200px; margin: 0 auto;
}
.luca-testi-card {
    background: var(--luca-light); border-radius: 16px; padding: 32px;
    position: relative; transition: var(--luca-transition);
    border: 2px solid transparent;
}
.luca-testi-card:hover { border-color: var(--luca-gold); transform: translateY(-6px); box-shadow: 0 20px 50px rgba(0,0,0,0.1); }
.luca-testi-card__quote {
    font-size: 52px; line-height: 1; color: var(--luca-gold); font-weight: 900;
    position: absolute; top: 16px; right: 24px; opacity: 0.35;
}
.luca-testi-card__stars { color: #f59e0b; font-size: 16px; margin-bottom: 16px; }
.luca-testi-card__text  { color: var(--luca-gray); font-size: 15px; line-height: 1.75; font-style: italic; }
.luca-testi-card__author {
    display: flex; align-items: center; gap: 14px; margin-top: 24px; padding-top: 20px;
    border-top: 1px solid #e5e7eb;
}
.luca-testi-card__avatar {
    width: 50px; height: 50px; border-radius: 50%;
    object-fit: cover; border: 3px solid var(--luca-gold);
}
.luca-testi-card__name   { font-weight: 800; color: var(--luca-primary); font-size: 15px; }
.luca-testi-card__role   { font-size: 13px; color: var(--luca-gray); }

/* ==========================================
   10. FAQ
   ========================================== */
.luca-faq { padding: 100px 60px; background: var(--luca-light); }
.luca-faq__header { text-align: center; margin-bottom: 60px; }
.luca-faq__list { max-width: 850px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.luca-faq__item {
    background: #fff; border-radius: 12px; overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    border: 1px solid transparent; transition: border-color 0.3s;
}
.luca-faq__item.active { border-color: var(--luca-gold); }
.luca-faq__q {
    padding: 22px 24px; display: flex; align-items: center; justify-content: space-between;
    cursor: pointer; font-weight: 700; color: var(--luca-primary); font-size: 16px;
    user-select: none; gap: 16px;
}
.luca-faq__q:hover { color: var(--luca-gold); }
.luca-faq__icon {
    width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%;
    background: var(--luca-primary); color: #fff;
    display: flex; align-items: center; justify-content: center;
    transition: transform 0.35s ease, background 0.35s ease; font-size: 18px; font-weight: 700;
}
.luca-faq__item.active .luca-faq__icon { transform: rotate(45deg); background: var(--luca-gold); }
.luca-faq__a {
    max-height: 0; overflow: hidden; transition: max-height 0.45s ease, padding 0.35s ease;
    color: var(--luca-gray); font-size: 15px; line-height: 1.75; padding: 0 24px;
}
.luca-faq__item.active .luca-faq__a { max-height: 300px; padding: 0 24px 22px; }

/* ==========================================
   11. UPGRADE CTA
   ========================================== */
.luca-upgrade-cta {
    padding: 100px 60px; text-align: center;
    background: linear-gradient(135deg, var(--luca-primary) 0%, #0d1e40 100%);
    position: relative; overflow: hidden;
}
.luca-upgrade-cta::after {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(201,168,76,0.12) 0%, transparent 50%),
                      radial-gradient(circle at 80% 20%, rgba(201,168,76,0.08) 0%, transparent 40%);
    pointer-events: none;
}
.luca-upgrade-cta__title { font-size: clamp(28px,5vw,56px); font-weight: 900; color: #fff; line-height: 1.15; }
.luca-upgrade-cta__title span { color: var(--luca-gold); }
.luca-upgrade-cta__sub  { color: rgba(255,255,255,0.72); font-size: 18px; margin: 18px 0 42px; }
.luca-upgrade-cta__btns { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; position: relative; z-index: 1; }

/* ==========================================
   KEYFRAMES & UTILITIES
   ========================================== */
@keyframes luca-fade-up {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes luca-fade-left {
    from { opacity: 0; transform: translateX(30px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* Scroll Reveal (JS-driven) */
.luca-reveal {
    opacity: 0; transform: translateY(40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.luca-reveal.visible { opacity: 1; transform: translateY(0); }
.luca-reveal-left { opacity: 0; transform: translateX(-40px); transition: opacity 0.7s ease, transform 0.7s ease; }
.luca-reveal-left.visible { opacity: 1; transform: translateX(0); }
.luca-reveal-right { opacity: 0; transform: translateX(40px); transition: opacity 0.7s ease, transform 0.7s ease; }
.luca-reveal-right.visible { opacity: 1; transform: translateX(0); }

/* Delay helpers */
.luca-delay-1 { transition-delay: 0.1s; }
.luca-delay-2 { transition-delay: 0.2s; }
.luca-delay-3 { transition-delay: 0.3s; }
.luca-delay-4 { transition-delay: 0.4s; }
.luca-delay-5 { transition-delay: 0.5s; }

/* Animation disable toggle */
.luca-no-animation * { animation: none !important; transition: none !important; }
.luca-no-animation .luca-reveal,
.luca-no-animation .luca-reveal-left,
.luca-no-animation .luca-reveal-right { opacity: 1; transform: none; }

/* ==========================================
   RESPONSIVE COLUMN UTILITY CLASSES
   Used by all grid widgets (Why Choose, Solutions,
   Recent Projects, Testimonials).
   Desktop / Tablet / Mobile columns are set via
   Elementor controls and output as CSS classes on
   the grid element, e.g.:
     luca-cols-d-3  luca-cols-t-2  luca-cols-m-1
   ========================================== */

/* --- Desktop (default, no media query) --- */
.luca-cols-d-1 { grid-template-columns: repeat(1,1fr) !important; }
.luca-cols-d-2 { grid-template-columns: repeat(2,1fr) !important; }
.luca-cols-d-3 { grid-template-columns: repeat(3,1fr) !important; }
.luca-cols-d-4 { grid-template-columns: repeat(4,1fr) !important; }

/* --- Tablet ≤ 1024px --- */
@media (max-width: 1024px) {
    .luca-hero__inner    { grid-template-columns: 1fr; gap: 40px; padding: 60px 40px; }
    .luca-hero__image    { order: -1; }
    .luca-safety__inner  { grid-template-columns: 1fr; }

    /* Tablet column overrides */
    .luca-cols-t-1 { grid-template-columns: repeat(1,1fr) !important; }
    .luca-cols-t-2 { grid-template-columns: repeat(2,1fr) !important; }
    .luca-cols-t-3 { grid-template-columns: repeat(3,1fr) !important; }
    .luca-cols-t-4 { grid-template-columns: repeat(4,1fr) !important; }

    /* Fallback for grids that have no class (old widgets) */
    .luca-why__grid:not([class*="luca-cols-t-"])       { grid-template-columns: 1fr 1fr; }
    .luca-solutions__grid:not([class*="luca-cols-t-"]) { grid-template-columns: repeat(2,1fr); }
    .luca-testimonials__grid:not([class*="luca-cols-t-"]){ grid-template-columns: 1fr 1fr; }
}

/* --- Mobile ≤ 768px --- */
@media (max-width: 768px) {
    .luca-hero, .luca-why, .luca-solutions, .luca-pricing-cta,
    .luca-process, .luca-safety, .luca-projects, .luca-testimonials,
    .luca-faq, .luca-upgrade-cta { padding: 70px 24px; }
    .luca-hero__inner    { padding: 50px 24px; }
    .luca-stats-bar      { padding: 30px 24px; }
    .luca-stats-bar__grid{ grid-template-columns: repeat(2, 1fr); }
    .luca-process__grid  { grid-template-columns: 1fr; }
    .luca-process__grid::before { display: none; }
    .luca-hero__stats    { gap: 20px; }
    .luca-hero__btns     { flex-direction: column; }
    .luca-hero__image-badge { right: 10px; bottom: -10px; font-size: 18px; padding: 12px 16px; }
    .luca-safety__badge  { right: 10px; top: 10px; }

    /* Mobile column overrides — user-chosen via Elementor */
    .luca-cols-m-1 { grid-template-columns: repeat(1,1fr) !important; }
    .luca-cols-m-2 { grid-template-columns: repeat(2,1fr) !important; }
    .luca-cols-m-3 { grid-template-columns: repeat(3,1fr) !important; }

    /* Fallback for grids with no mobile class */
    .luca-why__grid:not([class*="luca-cols-m-"])         { grid-template-columns: 1fr; }
    .luca-solutions__grid:not([class*="luca-cols-m-"])   { grid-template-columns: 1fr; }
    .luca-projects__grid:not([class*="luca-cols-m-"])    { grid-template-columns: 1fr; }
    .luca-testimonials__grid:not([class*="luca-cols-m-"]){ grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .luca-stats-bar__grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .luca-hero__trust     { flex-direction: column; align-items: flex-start; }
    .luca-pricing-cta__options { flex-direction: column; align-items: center; }
    .luca-upgrade-cta__btns { flex-direction: column; align-items: center; }

    /* On very small screens, 2-col mobile becomes 1 col unless explicitly set to 2 */
    .luca-cols-m-2.luca-why__grid,
    .luca-cols-m-2.luca-solutions__grid,
    .luca-cols-m-2.luca-projects__grid,
    .luca-cols-m-2.luca-testimonials__grid {
        grid-template-columns: repeat(2,1fr) !important;
    }
}
