/* ============================================================
   RST2 design system + page patches
   Split from main.css (tokens + .rst2-* + audit patches)
   ============================================================ */


/* â”€â”€ Root design tokens â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
:root {
  --c-blue:       #29ABE2;
  --c-red:        #E63329;
  --c-green:      #37B34A;
  --c-charcoal:   #414042;
  --c-dark:       #19191A;
  --c-ink:        #111215;
  --c-body:       #4A4A52;
  --c-muted:      #717179;
  --c-border:     #E2E4EA;
  --c-surface:    #F6F7FA;
  --c-white:      #FFFFFF;
  --sp-section:   110px;
  --sp-section-sm: 68px;
  --radius-card:  10px;
}

/* â”€â”€ Shared utilities â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.rst2-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-blue);
  margin-bottom: 14px;
}
.rst2-eyebrow--blue  { color: var(--c-blue); }
.rst2-eyebrow--dim   { color: rgba(255,255,255,0.55); }
.rst2-eyebrow--white { color: rgba(255,255,255,0.80); }

.rst2-section-title {
  font-size: clamp(1.75rem, 3.2vw, 2.6rem);
  font-weight: 800;
  line-height: 1.18;
  color: var(--c-dark);
  letter-spacing: -0.02em;
  margin: 0 0 22px;
}
.rst2-section-title--white { color: #ffffff !important; }

.rst2-body-text {
  font-size: 1rem;
  line-height: 1.78;
  color: var(--c-body);
  margin-bottom: 18px;
}

.rst2-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-blue) !important;
  text-decoration: none;
  transition: gap 0.22s ease;
}
.rst2-link-arrow:hover { gap: 12px; color: var(--c-blue) !important; }
.rst2-link-arrow svg { flex-shrink: 0; }
.rst2-link-arrow--white,
.rst2-link-arrow--white:hover { color: rgba(255,255,255,0.82) !important; }

/* Section header: title left + "View All" link right */
.rst2-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}
.rst2-section-header--dark .rst2-section-title { color: #ffffff; }
.rst2-section-header > div:first-child { flex: 1; min-width: 0; }
.rst2-section-header .rst2-solutions-tools,
.rst2-section-header .rst2-work-tools {
  flex: 0 0 auto;
  margin-left: auto;
}
.rst2-section-header .rst2-link-arrow { flex-shrink: 0; white-space: nowrap; padding-bottom: 6px; }

/* Shared buttons */
.rst2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 32px;
  border-radius: 4px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
  white-space: nowrap;
}
.rst2-btn--white {
  background: #ffffff;
  color: var(--c-dark) !important;
  border: 2px solid #ffffff;
}
.rst2-btn--white:hover {
  background: transparent;
  color: #ffffff !important;
  box-shadow: none;
}
.rst2-btn--outline-white {
  background: transparent;
  color: rgba(255,255,255,0.90) !important;
  border: 1.5px solid rgba(255,255,255,0.35);
  margin-top: 32px;
}
.rst2-btn--outline-white:hover {
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.65);
  color: #ffffff !important;
}

/* removed garbled comment */
.rst2-hero-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 32px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease;
  white-space: nowrap;
  cursor: pointer;
}
.rst2-hero-btn--primary {
  background: #ffffff;
  color: var(--c-dark) !important;
  border: 2px solid #ffffff;
  margin-right: 16px;
}
.rst2-hero-btn--primary:hover {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: #ffffff !important;
}
.rst2-hero-btn--outline {
  background: transparent;
  color: #ffffff !important;
  border: 2px solid rgba(255,255,255,0.55);
}
.rst2-hero-btn--outline:hover {
  border-color: #ffffff;
  background: rgba(255,255,255,0.08);
  color: #ffffff !important;
}

/* removed garbled comment */
.tp-shop-slider-subtitle {
  display: inline-block;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--c-blue) !important;
  margin-bottom: 18px !important;
  background: rgba(255,255,255,0.08);
  padding: 6px 14px;
  border-radius: 3px;
  border-left: 3px solid var(--c-blue);
}
.tp-shop-slider-title {
  font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
  font-weight: 800 !important;
  line-height: 1.14 !important;
  color: #ffffff !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 36px !important;
}
.tp-shop-slider-btn-box {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0 !important;
}

/* â”€â”€ Trust strip â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.rst2-trust-strip {
  background: #ffffff;
  border-bottom: 1px solid var(--c-border);
  box-shadow: 0 2px 16px rgba(0,0,0,0.04);
  position: relative;
  z-index: 10;
}
.rst2-trust-grid {
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.rst2-trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 30px 52px;
  gap: 5px;
  text-align: center;
  flex: 1;
}
.rst2-trust-num {
  display: block;
  font-size: clamp(1.6rem, 2.5vw, 2.1rem);
  font-weight: 800;
  color: var(--c-blue);
  line-height: 1.0;
  letter-spacing: -0.02em;
}
.rst2-trust-num sup {
  font-size: 0.55em;
  font-weight: 700;
  vertical-align: super;
}
.rst2-trust-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--c-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.rst2-trust-sep {
  width: 1px;
  background: var(--c-border);
  align-self: stretch;
  margin: 20px 0;
  flex-shrink: 0;
}

/* ── Who We Are ─────────────────────────────────────────────────── */
.rst2-about {
  position: relative;
  background:
    radial-gradient(ellipse 70% 50% at 100% 0%, rgba(41, 171, 226, 0.07), transparent 55%),
    linear-gradient(180deg, #f3f5f8 0%, #ffffff 42%, #ffffff 100%);
  padding: var(--sp-section) 0;
  overflow: hidden;
}
.rst2-about-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
  margin-bottom: clamp(48px, 6vw, 72px);
}
.rst2-about-intro .rst2-section-title {
  max-width: 16ch;
  margin-bottom: 22px;
}
.rst2-about-lede {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--c-body);
  margin: 0 0 14px;
  max-width: 36em;
}
.rst2-about-lede--sub {
  font-size: 0.95rem;
  color: var(--c-muted);
  margin-bottom: 28px;
}
.rst2-about-cta {
  margin-bottom: 36px;
}
.rst2-about-creds {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--c-border);
  max-width: 420px;
}
.rst2-about-cred {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: 16px;
  margin: 0;
}
.rst2-about-cred + .rst2-about-cred {
  padding-left: 16px;
  border-left: 1px solid var(--c-border);
}
.rst2-about-cred-val {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--c-dark);
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.rst2-about-cred-key {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--c-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.35;
}
.rst2-about-visual {
  margin: 0;
  position: relative;
}
.rst2-about-visual-frame {
  position: relative;
  overflow: hidden;
  border-radius: 2px;
  aspect-ratio: 4 / 3;
  background: var(--c-ink);
  box-shadow: 0 28px 60px -28px rgba(17, 18, 21, 0.45);
}
.rst2-about-visual-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, transparent 40%, rgba(17, 18, 21, 0.35) 100%);
  pointer-events: none;
}
.rst2-about-visual-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.rst2-about-visual:hover .rst2-about-visual-frame img {
  transform: scale(1.04);
}
.rst2-about-visual-cap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 20px;
  margin-top: 14px;
}
.rst2-about-visual-loc {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-blue);
}
.rst2-about-visual-note {
  font-size: 0.8rem;
  color: var(--c-muted);
}
.rst2-about-pillars {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}
.rst2-about-pillar {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 28px;
  margin: 0;
  border-right: 1px solid var(--c-border);
  transition: background 0.25s ease;
}
.rst2-about-pillar:first-child {
  padding-left: 0;
}
.rst2-about-pillar:last-child {
  border-right: none;
  padding-right: 0;
}
.rst2-about-pillar:hover .rst2-about-pillar-num {
  color: var(--c-blue);
}
.rst2-about-pillar-num {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: var(--c-muted);
  transition: color 0.25s ease;
}
.rst2-about-pillar-title {
  margin: 0 0 8px !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--c-dark) !important;
  line-height: 1.3 !important;
}
.rst2-about-pillar-desc {
  margin: 0 !important;
  font-size: 0.84rem !important;
  line-height: 1.6 !important;
  color: var(--c-muted) !important;
}
.rst2-about-industries {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 18px;
  margin: 28px 0 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--c-body);
}
.rst2-about-industries-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-muted);
}
.rst2-about-industries-list {
  color: var(--c-charcoal);
}

/* Legacy hooks kept for safety — no longer in markup */

/* removed garbled comment */
.rst2-clients {
  background: #ffffff;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  padding: 36px 0;
}
.rst2-clients-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--c-muted);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  line-height: 1.55;
  margin: 0;
  padding-right: 24px;
  border-right: 1px solid var(--c-border);
}

/* ── Solutions / Services slider ────────────────────────────────── */
.rst2-solutions {
  background: var(--c-surface);
  padding: var(--sp-section) 0;
  overflow: hidden;
}
.rst2-solutions-tools {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  flex: 0 0 auto;
}
.rst2-solutions-nav {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.rst2-solutions-prev,
.rst2-solutions-next {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--c-border);
  background: #fff;
  color: var(--c-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.rst2-solutions-prev:hover,
.rst2-solutions-next:hover,
.rst2-solutions-prev:focus-visible,
.rst2-solutions-next:focus-visible {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: #fff;
  outline: none;
}
.rst2-solutions-swiper {
  overflow: visible;
  margin-top: 4px;
}
.rst2-solutions-swiper .swiper-slide {
  height: auto;
}
.rst2-svc-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #ffffff;
  border: 1px solid var(--c-border);
  border-radius: 2px;
  overflow: hidden;
  text-decoration: none !important;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.rst2-svc-card:hover,
.rst2-svc-card:focus-visible {
  transform: translateY(-4px);
  border-color: var(--c-blue);
  outline: none;
}
.rst2-svc-img {
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: var(--c-border);
}
.rst2-svc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.rst2-svc-card:hover .rst2-svc-img img { transform: scale(1.04); }
.rst2-svc-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 20px 18px;
  gap: 8px;
}
.rst2-svc-title {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--c-dark) !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}
.rst2-svc-desc {
  font-size: 0.85rem !important;
  color: var(--c-muted) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rst2-svc-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--c-blue);
  margin-top: 6px;
  transition: gap 0.2s;
}
.rst2-svc-card:hover .rst2-svc-cta { gap: 10px; }
.rst2-svc-cta svg { stroke: currentColor; fill: none; }

/* Keep old grid class harmless if referenced elsewhere */
.rst2-solutions-grid { display: contents; }

/* ── Featured Work / Projects slider (4×1) ──────────────────────── */
.rst2-work {
  background: var(--c-ink);
  padding: var(--sp-section) 0;
  overflow: hidden;
}
.rst2-work-tools {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  flex: 0 0 auto;
}
.rst2-work-nav {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.rst2-work-prev,
.rst2-work-next {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.rst2-work-prev:hover,
.rst2-work-next:hover,
.rst2-work-prev:focus-visible,
.rst2-work-next:focus-visible {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: #fff;
  outline: none;
}
.rst2-work-swiper {
  overflow: visible;
  margin-top: 4px;
}
.rst2-work-swiper .swiper-slide {
  height: auto;
}
.rst2-work-item {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none !important;
  color: inherit;
  background: #16171b;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 2px;
  overflow: hidden;
  min-width: 0;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.rst2-work-item:hover,
.rst2-work-item:focus-visible {
  border-color: rgba(41, 171, 226, 0.45);
  outline: none;
  transform: translateY(-3px);
}
.rst2-work-media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 11;
  background: #0d0e11;
}
.rst2-work-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(8, 10, 14, 0.35) 100%);
  pointer-events: none;
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.rst2-work-item:hover .rst2-work-media::after {
  opacity: 1;
}
.rst2-work-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.rst2-work-item:hover .rst2-work-media img {
  transform: scale(1.05);
}
.rst2-work-meta {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 16px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background: #121317;
  flex: 1;
}
.rst2-work-meta-text {
  min-width: 0;
  flex: 1;
}
.rst2-work-location {
  display: block;
  margin: 0 0 6px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-blue);
  line-height: 1.3;
}
.rst2-work-title {
  margin: 0 !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #fff !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rst2-work-client {
  display: block;
  margin-top: 6px;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.48);
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rst2-work-go {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.16);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.rst2-work-go svg {
  stroke: currentColor;
  fill: none;
}
.rst2-work-item:hover .rst2-work-go,
.rst2-work-item:focus-visible .rst2-work-go {
  background: var(--c-blue);
  border-color: var(--c-blue);
  transform: translate(2px, -2px);
}

/* Legacy class hooks */
.rst2-work-grid { display: contents; }
.rst2-work-img,
.rst2-work-caption,
.rst2-work-badge,
.rst2-work-arrow { display: none; }

/* â”€â”€ Capabilities â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.rst2-capabilities {
  background: var(--c-dark);
  padding: var(--sp-section) 0;
}
.rst2-cap-body {
  font-size: 1rem;
  line-height: 1.78;
  color: rgba(255,255,255,0.72);
  margin-bottom: 0;
}
.rst2-cap-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.rst2-cap-item {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: background 0.2s;
}
.rst2-cap-item:first-child { border-top: 1px solid rgba(255,255,255,0.08); }
.rst2-cap-num {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--c-blue);
  min-width: 28px;
  padding-top: 4px;
  flex-shrink: 0;
}
.rst2-cap-content { flex: 1; }
.rst2-cap-title {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin: 0 0 6px !important;
  line-height: 1.35 !important;
}
.rst2-cap-desc {
  font-size: 0.875rem !important;
  color: rgba(255,255,255,0.60) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}

/* â”€â”€ Consultation CTA â€” redesigned â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.rst2-cta {
  position: relative;
  background: #0D0F12;
  padding: 100px 0;
  overflow: hidden;
  isolation: isolate;
}

/* Background layers */
.rst2-cta-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.rst2-cta-bg-dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 26px 26px;
}
.rst2-cta-bg-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 70% at 0% 55%, rgba(41,171,226,0.13) 0%, transparent 65%),
    radial-gradient(ellipse 35% 50% at 100% 10%, rgba(41,171,226,0.07) 0%, transparent 60%);
}

/* Main 2-col grid */
.rst2-cta > .container { position: relative; z-index: 1; }
.rst2-cta-grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 80px;
  align-items: center;
}

/* â”€â”€ Left column â”€â”€ */
.rst2-cta-title {
  font-size: clamp(2rem, 3.4vw, 2.8rem) !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  line-height: 1.15 !important;
  margin: 12px 0 20px !important;
  letter-spacing: -0.03em !important;
}
.rst2-cta-body {
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(255,255,255,0.70);
  margin-bottom: 36px;
  max-width: 500px;
}

/* Button row */
.rst2-cta-btns {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.rst2-cta-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--c-blue);
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 15px 32px;
  border-radius: 4px;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 18px rgba(41,171,226,0.35);
}
.rst2-cta-btn-primary:hover {
  background: #1a95cc;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(41,171,226,0.45);
  color: #ffffff;
}
.rst2-cta-btn-wa {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255,255,255,0.75);
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(255,255,255,0.25);
  transition: color 0.2s, border-color 0.2s;
}
.rst2-cta-btn-wa:hover {
  color: #25D366;
  border-color: #25D366;
}

/* Trust strip */
.rst2-cta-trust {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.rst2-cta-trust span {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
}
.rst2-cta-trust-dot {
  width: 3px !important;
  height: 3px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.25) !important;
  flex-shrink: 0;
  padding: 0 !important;
  letter-spacing: 0 !important;
}

/* â”€â”€ Right column â€” contact channel cards â”€â”€ */
.rst2-cta-right {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.rst2-cta-channel {
  display: flex;
  align-items: center;
  gap: 18px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 10px;
  padding: 22px 24px;
  text-decoration: none;
  transition: background 0.22s, border-color 0.22s, transform 0.22s;
}
.rst2-cta-channel:hover {
  background: rgba(41,171,226,0.08);
  border-color: rgba(41,171,226,0.40);
  transform: translateX(4px);
}
.rst2-cta-ch-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(41,171,226,0.12);
  border: 1px solid rgba(41,171,226,0.28);
  color: var(--c-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.22s;
}
.rst2-cta-channel:hover .rst2-cta-ch-icon {
  background: rgba(41,171,226,0.22);
}
.rst2-cta-ch-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.rst2-cta-ch-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-blue);
  line-height: 1;
}
.rst2-cta-ch-val {
  font-size: 0.97rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rst2-cta-ch-sub {
  font-size: 0.76rem;
  color: rgba(255,255,255,0.42);
  line-height: 1.3;
}
.rst2-cta-ch-arrow {
  color: rgba(255,255,255,0.25);
  flex-shrink: 0;
  transition: color 0.2s, transform 0.2s;
}
.rst2-cta-channel:hover .rst2-cta-ch-arrow {
  color: var(--c-blue);
  transform: translate(2px, -2px);
}

/* Responsive */
@media (max-width: 1199px) {
  .rst2-cta-grid { grid-template-columns: 1fr 380px; gap: 56px; }
}
@media (max-width: 991px) {
  .rst2-cta-grid { grid-template-columns: 1fr; gap: 48px; }
  .rst2-cta-body { max-width: 100%; }
  .rst2-cta { padding: 80px 0; }
}

/* â”€â”€ Insights / Blog â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.rst2-insights {
  background: #ffffff;
  padding: var(--sp-section) 0;
}
.rst2-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.rst2-blog-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-card);
  overflow: hidden;
  text-decoration: none !important;
  transition: box-shadow 0.28s ease, transform 0.28s ease;
}
.rst2-blog-card:hover {
  box-shadow: 0 10px 36px rgba(0,0,0,0.09);
  transform: translateY(-4px);
}
.rst2-blog-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--c-border);
}
.rst2-blog-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.rst2-blog-card:hover .rst2-blog-img img { transform: scale(1.04); }
.rst2-blog-date {
  position: absolute;
  bottom: 12px;
  left: 14px;
  background: rgba(0,0,0,0.55);
  color: rgba(255,255,255,0.90);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: 3px;
  backdrop-filter: blur(4px);
}
.rst2-blog-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px 20px 18px;
  gap: 8px;
}
.rst2-blog-cat {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-blue);
}
.rst2-blog-title {
  font-size: 1.02rem !important;
  font-weight: 700 !important;
  color: var(--c-dark) !important;
  line-height: 1.38 !important;
  margin: 0 !important;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rst2-blog-read {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-blue);
  margin-top: 4px;
}

/* ================================================================
   RESPONSIVE BREAKPOINTS
   ================================================================ */

/* â”€â”€ Tablet (â‰¤ 991px) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 991px) {
  :root {
    --sp-section: 80px;
  }

  /* Trust strip */
  .rst2-trust-grid { flex-wrap: wrap; }
  .rst2-trust-item { padding: 22px 28px; flex: 1 1 40%; }
  .rst2-trust-sep { display: none; }

  /* About */
  .rst2-about-layout {
    grid-template-columns: 1fr;
    gap: 36px;
    margin-bottom: 48px;
  }
  .rst2-about-intro .rst2-section-title { max-width: none; }
  .rst2-about-visual { order: -1; max-width: 640px; }
  .rst2-about-pillars { grid-template-columns: 1fr 1fr; }
  .rst2-about-pillar:nth-child(2) { border-right: none; }
  .rst2-about-pillar:nth-child(1),
  .rst2-about-pillar:nth-child(2) {
    border-bottom: 1px solid var(--c-border);
  }
  .rst2-about-pillar {
    padding: 24px 20px 24px 0;
  }
  .rst2-about-pillar:nth-child(even) { padding-right: 0; }

  /* removed garbled comment */
  .rst2-clients-label { border-right: none; padding-right: 0; margin-bottom: 20px; }

  /* Solutions */
  .rst2-solutions-tools { width: 100%; justify-content: space-between; }

  /* Work */
  .rst2-work-tools { width: 100%; justify-content: space-between; }

  /* Blog */
  .rst2-blog-grid { grid-template-columns: repeat(2, 1fr); }

  /* Capabilities */
  .rst2-capabilities .col-xl-5 { margin-bottom: 40px; }

  /* CTA â€” responsive handled within .rst2-cta block above */

  /* Section header */
  .rst2-section-header { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* â”€â”€ Mobile (â‰¤ 767px) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 767px) {
  :root {
    --sp-section: 60px;
  }

  /* Trust strip */
  .rst2-trust-grid { display: grid; grid-template-columns: 1fr 1fr; }
  .rst2-trust-item { padding: 18px 16px; flex: none; }

  /* About */
  .rst2-about-pillars { grid-template-columns: 1fr; }
  .rst2-about-pillar,
  .rst2-about-pillar:nth-child(1),
  .rst2-about-pillar:nth-child(2) {
    border-right: none;
    border-bottom: 1px solid var(--c-border);
    padding: 20px 0;
  }
  .rst2-about-pillar:last-child { border-bottom: none; }
  .rst2-about-creds { max-width: none; }
  .rst2-about-visual { max-width: none; }

  /* Solutions — slider handles layout */

  /* Work — slider handles layout */
  .rst2-work-meta { padding: 14px 14px 16px; }

  /* Blog */
  .rst2-blog-grid { grid-template-columns: 1fr; }

  /* removed garbled comment */
  .tp-shop-slider-btn-box { gap: 12px !important; flex-direction: column !important; align-items: flex-start !important; }
  .rst2-hero-btn--primary { margin-right: 0; }
  .rst2-hero-btn { height: 46px; padding: 0 24px; font-size: 0.8rem; }
}

/* â”€â”€ Ensure old overlay components don't bleed in â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.rst-cred-bar,
.rst-about-section,
.tp-hero-bottom-img-wrap,
.slide-funfact-height,
.tp-video-3-area,
.tp-project-5-2-area,
.rst-mid-cta,
.tp-blog-area.pb-90,
.tp-about-5-area {
  /* These sections are replaced; suppress if somehow loaded */
}

/* Override any theme defaults that could bleed onto new sections */
.rst2-about,
.rst2-solutions,
.rst2-insights {
  background-color: initial;
}
.rst2-about  { /* gradient set in main .rst2-about block */ }
.rst2-solutions { background-color: var(--c-surface) !important; }
.rst2-insights  { background-color: #ffffff !important; }
.rst2-work       { background-color: var(--c-ink) !important; }
.rst2-capabilities { background-color: var(--c-dark) !important; }
.rst2-cta        { background-color: #0D0F12 !important; }

/* Legacy Who We Are overrides removed — styles live in main .rst2-about block */

/* ================================================================
   RST2 Â· TESTIMONIALS SECTION
   ================================================================ */

.rst2-testi {
  padding: var(--sp-section) 0;
  background: var(--c-surface);
}

/* â”€â”€ Slider wrapper â€” clips overflow so partial cards don't
      bleed outside the container boundaries â”€â”€ */
.rst2-testi-slider-wrap {
  position: relative;
  margin-top: 48px;
  overflow: hidden;
  padding-bottom: 4px; /* prevent box-shadow clipping */
}

/* Swiper itself needs overflow:visible so adjacent cards peek */
.rst2-testi-swiper {
  overflow: visible;
}

/* â”€â”€ Individual card â”€â”€ */
.rst2-testi-card {
  background: var(--c-white);
  border-radius: var(--radius-card);
  padding: 36px 36px 30px;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.07);
  display: flex;
  flex-direction: column;
  height: 100%;
  border-top: 3px solid var(--c-blue);
  transition: box-shadow 0.25s, transform 0.25s;
}
.rst2-testi-card:hover {
  box-shadow: 0 6px 32px rgba(0, 0, 0, 0.11);
  transform: translateY(-3px);
}

/* â”€â”€ Star row â”€â”€ */
.rst2-testi-stars {
  display: flex;
  gap: 3px;
  margin-bottom: 20px;
}
.rst2-testi-stars svg {
  width: 15px;
  height: 15px;
  fill: #F4B942;
}

/* â”€â”€ Quote text â”€â”€ */
.rst2-testi-quote {
  font-size: 14.5px;
  line-height: 1.78;
  color: var(--c-body);
  margin: 0 0 28px;
  font-style: normal;
  flex: 1;
  position: relative;
  padding-top: 32px;
}
/* Large decorative opening quote mark */
.rst2-testi-quote::before {
  content: "\201C";
  position: absolute;
  top: -4px;
  left: 0;
  font-size: 64px;
  line-height: 1;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--c-blue);
  opacity: 0.22;
}

/* â”€â”€ Author row â”€â”€ */
.rst2-testi-author {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 22px;
  border-top: 1px solid var(--c-border);
  flex-wrap: wrap;
}

/* Initials avatar */
.rst2-testi-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--c-blue);
  color: var(--c-white);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.rst2-testi-info {
  flex: 1;
  min-width: 0;
}
.rst2-testi-name {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--c-dark);
  line-height: 1.3;
}
.rst2-testi-role {
  display: block;
  font-size: 12px;
  color: var(--c-muted);
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Sector badge */
.rst2-testi-sector {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-blue);
  background: rgba(41, 171, 226, 0.10);
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* â”€â”€ Prev / Next navigation â”€â”€ */
.rst2-testi-nav {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 28px;
}
.rst2-testi-nav button {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  flex-shrink: 0;
}
.rst2-testi-nav button:hover {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: var(--c-white);
}
.rst2-testi-nav button:disabled,
.rst2-testi-nav button.swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 991px) {
  .rst2-testi-role { white-space: normal; }
}
@media (max-width: 575px) {
  .rst2-testi-card { padding: 26px 22px 24px; }
  .rst2-testi-quote { font-size: 13.5px; }
  .rst2-testi-sector { display: none; }
}


/* ============================================================
   ABOUT PAGE  â€“  rst2-ab-* components
   ============================================================ */

