/* ── THEME VARS ── */
:root {
  --red:#9B1C1C; --lred:#C0392B; --gold:#C9A84C; --navy:#1B2A4A; --dark:#0d1929;
  --bg:#F5F3EF; --bg2:#FFFFFF; --bg3:#EDEAE4;
  --txt:#1B2A4A; --txt2:#555; --txt3:#888;
  --border:rgba(27,42,74,.1);
  --card:#FFFFFF; --card2:#F5F3EF;
  --nav-bg:rgba(13,25,41,.96); --nav-border:var(--red);
  --shadow:rgba(27,42,74,.12);
}
[data-theme="dark"] {
  --bg:#0d1929; --bg2:#111f35; --bg3:#0a1422;
  --txt:#e8edf5; --txt2:#a0aec0; --txt3:#6b7a90;
  --border:rgba(255,255,255,.08);
  --card:#111f35; --card2:#0d1929;
  --nav-bg:rgba(6,12,22,.97); --nav-border:var(--red);
  --shadow:rgba(0,0,0,.3);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { font-family:'Lato',sans-serif; background:var(--bg); color:var(--txt); overflow-x:hidden; overflow-y:scroll; transition:background .4s,color .4s; }

/* ── SKIP LINK (ACCESSIBILITY) ── */
.skip-link { position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:99999;background:var(--red);color:white;padding:12px 24px;font-family:'Oswald',sans-serif;font-size:.85rem;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;border-radius:0 0 4px 0; }
.skip-link:focus { position:fixed;left:0;top:0;width:auto;height:auto;overflow:visible;outline:2px solid var(--gold);outline-offset:2px; }

/* ── PAGE TRANSITION ── */
#page-transition { position:fixed; inset:0; z-index:99999; pointer-events:none; }
.pt-bar { position:absolute; top:0; height:100%; width:25%; background:var(--red); transform:scaleY(0); transform-origin:bottom; }
.pt-bar:nth-child(1){left:0%;}
.pt-bar:nth-child(2){left:25%; background:#7a1515;}
.pt-bar:nth-child(3){left:50%; background:#6b1010;}
.pt-bar:nth-child(4){left:75%;}
@keyframes ptIn { 0%{transform:scaleY(0);}100%{transform:scaleY(1);} }
@keyframes ptOut { 0%{transform:scaleY(1);transform-origin:top;}100%{transform:scaleY(0);transform-origin:top;} }

/* ── LOADER ── */
#loader { position:fixed;inset:0;background:var(--dark);z-index:9998;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1.5rem;transition:opacity .6s,visibility .6s; }
#loader.hide { opacity:0;visibility:hidden;pointer-events:none; }
.ld-logo { font-family:'Oswald',sans-serif;font-size:3rem;font-weight:700;color:white;letter-spacing:6px;opacity:0;animation:fadeUp .7s .3s forwards; }
.ld-sub { font-family:'Oswald',sans-serif;font-size:.68rem;letter-spacing:4px;color:rgba(255,255,255,.35);text-transform:uppercase;opacity:0;animation:fadeUp .7s .55s forwards; }
.ld-bar { width:220px;height:3px;background:rgba(255,255,255,.1); }
.ld-fill { height:100%;background:var(--red);transform:scaleX(0);transform-origin:left;animation:barFill 1.6s .4s ease-out forwards; }
@keyframes barFill { to{transform:scaleX(1);} }
@keyframes fadeUp { from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from{opacity:0;}to{opacity:1;} }

/* ── PARTICLES ── */
#particles-canvas { position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.5; }

/* ── NAV ── */
nav { position:fixed;top:0;width:100%;z-index:100;background:var(--nav-bg);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;padding:0 5%;height:72px;border-bottom:3px solid var(--red);transform:translateY(-100%);animation:navDrop .6s 2s ease forwards; }
@keyframes navDrop { to{transform:translateY(0);} }
.nav-brand { text-decoration:none;display:flex;align-items:center;gap:12px; }
.nav-logo { height:56px;width:auto;display:block; }
.nav-brand-text { display:flex;flex-direction:column; }
.nav-brand-name { font-family:'Oswald',sans-serif;font-size:1.1rem;font-weight:700;color:white;letter-spacing:3px; }
.nav-brand-name span { color:var(--red); }
.nav-brand-sub { font-size:.55rem;letter-spacing:2px;color:rgba(255,255,255,.3);text-transform:uppercase; }
.nav-links { display:flex;gap:2rem;list-style:none;align-items:center; }
.nav-links a { color:rgba(255,255,255,.7);text-decoration:none;font-family:'Oswald',sans-serif;font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase;transition:color .2s,border-color .2s;padding-bottom:2px;border-bottom:2px solid transparent; }
.nav-links a:hover { color:white;border-bottom-color:var(--red); }
.nav-cta { background:var(--red)!important;color:white!important;padding:8px 22px!important;border-bottom:none!important;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);transition:background .2s!important; }
.nav-cta:hover { background:var(--lred)!important;border-bottom:none!important; }
.nav-right { display:flex;align-items:center;gap:1.2rem; }
/* Theme toggle */
.theme-toggle { width:44px;height:24px;background:rgba(255,255,255,.12);border-radius:12px;border:1px solid rgba(255,255,255,.2);cursor:pointer;position:relative;transition:background .3s; }
.theme-toggle::after { content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:white;transition:transform .3s,background .3s; }
[data-theme="light"] .theme-toggle::after { transform:translateX(20px);background:var(--gold); }
[data-theme="light"] .theme-toggle { background:rgba(201,168,76,.25); }
.theme-icon { font-size:.85rem;cursor:pointer;color:rgba(255,255,255,.6);transition:color .2s; }
.theme-icon:hover { color:var(--gold); }
/* Hamburger menu */
.hamburger { display:none;flex-direction:column;gap:5px;background:rgba(0,0,0,.3);border:none;cursor:pointer;padding:10px;border-radius:4px;z-index:101; }
.hamburger span { width:24px;height:2px;background:white;transition:all .3s; }
.hamburger.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:rotate(-45deg) translate(7px,-6px); }
.nav-links.mobile-active { display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:var(--nav-bg);padding:2rem 5%;border-bottom:3px solid var(--red);animation:slideDown .3s ease;z-index:100; }
.nav-links.mobile-active a { padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.1); }
@keyframes slideDown { from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:translateY(0);} }

