/* Paritas visual COBA — hanya penyesuaian yang tidak tertutup DOM tema */

/* Topbar kompak: ~56px total (padding 13px + logo max 26px) */
.site-header {
  padding-top: 13px;
  padding-bottom: 13px;
}

.site-header .main-logo img {
  width: 96px;
  max-width: 96px;
  max-height: 26px;
  height: auto;
  object-fit: contain;
  display: block;
}

/* Chrome di atas preloader (cursor + day/night) */
body.dsn-preloading .cursor,
body.dsn-preloading #dsn_box_options {
  z-index: 1000000;
  pointer-events: auto;
}

/* Toggle dark/light — ukuran asli COBA (30×30px) */
#dsn_box_options.day-night {
  position: fixed;
  top: 23px;
  left: 10px;
  bottom: auto;
  width: 30px;
  height: 30px;
  z-index: 99999;
  cursor: pointer;
  box-shadow: none;
  background: transparent;
  padding: 0;
  border-radius: 0;
}

#dsn_box_options.day-night .night,
#dsn_box_options.day-night .moon {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 30px;
  pointer-events: none;
}

#dsn_box_options.day-night .night svg,
#dsn_box_options.day-night .moon svg {
  width: 100%;
  height: 100%;
}

@media only screen and (max-width: 767px) {
  #dsn_box_options.day-night {
    left: 10px;
    display: block;
  }
}

/* Preloader — teks panjang PHALANX DIGITAL */
@media only screen and (max-width: 575px) {
  #dsn_preloader .title {
    letter-spacing: 6px;
  }
}

/* Scrollbar smooth (pojok kanan) — sama tema, pastikan track terlihat */
body.dsn-effect-scroll:not(.dsn-mobile) #dsn-scrollbar .scrollbar-track {
  width: 4px;
  right: 0;
  opacity: 1;
}

body.dsn-effect-scroll:not(.dsn-mobile) #dsn-scrollbar .scrollbar-thumb {
  background: var(--theme-color, #e4e4dd);
  border-radius: 2px;
}

/* Section / tombol — selaras class COBA (GSAP dari reloadAjax) */
.section-margin .dsn-heading-title,
.section-padding .dsn-heading-title {
  line-height: 1.15;
}

.dsn-service.icon-top .service-content {
  padding-top: 0;
}

a.dsn-btn.dsn-border-style {
  display: inline-block;
}

/* VIEW MORE / LEARN MORE — pill + panah seperti Elementor dsn_button COBA
   Kecualikan .btn-1 (Recent Cases): border via SVG stroke dashed, radius 3px */
a.dsn-btn.move-circle.background-section:not(.btn-1),
a.dsn-btn.move-circle.background-main:not(.btn-1) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 3px solid var(--heading-color, #e4e4dd);
  border-radius: 50px;
  padding: 14px 28px;
}

a.dsn-btn.move-circle.background-section:not(.btn-1) {
  background-color: transparent;
}