/* â”€â”€ Dark button variant (about page) â”€â”€ */
.rst2-btn--dark {
  background: var(--c-dark, #19191A);
  color: #fff;
  border-color: var(--c-dark, #19191A);
  margin-top: 32px;
}
.rst2-btn--dark:hover {
  background: transparent;
  color: var(--c-dark, #19191A);
}

/* â”€â”€ OUR STORY â”€â”€ */
.rst2-ab-story {
  padding: 110px 0;
  background: #fff;
}
.rst2-ab-img-wrap {
  position: relative;
}
.rst2-ab-img-main {
  border-radius: 10px;
  overflow: hidden;
  line-height: 0;
}
.rst2-ab-img-main img {
  width: 100%;
  height: 480px;
  object-fit: cover;
  display: block;
}
.rst2-ab-img-float {
  position: absolute;
  bottom: -36px;
  right: -28px;
  width: 58%;
  overflow: visible;
  border: 5px solid #fff;
  box-shadow: 0 16px 48px rgba(0,0,0,0.13);
  border-radius: 10px;
  line-height: 0;
}
.rst2-ab-img-float img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  border-radius: 6px;
}
.rst2-ab-img-badge {
  position: absolute;
  top: 28px;
  left: -18px;
  background: var(--c-blue, #29ABE2);
  color: #fff;
  padding: 14px 18px;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.1;
  box-shadow: 0 8px 24px rgba(41,171,226,0.32);
  z-index: 2;
}
.rst2-ab-img-badge strong {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.85;
}
.rst2-ab-img-badge span {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.rst2-ab-story-creds {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 32px 0 0;
  border: 1px solid var(--c-border, #E2E4EA);
  border-radius: 8px;
  overflow: hidden;
}
.rst2-ab-story-cred {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 16px 20px;
  gap: 3px;
}
.rst2-ab-story-cred strong {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-dark, #19191A);
}
.rst2-ab-story-cred span {
  font-size: 12px;
  color: var(--c-muted, #717179);
}
.rst2-ab-story-cred-sep {
  width: 1px;
  background: var(--c-border, #E2E4EA);
  flex-shrink: 0;
}

/* â”€â”€ STATS STRIP â”€â”€ */
.rst2-ab-stats {
  background: var(--c-ink, #111215);
  padding: 72px 0;
}
.rst2-ab-stats-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.rst2-ab-stat-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 24px;
}
.rst2-ab-stat-num {
  font-size: clamp(40px, 5vw, 60px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 2px;
}
.rst2-ab-stat-num i {
  font-style: normal;
}
.rst2-ab-stat-label {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 500;
  text-align: center;
}
.rst2-ab-stat-sep {
  width: 1px;
  height: 60px;
  background: rgba(255,255,255,0.12);
  flex-shrink: 0;
}

/* â”€â”€ MANUFACTURING CAPABILITIES â”€â”€ */
.rst2-ab-edge {
  background: var(--c-dark, #19191A);
  padding: 110px 0;
}
.rst2-ab-edge-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 60px;
}
.rst2-ab-edge-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 36px 28px 32px;
  transition: background 0.22s, border-color 0.22s;
}
.rst2-ab-edge-card:hover {
  background: rgba(41,171,226,0.07);
  border-color: rgba(41,171,226,0.25);
}
.rst2-ab-edge-icon {
  width: 48px;
  height: 48px;
  background: rgba(41,171,226,0.12);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: var(--c-blue, #29ABE2);
}
.rst2-ab-edge-icon svg {
  width: 22px;
  height: 22px;
}
.rst2-ab-edge-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 12px;
  line-height: 1.3;
}
.rst2-ab-edge-desc {
  font-size: 13.5px;
  color: rgba(255,255,255,0.55);
  line-height: 1.7;
  margin: 0;
}

/* â”€â”€ OUR PROCESS â”€â”€ */
.rst2-ab-process {
  background: var(--c-surface, #F6F7FA);
  padding: 110px 0;
}
.rst2-ab-process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 60px;
  position: relative;
}
.rst2-ab-process-card {
  background: #fff;
  border-radius: 10px;
  padding: 36px 28px 32px;
  position: relative;
  box-shadow: 0 2px 16px rgba(0,0,0,0.05);
}
.rst2-ab-process-num {
  font-size: 48px;
  font-weight: 800;
  color: var(--c-blue, #29ABE2);
  opacity: 0.18;
  line-height: 1;
  margin-bottom: 16px;
  letter-spacing: -0.03em;
}
.rst2-ab-process-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--c-dark, #19191A);
  margin-bottom: 12px;
  line-height: 1.35;
}
.rst2-ab-process-desc {
  font-size: 13.5px;
  color: var(--c-body, #4A4A52);
  line-height: 1.75;
  margin: 0;
}
.rst2-ab-process-connector {
  display: none; /* desktop: use CSS grid gap; connector visible on wider screens */
}

/* â”€â”€ WHY CHOOSE RST â”€â”€ */
.rst2-ab-why {
  background: #fff;
  padding: 110px 0;
}
.rst2-ab-why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.rst2-ab-why-card {
  background: var(--c-surface, #F6F7FA);
  border-radius: 10px;
  padding: 32px 28px;
  transition: box-shadow 0.22s;
}
.rst2-ab-why-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}
.rst2-ab-why-icon {
  width: 44px;
  height: 44px;
  background: rgba(41,171,226,0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue, #29ABE2);
  margin-bottom: 18px;
}
.rst2-ab-why-icon svg {
  width: 20px;
  height: 20px;
}
.rst2-ab-why-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-dark, #19191A);
  margin-bottom: 10px;
  line-height: 1.3;
}
.rst2-ab-why-desc {
  font-size: 13.5px;
  color: var(--c-body, #4A4A52);
  line-height: 1.75;
  margin: 0;
}

/* â”€â”€ RESPONSIVE â”€â”€ */
@media (max-width: 1199px) {
  .rst2-ab-edge-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .rst2-ab-process-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  /* Story */
  .rst2-ab-story { padding: 72px 0 80px; }
  .rst2-ab-img-float { display: none; }          /* hide float on stacked layout */
  .rst2-ab-img-main img { height: 360px; }
  .rst2-ab-img-wrap { margin-bottom: 16px; }     /* gap before text col */
  /* Stats */
  .rst2-ab-stats-grid { flex-wrap: wrap; }
  .rst2-ab-stat-item { flex: 0 0 50%; padding: 28px 16px; }
  .rst2-ab-stat-sep { display: none; }
  /* Sections */
  .rst2-ab-edge { padding: 72px 0; }
  .rst2-ab-process { padding: 72px 0; }
  .rst2-ab-why { padding: 72px 0; }
  /* removed garbled comment */
  .rst2-ab-hero-left { max-width: 100%; width: 100%; }
  .rst2-ab-hero { min-height: 85vh; padding-top: 90px; padding-bottom: 56px; }
}

@media (max-width: 767px) {
  /* Story */
  .rst2-ab-story { padding: 56px 0 64px; }
  .rst2-ab-img-main img { height: 280px; }
  .rst2-ab-img-badge { top: 16px; left: 12px; }
  .rst2-ab-story-creds { flex-direction: column; }
  .rst2-ab-story-cred-sep { width: 100%; height: 1px; }
  /* Stats */
  .rst2-ab-stats { padding: 48px 0; }
  .rst2-ab-stat-item { flex: 0 0 100%; padding: 18px 16px; }
  /* Grids */
  .rst2-ab-edge-grid,
  .rst2-ab-process-grid { grid-template-columns: 1fr; }
  .rst2-ab-why-grid { grid-template-columns: 1fr; }
  /* Sections */
  .rst2-ab-edge { padding: 56px 0; }
  .rst2-ab-process { padding: 56px 0; }
  .rst2-ab-why { padding: 56px 0; }
  /* removed garbled comment */
  .rst2-ab-hero { min-height: 100svh; padding-top: 80px; padding-bottom: 48px; }
  .rst2-ab-hero-title { font-size: clamp(28px, 7.5vw, 40px); }
  .rst2-ab-hero-body { font-size: 14px; margin-bottom: 28px; }
  .rst2-ab-hero-actions { gap: 20px; }
  .rst2-ab-hero-stats { padding: 16px 20px; }
  .rst2-ab-hero-stat strong { font-size: 18px; }
}

/* removed garbled comment */
.rst2-ab-hero {
  position: relative;
  min-height: 92vh;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-top: 90px;
  padding-bottom: 80px;
}
.rst2-ab-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(10,12,15,0.45) 0%,
    rgba(10,12,15,0.70) 55%,
    rgba(10,12,15,0.88) 100%
  );
  z-index: 0;
}
.rst2-ab-hero .container {
  position: relative;
  z-index: 1;
  width: 100%;
}
.rst2-ab-hero-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
}
.rst2-ab-hero-left {
  flex: 0 0 auto;
  max-width: 640px;
}
.rst2-ab-hero-title {
  font-size: clamp(36px, 4.5vw, 58px);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 18px 0 20px;
}
.rst2-ab-hero-body {
  font-size: 16px;
  color: rgba(255,255,255,0.72);
  line-height: 1.75;
  max-width: 520px;
  margin-bottom: 36px;
}
.rst2-ab-hero-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.rst2-ab-hero-scroll-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: color 0.2s;
}
.rst2-ab-hero-scroll-link:hover { color: #fff; }
.rst2-ab-hero-scroll-icon {
  width: 32px;
  height: 32px;
  border: 1.5px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.65);
  transition: border-color 0.2s, color 0.2s;
  flex-shrink: 0;
}
.rst2-ab-hero-scroll-link:hover .rst2-ab-hero-scroll-icon {
  border-color: rgba(255,255,255,0.7);
  color: #fff;
}

/* Right â€” stats panel */
.rst2-ab-hero-right {
  flex-shrink: 0;
}
.rst2-ab-hero-stats {
  background: rgba(255,255,255,0.07);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 220px;
}
.rst2-ab-hero-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 0;
}
.rst2-ab-hero-stat strong {
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
}
.rst2-ab-hero-stat span {
  font-size: 12px;
  color: rgba(255,255,255,0.5);
  font-weight: 500;
  letter-spacing: 0.04em;
}
.rst2-ab-hero-stat-sep {
  height: 1px;
  background: rgba(255,255,255,0.1);
}

/* removed garbled comment */
@media (max-width: 1199px) {
  .rst2-ab-hero-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
  .rst2-ab-hero-right { width: 100%; }
  .rst2-ab-hero-stats {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0;
    padding: 18px 20px;
    min-width: 0;
  }
  .rst2-ab-hero-stat { flex: 1; min-width: 110px; padding: 10px 14px; }
  .rst2-ab-hero-stat-sep { display: none; }
}

/* ============================================================
   DIRECTOR'S MESSAGE PAGE  â€“  rst2-dm-* components
   ============================================================ */

/* removed garbled comment */
.rst2-dm-hero .rst2-ab-hero-overlay {
  background: linear-gradient(
    to bottom,
    rgba(10,12,15,0.50) 0%,
    rgba(10,12,15,0.72) 50%,
    rgba(10,12,15,0.90) 100%
  );
}
.rst2-dm-hero-inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  position: relative;
  z-index: 1;
}
.rst2-dm-hero-text { max-width: 680px; }
.rst2-dm-hero-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.45);
}
.rst2-dm-hero-breadcrumb a {
  color: rgba(255,255,255,0.45);
  text-decoration: none;
  transition: color 0.2s;
}
.rst2-dm-hero-breadcrumb a:hover { color: rgba(255,255,255,0.85); }
.rst2-dm-hero-breadcrumb span:last-child { color: rgba(255,255,255,0.75); }

/* â”€â”€ DIRECTOR LETTER â”€â”€ */
.rst2-dm-letter {
  padding: 100px 0 110px;
  background: #ffffff;
}

/* Profile card */
.rst2-dm-card {
  background: var(--c-ink, #111215);
  border-radius: 14px;
  padding: 36px 28px;
  position: sticky;
  top: 110px;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.rst2-dm-card-logo img {
  max-width: 130px;
  height: auto;
  opacity: 0.90;
  filter: brightness(0) invert(1);
}
.rst2-dm-card-identity {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 4px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.rst2-dm-card-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(41,171,226,0.12);
  border: 1px solid rgba(41,171,226,0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue, #29ABE2);
  margin-bottom: 14px;
}
.rst2-dm-card-title {
  font-size: 15px;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.2;
}
.rst2-dm-card-org {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
  letter-spacing: 0.02em;
}
.rst2-dm-card-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  overflow: hidden;
}
.rst2-dm-card-stat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  gap: 8px;
}
.rst2-dm-card-stat + .rst2-dm-card-stat {
  border-top: 1px solid rgba(255,255,255,0.06);
}
.rst2-dm-card-stat strong {
  font-size: 17px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
}
.rst2-dm-card-stat span {
  font-size: 11px;
  color: rgba(255,255,255,0.40);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 500;
  text-align: right;
}
.rst2-dm-card-stat-sep { display: none; }
.rst2-dm-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rst2-dm-card-tags span {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: 4px 10px;
}
.rst2-dm-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--c-blue, #29ABE2);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 12px 20px;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 16px rgba(41,171,226,0.30);
  justify-content: center;
}
.rst2-dm-card-cta:hover {
  background: #1a95cc;
  color: #fff;
  box-shadow: 0 6px 22px rgba(41,171,226,0.40);
}

/* Letter content */
.rst2-dm-content { padding-left: 8px; }
.rst2-dm-content-title {
  font-size: clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight: 800;
  color: var(--c-dark, #19191A);
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 14px 0 36px;
}
.rst2-dm-letter-body { display: flex; flex-direction: column; gap: 20px; }
.rst2-dm-letter-body p {
  font-size: 16px;
  line-height: 1.85;
  color: var(--c-body, #4A4A52);
  margin: 0;
}
.rst2-dm-dropcap::first-letter {
  float: left;
  font-size: 4.2em;
  font-weight: 800;
  line-height: 0.78;
  color: var(--c-blue, #29ABE2);
  margin-right: 10px;
  margin-top: 6px;
  letter-spacing: -0.03em;
}
.rst2-dm-quote {
  border-left: 3px solid var(--c-blue, #29ABE2);
  margin: 8px 0;
  padding: 20px 28px;
  background: rgba(41,171,226,0.05);
  border-radius: 0 8px 8px 0;
  font-size: 17px;
  font-style: italic;
  font-weight: 500;
  color: var(--c-dark, #19191A);
  line-height: 1.65;
}
.rst2-dm-sig-block {
  margin-top: 44px;
  padding-top: 28px;
}
.rst2-dm-sig-line {
  width: 56px;
  height: 3px;
  background: var(--c-blue, #29ABE2);
  border-radius: 2px;
  margin-bottom: 16px;
}
.rst2-dm-sig-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--c-dark, #19191A);
  letter-spacing: 0.01em;
  margin-bottom: 4px;
}
.rst2-dm-sig-org {
  font-size: 13px;
  color: var(--c-muted, #717179);
}

/* â”€â”€ GUIDING PRINCIPLES â”€â”€ */
.rst2-dm-pillars {
  background: var(--c-dark, #19191A);
  padding: 100px 0 110px;
}
.rst2-dm-pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 60px;
}
.rst2-dm-pillar {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  padding: 36px 28px 32px;
  position: relative;
  transition: background 0.22s, border-color 0.22s;
}
.rst2-dm-pillar:hover {
  background: rgba(41,171,226,0.06);
  border-color: rgba(41,171,226,0.22);
}
.rst2-dm-pillar-num {
  font-size: 52px;
  font-weight: 900;
  color: var(--c-blue, #29ABE2);
  opacity: 0.12;
  line-height: 1;
  margin-bottom: 20px;
  letter-spacing: -0.04em;
}
.rst2-dm-pillar-icon {
  position: absolute;
  top: 36px;
  right: 28px;
  width: 42px;
  height: 42px;
  background: rgba(41,171,226,0.10);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue, #29ABE2);
}
.rst2-dm-pillar-title {
  font-size: 17px;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 14px;
  line-height: 1.3;
  padding-right: 56px;
}
.rst2-dm-pillar-desc {
  font-size: 14px;
  color: rgba(255,255,255,0.52);
  line-height: 1.78;
  margin: 0;
}

/* â”€â”€ RESPONSIVE â”€â”€ */
@media (max-width: 1199px) {
  .rst2-dm-card { position: static; }
  .rst2-dm-content { padding-left: 0; }
}
@media (max-width: 991px) {
  .rst2-dm-letter { padding: 72px 0 80px; }
  .rst2-dm-pillars { padding: 72px 0 80px; }
  .rst2-dm-pillars-grid { grid-template-columns: 1fr; gap: 16px; }
  .rst2-dm-pillar { padding: 28px 24px; }
  .rst2-dm-pillar-title { padding-right: 50px; }
  .rst2-dm-content-title { margin-bottom: 28px; }
}
@media (max-width: 767px) {
  .rst2-dm-letter { padding: 56px 0 64px; }
  .rst2-dm-pillars { padding: 56px 0 64px; }
  .rst2-dm-pillars-grid { margin-top: 40px; }
  .rst2-dm-card { padding: 28px 22px; gap: 22px; }
  .rst2-dm-letter-body p { font-size: 15px; }
  .rst2-dm-dropcap::first-letter { font-size: 3.6em; }
  .rst2-dm-quote { padding: 16px 20px; font-size: 15.5px; }
  .rst2-dm-content-title { font-size: clamp(1.35rem, 6vw, 1.8rem); }
  .rst2-dm-hero-breadcrumb { display: none; }
}

/* ============================================================
   CLIENTS & TESTIMONIALS PAGE  â€“  rst2-ct-* components
   ============================================================ */

/* removed garbled comment */
.rst2-ct-hero .rst2-ab-hero-overlay {
  background: linear-gradient(
    160deg,
    rgba(10,12,15,0.55) 0%,
    rgba(10,12,15,0.75) 50%,
    rgba(10,12,15,0.92) 100%
  );
}
.rst2-ct-hero-inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
  position: relative;
  z-index: 1;
}
.rst2-ct-hero-text { max-width: 720px; }
.rst2-ct-hero-stats {
  display: flex;
  gap: 0;
  background: rgba(255,255,255,0.07);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  overflow: hidden;
  max-width: 680px;
}
.rst2-ct-hero-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 22px 16px;
  border-right: 1px solid rgba(255,255,255,0.1);
}
.rst2-ct-hero-stat:last-child { border-right: none; }
.rst2-ct-hero-stat strong {
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
}
.rst2-ct-hero-stat span {
  font-size: 11px;
  color: rgba(255,255,255,0.50);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
}

/* â”€â”€ CLIENT LOGOS â”€â”€ */
.rst2-ct-clients {
  background: #ffffff;
  padding: 100px 0 90px;
}
.rst2-ct-clients-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 56px;
}
.rst2-ct-clients-header > div { flex: 1; }
.rst2-ct-clients-sub {
  flex: 0 0 380px;
  font-size: 14px;
  line-height: 1.75;
  color: var(--c-muted, #717179);
  padding-top: 8px;
  margin: 0;
}
.rst2-ct-logo-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--c-border, #E2E4EA);
  border: 1px solid var(--c-border, #E2E4EA);
  border-radius: 10px;
  overflow: hidden;
}
.rst2-ct-logo-item {
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 20px;
  min-height: 100px;
  transition: background 0.2s;
}
.rst2-ct-logo-item:hover { background: var(--c-surface, #F6F7FA); }
.rst2-ct-logo-item img {
  max-width: 120px;
  max-height: 52px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  transition: transform 0.22s;
}
.rst2-ct-logo-item:hover img {
  transform: scale(1.05);
}

/* â”€â”€ TESTIMONIALS â”€â”€ */
.rst2-ct-testimonials {
  background: var(--c-surface, #F6F7FA);
  padding: 100px 0 110px;
}
.rst2-ct-testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 0;
  align-items: start;
}
.rst2-ct-testi-card {
  background: #ffffff;
  border: 1px solid var(--c-border, #E2E4EA);
  border-radius: 12px;
  padding: 32px 28px 28px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  transition: box-shadow 0.22s, border-color 0.22s;
  min-width: 0;
  overflow: hidden;
  word-break: break-word;
  overflow-wrap: break-word;
}
.rst2-ct-testi-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.07);
  border-color: rgba(41,171,226,0.30);
}
.rst2-ct-testi-stars {
  display: flex;
  gap: 3px;
}
.rst2-ct-testi-quote {
  font-size: 14.5px;
  line-height: 1.78;
  color: var(--c-body, #4A4A52);
  margin: 0;
  quotes: none;
  flex: 1;
  position: relative;
  padding-top: 8px;
}
.rst2-ct-testi-quote::before {
  content: "\201C";
  position: absolute;
  top: -8px;
  left: 0;
  font-size: 52px;
  line-height: 1;
  color: var(--c-blue, #29ABE2);
  opacity: 0.18;
  font-weight: 800;
}
.rst2-ct-testi-author {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px 12px;
  padding-top: 16px;
  border-top: 1px solid var(--c-border, #E2E4EA);
}
.rst2-ct-testi-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--c-blue, #29ABE2);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.rst2-ct-testi-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.rst2-ct-testi-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-dark, #19191A);
  line-height: 1.2;
}
.rst2-ct-testi-role {
  font-size: 11.5px;
  color: var(--c-muted, #717179);
  line-height: 1.4;
  white-space: normal;
}
.rst2-ct-testi-sector {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-blue, #29ABE2);
  background: rgba(41,171,226,0.08);
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* â”€â”€ SECTOR COVERAGE â”€â”€ */
.rst2-ct-sectors {
  background: var(--c-dark, #19191A);
  padding: 100px 0 110px;
}
.rst2-ct-sectors-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2px;
  margin-top: 56px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px;
  overflow: hidden;
}
.rst2-ct-sector-item {
  background: rgba(255,255,255,0.02);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 32px 20px;
  text-align: center;
  transition: background 0.22s;
  cursor: default;
}
.rst2-ct-sector-item:hover {
  background: rgba(41,171,226,0.07);
}
.rst2-ct-sector-icon {
  width: 48px;
  height: 48px;
  background: rgba(41,171,226,0.10);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue, #29ABE2);
  flex-shrink: 0;
  transition: background 0.22s;
}
.rst2-ct-sector-item:hover .rst2-ct-sector-icon {
  background: rgba(41,171,226,0.20);
}
.rst2-ct-sector-item span {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255,255,255,0.55);
  line-height: 1.35;
  transition: color 0.22s;
}
.rst2-ct-sector-item:hover span { color: rgba(255,255,255,0.85); }

/* â”€â”€ RESPONSIVE â”€â”€ */
@media (max-width: 1199px) {
  .rst2-ct-logo-grid { grid-template-columns: repeat(4, 1fr); }
  .rst2-ct-sectors-grid { grid-template-columns: repeat(4, 1fr); }
  .rst2-ct-clients-header { flex-direction: column; gap: 16px; }
  .rst2-ct-clients-sub { flex: none; max-width: 100%; }
}
@media (max-width: 991px) {
  .rst2-ct-clients { padding: 72px 0; }
  .rst2-ct-testimonials { padding: 72px 0 80px; }
  .rst2-ct-sectors { padding: 72px 0 80px; }
  .rst2-ct-testi-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-ct-logo-grid { grid-template-columns: repeat(3, 1fr); }
  .rst2-ct-sectors-grid { grid-template-columns: repeat(3, 1fr); }
  .rst2-ct-hero-stats { max-width: 100%; }
}
@media (max-width: 767px) {
  .rst2-ct-clients { padding: 56px 0; }
  .rst2-ct-testimonials { padding: 56px 0 64px; }
  .rst2-ct-sectors { padding: 56px 0 64px; }
  .rst2-ct-testi-grid { grid-template-columns: 1fr; }
  /* .rst2-ct-testi-role already wraps by default */
  .rst2-ct-logo-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-ct-logo-item { padding: 18px 14px; min-height: 80px; }
  .rst2-ct-logo-item img { max-width: 90px; max-height: 40px; }
  .rst2-ct-sectors-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-ct-sector-item { padding: 24px 16px; }
  .rst2-ct-hero-stats {
    flex-wrap: wrap;
    border-radius: 10px;
  }
  .rst2-ct-hero-stat {
    flex: 0 0 50%;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .rst2-ct-hero-stat:nth-child(1),
  .rst2-ct-hero-stat:nth-child(2) { border-bottom: 1px solid rgba(255,255,255,0.1); }
  .rst2-ct-hero-stat:nth-child(3),
  .rst2-ct-hero-stat:nth-child(4) { border-bottom: none; }
  .rst2-ct-hero-stat:nth-child(odd) { border-right: 1px solid rgba(255,255,255,0.1); }
}


/* ============================================================
   RST2 â€” FAQ PAGE
   ============================================================ */

/* removed garbled comment */
.rst2-faq-hero-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  width: 100%;
}
.rst2-faq-hero-text {
  flex: 1 1 0;
  min-width: 0;
}

/* removed garbled comment */
.rst2-faq-hero-counts {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
  width: 200px;
}
.rst2-faq-hero-count {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 22px 24px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  text-align: center;
}
.rst2-faq-hero-count:last-child { border-bottom: none; }
.rst2-faq-hero-count strong {
  display: block;
  font-size: clamp(26px, 3.5vw, 38px);
  font-weight: 800;
  color: var(--c-blue);
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.rst2-faq-hero-count span {
  display: block;
  font-size: 12px;
  color: rgba(255,255,255,0.65);
  line-height: 1.4;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* -- FAQ Body section -- */
.rst2-faq-body {
  padding: 80px 0 96px;
  background: var(--c-white);
}

/* -- Main heading -- */
.rst2-faq-main-title {
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 700;
  color: var(--c-ink);
  line-height: 1.3;
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--c-border);
}

/* -- Sidebar nav -- */
.rst2-faq-nav {
  position: sticky;
  top: 106px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 14px;
  padding: 28px 24px;
}
.rst2-faq-nav ul {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rst2-faq-nav-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--c-muted);
  margin-bottom: 16px;
}
.rst2-faq-nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--c-body);
  text-decoration: none;
  transition: background 0.18s, color 0.18s;
  line-height: 1.4;
}
.rst2-faq-nav-link svg {
  flex-shrink: 0;
  color: var(--c-muted);
  transition: color 0.18s;
}
.rst2-faq-nav-link:hover {
  background: rgba(41,171,226,0.08);
  color: var(--c-blue);
  text-decoration: none;
}
.rst2-faq-nav-link:hover svg,
.rst2-faq-nav-link.active svg { color: var(--c-blue); }
.rst2-faq-nav-link.active {
  background: rgba(41,171,226,0.1);
  color: var(--c-blue);
  font-weight: 600;
}

/* Sidebar contact nudge */
.rst2-faq-nav-contact {
  border-top: 1px solid var(--c-border);
  padding-top: 20px;
}
.rst2-faq-nav-contact p {
  font-size: 13px;
  color: var(--c-muted);
  margin-bottom: 12px;
  line-height: 1.5;
}
.rst2-faq-nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-blue);
  text-decoration: none;
  transition: gap 0.18s, opacity 0.18s;
}
.rst2-faq-nav-cta:hover { gap: 10px; opacity: 0.85; text-decoration: none; }

/* -- FAQ Group (category block) -- */
.rst2-faq-group {
  margin-bottom: 48px;
  scroll-margin-top: 120px;
}
.rst2-faq-group:last-of-type { margin-bottom: 0; }

.rst2-faq-group-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-border);
}
.rst2-faq-group-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(41,171,226,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--c-blue);
}
.rst2-faq-group-title {
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 700;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.3;
  flex: 1;
}
.rst2-faq-group-count {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-muted);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 20px;
  padding: 3px 12px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* -- Accordion item -- */
.rst2-faq-item {
  border-bottom: 1px solid var(--c-border);
}
.rst2-faq-item:last-child { border-bottom: none; }

/* Accordion button */
.rst2-faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: transparent;
  border: none;
  outline: none;
  padding: 20px 4px;
  cursor: pointer;
  text-align: left;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 600;
  color: var(--c-dark);
  line-height: 1.5;
  transition: color 0.18s;
}
.rst2-faq-q:hover { color: var(--c-blue); }
.rst2-faq-q:focus-visible {
  outline: 2px solid var(--c-blue);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Chevron icon */
.rst2-faq-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  flex-shrink: 0;
  color: var(--c-muted);
  transition: background 0.2s, transform 0.25s, color 0.2s;
}
.rst2-faq-item.rst2-faq-open .rst2-faq-icon {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: var(--c-white);
  transform: rotate(180deg);
}
.rst2-faq-item.rst2-faq-open .rst2-faq-q { color: var(--c-blue); }

/* Collapsible answer */
.rst2-faq-a {
  overflow: hidden;
  height: 0;
  transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Answer inner padding */
.rst2-faq-a-inner {
  padding: 0 4px 24px;
}
.rst2-faq-a-inner p {
  font-size: 15px;
  color: var(--c-body);
  line-height: 1.75;
  margin-bottom: 14px;
}
.rst2-faq-a-inner p:last-child { margin-bottom: 0; }
.rst2-faq-a-inner p strong { color: var(--c-dark); font-weight: 600; }

/* Bullet list inside answer */
.rst2-faq-list {
  list-style: none;
  padding: 0;
  margin: 14px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rst2-faq-list li {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 14.5px;
  color: var(--c-body);
  line-height: 1.6;
  padding-left: 4px;
}
.rst2-faq-list li::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-blue);
  flex-shrink: 0;
  margin-top: 6px;
}
.rst2-faq-list li strong { color: var(--c-dark); font-weight: 600; }

/* -- Inline contact nudge -- */
.rst2-faq-contact-nudge {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 56px;
  padding: 32px 36px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 16px;
  flex-wrap: wrap;
}
.rst2-faq-nudge-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(41,171,226,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  flex-shrink: 0;
}
.rst2-faq-nudge-body {
  flex: 1 1 180px;
  min-width: 0;
}
.rst2-faq-nudge-body strong {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 4px;
}
.rst2-faq-nudge-body p {
  font-size: 14px;
  color: var(--c-muted);
  line-height: 1.55;
  margin: 0;
}
.rst2-faq-nudge-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.rst2-faq-nudge-wa {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 20px;
  border-radius: 8px;
  background: #25D366;
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: opacity 0.18s, transform 0.18s;
}
.rst2-faq-nudge-wa:hover { opacity: 0.88; transform: translateY(-1px); text-decoration: none; color: #fff; }

/* -- Responsive -- */
@media (max-width: 1199px) {
  .rst2-faq-hero-inner { gap: 32px; }
  .rst2-faq-hero-counts { width: 180px; }
}
@media (max-width: 991px) {
  .rst2-faq-hero-inner { flex-direction: column; align-items: flex-start; gap: 28px; }
  .rst2-faq-hero-counts {
    flex-direction: row;
    width: 100%;
    max-width: 480px;
  }
  .rst2-faq-hero-count {
    flex: 1;
    border-bottom: none;
    border-right: 1px solid rgba(255,255,255,0.1);
    padding: 18px 16px;
  }
  .rst2-faq-hero-count:last-child { border-right: none; }
  .rst2-faq-body { padding: 56px 0 72px; }
  .rst2-faq-group-header { flex-wrap: wrap; }
}
@media (max-width: 767px) {
  .rst2-faq-body { padding: 40px 0 56px; }
  .rst2-faq-main-title { font-size: 18px; margin-bottom: 28px; }
  .rst2-faq-group { margin-bottom: 36px; }
  .rst2-faq-q { padding: 16px 4px; font-size: 14px; }
  .rst2-faq-group-count { display: none; }
  .rst2-faq-hero-counts {
    flex-direction: row;
    flex-wrap: wrap;
    max-width: 100%;
  }
  .rst2-faq-hero-count {
    flex: 0 0 50%;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .rst2-faq-hero-count:nth-child(odd):not(:last-child) { border-right: 1px solid rgba(255,255,255,0.1); }
  .rst2-faq-hero-count:last-child:nth-child(odd) { flex: 0 0 100%; border-bottom: none; }
  .rst2-faq-hero-count:nth-child(3) { border-bottom: none; }
  .rst2-faq-contact-nudge {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 20px;
    gap: 16px;
  }
  .rst2-faq-nudge-actions { width: 100%; }
  .rst2-faq-nudge-wa,
  .rst2-faq-contact-nudge .rst2-cta-btn-primary {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}


/* removed garbled comment */

/* removed garbled comment */
.rst2-tm-hero-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  width: 100%;
}
.rst2-tm-hero-text {
  flex: 1 1 0;
  min-width: 0;
}

/* removed garbled comment */
.rst2-tm-hero-stats {
  display: flex;
  flex-direction: row;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
}
.rst2-tm-hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 22px 24px;
  border-right: 1px solid rgba(255,255,255,0.1);
  text-align: center;
  min-width: 100px;
}
.rst2-tm-hero-stat:last-child { border-right: none; }
.rst2-tm-hero-stat strong {
  display: block;
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 800;
  color: var(--c-blue);
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.rst2-tm-hero-stat span {
  display: block;
  font-size: 11px;
  color: rgba(255,255,255,0.6);
  line-height: 1.4;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

/* â”€â”€ Team Body section â”€â”€ */
.rst2-tm-body {
  padding: 80px 0 100px;
  background: var(--c-white);
}

/* â”€â”€ Section intro â”€â”€ */
.rst2-tm-intro {
  display: flex;
  align-items: flex-start;
  gap: 60px;
  margin-bottom: 52px;
}
.rst2-tm-intro-text { flex: 0 0 auto; }
.rst2-tm-intro-title {
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 800;
  color: var(--c-ink);
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 10px 0 0;
}
.rst2-tm-intro-body {
  flex: 1 1 0;
  font-size: 16px;
  color: var(--c-body);
  line-height: 1.75;
  margin: 0;
  padding-top: 38px;
}

/* â”€â”€ Filter bar â”€â”€ */
.rst2-tm-filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--c-border);
}
.rst2-tm-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 8px;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-body);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.18s;
  line-height: 1;
}
.rst2-tm-filter-btn:hover {
  border-color: var(--c-blue);
  color: var(--c-blue);
  background: rgba(41,171,226,0.05);
}
.rst2-tm-filter-btn.active {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: #fff;
}
.rst2-tm-filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  background: rgba(0,0,0,0.1);
  line-height: 1;
}
.rst2-tm-filter-btn.active .rst2-tm-filter-count {
  background: rgba(255,255,255,0.25);
}

