/* ── Base ─────────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{font-feature-settings:"cv02","cv03","cv04","cv11"}
[x-cloak]{display:none!important}

/* ── Selection ────────────────────────────────────────────────────────────── */
::selection{background:rgba(31,122,110,.2);color:#0F3D2E}

/* ── Focus ────────────────────────────────────────────────────────────────── */
:focus-visible{outline:2px solid #1F7A6E;outline-offset:2px;border-radius:4px}

/* ── Scrollbar ────────────────────────────────────────────────────────────── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:#F5F7F6}
::-webkit-scrollbar-thumb{background:#1F7A6E;border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:#0F3D2E}

/* ── Header scroll state ─────────────────────────────────────────────────── */
#main-header{background:transparent;transition:background .3s,box-shadow .3s}
#main-header.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 3px rgba(26,29,28,.07),0 4px 16px -4px rgba(26,29,28,.10)}
#main-header.scrolled .logo-text{color:#1A1D1C}
#main-header.scrolled .nav-link{color:#313534}
#main-header.scrolled .nav-link:hover{background:#F5F7F6;color:#1A1D1C}
#main-header.scrolled .phone-link{color:#5d6360}
#main-header.scrolled .phone-link:hover{color:#0F3D2E}
#main-header.scrolled .mob-btn{color:#1A1D1C}

/* ── Scroll-reveal animations ─────────────────────────────────────────────── */
[data-anim]{opacity:0;transform:translateY(28px);transition:opacity .6s cubic-bezier(.22,.68,0,1.2),transform .6s cubic-bezier(.22,.68,0,1.2)}
[data-anim].visible{opacity:1;transform:translateY(0)}
[data-anim-d1]{transition-delay:.1s}
[data-anim-d2]{transition-delay:.2s}
[data-anim-d3]{transition-delay:.3s}
[data-anim-d4]{transition-delay:.4s}
[data-anim-scale]{opacity:0;transform:scale(.92);transition:opacity .5s ease,transform .5s ease}
[data-anim-scale].visible{opacity:1;transform:scale(1)}
[data-anim-left]{opacity:0;transform:translateX(-28px);transition:opacity .6s cubic-bezier(.22,.68,0,1.2),transform .6s cubic-bezier(.22,.68,0,1.2)}
[data-anim-left].visible{opacity:1;transform:translateX(0)}

/* ── Hero gradient text ───────────────────────────────────────────────────── */
.text-gradient-gold{background:linear-gradient(135deg,#d4ac57 0%,#C89B3C 50%,#b8841f 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.text-gradient-teal{background:linear-gradient(135deg,#2a9b8d,#5ec486);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ── Glass card ──────────────────────────────────────────────────────────── */
.glass{background:rgba(255,255,255,.07);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.10)}

/* ── Hero section ────────────────────────────────────────────────────────── */
.hero-bg{background:linear-gradient(135deg,#071f17 0%,#0F3D2E 50%,#145235 100%);position:relative;overflow:hidden}
.hero-bg::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6z'/%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.hero-glow-1{position:absolute;top:-100px;right:-100px;width:600px;height:600px;background:radial-gradient(circle,rgba(31,122,110,.15) 0%,transparent 70%);pointer-events:none;animation:floatGlow 8s ease-in-out infinite}
.hero-glow-2{position:absolute;bottom:-200px;left:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(30,125,71,.10) 0%,transparent 70%);pointer-events:none;animation:floatGlow 10s ease-in-out infinite reverse}

/* ── Keyframe animations ─────────────────────────────────────────────────── */
@keyframes floatGlow{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(20px,-20px) scale(1.05)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInScale{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes slideInDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes countUp{from{opacity:0}to{opacity:1}}

.animate-fade-in-up{animation:fadeInUp .7s cubic-bezier(.22,.68,0,1.2) both}
.animate-fade-in-scale{animation:fadeInScale .6s ease both}
.animate-float{animation:float 4s ease-in-out infinite}
.pulse-dot{animation:pulse-dot 2s ease-in-out infinite}
.animate-slide-down{animation:slideInDown .15s ease both}

/* Hero stagger */
.hero-h1{animation:fadeInUp .7s .1s cubic-bezier(.22,.68,0,1.2) both}
.hero-p{animation:fadeInUp .7s .25s cubic-bezier(.22,.68,0,1.2) both}
.hero-btns{animation:fadeInUp .7s .4s cubic-bezier(.22,.68,0,1.2) both}
.hero-badges{animation:fadeInUp .7s .55s cubic-bezier(.22,.68,0,1.2) both}
.hero-visual{animation:fadeInScale .8s .3s ease both}

/* ── Screen/mockup frame ─────────────────────────────────────────────────── */
.screen-frame{background:#0d0f0e;border:2px solid #2a2e2c;border-radius:12px;overflow:hidden;animation:float 6s ease-in-out infinite}
.screen-bar{background:#1a1c1b;padding:10px 16px;display:flex;align-items:center;gap:6px}
.screen-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}

/* ── Card hover ──────────────────────────────────────────────────────────── */
.card-hover{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.card-hover:hover{transform:translateY(-4px);box-shadow:0 8px 32px rgba(15,61,46,.12),0 20px 48px -8px rgba(31,122,110,.16)}

/* ── Shimmer loader (stats) ──────────────────────────────────────────────── */
.stat-num{transition:all .4s ease}

/* ── Form styles ─────────────────────────────────────────────────────────── */
.form-input{width:100%;padding:.75rem 1rem;background:#F5F7F6;border:1.5px solid #dde3e0;border-radius:.75rem;color:#1A1D1C;font-size:.875rem;transition:border-color .2s,box-shadow .2s;outline:none}
.form-input:focus{border-color:#1F7A6E;box-shadow:0 0 0 3px rgba(31,122,110,.12)}
.form-input::placeholder{color:#a0a7a4}
.form-label{display:block;font-size:.875rem;font-weight:600;color:#1A1D1C;margin-bottom:.375rem}

/* ── Sticky bar ──────────────────────────────────────────────────────────── */
#sticky-bar{transform:translateY(100%);transition:transform .3s ease}
#sticky-bar.visible{transform:translateY(0)}

/* ── Solutions dropdown ──────────────────────────────────────────────────── */
.solutions-dropdown{transition:opacity .15s ease,transform .15s ease;transform-origin:top center}
.solutions-dropdown.open{display:grid!important;animation:slideInDown .15s ease both}

/* ── Testimonial card ────────────────────────────────────────────────────── */
.quote-mark{font-size:4rem;line-height:1;color:#dde3e0;font-family:Georgia,serif;position:absolute;top:-10px;left:0}
