/* ═══════════════════════════════════════════════
   LIGHT / DARK MODE SYSTEM
   Toggle class "dark" on <html> element
   ═══════════════════════════════════════════════ */

/* Single dark theme */
:root {
  --sky: #1e40af;           /* professional dark sky blue */
  --sky-dark: #1e3a8a;      /* deeper hover state */
  --navy: #0F172A;
  --navy-mid: #1E293B;
  --gold: #F59E0B;
  --gold-light: #FDE68A;

  /* Surfaces */
  --bg-body:        #060d1a;
  --bg-card:        rgba(15,25,50,0.95);
  --bg-card-hover:  rgba(20,35,65,0.98);

  /* Text */
  --text-primary:   #f1f5f9;  /* nearly white for maximum contrast */
  --text-secondary: #e2e8f0; /* slightly softer than primary */
  --text-muted:     #cbd5e1; /* gentle but readable */

  /* Band overlay */
  --band-overlay:   rgba(4,12,30,0.60);

  /* Section pill */
  --pill-bg:        rgba(14,165,233,0.15);
  --pill-border:    rgba(14,165,233,0.4);
  --pill-text:      #38bdf8;

  /* Borders */
  --border-card:    rgba(255,255,255,0.08);

  /* FAQ */
  --faq-bg:         rgba(15,25,50,0.95);
  --faq-text:       #e2e8f0;
  --faq-answer:     #94a3b8;
  --faq-hover-bg:   rgba(14,165,233,0.1);

  /* Inputs */
  --input-bg:       rgba(8,18,40,0.9);
  --input-border:   rgba(14,165,233,0.35);
  --input-text:     #e2e8f0;
  --input-placeholder: #475569;
}


/* ── Global applies ── */
body {
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  color: var(--text-primary);
  background: var(--bg-body);
  overflow-x: hidden;
  transition: background 0.3s, color 0.3s;
}

/* ── Text colour tokens ── */
.text-navy               { color: var(--text-primary) !important; }
.text-slate-900          { color: var(--text-primary) !important; }

/* ── Band text overrides (single dark theme) ── */
:root {
  --band-text-head:   #f1f5f9;
  --band-text-body:   #cbd5e1;
  --band-text-muted:  #94a3b8;
}
.bg-band-1 h2.text-navy,  .bg-band-2 h2.text-navy,
.bg-band-1 h3.text-navy,  .bg-band-2 h3.text-navy  {
  color: var(--band-text-head) !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.45);
}
.bg-band-1 p.text-slate-600, .bg-band-2 p.text-slate-600,
.bg-band-1 p.text-slate-500, .bg-band-2 p.text-slate-500 {
  color: var(--band-text-body) !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.35);
}
.bg-band-1 p.text-slate-400, .bg-band-2 p.text-slate-400,
.bg-band-1 span.text-slate-400, .bg-band-2 span.text-slate-400,
.bg-band-1 span.text-slate-500, .bg-band-2 span.text-slate-500 {
  color: var(--band-text-muted) !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
/* Only bare headings/text directly on the band bg get white — NOT text inside white cards */
.bg-band-1 strong.text-navy, .bg-band-2 strong.text-navy { color: var(--band-text-head) !important; }
/* .text-navy inside cards keeps the card's own dark colour — don't override it here */

/* ── Surfaces ── */
/* bg-white only darkened inside bands; globally keep transparent so cards look right */
.border-slate-200,
.border-slate-100        { border-color: var(--border-card) !important; }

/* ── Section pill ── */
.section-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--pill-bg);
  border: 1px solid var(--pill-border);
  color: var(--pill-text);
  font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 5px 14px; border-radius: 999px;
}

/* ── Cards ── */
.service-card     { background: var(--bg-card) !important; border-color: var(--border-card) !important; }
.testimonial-card { background: var(--bg-card) !important; }
.faq-item         { background: var(--faq-bg) !important; }
.faq-item button  { color: var(--faq-text) !important; }
.faq-item button:hover { background: var(--faq-hover-bg) !important; }
.faq-answer       { color: var(--faq-answer) !important; }
.partner-logo-wrap { background: var(--bg-card) !important; border-color: var(--border-card) !important; }
.pm-card          { background: var(--bg-card) !important; }
.partner-name-text { color: var(--text-primary) !important; }
.partner-sub-text  { color: var(--text-secondary) !important; }

