
/* ──────────────────────────────────────────────────────────
   HIGHLIGHTED WORD (em) — single optimized rule for all 14 widgets.
   - Font-family: follows Elementor primary global by default
   - Font-style: italic (visual identity)
   - Color: brand green
   - Size/weight/etc: inherits from parent heading (consistent)
   - No !important — Elementor's per-widget Highlight Typography
     control can override via higher-specificity per-element CSS.
   ────────────────────────────────────────────────────────── */
.elementor-widget .bwe-sh-title em,
.elementor-widget .bwe-hero-heading em,
.elementor-widget .bwe-tm-heading em,
.elementor-widget .bwe-sg-heading em,
.elementor-widget .bwe-about-heading em,
.elementor-widget .bwe-fi-title em,
.elementor-widget .bwe-ps-title em,
.elementor-widget .bwe-wcu-heading em,
.elementor-widget .bwe-sov-title em,
.elementor-widget .bwe-cg-heading em,
.elementor-widget .bwe-bs-title em,
.elementor-widget .bwe-ds-sec-title em,
.elementor-widget .bwe-cta-title em,
.elementor-widget .bwe-wp-heading em {
    /* Visual identity (overridable by user's Highlight Typography control) */
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-style: italic;
    color: #2F6F2F;
    /* Size lock (defeats themes that force em smaller via !important).
       User can still change heading size — em inherits naturally. */
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
}

/* ============================================================
   Brockwell Elementor Widgets — widgets.css v1.0
   ============================================================ */

/* ── Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,600;1,500&display=swap');

/* ============================================================
   SECTION HEADING WIDGET
   ============================================================ */
.bwe-sh-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* ── Tag / Badge ─────────────────────────────────────────── */
.bwe-sh-tag-wrap {
    display: block;
}

.bwe-sh-tag {
    display:     inline-flex;
    align-items: center;
    gap:         8px;
    line-height: 1;
    /* background, border-radius, padding, border — all controlled via Elementor */
}

/* ── Dot prefix — high specificity to beat theme overrides */
.bwe-sh-wrap .bwe-sh-tag .bwe-sh-tag-dot {
    display:          inline-block;
    width:            8px;
    height:           8px;
    min-width:        8px;
    aspect-ratio:     1 / 1;
    border-radius:    50% !important;
    background-color: #2F6F2F;
    flex-shrink:      0;
    padding:          0 !important;
    box-sizing:       content-box;
}

/* Pulse animation — higher specificity */
@keyframes bweTagDotPulse {
    0%, 100% { opacity: 1;  transform: scale(1);   }
    50%      { opacity: .35; transform: scale(.55); }
}
.bwe-sh-wrap .bwe-sh-tag .bwe-sh-tag-dot--pulse {
    animation: bweTagDotPulse 1.6s ease-in-out infinite !important;
}

/* ── Dash prefix */
.bwe-sh-tag-dash {
    display:          block;
    width:            28px;
    height:           2px;
    background-color: #2F6F2F;
    border-radius:    2px;
    flex-shrink:      0;
}

/* ── Icon prefix */
.bwe-sh-tag-icon {
    display:     inline-flex;
    align-items: center;
    line-height: 1;
    color:       #2F6F2F;
}
.bwe-sh-tag-icon svg {
    display: block;
}

/* ── Tag text */
.bwe-sh-tag-text {
    font-size: var(--e-global-typography-accent-font-size, 0.78rem);
    font-weight: var(--e-global-typography-accent-font-weight, 600);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.04em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    color:       #2F6F2F;
    line-height: var(--e-global-typography-accent-line-height, 1);
}

/* Legacy pulse keyframe (keep for backward compat) */
@keyframes bweShPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: .4; transform: scale(.75); }
}

/* ============================================================
   SHARED TAG / BADGE (used by all widgets via trait)
   ============================================================ */
.bwe-tag-wrap {
    display: block;
}

.bwe-tag {
    display:     inline-flex;
    align-items: center;
    gap:         8px;
    line-height: var(--e-global-typography-text-line-height, 1);
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    /* background, border-radius, padding, border — via Elementor controls */
}

/* ── Dot prefix — perfect circle, beats theme overrides */
.bwe-tag .bwe-tag-dot {
    display:          inline-block;
    width:            8px;
    height:           8px;
    min-width:        8px;
    aspect-ratio:     1 / 1;
    border-radius:    50% !important;
    background-color: #2F6F2F;
    flex-shrink:      0;
    padding:          0 !important;
    box-sizing:       content-box;
}

/* ── Pulse animation */
@keyframes bweTagPulse {
    0%, 100% { opacity: 1;   transform: scale(1);   }
    50%      { opacity: .35; transform: scale(.55); }
}
.bwe-tag .bwe-tag-dot--pulse {
    animation: bweTagPulse 1.6s ease-in-out infinite !important;
}

/* ── Dash prefix */
.bwe-tag .bwe-tag-dash {
    display:          inline-block;
    width:            28px;
    height:           2px;
    background-color: #2F6F2F;
    border-radius:    2px;
    flex-shrink:      0;
}

/* ── Icon prefix */
.bwe-tag .bwe-tag-icon {
    display:     inline-flex;
    align-items: center;
    line-height: 1;
    color:       #2F6F2F;
}
.bwe-tag .bwe-tag-icon svg {
    display: block;
}

/* ── Tag text */
.bwe-tag .bwe-tag-text {
    font-size: var(--e-global-typography-accent-font-size, 0.78rem);
    font-weight: var(--e-global-typography-accent-font-weight, 600);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.04em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    color:          #2F6F2F;
    line-height: var(--e-global-typography-accent-line-height, 1);
}

/* Main heading */
.bwe-sh-title {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.5rem, 2.8vw, 2.2rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 14px;
}

/* Subtitle */
.bwe-sh-subtitle {
    font-size: var(--e-global-typography-text-font-size, 1rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.82);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    margin: 0;
    position: relative;
    z-index: 1;
}

/* ============================================================
   FAQ ACCORDION WIDGET
   ============================================================ */

/* List wrapper */
.bwe-faq-list {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Card */
.bwe-faq-item {
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 12px;
    overflow: hidden;
    transition: border-color .3s ease, box-shadow .3s ease;
}

/* Active card */
.bwe-faq-item.bwe-open {
    border-color: #2F6F2F;
    box-shadow: 0 4px 20px rgba(47,111,47,.08);
}

/* Question row */
.bwe-faq-q {
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    font-weight: var(--e-global-typography-secondary-font-weight, 600);
    font-size: var(--e-global-typography-secondary-font-size, .92rem);
    color: #2B2B2B;
    transition: background .25s ease, color .25s ease;
    gap: 16px;
    user-select: none;
    -webkit-user-select: none;
}

.bwe-faq-q:focus-visible {
    outline: 2px solid #2F6F2F;
    outline-offset: -2px;
}

/* Question text — takes all space, pushes icon to right */
.bwe-faq-text {
    flex: 1;
    min-width: 0;
}

/* Active question */
.bwe-faq-item.bwe-open .bwe-faq-q {
    color: #2F6F2F;
}

/* ── Arrow icon circle ── */
.bwe-arrow {
    position: relative;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(47,111,47,.07);
    flex-shrink: 0;
    transition: background .25s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.bwe-faq-item.bwe-open .bwe-arrow {
    background: #2F6F2F;
}

/* SVG inside icons */
.bwe-arrow svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: block;
    transition: stroke .25s ease;
}

.bwe-faq-item:not(.bwe-open) .bwe-arrow svg { stroke: #2F6F2F; }
.bwe-faq-item.bwe-open       .bwe-arrow svg { stroke: #ffffff; }

/* ── Answer container — smooth max-height + fade-slide ── */
.bwe-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height .45s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Answer inner — subtle slide-up fade when opening */
.bwe-faq-a-inner {
    padding: 0 24px 20px;
    font-size: var(--e-global-typography-text-font-size, .88rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .3s ease .1s, transform .3s ease .1s;
}

.bwe-faq-item.bwe-open .bwe-faq-a-inner {
    opacity: 1;
    transform: translateY(0);
}

.bwe-faq-a-inner p             { margin: 0 0 10px; }
.bwe-faq-a-inner p:last-child  { margin-bottom: 0; }

/* Responsive */
@media (max-width: 767px) {
    .bwe-faq-q       { padding: 16px 18px; font-size: var(--e-global-typography-secondary-font-size, 0.9rem); gap: 12px; }
    .bwe-faq-a-inner { padding: 0 18px 16px; font-size: var(--e-global-typography-text-font-size, 0.88rem); }
    .bwe-arrow       { width: 26px; height: 26px; }
}

/* ============================================================
   SECTION HEADING — WATERMARK
   ============================================================ */
.bwe-sh-title-wrap {
    position: relative;
    display: block;
    width: 100%;
    padding: 0.6em 0;          /* vertical room for watermark */
    overflow: clip;             /* clips without affecting layout or scroll */
    overflow-clip-margin: 0px;
}

.bwe-sh-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, clamp(3rem, 10vw, 7rem));
    font-weight: var(--e-global-typography-text-font-weight, 800);
    text-transform: var(--e-global-typography-text-text-transform, uppercase);
    color: rgba(0, 0, 0, 0.04);
    white-space: nowrap;
    pointer-events: none;
    z-index: 0;
    letter-spacing: var(--e-global-typography-text-letter-spacing, 6px);
    line-height: var(--e-global-typography-text-line-height, 1);
    user-select: none;
}

.bwe-sh-title-wrap .bwe-sh-title {
    position: relative;
    z-index: 1;
}

/* ============================================================
   HERO SECTION WIDGET
   ============================================================ */
.bwe-hero {
    position: relative;
    min-height: 90vh;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

.bwe-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.75);
    z-index: 1;
}

.bwe-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 1320px;
    margin: 0 auto;
    padding: 80px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: inherit;
}

.bwe-hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.bwe-hero-left {
    max-width: 620px;
}

.bwe-hero-heading {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(2rem, 5vw, 3.6rem));
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #1a1a1a;
    line-height: var(--e-global-typography-primary-line-height, 1.15);
    margin: 0 0 20px;
}

.bwe-hero-heading .bwe-hero-line1,
.bwe-hero-heading .bwe-hero-line2 {
    display: inline;
}

.bwe-hero-heading .bwe-hero-line1::after {
    content: '\A';
    white-space: pre;
}

.bwe-hero-desc {
    font-size: var(--e-global-typography-text-font-size, 1rem);
    color: #555;
    line-height: var(--e-global-typography-text-line-height, 1.75);
    margin: 0 0 30px;
    max-width: 550px;
}

.bwe-hero-cta {
    display: inline-block;
    padding: 16px 36px;
    background: #7CB832;
    color: #fff;
    border-radius: 50px;
    font-size: var(--e-global-typography-accent-font-size, 0.95rem);
    font-weight: var(--e-global-typography-accent-font-weight, 600);
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
    transition: background 0.3s ease, transform 0.2s ease;
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.3px);
}

.bwe-hero-cta:hover {
    background: #5a9a1a;
    transform: translateY(-2px);
    color: #fff;
}

/* Right Side */
.bwe-hero-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
    position: relative;
}

.bwe-hero-fcard {
    width: 320px;
    height: 260px;
    border-radius: 20px;
    background: linear-gradient(135deg, #5a9a1a 0%, #5a9a1acc 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.bwe-hero-fcard-icon {
    font-size: 80px;
    color: rgba(0, 0, 0, 0.15);
    line-height: 1;
}

.bwe-hero-fcard-icon i,
.bwe-hero-fcard-icon svg {
    font-size: 80px;
    width: 80px;
    height: 80px;
    color: rgba(0, 0, 0, 0.15);
    fill: rgba(0, 0, 0, 0.15);
}

.bwe-hero-fcard-circles span {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.bwe-hero-fcard-circles span:nth-child(1) {
    width: 120px; height: 120px; top: -20px; right: -30px;
}
.bwe-hero-fcard-circles span:nth-child(2) {
    width: 80px; height: 80px; bottom: 20px; left: -20px;
}
.bwe-hero-fcard-circles span:nth-child(3) {
    width: 50px; height: 50px; top: 40px; right: 40px;
}

/* Spotlight Card */
.bwe-hero-spotlight {
    background: #ffffff;
    border-radius: 16px;
    padding: 22px 26px;
    width: 340px;
    margin-top: -30px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    position: relative;
    z-index: 3;
}

.bwe-hero-spotlight-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.bwe-hero-spotlight-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4CAF50;
    animation: bweShPulse 2s infinite;
}

.bwe-hero-spotlight-badge {
    font-size: var(--e-global-typography-accent-font-size, 0.65rem);
    font-weight: var(--e-global-typography-accent-font-weight, 700);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 1.5px);
    color: #4CAF50;
    background: rgba(76, 175, 80, 0.08);
    padding: 4px 12px;
    border-radius: 20px;
}

.bwe-hero-spotlight-title {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 1rem);
    font-weight: var(--e-global-typography-text-font-weight, 700);
    color: #1a1a1a;
    margin-bottom: 6px;
}

.bwe-hero-spotlight-desc {
    font-size: var(--e-global-typography-text-font-size, 0.85rem);
    color: #555;
    line-height: var(--e-global-typography-text-line-height, 1.6);
}

/* Rating Badge */
.bwe-hero-rating {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 380px;
    border-radius: 16px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    z-index: 4;
}

.bwe-hero-rating-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.bwe-hero-rating-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 24px 20px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 16px;
}

.bwe-hero-stars {
    display: flex;
    justify-content: center;
    gap: 4px;
    margin-bottom: 8px;
}

.bwe-hero-star {
    font-size: 1.6rem;
    color: #F5A623;
}

.bwe-hero-rating-text {
    font-size: var(--e-global-typography-primary-font-size, 0.9rem);
    color: #ffffff;
    font-style: var(--e-global-typography-primary-font-style, italic);
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
}

.bwe-hero-rating-source {
    color: #ffffff;
    text-decoration: underline;
    font-weight: 600;
}

a.bwe-hero-rating-source:hover {
    color: #F5A623;
}

/* Hero Responsive */
@media (max-width: 991px) {
    .bwe-hero-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .bwe-hero-left {
        max-width: 100%;
    }
    .bwe-hero-desc {
        margin-left: auto;
        margin-right: auto;
    }
    .bwe-hero-right {
        align-items: center;
    }
    .bwe-hero-fcard {
        width: 280px;
        height: 220px;
    }
    .bwe-hero-spotlight {
        width: 300px;
    }
    .bwe-hero-inner {
        padding: 60px 24px;
    }
    .bwe-hero-rating {
        position: relative;
        width: 100%;
        max-width: 380px;
        margin: 30px auto 0;
    }
}

@media (max-width: 575px) {
    .bwe-hero-heading {
        font-size: var(--e-global-typography-primary-font-size, clamp(1.6rem, 8vw, 2.2rem));
    }
    .bwe-hero-fcard {
        width: 240px;
        height: 180px;
    }
    .bwe-hero-fcard-icon i,
    .bwe-hero-fcard-icon svg {
        font-size: 50px;
        width: 50px;
        height: 50px;
    }
    .bwe-hero-spotlight {
        width: 260px;
        padding: 16px 18px;
    }
    .bwe-hero-inner {
        padding: 40px 16px;
    }
}

