/* Google Fonts are now requested from the document head in components/meta.php,
   not from here. An @import serialises the fetch behind this stylesheet:
   main.css must download and parse before the browser even learns the font
   stylesheet exists, then two more origin handshakes follow. Requesting it
   in <head> lets both start in parallel.
   Families: Manrope, Plus Jakarta Sans (display=swap). */

:root {
  --body: #ffffff;
  --black: #000;
  --white: #fff;
  --spantext: #757575;
  --theme: #2563eb;
  --bg1: #141414;
  --bg2: #0a0a0a;
  --bg3: #fff;
  --border1: #1f2937;
  --pra-clr: #bebebe;
  --dd-clr: #dadada;
  --place: #858585;
  --tag: #646464;
  --bspan: #ababab;
}

/* -----------------------
    Template Default Fonts
 ------------------------- */
body {
  font-family: "Manrope", sans-serif;
  font-size: 15px;
  font-weight: normal;
  line-height: 1.6;
  color: var(--white);
  background-color: var(--bg2);
  padding: 0;
  margin: 0;
  overflow-x: clip;
}

/* ============================================
   Accessibility — skip-to-content, focus-visible, reduced motion
   ============================================ */

.skip-to-content {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  padding: 12px 20px;
  background-color: var(--theme);
  color: var(--white);
  text-decoration: none;
  font-weight: 600;
  border-radius: 0 0 8px 8px;
}

.skip-to-content:focus {
  left: 16px;
  outline: 2px solid var(--white);
  outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ============================================
   Cookie consent banner
   ============================================ */

.cookie-banner {
  position: fixed;
  bottom: 24px;
  left: 24px;
  right: 24px;
  max-width: 1030px;
  margin: 0 auto;
  background-color: rgba(10, 10, 10, 0.92);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border: 1px solid rgba(37, 99, 235, 0.25);
  border-radius: 14px;
  padding: 20px 24px;
  z-index: 9998;
  transform: translateY(140%);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.4s ease;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}

.cookie-banner--visible {
  transform: translateY(0);
  opacity: 1;
}

.cookie-banner-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.cookie-banner-content {
  flex: 1;
  min-width: 240px;
}

.cookie-banner-title {
  color: var(--white);
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 6px;
  letter-spacing: 0.4px;
}

.cookie-banner-text {
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
}

.cookie-banner-text a {
  color: var(--theme);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-banner-text a:hover {
  text-decoration: none;
}

.cookie-banner-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.cookie-btn {
  font-size: 13px;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 8px;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: inherit;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

/* Reject and Accept are deliberately the same size, weight and solidity.
   The ICO treats a ghost/greyed-out reject beside a solid accept as a dark
   pattern — both paths must cost the visitor the same effort. Only the hue
   differs, to keep the brand button recognisable. Do not downgrade reject. */
.cookie-btn-accept {
  background-color: var(--theme);
  color: var(--white);
}

.cookie-btn-accept:hover {
  background-color: #1d4fc7;
}

.cookie-btn-reject {
  background-color: rgba(255, 255, 255, 0.92);
  color: #0a0a0a;
}

.cookie-btn-reject:hover {
  background-color: #fff;
}

.cookie-btn-save {
  background-color: var(--theme);
  color: var(--white);
}

.cookie-btn-save:hover {
  background-color: #1d4fc7;
}

/* "Manage" is a third path, not the rejection path, so it may be quieter. */
.cookie-btn-link {
  background: none;
  border: 0;
  padding: 9px 4px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color 0.25s ease;
}

.cookie-btn-link:hover {
  color: var(--white);
}

.cookie-btn:focus-visible,
.cookie-btn-link:focus-visible,
.cookie-switch input:focus-visible+.cookie-switch-track {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}

/* Granular layer */
.cookie-prefs {
  flex-basis: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 16px;
}

.cookie-prefs-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.cookie-pref {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.cookie-pref-copy {
  flex: 1;
  min-width: 0;
}

.cookie-pref-name {
  display: block;
  color: var(--white);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 2px;
}

label.cookie-pref-name {
  cursor: pointer;
}

.cookie-pref-desc {
  display: block;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  line-height: 1.5;
}

.cookie-pref-locked {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding-top: 3px;
}

.cookie-switch {
  flex-shrink: 0;
  position: relative;
  display: inline-block;
  cursor: pointer;
}

/* Keep the real checkbox focusable and hit-testable — it just sits over the track. */
.cookie-switch input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 1;
}

.cookie-switch-track {
  display: block;
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background-color: rgba(255, 255, 255, 0.18);
  transition: background-color 0.25s ease;
}

.cookie-switch-track::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: #fff;
  transition: transform 0.25s ease;
}

.cookie-switch input:checked+.cookie-switch-track {
  background-color: var(--theme);
}

.cookie-switch input:checked+.cookie-switch-track::after {
  transform: translateX(18px);
}

.cookie-prefs-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

@media (max-width: 575px) {
  .cookie-banner {
    bottom: 12px;
    left: 12px;
    right: 12px;
    padding: 16px;
    max-height: calc(100vh - 24px);
  }

  .cookie-banner-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  /* Reject and Accept keep identical widths on small screens too. */
  .cookie-btn-reject,
  .cookie-btn-accept {
    flex: 1 1 0;
  }

  .cookie-btn-link {
    flex: 1 1 100%;
    order: 3;
    text-align: center;
  }

  .cookie-btn-save {
    width: 100%;
  }
}

/* Honour reduced-motion preference — disable AOS animations and decorative motion */
@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* AOS animations: force into final state, no entrance transform */
  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

button {
  border: none;
  background-color: transparent;
  padding: 0;
}

input:focus {
  color: var(--white);
  outline: none;
}

input {
  color: var(--white);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Plus Jakarta Sans", sans-serif;
  margin: 0px;
  padding: 0;
  color: var(--white);
  text-transform: capitalize;
  transition: all 0.4s ease-in-out;
}

h1 {
  font-size: 46px;
  font-weight: 700;
  line-height: 115%;
}

h2 {
  font-size: 34px;
  line-height: 125%;
  font-weight: 700;
}

h3 {
  font-size: 26px;
  font-weight: 700;
  line-height: 130%;
}

h4 {
  font-size: 20px;
  font-weight: 700;
  line-height: 135%;
}

h5 {
  font-size: 17px;
  font-weight: 700;
  line-height: 140%;
}

h6 {
  font-size: 15px;
  font-weight: 600;
  line-height: 145%;
}

a {
  text-decoration: none;
  outline: none !important;
  cursor: pointer;
  color: var(--white);
  transition: all 0.4s ease-in-out;
}

p {
  margin: 0px;
  transition: all 0.4s ease-in-out;
  font-size: 15px;
  line-height: 1.6;
  font-family: "Manrope", sans-serif;
  color: var(--white);
}

.zindex1 {
  z-index: 1;
}

.whitehover {
  color: var(--white) !important;
}

.pra-clr {
  color: #bebebe !important;
}

.theme-border {
  border: 1px solid var(--theme) !important;
}

.radius100 {
  border-radius: 100px;
}

.bb-border {
  border-bottom: 1px solid var(--border1) !important;
}

.bt-border {
  border-top: 1px solid var(--border1) !important;
}

span {
  margin: 0px;
  transition: all 0.4s ease-in-out;
  font-size: 16px;
  font-family: "Manrope", sans-serif;
  color: var(--white);
}

h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span {
  font-size: inherit;
}

.common-social li a {
  width: 36px;
  min-width: 36px;
  height: 36px;
  display: block;
  border: 1px solid var(--border1);
  transition: all 0.5s;
}

.common-social li a:hover {
  background: var(--theme);
  border-color: var(--theme);
}

.common-social li a:hover svg path {
  stroke: var(--black);
}

.common-social li a:hover i {
  color: var(--black);
}

.slider-button {
  border-top: 1px solid var(--border1);
  border-bottom: 1px solid var(--border1);
}

.slider-button .cmn-next,
.slider-button .cmn-prev {
  width: 70px;
  min-width: 70px;
  height: 70px;
  border-radius: 50%;
  transition: all 0.4s;
}

.slider-button .cmn-next i,
.slider-button .cmn-prev i {
  color: var(--border1);
  font-size: 24px;
  transition: all 0.4s;
}

.slider-button .cmn-next:hover,
.slider-button .cmn-prev:hover {
  background: var(--theme);
  border-color: var(--theme);
}

.slider-button .cmn-next:hover i,
.slider-button .cmn-prev:hover i {
  color: var(--black);
}

@media (max-width: 1399px) {

  .slider-button .cmn-next,
  .slider-button .cmn-prev {
    width: 48px;
    min-width: 48px;
    height: 48px;
  }

  .slider-button .cmn-next i,
  .slider-button .cmn-prev i {
    font-size: 17px;
  }
}

@media (max-width: 1399px) {

  .slider-button .cmn-next,
  .slider-button .cmn-prev {
    width: 38px;
    min-width: 38px;
    height: 38px;
  }

  .slider-button .cmn-next i,
  .slider-button .cmn-prev i {
    font-size: 16px;
  }
}

.slider-button .previus-text {
  font-size: 22px;
}

.slider-button .project-storke {
  font-size: 44px;
  font-weight: 700;
  font-family: "Plus Jakarta Sans", sans-serif;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #1f2937;
  color: transparent;
  display: block;
}

@media (max-width: 575px) {
  .slider-button .previus-text {
    font-size: 18px;
  }

  .slider-button .project-storke {
    font-size: 30px;
  }

  .hero-v1-content h1 .designers::before {
    bottom: 3px;
  }

  .hero-v1-content .video-popup {
    display: none;
  }
}

@media (max-width: 575px) {
  .slider-button .previus-text {
    font-size: 16px;
  }

  .slider-button .project-storke {
    font-size: 24px;
  }
}

@media (max-width: 400px) {
  .slider-button .previus-text {
    font-size: 14px;
  }

  .slider-button .project-storke {
    display: none;
  }
}

.d-center {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.spantext-clr {
  color: var(--spantext) !important;
}

.white-clr {
  color: var(--white);
}

.theme-clr {
  color: var(--theme);
}

.bg1-clr {
  background: var(--bg1);
}

.bg2-clr {
  background: var(--bg2) !important;
}

.cmn-border {
  border: 1px solid #1f2937 !important;
}

.rot60 {
  transform: rotate(60deg);
  transition: all 0.4s;
}

.bspan-clr {
  color: var(--bspan);
}

.pt-space {
  padding-top: 100px;
}

.pb-space {
  padding-bottom: 100px;
}

@media (max-width: 1399px) {
  h1 {
    font-size: 42px;
  }

  h2 {
    font-size: 30px;
  }

  h3 {
    font-size: 24px;
  }

  h4 {
    font-size: 19px;
  }

  .pt-space {
    padding-top: 80px;
  }

  .pb-space {
    padding-bottom: 80px;
  }
}

@media (max-width: 1199px) {
  h1 {
    font-size: 38px;
  }

  h2 {
    font-size: 28px;
  }

  h3 {
    font-size: 22px;
  }

  h4 {
    font-size: 18px;
  }

  h5 {
    font-size: 16px;
  }

  h6 {
    font-size: 14px;
  }

  .pt-space {
    padding-top: 80px;
  }

  .pb-space {
    padding-bottom: 80px;
  }
}

@media (max-width: 991px) {
  h1 {
    font-size: 32px;
  }

  h2 {
    font-size: 24px;
  }

  h3 {
    font-size: 20px;
  }

  h4 {
    font-size: 16px;
  }

  h5 {
    font-size: 15px;
  }

  h6 {
    font-size: 13px;
  }

  .pt-space {
    padding-top: 70px;
  }

  .pb-space {
    padding-bottom: 70px;
  }
}

section,
footer {
  overflow: clip;
}

::-webkit-scrollbar {
  width: 4px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background: #888;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.preloader {
  align-items: center;
  cursor: default;
  display: flex;
  height: 100%;
  justify-content: center;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 9999999;
}

.preloader .animation-preloader {
  z-index: 1000;
}

.preloader .animation-preloader .spinner {
  animation: spinner 1s infinite linear;
  border-radius: 50%;
  border: 3px solid rgba(0, 0, 0, 0.2);
  border-top-color: var(--theme);
  height: 9em;
  margin: 0 auto 3.5em auto;
  width: 9em;
}

@media (max-width: 767px) {
  .preloader .animation-preloader .spinner {
    width: 7.5em;
    height: 7.5em;
    margin: 0 auto 1.5em auto;
  }
}

.preloader .animation-preloader .txt-loading {
  font: bold 5em "Plus Jakarta Sans", sans-serif, "Manrope", sans-serif;
  text-align: center;
  user-select: none;
}

@media (max-width: 767px) {
  .preloader .animation-preloader .txt-loading {
    font-size: 2.5em;
  }
}

.preloader .animation-preloader .txt-loading .letters-loading {
  color: var(--theme);
  position: relative;
  font-size: 80px;
}

@media (max-width: 767px) {
  .preloader .animation-preloader .txt-loading .letters-loading {
    font-size: 42px;
  }
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(2):before {
  animation-delay: 0.2s;
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(3):before {
  animation-delay: 0.4s;
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(4):before {
  animation-delay: 0.6s;
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(5):before {
  animation-delay: 0.8s;
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(6):before {
  animation-delay: 1s;
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(7):before {
  animation-delay: 1.2s;
}

.preloader .animation-preloader .txt-loading .letters-loading:nth-child(8):before {
  animation-delay: 1.4s;
}

.preloader .animation-preloader .txt-loading .letters-loading::before {
  animation: letters-loading 4s infinite;
  color: var(--white);
  content: attr(data-text-preloader);
  left: 0;
  opacity: 0;
  font-family: "Plus Jakarta Sans", sans-serif;
  position: absolute;
  top: 2px;
  transform: rotateY(-90deg);
}

.preloader p {
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 8px;
  color: var(--theme);
}

.preloader .loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-size: 0;
  z-index: 1;
  pointer-events: none;
}

.preloader .loader .row {
  height: 100%;
}

.preloader .loader .loader-section {
  padding: 0px;
}

.preloader .loader .loader-section .bg {
  background-color: var(--bg2);
  height: 100%;
  left: 0;
  width: 100%;
  transition: all 800ms cubic-bezier(0.77, 0, 0.175, 1);
}

.preloader.loaded .animation-preloader {
  opacity: 0;
  transition: 0.3s ease-out;
}

.preloader.loaded .loader-section .bg {
  width: 0;
  transition: 0.7s 0.3s allcubic-bezier(0.1, 0.1, 0.1, 1);
}

.cmn-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}

/* Frosted-glass treatment when the header is fixed on scroll (.header-fixed is toggled by main.js) */
.header-fixed {
  position: fixed;
  top: 0;
  z-index: 999;
  width: 100%;
  background-color: rgba(10, 10, 10, 0.78);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid rgba(37, 99, 235, 0.1);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

@media (max-width: 991px) {
  .cmn-fixed {
    background-color: rgba(10, 10, 10, 0.85) !important;
    backdrop-filter: saturate(140%) blur(14px);
    -webkit-backdrop-filter: saturate(140%) blur(14px);
    border-bottom: 1px solid rgba(37, 99, 235, 0.1);
    z-index: 9999 !important;
  }
}

.header-section {
  width: 100%;
  z-index: 100;
  z-index: 999;
}

.header-section .brand-logo {
  max-width: 150px;
}

@media (max-width: 991px) {
  .header-section .brand-logo {
    max-width: 150px;
  }
}

@media (max-width: 767px) {
  .header-section .search-toggle-box {
    display: none;
    position: absolute;
    width: 100%;
    top: 60px;
    z-index: 10;
  }
}

@media (max-width: 991px) {
  .header-section .main-navbar .navbar-toggle-item {
    display: none;
    /* The header is position: fixed and <body> is locked with overflow-hidden
       while the menu is open, so the panel is the only thing that can scroll.
       main.js sets the matching max-height from the panel's measured top.
       overscroll-behavior stops the scroll chaining to the locked page and
       leaving the user stuck at the end of the list. */
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
}

@media (min-width: 992px) {
  .header-section .main-navbar .navbar-toggle-item {
    display: initial !important;
  }
}

.header-section .main-navbar .custom-nav .menu-item button::after {
  position: absolute;
  content: "\f062";
  font-family: "FontAwesome";
  font-weight: 500;
  font-size: 16px;
  left: -16px;
  transition: all 0.1s ease;
  transform: rotate(60deg);
}

.header-section .main-navbar .custom-nav .menu-item button,
.header-section .main-navbar .custom-nav .menu-item a,
.header-section .main-navbar .custom-nav .menu-link button,
.header-section .main-navbar .custom-nav .menu-link a {
  transition: all 0.4s;
  font-size: 16px !important;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--white);
}

@media (max-width: 1199px) {

  .header-section .main-navbar .custom-nav .menu-item button,
  .header-section .main-navbar .custom-nav .menu-item a,
  .header-section .main-navbar .custom-nav .menu-link button,
  .header-section .main-navbar .custom-nav .menu-link a {
    font-size: 14px !important;
    font-weight: 400 !important;
  }
}

@media (max-width: 575px) {

  .header-section .main-navbar .custom-nav .menu-item button,
  .header-section .main-navbar .custom-nav .menu-item a,
  .header-section .main-navbar .custom-nav .menu-link button,
  .header-section .main-navbar .custom-nav .menu-link a {
    font-size: 16px;
  }
}

.header-section .main-navbar .custom-nav .menu-item button:hover,
.header-section .main-navbar .custom-nav .menu-item button.active,
.header-section .main-navbar .custom-nav .menu-item a:hover,
.header-section .main-navbar .custom-nav .menu-item a.active,
.header-section .main-navbar .custom-nav .menu-link button:hover,
.header-section .main-navbar .custom-nav .menu-link button.active,
.header-section .main-navbar .custom-nav .menu-link a:hover,
.header-section .main-navbar .custom-nav .menu-link a.active {
  color: var(--theme);
}

.header-section .main-navbar .custom-nav .menu-item button:hover::after,
.header-section .main-navbar .custom-nav .menu-item button.active::after,
.header-section .main-navbar .custom-nav .menu-item a:hover::after,
.header-section .main-navbar .custom-nav .menu-item a.active::after,
.header-section .main-navbar .custom-nav .menu-link button:hover::after,
.header-section .main-navbar .custom-nav .menu-link button.active::after,
.header-section .main-navbar .custom-nav .menu-link a:hover::after,
.header-section .main-navbar .custom-nav .menu-link a.active::after {
  transform: rotate(90deg);
}

@media (max-width: 991px) {
  .header-section .main-navbar .custom-nav {
    width: 100%;
  }

  .header-section .main-navbar .custom-nav .sub-menu {
    display: none;
    padding: 5px 20px 5px;
    background: var(--bg1) !important;
  }

  .header-section .main-navbar .custom-nav .sub-menu li a {
    font-size: 14px !important;
    letter-spacing: 2px;
  }
}

@media (min-width: 992px) {
  .header-section .main-navbar .custom-nav .menu-item {
    padding: 34px 0;
  }

  .header-section .main-navbar .custom-nav .menu-item button:hover button::after {
    transform: rotate(-180deg);
  }

  .header-section .main-navbar .custom-nav .sub-menu {
    position: absolute;
    top: 20px;
    left: -30px;
    min-width: 240px;
    opacity: 0;
    width: max-content;
    visibility: hidden;
    transform: translateY(50px);
    text-wrap: nowrap;
    transition: 0.8s;
    display: initial !important;
    background: var(--bg1);
    z-index: 10;
    pointer-events: none;
    box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
  }

  .header-section .main-navbar .custom-nav .sub-menu .sub-menu {
    border-left: 2px solid var(--p1);
    left: 99%;
    top: -55px;
    z-index: 9;
  }

  .header-section .main-navbar .custom-nav .menu-item {
    position: relative;
  }

  .header-section .main-navbar .custom-nav .menu-item:hover>.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(60px);
    pointer-events: auto;
  }
}

/* ============================================
   Megamenu — replaces .sub-menu for the Services dropdown
   ============================================ */

/* Caret next to the "Services" trigger */
.mega-caret {
  font-size: 10px;
  opacity: 0.7;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.menu-item-mega:hover .mega-caret {
  transform: rotate(180deg);
  opacity: 1;
  color: var(--theme);
}

@media (min-width: 992px) {

  /* Container — viewport-centered via position: fixed. Top value matches where the
     menu-item bottom sits relative to the fixed/sticky header so the hover bridge holds. */
  .mega-menu {
    position: fixed;
    top: 78px;
    left: 50%;
    transform: translateX(-50%) translateY(14px);
    width: 1100px;
    max-width: calc(100vw - 40px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
    z-index: 9999;
    pointer-events: none;
    padding-top: 6px;
  }

  .menu-item-mega:hover .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }

  /* Inner panel — solid dark card */
  .mega-menu-inner {
    background-color: #0f0f0f;
    background-image: linear-gradient(145deg, rgba(37, 99, 235, 0.06) 0%, rgba(37, 99, 235, 0) 60%);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 18px;
    padding: 28px;
    box-shadow:
      0 30px 60px -20px rgba(0, 0, 0, 0.85),
      0 12px 24px -10px rgba(0, 0, 0, 0.6),
      0 0 0 1px rgba(37, 99, 235, 0.08) inset;
    position: relative;
    overflow: hidden;
  }

  /* Decorative blue glow corner */
  .mega-menu-inner::before {
    content: "";
    position: absolute;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.16), transparent 70%);
    top: -160px;
    right: -160px;
    pointer-events: none;
    filter: blur(20px);
  }

  /* Header strip */
  .mega-menu-header {
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    margin-bottom: 20px;
    position: relative;
    z-index: 1;
  }

  .mega-eyebrow {
    font-size: 10px;
    letter-spacing: 2.5px;
    font-weight: 700;
    color: var(--theme);
    margin-bottom: 4px;
  }

  .menu-item-mega .mega-title {
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    line-height: 1.2;
    color: var(--white);
    margin: 0;
  }

  .menu-item-mega .mega-eyebrow {
    font-size: 10px !important;
    letter-spacing: 2.5px !important;
    font-weight: 700 !important;
    color: var(--theme);
    margin-bottom: 4px;
    text-transform: uppercase !important;
  }

  /* "All Services" — secondary text link in the megamenu header. Inherits .hero-secondary-link styling. */
  .menu-item-mega .mega-all-link {
    font-size: 13px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    text-decoration: none;
  }

  .menu-item-mega .mega-all-link .rot60 i {
    font-size: 11px;
    color: var(--theme);
  }

  /* 3-column grid */
  .mega-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    position: relative;
    z-index: 1;
  }

  /* Each card — ultra-specific overrides to win over global .menu-item a */
  .header-section .main-navbar .custom-nav .menu-item-mega .mega-grid a.mega-card,
  .header-section .main-navbar .custom-nav .menu-item .mega-card,
  .mega-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 16px;
    border-radius: 12px;
    background-color: transparent;
    border: 1px solid transparent;
    text-decoration: none;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    position: relative;
  }

  .mega-card:hover {
    background-color: rgba(37, 99, 235, 0.08);
    border-color: rgba(37, 99, 235, 0.25);
    transform: translateY(-1px);
  }

  .mega-card-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.18), rgba(37, 99, 235, 0.06));
    border: 1px solid rgba(37, 99, 235, 0.22);
    color: var(--theme);
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background-color 0.2s ease, transform 0.2s ease;
  }

  .mega-card:hover .mega-card-icon {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.32), rgba(37, 99, 235, 0.12));
    transform: scale(1.06);
  }

  .mega-card-text {
    flex: 1;
    min-width: 0;
  }

  /* Ultra-specific title override */
  .header-section .main-navbar .custom-nav .menu-item-mega .mega-card h6.mega-card-title,
  .mega-card .mega-card-title {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--white) !important;
    margin: 0 0 4px !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
  }

  /* Ultra-specific desc override — wins over inherited text-transform from <a> */
  .header-section .main-navbar .custom-nav .menu-item-mega .mega-card p.mega-card-desc,
  .mega-card .mega-card-desc {
    font-size: 12.5px !important;
    color: rgba(255, 255, 255, 0.58) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
  }

  .mega-card-arrow {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.3);
    align-self: center;
    transition: color 0.2s ease, transform 0.25s ease;
  }

  .mega-card:hover .mega-card-arrow {
    color: var(--theme);
    transform: rotate(90deg);
  }

  /* Footer CTA strip */
  .mega-menu-footer {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    position: relative;
    z-index: 1;
  }

  .mega-pulse-dot {
    width: 8px;
    height: 8px;
    background-color: #10b981;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.18);
    animation: mega-pulse 2s ease-in-out infinite;
    flex-shrink: 0;
  }

  @keyframes mega-pulse {

    0%,
    100% {
      box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.18);
    }

    50% {
      box-shadow: 0 0 0 9px rgba(16, 185, 129, 0);
    }
  }

  .menu-item-mega .mega-footer-text {
    color: rgba(255, 255, 255, 0.65) !important;
    font-size: 12.5px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
  }

  .menu-item-mega .mega-footer-text strong {
    font-weight: 600 !important;
    text-transform: none !important;
  }

  /* "Book a Call" — primary CTA in the megamenu footer. Inherits .touch-btn .cmn-btn styling.
     Only override font-size/text-transform to satisfy the global .menu-item a rule. */
  .menu-item-mega .mega-footer-cta {
    font-size: 14px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
  }

  .menu-item-mega .mega-footer-cta .rot60 i {
    font-size: 12px;
  }
}