/* ── Filter buttons ── */
.filter-btn { background: var(--bg-card); color: var(--text-secondary); border: 1px solid var(--border-card); }
.filter-btn.active { background: var(--sky); color: #fff; border-color: var(--sky); box-shadow: 0 4px 16px rgba(14,165,233,.35); }
.filter-btn:hover:not(.active) { background: rgba(14,165,233,.08); border-color: rgba(14,165,233,.3); color: var(--sky); }

/* ── Inputs (dark mode) ── */
html.dark input,
html.dark textarea,
html.dark select {
  background: var(--input-bg) !important;
  border-color: var(--input-border) !important;
  color: var(--input-text) !important;
}
html.dark input::placeholder,
html.dark textarea::placeholder { color: var(--input-placeholder) !important; }

/* ── Process & Coverage sections (dark) ── */
html.dark #process  { background: linear-gradient(160deg,#030810 0%,#060f1e 60%,#030810 100%) !important; }
html.dark #coverage { background: linear-gradient(160deg,#030810 0%,#060f1e 60%,#030810 100%) !important; }

/* ══════════════════════════════════════════
   BACKGROUND IMAGE BANDS
══════════════════════════════════════════ */
.bg-band-1,
.bg-band-2 { position: relative; overflow: hidden; }

.bg-band-1 > .relative > *,
.bg-band-2 > .relative > * { position: relative; z-index: 1; }

/* Band overlay uses variable — light mode: white tint, dark mode: deep navy */
.band-overlay-div {
  background: var(--band-overlay) !important;
  transition: background 0.3s;
}
/* Also cover any legacy selectors */
.bg-band-1 > div.absolute.inset-0.pointer-events-none,
.bg-band-2 > div.absolute.inset-0.pointer-events-none {
  background: var(--band-overlay) !important;
  transition: background 0.3s;
}

/* Cards inside bands — solid backgrounds so text inside is always readable */
.bg-band-1 .service-card,
.bg-band-2 .service-card     { background: var(--bg-card) !important; }
.bg-band-1 .faq-item,
.bg-band-2 .faq-item          { background: var(--faq-bg) !important; }
.bg-band-1 .testimonial-card,
.bg-band-2 .testimonial-card  { background: var(--bg-card) !important; }
.bg-band-1 .bg-white,
.bg-band-2 .bg-white          { background: var(--bg-card) !important; }
/* Review summary card and partner cards inside bands — keep dark card bg */
.bg-band-2 .bg-white.rounded-3xl { background: var(--bg-card) !important; }
.bg-band-2 .pm-card           { background: var(--bg-card) !important; }

/* Text INSIDE white cards must stay dark regardless of band — cancel the white override */
.bg-band-1 .service-card .text-navy,
.bg-band-2 .service-card .text-navy,
.bg-band-1 .testimonial-card .text-navy,
.bg-band-2 .testimonial-card .text-navy,
.bg-band-1 .faq-item .text-navy,
.bg-band-2 .faq-item .text-navy,
.bg-band-1 .bg-white .text-navy,
.bg-band-2 .bg-white .text-navy,
.bg-band-1 .pm-card .text-navy,
.bg-band-2 .pm-card .text-navy   { color: var(--text-primary) !important; text-shadow: none !important; }

.bg-band-1 .service-card p,
.bg-band-2 .service-card p,
.bg-band-1 .testimonial-card p,
.bg-band-2 .testimonial-card p,
.bg-band-1 .faq-item p,
.bg-band-2 .faq-item p,
.bg-band-1 .bg-white p,
.bg-band-2 .bg-white p,
.bg-band-1 .pm-card p,
.bg-band-2 .pm-card p            { color: var(--text-secondary) !important; text-shadow: none !important; }
/* Paragraphs with explicit white color or bold white — keep white, don't override */
p[style*="color:#ffffff"],
p[style*="color: #ffffff"] { color: #ffffff !important; }

/* Section pills in bands */
.bg-band-1 .section-pill,
.bg-band-2 .section-pill { background: var(--pill-bg); border-color: var(--pill-border); color: var(--pill-text); }

/* advert-1: always dark navy background — white text forced regardless of mode */
#advert-1 h2,
#advert-1 h2.text-navy,
#advert-1 p,
#advert-1 .text-navy,
#advert-1 .text-white { color: #ffffff !important; text-shadow: none !important; }
#advert-1 p.text-slate-600,
#advert-1 p.text-slate-500,
#advert-1 p.text-slate-400 { color: rgba(255,255,255,0.65) !important; text-shadow: none !important; }
#advert-1 .font-display.font-bold { color: #ffffff !important; }
/* dark mode: same rules already apply, no extra override needed */
html.dark #advert-1 > div.absolute.inset-0 { background: linear-gradient(135deg,#0a1628 0%,#0f2040 50%,#071020 100%) !important; }

/* about section: badge pills with bg-sky-DEFAULT/8 need readable text in both modes */
.bg-sky-DEFAULT\/8 { background: rgba(14,165,233,0.08) !important; }
html.dark .bg-sky-DEFAULT\/8 { background: rgba(14,165,233,0.18) !important; }
.text-sky-dark { color: var(--sky-dark) !important; }
html.dark .text-sky-dark { color: #7dd3fc !important; }

/* stats strip text labels directly visible on bg */
.bg-band-1 .stat-label, .bg-band-2 .stat-label { color: var(--band-text-head) !important; }

/* Vehicle stock section heading + subtitle */
.bg-band-1 #stock h2, .bg-band-1 #stock p.text-slate-500 { color: var(--band-text-head) !important; }

/* Contact section headings */
.bg-band-2 #contact h2, .bg-band-2 #contact h3 { color: var(--band-text-head) !important; }
.bg-band-2 #contact p.text-slate-500, .bg-band-2 #contact p.text-navy { color: var(--band-text-body) !important; }

/* ── BACKGROUND BANDS ──
   The bg image is 1792×2390px (portrait).
   background-attachment:fixed on mobile sizes the image relative to the
   VIEWPORT (not the element) → portrait image appears massively zoomed.

   FIX:
   • Desktop (≥1025px): fixed + cover = proper parallax, looks great.
   • Mobile/tablet (<1025px): scroll + auto width + 100% height →
     image scales to fill the element height, never crops or zooms.
     The dark overlay still tints it so text stays readable. */

@media (min-width: 1025px) {
  .bg-band-1,
  .bg-band-2 {
    background-attachment: fixed;
    background-size: cover;
    background-position: center center;
  }
}

@media (max-width: 1024px) {
  .bg-band-1,
  .bg-band-2 {
    background-attachment: scroll !important;
    background-size: auto 100% !important;  /* scale by height, never crop */
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }
}

/* theme toggle no longer used; keep selector hidden to avoid any stray icon */
#theme-toggle { display: none !important; }

/* mobile toggle shares the same behavior */


/* ── Smooth global transitions ── */
section, .service-card, .faq-item, .testimonial-card, .partner-logo-wrap {
  transition: background-color 0.25s, color 0.2s, border-color 0.25s;
}

/* ── NOISE TEXTURE OVERLAY ── */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: -1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.02'/%3E%3C/svg%3E");
  pointer-events: none;
}

/* ══════════════════════════════════════════
   NAVBAR
══════════════════════════════════════════ */
#navbar { transition: background 0.4s, box-shadow 0.4s, padding 0.3s; }
#navbar.scrolled {
  background: rgba(15,23,42,0.97) !important;
  box-shadow: 0 4px 32px rgba(0,0,0,.5);
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
.nav-link {
  position: relative;
  color: rgba(255,255,255,0.85);
  transition: color 0.2s;
}
.nav-link::after {
  content: '';
  position: absolute; bottom: -4px; left: 0; right: 0;
  height: 2px; background: var(--sky);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.25s ease;
}
.nav-link:hover { color: #fff; }
.nav-link:hover::after { transform: scaleX(1); }

/* ── MOBILE MENU ── */
#mobile-menu {
  transform: translateY(-100%);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s;
  opacity: 0;
}
#mobile-menu.open { transform: translateY(0); opacity: 1; }

/* ══════════════════════════════════════════
   HERO SLIDER — CLEAN CROSSFADE
══════════════════════════════════════════ */
.hero-swiper { width: 100%; height: 100vh; min-height: 580px; }
.hero-swiper .swiper-slide { position: relative; overflow: hidden; }

.hero-swiper .swiper-slide img {
  width: 100%; height: 100%; object-fit: cover;
  transform-origin: center center;
  filter: brightness(0.68);
  transition: filter 0.8s ease;
  will-change: transform;
}
.hero-swiper .swiper-slide-active img {
  animation: hero-zoom 4s ease-out forwards;
  filter: brightness(0.68);
}
@keyframes hero-zoom {
  0%   { transform: scale(1.06); }
  100% { transform: scale(1.0); }
}

.slide-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(8,15,30,0.70) 0%, rgba(8,15,30,0.40) 50%, rgba(8,15,30,0.72) 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 1.5rem;
}

.hero-badge {
  background: rgba(14,165,233,.18);
  border: 1px solid rgba(14,165,233,.5);
  backdrop-filter: blur(8px);
  box-shadow: 0 0 16px rgba(14,165,233,.18);
}

/* ══════════════════════════════════════════
   HERO TEXT ANIMATIONS
══════════════════════════════════════════ */
.slide-overlay .hero-badge,
.slide-overlay h1,
.slide-overlay .hero-sub,
.slide-overlay .hero-tagline,
.slide-overlay .hero-btns { opacity: 0; }

.swiper-slide-active .slide-overlay .hero-badge  { animation: hero-in 0.55s ease-out 0.15s both; }
.swiper-slide-active .slide-overlay h1           { animation: hero-in 0.65s ease-out 0.30s both; }
.swiper-slide-active .slide-overlay .hero-sub    { animation: hero-in 0.55s ease-out 0.50s both; }
.swiper-slide-active .slide-overlay .hero-tagline { animation: hero-in 0.55s ease-out 0.62s both; }
.swiper-slide-active .slide-overlay .hero-btns   { animation: hero-in 0.55s ease-out 0.78s both; }

@keyframes hero-in {
  0%   { opacity: 0; transform: translateY(22px); }
  100% { opacity: 1; transform: translateY(0); }
}

.swiper-slide-prev .slide-overlay .hero-badge,
.swiper-slide-prev .slide-overlay h1,
.swiper-slide-prev .slide-overlay .hero-sub,
.swiper-slide-prev .slide-overlay .hero-tagline,
.swiper-slide-prev .slide-overlay .hero-btns {
  animation: hero-out 0.35s ease-in forwards !important;
}
@keyframes hero-out {
  0%   { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(-14px); }
}

.swiper-button-next, .swiper-button-prev {
  color: #fff !important;
  background: rgba(14,165,233,.3);
  border-radius: 50%;
  width: 48px !important; height: 48px !important;
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.15);
  transition: background 0.2s;
}
.swiper-button-next:hover, .swiper-button-prev:hover { background: rgba(14,165,233,.55); }
.swiper-button-next::after, .swiper-button-prev::after { font-size: 0.9rem !important; font-weight: 900; }
.swiper-pagination-bullet { background: #fff !important; opacity: .5; width: 8px; height: 8px; }
.swiper-pagination-bullet-active { opacity: 1 !important; background: #0EA5E9 !important; width: 24px; border-radius: 4px; }

/* ══════════════════════════════════════════
   UTILITY & SHARED COMPONENTS
══════════════════════════════════════════ */
.grad-text { background: linear-gradient(90deg, #0EA5E9, #38BDF8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.grad-text-gold { background: linear-gradient(90deg, #F59E0B, #FDE68A); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* ── SERVICE CARDS ── */
.service-card {
  position: relative; overflow: hidden;
  transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .35s;
}
.service-card::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(14,165,233,0.05) 0%, transparent 60%);
  opacity: 0; transition: opacity 0.3s;
}
.service-card:hover { transform: translateY(-10px); box-shadow: 0 24px 60px rgba(14,165,233,.16); }
.service-card:hover::before { opacity: 1; }
.service-icon-ring { background: linear-gradient(135deg, #0EA5E9, #0284C7); }

/* ── STATS ── */
.stat-number { font-feature-settings: 'tnum'; }

/* ── STEP CONNECTOR ── */
.step-line {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, rgba(14,165,233,.6), rgba(14,165,233,.2));
  margin: 0 0.75rem; position: relative;
}
.step-line::after {
  content: '';
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%; background: var(--sky);
}

/* ── VEHICLE CARDS ── */
.vehicle-card { display: flex; flex-direction: column; height: 100%; transition: transform .25s ease, box-shadow .25s; }
.vehicle-card:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(14,165,233,.15); }
.card-body  { flex: 1; display: flex; flex-direction: column; padding: 11px 13px; }
.card-title { font-size: 0.95rem; font-weight: 700; line-height: 1.3; color: #f1f5f9; }
.card-sub   { font-size: 0.75rem; color: #94a3b8; margin-top: 2px; font-weight: 500; }
.card-cat   { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #38bdf8; margin-bottom: 4px; }
.card-specs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 10px; }
.card-spec  { display: flex; align-items: center; gap: 4px; font-size: 0.68rem; color: #bae6fd; background: rgba(14,165,233,0.15); border: 1px solid rgba(14,165,233,0.35); padding: 3px 8px; border-radius: 6px; font-weight: 600; }
.card-btn   {
  display: block; width: 100%; text-align: center; margin-top: 12px;
  padding: 9px 0; border-radius: 10px; font-size: 0.78rem; font-weight: 700;
  color: #fff; background: linear-gradient(135deg,#F59E0B,#D97706);
  box-shadow: 0 3px 10px rgba(245,158,11,.3); transition: filter .2s, transform .15s;
}
.card-btn:hover { filter: brightness(1.08); transform: scale(1.02); }
.card-img   { position: relative; height: 190px; overflow: hidden; background: #0f172a; flex-shrink: 0; }
@media (max-width: 640px) { .card-img { height: 170px; } }
.card-img img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s; padding: 4px; }
.card-img:hover img { transform: scale(1.04); }
.stock-swiper { padding-bottom: 2.5rem !important; }
.stock-swiper .swiper-slide { height: auto !important; display: flex; align-items: stretch; }
.stock-swiper .swiper-pagination-bullet { background: #0EA5E9 !important; }

/* ── PARTNERS SECTION ── */
.partners-grid { display: grid; gap: 14px; }
@media (min-width: 480px)  { .partners-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px)  { .partners-grid { grid-template-columns: repeat(3, 1fr); } }
.partner-logo-wrap {
  border-radius: 14px; padding: 14px 16px;
  display: flex; flex-direction: column; align-items: center;
  text-align: center; height: 100%;
  transition: box-shadow .25s, border-color .25s, transform .25s;
  border: 1px solid var(--border-card);
}
.partner-logo-wrap:hover { box-shadow: 0 6px 24px rgba(14,165,233,.13); border-color: rgba(14,165,233,.35); transform: translateY(-3px); }
.partner-logo-img-box {
  width: 100%; height: 80px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 2px solid #cbd5e1;
  border-radius: 12px; overflow: hidden;
  padding: 10px 18px; flex-shrink: 0; margin-bottom: 12px;
  transition: border-color 0.25s, box-shadow 0.25s;
}
.partner-logo-wrap:hover .partner-logo-img-box { border-color: #0EA5E9; box-shadow: 0 4px 16px rgba(14,165,233,0.18); }
.partner-logo-img-box img { max-height: 52px; max-width: 150px; width: auto; height: auto; object-fit: contain; }
.partner-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 0.65rem; font-weight: 700; margin-top: 8px;
  padding: 2px 8px; border-radius: 999px;
}

/* ── CONTACT ── */
.contact-item { transition: background .25s, transform .2s; border-radius: 12px; }
.contact-item:hover { background: rgba(14,165,233,.06); transform: translateX(4px); }

/* ── WHATSAPP FLOAT ── */
.wa-float {
  position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 9999;
  width: 48px; height: 48px; border-radius: 50%;
  background: linear-gradient(135deg, #25D366, #128C7E);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 22px rgba(37,211,102,.5);
  transition: transform .25s, box-shadow .25s;
}
.wa-float:hover { transform: scale(1.1); box-shadow: 0 10px 30px rgba(37,211,102,.65); }
.wa-float-ping {
  position: absolute; width: 100%; height: 100%; border-radius: 50%;
  background: rgba(37,211,102,.4);
  animation: ping 2s cubic-bezier(0,0,.2,1) infinite;
}
@keyframes ping { 75%,100%{ transform:scale(1.6); opacity:0; } }

/* ── SCROLL TO TOP ── */
#scroll-top {
  position: fixed;
  bottom: calc(1.5rem + 48px + 8px); right: 1.5rem; z-index: 9998;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(15,23,42,0.85); backdrop-filter: blur(8px);
  border: 1.5px solid rgba(14,165,233,0.35);
  display: flex; align-items: center; justify-content: center;
  color: #fff; cursor: pointer;
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.3s, transform 0.3s, background 0.2s;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}
#scroll-top.visible { opacity: 1; transform: translateY(0); }
#scroll-top:hover { background: var(--sky); border-color: var(--sky); }

/* ── BUTTONS ── */
.btn-primary {
  background: linear-gradient(135deg, #0EA5E9, #0284C7);
  transition: filter .25s, transform .2s, box-shadow .2s;
  box-shadow: 0 4px 20px rgba(14,165,233,.4);
}
.btn-primary:hover { filter: brightness(1.1); transform: scale(1.03); box-shadow: 0 6px 28px rgba(14,165,233,.55); }
.btn-gold { background: linear-gradient(135deg, #F59E0B, #D97706); transition: filter .25s, transform .2s; }
.btn-gold:hover { filter: brightness(1.1); transform: scale(1.03); }
.btn-outline { border: 2px solid rgba(255,255,255,.75); transition: background .25s, color .25s, border-color .25s; }
.btn-outline:hover { background: rgba(255,255,255,1); color: #0F172A; border-color: #fff; }
.wa-send-btn { background: linear-gradient(135deg, #25D366, #128C7E); transition: filter .25s, transform .2s; }
.wa-send-btn:hover { filter: brightness(1.08); transform: scale(1.02); }

/* ── TESTIMONIALS ── */
.testimonial-card { transition: transform .3s, box-shadow .3s; }
.testimonial-card:hover { transform: translateY(-6px); box-shadow: 0 16px 40px rgba(0,0,0,.08); }

/* star rating output for review/testimonial widgets */
.stars-out { color: #F59E0B; }
.stars-out .empty { color: #334155; }

/* ── FAQ ACCORDION ── */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.3s; }
.faq-answer.open { max-height: 400px; }
.faq-chevron { transition: transform 0.3s; }
.faq-item.open .faq-chevron { transform: rotate(180deg); }

/* ── TICKER STRIP ── */
.ticker-track { display: flex; width: max-content; animation: ticker 32s linear infinite; }
.ticker-track:hover { animation-play-state: paused; }
@keyframes ticker { 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }

/* ── PROGRESS BAR ── */
#page-progress {
  position: fixed; top: 0; left: 0; z-index: 9999;
  height: 3px; width: 0%;
  background: linear-gradient(90deg, #0EA5E9, #F59E0B);
  transition: width 0.1s linear;
}

/* ── HOVER LIFT ── */
.hover-lift { transition: transform 0.25s cubic-bezier(.34,1.56,.64,1); }
.hover-lift:hover { transform: translateY(-4px); }

/* ── LIGHTBOX ── */
#img-lightbox {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(0,0,0,0.96);
  display: none; align-items: center; justify-content: center;
  flex-direction: column; overflow: hidden;
  animation: lbFadeIn 0.2s ease;
}
@keyframes lbFadeIn { from{opacity:0} to{opacity:1} }
#img-lightbox.open { display: flex; }
#lb-img { max-width: 96vw; max-height: 82vh; object-fit: contain; border-radius: 8px; box-shadow: 0 24px 80px rgba(0,0,0,.8); user-select: none; }
#lb-thumbs { display:flex; gap:8px; overflow-x:auto; padding:10px 16px; max-width:96vw; }
#lb-thumbs::-webkit-scrollbar { height:3px; }
#lb-thumbs::-webkit-scrollbar-thumb { background:rgba(255,255,255,.2); border-radius:99px; }
.lb-thumb { flex-shrink:0; width:64px; height:48px; border-radius:6px; overflow:hidden; border:2px solid transparent; cursor:pointer; transition:border-color .2s; }
.lb-thumb.active { border-color: #0EA5E9; }
.lb-thumb img { width:100%; height:100%; object-fit:contain; background:#111; }
#lb-counter { position:absolute; top:16px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,.55); color:#fff; font-size:0.78rem; font-weight:700; padding:4px 14px; border-radius:99px; backdrop-filter:blur(4px); letter-spacing:.06em; }
#lb-close { position:absolute; top:12px; right:16px; background:rgba(255,255,255,.12); border:none; color:#fff; width:40px; height:40px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:background .2s; }
#lb-close:hover { background:rgba(255,255,255,.25); }
.lb-arrow { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.12); border:none; color:#fff; width:44px; height:44px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1rem; transition:background .2s; }
.lb-arrow:hover { background:rgba(255,255,255,.25); }
#lb-prev { left:12px; }
#lb-next { right:12px; }

/* ── PANEL GALLERY ── */
.panel-gallery-wrap { position:relative; background:#0f172a; width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; overflow:hidden; cursor:zoom-in; }
.panel-gallery-wrap img { max-width:100%; max-height:100%; object-fit:contain; padding:6px; }

/* ── MOBILE ── */
@media (max-width: 640px) {
  .hero-swiper { height: 100svh; }
  .step-line { display: none; }
  .swiper-button-next, .swiper-button-prev { display: none !important; }
}

#panel-thumbs-row::-webkit-scrollbar { height: 6px; }
#panel-thumbs-row::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:99px; }
