/* ============================================================
   PROEON – Main Stylesheet
   Edit colours in :root, layout per section below
   ============================================================ */

/* ---- RESET & VARIABLES ---- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --forest:    #1c3a0e;
  --leaf:      #2e6b18;
  --sage:      #5a8a3c;
  --mint:      #c8e6b0;
  --cream:     #f7f4ed;
  --warm:      #ede8dc;
  --gold:      #b8922a;
  --gold-lt:   #d4b060;
  --bark:      #3d2b0e;
  --white:     #ffffff;
  --text:      #1e1e1e;
  --muted:     #6b6b6b;
  --border:    rgba(30,60,15,0.12);
  --shadow:    0 20px 60px rgba(28,58,14,0.12);
  --shadow-sm: 0 8px 24px rgba(28,58,14,0.08);
  --radius:    16px;
  --radius-lg: 28px;
  --nav-h:     80px;
  --ease:      cubic-bezier(0.25,0.46,0.45,0.94);
}

html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: 'Outfit', sans-serif; background: var(--cream); color: var(--text); overflow-x: hidden; cursor: none; }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button, input, textarea, select { font-family: inherit; }

/* ---- CUSTOM CURSOR ---- */
.cursor-dot { width: 8px; height: 8px; background: var(--leaf); border-radius: 50%; position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); }
.cursor-ring { width: 36px; height: 36px; border: 2px solid var(--sage); border-radius: 50%; position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); transition: all 0.15s var(--ease); opacity: 0.6; }
.cursor-ring.hovered { transform: translate(-50%,-50%) scale(1.8); opacity: 1; border-color: var(--gold); }

/* ---- SCROLLBAR ---- */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--warm); }
::-webkit-scrollbar-thumb { background: var(--sage); border-radius: 3px; }

/* ---- LOADER ---- */
#loader { position: fixed; inset: 0; background: var(--forest); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 10000; transition: opacity 0.8s var(--ease), visibility 0.8s; }
#loader.gone { opacity: 0; visibility: hidden; }
.loader-logo { font-family: 'Cormorant Garamond', serif; font-size: 4rem; font-weight: 700; color: var(--white); letter-spacing: 6px; animation: loaderPulse 1.6s ease-in-out infinite; }
.loader-sub { color: var(--gold-lt); font-size: 0.8rem; letter-spacing: 3px; text-transform: uppercase; margin-top: 0.5rem; opacity: 0.7; }
.loader-line { position: absolute; bottom: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--gold), var(--sage)); animation: loadLine 2.2s ease-in-out forwards; }
@keyframes loaderPulse { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes loadLine { from{width:0} to{width:100%} }

/* ---- PROGRESS BAR ---- */
#progress-bar { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--gold), var(--sage)); z-index: 5000; width: 0%; transition: width 0.08s; }

/* ---- NAVIGATION ---- */
nav { position: fixed; top: 0; left: 0; right: 0; height: var(--nav-h); z-index: 1000; transition: all 0.4s var(--ease); }
nav.scrolled { background: rgba(247,244,237,0.97); backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--border), var(--shadow-sm); }
.nav-inner { max-width: 1400px; margin: 0 auto; padding: 0 5%; height: 100%; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 700; color: var(--white); letter-spacing: 2px; transition: color 0.3s; }
nav.scrolled .nav-logo { color: var(--forest); }
.nav-logo span { color: var(--gold-lt); }
nav.scrolled .nav-logo span { color: var(--gold); }
.nav-links { display: flex; align-items: center; gap: 2.5rem; }
.nav-links a { font-size: 0.9rem; font-weight: 500; color: rgba(255,255,255,0.85); letter-spacing: 0.4px; position: relative; padding-bottom: 4px; transition: color 0.3s; }
nav.scrolled .nav-links a { color: var(--forest); }
.nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1.5px; background: var(--gold); transition: width 0.3s var(--ease); }
.nav-links a:hover::after { width: 100%; }
.nav-links a:hover { color: var(--gold-lt) !important; }
.nav-cta { background: var(--gold) !important; color: var(--white) !important; padding: 0.65rem 1.6rem !important; border-radius: 30px !important; font-weight: 600 !important; transition: all 0.3s var(--ease) !important; }
.nav-cta::after { display: none !important; }
.nav-cta:hover { background: var(--gold-lt) !important; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(184,146,42,0.4) !important; }
.hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: none; padding: 5px; }
.hamburger span { display: block; width: 26px; height: 2px; background: var(--white); border-radius: 2px; transition: all 0.35s var(--ease); }
nav.scrolled .hamburger span { background: var(--forest); }
.hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: translateX(-10px); }
.hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }
.mobile-menu { position: fixed; top: var(--nav-h); left: 0; right: 0; bottom: 0; background: var(--forest); z-index: 999; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2.5rem; opacity: 0; visibility: hidden; transform: translateY(-16px); transition: all 0.4s var(--ease); }
.mobile-menu.open { opacity: 1; visibility: visible; transform: translateY(0); }
.mobile-menu a { font-family: 'Cormorant Garamond', serif; font-size: 2.8rem; font-weight: 600; color: var(--white); transition: color 0.3s; }
.mobile-menu a:hover { color: var(--gold-lt); }