/* Mobile: collapse the megamenu into a stacked list under the Services parent */
@media (max-width: 991px) {
  .mega-menu {
    position: static;
    display: none;
    width: auto;
    max-width: none;
    transform: none;
    opacity: 1;
    visibility: visible;
    padding: 8px 0 16px;
    background: var(--bg1);
    pointer-events: auto;
  }

  /* Deliberately no :hover rule here. On touch devices the first tap latches
     :hover onto the element and it never releases, so a hover-driven panel
     would open on an accidental brush and stay open. .open is set by the
     mobile toggle button only. */
  .menu-item-mega.open .mega-menu {
    display: block;
  }

  /* The Services row becomes a flex row: link, toggle, then the panel wrapping
     onto its own full-width line. Laying it out this way rather than absolutely
     positioning the toggle keeps the button pinned to the *link* row — an
     absolute `top: 50%` would centre it against the li, which grows to include
     the open panel and would drag the button into the middle of the list. */
  .menu-item-mega {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }

  .menu-item-mega > a {
    flex: 1 1 auto;
  }

  .menu-item-mega .mega-menu {
    flex: 0 0 100%;
  }

  /* Mobile-only expand control, at the right edge of the Services row so the
     row's own link stays fully tappable and still navigates to /services. */
  .header-section .main-navbar .custom-nav .menu-item .mega-toggle,
  .mega-toggle {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--white);
    font-size: 13px !important;
    line-height: 1;
  }

  /* The generic .menu-item button rule stamps a rotated FontAwesome arrow into
     ::after at left:-16px. That is for the old sub-menu toggles; on this button
     it renders a second, stray arrow outside the tap target. */
  .header-section .main-navbar .custom-nav .menu-item .mega-toggle::after {
    display: none;
    content: none;
  }

  .mega-toggle i {
    transition: transform 0.3s ease;
  }

  .menu-item-mega.open .mega-toggle {
    color: var(--theme);
  }

  .menu-item-mega.open .mega-toggle i {
    transform: rotate(180deg);
  }

  .mega-menu-inner {
    padding: 0;
  }

  .mega-menu-header {
    display: none !important;
  }

  .mega-grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0 16px;
  }

  /* The card's flex layout and its typography resets live in the min-width: 992px
     block, so none of it applied here — the icon, text and arrow ran together as
     plain inline content and the copy inherited the uppercase nav treatment from
     .custom-nav .menu-item a. Both are restated at mobile widths. */
  .header-section .main-navbar .custom-nav .menu-item .mega-card,
  .mega-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 8px;
    border-radius: 8px;
    background-color: transparent;
    border: 1px solid transparent;
    text-decoration: none;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
  }

  .mega-card-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.18), rgba(37, 99, 235, 0.06));
    border: 1px solid rgba(37, 99, 235, 0.22);
    color: var(--theme);
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }

  .mega-card-text {
    flex: 1;
    min-width: 0;
  }

  .header-section .main-navbar .custom-nav .menu-item .mega-card h6.mega-card-title,
  .mega-card-title {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--white) !important;
    margin: 0 0 2px !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
  }

  .header-section .main-navbar .custom-nav .menu-item .mega-card p.mega-card-desc,
  .mega-card-desc {
    font-size: 11px !important;
    color: rgba(255, 255, 255, 0.58) !important;
    margin: 0 !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  /* The arrow is a hover affordance; there is no hover on touch. */
  .mega-card-arrow {
    display: none;
  }

  .mega-menu-footer {
    display: none !important;
  }

  .mega-caret {
    display: none;
  }
}

.header-section .main-navbar .navbar-toggle-btn {
  width: 36px;
  height: 24px;
  position: relative;
  right: 0;
  transition: 0.5s;
  top: 0;
}

.header-section .main-navbar .navbar-toggle-btn span {
  background: var(--theme);
  display: block;
  position: absolute;
  height: 2px;
  width: 100%;
  border-radius: 9px;
  opacity: 1;
  left: 0;
  transform: rotate(0deg);
  transition: 0.5s;
}

.header-section .main-navbar .navbar-toggle-btn span:nth-child(1) {
  top: 0;
}

.header-section .main-navbar .navbar-toggle-btn span:nth-child(2),
.header-section .main-navbar .navbar-toggle-btn span:nth-child(3) {
  top: 12px;
}

.header-section .main-navbar .navbar-toggle-btn span:nth-child(4) {
  top: 24px;
}

.header-section .main-navbar .navbar-toggle-btn.open span:nth-child(1) {
  top: 18px;
  width: 0%;
  left: 50%;
}

.header-section .main-navbar .navbar-toggle-btn.open span:nth-child(2) {
  transform: rotate(45deg);
}

.header-section .main-navbar .navbar-toggle-btn.open span:nth-child(3) {
  transform: rotate(-45deg);
}

.header-section .main-navbar .navbar-toggle-btn.open span:nth-child(4) {
  top: 18px;
  width: 0%;
  left: 50%;
}

.header-section .header-ph {
  font-size: 18px;
  font-weight: 600;
  color: var(--white);
}

.header-section .remove-clickbg-adding {
  border-radius: 50%;
  width: 50px;
  min-width: 50px;
  height: 50px;
  background: var(--bg1);
}

@media (max-width: 991px) {
  .header-section .remove-clickbg-adding {
    width: 32px;
    min-width: 32px;
    height: 32px;
  }

  .header-section .remove-clickbg-adding i {
    font-size: 16px;
  }
}

.remove-click {
  width: 58px;
  height: 58px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.remove-click i {
  font-size: 26px;
  color: var(--title);
}

.remove-click:hover {
  cursor: pointer;
}

@media (max-width: 1199px) {
  .remove-click {
    width: 39px;
    height: 39px;
  }

  .remove-click i {
    font-size: 22px;
  }
}

.subside-barmenu {
  width: 319px;
  height: 100%;
  position: fixed;
  z-index: 99999;
  background: #000;
  right: -320px;
  top: 0;
  transition: all 0.4s;
  overflow-y: scroll;
}

.subside-barmenu .remove-click {
  margin: 10px;
  padding: 5px;
  border-radius: 6px;
  margin: 0 auto;
}

.subside-barmenu .remove-click:hover {
  cursor: pointer;
}

.subside-barmenu .remove-click i {
  font-size: 36px;
  color: var(--theme);
}

.subside-barmenu .sub-contact-wrapper {
  padding: 40px 20px;
}

.subside-barmenu .sub-contact-wrapper .side-logo {
  margin-bottom: 20px;
}

.subside-barmenu .sub-contact-wrapper p {
  font-size: 14px;
  margin-bottom: 40px;
}

.subside-barmenu .sub-contact-wrapper .sub-contact-left {
  gap: 24px;
  margin-bottom: 40px;
}

.subside-barmenu .sub-contact-wrapper .social li a {
  width: 45px;
  height: 45px;
  background: var(--base);
  border: 1px solid var(--base);
}

.subside-barmenu .sub-contact-wrapper .social li a i {
  color: var(--title);
}

.subside-barmenu::before {
  display: none;
}

.subside-barmenu.active {
  right: 0px;
}

@media (max-width: 991px) {
  .ph-clickwrap {
    position: absolute;
    top: 90px;
    right: 8%;
    transform: translateX(50%);
    z-index: -1;
  }

  .ph-clickwrap a {
    font-size: 14px !important;
  }
}

@media (max-width: 991px) {
  .ph-clickwrap .stext {
    display: none;
  }
}

.breadcrumnd-banner {
  background: url(../img/banner/breadcrumnd-bg.svg) no-repeat center center;
  background-size: cover;
  background-color: var(--bg2);
  padding: 220px 2px 144px;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(37, 99, 235, 0.12);
}

/* Soft fade from the body bg at the top so the header sits cleanly */
.breadcrumnd-banner::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 180px;
  background: linear-gradient(to bottom, var(--bg2) 0%, rgba(10, 10, 10, 0) 100%);
  pointer-events: none;
  z-index: 0;
}

/* Soft fade out at the bottom for clean transition to next section */
.breadcrumnd-banner::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 140px;
  background: linear-gradient(to top, var(--bg2) 0%, rgba(10, 10, 10, 0) 100%);
  pointer-events: none;
  z-index: 0;
}

/* Keep content above the fade overlays */
.breadcrumnd-banner>.container,
.breadcrumnd-banner>* {
  position: relative;
  z-index: 1;
}

@media (max-width: 1399px) {
  .breadcrumnd-banner {
    padding: 190px 2px 120px;
  }
}

@media (max-width: 991px) {
  .breadcrumnd-banner {
    padding: 200px 1px 100px;
  }
}

@media (max-width: 575px) {
  .breadcrumnd-banner {
    padding: 180px 1px 80px;
  }
}

.breadcrumnd-content .breadcrumnd .rot60 {
  font-size: 17px;
}

.home-onetext .textitalick {
  font-style: italic;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 400 !important;
}

.home-onetext img {
  width: 75px;
}

.testi-italic .textitalick {
  font-style: italic;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 400 !important;
}

.hero-section-version1 {
  background: #0a0a0a;
  padding: 290px 5px 30px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}