/* ============================================================
   TESTIMONIALS MARQUEE WIDGET
   ============================================================ */
.bwe-tm-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    position: relative;
    overflow: hidden;
}

/* overflow-x hidden on the section to prevent horizontal scroll from watermark */
.bwe-tm-wrap .bwe-tm-grid-outer {
    overflow: hidden;
}

/* Heading */
.bwe-tm-heading-wrap {
    display: grid;
    place-items: center;
    text-align: center;
    margin-bottom: 40px;
    overflow: hidden;      /* clips left/right sides of watermark — intentional design */
}

/* Watermark and heading-inner share the same grid cell → overlap without position:absolute */
.bwe-tm-watermark,
.bwe-tm-heading-inner {
    grid-area: 1 / 1;
}

.bwe-tm-watermark {
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    line-height: var(--e-global-typography-accent-line-height, 1);
    /* ⚠️  NO font-family / font-size / font-weight / letter-spacing / text-transform here.
       Those are fully controlled by the Elementor "Watermark Typography" control.
       Only non-typography defaults stay here so Elementor can override cleanly. */
    color: rgba(0, 0, 0, 0.04);
    font-size: var(--e-global-typography-accent-font-size, clamp(3rem, 10vw, 7rem)); /* fallback only — overridden by Elementor */
}

.bwe-tm-heading-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 2.2em 0;
}

.bwe-tm-heading {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.5rem, 3vw, 2.4rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* Testimonials — subtitle */
.bwe-tm-subtitle {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 1rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.82);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    margin: 10px 0 0;
    position: relative;
    z-index: 1;
}

/* Grid */
.bwe-tm-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.bwe-tm-col {
    height: 600px;
    overflow: hidden;
    position: relative;
}

.bwe-tm-col::before,
.bwe-tm-col::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 60px;
    z-index: 2;
    pointer-events: none;
}

.bwe-tm-col::before {
    top: 0;
    background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
}

.bwe-tm-col::after {
    bottom: 0;
    background: linear-gradient(to top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
}

.bwe-tm-track {
    display: flex;
    flex-direction: column;
    will-change: transform;
}

/* Card */
.bwe-tm-card {
    background: #ffffff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 22px 20px;
    margin-bottom: 0;
}

.bwe-tm-card + .bwe-tm-card {
    margin-top: 16px;
}

.bwe-tm-stars {
    color: #F5A623;
    font-size: 0.85rem;
    letter-spacing: 2px;
    margin-bottom: 12px;
}

.bwe-tm-review {
    font-size: var(--e-global-typography-text-font-size, 0.88rem);
    color: #444;
    line-height: var(--e-global-typography-text-line-height, 1.65);
    margin-bottom: 16px;
}

.bwe-tm-author {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bwe-tm-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.bwe-tm-avatar-placeholder {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #e8e8e8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 600;
    color: #888;
    flex-shrink: 0;
}

.bwe-tm-name {
    font-size: var(--e-global-typography-secondary-font-size, 0.85rem);
    font-weight: var(--e-global-typography-secondary-font-weight, 600);
    color: #1a1a1a;
}

.bwe-tm-role {
    font-size: var(--e-global-typography-text-font-size, 0.75rem);
    color: #999;
}

/* Testimonials Responsive */
@media (max-width: 991px) {
    .bwe-tm-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .bwe-tm-grid .bwe-tm-col:nth-child(3) {
        display: none;
    }
}

@media (max-width: 575px) {
    .bwe-tm-grid {
        grid-template-columns: 1fr;
    }
    .bwe-tm-grid .bwe-tm-col:nth-child(2),
    .bwe-tm-grid .bwe-tm-col:nth-child(3) {
        display: none;
    }
    .bwe-tm-col {
        height: 450px;
    }
}

/* ============================================================
   SERVICES GRID WIDGET
   ============================================================ */
.bwe-sg-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    position: relative;
    overflow: hidden;
}

.bwe-sg-header {
    margin-bottom: 40px;
}

.bwe-sg-heading {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.5rem, 3vw, 2.4rem));
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #1a1a1a;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 12px;
}

.bwe-sg-subtitle {
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    color: #666;
    line-height: var(--e-global-typography-text-line-height, 1.7);
    margin: 0 auto;
    max-width: 600px;
}

.bwe-sg-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* Classic Template */
.bwe-sg-grid--classic .bwe-sg-card {
    background: #ffffff;
    border: 1px solid #e8e8e8;
    border-radius: 12px;
    padding: 30px 28px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.bwe-sg-grid--classic .bwe-sg-card:hover {
    border-color: #2F6F2F;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    transform: translateY(-3px);
}

/* Filled Template */
.bwe-sg-grid--filled .bwe-sg-card {
    background: #f8faf5;
    border: none;
    border-radius: 12px;
    padding: 30px 28px;
    transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

.bwe-sg-grid--filled .bwe-sg-card:hover {
    background: #f0f5ea;
    box-shadow: 0 8px 24px rgba(47, 111, 47, 0.08);
    transform: translateY(-3px);
}

/* Minimal Template */
.bwe-sg-grid--minimal .bwe-sg-card {
    background: transparent;
    border: none;
    border-bottom: 2px solid #e8e8e8;
    border-radius: 0;
    padding: 30px 10px;
    transition: border-color 0.3s ease;
}

.bwe-sg-grid--minimal .bwe-sg-card:hover {
    border-bottom-color: #2F6F2F;
}

/* Card Inner */
.bwe-sg-icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: rgba(47, 111, 47, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    transition: background 0.3s ease;
}

.bwe-sg-icon i,
.bwe-sg-icon svg {
    font-size: 22px;
    width: 22px;
    height: 22px;
    color: #2F6F2F;
    fill: #2F6F2F;
}

.bwe-sg-card:hover .bwe-sg-icon {
    background: rgba(47, 111, 47, 0.14);
}

.bwe-sg-title {
    font-size: var(--e-global-typography-primary-font-size, 1rem);
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #1a1a1a;
    margin: 0 0 10px;
    line-height: var(--e-global-typography-primary-line-height, 1.3);
}

.bwe-sg-desc {
    font-size: var(--e-global-typography-text-font-size, 0.88rem);
    color: #666;
    line-height: var(--e-global-typography-text-line-height, 1.65);
    margin: 0;
}

.bwe-sg-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--e-global-typography-accent-font-size, 0.85rem);
    font-weight: var(--e-global-typography-accent-font-weight, 600);
    color: #2F6F2F;
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
    margin-top: 16px;
    transition: color 0.2s ease, gap 0.2s ease;
}

.bwe-sg-link:hover {
    color: #1a4a1a;
    gap: 8px;
}

.bwe-sg-arrow {
    transition: transform 0.2s ease;
}

.bwe-sg-link:hover .bwe-sg-arrow {
    transform: translateX(3px);
}

/* Services Responsive */
@media (max-width: 991px) {
    .bwe-sg-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .bwe-sg-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   ABOUT US SECTION WIDGET
   ============================================================ */
/* ============================================================
   ABOUT US SECTION WIDGET
   ============================================================ */

/* ── Section wrapper */
.bwe-about {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    position: relative;
}

/* ── Two-column grid */
.bwe-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.bwe-about--img-right .bwe-about-grid {
    direction: rtl;
}
.bwe-about--img-right .bwe-about-grid > * {
    direction: ltr;
}

/* ══════════════════════════════════════
   IMAGE COLUMN
══════════════════════════════════════ */
.bwe-about-img-col {
    position: relative;
}

/* Decorative rotated-border box (top-left of image) */
.bwe-about-img-line {
    position: absolute;
    top: 40px;
    left: -40px;
    width: 80px;
    height: 80px;
    border: 2px solid #88BC35;
    border-radius: 12px;
    opacity: 0.2;
    z-index: 0;
    pointer-events: none;
}

/* Image frame — 5:6 aspect ratio like your original */
.bwe-about-img-wrap {
    border-radius: 24px;
    overflow: hidden;
    position: relative;
    aspect-ratio: 5 / 6;
    width: 100%;
}

/* Gradient background (visible when no image uploaded) */
.bwe-about-img-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, #2F6F2F, #3a7a2a, #5ab35a);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 0;
}

/* Repeating subtle circle pattern overlay */
.bwe-about-img-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='80' height='80' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='40' cy='40' r='30' fill='none' stroke='%23fff' stroke-opacity='.04'/%3E%3C/svg%3E") repeat;
    pointer-events: none;
}

/* Placeholder cross+circle SVG icon shown when no image */
.bwe-about-placeholder-icon {
    width: 120px;
    height: 120px;
    stroke: rgba(255, 255, 255, 0.12);
    fill: none;
    stroke-width: 0.8;
    position: relative;
    z-index: 1;
}

/* picture takes up the full wrap via absolute positioning */
.bwe-about-img-wrap picture {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1;
}

/* img fills picture via normal flow — NOT position:absolute,
   because <picture> does not reliably establish a containing block
   for absolutely-positioned children in all browsers */
.bwe-about-img-wrap picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── Floating badge — white card, bottom-right corner */
.bwe-about-badge {
    position: absolute;
    bottom: 0;
    right: 0;
    background: #ffffff;
    border-radius: 16px;
    padding: 28px 36px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
    text-align: center;
    z-index: 4;
    min-width: 180px;
}

.bwe-about-badge-num {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 3rem);
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #2F6F2F;
    line-height: var(--e-global-typography-primary-line-height, 1);
    display: block;
}

.bwe-about-badge-label {
    font-size: var(--e-global-typography-accent-font-size, 0.78rem);
    color: #777777;
    margin-top: 4px;
    font-weight: var(--e-global-typography-accent-font-weight, 500);
    line-height: var(--e-global-typography-accent-line-height, 1.4);
    display: block;
}

/* ══════════════════════════════════════
   CONTENT COLUMN
══════════════════════════════════════ */
.bwe-about-heading {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.7rem, 3vw, 2.6rem));
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #1a1a1a;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 20px;
}

.bwe-about-desc {
    color: #666666;
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    line-height: var(--e-global-typography-text-line-height, 1.85);
    margin-bottom: 14px;
    font-weight: var(--e-global-typography-text-font-weight, 300);
}

.bwe-about-desc p {
    margin: 0 0 14px;
    color: #666666;
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    line-height: var(--e-global-typography-text-line-height, 1.85);
    font-weight: var(--e-global-typography-text-font-weight, 300);
}

.bwe-about-desc p:last-child { margin-bottom: 0; }

/* ── Checklist */
.bwe-about-checklist {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 32px;
}

.bwe-about-check-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bwe-about-check-icon {
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 8px;
    background: rgba(47, 111, 47, 0.08);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: #2F6F2F;
}

.bwe-about-check-icon svg {
    width: 14px;
    height: 14px;
    stroke: #2F6F2F;
    fill: none;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bwe-about-check-text {
    font-size: var(--e-global-typography-accent-font-size, 0.88rem);
    font-weight: var(--e-global-typography-accent-font-weight, 500);
    color: #333333;
}

/* ══════════════════════════════════════
   ABOUT RESPONSIVE
══════════════════════════════════════ */

@media (max-width: 1100px) {
    .bwe-about-grid { gap: 56px; }
}

@media (max-width: 1024px) {
    .bwe-about-grid {
        grid-template-columns: 1fr;
        gap: 60px;
    }
    .bwe-about--img-right .bwe-about-grid { direction: ltr; }

    /* Badge: keep absolute but pull back inside the column boundary */
    .bwe-about-badge {
        right: 0;
        bottom: -20px;
    }

    /* Give col some right padding so badge doesn't clip */
    .bwe-about-img-col {
        padding-right: 0;
        padding-bottom: 44px;
    }
}

@media (max-width: 767px) {
    .bwe-about-grid { gap: 40px; }
    .bwe-about-img-line { display: none; }

    .bwe-about-img-col { padding-bottom: 0; }

    /* Badge flows below image on mobile */
    .bwe-about-badge {
        position: relative;
        bottom: auto;
        right: auto;
        margin-top: 20px;
        display: inline-block;
        text-align: center;
        min-width: unset;
        box-shadow: 0 8px 28px rgba(0,0,0,0.09);
    }

    .bwe-about-heading { font-size: var(--e-global-typography-primary-font-size, clamp(1.5rem, 5.5vw, 2rem)); margin-bottom: 14px; }
    .bwe-about-checklist {
        grid-template-columns: 1fr !important;
        gap: 12px;
        margin-top: 20px;
    }
    .bwe-about-check-item {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
    }
    .bwe-about-check-text {
        flex: 1;
        white-space: normal;
        word-break: break-word;
    }
    .bwe-about-badge-num { font-size: var(--e-global-typography-primary-font-size, 2.4rem); }
    .bwe-about-img-wrap {
        width: 100%;
        aspect-ratio: 4 / 3;
    }
    .bwe-about-img-wrap picture img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
    }
}

@media (max-width: 480px) {
    .bwe-about-img-wrap { aspect-ratio: 16 / 10; }
    .bwe-about-heading { font-size: var(--e-global-typography-primary-font-size, 1.4rem); }
    .bwe-about-desc, .bwe-about-desc p { font-size: var(--e-global-typography-text-font-size, 0.88rem); }
.bwe-about-badge-num { font-size: var(--e-global-typography-primary-font-size, 2rem); }
    .bwe-about-badge-label { font-size: var(--e-global-typography-accent-font-size, 0.72rem); }
    .bwe-about-check-text { font-size: var(--e-global-typography-accent-font-size, 0.85rem); }
    .bwe-about-checklist {
        grid-template-columns: 1fr !important;
        gap: 10px;
    }
}

/* ============================================================
   COUNTER / STATS WIDGET
   ============================================================ */
.bwe-ctr-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    /* No hardcoded background — controlled via Elementor Style tab */
    border-radius: 16px;
    padding: 60px 50px;
    box-sizing: border-box;
    width: 100%;
    position: relative;
    overflow: hidden;
}

.bwe-ctr-grid {
    display: grid;
    /* Default: 4 columns — overridden by Elementor responsive selector */
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    width: 100%;
}

/* Cards Template */
.bwe-ctr--cards .bwe-ctr-card {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 16px;
    padding: 32px 20px;
    text-align: center;
    transition: background 0.3s ease, transform 0.2s ease;
    box-sizing: border-box;
    min-width: 0;
}

.bwe-ctr--cards .bwe-ctr-card:hover {
    background: rgba(255,255,255,0.14);
    transform: translateY(-3px);
}

/* Circles Template */
.bwe-ctr--circles .bwe-ctr-card {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 50%;
    width: 180px;
    height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    padding: 20px;
    text-align: center;
    transition: background 0.3s ease;
    box-sizing: border-box;
}

.bwe-ctr--circles .bwe-ctr-card:hover {
    background: rgba(255,255,255,0.14);
}

.bwe-ctr-icon {
    margin-bottom: 8px;
    color: #88BC35;
    line-height: 1;
}

.bwe-ctr-number {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.8rem, 3vw, 2.8rem));
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #88BC35;
    line-height: var(--e-global-typography-primary-line-height, 1);
    margin-bottom: 6px;
}

.bwe-ctr-title {
    font-size: var(--e-global-typography-secondary-font-size, 0.85rem);
    color: rgba(255,255,255,0.85);
    font-weight: var(--e-global-typography-secondary-font-weight, 400);
}

