@font-face {
  font-family: 'Brockmann';
  src: url('../fonts/brockmann-regular-webfont.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Brockmann';
  src: url('../fonts/brockmann-medium-webfont.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Brockmann';
  src: url('../fonts/brockmann-semibold-webfont.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Brockmann';
  src: url('../fonts/brockmann-bold-webfont.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ========================================
   Root Variablen
======================================== */
:root {
	--color-primary: #255faa;
	--color-primary-hover: #2e6dc1;
  --color-secondary: #3676F1;
  --color-secondary-hover: #255faa;
	--color-black: #1f1f1e;
  --color-darkblue: #255faa;
  --color-lightblue: #3676F1;
	--color-bg: #ffffff;
  --color-gray: #F4F4F1;
  --color-gray-second: #bbbbba;
	--color-text: var(--color-black);

	--font-std: 'Brockmann', sans-serif;

}

html,body {
  margin:0;
  width:100%;
  min-height:100%;
  background-color: var(--color-bg);
  padding-top: env(safe-area-inset-top);
  padding-bottom: env(safe-area-inset-bottom);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

body{
  background-color:var(--color-bg);
  overflow-x: hidden;
}

*{
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  letter-spacing: -0.2px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  box-sizing: border-box;
}

p {
    font-size: 1.5rem;
    line-height: 1.6;
    font-weight: 400;
    font-family: var(--font-std);
    margin-bottom: 1em;
  }

/* ========================================
   Text Selection
======================================== */

::selection {
	background: var(--color-secondary);
	color: var(--color-bg);
}

::-moz-selection {
	background: var(--color-secondary);
	color: var(--color-bg);
}


.ld-configurator-thanks,
.ld-configurator-error {
	display: grid;
	justify-items: center;
	gap: 1.25rem;
	width: min(100%, 42rem);
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) 5%;
	text-align: center;
	font-family: var(--font-std);
	color: var(--color-black);
}

.ld-configurator-thanks h2 {
	margin: 0;
	color: #08295c;
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.05;
	font-weight: 700;
}

.ld-configurator-thanks p,
.ld-configurator-error p {
	margin: 0;
	max-width: 34rem;
	color: rgba(31, 31, 30, .72);
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.6;
}

.ld-configurator-error {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid rgba(180, 35, 24, .24);
	border-radius: .45rem;
	background: rgba(180, 35, 24, .08);
	color: #b42318;
	text-align: left;
	justify-items: start;
}

.ld-contact-thanks {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 1.25rem;
	width: min(100%, 42rem);
	min-height: min(70vh, 38rem);
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) 5%;
	text-align: center;
	font-family: var(--font-std);
	color: var(--color-black);
}

.ld-contact-thanks__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(4rem, 7vw, 5.5rem);
	height: clamp(4rem, 7vw, 5.5rem);
	border-radius: 999px;
	background: rgba(37, 95, 170, .1);
	color: var(--color-primary);
}

.ld-contact-thanks h2 {
	margin: 0;
	color: #08295c;
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.05;
	font-weight: 700;
	letter-spacing: -.03em;
}

.ld-contact-thanks p {
	margin: 0;
	max-width: 34rem;
	color: rgba(31, 31, 30, .72);
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	line-height: 1.6;
	font-weight: 400;
}

.ld-contact-thanks .ld-button {
	margin-top: .5rem;
}

/* ========================================
   Site Header / Navigation
======================================== */

.ld-site-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100%;
  padding: clamp(1rem, 2vw, 1.4rem) 5%;
  color: var(--color-bg);
}

.ld-site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 3vw, 3rem);
  width: 100%;
}

.ld-site-header__brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  text-decoration: none;
}

.ld-site-header__logo {
  display: block;
  width: clamp(9.5rem, 13vw, 12rem);
  height: auto;
}

.ld-site-header__nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(1.25rem, 3vw, 3.5rem);
}

.ld-site-header__claim {
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1.2vw, 1.15rem);
  line-height: 1.2;
  font-weight: 500;
  white-space: nowrap;
}

.ld-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  border: 0;
  font-family: var(--font-std);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease;
}

.ld-button--header {
  min-height: 3rem;
  padding: 0.95rem 1.25rem;
  border-radius: 0.22rem;
  background: var(--color-primary);
  color: var(--color-bg);
  font-size: clamp(0.78rem, 0.9vw, 0.9rem);
  text-transform: uppercase;
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.18);
}

.ld-button--header:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

.ld-button--header:focus-visible {
  outline: 2px solid var(--color-bg);
  outline-offset: 4px;
}

.ld-button__icon {
  flex: 0 0 auto;
  transition: transform 180ms ease;
}

.ld-button:hover .ld-button__icon {
  transform: translateX(0.18rem);
}

/* ========================================
   Mobile Header
======================================== */

@media (max-width: 760px) {
  .ld-site-header {
    padding-top: 1rem;
  }

  .ld-site-header__inner {
    gap: 1rem;
  }

  .ld-site-header__logo {
    width: clamp(8.5rem, 38vw, 10.5rem);
  }

  .ld-site-header__claim {
    display: none;
  }

  .ld-button--header {
    min-height: 2.75rem;
    padding: 0.85rem 1rem;
    font-size: 0.72rem;
  }
}

@media (max-width: 420px) {
  .ld-button--header span {
    max-width: 5.8rem;
    line-height: 1.1;
  }

  .ld-button--header {
    gap: 0.35rem;
    padding-inline: 0.8rem;
  }

  .ld-button__icon {
    width: 1rem;
    height: 1rem;
  }
}


/* ========================================
   Hero
======================================== */

.ld-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: 100svh;
  overflow: hidden;
  background: var(--color-darkblue);
  color: var(--color-bg);
}

.ld-hero__media,
.ld-hero__image,
.ld-hero__overlay {
  position: absolute;
  inset: 0;
}

.ld-hero__media {
  z-index: -3;
  display: block;
}

.ld-hero__image {
  z-index: -3;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 68% center;
}

.ld-hero__overlay {
  z-index: -2;
  background:
    linear-gradient(
      90deg,
      rgba(4, 24, 43, 0.9) 0%,
      rgba(4, 24, 43, 0.82) 23%,
      rgba(4, 24, 43, 0.54) 48%,
      rgba(4, 24, 43, 0.18) 70%,
      rgba(4, 24, 43, 0.08) 100%
    ),
    linear-gradient(
      180deg,
      rgba(4, 24, 43, 0.38) 0%,
      rgba(4, 24, 43, 0.1) 42%,
      rgba(4, 24, 43, 0.32) 100%
    );
}

.ld-hero__inner {
  width: 100%;
  padding: clamp(8rem, 18vw, 12rem) 5% clamp(4rem, 8vw, 7rem);
}

.ld-hero__content {
  width: min(100%, 70rem);
}

.ld-hero__title {
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(2.45rem, 3vw, 3.8rem);
  line-height: 1.2;
  font-weight: 700;
}

.ld-hero__title span {
  display: inline;
}

.ld-hero__text {
  max-width: 55rem;
  margin: clamp(1.25rem, 1.8vw, 2rem) 0 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(1.15rem, 1.5rem, 1.7rem);
  line-height: 1.4;
  font-weight: 500;
}

.ld-hero__benefits {
  display: grid;
  gap: 1rem;
  margin: clamp(2rem, 3vw, 3rem) 0 0;
  padding: 0;
  list-style: none;
}

.ld-hero__benefit {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(0.98rem, 1.1vw, 1.2rem);
  line-height: 1.35;
  font-weight: 500;
}

.ld-hero__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: var(--color-bg);
  color: var(--color-primary);
  box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.16);
}

.ld-hero__actions {
  display: grid;
  justify-items: start;
  gap: 1.15rem;
  margin-top: clamp(2rem, 3vw, 3rem);
}

.ld-button--hero {
  min-height: clamp(4rem, 5vw, 5.1rem);
  padding: 1.25rem clamp(1.5rem, 3vw, 3.4rem);
  border-radius: 0.35rem;
  background: #ff6a13;
  color: var(--color-bg);
  font-size: clamp(1rem, 1.2rem, 1.25rem);
  text-transform: uppercase;
  box-shadow: 0 1rem 2rem rgba(255, 106, 19, 0.18);
}

.ld-button--hero:hover {
  background: #ff7a28;
  transform: translateY(-1px);
}

.ld-button--hero:focus-visible {
  outline: 2px solid var(--color-bg);
  outline-offset: 4px;
}

.ld-hero__note {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1.05vw, 1.15rem);
  line-height: 1.35;
  font-weight: 500;
}

.ld-hero__note-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: #f49a2f;
}

/* ========================================
   Hero Responsive
======================================== */

@media (max-width: 980px) {
  .ld-hero {
    min-height: auto;
  }

  .ld-hero__image {
    object-position: 72% center;
  }

  .ld-hero__overlay {
    background:
      linear-gradient(
        90deg,
        rgba(4, 24, 43, 0.94) 0%,
        rgba(4, 24, 43, 0.82) 48%,
        rgba(4, 24, 43, 0.34) 100%
      ),
      linear-gradient(
        180deg,
        rgba(4, 24, 43, 0.42) 0%,
        rgba(4, 24, 43, 0.16) 46%,
        rgba(4, 24, 43, 0.42) 100%
      );
  }

  .ld-hero__content {
    width: min(100%, 43rem);
  }
}

@media (max-width: 760px) {
  .ld-hero {
    align-items: flex-end;
    min-height: 100svh;
  }

  .ld-hero__image {
    object-position: 72% center;
  }

  .ld-hero__overlay {
    background:
      linear-gradient(
        90deg,
        rgba(4, 24, 43, 0.92) 0%,
        rgba(4, 24, 43, 0.78) 58%,
        rgba(4, 24, 43, 0.42) 100%
      ),
      linear-gradient(
        180deg,
        rgba(4, 24, 43, 0.48) 0%,
        rgba(4, 24, 43, 0.12) 32%,
        rgba(4, 24, 43, 0.82) 100%
      );
  }

  .ld-hero__inner {
    padding-top: 7.5rem;
    padding-bottom: 3rem;
  }

  .ld-hero__benefits {
    gap: 0.85rem;
  }

  .ld-button--hero {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .ld-hero__content {
    width: 100%;
  }

  .ld-hero__title {
    font-size: clamp(2.15rem, 11vw, 3.25rem);
  }

  .ld-hero__text {
    font-size: 1.05rem;
  }

  .ld-hero__benefit {
    align-items: flex-start;
    font-size: 0.92rem;
  }

  .ld-hero__check {
    width: 1.55rem;
    height: 1.55rem;
    margin-top: 0.05rem;
  }

  .ld-button--hero {
    min-height: 3.75rem;
    padding: 1rem 1.15rem;
    font-size: 0.9rem;
  }

  .ld-hero__note {
    align-items: flex-start;
    font-size: 0.9rem;
  }
}


/* ========================================
   Hero Trust Bar
======================================== */

.ld-hero-trust {
  position: absolute;
  left: 5%;
  right: 5%;
  bottom: clamp(1.5rem, 4vw, 3.5rem);
  z-index: 3;
}

.ld-hero-trust__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: min(100%, 90rem);
  margin: 0 auto;
  padding: clamp(1.7rem, 2.3vw, 2.7rem) clamp(1.4rem, 2.4vw, 2.6rem);
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.96);
  color: var(--color-black);
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.26);
  backdrop-filter: blur(14px);
}

