/* =====================================================================
   Stellar Web Designs — Modern UI Layer
   Loaded AFTER overall.css / style.css / responsive.css.
   Purpose: modernise the existing markup (spacing, depth, motion,
   sliders, tabs, cards) without changing the HTML structure.
   Brand palette is kept: teal #024d5a / aqua #6db9c7 / navy #000a47.
   ===================================================================== */

:root {
  --sw-teal:        #024d5a;
  --sw-teal-700:    #023b45;
  --sw-teal-500:    #0a6577;
  --sw-aqua:        #6db9c7;
  --sw-aqua-300:    #a7dbe4;
  --sw-aqua-100:    #e4f4f7;
  --sw-navy:        #000a47;
  --sw-ink:         #10233a;
  --sw-slate:       #5a6b7b;
  --sw-mist:        #f2f6f8;
  --sw-line:        rgba(2, 77, 90, .12);
  --sw-card:        #ffffff;

  --sw-grad:        linear-gradient(120deg, #024d5a 0%, #0a6577 45%, #6db9c7 100%);
  --sw-grad-soft:   linear-gradient(160deg, #f4fafb 0%, #e7f3f6 100%);
  --sw-grad-navy:   linear-gradient(130deg, #000a47 0%, #023b45 60%, #0a6577 100%);

  --sw-shadow-sm:   0 2px 8px rgba(2, 40, 47, .06);
  --sw-shadow-md:   0 14px 34px -14px rgba(2, 40, 47, .22);
  --sw-shadow-lg:   0 34px 70px -24px rgba(2, 40, 47, .30);
  --sw-ring:        0 0 0 4px rgba(109, 185, 199, .28);

  --sw-r:           16px;
  --sw-r-lg:        26px;
  --sw-r-sm:        10px;
  --sw-pill:        999px;

  --sw-ease:        cubic-bezier(.22, 1, .36, 1);
  --sw-dur:         .45s;
}

/* ---------------------------------------------------------------------
   0. Base polish
   ------------------------------------------------------------------- */
html { scroll-behavior: smooth; }

/* Horizontal-overflow guard on <body> only.
   NOTE: never put overflow-x on <html> here — on the root it propagates to
   the viewport and clamps the scrollport height (page stops scrolling).
   `clip` contains stray horizontal overflow without making <body> a
   scroll container (which `hidden` would). */
body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  color: var(--sw-ink);
  overflow-x: clip;
}

::selection { background: var(--sw-aqua); color: #fff; }

img { image-rendering: auto; }

/* Reserve space for not-yet-loaded lazy images so sections don't
   collapse to zero height before the JS lazy-loader swaps in src
   (prevents layout shift + the "blank section" effect on slow loads). */
.potfolio .tab-img img.lazy:not([src]),
.busniess-item img.lazy:not([src]),
section.contact .contact-img img.lazy:not([src]) {
  min-height: 120px;
  background:
    linear-gradient(100deg, rgba(255,255,255,0) 20%, rgba(255,255,255,.5) 50%, rgba(255,255,255,0) 80%),
    var(--sw-mist);
  background-size: 220% 100%, auto;
  animation: sw-shimmer 1.4s ease-in-out infinite;
  border-radius: 10px;
}
@keyframes sw-shimmer { to { background-position: -220% 0, 0 0; } }
/* never let the placeholder blow up small logo images */
.advertise-slider img, .banner-img img, .header img, .footer img,
.test-img img, .slick-cloned img { min-height: 0 !important; background: none !important; animation: none !important; }

/* Nicer default scrollbar (desktop) */
@media (min-width: 992px) {
  * { scrollbar-width: thin; scrollbar-color: var(--sw-aqua) transparent; }
  *::-webkit-scrollbar { width: 10px; height: 10px; }
  *::-webkit-scrollbar-thumb { background: var(--sw-aqua); border-radius: 999px; border: 2px solid #fff; }
}

/* Scroll progress bar */
#sw-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: var(--sw-grad);
  z-index: 100000; transition: width .1s linear;
  box-shadow: 0 0 12px rgba(10, 101, 119, .6);
}

/* ---------------------------------------------------------------------
   1. Typography / section headings
   ------------------------------------------------------------------- */
.section-content .heading,
.section-content--alt .heading {
  color: var(--sw-navy);
  letter-spacing: -.02em;
  font-weight: 700;
  position: relative;
}

.section-content.text-center .heading::after,
.section-content--alt.text-center .heading::after {
  content: "";
  display: block;
  width: 64px; height: 4px;
  margin: 18px auto 0;
  border-radius: 999px;
  background: var(--sw-grad);
}

.section-content.text-left .heading::after {
  content: "";
  display: block;
  width: 64px; height: 4px;
  margin: 16px 0 0;
  border-radius: 999px;
  background: var(--sw-grad);
}

.section-content p { color: var(--sw-slate); }

/* Small eyebrow helper (used by JS-inserted labels if any) */
.sw-eyebrow {
  display: inline-block;
  font-size: 13px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--sw-teal-500);
  background: var(--sw-aqua-100);
  padding: 6px 14px; border-radius: 999px;
  margin-bottom: 14px;
}

/* ---------------------------------------------------------------------
   2. Buttons
   ------------------------------------------------------------------- */
.btn,
a.btn,
.btn-1,
.design-box-btn a,
.design-detail-btn a,
.contact-btn .btn,
.package-btn a {
  border-radius: var(--sw-pill) !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
  transition: transform var(--sw-dur) var(--sw-ease),
              box-shadow var(--sw-dur) var(--sw-ease),
              background-color var(--sw-dur) var(--sw-ease),
              color var(--sw-dur) var(--sw-ease) !important;
}

/* Primary pill — gradient + lift + sheen */
.btn,
a.btn,
.design-box-btn a,
.contact-btn .btn {
  position: relative;
  overflow: hidden;
  background: var(--sw-grad) !important;
  color: #fff !important;
  border: 0 !important;
  padding: 12px 26px !important;
  box-shadow: 0 12px 24px -12px rgba(2, 77, 90, .65);
}

.btn::after,
a.btn::after,
.design-box-btn a::after,
.contact-btn .btn::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.35) 50%, transparent 80%);
  transform: translateX(-120%);
  transition: transform .7s var(--sw-ease);
}