/* Counter Responsive — only applies when Elementor responsive selector is NOT overriding */
@media (max-width: 1024px) {
    .bwe-ctr-grid:not([style*="grid-template-columns"]) {
        grid-template-columns: repeat(2, 1fr);
    }
    .bwe-ctr-wrap {
        padding: 40px 30px;
    }
}

@media (max-width: 767px) {
    /* Force 2-col on mobile unless Elementor overrides */
    .bwe-ctr-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px;
    }
    .bwe-ctr-wrap {
        padding: 30px 16px;
    }
    .bwe-ctr--circles .bwe-ctr-card {
        width: 140px;
        height: 140px;
    }
    .bwe-ctr-number {
        font-size: var(--e-global-typography-primary-font-size, 1.6rem);
    }
}

@media (max-width: 480px) {
    .bwe-ctr-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px;
    }
    .bwe-ctr-wrap {
        padding: 24px 12px;
    }
    .bwe-ctr-number {
        font-size: var(--e-global-typography-primary-font-size, 1.4rem);
    }
    .bwe-ctr-title {
        font-size: var(--e-global-typography-secondary-font-size, 0.75rem);
    }
    .bwe-ctr--cards .bwe-ctr-card {
        padding: 20px 12px;
    }
}

/* ============================================================
   TEAM SECTION WIDGET
   ============================================================ */
.bwe-team-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    position: relative;
    overflow: hidden;
}

.bwe-team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.bwe-team-card {
    background: #ffffff;
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 12px 12px 20px;
    text-align: center;
    transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.bwe-team-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
    transform: translateY(-3px);
}

.bwe-team-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.bwe-team-photo {
    width: 100%;
    height: 260px;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 16px;
}

.bwe-team-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bwe-team-name {
    font-size: var(--e-global-typography-secondary-font-size, 0.95rem);
    font-weight: var(--e-global-typography-secondary-font-weight, 600);
    color: #1a1a1a;
    margin-bottom: 4px;
}

.bwe-team-desg {
    font-size: var(--e-global-typography-text-font-size, 0.8rem);
    color: #2F6F2F;
    font-weight: var(--e-global-typography-text-font-weight, 400);
}

/* Team Responsive */
@media (max-width: 991px) {
    .bwe-team-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .bwe-team-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }
    .bwe-team-photo {
        height: 180px;
    }
}

/* ============================================================
   BLOG / RECENT POSTS WIDGET
   ============================================================ */
.bwe-blog-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    position: relative;
    overflow: hidden;
}

.bwe-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.bwe-blog-card {
    background: #ffffff;
    border: 1px solid #eee;
    border-radius: 14px;
    overflow: hidden;
    transition: box-shadow 0.3s ease, transform 0.2s ease;
    display: flex;
    flex-direction: column;
}

.bwe-blog-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
    transform: translateY(-3px);
}

.bwe-blog-card-link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.bwe-blog-thumb {
    width: calc(100% - 16px);
    height: 200px;
    overflow: hidden;
    position: relative;
    background: #e8e8e8;
    margin: 8px 8px 0;
    border-radius: 12px;
    flex-shrink: 0;
}

.bwe-blog-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.bwe-blog-card:hover .bwe-blog-thumb img {
    transform: scale(1.05);
}

.bwe-blog-cat {
    position: absolute;
    top: 14px;
    left: 14px;
    background: #2F6F2F;
    color: #ffffff;
    font-size: var(--e-global-typography-accent-font-size, 0.6rem);
    font-weight: var(--e-global-typography-accent-font-weight, 700);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 1.5px);
    padding: 5px 14px;
    border-radius: 20px;
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
}

.bwe-blog-body {
    padding: 16px 20px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.bwe-blog-meta {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 10px;
    color: #999;
    font-size: var(--e-global-typography-text-font-size, 0.75rem);
}

.bwe-blog-date,
.bwe-blog-time {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.bwe-blog-date::before,
.bwe-blog-time::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #2F6F2F;
    display: inline-block;
    flex-shrink: 0;
}

.bwe-blog-meta svg {
    flex-shrink: 0;
}

.bwe-blog-title {
    font-size: var(--e-global-typography-secondary-font-size, 1rem);
    font-weight: var(--e-global-typography-secondary-font-weight, 700);
    color: #1a1a1a;
    line-height: var(--e-global-typography-secondary-line-height, 1.4);
    margin: 0 0 8px;
    transition: color 0.2s ease;
}

.bwe-blog-excerpt {
    font-size: var(--e-global-typography-text-font-size, 0.85rem);
    color: #666;
    line-height: var(--e-global-typography-text-line-height, 1.6);
    margin: 0 0 14px;
    flex: 1;
}

.bwe-blog-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--e-global-typography-accent-font-size, 0.85rem);
    font-weight: var(--e-global-typography-accent-font-weight, 600);
    color: #2F6F2F;
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
    transition: color 0.2s ease, gap 0.2s ease;
}

.bwe-blog-card:hover .bwe-blog-link {
    color: #1a4a1a;
    gap: 8px;
}

.bwe-blog-arrow {
    transition: transform 0.2s ease;
}

.bwe-blog-card:hover .bwe-blog-arrow {
    transform: translateX(3px);
}

/* Blog Responsive */
@media (max-width: 991px) {
    .bwe-blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .bwe-blog-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   FEATURED IN / BRANDS CAROUSEL WIDGET
   ============================================================ */

/* Section wrapper */
.bwe-fi-section {
    background: #ffffff;
    padding: 72px 0;
    border-top: 1px solid rgba(0,0,0,.05);
    border-bottom: 1px solid rgba(0,0,0,.05);
    overflow: hidden;
    position: relative;
}

/* Side-by-side layout */
.bwe-fi-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 60px;
    align-items: center;
}

/* Stacked layout */
.bwe-fi-container--stacked {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
}

.bwe-fi-container--stacked .bwe-fi-text {
    max-width: 680px;
    margin: 0 auto;
}

/* Tag */
/* Title wrap + watermark */
.bwe-fi-title-wrap {
    position: relative;
    display: inline-block;
    width: 100%;
}

.bwe-fi-watermark {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(2.5rem, 6vw, 5rem));
    font-weight: var(--e-global-typography-primary-font-weight, 900);
    color: rgba(0,0,0,0.05);
    line-height: var(--e-global-typography-primary-line-height, 1);
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
    z-index: 0;
}

.bwe-fi-title {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.5rem, 2.5vw, 2.2rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 14px;
    position: relative;
    z-index: 1;
}

.bwe-fi-subtitle {
    font-size: var(--e-global-typography-text-font-size, 0.88rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    max-width: 300px;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

.bwe-fi-container--stacked .bwe-fi-subtitle {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}

/* Carousel */
.bwe-fi-carousel-wrapper {
    position: relative;
    overflow: hidden;
}

.bwe-fi-carousel-wrapper::before,
.bwe-fi-carousel-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 80px;
    z-index: 2;
    pointer-events: none;
}

.bwe-fi-carousel-wrapper::before {
    left: 0;
    background: linear-gradient(to right, #ffffff, transparent);
}

.bwe-fi-carousel-wrapper::after {
    right: 0;
    background: linear-gradient(to left, #ffffff, transparent);
}

.bwe-fi-carousel-track {
    display: flex;
    width: max-content;
    animation: bweFiScroll 28s linear infinite;
}

.bwe-fi-pause-hover:hover {
    animation-play-state: paused;
}

@keyframes bweFiScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.bwe-fi-set {
    display: grid;
    gap: 0;
}

/* Brand cell */
.bwe-fi-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px 22px;
    border: 1px solid rgba(0,0,0,0.06);
    background: #ffffff;
    transition: all 0.35s ease;
    cursor: default;
    position: relative;
}

.bwe-fi-cell:hover {
    background: #f7f9f7;
    z-index: 1;
}

.bwe-fi-cell:hover .bwe-fi-logo-wrap {
    transform: scale(1.05);
}

.bwe-fi-logo-wrap {
    display: flex;
    align-items: center;
    gap: 9px;
    transition: transform 0.35s ease;
}

.bwe-fi-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: inherit;
}

.bwe-fi-icon svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
}

.bwe-fi-brand-name {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), serif;
    font-size: var(--e-global-typography-primary-font-size, 1rem);
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #1a1a1a;
    line-height: var(--e-global-typography-primary-line-height, 1.1);
    white-space: nowrap;
    display: block;
}

.bwe-fi-brand-accent {
    color: #88BC35;
}

.bwe-fi-brand-sub {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.65rem);
    font-weight: var(--e-global-typography-text-font-weight, 400);
    color: #6E625A;
    display: block;
    letter-spacing: var(--e-global-typography-text-letter-spacing, 0.3px);
}

/* Responsive */
@media (max-width: 900px) {
    .bwe-fi-container {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .bwe-fi-subtitle {
        max-width: 100%;
    }
}

/* ============================================================
   WORKING PROCESS WIDGET
   ============================================================ */

.bwe-ps-section {
    background: #f7f9f7;
    position: relative;
    overflow: hidden;
}

.bwe-ps-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 80px 24px;
}

/* Section header */
.bwe-ps-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 60px;
}

/* Tag */
/* Title wrap + watermark */
.bwe-ps-title-wrap {
    position: relative;
    display: inline-block;
}

.bwe-ps-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(3rem, 7vw, 6rem));
    font-weight: var(--e-global-typography-primary-font-weight, 900);
    color: rgba(0,0,0,0.05);
    line-height: var(--e-global-typography-primary-line-height, 1);
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
    z-index: 0;
}

.bwe-ps-title {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.6rem, 2.8vw, 2.4rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 14px;
    position: relative;
    z-index: 1;
}

.bwe-ps-subtitle {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    max-width: 580px;
    margin: 0 auto;
}

/* Steps grid */
.bwe-ps-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    position: relative;
    margin-top: 16px;
}

/* Connector line */
.bwe-ps-has-line::before {
    content: '';
    position: absolute;
    top: 52px;
    left: calc(12.5% + 8px);
    right: calc(12.5% + 8px);
    height: 2px;
    background: repeating-linear-gradient(
        90deg,
        #88BC35 0, #88BC35 8px,
        transparent 8px, transparent 20px
    );
    opacity: 0.4;
    z-index: 0;
}

/* Individual step */
.bwe-ps-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 24px;
    position: relative;
    z-index: 1;
}

.bwe-ps-icon-wrap {
    position: relative;
    margin-bottom: 28px;
}

/* Circle */
.bwe-ps-circle {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    border: 2px solid rgba(47,111,47,0.12);
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: all 0.45s cubic-bezier(.25,.8,.25,1);
    position: relative;
    z-index: 1;
}

.bwe-ps-step:hover .bwe-ps-circle {
    box-shadow: 0 8px 28px rgba(47,111,47,0.32);
    transform: translateY(-6px) scale(1.05);
}

.bwe-ps-circle svg,
.bwe-ps-circle i {
    width: 36px;
    height: 36px;
    font-size: 1.5rem;
    color: #2F6F2F;
    stroke: #2F6F2F;
    fill: none;
    stroke-width: 1.6px;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: color 0.45s, stroke 0.45s;
}

/* Badge number */
.bwe-ps-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #88BC35;
    display: grid;
    place-items: center;
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), serif;
    font-size: var(--e-global-typography-primary-font-size, 0.85rem);
    font-weight: var(--e-global-typography-primary-font-weight, 700);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(136,188,53,0.35);
    z-index: 2;
    transition: all 0.45s;
}

.bwe-ps-step:hover .bwe-ps-badge {
    background: #2F6F2F;
    transform: scale(1.15);
}

/* Step text */
.bwe-ps-step-title {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 1.05rem);
    font-weight: var(--e-global-typography-text-font-weight, 600);
    color: #2B2B2B;
    margin-bottom: 10px;
    transition: color 0.35s;
}

.bwe-ps-step:hover .bwe-ps-step-title {
    color: #2F6F2F;
}

.bwe-ps-step-desc {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.85rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.75);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    max-width: 220px;
    margin: 0 auto;
}

/* CTA */
.bwe-ps-cta {
    text-align: center;
    margin-top: 60px;
}

.bwe-ps-cta-label {
    color: #6E625A;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    margin-bottom: 20px;
    font-weight: var(--e-global-typography-text-font-weight, 300);
}

.bwe-ps-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: #2F6F2F;
    color: #ffffff;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.9rem);
    font-weight: var(--e-global-typography-text-font-weight, 600);
    padding: 14px 32px;
    border-radius: 50px;
    text-decoration: var(--e-global-typography-text-text-decoration, none);
    transition: background 0.3s, box-shadow 0.3s, gap 0.3s;
    box-shadow: 0 4px 18px rgba(47,111,47,0.22);
}

.bwe-ps-cta-btn:hover {
    background: #1a4a1a;
    box-shadow: 0 6px 24px rgba(47,111,47,0.35);
    gap: 14px;
}

.bwe-ps-cta-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.3s;
}

.bwe-ps-cta-btn:hover svg {
    transform: translateX(3px);
}

/* Responsive */
@media (max-width: 991px) {
    .bwe-ps-steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 0;
    }
    .bwe-ps-has-line::before {
        display: none;
    }
}

@media (max-width: 575px) {
    .bwe-ps-steps {
        grid-template-columns: 1fr;
        gap: 40px 0;
    }
}

/* ============================================================
   BWE WATERMARK — shared across all widgets
   ============================================================ */
.bwe-watermark {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    white-space: nowrap;
    user-select: none;
    line-height: var(--e-global-typography-text-line-height, 1);
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, clamp(3rem, 10vw, 7rem));
    font-weight: var(--e-global-typography-text-font-weight, 800);
    text-transform: var(--e-global-typography-text-text-transform, uppercase);
    letter-spacing: var(--e-global-typography-text-letter-spacing, 6px);
    color: rgba(0, 0, 0, 0.04);
    z-index: 0;
}
.bwe-wm-pos--center        { top: 50%;  left: 50%; }
.bwe-wm-pos--top-left      { top: 15%;  left: 20%; }
.bwe-wm-pos--top-center    { top: 15%;  left: 50%; }
.bwe-wm-pos--top-right     { top: 15%;  left: 80%; }
.bwe-wm-pos--bottom-left   { top: 85%;  left: 20%; }
.bwe-wm-pos--bottom-center { top: 85%;  left: 50%; }
.bwe-wm-pos--bottom-right  { top: 85%;  left: 80%; }

/* ============================================================
   WHY CHOOSE US WIDGET
   ============================================================ */

.bwe-wcu-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    background: #F2F1EE;
    box-sizing: border-box;
    width: 100%;
    display: block;
    position: relative;
}

.bwe-wcu-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding: 80px 40px;
}

/* ── LEFT COLUMN ──────────────────────────── */
.bwe-wcu-left {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Tag / Badge */
/* Main heading */
.bwe-wcu-heading {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.8rem, 3vw, 2.6rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 16px;
}

/* Subtitle */
.bwe-wcu-subtitle {
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.75);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    margin: 0 0 32px;
}

