.pt-30 {
    
    padding-bottom: 30px;
}

.testimonial-video {
    background-position: center;
    background-size: cover;
    height: 450px;
    position: relative;
}

.op-3 {
    opacity: 0.3;
}

.overlay {
    background-color: rgb(0, 0, 0);
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100%;
    width: 100%;
}

.testimonial-btn a {
    background: rgba(255, 255, 255, 0.5);
    color: #fff;
    width: 70px;
    height: 70px;
    display: inline-block;
    text-align: center;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 999;
    transform: translate(-50%, -50%);
}

.hvr-ripple-out:before {
    border-radius: 50%;
    content: '';
    position: absolute;
    border: #fff solid 2px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    transition: all 0.3s;
    animation-iteration-count: infinite;
}

.testimonial-btn a i {
    font-size: 20px;
    line-height: 70px;
    margin-left: 5px;
}

.section-title.v3 p {
    margin-bottom: 8px;
    line-height: 1;
    font-size: 16px;
}

section-title.v3 p, .section-title.v2 p, .section-title.v1 p {
    font-size: 16px;
    color: #6449e7;
}

.section-title.v3 h2 {
    margin-bottom: 25px;
    font-size: 30px;
    text-transform: uppercase;
    line-height: 1.3;
}

.promo-section {
    position: relative;
}
.pt-120 {
   
    padding-bottom: 40px !important;
}

.promo-section.v2 .promo-desc {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.section-title.v2 {
    text-align: left;
}

.pt-5, .py-5 {
    padding-top: 3rem!important;
}

.pt-5, .py-5 {
    padding-top: 3rem!important;
}

/*--------counter section----------*/
#counter {
    padding: 80px 0;
}

.counter-text {
    text-align: center;
}

.counter-text h6 {
    color: #fff;
    font-size: 40px;
    margin-bottom: 0;
    line-height: 1.2;
    margin-top: 25px;
}

.counter-text p {
    font-size: 17px;
    color: #fff;
}

.counter-text i {
    border: 1px solid #ddd;
    padding: 10px;
    border-radius: 50%;
    color: #fff;
    font-size: 30px;
}

.counter-section {
    position: relative;
}

/*--------------------Counter v2-----------------*/
.counter-text.v2 h6 {
    color: #333;
    font-weight: 500;
    font-size: 30px;
    margin-top: 15px;
}

.counter-text.v2 p {
    color: #333;
    font-size: 17px;
    font-weight: 600;
}

.counter-text.v2 i {
    border: none;
    border-radius: 0;
    color: #0072a8;
    font-size: 45px;
}


.counter-text.v2 {
    background: #ffeaba82;
    padding: 15px 10px;
    border-radius: 5px;
}

.about-text.res-box {
    text-align: justify;
}


.hvr-ripple-out {
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    position: relative;
}

.hvr-ripple-out:before {
    border-radius: 50%;
    content: '';
    position: absolute;
    border: #fff solid 2px;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    transition: all 0.3s;
    animation-iteration-count: infinite;
}

.hvr-ripple-out:hover:before,
.hvr-ripple-out:focus:before,
.hvr-ripple-out:active:before {
    border: #ddd solid 6px;
    -webkit-animation-name: hvr-ripple-out;
    animation-name: hvr-ripple-out;
}

@-webkit-keyframes hvr-ripple-out {
    100% {
        top: -12px;
        right: -12px;
        bottom: -12px;
        left: -12px;
        opacity: 0;
    }
}

@keyframes hvr-ripple-out {
    100% {
        top: -12px;
        right: -12px;
        bottom: -12px;
        left: -12px;
        opacity: 0;
    }
}






@media (max-width: 767px){
    
.testimonial-video {
    height: 270px;
}

.section-title.v3 h2 {
    margin-bottom: 10px;
    font-size: 22px;
    text-transform: capitalize;
    line-height: 30px;
    color: #000;
}

.about-text.res-box {
    font-size: 15px;
    line-height: 25px;
    color: #333;
    text-align: justify;
    font-weight: 300;
}

.pt-30 {
    padding-bottom: 0px;
}

.counter-text.v2 {
    margin-bottom: 30px;
}
}

/* =========================================================
   KDH Real Estate — professional header + footer
   ========================================================= */
:root {
  --kdh-blue: #0072a8;
  --kdh-blue-dark: #005a85;
  --kdh-navy: #103050;
  --kdh-muted: #8a8a8a;
}

/* Universal: inherited green buttons/badges -> GPS red. Keep WhatsApp green. */
a.button,
button.button,
.button,
.show-more-button,
a.show-more-button,
.property-pricing,
span.property-badge-sale,
#titlebar-dtl-item.property-titlebar span.property-badge-sale,
.agent-widget button[type="submit"],
.agent-widget .button {
  background: var(--kdh-blue) !important;
  background-color: var(--kdh-blue) !important;
  border-color: var(--kdh-blue) !important;
}

.gps-tour-card {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 16px;
  padding: 22px 20px 18px;
  box-shadow: 0 12px 30px rgba(17,24,39,.08);
}
.gps-tour-kicker {
  margin: 0 0 6px;
  color: var(--kdh-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.gps-tour-card h3,
.gps-tour-card .utf-boxed-list-headline-item h3 {
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  color: #111 !important;
}
.gps-tour-card h3::before {
  display: none !important;
}
.gps-tour-project {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
  color: #222;
}
.gps-tour-agent {
  margin: 0 0 16px;
  font-size: 12.5px;
  color: #777;
}
.gps-tour-card form label {
  display: block;
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 700;
  color: #444;
}
.gps-tour-card form input {
  display: block;
  width: 100%;
  margin-top: 5px;
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  background: #fafafa;
  padding: 11px 12px;
  font-size: 14px;
  font-weight: 500;
  color: #111;
  box-shadow: none;
}
.gps-tour-card form input:focus {
  outline: none;
  border-color: var(--kdh-blue);
  background: #fff;
}
.gps-tour-card form button[type="submit"] {
  width: 100%;
  margin-top: 6px;
  border: 0;
  border-radius: 10px;
  padding: 13px 16px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
}
.gps-tour-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}
.gps-tour-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  padding: 10px 8px;
  font-size: 13px;
  font-weight: 700;
  color: #111;
}
.gps-tour-links a:hover {
  border-color: #ccc;
  color: #111;
}

.gps-phone {
  position: relative;
  display: flex;
  align-items: stretch;
  margin-top: 5px;
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  background: #fafafa;
  overflow: visible;
}
.gps-phone:focus-within {
  border-color: var(--kdh-blue);
  background: #fff;
}
.gps-phone-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0 !important;
  border-right: 1px solid #e6e6e6 !important;
  background: transparent !important;
  padding: 0 10px !important;
  cursor: pointer;
  white-space: nowrap;
  font-weight: 700 !important;
  color: #111 !important;
  border-radius: 10px 0 0 10px !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 46px;
  flex: 0 0 auto !important;
  position: relative !important;
  z-index: 3 !important;
  pointer-events: auto !important;
  box-shadow: none !important;
}
.gps-phone-flag {
  font-size: 18px;
  line-height: 1;
}
.gps-phone-dial {
  font-size: 14px;
}
.gps-phone-toggle i {
  font-size: 12px;
  color: #888;
}
.gps-phone-national {
  flex: 1;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 11px 12px !important;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
}
.gps-phone-list {
  display: none;
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  z-index: 200;
  width: min(280px, 80vw);
  max-height: 240px;
  overflow: auto;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(17,24,39,.12);
}
.gps-phone.is-open {
  z-index: 80;
}
.gps-phone.is-open .gps-phone-list,
.gps-phone-list:not([hidden]) {
  display: block;
}
.gps-phone-list[hidden] {
  display: none !important;
}
.gps-phone-list li {
  margin: 0;
}
.gps-phone-list button {
  display: flex !important;
  align-items: center;
  gap: 8px;
  width: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  background-color: #fff !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  text-align: left;
  cursor: pointer;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #222 !important;
  box-shadow: none !important;
  min-width: 0 !important;
  height: auto !important;
}
.gps-phone-list button:hover {
  background: #f4f4f5 !important;
  background-color: #f4f4f5 !important;
  color: #111 !important;
}
.gps-phone-list button span:nth-child(2) {
  flex: 1;
}
.gps-phone-list em {
  font-style: normal;
  color: #888;
  font-weight: 700;
}
a.button:hover,
button.button:hover,
.button:hover,
.show-more-button:hover,
a.show-more-button:hover {
  background: var(--kdh-blue-dark) !important;
  background-color: var(--kdh-blue-dark) !important;
  border-color: var(--kdh-blue-dark) !important;
}
.float,
.float:hover {
  background: #25D366 !important;
}

.gps-show {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 16px;
  padding: 28px 28px 32px;
  margin: 28px 0 0;
}
.gps-show h2 {
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e8e8e8;
  font-size: 26px;
  font-weight: 800;
  color: #111;
}
.gps-am-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
}
.gps-am-tabs button {
  background: #fff !important;
  color: #222 !important;
  border: 1px solid #ddd !important;
  border-radius: 10px !important;
  padding: 8px 16px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  box-shadow: none !important;
  cursor: pointer;
}
.gps-am-tabs button.is-on {
  background: #eff7fb !important;
  border-color: var(--kdh-blue) !important;
  color: var(--kdh-blue) !important;
}
.gps-am-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 28px 16px;
}
.gps-am-item {
  text-align: center;
}
.gps-am-item.is-off {
  display: none;
}
.gps-am-item i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 auto 10px;
  background: transparent;
  color: var(--kdh-blue);
  font-size: 30px;
  border-radius: 0;
}
.gps-am-item span {
  display: block;
  color: #555;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}
.gps-map-frame {
  border-radius: 12px;
  overflow: hidden;
  min-height: 360px;
  background: #f3f3f3;
}
.gps-map-frame iframe {
  width: 100%;
  height: 380px;
  border: 0;
  display: block;
}
.gps-dev-row {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.gps-dev-logo {
  flex: 0 0 160px;
  width: 160px;
  height: 160px;
  object-fit: contain;
  background: #111;
  border-radius: 8px;
  padding: 10px;
}
.gps-dev-mark {
  flex: 0 0 160px;
  width: 160px;
  height: 160px;
  background: #111;
  color: #d4af37;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 56px;
  font-weight: 800;
  border-radius: 8px;
}
.gps-dev-copy p {
  margin: 0;
  color: #555;
  font-size: 15.5px;
  line-height: 1.75;
}
@media (max-width: 991px) {
  .gps-am-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .gps-am-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gps-dev-row {
    flex-direction: column;
  }
}

.gps-amenities {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 28px;
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}
.gps-amenities li {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #222;
  font-weight: 600;
  font-size: 15px;
  line-height: 1.35;
}
.gps-amenities i {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #eff7fb;
  color: var(--kdh-blue);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.gps-amenities i:before {
  display: block;
}
@media (max-width: 767px) {
  .gps-amenities {
    grid-template-columns: 1fr;
  }
}

#wrapper {
  overflow: visible !important;
}

/* Inner titlebars: no collapsed 65px white gap under the banner */
.parallax.titlebar {
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}
#titlebar,
.parallax #titlebar {
  margin: 0 !important;
  margin-bottom: 0 !important;
  padding: 28px 0 !important;
}
#titlebar .col-md-12 {
  display: flex !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 28px;
  flex-wrap: wrap;
  float: none !important;
  width: 100% !important;
}
#titlebar h1,
#titlebar h2,
.parallax #titlebar h1,
.parallax #titlebar h2 {
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1 1 240px;
  max-width: min(640px, calc(100% - 180px));
  font-size: 24px !important;
  line-height: 1.3 !important;
  margin: 0 !important;
}
#titlebar #breadcrumbs,
.parallax #titlebar #breadcrumbs {
  position: static !important;
  transform: none !important;
  top: auto !important;
  right: auto !important;
  width: auto !important;
  margin: 4px 0 0 !important;
  flex: 0 0 auto;
}
.parallax.titlebar + section,
.parallax.titlebar + .container,
.parallax.titlebar + div {
  margin-top: 0 !important;
}
@media (max-width: 767px) {
  #titlebar h1,
  #titlebar h2,
  .parallax #titlebar h2 {
    max-width: 100% !important;
    flex-basis: 100%;
    font-size: 22px !important;
  }
}
section.gps-legal,
section.gps-about,
section.gps-contact,
section.gps-blog,
section.gps-plist,
section.gps-svc {
  padding-top: 28px !important;
}

#header-container {
  position: relative;
  z-index: 1000;
  height: 88px;
  overflow: visible !important;
  background: var(--kdh-navy) !important;
}

#header-container,
#header,
#header.cloned,
#header.cloned.sticky {
  background: var(--kdh-navy) !important;
  box-shadow: none !important;
  border: 0 !important;
  border-bottom: 0 !important;
}

/* Homepage: transparent bar over the video, no navy strip */
body:has(.HomeBanner) #header-container,
body:has(.HomeBanner) #header,
body:has(.HomeBanner) #header .gps-header {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