.ld-hero-trust__item {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 0.9rem;
  padding: 0 clamp(1rem, 2vw, 2rem);
  text-align: center;
}

.ld-hero-trust__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0.1rem;
  right: 0;
  width: 1px;
  height: calc(100% - 0.2rem);
  background: rgba(31, 31, 30, 0.18);
}

.ld-hero-trust__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.4rem;
  color: var(--color-darkblue);
}

.ld-hero-trust__icon svg {
  display: block;
}

.ld-hero-trust__content {
  display: grid;
  justify-items: center;
  gap: 0.55rem;
}

.ld-hero-trust__title,
.ld-hero-trust__text {
  margin: 0;
  font-family: var(--font-std);
}

.ld-hero-trust__title {
  color: var(--color-black);
  font-size: clamp(1rem, 1.05vw, 1.22rem);
  line-height: 1.25;
  font-weight: 700;
}

.ld-hero-trust__text {
  color: rgba(31, 31, 30, 0.78);
  font-size: clamp(0.9rem, 0.95vw, 1.05rem);
  line-height: 1.38;
  font-weight: 400;
}

.ld-hero-trust__stars {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.18rem;
  color: #fbbc05;
}

.ld-hero-trust__stars svg {
  display: block;
  fill: currentColor;
}

/* Hero braucht unten mehr Platz, wenn die Trust-Bar darin liegt */
.ld-hero__inner {
  padding-bottom: clamp(17rem, 26vw, 26rem);
}

/* ========================================
   Hero Trust Bar Responsive
======================================== */

@media (max-width: 1100px) {
  .ld-hero-trust__inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .ld-hero-trust__item {
    padding: 1.2rem;
  }

  .ld-hero-trust__item:not(:last-child)::after {
    display: none;
  }

  .ld-hero-trust__item:nth-child(odd)::after {
    content: "";
    display: block;
    position: absolute;
    top: 1.2rem;
    right: 0;
    width: 1px;
    height: calc(100% - 2.4rem);
    background: rgba(31, 31, 30, 0.15);
  }

  .ld-hero-trust__item:nth-child(-n + 2)::before {
    content: "";
    position: absolute;
    left: 1.2rem;
    right: 1.2rem;
    bottom: 0;
    height: 1px;
    background: rgba(31, 31, 30, 0.15);
  }

  .ld-hero__inner {
    padding-bottom: clamp(24rem, 32vw, 29rem);
  }
}

@media (max-width: 760px) {
  .ld-hero-trust {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    padding: 0 5% clamp(2rem, 7vw, 3rem);
    margin-top: -1rem;
  }

  .ld-hero-trust__inner {
    grid-template-columns: 1fr;
    padding: 1.4rem;
    border-radius: 0.75rem;
  }

  .ld-hero-trust__item {
    grid-template-columns: auto 1fr;
    justify-items: start;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 0;
    text-align: left;
  }

  .ld-hero-trust__item::after,
  .ld-hero-trust__item::before {
    display: none !important;
  }

  .ld-hero-trust__item:not(:last-child) {
    border-bottom: 1px solid rgba(31, 31, 30, 0.14);
  }

  .ld-hero-trust__icon {
    min-width: 3.2rem;
  }

  .ld-hero-trust__content {
    justify-items: start;
  }

  .ld-hero-trust__stars {
    justify-content: flex-start;
  }

  .ld-hero__inner {
    padding-bottom: 3rem;
  }
}

/* ========================================
   Benefits Section
======================================== */

.ld-section {
  padding: clamp(4rem, 8vw, 8rem) 5%;
}

.ld-section__inner {
  width: 100%;
  margin: 0 auto;
}

.ld-benefits {
  background: var(--color-bg);
  color: var(--color-black);
}

.ld-section__header {
  max-width: 68rem;
  margin: 0 auto;
  text-align: center;
}

.ld-section__eyebrow {
  margin: 0 0 0.65rem;
  color: var(--color-primary);
  font-family: var(--font-std);
  font-size: clamp(0.85rem, 1.05vw, 1.12rem);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ld-section__title {
  margin: 0;
  color: #08295c;
  font-family: var(--font-std);
  font-size: clamp(2.35rem, 4vw, 4.5rem);
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.055em;
}

.ld-section__text {
  max-width: 53rem;
  margin: clamp(1rem, 1.7vw, 1.35rem) auto 0;
  color: rgba(31, 31, 30, 0.72);
  font-family: var(--font-std);
  font-size: clamp(1.05rem, 1.25vw, 1.35rem);
  line-height: 1.45;
  font-weight: 400;
}

.ld-benefits__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.1rem, 1.6vw, 1.6rem);
  margin-top: clamp(2.5rem, 4vw, 3.75rem);
}

.ld-card {
  background: var(--color-bg);
}

.ld-benefit-card {
  display: grid;
  justify-items: center;
  align-content: start;
  min-height: 24rem;
  padding: clamp(1.5rem, 2vw, 2.1rem) clamp(1.1rem, 1.6vw, 1.6rem);
  border: 1px solid rgba(31, 31, 30, 0.08);
  border-radius: 0.65rem;
  text-align: center;
  box-shadow: 0 0.55rem 1.45rem rgba(0, 0, 0, 0.09);
}

.ld-benefit-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(5.5rem, 7vw, 7.4rem);
  height: clamp(5.5rem, 7vw, 7.4rem);
  margin-bottom: clamp(1rem, 1.6vw, 1.45rem);
  border-radius: 999px;
  background: rgba(54, 118, 241, 0.08);
  color: #08295c;
}

.ld-benefit-card__icon svg {
  display: block;
  width: 62%;
  height: 62%;
}

.ld-benefit-card__title {
  position: relative;
  margin: 0;
  padding-bottom: 1.45rem;
  color: #08295c;
  font-family: var(--font-std);
  font-size: clamp(1.15rem, 1.35vw, 1.45rem);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.ld-benefit-card__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.55rem;
  width: 2.75rem;
  height: 2px;
  transform: translateX(-50%);
  background: var(--color-primary);
  border-radius: 999px;
}

.ld-benefit-card__text {
  max-width: 17rem;
  margin: 0;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(0.98rem, 1.05vw, 1.12rem);
  line-height: 1.45;
  font-weight: 400;
}

/* ========================================
   Benefits Responsive
======================================== */

@media (max-width: 1120px) {
  .ld-benefits__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ld-benefit-card {
    min-height: 21rem;
  }
}

@media (max-width: 640px) {
  .ld-benefits__grid {
    grid-template-columns: 1fr;
  }

  .ld-section__header {
    text-align: left;
  }

  .ld-section__text {
    margin-inline: 0;
  }

  .ld-benefit-card {
    min-height: auto;
    justify-items: start;
    text-align: left;
  }

  .ld-benefit-card__icon {
    margin-bottom: 1rem;
  }

  .ld-benefit-card__title::after {
    left: 0;
    transform: none;
  }

  .ld-benefit-card__text {
    max-width: none;
  }
}


/* ========================================
   Proof / CTA Section
======================================== */

.ld-proof {
  padding-top: clamp(1.5rem, 3vw, 3rem);
  padding-bottom: clamp(4rem, 7vw, 7rem);
  background: var(--color-bg);
}


.ld-proof-cta {
  display: grid;
  grid-template-columns: 1fr minmax(20rem, 29rem);
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  padding: clamp(1rem, 1.6vw, 1.45rem) clamp(1.2rem, 2.4vw, 2.8rem);
  border-radius: 0.65rem;
  background: linear-gradient(90deg, rgba(54, 118, 241, 0.06), rgba(54, 118, 241, 0.025));
  box-shadow: 0 0.4rem 1.4rem rgba(0, 0, 0, 0.1);
  border: 1px solid var(--color-gray);
}

.ld-proof-cta__intro {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(1.25rem, 2vw, 2.25rem);
}

.ld-proof-cta__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(4.2rem, 5vw, 5.35rem);
  height: clamp(4.2rem, 5vw, 5.35rem);
  border-radius: 999px;
  background: #08295c;
  color: var(--color-bg);
}

.ld-proof-cta__icon svg {
  width: 58%;
  height: 58%;
}

.ld-proof-cta__text {
  max-width: 44rem;
  margin: 0;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(1rem, 1.15vw, 1.28rem);
  line-height: 1.5;
  font-weight: 400;
}

.ld-proof-cta__action {
  display: grid;
  gap: 0.8rem;
  padding-left: clamp(1.5rem, 3vw, 3rem);
  border-left: 1px solid rgba(31, 31, 30, 0.14);
}

.ld-button--proof {
  width: 100%;
  min-height: 3.9rem;
  padding: 1rem clamp(1.1rem, 2vw, 1.8rem);
  border-radius: 0.35rem;
  background: var(--color-primary);
  color: var(--color-bg);
  font-size: clamp(0.95rem, 1vw, 1.1rem);
  text-transform: none;
  box-shadow: 0 0.85rem 1.8rem rgba(37, 95, 170, 0.22);
}

.ld-button--proof:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

.ld-button--proof:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-proof-cta__note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  margin: 0;
  color: rgba(31, 31, 30, 0.72);
  font-family: var(--font-std);
  font-size: clamp(0.86rem, 0.95vw, 1rem);
  line-height: 1.35;
  font-weight: 400;
}

.ld-proof-cta__note svg {
  display: block;
  color: #08295c;
}

/* ========================================
   Proof Bar
======================================== */

.ld-proof-bar {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr 1fr;
  align-items: center;
  margin-top: clamp(1.5rem, 2vw, 2rem);
  padding: clamp(1.15rem, 1.6vw, 1.6rem) clamp(1.1rem, 2vw, 2rem);
  border-radius: 0.55rem;
  background: linear-gradient(90deg, #06305e 0%, #0a3d78 46%, #255faa 100%);
  color: var(--color-bg);
  box-shadow: 0 0.85rem 2rem rgba(37, 95, 170, 0.22);
}

.ld-proof-bar__item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(0.9rem, 1.4vw, 1.25rem);
  min-height: 4.9rem;
  padding: 0 clamp(1rem, 1.8vw, 1.7rem);
}

.ld-proof-bar__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0.35rem;
  right: 0;
  width: 1px;
  height: calc(100% - 0.7rem);
  background: rgba(255, 255, 255, 0.32);
}

.ld-proof-bar__item:first-child {
  padding-left: 0;
}

.ld-proof-bar__item:last-child {
  padding-right: 0;
}

.ld-proof-bar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(3.9rem, 4.8vw, 5.1rem);
  height: clamp(3.9rem, 4.8vw, 5.1rem);
  border: 1.5px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  color: var(--color-bg);
}