/* ── HERO ── */
.hero { height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;z-index:1; }
.hero-bg { position:absolute;inset:0;background-size:cover;background-position:center;will-change:transform;pointer-events:none; }
.hero-overlay { position:absolute;inset:0;background:linear-gradient(110deg,rgba(13,25,41,.95) 38%,rgba(155,28,28,.42) 100%);pointer-events:none; }
.hero-grid { position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:70px 70px;pointer-events:none; }
.hero-content { position:relative;z-index:2;padding:0 5%;max-width:820px; }
.h-eyebrow { display:flex;align-items:center;gap:14px;margin-bottom:2rem;opacity:0;animation:fadeUp .8s 2.1s ease forwards; }
.h-eyebrow-line { width:48px;height:2px;background:var(--gold); }
.h-eyebrow-text { font-family:'Oswald',sans-serif;font-size:.68rem;letter-spacing:4px;text-transform:uppercase;color:var(--gold); }
.hero h1 { font-family:'Oswald',sans-serif;font-size:clamp(3.2rem,7vw,6.2rem);font-weight:700;line-height:.92;text-transform:uppercase;color:white;letter-spacing:-2px;opacity:0;animation:fadeUp .8s 2.25s ease forwards; }
.hero h1 .red { display:block;color:var(--red); }
.hero-desc { color:rgba(255,255,255,.62);font-size:1.04rem;line-height:1.85;margin:2rem 0 2.8rem;max-width:510px;opacity:0;animation:fadeUp .8s 2.4s ease forwards; }
.hero-btns { display:flex;gap:1rem;flex-wrap:wrap;opacity:0;animation:fadeUp .8s 2.55s ease forwards; }
.btn-p { background:var(--red);color:white;padding:15px 40px;font-family:'Oswald',sans-serif;font-size:.85rem;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;text-decoration:none;display:inline-block;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 100%,14px 100%);transition:background .25s,transform .25s,box-shadow .25s; }
.btn-p:hover { background:var(--lred);transform:translateY(-3px);box-shadow:0 14px 35px rgba(155,28,28,.4); }
.btn-o { background:transparent;color:white;padding:15px 40px;font-family:'Oswald',sans-serif;font-size:.85rem;letter-spacing:2px;text-transform:uppercase;border:2px solid rgba(255,255,255,.3);cursor:pointer;text-decoration:none;display:inline-block;transition:border-color .25s,background .25s,transform .25s; }
.btn-o:hover { border-color:white;background:rgba(255,255,255,.07);transform:translateY(-3px); }
.hero-stats { position:absolute;bottom:52px;left:5%;z-index:2;display:flex;gap:3.5rem;opacity:0;animation:fadeUp .8s 2.7s ease forwards; }
.s-num { font-family:'Oswald',sans-serif;font-size:2.6rem;font-weight:700;color:white;line-height:1; }
.s-num em { color:var(--red);font-style:normal; }
.s-lbl { font-size:.62rem;letter-spacing:2.5px;color:rgba(255,255,255,.4);text-transform:uppercase;margin-top:4px; }
.hero-scroll { position:absolute;bottom:52px;right:5%;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fadeIn 1s 3s ease forwards; }
.scroll-line { width:1px;height:50px;background:linear-gradient(to bottom,transparent,rgba(201,168,76,.7));animation:pulse 2s infinite; }
.scroll-txt { font-family:'Oswald',sans-serif;font-size:.58rem;letter-spacing:3px;color:rgba(255,255,255,.35);writing-mode:vertical-rl;text-transform:uppercase; }
@keyframes pulse { 0%,100%{opacity:.3;}50%{opacity:1;} }