body:has(.HomeBanner) #header-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 88px;
}

body:has(.HomeBanner) #header.cloned.sticky {
  background: var(--kdh-navy) !important;
}

body:has(.HomeBanner) #navigation.style-1 > ul > li > a {
  text-shadow: 0 1px 8px rgba(0,0,0,.45);
}

/* ---------------------------------------------------------------------------
   Homepage hero legibility over the video.

   Measured, not guessed. Against the footage's own frames:

       logo wordmark vs sky            2.25:1
       nav links vs sky                1.26:1
       "Dream Property" vs backdrop    1.37:1
       white headline on a cloud frame 1.21:1
       WCAG AA (large bold text)       3.0:1 ; normal text 4.5:1

   A text-shadow cannot fix this: the background is a VIDEO, so the contrast
   changes frame to frame, and the logo is an image, which a shadow does not
   touch. One gradient over the whole hero fixes every frame at once - strong
   at the top for the header bar, easing through the middle where the headline
   sits. One overlay rather than two so the top is not darkened twice.
   --------------------------------------------------------------------------- */
/* Still-image hero, used when a picture is set instead of a video. It carries
   the theme's own .video.before classes so the box, the height and the flow
   are identical to the <video> it stands in for - only the painting differs. */
.kdh-hero-still {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.banner.HomeBanner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
              rgba(15,29,46,.62)  0%,
              rgba(15,29,46,.56) 12%,
              rgba(15,29,46,.52) 30%,
              rgba(15,29,46,.52) 72%,
              rgba(15,29,46,.36) 100%);
  pointer-events: none;
  z-index: 1;
}
/* Nothing else needs re-stacking here. The hero content already sits at
   z-index 11 and the developer-logo strip at 12, both well above the scrim's
   1, and both are positioned in their own right.

   An earlier version of this block set them to position:relative to lift them
   over the scrim. That was a mistake: .gps-hero-brands is
   position:absolute/bottom:0, pinned to the foot of the hero, and forcing it
   to relative dropped it into normal flow after the 100vh video - which
   pushed the developer logos off the bottom of the screen. */
body:has(.HomeBanner) #header { position: relative; z-index: 3; }

/* With the scrim behind it, the white wordmark is the legible one. The
   dark-ink logo is kept for the light inner-page header, unchanged. */
body:has(.HomeBanner) #header #logo img.gps-logo-navy  { display: none  !important; }
body:has(.HomeBanner) #header #logo img.gps-logo-white { display: block !important; }

/* The typed words were brand blue on the video: 1.37:1 measured, and NO blue
   survives this footage - a bright cloud frame drops even the lightest to
   2.6:1. The fix is to stop depending on what is behind them.

   This span was always meant to be a highlight chip: padding 3px 8px and
   border-radius 10px are the theme's own, and only the background had been
   set to zero opacity. Filling it back in restores that, and white on the
   brand blue is a fixed 5.29:1 no matter what the video is doing. */
.utf-banner-headline-text-part span.typed-words,
body:has(.HomeBanner) .utf-banner-headline-text-part span.typed-words {
  color: #ffffff !important;
  background: var(--kdh-blue) !important;
  border-radius: 10px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  /* On phones the theme makes this span display:block to put it on its own
     line, which would stretch the chip the full width of the headline. Keep
     the line break, shrink the chip to the words. */
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

#header {
  padding: 0 !important;
  height: 88px !important;
  min-height: 88px !important;
  max-height: 88px !important;
  overflow: visible !important;
}

#header.cloned.unsticky {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
}

#header.cloned.sticky {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  height: 88px !important;
  min-height: 88px !important;
  max-height: none !important;
  padding: 0 !important;
  overflow: visible !important;
}

#header .gps-header,
#header.cloned .gps-header {
  width: 100% !important;
  max-width: 1400px;
  margin: 0 auto !important;
  padding: 0 40px !important;
  height: 88px !important;
  min-height: 88px !important;
  display: grid !important;
  grid-template-columns: 260px minmax(0, 1fr) auto;
  align-items: center !important;
  column-gap: 12px;
  float: none !important;
  overflow: visible !important;
}

#header .left-side,
#header .right-side,
#header.cloned .left-side,
#header.cloned .right-side {
  float: none !important;
  width: auto !important;
  display: contents;
}

#logo,
#header.cloned #logo {
  float: none !important;
  width: 250px !important;
  max-width: 250px !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  left: auto !important;
  line-height: 0;
  grid-column: 1;
  z-index: 40;
  align-self: center;
}

#logo a {
  display: inline-block;
  line-height: 0;
}

#header #logo img,
#header.cloned #logo img {
  height: 76px !important;
  max-height: 76px !important;
  width: auto !important;
  max-width: 250px !important;
  margin: 0 !important;
  object-fit: contain !important;
}

#header #logo img.gps-logo-navy { display: block !important; }
#header #logo img.gps-logo-white { display: none !important; }

#header.cloned #logo img.gps-logo-navy,
body:not(:has(.HomeBanner)) #header #logo img.gps-logo-navy { display: none !important; }
#header.cloned #logo img.gps-logo-white,
body:not(:has(.HomeBanner)) #header #logo img.gps-logo-white { display: block !important; }

#header.cloned #logo {
  align-self: center;
}

#header.cloned .gps-header {
  height: 88px !important;
  min-height: 88px !important;
}

#navigation,
#navigation.style-1,
#header.cloned #navigation.style-1 {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  grid-column: 2;
}

#navigation.style-1::before {
  display: none !important;
}

#navigation > ul,
#navigation.style-1 > ul {
  float: none !important;
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 2px;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
}

#navigation.style-1 > ul > li {
  float: none !important;
  margin: 0 !important;
  display: block;
  position: relative;
}

#navigation.style-1 > ul > li > a {
  color: #fff !important;
  background: transparent !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  line-height: 1 !important;
  padding: 10px 14px !important;
  border-radius: 4px !important;
  position: relative;
  display: inline-flex !important;
  align-items: center;
  height: auto !important;
  min-height: 0 !important;
  box-shadow: none !important;
}

#navigation.style-1 > ul > li > a::after {
  content: none !important;
}

#navigation.style-1 > ul > li:has(> ul) > a::after {
  content: "" !important;
  width: 5px;
  height: 5px;
  margin-left: 7px;
  margin-top: -3px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  padding: 0 !important;
  opacity: .7;
  font-family: inherit !important;
}

#navigation.style-1 > ul > li > a::before {
  display: none !important;
}

#navigation.style-1 > ul > li > a.current,
#navigation.style-1 > ul > li:hover > a {
  color: var(--kdh-blue) !important;
  background: rgba(0,0,0,.2) !important;
  box-shadow: none !important;
  border-radius: 4px;
  height: auto !important;
  padding: 10px 14px !important;
}

#navigation.style-1 ul ul,
#header.cloned #navigation.style-1 ul ul {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  z-index: 200 !important;
  width: 230px !important;
  min-width: 230px !important;
  left: 0 !important;
  right: auto !important;
  top: 100% !important;
  transform: none !important;
  background: #0f1b33 !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.35) !important;
  border-radius: 10px !important;
  padding: 8px 0 !important;
  margin: 4px 0 0 !important;
}

#navigation.style-1 ul li:hover > ul,
#header.cloned #navigation.style-1 ul li:hover > ul {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#navigation.style-1 ul ul::after,
#navigation.style-1 ul ul::before {
  display: none !important;
}

#navigation.style-1 ul ul li {
  float: none !important;
  width: 100% !important;
  border-bottom: 0 !important;
  display: block;
}

#navigation.style-1 ul ul li a,
#navigation.style-1 ul li ul li a {
  color: #fff !important;
  background: transparent !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 10px 18px !important;
  line-height: 1.3 !important;
  height: auto !important;
  display: block !important;
  box-shadow: none !important;
}

#navigation.style-1 ul ul li a::before,
#navigation.style-1 ul ul li a::after {
  display: none !important;
}

#navigation.style-1 ul ul li a:hover,
#navigation ul li ul li a:hover {
  color: #fff !important;
  background: rgba(0, 114, 168,.12) !important;
}

.header-widget,
#header .header-widget,
#header.cloned .header-widget {
  float: none !important;
  position: static !important;
  top: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center;
  gap: 8px;
  grid-column: 3;
  text-align: right;
  transform: none !important;
}

.header-widget .log-in-button,
.header-widget .sign-in.log-in-button,
.header-widget a.button.border,
.header-widget .button.border {
  background: var(--kdh-blue) !important;
  border: 1px solid var(--kdh-blue) !important;
  color: #fff !important;
  border-radius: 999px !important;
  padding: 0 18px !important;
  margin: 0 !important;
  min-width: 0 !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  line-height: 1 !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  font-family: Nunito, "Open Sans", sans-serif !important;
  transform: none !important;
  top: auto !important;
  position: static !important;
  box-shadow: none !important;
}

.header-widget .log-in-button:hover,
.header-widget a.button.border:hover {
  background: var(--kdh-blue-dark) !important;
  border-color: var(--kdh-blue-dark) !important;
  color: #fff !important;
}

.header-widget .sign-in i,
.header-widget a.button.border i {
  color: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  position: static !important;
}

.mmenu-trigger {
  margin: 0 0 0 auto !important;
  background-color: var(--kdh-blue) !important;
}

.hamburger-inner,
.hamburger-inner::before,
.hamburger-inner::after {
  background-color: #fff !important;
}