.btn:hover,
a.btn:hover,
.design-box-btn a:hover,
.contact-btn .btn:hover {
  background: var(--sw-grad-navy) !important;
  color: #fff !important;
  transform: translateY(-3px);
  box-shadow: 0 22px 40px -14px rgba(2, 77, 90, .6);
}

.btn:hover::after,
a.btn:hover::after,
.design-box-btn a:hover::after,
.contact-btn .btn:hover::after { transform: translateX(120%); }

/* Secondary / outline pill */
.btn-1,
.design-detail-btn a {
  background: #fff !important;
  color: var(--sw-teal) !important;
  border: 1.5px solid var(--sw-aqua) !important;
  padding: 10px 24px !important;
}
.btn-1:hover,
.design-detail-btn a:hover {
  background: var(--sw-aqua-100) !important;
  color: var(--sw-teal-700) !important;
  transform: translateY(-3px);
  box-shadow: var(--sw-shadow-md);
}

.themeBtn,
.themeBtn--gradient {
  border-radius: var(--sw-pill) !important;
  background: var(--sw-grad) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 14px 28px -14px rgba(2, 77, 90, .6);
  transition: transform var(--sw-dur) var(--sw-ease), box-shadow var(--sw-dur) var(--sw-ease) !important;
}
.themeBtn:hover { transform: translateY(-3px); color: #fff !important; }
.themeBtn::after, .themeBtn::before { display: none !important; }

/* ---------------------------------------------------------------------
   3. Header — sticky glass
   ------------------------------------------------------------------- */
.header {
  position: sticky;
  top: 0;
  z-index: 9990;
  background: rgba(255, 255, 255, .82);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--sw-line);
  transition: box-shadow .3s var(--sw-ease), background .3s var(--sw-ease);
}
.header.sw-stuck {
  box-shadow: 0 12px 30px -18px rgba(2, 40, 47, .35);
  background: rgba(255, 255, 255, .94);
}