/* ── ITEMS ──────────────────────────────────── */
.bwe-wcu-items {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bwe-wcu-card {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    background: #FFFFFF;
    border-radius: 16px;
    padding: 20px 24px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.bwe-wcu-card:hover {
    box-shadow: 0 6px 28px rgba(0,0,0,0.10);
    transform: translateY(-2px);
}

.bwe-wcu-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 10px;
    background: #2F6F2F;
    color: #FFFFFF;
    font-size: var(--e-global-typography-accent-font-size, 0.75rem);
    font-weight: var(--e-global-typography-accent-font-weight, 700);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.5px);
    flex-shrink: 0;
}

.bwe-wcu-card-body {
    flex: 1;
}

.bwe-wcu-item-title {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    font-weight: var(--e-global-typography-text-font-weight, 600);
    color: #1A2B1A;
    margin: 0 0 6px;
    line-height: var(--e-global-typography-text-line-height, 1.4);
}

.bwe-wcu-item-desc {
    font-size: var(--e-global-typography-text-font-size, 0.82rem);
    color: #555;
    line-height: var(--e-global-typography-text-line-height, 1.65);
    margin: 0;
    font-weight: var(--e-global-typography-text-font-weight, 300);
}

/* ── RIGHT PANEL ──────────────────────────── */
.bwe-wcu-panel {
    position: relative;
    background: #2F6F2F;
    border-radius: 24px;
    min-height: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* Panel background image */
.bwe-wcu-panel-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    /* object-fit and object-position are managed by Elementor controls */
    border-radius: inherit;
    display: block;
}

/* Shield icon (decorative) */
.bwe-wcu-shield {
    color: rgba(255, 255, 255, 0.12);
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
}

.bwe-wcu-shield svg {
    width: 80px;
    height: 80px;
    display: block;
}

/* Tagline */
.bwe-wcu-panel-tagline {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1rem, 1.8vw, 1.35rem));
    font-style: var(--e-global-typography-primary-font-style, italic);
    color: rgba(255, 255, 255, 0.75);
    text-align: center;
    padding: 0 30px;
    margin: 0;
    position: relative;
    z-index: 1;
    line-height: var(--e-global-typography-primary-line-height, 1.5);
}

/* Rating Badge */
.bwe-wcu-rating {
    position: absolute;
    bottom: -14px;
    left: 28px;
    background: #88BC35;
    color: #FFFFFF;
    border-radius: 16px;
    padding: 12px 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-shadow: 0 8px 24px rgba(136, 188, 53, 0.4);
    z-index: 10;
}

.bwe-wcu-rating-score {
    font-size: var(--e-global-typography-accent-font-size, 1.25rem);
    font-weight: var(--e-global-typography-accent-font-weight, 700);
    line-height: var(--e-global-typography-accent-line-height, 1.1);
}

.bwe-wcu-rating-label {
    font-size: var(--e-global-typography-accent-font-size, 0.7rem);
    font-weight: var(--e-global-typography-accent-font-weight, 500);
    opacity: 0.85;
    margin-top: 2px;
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.3px);
}

/* ── RESPONSIVE ───────────────────────────── */
@media (max-width: 1024px) {
    .bwe-wcu-inner {
        gap: 36px;
        padding: 60px 30px;
    }
}

@media (max-width: 767px) {
    .bwe-wcu-inner {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 48px 20px 60px;
    }

    .bwe-wcu-panel {
        min-height: 300px;
        margin-bottom: 20px;
    }

    .bwe-wcu-rating {
        bottom: -18px;
        left: 20px;
    }

    .bwe-wcu-heading {
        font-size: var(--e-global-typography-primary-font-size, clamp(1.6rem, 6vw, 2rem));
    }
}

@media (max-width: 480px) {
    .bwe-wcu-inner {
        padding: 40px 16px 56px;
    }

    .bwe-wcu-card {
        padding: 16px 18px;
    }

    .bwe-wcu-num {
        width: 36px;
        height: 36px;
        min-width: 36px;
        font-size: var(--e-global-typography-accent-font-size, 0.7rem);
    }

    .bwe-wcu-item-title {
        font-size: var(--e-global-typography-text-font-size, 0.9rem);
    }
}

/* ============================================================
   GLOBAL RESPONSIVE FIXES — ALL WIDGETS
   Brockwell Widgets v2.3.0
   ============================================================ */

/* ── Base: only truly "flow" images get height:auto
   Widget images (team, blog, about, wcu panel) all live inside
   fixed-height containers and MUST stay at height:100%.
   Keep them out of this reset entirely. */
.bwe-hero img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* These widget images need height:100% (set in their own rules above).
   Only add max-width here so the specific height rules are not overridden. */
.bwe-team-photo img,
.bwe-blog-thumb img,
.bwe-about-img-wrap picture img,
.bwe-wcu-panel-img {
    max-width: 100%;
}

/* Fixed-height image containers stay fluid in width */
.bwe-team-photo,
.bwe-blog-thumb {
    width: 100%;
    box-sizing: border-box;
}

/* Prevent any widget from causing horizontal scroll */
.bwe-hero,
.bwe-about,
.bwe-ctr-wrap,
.bwe-team-wrap,
.bwe-blog-wrap,
.bwe-fi-section,
.bwe-faq-list,
.bwe-tm-wrap,
.bwe-ps-wrap,
.bwe-sh-wrap,
.bwe-wcu-wrap {
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* ── TABLET (max 1024px) ── */
@media (max-width: 1024px) {

    /* Hero */
    .bwe-hero-grid {
        grid-template-columns: 1fr;
    }
    .bwe-hero-inner {
        padding: 60px 32px;
    }
    .bwe-hero-left { max-width: 100%; }
    .bwe-hero-right { align-items: center; margin-top: 32px; }
    .bwe-hero-fcard { width: 280px; height: 220px; }
    .bwe-hero-spotlight { width: 300px; }
    .bwe-hero-rating {
        position: relative;
        width: 100%;
        max-width: 340px;
        margin: 24px auto 0;
    }

    /* About */
    .bwe-about-grid {
        grid-template-columns: 1fr;
        gap: 48px;
    }
    .bwe-about--img-right .bwe-about-grid { direction: ltr; }
    .bwe-about-img-col { padding-bottom: 40px; }
    .bwe-about-badge { right: 0; bottom: 0; }

    /* Counter */
    .bwe-ctr-wrap { padding: 48px 32px; }

    /* Services Grid */
    .bwe-sg-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Team */
    .bwe-team-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Blog */
    .bwe-blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Process steps */
    .bwe-ps-steps {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 40px 20px;
    }
    .bwe-ps-has-line::before { display: none; }
}

/* ── MOBILE (max 767px) ── */
@media (max-width: 767px) {

    /* Hero */
    .bwe-hero { min-height: unset; }
    .bwe-hero-inner { padding: 48px 20px; }
    .bwe-hero-grid { gap: 28px; text-align: center; }
    .bwe-hero-heading { font-size: var(--e-global-typography-primary-font-size, clamp(1.6rem, 7vw, 2.4rem)); }
    .bwe-hero-desc { font-size: var(--e-global-typography-text-font-size, 0.9rem); margin-left: auto; margin-right: auto; }
    .bwe-hero-cta { padding: 14px 28px; font-size: var(--e-global-typography-accent-font-size, 0.88rem); }
    .bwe-hero-fcard { width: 240px; height: 180px; }
    .bwe-hero-spotlight { width: 260px; padding: 14px 16px; }
    .bwe-hero-fcard-icon i,
    .bwe-hero-fcard-icon svg { font-size: 50px; width: 50px; height: 50px; }

    /* Section Heading */
    .bwe-sh-title { font-size: var(--e-global-typography-primary-font-size, clamp(1.4rem, 6vw, 2rem)); }
    .bwe-sh-subtitle { font-size: var(--e-global-typography-text-font-size, 0.9rem); }

    /* About */
    .bwe-about-grid { gap: 32px; }
    .bwe-about-img-col { padding-bottom: 0; }
    .bwe-about-img-wrap { aspect-ratio: 4 / 3; width: 100%; }
    .bwe-about-img-wrap picture img { width: 100% !important; height: 100% !important; object-fit: cover; }
    .bwe-about-img-line { display: none; }
    .bwe-about-badge {
        position: relative;
        bottom: auto; right: auto;
        margin-top: 16px;
        display: inline-block;
        min-width: unset;
    }
    .bwe-about-heading { font-size: var(--e-global-typography-primary-font-size, clamp(1.4rem, 5.5vw, 2rem)); }
    .bwe-about-checklist {
        grid-template-columns: 1fr !important;
        gap: 10px;
        margin-top: 20px;
    }
    .bwe-about-check-item {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 100%;
    }
    .bwe-about-check-text {
        flex: 1;
        white-space: normal;
        word-break: break-word;
    }

    /* Counter */
    .bwe-ctr-wrap { padding: 40px 20px; }
    .bwe-ctr-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px;
    }

    /* Services Grid */
    .bwe-sg-grid {
        grid-template-columns: 1fr !important;
    }
    .bwe-sg-card { padding: 20px 18px; }

    /* Team */
    .bwe-team-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }
    .bwe-team-photo { height: 180px; }
    .bwe-team-name { font-size: var(--e-global-typography-secondary-font-size, 0.88rem); }
    .bwe-team-desg { font-size: var(--e-global-typography-text-font-size, 0.75rem); }

    /* Blog */
    .bwe-blog-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .bwe-blog-thumb { height: 200px; }
    .bwe-blog-title { font-size: var(--e-global-typography-secondary-font-size, 0.95rem); }

    /* Featured In */
    .bwe-fi-section { padding: 48px 0; }
    .bwe-fi-heading { font-size: var(--e-global-typography-primary-font-size, clamp(1rem, 5vw, 1.4rem)); }

    /* Testimonials */
    .bwe-tm-heading-wrap { margin-bottom: 28px; }

    /* Process Steps */
    .bwe-ps-steps {
        grid-template-columns: 1fr !important;
        gap: 32px 0;
    }

    /* Why Choose Us */
    .bwe-wcu-inner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 48px 20px 56px;
    }
    .bwe-wcu-panel { min-height: 280px; margin-bottom: 20px; }
    .bwe-wcu-heading { font-size: var(--e-global-typography-primary-font-size, clamp(1.5rem, 6vw, 2rem)); }
    .bwe-wcu-subtitle { font-size: var(--e-global-typography-text-font-size, 0.88rem); margin-bottom: 24px; }
    .bwe-wcu-card { padding: 16px 18px; gap: 14px; }
}

/* ── SMALL MOBILE (max 480px) ── */
@media (max-width: 480px) {

    /* Hero */
    .bwe-hero-inner { padding: 40px 16px; }
    .bwe-hero-fcard { width: 200px; height: 160px; }
    .bwe-hero-spotlight { width: 220px; padding: 12px 14px; }

    /* About */
    .bwe-about-img-wrap { aspect-ratio: 3 / 2; }
    .bwe-about-heading { font-size: var(--e-global-typography-primary-font-size, 1.4rem); }
    .bwe-about-desc,
    .bwe-about-desc p { font-size: var(--e-global-typography-text-font-size, 0.85rem); }
    .bwe-about-badge { padding: 16px 20px; }
    .bwe-about-badge-num { font-size: var(--e-global-typography-primary-font-size, 2rem); }

    /* Counter */
    .bwe-ctr-wrap { padding: 32px 14px; }
    .bwe-ctr-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 14px; }
    .bwe-ctr-number { font-size: var(--e-global-typography-primary-font-size, 1.5rem) !important; }

    /* Team — 1 col on very small */
    .bwe-team-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .bwe-team-photo { height: 240px; }

    /* Blog */
    .bwe-blog-thumb { height: 180px; }

    /* Services Grid */
    .bwe-sg-card { padding: 16px 14px; }

    /* Why Choose Us */
    .bwe-wcu-inner { padding: 36px 14px 52px; }
    .bwe-wcu-card { padding: 14px 14px; }
    .bwe-wcu-num {
        width: 34px; height: 34px; min-width: 34px;
        font-size: var(--e-global-typography-accent-font-size, 0.68rem);
    }
    .bwe-wcu-item-title { font-size: var(--e-global-typography-text-font-size, 0.88rem); }
    .bwe-wcu-item-desc { font-size: var(--e-global-typography-text-font-size, 0.8rem); }
    .bwe-wcu-panel { min-height: 240px; }

    /* FAQ */
    .bwe-faq-q   { font-size: var(--e-global-typography-secondary-font-size, 0.85rem); padding: 14px 14px; gap: 10px; }
    .bwe-arrow   { width: 26px; height: 26px; }
}

/* ── Elementor inner containers — prevent overflow ── */
.elementor-widget-bwe_hero_section .elementor-widget-container,
.elementor-widget-bwe_about_section .elementor-widget-container,
.elementor-widget-bwe_counter_section .elementor-widget-container,
.elementor-widget-bwe_team_section .elementor-widget-container,
.elementor-widget-bwe_blog_section .elementor-widget-container,
.elementor-widget-bwe_services_grid .elementor-widget-container,
.elementor-widget-bwe_why_choose_us .elementor-widget-container,
.elementor-widget-bwe_process_section .elementor-widget-container,
.elementor-widget-bwe_faq_accordion .elementor-widget-container,
.elementor-widget-bwe_testimonials_marquee .elementor-widget-container,
.elementor-widget-bwe_featured_in .elementor-widget-container {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* ============================================================
   SERVICE OVERVIEW WIDGET  (bwe_service_overview)
   ============================================================ */

.bwe-sov-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* Section header */
.bwe-sov-header {
    margin-bottom: 52px;
}

.bwe-sov-subtitle {
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    max-width: 540px;
    margin: 0;
}

/* Two-column inner */
.bwe-sov-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

/* Left: text */
.bwe-sov-text p {
    font-size: var(--e-global-typography-text-font-size, 0.94rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.9);
    margin-bottom: 20px;
}

.bwe-sov-text p:last-child {
    margin-bottom: 0;
}

.bwe-sov-quote {
    border-left: 3px solid #2F6F2F;
    border-radius: 0 8px 8px 0;
    padding: 20px 24px;
    margin: 28px 0;
    background: rgba(47, 111, 47, 0.08);
}

.bwe-sov-quote p {
    font-size: var(--e-global-typography-text-font-size, 1rem) !important;
    font-style: var(--e-global-typography-text-font-style, italic);
    color: #2B2B2B !important;
    line-height: var(--e-global-typography-text-line-height, 1.7);
    margin: 0 !important;
}

/* Right: feature cards */
.bwe-sov-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.bwe-sov-card {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    padding: 24px;
    transition: border-color 0.25s, box-shadow 0.25s;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.bwe-sov-card:hover {
    border-color: rgba(47, 111, 47, 0.3);
    box-shadow: 0 4px 20px rgba(47, 111, 47, 0.08);
}

.bwe-sov-card-icon {
    width: 46px;
    height: 46px;
    background: rgba(47, 111, 47, 0.08);
    border: 1px solid rgba(47, 111, 47, 0.2);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
}

.bwe-sov-card-icon i,
.bwe-sov-card-icon svg {
    font-size: 18px;
    width: 18px;
    height: 18px;
    color: #2F6F2F;
}

.bwe-sov-card h4 {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1rem);
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    margin: 0 0 7px;
    line-height: var(--e-global-typography-primary-line-height, 1.3);
}

.bwe-sov-card p {
    font-size: var(--e-global-typography-text-font-size, 0.82rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.7);
    margin: 0;
}

/* ============================================================
   CONDITIONS GRID WIDGET  (bwe_conditions_grid)
   ============================================================ */

.bwe-cg-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* Header */
.bwe-cg-header {
    margin-bottom: 40px;
}

.bwe-cg-subtitle {
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    max-width: 540px;
    margin: 0;
}

/* Grid */
.bwe-cg-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

/* Tag items */
.bwe-cg-tag-item {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: var(--e-global-typography-accent-font-size, 0.87rem);
    color: #2B2B2B;
    font-weight: var(--e-global-typography-accent-font-weight, 400);
    transition: all 0.25s ease;
    cursor: default;
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
}

a.bwe-cg-tag-item {
    cursor: pointer;
}

.bwe-cg-tag-item:hover {
    border-color: rgba(47, 111, 47, 0.35);
    background: rgba(47, 111, 47, 0.05);
    color: #2F6F2F;
}

.bwe-cg-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #88BC35;
    flex-shrink: 0;
}