/* ---- HERO ---- */
.hero { min-height: 100vh; background: var(--forest); display: flex; align-items: center; position: relative; overflow: hidden; padding-top: var(--nav-h); }
.hero-shapes { position: absolute; inset: 0; pointer-events: none; }
.hs { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(46,107,24,0.35), transparent 70%); }
.hs1 { width:700px;height:700px;top:-200px;right:-150px;animation:dA 18s ease-in-out infinite; }
.hs2 { width:400px;height:400px;bottom:-100px;left:-100px;animation:dB 22s ease-in-out infinite; }
.hs3 { width:200px;height:200px;top:45%;left:42%;animation:dA 14s ease-in-out infinite reverse; }
@keyframes dA { 0%,100%{transform:translate(0,0)} 50%{transform:translate(-40px,40px)} }
@keyframes dB { 0%,100%{transform:translate(0,0)} 50%{transform:translate(30px,-30px)} }
.hero-inner { max-width:1400px;margin:0 auto;padding:6rem 5%;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;position:relative;z-index:1; }
.hero-eyebrow { display:inline-flex;align-items:center;gap:0.75rem;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:30px;padding:0.45rem 1.2rem;font-size:0.78rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--gold-lt);margin-bottom:1.8rem;opacity:0;animation:fadeUp 0.8s 0.5s var(--ease) forwards; }
.hero-eyebrow::before { content:'';width:6px;height:6px;border-radius:50%;background:var(--gold-lt); }
.hero-title { font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,5.5vw,5.2rem);font-weight:700;line-height:1.05;color:var(--white);margin-bottom:1.8rem;opacity:0;animation:fadeUp 0.9s 0.7s var(--ease) forwards; }
.hero-title em { color:var(--gold-lt);font-style:italic; }
.hero-desc { font-size:1.1rem;line-height:1.85;color:rgba(255,255,255,0.7);margin-bottom:2.5rem;max-width:520px;opacity:0;animation:fadeUp 0.9s 0.9s var(--ease) forwards; }
.hero-actions { display:flex;gap:1.2rem;flex-wrap:wrap;opacity:0;animation:fadeUp 0.9s 1.1s var(--ease) forwards; }
@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* ---- BUTTONS ---- */
.btn { display:inline-flex;align-items:center;gap:0.6rem;padding:1rem 2.2rem;border-radius:40px;font-weight:600;font-size:0.92rem;letter-spacing:0.3px;transition:all 0.35s var(--ease);cursor:none;border:none; }
.btn-gold { background:var(--gold);color:var(--white); }
.btn-gold:hover { background:var(--gold-lt);transform:translateY(-3px);box-shadow:0 12px 30px rgba(184,146,42,0.4); }
.btn-outline { background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,0.4); }
.btn-outline:hover { border-color:var(--white);background:rgba(255,255,255,0.08);transform:translateY(-3px); }
.btn-dark { background:var(--forest);color:var(--white); }
.btn-dark:hover { background:var(--leaf);transform:translateY(-3px);box-shadow:0 12px 30px rgba(28,58,14,0.3); }
.btn svg { transition:transform 0.3s var(--ease); }
.btn:hover svg { transform:translateX(4px); }

