:root {
  --bg: #282828;
  --dark: #1a1a1a;
  --panel: #292929;
  --orange: #f6910c;
  --orange-muted: #e89638;
  --white: #fff;
  --cream: #fff6ef;
  --muted: #969696;
  --content: 77.1875rem;
}

* { box-sizing: border-box; }
html {
  max-width: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  max-width: 100%;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--white);
  font-family: Manrope, Arial, sans-serif;
  font-size: 1rem;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: Outfit, Arial, sans-serif; }
p {
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}
.wrap {
  width: 100%;
  max-width: var(--content);
  margin-inline: auto;
  padding-inline: 1.25rem;
}
.skip {
  position: fixed;
  top: .5rem;
  left: -999rem;
  z-index: 100;
  padding: .5rem;
  background: #fff;
  color: #000;
}
.skip:focus { left: .5rem; }
.button {
  display: inline-flex;
  min-width: 3.1625rem;
  min-height: 3.1625rem;
  align-items: center;
  justify-content: center;
  padding: .9775rem 1.4375rem;
  border-radius: .71875rem;
  background: var(--orange);
  color: var(--cream);
  font-size: 1.00625rem;
  font-weight: 800;
  text-align: center;
  transition: transform .2s, background .2s;
}
.button:hover { transform: translateY(-.125rem); background: #ff9e1f; }
.button:focus-visible, summary:focus-visible, a:focus-visible { outline: .1875rem solid #fff; outline-offset: .1875rem; }
.center { text-align: center; }
.eyebrow {
  display: block;
  margin-bottom: .4rem;
  color: var(--orange);
  font-family: 'DM Sans', sans-serif;
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .0875rem;
  text-transform: uppercase;
}
.section-main { background: var(--bg); }
.section-dark { background: var(--dark); }
.section-heading h2, .about-copy h2, .why-copy h2, .cta h2 {
  margin-bottom: .8rem;
  font-size: clamp(2rem, 9vw, 2.75rem);
  line-height: 1.16;
}
.section-heading.centered { max-width: 58rem; margin-inline: 0; text-align: left; }
.section-heading.centered p { max-width: 65ch; margin-inline: 0; }
.split-heading { display: grid; gap: 1rem; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 10;
  display: grid;
  min-height: 7.5rem;
  grid-template-columns: auto auto;
  gap: .65rem .75rem;
  align-items: flex-start;
  padding-top: 1.25rem;
}
.brand { min-width: 5.5rem; min-height: 2.75rem; }
.site-header .brand { grid-row: 1; grid-column: 1; justify-self: start; }
.brand img { width: 6.5rem; height: 4.5rem; object-fit: contain; }
.header-cta { display: none; }
.menu-toggle {
  position: relative;
  display: grid;
  width: 3.25rem;
  height: 3.25rem;
  grid-row: 1;
  grid-column: 2;
  place-items: center;
  justify-self: end;
  margin-top: .55rem;
  padding: 0;
  border: 0;
  border-radius: .75rem;
  background: var(--orange);
  cursor: pointer;
}
.menu-toggle > span, .menu-toggle > span::before, .menu-toggle > span::after {
  position: absolute;
  width: 1.55rem;
  height: .15rem;
  border-radius: 999px;
  background: #fff;
  content: '';
  transition: transform .2s, background .2s;
}
.menu-toggle > span {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.menu-toggle > span::before, .menu-toggle > span::after { top: 0; left: 0; }
.menu-toggle > span::before { transform: translateY(-.48rem); }
.menu-toggle > span::after { transform: translateY(.48rem); }
.site-header.menu-open .menu-toggle > span { background: transparent; }
.site-header.menu-open .menu-toggle > span::before { transform: rotate(45deg); }
.site-header.menu-open .menu-toggle > span::after { transform: rotate(-45deg); }
.menu-toggle:focus-visible { outline: .125rem solid #fff; outline-offset: 0; }
.site-nav {
  position: absolute;
  top: 6.5rem;
  right: 1.25rem;
  left: 1.25rem;
  display: grid;
  padding: .75rem;
  transform: translateY(-.5rem);
  border: .0625rem solid #f6910c88;
  border-radius: .85rem;
  background: #171717;
  box-shadow: 0 1rem 2.5rem #0008;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s, transform .2s, visibility .2s;
}
.site-header.menu-open .site-nav {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.site-nav a {
  display: flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: flex-start;
  padding-inline: 1rem;
  color: #fff;
  font-family: Outfit, Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
  transition: color .2s;
}
.site-nav a:not(.mobile-nav-cta) { border-bottom: .0625rem solid #ffffff18; }
.site-nav a:hover { color: var(--orange); }
.site-nav .mobile-nav-cta {
  min-height: 3.25rem;
  justify-content: center;
  margin-top: .65rem;
  border-radius: .65rem;
  background: var(--orange);
  color: var(--cream);
  text-align: center;
}
.site-nav .mobile-nav-cta:hover { background: #ff9e1f; color: #fff; }

.hero {
  position: relative;
  overflow: hidden;
  padding: 8.5rem 0 0;
  background: #272727;
}
.hero::before {
  position: absolute;
  top: 5rem;
  left: -13rem;
  width: 35rem;
  height: 35rem;
  background: url('assets/blob-tt-.png') center / contain no-repeat;
  content: '';
  opacity: .12;
}
.hero-layout {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
}
.hero-copy { position: relative; z-index: 3; }
.hero h1 {
  max-width: 12ch;
  margin-bottom: 1rem;
  font-size: clamp(2.35rem, 11.5vw, 3.35rem);
  line-height: 1.14;
  letter-spacing: -.02em;
}
.hero-copy > p { max-width: 36rem; margin-bottom: 1.15rem; }
.social-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  width: 100%;
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: .0625rem solid #181818;
  font-family: Outfit, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
}
.social-line span { flex-basis: 100%; }
.social-line a {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: 50%;
  background: var(--orange);
  font-family: Manrope, sans-serif;
  font-size: .9rem;
}
.social-line svg { width: 1.25rem; height: 1.25rem; fill: currentColor; }
.hero-visual {
  position: relative;
  min-height: 32rem;
  margin-top: 1.25rem;
}
.hero-person {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 2;
  width: min(31rem, 100%);
  height: 32rem;
  transform: translateX(-50%);
  object-fit: cover;
  object-position: right top;
  border-radius: 46% 46% 0 0;
  filter: saturate(.85);
}
.hero-rings {
  position: absolute;
  right: -10rem;
  bottom: 1rem;
  z-index: 1;
  width: 28rem;
  height: 24rem;
  transform: rotate(10deg);
  border: .25rem solid #fff;
  border-radius: 50% 44% 48% 52%;
  opacity: .94;
}
.hero-rings::before {
  position: absolute;
  top: .8rem;
  right: 4.5rem;
  width: 3.5rem;
  height: 3.5rem;
  border: 1.4rem solid var(--orange);
  border-radius: 50%;
  content: '';
}
.hero-dots { position: absolute; right: -11rem; bottom: 0; z-index: 1; width: 30rem; opacity: .14; }

.stats-section {
  position: relative;
  padding-block: 1.75rem;
  background: var(--dark) url('assets/diamond-abstract-backgrounds-min.jpg') center / cover;
}
.stats-section::before { position: absolute; inset: 0; background: #050505df; content: ''; }
.stats { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
.stat { display: flex; align-items: center; gap: .7rem; color: var(--cream); font-size: .875rem; font-weight: 800; }
.stat img { width: 2.75rem; height: 3.5rem; object-fit: contain; }

.offers, .about, .process, .why, .regional, .faq { padding-block: 4.5rem; }
.offer-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin: 2.5rem 0; }
.offer-card {
  position: relative;
  display: flex;
  width: min(100%, 25rem);
  aspect-ratio: .82;
  align-items: center;
  justify-content: center;
  justify-self: center;
  overflow: hidden;
  border-radius: .5rem;
  background: linear-gradient(#0004, #0008), var(--photo) center / cover no-repeat;
  text-align: center;
}
.offer-card::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12rem;
  height: 12rem;
  transform: translate(-50%, -25%);
  border-radius: 50%;
  background: #d98a13cf;
  content: '';
}
.offer-card img { position: absolute; top: 22%; z-index: 2; width: 4.5rem; height: 4.5rem; object-fit: contain; filter: brightness(0) invert(1); }
.offer-card h3 { position: relative; z-index: 2; width: 11rem; margin: 24% 0 0; font-size: 1.35rem; line-height: 1.45; }

.about-grid { display: grid; gap: 2.5rem; }
.about-portrait {
  position: relative;
  width: min(100%, 32rem);
  aspect-ratio: .82;
  justify-self: center;
  overflow: hidden;
}
.about-portrait::before {
  position: absolute;
  bottom: -16%;
  left: 2%;
  width: 78%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--orange);
  content: '';
}
.about-portrait::after {
  position: absolute;
  right: 0;
  bottom: -4%;
  width: 78%;
  aspect-ratio: 1;
  border: .45rem solid #141414;
  border-radius: 50%;
  content: '';
}
.about-portrait img {
  position: absolute;
  bottom: -4%;
  left: 3%;
  z-index: 2;
  width: 92%;
  height: 100%;
  border-radius: 48% 48% 0 0;
  object-fit: cover;
  object-position: center top;
}
.about-copy p { margin-bottom: 1.5rem; }
.about-copy blockquote {
  margin: 0;
  padding: 1.15rem;
  border-radius: .625rem;
  background: var(--dark);
  font-size: .9375rem;
  font-weight: 500;
  line-height: 1.7;
}

.process-flow { display: grid; gap: 3.25rem; margin-top: 2.5rem; }
.process-step { position: relative; text-align: center; }
.step-visual {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(12rem, 55vw);
  aspect-ratio: 1;
  margin: 0 auto 1.5rem;
  place-items: center;
  border: .25rem solid var(--orange);
  border-radius: 50%;
  background: var(--step-photo) center / cover no-repeat;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
}
.step-visual span {
  position: absolute;
  top: -.5rem;
  right: -.5rem;
  display: grid;
  width: 3.25rem;
  height: 3.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--orange);
}
.process-step h3 { margin-bottom: .5rem; font-size: 1.4rem; line-height: 1.3; }
.process-step p { max-width: 36ch; margin-inline: auto; font-size: .9375rem; }
.process .button { margin-top: 2.5rem; }

.why-grid { display: grid; gap: 3rem; }
.why-copy > p { color: #fff; }
.reason { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: start; margin-top: 2rem; }
.reason img { width: 3rem; height: 3rem; object-fit: contain; }
.reason h3 { margin-bottom: .3rem; color: var(--orange); font-size: 1.25rem; }
.reason p { margin: 0; color: #fff; font-size: .9375rem; }
.why-cards { display: grid; gap: 1.5rem; }
.why-cards article {
  display: flex;
  min-height: 28rem;
  align-items: flex-end;
  padding: 1.75rem;
  border-radius: .5rem;
  background: linear-gradient(180deg, transparent 35%, #000c), var(--photo) center / cover;
  font-weight: 800;
  line-height: 1.45;
}

.regional .section-heading p { max-width: 65ch; }
.regional-grid { display: grid; gap: 1.5rem; margin-top: 3rem; }
.region-card {
  padding: 2.5rem 1.25rem;
  border-radius: .625rem;
  background: #1a1a1a url('assets/bg-testimonial.png') center / cover;
  text-align: center;
}
.region-list { display: grid; gap: 2.5rem; }
.region-list article { margin: 0; }
.region-list h3 { margin-bottom: .25rem; font-size: 1.65rem; line-height: 1.3; }
.region-list p { margin: 0; font-size: .9375rem; }
.region-icon { margin-bottom: .4rem; color: var(--orange); font-size: 2.5rem; line-height: 1; }
.map-card {
  display: flex;
  min-height: 22rem;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  background-color: #111;
}
.map-embed { position: relative; flex: 1; width: 100%; min-height: 18rem; }
.map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map-consent {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 2rem;
  background: #111 url('assets/bg-testimonial.png') center / cover;
  text-align: center;
}
.map-consent__pin { color: var(--orange); font-size: 3.25rem; line-height: 1; }
.map-consent h3 { margin: .4rem 0 .45rem; color: #fff; font-size: 1.65rem; }
.map-consent p { max-width: 28rem; margin: 0; color: #b7b7b7; font-size: .9375rem; }
.map-consent__button { min-height: 3.2rem; margin-top: 1.25rem; padding: .85rem 1.5rem; border: 0; cursor: pointer; }
.map-note { width: 100%; margin: 0; padding: 1.1rem 1.25rem; background: #111; color: #fff; font-size: .9375rem; text-align: center; }
html[data-consent="all"] .map-consent { display: none; }

.faq-wrap { max-width: var(--content); }
.faq .section-heading, .accordion { max-width: 60rem; }
.accordion { margin-top: 2.5rem; }
.accordion details { overflow: hidden; margin-bottom: .8rem; border-radius: .55rem; background: var(--cream); color: #282828; }
.accordion summary {
  position: relative;
  min-height: 3.5rem;
  padding: 1rem 1rem 1rem 2.25rem;
  cursor: pointer;
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: .04rem;
  list-style: none;
  text-transform: uppercase;
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::before {
  position: absolute;
  top: .95rem;
  left: 1rem;
  color: var(--orange);
  content: '›';
  font-size: 1.7rem;
  font-weight: 800;
  line-height: 1;
  transition: transform .2s;
}
.accordion details[open] summary::before { transform: rotate(90deg); }
.accordion details p { margin: 0; padding: 0 1.25rem 1.25rem 2.25rem; color: #4a4a4a; font-size: .9375rem; line-height: 1.6; }

.cta { padding-block: 4.5rem; background: var(--panel); }
.cta-inner {
  display: grid;
  width: calc(100% - 2rem);
  gap: 1.5rem;
  padding: 2rem;
  border: .125rem solid #080808;
  border-radius: 1rem;
  background: #171717;
  box-shadow: 0 1rem 2.5rem #0003;
}
.cta p { max-width: 36rem; margin-bottom: 0; }
.cta .button { justify-self: start; }

.contact-panel {
  width: calc(100% - 2rem);
  margin-top: 2rem;
  padding: 2rem;
  scroll-margin-top: 1rem;
  border: .0625rem solid #0a0a0a;
  border-radius: 1rem;
  background: #202020;
}
.contact-heading { margin-bottom: 2rem; }
.contact-heading h2 { margin-bottom: .75rem; }
.contact-heading p { max-width: 42rem; }
.contact-form { display: grid; gap: 1.25rem; }
.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.form-field { display: grid; gap: .5rem; }
.form-field label {
  color: #fff;
  font-family: Outfit, Arial, sans-serif;
  font-size: .9375rem;
  font-weight: 700;
}
.form-field input, .form-field textarea {
  width: 100%;
  min-height: 3.25rem;
  padding: .85rem 1rem;
  border: .0625rem solid #4a4a4a;
  border-radius: .55rem;
  outline: 0;
  background: #141414;
  color: #fff;
  font: 500 1rem/1.5 Manrope, Arial, sans-serif;
  transition: border-color .2s, box-shadow .2s;
}
.form-field textarea { min-height: 10rem; resize: vertical; }
.form-field input:focus, .form-field textarea:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 .1875rem #f6910c33;
}
.form-field input:user-invalid, .form-field textarea:user-invalid { border-color: #dc6464; }
.form-consent {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: .75rem;
  align-items: start;
  color: #c0c0c0;
  font-size: .875rem;
  line-height: 1.6;
}
.form-consent input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--orange); }
.form-consent a { color: var(--orange); text-decoration: underline; }
.form-actions { display: grid; gap: 1rem; align-items: center; }
.form-actions .button { border: 0; cursor: pointer; }
.form-actions .button:disabled { cursor: wait; opacity: .65; }
.form-actions p { max-width: 48rem; margin: 0; font-size: .8125rem; line-height: 1.55; }
.form-status { min-height: 1.5rem; margin: 0; font-size: .9rem; font-weight: 700; line-height: 1.55; }
.form-status:empty { min-height: 0; }
.form-status.is-error { color: #ff8d8d; }
.form-status.is-ok { color: #75d993; }

.site-footer { background: var(--panel); border-top: .0625rem solid #777; }
.footer-main { display: grid; gap: 2rem; padding-block: 2.5rem; }
.footer-brand img { width: 8.5rem; height: 5.75rem; margin-bottom: 1.25rem; object-fit: contain; }
.footer-brand p { max-width: 28rem; margin-bottom: 0; color: var(--cream); font-size: .9375rem; }
.footer-info h3 { margin: 0 0 .35rem; font-size: 1.4rem; }
.footer-info > a { min-height: 2.75rem; padding-block: .45rem; font-size: .9375rem; }
.footer-contact-link { display: flex; gap: .7rem; align-items: center; width: fit-content; }
.footer-contact-icon { flex: 0 0 1.2rem; width: 1.2rem; height: 1.2rem; fill: none; stroke: var(--orange); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-info h3:nth-of-type(2) { margin-top: 1.25rem; }
.footer-info span { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .9375rem; }
.footer-info span a { min-height: 2.75rem; padding-block: .6rem; }
.footer-bottom {
  display: grid;
  gap: 1rem;
  padding-block: 1.75rem;
  border-top: .0625rem solid #777;
  color: var(--muted);
  font-size: .875rem;
  text-align: center;
}
.footer-bottom a { color: #ddd; text-decoration: underline; }

@media (min-width: 48rem) {
  .wrap { padding-inline: 1.75rem; }
  .button { padding: 1.0925rem 2.0125rem; font-size: 1.15rem; }
  .site-header { min-height: 8.75rem; padding-top: 1rem; }
  .brand img { width: 9.3rem; height: 6.25rem; }
  .menu-toggle { width: 3.75rem; height: 3.75rem; margin-top: 1rem; }
  .site-nav { top: 7.75rem; right: 1.75rem; left: 1.75rem; }
  .site-nav a { font-size: 1.05rem; }
  .hero { min-height: auto; padding-top: 8.75rem; }
  .hero h1 { width: 100%; max-width: 44rem; font-size: clamp(2.75rem, 6vw, 3.25rem); }
  .hero-copy > p, .social-line { width: 100%; max-width: 40rem; }
  .hero-visual { width: min(100%, 44rem); min-height: 38rem; margin: 2rem auto 0; }
  .hero-person { width: min(31rem, 72vw); height: 38rem; }
  .hero-rings { right: -5rem; bottom: 4rem; width: 32rem; height: 28rem; }
  .hero-dots { right: -3rem; width: 34rem; }
  .social-line span { flex-basis: auto; }
  .stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
  .offers, .about, .process, .why, .regional, .faq { padding-block: 5.5rem; }
  .split-heading { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
  .split-heading p { text-align: left; }
  .offer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer-card { width: 100%; }
  .about-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
  .process-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
  .step-visual { width: min(10rem, 20vw); }
  .why-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .regional-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .region-card { padding: 3rem 2rem; }
  .cta-inner { grid-template-columns: 1fr auto; align-items: center; padding: 3rem; }
  .cta .button { justify-self: end; }
  .contact-panel { padding: 3rem; }
  .contact-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .form-field-wide { grid-column: 1 / -1; }
  .form-actions { grid-template-columns: auto 1fr; }
  .form-actions .button { justify-self: start; }
  .footer-main { grid-template-columns: minmax(0, 1fr) minmax(16rem, .8fr); }
  .footer-spacer { display: none; }
  .footer-bottom { grid-template-columns: 1fr 1fr; text-align: left; }
  .footer-bottom span:last-child { text-align: right; }
}

@media (min-width: 64rem) {
  .wrap { padding-inline: 1.25rem; }
  .section-heading h2, .about-copy h2, .why-copy h2, .cta h2 { font-size: 2.441rem; line-height: 1.3; }
  .site-header {
    min-height: 8.75rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: center;
    padding-top: 0;
  }
  .menu-toggle { display: none; }
  .site-nav {
    position: static;
    display: grid;
    grid-row: 1;
    grid-column: 2;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(.5rem, 1.3vw, 1.5rem);
    padding: 0;
    transform: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .site-nav a { min-height: 3.5rem; justify-content: center; padding: 0; border: 0 !important; font-size: clamp(.95rem, 1.2vw, 1.1rem); text-align: center; }
  .site-nav .mobile-nav-cta { display: none; }
  .header-cta { display: inline-flex; grid-row: 1; grid-column: 3; margin-top: 0; }
  .hero { min-height: 52rem; padding-top: 0; }
  .hero-layout {
    display: grid;
    min-height: 52rem;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    align-items: stretch;
    padding-top: 8.375rem;
  }
  .hero-copy { align-self: center; padding-bottom: 5rem; }
  .hero h1 { width: 100%; max-width: 31rem; font-size: clamp(3.1rem, 4.2vw, 3.75rem); line-height: 1.2; }
  .hero-copy > p, .social-line { width: 100%; max-width: 31rem; }
  .hero-copy > p { font-size: 1.0625rem; line-height: 1.8; }
  .hero-visual { width: auto; min-height: 0; margin: 0; }
  .hero-person { width: min(44rem, 50vw); height: auto; max-height: 46.75rem; transform: translateX(-54%); object-position: center top; }
  .hero-rings { right: -7rem; bottom: 6.5rem; width: 36.8rem; height: 31.8rem; }
  .hero-dots { right: -7rem; width: 35rem; }
  .stats-section { padding-block: 3.8rem; }
  .stat { gap: 1.4rem; font-size: 1rem; }
  .stat img { width: 3rem; height: 4.4rem; }
  .offer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; margin-block: 3rem; }
  .offer-card { aspect-ratio: .81; }
  .about-grid { gap: 3.75rem; }
  .about-portrait { width: 100%; }
  .process-flow { position: relative; gap: 1rem; margin-top: 3rem; }
  .process-step { z-index: 1; padding-inline: 1.875rem; }
  .process-step:not(:last-child)::after {
    position: absolute;
    top: 5rem;
    right: calc(-50% + 5rem);
    left: calc(50% + 5rem);
    z-index: -1;
    height: .1875rem;
    background: var(--orange);
    content: '';
  }
  .step-visual { width: 10rem; }
  .why-grid { grid-template-columns: 1.08fr .92fr; align-items: start; }
  .why-cards { gap: 3rem; padding-top: 1.5rem; }
  .why-cards article { min-height: 37rem; }
  .region-card { padding: 3.15rem 2.5rem; }
  .region-list h3 { font-size: 1.95rem; }
  .map-card { min-height: 32.3rem; }
  .map-embed { min-height: 27rem; }
  .accordion summary { padding: 1rem 1.2rem 1rem 2.25rem; font-size: 1.0625rem; letter-spacing: .075rem; }
  .contact-panel { display: grid; grid-template-columns: minmax(18rem, .75fr) minmax(0, 1.25fr); gap: 4rem; }
  .contact-heading { margin-bottom: 0; }
  .footer-main { grid-template-columns: 30.5rem 1fr 22.7rem; }
  .footer-spacer { display: block; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Rechtliche Seiten */
.legal-main { min-height: 70vh; padding: 10rem 0 5rem; background: var(--bg); }
.legal-content { max-width: 60rem; }
.legal-content > h1 {
  margin-bottom: 1.5rem;
  overflow-wrap: anywhere;
  font-size: clamp(1.8rem, 7.5vw, 4.5rem);
  line-height: 1.08;
}
.legal-intro { max-width: 68ch; margin-bottom: 2.5rem; }
.legal-content article {
  margin-top: 1rem;
  padding: 1.5rem;
  border: .0625rem solid #111;
  border-radius: .75rem;
  background: #202020;
}
.legal-content h2 { margin-bottom: .75rem; font-size: clamp(1.45rem, 4vw, 2rem); line-height: 1.25; }
.legal-content h3 { margin: 1.5rem 0 .5rem; font-size: 1.15rem; }
.legal-content p, .legal-content li { color: #c0c0c0; line-height: 1.75; }
.legal-content a { color: var(--orange); text-decoration: underline; }
.legal-content ul { padding-left: 1.25rem; }
.legal-note { padding: 1rem 1.25rem; border-left: .25rem solid var(--orange); background: #191919; }
.legal-table-wrap { margin: 1rem 0; overflow-x: auto; border: .0625rem solid #444; border-radius: .6rem; }
.legal-table { width: 100%; min-width: 42rem; border-collapse: collapse; color: #c0c0c0; text-align: left; }
.legal-table th, .legal-table td { padding: .9rem 1rem; border-bottom: .0625rem solid #444; vertical-align: top; line-height: 1.55; }
.legal-table th { background: #171717; color: #fff; font-family: Outfit, Arial, sans-serif; }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-cookie-button { margin-top: .75rem; border: 0; cursor: pointer; }

/* Übertragbarer Cookie-Banner – UI/UX aus der gelieferten Referenz. */
.cookie-banner[hidden] { display: none !important; }

.cookie-banner {
  position: fixed;
  z-index: 300;
  right: 1.375rem;
  bottom: .875rem;
  left: 1.375rem;
  padding: 0;
  color: #111;
  font-family: Arial, Helvetica, sans-serif;
}

.cookie-banner__inner {
  position: relative;
  width: min(100%, 77.5rem);
  max-height: calc(100dvh - 1.75rem);
  box-sizing: border-box;
  margin-inline: auto;
  padding: 1.75rem 1rem 1.15rem;
  overflow: auto;
  border: 0;
  border-radius: .25rem;
  background: #fff;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .28);
}

.cookie-banner h2 {
  max-width: none;
  margin: 0;
  color: #111;
  font: 700 .875rem/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}

.cookie-banner__copy { margin-top: .8rem; }
.cookie-banner__copy p {
  width: 100%;
  max-width: none;
  margin: .16rem 0 0;
  color: #111;
  font: 400 .6875rem/1.35 Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}
.cookie-banner__copy a {
  color: #111;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 1px;
}
.cookie-banner__copy em { font-style: italic; }

.cookie-banner__close {
  position: absolute;
  top: .62rem;
  right: .55rem;
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  place-items: center;
  border: 0;
  background: transparent;
  color: #4d4d4d;
  font: 400 1.25rem/1 Arial, Helvetica, sans-serif;
  cursor: pointer;
}

.cookie-banner__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
  padding-inline: 2rem 0;
}
.cookie-banner__actions :where(a, button) {
  min-height: 2rem;
  border: 0;
  background: transparent;
  color: #4b4b4b;
  font: 700 .6875rem/1 Arial, Helvetica, sans-serif;
  cursor: pointer;
}
.cookie-banner__more {
  display: inline-flex;
  width: max-content;
  align-items: center;
  text-decoration: none;
}
.cookie-banner__reject { padding: .35rem .8rem; }
.cookie-banner__accept {
  min-width: 7.75rem;
  padding: .35rem 1.25rem !important;
  border-radius: 999px !important;
  background: #4d99f8 !important;
  color: #fff !important;
}
.cookie-banner :where(a, button):focus-visible { outline: 3px solid #111; outline-offset: 3px; }

.cookie-settings-button {
  min-height: 2.75rem;
  padding: .6rem 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

@media (min-width: 48rem) {
  .cookie-banner__actions { white-space: nowrap; }
}

@media (max-width: 47.9375rem) {
  .cookie-banner { right: .75rem; bottom: .75rem; left: .75rem; }
  .cookie-banner__inner { padding: 1.5rem 1rem 1rem; }
  .cookie-banner__close { top: .25rem; right: .25rem; width: 2.75rem; height: 2.75rem; }
  .cookie-banner__copy { margin-top: .65rem; }
  .cookie-banner__copy p { margin-top: .45rem; font-size: .875rem; line-height: 1.5; }
  .cookie-banner__actions {
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    margin-top: 1rem;
    padding: 0;
  }
  .cookie-banner__actions :where(a, button) { min-height: 2.75rem; font-size: .875rem; }
  .cookie-banner__more { grid-column: 1 / -1; }
  .cookie-banner__accept { min-width: 0; }
}

@media (max-width: 23.75rem) {
  .cookie-banner { right: .5rem; bottom: .5rem; left: .5rem; }
  .cookie-banner__inner { max-height: calc(100dvh - 1rem); padding: 1.4rem .85rem .85rem; }
}
