*, *::before, *::after { box-sizing:border-box; }
html { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; scrollbar-gutter: stable; }
body { background-color:#FAF8F2; color:#0D0D0D; font-family:'DM Sans',sans-serif; overflow-x:hidden; }
h1,h2,h3,h4,h5,h6,.heading { font-family:'Inter',sans-serif; }
@media(min-width:768px){ body{ cursor:none; } }
html.lenis { height:auto; }
.lenis.lenis-smooth { scroll-behavior:auto!important; }
.lenis.lenis-stopped { overflow:hidden; }

/* Cursor */
.cursor-dot { width:8px; height:8px; background:#16A34A; position:fixed; border-radius:50%; pointer-events:none; z-index:99999; transform:translate(-50%,-50%); transition:width .2s,height .2s; }
.cursor-shadow { width:40px; height:40px; border:1.5px solid rgba(22,163,74,.4); border-radius:50%; position:fixed; pointer-events:none; z-index:99998; transform:translate(-50%,-50%); transition:.1s ease-out,width .3s,height .3s; }
.cursor-hover .cursor-dot { width:0; height:0; }
.cursor-hover .cursor-shadow { width:60px; height:60px; border-color:#16A34A; background:rgba(22,163,74,.1); }
.cursor-shadow.cursor-click { transform: translate(-50%,-50%) scale(1.8) !important; border-color: #06B6D4 !important; background: rgba(6, 182, 212, 0.2) !important; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important; }

/* Global font rules — Inter for headings, DM Sans for body */
h1,h2,h3,h4,h5,h6 { font-family:'Inter',sans-serif; }
p, a, span, li, label, input, textarea, select, button { font-family:'DM Sans',sans-serif; }
.font-heading { font-family:'Inter',sans-serif !important; }
.font-body { font-family:'DM Sans',sans-serif !important; }

/* BG Grid — subtler */
.bg-grid { background-image:radial-gradient(rgba(0,0,0,0.06) 1px,transparent 1px); background-size:32px 32px; }

/* Glass — enhanced */
.glass-card { background:rgba(255,255,255,.9); backdrop-filter:blur(16px) saturate(180%); -webkit-backdrop-filter:blur(16px) saturate(180%); border:1px solid rgba(255,255,255,.8); box-shadow:0 8px 32px rgba(0,0,0,.06),0 1px 0 rgba(255,255,255,.8) inset; transition:all .35s cubic-bezier(.25,.46,.45,.94); transform-style:preserve-3d; }
.glass-card:hover { border-color:rgba(22,163,74,.25); box-shadow:0 20px 48px rgba(22,163,74,.1),0 1px 0 rgba(255,255,255,.8) inset; transform:translateY(-2px); }

/* Float animations — smoother */
@keyframes float1 { 0%,100%{transform:translateY(0) rotate(0deg)} 33%{transform:translateY(-12px) rotate(1deg)} 66%{transform:translateY(-6px) rotate(-0.5deg)} }
@keyframes float2 { 0%,100%{transform:translateY(0) rotate(0deg)} 40%{transform:translateY(10px) rotate(-1.5deg)} 70%{transform:translateY(4px) rotate(0.5deg)} }
@keyframes float3 { 0%,100%{transform:translateX(0) scale(1)} 50%{transform:translateX(8px) scale(1.03)} }
@keyframes shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
.anim-float-1 { animation:float1 7s cubic-bezier(.37,0,.63,1) infinite; }
.anim-float-2 { animation:float2 9s cubic-bezier(.37,0,.63,1) infinite; }
.anim-float-3 { animation:float3 11s cubic-bezier(.37,0,.63,1) infinite; }

/* Smooth page transitions */
main { opacity: 1; }

/* Button hover enhancements */
.magnetic-btn { transition: all 0.28s cubic-bezier(.25,.46,.45,.94); }
a, button { transition: all 0.22s ease; }

/* Hover lift for cards */
[data-tilt] { will-change: transform; }

/* Selection */
::selection { background:#16A34A; color:white; }

/* Text gradient */
/* Text gradient shine */
.text-gradient {
  background: linear-gradient(135deg, #16A34A, #4ade80, #06B6D4, #16A34A) !important;
  background-size: 300% auto !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  animation: textShine 6s linear infinite !important;
  will-change: background-position;
}
@keyframes textShine {
  0% { background-position: 0% 50%; }
  100% { background-position: 300% 50%; }
}

/* Mobile nav */
.mobile-menu { display:none; flex-direction:column; gap:0; background:#FBF9F1; position:absolute; top:100%; left:0; right:0; border-top:1px solid rgba(0,0,0,.08); box-shadow:0 10px 30px rgba(0,0,0,.08); z-index:9999; }
.mobile-menu.open { display:flex; }
.mobile-menu a { padding:1rem 1.5rem; font-size:.9rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#111; border-bottom:1px solid rgba(0,0,0,.05); transition:background .2s; }
.mobile-menu a:hover { background:rgba(22,163,74,.07); color:#16A34A; }
.hamburger { display:flex; flex-direction:column; gap:5px; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:#111; border-radius:2px; transition:all .3s; }
.hamburger.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Active nav link */
.nav-active { color:#16A34A!important; }

/* Float btns */
.float-btn-group { position:fixed; bottom:24px; right:90px; display:flex; flex-direction:row; gap:12px; z-index:9990; }
.float-btn { width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; color:white; box-shadow:0 4px 20px rgba(0,0,0,.2); transition:transform .2s,box-shadow .2s; text-decoration:none; position:relative; }
.float-btn:hover { transform:scale(1.1); }
.float-btn.phone { background:#16A34A; }
.float-btn.whatsapp { background:#25D366; }
.float-btn-label { position:absolute; right:calc(100% + 10px); top:50%; transform:translateY(-50%); white-space:nowrap; background:#111; color:white; font-size:.7rem; font-weight:700; letter-spacing:.05em; padding:.4rem .75rem; border-radius:8px; opacity:0; pointer-events:none; transition:opacity .2s; }
.float-btn:hover .float-btn-label { opacity:1; }

/* Chatbot - Green & Light Cream Theme */
#dm-chat-btn { position:fixed; bottom:24px; right:24px; width:58px; height:58px; border-radius:50%; background:#16A34A; border:none; cursor:pointer; box-shadow:0 4px 16px rgba(22,163,74,.35); display:flex; align-items:center; justify-content:center; z-index:9999; transition:transform .2s,background .2s; }
#dm-chat-btn:hover { background:#15803D; transform:scale(1.07); }
#dm-chat-btn svg { width:26px; height:26px; fill:white; }
#dm-badge { position:absolute; top:-4px; right:-4px; background:#ef4444; color:white; border-radius:50%; width:18px; height:18px; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }
#dm-chat-box { position:fixed; bottom:92px; right:24px; width:360px; max-height:520px; background:#FAF8F2; border-radius:16px; box-shadow:0 8px 40px rgba(0,0,0,.15); display:none; flex-direction:column; z-index:9998; overflow:hidden; border:1px solid rgba(22,163,74,.2); animation:slideUp .25s ease; }
@keyframes slideUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
#dm-header { background:#16A34A; padding:14px 16px; display:flex; align-items:center; gap:10px; color:white; }
#dm-header .avatar { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; }
#dm-header .info .name { font-weight:700; font-size:14px; }
#dm-header .info .status { font-size:11px; opacity:.9; }
#dm-close { margin-left:auto; background:none; border:none; color:white; cursor:pointer; font-size:18px; opacity:.8; }
#dm-close:hover { opacity:1; }
#dm-chips-container { padding: 8px 12px; display: flex; gap: 8px; overflow-x: auto; background: #fff; border-bottom: 1px solid rgba(22,163,74,0.08); }
.dm-chip { background: rgba(22, 163, 74, 0.05); border: 1px solid rgba(22, 163, 74, 0.15); border-radius: 20px; padding: 5px 12px; font-size: 11px; cursor: pointer; color: #16A34A; font-weight: 600; transition: all 0.2s; white-space: nowrap; display: inline-block; }
.dm-chip:hover { background: #16A34A; color: white; border-color: #16A34A; transform: translateY(-1px); }
.dm-chip:active { transform: translateY(0); }
.scrollbar-none::-webkit-scrollbar { display: none; }
.scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; }
#dm-messages { flex:1; overflow-y:auto; padding:16px 12px; display:flex; flex-direction:column; gap:12px; }
.dm-msg { display:flex; gap:8px; align-items:flex-end; }
.dm-msg.user { flex-direction:row-reverse; }
.dm-av { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; flex-shrink:0; }
.dm-av.bot { background:#16A34A; color:white; }
.dm-av.user { background:#15803D; color:white; }
.dm-bubble { max-width:80%; padding:10px 14px; border-radius:16px; font-size:13px; line-height:1.5; }
.dm-bubble.bot { background:#fff; color:#2E3A2F; border-bottom-left-radius:4px; border:1px solid rgba(22,163,74,.1); }
.dm-bubble.user { background:#16A34A; color:white; border-bottom-right-radius:4px; }
.dm-typing { display:flex; gap:4px; padding:4px 0; }
.dm-typing span { width:8px; height:8px; border-radius:50%; background:#16A34A; opacity:0.5; animation:typingDot 1s infinite; }
.dm-typing span:nth-child(2) { animation-delay:.15s; }
.dm-typing span:nth-child(3) { animation-delay:.3s; }
@keyframes typingDot { 0%,80%,100%{transform:scale(1);opacity:.5} 40%{transform:scale(1.2);opacity:1} }
#dm-input-row { display:flex; padding:10px 12px; gap:8px; border-top:1px solid rgba(22,163,74,.1); background:#fff; }
#dm-input { flex:1; border:1px solid #e2e8f0; border-radius:24px; padding:8px 14px; font-size:13px; outline:none; }
#dm-input:focus { border-color:#16A34A; box-shadow: 0 0 0 2px rgba(22,163,74,0.1); }
#dm-send { width:36px; height:36px; border-radius:50%; background:#16A34A; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .2s; }
#dm-send:hover { background:#15803D; }
#dm-send svg { width:16px; height:16px; fill:white; }

/* Page hero */
.page-hero { padding-top: 140px; padding-bottom: 80px; }

@media(max-width:767px) {
  html,body { overflow-x:hidden!important; width:100%!important; }
  .cursor-dot,.cursor-shadow { display:none!important; }
  .float-btn-group { bottom:16px; right:80px; }
  .float-btn { width:46px!important; height:46px!important; font-size:17px!important; }
  #dm-chat-box { width:calc(100vw - 32px); right:16px; }
  #dm-chat-btn { bottom:16px; right:16px; }
}

/* Scroll progress bar */
#progress-bar { position: fixed; top: 0; left: 0; height: 4px; background: linear-gradient(to right, #16A34A, #4ade80, #06B6D4); box-shadow: 0 0 10px rgba(22, 163, 74, 0.5), 0 0 5px rgba(6, 182, 212, 0.5); z-index: 100000; width: 0%; transition: width 0.1s ease; will-change: width; }

/* Custom range slider styling */
.range-slider { -webkit-appearance: none; width: 100%; height: 6px; border-radius: 9999px; background: rgba(0, 0, 0, 0.08); outline: none; }
.range-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #16A34A; cursor: pointer; box-shadow: 0 0 10px rgba(22, 163, 74, 0.4); transition: transform 0.1s ease; }
.range-slider::-webkit-slider-thumb:hover { transform: scale(1.25); }
.range-slider::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #16A34A; cursor: pointer; border: none; box-shadow: 0 0 10px rgba(22, 163, 74, 0.4); transition: transform 0.1s ease; }
.range-slider::-moz-range-thumb:hover { transform: scale(1.25); }