a.dsn-btn.move-circle.background-section:not(.btn-1) .btn-icon-right,
a.dsn-btn.move-circle.background-main:not(.btn-1) .btn-icon-right {
  display: inline-flex;
  margin-left: 5px;
  color: var(--heading-color, #e4e4dd);
}

a.dsn-btn.move-circle.background-section:not(.btn-1) .btn-icon-right svg,
a.dsn-btn.move-circle.background-main:not(.btn-1) .btn-icon-right svg {
  width: 14px;
  height: 14px;
  display: block;
}

a.dsn-btn.btn-1.move-circle {
  display: inline-flex;
  align-items: center;
  position: relative;
  border: none;
  border-radius: 3px;
  padding: 14px 28px;
}

/* Author About: jarak jelas dari quote; wrap block agar tombol di bawah (bukan sebelah) */
.about-section .about-author-wrap {
  display: block;
  margin-top: 32px;
}

.about-section .about-author {
  margin: 0;
  letter-spacing: 2px;
}

/* Scroll progress (footer-loading.php) — pojok kanan bawah; custom.js dsnScrollTop
   menganimasikan `right` (-150 → 50) dan mengisi .box-number span dengan persen. */
.scroll-to-top {
  position: fixed;
  bottom: 40px;
  right: -150px;
  width: 70px;
  height: 70px;
  z-index: 90;
  text-align: center;
  cursor: pointer;
}

.scroll-to-top svg {
  width: 70px;
  height: 70px;
}

.scroll-to-top svg .st0 {
  fill: var(--heading-color, #e4e4dd);
}

.scroll-to-top .box-number {
  color: var(--heading-color, #e4e4dd);
}

.scroll-to-top .box-number span {
  font-size: 12px;
}

/* Sembunyikan saat preloader masih tampil agar tidak bocor di atas loader */
body.dsn-preloading .scroll-to-top {
  opacity: 0;
}

/* Social rail kiri (blackdsn _menu-social-navigation.scss) */
.social-side {
  position: fixed;
  bottom: 50px;
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 30px;
  --heading-color: #fff;
  color: var(--heading-color, #fff);
}

body.v-dark .social-side,
body.v-dark-head .social-side {
  --heading-color: #fff;
  color: #fff;
}

.social-side,
.social-side .icon,
.social-side .socials li a,
.social-side .socials li a i,
.social-side .socials li a span,
.social-side-line {
  color: #fff;
}

.social-side-line {
  border-left-color: #fff;
}

.social-side .socials li a:after {
  background: #fff;
}

@media only screen and (min-width: 1400px) {
  .social-side {
    left: 25px;
  }
}

@media only screen and (min-width: 992px) and (max-width: 1399px) {
  .social-side {
    left: 15px;
  }
}

@media only screen and (max-width: 991px) {
  .social-side {
    display: none;
  }
}

body.dsn-preloading .social-side {
  opacity: 0;
  pointer-events: none;
}

.social-side .icon {
  text-align: center;
  width: 30px;
  line-height: 30px;
  cursor: pointer;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
  letter-spacing: 2px;
  font-weight: 600;
  font-size: 12px;
  margin: 0;
}

.social-side .icon:before {
  display: none;
  content: none;
}

.social-side-line {
  display: block;
  width: 0;
  height: 50px;
  border-left: 1px solid var(--heading-color, #fff);
  margin: 0 auto 10px;
}

.social-side .socials {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
  font-size: 14px;
}

.social-side .socials li {
  display: flex;
  justify-content: center;
  width: 100%;
}

.social-side .socials li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  margin: 5px 0 10px;
  margin-right: 0;
  color: var(--heading-color, #fff);
}

.social-side .socials li a:after,
.social-side .socials li a span {
  position: absolute;
  top: 50%;
  left: 50%;
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.55, 0.02, 0.1, 0.9);
}

.social-side .socials li a:after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--heading-color, #fff);
  transform: translate(-50%, -50%) scale(0.2);
}

.social-side .socials li a span {
  color: var(--heading-color, #fff);
  font-size: 13px;
  transform-origin: center bottom;
  cursor: pointer;
  transform: translateX(0) translateY(-50%);
}

.social-side .socials li a i {
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.social-side .socials li a:hover i {
  transform: scale(0);
}

.social-side .socials li a:hover span {
  opacity: 1;
  transform: translateX(10px) translateY(-50%);
  transition: all 0.6s cubic-bezier(0.75, -0.5, 0, 1.75);
}

.social-side .socials li a:hover:after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  transition: all 0.5s cubic-bezier(0.75, -0.5, 0, 1.75);
  transition-delay: 0.2s;
}

/* Hero: layer gambar harus full viewport (bukan % tinggi konten teks) */
.main-slider.half-slider .content-slider {
  min-height: 100vh;
}

.main-slider.half-slider .bg-container {
  top: 0;
  bottom: 0;
  height: auto;
  min-height: 100vh;
}

.main-slider.half-slider .bg-container .swiper-container,
.main-slider.half-slider .bg-container .swiper-slide {
  min-height: 100vh;
}

/* Hero: sembunyikan teks slide non-aktif (cegah project-info bertabrakan) */
.main-slider .dsn-slider-content .slide-content:not(.dsn-active) ul.project-info,
.main-slider .dsn-slider-content .slide-content:not(.dsn-active) .dsn-def-btn,
.main-slider .dsn-slider-content .slide-content:not(.dsn-active) .title {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Poin 3: strip vertikal tipis di kanan panel hitam kiri (0–30%) */
.main-slider .hero-adjacent-strip {
  display: none;
}

@media only screen and (min-width: 992px) {
  .main-slider.half-slider.half-right .hero-adjacent-strip {
    display: block;
    position: absolute;
    --hero-adjacent-strip-w: calc((10% + 30px) * 0.75);
    left: calc(30% - var(--hero-adjacent-strip-w));
    width: var(--hero-adjacent-strip-w);
    top: 15vh;
    height: 70vh;
    z-index: 1;
    overflow: hidden;
    pointer-events: none;
    border-radius: 0 3px 3px 0;
  }

  .main-slider.half-slider.half-right .hero-adjacent-strip .swiper-slide {
    overflow: hidden;
    height: 100%;
  }

  /* Wrapper vertikal harus auto — height:100% mencegah translateY animasi slide */
  .main-slider.half-slider.half-right .hero-adjacent-strip.swiper-container-vertical .swiper-wrapper {
    height: auto;
  }

  .main-slider.half-slider.half-right .hero-adjacent-strip .cover-bg-img {
    object-fit: cover;
    object-position: center center;
    width: 100%;
    height: 100%;
  }
}

@media only screen and (max-width: 991px) {
  .main-slider .hero-adjacent-strip {
    display: none;
  }
}

.main-slider .dsn-slider-content {
  z-index: 3;
}

/* Stack vertikal: watermark di atas, PREV/NEXT di bawahnya (pojok kanan hero) */
.main-slider .hero-index-stack {
  position: absolute;
  bottom: 14px;
  right: 100px;
  z-index: 103;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  line-height: 1.1;
  pointer-events: none;
}

@media only screen and (max-width: 767px) {
  .main-slider .hero-index-stack {
    right: 35px;
    bottom: 12px;
  }
}

.main-slider .hero-index-stack .control-num {
  position: relative;
  bottom: auto;
  right: auto;
  pointer-events: none;
}

.main-slider .hero-index-stack .footer-slid.hero-footer-nav {
  position: relative;
  bottom: auto;
  left: auto;
  right: auto;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  display: block;
  pointer-events: none;
}

.main-slider .hero-index-stack .hero-footer-nav .control-nav {
  width: 120px;
  pointer-events: auto;
  cursor: pointer;
}

/* Stagger horizontal dsngrid: PREV (ikon kiri + garis + label kanan), NEXT offset kanan */
.main-slider .hero-index-stack .hero-footer-nav .control-nav .prev-button {
  right: 100px;
  margin-bottom: 14px;
}

.main-slider .hero-index-stack .hero-footer-nav .control-nav .next-button {
  padding-left: 20px;
}

.main-slider .hero-index-stack .hero-footer-nav .control-nav .text-arrow {
  color: var(--heading-color, #fff);
  font-weight: 600;
  letter-spacing: 1px;
  white-space: nowrap;
}

/* Progress bar sedikit di atas dasar stack kanan (stack bottom ~14px, bar ~30px) */
.main-slider.has-paginate:not(.dsn-progress-left) .dsn-controls {
  bottom: 30px;
  z-index: 9;
}

.main-slider.has-paginate .dsn-controls .dsn-numbers {
  flex-shrink: 0;
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
}

.main-slider.has-paginate .dsn-controls .dsn-numbers span {
  display: inline-block;
  text-align: center;
  visibility: visible;
  opacity: 1;
}

.main-slider.has-paginate .dsn-controls .dsn-progress {
  flex: 1 1 auto;
  min-width: 0;
}

.main-slider.has-paginate .control-nav .dsn-pagination {
  display: none;
}

/* About — pola COBA: dsn-right-container, ~40/60, gambar absolute + pad 30, move-up */
.about-section .about-row {
  min-height: 80vh;
  position: relative;
}

.about-section .about-copy {
  position: relative;
  z-index: 2;
  padding-top: 60px;
  padding-bottom: 60px;
  padding-right: 40px;
}

@media only screen and (min-width: 992px) {
  .about-section .about-copy {
    flex: 0 0 40%;
    max-width: 40%;
  }

  .about-section .about-media {
    flex: 0 0 60%;
    max-width: 60%;
    position: relative;
    min-height: 80vh;
  }
}

.about-section .about-media .img-box-parallax {
  position: absolute;
  inset: 30px 0 30px 30px;
  overflow: hidden;
  /* biarkan tinggi dari inset; jangan paksa 80vh theme yang bentrok pad */
  height: auto !important;
  min-height: 0 !important;
}

/* GSAP move-up: geser Y searah scroll — jangan kunci height/scale (has-scale = zoom) */
.about-section .about-media .img-box-parallax img {
  position: absolute;
  left: 0;
  width: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  will-change: transform;
  pointer-events: none;
}

/* Identity — gambar full tinggi section; card kiri menyambung atas–bawah gambar */
.identity-section.identity-overlay {
  position: relative;
  min-height: 80vh;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
  display: flex;
  align-items: stretch;
}

.identity-section .identity-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.identity-section .identity-media .img-box-parallax {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden;
}

.identity-section .identity-media .img-box-parallax img {
  position: absolute;
  left: 0;
  width: 100%;
  max-width: none;
  object-fit: cover;
  will-change: transform;
  pointer-events: none;
}

.identity-section .identity-overlay-inner {
  position: relative;
  z-index: 2;
  padding-top: 0;
  padding-bottom: 0;
  width: 100%;
  display: flex;
  align-items: stretch;
}

.identity-section .identity-overlay-inner > .row {
  width: 100%;
  min-height: 80vh;
  align-items: stretch;
}

.identity-section .identity-overlay-inner > .row > [class*="col-"] {
  display: flex;
}

.identity-section .identity-card {
  max-width: none;
  width: 100%;
  min-height: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px 60px;
  /* Biarkan class .background-section dari tema — jangan override ke body */
}

.identity-section .identity-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
  color: var(--theme-color);
  flex-shrink: 0;
}

.identity-section .dsn-list-items li {
  display: flex;
  align-items: flex-start;
  border-bottom: 1px solid var(--border-color, rgba(255, 255, 255, 0.12));
  padding: 14px 0;
}

.identity-section .dsn-list-items li:last-child {
  border-bottom: none;
}

@media only screen and (max-width: 991px) {
  .about-section .about-row {
    min-height: 0;
  }

  .about-section .about-media {
    min-height: 50vh;
    margin-top: 30px;
  }

  .about-section .about-media .img-box-parallax {
    position: relative;
    inset: auto;
    height: 50vh !important;
  }

  .identity-section.identity-overlay {
    min-height: 0;
    display: block;
  }

  .identity-section .identity-media {
    position: relative;
    min-height: 50vh;
  }

  .identity-section .identity-media .img-box-parallax {
    position: relative;
    height: 50vh !important;
  }

  .identity-section .identity-overlay-inner {
    padding-top: 0;
    padding-bottom: 0;
  }

  .identity-section .identity-overlay-inner > .row {
    min-height: 0;
  }

  .identity-section .identity-card {
    padding: 40px 30px;
    min-height: 0;
  }
}

/* Cegah scrollbar horizontal — penyebab umum: .full-width (-50vw), row gutter, title-cover */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}

#main_root,
#page_wrapper,
#dsn-scrollbar,
#dsn-scrollbar .scroll-content {
  overflow-x: hidden;
  max-width: 100%;
}

/* Services — title-cover tema; hilangkan watermark CSS lama */
.services-section,
.work-section,
.news-section,
.brand-section,
.contact-cta-section,
.recent-case-section,
.about-section,
.identity-section,
.testimonials-section {
  position: relative;
}

.services-section .title-cover,
.work-section .title-cover,
.news-section .title-cover,
.brand-section .title-cover,
.contact-cta-section .title-cover,
.recent-case-section .title-cover {
  /* Samakan tema: left 0 + width 100% — JANGAN left:50% + width:100% (itu overflow) */
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
  transform: translateY(-100%);
  text-align: center;
  white-space: nowrap;
  font-size: 7vw;
  pointer-events: none;
  z-index: 1;
  overflow: visible;
  will-change: transform, opacity;
}

.services-section .section-title,
.work-section .section-title,
.news-section .section-title,
.brand-section .section-title,
.contact-cta-section .dsn-container > :not(.title-cover),
.recent-case-section .recent-case-copy > :not(.title-cover) {
  position: relative;
  z-index: 2;
}

.contact-cta-section .title-cover.contact-title-cover,
.contact-cta-section .contact-title-cover {
  font-size: 10vw;
}

/* Bootstrap .row margin -15px di dalam dsn-right-container tanpa padding = overflow */
.about-section .about-row,
.recent-case-section .recent-case-row,
.identity-section .row {
  margin-left: 0;
  margin-right: 0;
}

.about-section .about-row > [class*="col-"],
.recent-case-section .recent-case-row > [class*="col-"],
.identity-section .row > [class*="col-"] {
  padding-left: 15px;
  padding-right: 15px;
}

.contact-cta-section .contact-cta-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: 100%;
  margin: 0;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: 0;
  overflow: visible;
}

.contact-cta-section .dsn-line-section.full-width {
  left: 0;
  right: 0;
  width: 100%;
  margin-left: 0;
}

.services-section .dsn-grid-layout,
.brand-section .dsn-grid-layout,
.work-section .root-posts,
.news-section .root-posts {
  position: relative;
  z-index: 1;
  overflow: hidden;
  max-width: 100%;
}

.services-section .dsn-service {
  --dsn-width-item: 3;
}

@media only screen and (max-width: 991px) {
  .services-section .dsn-service {
    --dsn-width-item: 2;
  }
}

.services-section .service-item-inner {
  min-height: 390px;
  padding: 60px 30px;
  border: 1px solid var(--border-color, rgba(255, 255, 255, 0.12));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  isolation: isolate;
}

.services-section .service-item-inner .box-img-shadow {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.services-section .service-item-inner .box-img-shadow,
.services-section .service-item-inner .box-img-shadow .img-box-parallax,
.services-section .service-item-inner .box-img-shadow img {
  width: 100%;
  height: 100%;
}

.services-section .service-item-inner .box-img-shadow img {
  object-fit: cover;
}

.services-section .dsn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 2;
  color: var(--theme-color);
}

.services-section .service-context-icon {
  display: block;
  width: 58px;
  height: 58px;
  overflow: visible;
  fill: currentColor;
}

.services-section .service-context-icon path,
.services-section .service-context-icon rect,
.services-section .service-context-icon circle,
.services-section .service-context-icon line,
.services-section .service-context-icon polyline {
  fill: currentColor !important;
  stroke: none;
}

.services-section .service-content {
  width: 100%;
  text-align: center;
  position: relative;
  z-index: 2;
}

.services-section .service_description,
.services-section .service_title {
  text-align: center;
}

.services-section .border-top {
  border-top: 1px solid var(--border-color, rgba(255, 255, 255, 0.12));
}

.services-section .link-vist {
  display: inline-flex;
  justify-content: center;
}

.services-section .link-vist svg,
.work-section .link-vist svg,
.news-section .link-vist svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Opacity dan transform watermark dikendalikan GSAP dari data-dsn-* seperti COBA. */
.services-section .title-cover.services-title-cover {
  color: var(--heading-color, #e4e4dd);
  -webkit-text-fill-color: var(--heading-color, #e4e4dd);
}

/* Portfolio / News cards COBA */
.work-section .dsn-item-post,
.news-section .dsn-item-post {
  padding: 30px;
}

.work-section .box-image-bg,
.news-section .box-image-bg {
  position: relative;
  overflow: hidden;
  min-height: 280px;
  height: 40vh;
}

.work-section .box-image-bg img,
.news-section .box-image-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-section .dsn-item-post.box-image-overlay .box-image-bg {
  opacity: 0.02;
  transition: opacity 0.5s ease;
}

.news-section .dsn-item-post.box-image-overlay:hover .box-image-bg {
  opacity: 0.6;
}

.news-section .entry-date {
  position: absolute;
  left: 20px;
  top: 20px;
  z-index: 2;
  text-align: center;
  line-height: 1.1;
}

.news-section .entry-day {
  display: block;
  font-size: 28px;
  font-weight: 700;
}

.news-section .entry-date .heading-color {
  display: block;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.news-section .space-post {
  display: none;
}

/* Portfolio scroll-jack — pin track, no page overflow */
.work-section .work-scroll-pin {
  overflow: hidden;
  max-width: 100%;
}

.work-section .work-scroll-pin.is-scroll-jacked {
  position: relative;
}

.work-section .dsn-swiper[data-dsn-scroll-jack="1"] .swiper-container {
  overflow: hidden;
}

/* Recent case — 50/50 + move-up (COBA elementor-col-50) */
.recent-case-section .recent-case-row {
  min-height: 70vh;
}

.recent-case-section .recent-case-copy {
  padding-top: 80px;
  padding-bottom: 80px;
  padding-right: 30px;
  position: relative;
  z-index: 2;
}

.recent-case-section .recent-case-body {
  padding: 30px;
}

.recent-case-section .recent-case-copy h6.line-shape {
  padding-left: 0;
}

@media only screen and (min-width: 992px) {
  .recent-case-section .recent-case-copy {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .recent-case-section .recent-case-media {
    flex: 0 0 50%;
    max-width: 50%;
    position: relative;
    min-height: 70vh;
  }

  .recent-case-section .recent-case-media .img-box-parallax {
    position: absolute;
    inset: 0;
    height: 100% !important;
    overflow: hidden;
  }
}

.recent-case-section .recent-case-media .img-box-parallax img {
  position: absolute;
  left: 0;
  width: 100%;
  max-width: none;
  object-fit: cover;
  will-change: transform;
  pointer-events: none;
}

@media only screen and (max-width: 991px) {
  .recent-case-section .recent-case-copy {
    padding-top: 40px;
    padding-bottom: 30px;
  }

  .recent-case-section .recent-case-media .img-box-parallax {
    position: relative;
    height: 50vh !important;
  }
}

/* Testimonials — title absolute kiri */
.testimonials-section .testimonials-content {
  position: relative;
  padding: 80px 60px;
  min-height: 420px;
}

.testimonials-section .box-title {
  max-width: 280px;
  z-index: 2;
  pointer-events: none;
}

.testimonials-section .testimonial-inner {
  padding-left: 300px;
}

.testimonials-section .avatar {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
  margin-right: 15px;
  flex-shrink: 0;
}

.testimonials-section .avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media only screen and (max-width: 991px) {
  .testimonials-section .box-title {
    position: relative !important;
    max-width: none;
    margin-bottom: 40px;
    height: auto !important;
  }

  .testimonials-section .testimonial-inner {
    padding-left: 0;
  }

  .testimonials-section .testimonials-content {
    padding: 40px 30px;
  }
}

/* Brand grid */
.brand-section .dsn-brand {
  --dsn-width-item: 4;
}

@media only screen and (max-width: 991px) {
  .brand-section .dsn-brand {
    --dsn-width-item: 3;
  }
}

@media only screen and (max-width: 575px) {
  .brand-section .dsn-brand {
    --dsn-width-item: 2;
  }
}

.brand-section .brand-item-inner {
  min-height: 160px;
  border: 1px solid var(--border-color, rgba(255, 255, 255, 0.12));
  padding: 30px 20px;
  text-align: center;
}

.brand-section .box-img-shadow img {
  max-height: 48px;
  width: auto;
  margin: 0 auto 15px;
  display: block;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

.brand-section .text-brand {
  margin-bottom: 8px;
}

.brand-section .brand-link {
  font-size: 12px;
  letter-spacing: 1px;
}

/* Contact CTA — We are hiring */
.contact-cta-section {
  position: relative;
  overflow: hidden;
}

.contact-cta-section .dsn-container > .title,
.contact-cta-section .dsn-container > p {
  position: relative;
  z-index: 1;
}

.contact-cta-section .contact-hire-link {
  font-size: clamp(2rem, 5vw, 4rem);
  font-weight: 700;
  letter-spacing: 2px;
}

.contact-cta-section .line-shape {
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Swiper paginate prev/next spacing */
.dsn-swiper-paginate .prev-container,
.dsn-swiper-paginate .next-container {
  position: relative;
}

.dsn-swiper .dsn-swiper-paginate {
  margin-top: 40px;
  justify-content: center;
  gap: 20px;
}