/* â”€â”€ Department group â”€â”€ */
.rst2-tm-dept-group {
  margin-bottom: 60px;
}
.rst2-tm-dept-group:last-child { margin-bottom: 0; }

.rst2-tm-dept-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}
.rst2-tm-dept-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.rst2-tm-dept-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-ink);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0;
  flex: 1;
}
.rst2-tm-dept-count {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-muted);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 20px;
  padding: 3px 11px;
}

/* Hide dept header when filtering to a single dept */
.rst2-tm-filtered .rst2-tm-dept-header { display: none; }
.rst2-tm-filtered .rst2-tm-dept-group { margin-bottom: 0; }

/* â”€â”€ Cards grid â”€â”€ */
.rst2-tm-cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}

/* â”€â”€ Individual card â”€â”€ */
.rst2-tm-card {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: 16px;
  padding: 28px 16px 22px;
  text-align: center;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s;
  position: relative;
  overflow: hidden;
}
.rst2-tm-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--av-bg, var(--c-blue));
  opacity: 0;
  transition: opacity 0.22s;
}
.rst2-tm-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.09);
  border-color: rgba(41,171,226,0.3);
}
.rst2-tm-card:hover::before { opacity: 1; }

/* Avatar circle */
.rst2-tm-avatar {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--av-bg, #19191A);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.03em;
  flex-shrink: 0;
  position: relative;
}
.rst2-tm-avatar::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 2px solid var(--av-bg, #19191A);
  opacity: 0.18;
}

/* Card body */
.rst2-tm-card-body { min-width: 0; }
.rst2-tm-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--c-ink);
  margin: 0 0 5px;
  line-height: 1.3;
  word-break: break-word;
}
.rst2-tm-role {
  font-size: 12.5px;
  color: var(--c-blue);
  font-weight: 500;
  margin: 0 0 12px;
  line-height: 1.45;
}
.rst2-tm-dept-tag {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 3px 10px;
  border-radius: 20px;
  background: color-mix(in srgb, var(--tag-color, #29ABE2) 10%, transparent);
  color: var(--tag-color, #29ABE2);
  border: 1px solid color-mix(in srgb, var(--tag-color, #29ABE2) 25%, transparent);
}

/* Fallback for browsers without color-mix */
@supports not (color: color-mix(in srgb, red 10%, transparent)) {
  .rst2-tm-dept-tag {
    background: rgba(41,171,226,0.08);
    color: var(--c-blue);
    border: 1px solid rgba(41,171,226,0.2);
  }
}

/* â”€â”€ Join our team band â”€â”€ */
.rst2-tm-join {
  padding: 0 0 80px;
  background: var(--c-white);
}
.rst2-tm-join-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  background: var(--c-ink);
  border-radius: 20px;
  padding: 36px 44px;
  flex-wrap: wrap;
}
.rst2-tm-join-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(41,171,226,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  flex-shrink: 0;
}
.rst2-tm-join-text {
  flex: 1 1 200px;
  min-width: 0;
}
.rst2-tm-join-text strong {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px;
  line-height: 1.3;
}
.rst2-tm-join-text p {
  font-size: 14.5px;
  color: rgba(255,255,255,0.6);
  line-height: 1.6;
  margin: 0;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1399px) {
  .rst2-tm-cards { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1199px) {
  .rst2-tm-hero-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
  .rst2-tm-hero-stats { flex-direction: row; width: 100%; max-width: 560px; }
  .rst2-tm-hero-stat { flex: 1; }
  .rst2-tm-intro { gap: 36px; }
}
@media (max-width: 991px) {
  .rst2-tm-body { padding: 56px 0 72px; }
  .rst2-tm-intro { flex-direction: column; gap: 16px; margin-bottom: 36px; }
  .rst2-tm-intro-body { padding-top: 0; }
  .rst2-tm-cards { grid-template-columns: repeat(3, 1fr); }
  .rst2-tm-join { padding: 0 0 64px; }
  .rst2-tm-join-inner { padding: 28px 28px; }
}
@media (max-width: 767px) {
  .rst2-tm-body { padding: 40px 0 56px; }
  .rst2-tm-cards { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .rst2-tm-hero-stats {
    flex-wrap: wrap;
    max-width: 100%;
    border-radius: 12px;
  }
  .rst2-tm-hero-stat {
    flex: 0 0 50%;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    padding: 16px 12px;
  }
  .rst2-tm-hero-stat:nth-child(odd):not(:last-child) { border-right: 1px solid rgba(255,255,255,0.1); }
  .rst2-tm-hero-stat:nth-child(3),
  .rst2-tm-hero-stat:nth-child(4) { border-bottom: none; }
  .rst2-tm-filter-bar { gap: 6px; }
  .rst2-tm-filter-btn { padding: 8px 13px; font-size: 12.5px; }
  .rst2-tm-join-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 20px;
    gap: 16px;
  }
  .rst2-tm-join-inner .rst2-cta-btn-primary { width: 100%; justify-content: center; }
}
@media (max-width: 480px) {
  .rst2-tm-cards { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .rst2-tm-card { padding: 20px 12px 16px; }
  .rst2-tm-avatar { width: 56px; height: 56px; font-size: 17px; }
  .rst2-tm-name { font-size: 13px; }
  .rst2-tm-role { font-size: 11.5px; }
}

/* removed garbled comment */

/* removed garbled comment */
.rst2-bl-hero-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  width: 100%;
}
.rst2-bl-hero-text { flex: 1 1 0; min-width: 0; }

/* removed garbled comment */
.rst2-bl-hero-stats {
  display: flex;
  flex-direction: column;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
  width: 190px;
}
.rst2-bl-hero-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  text-align: center;
}
.rst2-bl-hero-stat:last-child { border-bottom: none; }
.rst2-bl-hero-stat strong {
  display: block;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 800;
  color: var(--c-blue);
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.rst2-bl-hero-stat span {
  display: block;
  font-size: 11px;
  color: rgba(255,255,255,0.6);
  line-height: 1.4;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* â”€â”€ Blog body section â”€â”€ */
.rst2-bl-body {
  padding: 80px 0 96px;
  background: var(--c-white);
}

/* â”€â”€ Section labels / headers â”€â”€ */
.rst2-bl-section-label { margin-bottom: 16px; }
.rst2-bl-section-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--c-border);
}
.rst2-bl-section-title {
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.3;
}
.rst2-bl-page-indicator {
  font-size: 13px;
  color: var(--c-muted);
  font-weight: 500;
  white-space: nowrap;
}

/* â”€â”€ Category badge (shared) â”€â”€ */
.rst2-bl-cat-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 4px 11px;
  border-radius: 20px;
  background: var(--c-blue);
  color: #fff;
  line-height: 1;
  pointer-events: none;
}

/* â”€â”€ Meta row (shared) â”€â”€ */
.rst2-bl-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  color: var(--c-muted);
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.rst2-bl-meta-date,
.rst2-bl-meta-time {
  display: flex;
  align-items: center;
  gap: 5px;
}
.rst2-bl-meta-sep { opacity: 0.4; }

/* â”€â”€ "Read article" inline link (shared) â”€â”€ */
.rst2-bl-read-link,
.rst2-bl-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--c-blue);
  text-decoration: none;
  transition: gap 0.18s, opacity 0.18s;
}
.rst2-bl-read-link:hover,
.rst2-bl-card-cta:hover { gap: 11px; opacity: 0.82; text-decoration: none; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   FEATURED POST
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bl-featured-wrap { margin-bottom: 72px; }

.rst2-bl-featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  text-decoration: none;
  background: var(--c-white);
  transition: box-shadow 0.24s, transform 0.24s;
}
.rst2-bl-featured:hover {
  box-shadow: 0 20px 60px rgba(0,0,0,0.1);
  transform: translateY(-4px);
  text-decoration: none;
}

/* Featured image */
.rst2-bl-featured-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 5 / 3;
}
.rst2-bl-featured-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.rst2-bl-featured:hover .rst2-bl-featured-img img { transform: scale(1.04); }
.rst2-bl-featured-img .rst2-bl-cat-badge {
  position: absolute;
  top: 20px;
  left: 20px;
}

/* Featured body */
.rst2-bl-featured-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 48px 52px;
  background: var(--c-surface);
}
.rst2-bl-featured-title {
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 800;
  color: var(--c-ink);
  line-height: 1.3;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
  transition: color 0.18s;
}
.rst2-bl-featured:hover .rst2-bl-featured-title { color: var(--c-blue); }
.rst2-bl-featured-excerpt {
  font-size: 15px;
  color: var(--c-body);
  line-height: 1.75;
  margin: 0 0 28px;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   ARTICLE GRID
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bl-grid-section { margin-bottom: 60px; }

.rst2-bl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* â”€â”€ Blog card â”€â”€ */
.rst2-bl-card {
  background: var(--c-white);
  border: 1px solid var(--c-border);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s;
}
.rst2-bl-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.09);
  border-color: rgba(41,171,226,0.25);
}

/* Card image */
.rst2-bl-card-img-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  flex-shrink: 0;
}
.rst2-bl-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.rst2-bl-card:hover .rst2-bl-card-img-wrap img { transform: scale(1.05); }
.rst2-bl-card-img-wrap .rst2-bl-cat-badge {
  position: absolute;
  top: 14px;
  left: 14px;
}

/* Card body */
.rst2-bl-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 22px 24px 24px;
}
.rst2-bl-card-title {
  font-size: clamp(15px, 1.5vw, 17px);
  font-weight: 700;
  color: var(--c-ink);
  line-height: 1.4;
  margin: 0 0 10px;
}
.rst2-bl-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.18s;
}
.rst2-bl-card:hover .rst2-bl-card-title a { color: var(--c-blue); }
.rst2-bl-card-excerpt {
  font-size: 13.5px;
  color: var(--c-body);
  line-height: 1.7;
  margin: 0 0 20px;
  flex: 1;
}
.rst2-bl-card-cta { margin-top: auto; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PAGINATION
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bl-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  padding-top: 16px;
}
.rst2-bl-pag-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: 8px;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-body);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.18s;
}
.rst2-bl-pag-btn:hover {
  border-color: var(--c-blue);
  color: var(--c-blue);
  background: rgba(41,171,226,0.05);
  text-decoration: none;
}
.rst2-bl-pag-pages {
  display: flex;
  align-items: center;
  gap: 4px;
}
.rst2-bl-pag-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-body);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.18s;
}
.rst2-bl-pag-num:hover {
  border-color: var(--c-blue);
  color: var(--c-blue);
  text-decoration: none;
}
.rst2-bl-pag-num.active {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: #fff;
}
.rst2-bl-pag-ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  color: var(--c-muted);
  font-size: 14px;
  line-height: 1;
}

/* â”€â”€ Empty state â”€â”€ */
.rst2-bl-empty {
  text-align: center;
  padding: 80px 20px;
  max-width: 440px;
  margin: 0 auto;
}
.rst2-bl-empty-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  color: var(--c-muted);
}
.rst2-bl-empty h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 10px;
}
.rst2-bl-empty p {
  font-size: 15px;
  color: var(--c-muted);
  margin-bottom: 28px;
}

/* â”€â”€ Subscribe / stay updated band â”€â”€ */
.rst2-bl-subscribe {
  padding: 0 0 80px;
  background: var(--c-white);
}
.rst2-bl-subscribe-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 20px;
  padding: 36px 44px;
  flex-wrap: wrap;
}
.rst2-bl-subscribe-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(41,171,226,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  flex-shrink: 0;
}
.rst2-bl-subscribe-text { flex: 1 1 200px; min-width: 0; }
.rst2-bl-subscribe-text strong {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 6px;
}
.rst2-bl-subscribe-text p {
  font-size: 14px;
  color: var(--c-muted);
  line-height: 1.6;
  margin: 0;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-bl-hero-inner { gap: 32px; }
  .rst2-bl-hero-stats { width: 170px; }
  .rst2-bl-featured-body { padding: 36px 38px; }
}
@media (max-width: 991px) {
  .rst2-bl-hero-inner { flex-direction: column; align-items: flex-start; gap: 28px; }
  .rst2-bl-hero-stats {
    flex-direction: row;
    width: 100%;
    max-width: 460px;
  }
  .rst2-bl-hero-stat {
    flex: 1;
    border-bottom: none;
    border-right: 1px solid rgba(255,255,255,0.1);
    padding: 16px 14px;
  }
  .rst2-bl-hero-stat:last-child { border-right: none; }
  .rst2-bl-body { padding: 56px 0 72px; }
  .rst2-bl-featured { grid-template-columns: 1fr; }
  .rst2-bl-featured-img { aspect-ratio: 16 / 7; }
  .rst2-bl-featured-body { padding: 32px 32px 36px; }
  .rst2-bl-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-bl-subscribe { padding: 0 0 64px; }
  .rst2-bl-subscribe-inner { padding: 28px 28px; }
}
@media (max-width: 767px) {
  .rst2-bl-body { padding: 40px 0 56px; }
  .rst2-bl-featured-wrap { margin-bottom: 48px; }
  .rst2-bl-featured-body { padding: 24px 20px 28px; }
  .rst2-bl-grid { grid-template-columns: 1fr; gap: 18px; }
  .rst2-bl-hero-stats {
    flex-wrap: wrap;
    max-width: 100%;
  }
  .rst2-bl-hero-stat {
    flex: 0 0 50%;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    padding: 16px 12px;
  }
  .rst2-bl-hero-stat:nth-child(odd):not(:last-child) { border-right: 1px solid rgba(255,255,255,0.1); }
  .rst2-bl-hero-stat:last-child:nth-child(odd) { flex: 0 0 100%; border-bottom: none; }
  .rst2-bl-hero-stat:nth-child(3) { border-bottom: none; }
  .rst2-bl-pagination { gap: 6px; }
  .rst2-bl-pag-btn { padding: 9px 14px; font-size: 13px; }
  .rst2-bl-subscribe-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 20px;
    gap: 16px;
  }
  .rst2-bl-subscribe-inner .rst2-cta-btn-primary { width: 100%; justify-content: center; }
}
@media (max-width: 480px) {
  .rst2-bl-grid { gap: 14px; }
  .rst2-bl-card-body { padding: 16px 18px 20px; }
}

/* ============================================================
   RST2 â€” BLOG DETAIL PAGE
   ============================================================ */

/* â”€â”€ Reading progress bar (fixed, top of viewport) â”€â”€ */
.rst2-bd-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: var(--c-blue);
  z-index: 9999;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* removed garbled comment */
.rst2-bd-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  padding-top: 90px;
  padding-bottom: 0;
}
.rst2-bd-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.35) 0%,
    rgba(0,0,0,0.55) 40%,
    rgba(0,0,0,0.88) 100%
  );
  pointer-events: none;
}
.rst2-bd-hero .container { position: relative; z-index: 2; }

.rst2-bd-hero-inner {
  padding: 48px 0 56px;
  max-width: 860px;
}

/* Breadcrumb */
.rst2-bd-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.rst2-bd-breadcrumb a {
  font-size: 13px;
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  transition: color 0.18s;
}
.rst2-bd-breadcrumb a:hover { color: #fff; text-decoration: none; }
.rst2-bd-breadcrumb span:not([aria-current]) {
  font-size: 12px;
  color: rgba(255,255,255,0.4);
}
.rst2-bd-breadcrumb span[aria-current="page"] {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
}

.rst2-bd-hero-content { display: flex; flex-direction: column; gap: 16px; }

/* Article title */
.rst2-bd-hero-title {
  font-size: clamp(26px, 4vw, 52px);
  font-weight: 800;
  color: #fff;
  line-height: 1.18;
  letter-spacing: -0.025em;
  margin: 0;
}

/* removed garbled comment */
.rst2-bd-hero-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.rst2-bd-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  color: rgba(255,255,255,0.8);
  line-height: 1;
}
.rst2-bd-meta-sep { color: rgba(255,255,255,0.35); font-size: 14px; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   ARTICLE BODY LAYOUT
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bd-body {
  background: var(--c-white);
  padding: 64px 0 80px;
}
.rst2-bd-layout {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 48px;
  align-items: start;
  max-width: 900px;
  margin: 0 auto;
}

/* â”€â”€ Floating share sidebar â”€â”€ */
.rst2-bd-share-aside { min-width: 0; }
.rst2-bd-share-sticky {
  position: sticky;
  top: 116px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.rst2-bd-share-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--c-muted);
  margin: 0 0 4px;
  writing-mode: initial;
}
.rst2-bd-share-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-body);
  text-decoration: none;
  transition: all 0.18s;
  cursor: pointer;
  flex-shrink: 0;
}
.rst2-bd-share-btn:hover {
  border-color: var(--c-blue);
  color: var(--c-blue);
  background: rgba(41,171,226,0.06);
  text-decoration: none;
  transform: translateY(-2px);
}
/* Relative wrapper for copy toast */
.rst2-bd-share-sticky { position: sticky; top: 116px; }
.rst2-bd-copy-toast {
  position: absolute;
  left: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--c-ink);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
}
.rst2-bd-copy-toast--visible { opacity: 1; }

/* â”€â”€ Article column â”€â”€ */
.rst2-bd-article { min-width: 0; }

