/* Mezsi RVM – Bulk deposit return system */
:root { --lime:#8cc63f; --lime-2:#c4f06a; --deep:#4f7d1d; --ink:#0a0c0a; --line:rgba(255,255,255,.08); --warn:#ff5a4a; }
html { scroll-padding-top: 90px; }
body { background: var(--ink); }
::selection { background: var(--lime); color: var(--ink); }

/* Buttons */
.btn-primary,.btn-ghost,.btn-dark { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; padding:.85rem 1.5rem; border-radius:999px; transition:all .35s cubic-bezier(.2,.8,.2,1); position:relative; overflow:hidden; cursor:pointer; }
.btn-primary { background:linear-gradient(135deg,var(--lime-2),var(--lime) 50%,var(--deep)); color:var(--ink); box-shadow:0 10px 30px -10px rgba(140,198,63,.8); }
.btn-primary::after { content:""; position:absolute; inset:0; transform:translateX(-120%); background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%); transition:transform .8s; }
.btn-primary:hover::after { transform:translateX(120%); }
.btn-primary:hover { transform:translateY(-2px); }
.btn-ghost { border:1px solid rgba(255,255,255,.2); color:#fff; background:rgba(255,255,255,.03); }
.btn-ghost:hover { border-color:var(--lime); color:var(--lime); transform:translateY(-2px); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-dark:hover { transform:translateY(-2px); }

/* Navbar */
.glass { background:rgba(17,20,17,.6); backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%); border:1px solid var(--line); }
#navbar.scrolled .glass { background:rgba(10,12,10,.88); box-shadow:0 10px 40px -20px #000; }
.nav-link { padding:.5rem .75rem; border-radius:.6rem; position:relative; transition:color .3s; }
.nav-link::after { content:""; position:absolute; left:.75rem; right:.75rem; bottom:.3rem; height:2px; background:var(--lime); transform:scaleX(0); transform-origin:left; transition:transform .35s; }
.nav-link:hover,.nav-link.active { color:#fff; } .nav-link:hover::after,.nav-link.active::after { transform:scaleX(1); }
.nav-hl { color:var(--lime-2); }
.mm { display:block; padding:.5rem .75rem; border-radius:.6rem; } .mm:hover { background:rgba(255,255,255,.08); }
.lang-switch { position:relative; display:flex; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:999px; padding:3px; }
.lang-switch button { position:relative; z-index:1; width:40px; height:30px; font-size:.78rem; font-weight:700; color:rgba(255,255,255,.6); transition:color .3s; }
.lang-switch button.on { color:var(--ink); }
.lang-pill { position:absolute; top:3px; left:3px; width:40px; height:30px; border-radius:999px; background:var(--lime); transition:transform .45s cubic-bezier(.6,-.3,.3,1.4); box-shadow:0 0 18px rgba(140,198,63,.6); }
.lang-switch[data-cur="en"] .lang-pill { transform:translateX(40px); }
[data-i18n] { transition:opacity .25s; } body.lang-fade [data-i18n] { opacity:0; }

/* Hero */
.mesh { position:absolute; inset:-20%; background:radial-gradient(40% 40% at 25% 30%,rgba(140,198,63,.28),transparent 60%),radial-gradient(35% 35% at 80% 25%,rgba(196,240,106,.12),transparent 60%),radial-gradient(45% 45% at 70% 85%,rgba(40,90,30,.4),transparent 60%); filter:blur(40px); animation:mesh 22s ease-in-out infinite alternate; }
@keyframes mesh { 50% { transform:translate(4%,-3%) rotate(7deg) scale(1.07); } 100% { transform:translate(-3%,4%) rotate(-5deg); } }
.grid-overlay { position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:60px 60px; mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%); }
.chip { display:inline-flex; align-items:center; gap:.5rem; padding:.45rem 1rem; border-radius:999px; font-size:.8rem; font-weight:500; background:rgba(140,198,63,.12); color:var(--lime-2); border:1px solid rgba(140,198,63,.4); }
.chip::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--lime); animation:pulse 2s infinite; }
@keyframes pulse { 0% { box-shadow:0 0 0 0 rgba(140,198,63,.7); } 70% { box-shadow:0 0 0 10px rgba(140,198,63,0); } 100% { box-shadow:0 0 0 0 rgba(140,198,63,0); } }
.lime-text { background:linear-gradient(90deg,var(--lime),var(--lime-2),var(--lime)); background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shine 6s linear infinite; }
@keyframes shine { to { background-position:200% center; } }
.stat-badge { padding:.9rem .8rem; border-radius:1rem; background:rgba(255,255,255,.04); border:1px solid var(--line); transition:all .3s; display:block; }
.stat-badge:hover { border-color:rgba(140,198,63,.55); transform:translateY(-3px); }
.stat-badge b { display:block; font-family:"Space Grotesk"; font-size:1.5rem; color:var(--lime); line-height:1.1; }
.stat-badge small { color:rgba(255,255,255,.6); font-size:.75rem; }
.stat-hl { border-color:rgba(255,90,74,.5); background:rgba(255,90,74,.08); }
.stat-hl b { color:#ff8a7a; }
.hero-img { position:relative; border-radius:1.8rem; overflow:hidden; border:1px solid rgba(255,255,255,.1); box-shadow:0 40px 90px -40px rgba(140,198,63,.6); cursor:zoom-in; }
.floating { animation:floaty 7s ease-in-out infinite; }
@keyframes floaty { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-14px); } }
.hero-glow { position:absolute; inset:8%; background:radial-gradient(circle,rgba(140,198,63,.45),transparent 65%); filter:blur(60px); }
.scan { position:absolute; left:0; right:0; height:30%; top:-30%; background:linear-gradient(180deg,transparent,rgba(196,240,106,.18),transparent); animation:scan 4.5s ease-in-out infinite; pointer-events:none; }
@keyframes scan { 0% { top:-30%; } 60%,100% { top:110%; } }