/* Footer */
#footer {
  background: var(--kdh-navy) !important;
  padding: 56px 0 0 !important;
  border-top: 0;
}
.gps-foot {
  display: grid;
  grid-template-columns: 1.15fr 1.1fr .9fr 1.05fr;
  gap: 36px 28px;
  padding-bottom: 36px;
}
img.footer-logo {
  max-height: 72px !important;
  width: auto !important;
  max-width: 220px;
  margin: 0 0 16px !important;
  display: block;
}
.gps-foot-brand p {
  color: #fff !important;
  font-size: 14.5px;
  line-height: 1.7;
  margin: 0;
  max-width: 280px;
}
#footer h4 {
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  margin: 0 0 16px !important;
  padding: 0 0 10px !important;
  position: relative;
}
#footer h4::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 36px;
  height: 3px;
  background: var(--kdh-blue) !important;
  border-radius: 2px;
}
.gps-foot-touch,
.gps-foot-links {
  list-style: none;
  margin: 0;
  padding: 0;
}
.gps-foot-touch li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: #fff;
  font-size: 14.5px;
  line-height: 1.55;
  margin: 0 0 12px;
}
.gps-foot-touch i {
  color: var(--kdh-blue);
  margin-top: 3px;
  flex: 0 0 16px;
}
.gps-foot-touch a,
.gps-foot-links a,
.gps-foot-bar a {
  color: #fff !important;
}
.gps-foot-links li { margin: 0 0 10px; }
.gps-foot-links a {
  display: inline-block;
  font-size: 14.5px;
  padding-left: 14px;
  position: relative;
}
.gps-foot-links a::before {
  content: "›";
  position: absolute;
  left: 0;
  color: var(--kdh-blue);
  font-weight: 800;
}
.gps-foot-social {
  display: flex;
  gap: 10px;
  margin-top: 18px;
}
.gps-foot-social a {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.gps-foot-social a:hover { background: var(--kdh-blue); }
.gps-foot-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 16px 0 20px;
  color: #fff;
  font-size: 13px;
}
.gps-foot-bar nav { display: flex; flex-wrap: wrap; gap: 16px; }
.gps-foot-credit {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
}
.gps-foot-credit em {
  font-style: normal;
  font-size: 13px;
  font-weight: 600;
  font-family: Nunito, "Open Sans", sans-serif;
  color: #fff;
  letter-spacing: 0;
}
.gps-foot-credit img {
  height: 42px;
  width: auto;
  max-width: 190px;
  display: block;
  background: transparent;
  border-radius: 0;
  padding: 0;
}
.gps-legal {
  background: #f6f7fb;
  padding: 28px 0 48px;
}
.gps-legal-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.gps-legal-nav {
  background: #fff;
  border-radius: 16px;
  padding: 20px 18px;
  box-shadow: 0 10px 24px rgba(15,23,42,.05);
  position: sticky;
  top: 100px;
}
.gps-legal-nav h4 {
  margin: 0 0 12px;
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #64748b;
}
.gps-legal-nav ul { list-style: none; margin: 0 0 16px; padding: 0; }
.gps-legal-nav li { margin: 0 0 4px; }
.gps-legal-nav a {
  display: block;
  padding: 8px 10px;
  border-radius: 8px;
  color: #334155;
  font-weight: 700;
  font-size: 14px;
}
.gps-legal-nav li.is-on a {
  background: #eff7fb;
  color: var(--kdh-blue);
}
.gps-legal-nav .button {
  width: 100%;
  text-align: center;
  margin: 0 !important;
  border-radius: 10px !important;
}
.gps-legal-main {
  background: #fff;
  border-radius: 18px;
  padding: 32px 36px;
  box-shadow: 0 12px 30px rgba(15,23,42,.05);
  min-height: 480px;
}
.gps-legal-card {
  max-width: none;
  margin: 0;
  background: #fff;
  border: 0;
  border-radius: 18px;
  padding: 0;
  box-shadow: none;
}
.gps-legal-updated {
  color: #64748b;
  font-size: 13px;
  margin: 0 0 16px;
}
.gps-legal-card h3 {
  margin: 22px 0 8px;
  font-size: 18px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-legal-card p,
.gps-legal-card li {
  color: #4b5563;
  font-size: 15px;
  line-height: 1.7;
}
.gps-legal-card ul { margin: 0 0 12px; padding-left: 18px; }
.gps-legal-more { text-align: center; margin-top: 24px; }
.gps-legal-lead {
  font-size: 18px;
  line-height: 1.6;
  color: #334155;
  font-weight: 600;
  margin: 0 0 18px;
}
.gps-legal-body h3 {
  margin: 22px 0 8px;
  font-size: 18px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-legal-body p,
.gps-legal-body li {
  color: #4b5563;
  font-size: 15.5px;
  line-height: 1.75;
}
.gps-legal-body ul { margin: 0 0 14px; padding-left: 18px; }
@media (max-width: 991px) {
  .gps-legal-layout { grid-template-columns: 1fr; }
  .gps-legal-nav { position: static; }
}
.gps-map-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: 960px;
  margin: 0 auto;
}
.gps-map-grid h3 {
  font-size: 18px;
  font-weight: 800;
  color: #0f1b33;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--kdh-blue);
  display: inline-block;
}
.gps-map-grid ul { list-style: none; margin: 0 0 22px; padding: 0; }
.gps-map-grid li { margin: 0 0 8px; }
.gps-map-grid a { color: #334155; font-weight: 600; }
@media (max-width: 767px) {
  .gps-map-grid { grid-template-columns: 1fr; }
  .gps-legal-card { padding: 22px 18px; }
}
@media (max-width: 991px) {
  .gps-foot { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .gps-foot { grid-template-columns: 1fr; }
}

.float {
  background: #25D366 !important;
}

.utf-banner-headline-text-part span.typed-words {
  color: var(--kdh-blue) !important;
}

/* Universal section headings — badge + title + red rule */
.utf-section-headline-item {
  text-align: center;
  margin-bottom: 30px;
}
.utf-section-headline-item.gps-impact-head,
.utf-section-headline-item.gps-advice-head {
  text-align: left;
  margin-bottom: 18px;
}
.utf-section-headline-item span {
  background: #ececec !important;
  color: var(--kdh-blue) !important;
  line-height: 26px !important;
  padding: 2px 12px !important;
  display: block !important;
  max-width: max-content !important;
  margin: 0 auto 8px auto !important;
  border-radius: 4px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-transform: capitalize !important;
  letter-spacing: 0 !important;
}
.utf-section-headline-item.gps-impact-head span,
.utf-section-headline-item.gps-advice-head span {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.utf-section-headline-item h1,
.utf-section-headline-item h2,
.utf-section-headline-item h3,
.utf-section-headline-item h4,
.utf-section-headline-item h3.headline {
  font-size: 36px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #222 !important;
  margin: 0 !important;
  padding: 0 0 14px !important;
  position: relative !important;
}
.utf-section-headline-item h3::before,
.utf-section-headline-item.centered h3::before {
  background: var(--kdh-blue) !important;
  border: 0 none !important;
  content: "" !important;
  height: 3px !important;
  width: 40px !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0 auto !important;
  border-radius: 30px !important;
  position: absolute !important;
  bottom: 0 !important;
}
.utf-section-headline-item.gps-impact-head h3::before,
.utf-section-headline-item.gps-advice-head h3::before {
  margin: 0 !important;
  right: auto !important;
}
.utf-section-headline-item p.utf-slogan-text {
  font-size: 16px !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  color: #727272 !important;
  margin: 16px auto 0 !important;
  max-width: 780px;
}
.gps-yt-title,
.gps-launches-head h3,
.gps-quotes-head h3,
.section-title.v2 h2,
.section-title.v3 h2,
.gps-advice-form-wrap > h2 {
  font-size: 36px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #222 !important;
}

/* All public buttons → brand red */
.gps-impact-btn {
  background: var(--kdh-blue) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(0, 114, 168, .18);
}
.gps-impact-btn:hover {
  background: var(--kdh-blue-dark) !important;
  color: #fff !important;
}
.header-widget a.button.border,
.header-widget .button.border {
  background: var(--kdh-blue) !important;
  border-color: var(--kdh-blue) !important;
  color: #fff !important;
}
.gps-advice-submit,
.gps-advice-form.is-ready .gps-advice-submit {
  background: var(--kdh-blue) !important;
  color: #fff !important;
  cursor: pointer;
}
.gps-advice-form.is-ready .gps-advice-submit:hover,
.gps-advice-submit:hover {
  background: var(--kdh-blue-dark) !important;
}

.utf-main-search-input-item button.button {
  background: var(--kdh-blue) !important;
  border-color: var(--kdh-blue) !important;
  border-radius: 8px !important;
}

.banner,
.banner.HomeBanner {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body:has(.HomeBanner) .banner.HomeBanner {
  position: relative;
  min-height: 100vh;
}

body:has(.HomeBanner) .banner.HomeBanner .utf-parallax-content-area {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  height: 100% !important;
  padding: 0 20px 150px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 11;
}
.gps-hero-brands {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 12;
  padding: 18px 0 22px;
  background: linear-gradient(to top, rgba(0,0,0,.45), transparent);
  text-align: center;
}
.gps-hero-brands-kicker {
  display: inline-block;
  margin: 0 0 8px;
  background: rgba(255,255,255,.92);
  color: var(--kdh-blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  padding: 5px 12px;
  border-radius: 8px;
}
.gps-hero-brands h3 {
  margin: 0 0 14px;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
}
.gps-hero-brands h3::after {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  background: var(--kdh-blue);
  margin: 8px auto 0;
}
.gps-hero-logo-track.gps-marquee .item,
.utf-logo-carousel-item.gps-hero-logo-track .item {
  width: 160px;
  height: 72px;
  margin: 0 8px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
}
.gps-hero-logo-track .item img {
  max-height: 42px;
  max-width: 130px;
  width: auto;
  object-fit: contain;
}

.gps-yt {
  background: #fff;
  padding: 56px 0 40px;
}
.gps-yt-title {
  margin: 0 0 36px;
  text-align: center;
  font-size: 36px;
  font-weight: 800;
  color: #0f1b33;
  letter-spacing: -.02em;
}
.gps-yt-viewport {
  overflow: hidden;
}
.gps-yt-track {
  overflow: hidden;
  width: 100%;
}
.gps-yt-card {
  flex: 0 0 300px;
  width: 300px;
  max-width: 300px;
  margin-right: 22px;
  min-width: 0;
  text-decoration: none !important;
  color: inherit;
  display: block;
}
.gps-yt-thumb {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  background: #111;
  aspect-ratio: 16 / 10;
}
.gps-yt-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-yt-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,.35));
}
.gps-yt-card:hover .gps-yt-play svg {
  transform: scale(1.08);
}
.gps-yt-play svg {
  transition: transform .2s ease;
}
.gps-yt-card h4 {
  margin: 12px 0 8px;
  font-size: 16px;
  font-weight: 800;
  color: #111827;
  line-height: 1.35;
  min-height: 44px;
}
.gps-yt-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
}
.gps-yt-channel {
  color: var(--kdh-blue);
  font-weight: 700;
}
.gps-yt-views {
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.gps-yt-nav { display: none !important; }
@media (max-width: 991px) {
  .gps-yt-title { font-size: 28px; }
  .gps-yt-card {
    flex-basis: 240px;
    width: 240px;
    max-width: 240px;
  }
  .gps-yt-card h4 { min-height: 0; }
}

.gps-plist {
  background: #f6f7fb;
  padding: 36px 0 64px;
}
.gps-plist-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) 320px;
  gap: 22px;
  align-items: start;
}
.gps-plist-card {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 18px;
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  margin: 0 0 16px;
  box-shadow: 0 10px 28px rgba(15,23,42,.05);
}
.gps-plist-hero {
  display: block;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  height: 210px;
  background: #e8edf3;
}
.gps-plist-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: rgba(15,27,51,.7) !important;
  color: #fff !important;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  z-index: 3;
  padding: 0 !important;
}
.gps-plist-prev { left: 8px; }
.gps-plist-next { right: 8px; }
.gps-plist-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-plist-hero em {
  position: absolute;
  left: 10px;
  top: 10px;
  background: #16a34a;
  color: #fff;
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  padding: 5px 10px;
  border-radius: 8px;
}
.gps-plist-thumbs {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.gps-plist-thumbs button {
  flex: 1;
  height: 56px;
  border-radius: 10px;
  overflow: hidden;
  background: #eef1f6;
  border: 2px solid transparent;
  padding: 0;
  cursor: pointer;
}
.gps-plist-thumbs button.is-on {
  border-color: var(--kdh-blue);
}
.gps-plist-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-plist-body { min-width: 0; }
.gps-plist-top h3 {
  margin: 0 0 4px;
  font-size: 20px;
  font-weight: 800;
  color: #111;
  line-height: 1.3;
}
.gps-plist-top h3 a { color: inherit; text-decoration: none; }
.gps-plist-loc {
  margin: 0 0 10px;
  color: #6b7280;
  font-size: 14px;
}
.gps-plist-price {
  font-size: 22px;
  font-weight: 800;
  color: #111;
  margin: 0 0 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #eef1f6;
}
.gps-plist-facts {
  display: flex;
  gap: 28px;
  margin: 0 0 12px;
}
.gps-plist-facts strong {
  display: block;
  font-size: 13px;
  color: #111;
}
.gps-plist-facts span {
  color: #6b7280;
  font-size: 13px;
}
.gps-plist-blurb {
  margin: 0 0 14px;
  color: #4b5563;
  font-size: 14px;
  line-height: 1.55;
}
.gps-plist-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.gps-plist-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 14px;
  border-radius: 10px;
  border: 1px solid #dbe0e8;
  background: #fff;
  color: #111 !important;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none !important;
}
.gps-plist-actions a.is-main {
  background: var(--kdh-blue) !important;
  border-color: var(--kdh-blue) !important;
  color: #fff !important;
}
.gps-plist-side { position: sticky; top: 100px; }
.gps-plist-enquire,
.gps-plist-types {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(15,23,42,.05);
  margin: 0 0 16px;
  overflow: visible;
}
.gps-plist-enquire h4 {
  margin: 0;
  padding: 16px 18px;
  background: #eceff4;
  font-size: 16px;
  font-weight: 800;
  color: #111;
}
.gps-plist-enquire form { padding: 16px 18px 18px; }
.gps-plist-enquire label {
  display: block;
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 700;
  color: #334155;
}
.gps-plist-enquire input:not(.gps-phone-national):not(.gps-phone-full),
.gps-plist-enquire textarea {
  width: 100% !important;
  border: 1px solid #e6e8ee !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  height: 46px !important;
  padding: 10px 12px !important;
  margin: 6px 0 0 !important;
  background: #fff !important;
}
.gps-plist-enquire textarea { height: 96px !important; resize: vertical; }
.gps-plist-phone { margin-top: 12px; }
.gps-plist-phone > span {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  margin-bottom: 6px;
}
.gps-plist-enquire .gps-phone {
  margin: 0;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  overflow: visible;
}
.gps-plist-enquire .gps-phone-toggle,
form .gps-phone-toggle {
  width: auto !important;
  min-width: 0 !important;
  background: #fff !important;
  color: #111 !important;
  height: 46px !important;
  border-radius: 10px 0 0 10px !important;
  box-shadow: none !important;
}
.gps-plist-enquire button[type="submit"] {
  width: 100%;
  margin-top: 16px;
  height: 44px;
  border: 0;
  border-radius: 10px;
  background: var(--kdh-blue) !important;
  color: #fff !important;
  font-weight: 800;
  cursor: pointer;
}
.gps-plist-types { padding: 18px; }
.gps-plist-types h4 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 800;
  padding-bottom: 10px;
  border-bottom: 1px solid #eef1f6;
}
.gps-plist-types ul { list-style: none; margin: 0; padding: 0; }
.gps-plist-types li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 0;
  font-size: 14px;
}
.gps-plist-types a { color: #4b5563; }
.gps-plist-types span { color: var(--kdh-blue); font-weight: 700; }
.gps-plist-empty { background: #fff; padding: 28px; border-radius: 16px; }
@media (max-width: 991px) {
  .gps-plist-layout,
  .gps-plist-card { grid-template-columns: 1fr; }
  .gps-plist-side { position: static; }
  .gps-plist-hero { height: 220px; }
}

.gps-mv {
  background: #f6f8fc;
  padding: 48px 0 64px;
}
.gps-mv-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.gps-mv-grid article {
  background: #fff;
  border-radius: 18px;
  padding: 28px 26px;
  box-shadow: 0 12px 30px rgba(15,23,42,.05);
}
.gps-mv-kicker {
  display: inline-block;
  background: #ececec;
  color: var(--kdh-blue);
  font-size: 13px;
  font-weight: 800;
  padding: 3px 10px;
  border-radius: 4px;
  margin: 0 0 12px;
}
.gps-mv-grid h4 {
  margin: 0 0 12px;
  font-size: 24px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-mv-grid p {
  color: #4b5563;
  font-size: 15.5px;
  line-height: 1.7;
  margin: 0 0 10px;
}
@media (max-width: 767px) {
  .gps-mv-grid { grid-template-columns: 1fr; }
}

.gps-hblog {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
  height: 100%;
  margin-bottom: 24px;
}
.gps-hblog-img {
  display: block;
  height: 200px;
  overflow: hidden;
  background: #e8edf3;
}
.gps-hblog-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-hblog-body { padding: 18px 18px 20px; }
.gps-hblog-body h3 {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.35;
  min-height: 48px;
}
.gps-hblog-body h3 a { color: #111; text-decoration: none; }
.gps-hblog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 10px;
}
.gps-hblog-meta span {
  background: #f1f5f9;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
}
.gps-hblog-ex {
  margin: 0;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.5;
}

.gps-welcome {
  background: #f6f8fc;
  padding: 48px 0;
}
.gps-welcome-card {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(240px, .75fr);
  gap: 40px 48px;
  align-items: center;
  background: #fff;
  border-radius: 24px;
  padding: 36px 40px;
  box-shadow: 0 16px 40px rgba(15,23,42,.06);
}
.gps-welcome-copy p {
  color: #4b5563;
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 22px;
  max-width: 540px;
}
.gps-welcome-copy .button {
  margin: 0 !important;
  border-radius: 999px !important;
  padding: 12px 22px !important;
  height: auto !important;
}
.gps-welcome-photo {
  border-radius: 20px;
  overflow: hidden;
  max-height: 420px;
}
.gps-welcome-photo img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  object-position: center top;
  display: block;
}
@media (max-width: 767px) {
  .gps-welcome-card { grid-template-columns: 1fr; padding: 24px; }
  .gps-welcome-photo img { height: 320px; }
}

.gps-about {
  background: #fff;
  padding: 56px 0 24px;
}
.gps-about-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 40px 56px;
  align-items: center;
}
.gps-about-hero--solo {
  /* Our Approach has no portrait any more, so the hero runs full width
     instead of leaving an empty 0.9fr column. Delete this rule and restore
     the photo block to put a named director back. */
  grid-template-columns: minmax(0, 1fr);
  max-width: 880px;
}
.gps-about-photo {
  border-radius: 20px;
  overflow: hidden;
  min-height: 420px;
  background: #e8edf3;
}
.gps-about-photo img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
}
.gps-about-photo.gps-director-slot,
.gps-about-photo.gps-director-slot img {
  min-height: 0;
  height: 100%;
  max-height: 560px;
}
.gps-about-copy .gps-about-lead {
  font-size: 17px;
  color: #334155;
  font-weight: 600;
  margin: 0 0 14px;
}
.gps-about-copy p {
  color: #4b5563;
  font-size: 15.5px;
  line-height: 1.75;
  margin: 0 0 12px;
}
.gps-about-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}
.gps-about-actions .button {
  margin: 0 !important;
  border-radius: 999px !important;
  padding: 12px 22px !important;
  height: auto !important;
}
.gps-about-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 48px;
}
.gps-about-stats > div {
  background: #f6f8fc;
  border: 1px solid #eef1f6;
  border-radius: 16px;
  padding: 22px 18px;
  text-align: center;
}
.gps-about-stats strong {
  display: block;
  font-size: 32px;
  font-weight: 800;
  color: #0f1b33;
  letter-spacing: -.02em;
}
.gps-about-stats span {
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
}
.gps-about-why {
  background: #f6f8fc;
  padding: 56px 0;
}
.gps-about-points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 28px;
  counter-reset: aboutn;
}
.gps-about-points li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 0;
  padding: 14px 16px;
  background: #fff;
  border-radius: 12px;
  color: #334155;
  font-size: 14.5px;
  line-height: 1.5;
  font-weight: 600;
}
.gps-about-points li::before {
  counter-increment: aboutn;
  content: counter(aboutn);
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--kdh-blue);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.gps-about-cards-wrap {
  background: #fff;
  padding: 48px 0 64px;
}
.gps-about-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.gps-about-cards article {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 16px;
  padding: 24px 22px;
  box-shadow: 0 10px 24px rgba(15,23,42,.04);
}
.gps-about-cards h4 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-about-cards p {
  margin: 0;
  color: #4b5563;
  font-size: 14.5px;
  line-height: 1.65;
}
@media (max-width: 991px) {
  .gps-about-hero,
  .gps-about-points,
  .gps-about-cards,
  .gps-about-stats { grid-template-columns: 1fr 1fr; }
  .gps-about-hero { grid-template-columns: 1fr; }
  .gps-about-photo,
  .gps-about-photo img { min-height: 280px; }
  .gps-about-photo.gps-director-slot,
  .gps-about-photo.gps-director-slot img,
  .gps-director-slot { min-height: 0; max-height: 480px; }
}
@media (max-width: 640px) {
  .gps-about-points,
  .gps-about-cards,
  .gps-about-stats { grid-template-columns: 1fr; }
}