/* ── ACCRED ── */
.accred { background:var(--red);display:flex;justify-content:center;flex-wrap:wrap;position:relative;z-index:1; }
.ac { display:flex;align-items:center;gap:12px;color:white;padding:16px 28px;border-right:1px solid rgba(255,255,255,.15);transition:background .2s;cursor:default; }
.ac:last-child { border-right:none; }
.ac:hover { background:rgba(0,0,0,.12); }
.ac svg { width:20px;height:20px;fill:rgba(255,255,255,.9);flex-shrink:0; }
.ac-text { font-family:'Oswald',sans-serif;font-size:.76rem;letter-spacing:1.5px;text-transform:uppercase; }
.ac-text small { display:block;font-family:'Lato',sans-serif;font-size:.65rem;opacity:.6;letter-spacing:.5px;text-transform:none;margin-top:1px; }

/* ── SECTION ── */
section { padding:110px 5%;position:relative;z-index:1; }
.lbl { font-family:'Oswald',sans-serif;font-size:.66rem;letter-spacing:4px;text-transform:uppercase;color:var(--red);margin-bottom:.8rem;display:flex;align-items:center;gap:12px; }
.lbl::before { content:'';display:block;width:26px;height:2px;background:var(--red); }
.lbl.gold { color:var(--gold); }
.lbl.gold::before { background:var(--gold); }
.lbl.center { justify-content:center; }
.ttl { font-family:'Oswald',sans-serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:700;text-transform:uppercase;line-height:1;letter-spacing:-1px;color:var(--txt); }
.reveal { opacity:0;transform:translateY(38px);transition:opacity .7s ease,transform .7s ease; }
.rl { opacity:0;transform:translateX(-38px);transition:opacity .7s ease,transform .7s ease; }
.rr { opacity:0;transform:translateX(38px);transition:opacity .7s ease,transform .7s ease; }
.visible { opacity:1!important;transform:none!important; }

/* ── ABOUT ── */
#about { background:var(--bg2); }
.about-g { display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1200px;margin:0 auto; }
.img-stack { position:relative;height:490px; }
.img-main { position:absolute;top:0;left:0;width:78%;height:80%;object-fit:cover;display:block; }
.img-acc { position:absolute;bottom:0;right:0;width:56%;height:52%;object-fit:cover;display:block;border:6px solid var(--bg2);box-shadow:0 20px 50px var(--shadow); }
.yr-badge { position:absolute;top:46%;left:72%;transform:translate(-50%,-50%);background:var(--red);color:white;padding:1.4rem;text-align:center;z-index:3;box-shadow:0 10px 30px rgba(155,28,28,.4); }
.yr-num { font-family:'Oswald',sans-serif;font-size:1.9rem;font-weight:700;line-height:1; }
.yr-sub { font-size:.6rem;letter-spacing:2px;text-transform:uppercase;opacity:.75; }
.about-txt .ttl { margin-bottom:1.5rem; }
.about-txt p { color:var(--txt2);line-height:1.9;margin-bottom:1.1rem;font-size:1rem; }
.badges { display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem; }
.bdg { background:var(--bg3);border-left:3px solid var(--red);padding:8px 15px;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:1.5px;color:var(--txt);text-transform:uppercase;transition:background .2s; }

/* ── STATS DASHBOARD ── */
#stats { background:var(--dark);padding:90px 5%;position:relative;overflow:hidden; }
.stats-bg { position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 40px,rgba(155,28,28,.04) 40px,rgba(155,28,28,.04) 41px); }
.stats-head { text-align:center;margin-bottom:4rem; }
.stats-head .lbl { justify-content:center; }
.stats-head .ttl { color:white; }
.stats-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:2px;max-width:1100px;margin:0 auto; }
.stat-card { background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);padding:2.5rem 2rem;text-align:center;position:relative;overflow:hidden;transition:background .3s,transform .3s; }
.stat-card:hover { background:rgba(255,255,255,.08);transform:translateY(-5px); }
.stat-card::after { content:'';position:absolute;bottom:0;left:0;height:3px;width:0;background:var(--red);transition:width .5s ease; }
.stat-card.visible::after { width:100%; }
.stat-icon { width:52px;height:52px;background:rgba(155,28,28,.2);border:1px solid rgba(155,28,28,.4);display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem; }
.stat-icon svg { width:22px;height:22px;fill:var(--red); }
.stat-big { font-family:'Oswald',sans-serif;font-size:3.2rem;font-weight:700;color:white;line-height:1;margin-bottom:.3rem; }
.stat-big em { color:var(--red);font-style:normal; }
.stat-name { font-family:'Oswald',sans-serif;font-size:.75rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45); }
/* Mini bar chart per stat */
.stat-bar { margin-top:1.2rem;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden; }
.stat-bar-fill { height:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 1.2s .3s ease; }
.stat-card.visible .stat-bar-fill { transform:scaleX(var(--w, 1)); }
/* Custom widths for each stat bar */
.stats-grid .stat-card:nth-child(1) .stat-bar-fill { --w: 1; }
.stats-grid .stat-card:nth-child(2) .stat-bar-fill { --w: 0.8; }
.stats-grid .stat-card:nth-child(3) .stat-bar-fill { --w: 0.6; }
.stats-grid .stat-card:nth-child(4) .stat-bar-fill { --w: 0.98; }