/* ---- HERO CARD ---- */
.hero-visual { opacity:0;animation:fadeIn 1.2s 0.8s var(--ease) forwards; }
.hero-card { background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-lg);overflow:hidden;backdrop-filter:blur(8px);transition:transform 0.6s var(--ease); }
.hero-card:hover { transform:scale(1.02) rotate(-0.5deg); }
.hero-card img { width:100%;height:420px;object-fit:cover;opacity:0.9; }
.hero-stats { display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,0.1); }
.hero-stat { padding:1.5rem 1rem;text-align:center;border-right:1px solid rgba(255,255,255,0.1); }
.hero-stat:last-child { border-right:none; }
.hero-stat strong { display:block;font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--gold-lt);font-weight:700; }
.hero-stat span { font-size:0.75rem;color:rgba(255,255,255,0.55);letter-spacing:0.5px; }

/* ---- MARQUEE ---- */
.marquee-strip { background:var(--forest);padding:1.1rem 0;overflow:hidden;border-top:1px solid rgba(255,255,255,0.06); }
.marquee-track { display:flex;gap:3rem;width:max-content;animation:marquee 30s linear infinite; }
.marquee-track:hover { animation-play-state:paused; }
.marquee-item { display:flex;align-items:center;gap:1rem;font-size:0.8rem;font-weight:500;letter-spacing:1.5px;white-space:nowrap;text-transform:uppercase;color:rgba(255,255,255,0.65); }
.marquee-dot { width:5px;height:5px;border-radius:50%;background:var(--gold); }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ---- SECTION UTILITIES ---- */
.section { padding:8rem 5%;max-width:1400px;margin:0 auto; }
.section-full { padding:8rem 5%; }
.section-label { display:inline-flex;align-items:center;gap:0.6rem;font-size:0.75rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--sage);margin-bottom:1rem; }
.section-label::before { content:'';width:24px;height:1.5px;background:var(--sage); }
.section-title { font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,5vw,4rem);font-weight:700;line-height:1.1;color:var(--forest);margin-bottom:1.2rem; }
.section-title em { font-style:italic;color:var(--gold); }
.section-sub { font-size:1.1rem;color:var(--muted);max-width:580px;line-height:1.8; }
.reveal { opacity:0;transform:translateY(32px);transition:opacity 0.8s var(--ease),transform 0.8s var(--ease); }
.reveal.in { opacity:1;transform:translateY(0); }
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* ---- ABOUT ---- */
.about-grid { display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center; }
.about-img-wrap { position:relative; }
.about-img-wrap img { width:100%;height:560px;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow); }
.about-badge { position:absolute;bottom:-1.5rem;right:-1.5rem;background:var(--gold);color:var(--white);border-radius:var(--radius);padding:1.5rem 2rem;box-shadow:var(--shadow); }
.about-badge strong { display:block;font-family:'Cormorant Garamond',serif;font-size:3rem;font-weight:700;line-height:1; }
.about-badge span { font-size:0.78rem;font-weight:600;letter-spacing:1px;opacity:0.85; }
.feature-list { margin-top:2rem;display:grid;gap:1rem; }
.feature-item { display:flex;align-items:flex-start;gap:1rem;background:var(--white);border-radius:var(--radius);padding:1.2rem 1.5rem;box-shadow:var(--shadow-sm);transition:transform 0.3s var(--ease); }
.feature-item:hover { transform:translateX(6px); }
.feature-icon { width:44px;height:44px;flex-shrink:0;background:var(--mint);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem; }
.feature-item h4 { font-size:0.95rem;font-weight:600;color:var(--forest);margin-bottom:0.2rem; }
.feature-item p { font-size:0.85rem;color:var(--muted); }