.gps-svc { background: #fff; padding: 48px 0 24px; }
.gps-svc-why { background: #f6f8fc; padding: 48px 0; }
.gps-svc-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  list-style: none;
  margin: 0 0 36px;
  padding: 0;
}
.gps-svc-pills li {
  background: #f1f5f9;
  color: #0f1b33;
  font-size: 13px;
  font-weight: 700;
  padding: 7px 12px;
  border-radius: 999px;
}
.gps-svc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.gps-svc-grid article,
.gps-svc-split article,
.gps-svc-why-grid article {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 16px;
  padding: 22px 20px;
  box-shadow: 0 10px 24px rgba(15,23,42,.04);
}
.gps-svc-grid h4,
.gps-svc-split h4,
.gps-svc-why-grid h4 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-svc-grid p,
.gps-svc-split p,
.gps-svc-why-grid p {
  color: #4b5563;
  font-size: 14.5px;
  line-height: 1.6;
  margin: 0 0 10px;
}
.gps-svc-grid ul,
.gps-svc-split ul {
  margin: 0 0 14px;
  padding-left: 18px;
  color: #334155;
  font-size: 14px;
  line-height: 1.55;
}
.gps-svc-grid a {
  color: var(--kdh-blue) !important;
  font-weight: 800;
  font-size: 13px;
}
.gps-svc-why-grid,
.gps-svc-split {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
}
.gps-svc-split { grid-template-columns: 1fr 1fr; }
.gps-svc-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.gps-svc-steps li {
  background: #fff;
  border-radius: 16px;
  padding: 18px 16px;
  display: flex;
  gap: 12px;
}
.gps-svc-steps span {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--kdh-blue);
  color: #fff;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.gps-svc-steps strong { display: block; margin-bottom: 6px; color: #0f1b33; }
.gps-svc-steps p { margin: 0; color: #4b5563; font-size: 14px; }
.gps-svc-faq details {
  background: #fff;
  border: 1px solid #eef1f6;
  border-radius: 12px;
  padding: 14px 18px;
  margin: 0 0 10px;
}
.gps-svc-faq summary {
  font-weight: 800;
  color: #0f1b33;
  cursor: pointer;
}
.gps-svc-faq p { margin: 10px 0 0; color: #4b5563; }
.gps-svc-cta {
  text-align: center;
  margin: 36px 0 12px;
  padding: 32px 20px;
  background: #0f1b33;
  color: #fff;
  border-radius: 20px;
}
.gps-svc-cta h3 { color: #fff; margin: 0 0 8px; font-size: 28px; }
.gps-svc-cta p { color: rgba(255,255,255,.8); }
.gps-svc-cta .button { margin-top: 8px; }
@media (max-width: 991px) {
  .gps-svc-grid,
  .gps-svc-why-grid,
  .gps-svc-split,
  .gps-svc-steps { grid-template-columns: 1fr; }
}

.gps-blog {
  background: #f6f7fb;
  padding: 36px 0 64px;
}
.gps-blog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) 320px;
  gap: 24px;
  align-items: start;
}
.gps-blog-feature h3 {
  margin: 0 0 14px;
  font-size: 22px;
  font-weight: 800;
  color: #111;
}
.gps-blog-feature-stage {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #111;
  min-height: 320px;
  margin-bottom: 22px;
}
.gps-blog-feature-slide {
  display: none;
  position: relative;
  min-height: 320px;
}
.gps-blog-feature-slide.is-on { display: block; }
.gps-blog-feature-slide img {
  width: 100%;
  height: 360px;
  object-fit: cover;
  display: block;
}
.gps-blog-feature-cap {
  position: absolute;
  left: 18px;
  right: 80px;
  bottom: 18px;
  color: #fff;
}
.gps-blog-feature-cap em {
  display: inline-block;
  background: #ffe4e4;
  color: var(--kdh-blue);
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  margin-bottom: 8px;
}
.gps-blog-feature-cap strong {
  display: block;
  font-size: 22px;
  line-height: 1.3;
  margin: 0 0 6px;
  text-shadow: 0 8px 24px rgba(0,0,0,.45);
}
.gps-blog-feature-cap span { font-size: 13px; opacity: .9; }
.gps-blog-feat-prev,
.gps-blog-feat-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 64px;
  border: 0;
  background: var(--kdh-blue) !important;
  color: #fff !important;
  font-size: 22px;
  cursor: pointer;
  z-index: 2;
  padding: 0 !important;
}
.gps-blog-feat-prev { left: 0; border-radius: 0 8px 8px 0; }
.gps-blog-feat-next { right: 0; border-radius: 8px 0 0 8px; }
.gps-blog-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 22px;
}
.gps-blog-filters span { font-weight: 700; color: #334155; margin-right: 4px; }
.gps-blog-filters button {
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  color: #334155 !important;
  border-radius: 999px !important;
  height: 36px;
  padding: 0 14px !important;
  font-weight: 700 !important;
  cursor: pointer;
  box-shadow: none !important;
}
.gps-blog-filters button.is-on {
  background: var(--kdh-blue) !important;
  border-color: var(--kdh-blue) !important;
  color: #fff !important;
}
.gps-blog-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 18px;
}
.gps-blog-card em {
  display: inline-block;
  background: #ffe4e4;
  color: var(--kdh-blue);
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  margin: 10px 0 8px;
}
.gps-blog-card-img {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  height: 180px;
  background: #e8edf3;
}
.gps-blog-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-blog-card h3 {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.35;
}
.gps-blog-card h3 a { color: #111; text-decoration: none; }
.gps-blog-card p { margin: 0; color: #6b7280; font-size: 13px; }
.gps-blog-card p b { color: var(--kdh-blue); font-weight: 700; }
.gps-blog-side { position: sticky; top: 100px; }
.gps-blog-box,
.gps-blog-cta {
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  margin: 0 0 16px;
  box-shadow: 0 10px 24px rgba(15,23,42,.05);
}
.gps-blog-box h4 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 800;
  padding-left: 10px;
  border-left: 3px solid var(--kdh-blue);
}
.gps-blog-mini,
.gps-blog-pop {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin: 0 0 12px;
  text-decoration: none !important;
  color: inherit;
}
.gps-blog-mini img,
.gps-blog-pop img {
  width: 72px;
  height: 52px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.gps-blog-mini strong,
.gps-blog-pop strong {
  display: block;
  font-size: 13px;
  line-height: 1.35;
  color: #111;
}
.gps-blog-mini span,
.gps-blog-pop em {
  font-size: 11px;
  color: #6b7280;
  font-style: normal;
}
.gps-blog-pop { grid-template-columns: 22px 56px minmax(0, 1fr); }
.gps-blog-pop span {
  font-weight: 800;
  color: #94a3b8;
  font-size: 12px;
}
.gps-blog-pop img { width: 56px; height: 44px; }
.gps-blog-links { list-style: none; margin: 0; padding: 0; }
.gps-blog-links a {
  display: flex;
  justify-content: space-between;
  padding: 10px 12px;
  margin: 0 0 8px;
  border: 1px solid #eef1f6;
  border-radius: 10px;
  color: #334155;
  font-weight: 700;
  font-size: 14px;
}
.gps-blog-links a::after { content: "›"; color: #94a3b8; }
.gps-blog-cta {
  background: #eff7fb;
  text-align: center;
}
.gps-blog-cta p { margin: 0 0 12px; font-weight: 700; color: #111; }
.gps-blog-cta b { color: var(--kdh-blue); }
.gps-blog-card.is-off { display: none; }
.gps-blog-article {
  background: #fff;
  border-radius: 16px;
  padding: 8px 8px 28px;
  box-shadow: 0 10px 24px rgba(15,23,42,.05);
  min-width: 0;
}
.gps-blog-heroimg {
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
  margin-bottom: 16px;
}
.gps-blog-meta {
  color: #6b7280;
  font-size: 13px;
  margin: 0 16px 16px;
}
.gps-blog-body {
  padding: 0 20px;
  color: #374151;
  font-size: 16px;
  line-height: 1.75;
}
.gps-blog-body h3, .gps-blog-body h4 { color: #0f1b33; font-weight: 800; }
.gps-blog-body blockquote {
  border-left: 3px solid var(--kdh-blue);
  margin: 16px 0;
  padding: 8px 16px;
  background: #f8fafc;
}
.gps-blog-share {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 18px 20px 0;
  font-weight: 700;
}
.gps-blog-share a { color: var(--kdh-blue); }
.gps-blog-search {
  display: flex;
  gap: 8px;
}
.gps-blog-search input {
  flex: 1;
  height: 42px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  padding: 0 12px !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.gps-blog-search button {
  height: 42px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background: var(--kdh-blue) !important;
  color: #fff !important;
  font-weight: 800;
  cursor: pointer;
}
@media (max-width: 991px) {
  .gps-blog-layout,
  .gps-blog-grid { grid-template-columns: 1fr; }
  .gps-blog-side { position: static; }
}

.gps-contact {
  background: #fff;
  padding: 40px 0 56px;
}
.gps-contact-split {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(0, 1.15fr);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(15, 27, 51, .12);
}
.gps-contact-brand {
  background: var(--kdh-navy);
  color: #fff;
  padding: 36px 32px 32px;
}
.gps-contact-brand img {
  max-width: 180px;
  height: auto;
  margin: 0 0 22px;
  display: block;
}
.gps-contact-kicker {
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  font-weight: 700;
}
.gps-contact-brand h3 {
  margin: 0 0 12px;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
}
.gps-contact-brand > p {
  color: rgba(255,255,255,.78);
  font-size: 15px;
  line-height: 1.65;
  margin: 0 0 22px;
}
.gps-contact-brand ul {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
}
.gps-contact-brand li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 0 12px;
  color: rgba(255,255,255,.88);
  font-size: 14px;
  line-height: 1.5;
}
.gps-contact-brand li i {
  color: #ff6b6b;
  margin-top: 3px;
  flex: 0 0 16px;
}
.gps-contact-brand a { color: #fff; }
.gps-contact-actions {
  display: flex;
  gap: 10px;
}
.gps-contact-actions a {
  flex: 1;
  text-align: center;
  background: var(--kdh-blue) !important;
  color: #fff !important;
  font-weight: 700;
  font-size: 13px;
  font-family: Nunito, "Open Sans", sans-serif;
  border-radius: 999px;
  height: 42px;
  line-height: 42px;
  padding: 0 12px;
  text-decoration: none !important;
}
.gps-contact-form {
  background: #fff;
  padding: 36px 32px 32px;
}
.gps-contact-form h3 {
  margin: 0 0 18px;
  font-size: 24px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-contact-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.gps-contact-form input:not(.gps-phone-national):not(.gps-phone-full),
.gps-contact-form textarea {
  width: 100% !important;
  height: 48px !important;
  margin: 0 0 10px !important;
  border: 1px solid #e6e8ee !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
  padding: 12px 14px !important;
  font-size: 15px !important;
}
.gps-contact-form textarea { height: 110px !important; resize: vertical; }
.gps-contact-phone { margin: 0 0 10px; }
.gps-contact-phone .gps-phone {
  margin: 0;
  background: #fff;
  border-radius: 12px;
}
.gps-contact-form .gps-phone-toggle {
  background: #fff !important;
  color: #111 !important;
  width: auto !important;
}
.gps-contact-form button[type="submit"] {
  width: 100%;
  height: 50px;
  border: 0;
  border-radius: 12px;
  background: var(--kdh-blue) !important;
  color: #fff !important;
  font-weight: 800;
  font-size: 15px;
  cursor: pointer;
}
.gps-contact-map {
  margin-top: 22px;
  border-radius: 20px;
  overflow: hidden;
  min-height: 380px;
  background: #e8edf3;
}
@media (max-width: 991px) {
  .gps-contact-split,
  .gps-contact-row { grid-template-columns: 1fr; }
}

.gps-news {
  background: #f4f6fb;
  padding: 12px 0 56px;
}
.gps-news-card {
  position: relative;
  background: #fff;
  border-radius: 24px;
  padding: 28px 32px 24px;
  box-shadow: 0 18px 50px rgba(15, 27, 51, .06);
}
.gps-news-badge {
  position: absolute;
  left: 28px;
  top: 18px;
  background: #0f1b33;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 8px;
  z-index: 2;
}
.gps-news-grid {
  display: grid;
  grid-template-columns: 200px minmax(0, 1.4fr) minmax(220px, .9fr);
  gap: 24px 32px;
  align-items: center;
}
.gps-news-art img {
  width: 100%;
  max-height: 240px;
  object-fit: contain;
  display: block;
  background: transparent;
}
.gps-news-copy h3 {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 800;
  color: #0f1b33;
  line-height: 1.2;
}
.gps-news-copy p {
  margin: 0 0 18px;
  color: #64748b;
  font-size: 15px;
  line-height: 1.55;
}
.gps-news-ok { color: #15803d !important; font-weight: 700 !important; }
.gps-news-err { color: var(--kdh-blue) !important; font-weight: 700 !important; }
.gps-news-form {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 0;
}
.gps-news-field {
  flex: 1 1 auto;
  display: flex;
  align-items: stretch;
  height: 52px;
  background: #fff;
  border: 1px solid #dfe3ea;
  border-radius: 16px;
  overflow: hidden;
  margin: 0 !important;
  padding: 0 !important;
}
.gps-news-field i {
  width: 52px;
  flex: 0 0 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8b93a7;
  border-right: 1px solid #eceff4;
  font-size: 18px;
  line-height: 1;
}
.gps-news-form input[type="email"] {
  flex: 1;
  border: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  font-size: 16px !important;
  line-height: 52px !important;
  color: #0f1b33 !important;
}
.gps-news-form input[type="email"]::placeholder {
  color: #9aa3b2;
}
.gps-news-form button {
  flex: 0 0 auto;
  align-self: center;
  background: var(--kdh-blue) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 16px !important;
  height: 52px !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 28px !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: none !important;
}
.gps-news-form button:hover { background: var(--kdh-blue-dark) !important; }
.gps-news-steps {
  list-style: none;
  margin: 0;
  padding: 0 0 0 22px;
  border-left: 1px solid #e8edf3;
}
.gps-news-steps li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 16px;
  color: #334155;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
}
.gps-news-steps li:last-child { margin-bottom: 0; }
.gps-news-steps span {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #0f1b33;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
}
@media (max-width: 991px) {
  .gps-news-grid { grid-template-columns: 1fr; }
  .gps-news-art { max-width: 180px; }
  .gps-news-steps { border-left: 0; padding-left: 0; }
}

.gps-quotes {
  background: #fff;
  padding: 56px 0 48px;
}
.gps-quotes-head {
  text-align: center;
  margin-bottom: 28px;
}
.gps-quotes-head p {
  margin: 0 0 6px;
  color: var(--kdh-blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.gps-quotes-head h3 {
  margin: 0;
  font-size: 28px;
  font-weight: 800;
  color: #111;
}
.testimonial-carousel.gps-quotes-track .gps-quote-card,
.gps-quotes-track .gps-quote-card {
  width: 340px;
  margin: 0 12px;
  background: #f7f7f8;
  border-radius: 16px;
  padding: 22px 20px 18px;
  box-shadow: 0 8px 24px rgba(17,24,39,.05);
}
.gps-quote-text {
  margin: 0 0 16px;
  color: #333;
  font-size: 15px;
  line-height: 1.65;
  min-height: 88px;
}
.gps-quote-who {
  display: flex;
  align-items: center;
  gap: 10px;
}
.gps-quote-who img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}
.gps-quote-who strong {
  display: block;
  font-size: 14px;
  color: #111;
}
.gps-quote-who span {
  display: block;
  font-size: 12px;
  color: #777;
}

.utf-photo-section-block::before {
  background: linear-gradient(90deg, rgba(15,27,51,.72) 0%, rgba(15,27,51,.35) 55%, rgba(15,27,51,.2) 100%) !important;
  opacity: 1 !important;
}
.utf-photo-section-block .download-img {
  display: none !important;
}

body:has(.HomeBanner) .banner.HomeBanner .utf-parallax-content-area .container {
  width: 100%;
  max-width: 920px;
  margin: 0 auto;
  float: none;
}

body:has(.HomeBanner) .utf-main-search-container-area {
  transform: none !important;
  text-align: center;
  width: 100%;
}

body:has(.HomeBanner) .utf-banner-headline-text-part,
body:has(.HomeBanner) .utf-banner-headline-text-part h2,
body:has(.HomeBanner) .announce {
  text-align: center !important;
}

body:has(.HomeBanner) .utf-main-search-form-item {
  width: 100% !important;
  max-width: 740px;
  margin: 28px auto 0 !important;
}

body:has(.HomeBanner) .utf-main-search-input-item {
  display: flex;
  justify-content: center;
  margin: 0 auto;
}

body:has(.HomeBanner) .row.with-forms {
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 1199px) {
  #header .gps-header,
  #header.cloned .gps-header {
    padding: 0 18px !important;
    column-gap: 16px;
  }
  #navigation.style-1 > ul > li > a {
    padding: 0 6px !important;
    font-size: 11.5px !important;
    letter-spacing: .06em;
  }
  #logo {
    width: 200px !important;
  }
  #logo img,
  #header #logo img,
  #header.cloned #logo img {
    height: 64px !important;
    max-height: 64px !important;
    max-width: 200px !important;
    margin: 0 !important;
  }
}

@media (max-width: 992px) {
  #header,
  #header.cloned,
  #header-container {
    height: 70px !important;
    min-height: 70px !important;
    max-height: 70px !important;
  }
  #header .gps-header,
  #header.cloned .gps-header {
    height: 70px !important;
    min-height: 70px !important;
    grid-template-columns: 1fr auto !important;
    column-gap: 12px;
    padding: 0 16px !important;
  }
  #logo img,
  #header #logo img,
  #header.cloned #logo img {
    height: 52px !important;
    max-height: 52px !important;
    max-width: 180px !important;
    margin: 0 !important;
    filter: none;
  }
  #navigation.style-1,
  #header.cloned #navigation.style-1 {
    display: none !important;
  }
  #navigation.style-1 ul#responsive {
    display: none !important;
  }
  .header-widget {
    display: none !important;
  }
  .mmenu-trigger {
    grid-column: 2;
  }
  #logo,
  #header.cloned #logo {
    position: static !important;
    width: auto !important;
    text-align: left !important;
    left: auto !important;
    right: auto !important;
    grid-column: 1;
  }
}