/* ── SERVICES ── */
#services { background:var(--bg3); }
.svc-head { text-align:center;margin-bottom:4rem; }
.svc-head .lbl { justify-content:center; }
.svc-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:2px;max-width:1320px;margin:0 auto; }
.sc { background:var(--card);overflow:hidden;transition:transform .35s,box-shadow .35s;position:relative; }
.sc:hover { transform:translateY(-8px);box-shadow:0 22px 55px var(--shadow); }
.sc-iw { overflow:hidden;position:relative; }
.sc-img { width:100%;height:155px;object-fit:cover;display:block;filter:grayscale(25%);transition:filter .4s,transform .4s; }
.sc:hover .sc-img { filter:grayscale(0%);transform:scale(1.06); }
.sc-ov { position:absolute;inset:0;background:linear-gradient(to top,rgba(27,42,74,.65),transparent);opacity:0;transition:opacity .35s; }
.sc:hover .sc-ov { opacity:1; }
.sc-body { padding:1.5rem; }
.sc-n { font-family:'Oswald',sans-serif;font-size:2.6rem;font-weight:700;color:var(--border);line-height:1;margin-bottom:.5rem; }
.sc-ir { display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem; }
.sc-icon { width:36px;height:36px;background:var(--red);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.sc-icon svg { width:17px;height:17px;fill:white; }
.sc h3 { font-family:'Oswald',sans-serif;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;color:var(--txt); }
.sc p { color:var(--txt2);font-size:.83rem;line-height:1.7; }
.sc-btn { display:inline-flex;align-items:center;gap:.5rem;color:var(--red);font-family:'Oswald',sans-serif;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;text-decoration:none;margin-top:.85rem;padding:.5rem 0;transition:gap .2s,color .2s; }
.sc-btn:hover { gap:.8rem;color:var(--gold); }
.sc-btn svg { width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;transition:transform .2s; }
.sc-btn:hover svg { transform:translateX(4px); }
.sc-bar { height:3px;background:linear-gradient(to right,var(--red),transparent);transform:scaleX(0);transform-origin:left;transition:transform .35s; }
.sc:hover .sc-bar { transform:scaleX(1); }

/* ── FEATURE STRIP ── */
.feat { background:var(--navy);padding:90px 5%;position:relative;z-index:1; }
.feat-inner { display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1200px;margin:0 auto; }
.mosaic { display:grid;grid-template-columns:1fr 1fr;grid-template-rows:200px 200px;gap:5px; }
.mos-img { object-fit:cover;width:100%;height:100%;display:block; }
.mos-wide { grid-column:span 2; }
.feat-txt .lbl::before { background:var(--gold); }
.feat-txt .ttl { color:white;margin-bottom:1.5rem; }
.feat-txt>p { color:rgba(255,255,255,.6);line-height:1.85;margin-bottom:2rem; }
.feat-items { display:flex;flex-direction:column;gap:1.1rem; }
.fi { display:flex;gap:1rem;align-items:flex-start; }
.fi-dot { width:7px;height:7px;background:var(--red);margin-top:8px;flex-shrink:0; }
.fi h4 { font-family:'Oswald',sans-serif;font-size:.88rem;text-transform:uppercase;letter-spacing:1px;color:white;margin-bottom:3px; }
.fi p { color:rgba(255,255,255,.5);font-size:.83rem;line-height:1.6; }

/* ── TESTIMONIALS ── */
#testimonials { background:var(--bg2);padding:110px 5%; }
.test-head { text-align:center;margin-bottom:4rem; }
.test-head .lbl { justify-content:center; }
.test-carousel { max-width:900px;margin:0 auto;position:relative; }
.test-track { display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1);will-change:transform; }
.test-slide { min-width:100%;padding:0 10px; }
.test-card { background:var(--card2);border:1px solid var(--border);padding:3rem;position:relative; }
.test-card::before { content:'\201C';font-family:'Oswald',sans-serif;font-size:5rem;color:var(--red);opacity:.25;line-height:.7;position:absolute;top:1.5rem;left:2rem; }
.test-stars { display:flex;gap:4px;margin-bottom:1.2rem; }
.test-stars svg { width:16px;height:16px;fill:var(--gold); }
.test-text { font-size:1.05rem;line-height:1.85;color:var(--txt2);font-style:italic;margin-bottom:1.5rem;padding-left:2rem; }
.test-author { display:flex;align-items:center;gap:1rem; }
.test-avatar { width:48px;height:48px;background:var(--red);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-size:1.2rem;font-weight:700;color:white;flex-shrink:0; }
.test-name { font-family:'Oswald',sans-serif;font-size:.95rem;text-transform:uppercase;letter-spacing:1px;color:var(--txt); }
.test-role { font-size:.78rem;color:var(--txt3); }
.test-controls { display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:2.5rem; }
.test-btn { width:40px;height:40px;background:var(--bg3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,border-color .2s; }
.test-btn:hover { background:var(--red);border-color:var(--red); }
.test-btn svg { width:16px;height:16px;fill:var(--txt);transition:fill .2s; }
.test-btn:hover svg { fill:white; }
.test-dots { display:flex;gap:8px;align-items:center; }
.test-dot { width:8px;height:8px;background:var(--border);cursor:pointer;transition:background .2s,width .2s;border-radius:4px; }
.test-dot.active { background:var(--red);width:20px; }

/* ── VISION ── */
#vision { background:var(--dark);padding:110px 5%; }
.vm-wrap { max-width:1100px;margin:0 auto; }
.vm-head { text-align:center;margin-bottom:4rem; }
.vm-head .ttl { color:white; }
.vm-g { display:grid;grid-template-columns:1fr 1fr;gap:3px; }
.vmc { padding:3.5rem;position:relative;overflow:hidden; }
.vmc.vis { background:var(--red); }
.vmc.mis { background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08); }
.vmc-bg { position:absolute;top:-20px;right:-10px;font-family:'Oswald',sans-serif;font-size:8rem;font-weight:700;color:rgba(255,255,255,.05);line-height:1;pointer-events:none;user-select:none; }
.vmc h3 { font-family:'Oswald',sans-serif;font-size:1.4rem;text-transform:uppercase;letter-spacing:2px;color:white;margin-bottom:1.2rem;display:flex;align-items:center;gap:12px;position:relative; }
.vmc h3::before { content:'';width:18px;height:2px;background:rgba(255,255,255,.45);display:block;flex-shrink:0; }
.vmc p { color:rgba(255,255,255,.8);line-height:1.9;font-size:.96rem;position:relative; }