/* Back link */
.rst2-bd-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-muted);
  text-decoration: none;
  margin-bottom: 36px;
  transition: color 0.18s, gap 0.18s;
}
.rst2-bd-back:hover { color: var(--c-blue); gap: 10px; text-decoration: none; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PROSE / ARTICLE CONTENT TYPOGRAPHY
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bd-prose {
  font-size: 17px;
  line-height: 1.82;
  color: var(--c-body);
  word-break: break-word;
  overflow-wrap: break-word;
}
.rst2-bd-prose > * + * { margin-top: 1.4em; }

/* Headings */
.rst2-bd-prose h1,
.rst2-bd-prose h2 {
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 800;
  color: var(--c-ink);
  line-height: 1.3;
  letter-spacing: -0.018em;
  margin-top: 2.2em;
  margin-bottom: 0.6em;
}
.rst2-bd-prose h3 {
  font-size: clamp(17px, 1.9vw, 21px);
  font-weight: 700;
  color: var(--c-ink);
  line-height: 1.35;
  margin-top: 1.8em;
  margin-bottom: 0.5em;
}
.rst2-bd-prose h4 {
  font-size: 17px;
  font-weight: 700;
  color: var(--c-dark);
  margin-top: 1.5em;
  margin-bottom: 0.4em;
}
.rst2-bd-prose h2:first-child,
.rst2-bd-prose h3:first-child { margin-top: 0; }

/* Paragraphs */
.rst2-bd-prose p {
  margin-top: 0;
  margin-bottom: 1.25em;
}
.rst2-bd-prose p:last-child { margin-bottom: 0; }

/* Links */
.rst2-bd-prose a {
  color: var(--c-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: opacity 0.18s;
}
.rst2-bd-prose a:hover { opacity: 0.78; }

/* Strong / em */
.rst2-bd-prose strong { color: var(--c-dark); font-weight: 700; }
.rst2-bd-prose em { font-style: italic; }

/* Lists */
.rst2-bd-prose ul,
.rst2-bd-prose ol {
  padding-left: 1.5em;
  margin-bottom: 1.25em;
}
.rst2-bd-prose ul { list-style: none; padding-left: 0; }
.rst2-bd-prose ul li {
  position: relative;
  padding-left: 1.4em;
  margin-bottom: 0.5em;
}
.rst2-bd-prose ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-blue);
}
.rst2-bd-prose ol li { margin-bottom: 0.5em; padding-left: 0.4em; }

/* Blockquote */
.rst2-bd-prose blockquote {
  margin: 2em 0;
  padding: 20px 28px;
  border-left: 4px solid var(--c-blue);
  background: rgba(41,171,226,0.05);
  border-radius: 0 10px 10px 0;
}
.rst2-bd-prose blockquote p {
  font-size: 18px;
  font-style: italic;
  color: var(--c-dark);
  margin: 0;
  line-height: 1.7;
}

/* Images */
.rst2-bd-prose img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  display: block;
  margin: 2em auto;
}

/* Horizontal rule */
.rst2-bd-prose hr {
  border: none;
  border-top: 1px solid var(--c-border);
  margin: 2.5em 0;
}

/* Tables */
.rst2-bd-prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  margin: 1.5em 0;
  overflow-x: auto;
  display: block;
}
.rst2-bd-prose th {
  background: var(--c-surface);
  color: var(--c-ink);
  font-weight: 700;
  text-align: left;
  padding: 10px 16px;
  border: 1px solid var(--c-border);
}
.rst2-bd-prose td {
  padding: 10px 16px;
  border: 1px solid var(--c-border);
  color: var(--c-body);
}
.rst2-bd-prose tr:nth-child(even) td { background: var(--c-surface); }

/* Code */
.rst2-bd-prose code {
  font-family: 'Menlo', 'Consolas', monospace;
  font-size: 14px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 4px;
  padding: 2px 6px;
  color: var(--c-dark);
}
.rst2-bd-prose pre {
  background: var(--c-ink);
  border-radius: 10px;
  padding: 20px 24px;
  overflow-x: auto;
  margin: 1.5em 0;
}
.rst2-bd-prose pre code {
  background: none;
  border: none;
  color: #e2e4ea;
  font-size: 14px;
  padding: 0;
}

/* Legacy .pt-bl class (from old content) */
.rst2-bd-prose .pt-bl {
  font-size: 17px;
  line-height: 1.82;
  padding-left: 0;
  text-align: left;
  padding-bottom: 0;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   ARTICLE FOOTER
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bd-article-footer {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid var(--c-border);
  display: flex;
  flex-direction: column;
  gap: 32px;
}

/* Tags */
.rst2-bd-footer-tags {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.rst2-bd-footer-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--c-muted);
}

/* Share row (shown on mobile, hidden on desktop where sidebar handles it) */
.rst2-bd-footer-share {
  display: none;
  flex-direction: column;
  gap: 14px;
}
.rst2-bd-footer-share-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.rst2-bd-footer-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  border-radius: 8px;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-body);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.18s;
}
.rst2-bd-footer-share-btn:hover {
  border-color: var(--c-blue);
  color: var(--c-blue);
  text-decoration: none;
}
.rst2-bd-footer-share-wa { border-color: #25D366; color: #25D366; }
.rst2-bd-footer-share-wa:hover { background: #25D366; color: #fff; border-color: #25D366; }

/* Author card */
.rst2-bd-author {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 28px 32px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 16px;
}
.rst2-bd-author-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--c-white);
  border: 2px solid var(--c-border);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
}
.rst2-bd-author-avatar img { width: 100%; height: auto; object-fit: contain; }
.rst2-bd-author-info { flex: 1; min-width: 0; }
.rst2-bd-author-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--c-muted);
  margin-bottom: 4px;
}
.rst2-bd-author-name {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--c-ink);
  margin-bottom: 8px;
}
.rst2-bd-author-bio {
  font-size: 13.5px;
  color: var(--c-body);
  line-height: 1.65;
  margin: 0;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PREV / NEXT NAVIGATION
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bd-nav-wrap {
  background: var(--c-surface);
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  padding: 28px 0;
}
.rst2-bd-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  max-width: 900px;
  margin: 0 auto;
}
.rst2-bd-nav-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-decoration: none;
  transition: opacity 0.18s;
  min-width: 0;
}
.rst2-bd-nav-item:hover { opacity: 0.75; text-decoration: none; }
.rst2-bd-nav-empty { pointer-events: none; }
.rst2-bd-nav-prev { align-items: flex-start; }
.rst2-bd-nav-next { align-items: flex-end; text-align: right; }
.rst2-bd-nav-dir {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-muted);
}
.rst2-bd-nav-next .rst2-bd-nav-dir { flex-direction: row-reverse; }
.rst2-bd-nav-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-ink);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rst2-bd-nav-all {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  border: 1px solid var(--c-border);
  background: var(--c-white);
  color: var(--c-muted);
  text-decoration: none;
  transition: all 0.18s;
  flex-shrink: 0;
}
.rst2-bd-nav-all:hover {
  border-color: var(--c-blue);
  color: var(--c-blue);
  text-decoration: none;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RELATED POSTS
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.rst2-bd-related {
  padding: 72px 0 80px;
  background: var(--c-white);
}
.rst2-bd-related-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--c-border);
}
.rst2-bd-related-title {
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 700;
  color: var(--c-ink);
  margin: 0;
}
.rst2-bd-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-bd-layout { max-width: 820px; gap: 0 36px; }
}
@media (max-width: 991px) {
  .rst2-bd-body { padding: 48px 0 64px; }
  .rst2-bd-layout {
    grid-template-columns: 1fr;
    max-width: 720px;
  }
  .rst2-bd-share-aside { display: none; }
  .rst2-bd-footer-share { display: flex; }
  .rst2-bd-related-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-bd-nav { gap: 16px; }
}
@media (max-width: 767px) {
  .rst2-bd-hero { min-height: 60vh; }
  .rst2-bd-hero-inner { padding: 32px 0 40px; }
  .rst2-bd-body { padding: 36px 0 52px; }
  .rst2-bd-prose { font-size: 16px; line-height: 1.78; }
  .rst2-bd-author { flex-direction: column; gap: 16px; padding: 20px; }
  .rst2-bd-nav { grid-template-columns: 1fr 1fr; gap: 12px; }
  .rst2-bd-nav-all { display: none; }
  .rst2-bd-nav-next { align-items: flex-end; }
  .rst2-bd-related { padding: 48px 0 56px; }
  .rst2-bd-related-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .rst2-bd-hero-meta { flex-direction: column; align-items: flex-start; gap: 6px; }
  .rst2-bd-meta-sep { display: none; }
  .rst2-bd-footer-share-row { flex-direction: column; align-items: flex-start; }
  .rst2-bd-footer-share-btn { width: 100%; justify-content: center; }
}

/* removed garbled comment */

/* â”€â”€ Override section padding for glow balance â”€â”€ */
.rst2-cta { padding: 96px 0; }

/* Ambient glow â€” always on, no extra markup needed */
.rst2-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 5% 60%, rgba(41,171,226,0.11) 0%, transparent 65%),
    radial-gradient(ellipse 40% 55% at 95% 15%, rgba(41,171,226,0.07) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.rst2-cta > .container { position: relative; z-index: 1; }

/* â”€â”€ 2-col inner layout â”€â”€ */
.rst2-cta-inner {
  display: grid;
  grid-template-columns: 1fr 360px;
  grid-template-areas:
    "text  actions"
    "text  trust";
  gap: 0 72px;
  align-items: start;
}

/* Left: text block */
.rst2-cta-text {
  grid-area: text;
  align-self: center;
}
.rst2-cta-text .rst2-eyebrow { margin-bottom: 14px; }
.rst2-cta-text .rst2-cta-title { margin-bottom: 18px; }
.rst2-cta-text .rst2-cta-body { margin-bottom: 0; max-width: 500px; }

/* Right-top: action card */
.rst2-cta-actions {
  grid-area: actions;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.09);
  border-top: 2px solid var(--c-blue);
  border-radius: 16px;
  padding: 32px 28px 28px;
}

/* Make primary button fill the card width */
.rst2-cta-actions .rst2-cta-btn-primary {
  width: 100%;
  justify-content: center;
  padding: 15px 24px;
}

/* Outline / secondary button */
.rst2-cta-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  border: 1px solid rgba(255,255,255,0.16);
  background: transparent;
  color: rgba(255,255,255,0.72);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 14px 24px;
  border-radius: 4px;
  text-decoration: none;
  text-align: center;
  transition: border-color 0.22s, color 0.22s, background 0.22s;
  line-height: 1;
}
.rst2-cta-btn-outline:hover {
  border-color: rgba(255,255,255,0.42);
  color: #fff;
  background: rgba(255,255,255,0.06);
  text-decoration: none;
}

/* Divider between buttons and trust strip */
.rst2-cta-actions + .rst2-cta-trust {
  border-top: 1px solid rgba(255,255,255,0.07);
  padding-top: 20px;
  margin-top: 0;
}

/* Right-bottom: trust strip */
.rst2-cta-trust {
  grid-area: trust;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.07);
}

/* Trust item (div + svg + text) */
.rst2-cta-trust-item {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: rgba(255,255,255,0.48);
  line-height: 1.2;
}
.rst2-cta-trust-item svg {
  color: var(--c-blue);
  flex-shrink: 0;
  opacity: 0.85;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-cta-inner {
    grid-template-columns: 1fr 320px;
    gap: 0 52px;
  }
}
@media (max-width: 991px) {
  .rst2-cta { padding: 72px 0; }
  .rst2-cta-inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "text"
      "actions"
      "trust";
    gap: 36px 0;
  }
  .rst2-cta-text .rst2-cta-body { max-width: 100%; }
  .rst2-cta-trust {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 12px 24px !important;
  }
}
@media (max-width: 767px) {
  .rst2-cta { padding: 56px 0; }
  .rst2-cta-actions { padding: 24px 20px 22px; }
  .rst2-cta-trust {
    flex-direction: column !important;
    gap: 10px !important;
  }
}


/* removed garbled comment */

/* â”€â”€ Section wrapper â”€â”€ */
.rst2-cta { padding: 108px 0 100px; position: relative; overflow: hidden; }

/* Central glow halo */
.rst2-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 100% at 50% 50%,  rgba(41,171,226,0.10) 0%, transparent 60%),
    radial-gradient(ellipse 40%  55%  at 8%  85%,  rgba(41,171,226,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 35%  48%  at 92%  8%,  rgba(41,171,226,0.06) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}

/* Diagonal light-streak */
.rst2-cta::after {
  content: '';
  position: absolute;
  top: -50%;
  right: -12%;
  width: 50%;
  height: 220%;
  background: linear-gradient(180deg, rgba(41,171,226,0.05) 0%, transparent 60%);
  transform: rotate(-17deg);
  pointer-events: none;
  z-index: 0;
}

/* â”€â”€ Inner wrapper â€” centred column â”€â”€ */
.rst2-cta-inner {
  display:             flex !important;
  flex-direction:      column !important;
  align-items:         center !important;
  text-align:          center !important;
  gap:                 0 !important;
  grid-template-columns: unset !important;
  grid-template-areas:   unset !important;
  max-width: 860px;
  margin: 0 auto;
}

/* â”€â”€ Text block â”€â”€ */
.rst2-cta-text {
  grid-area: unset;
  align-self: unset;
  width: 100%;
}
.rst2-cta-text .rst2-eyebrow { margin-bottom: 22px; }

.rst2-cta-title {
  font-size:      clamp(34px, 5.4vw, 66px);
  font-weight:    800;
  line-height:    1.06;
  letter-spacing: -0.03em;
  color:          #fff;
  margin-bottom:  22px;
}

.rst2-cta-body {
  font-size:    clamp(16px, 1.65vw, 18.5px);
  color:        rgba(255,255,255,0.58);
  line-height:  1.72;
  max-width:    560px;
  margin:       0 auto 48px;
}

/* â”€â”€ Button row â”€â”€ */
.rst2-cta-actions {
  grid-area:      unset !important;
  background:     none !important;
  border:         none !important;
  border-top:     none !important;
  border-radius:  0 !important;
  padding:        0 !important;
  display:        flex !important;
  flex-direction: row !important;
  gap:            14px !important;
  justify-content: center !important;
  flex-wrap:      wrap !important;
  margin-bottom:  48px;
  width:          100%;
}

/* Primary â€” full auto width */
.rst2-cta-actions .rst2-cta-btn-primary {
  width:   auto !important;
  padding: 18px 44px !important;
  font-size:   15.5px;
  font-weight: 700;
  border-radius: 6px !important;
  box-shadow: 0 6px 28px rgba(41,171,226,0.38) !important;
}
.rst2-cta-actions .rst2-cta-btn-primary:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 36px rgba(41,171,226,0.52) !important;
}

/* Outline / secondary */
.rst2-cta-btn-outline {
  display:         inline-flex !important;
  align-items:     center !important;
  justify-content: center !important;
  width:           auto !important;
  border:          1.5px solid rgba(255,255,255,0.22) !important;
  background:      transparent !important;
  color:           rgba(255,255,255,0.80) !important;
  font-size:       15.5px !important;
  font-weight:     600 !important;
  letter-spacing:  0.02em !important;
  padding:         18px 44px !important;
  border-radius:   6px !important;
  text-decoration: none !important;
  transition:      border-color .22s, color .22s, background .22s !important;
}
.rst2-cta-btn-outline:hover {
  border-color: rgba(255,255,255,0.55) !important;
  color:        #fff !important;
  background:   rgba(255,255,255,0.07) !important;
  text-decoration: none !important;
}

/* â”€â”€ Trust strip â€” horizontal with pipe separators â”€â”€ */
.rst2-cta-trust {
  grid-area:       unset !important;
  display:         flex !important;
  flex-direction:  row !important;
  align-items:     center !important;
  justify-content: center !important;
  flex-wrap:       wrap !important;
  gap:             0 !important;
  padding-top:     32px !important;
  border-top:      1px solid rgba(255,255,255,0.09) !important;
  width:           100%;
  margin-top: 0 !important;
}

.rst2-cta-trust-item {
  display:        flex !important;
  align-items:    center !important;
  gap:            9px !important;
  font-size:      12px !important;
  font-weight:    600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color:          rgba(255,255,255,0.46) !important;
  padding:        0 32px !important;
  position:       relative;
  line-height:    1.4 !important;
}

/* Pipe separator between items */
.rst2-cta-trust-item + .rst2-cta-trust-item::before {
  content:   '';
  position:  absolute;
  left:      0;
  top:       50%;
  transform: translateY(-50%);
  height:    16px;
  width:     1px;
  background: rgba(255,255,255,0.16);
}

.rst2-cta-trust-item svg {
  color:   var(--c-blue) !important;
  opacity: 1 !important;
  flex-shrink: 0;
}

/* Remove old v2 trust divider targeting .rst2-cta-actions + .rst2-cta-trust */
.rst2-cta-actions + .rst2-cta-trust {
  border-top: none !important;
  padding-top: 0 !important;
}

/* â”€â”€ Responsive v3 â”€â”€ */
@media (max-width: 991px) {
  .rst2-cta { padding: 84px 0 76px; }
}

@media (max-width: 767px) {
  .rst2-cta { padding: 68px 0 60px; }
  .rst2-cta-body { margin-bottom: 36px !important; }
  .rst2-cta-actions {
    flex-direction: column !important;
    align-items:    stretch !important;
    max-width: 340px;
    margin-left:  auto;
    margin-right: auto;
  }
  .rst2-cta-actions .rst2-cta-btn-primary,
  .rst2-cta-btn-outline {
    padding:      16px 24px !important;
    text-align:   center;
    justify-content: center;
  }
  .rst2-cta-trust { row-gap: 12px !important; }
  .rst2-cta-trust-item { padding: 6px 20px !important; }
}

@media (max-width: 480px) {
  .rst2-cta-trust-item + .rst2-cta-trust-item::before { display: none; }
  .rst2-cta-trust-item { padding: 6px 14px !important; }
}

/* ============================================================
   RST2 â€” PROJECTS LISTING  (rst2-pj-*)
   ============================================================ */

/* removed garbled comment */
.rst2-pj-hero-stats {
  display: flex;
  align-items: center;
  gap: 0;
  background: rgba(255,255,255,0.06);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  padding: 24px 32px;
  flex-shrink: 0;
}
.rst2-pj-hs-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 28px;
}
.rst2-pj-hs-item strong {
  display: block;
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.rst2-pj-hs-item span {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-top: 4px;
  white-space: nowrap;
}
.rst2-pj-hs-sep {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,0.14);
  flex-shrink: 0;
}

/* â”€â”€ Section wrapper â”€â”€ */
.rst2-pj-section {
  padding: 88px 0 108px;
  background: #fff;
}

/* â”€â”€ Section header â”€â”€ */
.rst2-pj-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 48px;
  gap: 24px;
  flex-wrap: wrap;
}
.rst2-pj-section-title {
  font-size: clamp(26px, 3.2vw, 42px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0;
}
.rst2-pj-count {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 9px 18px;
  border: 1.5px solid var(--c-border);
  border-radius: 100px;
  white-space: nowrap;
}
.rst2-pj-count svg { color: var(--c-muted); }

/* â”€â”€ Grid â”€â”€ */
.rst2-pj-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
  background: var(--c-border);
}

/* â”€â”€ Card â”€â”€ */
.rst2-pj-card { background: #fff; }
.rst2-pj-card--featured { grid-column: span 2; }

.rst2-pj-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
  outline-offset: 4px;
}
.rst2-pj-card-link:hover { text-decoration: none; color: inherit; }

/* Image wrapper */
.rst2-pj-card-visual {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--c-surface);
}
.rst2-pj-card--featured .rst2-pj-card-visual { aspect-ratio: 16 / 9; }

.rst2-pj-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.rst2-pj-card:hover .rst2-pj-card-img { transform: scale(1.07); }

/* Persistent bottom gradient */
.rst2-pj-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.60) 0%,
    rgba(0,0,0,0.12) 40%,
    transparent 65%
  );
  transition: opacity 0.35s;
  z-index: 1;
}

/* Hover reveal: full dark overlay + button */
.rst2-pj-card-hover {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(11,13,17,0.52);
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 2;
}
.rst2-pj-card:hover .rst2-pj-card-hover { opacity: 1; }

.rst2-pj-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--c-blue);
  color: #fff;
  padding: 14px 30px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  transform: translateY(10px);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s;
  box-shadow: 0 4px 20px rgba(41,171,226,0.45);
}
.rst2-pj-card:hover .rst2-pj-card-btn {
  transform: translateY(0);
}

/* Location chip bottom-left of image */
.rst2-pj-card-location {
  position: absolute;
  bottom: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(0,0,0,0.52);
  backdrop-filter: blur(10px);
  color: rgba(255,255,255,0.88);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 5px 11px;
  border-radius: 4px;
  z-index: 3;
}

/* Card text body */
.rst2-pj-card-body {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 20px 20px;
  border-top: 1px solid var(--c-border);
}
.rst2-pj-card-client {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-blue);
  white-space: nowrap;
  flex-shrink: 0;
}
.rst2-pj-card-title {
  font-size: clamp(14px, 1.3vw, 17px);
  font-weight: 700;
  color: var(--c-ink);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
  flex: 1;
}
.rst2-pj-card--featured .rst2-pj-card-title {
  font-size: clamp(16px, 1.6vw, 20px);
}
.rst2-pj-card-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--c-border);
  color: var(--c-muted);
  flex-shrink: 0;
  transition: background 0.22s, border-color 0.22s, color 0.22s;
}
.rst2-pj-card:hover .rst2-pj-card-arrow {
  background: var(--c-blue);
  border-color: var(--c-blue);
  color: #fff;
}

/* â”€â”€ Responsive (listing) â”€â”€ */
@media (max-width: 1199px) {
  .rst2-pj-hero-stats { padding: 20px 24px; }
  .rst2-pj-hs-item { padding: 0 20px; }
}
@media (max-width: 991px) {
  .rst2-ab-hero-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
  .rst2-pj-hero-stats { width: 100%; justify-content: space-around; }
  .rst2-pj-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-pj-card--featured { grid-column: span 2; }
}
@media (max-width: 640px) {
  .rst2-pj-section { padding: 60px 0 72px; }
  .rst2-pj-grid { grid-template-columns: 1fr; gap: 2px; }
  .rst2-pj-card--featured { grid-column: span 1; }
  .rst2-pj-card--featured .rst2-pj-card-visual { aspect-ratio: 4/3; }
  .rst2-pj-hero-stats { flex-wrap: wrap; gap: 16px; padding: 16px; }
  .rst2-pj-hs-sep { display: none; }
}


/* ============================================================
   RST2 â€” PROJECT DETAIL  (rst2-pd-*)
   ============================================================ */

/* removed garbled comment */
.rst2-pd-hero {
  position: relative;
  min-height: 88vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-top: 90px;
}
.rst2-pd-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.90) 0%,
    rgba(0,0,0,0.50) 45%,
    rgba(0,0,0,0.20) 100%
  );
  z-index: 0;
}
.rst2-pd-hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 64px 0 72px;
}

/* Breadcrumb */
.rst2-pd-hero-bc {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}
.rst2-pd-hero-bc li {
  font-size: 12.5px;
  color: rgba(255,255,255,0.50);
  font-weight: 500;
}
.rst2-pd-hero-bc li a {
  color: rgba(255,255,255,0.50);
  text-decoration: none;
  transition: color 0.2s;
}
.rst2-pd-hero-bc li a:hover { color: rgba(255,255,255,0.85); }
.rst2-pd-hero-bc li + li::before {
  content: 'â€º';
  margin: 0 9px;
  color: rgba(255,255,255,0.28);
}

/* Badge */
.rst2-pd-hero-badge {
  display: inline-block;
  background: var(--c-blue);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 13px;
  border-radius: 4px;
  margin-bottom: 20px;
}

/* Title */
.rst2-pd-hero-title {
  font-size: clamp(30px, 5vw, 62px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.03em;
  line-height: 1.06;
  margin: 0 0 28px;
  max-width: 820px;
}

/* Meta row */
.rst2-pd-hero-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.rst2-pd-hero-meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: rgba(255,255,255,0.72);
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.12);
  padding: 8px 16px;
  border-radius: 6px;
}
.rst2-pd-hero-meta-item strong {
  color: rgba(255,255,255,0.5);
  font-weight: 600;
}
.rst2-pd-hero-meta-item svg { color: var(--c-blue); flex-shrink: 0; }
.rst2-pd-hero-meta-sep { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,0.2); }

/* â”€â”€ Body â”€â”€ */
.rst2-pd-body {
  padding: 88px 0 108px;
  background: #fff;
}
.rst2-pd-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 72px;
  align-items: start;
}

/* â”€â”€ Info panel â”€â”€ */
.rst2-pd-info { position: sticky; top: 104px; }
.rst2-pd-info-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 14px;
  padding: 0 24px;
  margin-bottom: 20px;
}
.rst2-pd-info-item {
  padding: 18px 0;
  border-bottom: 1px solid var(--c-border);
}
.rst2-pd-info-item:last-child { border-bottom: none; }
.rst2-pd-info-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
  margin: 0 0 5px;
}
.rst2-pd-info-value {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.45;
}
.rst2-pd-info-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--c-muted);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  margin-bottom: 12px;
  transition: color 0.2s, gap 0.2s;
}
.rst2-pd-info-back:hover { color: var(--c-ink); gap: 12px; text-decoration: none; }
.rst2-pd-info-quote {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--c-blue);
  color: #fff;
  font-size: 13.5px;
  font-weight: 700;
  padding: 14px 20px;
  border-radius: 8px;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: background 0.22s, transform 0.22s, box-shadow 0.22s;
  box-shadow: 0 4px 18px rgba(41,171,226,0.3);
  margin-top: 4px;
}
.rst2-pd-info-quote:hover {
  background: #1a8fc2;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(41,171,226,0.45);
  text-decoration: none;
}