.ld-proof-bar__icon svg {
  display: block;
  width: 62%;
  height: 62%;
}

.ld-proof-bar__icon--google {
  border-color: transparent;
  background: var(--color-bg);
}

.ld-proof-bar__icon--google svg {
  width: 68%;
  height: 68%;
}

.ld-proof-bar__content {
  display: grid;
  gap: 0.32rem;
}

.ld-proof-bar__title,
.ld-proof-bar__text {
  margin: 0;
  font-family: var(--font-std);
}

.ld-proof-bar__title {
  color: var(--color-bg);
  font-size: clamp(0.98rem, 1.05vw, 1.14rem);
  line-height: 1.24;
  font-weight: 700;
}

.ld-proof-bar__text {
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.82rem, 0.9vw, 0.98rem);
  line-height: 1.32;
  font-weight: 400;
}

.ld-proof-bar__stars {
  display: inline-flex;
  align-items: center;
  gap: 0.14rem;
  color: #fbbc05;
}

.ld-proof-bar__stars svg {
  display: block;
  fill: currentColor;
}

/* ========================================
   Accessibility Helper
======================================== */

.ld-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ========================================
   Proof Responsive
======================================== */

@media (max-width: 1120px) {
  .ld-proof-cta {
    grid-template-columns: 1fr;
  }

  .ld-proof-cta__action {
    padding-left: 0;
    padding-top: 1.25rem;
    border-left: 0;
    border-top: 1px solid rgba(31, 31, 30, 0.14);
  }

  .ld-proof-bar {
    grid-template-columns: repeat(2, 1fr);
  }

  .ld-proof-bar__item {
    padding: 1rem;
  }

  .ld-proof-bar__item:first-child,
  .ld-proof-bar__item:last-child {
    padding-inline: 1rem;
  }

  .ld-proof-bar__item:not(:last-child)::after {
    display: none;
  }

  .ld-proof-bar__item:nth-child(odd)::after {
    content: "";
    display: block;
    position: absolute;
    top: 1rem;
    right: 0;
    width: 1px;
    height: calc(100% - 2rem);
    background: rgba(255, 255, 255, 0.24);
  }

  .ld-proof-bar__item:nth-child(-n + 2)::before {
    content: "";
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.24);
  }
}

@media (max-width: 680px) {
  .ld-proof-cta {
    padding: 1.25rem;
  }

  .ld-proof-cta__intro {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .ld-proof-cta__text {
    font-size: 1rem;
  }

  .ld-proof-cta__note {
    justify-content: flex-start;
  }

  .ld-proof-bar {
    grid-template-columns: 1fr;
    padding: 1.1rem;
  }

  .ld-proof-bar__item {
    padding: 1rem 0;
  }

  .ld-proof-bar__item:first-child,
  .ld-proof-bar__item:last-child {
    padding-inline: 0;
  }

  .ld-proof-bar__item::after,
  .ld-proof-bar__item::before {
    display: none !important;
  }

  .ld-proof-bar__item:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  }
}


/* ========================================
   Configurator CTA
======================================== */

.ld-configurator {
  padding-top: clamp(6rem, 9vw, 10rem);
  padding-bottom: clamp(6rem, 9vw, 10rem);
  background:
    radial-gradient(circle at 22% 20%, rgba(54, 118, 241, 0.45) 0%, rgba(54, 118, 241, 0) 34rem),
    linear-gradient(135deg, #07305f 0%, var(--color-primary) 48%, #0b55bd 100%);
  color: var(--color-bg);
  overflow: hidden;
}

.ld-configurator__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 6rem);
}

.ld-configurator__content {
  display: grid;
  align-content: center;
  gap: clamp(3rem, 5vw, 5rem);
}

.ld-configurator__copy {
  max-width: 28rem;
}

.ld-configurator__title {
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(2.7rem, 4.4vw, 5rem);
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.055em;
}

.ld-configurator__text {
  max-width: 25rem;
  margin: clamp(1.1rem, 1.8vw, 1.55rem) 0 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--font-std);
  font-size: clamp(1.05rem, 1.25vw, 1.35rem);
  line-height: 1.45;
  font-weight: 400;
}

.ld-button--light {
  min-height: 3.7rem;
  margin-top: clamp(1.4rem, 2.2vw, 2.1rem);
  padding: 1rem clamp(1.35rem, 2vw, 2.05rem);
  border-radius: 0.35rem;
  background: var(--color-bg);
  color: var(--color-primary);
  font-size: clamp(0.92rem, 1vw, 1.05rem);
  font-weight: 700;
  text-transform: uppercase;
  box-shadow: 0 0.85rem 2rem rgba(0, 0, 0, 0.16);
}

.ld-button--light:hover {
  background: var(--color-gray);
  transform: translateY(-1px);
}

.ld-button--light:focus-visible {
  outline: 2px solid var(--color-bg);
  outline-offset: 4px;
}

.ld-configurator__features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2vw, 2rem);
}

.ld-configurator-feature {
  display: grid;
  justify-items: center;
  gap: 0.55rem;
  text-align: center;
}

.ld-configurator-feature__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  color: rgba(255, 255, 255, 0.86);
}

.ld-configurator-feature__icon svg {
  display: block;
  width: 82%;
  height: 82%;
}

.ld-configurator-feature__title,
.ld-configurator-feature__text {
  margin: 0;
  font-family: var(--font-std);
}

.ld-configurator-feature__title {
  color: var(--color-bg);
  font-size: clamp(0.9rem, 1vw, 1.05rem);
  line-height: 1.25;
  font-weight: 700;
}

.ld-configurator-feature__text {
  color: rgba(255, 255, 255, 0.68);
  font-size: clamp(0.76rem, 0.85vw, 0.88rem);
  line-height: 1.35;
  font-weight: 400;
}

.ld-configurator__visual {
  position: relative;
}

.ld-configurator__picture {
  display: block;
  overflow: hidden;
  border-radius: 0.65rem;
  box-shadow: 0 1.4rem 3.4rem rgba(0, 0, 0, 0.24);
}

.ld-configurator__image {
  display: block;
  width: 100%;
  aspect-ratio: 980 / 520;
  height: auto;
  object-fit: cover;
}

.ld-configurator-card {
  position: absolute;
  left: -2rem;
  bottom: -1rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  width: min(22rem, 72%);
  padding: 1.05rem 1.15rem;
  border-radius: 0.6rem;
  background: rgba(255, 255, 255, 0.96);
  color: var(--color-black);
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
}

.ld-configurator-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.45rem;
  height: 2.45rem;
  border-radius: 999px;
  background: rgba(54, 118, 241, 0.1);
  color: var(--color-primary);
}

.ld-configurator-card__icon svg {
  width: 72%;
  height: 72%;
}

.ld-configurator-card__content {
  display: grid;
  gap: 0.45rem;
}

.ld-configurator-card__title,
.ld-configurator-card__text {
  margin: 0;
  font-family: var(--font-std);
}

.ld-configurator-card__title {
  color: var(--color-black);
  font-size: clamp(0.9rem, 1vw, 1rem);
  line-height: 1.25;
  font-weight: 700;
}

.ld-configurator-card__text {
  color: rgba(31, 31, 30, 0.72);
  font-size: clamp(0.78rem, 0.86vw, 0.9rem);
  line-height: 1.35;
  font-weight: 400;
}

/* ========================================
   Configurator Responsive
======================================== */

@media (max-width: 980px) {
  .ld-configurator__inner {
    grid-template-columns: 1fr;
  }

  .ld-configurator__copy {
    max-width: 42rem;
  }

  .ld-configurator__text {
    max-width: 36rem;
  }

  .ld-configurator__features {
    max-width: 42rem;
  }

  .ld-configurator-card {
    left: 1rem;
    bottom: 1rem;
  }
}

@media (max-width: 680px) {
  .ld-configurator {
    padding-top: clamp(4.5rem, 14vw, 6rem);
    padding-bottom: clamp(4.5rem, 14vw, 6rem);
  }

  .ld-configurator__content {
    gap: 2.2rem;
  }

  .ld-configurator__features {
    grid-template-columns: 1fr;
    justify-items: start;
    gap: 1.15rem;
  }

  .ld-configurator-feature {
    grid-template-columns: 1fr;
    justify-items: start;
    align-items: center;
    text-align: left;
  }

  .ld-configurator-feature__icon {
    width: 2.7rem;
    height: 2.7rem;
  }

  .ld-configurator__image {
    aspect-ratio: 4 / 3;
  }

  .ld-configurator-card {
    position: relative;
    left: auto;
    bottom: auto;
    width: 100%;
    margin-top: 1rem;
  }

  .ld-button--light {
    width: 100%;
  }
}


/* ========================================
   Projects / Service Section
======================================== */

.ld-projects {
  background: var(--color-bg);
  color: var(--color-black);
}

.ld-projects__top {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 6rem);
}

.ld-projects__copy {
  max-width: 42rem;
}

.ld-projects__title {
  margin: 0;
  color: #08295c;
  font-family: var(--font-std);
  font-size: clamp(2rem, 3.2vw, 3.45rem);
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.05em;
}

.ld-projects__text {
  margin: clamp(1.1rem, 1.7vw, 1.5rem) 0 0;
  color: rgba(31, 31, 30, 0.8);
  font-family: var(--font-std);
  font-size: clamp(1rem, 1.1vw, 1.18rem);
  line-height: 1.6;
  font-weight: 400;
}

.ld-projects__list {
  display: grid;
  gap: 1rem;
  margin: clamp(1.5rem, 2vw, 2rem) 0 0;
  padding: 0;
  list-style: none;
}

.ld-projects__list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: rgba(31, 31, 30, 0.86);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  line-height: 1.35;
  font-weight: 400;
}

.ld-projects__list span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.55rem;
  height: 1.55rem;
  border: 1.5px solid rgba(37, 95, 170, 0.42);
  border-radius: 999px;
  color: var(--color-primary);
}

.ld-projects__visual {
  position: relative;
  display: grid;
}

.ld-projects__picture {
  display: block;
  overflow: hidden;
  border-radius: 0.6rem;
}

.ld-projects__image {
  display: block;
  width: 100%;
  aspect-ratio: 940 / 520;
  height: auto;
  object-fit: cover;
}

.ld-project-highlight {
  position: absolute;
  top: 2.35rem;
  right: 2.35rem;
  width: min(24rem, 42%);
  min-height: calc(100% - 4.7rem);
  display: grid;
  align-content: center;
  padding: clamp(1.4rem, 2.2vw, 2.2rem);
  border-radius: 0.55rem;
  background: linear-gradient(145deg, #08295c 0%, #06305e 100%);
  color: var(--color-bg);
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.22);
}

.ld-project-highlight__title {
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(1.1rem, 1.35vw, 1.45rem);
  line-height: 1.22;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.ld-project-highlight__text {
  margin: clamp(1rem, 1.4vw, 1.35rem) 0 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--font-std);
  font-size: clamp(0.88rem, 0.95vw, 1rem);
  line-height: 1.55;
  font-weight: 400;
}