/* ---- PRODUCTS ---- */
.products-bg { background:var(--warm); }
.products-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem;margin-top:4rem; }
.product-card { background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:all 0.5s var(--ease);cursor:none;position:relative; }
.product-card:hover { transform:translateY(-12px);box-shadow:var(--shadow); }
.product-img-wrap { position:relative;height:340px;overflow:hidden; }
.product-img-wrap img { width:100%;height:100%;object-fit:cover;transition:transform 0.7s var(--ease); }
.product-card:hover .product-img-wrap img { transform:scale(1.08); }
.product-tag { position:absolute;top:1.2rem;left:1.2rem;background:var(--forest);color:var(--white);font-size:0.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:0.4rem 1rem;border-radius:20px; }
.product-pct { position:absolute;top:1.2rem;right:1.2rem;background:var(--gold);color:var(--white);font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:700;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center; }
.product-body { padding:2rem 2.2rem 2.5rem; }
.product-body h3 { font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:var(--forest);margin-bottom:0.8rem; }
.product-body p { color:var(--muted);line-height:1.75;margin-bottom:1.8rem; }
.product-chips { display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:1.8rem; }
.chip { background:var(--mint);color:var(--forest);font-size:0.75rem;font-weight:600;letter-spacing:0.5px;padding:0.35rem 0.9rem;border-radius:20px; }
.product-link { display:inline-flex;align-items:center;gap:0.5rem;color:var(--gold);font-weight:700;font-size:0.9rem;transition:gap 0.3s var(--ease); }
.product-link:hover { gap:1rem; }

/* ---- APPLICATIONS ---- */
.apps-bg { background:var(--forest); }
.apps-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;margin-top:4rem;max-width:1400px;margin-left:auto;margin-right:auto; }
.app-card { background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;cursor:none;transition:all 0.4s var(--ease); }
.app-card:hover { background:rgba(255,255,255,0.13);transform:translateY(-8px);border-color:rgba(184,146,42,0.5); }
.app-emoji { font-size:3rem;margin-bottom:1.2rem;display:block; }
.app-card h4 { color:var(--white);font-size:0.92rem;font-weight:500;line-height:1.4; }

/* ---- NUMBERS ---- */
.numbers-bg { background:linear-gradient(135deg,var(--leaf),var(--forest)); }
.numbers-inner { max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr); }
.number-item { padding:3.5rem 2rem;text-align:center;border-right:1px solid rgba(255,255,255,0.12); }
.number-item:last-child { border-right:none; }
.number-item strong { display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,4vw,4rem);font-weight:700;color:var(--white);line-height:1; }
.number-item span { font-size:0.82rem;color:rgba(255,255,255,0.6);letter-spacing:1px;margin-top:0.5rem;display:block; }

/* ---- IMPACT ---- */
.impact-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:5rem;margin-top:4rem; }
.impact-col h3 { font-family:'Cormorant Garamond',serif;font-size:2.8rem;color:var(--forest);margin-bottom:0.4rem; }
.impact-col .col-sub { color:var(--muted);font-style:italic;margin-bottom:2.5rem; }
.stat-cards { display:grid;gap:1.2rem; }
.stat-card { display:flex;align-items:center;gap:1.5rem;background:var(--white);padding:1.5rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow-sm);border-left:4px solid var(--mint);transition:all 0.35s var(--ease); }
.stat-card:hover { transform:translateX(8px);border-left-color:var(--gold);box-shadow:var(--shadow); }
.stat-icon-box { width:52px;height:52px;flex-shrink:0;background:var(--mint);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.6rem; }
.stat-card h4 { font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--forest);font-weight:700;line-height:1; }
.stat-card p { font-size:0.85rem;color:var(--muted);margin-top:0.2rem; }

/* ---- PROCESS ---- */
.process-bg { background:var(--warm); }
.process-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-top:4rem; }
.process-step { position:relative; }
.process-num { font-family:'Cormorant Garamond',serif;font-size:5rem;font-weight:700;color:var(--mint);line-height:1;margin-bottom:1rem; }
.process-step h4 { font-size:1.1rem;color:var(--forest);margin-bottom:0.6rem;font-weight:600; }
.process-step p { font-size:0.9rem;color:var(--muted);line-height:1.7; }
.process-connector { position:absolute;top:2.5rem;right:-1rem;width:2rem;height:2px;background:linear-gradient(90deg,var(--mint),transparent); }
.process-step:last-child .process-connector { display:none; }