/* â”€â”€ Content â”€â”€ */
.rst2-pd-content-heading {
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--c-border);
}
.rst2-pd-desc-block { margin-bottom: 48px; }
.rst2-pd-desc {
  font-size: 16.5px;
  color: var(--c-body);
  line-height: 1.8;
}
.rst2-pd-desc p { margin-bottom: 1.1em; }

/* Main image */
.rst2-pd-main-img-wrap {
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  border: 1px solid var(--c-border);
}
.rst2-pd-main-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Gallery */
.rst2-pd-gallery-wrap { margin-top: 48px; }
.rst2-pd-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.rst2-pd-gallery-item {
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--c-border);
}
.rst2-pd-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}
.rst2-pd-gallery-item:hover img { transform: scale(1.04); }

/* â”€â”€ Related projects â”€â”€ */
.rst2-pd-related {
  padding: 80px 0 96px;
  background: var(--c-surface);
}
.rst2-pd-related-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 16px;
}
.rst2-pd-related-title {
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0;
}
.rst2-pd-related-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--c-blue);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: gap 0.2s;
}
.rst2-pd-related-link:hover { gap: 10px; text-decoration: none; color: var(--c-blue); }
.rst2-pd-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
  background: var(--c-border);
}

/* â”€â”€ Responsive (detail) â”€â”€ */
@media (max-width: 1100px) {
  .rst2-pd-layout { grid-template-columns: 248px 1fr; gap: 52px; }
}
@media (max-width: 991px) {
  .rst2-pd-layout { grid-template-columns: 1fr; gap: 40px; }
  .rst2-pd-info { position: static; }
  .rst2-pd-info-card { padding: 0 20px; }
  .rst2-pd-related-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-pd-body { padding: 64px 0 80px; }
}
@media (max-width: 767px) {
  .rst2-pd-hero { min-height: 68vh; }
  .rst2-pd-hero-inner { padding: 48px 0 56px; }
  .rst2-pd-hero-title { font-size: clamp(26px, 7vw, 38px); }
  .rst2-pd-gallery { grid-template-columns: 1fr; }
  .rst2-pd-body { padding: 52px 0 64px; }
  .rst2-pd-related { padding: 56px 0 64px; }
}
@media (max-width: 640px) {
  .rst2-pd-related-grid { grid-template-columns: 1fr; }
  .rst2-pd-hero-meta { flex-direction: column; align-items: flex-start; }
  .rst2-pd-hero-meta-sep { display: none; }
}

/* removed garbled comment */
.rst2-ab-bc-list {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}
.rst2-ab-bc-list li {
  font-size: 12.5px;
  color: rgba(255,255,255,0.48);
  font-weight: 500;
}
.rst2-ab-bc-list li a {
  color: rgba(255,255,255,0.48);
  text-decoration: none;
  transition: color 0.2s;
}
.rst2-ab-bc-list li a:hover { color: rgba(255,255,255,0.85); }
.rst2-ab-bc-list li + li::before {
  content: 'â€º';
  margin: 0 8px;
  color: rgba(255,255,255,0.25);
}
.rst2-ab-bc-list li[aria-current="page"] { color: rgba(255,255,255,0.72); }

/* ============================================================
   RST2 â€” PROJECTS LISTING v2  (rst2-pj2-*)
   Dark editorial magazine layout
   ============================================================ */

/* removed garbled comment */
.rst2-pj2-hero {
  position: relative;
  background: #0C0E11;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 90px 0 0;
  overflow: hidden;
}

/* Ghost number watermark */
.rst2-pj2-hero-ghost {
  position: absolute;
  right: -1%;
  bottom: -8%;
  font-size: clamp(160px, 24vw, 340px);
  font-weight: 900;
  color: rgba(255,255,255,0.03);
  line-height: 1;
  letter-spacing: -0.06em;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.rst2-pj2-hero > .container {
  position: relative;
  z-index: 1;
  width: 100%;
  flex: 1;
  display: flex;
  align-items: center;
  padding-bottom: 80px;
}

.rst2-pj2-hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  width: 100%;
}

/* Left col */
.rst2-pj2-hero-left .rst2-eyebrow { margin-bottom: 20px; }

.rst2-pj2-hero-title {
  font-size: clamp(52px, 8vw, 96px);
  font-weight: 900;
  color: #fff;
  line-height: 1.0;
  letter-spacing: -0.04em;
  margin: 0;
}

/* Right col */
.rst2-pj2-hero-sub {
  font-size: clamp(14px, 1.4vw, 16.5px);
  color: rgba(255,255,255,0.50);
  line-height: 1.75;
  margin-bottom: 48px;
  max-width: 440px;
}

.rst2-pj2-hero-stats {
  display: flex;
  align-items: stretch;
  gap: 0;
}
.rst2-pj2-hs-item {
  flex: 1;
  padding: 0 28px 0 0;
  border-right: 1px solid rgba(255,255,255,0.1);
  margin-right: 28px;
}
.rst2-pj2-hs-item:last-child {
  border-right: none;
  margin-right: 0;
  padding-right: 0;
}
.rst2-pj2-hs-item strong {
  display: block;
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.025em;
}
.rst2-pj2-hs-item span {
  display: block;
  font-size: 11px;
  color: rgba(255,255,255,0.38);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  margin-top: 5px;
}

/* Bottom rule */
.rst2-pj2-hero-rule {
  position: relative;
  z-index: 1;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(41,171,226,0.4) 30%,
    rgba(41,171,226,0.6) 50%,
    rgba(41,171,226,0.4) 70%,
    transparent 100%
  );
}

/* â”€â”€ Grid section â”€â”€ */
.rst2-pj2-grid-wrap {
  background: #0C0E11;
  padding-bottom: 4px;
}
.rst2-pj2-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
}

/* â”€â”€ Card span widths â”€â”€ */
.rst2-pj2-card--s12 { grid-column: span 12; }
.rst2-pj2-card--s7  { grid-column: span 7;  }
.rst2-pj2-card--s5  { grid-column: span 5;  }
.rst2-pj2-card--s6  { grid-column: span 6;  }
.rst2-pj2-card--s4  { grid-column: span 4;  }

/* â”€â”€ Card â”€â”€ */
.rst2-pj2-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
  outline-offset: 4px;
}
.rst2-pj2-card-link:hover,
.rst2-pj2-card-link:focus { text-decoration: none; color: inherit; }

.rst2-pj2-card-fig {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #111;
}

/* Aspect ratios per span */
.rst2-pj2-card--s12 .rst2-pj2-card-fig { aspect-ratio: 21 / 8;  }
.rst2-pj2-card--s7  .rst2-pj2-card-fig { aspect-ratio: 16 / 10; }
.rst2-pj2-card--s5  .rst2-pj2-card-fig { aspect-ratio: 4  / 3;  }
.rst2-pj2-card--s6  .rst2-pj2-card-fig { aspect-ratio: 5  / 3;  }
.rst2-pj2-card--s4  .rst2-pj2-card-fig { aspect-ratio: 4  / 3;  }

/* Image */
.rst2-pj2-card-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.rst2-pj2-card:hover .rst2-pj2-card-img,
.rst2-pj2-card-link:focus .rst2-pj2-card-img {
  transform: scale(1.07);
}

/* Dark gradient shade */
.rst2-pj2-card-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.82) 0%,
    rgba(0,0,0,0.28) 45%,
    rgba(0,0,0,0.06) 100%
  );
  transition: background 0.4s;
  z-index: 1;
}
.rst2-pj2-card:hover .rst2-pj2-card-shade {
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.90) 0%,
    rgba(0,0,0,0.45) 50%,
    rgba(0,0,0,0.18) 100%
  );
}

/* Blue accent line â€” slides in from left on hover */
.rst2-pj2-card-fig::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--c-blue);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 4;
}
.rst2-pj2-card:hover .rst2-pj2-card-fig::after,
.rst2-pj2-card-link:focus .rst2-pj2-card-fig::after {
  transform: scaleX(1);
}

/* Caption â€” absolute, fills card */
.rst2-pj2-card-cap {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px 26px;
  z-index: 2;
}

/* Top row: sequence number + arrow icon */
.rst2-pj2-card-cap-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.rst2-pj2-card-num {
  font-size: 10.5px;
  font-weight: 700;
  color: rgba(255,255,255,0.30);
  letter-spacing: 0.12em;
  font-variant-numeric: tabular-nums;
}

/* Arrow circle â€” hidden by default, shown on hover */
.rst2-pj2-card-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.22);
  background: rgba(255,255,255,0.04);
  color: #fff;
  opacity: 0;
  transform: translate(8px, -8px);
  transition: opacity 0.3s, transform 0.35s cubic-bezier(0.34,1.2,0.64,1), background 0.25s, border-color 0.25s;
}
.rst2-pj2-card:hover .rst2-pj2-card-arrow {
  opacity: 1;
  transform: translate(0, 0);
  background: var(--c-blue);
  border-color: var(--c-blue);
}

/* Bottom text block */
.rst2-pj2-card-cap-bot {
  transform: translateY(6px);
  transition: transform 0.38s cubic-bezier(0.25,0.46,0.45,0.94);
}
.rst2-pj2-card:hover .rst2-pj2-card-cap-bot { transform: translateY(0); }

.rst2-pj2-card-client {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: var(--c-blue);
  margin: 0 0 8px;
}
.rst2-pj2-card-title {
  font-size: clamp(15px, 1.8vw, 22px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 12px;
}
.rst2-pj2-card--s12 .rst2-pj2-card-title { font-size: clamp(22px, 3.2vw, 42px); }
.rst2-pj2-card--s7  .rst2-pj2-card-title { font-size: clamp(17px, 2vw, 26px);   }

.rst2-pj2-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.rst2-pj2-card-loc {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: rgba(255,255,255,0.45);
  font-weight: 500;
}
.rst2-pj2-card-view {
  font-size: 11px;
  font-weight: 700;
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.3s 0.05s, transform 0.3s 0.05s, color 0.2s;
}
.rst2-pj2-card:hover .rst2-pj2-card-view {
  opacity: 1;
  transform: translateX(0);
  color: var(--c-blue);
}

/* â”€â”€ Responsive (listing v2) â”€â”€ */
@media (max-width: 1199px) {
  .rst2-pj2-hero-inner { gap: 56px; }
  .rst2-pj2-hs-item { padding-right: 22px; margin-right: 22px; }
}
@media (max-width: 991px) {
  .rst2-pj2-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .rst2-pj2-hero-sub   { max-width: 100%; }
  /* Flatten grid to 2-col on tablet */
  .rst2-pj2-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-pj2-card--s12,
  .rst2-pj2-card--s7,
  .rst2-pj2-card--s5,
  .rst2-pj2-card--s6,
  .rst2-pj2-card--s4  { grid-column: span 1; }
  .rst2-pj2-card--s12 .rst2-pj2-card-fig { aspect-ratio: 16/9; }
  /* First card still full width */
  .rst2-pj2-card:first-child { grid-column: span 2; }
  .rst2-pj2-card:first-child .rst2-pj2-card-fig { aspect-ratio: 16/7; }
}
@media (max-width: 640px) {
  .rst2-pj2-hero { min-height: auto; padding-top: 90px; }
  .rst2-pj2-hero > .container { padding-bottom: 56px; }
  .rst2-pj2-hero-title { font-size: clamp(44px, 12vw, 64px); }
  .rst2-pj2-hero-stats { flex-direction: column; gap: 20px; }
  .rst2-pj2-hs-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); padding: 0 0 20px; margin: 0; }
  .rst2-pj2-hs-item:last-child { border-bottom: none; padding-bottom: 0; }
  /* Single column on mobile */
  .rst2-pj2-grid { grid-template-columns: 1fr; }
  .rst2-pj2-card,
  .rst2-pj2-card:first-child { grid-column: span 1; }
  .rst2-pj2-card--s12 .rst2-pj2-card-fig,
  .rst2-pj2-card:first-child .rst2-pj2-card-fig { aspect-ratio: 4/3; }
  .rst2-pj2-card-cap { padding: 16px 18px; }
}


/* ============================================================
   RST2 â€” PROJECT DETAIL v2  (rst2-pd2-*)
   ============================================================ */

/* â”€â”€ Progress bar â”€â”€ */
.rst2-pd2-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: var(--c-blue);
  z-index: 9999;
  transition: width 0.1s linear;
  box-shadow: 0 0 8px rgba(41,171,226,0.6);
}

/* removed garbled comment */
.rst2-pd2-hero {
  position: relative;
  min-height: 100vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  padding-top: 90px;
}
.rst2-pd2-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.95) 0%,
    rgba(0,0,0,0.55) 45%,
    rgba(0,0,0,0.18) 100%
  );
  z-index: 0;
}
.rst2-pd2-hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0 0 72px;
}

/* Breadcrumb */
.rst2-pd2-bc {
  list-style: none;
  padding: 0;
  margin: 0 0 48px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.rst2-pd2-bc li {
  font-size: 12px;
  color: rgba(255,255,255,0.42);
  font-weight: 500;
}
.rst2-pd2-bc li a {
  color: rgba(255,255,255,0.42);
  text-decoration: none;
  transition: color 0.2s;
}
.rst2-pd2-bc li a:hover { color: rgba(255,255,255,0.8); }
.rst2-pd2-bc li + li::before {
  content: 'â€º';
  margin: 0 9px;
  color: rgba(255,255,255,0.22);
}
.rst2-pd2-bc li[aria-current="page"] { color: rgba(255,255,255,0.7); }

/* removed garbled comment */
.rst2-pd2-hero-content {
  display: flex;
  align-items: flex-end;
  gap: 48px;
}
.rst2-pd2-hero-content-left { flex-shrink: 0; }
.rst2-pd2-hero-num {
  display: block;
  font-size: clamp(80px, 14vw, 180px);
  font-weight: 900;
  color: rgba(255,255,255,0.06);
  line-height: 1;
  letter-spacing: -0.06em;
  user-select: none;
  margin-bottom: -0.1em;
}
.rst2-pd2-hero-content-right { flex: 1; }

.rst2-pd2-hero-content-right .rst2-eyebrow { margin-bottom: 16px; }

.rst2-pd2-hero-title {
  font-size: clamp(32px, 5.5vw, 70px);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin: 0 0 28px;
  max-width: 820px;
}

/* Meta pills */
.rst2-pd2-hero-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.rst2-pd2-hero-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13.5px;
  color: rgba(255,255,255,0.70);
  background: rgba(255,255,255,0.07);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.10);
  padding: 9px 18px;
  border-radius: 100px;
}
.rst2-pd2-hero-meta-item svg { color: var(--c-blue); flex-shrink: 0; }
.rst2-pd2-hero-meta-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
}

/* Scroll indicator */
.rst2-pd2-scroll {
  position: absolute;
  bottom: 40px;
  right: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  z-index: 2;
}
.rst2-pd2-scroll span {
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(255,255,255,0.3);
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.rst2-pd2-scroll-line {
  width: 1px;
  height: 56px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%, transparent 100%);
  animation: rst2PdScrollPulse 2s ease-in-out infinite;
}
@keyframes rst2PdScrollPulse {
  0%,100% { transform: scaleY(1);   opacity: 0.6; }
  50%      { transform: scaleY(0.6); opacity: 0.2; }
}

/* â”€â”€ Info band â”€â”€ */
.rst2-pd2-band {
  background: #13151a;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.rst2-pd2-band-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  gap: 0;
}
.rst2-pd2-band-item {
  padding: 28px 32px;
  border-right: 1px solid rgba(255,255,255,0.07);
}
.rst2-pd2-band-item:last-of-type { border-right: 1px solid rgba(255,255,255,0.07); }
.rst2-pd2-band-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: rgba(255,255,255,0.35);
  margin: 0 0 6px;
}
.rst2-pd2-band-value {
  font-size: 14.5px;
  font-weight: 600;
  color: #fff;
  margin: 0;
  line-height: 1.4;
}
.rst2-pd2-band-actions {
  padding: 20px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  min-width: 200px;
}
.rst2-pd2-back-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,0.40);
  font-size: 12.5px;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s;
}
.rst2-pd2-back-link:hover { color: rgba(255,255,255,0.75); text-decoration: none; }
.rst2-pd2-quote-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--c-blue);
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  padding: 11px 20px;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.22s, transform 0.22s;
  white-space: nowrap;
}
.rst2-pd2-quote-btn:hover {
  background: #1a8fc2;
  color: #fff;
  transform: translateY(-1px);
  text-decoration: none;
}

/* â”€â”€ Overview section â”€â”€ */
.rst2-pd2-overview {
  padding: 96px 0 88px;
  background: #fff;
}
.rst2-pd2-overview-inner {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 72px;
  align-items: start;
}
.rst2-pd2-overview-label {
  position: sticky;
  top: 112px;
}
.rst2-pd2-overview-label span {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--c-muted);
  border-top: 2px solid var(--c-blue);
  padding-top: 12px;
}
.rst2-pd2-prose {
  font-size: 17.5px;
  color: var(--c-body);
  line-height: 1.82;
  max-width: 680px;
}
.rst2-pd2-prose p { margin-bottom: 1.1em; }
.rst2-pd2-prose p:first-child {
  font-size: 20px;
  color: var(--c-ink);
  line-height: 1.65;
  font-weight: 450;
}

/* Section title (for gallery) */
.rst2-pd2-section-title {
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0 0 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-border);
}

/* â”€â”€ Full-bleed main image â”€â”€ */
.rst2-pd2-fullimg {
  background: var(--c-surface);
  line-height: 0;
}
.rst2-pd2-fullimg img {
  width: 100%;
  height: clamp(320px, 55vw, 720px);
  object-fit: cover;
  display: block;
}

/* â”€â”€ Gallery â”€â”€ */
.rst2-pd2-gallery-section {
  padding: 80px 0 96px;
  background: #fff;
}
.rst2-pd2-gallery {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
  margin-top: 4px;
}
.rst2-pd2-gallery-item { overflow: hidden; background: var(--c-surface); }
.rst2-pd2-gallery-item--wide { grid-column: span 7; aspect-ratio: 16/9; }
.rst2-pd2-gallery-item--std  { grid-column: span 5; aspect-ratio: 4/3;  }
.rst2-pd2-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}
.rst2-pd2-gallery-item:hover img { transform: scale(1.04); }

/* â”€â”€ Related projects â”€â”€ */
.rst2-pd2-related {
  background: #0C0E11;
  padding: 80px 0 0;
}
.rst2-pd2-related-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 16px;
}
.rst2-pd2-related-title {
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.02em;
  margin: 0;
}
.rst2-pd2-related-all {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,0.45);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s, gap 0.2s;
}
.rst2-pd2-related-all:hover { color: rgba(255,255,255,0.85); gap: 11px; text-decoration: none; }

.rst2-pd2-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  /* margin-top: 4px; */
}

/* â”€â”€ Responsive (detail v2) â”€â”€ */
@media (max-width: 1199px) {
  .rst2-pd2-band-grid { grid-template-columns: repeat(2, 1fr) auto; }
  .rst2-pd2-band-item:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,0.07); }
}
@media (max-width: 991px) {
  .rst2-pd2-hero-content { flex-direction: column; gap: 0; }
  .rst2-pd2-hero-num { font-size: clamp(72px, 18vw, 140px); }
  .rst2-pd2-overview-inner { grid-template-columns: 1fr; gap: 28px; }
  .rst2-pd2-overview-label { position: static; }
  .rst2-pd2-overview-label span { border-top: none; border-left: 3px solid var(--c-blue); padding: 0 0 0 12px; }
  .rst2-pd2-band-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-pd2-band-actions { grid-column: span 2; border-top: 1px solid rgba(255,255,255,0.07); flex-direction: row; }
  .rst2-pd2-related-grid { grid-template-columns: repeat(2, 1fr); }
  .rst2-pd2-gallery-item--wide,
  .rst2-pd2-gallery-item--std { grid-column: span 6; aspect-ratio: 4/3; }
  .rst2-pd2-scroll { display: none; }
}
@media (max-width: 767px) {
  .rst2-pd2-hero { min-height: 80vh; }
  .rst2-pd2-hero-inner { padding-bottom: 56px; }
  .rst2-pd2-hero-title { font-size: clamp(28px, 8vw, 44px); }
  .rst2-pd2-overview { padding: 64px 0 72px; }
  .rst2-pd2-prose { font-size: 16px; }
  .rst2-pd2-prose p:first-child { font-size: 17.5px; }
  .rst2-pd2-gallery-section { padding: 60px 0 72px; }
  .rst2-pd2-related-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .rst2-pd2-band-grid { grid-template-columns: 1fr 1fr; }
  .rst2-pd2-hero-meta { flex-wrap: wrap; }
  .rst2-pd2-hero-meta-dot { display: none; }
  .rst2-pd2-gallery { grid-template-columns: 1fr; }
  .rst2-pd2-gallery-item--wide,
  .rst2-pd2-gallery-item--std { grid-column: span 1; }
}

/* ============================================================
   RST2 â€” PROJECTS LISTING  standardised  (rst2-pj-*)
   Mirrors rst2-bl-* (blogs) and rst2-tm-* (team) patterns
   ============================================================ */

/* removed garbled comment */
.rst2-pj-hero-inner {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.rst2-pj-hero-text { max-width: 580px; }
.rst2-pj-hero-text .rst2-eyebrow   { margin-bottom: 14px; }

/* removed garbled comment */
.rst2-pj-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
  min-width: 340px;
}
.rst2-pj-hero-stat {
  background: rgba(255,255,255,0.05);
  backdrop-filter: blur(12px);
  padding: 22px 24px;
  text-align: center;
}
.rst2-pj-hero-stat strong {
  display: block;
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.025em;
}
.rst2-pj-hero-stat span {
  display: block;
  font-size: 11px;
  color: rgba(255,255,255,0.50);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-top: 5px;
}

/* â”€â”€ Body section â”€â”€ */
.rst2-pj-body {
  background: #fff;
  padding: 80px 0 108px;
}

/* Section label row */
.rst2-pj-section-label { margin-bottom: 24px; }

/* â”€â”€ Featured project  (mirrors rst2-bl-featured) â”€â”€ */
.rst2-pj-feat-wrap { margin-bottom: 80px; }

.rst2-pj-feat {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  text-decoration: none;
  color: inherit;
  background: #fff;
  transition: box-shadow 0.28s, border-color 0.28s;
}
.rst2-pj-feat:hover {
  box-shadow: 0 12px 48px rgba(0,0,0,0.10);
  border-color: rgba(41,171,226,0.25);
  text-decoration: none;
  color: inherit;
}

/* Featured image */
.rst2-pj-feat-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}
.rst2-pj-feat-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.rst2-pj-feat:hover .rst2-pj-feat-img img { transform: scale(1.05); }

/* Badge â€” same pattern as rst2-bl-cat-badge */
.rst2-pj-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--c-blue);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 4px;
  z-index: 1;
}

/* Featured body */
.rst2-pj-feat-body {
  padding: 44px 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

/* Meta row (client + location) */
.rst2-pj-feat-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.rst2-pj-feat-client,
.rst2-pj-feat-loc {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: var(--c-muted);
  font-weight: 500;
}
.rst2-pj-feat-client svg,
.rst2-pj-feat-loc svg { color: var(--c-blue); flex-shrink: 0; }
.rst2-pj-feat-sep { color: var(--c-border); font-size: 16px; }

/* Featured title */
.rst2-pj-feat-title {
  font-size: clamp(22px, 2.8vw, 36px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin: 0 0 18px;
}

/* Excerpt */
.rst2-pj-feat-excerpt {
  font-size: 15.5px;
  color: var(--c-body);
  line-height: 1.7;
  margin: 0 0 28px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* CTA arrow link (mirrors rst2-bl-read-link) */
.rst2-pj-read-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--c-blue);
  letter-spacing: 0.01em;
  transition: gap 0.22s;
}
.rst2-pj-feat:hover .rst2-pj-read-link { gap: 12px; }

/* â”€â”€ Grid section header â”€â”€ */
.rst2-pj-grid-section { }
.rst2-pj-grid-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 36px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--c-border);
  flex-wrap: wrap;
  gap: 12px;
}
.rst2-pj-grid-title {
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0;
}
.rst2-pj-count {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--c-muted);
  background: var(--c-surface);
  padding: 7px 16px;
  border-radius: 100px;
  border: 1px solid var(--c-border);
  white-space: nowrap;
}

/* â”€â”€ Card grid (mirrors rst2-bl-grid) â”€â”€ */
.rst2-pj-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* â”€â”€ Card â”€â”€ */
.rst2-pj-card {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s;
}
.rst2-pj-card:hover {
  box-shadow: 0 8px 36px rgba(0,0,0,0.09);
  border-color: rgba(41,171,226,0.20);
  transform: translateY(-3px);
}

/* Card image wrap */
.rst2-pj-card-img-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--c-surface);
  text-decoration: none;
}
.rst2-pj-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.55s cubic-bezier(0.25,0.46,0.45,0.94);
}
.rst2-pj-card:hover .rst2-pj-card-img-wrap img { transform: scale(1.06); }
.rst2-pj-card-img-wrap .rst2-pj-badge { top: 12px; left: 12px; }

/* Card body */
.rst2-pj-card-body {
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

/* Card meta */
.rst2-pj-card-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.rst2-pj-card-client,
.rst2-pj-card-loc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--c-muted);
  font-weight: 500;
}
.rst2-pj-card-client svg,
.rst2-pj-card-loc svg { color: var(--c-blue); flex-shrink: 0; }
.rst2-pj-card-sep {
  color: var(--c-border);
  font-size: 14px;
  line-height: 1;
}

/* Card title */
.rst2-pj-card-title {
  font-size: clamp(15px, 1.4vw, 17.5px);
  font-weight: 700;
  color: var(--c-ink);
  letter-spacing: -0.015em;
  line-height: 1.35;
  margin: 0;
  flex: 1;
}
.rst2-pj-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.rst2-pj-card-title a:hover { color: var(--c-blue); }

