/* ============================================================
   FUELVIA — styles.css
   ============================================================ */

/* ── FONTS ─────────────────────────────────────────────── */
@font-face { font-family:'Nohemi'; src:url('/static/fonts/Nohemi-Light.ttf') format('truetype'); font-weight:300; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('/static/fonts/Nohemi-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('/static/fonts/Nohemi-Medium.ttf') format('truetype'); font-weight:500; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('/static/fonts/Nohemi-SemiBold.ttf') format('truetype'); font-weight:600; font-display:swap; }
@font-face { font-family:'Nohemi'; src:url('/static/fonts/Nohemi-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }

/* ── RESET & VARIABLES ──────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:auto; }

:root {
  --accent:       #2d7dff;
  --accent2:      #4fa3ff;
  --text:         #e8eaf2;
  --muted:        #6b7394;
  --glass-bg:     rgba(255,255,255,0.03);
  --glass-border: rgba(255,255,255,0.08);
  --font-display: 'Nohemi', sans-serif;
  --font-body:    'Nohemi', sans-serif;
  --font-ui:      'Lato', sans-serif;
}

/* ── BASE ───────────────────────────────────────────────── */
body {
  background:#000;
  color:var(--text);
  font-family:var(--font-body);
  overflow-x:hidden;
}
section { position:relative; background:#000; }
.container { max-width:1200px; margin:0 auto; padding:0 60px; }
.divider { height:1px; background:rgba(255, 255, 255, 0); margin:0 5%; }

/* ── CUSTOM CURSOR ──────────────────────────────────────── */
.custom-cursor {
  width:18px; height:18px;
  background:#fff;
  border-radius:50%;
  position:fixed;
  pointer-events:none;
  z-index:99999;
  box-shadow:0 0 10px #fff;
  opacity:0;
  transition:opacity 0.3s ease;
}

/* ── SCROLL REVEAL ──────────────────────────────────────── */
.section-reveal {
  opacity:0;
  transform:translateY(40px);
  filter:blur(8px);
  transition:opacity 0.8s ease, transform 0.8s ease, filter 0.8s ease;
}
.section-reveal.revealed { opacity:1; transform:translateY(0); filter:blur(0); }

.rv { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.rv.vis { opacity:1; transform:translateY(0); }
.rv.d1 { transition-delay:.1s; }
.rv.d2 { transition-delay:.2s; }
.rv.d3 { transition-delay:.3s; }
.rv.d4 { transition-delay:.4s; }
/* ── Schedule card glow animation ── */
@keyframes schBoxGlow {
  0%   { box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), 0 40px 100px rgba(0,0,0,0.45); border-color:rgba(255,255,255,0.22); }
  25%  { box-shadow:inset 0 1px 0 rgba(255,255,255,0.18), 0 0 80px rgba(255,255,255,0.25), 0 0 160px rgba(255,255,255,0.10); border-color:rgba(255,255,255,0.85); }
  60%  { box-shadow:inset 0 1px 0 rgba(255,255,255,0.10), 0 0 50px rgba(255,255,255,0.12); border-color:rgba(255,255,255,0.50); }
  100% { box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), 0 40px 100px rgba(0,0,0,0.45); border-color:rgba(255,255,255,0.22); }
}
.sch-box-pop { animation:schBoxGlow 1.6s ease forwards; }

/* ── SITE INTRO ─────────────────────────────────────────── */
#site-intro {
  position:fixed; inset:0; z-index:99999;
  background:#000;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; overflow:hidden;
  transition:opacity 0.9s ease, transform 0.9s cubic-bezier(0.22,1,0.36,1);
}
#site-intro.si-leaving { opacity:0; transform:scale(1.04); }

.si-inner { display:flex; flex-direction:column; align-items:center; gap:24px; }
.si-logo { width:180px; height:180px; object-fit:contain; animation:si-breathe 3s ease-in-out infinite; }
@keyframes si-breathe {
  0%,100% { transform:scale(1); opacity:0.85; }
  50%      { transform:scale(1.07); opacity:1; }
}
.si-bar {
  position:absolute; bottom:0; left:0;
  height:2px; background:rgba(255,255,255,0.22);
  width:0; animation:si-progress 3s linear forwards;
}
@keyframes si-progress { to { width:100%; } }

/* ── TOP BAR ────────────────────────────────────────────── */
.top-bar {
  position:fixed; top:30px; left:50%; transform:translateX(-50%);
  width:min(500px,72vw); z-index:1000;
  opacity:1; pointer-events:auto;
  transition:opacity 0.4s ease;
  backdrop-filter:blur(72px) saturate(220%) brightness(1.18) contrast(0.92);
  -webkit-backdrop-filter:blur(72px) saturate(220%) brightness(1.18) contrast(0.92);
  border-radius:22px;
  border-top:2px solid rgba(255,255,255,0.72);
  border-right:1px solid rgba(255,255,255,0.22);
  border-bottom:1px solid rgba(255,255,255,0.10);
  border-left:1px solid rgba(255,255,255,0.22);
  box-shadow:inset 0 2px 10px rgba(255,255,255,0.20), 0 8px 24px rgba(0,0,0,0.40), 0 32px 64px rgba(0,0,0,0.20);
  overflow:hidden;
}
.tb-inner {
  display:flex; align-items:center;
  justify-content:space-between; gap:20px;
  padding:2px 16px 2px 8px;
}
.tb-logo { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.tb-logo img { height:60px; width:60px; object-fit:contain; }
.tb-actions { display:flex; align-items:center; gap:10px; }

.tb-cta,
.tb-menu-btn {
  position:relative; overflow:hidden; isolation:isolate;
  display:inline-flex; align-items:center; justify-content:center;
  line-height:1; padding:10px 15px; border-radius:10px;
  background:transparent; border:1px solid rgba(143,143,143,0.40);
  color:rgba(255,255,255,0.90); font-family:var(--font-ui);
  font-size:13.5px; font-weight:500; letter-spacing:0.03em;
  text-decoration:none; cursor:pointer;
  transition:padding 0.28s cubic-bezier(0.34,1.4,0.64,1), background 0.2s, border-color 0.2s;
}
.tb-cta::after, .tb-menu-btn::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,0.55) 50%,transparent 80%);
  transform:translateX(-130%);
  animation:tb-shine-loop 3.5s ease-in-out infinite;
  pointer-events:none;
}
.tb-menu-btn::after { animation-delay:1.2s; }
.tb-cta:hover, .tb-menu-btn:hover {
  padding:11px 30px;
  background:rgba(255,255,255,0.06);
  border-color:rgba(255,255,255,0.28);
}
.tb-cta:hover::after, .tb-menu-btn:hover::after { animation:tb-shine-fast 0.75s ease forwards; }

@keyframes tb-shine-loop { 0% { transform:translateX(-130%); } 55%,100% { transform:translateX(130%); } }
@keyframes tb-shine-fast { 0% { transform:translateX(-130%); } 100% { transform:translateX(130%); } }

.tb-menu-label { display:block; line-height:1; }

/* Hamburger lines — hidden on desktop, shown on mobile */
.tb-hamburger {
  display:none;
  flex-direction:column;
  gap:4px;
  pointer-events:none;
}
.tb-hamburger span {
  display:block; width:18px; height:2px;
  background:rgba(255,255,255,0.90); border-radius:2px;
  transition:transform 0.3s, opacity 0.3s;
}

/* ── DROPDOWN MENU ──────────────────────────────────────── */
.nav-dropdown {
  position:fixed; top:80px; right:calc(50% - 246px);
  backdrop-filter:blur(72px) saturate(220%) brightness(1.18) contrast(0.92);
  -webkit-backdrop-filter:blur(72px) saturate(220%) brightness(1.18) contrast(0.92);
  overflow:hidden;
  border-top:2px solid rgba(255,255,255,0.72);
  border-right:2px solid rgba(255,255,255,0.72);
  border-bottom:1px solid rgba(255,255,255,0.12);
  border-left:2px solid rgba(255,255,255,0.72);
  border-radius:18px; padding:8px; min-width:220px; z-index:2000;
  transform-origin:top right;
  transform:scale(0.88) translateY(-10px);
  opacity:0; pointer-events:none;
  box-shadow:inset 0 2px 10px rgba(255,255,255,0.20), 0 8px 24px rgba(0,0,0,0.40), 0 32px 64px rgba(0,0,0,0.20);
  transition:transform 0.26s cubic-bezier(0.34,1.4,0.64,1), opacity 0.18s ease;
}
.nav-dropdown.open { transform:scale(1) translateY(0); opacity:1; pointer-events:auto; }
.nav-dropdown a {
  display:block; padding:11px 16px;
  font-size:13px; font-weight:400; font-family:var(--font-ui);
  color:rgba(255,255,255,0.90); text-decoration:none;
  border-radius:10px; letter-spacing:0.02em;
  transition:background 0.16s, color 0.16s;
}
.nav-dropdown a:hover { background:rgba(255,255,255,0.18); color:#fff; }

/* ── HERO ───────────────────────────────────────────────── */
#hero {
  min-height:90vh;
  display:flex; align-items:center; justify-content:center;
  padding:130px 60px 50px;
  position:relative; overflow:hidden;
  background:#000; border-radius:0 0 80px 80px;
}
.hero-bottom-glow {
  position:absolute; bottom:0; left:-5%; width:110%; height:58%;
  pointer-events:none; z-index:0;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  background:radial-gradient(ellipse 88% 100% at 50% 100%,
    rgba(238,240,250,0.90) 0%, rgba(188,193,215,0.62) 20%,
    rgba(122,128,155,0.30) 44%, rgba(58,62,88,0.08) 66%, transparent 84%);
}
.hero-bottom-glow::after {
  content:''; position:absolute; inset:0; border-radius:inherit;
  background:radial-gradient(ellipse 42% 52% at 50% 100%,
    rgba(255,255,255,0.48) 0%, rgba(215,220,242,0.20) 38%, transparent 62%);
}
.hero-inner { position:relative; z-index:2; text-align:center; overflow:visible; }

h1.hero-title {
  font-family:var(--font-display);
  font-size:clamp(26px,3.8vw,60px); font-weight:500;
  line-height:1.15; letter-spacing:-0.01em;
  background:linear-gradient(160deg,#ffffff 0%,#d8d8d8 45%,#a8a8a8 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  margin-bottom:28px; padding-bottom:8px; overflow:visible;
}
h1.hero-title em {
  font-style:italic; font-weight:500;
  background:linear-gradient(160deg,#ffffff 0%,#e9e9e9 50%,#b6b6b6 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.hero-sub {
  font-family:var(--font-ui);
  font-size:clamp(15px,1.8vw,19px); color:rgba(255,255,255,0.70);
  max-width:640px; margin:0 auto 44px;
  font-weight:400; letter-spacing:0.02em; line-height:1.5;
}
.hero-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

.badge-dot { width:8px; height:8px; background:#fff; border-radius:50%; animation:blink 2s infinite; }
@keyframes blink { 0%,100% { opacity:1; } 50% { opacity:.3; } }

/* ── GLASS BUTTON ───────────────────────────────────────── */
.btn-glass-glow {
  position:relative; display:inline-flex;
  align-items:center; justify-content:center;
  padding:15px 20px; font-size:17px; font-weight:600;
  font-family:var(--font-ui); letter-spacing:0.03em;
  color:#000; text-decoration:none; border-radius:15px;
  cursor:pointer; background:#fff;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  isolation:isolate; overflow:hidden; transition:background 0.2s; z-index:0;
}
.btn-glass-glow::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(110deg,transparent 20%,rgba(0,0,0,0.61) 50%,transparent 80%);
  transform:translateX(-130%); pointer-events:none;
}
.btn-glass-glow:hover::after { animation:btn-glass-shine 1.0s ease forwards; }
@keyframes btn-glass-shine { from { transform:translateX(-130%); } to { transform:translateX(130%); } }

/* ── CTA POP ANIMATIONS ─────────────────────────────────── */
@keyframes btnPopFill {
  0%   { transform:scale(1); box-shadow:none; }
  15%  { transform:scale(1.1); box-shadow:0 0 40px rgba(45,125,255,0.9),0 0 80px rgba(45,125,255,0.4); }
  40%  { transform:scale(1.06); box-shadow:0 0 25px rgba(45,125,255,0.7); }
  70%  { transform:scale(1.08); box-shadow:0 0 35px rgba(45,125,255,0.8); }
  100% { transform:scale(1); box-shadow:none; }
}
@keyframes btnPopGhost {
  0%   { transform:scale(1); box-shadow:none; border-color:rgba(255,255,255,0.3); }
  15%  { transform:scale(1.1); box-shadow:0 0 40px rgba(45,125,255,0.9),0 0 80px rgba(45,125,255,0.4); border-color:#4fa3ff; }
  40%  { transform:scale(1.06); box-shadow:0 0 25px rgba(45,125,255,0.7); border-color:#4fa3ff; }
  70%  { transform:scale(1.08); box-shadow:0 0 35px rgba(45,125,255,0.8); border-color:#4fa3ff; }
  100% { transform:scale(1); box-shadow:none; border-color:rgba(255,255,255,0.3); }
}
.btn-pop-fill { animation:btnPopFill 3s ease both !important; }
.btn-pop      { animation:btnPopGhost 3s ease both !important; }

/* ── SERVICES MARQUEE ───────────────────────────────────── */
.services-marquee-wrap {
  width:100%; background:#000; padding:18px 0; margin-top:60px;
  overflow:hidden; position:relative;
  border-top:1px solid rgba(255,255,255,0.15);
  border-bottom:1px solid rgba(255,255,255,0.15);
  filter:blur(5px); opacity:0.35;
  transition:filter 1s ease, opacity 1s ease;
}
.services-marquee-wrap.sm-clear { filter:blur(0); opacity:1; }
.services-marquee-wrap::before,
.services-marquee-wrap::after {
  content:''; position:absolute; top:0; bottom:0;
  width:180px; z-index:2; pointer-events:none;
}
.services-marquee-wrap::before { left:0; background:linear-gradient(to right,#000,transparent); }
.services-marquee-wrap::after  { right:0; background:linear-gradient(to left,#000,transparent); }

.services-marquee { overflow:hidden; white-space:nowrap; }
.sm-track {
  display:inline-flex; align-items:center; gap:36px;
  animation:sm-scroll 32s linear infinite; will-change:transform;
}
.sm-track:hover { animation-play-state:paused; }
.sm-item {
  display:inline-flex; align-items:center;
  font-family:var(--font-display);
  font-size:clamp(16px,2.2vw,26px); font-weight:400;
  letter-spacing:0.04em; color:rgba(255,255,255,0.58);
  white-space:nowrap; transition:color 0.3s;
}
.sm-item:hover { color:rgba(255,255,255,0.92); }
.sm-dot { font-style:normal; font-size:0.9em; color:rgba(255,255,255,0.74); flex-shrink:0; line-height:1; }
@keyframes sm-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ── SECTION LABELS ─────────────────────────────────────── */
.sec-label {
  display:inline-flex; align-items:center; gap:8px;
  font-size:18px; letter-spacing:0.08em; color:#fff; font-weight:500;
  background:rgba(45,125,255,0.08); border:1px solid rgba(255,255,255,0.77);
  border-radius:8px; padding:6px 14px; margin-bottom:16px;
}
.testi-label { margin:0 auto 16px; display:inline-flex; }

/* ── OUR WORK ───────────────────────────────────────────── */
#portfolio { padding:0; background:#000; }

.ow-header { text-align:center; padding:80px 24px 48px; }
.ow-title {
  font-family:var(--font-display);
  font-size:clamp(32px,5vw,58px); font-weight:500; color:#fff;
  line-height:1.12; margin:16px 0 14px; letter-spacing:-0.02em;
}
.ow-sub {
  font-family:var(--font-ui);
  font-size:clamp(14px,1.8vw,19px); color:rgba(255,255,255,0.64);
  max-width:480px; margin:0 auto; line-height:1.6;
}

.ow-stage {
  display:grid; grid-template-columns:1.2fr 160px 1.2fr;
  gap:96px; padding:0 48px 80px;
  max-width:1600px; margin:0 auto; align-items:start;
}

.ow-col { position:relative; height:680px; overflow:hidden; }
.ow-fade { position:absolute; left:0; right:0; height:120px; pointer-events:none; z-index:5; }
.ow-fade-t { top:0; background:linear-gradient(180deg,#000 0%,transparent 100%); }
.ow-fade-b { bottom:0; background:linear-gradient(0deg,#000 0%,transparent 100%); }
.ow-scroll-box { height:100%; overflow:hidden; padding:0 4px; }

.ow-col-cta {
  display:block; text-align:center;
  font-family:var(--font-ui); font-size:12px;
  color:rgba(255,255,255,0.35); text-decoration:none;
  padding-top:8px; transition:color 0.2s;
  position:relative; z-index:6;
}
.ow-col-cta:hover { color:rgba(255,255,255,0.75); }
.ow-col-cta span  { color:rgba(255,255,255,0.55); }

.ow-track {
  display:flex; flex-direction:column; gap:14px;
  animation:ow-scroll-up 20s linear infinite;
}
.ow-trow { display:flex; gap:12px; }
.ow-trow .ow-tc { flex:1; }
.ow-left:hover .ow-track { animation-play-state:paused; }

.ow-tc {
  background:#000; border:2px solid rgba(255,255,255,0.32);
  border-radius:16px; padding:20px 16px;
  display:flex; flex-direction:column;
  transition:background 0.25s, border-color 0.25s;
  cursor:default; flex-shrink:0;
}
.ow-tc:hover { background:rgba(255,255,255,0.04); border-color:rgba(255,255,255,0.82); }
.ow-tc-head { display:flex; align-items:center; gap:9px; margin-bottom:10px; }
.ow-tc-av { width:36px; height:36px; border-radius:50%; object-fit:cover; flex-shrink:0; border:1px solid rgba(255,255,255,0.14); }
.ow-tc-name { font-family:var(--font-ui); font-size:19px; font-weight:500; color:rgba(255,255,255,0.88); line-height:1.2; }
.ow-tc-body { font-family:var(--font-ui); font-size:21px; line-height:1.8; color:rgba(255,255,255,0.82); margin-bottom:12px; }
.ow-tc-foot { margin-top:10px; display:flex; align-items:center; }

.ow-center {
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; height:680px; position:relative; overflow:visible;
}
.ow-simple-logo { width:160px; height:160px; object-fit:contain; opacity:0.92; }

.ow-right {
  display:flex; flex-direction:column; gap:12px;
  position:relative; height:680px; overflow:hidden;
}
.ow-reels-box { flex:1; position:relative; overflow:hidden; min-height:0; }

.ow-rtrack {
  display:flex; flex-direction:column; gap:10px;
  animation:ow-scroll-up 20s linear infinite;
}
.ow-rrow { display:flex; gap:10px; }
.ow-rrow .ow-rc { flex:1; }
.ow-right:hover .ow-rtrack { animation-play-state:paused; }

.ow-rc {
  position:relative; border-radius:16px; overflow:hidden;
  cursor:pointer; aspect-ratio:9/16; background:#0a0a14;
  border:1px solid rgba(255,255,255,0.09); flex-shrink:0;
  transition:transform 0.35s cubic-bezier(0.34,1.4,0.64,1), border-color 0.3s, box-shadow 0.3s;
}
.ow-rc:hover {
  transform:scale(1.04); border-color:rgba(255,255,255,0.28);
  box-shadow:0 16px 48px rgba(45,125,255,0.15),0 0 0 1px rgba(45,125,255,0.1);
}
.ow-rc-vid {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; pointer-events:none;
}
.ow-rc-vid::-webkit-media-controls,
.ow-rc-vid::-webkit-media-controls-enclosure { display:none !important; }

.ow-rc-hov {
  position:absolute; inset:0;
  display:flex; align-items:flex-end; justify-content:center;
  padding-bottom:16px; opacity:0; transition:opacity 0.22s;
  pointer-events:none; border-radius:16px;
  background:linear-gradient(0deg,rgba(0,0,0,0.5) 0%,transparent 50%);
}
.ow-rc:hover .ow-rc-hov { opacity:1; pointer-events:all; }

.ow-fs-btn {
  background:rgba(0,0,0,0.55); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.3); border-radius:20px;
  color:#fff; font-size:12px; font-weight:600; font-family:var(--font-body);
  padding:7px 16px; cursor:pointer; letter-spacing:0.04em;
  transition:background 0.2s, border-color 0.2s;
}
.ow-fs-btn:hover { background:rgba(255,255,255,0.18); border-color:rgba(255,255,255,0.7); }

.ow-rc:fullscreen, .ow-rc:-webkit-full-screen { background:#000; }
.ow-rc:fullscreen .ow-rc-vid, .ow-rc:-webkit-full-screen .ow-rc-vid { object-fit:contain; }
.ow-rc:fullscreen .ow-rc-hov, .ow-rc:-webkit-full-screen .ow-rc-hov,
:fullscreen .ow-rc-hov, :-webkit-full-screen .ow-rc-hov { opacity:1 !important; pointer-events:all !important; }

@keyframes ow-scroll-up { from { transform:translateY(0); } to { transform:translateY(-50%); } }

/* ── DRIVE VIDEO OVERLAY ─────────────────────────────────── */
.drive-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.92);
  backdrop-filter:blur(12px); z-index:9999;
  display:none; align-items:center; justify-content:center;
}
.drive-overlay.open { display:flex; }
.drive-modal { width:min(340px,90vw); aspect-ratio:9/16; border-radius:20px; overflow:hidden; box-shadow:0 0 60px rgba(255,255,255,0.54); position:relative; }
.drive-player { width:100%; height:100%; }
.drive-close {
  position:absolute; top:12px; right:12px;
  width:34px; height:34px; border-radius:50%;
  background:rgba(0,0,0,0.7); border:1px solid transparent;
  color:#fff; font-size:15px; cursor:pointer; z-index:10;
  display:flex; align-items:center; justify-content:center;
  transition:border-color 0.2s;
}
.drive-close:hover { border-color:rgba(236,236,236,0.9); }

.dc-bar {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(0deg,rgba(0,0,0,0.92),transparent);
  padding:0 0 8px; border-radius:0 0 20px 20px;
  z-index:10; opacity:0; transition:opacity 0.3s;
}
.drive-modal:hover .dc-bar { opacity:1; }
.dc-progress-wrap { padding:8px 12px 4px; }
.dc-progress-bar {
  height:3px; background:rgba(255,255,255,0.25); border-radius:4px;
  cursor:pointer; position:relative; transition:height 0.2s;
}
.dc-progress-bar:hover { height:5px; }
.dc-fill { height:100%; background:#fff; border-radius:4px; width:0%; pointer-events:none; }
.dc-bottom { display:flex; align-items:center; justify-content:space-between; padding:2px 8px 6px; }
.dc-left, .dc-right { display:flex; align-items:center; gap:2px; }
.dc-btn {
  background:none; border:none; color:#fff; cursor:pointer;
  padding:5px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s; text-decoration:none;
}
.dc-btn:hover { background:rgba(255,255,255,0.15); }
.dc-time { font-size:10px; color:rgba(255,255,255,0.75); font-family:var(--font-body); padding-left:4px; white-space:nowrap; }
.dc-speed-wrap { position:relative; }
.dc-speed-menu {
  display:none; position:absolute; bottom:calc(100% + 6px); right:0;
  background:rgba(10,10,20,0.96); backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.10); border-radius:10px;
  overflow:hidden; min-width:72px; z-index:20;
}
.dc-speed-menu.open { display:block; }
.dc-speed-menu button {
  display:block; width:100%; background:none; border:none;
  color:rgba(255,255,255,0.7); font-size:12px; font-family:var(--font-body);
  padding:8px 14px; cursor:pointer; text-align:center;
  transition:background 0.2s, color 0.2s;
}
.dc-speed-menu button:hover,
.dc-speed-menu button.active { background:rgba(45,125,255,0.25); color:#fff; }

/* ── STATS BAR ──────────────────────────────────────────── */
.stats-bar {
  background:#000; padding:70px 0; position:relative; overflow:hidden;
  filter:blur(5px); opacity:0.35; transition:filter 1s ease, opacity 1s ease;
}
.stats-bar.stats-clear { filter:blur(0); opacity:1; }

.container .stats-track-wrap { max-width:1100px; margin:0 auto; overflow:hidden; position:relative; }
.stats-track-wrap::before, .stats-track-wrap::after {
  content:''; position:absolute; top:0; bottom:0; width:180px; z-index:10; pointer-events:none;
}
.stats-track-wrap::before { left:0;  background:linear-gradient(to right,#000 45%,rgba(0,0,0,0.7) 75%,transparent); }
.stats-track-wrap::after  { right:0; background:linear-gradient(to left,#000 45%,rgba(0,0,0,0.7) 75%,transparent); }

.stats-track {
  display:flex; align-items:center; gap:100px;
  width:max-content; animation:statsScroll 28s linear infinite;
  padding:0 20px; cursor:grab;
}
.stats-track:hover { animation-play-state:paused; }
@keyframes statsScroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }

.stat-item { text-align:center; min-width:170px; flex-shrink:0; }
.stat-num {
  font-family:var(--font-display);
  font-size:clamp(46px,5.5vw,68px); font-weight:700; line-height:1;
  background:linear-gradient(160deg,#ffffff 0%,#c8d0e8 45%,#8896b8 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.stat-label { font-size:15px; color:rgba(255,255,255,0.65); letter-spacing:0.5px; }

/* ── FEEDBACKS ──────────────────────────────────────────── */
#feedbacks { padding:70px 0 120px; background:#000; }

/* ── SHARED GLASSY BOX — feedback, faq, schedule, footer ── */
/* All these share the same glass border + radial glow effect  */
.feedback-box,
.faq-box,
.sch-box {
  position:relative;
  width:min(1400px,92vw); margin:0 auto;
  border-radius:38px; overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,0.03) 0%,rgba(255,255,255,0.015) 100%);
  border:1px solid rgba(255,255,255,0.22);
  backdrop-filter:blur(18px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05),0 40px 100px rgba(0,0,0,0.45);
}
.feedback-box { padding:60px 60px 120px; }
.faq-box      { width:min(1000px,92vw); padding:60px 60px 120px; }
.sch-box      { width:min(900px,92vw); padding:60px 60px 40px; }

/* Shared bottom glow — all glassy boxes + footer */
.feedback-box::before,
.faq-box::before,
.sch-box::before,
footer::before {
  content:''; position:absolute; bottom:0; left:-5%; width:110%; height:58%;
  pointer-events:none; z-index:0;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  background:radial-gradient(ellipse 88% 100% at 50% 100%,
    rgba(238,240,250,0.90) 0%, rgba(188,193,215,0.62) 20%,
    rgba(122,128,155,0.30) 44%, rgba(58,62,88,0.08) 66%, transparent 84%);
}
.feedback-box::after,
.faq-box::after,
.sch-box::after,
footer::after {
  content:''; position:absolute; bottom:0; left:-5%; width:110%; height:58%;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  background:radial-gradient(ellipse 42% 52% at 50% 100%,
    rgba(255,255,255,0.48) 0%, rgba(215,220,242,0.20) 38%, transparent 62%);
  pointer-events:none; z-index:0;
}
.feedback-box .container,
.faq-box .container,
.sch-box .container { position:relative; z-index:1; }

.feedback-pipeline { position:relative; width:100%; }
.feedback-canvas { position:absolute; top:0; left:0; width:100%; height:160px; pointer-events:none; z-index:1; }
.feedback-cards {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:16px; position:relative; z-index:2;
  padding-top:150px; align-items:start;
}
.fb-card {
  border-radius:14px; overflow:hidden;
  border:1px solid rgba(255,255,255,0.38); background:transparent;
  cursor:pointer;
  transition:transform 0.35s ease, border-color 0.3s, box-shadow 0.3s;
  align-self:start;
}
.fb-card:hover { transform:translateY(-6px); border-color:rgba(255,255,255,0.96); box-shadow:0 20px 50px rgba(0,0,0,0.5); }
.fb-img { width:100%; height:auto; display:block; }

/* ── PROBLEMS ───────────────────────────────────────────── */
.psv-section { padding:100px 24px; background:#000; overflow:hidden; }
.psv-wrap {
  position:relative; display:grid;
  grid-template-columns:1fr auto 1fr; gap:140px;
  max-width:1500px; width:100%; margin:0 auto;
  align-items:center; min-height:580px;
  padding:0 40px; box-sizing:border-box;
}
.psv-col { display:flex; flex-direction:column; gap:35px; }
#psvLeft  { align-items:flex-end; }
#psvRight { align-items:flex-start; }

.psv-card {
  background:transparent; border-radius:22px;
  padding:36px 24px 30px; color:#fff;
  transition:box-shadow 0.3s; position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center;
  text-align:center; width:230px;
}
.psv-card::before {
  content:''; position:absolute; inset:0; border-radius:22px; padding:1px;
  background:linear-gradient(to bottom,rgba(255,255,255,0.90) 0%,rgba(255,255,255,0.34) 50%,rgba(255,255,255,0) 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.psv-card:hover { box-shadow:0 8px 32px rgba(0,0,0,0.6); }
.psv-icon { width:60px; height:60px; border-radius:16px; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-bottom:20px; }
.psv-icon svg { width:50px; height:50px; }
.psv-card h3 { font-family:var(--font-display); font-size:18px; font-weight:500; color:#fff; margin:0; line-height:1.45; letter-spacing:0.01em; }

.psv-center {
  text-align:center; position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center; width:max-content;
}
.psv-center .sec-label { margin-bottom:18px; }
.psv-heading { font-family:var(--font-display); font-size:clamp(30px,4vw,62px); font-weight:500; color:#fff; line-height:1.1; margin:0 0 14px; letter-spacing:0.01em; white-space:nowrap; }
.psv-sub { font-size:18px; font-family:var(--font-ui); color:rgba(255,255,255,0.82); line-height:1.7; letter-spacing:0.03em; white-space:nowrap; text-align:center; }

/* ── FAQ ────────────────────────────────────────────────── */
#faq { padding:60px 0; background:#000; }
.faq-wrap { max-width:720px; margin:56px auto 0; }
.faq-item { border-bottom:1px solid rgba(255,255,255,0.40); overflow:hidden; }
.faq-q {
  width:100%; background:none; border:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 0; cursor:pointer; gap:20px;
  font-family:var(--font-body); font-size:18px; font-weight:400;
  letter-spacing:0.5px; color:#fff; text-align:left; transition:color 0.2s;
}
.faq-q:hover { color:rgb(61,161,255); }
.faq-icon {
  width:28px; height:28px; border-radius:50%; flex-shrink:0;
  border:1px solid var(--glass-border); background:var(--glass-bg);
  backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center;
  transition:all 0.3s;
}
.faq-icon svg { width:12px; height:12px; stroke:var(--muted); fill:none; stroke-width:2; stroke-linecap:round; transition:transform 0.3s; }
.faq-item.open .faq-icon { background:var(--accent); border-color:var(--accent); }
.faq-item.open .faq-icon svg { stroke:#fff; transform:rotate(45deg); }
.faq-a {
  max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding 0.3s;
  font-size:14px; color:rgba(255,255,255,0.87); line-height:1.8;
  font-weight:400; letter-spacing:0.5px;
}
.faq-item.open .faq-a { max-height:220px; padding-bottom:20px; }

/* ── SCHEDULE ───────────────────────────────────────────── */
#schedule { padding:70px 0; background:#000; text-align:center; }
.schedule-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:40px; }

/* ── FOOTER ─────────────────────────────────────────────── */
footer {
  position:relative; overflow:hidden;
  border-radius:38px;
  width:min(1400px,92vw); margin:0 auto 40px;
  padding:30px 50px;
  background:linear-gradient(180deg,rgba(255,255,255,0.03) 0%,rgba(255,255,255,0.015) 100%);
  border:1px solid rgba(255,255,255,0.226);
  backdrop-filter:blur(18px);
}

.footer-inner { position:relative; z-index:1; }

.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
}
.footer-left { flex-shrink:0; }
.footer-logo-big {
  display:flex; align-items:center;
  text-decoration:none;
}
.footer-logo-text {
  font-family:var(--font-body);
  font-size:52px; font-weight:500;
  background:linear-gradient(160deg,#c8d0e8 0%,#8896b8 50%,#ffffff 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  line-height:1;
}

.footer-right {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:24px;
}
.footer-socials {
  display:flex;
  flex-direction:row;
  gap:6px;
  align-items:center;
}
.soc-icon {
  width:32px; height:32px;
  background:transparent;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none;
  color:rgba(255,255,255,0.63);
  transition:all .2s; flex-shrink:0;
}
.soc-icon svg { width:20px; height:20px; }
.soc-icon:hover { color:#008cff; }

.footer-copy {
  font-size:14px;
  color:rgba(255,255,255,0.58);
  font-family: var(--font-ui);
  white-space:nowrap;
  border-left: 1px solid rgba(255, 255, 255, 0.466);
  padding-left: 16px;
}

/* ── CONTACT POPUP ──────────────────────────────────────── */
.popup-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.85);
  backdrop-filter:blur(10px); z-index:9999;
  display:none; align-items:center; justify-content:center;
}
.popup-overlay.open { display:flex; }
.popup-box {
  background:rgba(255,255,255,0.05); backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,0.12); border-radius:20px;
  padding:40px; max-width:420px; width:90%;
  text-align:center; position:relative; box-shadow:0 24px 60px rgba(0,0,0,0.5);
}
.popup-box h3 { font-family:var(--font-display); font-size:22px; font-weight:700; color:#fff; margin-bottom:10px; }
.popup-box p  { font-size:14px; color:rgba(255,255,255,0.5); margin-bottom:28px; line-height:1.7; }
.popup-btns   { display:flex; flex-direction:column; gap:12px; }
.popup-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 24px; border-radius:10px; font-size:14px; font-weight:600;
  text-decoration:none; transition:all 0.25s;
}
.popup-btn.primary { background:#1a6de8; color:#fff; border:1px solid #1a6de8; }
.popup-btn.primary:hover { background:#2d7dff; transform:translateY(-1px); }
.popup-btn.ghost  { background:rgba(255,255,255,0.04); color:rgba(255,255,255,0.8); border:1px solid rgba(255,255,255,0.15); }
.popup-btn.ghost:hover { border-color:rgba(255,255,255,0.35); color:#fff; }
.popup-close {
  position:absolute; top:14px; right:16px;
  background:none; border:none; color:rgba(255,255,255,0.4);
  font-size:16px; cursor:pointer; transition:color 0.2s;
}
.popup-close:hover { color:#fff; }

/* ── REEL FULLSCREEN MODAL ──────────────────────────────── */
#reelFSOverlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.94);
  backdrop-filter:blur(14px); z-index:99999;
  display:none; align-items:center; justify-content:center;
}
#reelFSOverlay.open { display:flex; }
.rfs-modal {
  position:relative; width:min(380px,92vw); aspect-ratio:9/16;
  border-radius:20px; overflow:hidden;
  box-shadow:0 0 80px rgba(255,255,255,0.15); background:#000;
}
#reelFSVideo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#reelFSVideo::-webkit-media-controls,
#reelFSVideo::-webkit-media-controls-enclosure { display:none !important; }

.rfs-bar {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(0deg,rgba(0,0,0,0.9) 0%,transparent 100%);
  padding:0 0 10px; border-radius:0 0 20px 20px;
  z-index:2; opacity:0; transition:opacity 0.25s;
}
.rfs-modal:hover .rfs-bar { opacity:1; }
.rfs-progress-wrap { padding:10px 14px 4px; }
.rfs-progress-bg { height:4px; background:rgba(255,255,255,0.25); border-radius:4px; cursor:pointer; position:relative; transition:height 0.2s; }
.rfs-progress-bg:hover { height:6px; }
.rfs-progress-fill { height:100%; background:#fff; border-radius:4px; width:0%; pointer-events:none; }
.rfs-controls { display:flex; align-items:center; justify-content:space-between; padding:4px 10px 6px; }
.rfs-left, .rfs-right { display:flex; align-items:center; gap:4px; }
.rfs-btn {
  background:none; border:none; color:#fff; cursor:pointer;
  padding:6px 8px; border-radius:8px;
  display:flex; align-items:center; gap:3px;
  font-size:12px; font-weight:600; font-family:var(--font-body);
  transition:background 0.15s; text-decoration:none;
}
.rfs-btn:hover { background:rgba(255,255,255,0.18); }
.rfs-time { font-size:11px; color:rgba(255,255,255,0.75); font-family:var(--font-body); padding-left:4px; white-space:nowrap; }
.rfs-speed-wrap { position:relative; }
.rfs-speed-menu {
  display:none; position:absolute; bottom:calc(100% + 6px); right:0;
  background:rgba(10,10,20,0.96); backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.12); border-radius:10px;
  overflow:hidden; min-width:72px; z-index:10;
}
.rfs-speed-menu.open { display:block; }
.rfs-speed-menu button {
  display:block; width:100%; background:none; border:none;
  color:rgba(255,255,255,0.7); font-size:12px; font-family:var(--font-body);
  padding:8px 14px; cursor:pointer; text-align:center;
  transition:background 0.2s, color 0.2s;
}
.rfs-speed-menu button:hover,
.rfs-speed-menu button.active { background:rgba(255,255,255,0.15); color:#fff; }

/* ============================================================
   RESPONSIVE — TABLET (≤ 960px)
   ============================================================ */
@media (max-width:960px) {
  .psv-wrap { grid-template-columns:1fr; min-height:unset; gap:28px; padding:0 20px; }
  .psv-center { order:-1; }
  .psv-col { order:1; align-items:center !important; }
  #psvLines { display:none; }
  .psv-card { transform:none !important; width:100%; max-width:320px; }
  .psv-heading { font-size:clamp(28px,7vw,42px); white-space:normal; }
  .psv-sub { white-space:normal; max-width:340px; }
}

/* ============================================================
   RESPONSIVE — MOBILE (≤ 768px)
   ============================================================ */
@media (max-width:768px) {
  
  body { cursor:auto; }
  .custom-cursor { display:none; }
  .container { padding:0 18px; max-width:100%; }
  html, body {
    overflow-x: hidden;
    max-width: 100%;
  }
  /* ── Site Intro ── */
  .si-logo { display:block; width:120px; height:120px; }

  /* ── Top bar ── */
  .top-bar {
    width:min(380px,92vw);
    top:16px;
    opacity:1 
  }
  .tb-logo img { height:48px; width:48px; }
  /* Hide text label, show hamburger lines */
  .tb-menu-label { display:none; }
  .tb-hamburger { display:flex; }
  /* Prevent the hover padding-expand on mobile */
  .tb-menu-btn  { padding:10px 12px; }
  .tb-menu-btn:hover { padding:10px 12px; }
  /* Anchor dropdown to right edge of screen on mobile */
  .nav-dropdown { right:4vw; left:auto; min-width:min(240px,88vw); }

  /* ── Hero ── */
  #hero { min-height:100svh; padding:100px 20px 60px; border-radius:0 0 50px 50px; }
  h1.hero-title { font-size:clamp(26px,7vw,40px); line-height:1.2; margin-top:36px; }
  .hero-sub { font-size:14px; margin-bottom:58px; padding:0 4px; }
  .hero-btns { flex-direction:column; align-items:center; gap:12px; }
  .btn-glass-glow { width:100%; max-width:200px; justify-content:center; font-size:16px; }
  .badge-dot { width:8px; height:8px; background:#fff; border-radius:50%; animation:blink 2s infinite; margin-bottom: 1px; }
  /* ── Marquee ── */
  .services-marquee-wrap { margin-top:32px; }
  .sm-item { font-size:16px; }

  /* ── Our Work ──
     Desktop: vertical scroll columns
     Mobile:  single-line infinite horizontal loop (like stats bar) */
  @keyframes ow-scroll-left {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
  }

  .ow-header { padding:40px 20px 28px; }
  .ow-stage {
    display:flex;
    flex-direction:column;
    gap:24px;
    padding:0 0 40px;
  }

  /* Reset base col constraints */
  .ow-col { height:auto; overflow:visible; }

  /* ── Testimonials strip — order 1 ── */
  .ow-left {
    display:block;
    order:1;
    position:relative;
    overflow:hidden;
  }
  .ow-left::before,
  .ow-left::after {
    content:''; position:absolute;
    top:0; bottom:0; width:64px; z-index:10; pointer-events:none;
  }
  .ow-left::before { left:0;  background:linear-gradient(to right,#000 40%,transparent); }
  .ow-left::after  { right:0; background:linear-gradient(to left, #000 40%,transparent); }
  .ow-left .ow-fade    { display:none; }
  .ow-left .ow-col-cta { display:none; }
  .ow-left .ow-scroll-box { height:auto; overflow:hidden; padding:6px 0; }
  .ow-left .ow-track {
    display:flex; flex-direction:row; align-items:stretch;
    gap:12px; width:max-content;
    animation:ow-scroll-left 34s linear infinite;
  }
  .ow-left:active .ow-track { animation-play-state:paused; }
  .ow-left .ow-trow { display:contents; }
  .ow-tc { width:240px; flex-shrink:0; }
  .ow-tc-foot { margin-top:auto; }
  .ow-tc-body { font-size:15px; line-height:1.6; }
  .ow-tc-name { font-size:15px; }

  /* ── Logo — order 2 — single merged rule ── */
  .ow-center {
    display:flex;
    flex-direction:column;
    order:2;
    align-items:center;
    justify-content:center;
    width:100%;
    height:auto;
    padding:8px 0;
  }
  .ow-simple-logo { display:block; width:100px !important; height:100px !important; }

  /* ── Reels strip — order 3 ── */
  .ow-right {
    display:block;
    order:3;
    height:auto;
    overflow:hidden;     /* clip the looping strip */
    position:relative;
    gap:0;
  }
  /* Fade edges */
  .ow-right::before,
  .ow-right::after {
    content:''; position:absolute;
    top:0; bottom:0; width:64px; z-index:10; pointer-events:none;
  }
  .ow-right::before { left:0;  background:linear-gradient(to right,#000 40%,transparent); }
  .ow-right::after  { right:0; background:linear-gradient(to left, #000 40%,transparent); }
  .ow-right .ow-fade { display:none; }
  /* Clip container */
  .ow-reels-box {
    flex:none;
    height:auto;
    overflow:hidden;
    padding:6px 0;
  }
  /* Single horizontal loop track */
  .ow-rtrack {
    display:flex;
    flex-direction:row;
    align-items:flex-start;
    gap:10px;
    width:max-content;
    animation:ow-scroll-left 28s linear infinite;
  }
  .ow-right:active .ow-rtrack { animation-play-state:paused; }
  /* Dissolve the row wrapper — reels become direct children */
  .ow-rrow { display:contents; }
  /* Each reel fixed width (aspect-ratio 9/16 gives ~231px height) */
  .ow-rc   { width:170px; flex-shrink:0; }
  .ow-rc { position:relative; cursor:pointer; border-radius:12px; overflow:hidden; background:#111; aspect-ratio:9/16; transition:transform .2s,box-shadow .2s; }
  .ow-rc:hover { transform:scale(1.03); box-shadow:0 8px 30px rgba(0,0,0,.5); }
  .ow-rc-thumb { width:100%; height:100%; object-fit:cover; display:block; }
  .ow-rc-play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.3); font-size:36px; color:#fff; transition:background .2s; }
  .ow-rc:hover .ow-rc-play { background:rgba(0,0,0,.5); }
  .ow-rc-thumb {
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    pointer-events:none;
  }

  /* ── Stats — stronger mobile fades ── */
  .stats-bar { padding:40px 0; }
  .stats-track-wrap::before { width:72px; background:linear-gradient(to right,#000 55%,transparent); }
  .stats-track-wrap::after  { width:72px; background:linear-gradient(to left, #000 55%,transparent); }
  .stat-item { min-width:130px; }
  .stats-track { gap:20px; }
  .stat-num  { font-size:clamp(32px,8vw,48px); }
  .stat-label { font-size:12px; }

  /* ── Feedbacks ── */
  #feedbacks { padding:40px 0 60px; }
  .feedback-box { padding:36px 20px 60px; }
  .feedback-canvas { display:none; }
  .feedback-cards { grid-template-columns:1fr 1fr; padding-top:20px; gap:20px; }

  /* ── Problems ── */
  .psv-section { padding:50px 16px; }

  /* ── FAQ ── */
  #faq { padding:40px 0; }
  .faq-box { padding:36px 20px 56px; }
  .faq-wrap { margin-top:-24px; }
  .faq-q { font-size:15px; padding:16px 0; }

  /* ── Schedule ── */
  #schedule { padding:40px 0; }
  .sch-box { padding:36px 20px 36px; }
  .schedule-btns { flex-direction:column; align-items:center; gap:15px; margin-top:40px; }
  .schedule-btns .btn-glass-glow { width:100%; max-width:300px; justify-content:center; font-size:16px; }

  /* ── Divider spacing ── */
  .divider { margin:0 3%; }

  /* ── Footer ── */
  footer {
    padding:28px 20px;
    border-radius:24px;
    margin:20px auto 24px;
  }
  .footer-top {
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:16px;
  }
  .footer-right {
    gap: 16px;
    flex-direction: column;
    align-items: center;
    margin-top: 0;
  }
  .footer-logo-text { font-size:40px; }
  .footer-socials { flex-wrap:wrap; justify-content:center; gap:8px; }
  .footer-copy {
    color:rgba(255, 255, 255, 0.658);
    white-space: normal;
    text-align: center;
    border-left: none;
    padding-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.445);
    padding-top: 12px;
  }

  /* ── Modals ── */
  .popup-box { padding:28px 20px; width:92%; }
  .popup-box h3 { font-size:18px; }
  .popup-box p  { font-size:13px; }
  .popup-btn    { font-size:13px; padding:11px 18px; }

  /* ── Labels ── */
  .sec-label, .testi-label { font-size:13px; padding:5px 12px; }
}

/* ============================================================
   RESPONSIVE — SMALL MOBILE (≤ 600px)
   ============================================================ */
@media (max-width:600px) {
  h1.hero-title { font-size:clamp(24px,7.5vw,34px); }
  .feedback-cards { grid-template-columns:1fr; gap:10px; }
  .rfs-modal { width:96vw; }
}

/* ============================================================
   RESPONSIVE — VERY SMALL (≤ 480px)
   ============================================================ */
@media (max-width:480px) {
  .top-bar { width:min(340px,94vw); opacity:1; }
  h1.hero-title { font-size:clamp(22px,8vw,32px); }
  .stat-num   { font-size:30px; }
  .stat-label { font-size:11px; }
  .footer-logo-text { font-size:34px; }
  .soc-icon { width:34px; height:34px; }
}

@media (max-width: 768px) {
  .ow-left,
  .ow-right,
  .ow-reels-box {
    overflow: hidden !important;
    max-width: 100vw;
  }

  .ow-left .ow-scroll-box {
    overflow: hidden !important;
  }

  /* FIX 2: Keep Problems We Solve centered */
  .psv-section {
    overflow: hidden;
  }

  .psv-wrap {
    max-width: 100%;
    overflow: hidden;
  }

  .psv-card {
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
  }
  .ow-rc:hover {
    opacity: 1 !important;
    pointer-events: all !important;
    align-items: center !important;
    justify-content: center !important;
    padding-bottom: 0 !important;
    background: rgba(0,0,0,0.25) !important;
  }
  .ow-play-icon {
    width: 52px; height: 52px;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 2px solid rgba(255,255,255,0.65);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; color: #fff;
    padding-left: 4px; /* optical center for ▶ */
    pointer-events: none;
  }
  
}

/* ─── Video popup: stack video + controls, no overlap ─────────── */
.drive-modal {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.drive-player {
  flex: 1 1 auto;
  min-height: 0;          /* lets the video shrink instead of pushing controls */
  position: relative;
}
.drive-player video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #000;
}

/* control bar sits BELOW the video, never on top of it */
.dc-bar {
  flex: 0 0 auto;
  position: static;       /* kills any `position:absolute` rule above */
  padding: 10px 14px 14px;
  background: rgba(0,0,0,0.9);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dc-progress-wrap { width: 100%; }

.dc-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;        /* allows right group to drop to its own row */
}
.dc-left, .dc-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

.dc-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  padding: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
}
.dc-btn:hover { background: rgba(255,255,255,0.12); }

#dcSpeedBtn {
  width: auto;
  min-width: 36px;
  padding: 0 8px;
  font-weight: 600;
  font-size: 13px;
}

.dc-time {
  font-size: 13px;
  color: #fff;
  opacity: 0.9;
  white-space: nowrap;
  margin-left: 4px;
}

/* ─── Mobile (≤560px): give controls room to breathe ──────────── */
@media (max-width: 560px) {
  .dc-bar    { padding: 8px 10px 12px; gap: 8px; }
  .dc-btn    { width: 34px; height: 34px; }
  .dc-time   { font-size: 12px; margin-left: 2px; }
  .dc-left,
  .dc-right  { gap: 4px; }

  /* if it still won't fit, dc-right wraps to its own row,
     spread evenly — looks intentional instead of squeezed */
  .dc-right  { flex: 1 1 100%; justify-content: space-around; }
}