/* ── WHY ── */
#why { background:var(--bg2); }
.why-g { display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;max-width:1100px;margin:0 auto; }
.why-txt .ttl { margin-bottom:2.5rem; }
.wi { display:flex;gap:1.4rem;align-items:flex-start;padding:1.4rem 0;border-bottom:1px solid var(--border); }
.wi:last-child { border-bottom:none; }
.wi-n { font-family:'Oswald',sans-serif;font-size:2.4rem;font-weight:700;color:var(--border);line-height:1;min-width:48px; }
.wi-b h4 { font-family:'Oswald',sans-serif;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px; }
.wi-b p { color:var(--txt2);font-size:.86rem;line-height:1.7; }
.why-vis { background:var(--navy);position:relative;overflow:hidden;min-height:420px;padding:3rem; }
.why-vis-img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.17;display:block; }
.why-vis-pat { position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 18px,rgba(155,28,28,.07) 18px,rgba(155,28,28,.07) 19px); }
.why-vis-c { position:relative;z-index:1; }
.qmark { font-family:'Oswald',sans-serif;font-size:6rem;color:rgba(255,255,255,.09);line-height:.7;margin-bottom:.8rem; }
.quote { font-family:'Oswald',sans-serif;font-size:1.55rem;font-weight:500;color:white;line-height:1.35;margin-bottom:1.5rem; }
.quote em { color:var(--red);font-style:normal; }
.quote-au { font-size:.75rem;letter-spacing:2px;color:rgba(255,255,255,.38);text-transform:uppercase; }
.tags { display:flex;flex-wrap:wrap;gap:7px;margin-top:2rem; }
.tag { font-family:'Oswald',sans-serif;font-size:.65rem;letter-spacing:1px;text-transform:uppercase;padding:5px 13px;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);transition:border-color .2s,color .2s; }
.tag:hover { border-color:rgba(255,255,255,.45);color:rgba(255,255,255,.8); }

/* ── GALLERY ── */
#gallery { background:var(--bg3);padding:110px 5%; }
.gal-head { text-align:center;margin-bottom:4rem; }
.gal-head .lbl { justify-content:center; }
.gal-grid { display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto;gap:5px;max-width:1320px;margin:0 auto; }
.gi { overflow:hidden;position:relative;cursor:pointer; }
.gi.w2 { grid-column:span 2; }
.gi.t2 { grid-row:span 2; }
.gi-img { width:100%;height:210px;object-fit:cover;display:block;transition:transform .5s,filter .5s;filter:brightness(.88); }
.gi.t2 .gi-img { height:100%; }
.gi:hover .gi-img { transform:scale(1.06);filter:brightness(1.02); }
.gi-ov { position:absolute;inset:0;background:linear-gradient(to top,rgba(155,28,28,.75),transparent);opacity:0;transition:opacity .4s;display:flex;align-items:flex-end;padding:1.4rem; }
.gi:hover .gi-ov { opacity:1; }
.gi-lbl { font-family:'Oswald',sans-serif;font-size:.76rem;letter-spacing:2px;text-transform:uppercase;color:white; }