/* Card CTA arrow */
.rst2-pj-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--c-blue);
  text-decoration: none;
  letter-spacing: 0.01em;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--c-border);
  transition: gap 0.2s, color 0.2s;
}
.rst2-pj-card:hover .rst2-pj-card-cta { gap: 9px; }
.rst2-pj-card-cta:hover { text-decoration: none; color: var(--c-blue); }

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-pj-feat-body { padding: 36px 40px; }
}
@media (max-width: 991px) {
  .rst2-pj-hero-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
  .rst2-pj-hero-stats { min-width: 0; width: 100%; }
  .rst2-pj-feat { grid-template-columns: 1fr; }
  .rst2-pj-feat-img { aspect-ratio: 16/9; }
  .rst2-pj-feat-body { padding: 32px 36px; }
  .rst2-pj-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 767px) {
  .rst2-pj-body { padding: 60px 0 80px; }
  .rst2-pj-feat-wrap { margin-bottom: 56px; }
  .rst2-pj-feat-body { padding: 24px 28px; }
  .rst2-pj-feat-title { font-size: clamp(20px, 5vw, 26px); }
}
@media (max-width: 640px) {
  .rst2-pj-grid { grid-template-columns: 1fr; gap: 16px; }
  .rst2-pj-hero-stats { grid-template-columns: repeat(3, 1fr); min-width: 0; }
}
@media (max-width: 480px) {
  .rst2-pj-hero-stats { grid-template-columns: 1fr; }
  .rst2-pj-hero-stat { padding: 18px 16px; }
}

/* ============================================================
   RST2 â€” PROJECT DETAIL  standardised  (rst2-pjd-*)
   Reuses rst2-bd-* (blog detail) for hero, body, nav, related.
   Only new layout-specific classes defined here.
   ============================================================ */

/* â”€â”€ 2-col layout: sidebar + article â”€â”€
   Mirrors rst2-bd-layout (56px share + 1fr article)
   but uses a wider sidebar for project info            */
.rst2-pjd-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 64px;
  align-items: start;
}

/* â”€â”€ Sidebar â”€â”€ */
.rst2-pjd-sidebar { }
.rst2-pjd-sidebar-sticky {
  position: sticky;
  top: 104px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Info card */
.rst2-pjd-info-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 0 22px;
  margin-bottom: 4px;
}
.rst2-pjd-info-item {
  padding: 16px 0;
  border-bottom: 1px solid var(--c-border);
}
.rst2-pjd-info-item:last-child { border-bottom: none; }
.rst2-pjd-info-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
  margin: 0 0 4px;
}
.rst2-pjd-info-value {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-ink);
  margin: 0;
  line-height: 1.45;
}

/* Quote CTA button */
.rst2-pjd-quote-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--c-blue);
  color: #fff;
  font-size: 13.5px;
  font-weight: 700;
  padding: 14px 20px;
  border-radius: 8px;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: background 0.22s, transform 0.22s, box-shadow 0.22s;
  box-shadow: 0 4px 18px rgba(41,171,226,0.28);
}
.rst2-pjd-quote-btn:hover {
  background: #1a8fc2;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(41,171,226,0.42);
  text-decoration: none;
}

/* Back link: hide on desktop (shown in sidebar), show on mobile */
.rst2-pjd-back-mobile { display: none; }

/* â”€â”€ Article â”€â”€ */
.rst2-pjd-article { min-width: 0; }

/* Main project image */
.rst2-pjd-main-img {
  margin: 40px 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  line-height: 0;
}
.rst2-pjd-main-img img {
  width: 100%;
  height: auto;
  display: block;
}
.rst2-pjd-main-img figcaption {
  padding: 12px 16px;
  font-size: 12.5px;
  color: var(--c-muted);
  border-top: 1px solid var(--c-border);
  background: var(--c-surface);
  line-height: 1.5;
}

/* Gallery section */
.rst2-pjd-gallery { margin: 8px 0 40px; }
.rst2-pjd-gallery-heading {
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 800;
  color: var(--c-ink);
  letter-spacing: -0.02em;
  margin: 0 0 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--c-border);
}
.rst2-pjd-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.rst2-pjd-gallery-item {
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--c-border);
  background: var(--c-surface);
}
.rst2-pjd-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s;
}
.rst2-pjd-gallery-item:hover img { transform: scale(1.04); }

/* Footer location chip */
.rst2-pjd-footer-loc {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--c-muted);
  font-weight: 500;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  padding: 5px 12px;
  border-radius: 100px;
}
.rst2-pjd-footer-loc svg { color: var(--c-blue); flex-shrink: 0; }

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1100px) {
  .rst2-pjd-layout { grid-template-columns: 220px 1fr; gap: 48px; }
}
@media (max-width: 991px) {
  .rst2-pjd-layout { grid-template-columns: 1fr; gap: 32px; display: flex; flex-direction: column; }
  .rst2-pjd-sidebar { display: block; order: -1; }
  .rst2-pjd-sidebar-sticky { position: static; }
  .rst2-pjd-back-mobile { display: inline-flex; } /* show mobile back link */
  .rst2-pjd-main-img { margin: 32px 0; }
  .rst2-pjd-gallery-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .rst2-pjd-gallery-grid { grid-template-columns: 1fr; }
}

/* =====================================================
   rst2-cn-* â€” Contact Page (standardised, 2026)
   ===================================================== */

/* removed garbled comment */
.rst2-cn-hero { min-height: 460px; }
.rst2-cn-hero-sub {
  font-size: 16px;
  color: rgba(255,255,255,0.78);
  margin: 12px 0 0;
  max-width: 480px;
  line-height: 1.6;
}

/* Body wrapper */
.rst2-cn-body {
  background: #fff;
  padding: 80px 0 100px;
}

/* â”€â”€ Info strip â”€â”€ */
.rst2-cn-info-strip {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 24px;
  margin-bottom: 64px;
}
.rst2-cn-info-card {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 28px 24px;
  transition: box-shadow .25s, border-color .25s;
}
.rst2-cn-info-card:hover {
  box-shadow: 0 6px 28px rgba(0,0,0,0.07);
  border-color: rgba(41,171,226,0.22);
}
.rst2-cn-info-icon {
  width: 48px;
  height: 48px;
  background: rgba(41,171,226,0.10);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--c-blue);
}
.rst2-cn-info-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
  margin: 0 0 8px;
}
.rst2-cn-info-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.rst2-cn-info-text a {
  font-size: 14px;
  color: var(--c-body);
  line-height: 1.55;
  text-decoration: none;
  transition: color .2s;
  word-break: break-word;
}
.rst2-cn-info-text a:hover { color: var(--c-blue); }
.rst2-cn-info-note {
  font-size: 12px;
  color: var(--c-muted);
  margin-top: 2px;
}

/* â”€â”€ Main 2-col grid â”€â”€ */
.rst2-cn-main {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
  align-items: start;
}

/* â”€â”€ Left column â”€â”€ */
.rst2-cn-left-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.rst2-cn-map {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  aspect-ratio: 4/3;
  background: var(--c-surface);
}
.rst2-cn-map iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}

/* Careers card */
.rst2-cn-careers {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 28px 24px;
}
.rst2-cn-careers-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
  margin: 0 0 10px;
}
.rst2-cn-careers-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--c-dark);
  margin: 0 0 10px;
  line-height: 1.3;
}
.rst2-cn-careers p {
  font-size: 14px;
  color: var(--c-body);
  margin: 0 0 20px;
  line-height: 1.65;
}
.rst2-cn-careers-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-blue);
  text-decoration: none;
  transition: gap .2s;
}
.rst2-cn-careers-link:hover { gap: 10px; color: var(--c-blue); }

/* â”€â”€ Form panel â”€â”€ */
.rst2-cn-form-wrap {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 16px;
  padding: 44px 40px;
}
.rst2-cn-form-eyebrow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--c-blue);
  margin: 0 0 10px;
}
.rst2-cn-form-title {
  font-size: 26px;
  font-weight: 800;
  color: var(--c-dark);
  margin: 0 0 8px;
  line-height: 1.25;
}
.rst2-cn-form-sub {
  font-size: 14px;
  color: var(--c-muted);
  margin: 0 0 32px;
  line-height: 1.55;
}

/* Form fields */
.rst2-cn-field { margin-bottom: 20px; }
.rst2-cn-field:last-child { margin-bottom: 0; }
.rst2-cn-field label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--c-dark);
  margin-bottom: 7px;
  letter-spacing: 0.01em;
}
.rst2-cn-field label span { color: var(--c-blue); }
.rst2-cn-field input,
.rst2-cn-field textarea {
  width: 100%;
  background: #fff;
  border: 1.5px solid var(--c-border);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 14px;
  color: var(--c-dark);
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
  -webkit-appearance: none;
}
.rst2-cn-field input::placeholder,
.rst2-cn-field textarea::placeholder {
  color: var(--c-muted);
  opacity: 0.7;
}
.rst2-cn-field input:focus,
.rst2-cn-field textarea:focus {
  border-color: var(--c-blue);
  box-shadow: 0 0 0 3px rgba(41,171,226,0.12);
}
.rst2-cn-field textarea {
  height: 130px;
  resize: vertical;
  line-height: 1.55;
}

/* Two-col row */
.rst2-cn-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
.rst2-cn-field-row .rst2-cn-field { margin-bottom: 0; }

/* Submit row */
.rst2-cn-submit {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.rst2-cn-submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--c-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 14px 32px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: background .2s, transform .15s;
  white-space: nowrap;
}
.rst2-cn-submit-btn:hover { background: #1e96cb; transform: translateY(-1px); }
.rst2-cn-submit-btn svg { flex-shrink: 0; }
.rst2-cn-submit-note {
  font-size: 12px;
  color: var(--c-muted);
  line-height: 1.45;
  margin: 0;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-cn-main { grid-template-columns: 1fr 1fr; gap: 36px; }
  .rst2-cn-form-wrap { padding: 36px 32px; }
}
@media (max-width: 991px) {
  .rst2-cn-info-strip { grid-template-columns: 1fr 1fr; }
  .rst2-cn-main { grid-template-columns: 1fr; }
  .rst2-cn-map { aspect-ratio: 16/9; }
  .rst2-cn-body { padding: 64px 0 80px; }
}
@media (max-width: 767px) {
  .rst2-cn-info-strip { grid-template-columns: 1fr; gap: 16px; margin-bottom: 40px; }
  .rst2-cn-field-row { grid-template-columns: 1fr; }
  .rst2-cn-body { padding: 48px 0 64px; }
  .rst2-cn-form-wrap { padding: 28px 22px; }
  .rst2-cn-form-title { font-size: 22px; }
  .rst2-cn-submit { flex-direction: column; align-items: stretch; }
  .rst2-cn-submit-btn { justify-content: center; }
  .rst2-cn-submit-note { text-align: center; }
}

/* =====================================================
   rst2-svd-* / rst2-sv-* â€” Service Detail (standardised, 2026)
   ===================================================== */

/* removed garbled comment */
.rst2-svd-hero {
  min-height: 540px;
  background-size: cover;
  background-position: center;
}
.rst2-svd-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 160px;
  padding-bottom: 80px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 540px;
}
.rst2-svd-hero-badge {
  display: inline-block;
  background: var(--c-blue);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 4px;
  margin-bottom: 18px;
  align-self: flex-start;
}
.rst2-svd-hero-title {
  font-size: clamp(32px, 5vw, 58px);
  font-weight: 800;
  color: #fff;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
  max-width: 760px;
}
.rst2-svd-hero-sub {
  font-size: 16px;
  color: rgba(255,255,255,0.78);
  line-height: 1.65;
  margin: 0;
  max-width: 600px;
}

/* â”€â”€ Body wrapper â”€â”€ */
.rst2-svd-body {
  background: #fff;
  padding: 72px 0 88px;
}

/* â”€â”€ Two-col layout: sidebar + article â”€â”€ */
.rst2-svd-layout {
  display: grid;
  grid-template-columns: 268px 1fr;
  gap: 64px;
  align-items: start;
}

/* â”€â”€ Sidebar â”€â”€ */
.rst2-svd-sidebar-sticky {
  position: sticky;
  top: 104px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Service image card */
.rst2-svd-img-card {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  aspect-ratio: 4/3;
  background: var(--c-surface);
}
.rst2-svd-img-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.rst2-svd-img-card:hover img { transform: scale(1.03); }

/* Quote button */
.rst2-svd-quote-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  background: var(--c-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 14px 20px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s, transform .15s;
}
.rst2-svd-quote-btn:hover { background: #1e96cb; transform: translateY(-1px); color: #fff; }

/* Share block (sidebar) */
.rst2-svd-share {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 10px;
  padding: 16px 18px;
}
.rst2-svd-share-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
  margin: 0 0 10px;
}
.rst2-svd-share-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.rst2-svd-share-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--c-body);
  text-decoration: none;
  padding: 7px 12px;
  border-radius: 6px;
  border: 1px solid var(--c-border);
  background: #fff;
  transition: border-color .2s, color .2s;
}
.rst2-svd-share-link:hover { border-color: var(--c-blue); color: var(--c-blue); }

/* Back link (sidebar) */
.rst2-svd-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--c-muted);
  text-decoration: none;
  padding: 10px 0;
  transition: color .2s, gap .2s;
}
.rst2-svd-back:hover { color: var(--c-blue); gap: 10px; }

/* Back link (mobile â€” hidden on desktop) */
.rst2-svd-back-mobile {
  display: none;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--c-muted);
  text-decoration: none;
  margin-bottom: 28px;
  transition: color .2s;
}
.rst2-svd-back-mobile:hover { color: var(--c-blue); }

/* â”€â”€ Article â”€â”€ */
.rst2-svd-article { min-width: 0; }

/* Override prose for service long desc HTML content */
.rst2-svd-prose img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 28px 0;
  display: block;
  border: 1px solid var(--c-border);
}
.rst2-svd-prose ul,
.rst2-svd-prose ol {
  padding-left: 1.5em;
  margin: 0 0 20px;
}
.rst2-svd-prose li { margin-bottom: 8px; }
.rst2-svd-prose h2,
.rst2-svd-prose h3,
.rst2-svd-prose h4 {
  color: var(--c-dark);
  font-weight: 700;
  margin: 36px 0 14px;
  line-height: 1.25;
}
.rst2-svd-prose h2 { font-size: clamp(20px, 2.5vw, 26px); }
.rst2-svd-prose h3 { font-size: clamp(17px, 2vw, 21px); }
.rst2-svd-prose h4 { font-size: 17px; }
.rst2-svd-prose p  { font-size: 15.5px; color: var(--c-body); line-height: 1.75; margin: 0 0 20px; }
.rst2-svd-prose a  { color: var(--c-blue); text-decoration: underline; text-decoration-thickness: 1px; }
.rst2-svd-prose strong { color: var(--c-dark); }

/* â”€â”€ Related services section â”€â”€ */
.rst2-svd-related {
  background: var(--c-surface);
  padding: 72px 0 88px;
  border-top: 1px solid var(--c-border);
}
.rst2-svd-related-head {
  margin-bottom: 44px;
}
.rst2-svd-related-eyebrow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--c-blue);
  margin: 0 0 10px;
}
.rst2-svd-related-title {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  color: var(--c-dark);
  margin: 0;
  line-height: 1.2;
}
.rst2-svd-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* â”€â”€ Service card (for related) â”€â”€ */
.rst2-sv-card {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: box-shadow .25s, border-color .25s, transform .25s;
}
.rst2-sv-card:hover {
  box-shadow: 0 8px 36px rgba(0,0,0,0.09);
  border-color: rgba(41,171,226,0.22);
  transform: translateY(-3px);
}
.rst2-sv-card-img-wrap {
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--c-surface);
}
.rst2-sv-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.rst2-sv-card:hover .rst2-sv-card-img-wrap img { transform: scale(1.04); }
.rst2-sv-card-body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.rst2-sv-card-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--c-dark);
  margin: 0 0 10px;
  line-height: 1.3;
}
.rst2-sv-card-excerpt {
  font-size: 13.5px;
  color: var(--c-body);
  line-height: 1.6;
  margin: 0 0 16px;
  flex: 1;
}
.rst2-sv-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--c-blue);
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--c-border);
  transition: gap .2s;
}
.rst2-sv-card:hover .rst2-sv-card-cta { gap: 10px; }

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-svd-layout { grid-template-columns: 240px 1fr; gap: 48px; }
}
@media (max-width: 991px) {
  .rst2-svd-layout { grid-template-columns: 1fr; gap: 32px; display: flex; flex-direction: column; }
  .rst2-svd-sidebar { display: block; order: -1; }
  .rst2-svd-sidebar-sticky { position: static; }
  .rst2-svd-img-card { display: none; }
  .rst2-svd-share { display: none; }
  .rst2-svd-back { display: none; }
  .rst2-svd-back-mobile { display: inline-flex; }
  .rst2-svd-related-grid { grid-template-columns: repeat(2,1fr); }
  .rst2-svd-body { padding: 56px 0 72px; }
}
@media (max-width: 767px) {
  .rst2-svd-hero { min-height: 420px; }
  .rst2-svd-hero-inner { min-height: 420px; padding-top: 120px; padding-bottom: 60px; }
  .rst2-svd-related-grid { grid-template-columns: 1fr; }
  .rst2-svd-body { padding: 40px 0 56px; }
  .rst2-svd-related { padding: 56px 0 64px; }
}

/* removed garbled comment */
.rst2-cn-hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  min-height: 460px;
  padding-top: 140px;
  padding-bottom: 72px;
}

/* removed garbled comment */
/* removed garbled comment */
.rst2-cn-hero-inner { all: unset; }

/* removed garbled comment */
.rst2-cn-hero .rst2-ab-hero-overlay {
  background: linear-gradient(
    to bottom,
    rgba(10,12,15,0.52) 0%,
    rgba(10,12,15,0.72) 55%,
    rgba(10,12,15,0.90) 100%
  );
}

/* =====================================================
   rst2-pr-*  â€” Products Listing  (standardised, 2026)
   ===================================================== */

.rst2-pr-hero { min-height: 460px; }

.rst2-pr-body { background: #fff; padding: 80px 0 100px; }

/* 4-col grid */
.rst2-pr-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}

/* Card */
.rst2-pr-card {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .25s, border-color .25s, transform .25s;
}
.rst2-pr-card:hover {
  box-shadow: 0 8px 36px rgba(0,0,0,0.09);
  border-color: rgba(41,171,226,0.22);
  transform: translateY(-3px);
}
.rst2-pr-card-img {
  display: block;
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--c-surface);
}
.rst2-pr-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.rst2-pr-card:hover .rst2-pr-card-img img { transform: scale(1.04); }
.rst2-pr-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: var(--c-blue);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 4px;
}
.rst2-pr-card-body {
  padding: 20px 22px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.rst2-pr-card-title {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--c-dark);
  margin: 0 0 8px;
  line-height: 1.3;
}
.rst2-pr-card-title a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.rst2-pr-card:hover .rst2-pr-card-title a { color: var(--c-blue); }
.rst2-pr-card-desc {
  font-size: 13px;
  color: var(--c-muted);
  line-height: 1.55;
  margin: 0 0 12px;
  flex: 1;
}
.rst2-pr-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--c-blue);
  text-decoration: none;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--c-border);
  transition: gap .2s;
}
.rst2-pr-card:hover .rst2-pr-card-cta { gap: 10px; }

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) { .rst2-pr-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 767px)  { .rst2-pr-grid { grid-template-columns: repeat(2,1fr); gap: 16px; } }
@media (max-width: 479px)  { .rst2-pr-grid { grid-template-columns: 1fr; } }


/* =====================================================
   rst2-prd-*  â€” Product Detail  (standardised, 2026)
   ===================================================== */

.rst2-prd-hero { min-height: 420px; }

.rst2-prd-body { background: #fff; padding: 72px 0 96px; }

/* 2-col layout: image | info */
.rst2-prd-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

/* Image */
.rst2-prd-img-card {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  background: var(--c-surface);
  aspect-ratio: 4/3;
}
.rst2-prd-img-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Info panel */
.rst2-prd-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--c-muted);
  text-decoration: none;
  margin-bottom: 20px;
  transition: color .2s, gap .2s;
}
.rst2-prd-back:hover { color: var(--c-blue); gap: 10px; }
.rst2-prd-badge {
  display: inline-block;
  background: rgba(41,171,226,0.10);
  color: var(--c-blue);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 4px;
  margin-bottom: 16px;
}
.rst2-prd-title {
  font-size: clamp(24px, 3.5vw, 38px);
  font-weight: 800;
  color: var(--c-dark);
  margin: 0 0 18px;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.rst2-prd-short {
  font-size: 15px;
  color: var(--c-body);
  line-height: 1.7;
  margin: 0 0 24px;
}
.rst2-prd-desc {
  border-top: 1px solid var(--c-border);
  padding-top: 24px;
  margin-bottom: 32px;
}

/* Action buttons */
.rst2-prd-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.rst2-prd-enquire {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--c-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s, transform .15s;
}
.rst2-prd-enquire:hover { background: #1e96cb; transform: translateY(-1px); color: #fff; }
.rst2-prd-view-work {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--c-body);
  text-decoration: none;
  transition: color .2s, gap .2s;
}
.rst2-prd-view-work:hover { color: var(--c-blue); gap: 10px; }

/* Share */
.rst2-prd-share {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 20px;
  border-top: 1px solid var(--c-border);
}
.rst2-prd-share-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
}
.rst2-prd-share-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 8px;
  color: var(--c-body);
  text-decoration: none;
  transition: border-color .2s, color .2s;
}
.rst2-prd-share-link:hover { border-color: var(--c-blue); color: var(--c-blue); }

/* Related */
.rst2-prd-related {
  background: var(--c-surface);
  padding: 72px 0 88px;
  border-top: 1px solid var(--c-border);
}
.rst2-prd-related-head { margin-bottom: 44px; }
.rst2-prd-related-eyebrow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--c-blue);
  margin: 0 0 10px;
}
.rst2-prd-related-title {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  color: var(--c-dark);
  margin: 0;
}

/* Responsive */
@media (max-width: 991px) {
  .rst2-prd-layout { grid-template-columns: 1fr; gap: 36px; }
  .rst2-prd-body { padding: 52px 0 72px; }
}
@media (max-width: 767px) {
  .rst2-prd-actions { flex-direction: column; align-items: flex-start; }
  .rst2-prd-enquire { width: 100%; justify-content: center; }
}


/* =====================================================
   rst2-dl-*  â€” Downloads Page  (standardised, 2026)
   ===================================================== */

.rst2-dl-hero { min-height: 420px; }

.rst2-dl-body {
  background: #fff;
  padding: 80px 0 100px;
  min-height: 60vh;
  display: flex;
  align-items: flex-start;
}
.rst2-dl-body .container { width: 100%; }