/* ---- BLOG ---- */
.blog-bg { background:var(--warm); }
.blog-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:4rem; }
.blog-card { background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:all 0.4s var(--ease);cursor:none; }
.blog-card:hover { transform:translateY(-10px);box-shadow:var(--shadow); }
.blog-thumb { height:220px;overflow:hidden;position:relative; }
.blog-thumb img { width:100%;height:100%;object-fit:cover;transition:transform 0.7s var(--ease); }
.blog-card:hover .blog-thumb img { transform:scale(1.1); }
.blog-cat { position:absolute;top:1rem;left:1rem;background:var(--gold);color:var(--white);font-size:0.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:0.3rem 0.8rem;border-radius:20px; }
.blog-body { padding:1.8rem 2rem 2.2rem; }
.blog-date { font-size:0.78rem;color:var(--muted);margin-bottom:0.8rem; }
.blog-body h3 { font-size:1.1rem;font-weight:600;color:var(--forest);line-height:1.45;margin-bottom:0.8rem; }
.blog-body p { font-size:0.88rem;color:var(--muted);line-height:1.7;margin-bottom:1.5rem; }
.blog-read { display:inline-flex;align-items:center;gap:0.5rem;font-size:0.85rem;font-weight:700;color:var(--gold);transition:gap 0.3s var(--ease); }
.blog-read:hover { gap:1rem; }

/* ---- CONTACT ---- */
.contact-grid { display:grid;grid-template-columns:1fr 1.4fr;gap:6rem;align-items:start; }
.contact-info p { color:var(--muted);line-height:1.8;margin-bottom:3rem; }
.contact-detail { display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem; }
.c-icon { width:44px;height:44px;flex-shrink:0;background:var(--mint);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem; }
.contact-detail h5 { font-size:0.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:0.3rem; }
.contact-detail p { color:var(--forest);font-weight:500;font-size:0.95rem;line-height:1.5; }
.contact-form { display:grid;gap:1.2rem; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:1.2rem; }
.form-group { display:flex;flex-direction:column;gap:0.5rem; }
.form-group label { font-size:0.82rem;font-weight:600;color:var(--forest);letter-spacing:0.5px; }
.form-group input,.form-group textarea,.form-group select { background:var(--white);border:1.5px solid var(--border);border-radius:10px;padding:0.9rem 1.2rem;font-size:0.95rem;color:var(--text);transition:border-color 0.3s,box-shadow 0.3s;outline:none;resize:none; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { border-color:var(--sage);box-shadow:0 0 0 3px rgba(90,138,60,0.12); }
.form-group textarea { height:140px; }
.form-submit { background:var(--forest);color:var(--white);padding:1.1rem 2.5rem;border-radius:40px;font-weight:700;font-size:0.95rem;border:none;cursor:none;transition:all 0.35s var(--ease);display:inline-flex;align-items:center;gap:0.6rem; }
.form-submit:hover { background:var(--gold);transform:translateY(-3px);box-shadow:0 12px 30px rgba(184,146,42,0.4); }
.form-note { font-size:0.78rem;color:var(--muted); }
.form-success { display:none;background:var(--mint);border-radius:var(--radius);padding:1.5rem;text-align:center;color:var(--forest);font-weight:600; }

/* ---- NEWSLETTER ---- */
.newsletter-bg { background:var(--gold); }
.newsletter-inner { max-width:900px;margin:0 auto;text-align:center;padding:7rem 5%; }
.newsletter-inner h2 { font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.5rem);color:var(--white);margin-bottom:0.8rem; }
.newsletter-inner p { color:rgba(255,255,255,0.85);font-size:1.1rem;margin-bottom:2.5rem; }
.nl-form { display:flex;gap:1rem;max-width:520px;margin:0 auto; }
.nl-form input { flex:1;padding:1rem 1.5rem;border-radius:40px;border:none;font-size:0.95rem;outline:none;background:rgba(255,255,255,0.95); }
.nl-submit { background:var(--forest);color:var(--white);border:none;padding:1rem 2rem;border-radius:40px;font-weight:700;cursor:none;white-space:nowrap;transition:all 0.3s var(--ease); }
.nl-submit:hover { background:var(--bark);transform:translateY(-2px); }

