*, *::before, *::after { box-sizing: border-box; }
body { font-family: 'Be Vietnam Pro', sans-serif; background: #f8faf8; color: #1a202c; }

/* ── CSS Variables ── */
:root {
  --green: #1a6b2f;
  --green-dark: #145524;
  --green-light: #e8f5ec;
  --green-mid: #22a045;
  --radius: 10px;
}

/* ── Header ── */
.nav-link { position: relative; font-weight: 500; font-size: 14px; color: #374151; transition: color .2s; }
.nav-link:hover { color: var(--green); }
.nav-link.current-menu-item { color: var(--green); font-weight: 700; }
.nav-link::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:2px; background:var(--green); transition:width .25s; }
.nav-link:hover::after, .nav-link.current-menu-item::after { width:100%; }
.nav-dropdown { position: relative; }
.nav-dropdown-menu { display:none; position:absolute; top:calc(100% + 10px); left:0; background:#fff; border-radius:8px; box-shadow:0 8px 32px rgba(0,0,0,.14); min-width:200px; z-index:100; padding:8px 0; }
.nav-dropdown-menu::before { content: ""; position: absolute; top: -10px; left: 0; right: 0; height: 10px; background: transparent; }
.nav-dropdown:hover .nav-dropdown-menu { display:block; }
.nav-dropdown-menu a { display:block; padding:9px 18px; font-size:13px; color:#374151; transition:background .15s; }
.nav-dropdown-menu a:hover { background:#e8f5ec; color:var(--green); }
.mobile-menu { display:none; }
.mobile-menu.open { display:block; }

/* ── Mobile menu overlay ── */
.mobile-nav { background:var(--green-dark); position:fixed; top:0; left:0; right:0; bottom:0; z-index:200; overflow-y:auto; transform:translateX(-100%); transition:transform .3s ease; }
.mobile-nav.open { transform:translateX(0); }
.mobile-nav-link { display:block; padding:14px 24px; color:#fff; font-size:15px; font-weight:500; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-nav-link:hover { background:rgba(255,255,255,.07); }

/* ── Footer ── */
.footer { background:#0f2d18; }
.footer-link { font-size:13px; color:#9ca3af; transition:color .15s; display:block; margin-bottom:8px; }
.footer-link:hover { color:#fff; }

/* ── Scroll to top ── */
#scrollTop { position:fixed; bottom:24px; right:16px; z-index:999; background:var(--green); color:#fff; width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 3px 12px rgba(0,0,0,.2); cursor:pointer; opacity:0; transition:opacity .3s; }
#scrollTop.show { opacity:1; }

/* ── Live chat bubble ── */
.chat-bubble { position:fixed; bottom:24px; right:64px; z-index:999; background:#00b14f; color:#fff; width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 3px 12px rgba(0,180,80,.4); cursor:pointer; font-size:18px; }

/* ── Common Utilities ── */
.fade-up { opacity:0; transform:translateY(24px); transition:opacity .5s ease, transform .5s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* ── Select2 Custom Tailwind Styling ── */
.select2-container--default .select2-selection--single {
    height: 42px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    display: flex;
    align-items: center;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #4b5563;
    font-size: 14px;
    padding-left: 12px;
    padding-right: 28px;
    line-height: normal;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 40px;
    right: 8px;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--green);
    outline: none;
}
.select2-dropdown {
    border-color: #e5e7eb;
    border-radius: 8px;
    font-size: 14px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: var(--green);
    color: white;
}
.select2-container--default .select2-results__option {
    padding: 8px 12px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 6px 8px;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    outline: none;
    border-color: var(--green);
}