/* â”€â”€ Login form â”€â”€ */
.rst2-dl-login-wrap {
  max-width: 480px;
  margin: 0 auto;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 16px;
  padding: 48px 44px;
}
.rst2-dl-login-header { text-align: center; margin-bottom: 32px; }
.rst2-dl-login-icon {
  width: 60px;
  height: 60px;
  background: rgba(41,171,226,0.10);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  margin: 0 auto 18px;
}
.rst2-dl-login-eyebrow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--c-blue);
  margin: 0 0 10px;
}
.rst2-dl-login-title {
  font-size: 24px;
  font-weight: 800;
  color: var(--c-dark);
  margin: 0 0 8px;
  line-height: 1.2;
}
.rst2-dl-login-sub {
  font-size: 14px;
  color: var(--c-muted);
  margin: 0;
  line-height: 1.5;
}
.rst2-dl-error {
  display: flex;
  align-items: center;
  gap: 9px;
  background: rgba(220,53,69,0.07);
  border: 1px solid rgba(220,53,69,0.22);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 13.5px;
  color: #c0392b;
  margin-bottom: 20px;
}
.rst2-dl-login-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  background: var(--c-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding: 14px 20px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  margin-top: 8px;
  transition: background .2s, transform .15s;
}
.rst2-dl-login-btn:hover { background: #1e96cb; transform: translateY(-1px); }

/* â”€â”€ Files grid â”€â”€ */
.rst2-dl-files-head { margin-bottom: 36px; }
.rst2-dl-files-eyebrow {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  color: var(--c-blue);
  margin: 0 0 10px;
}
.rst2-dl-files-title {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  color: var(--c-dark);
  margin: 0;
}
.rst2-dl-files {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.rst2-dl-file-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: box-shadow .25s, border-color .25s;
}
.rst2-dl-file-card:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.07);
  border-color: rgba(41,171,226,0.20);
}
.rst2-dl-file-icon {
  width: 52px;
  height: 52px;
  background: rgba(41,171,226,0.10);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  flex-shrink: 0;
}
.rst2-dl-file-project {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--c-muted);
  margin: 0 0 4px;
}
.rst2-dl-file-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--c-dark);
  margin: 0 0 4px;
  line-height: 1.3;
}
.rst2-dl-file-meta {
  font-size: 12px;
  color: var(--c-muted);
  margin: 0;
}
.rst2-dl-file-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--c-blue);
  color: #fff;
  font-size: 13.5px;
  font-weight: 700;
  padding: 11px 22px;
  border-radius: 7px;
  text-decoration: none;
  align-self: flex-start;
  margin-top: auto;
  transition: background .2s, transform .15s;
}
.rst2-dl-file-btn:hover { background: #1e96cb; transform: translateY(-1px); color: #fff; }

/* Responsive */
@media (max-width: 991px) {
  .rst2-dl-files { grid-template-columns: repeat(2, 1fr); }
  .rst2-dl-login-wrap { padding: 36px 28px; }
}
@media (max-width: 767px) {
  .rst2-dl-files { grid-template-columns: 1fr; }
  .rst2-dl-body { padding: 52px 0 72px; }
}

/* =====================================================
   MOBILE MICRO-BREAKPOINT PATCHES
   Ultra-mobile coverage: 375pxÃ¢â‚¬â€œ480px range
   ===================================================== */

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-ab-hero {
    padding-top: 88px;
    padding-bottom: 36px;
  }
  .rst2-ab-hero-title {
    font-size: clamp(24px, 6.5vw, 30px);
    line-height: 1.18;
  }
  .rst2-ab-hero-body {
    font-size: 13.5px;
    margin-bottom: 20px;
  }
  .rst2-ab-hero-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .rst2-ab-hero-actions a {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .rst2-ab-hero-stats {
    padding: 12px 14px;
    gap: 0;
  }
  .rst2-ab-hero-stat {
    padding: 8px 10px;
  }
  .rst2-ab-hero-stat strong {
    font-size: 15px;
  }
  .rst2-ab-hero-stat span {
    font-size: 10.5px;
  }
}

/* removed garbled comment */
@media (max-width: 420px) {
  .rst2-tm-cards {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .rst2-tm-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: left;
    padding: 14px 16px;
    gap: 14px;
  }
  .rst2-tm-avatar {
    width: 48px;
    height: 48px;
    font-size: 14px;
    margin: 0;
    flex-shrink: 0;
    border-radius: 12px;
  }
  .rst2-tm-card-body { min-width: 0; }
  .rst2-tm-name { font-size: 13px; margin-bottom: 3px; }
  .rst2-tm-role { font-size: 11.5px; margin-bottom: 8px; }
  .rst2-tm-dept-tag { font-size: 10px; padding: 2px 8px; }
  .rst2-tm-dept-group { margin-bottom: 36px; }
  .rst2-tm-join-inner { padding: 24px 18px; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-ct-logo-item {
    padding: 12px 8px;
    min-height: 64px;
  }
  .rst2-ct-logo-item img {
    max-width: 72px;
    max-height: 32px;
  }
  .rst2-ct-sector-item { padding: 16px 12px; }
  .rst2-ct-hero-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .rst2-ct-hero-stat { padding: 12px 14px; }
  .rst2-ct-hero-stat strong { font-size: 20px; }
}
@media (max-width: 360px) {
  .rst2-ct-logo-grid { grid-template-columns: 1fr; }
  .rst2-ct-sectors-grid { grid-template-columns: 1fr; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-cta { padding: 48px 0; }
  .rst2-cta-title { font-size: clamp(20px, 6vw, 26px); }
  .rst2-cta-sub { font-size: 13.5px; }
  .rst2-cta-actions { padding: 18px 16px 16px; }
  .rst2-cta-actions .rst2-cta-btn-primary,
  .rst2-cta-actions .rst2-cta-btn-ghost,
  .rst2-cta-actions .rst2-cta-btn-outline {
    font-size: 13.5px;
    padding: 12px 18px;
  }
  .rst2-cta-trust { padding: 14px 16px; gap: 8px; }
  .rst2-cta-trust-item { font-size: 12px; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-cn-body { padding: 36px 0 52px; }
  .rst2-cn-info-card { padding: 18px 16px; gap: 12px; }
  .rst2-cn-info-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    flex-shrink: 0;
  }
  .rst2-cn-info-icon svg { width: 18px; height: 18px; }
  .rst2-cn-submit { width: 100%; justify-content: center; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-prd-enquire,
  .rst2-prd-view-work { width: 100%; justify-content: center; }
  .rst2-prd-body { padding: 40px 0 56px; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-dl-body { padding: 48px 0 64px; }
  .rst2-dl-login-wrap { padding: 28px 18px; border-radius: 12px; }
  .rst2-dl-file-card { padding: 18px 14px; }
  .rst2-dl-file-btn { width: 100%; justify-content: center; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .tp-shop-slider-bg {
    padding-top: 130px;
    padding-bottom: 100px;
  }
  .tp-shop-slider-title { font-size: 22px; line-height: 1.25; }
  .tp-shop-slider-subtitle { font-size: 12px; margin-bottom: 12px; }
  .tp-shop-slider-btn-box {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .rst2-hero-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 12px 16px;
    font-size: 13.5px;
  }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-bl-feat-body { padding: 24px 18px; }
  .rst2-bl-feat-title { font-size: clamp(18px, 5.5vw, 24px); }
  .rst2-bl-card-body { padding: 16px 14px 18px; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-bd-prose { font-size: 15px; }
  .rst2-svd-related { padding: 40px 0 52px; }
  .rst2-svd-body { padding: 32px 0 48px; }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-pj-feat-body { padding: 20px 16px; }
  .rst2-pj-feat-title { font-size: clamp(18px, 5vw, 24px); }
}

/* removed garbled comment */
@media (max-width: 480px) {
  .rst2-section-title {
    font-size: clamp(20px, 5.5vw, 26px);
    line-height: 1.22;
  }
  .rst2-eyebrow {
    font-size: 10px;
    letter-spacing: 0.09em;
  }
}
/* ================================================================
   LOCATIONS DROPDOWN â€” L2 city panel + L3 service flyout redesign
   Overrides theme defaults for the 3-level nav hierarchy
   ================================================================ */

/* â”€â”€ L2 city items: distinct "expandable parent" style â”€â”€ */
.header-main-menu > nav > ul > li > .submenu > li.has-dropdown > a {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  font-size:       13px;
  font-weight:     700;
  color:           #111215;
  letter-spacing:  0.03em;
  padding-right:   4px;
}
.header-main-menu > nav > ul > li > .submenu > li.has-dropdown:hover > a {
  color:        #29ABE2;
  padding-left: 25px;          /* inherit theme slide-in */
}

/* â”€â”€ L3 flyout panel â”€â”€ */
.header-main-menu > nav > ul > li > .submenu > li > .submenu {
  top:              0;           /* align with the hovered city row */
  left:             calc(100% + 6px);   /* 6px gap from L2 panel edge */
  width:            230px;
  padding:          12px 0;
  background:       #ffffff;
  backdrop-filter:  blur(0);
  border-radius:    10px;
  border-left:      3px solid #29ABE2;
  box-shadow:       8px 12px 32px rgba(17,18,21,0.14),
                    0 0 0 1px rgba(17,18,21,0.06);
}

/* â”€â”€ L3 list items â”€â”€ */
.header-main-menu > nav > ul > li > .submenu > li > .submenu > li {
  padding:       0 10px;
  margin-bottom: 2px !important;
}
.header-main-menu > nav > ul > li > .submenu > li > .submenu > li:not(:last-child) {
  margin-bottom: 2px;
}

/* â”€â”€ L3 link: sentence-case, pill hover â”€â”€ */
.header-main-menu > nav > ul > li > .submenu > li > .submenu > li > a {
  display:         flex;
  align-items:     center;
  gap:             8px;
  font-size:       13px;
  font-weight:     500;
  color:           #4A4A52;
  text-transform:  none;         /* override uppercase */
  letter-spacing:  0;
  line-height:     1.25;
  padding:         8px 10px;
  border-radius:   6px;
  transition:      background 0.16s, color 0.16s, padding-left 0.16s;
  position:        relative;
}

/* small blue dot prefix */
.header-main-menu > nav > ul > li > .submenu > li > .submenu > li > a::before {
  content:          '';
  width:            5px;
  height:           5px;
  border-radius:    50%;
  background:       #29ABE2;
  flex-shrink:      0;
  opacity:          0.35;
  /* cancel old line-animation properties */
  top:              auto;
  left:             auto;
  height:           5px;
  visibility:       visible;
  display:          inline-block;
  transition:       opacity 0.16s, background 0.16s;
}

/* hover state */
.header-main-menu > nav > ul > li > .submenu > li > .submenu > li:hover > a {
  background:   rgba(41,171,226,0.09);
  color:        #29ABE2;
  padding-left: 14px;
}
.header-main-menu > nav > ul > li > .submenu > li > .submenu > li:hover > a::before {
  opacity:    1;
  background: #29ABE2;
  width:      5px;        /* cancel old 14px expansion */
  visibility: visible;
}

/* â”€â”€ L2 panel: slightly wider for city names â”€â”€ */
.header-main-menu > nav > ul > li > .submenu {
  width: 260px;
}

/* â”€â”€ Chevron on city items â”€â”€ */
.header-main-menu > nav > ul > li > .submenu > li.has-dropdown > a .rst2-loc-chevron {
  font-size:       18px;
  line-height:     1;
  opacity:         0.4;
  margin-left:     auto;
  flex-shrink:     0;
  transition:      opacity 0.18s, transform 0.18s, color 0.18s;
  float:           none;          /* override float */
}
.header-main-menu > nav > ul > li > .submenu > li.has-dropdown:hover > a .rst2-loc-chevron {
  opacity:    1;
  color:      #29ABE2;
  transform:  translateX(3px);
}
/* ================================================================
   RST2 â€” LOCATION PAGES  (rst2-loc-*)
   City landing + CityÃ—Service pages
   ================================================================ */

/* â”€â”€ Hero extras â”€â”€ */
.rst2-loc-hero { min-height: 88vh; }
.rst2-loc-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 12.5px;
  color: rgba(255,255,255,0.55);
}
.rst2-loc-breadcrumb a { color: rgba(255,255,255,0.7); text-decoration: none; transition: color .18s; }
.rst2-loc-breadcrumb a:hover { color: #fff; }
.rst2-loc-breadcrumb span { color: rgba(255,255,255,0.4); }
.rst2-loc-hero-call {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,0.82);
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none;
  transition: color .18s;
}
.rst2-loc-hero-call:hover { color: #29ABE2; }

/* â”€â”€ City intro strip â”€â”€ */
.rst2-loc-intro {
  background: #fff;
  padding: 80px 0 72px;
}
.rst2-loc-intro-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 0 72px;
  align-items: start;
}
.rst2-loc-intro-lead {
  font-size: 16px;
  color: var(--c-body);
  line-height: 1.75;
  margin: 20px 0 24px;
}
.rst2-loc-intro-sectors {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.rst2-loc-sector-tag {
  display: inline-block;
  background: rgba(41,171,226,0.08);
  color: #1a7fa8;
  font-size: 11.5px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(41,171,226,0.2);
}
.rst2-loc-intro-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.rst2-loc-intro-stat {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 20px 16px;
  text-align: center;
}
.rst2-loc-intro-stat strong {
  display: block;
  font-size: 26px;
  font-weight: 800;
  color: var(--c-dark);
  line-height: 1;
  margin-bottom: 6px;
}
.rst2-loc-intro-stat span {
  font-size: 12px;
  color: var(--c-muted);
  font-weight: 500;
  line-height: 1.3;
}

/* â”€â”€ Services grid â”€â”€ */
.rst2-loc-services {
  background: var(--c-surface);
  padding: 80px 0 88px;
}
.rst2-loc-svc-sub {
  font-size: 15px;
  color: var(--c-body);
  max-width: 480px;
}
.rst2-loc-svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 48px;
}
.rst2-loc-svc-card {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 14px;
  padding: 28px 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  text-decoration: none;
  transition: box-shadow .22s, border-color .22s, transform .22s;
  position: relative;
}
.rst2-loc-svc-card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.08);
  border-color: rgba(41,171,226,0.35);
  transform: translateY(-3px);
}
.rst2-loc-svc-icon {
  width: 52px;
  height: 52px;
  background: rgba(41,171,226,0.10);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  flex-shrink: 0;
}
.rst2-loc-svc-body { flex: 1; min-width: 0; }
.rst2-loc-svc-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-dark);
  margin: 0 0 6px;
  line-height: 1.25;
}
.rst2-loc-svc-spec {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-blue);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 10px;
}
.rst2-loc-svc-desc {
  font-size: 13px;
  color: var(--c-body);
  line-height: 1.6;
  margin: 0;
}
.rst2-loc-svc-arrow {
  color: var(--c-blue);
  display: flex;
  align-items: center;
  margin-top: auto;
  opacity: 0;
  transition: opacity .2s, transform .2s;
  align-self: flex-end;
}
.rst2-loc-svc-card:hover .rst2-loc-svc-arrow { opacity: 1; transform: translateX(3px); }

/* â”€â”€ Why RST â”€â”€ */
.rst2-loc-why {
  background: #fff;
  padding: 80px 0 88px;
}
.rst2-loc-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.rst2-loc-why-card {
  padding: 28px 24px;
  border: 1px solid var(--c-border);
  border-radius: 14px;
  background: var(--c-surface);
  transition: box-shadow .22s, border-color .22s;
}
.rst2-loc-why-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.06);
  border-color: rgba(41,171,226,0.25);
}
.rst2-loc-why-icon {
  width: 48px;
  height: 48px;
  background: rgba(41,171,226,0.10);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-blue);
  margin-bottom: 16px;
}
.rst2-loc-why-card h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--c-dark);
  margin: 0 0 10px;
}
.rst2-loc-why-card p {
  font-size: 13.5px;
  color: var(--c-body);
  line-height: 1.65;
  margin: 0;
}

/* â”€â”€ Project gallery â”€â”€ */
.rst2-loc-gallery {
  background: var(--c-surface);
  padding: 72px 0 80px;
}
.rst2-loc-gallery-all {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-blue);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .18s;
}
.rst2-loc-gallery-all:hover { opacity: .7; }
.rst2-loc-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 40px;
}
.rst2-loc-gallery-item {
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--c-border);
}
.rst2-loc-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .55s cubic-bezier(.25,.46,.45,.94);
}
.rst2-loc-gallery-item:hover img { transform: scale(1.05); }

/* â”€â”€ SERVICE+CITY â€” Overview â”€â”€ */
.rst2-loc-overview {
  background: #fff;
  padding: 80px 0 72px;
}
.rst2-loc-ov-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.rst2-loc-ov-img {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.rst2-loc-ov-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.rst2-loc-ov-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.rst2-loc-ov-badge span {
  background: rgba(17,18,21,0.78);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.rst2-loc-ov-lead {
  font-size: 16px;
  color: var(--c-body);
  line-height: 1.75;
  margin: 16px 0 18px;
}
.rst2-loc-ov-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.rst2-loc-ov-link {
  font-size: 14px;
  font-weight: 600;
  color: var(--c-blue);
  text-decoration: none;
  transition: opacity .18s;
}
.rst2-loc-ov-link:hover { opacity: .7; }

/* â”€â”€ SERVICE+CITY â€” Use cases â”€â”€ */
.rst2-loc-uses {
  background: var(--c-surface);
  padding: 72px 0 80px;
}
.rst2-loc-uses-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 40px;
}
.rst2-loc-use-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: 10px;
  padding: 16px 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--c-dark);
}
.rst2-loc-use-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--c-blue);
  flex-shrink: 0;
}
.rst2-loc-uses-note {
  margin-top: 32px;
  padding: 18px 24px;
  background: rgba(41,171,226,0.06);
  border-left: 3px solid var(--c-blue);
  border-radius: 0 8px 8px 0;
}
.rst2-loc-uses-note p {
  font-size: 14px;
  color: var(--c-body);
  margin: 0;
  line-height: 1.6;
}
.rst2-loc-uses-note a { color: var(--c-blue); font-weight: 600; text-decoration: none; }
.rst2-loc-uses-note a:hover { text-decoration: underline; }

/* â”€â”€ SERVICE+CITY â€” Specs â”€â”€ */
.rst2-loc-specs {
  background: #fff;
  padding: 80px 0 88px;
}
.rst2-loc-specs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}
.rst2-loc-specs-left p {
  font-size: 15px;
  color: var(--c-body);
  line-height: 1.7;
  margin: 20px 0 28px;
}
.rst2-loc-spec-table {
  width: 100%;
  border-collapse: collapse;
}
.rst2-loc-spec-table tr {
  border-bottom: 1px solid var(--c-border);
}
.rst2-loc-spec-table tr:first-child { border-top: 1px solid var(--c-border); }
.rst2-loc-spec-table th,
.rst2-loc-spec-table td {
  padding: 12px 14px;
  font-size: 13.5px;
  text-align: left;
  vertical-align: top;
}
.rst2-loc-spec-table th {
  font-weight: 700;
  color: var(--c-dark);
  background: var(--c-surface);
  width: 44%;
  white-space: nowrap;
}
.rst2-loc-spec-table td { color: var(--c-body); }

/* â”€â”€ Testimonial â”€â”€ */
.rst2-loc-testi {
  background: var(--c-dark);
  padding: 72px 0;
}
.rst2-loc-testi-inner {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}
.rst2-loc-testi-quote-mark {
  font-size: 120px;
  font-weight: 900;
  color: rgba(41,171,226,0.18);
  line-height: 0.6;
  margin-bottom: 16px;
  font-family: Georgia, serif;
}
.rst2-loc-testi-text {
  font-size: 17px;
  color: rgba(255,255,255,0.88);
  line-height: 1.75;
  font-style: italic;
  margin: 0 0 32px;
}
.rst2-loc-testi-author {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.rst2-loc-testi-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--c-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
}
.rst2-loc-testi-author strong {
  display: block;
  font-size: 14.5px;
  font-weight: 700;
  color: #fff;
}
.rst2-loc-testi-author span {
  font-size: 12.5px;
  color: rgba(255,255,255,0.5);
}
.rst2-loc-testi-author div { text-align: left; }