/* Director photograph slot — matches About left column */
.gps-director-slot {
  background: #ece7df;
  overflow: hidden;
  min-height: 0 !important;
  height: auto !important;
  max-height: 560px;
  aspect-ratio: 3 / 4;
  position: relative;
  border-radius: 22px;
  box-shadow: 0 18px 40px rgba(15, 27, 51, .12);
}
.gps-director-slot img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 12%;
  z-index: 2;
  display: block;
}
.gps-director-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #4b5563;
  z-index: 1;
  letter-spacing: .04em;
}

/* =========================================================
   Business Head letter
   ========================================================= */
.gps-dir-hero {
  background: #0f1b33;
  padding: 36px 20px 28px;
  color: #fff;
}
.gps-dir-hero-inner {
  width: min(1100px, calc(100% - 8px));
  margin: 0 auto;
}
.gps-dir-hero p {
  margin: 0 0 6px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
  color: #f3c2c2;
}
.gps-dir-hero h1 {
  margin: 0;
  font-size: 32px;
  font-weight: 800;
  color: #fff;
}
.gps-dir {
  background: #f4f5f7;
  padding: 36px 20px 64px;
}
.gps-dir-frame {
  width: min(1100px, 100%);
  margin: 0 auto;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  box-shadow: 0 16px 40px rgba(15,27,51,.08);
}
.gps-dir-photo {
  background: #e8eaee;
  min-height: 420px;
  position: relative;
}
.gps-dir-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  position: relative;
  z-index: 2;
  min-height: 420px;
}
.gps-dir-photo-blank {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #6b7280;
  text-align: center;
  padding: 24px;
  background:
    linear-gradient(180deg, #dfe3ea, #cfd5de);
}
.gps-dir-photo-blank span {
  font-weight: 800;
  font-size: 15px;
  color: #0f1b33;
}
.gps-dir-photo-blank small {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: #6b7280;
}
.gps-dir-copy {
  padding: 40px 44px 36px;
}
.gps-dir-kicker {
  margin: 0 0 4px;
  color: var(--kdh-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.gps-dir-copy h2 {
  margin: 0 0 18px;
  font-size: 32px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-dir-lead {
  font-size: 18px !important;
  font-weight: 600;
  color: #0f1b33 !important;
}
.gps-dir-copy p {
  margin: 0 0 14px;
  color: #444;
  font-size: 15.5px;
  line-height: 1.75;
}
.gps-dir-sign {
  margin: 22px 0 18px;
  padding-top: 16px;
  border-top: 1px solid #eee;
}
.gps-dir-sign strong { display: block; font-size: 18px; color: #0f1b33; }
.gps-dir-sign em {
  display: block;
  margin-top: 4px;
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--kdh-blue);
}
.gps-dir-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.gps-dir-actions a {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--kdh-blue);
  color: #fff !important;
  font-weight: 800;
  font-size: 13px;
}
.gps-dir-actions a.ghost {
  background: #fff;
  border: 1px solid #ddd;
  color: #111 !important;
}
@media (max-width: 900px) {
  .gps-dir-frame { grid-template-columns: 1fr; }
  .gps-dir-copy { padding: 28px 22px; }
  .gps-dir-photo, .gps-dir-photo img { min-height: 280px; }
}

.gps-note-hero {
  min-height: 320px;
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
  align-items: flex-end;
}
.gps-note-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(15,27,51,.88), rgba(15,27,51,.28));
}
.gps-note-hero-inner {
  position: relative;
  z-index: 1;
  width: min(1100px, calc(100% - 40px));
  margin: 0 auto;
  padding: 48px 0 36px;
  color: #fff;
}
.gps-note-hero-inner p {
  margin: 0 0 8px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
  color: rgba(255,255,255,.7);
}
.gps-note-hero-inner h1 {
  margin: 0 0 8px;
  font-size: 48px;
  font-weight: 800;
  color: #fff;
}
.gps-note-hero-inner span {
  font-size: 14px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #f3c2c2;
}
.gps-note {
  background: #f6f4f0;
  padding: 48px 20px 20px;
}
.gps-note-letter {
  width: min(760px, 100%);
  margin: 0 auto;
  background: #fff;
  padding: 48px 52px 40px;
  border-radius: 4px;
  box-shadow: 0 20px 50px rgba(15,27,51,.08);
}
.gps-note-date {
  margin: 0 0 10px;
  color: #9a8f86;
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.gps-note-letter h2 {
  margin: 0 0 22px;
  font-size: 28px;
  font-weight: 800;
  color: #0f1b33;
}
.gps-note-lead {
  font-size: 20px !important;
  line-height: 1.45 !important;
  color: #0f1b33 !important;
  font-weight: 600;
}
.gps-note-letter p {
  margin: 0 0 16px;
  color: #444;
  font-size: 16px;
  line-height: 1.8;
}
.gps-note-sign {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid #eee;
}
.gps-note-sign strong {
  display: block;
  font-size: 20px;
  color: #0f1b33;
}
.gps-note-sign em {
  display: block;
  margin-top: 4px;
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--kdh-blue);
}
.gps-note-bar {
  background: #0f1b33;
  color: #fff;
  padding: 28px 20px 36px;
}
.gps-note-bar-inner {
  width: min(1100px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr auto;
  gap: 22px;
  align-items: start;
}
.gps-note-bar span {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #f3c2c2;
  font-weight: 800;
}
.gps-note-bar p,
.gps-note-bar a {
  margin: 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.5;
}
.gps-note-bar-cta {
  display: flex;
  gap: 8px;
}
.gps-note-bar-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--kdh-blue);
  font-weight: 800;
  font-size: 13px;
  white-space: nowrap;
}
.gps-note-bar-cta a.ghost {
  background: transparent;
  border: 1px solid rgba(255,255,255,.3);
}
@media (max-width: 900px) {
  .gps-note-hero-inner h1 { font-size: 34px; }
  .gps-note-letter { padding: 28px 22px; }
  .gps-note-bar-inner { grid-template-columns: 1fr; }
}