/* Growth-chart background animation */
.hero-bg-animation {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.hero-bg-animation svg {
  width: 100%;
  height: 100%;
  display: block;
}

.hero-bg-animation .grid-lines {
  opacity: 0.6;
}

.hero-bg-animation .chart-line {
  stroke-dasharray: 1800;
  stroke-dashoffset: 1800;
  filter: drop-shadow(0 0 8px rgba(37, 99, 235, 0.5));
  animation: hero-draw-line 10s ease-in-out infinite;
}

.hero-bg-animation .chart-fill {
  opacity: 0;
  animation: hero-fade-fill 10s ease-in-out infinite;
}

.hero-bg-animation .data-points circle {
  opacity: 0;
  animation: hero-pulse-dot 10s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.hero-bg-animation .data-points circle:nth-of-type(1) {
  animation-delay: 0.4s;
}

.hero-bg-animation .data-points circle:nth-of-type(2) {
  animation-delay: 0.75s;
}

.hero-bg-animation .data-points circle:nth-of-type(3) {
  animation-delay: 1.1s;
}

.hero-bg-animation .data-points circle:nth-of-type(4) {
  animation-delay: 1.45s;
}

.hero-bg-animation .data-points circle:nth-of-type(5) {
  animation-delay: 1.8s;
}

.hero-bg-animation .data-points circle:nth-of-type(6) {
  animation-delay: 2.15s;
}

.hero-bg-animation .data-points circle:nth-of-type(7) {
  animation-delay: 2.5s;
}

.hero-bg-animation .data-points circle:nth-of-type(8) {
  animation-delay: 2.85s;
}

.hero-bg-animation .data-points circle:nth-of-type(9) {
  animation-delay: 3.2s;
}

.hero-bg-animation .data-points circle:nth-of-type(10) {
  animation-delay: 3.55s;
}

@keyframes hero-draw-line {
  0% {
    stroke-dashoffset: 1800;
    opacity: 0;
  }

  4% {
    opacity: 1;
  }

  45% {
    stroke-dashoffset: 0;
    opacity: 1;
  }

  90% {
    stroke-dashoffset: 0;
    opacity: 1;
  }

  100% {
    stroke-dashoffset: 0;
    opacity: 0;
  }
}

@keyframes hero-fade-fill {

  0%,
  15% {
    opacity: 0;
  }

  45% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes hero-pulse-dot {

  0%,
  30% {
    opacity: 0;
    transform: scale(0);
  }

  36% {
    opacity: 1;
    transform: scale(1.4);
  }

  42% {
    opacity: 1;
    transform: scale(1);
  }

  90% {
    opacity: 1;
    transform: scale(1);
  }

  100% {
    opacity: 0;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {

  .hero-bg-animation .chart-line,
  .hero-bg-animation .chart-fill,
  .hero-bg-animation .data-points circle {
    animation: none;
    opacity: 1;
    stroke-dashoffset: 0;
  }
}

@media (max-width: 767px) {
  .hero-bg-animation {
    display: none;
  }
}

.hero-section-version1 .hero-v1-content,
.hero-section-version1 .hero-expriencebox,
.hero-section-version1 .hero-arrow {
  position: relative;
  z-index: 2;
}

.hero-section-version1 .hero-arrow {
  position: absolute;
  left: 24px;
  bottom: 220px;
  width: 180px;
  height: 180px;
  z-index: -1;
}

.hero-section-version1 .hero-expriencebox {
  background: #1f1f1f;
  height: 180px;
  position: absolute;
  right: 0;
  bottom: 0;
  border-top-left-radius: 100px;
  border-bottom-left-radius: 100px;
  overflow: hidden;
}

.hero-section-version1 .hero-expriencebox .expri-thumb {
  height: 180px;
}

.hero-section-version1 .hero-expriencebox .expri-thumb img {
  height: 100%;
}

.hero-section-version1 .hero-expriencebox .expri-content {
  padding: 10px 60px;
}

.hero-section-version1 .hero-expriencebox .expri-content .yer {
  font-size: 16px;
}

/* Keep the client-logo slider from sliding under the experience pill */
.hero-section-version1 .sponsor-inner {
  max-width: 100%;
}

@media (min-width: 768px) {
  .hero-section-version1 .sponsor-inner {
    max-width: calc(100% - 370px);
  }
}

@media (min-width: 992px) {
  .hero-section-version1 .sponsor-inner {
    max-width: calc(100% - 520px);
  }
}

@media (min-width: 1601px) {
  .hero-section-version1 .sponsor-inner {
    max-width: calc(100% - 640px);
  }
}

@media (max-width: 1600px) {
  .hero-section-version1 {
    padding: 220px 5px 30px;
  }

  .hero-section-version1 .hero-arrow {
    left: 24px;
    bottom: 220px;
    width: 100px;
    height: 100px;
  }
}

@media (max-width: 1399px) {
  .hero-section-version1 {
    padding: 180px 5px 30px;
  }
}

@media (max-width: 1199px) {
  .hero-section-version1 .hero-expriencebox {
    height: 120px;
    width: 500px;
  }

  .hero-section-version1 .hero-expriencebox .expri-thumb {
    width: 120px;
  }
}

@media (max-width: 991px) {
  .hero-section-version1 {
    padding: 180px 5px 100px;
  }

  .hero-section-version1 .hero-arrow {
    display: none;
  }

  .hero-section-version1 .hero-expriencebox {
    height: 120px;
    width: 350px;
  }

  .hero-section-version1 .hero-expriencebox .expri-thumb {
    width: 10px;
  }

  .hero-section-version1 .hero-expriencebox .expri-content {
    padding: 5px 20px;
  }
}

@media (max-width: 767px) {
  .hero-section-version1 {
    padding: 160px 5px 90px;
  }

  .hero-section-version1 .hero-expriencebox {
    position: static;
    margin: 40px auto 0;
    height: auto;
    padding: 14px 24px;
    width: auto;
    max-width: 100%;
    border-radius: 12px;
    justify-content: center;
  }

  .hero-section-version1 .hero-expriencebox .expri-thumb {
    width: 10px;
    display: none;
  }

  .hero-section-version1 .hero-expriencebox .expri-content {
    padding: 5px 20px;
  }
}

.hero-section-version1 .hero-v1-content h1 {
  font-size: 68px;
  line-height: 110%;
  letter-spacing: -0.02em;
  max-width: 900px;
}

.hero-v1-content h1 span {
  font-size: inherit;
  line-height: inherit;
}

.hero-v1-content h1 .text-italic {
  font-style: italic;
  font-weight: 500;
}

.hero-v1-content h1 .text-storke {
  -webkit-text-stroke: 1px var(--theme);
  -webkit-text-fill-color: transparent;
}

.hero-v1-content h1 .designers {
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: var(--theme);
  color: transparent;
  transition: all 0.5s;
  position: relative;
}

.hero-v1-content h1 .designers::before {
  content: attr(data-text);
  position: absolute;
  color: var(--theme);
  width: 0px;
  overflow: hidden;
  white-space: nowrap;
  animation: pulse-width 3s ease-in infinite;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: var(--theme);
}

@keyframes pulse-width {
  50% {
    width: calc(100% + 8px);
  }
}

.hero-v1-content .video-popup {
  position: relative;
}

.hero-v1-content .video-popup .hero-circle {
  animation: textani 14s linear infinite;
  position: absolute;
  top: -56px;
  left: -66px;
}

.hero-v1-content .video-popup i {
  font-size: 29px;
}

.hero-v1-content .hero-sponsor {
  padding-top: 230px;
}

.hero-v1-content .hero-sponsor .brading-text {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 22px;
  font-weight: 400;
}

.hero-v1-content .hero-sponsor .brading-text::before {
  position: absolute;
  left: 102%;
  content: "";
  width: 344px;
  height: 1px;
  background: var(--border1);
}

@media (max-width: 1399px) {
  .hero-v1-content .hero-sponsor {
    padding-top: 150px;
  }

  .hero-v1-content .hero-sponsor .sponsor-inner a {
    max-width: 120px;
  }

  .hero-v1-content .hero-sponsor .sponsor-inner a img {
    width: 100%;
  }

  .hero-v1-content .hero-sponsor .brandin-wrap .brading-text::before {
    width: 20px;
  }
}

@media (max-width: 991px) {
  .hero-section-version1 .hero-v1-content h1 {
    font-size: 48px;
  }

  .hero-v1-content h1 span {
    font-size: inherit;
    line-height: inherit;
  }

  .hero-v1-content .hero-sponsor {
    padding-top: 80px;
  }

  .hero-v1-content .hero-sponsor .sponsor-inner a {
    max-width: 80px;
  }

  .hero-v1-content .hero-sponsor .sponsor-inner a img {
    width: 100%;
  }

  .hero-v1-content .hero-sponsor .brandin-wrap .brading-text::before {
    width: 20px;
  }
}

@media (max-width: 767px) {
  .hero-v1-content .hero-sponsor {
    padding-top: 30px;
  }

  .hero-v1-content .hero-sponsor .sponsor-inner a {
    max-width: 80px;
  }

  .hero-v1-content .hero-sponsor .sponsor-inner a img {
    width: 100%;
  }

  .hero-v1-content .hero-sponsor .brandin-wrap .brading-text::before {
    width: 20px;
  }

  .hero-v1-content .video-popup {
    position: absolute;
    top: -30px;
    right: 40px;
  }

  .hero-v1-content .video-popup .hero-circle {
    width: 80px;
    height: 80px;
    top: -28px;
    left: -36px;
  }

  .hero-v1-content .video-popup .icon i {
    font-size: 23px;
  }
}

@media (max-width: 767px) {
  .hero-v1-content h1 span {
    font-size: 44px;
    line-height: 115%;
  }
}

@media (max-width: 575px) {
  .hero-v1-content h1 span {
    font-size: 36px;
    line-height: 115%;
  }
}

@media (max-width: 400px) {
  .hero-v1-content h1 span {
    font-size: 28px;
    line-height: 115%;
  }
}

.about-product-content .allyear-content {
  border-top: 1px solid var(--theme);
  padding-top: 24px;
}

.about-product-content .allyear-content .allyear-item {
  position: relative;
}

.about-product-content .allyear-content .allyear-item::before {
  position: absolute;
  left: 0;
  top: -24px;
  content: "";
  width: 15px;
  height: 16px;
  background: var(--theme);
  clip-path: polygon(48% 69%, 0 0, 100% 0);
}

@media (max-width: 400px) {
  .about-product-content .allyear-content .allyear-item h5 {
    font-weight: 500;
    font-size: 16px;
  }

  .about-product-content .allyear-content .allyear-item span {
    font-size: 12px;
    line-height: 1.4;
  }
}

.blog-widget-item {
  transition: transform 0.45s ease;
}

.blog-widget-item .thumb {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

.blog-widget-item:hover {
  transform: translateY(-6px);
}

.blog-widget-item:hover h5 a {
  color: var(--theme);
}

.cmn-btn {
  transition: all 0.4s;
}

.cmn-btn .icons {
  transform: rotate(60deg);
  transition: all 0.4s;
}

.cmn-btn:hover {
  border-color: var(--theme) !important;
  color: var(--theme) !important;
}

.cmn-btn:hover .get-text {
  color: var(--theme) !important;
}

.cmn-btn:hover .icons {
  transform: rotate(90deg);
}

.cmn-btn:hover .icons i {
  color: var(--theme) !important;
}

/* AOS's [data-aos^=fade][data-aos^=fade] selector forces transition-property to
   only opacity+transform, which blocks color/border hover transitions on any pill
   that also has a data-aos attribute. Override with !important so hover animates,
   while keeping opacity/transform so the AOS entrance still works. */
.radius-btn {
  transition-property: color, border-color, background-color, opacity, transform !important;
  transition-duration: 0.3s, 0.3s, 0.3s, 0.6s, 0.6s !important;
  transition-timing-function: ease !important;
}

.radius-btn .theme-clr,
.radius-btn i {
  transition: color 0.3s ease;
}

.radius-btn:hover {
  border-color: var(--theme) !important;
  color: var(--white);
}

.radius-btn:hover .theme-clr,
.radius-btn:hover i {
  color: var(--white) !important;
}

.touch-btn {
  border: 1px solid var(--white);
  padding: 15px 24px;
  position: relative;
  z-index: 1;
  font-weight: 500;
  color: var(--white);
  background-color: transparent;
}

.touch-btn span i {
  color: var(--theme);
}

.touch-btn::before {
  position: absolute;
  content: "";
  width: 10px;
  height: 10px;
  left: 0;
  bottom: 0;
  background: var(--theme);
  z-index: -1;
  transition: all 0.5s;
  opacity: 0;
}

.touch-btn:hover {
  color: var(--black) !important;
}

.touch-btn:hover::before {
  width: 100%;
  height: 100%;
  opacity: 1;
}

.touch-btn:hover i {
  color: var(--black);
}

.touch-btn:hover span {
  color: var(--black);
}

@media (max-width: 1600px) {
  .touch-btn {
    padding: 10px 20px;
  }
}

@media (max-width: 1199px) {
  .touch-btn {
    padding: 9px 14px;
  }
}

@keyframes updown {
  50% {
    transform: translateY(100%);
  }
}

@keyframes svgani {
  50% {
    fill: var(--theme);
    opacity: 0.5;
  }
}

@keyframes textani {
  100% {
    transform: rotate(390deg);
  }
}

@-webkit-keyframes spinner {
  to {
    -webkit-transform: rotateZ(360deg);
    transform: rotateZ(360deg);
  }
}

@keyframes spinner {
  to {
    -webkit-transform: rotateZ(360deg);
    transform: rotateZ(360deg);
  }
}

@-webkit-keyframes letters-loading {

  0%,
  75%,
  100% {
    opacity: 0;
    transform: rotateY(-90deg);
  }

  25%,
  50% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}

@keyframes letters-loading {

  0%,
  75%,
  100% {
    opacity: 0;
    transform: rotateY(-90deg);
  }

  25%,
  50% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}

@keyframes loaderspin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@keyframes tpswing {
  0% {
    -webkit-transform: rotate(20deg);
    -ms-transform: rotate(20deg);
    transform: rotate(20deg);
  }

  100% {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg);
  }
}

@keyframes width {
  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}

@-webkit-keyframes width {
  0% {
    width: 0%;
  }

  100% {
    width: 100%;
  }
}

@-webkit-keyframes loaderspin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@keyframes loaderpulse {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.2);
  }
}

#progress {
  background-color: var(--theme);
  width: 40px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  position: fixed;
  right: 20px;
  z-index: 9999;
  display: none;
  bottom: 20px;
  border-radius: 50%;
  transition: all 0.4s ease-in-out;
  border: 2px solid var(--white);
}

#progress i {
  color: var(--black);
}

#progress #valiu {
  display: block;
}

#progress #valiu img {
  width: 16px;
}

#progress:hover {
  cursor: pointer;
  background-color: var(--theme);
}

.accordion-single {
  transition: all 0.4s;
  border-radius: 8px;
  border: 1px solid var(--border1);
}

.accordion-single .header-area {
  font-size: 20px;
  font-weight: 600;
  color: var(--white);
}

.accordion-single .header-area button {
  border: unset !important;
  color: var(--white);
  padding-right: 8%;
}

@media (max-width: 500px) {
  .accordion-single .header-area {
    font-size: 17px;
    font-weight: 500;
    color: var(--white);
  }

  .accordion-single .header-area button {
    padding-right: 4%;
  }
}

.header-area .accordion-btn::before {
  border-radius: 50%;
  width: 36px;
  min-width: 36px;
  height: 36px;
  font-size: 16px;
  background: var(--bg1);
}

.header-area .accordion-btn::after {
  font-size: 24px;
  color: var(--p1);
}

.faq .header-area {
  cursor: pointer;
}

.faq .header-area button::before,
.faq .header-area button::after {
  position: absolute;
  z-index: 1;
  right: 0;
  border-radius: 5px;
}

.faq .header-area button::before {
  content: "";
  background-color: var(--bg2);
  width: 38px;
  min-width: 38px;
  height: 38px;
  transition: all 0.4s;
}

.faq .header-area button::after {
  content: "\f101";
  font-family: "FontAwesome";
  font-size: 20px;
  transform: rotate(0deg);
  transition: all 0.5s;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  width: 38px;
  min-width: 38px;
  height: 38px;
}

@media (max-width: 500px) {
  .faq .header-area button::after {
    font-size: 16px;
  }
}

.faq .content-area {
  display: none;
}

.faq .active button {
  color: var(--theme);
}

.faq .active button::after {
  font-family: "FontAwesome";
  transform: rotate(90deg);
  font-weight: 700;
  color: var(--theme);
}

.service-tabing-wrap .images-remove-area {
  transition: all 0.6s;
  margin-bottom: -400px;
  opacity: 0;
  transform: rotate(60);
}

.service-tabing-wrap .modern-list li {
  font-size: 16px;
  color: var(--white);
  font-weight: 400;
}

.service-tabing-wrap .modern-list li i {
  color: var(--theme);
  font-size: 14px;
}

.service-tabing-wrap .accordion-single {
  border: unset;
  overflow: hidden;
  transition: all 0.8s;
  border-radius: 0;
}

.service-tabing-wrap .accordion-single .accordion-btn::after {
  content: "+";
  font-family: "FontAwesome";
  font-size: 20px;
  transform: rotate(0deg);
  transition: all 0.5s;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  width: 44px;
  min-width: 44px;
  height: 44px;
  background: #1d1d1d;
  border-radius: 50%;
}

.service-tabing-wrap .accordion-single .accordion-btn::after:hover {
  cursor: pointer;
}

.service-tabing-wrap .accordion-single .accordion-btn .mtitle-ara {
  width: 450px;
}

.service-tabing-wrap .accordion-single .accordion-btn .mtitle-ara .serial-badge {
  padding: 8px 16px;
  opacity: 0.6;
  transition: all 0.4s;
}

.service-tabing-wrap .accordion-single .accordion-btn .mtitle-ara .serial-badge .rot60 {
  padding-left: 10px;
}

.service-tabing-wrap .accordion-single .accordion-btn .mtitle-ara .mtitle {
  font-size: 26px;
  font-weight: 500;
}

.service-tabing-wrap .accordion-single .accordion-btn .mtitle-ara .pras {
  font-size: 16px;
  font-weight: 400;
  display: none !important;
  transform: scale(0);
}

.service-tabing-wrap .accordion-single.active .images-remove-area {
  margin-bottom: 0px;
  opacity: 1;
}

.service-tabing-wrap .accordion-single.active .accordion-btn {
  height: initial;
  justify-content: space-between;
}

.service-tabing-wrap .accordion-single.active .accordion-btn::after {
  content: "\f068";
  font-family: "FontAwesome";
  color: var(--theme);
}

.service-tabing-wrap .accordion-single.active .accordion-btn::after:hover {
  cursor: pointer;
}

.service-tabing-wrap .accordion-single.active .mtitle-ara .serial-badge {
  opacity: 1;
}

.service-tabing-wrap .accordion-single.active .mtitle-ara .pras {
  display: block !important;
  transform: scale(1);
}

.service-tabing-wrap .accordion-single.active .content-area {
  display: none !important;
}

.service-tabing-wrap .accordion-single img {
  max-width: 380px;
  width: 100%;
  border-radius: 6px;
}

@media (max-width: 1399px) {
  .service-tabing-wrap .mtitle {
    font-size: 20px !important;
  }

  .service-tabing-wrap .tab-remove-thumb {
    max-width: 280px;
  }

  .service-tabing-wrap .tab-remove-thumb img {
    width: 100%;
  }
}

.stitle {
  font-size: 34px;
}

.stitle span {
  font-size: 34px;
  font-weight: 400;
  font-style: italic;
}

@media (max-width: 991px) {
  .stitle {
    font-size: 24px;
  }

  .stitle span {
    font-size: 24px;
  }
}

@media (max-width: 575px) {
  .stitle {
    font-size: 22px;
  }

  .stitle span {
    font-size: 22px;
  }
}

@media (max-width: 480px) {
  .stitle {
    font-size: 29px;
  }

  .stitle span {
    font-size: 29px;
  }
}

.slider-button-60 {
  border: unset;
}

.slider-button-60 .cmn-prev,
.slider-button-60 .cmn-next {
  min-width: 60px !important;
  width: 60px !important;
  height: 60px !important;
  min-height: 60px !important;
  display: block;
}

@media (max-width: 1199px) {

  .slider-button-60 .cmn-prev,
  .slider-button-60 .cmn-next {
    min-width: 40px !important;
    width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
  }
}

.scrolling-wrap {
  overflow: hidden;
  white-space: nowrap;
  display: flex;
  gap: 20px;
}

.scrolling-wrap .comm {
  display: flex;
  align-items: center;
  animation: scroll 60s linear infinite;
  gap: 30px;
  cursor: pointer;
}

.scrolling-wrap .comm .cmn-textslide {
  font-size: 100px;
  font-weight: 700;
  line-height: 85px;
  text-transform: uppercase;
}

.scrolling-wrap .comm .text-custom-storke {
  -webkit-text-stroke: 1px rgb(255, 247, 247);
  -webkit-text-fill-color: transparent;
}

.scrolling-wrap:hover .comm {
  animation-play-state: paused;
}

@media (max-width: 1399px) {
  .scrolling-wrap .comm {
    gap: 20px;
  }

  .scrolling-wrap .comm .cmn-textslide {
    font-size: 60px;
    line-height: 65px;
  }

  .scrolling-wrap .comm img {
    width: 70px;
  }
}