/* ── QUOTE FORM ── */
#quote { background:var(--dark);padding:110px 5%; }
.quote-inner { max-width:900px;margin:0 auto; }
.quote-head { text-align:center;margin-bottom:4rem; }
.quote-head .ttl { color:white; }
.quote-grid { display:grid;grid-template-columns:1fr 1fr;gap:1.5rem; }
.quote-grid .full { grid-column:span 2; }
.form-group { display:flex;flex-direction:column;gap:.5rem; }
.form-label { font-family:'Oswald',sans-serif;font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45); }
.form-input, .form-select, .form-textarea { background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:white;padding:14px 16px;font-family:'Lato',sans-serif;font-size:.9rem;width:100%;transition:border-color .2s,background .2s;outline:none; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--red);background:rgba(255,255,255,.08); }
.form-input::placeholder, .form-textarea::placeholder { color:rgba(255,255,255,.25); }
.form-select { cursor:pointer; }
.form-select option { background:var(--dark);color:white; }
.form-textarea { resize:vertical;min-height:120px; }
.form-submit { background:var(--red);color:white;padding:16px 50px;font-family:'Oswald',sans-serif;font-size:.9rem;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 100%,14px 100%);transition:background .25s,transform .25s,box-shadow .25s;width:100%; }
.form-submit:hover { background:var(--lred);transform:translateY(-2px);box-shadow:0 12px 30px rgba(155,28,28,.4); }
.form-submit:disabled { opacity:.6;cursor:not-allowed;transform:none;box-shadow:none; }
.form-success { display:none;text-align:center;padding:3rem;background:rgba(155,28,28,.1);border:1px solid rgba(155,28,28,.3); }
.form-success svg { width:48px;height:48px;fill:var(--red);margin-bottom:1rem; }
.form-success h3 { font-family:'Oswald',sans-serif;font-size:1.5rem;text-transform:uppercase;letter-spacing:2px;color:white;margin-bottom:.5rem; }
.form-success p { color:rgba(255,255,255,.6);font-size:.9rem; }

/* ── CLIENTS ── */
#clients { background:var(--dark);padding:110px 5%; }
.cl-inner { max-width:880px;margin:0 auto;text-align:center; }
.cl-head { margin-bottom:4rem; }
.cl-head .ttl { color:white; }
.cl-g { display:grid;grid-template-columns:1fr;gap:3px;max-width:500px;margin:0 auto; }
.cp { padding:3rem;text-align:center;position:relative;overflow:hidden; }
.cp.pta { background:var(--red); }
.cp.jhb { background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08); }
.cp-pct { font-family:'Oswald',sans-serif;font-size:4.5rem;font-weight:700;color:white;line-height:1;margin-bottom:.5rem; }
.cp-city { font-family:'Oswald',sans-serif;font-size:1.05rem;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:.4rem; }
.cp-desc { font-size:.83rem;color:rgba(255,255,255,.4); }
.cp-line { position:absolute;bottom:0;left:0;height:4px;background:rgba(255,255,255,.25); }
.cp.pta .cp-line { width:60%; }
.cp.jhb .cp-line { width:40%;background:var(--red); }

/* ── CONTACT ── */
#contact { background:var(--bg);padding:110px 5%; }
.ct-inner { max-width:1000px;margin:0 auto; }
.ct-head { text-align:center;margin-bottom:4rem; }
.ct-g { display:flex;justify-content:center;gap:1.5rem;margin-bottom:3rem;flex-wrap:wrap; }
.ctc { background:var(--card);border:1px solid var(--border);padding:2.5rem;text-align:center;transition:background .25s,transform .25s; }
.ctc:hover { background:var(--card2);transform:translateY(-5px); }
.ct-icon { width:54px;height:54px;background:var(--red);display:flex;align-items:center;justify-content:center;margin:0 auto 1.4rem; }
.ct-icon svg { width:22px;height:22px;fill:white; }
.ctc h4 { font-family:'Oswald',sans-serif;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--txt3);margin-bottom:.55rem; }
.ctc a,.ctc p { color:var(--txt);font-size:.93rem;text-decoration:none;line-height:1.6;transition:color .2s; }
.ctc a:hover { color:var(--red); }
.socials { display:flex;justify-content:center;gap:.85rem;padding-top:1rem; }
.soc { width:50px;height:50px;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .25s,transform .25s,border-color .25s;position:relative; }
.soc::after { content:attr(title);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:white;font-size:.58rem;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;font-family:'Oswald',sans-serif; }
.soc:hover::after { opacity:1; }
.soc:hover { background:var(--red);border-color:var(--red);transform:translateY(-5px); }
.soc svg { width:19px;height:19px;fill:var(--txt2);transition:fill .25s; }
.soc:hover svg { fill:white; }