.gps-leader-hero.parallax #titlebar {
  padding: 56px 0 48px !important;
}
.gps-leader-hero .gps-kicker {
  margin: 0 0 8px;
  color: rgba(255,255,255,.7);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.gps-leader-hero #titlebar {
  margin-bottom: 0;
}
.gps-leader {
  background: #f4f4f4;
  padding: 48px 0 72px;
}
.gps-leader-card {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 18px 50px rgba(0,0,0,.08);
  margin-top: -28px;
  position: relative;
  z-index: 2;
}
.gps-leader-copy {
  padding: 48px 52px 44px;
  position: relative;
}
.gps-quote-mark {
  display: block;
  font-size: 72px;
  line-height: .6;
  color: var(--kdh-blue);
  font-family: Georgia, serif;
  margin-bottom: 18px;
}
.gps-lead {
  font-size: 22px;
  line-height: 1.45;
  color: var(--kdh-navy);
  font-weight: 600;
  margin: 0 0 22px;
}
.gps-leader-copy p {
  color: #444;
  font-size: 16px;
  line-height: 1.75;
  margin: 0 0 16px;
}
.gps-signoff {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid #ececec;
}
.gps-signoff-name {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: var(--kdh-navy);
}
.gps-signoff-role {
  display: block;
  margin-top: 4px;
  color: var(--kdh-blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.gps-leader-aside {
  background: var(--kdh-navy);
  color: #fff;
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.gps-leader-mark {
  width: 150px;
  height: auto;
  margin-bottom: 22px;
}
.gps-leader-aside h3 {
  margin: 0;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
}
.gps-aside-role {
  margin: 4px 0 22px;
  color: #cfcfcf;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.gps-leader-aside ul {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
}
.gps-leader-aside li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: #d7d7d7;
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 12px;
}
.gps-leader-aside li i {
  color: var(--kdh-blue);
  margin-top: 3px;
}
.gps-leader-aside a {
  color: #fff;
}
.gps-aside-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.gps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none !important;
}
.gps-btn-primary {
  background: var(--kdh-blue);
  color: #fff !important;
}
.gps-btn-ghost {
  border: 1px solid rgba(255,255,255,.35);
  color: #fff !important;
}
@media (max-width: 991px) {
  .gps-leader-card {
    grid-template-columns: 1fr;
    margin-top: 0;
  }
  .gps-leader-copy {
    padding: 32px 22px;
  }
  .gps-leader-aside {
    padding: 28px 22px;
  }
}

/* Newly launched projects under hero */
.gps-advice {
  background: #f3f3f3;
  padding: 56px 0;
  position: relative;
  z-index: 30;
}
.gps-advice-grid {
  display: grid;
  grid-template-columns: minmax(180px, .7fr) minmax(0, 1.4fr);
  gap: 40px 56px;
  align-items: center;
}
.gps-advice-brand {
  display: flex;
  align-items: center;
  justify-content: center;
}
.gps-advice-brand img {
  max-width: 280px;
  width: 100%;
  height: auto;
  display: block;
}
.gps-advice-form-wrap h2 {
  margin: 0 0 8px;
  font-size: 32px;
  font-weight: 800;
  color: #1f2937;
  letter-spacing: -.02em;
}
.gps-advice-form-wrap > p {
  margin: 0 0 22px;
  color: #374151;
  font-size: 15px;
  line-height: 1.5;
}
.gps-advice-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px;
}
.gps-advice-field {
  display: flex;
  align-items: stretch;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  margin: 0 0 12px;
}
.gps-advice-row .gps-advice-field {
  margin-bottom: 0;
}
.gps-advice-field > i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  flex: 0 0 44px;
  color: #6b7280;
  background: #fff;
  border-right: 1px solid #e5e7eb;
  font-size: 16px;
}
.gps-advice-field input[type="text"],
.gps-advice-field input[type="email"],
.gps-advice-field input[type="tel"] {
  flex: 1;
  border: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 12px 14px !important;
  height: 46px !important;
  font-size: 14px !important;
  color: #111 !important;
  border-radius: 0 !important;
}
.gps-advice-phone {
  padding: 0;
  overflow: visible !important;
  position: relative;
  z-index: 8;
}
.gps-advice-phone.is-open {
  z-index: 40;
}
.gps-advice-phone .gps-phone {
  flex: 1;
  margin: 0;
  border: 0;
  border-radius: 0 8px 8px 0;
  background: #fff;
  overflow: visible;
}
.gps-advice-phone .gps-phone-national {
  height: 46px !important;
  padding: 12px 14px !important;
}
.gps-advice-phone .gps-phone-toggle {
  padding: 0 12px !important;
}
.gps-advice-phone .gps-phone-list {
  top: auto;
  bottom: calc(100% + 6px);
}
.gps-advice-terms {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 16px;
  font-size: 14px;
  color: #111;
  font-weight: 500;
  cursor: pointer;
}
.gps-advice-terms input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--kdh-blue);
}
.gps-advice-terms a {
  color: #1d4ed8 !important;
  text-decoration: underline;
}
.gps-advice-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  height: 42px;
  padding: 0 22px;
  border: 0;
  border-radius: 6px;
  background: #cfcfcf;
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  cursor: not-allowed;
  transition: background .2s ease;
}
.gps-advice-form.is-ready .gps-advice-submit {
  background: var(--kdh-blue);
  cursor: pointer;
}
.gps-advice-form.is-ready .gps-advice-submit:hover {
  background: var(--kdh-blue-dark);
}
@media (max-width: 991px) {
  .gps-advice { padding: 40px 0; }
  .gps-advice-grid {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 24px;
  }
  .gps-advice-brand img { max-width: 200px; margin: 0 auto; }
  .gps-advice-form-wrap h2 { font-size: 26px; }
  .gps-advice-row { grid-template-columns: 1fr; }
  .gps-advice-terms { justify-content: center; }
}
@media (max-width: 575px) {
  .gps-advice-form-wrap h2 { font-size: 22px; }
}

.gps-impact {
  background: #fff;
  padding: 72px 0 28px;
}
.gps-impact-grid {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(0, 1.35fr);
  gap: 48px 56px;
  align-items: center;
}
.gps-impact-kicker {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #6b7280;
}
.gps-impact-copy h2 {
  margin: 0 0 18px;
  font-size: 42px;
  line-height: 1.12;
  font-weight: 800;
  color: #111827;
  letter-spacing: -.02em;
}
.gps-impact-copy p {
  margin: 0 0 28px;
  color: #4b5563;
  font-size: 16px;
  line-height: 1.7;
  max-width: 460px;
}
.gps-impact-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #111827;
  color: #fff !important;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 18px 12px 22px;
  border-radius: 999px;
  text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(17, 24, 39, .12);
}
.gps-impact-btn span {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}
.gps-impact-btn:hover {
  background: #0f1b33;
  color: #fff !important;
}
.gps-impact-card {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px 12px;
  background: #f6f8fc;
  border: 1px solid #eef1f6;
  border-radius: 28px;
  padding: 42px 28px 36px;
  box-shadow: 0 18px 50px rgba(15, 27, 51, .06);
}
.gps-impact-stat {
  text-align: center;
  padding: 8px 6px;
}
.gps-impact-ico {
  width: 58px;
  height: 58px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #eef1f8;
  color: #1b2a4a;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gps-impact-ico svg {
  width: 26px;
  height: 26px;
}
.gps-impact-stat strong {
  display: block;
  font-size: 26px;
  font-weight: 800;
  color: #111827;
  letter-spacing: -.02em;
  margin-bottom: 6px;
}
.gps-impact-stat span:last-child {
  display: block;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 500;
}
@media (max-width: 991px) {
  .gps-impact { padding: 48px 0 12px; }
  .gps-impact-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .gps-impact-copy h2 { font-size: 32px; }
  .gps-impact-copy p { max-width: none; }
  .gps-impact-card { padding: 28px 16px 22px; gap: 22px 8px; }
  .gps-impact-stat strong { font-size: 22px; }
}
@media (max-width: 575px) {
  .gps-impact-card { grid-template-columns: 1fr 1fr; border-radius: 20px; }
}

.gps-launches {
  background: #fff;
  padding: 64px 0 56px;
}
.gps-launches-head {
  text-align: center;
  margin-bottom: 36px;
}
.gps-launches-head h3 {
  margin: 0 0 8px;
  color: #1b1440;
  font-size: 32px;
  font-weight: 800;
}
.gps-launches-head p {
  margin: 0;
  color: #8a8a8a;
  font-size: 16px;
}
.gps-launch-slide {
  padding: 10px 12px;
}
.gps-launch-card {
  display: block;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(17, 24, 39, .08);
  text-decoration: none !important;
  color: inherit;
  height: 100%;
}
.gps-launch-photo {
  height: 190px;
  overflow: hidden;
  background: #eee;
}
.gps-launch-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-launch-body {
  padding: 18px 18px 16px;
}
.gps-launch-body h4 {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 800;
  color: #111;
  line-height: 1.3;
}
.gps-launch-loc {
  margin: 0 0 14px;
  color: #8b8b8b;
  font-size: 14px;
}
.gps-launch-meta {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
}
.gps-launch-meta strong {
  display: block;
  color: #111;
  font-size: 16px;
}
.gps-launch-meta span {
  display: block;
  color: #8b8b8b;
  font-size: 13px;
  margin-top: 2px;
}
.gps-launch-tag {
  background: var(--kdh-blue);
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 700;
  padding: 7px 14px 7px 18px;
  clip-path: polygon(10px 0, 100% 0, 100% 100%, 10px 100%, 0 50%);
  white-space: nowrap;
  margin: 0 !important;
}
.gps-launches .owl-controls,
.gps-launches .owl-nav {
  margin: 0;
}
.gps-launches .owl-next,
.gps-launches .owl-prev,
.gps-launches .owl-buttons div {
  display: none !important;
}