@media (max-width: 991px) {
  .scrolling-wrap {
    gap: 14px;
  }

  .scrolling-wrap .comm {
    gap: 14px;
  }

  .scrolling-wrap .comm .cmn-textslide {
    font-size: 40px;
    line-height: 55px;
  }

  .scrolling-wrap .comm img {
    width: 50px;
    object-fit: contain;
  }
}

@media (max-width: 575px) {
  .scrolling-wrap .comm {
    gap: 12px;
  }

  .scrolling-wrap .comm .cmn-textslide {
    font-size: 24px;
    line-height: 35px;
  }

  .scrolling-wrap .comm img {
    width: 50px;
    object-fit: contain;
  }
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-100%);
  }
}

@keyframes scroll2 {
  0% {
    transform: translateX(0%);
  }

  100% {
    transform: translateX(-200%);
  }
}

.testimonial-version01-section {
  background-color: var(--bg2);
  background-image:
    radial-gradient(ellipse 70% 60% at 30% 50%, rgba(37, 99, 235, 0.10), transparent 65%),
    radial-gradient(ellipse 40% 50% at 85% 30%, rgba(37, 99, 235, 0.06), transparent 60%);
  position: relative;
  overflow: hidden;
}

.testimonial-version01-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, #000 30%, transparent 80%);
}

.testimonial-version01-section>.container {
  position: relative;
  z-index: 1;
}

.testimonial-version01-section .slider-button {
  position: absolute;
  right: 240px;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
}

@media (max-width: 1700px) {
  .testimonial-version01-section .slider-button {
    position: absolute;
    right: initial;
    top: initial;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
  }
}

@media (max-width: 1399px) {
  .testimonial-version01-section .testimonial-zero-oneitem .content .icon {
    font-size: 54px;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .content p {
    font-size: 18px;
  }
}

@media (max-width: 1199px) {
  .testimonial-version01-section .slider-button {
    bottom: 10px;
  }
}

@media (max-width: 991px) {
  .testimonial-version01-section .testimonial-zero-oneitem .thumb {
    min-width: 180px;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .thumb img {
    width: 100%;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .content .icon {
    font-size: 54px;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .content p {
    font-size: 18px;
  }
}

@media (max-width: 767px) {
  .testimonial-version01-section .testimonial-zero-oneitem .thumb {
    width: 180px;
    margin: 0 auto;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .thumb img {
    width: 100%;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .content .icon {
    font-size: 54px;
  }

  .testimonial-version01-section .testimonial-zero-oneitem .content p {
    font-size: 18px;
  }
}

.testimonial-zero-oneitem .content .icon {
  font-size: 54px;
}

.testimonial-zero-oneitem .content p {
  font-size: 24px;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 400;
  line-height: 140%;
}

.line-shape {
  max-width: 1531px;
  height: 100vh;
  position: fixed;
  left: 50%;
  top: -20px;
  justify-content: space-between;
  margin: 0 auto;
  transform: translateX(-50%);
}

.line-shape span {
  position: relative;
  width: 1px;
  height: 100%;
  display: block;
  background: #292929;
}

.line-shape span::before,
.line-shape span::after {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  background: var(--theme);
  box-shadow: rgba(228, 235, 242, 0.2) 0px 8px 24px;
  border-top-left-radius: 50px;
  border-top-right-radius: 50px;
  clip-path: polygon(51% 8%, 68% 15%, 66% 40%, 60% 78%, 56% 100%, 46% 100%, 42% 84%, 38% 56%, 34% 17%);
}

.line-shape span::after {
  animation: dscroll 2s linear infinite;
  width: 2px;
  height: 24px;
  bottom: 0;
  left: 0;
  background: var(--theme);
  box-shadow: rgba(228, 235, 242, 0.2) 0px 8px 24px;
  border-top-left-radius: 50px;
  border-top-right-radius: 50px;
  clip-path: polygon(51% 8%, 68% 15%, 66% 40%, 60% 78%, 56% 100%, 46% 100%, 42% 84%, 38% 56%, 34% 17%);
}

.line-shape span:nth-child(2)::after {
  animation: dscroll 2.1s linear infinite;
}

.line-shape span:nth-child(3)::after {
  animation: dscroll 2.2s linear infinite;
}

.line-shape span:nth-child(4)::after {
  animation: dscroll 2.3s linear infinite;
}

.line-shape span:nth-child(5)::after {
  animation: dscroll 2.4s linear infinite;
}

.line-shape span:nth-child(6)::after {
  animation: dscroll 1s linear infinite;
}

.line-shape span:nth-child(7)::after {
  animation: dscroll 3.5s linear infinite;
}

.line-shape span:nth-child(2)::backdrop {
  animation: dscroll 4.1s linear infinite;
}

.line-shape span:nth-child(3)::before {
  animation: dscroll 4.2s linear infinite;
}

.line-shape span:nth-child(4)::before {
  animation: dscroll 4.3s linear infinite;
}

.line-shape span:nth-child(5)::before {
  animation: dscroll 4.4s linear infinite;
}

.line-shape span:nth-child(6)::before {
  animation: dscroll 4s linear infinite;
}

.line-shape span:nth-child(7)::before {
  animation: dscroll 4.5s linear infinite;
}

@keyframes dscroll {
  100% {
    transform: translateY(100vh);
  }
}

/* ============================================
   Footer — redesigned
   ============================================ */

.footer-version-one {
  background-color: var(--bg2);
  background-image:
    linear-gradient(to bottom, var(--bg2) 0%, rgba(10, 10, 10, 0) 12%, rgba(10, 10, 10, 0) 88%, var(--bg2) 100%),
    url(../img/footer/footer-bg.svg);
  background-repeat: no-repeat, no-repeat;
  background-position: center top, center top;
  background-size: 100% 100%, cover;
  border-top: 1px solid rgba(37, 99, 235, 0.15);
  overflow: hidden;
}

/* Logo + tagline */

.footer-logo-img {
  max-width: 300px;
  height: auto;
}

.footer-tagline {
  max-width: 520px;
  font-size: 15px;
  line-height: 1.6;
}

/* Section eyebrow + titles */

.footer-section-eyebrow,
.footer-title {
  text-transform: uppercase;
  letter-spacing: 1.6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--theme);
}

.footer-title {
  font-size: 13px;
  margin-bottom: 24px;
  position: relative;
  padding-bottom: 12px;
}

.footer-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 28px;
  height: 2px;
  background: linear-gradient(to right, var(--theme), rgba(37, 99, 235, 0));
  border-radius: 2px;
}

/* Newsletter */

.footer-newsletter {
  max-width: 480px;
  margin-left: auto;
}

.footer-newsletter-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}

.foote-formv1 {
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(37, 99, 235, 0.22);
  border-radius: 10px;
  padding: 4px;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}

.foote-formv1:focus-within {
  border-color: var(--theme);
  background-color: rgba(37, 99, 235, 0.06);
}

.foote-formv1 input {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--white);
  padding: 12px 16px;
  font-size: 14px;
  outline: none;
}

.foote-formv1 input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.foote-formv1 button {
  width: 44px;
  height: 44px;
  min-width: 44px;
  background-color: var(--theme);
  border: none;
  border-radius: 7px;
  color: var(--white);
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.3s ease;
}

.foote-formv1 button:hover {
  background-color: #1d4fc7;
  transform: scale(1.04);
}

.foote-formv1 button i {
  color: var(--white);
}

.footer-newsletter-note {
  font-size: 12px;
  opacity: 0.7;
}

/* Footer-top divider */

.footer-top {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Footer widgets */

.footer-widgets {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.link-footer li {
  line-height: 1.4;
}

.flink-items {
  display: inline-block;
  color: rgba(255, 255, 255, 0.65);
  font-size: 14px;
  text-decoration: none;
  position: relative;
  padding-left: 0;
  transition: color 0.25s ease, padding-left 0.25s ease;
}

.flink-items::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 1px;
  background-color: var(--theme);
  transition: width 0.25s ease;
}

.flink-items:hover {
  color: var(--theme);
  padding-left: 16px;
}

.flink-items:hover::before {
  width: 10px;
}

/* Contact list */

.footer-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-contact-item {
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  text-decoration: none;
  transition: color 0.25s ease;
}

a.footer-contact-item:hover {
  color: var(--theme);
}

.footer-contact-icon {
  width: 36px;
  min-width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(37, 99, 235, 0.08);
  border: 1px solid rgba(37, 99, 235, 0.25);
  border-radius: 50%;
  color: var(--theme);
  font-size: 14px;
  transition: background-color 0.25s ease, border-color 0.25s ease;
}

a.footer-contact-item:hover .footer-contact-icon {
  background-color: var(--theme);
  border-color: var(--theme);
  color: var(--white);
}

/* Social row */

.footer-social {
  list-style: none;
  padding: 0;
}

.footer-social-link {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.footer-social-link:hover {
  background-color: var(--theme);
  border-color: var(--theme);
  color: var(--white);
  transform: translateY(-2px);
}

.footer-social-link i {
  font-size: 14px;
}

/* Bottom bar */

.footer-copy {
  font-size: 13px;
}

.footer-copy a {
  text-decoration: none;
  font-weight: 600;
}

.footer-legal-link {
  font-size: 13px;
  text-decoration: none;
  position: relative;
  transition: color 0.25s ease;
}

.footer-legal-link:hover {
  color: var(--theme);
}

.footer-legal li+li::before {
  content: "·";
  margin-right: 16px;
  color: rgba(255, 255, 255, 0.25);
}

.footer-legal {
  padding-left: 0;
}

/* Responsive tweaks */

@media (max-width: 991px) {
  .footer-newsletter {
    max-width: 100%;
    margin-left: 0;
  }

  .footer-tagline {
    max-width: 100%;
  }

  .footer-bottom {
    flex-direction: column;
    text-align: center;
    gap: 16px;
  }
}

@media (max-width: 575px) {
  .footer-logo-img {
    max-width: 180px;
  }

  .footer-newsletter-title {
    font-size: 18px;
  }
}

.trusted-inner img {
  filter: brightness(0) invert(1);
  height: 80px;
  width: auto;
  object-fit: contain;
}

.footer-widget {
  position: relative;
  z-index: 9;
}

@media (max-width: 991px) {
  .footer-version-one .row.justify-content-between>[class*="col-"] {
    padding-bottom: 48px;
  }

  .footer-version-one .row.justify-content-between>[class*="col-"]:last-child {
    padding-bottom: 0;
  }
}

@media (max-width: 575px) {
  .footer-version-one .row.justify-content-between>[class*="col-"] {
    padding-bottom: 56px;
  }
}

.expri-cont-item h6 {
  font-size: 32px;
}

.blog-widget-item h5 {
  font-size: 20px;
  line-height: 26px;
}

/* ==========================================================================
   Consultation Modal
   ========================================================================== */
.consultation-modal {
  --modal-bg: #111111;
  --modal-border: rgba(37, 99, 235, 0.22);
  --modal-input-bg: #1a1a1a;
  --modal-input-border: rgba(255, 255, 255, 0.08);
}

.consultation-modal .modal-dialog {
  max-width: 720px;
  margin: 1.75rem auto;
}

.consultation-modal .modal-content {
  background: linear-gradient(180deg, #111111 0%, #0c0c0c 100%);
  border: 1px solid var(--modal-border);
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(37, 99, 235, 0.06) inset;
  color: #ffffff;
  position: relative;
  overflow: hidden;
}

.consultation-modal .modal-content::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top right, rgba(37, 99, 235, 0.08), transparent 60%);
  pointer-events: none;
}

.consultation-modal .modal-close-btn {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--modal-border);
  background: #0f0f0f;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 2;
}

.consultation-modal .modal-close-btn:hover {
  background: #2563eb;
  color: #0a0a0a;
  transform: rotate(90deg);
}

.consultation-modal .modal-close-btn i {
  font-size: 16px;
}

.consultation-modal .modal-header {
  border-bottom: 1px solid var(--modal-input-border);
  padding: 40px 44px 28px;
  display: block;
}

.consultation-modal .modal-header-inner {
  max-width: 560px;
}

.consultation-modal .modal-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: -apple-system, Segoe UI, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #2563eb;
  text-transform: uppercase;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.1);
  border: 1px solid var(--modal-border);
  margin-bottom: 18px;
}

.consultation-modal .modal-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2563eb;
  box-shadow: 0 0 8px #2563eb;
  animation: modalDotPulse 2s ease-in-out infinite;
}

@keyframes modalDotPulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.4;
  }
}

.consultation-modal .modal-title {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.2;
  color: #ffffff;
  margin: 0 0 12px;
}

.consultation-modal .modal-subtitle {
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  max-width: 520px;
}

.consultation-modal .modal-body {
  padding: 28px 44px 32px;
  position: relative;
  z-index: 1;
}

.consultation-form .form-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.65);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 8px;
}

.consultation-form .required {
  color: #2563eb;
  margin-left: 2px;
}

.consultation-form .form-control,
.consultation-form .form-select {
  width: 100%;
  background: var(--modal-input-bg);
  border: 1px solid var(--modal-input-border);
  border-radius: 10px;
  color: #ffffff;
  font-size: 14px;
  font-family: inherit;
  padding: 13px 16px;
  transition: all 0.3s ease;
  box-shadow: none;
  outline: none;
}

.consultation-form .form-control::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.consultation-form .form-control:focus,
.consultation-form .form-select:focus {
  background: #1f1f1f;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.consultation-form .form-control:hover,
.consultation-form .form-select:hover {
  border-color: rgba(37, 99, 235, 0.4);
}

.consultation-form textarea.form-control {
  resize: vertical;
  min-height: 110px;
  line-height: 1.55;
}

.consultation-form .select-wrap {
  position: relative;
}

.consultation-form .form-select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  cursor: pointer;
  color-scheme: dark;
}

.consultation-form .form-select option {
  background: #1a1a1a;
  color: #ffffff;
}

.consultation-form .select-chevron {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #2563eb;
  pointer-events: none;
  font-size: 14px;
}

.consultation-form .consent-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: rgba(37, 99, 235, 0.04);
  border: 1px solid var(--modal-input-border);
  border-radius: 10px;
}

/* Old .consent-check rules superseded by the unified .contact-form/.consultation-form/.consultation-modal block further down. */

.consultation-form .consent-check .form-check-label {
  font-size: 12px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  margin: 0;
}

.consultation-form .form-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 6px;
}

.consultation-form .modal-submit {
  min-height: 52px;
}

.consultation-form .form-guarantee {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
}

.consultation-modal .modal-footer-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 20px 44px 32px;
  border-top: 1px solid var(--modal-input-border);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  position: relative;
  z-index: 1;
}

.consultation-modal .modal-footer-note .note-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.consultation-modal .modal-footer-note a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  transition: color 0.25s ease;
}

.consultation-modal .modal-footer-note a:hover {
  color: #2563eb;
}

.consultation-modal .modal-footer-note .note-sep {
  color: rgba(255, 255, 255, 0.25);
}

.modal-backdrop.show {
  opacity: 0.82;
  background: #000000;
}

@media (max-width: 767px) {
  .consultation-modal .modal-dialog {
    margin: 0.5rem;
    min-height: calc(100% - 1rem);
  }

  .consultation-modal .modal-dialog-centered {
    align-items: flex-start;
  }

  .consultation-modal .modal-content {
    border-radius: 16px;
  }

  .consultation-modal .modal-close-btn {
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
    background: #1a1a1a;
    border: 1.5px solid rgba(37, 99, 235, 0.45);
    z-index: 10;
  }

  .consultation-modal .modal-close-btn i {
    font-size: 18px;
  }

  .consultation-modal .modal-header {
    padding: 22px 68px 14px 20px;
  }

  .consultation-modal .modal-eyebrow {
    font-size: 9px;
    padding: 5px 10px;
    margin-bottom: 12px;
    letter-spacing: 1.5px;
    gap: 7px;
  }

  .consultation-modal .modal-eyebrow-dot {
    width: 5px;
    height: 5px;
  }

  .consultation-modal .modal-title {
    font-size: 20px;
    line-height: 1.25;
    margin-bottom: 8px;
  }

  .consultation-modal .modal-subtitle {
    font-size: 12px;
    line-height: 1.5;
    margin: 0;
  }

  .consultation-modal .modal-body {
    padding: 16px 20px 20px;
  }

  .consultation-form .row {
    --bs-gutter-y: 0.85rem;
  }

  .consultation-form .form-label {
    font-size: 10px;
    letter-spacing: 0.6px;
    margin-bottom: 6px;
  }

  .consultation-form .form-control,
  .consultation-form .form-select {
    padding: 11px 14px;
    font-size: 13px;
    border-radius: 8px;
  }

  .consultation-form textarea.form-control {
    min-height: 88px;
    line-height: 1.5;
  }

  .consultation-form .consent-check {
    padding: 10px 12px;
    gap: 10px;
  }

  .consultation-form .consent-check .form-check-label {
    font-size: 11px;
    line-height: 1.5;
  }

  .consultation-form .form-footer {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: 12px;
  }

  .consultation-form .modal-submit {
    justify-content: center;
    min-height: 48px;
  }

  .consultation-form .form-guarantee {
    justify-content: center;
    font-size: 11px;
  }

  .consultation-modal .modal-footer-note {
    padding: 14px 20px 18px;
    gap: 4px 10px;
    font-size: 11px;
  }

  .consultation-modal .modal-footer-note .note-sep {
    display: none;
  }
}

/* ==========================================================================
   Consultation Modal - nice-select dark override + header stacking fix
   ========================================================================== */

/* Lower the site header z-index while modal is open so the close button isn't covered */
body.modal-open .header-section,
body.modal-open .cmn-fixed {
  z-index: 0 !important;
}

/* Dark theme for nice-select inside the consultation modal */
.consultation-modal .select-wrap,
.contact-form .select-wrap {
  width: 100%;
}