/* ── FOOTER ── */
footer { background:var(--dark);padding:60px 5% 30px;border-top:3px solid var(--red);position:relative;z-index:1; }
footer .container { max-width:1400px;margin:0 auto;padding:0; }
.footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.08); }
.footer-col h4 { font-family:'Oswald',sans-serif;font-size:.95rem;font-weight:700;color:white;letter-spacing:2px;text-transform:uppercase;margin-bottom:1.5rem;position:relative;padding-bottom:.75rem; }
.footer-col h4::after { content:'';position:absolute;bottom:0;left:0;width:40px;height:2px;background:var(--red); }
.footer-col p { color:rgba(255,255,255,.5);font-size:.9rem;line-height:1.7;margin-bottom:1.25rem; }
.footer-col ul { list-style:none;padding:0;margin:0; }
.footer-col ul li { color:rgba(255,255,255,.5);font-size:.9rem;line-height:2;padding-bottom:.5rem; }
.footer-col ul li:last-child { padding-bottom:0; }
.footer-col ul a { color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s,padding-left .2s; }
.footer-col ul a:hover { color:var(--red);padding-left:6px; }
.footer-col .contact-list li { display:flex;align-items:center;gap:10px; }
.footer-badges { display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem; }
.badge { background:rgba(255,255,255,.08);color:rgba(255,255,255,.4);font-family:'Oswald',sans-serif;font-size:.7rem;padding:6px 12px;border-radius:4px;letter-spacing:1px; }
.footer-bottom { text-align:center;padding-top:30px; }
.footer-bottom p { color:rgba(255,255,255,.22);font-size:.78rem;font-family:'Oswald',sans-serif;letter-spacing:1px; }

/* ── FLOATING WHATSAPP ── */
#wa-btn { position:fixed;bottom:100px;right:24px;z-index:500;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 4px 20px rgba(37,211,102,.4);animation:waPulse 2.5s infinite;transition:transform .2s,box-shadow .2s; }
#wa-btn:hover { transform:scale(1.1);box-shadow:0 6px 28px rgba(37,211,102,.6); }
#wa-btn svg { width:28px;height:28px;fill:white; }
#wa-btn .wa-tooltip { position:absolute;right:calc(100% + 12px);background:#25D366;color:white;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none; }
#wa-btn:hover .wa-tooltip { opacity:1; }
@keyframes waPulse { 0%,100%{box-shadow:0 4px 20px rgba(37,211,102,.4);}50%{box-shadow:0 4px 30px rgba(37,211,102,.8),0 0 0 8px rgba(37,211,102,.15);} }

/* ── AI CHAT ── */
#chat-btn { position:fixed !important; bottom:28px !important; right:24px !important; z-index:100000 !important; width:56px;height:56px;background:var(--red);border-radius:50%;display:flex !important;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px rgba(155,28,28,.5);transition:transform .2s,background .2s; pointer-events: auto !important; }
#chat-btn:hover { transform:scale(1.1);background:var(--lred); }
#chat-btn svg { width:24px;height:24px;fill:white;transition:opacity .2s; }
#chat-btn .chat-close { display:none; }
#chat-btn.open .chat-open { display:none; }
#chat-btn.open .chat-close { display:block; }
#chat-window { position:fixed !important; bottom:96px !important; right:24px !important; width:360px;height:520px;background:var(--dark);border:1px solid rgba(155,28,28,.4);display:flex !important;flex-direction:column;z-index:99998 !important;opacity:0;pointer-events:none;transform:translateY(20px) scale(.95);transform-origin:bottom right;transition:opacity .3s,transform .3s;box-shadow:0 20px 60px rgba(0,0,0,.5); }
#chat-window.open { opacity:1 !important; pointer-events:all !important; transform:translateY(0) scale(1) !important; }
.chat-header { background:var(--red);padding:1rem 1.2rem;display:flex;align-items:center;gap:.75rem; }
.chat-avatar { width:36px;height:36px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center; }
.chat-avatar svg { width:18px;height:18px;fill:white; }
.chat-header-text h4 { font-family:'Oswald',sans-serif;font-size:.9rem;letter-spacing:1px;text-transform:uppercase;color:white; }
.chat-header-text p { font-size:.68rem;color:rgba(255,255,255,.6); }
.chat-status { width:8px;height:8px;background:#4ade80;border-radius:50%;margin-left:auto;flex-shrink:0;box-shadow:0 0 6px rgba(74,222,128,.6); }
.chat-messages { flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem; }
.chat-messages::-webkit-scrollbar { width:4px; }
.chat-messages::-webkit-scrollbar-track { background:transparent; }
.chat-messages::-webkit-scrollbar-thumb { background:rgba(255,255,255,.15);border-radius:2px; }
.msg { max-width:85%;padding:.7rem 1rem;font-size:.85rem;line-height:1.55;animation:msgIn .3s ease; }
.msg.bot { background:rgba(255,255,255,.07);color:rgba(255,255,255,.85);border-radius:0 8px 8px 8px;align-self:flex-start;border-left:2px solid var(--red); }
.msg.user { background:var(--red);color:white;border-radius:8px 0 8px 8px;align-self:flex-end; }
.msg.typing { align-self:flex-start; }
.typing-dots { display:flex;gap:4px;padding:.7rem 1rem;background:rgba(255,255,255,.07);border-left:2px solid var(--red);width:fit-content; }
.typing-dots span { width:7px;height:7px;background:rgba(255,255,255,.4);border-radius:50%;animation:typingBounce 1.2s infinite; }
.typing-dots span:nth-child(2) { animation-delay:.2s; }
.typing-dots span:nth-child(3) { animation-delay:.4s; }
@keyframes typingBounce { 0%,80%,100%{transform:scale(0.8);opacity:.4;}40%{transform:scale(1.2);opacity:1;} }
@keyframes msgIn { from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);} }
.chat-quick { display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem 1rem; }
.quick-btn { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7);font-size:.72rem;padding:5px 11px;cursor:pointer;font-family:'Lato',sans-serif;transition:background .2s,color .2s; }
.quick-btn:hover { background:rgba(155,28,28,.3);border-color:var(--red);color:white; }
.chat-input-row { display:flex;border-top:1px solid rgba(255,255,255,.08);padding:.75rem; }
.chat-input { flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:white;padding:.6rem .9rem;font-size:.85rem;font-family:'Lato',sans-serif;outline:none;transition:border-color .2s; }
.chat-input:focus { border-color:var(--red); }
.chat-input::placeholder { color:rgba(255,255,255,.25); }
.chat-send { width:40px;background:var(--red);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s; }
.chat-send:hover { background:var(--lred); }
.chat-send svg { width:16px;height:16px;fill:white; }