/* ============================================================
   BENEFITS SECTION WIDGET  (bwe_benefits_section)
   ============================================================ */

.bwe-bs-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* Header */
.bwe-bs-header {
    margin-bottom: 52px;
}

.bwe-bs-subtitle {
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    max-width: 540px;
    margin: 0;
}

/* Two-column inner */
.bwe-bs-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

/* Left: stats visual block */
.bwe-bs-visual {
    background: #2F6F2F;
    border-radius: 20px;
    padding: 52px;
    position: relative;
    overflow: hidden;
}

.bwe-bs-visual::before {
    content: '';
    position: absolute;
    bottom: -80px;
    right: -80px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(136, 188, 53, 0.2) 0%, transparent 70%);
    pointer-events: none;
}

.bwe-bs-big-stat {
    margin-bottom: 32px;
}

.bwe-bs-big-num {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(3.5rem, 8vw, 5.2rem));
    font-weight: var(--e-global-typography-primary-font-weight, 400);
    color: #88BC35;
    line-height: var(--e-global-typography-primary-line-height, 1);
    margin-bottom: 10px;
}

.bwe-bs-big-label {
    font-size: var(--e-global-typography-accent-font-size, 0.9rem);
    color: rgba(255, 255, 255, 0.75);
    line-height: var(--e-global-typography-accent-line-height, 1.65);
    max-width: 260px;
}

.bwe-bs-divider {
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    margin: 28px 0;
}

.bwe-bs-mini-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.bwe-bs-mini-num {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1.8rem);
    color: #ffffff;
    margin-bottom: 4px;
    line-height: var(--e-global-typography-primary-line-height, 1);
}

.bwe-bs-mini-label {
    font-size: var(--e-global-typography-accent-font-size, 0.72rem);
    color: rgba(255, 255, 255, 0.55);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.06em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
}

/* Right: benefits list */
.bwe-bs-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bwe-bs-row {
    display: flex;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    transition: all 0.25s ease;
    background: #ffffff;
    align-items: flex-start;
}

.bwe-bs-row:hover {
    border-color: rgba(47, 111, 47, 0.3);
    box-shadow: 0 4px 20px rgba(47, 111, 47, 0.08);
}

.bwe-bs-row-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    background: rgba(47, 111, 47, 0.08);
    border: 1px solid rgba(47, 111, 47, 0.2);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bwe-bs-row-icon i,
.bwe-bs-row-icon svg {
    font-size: 18px;
    width: 18px;
    height: 18px;
    color: #2F6F2F;
}

.bwe-bs-row-content h4 {
    font-size: var(--e-global-typography-secondary-font-size, 0.94rem);
    font-weight: var(--e-global-typography-secondary-font-weight, 600);
    color: #2B2B2B;
    margin: 0 0 5px;
}

.bwe-bs-row-content p {
    font-size: var(--e-global-typography-text-font-size, 0.82rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.65);
    margin: 0;
}

/* ============================================================
   DOCTOR SPOTLIGHT WIDGET  (bwe_doctor_spotlight)
   ============================================================ */

.bwe-ds-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* Section heading */
.bwe-ds-header {
    margin-bottom: 40px;
}

.bwe-ds-sec-sub {
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    color: #6E625A;
    margin: 0;
}

/* Panel */
.bwe-ds-panel {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 48px;
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 48px;
    align-items: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 32px rgba(0, 0, 0, 0.05);
}

/* top accent bar */
.bwe-ds-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #2F6F2F, #88BC35, #2F6F2F);
    border-radius: 16px 16px 0 0;
}

/* Avatar column */
.bwe-ds-avatar-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.bwe-ds-avatar {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    border: 3px solid rgba(47, 111, 47, 0.3);
    background: #F5F5F5;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

.bwe-ds-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.bwe-ds-initials {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 3.2rem);
    font-weight: var(--e-global-typography-primary-font-weight, 400);
    color: #2F6F2F;
    line-height: var(--e-global-typography-primary-line-height, 1);
    user-select: none;
}

/* Info column */
.bwe-ds-info {
    flex: 1;
}

.bwe-ds-name {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.3rem, 2.4vw, 1.8rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #2B2B2B;
    margin-bottom: 8px;
}

.bwe-ds-role {
    font-size: var(--e-global-typography-text-font-size, 0.72rem);
    letter-spacing: var(--e-global-typography-text-letter-spacing, 0.1em);
    text-transform: var(--e-global-typography-text-text-transform, uppercase);
    color: #2F6F2F;
    font-weight: var(--e-global-typography-text-font-weight, 600);
    margin-bottom: 18px;
}

.bwe-ds-bio {
    font-size: var(--e-global-typography-text-font-size, 0.88rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.85);
    margin-bottom: 24px;
}

.bwe-ds-bio p {
    margin-bottom: 12px;
}

.bwe-ds-bio p:last-child {
    margin-bottom: 0;
}

/* Credential badges */
.bwe-ds-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.bwe-ds-badge {
    background: rgba(47, 111, 47, 0.07);
    border: 1px solid rgba(47, 111, 47, 0.2);
    border-radius: 4px;
    padding: 6px 14px;
    font-size: var(--e-global-typography-accent-font-size, 0.7rem);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.07em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    color: #2B2B2B;
    font-weight: var(--e-global-typography-accent-font-weight, 500);
    white-space: nowrap;
}

/* CTA button inside panel */
.bwe-ds-btn {
    background: #88BC35;
    color: #2B2B2B;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: var(--e-global-typography-text-font-size, 0.8rem);
    font-weight: var(--e-global-typography-text-font-weight, 600);
    letter-spacing: var(--e-global-typography-text-letter-spacing, 0.04em);
    text-decoration: var(--e-global-typography-text-text-decoration, none);
    display: inline-block;
    text-align: center;
    width: 100%;
    transition: background 0.25s, transform 0.2s;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

.bwe-ds-btn:hover {
    background: #9ACF3E;
    transform: translateY(-1px);
}

/* ============================================================
   CTA STRIP WIDGET  (bwe_cta_strip)
   ============================================================ */

.bwe-cta-strip {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    background: #2F6F2F;
    padding: 80px 64px;
    position: relative;
    overflow: hidden;
}

/* Split layout */
.bwe-cta-strip--split {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 60px;
    align-items: center;
}

/* Centered layout */
.bwe-cta-strip--centered {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* Decorative radial glow */
.bwe-cta-strip::before {
    content: '';
    position: absolute;
    right: -80px;
    top: 50%;
    transform: translateY(-50%);
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(136, 188, 53, 0.12) 0%, transparent 65%);
    pointer-events: none;
}

.bwe-cta-content {
    position: relative;
    z-index: 1;
}

.bwe-cta-sub {
    font-size: var(--e-global-typography-text-font-size, 0.9rem);
    color: rgba(255, 255, 255, 0.70);
    max-width: 500px;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    margin: 0;
}

.bwe-cta-strip--centered .bwe-cta-sub {
    margin: 0 auto 32px;
}

/* Actions */
.bwe-cta-actions {
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: relative;
    z-index: 1;
    align-items: flex-start;
}

.bwe-cta-strip--centered .bwe-cta-actions {
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
}

/* Primary button */
.bwe-cta-btn-primary {
    background: #88BC35;
    color: #2B2B2B;
    padding: 15px 36px;
    border-radius: 4px;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.85rem);
    font-weight: var(--e-global-typography-text-font-weight, 600);
    letter-spacing: var(--e-global-typography-text-letter-spacing, 0.05em);
    text-transform: var(--e-global-typography-text-text-transform, uppercase);
    text-decoration: var(--e-global-typography-text-text-decoration, none);
    display: inline-block;
    white-space: nowrap;
    transition: all 0.25s ease;
}

.bwe-cta-btn-primary:hover {
    background: #9ACF3E;
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(136, 188, 53, 0.35);
}

/* Phone link */
.bwe-cta-phone {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, 0.65);
    font-size: var(--e-global-typography-accent-font-size, 0.88rem);
    font-weight: var(--e-global-typography-accent-font-weight, 400);
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
    transition: color 0.2s;
    white-space: nowrap;
}

.bwe-cta-phone:hover {
    color: #88BC35;
}

.bwe-cta-phone-icon {
    width: 30px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: border-color 0.2s;
}

.bwe-cta-phone:hover .bwe-cta-phone-icon {
    border-color: rgba(136, 188, 53, 0.5);
}

/* ============================================================
   SERVICES GRID — NUMBERED TEMPLATE
   ============================================================ */

.bwe-sg-grid--numbered {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
}

.bwe-sg-card--numbered {
    background: #1C251C;
    border: 1px solid rgba(255, 255, 255, 0.07);
    padding: 32px 28px;
    position: relative;
    overflow: hidden;
    transition: background 0.3s, border-color 0.3s;
    cursor: pointer;
}

.bwe-sg-card--numbered::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #88BC35, transparent);
    transform: scaleX(0);
    transition: transform 0.4s ease;
}

.bwe-sg-card--numbered:hover {
    background: #263326;
    border-color: rgba(136, 188, 53, 0.28);
}

.bwe-sg-card--numbered:hover::before {
    transform: scaleX(1);
}

.bwe-sg-num {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 3rem);
    font-weight: var(--e-global-typography-primary-font-weight, 400);
    color: rgba(136, 188, 53, 0.12);
    line-height: var(--e-global-typography-primary-line-height, 1);
    margin-bottom: 10px;
    transition: color 0.3s;
    display: block;
}

.bwe-sg-card--numbered:hover .bwe-sg-num {
    color: rgba(136, 188, 53, 0.25);
}

.bwe-sg-num-tag {
    display: inline-block;
    font-size: var(--e-global-typography-accent-font-size, 0.65rem);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.18em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    color: #88BC35;
    margin-bottom: 8px;
    opacity: 0.85;
}

.bwe-sg-card--numbered .bwe-sg-title {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1.15rem);
    font-weight: var(--e-global-typography-primary-font-weight, 500);
    color: #ffffff;
    margin-bottom: 10px;
    transition: color 0.2s;
}

.bwe-sg-card--numbered:hover .bwe-sg-title {
    color: #88BC35;
}

.bwe-sg-card--numbered .bwe-sg-desc {
    font-size: var(--e-global-typography-text-font-size, 0.82rem);
    color: rgba(255, 255, 255, 0.45);
    line-height: var(--e-global-typography-text-line-height, 1.75);
    margin-bottom: 22px;
}

/* Arrow link for numbered template */
.bwe-sg-link--arrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: var(--e-global-typography-accent-font-size, 0.68rem);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.12em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    color: rgba(255, 255, 255, 0.4);
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
    transition: color 0.2s;
}

.bwe-sg-card--numbered:hover .bwe-sg-link--arrow {
    color: #88BC35;
}

.bwe-sg-link-bar {
    display: inline-block;
    width: 24px;
    height: 1px;
    background: currentColor;
    transition: width 0.3s;
    position: relative;
    vertical-align: middle;
}

.bwe-sg-link-bar::after {
    content: '';
    position: absolute;
    right: -1px;
    top: -3px;
    width: 6px;
    height: 6px;
    border-right: 1px solid currentColor;
    border-top: 1px solid currentColor;
    transform: rotate(45deg);
}

.bwe-sg-card--numbered:hover .bwe-sg-link-bar {
    width: 36px;
}

/* ============================================================
   ELEMENTOR CONTAINER OVERFLOW FIX — NEW WIDGETS
   ============================================================ */

.elementor-widget-bwe_service_overview .elementor-widget-container,
.elementor-widget-bwe_conditions_grid .elementor-widget-container,
.elementor-widget-bwe_benefits_section .elementor-widget-container,
.elementor-widget-bwe_doctor_spotlight .elementor-widget-container,
.elementor-widget-bwe_cta_strip .elementor-widget-container {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* ============================================================
   RESPONSIVE — NEW WIDGETS
   ============================================================ */

@media (max-width: 1024px) {
    .bwe-sov-inner    { grid-template-columns: 1fr; gap: 40px; }
    .bwe-bs-inner     { grid-template-columns: 1fr; gap: 40px; }
    .bwe-ds-panel     { grid-template-columns: 1fr; text-align: center; padding: 36px 28px; }
    .bwe-ds-avatar-col{ margin: 0 auto; }
    .bwe-ds-badges    { justify-content: center; }
    .bwe-cta-strip--split { grid-template-columns: 1fr; gap: 32px; }
    .bwe-cta-actions  { align-items: flex-start; }
    .bwe-sg-grid--numbered { grid-template-columns: repeat(2, 1fr); }
    .bwe-cg-grid      { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    .bwe-cg-grid      { grid-template-columns: repeat(2, 1fr); }
    .bwe-ds-panel     { padding: 28px 20px; }
    .bwe-bs-visual    { padding: 36px 28px; }
    .bwe-cta-strip    { padding: 60px 28px; }
    .bwe-cta-strip--split { text-align: left; }
    .bwe-sg-grid--numbered { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .bwe-cg-grid      { grid-template-columns: 1fr 1fr; }
    .bwe-cta-strip--centered .bwe-cta-actions { flex-direction: column; }
}

/* ============================================================
   HERO — SERVICE TEMPLATE  (.bwe-hero--service)
   ============================================================ */

.bwe-hero--service {
    min-height: 560px;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.bwe-hero--service .bwe-hero-inner {
    width: 100%;
}

.bwe-hero-svc-grid {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 60px;
    align-items: center;
    position: relative;
    z-index: 1;
}

/* decorative ring */
.bwe-hero--service::after {
    content: '';
    position: absolute;
    right: -120px;
    top: -120px;
    width: 580px;
    height: 580px;
    border-radius: 50%;
    border: 1px solid rgba(136, 188, 53, 0.18);
    pointer-events: none;
}

/* Left column */
.bwe-hero-svc-left { position: relative; z-index: 2; }

/* Eyebrow */
/* Ghost / secondary button */
.bwe-hero-cta2 {
    background: transparent;
    color: #ffffff;
    padding: 13px 28px;
    border-radius: 4px;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.85rem);
    font-weight: var(--e-global-typography-text-font-weight, 400);
    letter-spacing: var(--e-global-typography-text-letter-spacing, 0.04em);
    text-decoration: var(--e-global-typography-text-text-decoration, none);
    border: 1px solid rgba(255, 255, 255, 0.25);
    transition: all 0.25s ease;
    display: inline-block;
}

.bwe-hero-cta2:hover {
    border-color: #88BC35;
    color: #88BC35;
}

/* Stats card (right column) */
.bwe-hero-svc-card {
    background: #1C251C;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 16px;
    padding: 32px;
    position: relative;
    z-index: 2;
    overflow: hidden;
}

/* top accent line */
.bwe-hero-svc-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #2F6F2F, #88BC35, #2F6F2F);
    border-radius: 16px 16px 0 0;
}

.bwe-hero-svc-card-title {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1.05rem);
    font-weight: var(--e-global-typography-primary-font-weight, 500);
    color: #ffffff;
    margin-bottom: 22px;
}

/* Stats 2×2 grid */
.bwe-hero-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 20px;
}