.consultation-modal .select-wrap .nice-select,
.contact-form .select-wrap .nice-select {
  width: 100%;
  float: none;
  display: block;
  background-color: rgba(255, 255, 255, 0.02) !important;
  background-image: none !important;
  /* kill Bootstrap form-select chevron — nice-select uses ::after */
  border: 1px solid var(--border1) !important;
  border-radius: 8px;
  color: #ffffff;
  font-size: 15px;
  font-family: inherit;
  height: auto;
  min-height: 52px;
  padding: 14px 44px 14px 18px;
  line-height: 1.4;
  transition: all 0.3s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.consultation-modal .select-wrap .nice-select:hover,
.contact-form .select-wrap .nice-select:hover {
  border-color: rgba(37, 99, 235, 0.4) !important;
}

.consultation-modal .select-wrap .nice-select.open,
.consultation-modal .select-wrap .nice-select:focus,
.contact-form .select-wrap .nice-select.open,
.contact-form .select-wrap .nice-select:focus {
  border-color: var(--theme) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
  background-color: rgba(37, 99, 235, 0.04) !important;
}

/* Custom theme-blue chevron, replaces nice-select's default arrow */
.consultation-modal .select-wrap .nice-select::after,
.contact-form .select-wrap .nice-select::after {
  border-bottom-color: var(--theme);
  border-right-color: var(--theme);
  width: 8px;
  height: 8px;
  right: 20px;
  margin-top: -6px;
  transition: transform 0.25s ease;
}

.consultation-modal .select-wrap .nice-select .current,
.contact-form .select-wrap .nice-select .current {
  display: block;
  color: #ffffff;
  font-size: 15px;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.consultation-modal .select-wrap .nice-select .list,
.contact-form .select-wrap .nice-select .list {
  background-color: #141414 !important;
  border: 1px solid rgba(37, 99, 235, 0.35);
  border-radius: 10px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(37, 99, 235, 0.08) inset;
  width: 100%;
  left: 0;
  right: 0;
  margin-top: 6px;
  padding: 6px 0;
  max-height: 260px;
  overflow-y: auto;
}

.consultation-modal .select-wrap .nice-select .option,
.contact-form .select-wrap .nice-select .option {
  color: rgba(255, 255, 255, 0.75);
  background-color: transparent !important;
  font-size: 14px;
  line-height: 1.4;
  min-height: auto;
  padding: 12px 18px;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.consultation-modal .select-wrap .nice-select .option:last-child,
.contact-form .select-wrap .nice-select .option:last-child {
  border-bottom: none;
}

.consultation-modal .select-wrap .nice-select .option:hover,
.consultation-modal .select-wrap .nice-select .option.focus,
.consultation-modal .select-wrap .nice-select .option.selected.focus,
.contact-form .select-wrap .nice-select .option:hover,
.contact-form .select-wrap .nice-select .option.focus,
.contact-form .select-wrap .nice-select .option.selected.focus {
  background-color: rgba(37, 99, 235, 0.12) !important;
  color: #ffffff;
}

.consultation-modal .select-wrap .nice-select .option.selected,
.contact-form .select-wrap .nice-select .option.selected {
  color: var(--theme);
  font-weight: 600;
}

.consultation-modal .select-wrap .nice-select .option.disabled,
.contact-form .select-wrap .nice-select .option.disabled {
  color: rgba(255, 255, 255, 0.3);
  background-color: transparent !important;
}

/* ==========================================================================
   Extend the same dark nice-select styling to the Quick-Connect widget
   (`.cn-cb-modal .select-wrap .nice-select`). Same visual language as
   `.contact-form` and `.consultation-modal`, so the topic selects inside
   the widget's Call / Schedule / Message tabs look identical.
   ========================================================================== */

.cn-cb-modal .select-wrap {
  width: 100%;
}

.cn-cb-modal .select-wrap .nice-select {
  width: 100%;
  float: none;
  display: block;
  background-color: rgba(255, 255, 255, 0.06) !important;
  background-image: none !important;
  border: 1.5px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 10px;
  color: #ffffff;
  font-size: 15px;
  font-family: inherit;
  height: auto;
  min-height: 48px;
  padding: 12px 40px 12px 14px;
  line-height: 1.4;
  transition: all 0.25s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box;
}

.cn-cb-modal .select-wrap .nice-select:hover {
  border-color: rgba(37, 99, 235, 0.4) !important;
}

.cn-cb-modal .select-wrap .nice-select.open,
.cn-cb-modal .select-wrap .nice-select:focus {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
  background-color: rgba(255, 255, 255, 0.09) !important;
}

.cn-cb-modal .select-wrap .nice-select::after {
  border-bottom-color: #2563eb;
  border-right-color: #2563eb;
  width: 8px;
  height: 8px;
  right: 18px;
  margin-top: -6px;
  transition: transform 0.25s ease;
}

.cn-cb-modal .select-wrap .nice-select .current {
  display: block;
  color: #ffffff;
  font-size: 15px;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cn-cb-modal .select-wrap .nice-select .list {
  background-color: #141414 !important;
  border: 1px solid rgba(37, 99, 235, 0.35);
  border-radius: 10px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(37, 99, 235, 0.08) inset;
  width: 100%;
  left: 0;
  right: 0;
  margin-top: 6px;
  padding: 6px 0;
  max-height: 240px;
  overflow-y: auto;
}

.cn-cb-modal .select-wrap .nice-select .option {
  color: rgba(255, 255, 255, 0.75);
  background-color: transparent !important;
  font-size: 14px;
  line-height: 1.4;
  min-height: auto;
  padding: 12px 18px;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.cn-cb-modal .select-wrap .nice-select .option:last-child {
  border-bottom: none;
}

.cn-cb-modal .select-wrap .nice-select .option:hover,
.cn-cb-modal .select-wrap .nice-select .option.focus,
.cn-cb-modal .select-wrap .nice-select .option.selected.focus {
  background-color: rgba(37, 99, 235, 0.12) !important;
  color: #ffffff;
}

.cn-cb-modal .select-wrap .nice-select .option.selected {
  color: #2563eb;
  font-weight: 600;
}

/* Mobile: hide the footer note strip so the form has more room and the close button isn't crowded */
@media (max-width: 767px) {
  .consultation-modal .modal-footer-note {
    display: none;
  }

  .consultation-modal .select-wrap .nice-select {
    min-height: 44px;
    padding: 10px 40px 10px 14px;
    font-size: 13px;
  }

  .consultation-modal .select-wrap .nice-select .current {
    font-size: 13px;
  }

  .consultation-modal .select-wrap .nice-select .option {
    font-size: 12px;
    padding: 10px 16px;
  }
}

/* ============================================
   About Page — Card components
   ============================================ */

.radius20 {
  border-radius: 20px;
}

.expertise-card,
.qual-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

.expertise-card:hover,
.qual-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.qual-card .spantext-clr {
  letter-spacing: 1.5px;
  font-size: 12px;
}

.cta-strip {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(37, 99, 235, 0));
}

.cta-strip:hover {
  border-color: var(--theme) !important;
}

/* About Page — My Approach numbered steps */

.approach-list {
  position: relative;
}

.approach-step {
  transition: background-color 0.3s ease;
}

.approach-step:hover {
  background-color: rgba(37, 99, 235, 0.04);
}

.approach-num {
  width: 64px;
  min-width: 64px;
  height: 64px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.5px;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.approach-step:hover .approach-num {
  background-color: var(--theme);
  color: var(--white);
  border-color: var(--theme) !important;
}

@media (max-width: 767px) {
  .approach-num {
    width: 52px;
    min-width: 52px;
    height: 52px;
    font-size: 16px;
  }
}

/* About Page — Track Record stats strip */

.track-record-wrap {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.05), rgba(37, 99, 235, 0));
  transition: border-color 0.3s ease;
}

.track-record-wrap:hover {
  border-color: var(--theme) !important;
}

.track-stat h3 {
  font-size: 44px;
  line-height: 1;
}

@media (max-width: 991px) {
  .track-stat h3 {
    font-size: 36px;
  }
}

/* About Page — Selected Engagements cards */

.engagement-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.engagement-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.engagement-logo img {
  max-height: 32px;
  max-width: 120px;
  width: auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

.engagement-year {
  font-size: 13px;
  letter-spacing: 1px;
}

/* ============================================
   Inner Pages — shared components
   ============================================ */

/* Contact icons + cards */

.contact-info-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.contact-info-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.contact-info-card .contact-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid var(--border1);
  font-size: 22px;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.contact-info-card:hover .contact-icon {
  background-color: rgba(37, 99, 235, 0.12);
  border-color: var(--theme);
}

.contact-info-card a.pras {
  transition: color 0.3s ease;
  text-decoration: none;
}

.contact-info-card a.pras:hover {
  color: var(--theme);
}

/* Booking + message blocks */

.booking-block,
.message-block {
  background-color: var(--bg1);
}

.booking-label {
  letter-spacing: 2px;
  font-size: 12px;
}

/* Contact form fields */

.contact-form input,
.contact-form textarea,
.contact-form select,
.contact-form .form-select {
  width: 100%;
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border1);
  border-radius: 8px;
  padding: 14px 18px;
  color: var(--white);
  font-size: 15px;
  font-family: inherit;
  transition: border-color 0.3s ease, background-color 0.3s ease;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

/* nice-select takes over UI for selects in .contact-form (and elsewhere) —
   hide the native <select> so its own browser chevron + Bootstrap's chevron
   image don't bleed through alongside the styled nice-select div. */
.contact-form .select-wrap select,
.contact-form .select-wrap select.form-select {
  display: none !important;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus,
.contact-form .form-select:focus {
  outline: none;
  border-color: var(--theme);
  background-color: rgba(37, 99, 235, 0.04);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

/* Native option list — restyle for dark theme (Firefox/Chrome support this) */
.contact-form select option,
.contact-form .form-select option {
  background-color: #141414;
  color: var(--white);
  padding: 12px 16px;
}

/* Hide the wrapper's positioning context — not needed for plain selects */
.contact-form .select-wrap {
  position: relative;
}

.contact-form textarea {
  resize: vertical;
  min-height: 120px;
}

/* ============================================
   Dark-theme checkbox (consent + opt-ins)
   ============================================ */

.contact-form .form-check,
.consultation-form .form-check,
.consultation-modal .form-check {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  min-height: auto;
}

/* Consent-check container — gives the checkbox + label a visible bordered box
   with proper internal padding on all sides (16px sides, 14px top/bottom). */
.contact-form .consent-check,
.consultation-form .consent-check,
.consultation-modal .consent-check {
  padding: 14px 16px;
  background: rgba(37, 99, 235, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}

.contact-form .form-check-input,
.consultation-form .form-check-input,
.consultation-modal .form-check-input {
  background-color: rgba(255, 255, 255, 0.04) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.28) !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  margin: 2px 0 0 !important;
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
  float: none;
  appearance: none;
  -webkit-appearance: none;
  background-image: none;
  box-shadow: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form .form-check-input:hover,
.consultation-form .form-check-input:hover,
.consultation-modal .form-check-input:hover {
  border-color: rgba(37, 99, 235, 0.6) !important;
  background-color: rgba(37, 99, 235, 0.06) !important;
}

.contact-form .form-check-input:focus,
.consultation-form .form-check-input:focus,
.consultation-modal .form-check-input:focus,
.contact-form .form-check-input:focus-visible,
.consultation-form .form-check-input:focus-visible,
.consultation-modal .form-check-input:focus-visible {
  outline: none;
  border-color: var(--theme) !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15) !important;
}

.contact-form .form-check-input:checked,
.consultation-form .form-check-input:checked,
.consultation-modal .form-check-input:checked {
  background-color: var(--theme) !important;
  border-color: var(--theme) !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23ffffff'%3E%3Cpath d='M7.629 14.571L3.343 10.286l1.414-1.415L7.629 11.743l7.614-7.614 1.414 1.414z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 10px 10px;
}

.contact-form .form-check-label,
.consultation-form .form-check-label,
.consultation-modal .form-check-label {
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  line-height: 1.55;
  cursor: pointer;
  font-weight: 400;
  letter-spacing: 0.1px;
  padding-top: 1px;
}

.contact-form .form-check-label:hover,
.consultation-form .form-check-label:hover,
.consultation-modal .form-check-label:hover {
  color: var(--white);
}

/* Location strip */

.location-strip {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.05), rgba(37, 99, 235, 0));
  transition: border-color 0.3s ease;
}

.location-strip:hover {
  border-color: var(--theme) !important;
}

.location-pin {
  width: 56px;
  min-width: 56px;
  height: 56px;
  font-size: 22px;
}

/* Process page — model cards & icons */

.model-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.model-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.model-icon {
  width: 56px;
  min-width: 56px;
  height: 56px;
  font-size: 22px;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.model-card:hover .model-icon {
  background-color: var(--theme);
  color: var(--white) !important;
  border-color: var(--theme) !important;
}

/* Resources page — tool cards & icons */

.tool-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.tool-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.tool-icon {
  width: 52px;
  min-width: 52px;
  height: 52px;
  font-size: 20px;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.tool-card:hover .tool-icon {
  background-color: var(--theme);
  color: var(--white) !important;
  border-color: var(--theme) !important;
}

/* Process page — small tags inside steps */

.small-tag {
  font-size: 13px !important;
  letter-spacing: 0.8px;
}

/* Hero kicker line above the H1 */
.hero-kicker {
  letter-spacing: 2px;
  font-size: 12px;
}

/* Hero lead paragraph */
.hero-lead {
  max-width: 720px;
  font-size: 18px;
  line-height: 1.6;
  opacity: 0.85;
}

/* "24-hour response guaranteed" inline note next to primary CTA */
.hero-response-note {
  color: rgba(255, 255, 255, 0.55);
  font-size: 14px;
  font-weight: 400;
}

.hero-response-note i {
  color: var(--theme);
  font-size: 16px;
}

@media (max-width: 991px) {
  .hero-lead {
    font-size: 16px;
  }
}

/* ============================================
   About page — "My Story" hero photo
   ============================================ */

.about-product-photo {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 30px 60px -20px rgba(0, 0, 0, 0.6),
    0 12px 24px -10px rgba(0, 0, 0, 0.4);
}

.about-product-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(10, 10, 10, 0.35) 100%);
  pointer-events: none;
  z-index: 1;
}

.about-product-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  padding: 1px;
  background: linear-gradient(145deg, rgba(37, 99, 235, 0.35), rgba(37, 99, 235, 0) 50%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 2;
}

.about-product-photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* ============================================
   Homepage About Snap — Signature Card
   ============================================ */

@media (min-width: 992px) {
  .sticky-content {
    position: sticky;
    top: 100px;
    height: auto;
    align-self: flex-start;
  }
}

.signature-card {
  background: linear-gradient(145deg, rgba(20, 20, 20, 0.6) 0%, rgba(15, 15, 15, 0.6) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.5);
}

/* Decorative blue glow orb top-right */
.signature-glow {
  position: absolute;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.18), transparent 70%);
  top: -120px;
  right: -120px;
  filter: blur(40px);
  pointer-events: none;
  z-index: 0;
}

.signature-card>*:not(.signature-glow) {
  position: relative;
  z-index: 1;
}

.signature-hero-photo {
  width: 100%;
  overflow: clip;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.18), rgba(37, 99, 235, 0.04));
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  margin: 0;
}

.signature-hero-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 5%;
  display: block;
  margin: 0;
}

/* Soft gradient overlay along the bottom of the photo so name area blends in */
.signature-hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(15, 15, 15, 0.6) 100%);
  pointer-events: none;
}

/* Status dot floats top-right of the hero photo */
.signature-hero-photo .signature-status {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 2;
}

.signature-status {
  width: 12px;
  height: 12px;
  background-color: #10b981;
  border: 2px solid rgba(15, 15, 15, 0.9);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.3), 0 4px 10px rgba(0, 0, 0, 0.4);
  animation: signature-pulse 2s ease-in-out infinite;
}

@keyframes signature-pulse {

  0%,
  100% {
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.25);
  }

  50% {
    box-shadow: 0 0 0 7px rgba(16, 185, 129, 0);
  }
}

/* Tighter padding inside the signature card sub-blocks */
.signature-identity {
  padding: 18px 20px !important;
}

.signature-stat {
  padding: 14px 20px !important;
  gap: 16px !important;
}

.signature-contact {
  padding: 14px 20px !important;
  gap: 8px !important;
}

.signature-name {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-transform: none;
  line-height: 1.2;
}

.signature-role {
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
  font-weight: 500;
}

.signature-loc {
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  font-weight: 400;
}

.signature-loc i {
  color: var(--theme);
  font-size: 12px;
}

/* Dividers */
.signature-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
}

/* Stat rows */
.signature-stat {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  transition: background-color 0.25s ease;
}

.signature-stat:last-child {
  border-bottom: none;
}

.signature-stat:hover {
  background-color: rgba(37, 99, 235, 0.04);
}

.signature-stat-num {
  font-size: 24px;
  font-weight: 700;
  color: var(--white);
  line-height: 1;
  letter-spacing: -0.02em;
  min-width: 60px;
  background: linear-gradient(135deg, #ffffff 0%, rgba(255, 255, 255, 0.6) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.signature-stat-label {
  color: var(--white);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 1px;
}

.signature-stat-sub {
  color: rgba(255, 255, 255, 0.45);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.2px;
}

.signature-stat-icon {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(37, 99, 235, 0.1);
  border: 1px solid rgba(37, 99, 235, 0.2);
  color: var(--theme);
  font-size: 13px;
  flex-shrink: 0;
  transition: background-color 0.25s ease, transform 0.25s ease;
}

.signature-stat:hover .signature-stat-icon {
  background-color: rgba(37, 99, 235, 0.2);
  transform: scale(1.08);
}

/* Contact row */
.signature-contact {
  background-color: rgba(255, 255, 255, 0.02);
}

.signature-link {
  color: rgba(255, 255, 255, 0.75);
  font-size: 11.5px;
  font-weight: 500;
  text-decoration: none;
  letter-spacing: 0.2px;
  padding: 6px 12px;
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 100px;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.signature-link i {
  color: var(--theme);
  font-size: 14px;
}

.signature-link:hover {
  color: var(--white);
  background-color: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.3);
}

/* Responsive */
@media (max-width: 991px) {
  .signature-name {
    font-size: 20px;
  }

  .signature-stat-num {
    font-size: 28px;
    min-width: 68px;
  }

  .signature-stat-icon {
    width: 36px;
    height: 36px;
    font-size: 14px;
  }

  .signature-contact {
    justify-content: flex-start !important;
  }

  .signature-link {
    margin-left: 0 !important;
  }
}

@media (max-width: 575px) {

  .signature-stat {
    flex-wrap: wrap;
  }

  .signature-stat-icon {
    margin-left: auto;
  }
}

/* "View My Experience →" secondary link in the hero CTA row */
.hero-secondary-link {
  text-decoration: none;
  transition: color 0.25s ease, transform 0.25s ease;
}

.hero-secondary-link:hover {
  color: var(--white);
}

.hero-secondary-link:hover .rot60 {
  transform: rotate(90deg);
}

/* Service card icon — circular badge */
.service-card-icon {
  width: 56px;
  min-width: 56px;
  height: 56px;
  font-size: 22px;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.service-card:hover .service-card-icon {
  background-color: var(--theme);
  color: var(--white) !important;
  border-color: var(--theme) !important;
}

/* "Proven at: X · Y · Z" line at bottom of service cards */
.service-card-proof {
  font-size: 12px;
  letter-spacing: 0.4px;
}

/* Process step cards (4-up grid on homepage) */
.process-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.process-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.process-card .approach-num {
  width: 52px;
  min-width: 52px;
  height: 52px;
  font-size: 18px;
}

/* Tools / platforms framed container */
.tools-strip {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06), rgba(37, 99, 235, 0));
}