/* ── UTILITY CLASSES ── */
.text-white { color: white !important; }
.text-white-60 { color: rgba(255,255,255,.6) !important; }
.lh-185 { line-height: 1.85 !important; }
.mb-2rem { margin-bottom: 2rem !important; }

/* ── RESPONSIVE ── */
@media(max-width:1024px) {
  .svc-grid { grid-template-columns:repeat(2,1fr); }
  .gal-grid { grid-template-columns:repeat(2,1fr); }
  .gi.w2 { grid-column:span 1; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:768px) {
  .hamburger { display:flex !important; visibility:visible !important; opacity:1 !important; order:3; }
  .nav-links { display:none !important; }
  .nav-links.mobile-active { display:flex !important; visibility:visible !important; }
  .nav-right { gap:.8rem; position:relative; z-index:101; order:2; }
  .nav-brand { order:1; }
  .theme-icon { display:none !important; }
  .theme-toggle { display:none !important; }
  nav { padding:0 4%; height:64px; z-index:1000; position:fixed; display:flex; align-items:center; justify-content:space-between; }
  .nav-brand-name { font-size:.95rem; }
  .nav-brand-sub { font-size:.5rem; }
  .nav-logo { height:48px; }
  .hero { height:100vh; }
  .hero h1 { font-size:2.2rem; }
  .hero-desc { font-size:.9rem; max-width:100%; margin:1.5rem 0 2rem; }
  .hero-btns { flex-direction:column; }
  .btn-p, .btn-o { width:100%; text-align:center; }
  .hero-stats { position:relative; bottom:auto; left:auto; flex-wrap:wrap; justify-content:center; gap:1.5rem; padding:2rem 0; }
  .hero-scroll { display:none; }
  .accred { flex-wrap:wrap; }
  .ac { border-right:none; border-bottom:1px solid rgba(255,255,255,.15); width:50%; justify-content:center; }
  .about-g, .feat-inner, .vm-g, .why-g, .cl-g, .quote-grid { grid-template-columns:1fr; }
  .about-g { gap:3rem; }
  .ct-g { flex-direction:column; align-items:center; }
  .ctc { width:100%; max-width:400px; }
  .quote-grid .full { grid-column:span 1; }
  .img-stack { height:320px; }
  .img-main { width:85%; height:75%; }
  .img-acc { width:60%; height:45%; }
  .yr-badge { left:75%; padding:1rem; }
  .yr-num { font-size:1.4rem; }
  .stats-grid { grid-template-columns:1fr; }
  .svc-grid { grid-template-columns:1fr; }
  .gal-grid { grid-template-columns:1fr; }
  .gi.t2, .gi.w2 { grid-column:span 1; grid-row:span 1; }
  .test-card { padding:2rem 1.5rem; }
  .feat-items { gap:.8rem; }
  .footer-grid { grid-template-columns:1fr 1fr;gap:2rem; }
  #chat-window { width:calc(100% - 32px); right:16px; bottom:80px; height:480px; }
  #chat-btn, #wa-btn { position:fixed !important; bottom:20px; right:16px; width:50px; height:50px; z-index:100000 !important; display:flex !important; visibility:visible !important; opacity:1 !important; }
  #wa-btn { bottom:80px !important; }
  #chat-btn svg, #wa-btn svg { width:24px; height:24px; }
  section { padding:80px 4%; }
  .ttl { font-size:1.6rem; }
  .nav-links.mobile-active { top:64px; }
}
@media(max-width:480px) {
  .hero h1 { font-size:1.8rem; }
  .hero-desc { font-size:.85rem; }
  .s-num { font-size:1.8rem; }
  .ac { width:100%; }
  .img-stack { height:280px; }
  .yr-badge { display:none; }
  .stat-big { font-size:2.4rem; }
  .sc-n { font-size:2rem; }
  .footer-grid { grid-template-columns:1fr;gap:1.5rem; }
  #chat-window { width:calc(100% - 24px); right:12px; bottom:70px; height:420px; }
  #chat-btn, #wa-btn { width:48px; height:48px; bottom:16px; right:12px; z-index:100000 !important; }
  #wa-btn { bottom:72px; }
}