.ld-project-highlight__list {
  display: grid;
  gap: 1rem;
  margin: clamp(1.25rem, 1.8vw, 1.8rem) 0 0;
  padding: clamp(1.15rem, 1.5vw, 1.5rem) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  list-style: none;
}

.ld-project-highlight__list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--font-std);
  font-size: clamp(0.85rem, 0.9vw, 0.95rem);
  line-height: 1.35;
  font-weight: 400;
}

.ld-project-highlight__list span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.7rem;
  height: 1.7rem;
  border: 1.4px solid rgba(255, 255, 255, 0.64);
  border-radius: 999px;
  color: var(--color-bg);
}

.ld-project-highlight__link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  justify-self: start;
  margin-top: clamp(1.35rem, 2vw, 2rem);
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: 0.9rem;
  line-height: 1;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
}

.ld-project-highlight__link:hover .ld-button__icon {
  transform: translateX(0.18rem);
}

/* ========================================
   Project Gallery
======================================== */

.ld-projects__bottom {
  display: grid;
  grid-template-columns: minmax(16rem, 24rem) 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  margin-top: clamp(2.5rem, 4vw, 3.5rem);
  padding-top: clamp(2rem, 3vw, 3rem);
  border-top: 1px solid rgba(31, 31, 30, 0.12);
}

.ld-projects__intro {
  align-self: start;
}

.ld-projects__subtitle {
  margin: 0;
  color: #08295c;
  font-family: var(--font-std);
  font-size: clamp(1.8rem, 2.4vw, 2.6rem);
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.045em;
}

.ld-projects__intro-text {
  margin: 1rem 0 0;
  color: rgba(31, 31, 30, 0.76);
  font-family: var(--font-std);
  font-size: clamp(0.98rem, 1vw, 1.08rem);
  line-height: 1.55;
  font-weight: 400;
}

.ld-button--outline {
  min-height: 3.35rem;
  margin-top: 1.45rem;
  padding: 0.9rem 1.25rem;
  border: 1.5px solid rgba(31, 31, 30, 0.34);
  border-radius: 0.35rem;
  background: transparent;
  color: #08295c;
  font-size: 0.9rem;
  text-transform: uppercase;
}

.ld-button--outline:hover {
  border-color: var(--color-primary);
  background: rgba(54, 118, 241, 0.06);
  transform: translateY(-1px);
}

.ld-button--outline:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-project-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(0.7rem, 1vw, 1rem);
}

.ld-project-tile {
  display: grid;
  gap: 1rem;
  margin: 0;
  color: #08295c;
  font-family: var(--font-std);
  font-size: clamp(0.8rem, 1rem, 1.2rem);
  line-height: 1.22;
  font-weight: 700;
  text-align: center;
}

.ld-project-tile figcaption {
  margin: 0;
}

.ld-project-tile small {
  color: rgba(31, 31, 30, 0.72);
  font-size: 0.92em;
  font-weight: 400;
}

.ld-project-tile img {
  display: block;
  width: 100%;
  aspect-ratio: 260 / 160;
  height: auto;
  border-radius: 0.4rem;
  object-fit: cover;
}

/* ========================================
   Projects Responsive
======================================== */

@media (max-width: 1180px) {
  .ld-projects__top {
    grid-template-columns: 1fr;
  }

  .ld-project-highlight {
    width: min(24rem, 45%);
  }

  .ld-projects__bottom {
    grid-template-columns: 1fr;
  }

  .ld-project-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .ld-project-highlight {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    min-height: auto;
    margin-top: 1rem;
  }

  .ld-projects__image {
    aspect-ratio: 4 / 3;
  }

  .ld-project-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 520px) {
  .ld-project-gallery {
    grid-template-columns: 1fr;
  }

  .ld-button--outline {
    width: 100%;
  }
}

/* ========================================
   Video Testimonial Section
======================================== */

.ld-testimonial-video {
  background: var(--color-bg);
  color: var(--color-black);
}

.ld-testimonial-video__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 6.5rem);
  width: min(100%, 92rem);
}

.ld-testimonial-video__media {
  min-width: 0;
}

.ld-video-card {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 1rem;
  background: var(--color-darkblue);
  cursor: pointer;
  box-shadow: 0 1rem 2.6rem rgba(0, 0, 0, 0.12);
}

.ld-video-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 720 / 500;
  height: auto;
  object-fit: cover;
  transition: transform 450ms ease, filter 450ms ease;
}

.ld-video-card__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(37, 95, 170, 0.42), rgba(37, 95, 170, 0.1)),
    rgba(8, 41, 92, 0.18);
  transition: background-color 220ms ease, opacity 220ms ease;
}

.ld-video-card__play {
  position: absolute;
  left: 50%;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(4.5rem, 6vw, 6.25rem);
  height: clamp(4.5rem, 6vw, 6.25rem);
  color: rgba(255, 255, 255, 0.94);
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0.8rem 1.4rem rgba(0, 0, 0, 0.18));
  transition: transform 220ms ease, color 220ms ease;
}

.ld-video-card__play svg {
  display: block;
  width: 100%;
  height: 100%;
}

.ld-video-card:hover .ld-video-card__image {
  transform: scale(1.045);
  filter: saturate(1.05) contrast(1.04);
}

.ld-video-card:hover .ld-video-card__overlay {
  background:
    linear-gradient(90deg, rgba(37, 95, 170, 0.52), rgba(37, 95, 170, 0.14)),
    rgba(8, 41, 92, 0.08);
}

.ld-video-card:hover .ld-video-card__play {
  color: var(--color-bg);
  transform: translate(-50%, -50%) scale(1.08);
}

.ld-video-card:focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 5px;
}

.ld-testimonial-video__content {
  max-width: 56rem;
}

.ld-testimonial-video__title {
  margin: 0;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(2rem, 3vw, 3.5rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.05em;
}

.ld-testimonial-video__quote {
  margin: clamp(1.3rem, 2vw, 1.9rem) 0 0;
  color: rgba(31, 31, 30, 0.9);
  font-family: var(--font-std);
  font-size: clamp(1.25rem, 1.65vw, 1.8rem);
  line-height: 1.55;
  font-weight: 400;
}

.ld-testimonial-video__link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: clamp(1.5rem, 2.3vw, 2.25rem);
  color: var(--color-primary);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  line-height: 1;
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
}

.ld-testimonial-video__link:hover .ld-button__icon {
  transform: translateX(0.18rem);
}

.ld-testimonial-video__link:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

/* ========================================
   Video Modal
======================================== */

.ld-video-modal[hidden] {
  display: none;
}

.ld-video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 5%;
}

.ld-video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 24, 43, 0.82);
  backdrop-filter: blur(10px);
}

.ld-video-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 68rem);
}

.ld-video-modal__close {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.9rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border: 0;
  border-radius: 999px;
  background: var(--color-bg);
  color: var(--color-primary);
  cursor: pointer;
  box-shadow: 0 0.85rem 2rem rgba(0, 0, 0, 0.22);
}

.ld-video-modal__close:hover {
  background: var(--color-gray);
}

.ld-video-modal__close:focus-visible {
  outline: 2px solid var(--color-bg);
  outline-offset: 4px;
}

.ld-video-modal__frame {
  position: relative;
  overflow: hidden;
  border-radius: 0.9rem;
  background: #000;
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.35);
}

.ld-video-modal__frame::before {
  content: "";
  display: block;
  padding-top: 56.25%;
}

.ld-video-modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ========================================
   Video Testimonial Responsive
======================================== */

@media (max-width: 980px) {
  .ld-testimonial-video__inner {
    grid-template-columns: 1fr;
  }

  .ld-testimonial-video__content {
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .ld-video-card {
    border-radius: 0.75rem;
  }

  .ld-video-card__image {
    aspect-ratio: 4 / 3;
  }

  .ld-testimonial-video__quote {
    font-size: 1.15rem;
  }

  .ld-video-modal {
    padding: 5%;
  }

  .ld-video-modal__close {
    right: 0;
    bottom: calc(100% + 0.65rem);
  }
}

body.is-video-modal-open {
  overflow: hidden;
}


/* ========================================
   Consultation CTA
======================================== */

.ld-consult-cta {
  padding-top: clamp(2rem, 4vw, 4rem);
  padding-bottom: clamp(2rem, 4vw, 4rem);
  background: var(--color-bg);
}

.ld-consult-cta__inner {
  display: grid;
  grid-template-columns: auto minmax(18rem, 1fr) minmax(14rem, 19rem) minmax(18rem, 28rem);
  align-items: center;
  gap: clamp(1.25rem, 2.8vw, 3.5rem);
  padding: clamp(1.25rem, 1.7vw, 1.9rem) clamp(1.4rem, 2.5vw, 3rem);
  border-radius: 0.65rem;
  background: linear-gradient(90deg, rgba(54, 118, 241, 0.08), rgba(54, 118, 241, 0.035));
  box-shadow: 0 0.6rem 1.8rem rgba(0, 0, 0, 0.04);
}

.ld-consult-cta__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(4.8rem, 5.6vw, 6.5rem);
  height: clamp(4.8rem, 5.6vw, 6.5rem);
  border-radius: 999px;
  background: rgba(54, 118, 241, 0.1);
  color: var(--color-primary);
}

.ld-consult-cta__icon svg {
  width: 56%;
  height: 56%;
}

.ld-consult-cta__title {
  margin: 0;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(1.7rem, 2.2vw, 2.55rem);
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -0.045em;
}

.ld-consult-cta__text {
  margin: 0.65rem 0 0;
  color: rgba(31, 31, 30, 0.78);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  line-height: 1.45;
  font-weight: 400;
}

.ld-consult-cta__list {
  display: grid;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-consult-cta__list li {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: rgba(31, 31, 30, 0.82);
  font-family: var(--font-std);
  font-size: clamp(0.9rem, 0.95vw, 1.02rem);
  line-height: 1.25;
  font-weight: 400;
}

.ld-consult-cta__list span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.45rem;
  height: 1.45rem;
  border: 1.5px solid rgba(37, 95, 170, 0.45);
  border-radius: 999px;
  color: var(--color-primary);
}

.ld-consult-cta__action {
  display: grid;
  justify-items: stretch;
  gap: 0.85rem;
}

.ld-button--consult {
  width: 100%;
  min-height: 3.8rem;
  padding: 1rem clamp(1.2rem, 2vw, 2rem);
  border-radius: 0.35rem;
  background: var(--color-primary);
  color: var(--color-bg);
  font-size: clamp(0.9rem, 1vw, 1.08rem);
  text-transform: uppercase;
  box-shadow: 0 0.9rem 2rem rgba(37, 95, 170, 0.2);
}

.ld-button--consult:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

.ld-button--consult:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-consult-cta__note {
  margin: 0;
  color: rgba(31, 31, 30, 0.72);
  font-family: var(--font-std);
  font-size: clamp(0.86rem, 0.92vw, 0.98rem);
  line-height: 1.35;
  font-weight: 400;
  text-align: center;
}

/* ========================================
   Consultation CTA Responsive
======================================== */