/* Tools logo grid */
.tool-logo-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 16px;
}

.tool-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  padding: 6px 10px;
  background-color: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.tool-logo-item:hover {
  background-color: #ffffff;
  border-color: rgba(37, 99, 235, 0.35);
  transform: translateY(-2px);
}

.tool-logo-item img {
  max-width: 100%;
  max-height: 36px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1) brightness(0) invert(1);
  opacity: 0.55;
  transition: opacity 0.3s ease, filter 0.3s ease;
}

.tool-logo-item:hover img {
  filter: none;
  opacity: 1;
}

@media (max-width: 1399px) {
  .tool-logo-grid {
    grid-template-columns: repeat(6, 1fr);
  }
}

@media (max-width: 991px) {
  .tool-logo-grid {
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
  }

  .tool-logo-item {
    height: 56px;
    padding: 8px 10px;
  }

  .tool-logo-item img {
    max-height: 30px;
  }
}

@media (max-width: 575px) {
  .tool-logo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* CTA strip contact line (final homepage CTA) */
.cta-contact-line {
  font-size: 14px;
}

.cta-contact-line a {
  text-decoration: none;
  font-weight: 600;
}

/* Featured case card (the big 50+ markets one with thumb left + body right) */
.case-card-featured .case-card-thumb {
  background-color: var(--bg1);
  overflow: hidden;
  height: 100%;
  min-height: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.case-card-featured .case-card-thumb img {
  width: 100%;
  height: auto;
  max-height: none;
}

@media (max-width: 991px) {
  .case-card-featured .case-card-thumb {
    min-height: 240px;
  }
}

/* ============================================
   Case Studies + Services — card layouts
   ============================================ */

/* Card link wrapper — remove default <a> styling */
.case-card-link,
.service-card-link {
  text-decoration: none;
  color: inherit;
}

/* Case study list cards */
.case-card,
.service-card {
  background-color: var(--bg1);
  overflow: hidden;
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.case-card:hover,
.service-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.case-card-thumb,
.service-card-thumb {
  overflow: hidden;
}

.case-card-thumb img,
.service-card-thumb img {
  display: block;
  transition: transform 0.5s ease;
}

.case-card:hover .case-card-thumb img,
.service-card:hover .service-card-thumb img {
  transform: scale(1.03);
}

/* Stats row inside case cards */
.case-card-stats>div {
  border-left: 1px solid var(--border1);
  padding-left: 16px;
}

.case-card-stats>div:first-child {
  border-left: none;
  padding-left: 0;
}

.case-stat-num {
  font-size: 22px;
  line-height: 1.1;
}

.case-stat-label {
  font-size: 11px;
  letter-spacing: 0.5px;
}

@media (max-width: 575px) {
  .case-stat-num {
    font-size: 18px;
  }

  .case-card-stats>div {
    padding-left: 10px;
  }
}

/* Case study detail page */

.case-detail-hero img,
.service-detail-hero img {
  border-radius: 20px;
}

.case-section-label h3 {
  margin-bottom: 0;
}

.case-result-stat,
.pricing-summary-card {
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.case-result-stat:hover,
.pricing-summary-card:hover {
  border-color: var(--theme) !important;
  transform: translateY(-4px);
}

.case-result-stat h3,
.pricing-summary-card h3 {
  font-size: 38px;
  line-height: 1.05;
}

@media (max-width: 991px) {

  .case-result-stat h3,
  .pricing-summary-card h3 {
    font-size: 30px;
  }
}

/* "Why it worked" lessons block + investment block */

.lessons-block,
.investment-block {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06), rgba(37, 99, 235, 0));
  transition: border-color 0.3s ease;
}

.lessons-block:hover,
.investment-block:hover {
  border-color: var(--theme) !important;
}

/* Next/prev case navigation cards */

.case-nav-link {
  text-decoration: none;
  background-color: var(--bg1);
  transition: border-color 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

.case-nav-link:hover {
  border-color: var(--theme) !important;
  transform: translateY(-3px);
}

/* ============================================
   Responsive audit overrides (added in audit pass)
   ============================================
   Targeted fixes for layout issues found at 1200 / 991 / 767 / 575px.
   Override-only — does not refactor existing rules. */

/* ---- Global typography tightening on small phones ---- */
@media (max-width: 575px) {
  h1 {
    font-size: 36px;
    line-height: 110%;
  }

  h2 {
    font-size: 30px;
    line-height: 120%;
  }

  h3 {
    font-size: 24px;
  }

  h4 {
    font-size: 19px;
  }

  /* Section vertical rhythm pulled tighter on small phones */
  .pt-space {
    padding-top: 56px;
  }

  .pb-space {
    padding-bottom: 56px;
  }

  /* Prevent very long unbroken tokens (URLs, emails, big numbers, em-dash chains)
     from forcing horizontal overflow inside narrow cards. */
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* ---- Insights / blog card meta row: chip + "COMING SOON" needs to wrap ---- */
/* The .blog-cont meta row uses d-flex without flex-wrap — at col-lg-4 the long
   chip + status badge can overflow at 991-1399. Force wrap and a small row-gap. */
.blog-widget-item .blog-cont .d-flex.align-items-center {
  flex-wrap: wrap;
  row-gap: 6px;
}

/* ---- Hero experience pill: full normalisation below 992 ---- */
/* At 1199-991 it sits at fixed 500/350px wide & absolute positioned which can
   collide with hero content. Cap width and ensure it never overflows. */
@media (max-width: 1199px) {
  .hero-section-version1 .hero-expriencebox {
    max-width: calc(100vw - 40px);
  }
}

/* ---- Signature card (homepage about) ---- */
/* Trim heavy p-5 (3rem) on narrow phones — gives content more breathing room. */
@media (max-width: 575px) {

  .signature-card .signature-identity,
  .signature-card .signature-stat,
  .signature-card .signature-contact {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  /* Ensure the £35K + label + icon row never tries to push beyond 100% */
  .signature-stat {
    column-gap: 12px !important;
  }

  .signature-stat-num {
    font-size: 24px;
    min-width: 60px;
  }
}

/* ---- Service / case card body: reduce padding step on small phones ---- */
@media (max-width: 575px) {

  .service-card .p-xxl-6.p-5,
  .case-card .case-card-body.p-5,
  .case-card-body.p-5,
  .blog-widget-item {
    padding: 1.25rem !important;
  }

  /* allow the case-card-stats row to wrap and never overflow */
  .case-card-stats {
    column-gap: 14px !important;
    row-gap: 12px !important;
  }
}

/* ---- Breadcrumb pill (Home › Section › Page) on inner pages ---- */
/* The d-inline-flex breadcrumb on detail pages overflows at <420px because
   the rounded pill never wraps. Force wrap and shrink padding on small. */
.breadcrumnd {
  flex-wrap: wrap;
  justify-content: center;
  max-width: 100%;
}

@media (max-width: 575px) {
  .breadcrumnd {
    row-gap: 4px;
    padding: 8px 14px !important;
  }

  .breadcrumnd li {
    font-size: 13px;
  }
}

/* ---- CTA banner / CTA strip: trim padding on small phones ---- */
/* Case-detail .cta-banner has px-4 base — keep that, but make sure padding
   doesn't crush content; also the homepage .cta-strip uses py-xxl-12 px-xxl-12
   with px-5 base which is heavy on phones. */
@media (max-width: 575px) {

  .cta-banner.px-4,
  .cta-banner {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  .cta-strip,
  section.cta-strip {
    padding: 36px 18px !important;
  }
}

/* ---- Service-detail / case-detail hero thumbs ----
   Several pages have inline `style="background:#ffffff; padding:20px;"`
   or `padding:24px;`. Reduce that visually on phones via class hooks. */
@media (max-width: 575px) {

  .service-overview-thumb,
  .case-hero-thumb {
    padding: 12px !important;
  }
}

/* ---- Case-detail "Challenge" paragraph inline font-size override ----
   Six case-study pages set `style="font-size: 17px; line-height: 1.7;"` inline
   which bypasses the responsive type scale. Pull it back on phones. */
@media (max-width: 575px) {

  .cmn-border.radius20 p[style*="font-size: 17px"],
  .cmn-border.radius20 p[style*="font-size:17px"] {
    font-size: 15px !important;
    line-height: 1.6 !important;
  }
}

/* ---- Case-detail "What I Did" approach-num inline ----
   All case-study pages set inline `style="width:48px;height:48px;"` on the
   numbered badge. Keep it but shrink slightly on very small phones so the
   text column has room. */
@media (max-width: 400px) {
  .case-action-card .approach-num[style*="width:48px"] {
    width: 40px !important;
    height: 40px !important;
    font-size: 14px;
  }
}

/* ---- Engagement / role card date stamp ---- */
/* The role-date "Nov 2025 — Present" pill in experience.php and the
   "Service 04 · SEO from £500/mo · Google Ads from £400/mo + spend"
   booking-label can overflow on narrow widths. Allow wrap. */
.role-date,
.booking-label {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* ---- Service pricing row (col-md-7 / col-md-5) on service-detail pages ---- */
/* Below md the right-aligned price text becomes left-aligned via Bootstrap
   default, but the price string is long. Add explicit text alignment + word-break
   so the long string wraps cleanly. */
.service-card-link+*,
section .cmn-border.radius20 .col-md-5 .theme-clr.h4 {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 767px) {

  section .cmn-border.radius20 .col-md-5.text-md-end {
    text-align: left !important;
    margin-top: 8px;
  }
}

/* ---- Tool logo grid: ensure items never get below ~88px wide
   (8 cols at 1200 with 16px gap = ~127px each — ok; at 5 cols below 992
   and 3 cols below 576 ok; this is a defensive minimum for <360px). */
@media (max-width: 360px) {
  .tool-logo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ---- Hero CTA wrap response-note: stack note under button on small phones ---- */
@media (max-width: 575px) {

  .hero-cta-wrap .hero-response-note {
    width: 100%;
    margin-top: 4px;
    font-size: 13px;
  }
}

/* ---- Contact / signature-card phone link wraps cleanly ---- */
.signature-link {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* ---- Touch target hardening for small interactive pill chips on mobile ---- */
@media (max-width: 575px) {

  .radius-btn.py-1,
  .radius-btn.py-2 {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
  }

  .touch-btn,
  .cmn-btn {
    min-height: 44px;
  }
}

/* ---- Case-card-stats num size for narrow phones ---- */
@media (max-width: 400px) {

  .case-stat-num {
    font-size: 17px;
  }

  .case-stat-label {
    font-size: 10px;
  }
}

@media (max-width: 575px) {
  .booking-label {
    font-size: 11px;
    letter-spacing: 0.4px;
    line-height: 1.4;
  }
}

.blog-widget-item .blog-cont h5 a {
  overflow-wrap: anywhere;
}

/* ============================================
   Blog post — Table of contents sidebar
   ============================================ */

@media (min-width: 992px) {
  .blog-toc {
    position: sticky;
    top: 100px;
    height: auto;
    align-self: flex-start;
  }
}

.blog-toc-inner {
  background-color: var(--bg1);
  border: 1px solid var(--border1);
  border-radius: 12px;
  padding: 22px 18px;
}

.blog-toc-eyebrow {
  font-size: 10px;
  letter-spacing: 2.5px;
  font-weight: 700;
  color: var(--theme);
  text-transform: uppercase;
  display: block;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.blog-toc-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.blog-toc-nav li {
  margin: 0;
}

.blog-toc-nav a {
  display: block;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12.5px;
  line-height: 1.4;
  text-decoration: none;
  padding: 7px 12px;
  border-left: 2px solid transparent;
  margin-left: -2px;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.blog-toc-nav a:hover {
  color: var(--white);
  background-color: rgba(37, 99, 235, 0.06);
}

.blog-toc-nav a.is-active {
  color: var(--white);
  border-left-color: var(--theme);
  background-color: rgba(37, 99, 235, 0.08);
  font-weight: 500;
}

/* h3-level TOC links — indented slightly so hierarchy is visible */
.blog-toc-nav a.blog-toc-sub {
  padding-left: 22px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
}

.blog-toc-nav a.blog-toc-sub:hover {
  color: var(--white);
}

.blog-toc-nav a.blog-toc-sub.is-active {
  color: var(--white);
}

/* Smooth scroll offset so anchors land below the sticky header */
.article-body h2[id],
.article-body h3[id] {
  scroll-margin-top: 100px;
}

/* TOC custom scrollbar */
.blog-toc::-webkit-scrollbar {
  width: 4px;
}

.blog-toc::-webkit-scrollbar-thumb {
  background: rgba(37, 99, 235, 0.3);
  border-radius: 2px;
}

.blog-toc::-webkit-scrollbar-track {
  background: transparent;
}

.logo-img {
  width: 230px !important;
}

/* ============================================
   Blog FAQ — dark theme Bootstrap 5 accordion
   ============================================ */

.blog-faq-accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: var(--border1);
  --bs-accordion-border-radius: 12px;
  --bs-accordion-inner-border-radius: 12px;
  background: transparent;
}

.blog-faq-accordion .accordion-item {
  background-color: transparent;
  border: 1px solid var(--border1);
  border-radius: 12px !important;
  margin-bottom: 12px;
  overflow: hidden;
}

.blog-faq-accordion .accordion-item:last-child {
  margin-bottom: 0;
}

.blog-faq-accordion .accordion-header {
  margin: 0;
}

.blog-faq-accordion .accordion-button {
  background-color: transparent !important;
  color: var(--white) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  padding: 18px 22px;
  border: none !important;
  box-shadow: none !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.blog-faq-accordion .accordion-button:hover {
  background-color: rgba(37, 99, 235, 0.04) !important;
  color: var(--theme) !important;
}

.blog-faq-accordion .accordion-button:not(.collapsed) {
  background-color: rgba(37, 99, 235, 0.08) !important;
  color: var(--theme) !important;
  box-shadow: inset 0 -1px 0 var(--border1) !important;
}

.blog-faq-accordion .accordion-button:focus {
  outline: none;
  box-shadow: none !important;
}

/* Replace the default white Bootstrap chevron with a theme-blue one */
.blog-faq-accordion .accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232563eb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  background-size: 14px;
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.blog-faq-accordion .accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232563eb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  transform: rotate(180deg);
}

.blog-faq-accordion .accordion-body {
  padding: 18px 22px 22px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  line-height: 1.65;
  background-color: rgba(37, 99, 235, 0.02);
}

.how-work-section {
  position: relative;
}

/* Atmospheric blue radial glow behind the timeline */
.how-work-bg-orb {
  position: absolute;
  width: 800px;
  height: 800px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.08), transparent 60%);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -40%);
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
}

.journey-timeline {
  position: relative;
}

.journey-track {
  position: absolute;
  top: 20px;
  left: 12.5%;
  right: 12.5%;
  height: 64px;
  display: flex;
  align-items: center;
  z-index: 0;
  pointer-events: none;
}

.journey-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: linear-gradient(90deg,
      transparent 0%,
      rgba(37, 99, 235, 0.4) 8%,
      rgba(37, 99, 235, 0.4) 92%,
      transparent 100%);
}

.journey-track-fill {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: linear-gradient(90deg,
      rgba(37, 99, 235, 0) 0%,
      rgba(37, 99, 235, 0.8) 50%,
      rgba(37, 99, 235, 0) 100%);
  background-size: 200% 100%;
  animation: journey-flow 4s linear infinite;
}

@keyframes journey-flow {
  from {
    background-position: 200% 0;
  }

  to {
    background-position: -200% 0;
  }
}

.journey-track-pulse {
  position: absolute;
  top: 50%;
  left: 0;
  width: 12px;
  height: 12px;
  background-color: var(--theme);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.25), 0 0 16px rgba(37, 99, 235, 0.6);
  animation: journey-pulse-travel 6s ease-in-out infinite;
}

@keyframes journey-pulse-travel {
  0% {
    left: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    left: 100%;
    opacity: 0;
  }
}

/* Each step container */
.journey-step {
  position: relative;
  text-align: center;
}

/* The circular "stop" node sitting on the track */
.journey-step-node {
  position: relative;
  width: 64px;
  height: 64px;
  margin: 0 auto 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 0 0 4px rgba(15, 15, 15, 1),
    0 0 0 6px rgba(37, 99, 235, 0.35),
    0 8px 24px -6px rgba(37, 99, 235, 0.6);
  z-index: 2;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.journey-step:hover .journey-step-node {
  transform: scale(1.08);
  box-shadow:
    0 0 0 4px rgba(15, 15, 15, 1),
    0 0 0 8px rgba(37, 99, 235, 0.55),
    0 12px 32px -6px rgba(37, 99, 235, 0.8);
}

.journey-step-icon {
  font-size: 22px;
  color: #ffffff;
  position: relative;
  z-index: 1;
}

.journey-step-pulse {
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid var(--theme);
  opacity: 0;
  animation: journey-node-pulse 3s ease-out infinite;
}

.journey-step:nth-child(odd) .journey-step-pulse {
  animation-delay: 0s;
}

.journey-step:nth-child(even) .journey-step-pulse {
  animation-delay: 1.5s;
}

@keyframes journey-node-pulse {
  0% {
    transform: scale(1);
    opacity: 0.7;
  }

  100% {
    transform: scale(1.8);
    opacity: 0;
  }
}

.journey-step-card {
  background-color: rgba(20, 20, 20, 0.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
  position: relative;
}

.journey-step:hover .journey-step-card {
  transform: translateY(-4px);
  border-color: rgba(37, 99, 235, 0.5) !important;
  background-color: rgba(20, 20, 20, 0.85);
  box-shadow: 0 20px 40px -16px rgba(37, 99, 235, 0.35);
}

.journey-step-num {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, var(--theme) 0%, #60a5fa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.journey-step-tag {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
  padding: 4px 10px;
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 100px;
}

@media (max-width: 767px) {
  .journey-timeline {
    padding-top: 0;
    padding-left: 40px;
  }

  .journey-track {
    top: 0;
    bottom: 0;
    left: 30px;
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(37, 99, 235, 0.4) 8%,
        rgba(37, 99, 235, 0.4) 92%,
        transparent 100%);
  }

  .journey-track-fill {
    background: linear-gradient(180deg,
        rgba(37, 99, 235, 0) 0%,
        rgba(37, 99, 235, 0.8) 50%,
        rgba(37, 99, 235, 0) 100%);
    background-size: 100% 200%;
    animation: journey-flow-vertical 4s linear infinite;
  }

  @keyframes journey-flow-vertical {
    from {
      background-position: 0 200%;
    }

    to {
      background-position: 0 -200%;
    }
  }

  .journey-track-pulse {
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: journey-pulse-travel-vertical 6s ease-in-out infinite;
  }

  @keyframes journey-pulse-travel-vertical {
    0% {
      top: 0%;
      opacity: 0;
    }

    10% {
      opacity: 1;
    }

    90% {
      opacity: 1;
    }

    100% {
      top: 100%;
      opacity: 0;
    }
  }

  .journey-step {
    text-align: left;
    margin-bottom: 24px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
  }

  .journey-step-node {
    flex-shrink: 0;
    margin: 0;
    width: 56px;
    height: 56px;
    transform: translateX(-58px);
    margin-right: -38px;
  }

  .journey-step-card {
    flex: 1;
  }
}

/* ============================================
   Digital Foundation Framework — step badges + AIO highlight
   Reuses .service-card structure but adds a sequence badge
   to visually distinguish from the regular Services grid.
============================================ */

.foundation-card {
  overflow: hidden;
}

/* Step number badge — sits top-left over the image */
.foundation-step-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  background: linear-gradient(135deg, var(--theme) 0%, #1d4ed8 100%);
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.5px;
  border-radius: 100px;
  box-shadow: 0 6px 16px -4px rgba(37, 99, 235, 0.55);
}

/* "NEW IN 2026" tag for the AIO step */
.foundation-step-tag {
  position: absolute;
  top: 16px;
  right: 14px;
  z-index: 3;
  display: inline-block;
  padding: 4px 10px;
  background-color: rgba(37, 99, 235, 0.92);
  color: #ffffff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1.3px;
  border-radius: 100px;
  box-shadow: 0 4px 12px -2px rgba(37, 99, 235, 0.6);
}

/* Highlighted card (AIO) — theme-blue border + soft glow ring */
.foundation-card-highlight {
  border-color: rgba(37, 99, 235, 0.45) !important;
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.18), 0 24px 48px -20px rgba(37, 99, 235, 0.2);
}

.foundation-card-highlight:hover {
  border-color: var(--theme) !important;
}

/* Hover lift on all foundation cards */
.foundation-card {
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.service-card-link:hover .foundation-card {
  transform: translateY(-4px);
}

/* ============================================
   Insights page — Newsletter signup card
============================================ */

.newsletter-card {
  background: linear-gradient(145deg, rgba(20, 20, 20, 0.6) 0%, rgba(15, 15, 15, 0.6) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.5);
}

.newsletter-glow {
  position: absolute;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.18), transparent 70%);
  top: -180px;
  right: -180px;
  filter: blur(50px);
  pointer-events: none;
  z-index: 0;
}

.newsletter-form input[type="email"] {
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border1);
  border-radius: 8px;
  padding: 14px 18px;
  color: var(--white);
  font-size: 15px;
  font-family: inherit;
  min-width: 200px;
  transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.newsletter-form input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.newsletter-form input[type="email"]:focus {
  outline: none;
  border-color: var(--theme);
  background-color: rgba(37, 99, 235, 0.04);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.newsletter-fine-print {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.2px;
}

@media (max-width: 575px) {
  .newsletter-input-row {
    flex-direction: column;
  }

  .newsletter-input-row button {
    width: 100%;
    justify-content: center;
  }
}

/* ====== Hero Secondary CTA "My Story →" ====== */
.hero-secondary-cta {
  text-decoration: none;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.01em;
  padding: 8px 0;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.hero-secondary-cta:hover {
  color: #fff;
  border-bottom-color: #2563eb;
  transform: translateX(2px);
}

.hero-secondary-cta:hover i.theme-clr {
  transform: translateX(4px);
  transition: transform 0.2s ease;
}

.hero-secondary-cta i {
  transition: transform 0.2s ease;
}

/* ====== Hero Trust Line (MBA · MSc · ...) ====== */
.hero-trust-line {
  font-size: 14px;
  letter-spacing: 0.02em;
}

.hero-trust-line li {
  padding: 0;
  line-height: 1.4;
}

.hero-trust-line .fw-600 {
  font-weight: 600;
}

@media (max-width: 575px) {
  .hero-trust-line {
    font-size: 13px;
    gap: 8px;
  }
}

/* ====== Homepage: The Problem section ====== */
.problem-section {
  position: relative;
}

.problem-bg-orb {
  position: absolute;
  width: 760px;
  height: 760px;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.10) 0%, rgba(37, 99, 235, 0) 70%);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 0;
}

.problem-frame {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.045) 0%, rgba(20, 20, 20, 0.65) 70%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1;
}

.problem-quote-mark {
  position: absolute;
  top: -8px;
  left: 20px;
  font-family: "Plus Jakarta Sans", Georgia, serif;
  font-size: 260px;
  font-weight: 800;
  line-height: 1;
  color: rgba(37, 99, 235, 0.18);
  pointer-events: none;
  user-select: none;
}

.problem-heading {
  font-size: 38px;
  line-height: 1.25;
  letter-spacing: -0.015em;
}

.problem-symptoms {
  grid-template-columns: 1fr;
}

.problem-symptom {
  padding: 14px 18px;
  border: 1px solid #1f2937;
  border-radius: 100px;
  background: rgba(20, 20, 20, 0.55);
  font-size: 14px;
  transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.problem-symptom:hover {
  border-color: rgba(37, 99, 235, 0.55);
  background: rgba(37, 99, 235, 0.08);
  transform: translateX(4px);
}

.problem-symptom-icon {
  width: 36px;
  height: 36px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(37, 99, 235, 0.12);
  color: #2563eb;
  font-size: 14px;
  flex-shrink: 0;
}

.problem-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #1f2937 30%, #1f2937 70%, transparent 100%);
  position: relative;
}

.problem-divider::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  background: #2563eb;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 16px 4px rgba(37, 99, 235, 0.45);
}

.problem-lead {
  font-size: 17px;
  line-height: 1.75;
}

.problem-tag {
  font-size: 20px;
  letter-spacing: -0.01em;
  position: relative;
}

.problem-tag-line {
  display: inline-block;
  width: 40px;
  height: 2px;
  background: #2563eb;
  border-radius: 2px;
}

@media (max-width: 991.98px) {
  .problem-heading {
    font-size: 30px;
  }

  .problem-lead {
    font-size: 16px;
  }

  .problem-quote-mark {
    font-size: 180px;
    top: -16px;
  }
}

@media (max-width: 575px) {
  .problem-heading {
    font-size: 24px;
  }

  .problem-bg-orb {
    width: 380px;
    height: 380px;
  }

  .problem-quote-mark {
    font-size: 120px;
    top: -10px;
    left: 10px;
  }

  .problem-tag {
    font-size: 17px;
  }
}

/* ====== Service Card Highlight (AIO — NEW IN 2026) ====== */
.service-card-highlight {
  border-color: rgba(37, 99, 235, 0.55) !important;
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.25), 0 24px 64px -32px rgba(37, 99, 235, 0.35);
}

.service-card-tag {
  top: 16px;
  right: 16px;
  background: #2563eb;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 100px;
  z-index: 3;
  box-shadow: 0 8px 22px -8px rgba(37, 99, 235, 0.6);
}

/* ====== Homepage: AI and your business section ====== */
.ai-section {
  position: relative;
}

.ai-panel {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(20, 20, 20, 0.85) 70%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1;
}

.ai-bg-orb-left,
.ai-bg-orb-right {
  position: absolute;
  width: 480px;
  height: 480px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.ai-bg-orb-left {
  background: radial-gradient(circle, rgba(37, 99, 235, 0.18) 0%, rgba(37, 99, 235, 0) 70%);
  top: -160px;
  left: -160px;
}

.ai-bg-orb-right {
  background: radial-gradient(circle, rgba(37, 99, 235, 0.13) 0%, rgba(37, 99, 235, 0) 70%);
  bottom: -160px;
  right: -160px;
}

.ai-floating-chip {
  position: absolute;
  top: 28px;
  right: 28px;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(37, 99, 235, 0.12);
  border: 1px solid rgba(37, 99, 235, 0.30);
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  z-index: 2;
}

.ai-headline-block .stitle {
  font-size: 38px;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.ai-lead {
  font-size: 16px;
  line-height: 1.75;
}

.ai-payoff {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
}

.ai-payoff-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: #2563eb;
  border-radius: 50%;
  box-shadow: 0 0 14px 2px rgba(37, 99, 235, 0.55);
  flex-shrink: 0;
}

.ai-secondary-link {
  text-decoration: none;
  padding: 12px 0;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.ai-secondary-link:hover {
  border-bottom-color: #2563eb;
  transform: translateX(2px);
  color: #fff;
}

@media (max-width: 991.98px) {
  .ai-headline-block .stitle {
    font-size: 32px;
  }

  .ai-floating-chip {
    width: 44px;
    height: 44px;
    font-size: 18px;
    top: 18px;
    right: 18px;
  }
}

@media (max-width: 575px) {
  .ai-headline-block .stitle {
    font-size: 24px;
  }

  .ai-floating-chip {
    display: none;
  }

  .ai-bg-orb-left,
  .ai-bg-orb-right {
    width: 280px;
    height: 280px;
  }
}

/* ====== Homepage Services Slider ====== */
.services-slider-wrap {
  padding: 0 0 12px;
}

.services-swiper {
  overflow: hidden;
  padding: 4px;
}

.services-swiper .swiper-slide {
  height: auto;
  display: flex;
}

.services-swiper .service-card-link {
  width: 100%;
  display: flex;
}

.services-swiper .service-card {
  width: 100%;
}

.services-controls {
  position: relative;
}

.services-pagination {
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: auto !important;
  flex-shrink: 1;
}

.services-pagination .swiper-pagination-bullet {
  width: 28px;
  height: 4px;
  background: #1f2937;
  border-radius: 4px;
  opacity: 1;
  margin: 0 !important;
  transition: background 0.25s ease, width 0.25s ease;
}

.services-pagination .swiper-pagination-bullet-active {
  background: #2563eb;
  width: 44px;
}

.services-nav {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid #1f2937;
  background: rgba(20, 20, 20, 0.8);
  color: #fff;
  font-size: 14px;
  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, transform 0.2s ease;
}

.services-nav:hover {
  border-color: #2563eb;
  background: rgba(37, 99, 235, 0.18);
  color: #2563eb;
  transform: translateY(-2px);
}

.services-nav.swiper-button-disabled {
  opacity: 0.35;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 575px) {
  .services-nav {
    width: 42px;
    height: 42px;
  }

  .services-pagination .swiper-pagination-bullet {
    width: 22px;
  }

  .services-pagination .swiper-pagination-bullet-active {
    width: 36px;
  }
}

/* ====== Homepage: Digital Foundation Roadmap (connected build sequence) ====== */
.foundation-roadmap {
  max-width: 920px;
  margin: 0 auto;
  padding-left: 8px;
}

/* Vertical connector rail running through all step nodes */
.foundation-rail {
  position: absolute;
  left: 32px;
  top: 32px;
  bottom: 32px;
  width: 2px;
  background: linear-gradient(180deg,
      rgba(37, 99, 235, 0) 0%,
      rgba(37, 99, 235, 0.45) 8%,
      rgba(37, 99, 235, 0.45) 92%,
      rgba(37, 99, 235, 0) 100%);
  pointer-events: none;
  z-index: 1;
}

/* Each step row */
.foundation-row {
  position: relative;
  padding-left: 96px;
  margin-bottom: 28px;
  z-index: 2;
}

.foundation-row-last {
  margin-bottom: 0;
}

/* The numbered node on the rail */
.foundation-node {
  position: absolute;
  left: 0;
  top: 24px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #0a0a0a;
  border: 2px solid #1f2937;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.foundation-node::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.08);
}

.foundation-node-num {
  position: relative;
  z-index: 1;
  font-size: 18px;
  font-weight: 700;
  color: #2563eb;
  letter-spacing: 0.04em;
}

/* Highlighted node (AIO) */
.foundation-node-highlight {
  border-color: #2563eb;
  box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.10), 0 0 30px rgba(37, 99, 235, 0.45);
}

.foundation-node-highlight::after {
  background: rgba(37, 99, 235, 0.22);
}

.foundation-node-highlight .foundation-node-num {
  color: #ffffff;
}

/* Step card */
.foundation-step-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.foundation-step-card {
  background: linear-gradient(135deg, rgba(20, 20, 20, 0.85) 0%, rgba(15, 15, 15, 0.7) 100%);
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.foundation-step-link:hover .foundation-step-card {
  border-color: rgba(37, 99, 235, 0.55);
  transform: translateX(6px);
  box-shadow: 0 16px 40px -20px rgba(37, 99, 235, 0.40);
}

.foundation-step-link:hover .foundation-node {
  border-color: #2563eb;
  transform: scale(1.05);
}

/* Highlighted card (AIO) */
.foundation-step-card-highlight {
  border-color: rgba(37, 99, 235, 0.55) !important;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.10) 0%, rgba(20, 20, 20, 0.85) 100%);
  box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.25), 0 24px 64px -32px rgba(37, 99, 235, 0.35);
}