/* Sections */
.section { padding:7rem 0; position:relative; }
.section-head { text-align:center; max-width:48rem; margin:0 auto; }
.kicker { font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--lime); font-weight:700; }
.kicker-hl { display:inline-block; padding:.35rem .8rem; border-radius:999px; color:#fff; background:var(--warn); letter-spacing:.15em; box-shadow:0 0 24px rgba(255,90,74,.5); }
.h2 { margin-top:.8rem; font-family:"Space Grotesk"; font-weight:700; font-size:clamp(2rem,4.2vw,3.2rem); line-height:1.1; letter-spacing:-.02em; text-align:center; }
.lead { margin-top:1rem; color:rgba(255,255,255,.65); font-size:1.08rem; text-align:center; }
.blob { position:absolute; width:560px; height:560px; border-radius:50%; background:var(--warn); filter:blur(140px); opacity:.12; right:-160px; top:10%; pointer-events:none; }
.reveal { opacity:0; transform:translateY(40px); transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s); }
.reveal.in { opacity:1; transform:none; }

/* Capacity */
.cap-card { position:relative; padding:1.8rem 1.4rem 2.2rem; border-radius:1.5rem; text-align:center; background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01)); border:1px solid var(--line); overflow:hidden; transition:all .4s; }
.cap-card:hover { transform:translateY(-6px); border-color:rgba(140,198,63,.5); box-shadow:0 30px 60px -30px rgba(140,198,63,.5); }
.cap-ic { height:56px; display:grid; place-items:center; }
.cap-ic svg { height:52px; fill:none; stroke:var(--lime); stroke-width:1.8; stroke-linejoin:round; }
.cap-num { margin-top:1rem; font-family:"Space Grotesk"; font-weight:700; font-size:clamp(2rem,4vw,2.9rem); line-height:1; background:linear-gradient(180deg,#fff,#cdeea0); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cap-unit { display:block; margin-top:.3rem; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--lime); font-weight:700; }
.cap-card p { margin-top:.7rem; color:rgba(255,255,255,.7); font-weight:500; }

/* Reject */
.rej-item { display:flex; gap:.9rem; padding:1.1rem; border-radius:1rem; border:1px solid var(--line); background:rgba(255,255,255,.03); transition:all .3s; }
.rej-item:hover { border-color:rgba(255,90,74,.5); background:rgba(255,90,74,.05); }
.rej-item > span { flex:none; width:40px; height:40px; border-radius:.7rem; display:grid; place-items:center; font-weight:700; color:#fff; background:linear-gradient(135deg,#ff7a6a,var(--warn)); }
.rej-item h4 { font-weight:700; } .rej-item p { margin-top:.25rem; font-size:.88rem; color:rgba(255,255,255,.62); }
.rej-figure { position:relative; border-radius:1.6rem; overflow:hidden; border:1px solid rgba(255,90,74,.35); box-shadow:0 40px 80px -40px rgba(255,90,74,.5); cursor:zoom-in; }
.rej-figure img { width:100%; height:auto; display:block; transition:transform 1s; }
.rej-figure:hover img { transform:scale(1.03); }
.rej-hotspot { position:absolute; left:73.5%; top:76%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:.5rem; pointer-events:none; }
.rej-hotspot i { width:22px; height:22px; border-radius:50%; background:var(--warn); border:3px solid #fff; animation:ping 1.8s infinite; }
@keyframes ping { 0% { box-shadow:0 0 0 0 rgba(255,90,74,.8); } 80%,100% { box-shadow:0 0 0 22px rgba(255,90,74,0); } }
.rej-hotspot b { padding:.3rem .7rem; border-radius:999px; font-size:.75rem; letter-spacing:.15em; background:var(--warn); color:#fff; box-shadow:0 8px 20px -6px rgba(0,0,0,.6); }

/* Flow */
.flow { display:grid; gap:1rem; grid-template-columns:1fr; padding:0; counter-reset:s; }
@media (min-width:640px) { .flow { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .flow { grid-template-columns:repeat(6,1fr); } }
.flow-step { position:relative; padding:1.4rem 1.2rem; border-radius:1.2rem; border:1px solid var(--line); background:rgba(10,12,10,.6); transition:all .35s; }
.flow-step:hover { border-color:rgba(140,198,63,.5); transform:translateY(-4px); }
.fs-n { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:"Space Grotesk"; font-weight:700; color:var(--ink); background:var(--lime); box-shadow:0 0 0 6px rgba(140,198,63,.15); }
.flow-step h4 { margin-top:.9rem; font-weight:700; } .flow-step p { margin-top:.35rem; font-size:.86rem; color:rgba(255,255,255,.6); }
.flow-hl { border-color:rgba(255,90,74,.5); background:rgba(255,90,74,.06); }
.flow-hl .fs-n { background:var(--warn); color:#fff; box-shadow:0 0 0 6px rgba(255,90,74,.18); }
.conveyor { position:relative; height:46px; border-radius:999px; overflow:hidden; border:1px solid var(--line); background:#121512; }
.belt { position:absolute; inset:0; background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 2px,transparent 2px 28px); animation:belt 1.2s linear infinite; }
@keyframes belt { to { background-position:28px 0; } }
.item { position:absolute; top:50%; width:16px; height:26px; margin-top:-13px; border-radius:5px 5px 3px 3px; background:linear-gradient(180deg,#bfe8ff,#5fb4e0); left:-30px; animation:ride 6s linear infinite; }
.item.i2 { animation-delay:-1.5s; background:linear-gradient(180deg,#d9d9d9,#8a8a8a); width:18px; height:22px; margin-top:-11px; border-radius:4px; }
.item.i3 { animation-delay:-3s; background:linear-gradient(180deg,#9be27a,#3d7a1f); width:14px; height:30px; margin-top:-15px; }
.item.i4 { animation-delay:-4.5s; background:linear-gradient(180deg,#ff9a8a,var(--warn)); }
@keyframes ride { 0% { left:-30px; } 100% { left:calc(100% + 30px); } }
.item.i4 { animation-name:rideReject; }
@keyframes rideReject { 0% { left:-30px; opacity:1; } 30% { left:30%; transform:none; opacity:1; } 45% { left:32%; transform:translateY(-60px) rotate(-30deg); opacity:0; } 100% { left:32%; opacity:0; } }
.crush { padding:1.6rem 1.2rem; border-radius:1.4rem; text-align:center; border:1px solid var(--line); background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01)); }
.press { position:relative; height:90px; margin:0 auto; width:90px; border-bottom:4px solid rgba(255,255,255,.25); }
.press::before { content:""; position:absolute; left:10px; right:10px; top:0; height:16px; border-radius:4px; background:linear-gradient(180deg,#d8dcd8,#7d837d); animation:press 2.4s linear infinite; }
.press i { position:absolute; left:28px; right:28px; bottom:0; height:52px; border-radius:6px 6px 3px 3px; background:linear-gradient(180deg,#bfe8ff,#5fb4e0); transform-origin:bottom; animation:squash 2.4s linear infinite; }
/* Plate and item move together while in contact, so the plate never sinks into the item:
   the plate reaches the item at 35%, both move linearly to the squashed state at 50%,
   hold, and rise together until 80%. Stop values were measured in the browser. */
@keyframes press  { 0%,15% { top:0; } 35% { top:18.5px; } 50%,65% { top:49.5px; } 80% { top:18.5px; } 100% { top:0; } }
@keyframes press2 { 0%,15% { top:0; } 35% { top:14.5px; } 50%,65% { top:48px; } 80% { top:14.5px; } 100% { top:0; } }
@keyframes squash { 0%,35% { transform:scaleY(1); } 50%,65% { transform:scaleY(.4); } 80%,100% { transform:scaleY(1); } }
/* 2nd stage: wide press compacting the pile of already-crushed items into a block */
.press-2 { width:140px; }
.press-2::before { left:6px; right:6px; animation:press2 2.4s linear infinite; }
.pile { position:absolute; left:14px; right:14px; bottom:0; height:56px; display:flex; flex-wrap:wrap-reverse; align-content:flex-start; gap:3px; padding:2px; transform-origin:bottom; animation:squash 2.4s linear infinite; }
.pile b { flex:1 0 28%; height:14px; border-radius:7px 7px 3px 3px; transform:rotate(-4deg); }
.pile b:nth-child(even) { transform:rotate(5deg); }
.pile .p1 { background:linear-gradient(180deg,#bfe8ff,#5fb4e0); } .pile .p2 { background:linear-gradient(180deg,#e5e5e5,#8a8a8a); }
.pile .p3 { background:linear-gradient(180deg,#9be27a,#3d7a1f); } .pile .p4 { background:linear-gradient(180deg,#ffd48a,#d08a20); }
.cr-num { margin-top:1rem; font-family:"Space Grotesk"; font-weight:700; font-size:2.4rem; color:var(--lime); }
.cr-num em { font-style:normal; font-size:.5em; margin-left:.2em; color:#fff; }
.crush p { color:rgba(255,255,255,.65); font-weight:500; }

/* Waste emptying (crane) */
.crane-art { position:relative; padding:1.5rem; border-radius:1.5rem; border:1px solid var(--line); background:radial-gradient(circle at 60% 60%,rgba(140,198,63,.14),transparent 70%),rgba(255,255,255,.02); }
.crane-art svg { width:100%; height:auto; display:block; }
.c-base,.c-mast,.c-boom { fill:#2a302a; stroke:var(--lime); stroke-width:2; }
.c-wheel { fill:#111; stroke:var(--lime); stroke-width:2; }
.c-ram { stroke:var(--lime-2); stroke-width:6; stroke-linecap:round; }
.c-chain { stroke:#cfd5cf; stroke-width:2; stroke-dasharray:3 3; }
.c-hook { fill:#cfd5cf; }
.c-boom-g { transform-origin:80px 70px; animation:boom 5s ease-in-out infinite; }
.bin rect { fill:rgba(140,198,63,.15); stroke:var(--lime); stroke-width:2; } .bin path { stroke:var(--lime); stroke-width:2; }
.bin { animation:lift 5s ease-in-out infinite; }
@keyframes boom { 0%,15% { transform:rotate(0); } 45%,70% { transform:rotate(-8deg); } 100% { transform:rotate(0); } }
@keyframes lift { 0%,15% { transform:translateY(0); } 45%,70% { transform:translateY(-34px); } 100% { transform:translateY(0); } }
.crane-badge { position:absolute; top:1.1rem; right:1.1rem; padding:.35rem .8rem; border-radius:999px; font:700 .8rem "Space Grotesk"; letter-spacing:.12em; color:var(--ink); background:var(--lime); }
.emp-list { display:grid; gap:.6rem; padding:0; list-style:none; }
@media (min-width:640px) { .emp-list { grid-template-columns:1fr 1fr; } }
.emp-list li { display:flex; gap:.6rem; align-items:center; padding:.8rem 1rem; border-radius:.9rem; border:1px solid var(--line); background:rgba(255,255,255,.03); font-weight:500; font-size:.92rem; }
.emp-list li::before { content:"✓"; flex:none; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:.75rem; font-weight:700; background:var(--lime); color:var(--ink); }

/* Features */
.feat { position:relative; padding:1.5rem 1.3rem; border-radius:1.3rem; border:1px solid var(--line); background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01)); overflow:hidden; transition:all .4s; }
.feat::before { content:""; position:absolute; width:260px; height:260px; left:var(--mx,50%); top:var(--my,50%); transform:translate(-50%,-50%); background:radial-gradient(circle,rgba(140,198,63,.22),transparent 60%); opacity:0; transition:opacity .4s; pointer-events:none; }
.feat:hover::before { opacity:1; }
.feat:hover { transform:translateY(-5px); border-color:rgba(140,198,63,.5); }
.feat .fi { width:46px; height:46px; border-radius:.9rem; display:grid; place-items:center; font-size:1.3rem; background:rgba(140,198,63,.12); border:1px solid rgba(140,198,63,.35); }
.feat h4 { margin-top:1rem; font-weight:700; line-height:1.3; } .feat p { margin-top:.4rem; font-size:.86rem; color:rgba(255,255,255,.6); }

/* Gallery + spin */
.spin { position:relative; border-radius:1.6rem; overflow:hidden; border:1px solid var(--line); cursor:grab; user-select:none; touch-action:pan-y; background:#bbb; }
.spin:active { cursor:grabbing; }
.spin img { width:100%; height:auto; display:block; pointer-events:none; }
.spin-hint { position:absolute; left:50%; bottom:1rem; transform:translateX(-50%); padding:.45rem 1rem; border-radius:999px; font-size:.82rem; font-weight:600; background:rgba(10,12,10,.75); backdrop-filter:blur(6px); white-space:nowrap; }
.spin-dots { position:absolute; top:1rem; left:50%; transform:translateX(-50%); display:flex; gap:6px; }
.spin-dots i { width:8px; height:8px; border-radius:50%; background:rgba(10,12,10,.35); transition:all .3s; }
.spin-dots i.on { background:var(--deep); width:22px; border-radius:4px; }
.g-item { position:relative; border-radius:1.1rem; overflow:hidden; cursor:zoom-in; border:1px solid var(--line); aspect-ratio:16/9; }
.g-item img { width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.8,.2,1); }
.g-item:hover img { transform:scale(1.08); }
.g-item figcaption { position:absolute; left:.7rem; bottom:.7rem; padding:.35rem .8rem; border-radius:999px; font-size:.78rem; font-weight:600; background:rgba(10,12,10,.75); backdrop-filter:blur(8px); }

/* Dimensions */
.dims { display:grid; gap:1.5rem; grid-template-columns:1fr; align-items:center; padding:2rem; border-radius:1.5rem; border:1px solid var(--line); background:rgba(255,255,255,.02); }
@media (min-width:768px) { .dims { grid-template-columns:2fr 1fr; } }
.dim-box { width:100%; }
.dim-svg { width:100%; height:auto; overflow:visible; }
.dim-svg polygon { stroke:var(--lime); stroke-width:2; stroke-linejoin:round; }
.fc-top { fill:rgba(140,198,63,.22); } .fc-front { fill:rgba(140,198,63,.08); } .fc-side { fill:rgba(140,198,63,.14); }
.dim-line line { stroke:rgba(196,240,106,.7); stroke-width:1.5; stroke-dasharray:4 4; }
.dt { fill:var(--lime-2); font:600 13px Roboto,sans-serif; }
.dim-bin { text-align:center; padding:1.4rem; border-radius:1.2rem; border:1px dashed rgba(140,198,63,.5); }
.dim-bin b { display:block; font-family:"Space Grotesk"; font-size:1.25rem; color:var(--lime); }
.dim-bin span { color:rgba(255,255,255,.65); font-size:.9rem; }

/* Specs */
.spec-table { border-radius:1.4rem; overflow:hidden; border:1px solid var(--line); background:rgba(10,12,10,.6); }
.spec-table table { width:100%; border-collapse:collapse; }
.spec-table th { text-align:left; padding:1rem 1.4rem; font-size:.78rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink); background:var(--lime); }
.spec-table td { padding:.95rem 1.4rem; border-top:1px solid var(--line); vertical-align:top; font-size:.95rem; }
.spec-table td:first-child { width:42%; color:rgba(255,255,255,.62); font-weight:500; }
.spec-table tbody tr:hover { background:rgba(140,198,63,.06); }
.spec-table tr.hl td { background:rgba(255,90,74,.08); } .spec-table tr.hl td:last-child { color:#ff9a8a; font-weight:700; }
@media (max-width:640px) { .spec-table td { display:block; width:100% !important; padding:.35rem 1rem; } .spec-table td:first-child { padding-top:1rem; } .spec-table td + td { border-top:0; padding-bottom:1rem; } }

/* CTA, contact, footer */
.cta-bg { position:absolute; inset:0; background:linear-gradient(120deg,var(--lime),var(--lime-2),var(--lime)); background-size:200% 200%; animation:shine 10s linear infinite; }
.glow-card { position:relative; border-radius:1.5rem; background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)); border:1px solid var(--line); }
.info { display:flex; gap:1rem; padding:1.2rem; border-radius:1.1rem; border:1px solid var(--line); background:rgba(255,255,255,.025); transition:border-color .3s; }
.info:hover { border-color:rgba(140,198,63,.5); }
.info-ic { flex:none; width:44px; height:44px; border-radius:.8rem; display:grid; place-items:center; background:rgba(140,198,63,.12); font-size:1.2rem; }
.info h4 { font-weight:700; margin-bottom:.2rem; } .info p,.info a { font-size:.92rem; color:rgba(255,255,255,.7); }
.info .link { display:inline-block; margin-top:.4rem; color:var(--lime); font-weight:600; }
.map { border-radius:1.2rem; overflow:hidden; border:1px solid var(--line); height:260px; }
.map iframe { width:100%; height:100%; border:0; filter:invert(.9) hue-rotate(180deg) saturate(.6); }
.field { display:grid; gap:.4rem; font-size:.85rem; color:rgba(255,255,255,.7); }
.field input,.field textarea { width:100%; padding:.85rem 1rem; border-radius:.8rem; background:rgba(10,12,10,.7); border:1px solid rgba(255,255,255,.12); color:#fff; font-size:.95rem; outline:none; transition:border-color .3s,box-shadow .3s; }
.field input:focus,.field textarea:focus { border-color:var(--lime); box-shadow:0 0 0 4px rgba(140,198,63,.16); }
.field.err input { border-color:var(--warn); }
.foot-h { font-family:"Space Grotesk"; font-weight:700; margin-bottom:1rem; }
.foot-list { display:grid; gap:.55rem; font-size:.88rem; color:rgba(255,255,255,.6); } .foot-list a:hover { color:var(--lime); }
.wa-float { position:fixed; right:1.2rem; bottom:1.2rem; z-index:60; width:60px; height:60px; border-radius:50%; display:grid; place-items:center; background:#25D366; color:#fff; box-shadow:0 10px 30px -5px rgba(37,211,102,.6); transition:transform .3s; }
.wa-float::before { content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #25D366; animation:ring 2s infinite; }
@keyframes ring { to { transform:scale(1.6); opacity:0; } }
.wa-float:hover { transform:scale(1.1); }

/* Lightbox */
.lb { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:rgba(4,6,4,.95); backdrop-filter:blur(10px); opacity:0; pointer-events:none; transition:opacity .35s; }
.lb.open { opacity:1; pointer-events:auto; }
.lb-fig { max-width:min(92vw,1300px); display:grid; gap:.8rem; justify-items:center; transform:scale(.92); transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.lb.open .lb-fig { transform:none; }
.lb-fig img { max-width:100%; max-height:80vh; border-radius:1rem; }
.lb-fig figcaption { color:rgba(255,255,255,.8); font-size:.95rem; }
.lb-btn { position:absolute; width:52px; height:52px; border-radius:50%; display:grid; place-items:center; font-size:1.6rem; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); transition:all .25s; }
.lb-btn:hover { background:var(--lime); color:var(--ink); }
.lb-close { top:1.2rem; right:1.2rem; font-size:1.1rem; }
.lb-prev { left:1.2rem; top:50%; transform:translateY(-50%); } .lb-next { right:1.2rem; top:50%; transform:translateY(-50%); }
.lb-count { position:absolute; top:1.6rem; left:1.6rem; font-size:.85rem; color:rgba(255,255,255,.6); }
@media (max-width:640px) { .lb-prev,.lb-next { top:auto; bottom:1.2rem; transform:none; } }

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
}