@media (max-width: 1180px) {
  .ld-consult-cta__inner {
    grid-template-columns: auto 1fr;
  }

  .ld-consult-cta__list {
    grid-column: 2;
  }

  .ld-consult-cta__action {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .ld-consult-cta__inner {
    grid-template-columns: 1fr;
    padding: 1.35rem;
  }

  .ld-consult-cta__icon {
    width: 4.6rem;
    height: 4.6rem;
  }

  .ld-consult-cta__list,
  .ld-consult-cta__action {
    grid-column: auto;
  }

  .ld-consult-cta__note {
    text-align: left;
  }
}


/* ========================================
   Final CTA
======================================== */

.ld-final-cta {
  padding-top: clamp(4rem, 7vw, 7rem);
  padding-bottom: clamp(5rem, 8vw, 8rem);
  background: var(--color-bg);
  color: var(--color-bg);
}

.ld-final-cta__inner {
  position: relative;
}

.ld-final-cta__banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(34rem, 48vw, 43rem);
  border-radius: 0.7rem;
  background: #08295c;
  box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.14);
}

.ld-final-cta__media,
.ld-final-cta__image,
.ld-final-cta__overlay {
  position: absolute;
  inset: 0;
}

.ld-final-cta__media {
  z-index: -3;
  display: block;
}

.ld-final-cta__image {
  z-index: -3;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 68% center;
}

.ld-final-cta__overlay {
  z-index: -2;
  background:
    linear-gradient(
      90deg,
      rgba(4, 24, 43, 0.94) 0%,
      rgba(4, 24, 43, 0.84) 34%,
      rgba(4, 24, 43, 0.48) 58%,
      rgba(4, 24, 43, 0.12) 100%
    ),
    linear-gradient(
      180deg,
      rgba(4, 24, 43, 0.2) 0%,
      rgba(4, 24, 43, 0.16) 55%,
      rgba(4, 24, 43, 0.54) 100%
    );
}

.ld-final-cta__content {
  width: min(100%, 47rem);
  padding: clamp(2rem, 3.6vw, 3.5rem);
}

.ld-final-cta__eyebrow {
  margin: 0 0 0.85rem;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--font-std);
  font-size: clamp(0.82rem, 0.95vw, 1rem);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ld-final-cta__title {
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(2.35rem, 2.8rem, 3rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.055em;
}

.ld-final-cta__text {
  margin: clamp(1rem, 1.7vw, 1.45rem) 0 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--font-std);
  font-size: clamp(1rem, 1.15vw, 1.22rem);
  line-height: 1.45;
}

.ld-final-cta__benefits {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin-top: clamp(1.7rem, 2.5vw, 2.4rem);
}

.ld-final-cta-benefit {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.9rem;
  padding: 0.75rem 1.1rem 0.75rem 0;
}

.ld-final-cta-benefit:nth-child(odd) {
  border-right: 1px solid rgba(255, 255, 255, 0.18);
}

.ld-final-cta-benefit:nth-child(even) {
  padding-left: 1.4rem;
}

.ld-final-cta-benefit__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.55rem;
  height: 3.55rem;
  border: 1.4px solid rgba(255, 255, 255, 0.48);
  border-radius: 999px;
  color: var(--color-bg);
}

.ld-final-cta-benefit__icon svg {
  width: 58%;
  height: 58%;
}

.ld-final-cta-benefit strong,
.ld-final-cta-benefit small {
  display: block;
  font-family: var(--font-std);
}

.ld-final-cta-benefit strong {
  color: var(--color-bg);
  font-size: clamp(0.9rem, 0.95vw, 1rem);
  line-height: 1.25;
  font-weight: 700;
}

.ld-final-cta-benefit small {
  margin-top: 0.35rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.78rem, 0.85vw, 0.9rem);
  line-height: 1.35;
  font-weight: 400;
}

.ld-button--final {
  width: min(100%, 38rem);
  min-height: 4.15rem;
  margin-top: clamp(1.5rem, 2.4vw, 2.2rem);
  padding: 1rem clamp(1.5rem, 3vw, 3rem);
  border-radius: 0.35rem;
  background: #ff6a13;
  color: var(--color-bg);
  font-size: clamp(1rem, 1.15vw, 1.2rem);
  text-transform: uppercase;
  box-shadow: 0 1rem 2rem rgba(255, 106, 19, 0.22);
}

.ld-button--final:hover {
  background: #ff7a28;
  transform: translateY(-1px);
}

.ld-button--final:focus-visible {
  outline: 2px solid var(--color-bg);
  outline-offset: 4px;
}

.ld-final-cta__note {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--font-std);
  font-size: clamp(0.9rem, 0.95vw, 1rem);
  line-height: 1.35;
}

.ld-final-cta__note svg {
  display: block;
  color: #ff9a3c;
}

/* ========================================
   Final Trust Bar
======================================== */

.ld-final-trust {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr 1fr;
  align-items: center;
  width: calc(100% - 6rem);
  margin: -2.9rem auto 0;
  padding: clamp(1rem, 1.4vw, 1.45rem) clamp(1.2rem, 2vw, 2rem);
  border-radius: 0.55rem;
  background: rgba(255, 255, 255, 0.98);
  color: var(--color-black);
  box-shadow: 0 1.1rem 2.8rem rgba(0, 0, 0, 0.14);
}

.ld-final-trust__item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(0.85rem, 1.3vw, 1.2rem);
  min-height: 4.4rem;
  padding: 0 clamp(1rem, 1.6vw, 1.5rem);
}

.ld-final-trust__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0.35rem;
  right: 0;
  width: 1px;
  height: calc(100% - 0.7rem);
  background: rgba(31, 31, 30, 0.15);
}

.ld-final-trust__item:first-child {
  padding-left: 0;
}

.ld-final-trust__item:last-child {
  padding-right: 0;
}

.ld-final-trust__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(3.4rem, 4.2vw, 4.4rem);
  height: clamp(3.4rem, 4.2vw, 4.4rem);
  color: var(--color-primary);
}

.ld-final-trust__icon svg {
  display: block;
  width: 82%;
  height: 82%;
}

.ld-final-trust__icon--google svg {
  width: 88%;
  height: 88%;
}

.ld-final-trust__title,
.ld-final-trust__text,
.ld-final-trust__stars {
  margin: 0;
  font-family: var(--font-std);
}

.ld-final-trust__title {
  color: var(--color-black);
  font-size: clamp(0.88rem, 0.95vw, 1rem);
  line-height: 1.25;
  font-weight: 700;
}

.ld-final-trust__text {
  margin-top: 0.25rem;
  color: rgba(31, 31, 30, 0.72);
  font-size: clamp(0.78rem, 0.85vw, 0.9rem);
  line-height: 1.32;
}

.ld-final-trust__stars {
  margin-top: 0.25rem;
  color: #fbbc05;
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  line-height: 1;
}

/* ========================================
   Final CTA Responsive
======================================== */

@media (max-width: 1180px) {
  .ld-final-trust {
    grid-template-columns: repeat(2, 1fr);
  }

  .ld-final-trust__item {
    padding: 1rem;
  }

  .ld-final-trust__item:first-child,
  .ld-final-trust__item:last-child {
    padding-inline: 1rem;
  }

  .ld-final-trust__item::after {
    display: none;
  }

  .ld-final-trust__item:nth-child(odd)::after {
    content: "";
    display: block;
    position: absolute;
    top: 1rem;
    right: 0;
    width: 1px;
    height: calc(100% - 2rem);
    background: rgba(31, 31, 30, 0.12);
  }

  .ld-final-trust__item:nth-child(-n + 2)::before {
    content: "";
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 0;
    height: 1px;
    background: rgba(31, 31, 30, 0.12);
  }
}

@media (max-width: 760px) {
  .ld-final-cta__banner {
    min-height: auto;
  }

  .ld-final-cta__image {
    object-position: 72% center;
  }

  .ld-final-cta__overlay {
    background:
      linear-gradient(
        90deg,
        rgba(4, 24, 43, 0.95) 0%,
        rgba(4, 24, 43, 0.78) 62%,
        rgba(4, 24, 43, 0.46) 100%
      ),
      linear-gradient(
        180deg,
        rgba(4, 24, 43, 0.36) 0%,
        rgba(4, 24, 43, 0.72) 100%
      );
  }

  .ld-final-cta__content {
    width: 100%;
    padding: 2rem 1.25rem 5rem;
  }

  .ld-final-cta__benefits {
    grid-template-columns: 1fr;
  }

  .ld-final-cta-benefit,
  .ld-final-cta-benefit:nth-child(even) {
    padding-inline: 0;
    border-right: 0;
  }

  .ld-final-trust {
    grid-template-columns: 1fr;
    width: calc(100% - 2rem);
    margin-top: -3rem;
    padding: 1rem;
  }

  .ld-final-trust__item {
    padding: 1rem 0;
  }

  .ld-final-trust__item:first-child,
  .ld-final-trust__item:last-child {
    padding-inline: 0;
  }

  .ld-final-trust__item::after,
  .ld-final-trust__item::before {
    display: none !important;
  }

  .ld-final-trust__item:not(:last-child) {
    border-bottom: 1px solid rgba(31, 31, 30, 0.12);
  }

  .ld-button--final {
    width: 100%;
  }
}


/* ========================================
   Footer Contact Bar
======================================== */

.ld-footer-contact {
  padding: clamp(2rem, 4vw, 4rem) 5% 0;
  background: var(--color-bg);
}

.ld-footer-contact__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
  margin: 0 auto 50px auto;
  padding: clamp(1.1rem, 1.6vw, 1.6rem) clamp(1.5rem, 3vw, 3.4rem);
  border-radius: 0.65rem;
  background: linear-gradient(90deg, rgba(54, 118, 241, 0.08), rgba(54, 118, 241, 0.035));
}

.ld-footer-contact__intro {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 2vw, 2rem);
}

.ld-footer-contact__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: clamp(4.6rem, 5.6vw, 6rem);
  height: clamp(4.6rem, 5.6vw, 6rem);
  border-radius: 999px;
  background: rgba(54, 118, 241, 0.1);
  color: var(--color-primary);
}

.ld-footer-contact__icon svg {
  width: 58%;
  height: 58%;
}

.ld-footer-contact__title {
  margin: 0;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(1.55rem, 2vw, 2.25rem);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.045em;
}

.ld-footer-contact__text {
  margin: 0.4rem 0 0;
  color: rgba(31, 31, 30, 0.78);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  line-height: 1.4;
}

.ld-footer-contact__links {
  display: grid;
  gap: 0.45rem;
}

.ld-footer-contact__link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  color: rgba(31, 31, 30, 0.82);
  font-family: var(--font-std);
  font-size: clamp(1.05rem, 1.3vw, 1.35rem);
  line-height: 1.2;
  font-weight: 400;
  text-decoration: none;
}

.ld-footer-contact__link--phone {
  color: var(--color-primary);
  font-size: clamp(1.45rem, 1.9vw, 2rem);
  font-weight: 700;
}