.bwe-hero-stat {
    background: rgba(0, 0, 0, 0.25);
    border-radius: 10px;
    padding: 16px 14px;
    text-align: center;
}

.bwe-hero-stat-num {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1.9rem);
    font-weight: var(--e-global-typography-primary-font-weight, 500);
    color: #88BC35;
    line-height: var(--e-global-typography-primary-line-height, 1);
    margin-bottom: 5px;
}

.bwe-hero-stat-label {
    font-size: var(--e-global-typography-accent-font-size, 0.65rem);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.08em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    color: rgba(255, 255, 255, 0.45);
}

/* Feature badges */
.bwe-hero-svc-badges {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.bwe-hero-svc-badge {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: rgba(47, 111, 47, 0.15);
    border: 1px solid rgba(47, 111, 47, 0.30);
    border-radius: 8px;
    font-size: var(--e-global-typography-accent-font-size, 0.8rem);
    color: rgba(255, 255, 255, 0.65);
}

.bwe-hero-svc-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #88BC35;
    flex-shrink: 0;
}

/* Responsive */
@media (max-width: 1024px) {
    .bwe-hero-svc-grid {
        grid-template-columns: 1fr;
    }
    .bwe-hero-svc-card {
        display: none; /* hide stats card on smaller screens */
    }
}

@media (max-width: 680px) {
    .bwe-hero-svc-actions {
        flex-direction: column;
    }
    .bwe-hero-cta2 { text-align: center; }
}

/* ============================================================
   BREADCRUMB WIDGET  (bwe_breadcrumb)
   ============================================================ */

.bwe-bc-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.78rem);
    font-weight: var(--e-global-typography-text-font-weight, 400);
    letter-spacing: var(--e-global-typography-text-letter-spacing, 0.04em);
}

.bwe-bc-inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.bwe-bc-item {
    display: flex;
    align-items: center;
}

.bwe-bc-link {
    color: #6E625A;
    text-decoration: none;
    transition: color 0.2s ease;
}

.bwe-bc-link:hover {
    color: #2F6F2F;
}

.bwe-bc-current {
    color: #88BC35;
    font-weight: 500;
}

.bwe-bc-sep {
    color: #88BC35;
    opacity: 0.5;
    font-size: var(--e-global-typography-accent-font-size, 0.85rem);
    line-height: var(--e-global-typography-accent-line-height, 1);
    user-select: none;
    list-style: none;
}

/* Elementor overflow fix */
.elementor-widget-bwe_breadcrumb .elementor-widget-container,
.elementor-widget-bwe_hero_section .elementor-widget-container {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
}

/* ============================================================
   TESTIMONIALS — GRID TEMPLATE
   Matches the service page HTML design exactly.
   Uses .bwe-tm-card--grid to avoid conflict with marquee cards.
   ============================================================ */

/* Grid container */
.bwe-tm-wrap--grid .bwe-tm-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* Reset the marquee margin-top rule for grid cards */
.bwe-tm-wrap--grid .bwe-tm-card--grid,
.bwe-tm-wrap--grid .bwe-tm-card--grid + .bwe-tm-card--grid {
    margin-top: 0 !important;
}

/* Card */
.bwe-tm-card--grid {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 14px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.bwe-tm-card--grid:hover {
    border-color: rgba(47, 111, 47, 0.3);
    box-shadow: 0 8px 32px rgba(47, 111, 47, 0.10);
}

/* Stars */
.bwe-tm-card--grid .bwe-tm-stars {
    color: #88BC35;
    font-size: 0.88rem;
    letter-spacing: 2px;
    margin-bottom: 14px;
}

/* Quote / review text */
.bwe-tm-card--grid .bwe-tm-review {
    font-size: var(--e-global-typography-text-font-size, 0.875rem);
    font-style: var(--e-global-typography-text-font-style, italic);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.8);
    flex: 1;
    margin-bottom: 22px;
}

/* Author row */
.bwe-tm-card--grid .bwe-tm-author {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: auto;
}

/* Avatar image */
.bwe-tm-card--grid .bwe-tm-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

/* Initials placeholder — green circle like service page */
.bwe-tm-card--grid .bwe-tm-avatar-placeholder {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(47, 111, 47, 0.10);
    border: 1px solid rgba(47, 111, 47, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 0.95rem);
    font-weight: var(--e-global-typography-primary-font-weight, 500);
    color: #2F6F2F;
    flex-shrink: 0;
}

/* Name */
.bwe-tm-card--grid .bwe-tm-name {
    font-size: var(--e-global-typography-secondary-font-size, 0.875rem);
    font-weight: var(--e-global-typography-secondary-font-weight, 600);
    color: #2B2B2B;
    margin-bottom: 2px;
}

/* Role / condition */
.bwe-tm-card--grid .bwe-tm-role {
    font-size: var(--e-global-typography-text-font-size, 0.75rem);
    color: #6E625A;
}

/* Responsive */
@media (max-width: 900px) {
    .bwe-tm-wrap--grid .bwe-tm-card-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 560px) {
    .bwe-tm-wrap--grid .bwe-tm-card-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   TESTIMONIALS STRIP WIDGET
   ============================================================ */
.bwets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bwets-card{background:var(--white);border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:30px;transition:all .25s}
.bwets-card:hover{border-color:rgba(47,111,47,.3);box-shadow:0 8px 32px rgba(47,111,47,.1)}
.bwets-stars{color:var(--green-accent);font-size:14px;letter-spacing:2px;margin-bottom:14px}
.bwets-quote{font-size:14px;font-style:italic;color:var(--warm-grey);line-height:1.8;margin-bottom:22px}
.bwets-author{display:flex;align-items:center;gap:14px}
.bwets-avatar{width:40px;height:40px;border-radius:50%;background:rgba(47,111,47,.1);border:1px solid rgba(47,111,47,.25);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:15px;color:var(--green-deep);flex-shrink:0}
.bwets-name{font-size:14px;font-weight:500;color:var(--charcoal)}
.bwets-condition{font-size:12px;color:var(--warm-grey)}

/* ============================================================
   WORKING PROCESS WIDGET
   ============================================================ */
.bwe-wp-wrap {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

/* ── Heading block */
.bwe-wp-heading-block {
    margin-bottom: 80px;
}

.bwe-wp-heading {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, clamp(1.8rem, 3.2vw, 2.6rem));
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #1A1A1A;
    line-height: var(--e-global-typography-primary-line-height, 1.2);
    margin: 0 0 16px;
}

.bwe-wp-subtitle {
    font-size: var(--e-global-typography-text-font-size, 1rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.7);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    margin: 0;
    max-width: 520px;
}

/* ── Steps grid */
.bwe-wp-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 24px;
    row-gap: 24px;
}

/* ── Step card */
.bwe-wp-step {
    padding: 40px 32px;
    background-color: #FFFFFF;
    border-radius: 4px;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                background-color 0.35s ease,
                border-color 0.35s ease;
    position: relative;
    will-change: transform;
}

/* Default card hover — smooth lift + soft shadow */
.bwe-wp-step:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.08),
                0 4px 12px rgba(0, 0, 0, 0.04);
}

/* Vertical dividers — only between cards when gap is 0 */
.bwe-wp-steps--dividers .bwe-wp-step {
    border-right: 1px solid #E5E5E5;
}
.bwe-wp-steps--dividers .bwe-wp-step:last-child {
    border-right: none;
}

/* ── Number badge */
.bwe-wp-num {
    display:        inline-flex;
    align-items:    center;
    justify-content: center;
    width:          44px;
    height:         44px;
    min-width:      44px;
    aspect-ratio:   1 / 1;
    border-radius:  50%;
    background-color: #EBF3EB;
    color:          #2F6F2F;
    font-family:    var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1rem);
    font-weight: var(--e-global-typography-primary-font-weight, 500);
    font-style: var(--e-global-typography-primary-font-style, italic);
    line-height: var(--e-global-typography-primary-line-height, 1);
    margin-bottom:  32px;
    transition:     background-color 0.35s ease, color 0.35s ease, transform 0.35s ease;
    box-sizing:     border-box;
}

/* Default badge hover — inverted color scheme (matching screenshot) */
.bwe-wp-step:hover .bwe-wp-num {
    background-color: #2F6F2F;
    color: #FFFFFF;
    transform: scale(1.05);
}

/* ── Step title */
.bwe-wp-step-title {
    font-family: var(--e-global-typography-primary-font-family, 'Playfair Display'), Georgia, serif;
    font-size: var(--e-global-typography-primary-font-size, 1.35rem);
    font-weight: var(--e-global-typography-primary-font-weight, 600);
    color: #1A1A1A;
    line-height: var(--e-global-typography-primary-line-height, 1.3);
    margin: 0 0 14px;
    transition: color 0.3s ease;
}

/* ── Step description */
.bwe-wp-step-desc {
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    color: #6E625A;
    line-height: var(--e-global-typography-text-line-height, 1.7);
    font-weight: var(--e-global-typography-text-font-weight, 300);
    margin: 0;
    transition: color 0.3s ease;
}

/* ── Step link */
.bwe-wp-step-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 24px;
    color: #2F6F2F;
    font-size: var(--e-global-typography-accent-font-size, 0.85rem);
    font-weight: var(--e-global-typography-accent-font-weight, 600);
    letter-spacing: var(--e-global-typography-accent-letter-spacing, 0.04em);
    text-transform: var(--e-global-typography-accent-text-transform, uppercase);
    text-decoration: var(--e-global-typography-accent-text-decoration, none);
    transition: color 0.3s ease, gap 0.3s ease;
}
.bwe-wp-step-link:hover {
    gap: 14px;
}
.bwe-wp-step-link-arrow {
    display: inline-block;
    transition: transform 0.3s ease;
}

/* ── Responsive */
@media (max-width: 1024px) {
    .bwe-wp-steps { grid-template-columns: repeat(2, 1fr); }
    .bwe-wp-steps--dividers .bwe-wp-step:nth-child(2n) { border-right: none; }
}

@media (max-width: 640px) {
    .bwe-wp-steps { grid-template-columns: 1fr; }
    .bwe-wp-steps--dividers .bwe-wp-step {
        border-right: none !important;
    }
    .bwe-wp-heading-block { margin-bottom: 40px; }
    .bwe-wp-step { padding: 32px 24px; }
}

/* ============================================================
   NAV MENU WIDGET  (bwe_nav_menu)
   ============================================================ */

/* When any nav widget is in mobile mode, prevent the off-screen drawer panel
   from causing horizontal page scroll. `clip` is preferred (no scroll context),
   `hidden` is the fallback for older browsers. */
html.bwe-nav-html-mobile {
    overflow-x: hidden;
    overflow-x: clip;
}

/* ── Empty state */
.bwe-nav-empty {
    padding: 16px 20px;
    background: #FFF8E5;
    border: 1px dashed #E2C97A;
    border-radius: 6px;
    color: #6E625A;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.9rem);
}

/* ── Wrapper */
.bwe-nav-wrap {
    --bwe-nav-ind: #88BC35;
    position: relative;
    width: 100%;
    box-sizing: border-box;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
}

.bwe-nav-wrap.bwe-nav--sticky {
    position: sticky;
    top: 0;
    z-index: 9999;
}

.bwe-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    gap: 24px;
    position: relative;
}

/* Layout variants */
.bwe-nav--layout-brand-left .bwe-nav-inner       { flex-direction: row; }
.bwe-nav--layout-brand-left-mc .bwe-nav-inner    { flex-direction: row; }
.bwe-nav--layout-brand-left-mc .bwe-nav-menu-wrap{ flex: 1; justify-content: center; display: flex; }
.bwe-nav--layout-brand-center .bwe-nav-inner     { flex-direction: column; gap: 14px; }
.bwe-nav--layout-menu-only .bwe-nav-inner        { justify-content: center; }

/* ── Brand */
.bwe-nav-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    line-height: 1;
    flex-shrink: 0;
}

.bwe-nav-brand-logo {
    display: block;
    height: 40px;
    width: auto;
}

.bwe-nav-brand-text {
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 1.25rem);
    font-weight: var(--e-global-typography-text-font-weight, 600);
    color: #2B2B2B;
    letter-spacing: var(--e-global-typography-text-letter-spacing, -0.01em);
}

/* ── Menu list (top level) */
.bwe-nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}

.bwe-nav-menu-wrap {
    display: flex;
    align-items: center;
}

/* ── Item & link */
.bwe-nav-item {
    position: relative;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bwe-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    color: #2B2B2B;
    text-decoration: var(--e-global-typography-text-text-decoration, none);
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.95rem);
    font-weight: var(--e-global-typography-text-font-weight, 500);
    line-height: var(--e-global-typography-text-line-height, 1.4);
    transition: color 0.2s ease, background 0.2s ease;
    position: relative;
    border-radius: 4px;
}

.bwe-nav-text { display: inline-block; }

/* Caret indicator */
.bwe-nav-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 10px;
    height: 6px;
    margin-left: 2px;
    transition: transform 0.25s ease;
    flex-shrink: 0;
}

.bwe-nav-caret svg { width: 100%; height: 100%; display: block; }

.bwe-nav-item.bwe-open > .bwe-nav-link > .bwe-nav-caret,
.bwe-nav-item:hover > .bwe-nav-link > .bwe-nav-caret {
    transform: rotate(-180deg);
}

/* Hover (desktop) */
.bwe-nav-item--d0:hover > .bwe-nav-link {
    color: #88BC35;
}

/* ── Active indicator variants */
.bwe-nav-ind-underline .bwe-nav-link--d0::after {
    content: '';
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 2px;
    height: 2px;
    background: var(--bwe-nav-ind);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.25s ease;
}
.bwe-nav-ind-underline .bwe-nav-item--d0:hover > .bwe-nav-link::after,
.bwe-nav-ind-underline .bwe-nav-item--d0.bwe-current > .bwe-nav-link::after,
.bwe-nav-ind-underline .bwe-nav-item--d0.bwe-current-ancestor > .bwe-nav-link::after {
    transform: scaleX(1);
}

.bwe-nav-ind-pill .bwe-nav-item--d0:hover > .bwe-nav-link,
.bwe-nav-ind-pill .bwe-nav-item--d0.bwe-current > .bwe-nav-link,
.bwe-nav-ind-pill .bwe-nav-item--d0.bwe-current-ancestor > .bwe-nav-link {
    background: var(--bwe-nav-ind);
    color: #fff !important;
}