.top-bar {
  background: var(--sw-grad-navy);
  padding: 8px 50px;
}
.top-bar-con ul {
  display: flex;
  align-items: center;
  gap: 26px;
  justify-content: flex-end;
}
.top-bar-con ul li a {
  color: #dbeef2;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.top-bar-con ul li a:hover { color: #fff; }
.top-bar-con ul li a i { color: var(--sw-aqua-300); font-size: 16px; }
/* email pinned to the far left of the bar */
.top-bar-con ul li.top-bar-email { margin-right: auto; }

.main-header { padding: 12px 50px; transition: padding .3s var(--sw-ease); }
.header.sw-stuck .main-header { padding: 5px 50px; }

/* logo left / nav+CTA grouped on the right — kills the empty gap after the menu */
@media (min-width: 992px) {
  .main-header .head-seconds { justify-content: space-between; flex-wrap: nowrap; }
  .main-header .head-seconds > [class*="col-"] { flex: 0 0 auto; max-width: none; width: auto; }
  .nav-menu > ul { justify-content: flex-end; gap: 26px; }
  .nav-menu > ul > li:last-child { margin-left: 14px; }  /* breathing room before "Get a Quote" only */
}

.header-logo a img { width: 172px; transition: width .3s var(--sw-ease); }
.header.sw-stuck .header-logo a img { width: 150px; }

.nav-menu ul li a {
  color: var(--sw-ink);
  font-weight: 600;
  padding: 6px 2px;
}
.nav-menu > ul > li > a::before {
  height: 3px !important;
  bottom: -4px !important;
  border-radius: 999px;
  background: var(--sw-grad) !important;
}
.nav-menu ul li:where(:hover, .active) a { color: var(--sw-teal) !important; }

/* Dropdown — card style, anchored directly under its parent item */
.nav-menu > ul > li { position: relative; }
.nav-menu ul.sub-menu {
  background: #fff !important;
  border-radius: 14px;
  box-shadow: var(--sw-shadow-lg);
  border: 1px solid var(--sw-line);
  padding: 10px !important;
  min-width: 262px;
  white-space: nowrap;
  left: 0 !important;
  right: auto !important;
  top: 100% !important;
  transform: none !important;
  margin-top: 0;
}
/* invisible bridge so the menu doesn't close while the cursor crosses the gap */
.nav-menu ul.sub-menu::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: -12px;
  height: 14px;
}
.nav-menu li:hover .sub-menu { animation: sw-fade-down .28s var(--sw-ease) both; }
.sub-menu li a {
  color: var(--sw-ink) !important;
  margin: 0 !important;
  padding: 9px 14px;
  border-radius: 9px;
  font-size: 14px;
  transition: background .2s var(--sw-ease), color .2s var(--sw-ease), padding-left .2s var(--sw-ease);
}
.sub-menu li a:hover {
  background: var(--sw-aqua-100) !important;
  color: var(--sw-teal-700) !important;
  padding-left: 20px;
}

.header .btn {
  padding: 11px 24px !important;
}

/* ---------------------------------------------------------------------
   4. Hero / Banner
   ------------------------------------------------------------------- */