/* â”€â”€ FAQ â”€â”€ */
.rst2-loc-faq {
  background: #fff;
  padding: 80px 0 88px;
}
.rst2-loc-faq-grid {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 72px;
  align-items: start;
}
.rst2-loc-faq-left p {
  font-size: 14.5px;
  color: var(--c-body);
  line-height: 1.65;
  margin: 16px 0 24px;
}
.rst2-loc-faq-item {
  border-bottom: 1px solid var(--c-border);
  padding: 0;
}
.rst2-loc-faq-item:first-child { border-top: 1px solid var(--c-border); }
.rst2-loc-faq-q {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--c-dark);
  cursor: pointer;
  padding: 18px 40px 18px 0;
  list-style: none;
  position: relative;
  line-height: 1.4;
  transition: color .18s;
}
.rst2-loc-faq-q::-webkit-details-marker { display: none; }
.rst2-loc-faq-q::after {
  content: '+';
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  font-weight: 300;
  color: var(--c-blue);
  line-height: 1;
  transition: transform .22s;
}
details[open] .rst2-loc-faq-q::after { transform: translateY(-50%) rotate(45deg); }
details[open] .rst2-loc-faq-q { color: var(--c-blue); }
.rst2-loc-faq-a {
  font-size: 14px;
  color: var(--c-body);
  line-height: 1.7;
  padding: 0 0 20px;
  margin: 0;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 1199px) {
  .rst2-loc-intro-grid { grid-template-columns: 1fr 260px; gap: 0 48px; }
  .rst2-loc-svc-grid   { grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-why-grid   { grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-ov-grid    { grid-template-columns: 1fr; gap: 40px; }
  .rst2-loc-ov-img     { max-width: 620px; }
  .rst2-loc-specs-grid { grid-template-columns: 1fr; gap: 40px; }
  .rst2-loc-faq-grid   { grid-template-columns: 280px 1fr; gap: 48px; }
}
@media (max-width: 991px) {
  .rst2-loc-intro-grid  { grid-template-columns: 1fr; gap: 40px; }
  .rst2-loc-intro-stats { grid-template-columns: repeat(4, 1fr); }
  .rst2-loc-gallery-grid{ grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-uses-grid   { grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-faq-grid    { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 767px) {
  .rst2-loc-intro  { padding: 56px 0 48px; }
  .rst2-loc-services{ padding: 56px 0 64px; }
  .rst2-loc-why    { padding: 56px 0 64px; }
  .rst2-loc-svc-grid   { grid-template-columns: 1fr; }
  .rst2-loc-why-grid   { grid-template-columns: 1fr; }
  .rst2-loc-gallery-grid{ grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-intro-stats { grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-uses-grid  { grid-template-columns: 1fr; }
  .rst2-loc-testi      { padding: 56px 0; }
  .rst2-loc-testi-text { font-size: 15px; }
  .rst2-loc-faq        { padding: 56px 0 64px; }
  .rst2-loc-ov-grid    { gap: 28px; }
  .rst2-loc-specs-grid { gap: 28px; }
}
@media (max-width: 480px) {
  .rst2-loc-gallery-grid{ grid-template-columns: 1fr; }
  .rst2-loc-intro-stats { grid-template-columns: repeat(2, 1fr); }
  .rst2-loc-spec-table th { white-space: normal; }
  .rst2-loc-ov-actions { flex-direction: column; align-items: flex-start; }
  .rst2-loc-ov-actions .rst2-cta-btn-primary { width: 100%; justify-content: center; }
}

/* ============================================================
   LOCATION PAGES — STATE HUB (Kerala)
   rst2-loc-city-*  rst2-loc-state-svc-*
   ============================================================ */
.rst2-loc-cities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.rst2-loc-city-card{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;border:1px solid var(--c-border);background:var(--c-white);text-decoration:none;color:inherit;transition:box-shadow .22s,transform .22s}
.rst2-loc-city-card:hover{box-shadow:0 8px 32px rgba(41,171,226,.14);transform:translateY(-4px);text-decoration:none;color:inherit}
.rst2-loc-city-img-wrap{width:100%;aspect-ratio:16/9;overflow:hidden}
.rst2-loc-city-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.rst2-loc-city-card:hover .rst2-loc-city-img-wrap img{transform:scale(1.04)}
.rst2-loc-city-body{padding:22px 22px 16px;flex:1}
.rst2-loc-city-name{font-size:1.2rem;font-weight:700;color:var(--c-ink);margin:0 0 4px}
.rst2-loc-city-alias{font-size:.82rem;color:var(--c-muted);margin:0 0 14px}
.rst2-loc-city-stats{display:flex;gap:16px;margin-bottom:14px}
.rst2-loc-city-stats span{font-size:.8rem;color:var(--c-muted)}
.rst2-loc-city-stats strong{display:block;font-size:1.1rem;font-weight:700;color:var(--c-ink);line-height:1.2}
.rst2-loc-city-sectors{display:flex;flex-wrap:wrap;gap:6px}
.rst2-loc-city-cta{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:var(--c-surface);font-size:.85rem;font-weight:600;color:var(--c-blue);border-top:1px solid var(--c-border);gap:8px;transition:background .18s}
.rst2-loc-city-card:hover .rst2-loc-city-cta{background:#e8f7fd}
.rst2-loc-svc-card--state{cursor:default}
.rst2-loc-svc-card--state:hover{box-shadow:none;transform:none}
.rst2-loc-state-svc-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.rst2-loc-state-svc-links a{display:inline-flex;align-items:center;padding:5px 13px;border-radius:20px;background:var(--c-surface);border:1px solid var(--c-border);font-size:.78rem;font-weight:600;color:var(--c-blue);text-decoration:none;transition:background .18s,border-color .18s}
.rst2-loc-state-svc-links a:hover{background:#e8f7fd;border-color:var(--c-blue)}
@media(max-width:991px){.rst2-loc-cities-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.rst2-loc-cities-grid{grid-template-columns:1fr}.rst2-loc-city-stats{gap:10px}}

/* ============================================================
   NAVIGATION — DIVIDER IN SOLUTIONS DROPDOWN
   ============================================================ */
.rst2-nav-divider{height:0;border:none;border-top:1px solid var(--c-border);margin:4px 12px;pointer-events:none}
/* Chevron indicator on L2 items that have L3 */
.rst2-loc-chevron{font-size:.9em;margin-left:4px;opacity:.6}

/* ============================================================
   SECTOR PAGES — rst2-sec-*
   ============================================================ */

/* ── Hero ──────────────────────────────────────────────────── */
.rst2-sec-hero{position:relative;min-height:480px;display:flex;align-items:center;background:linear-gradient(135deg,var(--c-ink) 55%,#1a2a3a 100%);overflow:hidden;padding:100px 0 72px}
.rst2-sec-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,25,26,.9) 40%,rgba(25,25,26,.35) 100%);pointer-events:none}
.rst2-sec-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.rst2-sec-hero-content{position:relative;z-index:1}
.rst2-sec-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-blue);background:rgba(41,171,226,.12);border:1px solid rgba(41,171,226,.28);padding:5px 14px;border-radius:20px;margin-bottom:22px}
.rst2-sec-hero-title{font-size:clamp(2rem,4vw,3.2rem);font-weight:800;color:#fff;line-height:1.15;margin:0 0 20px;max-width:680px}
.rst2-sec-hero-title span{color:var(--c-blue)}
.rst2-sec-hero-intro{font-size:1.07rem;color:rgba(255,255,255,.78);line-height:1.75;max-width:600px;margin:0 0 36px}
.rst2-sec-hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.rst2-sec-hero-stats{display:flex;flex-wrap:wrap;gap:28px;margin-top:48px}
.rst2-sec-hero-stat{display:flex;flex-direction:column;gap:2px}
.rst2-sec-hero-stat strong{font-size:1.9rem;font-weight:800;color:var(--c-blue);line-height:1}
.rst2-sec-hero-stat span{font-size:.8rem;color:rgba(255,255,255,.6);font-weight:500}

/* ── Breadcrumb ────────────────────────────────────────────── */
.rst2-sec-breadcrumb{padding:14px 0;border-bottom:1px solid var(--c-border);margin-bottom:0;background:var(--c-white)}
.rst2-sec-breadcrumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:.82rem}
.rst2-sec-breadcrumb li{display:flex;align-items:center;gap:4px;color:var(--c-muted)}
.rst2-sec-breadcrumb li+li::before{content:'/';color:var(--c-border);margin-right:4px}
.rst2-sec-breadcrumb li a{color:var(--c-blue);text-decoration:none}
.rst2-sec-breadcrumb li a:hover{text-decoration:underline}
.rst2-sec-breadcrumb li[aria-current]{color:var(--c-body)}

/* ── Section shared ────────────────────────────────────────── */
.rst2-sec-intro{padding:72px 0 64px}
.rst2-sec-label{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-blue);margin:0 0 10px}
.rst2-sec-title{font-size:clamp(1.5rem,2.8vw,2.4rem);font-weight:800;color:var(--c-ink);line-height:1.2;margin:0 0 18px}
.rst2-sec-lead{font-size:1.05rem;color:var(--c-body);line-height:1.8;margin:0}

/* ── Stats strip ───────────────────────────────────────────── */
.rst2-sec-stats-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--c-border);border-radius:14px;overflow:hidden;margin-top:40px}
.rst2-sec-stat-box{padding:28px 24px;text-align:center;border-right:1px solid var(--c-border)}
.rst2-sec-stat-box:last-child{border-right:none}
.rst2-sec-stat-num{display:block;font-size:2.2rem;font-weight:800;color:var(--c-blue);line-height:1}
.rst2-sec-stat-lbl{font-size:.82rem;color:var(--c-muted);margin-top:6px;display:block}

/* ── Use Cases ─────────────────────────────────────────────── */
.rst2-sec-uses{padding:72px 0}
.rst2-sec-uses-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:40px}
.rst2-sec-use-card{background:var(--c-white);border:1px solid var(--c-border);border-radius:14px;padding:28px 26px;transition:box-shadow .2s,transform .2s}
.rst2-sec-use-card:hover{box-shadow:0 6px 28px rgba(41,171,226,.1);transform:translateY(-3px)}
.rst2-sec-use-icon{width:44px;height:44px;border-radius:10px;background:rgba(41,171,226,.1);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:16px}
.rst2-sec-use-title{font-size:1.02rem;font-weight:700;color:var(--c-ink);margin:0 0 10px}
.rst2-sec-use-desc{font-size:.9rem;color:var(--c-body);line-height:1.7;margin:0}

/* ── Why RST ───────────────────────────────────────────────── */
.rst2-sec-why{padding:72px 0;background:var(--c-surface)}
.rst2-sec-why-list{margin-top:36px;display:flex;flex-direction:column;gap:18px}
.rst2-sec-why-item{display:flex;gap:20px;align-items:flex-start;background:var(--c-white);border:1px solid var(--c-border);border-radius:12px;padding:22px 24px;transition:box-shadow .2s}
.rst2-sec-why-item:hover{box-shadow:0 4px 20px rgba(41,171,226,.09)}
.rst2-sec-why-num{min-width:44px;height:44px;border-radius:50%;background:var(--c-blue);color:#fff;font-size:1rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rst2-sec-why-body{}
.rst2-sec-why-pt{font-size:1rem;font-weight:700;color:var(--c-ink);margin:0 0 6px}
.rst2-sec-why-desc{font-size:.9rem;color:var(--c-body);line-height:1.7;margin:0}

/* ── Related Service Pills ─────────────────────────────────── */
.rst2-sec-svcs{padding:64px 0}
.rst2-sec-svc-pills{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.rst2-sec-svc-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;border-radius:28px;border:1.5px solid var(--c-blue);color:var(--c-blue);font-size:.88rem;font-weight:600;text-decoration:none;transition:background .18s,color .18s}
.rst2-sec-svc-pill:hover{background:var(--c-blue);color:#fff;text-decoration:none}
.rst2-sec-svc-pill--all{background:var(--c-blue);color:#fff;border-color:var(--c-blue)}
.rst2-sec-svc-pill--all:hover{background:#1a8fc4;border-color:#1a8fc4;color:#fff}

/* ── Testimonial ───────────────────────────────────────────── */
.rst2-sec-testi{padding:72px 0;background:var(--c-ink)}
.rst2-sec-testi-inner{max-width:760px;margin:0 auto;text-align:center}
.rst2-sec-testi-quote{font-size:clamp(1.1rem,2vw,1.4rem);font-style:italic;color:rgba(255,255,255,.88);line-height:1.75;margin:0 0 28px}
.rst2-sec-testi-author{font-weight:700;color:var(--c-blue);font-size:.95rem}
.rst2-sec-testi-org{color:rgba(255,255,255,.5);font-size:.82rem;margin-top:4px}

/* ── Other Sectors ─────────────────────────────────────────── */
.rst2-sec-other{padding:72px 0}
.rst2-sec-other-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
.rst2-sec-other-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;border:1px solid var(--c-border);border-radius:12px;text-decoration:none;color:inherit;text-align:center;transition:box-shadow .2s,transform .2s,border-color .2s;background:var(--c-white)}
.rst2-sec-other-card:hover{box-shadow:0 6px 24px rgba(41,171,226,.12);transform:translateY(-3px);border-color:var(--c-blue);text-decoration:none;color:inherit}
.rst2-sec-other-icon{width:52px;height:52px;border-radius:12px;background:rgba(41,171,226,.1);display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.rst2-sec-other-name{font-size:.9rem;font-weight:700;color:var(--c-ink)}
.rst2-sec-other-short{font-size:.78rem;color:var(--c-muted);line-height:1.4}

/* ── FAQ ───────────────────────────────────────────────────── */
.rst2-sec-faq{padding:72px 0;background:var(--c-surface)}
.rst2-sec-faq-list{margin-top:36px;display:flex;flex-direction:column;gap:12px}
.rst2-sec-faq-item{background:var(--c-white);border:1px solid var(--c-border);border-radius:10px;overflow:hidden}
.rst2-sec-faq-q{width:100%;background:none;border:none;text-align:left;padding:20px 22px;font-size:.97rem;font-weight:700;color:var(--c-ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
.rst2-sec-faq-q::after{content:'+';font-size:1.4rem;font-weight:400;color:var(--c-blue);flex-shrink:0;line-height:1;transition:transform .2s}
.rst2-sec-faq-item.open .rst2-sec-faq-q::after{transform:rotate(45deg)}
.rst2-sec-faq-a{display:none;padding:0 22px 20px;font-size:.9rem;color:var(--c-body);line-height:1.75}
.rst2-sec-faq-item.open .rst2-sec-faq-a{display:block}

/* ── CTA Band ──────────────────────────────────────────────── */
.rst2-sec-cta{padding:80px 0;background:linear-gradient(135deg,#0d1b2a 0%,#1a2a3a 100%)}
.rst2-sec-cta-inner{max-width:680px;margin:0 auto;text-align:center}
.rst2-sec-cta-title{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:800;color:#fff;line-height:1.2;margin:0 0 16px}
.rst2-sec-cta-title span{color:var(--c-blue)}
.rst2-sec-cta-sub{font-size:1rem;color:rgba(255,255,255,.7);margin:0 0 36px;line-height:1.7}
.rst2-sec-cta-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* ── Responsive ────────────────────────────────────────────── */
@media(max-width:1199px){
  .rst2-sec-other-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:991px){
  .rst2-sec-hero{padding:80px 0 56px;min-height:400px}
  .rst2-sec-uses-grid{grid-template-columns:1fr}
  .rst2-sec-other-grid{grid-template-columns:repeat(3,1fr)}
  .rst2-sec-stats-strip{grid-template-columns:1fr;border-radius:10px}
  .rst2-sec-stat-box{border-right:none;border-bottom:1px solid var(--c-border)}
  .rst2-sec-stat-box:last-child{border-bottom:none}
  .rst2-sec-intro,.rst2-sec-uses,.rst2-sec-why,.rst2-sec-svcs,.rst2-sec-testi,.rst2-sec-other,.rst2-sec-faq,.rst2-sec-cta{padding:56px 0}
}
@media(max-width:767px){
  .rst2-sec-hero-stats{gap:18px}
  .rst2-sec-other-grid{grid-template-columns:repeat(2,1fr)}
  .rst2-sec-hero-actions{flex-direction:column;align-items:flex-start}
  .rst2-sec-cta-actions{flex-direction:column;align-items:center}
}
@media(max-width:480px){
  .rst2-sec-other-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .rst2-sec-other-card{padding:18px 12px}
  .rst2-sec-why-item{flex-direction:column;gap:12px}
}

/* ================================================================
   RST2 — Phase 1 funnel refresh (enquiry, contact, mobile heroes)
   ================================================================ */

.rst2-eq-box {
  background: #f0f7ff;
  border: 1px solid #cce3fa;
  border-radius: 12px;
  padding: 20px 18px;
  margin-bottom: 16px;
}
.rst2-eq-box-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0d2847;
  margin: 0 0 2px;
}
.rst2-eq-box-sub {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0 0 14px;
}
.rst2-eq-form { margin: 0; }
.rst2-eq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 8px;
}
.rst2-eq-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d1dce8;
  border-radius: 7px;
  padding: 9px 12px;
  font-size: 0.88rem;
  margin-bottom: 8px;
  background: #fff;
  color: #0d2847;
  transition: border-color .15s, box-shadow .15s;
}
.rst2-eq-input:focus-visible {
  outline: 2px solid #336EF9;
  outline-offset: 2px;
  border-color: #336EF9;
}
.rst2-eq-textarea {
  margin-bottom: 10px;
  resize: vertical;
  min-height: 64px;
}
.rst2-eq-submit {
  width: 100%;
  background: #336EF9;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 11px 16px;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background .15s;
}
.rst2-eq-submit:hover { background: #2558d6; }
.rst2-eq-submit:focus-visible {
  outline: 2px solid #0d2847;
  outline-offset: 2px;
}
.rst2-eq-submit:disabled { opacity: .7; cursor: wait; }
.rst2-eq-error {
  font-size: 0.8rem;
  color: #dc2626;
  margin: 8px 0 0;
}
.rst2-eq-success {
  text-align: center;
  padding: 12px 0;
}
.rst2-eq-success-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: #16a34a;
  margin: 8px 0 4px;
}
.rst2-eq-success-body {
  font-size: 0.82rem;
  color: #555;
  margin: 0;
}
.rst2-eq-note {
  font-size: 0.72rem;
  color: #94a3b8;
  margin: 10px 0 0;
  text-align: center;
}
.rst2-eq-direct {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #dbe9f8;
}
.rst2-eq-direct-label {
  font-size: 0.75rem;
  color: #64748b;
  margin: 0 0 8px;
  text-align: center;
}
.rst2-eq-direct-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 7px;
  padding: 9px 12px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  margin-bottom: 8px;
}
.rst2-eq-direct-btn--call {
  background: #fff;
  border: 1px solid #d1dce8;
  color: #0d2847;
}
.rst2-eq-direct-btn--wa {
  background: #25d366;
  border: none;
  color: #fff;
  margin-bottom: 0;
}

.rst2-cn-form-feedback {
  margin: 12px 0 0;
  font-size: 0.85rem;
}
.rst2-cn-form-feedback--error { color: #dc2626; }
.rst2-cn-form-success {
  text-align: center;
  padding: 28px 16px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
}
.rst2-cn-form-success-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #16a34a;
  margin: 0 0 8px;
}
.rst2-cn-form-success-body {
  font-size: 0.9rem;
  color: #334155;
  margin: 0;
  line-height: 1.55;
}
.rst2-cn-faq {
  padding: 64px 0 80px;
  background: #f8fafc;
}
.rst2-cn-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
  align-items: start;
}
.rst2-cn-faq-item {
  border-bottom: 1px solid #e2e8f0;
  padding: 14px 0;
}
.rst2-cn-faq-item summary {
  cursor: pointer;
  font-weight: 700;
  color: #0d2847;
  font-size: 0.95rem;
}
.rst2-cn-faq-item p {
  margin: 10px 0 0;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1.6;
}

@media (max-width: 767px) {
  .rst2-eq-row { grid-template-columns: 1fr; }
  .rst2-cn-faq-grid { grid-template-columns: 1fr; gap: 28px; }
  .rst2-loc-hero { min-height: 0 !important; }
  .rst2-ab-hero { min-height: min(100svh, 560px) !important; }
  .rst2-cta-trust-item { white-space: normal; }
  .rst2-loc-breadcrumb { flex-wrap: wrap; row-gap: 4px; }
}

@media (max-width: 480px) {
  .rst2-eq-box { padding: 18px 14px; }
  .rst2-svd-hero { min-height: 360px; }
}

.rst2-svd-faq {
  background: #f8f9fc;
  padding: 60px 0;
  border-top: 1px solid #e8edf3;
}
.rst2-svd-faq-head { margin-bottom: 32px; }
.rst2-svd-faq-list { max-width: 860px; }
.rst2-svd-faq-item {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 22px 26px;
  margin-bottom: 14px;
}
.rst2-faq-q {
  font-size: 1rem;
  font-weight: 700;
  color: #0d2847;
  margin: 0 0 10px;
}
.rst2-faq-a {
  font-size: 0.92rem;
  color: #4a5568;
  line-height: 1.7;
  margin: 0;
}
.rst2-svd-faq-more {
  margin-top: 24px;
  font-size: 0.9rem;
  color: #666;
}
.rst2-svd-faq-more a {
  color: #336EF9;
  font-weight: 600;
}
@media (max-width: 767px) {
  .rst2-svd-faq { padding: 48px 0; }
  .rst2-svd-faq-item { padding: 18px 16px; }
}

/* Phase 2 — listing/campaign mobile polish */
@media (max-width: 767px) {
  .rst2-faq-hero .rst2-ab-hero-title,
  .rst2-ab-hero-title { text-wrap: balance; }
  .rst2-cn-field-row { grid-template-columns: 1fr !important; }
}

/* Phase 4 — honeypot + enquiry focus */
.rst2-hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
}
.rst2-eq-input:focus-visible,
.rst2-eq-textarea:focus-visible,
.rst2-cn-field input:focus-visible,
.rst2-cn-field textarea:focus-visible {
  outline: 2px solid #336EF9;
  outline-offset: 2px;
}

/* ================================================================
   Homepage hero slider recovery — overflow + visible content
   ================================================================ */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}
#smooth-wrapper,
#smooth-content,
.tp-shop-slider-area,
.shop-slider-wrapper,
.tp-shop-slider-active {
  overflow-x: hidden;
  max-width: 100%;
}
.tp-shop-slider-active {
  overflow: hidden;
}
/* Before Swiper boots, keep first slide readable */
.tp-shop-slider-active:not(.swiper-initialized) .swiper-slide:first-child .tp-shop-slider-title-box,
.tp-shop-slider-active:not(.swiper-initialized) .swiper-slide:first-child .tp-shop-slider-btn-box {
  opacity: 1 !important;
  transform: none !important;
}
/* Contain scaled background so it cannot force page-wide horizontal scroll */
.tp-shop-slider-bg {
  position: relative;
  overflow: hidden;
}
.tp-shop-slider-thumb {
  max-width: none;
}
.tp-shop-slider-title {
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
.tp-shop-slider-btn-box {
  flex-wrap: wrap;
  max-width: 100%;
}
/* Soften active zoom so it stays inside the viewport */
.tp-shop-slider-active .swiper-slide.swiper-slide-active .tp-shop-slider-thumb {
  transform: scale(1.08);
}

/* ================================================================
   RST2 Hero — full-bleed slider redesign
   ================================================================ */
.rst2-hero {
  --rst2-hero-header-clear: 168px;
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  background: #0a1628;
  color: #fff;
}
.rst2-hero-swiper {
  height: min(92svh, 880px);
  min-height: 620px;
}
.rst2-hero-swiper .swiper-wrapper,
.rst2-hero-swiper .swiper-slide,
.rst2-hero-slide {
  height: 100%;
}
.rst2-hero-slide {
  position: relative;
  overflow: hidden;
}
.rst2-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.rst2-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1.04);
  transition: transform 7s ease-out;
}
.rst2-hero-slide.swiper-slide-active .rst2-hero-img {
  transform: scale(1);
}
.rst2-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(8, 14, 28, 0.92) 0%, rgba(8, 14, 28, 0.72) 38%, rgba(8, 14, 28, 0.28) 68%, rgba(8, 14, 28, 0.4) 100%),
    linear-gradient(0deg, rgba(8, 14, 28, 0.78) 0%, rgba(8, 14, 28, 0.2) 42%, rgba(8, 14, 28, 0.45) 100%);
  pointer-events: none;
}
.rst2-hero-copy {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: flex-end;
  box-sizing: border-box;
  padding-top: var(--rst2-hero-header-clear) !important;
  padding-bottom: 120px !important;
  padding-left: 0;
  padding-right: 0;
}
.rst2-hero-copy-inner {
  max-width: 640px;
  width: 100%;
  padding-bottom: 4px;
}
.rst2-hero-brand {
  margin: 0 0 14px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.2;
  color: rgba(255, 255, 255, 0.82);
}
.rst2-hero-brand::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  margin-top: 12px;
  background: var(--c-blue, #29ABE2);
}
.rst2-hero-title {
  margin: 0 0 16px;
  font-size: clamp(1.7rem, 3.6vw, 2.75rem);
  font-weight: 750;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #fff;
  max-width: none;
}
.rst2-hero-lede {
  margin: 0 0 26px;
  max-width: 42ch;
  font-size: clamp(0.95rem, 1.25vw, 1.06rem);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
}
.rst2-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.rst2-hero .rst2-hero-btn {
  margin-right: 0;
}
.rst2-hero .rst2-hero-btn--primary {
  background: var(--c-blue, #29ABE2);
  border-color: var(--c-blue, #29ABE2);
  color: #fff !important;
}
.rst2-hero .rst2-hero-btn--primary:hover {
  background: #fff;
  border-color: #fff;
  color: var(--c-dark, #19191A) !important;
}
.rst2-hero .rst2-hero-btn--outline {
  border-color: rgba(255, 255, 255, 0.55);
}
.rst2-hero .rst2-hero-btn--outline:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
}

/* Content enter motion */
.rst2-hero-brand,
.rst2-hero-title,
.rst2-hero-lede,
.rst2-hero-actions {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.rst2-hero-slide.swiper-slide-active .rst2-hero-brand,
.rst2-hero-swiper:not(.swiper-initialized) .rst2-hero-slide:first-child .rst2-hero-brand {
  opacity: 1;
  transform: none;
  transition-delay: 0.08s;
}
.rst2-hero-slide.swiper-slide-active .rst2-hero-title,
.rst2-hero-swiper:not(.swiper-initialized) .rst2-hero-slide:first-child .rst2-hero-title {
  opacity: 1;
  transform: none;
  transition-delay: 0.18s;
}
.rst2-hero-slide.swiper-slide-active .rst2-hero-lede,
.rst2-hero-swiper:not(.swiper-initialized) .rst2-hero-slide:first-child .rst2-hero-lede {
  opacity: 1;
  transform: none;
  transition-delay: 0.28s;
}
.rst2-hero-slide.swiper-slide-active .rst2-hero-actions,
.rst2-hero-swiper:not(.swiper-initialized) .rst2-hero-slide:first-child .rst2-hero-actions {
  opacity: 1;
  transform: none;
  transition-delay: 0.38s;
}

/* Controls bar */
.rst2-hero-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  padding: 0 0 28px;
  pointer-events: none;
}
.rst2-hero-bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  pointer-events: auto;
}
.rst2-hero-progress {
  flex: 1;
  max-width: 280px;
  height: 2px;
  background: rgba(255, 255, 255, 0.22);
  overflow: hidden;
}
.rst2-hero-progress-fill {
  display: block;
  height: 100%;
  width: 0;
  background: var(--c-blue, #29ABE2);
}
.rst2-hero-nav {
  display: flex;
  align-items: center;
  gap: 14px;
}
.rst2-hero-fraction {
  min-width: 4.5rem;
  text-align: center;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.85);
  font-variant-numeric: tabular-nums;
}
.rst2-hero-prev,
.rst2-hero-next {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(8, 14, 28, 0.35);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.rst2-hero-prev:hover,
.rst2-hero-next:hover,
.rst2-hero-prev:focus-visible,
.rst2-hero-next:focus-visible {
  background: var(--c-blue, #29ABE2);
  border-color: var(--c-blue, #29ABE2);
  outline: none;
}

@media (max-width: 1199px) {
  .rst2-hero {
    --rst2-hero-header-clear: 150px;
  }
  .rst2-hero-copy-inner {
    max-width: 560px;
  }
}
@media (max-width: 991px) {
  .rst2-hero {
    --rst2-hero-header-clear: 130px;
  }
  .rst2-hero-swiper {
    height: auto;
    min-height: min(86svh, 700px);
  }
  .rst2-hero-copy {
    padding-bottom: 118px !important;
  }
  .rst2-hero-copy-inner {
    max-width: 100%;
  }
  .rst2-hero-progress {
    max-width: 140px;
  }
}
@media (max-width: 575px) {
  .rst2-hero {
    --rst2-hero-header-clear: 112px;
  }
  .rst2-hero-copy {
    padding-bottom: 126px !important;
  }
  .rst2-hero-actions {
    width: 100%;
  }
  .rst2-hero .rst2-hero-btn {
    width: 100%;
    height: 48px;
  }
  .rst2-hero-bar-inner {
    gap: 16px;
  }
  .rst2-hero-prev,
  .rst2-hero-next {
    width: 40px;
    height: 40px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rst2-hero-img,
  .rst2-hero-brand,
  .rst2-hero-title,
  .rst2-hero-lede,
  .rst2-hero-actions,
  .rst2-hero-progress-fill {
    transition: none !important;
    transform: none !important;
  }
  .rst2-hero-slide .rst2-hero-brand,
  .rst2-hero-slide .rst2-hero-title,
  .rst2-hero-slide .rst2-hero-lede,
  .rst2-hero-slide .rst2-hero-actions {
    opacity: 1;
  }
}

/* ================================================================
   RST2 · FOOTER — content placement
   ================================================================ */
.rst2-footer {
  background: #0d0f12;
  color: rgba(255, 255, 255, 0.72);
}
.rst2-footer a {
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
  transition: color 0.2s ease;
}
.rst2-footer a:hover,
.rst2-footer a:focus-visible {
  color: #ffffff;
  outline: none;
}
.rst2-footer-main {
  padding: 72px 0 0;
}
.rst2-footer-top {
  display: grid;
  grid-template-columns: minmax(220px, 0.9fr) minmax(0, 2.4fr);
  gap: clamp(40px, 5vw, 72px);
  align-items: start;
  padding-bottom: 48px;
}
.rst2-footer-logo {
  display: inline-block;
  margin-bottom: 20px;
}
.rst2-footer-logo img {
  width: 180px;
  height: auto;
  display: block;
}
.rst2-footer-blurb {
  margin: 0 0 24px;
  max-width: 32ch;
  font-size: 0.92rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.62);
}
.rst2-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.rst2-footer-social a {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.rst2-footer-social a:hover,
.rst2-footer-social a:focus-visible {
  color: var(--c-blue, #29ABE2);
}
.rst2-footer-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 32px;
}
.rst2-footer-title {
  margin: 0 0 18px !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  line-height: 1.2 !important;
}
.rst2-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rst2-footer-col li {
  margin: 0 0 10px;
}
.rst2-footer-col li:last-child {
  margin-bottom: 0;
}
.rst2-footer-col a {
  font-size: 0.88rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.62);
}
.rst2-footer-col a:hover,
.rst2-footer-col a:focus-visible {
  color: var(--c-blue, #29ABE2);
}
.rst2-footer-contact {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.7fr) minmax(0, 0.9fr);
  gap: 24px 40px;
  padding: 28px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.rst2-footer-contact-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.rst2-footer-contact-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
}
.rst2-footer-contact-item a {
  font-size: 0.9rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.82);
}
.rst2-footer-contact-item a:hover,
.rst2-footer-contact-item a:focus-visible {
  color: var(--c-blue, #29ABE2);
}
.rst2-footer-bar {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 18px 0;
  background: #0a0c0e;
}
.rst2-footer-bar-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
}
.rst2-footer-copy {
  margin: 0;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.48);
}
.rst2-footer-copy a {
  color: rgba(255, 255, 255, 0.72);
}
.rst2-footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}
.rst2-footer-legal a {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.48);
}
.rst2-footer-legal a:hover,
.rst2-footer-legal a:focus-visible {
  color: #ffffff;
}

@media (max-width: 1199px) {
  .rst2-footer-top {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .rst2-footer-blurb { max-width: 48ch; }
}
@media (max-width: 991px) {
  .rst2-footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 28px;
  }
  .rst2-footer-contact {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
@media (max-width: 575px) {
  .rst2-footer-main { padding-top: 56px; }
  .rst2-footer-nav { grid-template-columns: 1fr; gap: 28px; }
  .rst2-footer-bar-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ============================================================
   RST audit patch — mobile heroes + chip overflow (MOB-01)
   ============================================================ */
@media (max-width: 991px) {
  .rst2-pj2-hero,
  .rst2-pd2-hero {
    min-height: min(100svh, 720px);
  }
}
@media (max-width: 767px) {
  .rst2-pj2-hero,
  .rst2-pd2-hero {
    min-height: min(100svh, 560px);
  }
  .rst2-hero {
    min-height: 0;
  }
  .rst2-hero-slide {
    min-height: min(100svh, 640px);
  }

  /* Horizontal scroll instead of wrapping overflow for filter chips */
  .rst2-tm-filter-bar {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    max-width: 100%;
  }
  .rst2-tm-filter-btn {
    flex-shrink: 0;
    white-space: nowrap;
  }

  .rst2-cta-actions {
    flex-wrap: wrap;
  }
  .rst2-cta-btn-primary,
  .rst2-cta-btn-ghost,
  .rst2-cta-btn-outline,
  .rst2-hero-btn {
    white-space: normal;
  }

  .rst2-loc-breadcrumb,
  .rst2-pd-hero-bc,
  .rst2-ab-bc-list {
    flex-wrap: wrap;
    row-gap: 4px;
  }
}

/* Header gutters used in import/header.php (lean pages omit spacing.css) */
.pl-60 { padding-left: 60px; }
.pr-60 { padding-right: 60px; }
@media (max-width: 991px) {
  .pl-60 { padding-left: 15px; }
  .pr-60 { padding-right: 15px; }
}