.bwe-nav-ind-dot .bwe-nav-link--d0::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -4px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--bwe-nav-ind);
    transform: translateX(-50%) scale(0);
    transition: transform 0.25s ease;
}
.bwe-nav-ind-dot .bwe-nav-item--d0:hover > .bwe-nav-link::after,
.bwe-nav-ind-dot .bwe-nav-item--d0.bwe-current > .bwe-nav-link::after,
.bwe-nav-ind-dot .bwe-nav-item--d0.bwe-current-ancestor > .bwe-nav-link::after {
    transform: translateX(-50%) scale(1);
}

/* ── Sub-toggle button (the visible caret button, distinct from link) */
.bwe-nav-toggle-sub {
    display: none !important; /* hidden by default on desktop; link itself shows caret */
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0;
    color: inherit;
    line-height: 0;
}

/* ────────────────────────────────────────────────
   AGGRESSIVE BUTTON RESET
   Many themes / Elementor presets / page-builders
   apply borders, fills, box-shadows or focus rings
   to ANY <button>. These rules below force a clean
   slate for nav-related buttons regardless of theme.
   ──────────────────────────────────────────────── */
.bwe-nav-wrap button.bwe-nav-toggle,
.bwe-nav-wrap button.bwe-nav-toggle-sub,
.bwe-nav-wrap button.bwe-nav-x-btn {
    -webkit-appearance: none !important;
    -moz-appearance:    none !important;
    appearance:         none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-shadow: none !important;
    margin: 0;
    font: inherit;
}

.bwe-nav-wrap button.bwe-nav-toggle:hover,
.bwe-nav-wrap button.bwe-nav-toggle-sub:hover,
.bwe-nav-wrap button.bwe-nav-x-btn:hover,
.bwe-nav-wrap button.bwe-nav-toggle:focus,
.bwe-nav-wrap button.bwe-nav-toggle-sub:focus,
.bwe-nav-wrap button.bwe-nav-x-btn:focus,
.bwe-nav-wrap button.bwe-nav-toggle:focus-visible,
.bwe-nav-wrap button.bwe-nav-toggle-sub:focus-visible,
.bwe-nav-wrap button.bwe-nav-x-btn:focus-visible,
.bwe-nav-wrap button.bwe-nav-toggle:active,
.bwe-nav-wrap button.bwe-nav-toggle-sub:active,
.bwe-nav-wrap button.bwe-nav-x-btn:active {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    background-color: rgba(0, 0, 0, 0.05) !important;
    color: inherit;
}

/* The toggle-sub button must have NO bg fill even on active/focus — its only
   visible element is the caret SVG inside it */
.bwe-nav-wrap button.bwe-nav-toggle-sub,
.bwe-nav-wrap button.bwe-nav-toggle-sub:hover,
.bwe-nav-wrap button.bwe-nav-toggle-sub:focus,
.bwe-nav-wrap button.bwe-nav-toggle-sub:focus-visible,
.bwe-nav-wrap button.bwe-nav-toggle-sub:active {
    background-color: transparent !important;
}

/* ════════════════════════════════════════════════════════════════
   NUCLEAR DEFENSE — Aggressive override against any theme/plugin
   that tries to inject icons, doubles, or extra elements into our
   nav buttons. We wrap selectors in `body` to bump specificity, use
   `!important` on everything, and kill multiple injection vectors:
   pseudo-elements, font-icons, drop-shadow filters, bg images,
   and child non-SVG elements injected by theme JS.
   ════════════════════════════════════════════════════════════════ */

/* 1) Pseudo-element content — kills ::before/::after icon characters */
body .bwe-nav-wrap button.bwe-nav-toggle::before,
body .bwe-nav-wrap button.bwe-nav-toggle::after,
body .bwe-nav-wrap button.bwe-nav-x-btn::before,
body .bwe-nav-wrap button.bwe-nav-x-btn::after,
body .bwe-nav-wrap button.bwe-nav-toggle-sub::before,
body .bwe-nav-wrap button.bwe-nav-toggle-sub::after {
    content: none !important;
    display: none !important;
    background: none !important;
    width: 0 !important;
    height: 0 !important;
    font-size: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* 2) Font-size 0 — kills any text characters injected as button content
   (e.g. "×" character). The SVG icon is unaffected by font-size for
   its rendered geometry. */
body .bwe-nav-wrap button.bwe-nav-x-btn,
body .bwe-nav-wrap button.bwe-nav-toggle,
body .bwe-nav-wrap button.bwe-nav-toggle-sub {
    font-size: 0 !important;
    text-indent: 0 !important;
    background-image: none !important;
    filter: none !important;
    text-shadow: none !important;
}

/* 3) Restore SVG sizing (unaffected by font-size, but be explicit) */
body .bwe-nav-wrap button.bwe-nav-x-btn > svg {
    width: 22px;
    height: 22px;
    display: block;
    flex-shrink: 0;
}

/* 4) Hide any non-SVG, non-burger-span direct children injected by
   theme JavaScript (e.g. an extra <i> or <span> close icon). */
body .bwe-nav-wrap button.bwe-nav-x-btn > *:not(svg) {
    display: none !important;
}
body .bwe-nav-wrap button.bwe-nav-toggle > *:not(.bwe-nav-burger) {
    display: none !important;
}
body .bwe-nav-wrap button.bwe-nav-toggle-sub > *:not(.bwe-nav-caret-mobile) {
    display: none !important;
}

/* ── Submenu (dropdown) — DESKTOP */
.bwe-nav-sub {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0,0,0,0.08), 0 2px 8px rgba(0,0,0,0.04);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    /* visibility AND pointer-events delayed by 200ms when hiding —
       gives cursor time to reach the dropdown before it becomes inactive */
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.2s, pointer-events 0s linear 0.2s;
    z-index: 10;
}

/* ───────────────────────────────────────────────────────────
   HOVER BRIDGE — 3-layer fix for "dropdown disappears when
   moving cursor to mega menu" issue.

   Layer 1: Link ::after — extends link's hover hit area 24px DOWN
            (ensures cursor stays "on" the link/li when moving toward
             the dropdown, keeping :hover state alive)
   Layer 2: Dropdown ::before — extends dropdown hit area 24px UP
            (catches cursor as it approaches the dropdown from above)
   Layer 3: pointer-events transition delay (200ms) on hide
            (keeps dropdown interactive briefly after hover ends,
             preventing race condition where bridge becomes inactive
             before cursor reaches it)
   ─────────────────────────────────────────────────────────── */

/* Layer 1: Link's hover area extends downward
   Uses ::before because ::after is reserved for underline/dot indicators */
.bwe-nav-item--d0.bwe-has-children > .bwe-nav-link {
    position: relative;
}

.bwe-nav-item--d0.bwe-has-children > .bwe-nav-link::before {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 24px;
    background: transparent;
    z-index: 1;
    pointer-events: auto;
}

/* Layer 2: Dropdown extends upward — backup catcher */
.bwe-nav-item--d0 > .bwe-nav-sub::before {
    content: '';
    position: absolute;
    top: -24px;
    left: 0;
    right: 0;
    height: 24px;
    background: transparent;
}

/* Note: Layer 3 (pointer-events delay) is applied via the modified
   .bwe-nav-sub transition rule below. */

.bwe-nav-item:hover > .bwe-nav-sub,
.bwe-nav-item.bwe-open > .bwe-nav-sub {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0s, pointer-events 0s linear 0s;
}

/* On hover-trigger, only :hover opens; on click-trigger, only .bwe-open opens */
.bwe-nav--trigger-click .bwe-nav-item:hover > .bwe-nav-sub {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
}
.bwe-nav--trigger-click .bwe-nav-item.bwe-open > .bwe-nav-sub {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0s;
}

/* Sub-sub menu — flies out to the side */
.bwe-nav-sub .bwe-nav-sub {
    top: -6px;
    left: 100%;
    transform: translateX(8px);
    margin-left: 2px;
}
.bwe-nav-sub .bwe-nav-item:hover > .bwe-nav-sub,
.bwe-nav-sub .bwe-nav-item.bwe-open > .bwe-nav-sub {
    transform: translateX(0);
}
.bwe-nav--trigger-click .bwe-nav-sub .bwe-nav-item:hover > .bwe-nav-sub {
    transform: translateX(8px);
}
.bwe-nav--trigger-click .bwe-nav-sub .bwe-nav-item.bwe-open > .bwe-nav-sub {
    transform: translateX(0);
}

/* Sub link */
.bwe-nav-sub .bwe-nav-item {
    display: block;
    width: 100%;
}

.bwe-nav-sub .bwe-nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 18px;
    width: 100%;
    box-sizing: border-box;
    border-radius: 0;
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    font-weight: var(--e-global-typography-text-font-weight, 400);
    color: #2B2B2B;
}

.bwe-nav-sub .bwe-nav-item + .bwe-nav-item {
    border-top: 1px solid rgba(0,0,0,0.06);
}

.bwe-nav-sub .bwe-nav-item:hover > .bwe-nav-link {
    background: rgba(136,188,53,0.08);
    color: #88BC35;
}

/* Sub-sub caret rotates 90deg (points right) */
.bwe-nav-sub .bwe-nav-caret { transform: rotate(-90deg); }
.bwe-nav-sub .bwe-nav-item.bwe-open > .bwe-nav-link > .bwe-nav-caret,
.bwe-nav-sub .bwe-nav-item:hover > .bwe-nav-link > .bwe-nav-caret {
    transform: rotate(-90deg);
}

/* ── Mobile toggle (hamburger) */
.bwe-nav-toggle {
    display: none !important;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 0;
    cursor: pointer;
    padding: 0;
    border-radius: 6px;
    position: relative;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s ease;
    z-index: 10001;
}

.bwe-nav-toggle:hover {
    background: rgba(0,0,0,0.04);
}

.bwe-nav-burger,
.bwe-nav-burger::before,
.bwe-nav-burger::after {
    content: '';
    display: block;
    position: absolute;
    width: 22px;
    height: 2px;
    background: #2B2B2B;
    border-radius: 2px;
    transition: transform 0.3s ease, top 0.3s ease, background 0.2s ease, opacity 0.2s ease;
    left: 50%;
    margin-left: -11px;
}

.bwe-nav-burger { top: 50%; margin-top: -1px; }
.bwe-nav-burger::before { top: -7px; }
.bwe-nav-burger::after  { top:  7px; }

/* Burger → X */
.bwe-nav-open .bwe-nav-burger {
    background: transparent !important;
}
.bwe-nav-open .bwe-nav-burger::before {
    top: 0;
    transform: rotate(45deg);
}
.bwe-nav-open .bwe-nav-burger::after {
    top: 0;
    transform: rotate(-45deg);
}

/* ── Close button & overlay (only visible inside mobile panel) */
.bwe-nav-x-btn {
    display: none !important;
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: #2B2B2B;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    z-index: 2;
}
.bwe-nav-x-btn:hover { background: rgba(0,0,0,0.04); }

.bwe-nav-overlay {
    display: none !important;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 9998;
}

/* ── Body scroll lock when panel open */
body.bwe-nav-body-locked { overflow: hidden; }

/* ════════════════════════════════════════
   MOBILE MODE — three breakpoint variants
   ════════════════════════════════════════ */