/* The "BUILDS ON / NEW IN 2026 / START HERE" anchor pill */
.foundation-step-anchor {
  position: absolute;
  top: -12px;
  left: 24px;
  background: #0a0a0a;
  border: 1px solid #1f2937;
  color: var(--pra);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  z-index: 4;
}

.foundation-step-anchor i {
  font-size: 11px;
  color: #2563eb;
}

.foundation-step-anchor-first {
  border-color: rgba(37, 99, 235, 0.55);
  color: #2563eb;
  background: #0a0a0a;
}

.foundation-step-anchor-first i {
  color: #2563eb;
}

.foundation-step-anchor-new {
  background: #2563eb;
  border-color: #2563eb;
  color: #ffffff;
  box-shadow: 0 8px 22px -8px rgba(37, 99, 235, 0.65);
}

.foundation-step-anchor-new i {
  color: #ffffff;
}

/* Service icon inside step card */
.foundation-step-icon {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(37, 99, 235, 0.10);
  border: 1px solid rgba(37, 99, 235, 0.20);
  color: #2563eb;
  font-size: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.foundation-step-icon-highlight {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

/* Right arrow on card */
.foundation-step-arrow {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.10);
  color: #2563eb;
  display: none;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
  align-self: center;
}

.foundation-step-link:hover .foundation-step-arrow {
  transform: translateX(4px);
}

@media (min-width: 768px) {
  .foundation-step-arrow {
    display: inline-flex;
  }
}

@media (max-width: 767.98px) {
  .foundation-roadmap {
    padding-left: 0;
  }

  .foundation-rail {
    left: 28px;
  }

  .foundation-row {
    padding-left: 72px;
  }

  .foundation-node {
    width: 56px;
    height: 56px;
    top: 18px;
  }

  .foundation-node-num {
    font-size: 16px;
  }

  .foundation-step-icon {
    width: 44px;
    height: 44px;
    font-size: 18px;
  }

  .foundation-step-anchor {
    font-size: 10px;
    padding: 4px 10px;
  }
}

@media (max-width: 575px) {
  .foundation-step-card .d-flex {
    flex-direction: column;
    gap: 14px !important;
  }
}

/* ====== Homepage: Five Reasons (bento grid) ====== */
.reasons-bento {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

/* Feature card spans 2 columns × 2 rows */
.reason-card-feature {
  grid-column: span 2;
  grid-row: span 2;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.10) 0%, rgba(20, 20, 20, 0.85) 60%);
  text-decoration: none;
  color: inherit;
}

.reason-card-feature:hover {
  border-color: rgba(37, 99, 235, 0.55) !important;
}

.reason-bg-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.18) 0%, rgba(37, 99, 235, 0) 70%);
  top: -120px;
  right: -120px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.reason-card {
  background: linear-gradient(135deg, rgba(20, 20, 20, 0.85) 0%, rgba(15, 15, 15, 0.7) 100%);
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.reason-card:hover {
  border-color: rgba(37, 99, 235, 0.45);
  transform: translateY(-4px);
  box-shadow: 0 16px 40px -20px rgba(37, 99, 235, 0.35);
}

.reason-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(37, 99, 235, 0.10);
  border: 1px solid rgba(37, 99, 235, 0.25);
  color: #2563eb;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.05em;
}

.reason-num-feature {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  font-size: 18px;
  background: #2563eb;
  border-color: #2563eb;
  color: #fff;
  box-shadow: 0 8px 24px -8px rgba(37, 99, 235, 0.55);
}

.reason-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid #1f2937;
  color: var(--pra);
  font-size: 18px;
}

.reason-icon-feature {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  font-size: 22px;
  color: #2563eb;
  border-color: rgba(37, 99, 235, 0.25);
  background: rgba(37, 99, 235, 0.06);
}

.reason-title-feature {
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

@media (max-width: 1199px) {
  .reasons-bento {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .reason-card-feature {
    grid-column: span 2;
    grid-row: span 1;
  }
}

@media (max-width: 767.98px) {
  .reasons-bento {
    grid-template-columns: 1fr;
  }

  .reason-card-feature {
    grid-column: span 1;
  }

  .reason-title-feature {
    font-size: 24px;
  }
}

/* ====== Digital Foundation: refinements ====== */
.foundation-header {
  max-width: 760px;
}

.foundation-header-sub {
  max-width: 580px;
  font-size: 16px;
  line-height: 1.7;
}

/* Add bottom curl on the rail (where it ends) */
.foundation-rail::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.45);
  box-shadow: 0 0 12px 2px rgba(37, 99, 235, 0.35);
}

/* The closing CTA card under the roadmap */
.foundation-closer {
  max-width: 920px;
}

.foundation-closer-card {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.07) 0%, rgba(20, 20, 20, 0.85) 70%);
}

.foundation-closer-icon {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(37, 99, 235, 0.10);
  border: 1px solid rgba(37, 99, 235, 0.30);
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

@media (max-width: 575px) {
  .foundation-closer-icon {
    width: 44px;
    height: 44px;
    font-size: 18px;
  }
}

/* ====== About Page: Journey roadmap (4 cities) ====== */
.journey-section {
  position: relative;
}

.journey-header {
  max-width: 800px;
}

.journey-intro-sub {
  max-width: 620px;
  font-size: 16px;
  line-height: 1.7;
}

.journey-roadmap {
  max-width: 920px;
  margin: 0 auto;
  padding-left: 8px;
}

/* Vertical connector rail */
.journey-rail {
  position: absolute;
  left: 40px;
  top: 40px;
  bottom: 40px;
  width: 2px;
  background: linear-gradient(180deg,
      rgba(37, 99, 235, 0) 0%,
      rgba(37, 99, 235, 0.45) 6%,
      rgba(37, 99, 235, 0.45) 94%,
      rgba(37, 99, 235, 0) 100%);
  pointer-events: none;
  z-index: 1;
}

.journey-rail::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.45);
  box-shadow: 0 0 12px 2px rgba(37, 99, 235, 0.35);
}