.ld-footer-contact__link svg {
  flex: 0 0 auto;
  color: var(--color-primary);
}

.ld-footer-contact__link:hover {
  color: var(--color-primary-hover);
}

/* ========================================
   Site Footer
======================================== */

.ld-site-footer {
  padding: 0 5% clamp(2rem, 4vw, 4rem);
  background: var(--color-bg);
  color: var(--color-bg);
}

.ld-site-footer__inner {
  margin: 0 auto;
  overflow: hidden;
  border-radius: 0.65rem;
  background:
    radial-gradient(circle at 70% 20%, rgba(54, 118, 241, 0.22), rgba(54, 118, 241, 0) 28rem),
    linear-gradient(135deg, #062a55 0%, #08295c 48%, #063b73 100%);
  box-shadow: 0 1rem 2.8rem rgba(0, 0, 0, 0.14);
}

.ld-site-footer__main {
  display: grid;
  grid-template-columns: minmax(17rem, 1.1fr) minmax(0, 3.4fr);
  gap: clamp(2rem, 4vw, 4rem);
  padding: clamp(2.2rem, 3.5vw, 4rem);
}

.ld-site-footer__brand {
  max-width: 21rem;
}

.ld-site-footer__logo-link {
  display: inline-flex;
  text-decoration: none;
}

.ld-site-footer__logo {
  display: block;
  width: clamp(13rem, 15vw, 16rem);
  height: auto;
}

.ld-site-footer__claim {
  margin: clamp(1.1rem, 1.8vw, 1.6rem) 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--font-std);
  font-size: clamp(0.92rem, 1vw, 1.05rem);
  line-height: 1.55;
}

.ld-site-footer__nav {
  display: grid;
  grid-template-columns: 1.1fr 1.25fr 0.9fr;
  gap: clamp(1.5rem, 3vw, 3.5rem);
}

.ld-site-footer__col {
  position: relative;
  padding-left: clamp(1.3rem, 2vw, 2.5rem);
}

.ld-site-footer__col::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2rem;
  width: 1px;
  height: calc(100% - 0.4rem);
  background: rgba(255, 255, 255, 0.22);
}

.ld-site-footer__headline {
  margin: 0 0 1.2rem;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(1rem, 1.1vw, 1.18rem);
  line-height: 1.2;
  font-weight: 700;
  text-transform: uppercase;
}

.ld-site-footer__list {
  display: grid;
  gap: 0.95rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-site-footer__list a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--font-std);
  font-size: clamp(0.92rem, 1vw, 1.05rem);
  line-height: 1.25;
  font-weight: 400;
  text-decoration: none;
}

.ld-site-footer__list a:hover {
  color: var(--color-bg);
}

.ld-site-footer__list a svg {
  flex: 0 0 auto;
  opacity: 0.7;
  transition: transform 180ms ease;
}

.ld-site-footer__list a:hover svg {
  transform: translateX(0.18rem);
}

.ld-site-footer__address {
  display: grid;
  gap: 1rem;
  font-style: normal;
}

.ld-site-footer__address p {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.8rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--font-std);
  font-size: clamp(0.9rem, 0.95vw, 1.02rem);
  line-height: 1.45;
}

.ld-site-footer__address svg {
  color: rgba(255, 255, 255, 0.86);
}

.ld-site-footer__address a {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
}

.ld-site-footer__address a:hover {
  color: var(--color-bg);
}

.ld-site-footer__socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
}

.ld-site-footer__socials a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 999px;
  color: var(--color-bg);
  text-decoration: none;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}

.ld-site-footer__socials a:hover {
  border-color: var(--color-bg);
  background: rgba(255, 255, 255, 0.1);
  transform: translateY(-1px);
}

.ld-site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: clamp(1rem, 1.4vw, 1.35rem) clamp(2.2rem, 3.5vw, 4rem);
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.ld-site-footer__bottom p,
.ld-site-footer__legal {
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  font-family: var(--font-std);
  font-size: clamp(0.82rem, 0.9vw, 0.95rem);
  line-height: 1.35;
}

.ld-site-footer__legal {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}

.ld-site-footer__legal a {
  color: rgba(255, 255, 255, 0.74);
  text-decoration: none;
}

.ld-site-footer__legal a:hover {
  color: var(--color-bg);
}

.ld-site-footer a:focus-visible,
.ld-footer-contact a:focus-visible {
  outline: 2px solid var(--color-bg);
  outline-offset: 4px;
}

.ld-footer-contact a:focus-visible {
  outline-color: var(--color-primary);
}

/* ========================================
   Footer Responsive
======================================== */

@media (max-width: 1180px) {
  .ld-footer-contact__inner {
    grid-template-columns: 1fr;
  }

  .ld-footer-contact__links {
    justify-items: start;
  }

  .ld-site-footer__main {
    grid-template-columns: 1fr;
  }

  .ld-site-footer__brand {
    max-width: 34rem;
  }

  .ld-site-footer__nav {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  .ld-footer-contact__intro {
    align-items: flex-start;
  }

  .ld-footer-contact__links {
    gap: 0.75rem;
  }

  .ld-footer-contact__link,
  .ld-footer-contact__link--phone {
    font-size: 1rem;
  }

  .ld-site-footer__nav {
    grid-template-columns: 1fr;
  }

  .ld-site-footer__col {
    padding-left: 0;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
  }

  .ld-site-footer__col::before {
    display: none;
  }

  .ld-site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .ld-footer-contact__inner,
  .ld-site-footer__main,
  .ld-site-footer__bottom {
    padding-inline: 1.25rem;
  }

  .ld-footer-contact__intro {
    flex-direction: column;
  }

  .ld-footer-contact__link {
    align-items: flex-start;
  }
}


/* ========================================
   Reusable Contact Modal
======================================== */

.ld-contact-modal[hidden] {
  display: none;
}

.ld-contact-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 5%;
}

.ld-contact-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 24, 43, 0.78);
  backdrop-filter: blur(10px);
}

.ld-contact-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 95%);
  max-height: min(90svh, 54rem);
  overflow: auto;
  border-radius: 0.9rem;
  background: var(--color-bg);
  color: var(--color-black);
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.3);
}

.ld-contact-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.9rem;
  height: 2.9rem;
  margin: 0;
  border: 0;
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-bg);
  cursor: pointer;
  box-shadow: 0 0.8rem 1.7rem rgba(37, 95, 170, 0.24);
  transition:
    transform 180ms ease,
    background-color 180ms ease;
}

.ld-contact-modal__close:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

.ld-contact-modal__close:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-contact-modal__grid {
  display: grid;
  grid-template-columns: minmax(18rem, 0.86fr) minmax(0, 1.14fr);
  min-height: 40rem;
}

.ld-contact-modal__aside {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: center;
  padding: clamp(2rem, 4vw, 4rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 20%, rgba(54, 118, 241, 0.38), rgba(54, 118, 241, 0) 24rem),
    linear-gradient(145deg, #062a55 0%, #08295c 46%, var(--color-primary) 100%);
  color: var(--color-bg);
}

.ld-contact-modal__eyebrow {
  margin: 0 0 0.9rem;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--font-std);
  font-size: clamp(0.82rem, 0.9vw, 0.95rem);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.ld-contact-modal__title {
  margin: 0;
  color: var(--color-bg);
  font-family: var(--font-std);
  font-size: clamp(2.1rem, 3.2vw, 3.5rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.055em;
}

.ld-contact-modal__desc {
  margin: clamp(1rem, 1.6vw, 1.45rem) 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-family: var(--font-std);
  font-size: clamp(0.98rem, 1vw, 1.1rem);
  line-height: 1.55;
}

.ld-contact-modal__benefits {
  display: grid;
  gap: 0.9rem;
  margin: clamp(1.5rem, 2.4vw, 2.2rem) 0 0;
  padding: 0;
  list-style: none;
}

.ld-contact-modal__benefits li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--font-std);
  font-size: clamp(0.9rem, 0.95vw, 1rem);
  line-height: 1.35;
}

.ld-contact-modal__benefits span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  background: var(--color-bg);
  color: var(--color-primary);
}

.ld-contact-modal__direct {
  display: grid;
  gap: 0.75rem;
  margin-top: clamp(1.7rem, 2.6vw, 2.5rem);
  padding-top: clamp(1.3rem, 2vw, 1.8rem);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.ld-contact-modal__direct a {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--font-std);
  font-size: clamp(0.92rem, 1vw, 1.05rem);
  line-height: 1.25;
  text-decoration: none;
}

.ld-contact-modal__direct a:hover {
  color: var(--color-bg);
}

/* ========================================
   Contact Form
======================================== */

.ld-contact-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-content: center;
  gap: 1rem;
  padding: clamp(2rem, 4vw, 4rem);
  background: var(--color-bg);
}

.ld-contact-form__group {
  display: grid;
  gap: 0.45rem;
}

.ld-contact-form__group--full {
  grid-column: 1 / -1;
}

.ld-contact-form__label {
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: 0.9rem;
  line-height: 1.25;
  font-weight: 600;
}

.ld-contact-form__input {
  width: 100%;
  min-height: 3.25rem;
  border: 1px solid rgba(31, 31, 30, 0.16);
  border-radius: 0.35rem;
  padding: 0.85rem 0.95rem;
  background: var(--color-bg);
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: 1rem;
  line-height: 1.25;
  outline: none;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease;
}

.ld-contact-form__input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(37, 95, 170, 0.12);
}

.ld-contact-form__textarea {
  min-height: 7.5rem;
  resize: vertical;
}

.ld-contact-form__choice-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.85rem;
}

.ld-contact-form__choice {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  min-height: 5.5rem;
  padding: 1rem;
  border: 1px solid rgba(31, 31, 30, 0.14);
  border-radius: 0.5rem;
  background: rgba(54, 118, 241, 0.035);
  cursor: pointer;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease;
}

.ld-contact-form__choice:hover {
  border-color: rgba(37, 95, 170, 0.42);
  background: rgba(54, 118, 241, 0.06);
}

.ld-contact-form__choice input {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.15rem;
  accent-color: var(--color-primary);
}

.ld-contact-form__choice:has(input:checked) {
  border-color: var(--color-primary);
  background: rgba(54, 118, 241, 0.08);
  box-shadow: 0 0.5rem 1.4rem rgba(37, 95, 170, 0.08);
}

.ld-contact-form__choice strong,
.ld-contact-form__choice small {
  display: block;
  font-family: var(--font-std);
}

.ld-contact-form__choice strong {
  color: var(--color-black);
  font-size: 0.98rem;
  line-height: 1.25;
  font-weight: 700;
}

.ld-contact-form__choice small {
  margin-top: 0.25rem;
  color: rgba(31, 31, 30, 0.65);
  font-size: 0.85rem;
  line-height: 1.35;
}

.ld-contact-form__privacy {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.65rem;
  color: rgba(31, 31, 30, 0.72);
  font-family: var(--font-std);
  font-size: 0.84rem;
  line-height: 1.45;
}