/* Universal marquee (replaces carousels site-wide) */
.gps-marquee {
  overflow: hidden !important;
  width: 100%;
}
.gps-marquee-track {
  display: flex;
  align-items: stretch;
  width: max-content;
  animation-name: gps-marquee-x;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  will-change: transform;
}
.gps-marquee:hover .gps-marquee-track {
  animation-play-state: paused;
}
.gps-marquee-static .gps-marquee-track,
.gps-marquee-static {
  animation: none !important;
  justify-content: center;
}
.gps-marquee-track > * {
  flex: 0 0 auto;
}
@keyframes gps-marquee-x {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.carousel.gps-marquee .utf-carousel-item-area,
.carousel.gps-marquee .gps-launch-slide {
  width: 360px;
  max-width: 80vw;
}
.utf-logo-carousel-item.gps-marquee .item {
  width: 180px;
  padding: 10px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.utf-logo-carousel-item.gps-marquee .item img {
  max-height: 64px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
}
.utf-listing-carousel-item.gps-marquee {
  height: 220px;
}
.utf-listing-carousel-item.gps-marquee .gps-marquee-track > * {
  width: 100%;
  min-width: 260px;
}
.utf-listing-carousel-item.gps-marquee img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}
.fullwidth-property-slider.gps-marquee .item,
.fullwidth-home-slider.gps-marquee .item,
.property-slider.gps-marquee .item {
  width: min(920px, 86vw);
  height: 420px;
  background-size: cover;
  background-position: center;
  display: block;
}
.property-slider-nav.gps-marquee .item {
  width: 160px;
  height: 90px;
  margin: 0 6px;
  background-size: cover;
  background-position: center;
}
.gps-marquee .owl-controls,
.gps-marquee .owl-buttons,
.gps-marquee .owl-pagination,
.gps-marquee .slick-arrow,
.gps-marquee .slick-dots {
  display: none !important;
}

/* Property listing page */
.gps-listing {
  background: #f3f4f6;
  padding: 24px 0 80px;
}
.gps-listing-frame {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 12px 40px rgba(17,24,39,.08);
  overflow: hidden;
}
.gps-listing-photos {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 8px;
  background: #111;
  min-height: 380px;
}
.gps-listing-photos::before,
.gps-listing-photos::after {
  display: none !important;
  content: none !important;
}
.gps-listing-photo-main,
.gps-listing-photo-side a {
  display: block;
  position: relative;
  overflow: hidden;
  background: #1a1a1a;
}
.gps-listing-photo-main img,
.gps-listing-photo-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-listing-photo-main {
  min-height: 380px;
}
.gps-listing-photo-main img {
  height: 420px;
}
.gps-listing-photo-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 8px;
}
.gps-listing-photo-side img {
  height: 206px;
}
.gps-listing-photo-side a span {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
.gps-listing-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  padding: 22px 28px 18px;
  border-bottom: 1px solid #eee;
}
.gps-listing-top h1 {
  margin: 0 0 6px;
  font-size: 28px;
  font-weight: 800;
  color: #111;
}
.gps-listing-top p {
  margin: 0;
  color: #667;
  font-size: 14px;
}
.gps-listing-price {
  color: var(--kdh-blue);
  font-size: 26px;
  font-weight: 800;
  white-space: nowrap;
}
.gps-listing-grid {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  padding: 8px 28px 32px;
}
.gps-listing-grid::before,
.gps-listing-grid::after {
  display: none !important;
  content: none !important;
}
.gps-listing-copy {
  flex: 1 1 auto;
  min-width: 0;
}
.gps-listing-copy section {
  padding: 22px 0;
  border-top: 1px solid #f0f0f0;
}
.gps-listing-copy h2 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 800;
  color: #111;
}
.gps-listing-copy p {
  margin: 0 0 12px;
  color: #444;
  font-size: 15.5px;
  line-height: 1.7;
}
.gps-listing-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.gps-listing-checks li {
  position: relative;
  padding-left: 22px;
  color: #333;
  font-size: 14.5px;
  line-height: 1.45;
}
.gps-listing-checks li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--kdh-blue);
  font-weight: 800;
}
.gps-listing-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.gps-listing-tags span {
  background: #f4f4f5;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 13px;
  color: #333;
}
.gps-listing-floor img,
.gps-listing-map iframe {
  width: 100%;
  border-radius: 12px;
  border: 0;
}
.gps-listing-map iframe {
  min-height: 280px;
}
.gps-listing-side {
  flex: 0 0 320px;
  width: 320px;
  position: sticky;
  top: 90px;
}
.gps-listing-card {
  border: 1px solid #ececec;
  border-radius: 16px;
  padding: 16px 16px 14px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(17,24,39,.06);
}
.gps-listing-card-thumb {
  width: 100%;
  height: 120px;
  object-fit: cover;
  border-radius: 10px;
  margin-bottom: 10px;
}
.gps-listing-card-name {
  font-weight: 800;
  font-size: 16px;
  color: #111;
}
.gps-listing-card-price {
  color: var(--kdh-blue);
  font-weight: 800;
  margin: 4px 0 8px;
}
.gps-listing-card p {
  margin: 0 0 12px;
  color: #777;
  font-size: 12.5px;
}
.gps-listing-card input {
  width: 100%;
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 11px 12px;
  margin: 0 0 8px;
  font-size: 14px;
}
.gps-listing-card button {
  width: 100%;
  border: 0;
  border-radius: 10px;
  background: var(--kdh-blue);
  color: #fff;
  font-weight: 700;
  padding: 12px;
  cursor: pointer;
}
.gps-listing-card-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}
.gps-listing-card-actions a {
  text-align: center;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 9px 8px;
  font-size: 13px;
  font-weight: 700;
  color: #111;
}
@media (max-width: 991px) {
  .gps-listing-photos,
  .gps-listing-grid,
  .gps-listing-top,
  .gps-listing-checks {
    display: block;
  }
  .gps-listing-photo-main img,
  .gps-listing-photo-side img {
    height: 220px;
  }
  .gps-listing-side {
    width: 100%;
    position: static;
    margin-top: 12px;
  }
  .gps-listing-price {
    margin-top: 10px;
  }
}

/* legacy property selectors kept below for safety */
.gps-prop {
  background: #f6f6f7;
  padding: 0 0 72px;
  overflow: hidden;
}
.gps-prop-gallery {
  display: block;
  width: 100%;
  background: #111;
}
.gps-prop-hero {
  display: block;
  position: relative;
  overflow: hidden;
  width: 100%;
}
.gps-prop-hero img {
  width: 100%;
  height: 460px;
  object-fit: cover;
  display: block;
}
.gps-prop-hero-count {
  position: absolute;
  left: 20px;
  bottom: 20px;
  background: rgba(0,0,0,.62);
  color: #fff;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
}
.gps-prop-thumbs {
  display: flex;
  gap: 8px;
  padding: 8px 12px 12px;
  overflow-x: auto;
  background: #111;
}
.gps-prop-thumbs a {
  display: block;
  position: relative;
  overflow: hidden;
  flex: 0 0 160px;
  height: 100px;
  border-radius: 8px;
}
.gps-prop-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gps-prop-more {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
}
.gps-prop-hidden { display: none !important; }
.gps-prop-shell {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  width: min(1180px, calc(100% - 40px));
  margin: 24px auto 0;
  position: relative;
  z-index: 2;
}
.gps-prop-shell::before,
.gps-prop-shell::after {
  display: none !important;
  content: none !important;
}
.gps-prop-main,
.gps-prop-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(17,24,39,.06);
}
.gps-prop-main {
  padding: 32px 36px 40px;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
}
.gps-prop-head h1 {
  margin: 10px 0 8px;
  font-size: 32px;
  font-weight: 800;
  color: #111;
  line-height: 1.2;
}
.gps-prop-loc {
  margin: 0;
  color: #6b6b6b;
  font-size: 15px;
}
.gps-prop-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.gps-chip {
  display: inline-flex;
  align-items: center;
  background: #111;
  color: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
}
.gps-chip-price {
  background: var(--kdh-blue);
}
.gps-chip-ghost {
  background: #f3f3f3;
  color: #333;
}
.gps-prop-block {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #eee;
}
.gps-prop-block h2 {
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: 800;
  color: #111;
}
.gps-prop-copy,
.gps-prop-rich,
.gps-prop-amenities {
  color: #444;
  font-size: 15.5px;
  line-height: 1.75;
  overflow: hidden;
}
.gps-prop-copy *,
.gps-prop-rich *,
.gps-prop-amenities * {
  max-width: 100% !important;
  float: none !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
}
.gps-prop-copy p,
.gps-prop-rich p {
  margin: 0 0 12px;
}
.gps-prop-amenities .amenities__item,
.gps-prop-amenities li {
  display: inline-flex;
  margin: 0 8px 8px 0;
  background: #f6f6f6;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 13px;
}
.gps-prop-floor img {
  width: 100%;
  border-radius: 12px;
}
.gps-prop-embed iframe {
  width: 100%;
  min-height: 320px;
  border: 0;
  border-radius: 12px;
}
.gps-prop-side {
  position: sticky;
  top: 88px;
  flex: 0 0 340px;
  width: 340px;
  max-width: 100%;
}
.gps-prop-card {
  padding: 24px 22px 20px;
}
.gps-prop-card h3 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 800;
}
.gps-prop-card > p {
  margin: 0 0 16px;
  color: #777;
  font-size: 13px;
}
.gps-prop-card input {
  width: 100%;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 12px 14px;
  margin: 0 0 10px;
  font-size: 14px;
}
.gps-prop-card button {
  width: 100%;
  border: 0;
  border-radius: 10px;
  background: var(--kdh-blue);
  color: #fff;
  font-weight: 700;
  padding: 13px 16px;
  cursor: pointer;
}
.gps-prop-card-links {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 600;
}
.gps-prop-card-links a {
  color: #111;
}
@media (max-width: 991px) {
  .gps-prop-shell {
    flex-direction: column;
    width: calc(100% - 24px);
  }
  .gps-prop-hero img {
    height: 240px;
  }
  .gps-prop-thumbs a {
    flex-basis: 120px;
    height: 80px;
  }
  .gps-prop-main {
    padding: 22px 18px;
  }
  .gps-prop-side {
    position: static;
  }
}


/* ── Home banner search: restore the stacked layout on phones ───────────────
   `body:has(.HomeBanner) .utf-main-search-input-item` above sets display:flex
   with no media query, and its specificity beats the `display:block` mobile
   rule in stylesheet.css (~L14571). The button's mobile `width:100%` then ate
   the whole row and squeezed the text input down to a sliver. Stack them
   again below 767px, matching the breakpoint stylesheet.css already uses. */
@media (max-width: 767px) {
  body:has(.HomeBanner) .utf-main-search-input-item {
    display: block;
  }
  body:has(.HomeBanner) .utf-main-search-input-item input {
    width: 100%;
    height: 52px;
    margin: 0 0 10px;
  }
  body:has(.HomeBanner) .utf-main-search-input-item button.button {
    width: 100%;
    height: 52px;
    margin: 0;
  }
}

/* Spam honeypot (resources/views/partials/honeypot.blade.php). Positioned off
   screen rather than display:none — some bots skip fields that are explicitly
   hidden, and this must look like a normal field to them while staying
   invisible and unreachable for real visitors. */
.gps-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Contact page: registered + office address pair.
   Two addresses side by side on desktop, stacked on phones. Each is labelled
   so a visitor can tell the legal address from the one they can walk into. */
.gps-addr-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 0 0 22px;
}
.gps-addr {
  padding: 15px 16px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px;
  background: rgba(255,255,255,.05);
}
.gps-addr-tag {
  display: block; margin: 0 0 7px;
  font-size: 10.5px; font-weight: 800; letter-spacing: .13em;
  text-transform: uppercase; color: #e8b4b4;
}
.gps-addr p {
  margin: 0; font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,.88);
}
@media (max-width: 767px) {
  .gps-addr-pair { grid-template-columns: 1fr; gap: 12px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   DISCLAIMER GATE  (.gps-disclaimer)
   Shown once per visitor, content edited in Settings -> Disclaimer.
   Navy head bar and red agree button so it reads as part of the brand rather
   than a browser dialog.
   ═══════════════════════════════════════════════════════════════════════════ */
.gps-disclaimer {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}
.gps-disclaimer[hidden] { display: none !important; }

.gps-disclaimer-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 18, 38, .72);
  backdrop-filter: blur(2px);
}
/* stop the page behind scrolling while the notice is up */
body.gps-disclaimer-open { overflow: hidden; }