.journey-chapter {
  position: relative;
  padding-left: 112px;
  margin-bottom: 36px;
  z-index: 2;
}

.journey-chapter-last {
  margin-bottom: 0;
}

/* Journey node (map pin style) */
.journey-node {
  position: absolute;
  left: 0;
  top: 28px;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #0a0a0a;
  border: 2px solid #1f2937;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 3;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.journey-node::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.08);
}

.journey-node-num {
  position: relative;
  z-index: 1;
  font-size: 13px;
  font-weight: 700;
  color: #2563eb;
  letter-spacing: 0.05em;
  line-height: 1;
}

.journey-node-pin {
  position: relative;
  z-index: 1;
  color: #2563eb;
  font-size: 18px;
  margin-top: 4px;
}

.journey-chapter:hover .journey-node {
  border-color: #2563eb;
  box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.10), 0 0 30px rgba(37, 99, 235, 0.35);
}

.journey-card {
  background: linear-gradient(135deg, rgba(20, 20, 20, 0.85) 0%, rgba(15, 15, 15, 0.7) 100%);
  transition: border-color 0.25s ease, transform 0.25s ease;
}

.journey-card:hover {
  border-color: rgba(37, 99, 235, 0.30);
}

.journey-city-name {
  font-size: 28px;
  letter-spacing: -0.01em;
}

.journey-meta {
  font-size: 14px;
  color: var(--pra);
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.01em;
}

/* Journey closer line */
.journey-closer {
  max-width: 720px;
  position: relative;
}

.journey-closer-line {
  display: inline-block;
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, #2563eb 50%, transparent 100%);
  border-radius: 2px;
  margin-bottom: 20px;
}

.journey-closer-text {
  font-size: 28px;
  letter-spacing: -0.01em;
  line-height: 1.3;
}

@media (max-width: 767.98px) {
  .journey-roadmap {
    padding-left: 0;
  }

  .journey-rail {
    left: 32px;
  }

  .journey-chapter {
    padding-left: 88px;
  }

  .journey-node {
    width: 64px;
    height: 64px;
    top: 22px;
  }

  .journey-node-num {
    font-size: 11px;
  }

  .journey-node-pin {
    font-size: 15px;
  }

  .journey-city-name {
    font-size: 22px;
  }

  .journey-closer-text {
    font-size: 22px;
  }
}

/* ====== About Page: A Note on AI ====== */
.ai-note-section {
  position: relative;
}

.ai-note-panel {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(20, 20, 20, 0.85) 70%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ai-note-orb-left,
.ai-note-orb-right {
  position: absolute;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.ai-note-orb-left {
  background: radial-gradient(circle, rgba(37, 99, 235, 0.18) 0%, rgba(37, 99, 235, 0) 70%);
  top: -160px;
  left: -160px;
}

.ai-note-orb-right {
  background: radial-gradient(circle, rgba(37, 99, 235, 0.10) 0%, rgba(37, 99, 235, 0) 70%);
  bottom: -160px;
  right: -160px;
}

.ai-note-chip {
  position: absolute;
  top: 28px;
  right: 28px;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(37, 99, 235, 0.12);
  border: 1px solid rgba(37, 99, 235, 0.30);
  color: #2563eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  z-index: 2;
}

.ai-note-section .stitle {
  font-size: 32px;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.ai-note-para {
  font-size: 16px;
  line-height: 1.75;
}

.ai-note-byline {
  color: var(--pra);
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 0;
}

.ai-note-byline-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: #2563eb;
  border-radius: 50%;
  box-shadow: 0 0 10px 1px rgba(37, 99, 235, 0.55);
  flex-shrink: 0;
}

@media (max-width: 991.98px) {
  .ai-note-section .stitle {
    font-size: 26px;
  }

  .ai-note-chip {
    width: 44px;
    height: 44px;
    font-size: 18px;
    top: 18px;
    right: 18px;
  }
}

@media (max-width: 575px) {
  .ai-note-chip {
    display: none;
  }

  .ai-note-orb-left,
  .ai-note-orb-right {
    width: 280px;
    height: 280px;
  }
}

/* ====== About Page: How I Work ====== */
.how-i-work-section {
  position: relative;
}

.how-i-work-frame {
  max-width: 820px;
}

.how-i-work-body {
  background: linear-gradient(135deg, rgba(20, 20, 20, 0.85) 0%, rgba(15, 15, 15, 0.65) 100%);
}

.how-i-work-mark {
  position: absolute;
  top: -16px;
  left: 24px;
  font-family: "Plus Jakarta Sans", Georgia, serif;
  font-size: 200px;
  font-weight: 800;
  line-height: 1;
  color: rgba(37, 99, 235, 0.16);
  pointer-events: none;
  user-select: none;
}

.how-i-work-para {
  font-size: 18px;
  line-height: 1.8;
  position: relative;
  z-index: 1;
}

.how-i-work-sig-line {
  display: inline-block;
  width: 32px;
  height: 2px;
  background: #2563eb;
  border-radius: 2px;
}

@media (max-width: 767.98px) {
  .how-i-work-para {
    font-size: 16px;
  }

  .how-i-work-mark {
    font-size: 120px;
    top: -8px;
    left: 12px;
  }
}

/* ====== AI Readiness Audit page ====== */
.audit-question-card {
  background: linear-gradient(135deg, rgba(20, 20, 20, 0.85) 0%, rgba(15, 15, 15, 0.7) 100%);
  transition: border-color 0.25s ease, transform 0.25s ease;
}

.audit-question-card:hover {
  border-color: rgba(37, 99, 235, 0.45);
  transform: translateY(-4px);
}

.audit-question-num {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 56px;
  font-weight: 700;
  line-height: 1;
  color: rgba(37, 99, 235, 0.18);
  letter-spacing: -0.02em;
}

.audit-question-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(37, 99, 235, 0.10);
  border: 1px solid rgba(37, 99, 235, 0.25);
  color: #2563eb;
  font-size: 22px;
}

.audit-outcomes {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(20, 20, 20, 0.85) 70%);
}

.audit-outcome-check {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #2563eb;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  box-shadow: 0 8px 22px -8px rgba(37, 99, 235, 0.55);
}

/* ====== AI Readiness Audit teaser card (used on Services + Insights) ====== */
.ai-audit-teaser {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.10) 0%, rgba(20, 20, 20, 0.85) 70%);
  position: relative;
  overflow: hidden;
}

.ai-audit-teaser-glow {
  position: absolute;
  top: -120px;
  right: -120px;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.18) 0%, rgba(37, 99, 235, 0) 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.ai-audit-teaser-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: #2563eb;
  color: #fff;
  font-size: 26px;
  box-shadow: 0 8px 24px -8px rgba(37, 99, 235, 0.55);
}

/* ====== Megamenu: AI Readiness Audit highlight card ====== */
.mega-card-highlight {
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.12) 0%, rgba(15, 15, 15, 0.6) 80%) !important;
  border-color: rgba(37, 99, 235, 0.40) !important;
}

.mega-card-highlight:hover {
  border-color: rgba(37, 99, 235, 0.65) !important;
}

.mega-card-pill {
  display: inline-block;
  background: #2563eb;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 2px 7px;
  border-radius: 100px;
  margin-left: 6px;
  vertical-align: middle;
  text-transform: uppercase;
}

/* ====== CV Download Modal (mirrors consultation-modal styling) ====== */
.cv-download-modal .modal-dialog {
  /* Ensure dialog respects viewport on small screens */
  max-width: min(720px, calc(100% - 1rem));
  margin-left: auto;
  margin-right: auto;
}

.cv-download-modal .modal-content {
  background: #141414;
  border: 1px solid #1f2937;
  color: #ffffff;
  position: relative;
  padding: 28px 28px 24px;
  overflow: hidden;
  /* clip any Bootstrap negative-margin spill */
  border-radius: 20px;
}

.cv-download-modal .modal-header {
  padding: 0 0 4px 0;
  margin: 0;
  border: 0;
}

.cv-download-modal .modal-body {
  padding: 0;
  overflow-x: hidden;
  /* primary fix — kill horizontal scroll */
}

.cv-download-modal form {
  /* Contain the absolutely-positioned honeypot so it can't widen the body */
  position: relative;
  overflow: hidden;
}

.cv-download-modal .modal-close-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid #1f2937;
  background: #0f0f0f;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  flex-shrink: 0;
}

.cv-download-modal .modal-close-btn:hover {
  border-color: #2563eb;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.12);
}

.cv-download-modal .booking-label {
  font-size: 12px;
  letter-spacing: 0.12em;
  line-height: 1.4;
}

.cv-download-modal .booking-label i {
  flex-shrink: 0;
}

.cv-download-modal .modal-title {
  font-size: 24px;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.cv-download-modal .form-check-label {
  font-size: 13px;
  line-height: 1.55;
}

.cv-download-modal input,
.cv-download-modal select,
.cv-download-modal .form-select,
.cv-download-modal .select-wrap {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* intl-tel-input flag picker inside the modal — ensure it doesn't push col width */
.cv-download-modal .iti {
  width: 100%;
}

.cv-download-modal .iti__flag-container {
  z-index: 2;
}

/* Tablet */
@media (max-width: 991.98px) {
  .cv-download-modal .modal-content {
    padding: 26px 24px 22px;
  }
}

/* Phablet */
@media (max-width: 767.98px) {
  .cv-download-modal .modal-content {
    padding: 22px 20px 20px;
  }

  .cv-download-modal .modal-title {
    font-size: 21px;
  }
}

/* Phone */
@media (max-width: 575px) {
  .cv-download-modal .modal-dialog {
    margin: 0.5rem auto;
    max-width: calc(100% - 1rem);
  }

  .cv-download-modal .modal-content {
    padding: 18px 16px 16px;
    border-radius: 16px;
  }

  .cv-download-modal .modal-title {
    font-size: 19px;
  }

  .cv-download-modal .modal-close-btn {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }

  .cv-download-modal .booking-label {
    font-size: 11px;
  }

  /* Consent label often wraps on mobile — give it breathing room */
  .cv-download-modal .form-check-label {
    font-size: 12px;
  }

  /* Submit row stacks naturally; keep the reassurance line readable */
  .cv-download-modal .spantext-clr.small {
    font-size: 12px;
  }
}

/* ====== reCAPTCHA v3 — hide floating badge (branding shown in footer instead) ====== */
.grecaptcha-badge {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.iti {
  width: 100%
}

/* ====== About Journey — On-This-Page Sidebar ====== */
/* Numbered TOC labels inside the shared blog-toc component */
.blog-toc .journey-toc-num {
  display: inline-block;
  width: 28px;
  color: #2563eb;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 13px;
}

.blog-toc .journey-toc-city {
  font-weight: 600;
  color: inherit;
}

.blog-toc .journey-toc-sub {
  display: block;
  margin-left: 28px;
  margin-top: 2px;
  color: var(--pra);
  font-size: 12px;
  font-style: italic;
  letter-spacing: 0.01em;
  font-weight: 400;
}

.blog-toc-nav a.blog-toc-sub {
  /* Nested May-2018 item — indent so it visually belongs under London */
  margin-left: 28px;
  padding-left: 12px;
  border-left: 1px solid rgba(37, 99, 235, 0.35);
  font-size: 12px;
}

/* The 2-column journey layout — sidebar (col-lg-4) + content (col-lg-8) */
.journey-layout {
  align-items: flex-start;
}

/* On tablet + desktop, keep the rail on the content side aligned */
@media (min-width: 992px) {
  .journey-layout .journey-roadmap {
    max-width: none;
    margin: 0;
    padding-left: 8px;
  }
}

/* ====== About Journey — Accordion pattern ====== */
.journey-accordion-item {
  padding: 0;
  overflow: hidden;
}

/* Clickable header */
.journey-accordion-header {
  background: transparent;
  border: 0;
  color: inherit;
  padding: 24px 28px;
  cursor: pointer;
  transition: background 0.2s ease;
  display: block;
}

.journey-accordion-header:hover,
.journey-accordion-header:focus-visible {
  background: rgba(37, 99, 235, 0.06);
  outline: none;
}

.journey-accordion-header:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(37, 99, 235, 0.55);
}

/* Chapter-head layout inside the button */
.journey-accordion-header .journey-chapter-head {
  margin: 0;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
  row-gap: 6px;
}

/* Chevron indicator */
.journey-accordion-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.10);
  color: #2563eb;
  font-size: 14px;
  transition: transform 0.28s ease, background 0.2s ease;
  flex-shrink: 0;
}

.journey-accordion-header:hover .journey-accordion-chevron {
  background: rgba(37, 99, 235, 0.18);
}

/* Rotate when expanded (button has aria-expanded="true") */
.journey-accordion-header[aria-expanded="true"] .journey-accordion-chevron {
  transform: rotate(180deg);
  background: #2563eb;
  color: #ffffff;
}

/* Accordion body */
.journey-accordion-body {
  /* Bootstrap 5 .collapse handles show/hide; we just style the inner padding */
}

.journey-accordion-body-inner {
  padding: 4px 28px 26px;
  border-top: 1px solid rgba(37, 99, 235, 0.20);
  margin-top: 0;
}

.journey-accordion-body-inner p:first-child {
  margin-top: 16px;
}

/* Highlight active (expanded) card border */
.journey-accordion-item:has(.journey-accordion-header[aria-expanded="true"]) {
  border-color: rgba(37, 99, 235, 0.45) !important;
  box-shadow: 0 12px 30px -18px rgba(37, 99, 235, 0.45);
}

/* Highlight active sidebar link (matches TOC scrollspy active state) */
.blog-toc-nav a[aria-current="true"],
.blog-toc-nav a.is-active {
  color: #2563eb;
  font-weight: 600;
}

/* Mobile — tighten padding, keep readable */
@media (max-width: 767.98px) {
  .journey-accordion-header {
    padding: 18px 20px;
  }

  .journey-accordion-body-inner {
    padding: 4px 20px 20px;
  }

  .journey-accordion-header .journey-chapter-head {
    gap: 8px;
  }

  .journey-accordion-chevron {
    width: 32px;
    height: 32px;
    font-size: 13px;
  }
}

/* ==========================================================================
   intl-tel-input (v17) — dark theme override
   The plugin's default dropdown ships with white bg + very light text, which
   is unreadable on our dark site. These overrides re-paint every visible
   surface (button, arrow, dropdown, rows, hover, active, search) using the
   same palette as the rest of the widgets. Uses `.iti` as the anchor so it
   applies wherever the plugin is initialised (contact form, service form,
   CV modal, discovery modal — anything not tagged .cn-cb-input).
   ========================================================================== */

/* --- Selected-flag button on the left of the tel input --- */
.iti__flag-container {
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.iti__selected-flag {
  background-color: transparent !important;
  border-radius: 8px 0 0 8px;
  padding: 0 8px 0 10px;
  transition: background-color 0.15s ease;
}

.iti__selected-flag:hover,
.iti__selected-flag:focus {
  background-color: rgba(37, 99, 235, 0.10) !important;
  outline: none;
}

.iti__arrow {
  border-top-color: #94a3b8;
}

.iti__arrow--up {
  border-bottom-color: #94a3b8;
}

/* --- Dropdown container --- */
.iti__country-list {
  background-color: #141414 !important;
  border: 1px solid rgba(37, 99, 235, 0.35) !important;
  border-radius: 10px !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(37, 99, 235, 0.08) inset !important;
  color: #ffffff;
  padding: 6px 0;
  margin-top: 6px;
  max-height: 260px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

.iti__country-list::-webkit-scrollbar {
  width: 6px;
}

.iti__country-list::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 3px;
}

.iti__country-list::-webkit-scrollbar-track {
  background: transparent;
}

/* --- Each country row --- */
.iti__country {
  color: rgba(255, 255, 255, 0.85);
  padding: 10px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  transition: background-color 0.12s ease, color 0.12s ease;
}

.iti__country:last-child {
  border-bottom: none;
}

.iti__country-name {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
}

.iti__dial-code {
  color: #94a3b8;
  font-size: 13px;
  margin-left: 6px;
}

/* --- Hover / keyboard-focused row --- */
.iti__country.iti__highlight {
  background-color: rgba(37, 99, 235, 0.14) !important;
  color: #ffffff;
}

.iti__country.iti__highlight .iti__country-name {
  color: #ffffff;
}

.iti__country.iti__highlight .iti__dial-code {
  color: #cbd5e1;
}

/* --- Currently selected country (persists after selection) --- */
.iti__country.iti__active {
  background-color: rgba(37, 99, 235, 0.10);
  color: #2563eb;
}

.iti__country.iti__active .iti__country-name {
  color: #2563eb;
  font-weight: 600;
}

/* --- Divider row (between preferred and rest) --- */
.iti__divider {
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
  padding-bottom: 0;
  margin-bottom: 0;
}

/* --- Search input (v17 supports search when configured) --- */
.iti__search-input {
  background-color: rgba(255, 255, 255, 0.06) !important;
  color: #ffffff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14px;
}

.iti__search-input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.iti__search-input:focus {
  border-color: #2563eb !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}
}
/* ==========================================================================
   Reduced-motion guard for AOS
   --------------------------------------------------------------------------
   AOS hides elements with:
       [data-aos^=fade][data-aos^=fade] { opacity: 0 }
       [data-aos^=zoom][data-aos^=zoom] { opacity: 0 }
   (specificity 0,2,0). The JS guard in main.js also handles this, but it can
   only act once main.js has downloaded and executed — until then the content
   is invisible. This rule reveals it instantly at parse time instead.

   Uses a tripled attribute selector (0,3,0) so it outranks AOS without
   relying on source order alone.
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  [data-aos][data-aos][data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* --------------------------------------------------------------------------
   Cookie Settings control in the footer legal row.
   It is a <button> (it opens a dialog, it does not navigate) but must sit
   visually identical to the <a> links beside it, so strip the native button
   chrome and inherit the surrounding type.
   -------------------------------------------------------------------------- */
.footer-legal-btn {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  line-height: inherit;
  color: inherit;
  cursor: pointer;
}

.footer-legal-btn:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
  border-radius: 2px;
}

/* --------------------------------------------------------------------------
   "Notify Me" controls on /insights are <button> (they act, they don't
   navigate) but reuse the .radius-btn pill styling, which was authored for
   anchors and only defines transitions. Strip the UA button chrome so the
   pill renders identically to its anchor siblings.
   -------------------------------------------------------------------------- */
button.radius-btn {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  font: inherit;
  cursor: pointer;
}