.ld-contact-form__privacy input {
  width: 1rem;
  height: 1rem;
  margin-top: 0.15rem;
  accent-color: var(--color-primary);
}

.ld-contact-form__privacy a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.ld-contact-form__submit {
  display: grid;
  gap: 0.75rem;
}

.ld-contact-form__optional {
  color: rgba(31, 31, 30, 0.56);
  font-weight: 400;
}

.ld-contact-form__file {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.85rem;
  min-height: 4.6rem;
  padding: 1rem;
  border: 1.5px dashed rgba(37, 95, 170, 0.34);
  border-radius: 0.45rem;
  background: rgba(54, 118, 241, 0.035);
  cursor: pointer;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.ld-contact-form__file:hover {
  border-color: var(--color-primary);
  background: rgba(54, 118, 241, 0.06);
  transform: translateY(-1px);
}

.ld-contact-form__file:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(37, 95, 170, 0.12);
}

.ld-contact-form__file-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 999px;
  background: rgba(54, 118, 241, 0.1);
  color: var(--color-primary);
}

.ld-contact-form__file-content {
  display: grid;
  gap: 0.25rem;
  font-family: var(--font-std);
}

.ld-contact-form__file-content strong {
  color: var(--color-black);
  font-size: 0.98rem;
  line-height: 1.25;
  font-weight: 700;
}

.ld-contact-form__file-content small {
  color: rgba(31, 31, 30, 0.64);
  font-size: 0.86rem;
  line-height: 1.35;
  font-weight: 400;
}

.ld-contact-form__file input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.ld-contact-form__hint {
  margin: 0.2rem 0 0;
  color: rgba(31, 31, 30, 0.58);
  font-family: var(--font-std);
  font-size: 0.8rem;
  line-height: 1.35;
}

@media (max-width: 520px) {
  .ld-contact-form__file {
    grid-template-columns: 1fr;
    justify-items: start;
  }
}

.ld-button--modal-submit {
  width: 100%;
  min-height: 3.8rem;
  border-radius: 0.35rem;
  background: var(--color-primary);
  color: var(--color-bg);
  font-size: 1rem;
  text-transform: uppercase;
  box-shadow: 0 0.85rem 1.8rem rgba(37, 95, 170, 0.2);
}

.ld-button--modal-submit:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

.ld-button--modal-submit:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-contact-form__submit p {
  margin: 0;
  color: rgba(31, 31, 30, 0.62);
  font-family: var(--font-std);
  font-size: 0.88rem;
  line-height: 1.35;
  text-align: center;
}

body.is-contact-modal-open {
  overflow: hidden;
}

/* ========================================
   Contact Modal Responsive
======================================== */

@media (max-width: 980px) {
  .ld-contact-modal__dialog {
    max-height: 90svh;
  }

  .ld-contact-modal__grid {
    grid-template-columns: 1fr;
  }

  .ld-contact-modal__aside {
    padding-top: 4.5rem;
  }

  .ld-contact-form {
    align-content: start;
  }
}

@media (max-width: 640px) {
  .ld-contact-modal {
    padding: 0;
  }

  .ld-contact-modal__dialog {
    width: 100%;
    height: 100svh;
    max-height: none;
    border-radius: 0;
  }

.ld-contact-modal__close {
    top: 0.75rem;
    right: 0.75rem;
    width: 2.7rem;
    height: 2.7rem;
  }

  .ld-contact-modal__aside,
  .ld-contact-form {
    padding-inline: 5%;
  }

  .ld-contact-form {
    grid-template-columns: 1fr;
  }

  .ld-contact-form__choice-grid {
    grid-template-columns: 1fr;
  }
}


/* ========================================
   Reusable Configurator Modal
======================================== */

.ld-config-modal[hidden] {
  display: none;
}

.ld-config-modal {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: grid;
  place-items: center;
  padding: 2rem 5%;
}

.ld-config-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 24, 43, 0.72);
  backdrop-filter: blur(10px);
}

.ld-config-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 95%);
  max-height: 92svh;
  overflow: auto;
  border: 1px solid rgba(37, 95, 170, 0.18);
  border-radius: 0.85rem;
  background: var(--color-bg);
  color: var(--color-black);
  box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.28);
}

.ld-config-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  height: 2.85rem;
  border: 0;
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-bg);
  cursor: pointer;
  box-shadow: 0 0.8rem 1.7rem rgba(37, 95, 170, 0.24);
}

.ld-config-modal__close:hover {
  background: var(--color-primary-hover);
}

.ld-configurator-form {
  display: grid;
  min-height: 42rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.ld-configurator-form__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.ld-configurator-form__brand {
  display: inline-flex;
  text-decoration: none;
}

.ld-configurator-form__brand img {
  display: block;
  width: clamp(8.5rem, 12vw, 10rem);
  height: auto;
}

.ld-configurator-form__nav {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 2rem);
  padding-right: 3.4rem;
}

.ld-configurator-form__nav a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: 0.86rem;
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none;
}

.ld-configurator-form__nav a[aria-current="page"] {
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
}

.ld-configurator-progress {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.4rem, 4vw, 3rem);
  margin: clamp(2rem, 4vw, 3rem) auto clamp(1.5rem, 3vw, 2.2rem);
}

.ld-configurator-progress::before {
  content: "";
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: rgba(31, 31, 30, 0.12);
}

.ld-configurator-progress__step {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.95rem;
  height: 1.95rem;
  border: 1px solid rgba(31, 31, 30, 0.16);
  border-radius: 999px;
  background: var(--color-bg);
  color: rgba(31, 31, 30, 0.48);
  font-family: var(--font-std);
  font-size: 0.82rem;
  font-weight: 700;
}

.ld-configurator-progress__step.is-active,
.ld-configurator-progress__step.is-done {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-bg);
}

.ld-configurator-form__body {
  position: relative;
}

.ld-configurator-form__back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.8rem;
  border: 0;
  padding: 0;
  background: transparent;
  color: rgba(31, 31, 30, 0.74);
  font-family: var(--font-std);
  font-size: 0.92rem;
  cursor: pointer;
}

.ld-configurator-form__back:hover {
  color: var(--color-primary);
}

.ld-configurator-step {
  display: none;
}

.ld-configurator-step.is-active {
  display: block;
}

.ld-configurator-step__header {
  max-width: 42rem;
  margin: 0 auto;
  text-align: center;
}

.ld-configurator-step__title {
  margin: 0;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.045em;
}

.ld-configurator-step__text {
  margin: 0.55rem 0 0;
  color: rgba(31, 31, 30, 0.68);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1vw, 1.05rem);
  line-height: 1.4;
}

.ld-configurator-options {
  margin-top: clamp(1.8rem, 3vw, 2.4rem);
}

.ld-configurator-options--cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2vw, 1.4rem);
}

.ld-configurator-option {
  display: block;
  cursor: pointer;
}

.ld-configurator-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ld-configurator-option__card {
  position: relative;
  display: grid;
  justify-items: center;
  min-height: 16rem;
  padding: 0.55rem 0.55rem 1.35rem;
  border: 2px solid rgba(31, 31, 30, 0.1);
  border-radius: 0.55rem;
  background: var(--color-bg);
  text-align: center;
  box-shadow: 0 0.5rem 1.4rem rgba(0, 0, 0, 0.05);
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.ld-configurator-option__card img {
  display: block;
  width: 100%;
  aspect-ratio: 320 / 210;
  height: auto;
  border-radius: 0.35rem;
  object-fit: cover;
}

.ld-configurator-option__check {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 1;
  display: none;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-bg);
}

.ld-configurator-option__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4.4rem;
  height: 4.4rem;
  margin-top: -1.2rem;
  border-radius: 999px;
  background: #eff3fb;
  color: var(--color-primary);
  border:4px solid #fff;
}

.ld-configurator-option__icon svg {
  width: 58%;
  height: 58%;
}

.ld-configurator-option__card strong {
  display: block;
  margin-top: 0.8rem;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: clamp(0.95rem, 1vw, 1.08rem);
  line-height: 1.25;
  font-weight: 700;
}

.ld-configurator-option:hover .ld-configurator-option__card {
  transform: translateY(-2px);
  border-color: rgba(37, 95, 170, 0.38);
  box-shadow: 0 0.85rem 2rem rgba(37, 95, 170, 0.1);
}

.ld-configurator-option input:checked + .ld-configurator-option__card {
  border-color: var(--color-primary);
  box-shadow: 0 0.85rem 2rem rgba(37, 95, 170, 0.14);
}

.ld-configurator-option input:checked + .ld-configurator-option__card .ld-configurator-option__check {
  display: inline-flex;
}

.ld-configurator-option input[type="checkbox"]:checked + .ld-configurator-option__card {
  border-color: var(--color-primary);
  box-shadow: 0 0.85rem 2rem rgba(37, 95, 170, 0.14);
}

.ld-configurator-option input[type="checkbox"]:checked + .ld-configurator-option__card .ld-configurator-option__check {
  display: inline-flex;
}

.ld-configurator-options--simple {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.ld-configurator-options--simple label {
  cursor: pointer;
}

.ld-configurator-options--simple input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ld-configurator-options--simple span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.5rem;
  padding: 1rem;
  border: 2px solid rgba(31, 31, 30, 0.1);
  border-radius: 0.5rem;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: 1rem;
  line-height: 1.3;
  font-weight: 700;
  text-align: center;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    transform 180ms ease;
}

.ld-configurator-options--simple input:checked + span {
  border-color: var(--color-primary);
  background: rgba(54, 118, 241, 0.08);
  color: var(--color-primary);
}

.ld-configurator-options--simple label:hover span {
  transform: translateY(-2px);
  border-color: rgba(37, 95, 170, 0.38);
}

.ld-configurator-fields {
  display: grid;
  gap: 1rem;
  width: min(100%, 38rem);
  margin: clamp(1.8rem, 3vw, 2.4rem) auto 0;
}

.ld-configurator-fields--two {
  grid-template-columns: repeat(2, 1fr);
  width: min(100%, 44rem);
}

.ld-configurator-fields label {
  display: grid;
  gap: 0.45rem;
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: 0.9rem;
  font-weight: 600;
}

.ld-configurator-fields input,
.ld-configurator-fields select,
.ld-configurator-fields textarea {
  width: 100%;
  min-height: 3.25rem;
  border: 1px solid rgba(31, 31, 30, 0.16);
  border-radius: 0.35rem;
  padding: 0.85rem 0.95rem;
  background: var(--color-bg);
  color: var(--color-black);
  font-family: var(--font-std);
  font-size: 1rem;
  outline: none;
}

.ld-configurator-fields textarea {
  min-height: 7rem;
  resize: vertical;
}

.ld-configurator-fields input:focus,
.ld-configurator-fields select:focus,
.ld-configurator-fields textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(37, 95, 170, 0.12);
}

.ld-configurator-privacy {
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr !important;
  align-items: start;
  color: rgba(31, 31, 30, 0.72) !important;
  font-size: 0.84rem !important;
  font-weight: 400 !important;
  line-height: 1.45;
}