/* ---- FOOTER ---- */
footer { background:var(--bark);color:rgba(255,255,255,0.72);padding:5rem 5% 2rem; }
.footer-grid { max-width:1400px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem;margin-bottom:4rem; }
.footer-logo { font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--white);font-weight:700;letter-spacing:2px;margin-bottom:1.2rem; }
.footer-logo span { color:var(--gold-lt); }
.footer-brand p { font-size:0.9rem;line-height:1.8;max-width:300px;margin-bottom:2rem; }
.social-links { display:flex;gap:0.8rem; }
.social-link { width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-size:0.9rem;transition:all 0.3s; }
.social-link:hover { background:var(--gold);border-color:var(--gold);transform:translateY(-3px); }
.footer-col h5 { font-size:0.82rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--white);margin-bottom:1.5rem; }
.footer-col ul { display:grid;gap:0.8rem; }
.footer-col a { font-size:0.88rem;transition:color 0.3s; }
.footer-col a:hover { color:var(--gold-lt); }
.footer-bottom { max-width:1400px;margin:0 auto;padding-top:2rem;border-top:1px solid rgba(255,255,255,0.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:0.82rem; }
.footer-bottom a:hover { color:var(--gold-lt); }

/* ---- COOKIE BANNER ---- */
#cookie-banner { position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bark);color:rgba(255,255,255,0.85);border-radius:var(--radius);padding:1.2rem 2rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 20px 50px rgba(0,0,0,0.3);z-index:9000;max-width:700px;width:calc(100% - 2rem);opacity:0;transition:all 0.5s var(--ease); }
#cookie-banner.show { opacity:1;transform:translateX(-50%) translateY(0); }
#cookie-banner p { font-size:0.85rem;flex:1; }
#cookie-banner a { color:var(--gold-lt);text-decoration:underline; }
.cookie-btns { display:flex;gap:0.8rem;flex-shrink:0; }
.cookie-accept { background:var(--gold);color:var(--white);border:none;padding:0.6rem 1.5rem;border-radius:20px;font-weight:600;font-size:0.85rem;cursor:none;transition:background 0.3s; }
.cookie-accept:hover { background:var(--gold-lt); }
.cookie-reject { background:transparent;color:rgba(255,255,255,0.6);border:1px solid rgba(255,255,255,0.2);padding:0.6rem 1.2rem;border-radius:20px;font-size:0.85rem;cursor:none;transition:all 0.3s; }
.cookie-reject:hover { color:var(--white);border-color:rgba(255,255,255,0.5); }

/* ---- BACK TO TOP ---- */
#back-top { position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;border-radius:50%;background:var(--forest);color:var(--white);border:none;cursor:none;z-index:500;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:all 0.35s var(--ease); }
#back-top.show { opacity:1;visibility:visible; }
#back-top:hover { background:var(--gold);transform:translateY(-4px); }

/* ---- TOAST ---- */
#toast { position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--forest);color:var(--white);padding:1rem 2rem;border-radius:40px;font-weight:500;font-size:0.92rem;box-shadow:var(--shadow);z-index:9001;opacity:0;transition:all 0.4s var(--ease);pointer-events:none; }
#toast.show { opacity:1;transform:translateX(-50%) translateY(0); }

/* ---- RESPONSIVE ---- */
@media(max-width:1200px){
  .apps-grid{grid-template-columns:repeat(3,1fr)}
  .process-grid{grid-template-columns:repeat(2,1fr)}
  .numbers-inner{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1024px){
  .about-grid,.contact-grid{grid-template-columns:1fr;gap:3rem}
  .about-badge{bottom:1rem;right:1rem}
  .hero-inner{grid-template-columns:1fr;gap:3rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:3rem}
}
@media(max-width:768px){
  :root{--nav-h:68px}
  body{cursor:auto}
  .cursor-dot,.cursor-ring{display:none}
  .nav-links{display:none}
  .hamburger{display:flex}
  .products-grid,.impact-grid,.blog-grid{grid-template-columns:1fr}
  .apps-grid{grid-template-columns:repeat(2,1fr)}
  .form-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .nl-form{flex-direction:column}
  .numbers-inner{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .hero-actions{flex-direction:column}
  .hero-stats{grid-template-columns:1fr}
  .hero-stat{border-right:none;border-bottom:1px solid rgba(255,255,255,0.1)}
  .apps-grid{grid-template-columns:1fr 1fr}
  .numbers-inner{grid-template-columns:1fr}
}