/* Shared mobile rules — applied via .bwe-is-mobile JS-toggled class so they
   only kick in once the wrapper actually reports being below its breakpoint. */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-toggle { display: inline-flex !important; }

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-toggle-sub {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: #2B2B2B;
    flex-shrink: 0;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-toggle-sub .bwe-nav-caret-mobile {
    display: inline-block;
    width: 14px;
    height: 8px;
    transition: transform 0.25s ease;
}
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-toggle-sub .bwe-nav-caret-mobile svg {
    width: 100%; height: 100%; display: block;
}
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-item.bwe-open > .bwe-nav-toggle-sub .bwe-nav-caret-mobile {
    transform: rotate(-180deg);
}

/* Hide the caret that's inside the link on mobile (the toggle-sub button shows its own) */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-link .bwe-nav-caret { display: none !important; }

/* Mobile: panel becomes a slide-in container */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-menu-wrap {
    position: fixed;
    top: 0;
    height: 100vh;
    height: 100dvh;
    background: #ffffff;
    box-shadow: 0 0 32px rgba(0,0,0,0.12);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 70px 0 30px;
    z-index: 9999;
    box-sizing: border-box;
    display: block;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-x-btn { display: inline-flex !important; }

/* Drawer right (default) */
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--drawer-right .bwe-nav-menu-wrap {
    right: 0;
    width: 85%;
    max-width: 420px;
    transform: translateX(100%);
}
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--drawer-right.bwe-nav-open .bwe-nav-menu-wrap {
    transform: translateX(0);
}

/* Drawer left */
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--drawer-left .bwe-nav-menu-wrap {
    left: 0;
    width: 85%;
    max-width: 420px;
    transform: translateX(-100%);
}
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--drawer-left.bwe-nav-open .bwe-nav-menu-wrap {
    transform: translateX(0);
}

/* Dropdown — slide from top (under the bar) */
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--dropdown .bwe-nav-menu-wrap {
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    transform: none;
    transition: max-height 0.35s cubic-bezier(0.22, 1, 0.36, 1), padding 0.35s ease;
    box-shadow: 0 12px 24px rgba(0,0,0,0.08);
}
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--dropdown.bwe-nav-open .bwe-nav-menu-wrap {
    max-height: calc(100vh - 0px);
    padding-top: 70px;
    padding-bottom: 30px;
}
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--dropdown .bwe-nav-overlay { display: none !important; }

/* Fullscreen overlay */
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--fullscreen .bwe-nav-menu-wrap {
    inset: 0;
    width: 100%;
    max-width: 100%;
    transform: scale(0.96);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--fullscreen.bwe-nav-open .bwe-nav-menu-wrap {
    transform: scale(1);
    opacity: 1;
    pointer-events: auto;
}

/* Mobile menu list — vertical stack */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-menu {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-menu > .bwe-nav-item {
    border-bottom: 1px solid rgba(0,0,0,0.08);
    padding: 0 24px;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    position: static;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-link {
    flex: 1;
    padding: 14px 0;
    border-radius: 0;
    color: #2B2B2B;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-link::after { display: none !important; }
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-ind-pill .bwe-nav-link,
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-link {
    background: transparent !important;
}

/* Mobile submenu — accordion style */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub {
    position: static;
    flex: 0 0 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    transform: none;
    opacity: 1;
    visibility: visible;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
    min-width: 0;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-item.bwe-open > .bwe-nav-sub {
    max-height: 1500px;
}

/* Mobile submenu — clean: no bg, no border, no shadow, no radius. Just padding. */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border: 0 !important;
}

.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub .bwe-nav-item {
    padding: 0;
    border-bottom: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

/* Depth-1 sub items — indented past the parent's 24px gutter */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub .bwe-nav-link {
    padding: 12px 24px 12px 44px !important;
    font-size: 0.9rem;
    color: #4a4a4a;
}

/* Deeper indents for nested mobile menus */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub .bwe-nav-sub .bwe-nav-link {
    padding-left: 64px !important;
}
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub .bwe-nav-sub .bwe-nav-sub .bwe-nav-link {
    padding-left: 84px !important;
}

/* Toggle-sub button on nested rows — keep it aligned to the right edge gutter */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-sub .bwe-nav-toggle-sub {
    margin-right: 8px;
}

/* Mobile overlay shows only for drawer + fullscreen variants */
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--drawer-right.bwe-nav-open .bwe-nav-overlay,
.bwe-nav-wrap.bwe-is-mobile.bwe-nav-panel--drawer-left.bwe-nav-open  .bwe-nav-overlay {
    display: block !important;
    opacity: 1;
    pointer-events: auto;
}

/* ════════════════════════════════════════
   Pure-CSS media-query fallback
   ────────────────────────────────────────
   The .bwe-is-mobile class is added by JS based on viewport width, but if
   JS is delayed, blocked, or disabled — these media queries make sure the
   correct elements show/hide based on the chosen breakpoint anyway.
   ════════════════════════════════════════ */

/* Below 768px — for widgets configured with bp=768 */
@media (max-width: 767px) {
    .bwe-nav--bp-768 .bwe-nav-toggle,
    .bwe-nav--bp-768 .bwe-nav-toggle-sub,
    .bwe-nav--bp-768 .bwe-nav-x-btn { display: inline-flex !important; }
    .bwe-nav--bp-768 .bwe-nav-link .bwe-nav-caret { display: none !important; }
}

/* Below 1024px — for widgets configured with bp=1024 (default) */
@media (max-width: 1023px) {
    .bwe-nav--bp-1024 .bwe-nav-toggle,
    .bwe-nav--bp-1024 .bwe-nav-toggle-sub,
    .bwe-nav--bp-1024 .bwe-nav-x-btn { display: inline-flex !important; }
    .bwe-nav--bp-1024 .bwe-nav-link .bwe-nav-caret { display: none !important; }
}

/* Below 1200px — for widgets configured with bp=1200 */
@media (max-width: 1199px) {
    .bwe-nav--bp-1200 .bwe-nav-toggle,
    .bwe-nav--bp-1200 .bwe-nav-toggle-sub,
    .bwe-nav--bp-1200 .bwe-nav-x-btn { display: inline-flex !important; }
    .bwe-nav--bp-1200 .bwe-nav-link .bwe-nav-caret { display: none !important; }
}

/* ABOVE breakpoints — keep desktop elements hidden hard, even if some
   theme/plugin tries to show them. */
@media (min-width: 768px) {
    .bwe-nav--bp-768 .bwe-nav-toggle,
    .bwe-nav--bp-768 .bwe-nav-toggle-sub,
    .bwe-nav--bp-768 .bwe-nav-x-btn,
    .bwe-nav--bp-768 .bwe-nav-overlay { display: none !important; }
}
@media (min-width: 1024px) {
    .bwe-nav--bp-1024 .bwe-nav-toggle,
    .bwe-nav--bp-1024 .bwe-nav-toggle-sub,
    .bwe-nav--bp-1024 .bwe-nav-x-btn,
    .bwe-nav--bp-1024 .bwe-nav-overlay { display: none !important; }
}
@media (min-width: 1200px) {
    .bwe-nav--bp-1200 .bwe-nav-toggle,
    .bwe-nav--bp-1200 .bwe-nav-toggle-sub,
    .bwe-nav--bp-1200 .bwe-nav-x-btn,
    .bwe-nav--bp-1200 .bwe-nav-overlay { display: none !important; }
}

/* Hide native dropdown carets on mobile when toggle button takes over */
.bwe-nav-wrap.bwe-is-mobile .bwe-nav-link {
    pointer-events: auto;
}

/* Elementor overflow fix — keep nav from being clipped by editor wrapper */
.elementor-widget-bwe_nav_menu .elementor-widget-container {
    width: 100%;
    box-sizing: border-box;
    overflow: visible;
}

/* ════════════════════════════════════════════════════════════════
   MEGA MENU TEMPLATE  (.bwe-nav--tpl-mega)
   ─────────────────────────────────────────────
   Activates only on desktop (when NOT in mobile mode). Top-level
   submenu becomes a full-width grid; each child becomes a column
   heading; grandchildren are flat lists shown inline. Mobile mode
   uses the regular accordion menu — these rules don't touch it.
   ════════════════════════════════════════════════════════════════ */

/* The wrap is already position: relative from base styles.
   We need the dropdown to position against the wrap, NOT the <li>. */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0.bwe-has-children {
    position: static;
}

/* Top-level submenu — full-width grid with multiple columns */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    min-width: 0;

    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    column-gap: 24px;
    row-gap: 16px;
    padding: 32px;

    background: #ffffff;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
    border-radius: 0 0 8px 8px;
    box-sizing: border-box;
}

/* Each top-level sub-item becomes a column block */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub > .bwe-nav-item {
    display: block;
    padding: 0;
    border: 0 !important;
    border-top: 0 !important;
    width: 100%;
    min-width: 0;
}

/* Top-level sub-item link styled as column heading */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub > .bwe-nav-item > .bwe-nav-link {
    padding: 0 0 8px 0 !important;
    margin-bottom: 8px;
    font-weight: var(--e-global-typography-secondary-font-weight, 600);
    color: #2B2B2B;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    background: transparent !important;
    border-radius: 0 !important;
    justify-content: flex-start;
    width: auto;
    display: block;
}

.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub > .bwe-nav-item:hover > .bwe-nav-link,
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub > .bwe-nav-item.bwe-current > .bwe-nav-link {
    background: transparent !important;
    color: #88BC35;
}

/* Hide the toggle-sub button + caret on column headings (always inline, no toggle needed) */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-toggle-sub,
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-link .bwe-nav-caret {
    display: none !important;
}

/* Grandchildren submenu (level 2+) — flatten to a normal vertical list */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-sub {
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
    transition: none !important;
    display: block !important;
    top: auto !important;
    left: auto !important;
}

.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-sub > .bwe-nav-item {
    display: block;
    padding: 0 !important;
    border: 0 !important;
    border-top: 0 !important;
}

.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-sub .bwe-nav-link {
    padding: 6px 0 !important;
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    font-weight: var(--e-global-typography-text-font-weight, 400);
    color: #6E625A;
    background: transparent !important;
    border-radius: 0 !important;
    justify-content: flex-start;
    width: auto;
    display: block;
}

.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-sub .bwe-nav-link:hover {
    color: #88BC35;
    background: transparent !important;
}

/* Make sure the mega panel hover/open transitions work like the classic dropdown */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub {
    transform: translateY(8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s, pointer-events 0s linear 0.2s;
}

.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0:hover > .bwe-nav-sub,
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0.bwe-open > .bwe-nav-sub {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0s, pointer-events 0s linear 0s;
}

/* Click-trigger override for mega — only .bwe-open opens, hover doesn't */
.bwe-nav--tpl-mega.bwe-nav--trigger-click:not(.bwe-is-mobile) .bwe-nav-item--d0:hover > .bwe-nav-sub {
    transform: translateY(8px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
}
.bwe-nav--tpl-mega.bwe-nav--trigger-click:not(.bwe-is-mobile) .bwe-nav-item--d0.bwe-open > .bwe-nav-sub {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0s;
}

/* ════════════════════════════════════════════════════════════════
   MEGA MENU SUB-ITEM BULLET CIRCLE
   Adds a small filled circle to the left of each grandchild link
   inside the mega menu (like a list bullet, but stylized).
   ════════════════════════════════════════════════════════════════ */

/* Override the link's display to flex so bullet + text align nicely */
.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-sub .bwe-nav-link {
    display: flex !important;
    align-items: center;
    gap: 10px;
}

.bwe-nav--tpl-mega:not(.bwe-is-mobile) .bwe-nav-item--d0 > .bwe-nav-sub .bwe-nav-sub .bwe-nav-link::before {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #88BC35;
    flex-shrink: 0;
}

/* ════════════════════════════════════════════════════════════════
   CTA BUTTON
   Right-side button after the menu list. Visibility per device is
   handled via .bwe-cta-hide-{desktop|tablet|mobile} classes.
   ════════════════════════════════════════════════════════════════ */

.bwe-nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 22px;
    margin-left: 20px;
    background: #88BC35;
    color: #ffffff;
    text-decoration: var(--e-global-typography-text-text-decoration, none);
    border: 0 solid transparent;
    border-radius: 4px;
    font-family: var(--e-global-typography-text-font-family, 'Poppins'), sans-serif;
    font-size: var(--e-global-typography-text-font-size, 0.92rem);
    font-weight: var(--e-global-typography-text-font-weight, 500);
    line-height: var(--e-global-typography-text-line-height, 1.4);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    flex-shrink: 0;
    cursor: pointer;
    white-space: nowrap;
}

.bwe-nav-cta:hover {
    background: #9ACF3E;
    color: #ffffff;
    text-decoration: none;
}

.bwe-nav-cta:active {
    transform: scale(0.98);
}

.bwe-nav-cta-text { display: inline-block; }

/* When CTA is present, push the menu wrap (and CTA) to the right
   for the standard "brand-left" layout — keeps menu and CTA grouped. */
.bwe-nav--has-cta.bwe-nav--layout-brand-left .bwe-nav-inner > .bwe-nav-menu-wrap {
    margin-left: auto;
}

/* Per-device visibility — pure media-query driven, no JS dependence */
@media (min-width: 1024px) {
    .bwe-nav-cta.bwe-cta-hide-desktop { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .bwe-nav-cta.bwe-cta-hide-tablet { display: none !important; }
}
@media (max-width: 767px) {
    .bwe-nav-cta.bwe-cta-hide-mobile { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   PROCESS CIRCLES WIDGET (bwe-pc-)
   4 (or 2 / 3) circular cards in a row, connected by a wavy decorative
   line. Each card: outer thin ring + inner colored circle + icon +
   step-number badge (zig-zag positioned). Fully responsive.
═══════════════════════════════════════════════════════════════════ */
.bwe-pc-wrap {
    width: 100%;
    overflow: hidden;
}
.bwe-pc-stage {
    --pc-ring: 220px;                                   /* outer-ring diameter */
    --pc-badge-offset: calc(var(--pc-ring) * 0.354);    /* 0.707/2 of diameter → 45° on ring */
    width: 100%;
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

/* ── HEADING BLOCK ─────────────────────────────────────────────── */
.bwe-pc-heading-block {
    text-align: center;
    margin-bottom: 70px;
}
.bwe-pc-heading {
    font-size: 48px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.5px;
    margin: 0;
    color: #1a1a1a;
}
.bwe-pc-heading em {
    font-style: normal;
    color: #2F6F2F;
}

/* ── CARDS GRID ────────────────────────────────────────────────── */
.bwe-pc-cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 0;
    row-gap: 0;
    position: relative;
    align-items: flex-start;
}
.bwe-pc-card { flex: 0 0 25%; }

/* ── CONNECTING LINE (straight horizontal + circular end dots) ─────
   Height matches the ring diameter exactly so the line at y="50%" sits
   right at the ring center y. The line stretches with container width,
   but stays at the same y. Dots use absolute pixel radius (via the r
   attribute on <circle>) so they stay perfectly circular at any width. */
.bwe-pc-line {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--pc-ring, 220px);
    pointer-events: none;
    z-index: 0;
    overflow: visible;
}
.bwe-pc-line-rule {
    stroke: #dcdcdc;
    stroke-width: 1.5;
    fill: none;
}
.bwe-pc-line-dot {
    fill: #f5c518;
    stroke: none;
    r: 6;
}

/* ── SINGLE CARD ───────────────────────────────────────────────── */
.bwe-pc-card {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 0 12px;
    min-width: 0;
    box-sizing: border-box;
}

/* ── OUTER RING ────────────────────────────────────────────────── */
.bwe-pc-card-ring {
    width: var(--pc-ring);
    height: var(--pc-ring);
    border: 1.5px solid #dcdcdc;
    border-radius: 50%;
    margin: 0 auto;
    position: relative;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* ── INNER CIRCLE ──────────────────────────────────────────────── */
.bwe-pc-card-circle {
    width: 175px;
    height: 175px;
    background: #2F6F2F;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* ── ICON inside green circle ──────────────────────────────────── */
.bwe-pc-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    line-height: 1;
}
.bwe-pc-card-icon i {
    color: #ffffff;
    font-size: 60px;
    line-height: 1;
}
.bwe-pc-card-icon svg {
    width: 60px;
    height: 60px;
    fill: #ffffff;
}
.bwe-pc-card-icon svg * {
    fill: #ffffff;
}

/* ── STEP NUMBER BADGE ─────────────────────────────────────────── */
.bwe-pc-card-badge {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 52px;
    height: 52px;
    background: #f5c518;
    color: #1a1a1a;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.3px;
    box-sizing: border-box;
    z-index: 2;
}
.bwe-pc-card-badge--bl {
    /* Pixel fallback (default 220px ring → 78px offset) */
    transform: translate(-50%, -50%) translate(-78px, 78px);
    /* Modern browsers: scales with --pc-ring */
    transform: translate(-50%, -50%) translate(calc(-1 * var(--pc-badge-offset)), var(--pc-badge-offset));
}
.bwe-pc-card-badge--br {
    transform: translate(-50%, -50%) translate(78px, 78px);
    transform: translate(-50%, -50%) translate(var(--pc-badge-offset), var(--pc-badge-offset));
}
.bwe-pc-card-badge--tl {
    transform: translate(-50%, -50%) translate(-78px, -78px);
    transform: translate(-50%, -50%) translate(calc(-1 * var(--pc-badge-offset)), calc(-1 * var(--pc-badge-offset)));
}
.bwe-pc-card-badge--tr {
    transform: translate(-50%, -50%) translate(78px, -78px);
    transform: translate(-50%, -50%) translate(var(--pc-badge-offset), calc(-1 * var(--pc-badge-offset)));
}

/* ── TITLE + DESCRIPTION ───────────────────────────────────────── */
.bwe-pc-card-title {
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 32px 0 16px;
    letter-spacing: -0.3px;
    line-height: 1.3;
}
.bwe-pc-card-text {
    font-size: 15px;
    color: #6b7280;
    line-height: 1.7;
    max-width: 260px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 0;
    margin-bottom: 0;
}

/* ── RESPONSIVE ────────────────────────────────────────────────── */
@media (max-width: 1099px) {
    .bwe-pc-line { display: none; }
    .bwe-pc-cards {
        row-gap: 56px;
        column-gap: 24px;
    }
    .bwe-pc-card { flex: 0 0 calc(50% - 12px); }
    .bwe-pc-stage { --pc-ring: 200px; }
    .bwe-pc-card-circle { width: 160px; height: 160px; }
    .bwe-pc-card-icon i { font-size: 55px; }
    .bwe-pc-card-icon svg { width: 55px; height: 55px; }
    .bwe-pc-card-badge { width: 48px; height: 48px; font-size: 14px; }
    .bwe-pc-heading { font-size: 40px; }
    .bwe-pc-heading-block { margin-bottom: 50px; }
}
@media (max-width: 640px) {
    .bwe-pc-cards {
        row-gap: 48px;
    }
    .bwe-pc-card { flex: 0 0 100%; }
    .bwe-pc-stage { --pc-ring: 200px; }
    .bwe-pc-card-badge { width: 46px; height: 46px; font-size: 13px; }
    .bwe-pc-heading { font-size: 32px; letter-spacing: -0.3px; }
    .bwe-pc-heading-block { margin-bottom: 40px; }
    .bwe-pc-card-title { font-size: 22px; margin-top: 24px; }
}