.ld-configurator-privacy input {
  width: 1rem;
  min-height: auto;
  height: 1rem;
  margin-top: 0.18rem;
  accent-color: var(--color-primary);
}

.ld-configurator-privacy a {
  color: var(--color-primary);
}

.ld-configurator-form__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(1.8rem, 3vw, 2.5rem);
}

.ld-button--config-next,
.ld-button--config-submit {
  min-width: 10rem;
  min-height: 3.45rem;
  padding: 0.95rem 1.4rem;
  border-radius: 0.35rem;
  background: var(--color-primary);
  color: var(--color-bg);
  font-size: 0.95rem;
  text-transform: none;
  box-shadow: 0 0.8rem 1.8rem rgba(37, 95, 170, 0.18);
}

.ld-button--config-next:hover,
.ld-button--config-submit:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

body.is-config-modal-open {
  overflow: hidden;
}

/* ========================================
   Configurator Responsive
======================================== */

@media (max-width: 820px) {
  .ld-config-modal {
    padding: 0;
  }

  .ld-config-modal__dialog {
    width: 100%;
    height: 100svh;
    max-height: none;
    border-radius: 0;
  }

  .ld-configurator-form {
    min-height: 100svh;
    padding: 1rem 5% 1.5rem;
  }

  .ld-configurator-form__header {
    align-items: center;
  }

  .ld-configurator-form__nav {
    display: none;
  }

  .ld-configurator-progress {
    gap: 1rem;
    overflow-x: auto;
    justify-content: flex-start;
    padding-bottom: 0.2rem;
  }

  .ld-configurator-progress::before {
    left: 1rem;
    right: 1rem;
  }

  .ld-configurator-options--cards,
  .ld-configurator-options--simple,
  .ld-configurator-fields--two {
    grid-template-columns: 1fr;
  }

  .ld-configurator-option__card {
    min-height: auto;
  }

  .ld-configurator-form__footer {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin-inline: -5%;
    padding: 1rem 5% 0;
    background: linear-gradient(180deg, rgba(255,255,255,0), var(--color-bg) 35%);
  }

  .ld-button--config-next,
  .ld-button--config-submit {
    width: 100%;
  }
}

.ld-configurator-options--cards-four {
  grid-template-columns: repeat(4, 1fr);
}

.ld-configurator-option__card small {
  display: block;
  max-width: 10rem;
  margin: 0.55rem auto 0;
  color: rgba(31, 31, 30, 0.68);
  font-family: var(--font-std);
  font-size: clamp(0.78rem, 0.9vw, 0.9rem);
  line-height: 1.35;
  font-weight: 400;
}

@media (max-width: 980px) {
  .ld-configurator-options--cards-four {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .ld-configurator-options--cards-four {
    grid-template-columns: 1fr;
  }
}


.ld-configurator-step__meta {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(1rem, 2vw, 2rem);
  margin-top: clamp(1.5rem, 2.4vw, 2rem);
}

.ld-configurator-skip {
  min-height: 3.25rem;
  padding: 0.85rem 1.5rem;
  border: 1.5px solid rgba(37, 95, 170, 0.22);
  border-radius: 0.45rem;
  background: var(--color-bg);
  color: var(--color-primary);
  font-family: var(--font-std);
  font-size: 0.95rem;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    transform 180ms ease;
}

.ld-configurator-skip:hover {
  border-color: var(--color-primary);
  background: rgba(54, 118, 241, 0.06);
  transform: translateY(-1px);
}

.ld-configurator-skip:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-configurator-hint {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  color: rgba(31, 31, 30, 0.68);
  font-family: var(--font-std);
  font-size: clamp(0.85rem, 0.92vw, 0.96rem);
  line-height: 1.35;
}

.ld-configurator-hint span {
  display: inline-flex;
  color: var(--color-primary);
}

@media (max-width: 640px) {
  .ld-configurator-step__meta {
    grid-template-columns: 1fr;
  }

  .ld-configurator-skip {
    width: 100%;
  }

  .ld-configurator-hint {
    align-items: flex-start;
  }
}

.ld-configurator-fields--contact {
  grid-template-columns: repeat(2, 1fr);
  width: min(100%, 44rem);
}

.ld-configurator-fields--contact label {
  min-width: 0;
}

.ld-configurator-fields--contact input,
.ld-configurator-fields--contact select,
.ld-configurator-fields--contact textarea {
  border-color: rgba(31, 31, 30, 0.14);
  background: var(--color-bg);
}

.ld-configurator-fields--contact input::placeholder,
.ld-configurator-fields--contact textarea::placeholder {
  color: rgba(31, 31, 30, 0.42);
}

.ld-configurator-fields__message {
  grid-column: 1 / -1;
}

.ld-configurator-fields__message small {
  color: rgba(31, 31, 30, 0.58);
  font-size: 0.9em;
  font-weight: 400;
}

.ld-configurator-fields--contact .ld-configurator-privacy {
  margin-top: 0.15rem;
}

.ld-configurator-final-submit {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.9rem;
  margin-top: 0.3rem;
}

.ld-button--config-final {
  width: 100%;
  min-height: 3.75rem;
  border-radius: 0.35rem;
  background: var(--color-primary);
  color: var(--color-bg);
  font-size: 1rem;
  text-transform: none;
  box-shadow: 0 0.85rem 1.8rem rgba(37, 95, 170, 0.18);
}

.ld-button--config-final:hover {
  background: var(--color-primary-hover);
  transform: translateY(-1px);
}

.ld-button--config-final:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 4px;
}

.ld-configurator-final-submit p {
  margin: 0;
  color: rgba(31, 31, 30, 0.62);
  font-family: var(--font-std);
  font-size: 0.9rem;
  line-height: 1.35;
  text-align: center;
}

@media (max-width: 640px) {
  .ld-configurator-fields--contact {
    grid-template-columns: 1fr;
  }

  .ld-configurator-fields__message,
  .ld-configurator-final-submit {
    grid-column: auto;
  }
}

@media (min-width: 760px) and (max-width: 1100px) {

  .ld-hero-trust {
    bottom:3rem;
  }

  .ld-hero__inner {
    padding-bottom: clamp(24rem, 65vw, 65rem);
  }

}

@media (min-width: 20px) and (max-width: 760px) {
	.ld-hero-trust{ display:none; }
}

.ld-configurator-upload {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.45rem;
  color: var(--color-black);
  font-family: var(--font-std);
}

.ld-configurator-upload__label {
  font-size: 0.9rem;
  line-height: 1.25;
  font-weight: 600;
}

.ld-configurator-upload__label small {
  color: rgba(31, 31, 30, 0.56);
  font-size: 0.9em;
  font-weight: 400;
}

.ld-configurator-upload__box {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.85rem;
  min-height: 4.6rem;
  padding: 1rem;
  border: 1.5px dashed rgba(37, 95, 170, 0.34);
  border-radius: 0.45rem;
  background: rgba(54, 118, 241, 0.035);
  cursor: pointer;
  transition:
    border-color 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.ld-configurator-upload__box:hover {
  border-color: var(--color-primary);
  background: rgba(54, 118, 241, 0.06);
  transform: translateY(-1px);
}

.ld-configurator-upload__box:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(37, 95, 170, 0.12);
}

.ld-configurator-upload__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 999px;
  background: rgba(54, 118, 241, 0.1);
  color: var(--color-primary);
}

.ld-configurator-upload__content {
  display: grid;
  gap: 0.25rem;
}

.ld-configurator-upload__content strong {
  color: var(--color-black);
  font-size: 0.98rem;
  line-height: 1.25;
  font-weight: 700;
}

.ld-configurator-upload__content small {
  color: rgba(31, 31, 30, 0.64);
  font-size: 0.86rem;
  line-height: 1.35;
  font-weight: 400;
}

.ld-configurator-upload__box input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.ld-configurator-upload__hint {
  color: rgba(31, 31, 30, 0.58);
  font-size: 0.8rem;
  line-height: 1.35;
  font-weight: 400;
}

@media (max-width: 520px) {
  .ld-configurator-upload__box {
    grid-template-columns: 1fr;
    justify-items: start;
  }
}

/* ========================================
   Project Tile Gallery
======================================== */

.ld-project-tile {
  display: grid;
  gap: 0.65rem;
  margin: 0;
  color: #08295c;
  font-family: var(--font-std);
  font-size: clamp(0.8rem, 0.85vw, 0.92rem);
  line-height: 1.22;
  font-weight: 700;
  text-align: center;
}

.ld-project-tile figcaption {
  margin: 0;
}

.ld-project-tile small {
  color: rgba(31, 31, 30, 0.72);
  font-size: 0.92em;
  font-weight: 400;
}

.ld-project-tile__slider {
  position: relative;
  overflow: hidden;
  border-radius: 0.4rem;
  background: var(--color-gray);
  touch-action: pan-y;
}

.ld-project-tile__track {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 260 / 160;
}

.ld-project-tile__track img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0.4rem;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.02);
  transition:
    opacity 220ms ease,
    transform 420ms ease;
}

.ld-project-tile__track img.is-active {
  opacity: 1;
  transform: scale(1);
}

.ld-project-tile__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-primary);
  cursor: pointer;
  transform: translateY(-50%);
  box-shadow: 0 0.5rem 1.2rem rgba(0, 0, 0, 0.18);
  opacity: 0;
  transition:
    opacity 180ms ease,
    background-color 180ms ease,
    transform 180ms ease;
}

.ld-project-tile__arrow--prev {
  left: 0.55rem;
}

.ld-project-tile__arrow--next {
  right: 0.55rem;
}

.ld-project-tile__slider:hover .ld-project-tile__arrow,
.ld-project-tile__slider:focus-within .ld-project-tile__arrow {
  opacity: 1;
}

.ld-project-tile__arrow:hover {
  background: var(--color-bg);
  transform: translateY(-50%) scale(1.05);
}

.ld-project-tile__arrow:focus-visible {
  opacity: 1;
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

.ld-project-tile__dots {
  position: absolute;
  left: 50%;
  bottom: 0.55rem;
  z-index: 2;
  display: inline-flex;
  gap: 0.28rem;
  transform: translateX(-50%);
}

.ld-project-tile__dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.18);
}

.ld-project-tile__dot.is-active {
  background: var(--color-bg);
}

@media (hover: none) {
  .ld-project-tile__arrow {
    opacity: 1;
  }
}

@media (max-width: 520px) {
  .ld-project-tile__arrow {
    width: 2.35rem;
    height: 2.35rem;
  }
}
.ld-project-tile__track {

  position: relative;

  width: 100%;

  height:100%;
  aspect-ratio: 260 / 160;

  overflow: hidden;

  border-radius: 0.4rem;

}

.ld-project-tile__track img {

  position: absolute;

  inset: 0;

  display: block;

  width: 100%;

  height: 100%;

  max-width: none;

  object-fit: cover;

  object-position: center;

  border-radius: 0;

}

.ld-project-tile > img {

  display: block;

  width: 100%;
  aspect-ratio: 260 / 160;

  height: auto;

  border-radius: 0.4rem;

  object-fit: cover;

}