.banner {
  position: relative;
  min-height: 88vh;
  padding: 90px 45px;
  background: var(--sw-grad-soft);
  overflow: hidden;
}
/* Animated ambient blobs */
.banner::before,
.banner::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: .55;
  z-index: 0;
  pointer-events: none;
}
.banner::before {
  width: 480px; height: 480px;
  top: -170px; right: -110px;
  background: radial-gradient(circle at 30% 30%, #6db9c7, rgba(109,185,199,0));
  will-change: transform;
  animation: sw-float-a 16s ease-in-out infinite;
}
.banner::after {
  width: 420px; height: 420px;
  bottom: -190px; left: -130px;
  background: radial-gradient(circle at 60% 40%, #024d5a, rgba(2,77,90,0));
  opacity: .26;
  will-change: transform;
  animation: sw-float-b 20s ease-in-out infinite;
}
.banner .container-fluid { position: relative; z-index: 2; }

.banner-con h3 {
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.12;
  letter-spacing: -.02em;
  font-weight: 700;
  color: var(--sw-navy);
  text-transform: none;
}
.banner-con h3::first-line { color: var(--sw-navy); }
/* accent on the word "Brand" (JS wraps it in .sw-grad-text) — solid brand
   colour, kept simple so it is always visible across browsers */
.banner-con h3 .sw-grad-text {
  color: #0a6577 !important;
  -webkit-text-fill-color: #0a6577 !important;
  font-weight: inherit;
}

.banner-con h6 {
  font-size: 18px;
  line-height: 1.6;
  color: var(--sw-slate);
  max-width: 34em;
}

.banner-menu ul li {
  font-weight: 500;
  color: var(--sw-ink);
  display: flex; align-items: center;
}
.banner-menu ul li i {
  background: var(--sw-grad) !important;
  color: #fff !important;
  width: 26px; height: 26px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px;
  font-size: 16px !important;
  margin-right: 12px !important;
  box-shadow: 0 6px 14px -6px rgba(2, 77, 90, .7);
}

.banner-ratting {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--sw-line);
  border-radius: var(--sw-pill);
  padding: 10px 20px !important;
  box-shadow: var(--sw-shadow-sm);
}
.banner-ratting ul { gap: 10px; flex-wrap: wrap; }
.banner-ratting ul li { color: var(--sw-slate); font-size: 14px; }
.banner-ratting ul li b { color: var(--sw-navy); }
.ratting i { color: #f5a623 !important; }

.banner-images {
  gap: 14px;
  padding: 26px 0 0;
  flex-wrap: wrap;
}
.banner-images .banner-img {
  background: #fff;
  border: 1px solid var(--sw-line);
  border-radius: 12px;
  padding: 10px 14px;
  box-shadow: var(--sw-shadow-sm);
  transition: transform var(--sw-dur) var(--sw-ease), box-shadow var(--sw-dur) var(--sw-ease);
}
.banner-images .banner-img:hover { transform: translateY(-4px); box-shadow: var(--sw-shadow-md); }
.banner-images .banner-img img { max-height: 34px; width: auto; }

/* Hero slider — framed device-style card */
.banner-slider {
  position: relative;
  border-radius: var(--sw-r-lg);
  overflow: hidden;
  box-shadow: var(--sw-shadow-lg);
  border: 1px solid rgba(255,255,255,.6);
  background: #fff;
  transform: translateZ(0);
  will-change: transform;
}
.banner-slider .banner-slider-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.banner-slider .slick-dots {
  position: absolute; bottom: 14px !important; top: auto !important;
  display: flex !important; justify-content: center; gap: 8px;
}
.banner-slider .slick-dots li button {
  background: rgba(255,255,255,.6);
  border: 0; width: 8px; height: 8px; border-radius: 999px;
}
.banner-slider .slick-dots li.slick-active button {
  background: #fff; width: 26px;
}

/* Floating stat badge on hero image */
.sw-hero-col { position: relative; }
.sw-hero-badge {
  position: absolute;
  left: 4px; bottom: 30px;
  background: #fff;
  border-radius: 18px;
  padding: 14px 18px;
  box-shadow: var(--sw-shadow-lg);
  border: 1px solid var(--sw-line);
  display: flex; align-items: center; gap: 12px;
  z-index: 5;
  animation: sw-float-y 5s ease-in-out infinite;
}
.sw-hero-badge .sw-hero-badge__icon {
  width: 40px; height: 40px; border-radius: 12px;
  background: var(--sw-grad);
  display: grid; place-items: center;
  color: #fff; font-size: 20px;
}
.sw-hero-badge b { display: block; color: var(--sw-navy); font-size: 18px; line-height: 1; }
.sw-hero-badge span { font-size: 12px; color: var(--sw-slate); }

/* ---------------------------------------------------------------------
   5. Counters + logo marquee
   ------------------------------------------------------------------- */
.homecounter { padding: 78px 0 0; }

.counter-main {
  gap: 18px;
  flex-wrap: wrap;
}
.counter-item {
  flex: 1 1 170px;
  background: #fff;
  border: 1px solid var(--sw-line);
  border-radius: var(--sw-r);
  padding: 26px 18px;
  box-shadow: var(--sw-shadow-sm);
  transition: transform var(--sw-dur) var(--sw-ease), box-shadow var(--sw-dur) var(--sw-ease);
}
.counter-item:hover {
  transform: translateY(-6px);
  box-shadow: var(--sw-shadow-md);
  border-color: var(--sw-aqua);
}
.counter-number {
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 800;
  color: var(--sw-teal) !important;
  align-items: baseline;
}
.counter-number .counter { color: var(--sw-teal) !important; }
.counter-number .nan { color: var(--sw-aqua) !important; }
.counter-inner-item p { color: var(--sw-slate); font-weight: 600; font-size: 15px; margin-top: 6px; }

/* Client / platform logo strip */
.homecounter .container-fluid.p-0 {
  max-width: 1180px;
  margin: 64px auto 0;
  padding: 34px 20px 8px !important;
  border-top: 1px solid var(--sw-line);
}
.sw-strip-label {
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sw-slate);
  margin: 0 0 26px;
}
.advertise-slider {
  padding: 6px 0 0;
  margin: 0;
  position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.advertise-slider .slick-track { display: flex; align-items: center; }
.advertise-slider .ad-slider-item,
.advertise-slider .slick-slide {
  border: 0 !important;
  height: 84px;
  display: flex !important;
  align-items: center;
  justify-content: center;
}
.advertise-slider .ad-slider-item img {
  max-height: 50px;
  max-width: 150px;
  width: auto !important;
  margin: 0 auto;
  filter: grayscale(1);
  opacity: .58;
  transition: filter var(--sw-dur) var(--sw-ease), opacity var(--sw-dur) var(--sw-ease), transform var(--sw-dur) var(--sw-ease);
}
.advertise-slider .ad-slider-item:hover img {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.08);
}
/* hide any clone that failed to get a real src (broken-image fallback) */
.advertise-slider img:not([src]),
.advertise-slider img[src=""] { visibility: hidden; }

/* ---------------------------------------------------------------------
   6. Portfolio tabs + gallery
   ------------------------------------------------------------------- */
.potfolio { padding: 84px 0; background: linear-gradient(180deg, #fff, var(--sw-mist)); }

.nav-tabs {
  gap: 10px;
  border: 0;
  justify-content: center;
  flex-wrap: wrap;
}
.nav-tabs .nav-link,
.nav-tabs .nav-item.nav-link {
  border: 1.5px solid var(--sw-line) !important;
  border-radius: var(--sw-pill) !important;
  padding: 9px 20px !important;
  font-weight: 600 !important;
  font-size: 14px;
  color: var(--sw-slate) !important;
  background: #fff !important;
  transition: all var(--sw-dur) var(--sw-ease) !important;
}
.nav-tabs .nav-link:hover {
  border-color: var(--sw-aqua) !important;
  color: var(--sw-teal-700) !important;
  background: var(--sw-aqua-100) !important;
  transform: translateY(-2px);
}
.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
  color: #fff !important;
  background: var(--sw-grad) !important;
  border-color: transparent !important;
  box-shadow: 0 14px 26px -12px rgba(2, 77, 90, .6);
}

.tab-images { padding: 46px 0 0; }
.tab-images .col-md-3 { padding: 10px; }

a.tab-img,
.tab-img {
  height: auto;
  aspect-ratio: 4 / 3;
  border-radius: var(--sw-r);
  overflow: hidden;
  margin: 0 !important;
  box-shadow: var(--sw-shadow-sm);
  display: block;
}
.tab-img img {
  transition: transform .6s var(--sw-ease);
}
.tab-img::before {
  background: linear-gradient(180deg, rgba(2,77,90,0) 30%, rgba(2,10,71,.72)) !important;
}
.tab-img::after {
  color: #fff;
  font-size: 44px !important;
  text-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.tab-img:hover img { transform: scale(1.08); }
.tab-img:hover { box-shadow: var(--sw-shadow-lg); }

/* Logo Design portfolio tiles are square, fully-composed artwork — show the
   whole logo, centred, instead of cropping/zooming into a 4:3 box like the
   website-screenshot categories. Used on portfolio.php's "Logo Design" tab
   and on logo-design.php's portfolio grid. */
a.tab-img[href*="/portfolio/logo-design/"] {
  aspect-ratio: 1 / 1;
}
a.tab-img[href*="/portfolio/logo-design/"] img {
  object-fit: contain !important;
  object-position: center !important;
  background: var(--sw-navy);
}
a.tab-img[href*="/portfolio/logo-design/"]:hover img { transform: scale(1.04); }

/* ---------------------------------------------------------------------
   7. Designs / pricing section
   ------------------------------------------------------------------- */
.design { padding: 90px 0; background: #fff !important; }

.design .nav-tabs { margin-bottom: 40px; }

.tabsWrapper { position: relative; }
.tabContent2 { animation: sw-fade-up .5s var(--sw-ease) both; }

.design-boxes { padding: 10px 0 0; }
.design-boxes .col-md-4 { padding: 0 14px; display: flex; }

/* vertical gap + equal-height cards for every package grid
   (home .design-boxes, packages tabs, service pages' .design, combo-pack).
   Scoped to the actual card column (.col-md-4) only — NOT [class*="col-"],
   which also matched .col-lg-12 (the tabs/intro wrapper) and broke the
   Designs section's tab bar by flexing it against the card grid. */
.design-boxes .col-md-4,
.design .row > .col-md-4,
.combo-pack .row > .col-md-4 { margin-bottom: 28px; }

.design .row > .col-md-4 { display: flex; }

.design-box {
  position: relative;
  width: 100%;
  background: #fff;
  border: 1px solid var(--sw-line) !important;
  border-radius: var(--sw-r-lg);
  padding: 34px 26px !important;
  margin: 0 !important;
  box-shadow: var(--sw-shadow-sm);
  overflow: hidden;
  transition: transform var(--sw-dur) var(--sw-ease), box-shadow var(--sw-dur) var(--sw-ease), border-color var(--sw-dur) var(--sw-ease);
}
/* combo-pack has no .design-boxes wrapper — make its cards fill the column too */
.combo-pack .col-md-4 { display: flex; }
.design-box::before {
  content: "";
  position: absolute; left: 0; top: 0; right: 0; height: 5px;
  background: var(--sw-grad);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--sw-dur) var(--sw-ease);
}
.design-box:hover {
  transform: translateY(-10px);
  box-shadow: var(--sw-shadow-lg);
  border-color: transparent !important;
}
.design-box:hover::before { transform: scaleX(1); }

.design-box-con h4 {
  font-size: 15px !important;
  font-weight: 700;
  color: var(--sw-slate);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.design-box-con h4 del { color: var(--sw-slate); opacity: .8; }
.design-box-con h3 {
  font-size: 44px !important;
  font-weight: 800;
  color: var(--sw-navy);
  padding: 8px 0 6px !important;
}
.design-box-con p { color: var(--sw-slate); font-size: 14px; }

.design-box-menu {
  height: 168px;
  margin: 20px 0 !important;
  padding-right: 8px;
  border-top: 1px dashed var(--sw-line);
  padding-top: 16px;
}
.design-box-menu ul li {
  position: relative;
  padding-left: 26px;
  margin: 9px 0 !important;
  font-size: 13.5px;
  color: var(--sw-ink);
  line-height: 1.5;
}
.design-box-menu ul li::before {
  content: "\ea41";
  font-family: boxicons;
  position: absolute; left: 0; top: 1px;
  color: var(--sw-teal);
  font-size: 16px;
}
.design-box-menu ul li b { color: var(--sw-navy); }
.design-box-menu::-webkit-scrollbar-thumb { background: var(--sw-aqua); }

.design-contact { border-top: 1px solid var(--sw-line); }
.design-contact ul { padding: 16px 0; }
.design-contact a { color: var(--sw-slate); font-size: 13px; font-weight: 600; }
.design-contact a i { color: var(--sw-teal); }

.design-detail-btn { margin-top: 6px; }

/* Highlight the middle card in each row of three */
.design-boxes .row > .col-md-4:nth-child(3n+2) .design-box {
  border-color: var(--sw-aqua) !important;
  box-shadow: 0 30px 60px -30px rgba(2, 77, 90, .45);
}
.design-boxes .row > .col-md-4:nth-child(3n+2) .design-box::before { transform: scaleX(1); }

/* ---------------------------------------------------------------------
   8. Business / process section
   ------------------------------------------------------------------- */
.business {
  padding: 96px 0;
  position: relative;
  background: var(--sw-grad-navy) !important;
  background-image: var(--sw-grad-navy) !important;
}
.business .section-content--alt .heading,
.business .section-content .heading { color: #fff; }
.business .section-content--alt .heading::after { background: var(--sw-aqua); }
.business .section-content p,
.business .section-content--alt p { color: #cfe6ea; }

.busniess-boxes svg { opacity: .35; }
.busniess-boxes svg path { stroke: var(--sw-aqua) !important; }

.busniess-box {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--sw-r-lg);
  padding: 30px 24px;
  backdrop-filter: blur(6px);
  transition: transform var(--sw-dur) var(--sw-ease), background var(--sw-dur) var(--sw-ease);
}
.busniess-box:hover {
  transform: translateY(-8px);
  background: rgba(255, 255, 255, .12);
}
.busniess-item {
  background: var(--sw-grad) !important;
  width: 132px; padding: 44px !important;
  box-shadow: 0 20px 40px -18px rgba(0, 0, 0, .5);
}
.busniess-inner-item h3 { color: #fff; font-weight: 700; }
.busniess-inner-item p { color: #bcd7dc; }

/* ---------------------------------------------------------------------
   9. Testimonials
   ------------------------------------------------------------------- */
.testimonial { padding: 92px 0; background: linear-gradient(180deg, var(--sw-mist), #fff); }

.test-slider { margin: 0; }
.test-slider .slick-list { margin: 0 -14px; }          /* compensates the slide margin */
.test-slider .slick-slide { height: auto; }
.test-slider .slick-slide > .test-item,               /* slick may wrap or not */
.test-slider > .test-item.slick-slide { margin: 6px 14px; }

.test-item {
  position: relative;
  height: auto !important;
  min-height: 430px;
  margin: 6px 14px;                                    /* 28px gutter between cards */
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--sw-line) !important;
  border-radius: var(--sw-r-lg);
  padding: 32px 26px !important;
  box-shadow: var(--sw-shadow-sm);
  transition: transform var(--sw-dur) var(--sw-ease), box-shadow var(--sw-dur) var(--sw-ease);
}
.test-con { margin-top: auto; }
.test-con .user { margin-top: 14px; }
.test-item:hover { transform: translateY(-8px); box-shadow: var(--sw-shadow-md); }
.test-item::before {
  content: "\201C";
  position: absolute; top: 6px; right: 24px;
  font-size: 90px; line-height: 1;
  color: var(--sw-aqua);
  opacity: .28;
  font-family: Georgia, serif;
}
.test-inner-item h4 { color: var(--sw-navy); font-weight: 700; font-size: 18px; }
.test-img {
  width: 84px !important; height: 84px;
  border-radius: 999px;
  overflow: hidden;
  border: 3px solid #fff;
  box-shadow: var(--sw-ring);
  margin: 12px auto !important;
}
.test-img img { width: 100%; height: 100%; object-fit: cover; }
.test-ratting i { color: #f5a623 !important; font-size: 17px !important; }
.test-con p { color: var(--sw-slate); font-size: 13.5px; line-height: 1.7; }
.test-con .user i { color: var(--sw-teal); font-weight: 700; font-style: normal; }

/* ---------------------------------------------------------------------
   9b. Reviews page — static grid (no slider) + Show more
   ------------------------------------------------------------------- */
.reviews-slider.sw-reviews-grid { display: block !important; }
.reviews-slider.sw-reviews-grid .slick-list,
.reviews-slider.sw-reviews-grid .slick-track {
  display: block !important;
  width: auto !important;
  transform: none !important;
  opacity: 1 !important;
}
.reviews-slider.sw-reviews-grid .reviews-item {
  display: block !important;
  width: 100% !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.reviews-slider.sw-reviews-grid .reviews-item > .row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  margin: 0;
}
.reviews-slider.sw-reviews-grid .reviews-item > .row > [class*="col-"] {
  max-width: 100% !important;
  width: auto !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.reviews-slider.sw-reviews-grid .test-item { min-height: 100%; margin-top: 0 !important; }

.sw-showmore {
  display: block;
  margin: 40px auto 0;
  padding: 14px 40px;
  border: 0;
  border-radius: var(--sw-pill);
  background: var(--sw-grad);
  color: #fff;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: .01em;
  box-shadow: 0 16px 30px -14px rgba(2, 77, 90, .6);
  transition: transform .3s var(--sw-ease), box-shadow .3s var(--sw-ease);
}
.sw-showmore:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -14px rgba(2, 77, 90, .6); }
.sw-showmore.sw-done {
  background: var(--sw-mist);
  color: var(--sw-slate);
  box-shadow: none;
  cursor: default;
}

@media (max-width: 991px) {
  .reviews-slider.sw-reviews-grid .reviews-item > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .reviews-slider.sw-reviews-grid .reviews-item > .row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------------------------------------------------------------------
   10. Contact block
   ------------------------------------------------------------------- */
section.contact { padding: 88px 0; background: #fff; }
section.contact .heading { color: var(--sw-navy); }
.contact-form input,
.contact-form textarea,
.contact-form__fields input {
  border: 1.5px solid var(--sw-line) !important;
  border-radius: 12px !important;
  padding: 13px 16px !important;
  background: var(--sw-mist);
  transition: border-color .25s var(--sw-ease), box-shadow .25s var(--sw-ease), background .25s var(--sw-ease);
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form__fields input:focus {
  border-color: var(--sw-aqua) !important;
  box-shadow: var(--sw-ring);
  background: #fff;
  outline: 0;
}
.contact-content a {
  font-weight: 600;
  color: var(--sw-teal);
  transition: color .2s var(--sw-ease), transform .2s var(--sw-ease);
}
.contact-content a:hover { color: var(--sw-teal-700); transform: translateX(4px); }

/* ---------------------------------------------------------------------
   11. Footer
   ------------------------------------------------------------------- */
.footer {
  background: var(--sw-grad-navy) !important;
  color: #cfe0e4;
  padding: 76px 0 0 !important;
  border: 0 !important;
  position: relative;
}
.footer::before {
  content: "";
  position: absolute; left: 0; right: 0; top: 0; height: 4px;
  background: var(--sw-grad);
}
.footer .footer-nav-menu h5 {
  color: #fff;
  font-weight: 700;
  letter-spacing: .02em;
  margin-bottom: 16px;
}
.footer .footer-nav-menu li a,
.footer .design-contact a { color: #b7cfd4 !important; transition: color .2s var(--sw-ease), padding-left .2s var(--sw-ease); }
.footer .footer-nav-menu li a:hover { color: #fff !important; padding-left: 6px; }
.footer .contact-number { color: var(--sw-aqua-300) !important; }
.footer .contact-email {
  color: var(--sw-aqua-300) !important;
  font-weight: 600;
  word-break: break-word;
  transition: color .2s var(--sw-ease);
}
.footer .contact-email:hover { color: #fff !important; }
.footer .footer-nav-menu li { margin: 9px 0; }
.footer .car-images { margin-top: 22px; }
.footer .card-img { background: #fff; border-radius: 10px; padding: 8px 12px; display: inline-block; }
.footer-copyright {
  border-top: 1px solid rgba(255, 255, 255, .12) !important;
  margin-top: 56px !important;
  padding: 22px 0 !important;
}
.footer-copyright .copyright p,
.footer-copyright .copyright a { color: #9fbcc2 !important; font-size: 13px; }
.footer-copyright .copyright a:hover { color: #fff !important; }

/* ---------------------------------------------------------------------
   12. Floating CTA rail + back-to-top
   ------------------------------------------------------------------- */
.cta-single__icon {
  border-radius: var(--sw-pill) 0 0 var(--sw-pill) !important;
  box-shadow: var(--sw-shadow-md) !important;
}
.cta-single__icon > span { color: var(--sw-teal) !important; }

#sw-top {
  position: fixed;
  right: 22px; bottom: 92px;   /* clears the live-chat bubble in the corner */
  width: 46px; height: 46px;
  border-radius: 999px;
  border: 0;
  display: grid; place-items: center;
  background: var(--sw-grad);
  color: #fff; font-size: 22px;
  box-shadow: var(--sw-shadow-lg);
  opacity: 0; visibility: hidden;
  transform: translateY(14px);
  transition: opacity .3s var(--sw-ease), transform .3s var(--sw-ease), visibility .3s;
  z-index: 9995;
}
#sw-top.sw-show { opacity: 1; visibility: visible; transform: translateY(0); }
#sw-top:hover { transform: translateY(-3px) scale(1.05); }

/* ---------------------------------------------------------------------
   13. Scroll reveal
   ------------------------------------------------------------------- */
.sw-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .7s var(--sw-ease), transform .7s var(--sw-ease);
  will-change: opacity, transform;
}
.sw-reveal.sw-in { opacity: 1; transform: none; }
.sw-reveal.sw-d1 { transition-delay: .08s; }
.sw-reveal.sw-d2 { transition-delay: .16s; }
.sw-reveal.sw-d3 { transition-delay: .24s; }
.sw-reveal.sw-d4 { transition-delay: .32s; }

/* ---------------------------------------------------------------------
   14. Keyframes
   ------------------------------------------------------------------- */
@keyframes sw-fade-up   { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes sw-fade-down { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes sw-float-y   { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes sw-float-a    { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-40px, 40px) scale(1.08); } }
@keyframes sw-float-b    { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(50px, -30px) scale(1.12); } }

/* ---------------------------------------------------------------------
   15. Responsive
   ------------------------------------------------------------------- */
@media (max-width: 991px) {
  .banner { min-height: auto; padding: 60px 20px; }
  .sw-hero-badge { left: 12px; bottom: 12px; }
  .banner-slider { margin-top: 34px; }
  .top-bar, .main-header { padding-left: 20px; padding-right: 20px; }
  .design-boxes .row > .col-md-4:nth-child(3n+2) .design-box { box-shadow: var(--sw-shadow-sm); }
}

@media (max-width: 600px) {
  .counter-item { flex-basis: 100%; }
  .section-content.text-center .heading::after { margin-top: 14px; }
  #sw-top { right: 14px; bottom: 14px; }
}

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