.gps-disclaimer-box {
  position: relative;
  width: 100%;
  max-width: 560px;
  max-height: min(72vh, 620px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 40px 90px -20px rgba(7, 18, 38, .55);
}

.gps-disclaimer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 20px;
  background: #0b2450;
  border-bottom: 3px solid #0072a8;
}
.gps-disclaimer-head h2 {
  margin: 0;
  font-size: 16.5px;
  font-weight: 800;
  color: #fff;
  text-transform: none;
  letter-spacing: .01em;
}
.gps-disclaimer-x {
  background: none;
  border: 0;
  padding: 0 4px;
  font-size: 26px;
  line-height: 1;
  color: rgba(255, 255, 255, .65);
  cursor: pointer;
  transition: color .15s ease;
}
.gps-disclaimer-x:hover { color: #fff; }

.gps-disclaimer-body {
  padding: 18px 20px 6px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.gps-disclaimer-body p {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.6;
  color: #44557a;
}
.gps-disclaimer-body strong { color: #0b2450; font-weight: 700; }
.gps-disclaimer-body a { color: #0072a8; text-decoration: underline; }

.gps-disclaimer-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 11px 20px;
  border-top: 1px solid #e7ecf4;
  background: #f8fafd;
}
.gps-disclaimer-ack {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #6b7c96;
}
.gps-disclaimer-agree {
  border: 0;
  border-radius: 999px;
  padding: 9px 26px;
  font-size: 13.5px;
  font-weight: 700;
  color: #fff;
  background: #0072a8;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.gps-disclaimer-agree:hover { background: #005a85; transform: translateY(-1px); }
.gps-disclaimer-agree:focus-visible { outline: 3px solid rgba(0, 114, 168, .35); outline-offset: 2px; }

@media (max-width: 575px) {
  .gps-disclaimer { padding: 12px; }
  /* 86vh, not full height: leaving a strip of the page visible keeps it a
     notice rather than a takeover, and shows there is a site behind it. */
  .gps-disclaimer-box { max-height: 86vh; border-radius: 14px; }
  .gps-disclaimer-head { padding: 14px 18px; }
  .gps-disclaimer-head h2 { font-size: 17px; }
  .gps-disclaimer-body { padding: 18px 18px 4px; }
  .gps-disclaimer-body p { font-size: 13.5px; }
  .gps-disclaimer-foot { padding: 14px 18px; justify-content: center; text-align: center; }
  .gps-disclaimer-agree { width: 100%; }
}

/* Contact page: "Get directions" under the embedded map. The iframe pins the
   office from a co-ordinate pair; this button hands the visitor the real
   Google Maps listing so it opens in their phone's map app. Hidden by the
   Blade when Settings -> Contact -> Map link is left blank. */
.gps-map-directions {
  display: inline-block;
  margin-top: 14px;
}

/* ===========================================================================
   Homepage hero search — Buy / Rent / Commercial
   A tab row sitting on the dark scrim, above one white bar holding the icon,
   the input and the Search button. Replaces the single input the theme had.
   =========================================================================== */
.kdh-search {
  max-width: 880px;
  margin: 0 auto;
  text-align: left;
}
.kdh-search-tabs {
  display: flex;
  gap: 4px;
  padding: 0 6px;
}
.kdh-tab {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 10px 18px 12px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  cursor: pointer;
  position: relative;
  transition: color .15s ease;
}
.kdh-tab:hover { color: #fff; }
.kdh-tab.is-on { color: #fff; }
/* The underline is on a pseudo-element so switching tabs cannot shift the
   row's height by a pixel. */
.kdh-tab.is-on::after {
  content: "";
  position: absolute;
  left: 18px; right: 18px; bottom: 4px;
  height: 3px;
  border-radius: 2px;
  background: #fff;
}
.kdh-search-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border-radius: 14px;
  padding: 8px 8px 8px 18px;
  box-shadow: 0 18px 44px rgba(8,20,36,.28);
}
.kdh-search-ico {
  width: 22px; height: 22px;
  flex: 0 0 22px;
  color: #8a99ab;
}
.kdh-search-bar input[type="text"] {
  flex: 1 1 auto;
  min-width: 0;
  height: 54px !important;
  margin: 0 !important;
  padding: 0 6px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 16px !important;
  color: #23303f !important;
}
.kdh-search-bar input[type="text"]:focus { outline: none !important; box-shadow: none !important; }
.kdh-search-bar input::placeholder { color: #93a2b2; }
.kdh-search-go {
  flex: 0 0 auto;
  height: 54px !important;
  margin: 0 !important;
  padding: 0 34px !important;
  border-radius: 10px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  /* The bar is white, so the divider the reference has sits left of the
     button rather than being drawn on it. */
  border-left: 0 !important;
}
.kdh-search-go::before {
  content: "";
  position: absolute;
}

@media (max-width: 767px) {
  .kdh-search-tabs { gap: 0; padding: 0 2px; }
  .kdh-tab { padding: 9px 11px 11px; font-size: 12.5px; letter-spacing: .04em; }
  .kdh-tab.is-on::after { left: 11px; right: 11px; }
  .kdh-search-bar {
    flex-wrap: wrap;
    padding: 10px;
    gap: 8px;
    border-radius: 12px;
  }
  /* Icon and input share the top row; the button takes the row below it.
     Giving the input flex-basis 100% pushed it onto its own line and left the
     magnifier stranded above it. */
  .kdh-search-ico { order: 1; flex: 0 0 20px; width: 20px; height: 20px; margin-left: 4px; }
  .kdh-search-bar input[type="text"] {
    order: 2;
    flex: 1 1 0;
    min-width: 0;
    height: 46px !important;
    padding: 0 4px !important;
    font-size: 15px !important;
  }
  .kdh-search-go { order: 3; flex: 1 1 100%; padding: 0 !important; height: 46px !important; }
}

/* Search results: what was searched for. */
.gps-search-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 18px;
  color: #6b7a8c;
  font-size: 14.5px;
}
.gps-search-chip {
  background: var(--kdh-blue);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 5px 11px;
  border-radius: 999px;
}

/* ===========================================================================
   "Our Impact" card — redesign (2026-09-25)
   ---------------------------------------------------------------------------
   Delete this whole block to get the previous version back. Nothing outside
   this section is touched.

   What was wrong: the card was a 3-column grid holding 4 items, so the fourth
   ("Direct / From the Developer") dropped onto a row of its own and sat alone
   against two empty columns. Two thirds of the second row was blank, which is
   what made the panel look unfinished.

   Now a 2x2: four equal quadrants, no orphan. The icon moves beside the
   figure instead of above it, which reads as a fact rather than a badge and
   uses the card's width instead of leaving air down both sides. Hairlines
   between the quadrants give it structure, so the panel does not need to lean
   on its own empty space for separation.
   =========================================================================== */
.gps-impact-card {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid #e6ecf4;
  box-shadow: 0 20px 54px rgba(15, 27, 51, .08);
}

/* Three children in source order — icon, figure, label — placed explicitly so
   the icon spans both text rows without needing a wrapper element. */
.gps-impact-stat {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  grid-template-areas:
    "ico num"
    "ico lbl";
  column-gap: 16px;
  row-gap: 2px;
  align-content: center;
  text-align: left;
  padding: 26px 20px;
}
.gps-impact-stat > .gps-impact-ico { grid-area: ico; align-self: center; }
.gps-impact-stat > strong           { grid-area: num; }
.gps-impact-stat > span:last-child  { grid-area: lbl; }

/* Hairlines only between quadrants, never on the outer edge. */
.gps-impact-stat:nth-child(odd)  { border-right: 1px solid #edf1f7; }
.gps-impact-stat:nth-child(-n+2) { border-bottom: 1px solid #edf1f7; }

.gps-impact-ico {
  width: 56px;
  height: 56px;
  margin: 0;
  background: #e8f2f9;
  color: var(--kdh-blue);
}
.gps-impact-ico svg { width: 25px; height: 25px; }

.gps-impact-stat strong {
  font-size: 30px;
  line-height: 1.1;
  margin-bottom: 0;
  color: var(--kdh-navy);
}
.gps-impact-stat span:last-child {
  font-size: 13.5px;
  line-height: 1.35;
  color: #6b7a8c;
}

@media (max-width: 991px) {
  .gps-impact-stat { padding: 22px 16px; grid-template-columns: 48px minmax(0,1fr); column-gap: 13px; }
  .gps-impact-ico  { width: 48px; height: 48px; }
  .gps-impact-ico svg { width: 22px; height: 22px; }
  .gps-impact-stat strong { font-size: 24px; }
}
@media (max-width: 575px) {
  /* One per row on a phone. The vertical hairline would be a stray line
     against the card edge, so only the horizontal ones survive. */
  .gps-impact-card { grid-template-columns: minmax(0, 1fr); padding: 6px 10px; }
  .gps-impact-stat:nth-child(odd)  { border-right: 0; }
  .gps-impact-stat:nth-child(-n+2) { border-bottom: 1px solid #edf1f7; }
  .gps-impact-stat:nth-child(3)    { border-bottom: 1px solid #edf1f7; }
  .gps-impact-stat:last-child      { border-bottom: 0; }
}

/* ===========================================================================
   Homepage search card (index.blade.php .kdh-search-card)
   Six tabs with icons on a white card, the search box underneath.
   Scoped to .kdh-search-card so it outranks the older .kdh-tab rules above.
   =========================================================================== */
.kdh-search { width: 100%; max-width: 900px; margin-left: auto; margin-right: auto; }
.kdh-search-card {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 28px 60px -20px rgba(6, 18, 34, .6), 0 2px 6px rgba(6, 18, 34, .12);
  overflow: hidden;
}
.kdh-search-card .kdh-search-tabs {
  display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 2px;
  padding: 6px 12px 0; margin: 0;
  border-bottom: 1px solid #edf1f6;
  overflow-x: auto; scrollbar-width: none;
}
.kdh-search-card .kdh-search-tabs::-webkit-scrollbar { display: none; }
.kdh-search-card .kdh-tab {
  flex: none; display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 14px 15px; margin: 0;
  font-size: 14.5px; font-weight: 700; letter-spacing: 0; text-transform: none; white-space: nowrap;
  color: #52607a; background: none; border: 0; border-radius: 0;
  transition: color .15s ease;
}
.kdh-search-card .kdh-tab svg {
  width: 18px; height: 18px; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
  color: #98a2b3; transition: color .15s ease;
}
.kdh-search-card .kdh-tab:hover { color: #10233d; }
.kdh-search-card .kdh-tab:hover svg { color: #52607a; }
.kdh-search-card .kdh-tab.is-on { color: #0072a8; }
.kdh-search-card .kdh-tab.is-on svg { color: #0072a8; }
.kdh-search-card .kdh-tab::after { display: none; }
.kdh-search-card .kdh-tab.is-on::after {
  content: ""; display: block; position: absolute;
  left: 12px; right: 12px; bottom: -1px; height: 3px;
  border-radius: 3px 3px 0 0; background: #0072a8;
}
.kdh-search-card .kdh-tab:focus-visible { outline: 2px solid #0072a8; outline-offset: -4px; border-radius: 8px; }
.kdh-search-card .kdh-tab-short { display: none; }

.kdh-search-card .kdh-search-bar {
  background: #fff; border-radius: 0; box-shadow: none;
  padding: 12px 12px 12px 22px; gap: 12px;
}
.kdh-search-card .kdh-search-go { display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; }
.kdh-search-card .kdh-search-go svg { width: 18px; height: 18px; }

/* Phones: a 3 x 2 grid of choices, then the search box. */
@media (max-width: 767px) {
  .kdh-search-card { border-radius: 16px; }
  .kdh-search-card .kdh-search-tabs {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;
    padding: 10px; overflow: visible;
  }
  .kdh-search-card .kdh-tab {
    flex-direction: column; justify-content: center; gap: 5px;
    padding: 10px 4px 9px; border-radius: 11px; background: #f5f7fa;
    font-size: 12.5px; white-space: normal; text-align: center; line-height: 1.2;
  }
  .kdh-search-card .kdh-tab svg { width: 20px; height: 20px; }
  .kdh-search-card .kdh-tab.is-on { background: #e8f3fa; box-shadow: inset 0 0 0 1.5px #0072a8; }
  .kdh-search-card .kdh-tab.is-on::after { display: none; }
  .kdh-search-card .kdh-tab-short { display: inline; }
  .kdh-search-card .kdh-tab-long.has-short { display: none; }
  .kdh-search-card .kdh-search-bar { padding: 10px; }
}
