/* ================================================================
   Singh Softech Footer v2.0 — Modern Glassmorphism Design
   Fully responsive: 1200 · 1024 · 768 · 600 · 480 · 360
   ================================================================ */
:where(.ssf-prefooter,.ssf-footer,.ssf-top-btn) * { box-sizing:border-box; }

/* ── CSS Variables ─────────────────────────────────────────── */
:root {
  --ssf-bg:       #07050f;
  --ssf-surf:     #110c1e;
  --ssf-surf2:    #1a1232;
  --ssf-card:     rgba(255,255,255,.04);
  --ssf-border:   rgba(160,80,255,.16);
  --ssf-border2:  rgba(160,80,255,.28);
  --ssf-grad:     linear-gradient(135deg,#c620d4,#e8148c 42%,#ff6b2b 78%,#f5c842);
  --ssf-grad2:    linear-gradient(135deg,#ff5cf0,#ff3a8a 42%,#ff7b30 78%,#ffd700);
  --ssf-glow:     rgba(198,32,212,.22);
  --ssf-pink:     #ff70c8;
  --ssf-muted:    #8a729e;
  --ssf-text:     #f0e8ff;
  --ssf-wa:       #25D366;
  --ssf-radius:   16px;
  --ssf-font:     'Poppins', sans-serif;
}

/* ================================================================
   PRE-FOOTER CTA
   ================================================================ */
.ssf-prefooter {
  background: var(--ssf-surf);
  border-top: 1px solid var(--ssf-border);
  padding: 80px 6%;
  position: relative;
  overflow: hidden;
  font-family: var(--ssf-font);
}
.ssf-pf-glow {
  position: absolute; border-radius: 50%;
  filter: blur(90px); pointer-events: none;
}
.ssf-glow-l { width:500px;height:500px;background:var(--ssf-glow);top:-180px;left:-100px; }
.ssf-glow-r { width:420px;height:420px;background:rgba(232,20,140,.18);bottom:-120px;right:-60px; }
.ssf-pf-noise {
  position:absolute;inset:0;opacity:.025;pointer-events:none;
  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'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.ssf-pf-inner {
  position:relative;z-index:1;max-width:1200px;margin:0 auto;
  display:flex;align-items:center;gap:56px;flex-wrap:wrap;
}
.ssf-pf-content { flex:1;min-width:280px; }
.ssf-pf-badge {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(232,20,140,.12);border:1px solid rgba(232,20,140,.3);
  border-radius:100px;padding:6px 16px;
  font-size:11px;font-weight:700;color:var(--ssf-pink);
  letter-spacing:.07em;text-transform:uppercase;margin-bottom:18px;
}
.ssf-pf-heading {
  font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:900;color:#fff;
  line-height:1.12;margin:0 0 14px;letter-spacing:-.025em;
}
.ssf-pf-heading em {
  font-style:normal;
  background:var(--ssf-grad2);-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text;
}
.ssf-pf-sub { color:var(--ssf-muted);font-size:15px;line-height:1.7;margin:0 0 32px; }
.ssf-pf-actions { display:flex;flex-wrap:wrap;gap:12px; }

/* CTA Buttons */
.ssf-cta-btn {
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--ssf-font);font-weight:700;font-size:14px;
  padding:14px 28px;border-radius:100px;text-decoration:none;
  border:none;cursor:pointer;transition:transform .22s,box-shadow .22s;
  white-space:nowrap;line-height:1;
}
.ssf-cta-primary {
  background:var(--ssf-grad);color:#fff;
  box-shadow:0 4px 28px rgba(232,20,140,.45);
  background-size:200%;animation:ssfShift 4s ease infinite;
}
.ssf-cta-primary:hover { transform:translateY(-3px);box-shadow:0 10px 38px rgba(232,20,140,.65);color:#fff; }
.ssf-cta-wa { background:var(--ssf-wa);color:#fff;box-shadow:0 4px 22px rgba(37,211,102,.38); }
.ssf-cta-wa:hover { transform:translateY(-3px);box-shadow:0 8px 30px rgba(37,211,102,.58);color:#fff; }
.ssf-cta-outline {
  background:rgba(255,255,255,.07);color:var(--ssf-text);
  border:1.5px solid rgba(200,100,255,.38);backdrop-filter:blur(8px);
}
.ssf-cta-outline:hover { background:rgba(232,20,140,.12);border-color:#e8148c;color:#fff;transform:translateY(-3px); }
.ssf-arrow-icon { transition:transform .2s; }
.ssf-cta-outline:hover .ssf-arrow-icon { transform:translateX(4px); }

/* Pre-footer card */
.ssf-pf-card {
  width:280px;flex-shrink:0;
  background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border:1px solid var(--ssf-border2);border-radius:24px;
  padding:28px 24px;backdrop-filter:blur(20px);
}
.ssf-pf-card-top { display:flex;align-items:center;gap:14px;margin-bottom:20px; }
.ssf-pf-logo { height:44px;width:auto;object-fit:contain;border-radius:8px; }
.ssf-pf-logo-text {
  font-size:16px;font-weight:900;
  background:var(--ssf-grad2);-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text;
}
.ssf-pf-stars { font-size:15px;color:#ffd700;margin-bottom:3px; }
.ssf-pf-rating-text strong { display:block;font-size:13px;color:#fff;font-weight:700; }
.ssf-pf-rating-text span { font-size:11px;color:var(--ssf-muted); }
.ssf-pf-stats {
  display:flex;align-items:center;
  background:rgba(255,255,255,.05);border:1px solid var(--ssf-border);
  border-radius:12px;padding:14px;margin-bottom:18px;gap:0;
}
.ssf-pf-stat { flex:1;text-align:center; }
.ssf-pf-stat strong { display:block;font-size:16px;font-weight:800;color:#fff; }
.ssf-pf-stat span { font-size:10px;color:var(--ssf-muted);text-transform:uppercase;letter-spacing:.06em; }
.ssf-pf-stat-sep { width:1px;height:32px;background:var(--ssf-border);flex-shrink:0; }
.ssf-card-cta {
  display:block;text-align:center;
  background:var(--ssf-grad);color:#fff;
  font-family:var(--ssf-font);font-weight:700;font-size:13px;
  padding:12px;border-radius:12px;text-decoration:none;
  transition:opacity .2s,transform .2s;
}
.ssf-card-cta:hover { opacity:.9;transform:translateY(-1px);color:#fff; }

/* ================================================================
   MAIN FOOTER
   ================================================================ */
.ssf-footer {
  background:var(--ssf-bg);
  font-family:var(--ssf-font);
  color:var(--ssf-text);
  border-top:1px solid var(--ssf-border);
}
.ssf-footer-body { padding:64px 0 52px; }
.ssf-container { max-width:max-content;margin:0 auto;padding:0 6%; }
.ssf-footer-grid {
  display:grid;
  grid-template-columns:1.7fr 1fr 1.1fr 1.4fr;
  gap:52px;
}

/* ── Brand column ─────────────────────────────────────────── */
.ssf-brand-col {}
.ssf-footer-logo { height:50px;width:auto;max-width:180px;object-fit:contain;display:block;margin-bottom:16px; }
.ssf-brand-name {
  display:inline-block;font-size:22px;font-weight:900;margin-bottom:16px;text-decoration:none;
  background:var(--ssf-grad2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.ssf-brand-tagline { color:var(--ssf-muted);font-size:13px;line-height:1.78;margin:0 0 22px; }

/* Rating badge */
.ssf-rating-badge {
  display:flex;align-items:center;gap:12px;
  background:var(--ssf-card);border:1px solid var(--ssf-border);
  border-radius:14px;padding:14px 16px;margin-bottom:22px;
}
.ssf-rb-stars { font-size:15px;color:#ffd700;flex-shrink:0; }
.ssf-rb-info strong { display:block;font-size:13px;color:#fff;font-weight:700;margin-bottom:2px; }
.ssf-rb-info span { font-size:11px;color:var(--ssf-muted); }

/* Partners */
.ssf-partners-row { margin-bottom:22px; }
.ssf-partners-label {
  font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ssf-muted);display:block;margin-bottom:8px;
}
.ssf-partners-chips { display:flex;flex-wrap:wrap;gap:5px; }
.ssf-partner-chip {
  background:rgba(255,255,255,.05);border:1px solid var(--ssf-border);
  border-radius:6px;padding:3px 10px;font-size:10px;font-weight:600;color:var(--ssf-muted);
  transition:border-color .2s,color .2s;
}
.ssf-partner-chip:hover { border-color:rgba(232,20,140,.4);color:var(--ssf-pink); }

/* Social */
.ssf-socials { display:flex;gap:8px;flex-wrap:wrap; }
.ssf-soc {
  width:38px;height:38px;
  background:var(--ssf-card);border:1px solid var(--ssf-border);
  border-radius:10px;display:flex;align-items:center;justify-content:center;
  color:var(--ssf-muted);text-decoration:none;transition:all .25s;flex-shrink:0;
}
.ssf-soc:hover { background:rgba(232,20,140,.15);border-color:rgba(232,20,140,.5);color:var(--ssf-pink);transform:translateY(-3px); }
.ssf-soc-wa { }
.ssf-soc-wa:hover { background:rgba(37,211,102,.15);border-color:rgba(37,211,102,.5);color:var(--ssf-wa); }

/* ── Nav columns ──────────────────────────────────────────── */
.ssf-col-head {
  font-size:11px;font-weight:700;color:#fff;text-transform:uppercase;
  letter-spacing:.1em;margin:0 0 20px;
  display:flex;align-items:center;gap:9px;
}
.ssf-col-accent {
  display:inline-block;width:3px;height:18px;flex-shrink:0;
  background:var(--ssf-grad);border-radius:3px;
}
.ssf-acc-toggle {
  display:none;margin-left:auto;background:none;border:1px solid var(--ssf-border);
  color:var(--ssf-muted);width:24px;height:24px;border-radius:6px;cursor:pointer;
  font-size:16px;line-height:1;padding:0;transition:all .2s;flex-shrink:0;
}
.ssf-acc-toggle:hover { border-color:rgba(232,20,140,.4);color:var(--ssf-pink); }

.ssf-nav-list {
  list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;
  transition:max-height .3s ease,opacity .3s ease;overflow:hidden;
}
.ssf-nav-list li a {
  font-size:13px;color:var(--ssf-muted);text-decoration:none;
  display:flex;align-items:center;gap:6px;
  transition:color .2s,gap .2s;line-height:1.5;
}
.ssf-link-arrow { color:rgba(232,20,140,.5);transition:all .2s;flex-shrink:0; }
.ssf-nav-list li a:hover { color:var(--ssf-pink); }
.ssf-nav-list li a:hover .ssf-link-arrow { color:#e8148c;transform:translateX(2px); }

/* Cities 2-col layout on desktop */
.ssf-nav-cities { columns:2;display:block; }
.ssf-nav-cities li { margin-bottom:10px;break-inside:avoid; }

/* ── Contact column ───────────────────────────────────────── */
.ssf-contact-col {}
.ssf-contact-list { display:flex;flex-direction:column;gap:12px;margin-bottom:16px; }
.ssf-contact-item {
  display:flex;align-items:flex-start;gap:12px;text-decoration:none;
  transition:opacity .2s;
}
.ssf-contact-item:hover { opacity:.82; }
.ssf-ci-icon {
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  background:rgba(232,20,140,.1);border:1px solid rgba(232,20,140,.22);
  display:flex;align-items:center;justify-content:center;color:var(--ssf-pink);
}
.ssf-contact-phone .ssf-ci-icon { background:rgba(198,32,212,.12);border-color:rgba(198,32,212,.25); }
.ssf-contact-item span { display:block;font-size:10px;color:var(--ssf-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px; }
.ssf-contact-item strong { display:block;font-size:12.5px;color:var(--ssf-text);font-weight:600;line-height:1.4; }

/* WhatsApp CTA */
.ssf-wa-cta {
  display:flex;align-items:center;gap:12px;text-decoration:none;
  background:linear-gradient(135deg,rgba(37,211,102,.12),rgba(37,211,102,.05));
  border:1px solid rgba(37,211,102,.25);border-radius:14px;padding:14px;
  margin-bottom:14px;transition:all .25s;
}
.ssf-wa-cta:hover { border-color:rgba(37,211,102,.5);background:rgba(37,211,102,.15);transform:translateY(-2px); }
.ssf-wa-cta > svg { color:var(--ssf-wa);flex-shrink:0;width:24px;height:24px; }
.ssf-wa-cta strong { display:block;font-size:13px;color:#fff;font-weight:700;margin-bottom:2px; }
.ssf-wa-cta span { font-size:11px;color:var(--ssf-muted); }

/* Mini CTA */
.ssf-mini-cta {
  background:linear-gradient(135deg,rgba(198,32,212,.1),rgba(232,20,140,.05));
  border:1px solid rgba(198,32,212,.2);border-radius:14px;padding:16px;
}
.ssf-mini-cta p { font-size:12.5px;color:var(--ssf-muted);margin:0 0 10px;line-height:1.5; }
.ssf-mini-btn {
  display:inline-flex;align-items:center;gap:5px;
  background:var(--ssf-grad);color:#fff;font-family:var(--ssf-font);font-weight:700;
  font-size:12px;padding:9px 18px;border-radius:100px;text-decoration:none;
  transition:transform .2s,box-shadow .2s;
}
.ssf-mini-btn:hover { transform:translateY(-2px);box-shadow:0 6px 20px rgba(232,20,140,.5);color:#fff; }

/* ================================================================
   SUB-FOOTER
   ================================================================ */
.ssf-subfooter {
  background:rgba(0,0,0,.4);border-top:1px solid var(--ssf-border);padding:18px 0;
}
.ssf-sf-inner {
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.ssf-sf-copy { font-size:12px;color:var(--ssf-muted);display:flex;align-items:center;flex-wrap:wrap;gap:8px; }
.ssf-sf-dot {
  width:3px;height:3px;border-radius:50%;
  background:rgba(255,255,255,.2);flex-shrink:0;
}
.ssf-sf-nav { display:flex;flex-wrap:wrap;gap:14px; }
.ssf-sf-nav a { font-size:12px;color:var(--ssf-muted);text-decoration:none;transition:color .2s; }
.ssf-sf-nav a:hover { color:var(--ssf-pink); }

/* ================================================================
   BACK-TO-TOP BUTTON
   ================================================================ */
.ssf-top-btn {
  position:fixed;bottom:28px;right:28px;z-index:9998;
  width:46px;height:46px;border-radius:13px;
  background:var(--ssf-grad);border:none;cursor:pointer;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 22px rgba(198,32,212,.5);
  opacity:0;transform:translateY(16px) scale(.85);
  transition:opacity .3s,transform .3s,box-shadow .2s;pointer-events:none;
}
.ssf-top-btn.ssf-top-visible { opacity:1;transform:none;pointer-events:all; }
.ssf-top-btn:hover { box-shadow:0 8px 32px rgba(198,32,212,.7);transform:translateY(-3px) !important; }

/* ================================================================
   ANIMATIONS
   ================================================================ */
@keyframes ssfShift { 0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%} }

/* ================================================================
   RESPONSIVE  ── 1024px  (tablet landscape)
   ================================================================ */
@media (max-width:1024px) {
  .ssf-footer-grid {
    grid-template-columns:1fr 1fr;
    gap:36px 40px;
  }
  .ssf-brand-col { grid-column:1 / -1; }
  .ssf-nav-cities { columns:3; }
  .ssf-pf-inner { gap:32px; }
  .ssf-pf-card { width:260px; }
}

/* ================================================================
   RESPONSIVE  ── 900px
   ================================================================ */
@media (max-width:900px) {
  .ssf-pf-card { width:100%;max-width:460px; }
  .ssf-pf-inner { flex-direction:column;align-items:flex-start; }
  .ssf-pf-stats { justify-content:space-around; }
}

/* ================================================================
   RESPONSIVE  ── 768px  (tablet portrait)
   ================================================================ */
@media (max-width:768px) {
  .ssf-prefooter { padding:52px 5%; }
  .ssf-footer-body { padding:48px 0 36px; }
  .ssf-footer-grid {
    grid-template-columns:1fr 1fr;
    gap:28px 32px;
  }
  .ssf-brand-col { grid-column:1 / -1; }
  .ssf-nav-cities { columns:2; }
  .ssf-pf-inner { align-items:center;text-align:center; }
  .ssf-pf-actions { justify-content:center; }
  .ssf-pf-card { align-self:center; }
  .ssf-pf-card-top { justify-content:center; }
  .ssf-sf-inner { flex-direction:column;align-items:center;text-align:center; }
  .ssf-sf-nav { justify-content:center; }
  .ssf-sf-copy { justify-content:center; }
}

/* ================================================================
   RESPONSIVE  ── 600px  (mobile — accordion activated)
   ================================================================ */
@media (max-width:600px) {
  .ssf-footer-grid { grid-template-columns:1fr;gap:0; }
  .ssf-brand-col { grid-column:1;padding-bottom:28px;border-bottom:1px solid var(--ssf-border); }

  /* Accordion header */
  .ssf-nav-col {
    border-bottom:1px solid var(--ssf-border);
    padding:18px 0;
  }
  .ssf-col-head { margin-bottom:0; }
  .ssf-acc-toggle { display:flex;align-items:center;justify-content:center; }

  /* Collapsed by default on mobile */
  .ssf-acc-body {
    max-height:0 !important;
    opacity:0;
    overflow:hidden;
    transition:max-height .35s ease,opacity .3s;
    margin-top:0;
  }
  .ssf-nav-col.ssf-acc-open .ssf-acc-body {
    opacity:1;
    margin-top:16px;
    max-height:600px !important;
  }

  .ssf-contact-col { padding-top:24px; }
  .ssf-nav-cities { columns:1; }

  .ssf-pf-actions { flex-direction:column; }
  .ssf-cta-btn { justify-content:center;width:100%; }
  .ssf-pf-card { width:100%; }

  .ssf-rating-badge { flex-wrap:wrap; }
  .ssf-top-btn { bottom:16px;right:16px;width:40px;height:40px;border-radius:10px; }
}

/* ================================================================
   RESPONSIVE  ── 480px  (small mobile)
   ================================================================ */
@media (max-width:480px) {
  .ssf-prefooter { padding:40px 4%; }
  .ssf-container { padding:0 4%; }
  .ssf-pf-heading { font-size:1.4rem; }
  .ssf-pf-sub { font-size:13px; }
  .ssf-cta-btn { font-size:13px;padding:13px 20px; }
  .ssf-brand-name,.ssf-footer-logo { margin-bottom:14px; }
  .ssf-sf-nav { gap:10px; }
  .ssf-sf-nav a { font-size:11px; }
  .ssf-sf-copy { font-size:11px; }
}

/* ================================================================
   RESPONSIVE  ── 360px  (very small)
   ================================================================ */
@media (max-width:360px) {
  .ssf-prefooter { padding:32px 4%; }
  .ssf-pf-heading { font-size:1.25rem; }
  .ssf-cta-btn { font-size:12px;padding:12px 18px; }
  .ssf-socials { gap:6px; }
  .ssf-soc { width:34px;height:34px;border-radius:8px; }
  .ssf-pf-stats { gap:0; }
  .ssf-footer-body { padding:36px 0 28px; }
}

/* ================================================================
   FULL-WIDTH BREAKOUT — works on 99% of themes
   (Also applied via inline style when Full Width Mode is ON)
   ================================================================ */

/* Generic page content containers — neutralise width limits */
.site-footer .ssf-prefooter,
.site-footer .ssf-footer,
.footer-inner .ssf-prefooter,
.footer-inner .ssf-footer,
.footer-widgets .ssf-prefooter,
footer .ssf-prefooter,
footer .ssf-footer {
  width: auto;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Class injected by inline style when Full Width Mode = ON */
.ssf-fw-wrap {
  width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  right: 50%;
  overflow-x: hidden;
}

/* Extra safety: remove any inherited max-width */
.ssf-prefooter,
.ssf-footer {
  max-width: 100% !important;
}

/* ── ssf-site-footer-wrap full-width mechanism ─────────────── */
.ssf-site-footer-wrap.ssf-fw-wrap {
  display: block;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  max-width: 100vw !important;
  overflow-x: hidden;
}
