/* =========================================================
   Base
   ========================================================= */

* {
  box-sizing: border-box;
}

html,
body {
  overflow-x: clip;
}

body {
  margin: 0;
  font-family: var(--ff-body);
  color: var(--text);
  background: var(--bg);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

a {
  color: inherit;
}
.fine {
  font-size: var(--fs-small);
}

iframe {
  border: 0;
  width: 100%;
  height: 100%;
}

/* =========================================================
   Section background utilities
   ========================================================= */

.section--0 {
  background: var(--section-0);
}
.section--1 {
  background: var(--section-1);
}
.section--2 {
  background: var(--section-2);
}
.section--3 {
  background: var(--section-3);
}
.section--4 {
  background: var(--section-4);
}

/* =========================================================
      Layout
      ========================================================= */

.wrap {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--wrap-px);
}

section {
  padding: var(--section-py) 0;
}

/* =========================================================
      Typography
      ========================================================= */

h1,
h2,
h3 {
  font-family: var(--ff-heading);
}

h1 {
  font-size: var(--fs-h1);
  line-height: 1.08;
  margin: var(--space-sm) 0;
}

h2 {
  margin: 0;
  padding-bottom: var(--space-lg);
  font-size: var(--fs-h2);
  line-height: var(--lh-tight);
  letter-spacing: -0.01em;
}

h3 {
  font-size: var(--fs-h3);
  line-height: var(--lh-tight);
}

.muted {
  opacity: 0.88;
}

.sectionTitle.centered {
  display: flex;
  text-align: center;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  margin-bottom: var(--sectionTitle-mb);
  font-weight: 500;
  color: var(--subtitle-color);
}

.sectionTitle.centered p.sub {
  max-width: 760px;
  font-size: var(--fs-sub);
  opacity: 0.92;
  text-align: center;
  padding-top: 0;
  padding-bottom: var(--space-lg);
  margin: 0 auto var(--space-lg);
}

@media (max-width: 640px) {
  h2 {
    line-height: 1.15;
  }
  .sectionTitle.centered p.sub {
    line-height: 1.45;
    max-width: 34ch;
    margin-bottom: var(--space-sm);
  }
}

/* =========================================================
      UI Presets
      ========================================================= */

html.radius-soft {
  --radius-ui: var(--radius-md);
  --radius-media: var(--radius-sm);
}
html.radius-sharp {
  --radius-ui: var(--radius-xs);
  --radius-media: var(--radius-xs);
}
html.radius-round {
  --radius-ui: var(--radius-lg);
  --radius-media: var(--radius-md);
}

html.accent-soft {
  --accent-mix: 12%;
  --accent-focus-mix: 26%;
  --accent-shadow-mix: 8%;
}
html.accent-medium {
  --accent-mix: 18%;
  --accent-focus-mix: 35%;
  --accent-shadow-mix: 12%;
}
html.accent-strong {
  --accent-mix: 26%;
  --accent-focus-mix: 45%;
  --accent-shadow-mix: 18%;
}

html.onaccent-dark {
  --on-accent: color-mix(in srgb, var(--text) 88%, black);
}
html.onaccent-light {
  --on-accent: #fff;
}

/* =========================================================
      Buttons
      ========================================================= */

.cta {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-sm) var(--space-lg);
  border-radius: var(--btn-radius);
  border: var(--btn-border-w) solid;
  background: var(--surface);
  text-decoration: none;
  font-weight: 500;
  box-shadow: var(--shadow-soft);
  font-size: var(--text-md);
}

.btn.primary {
  background: var(--surface);
  color: var(--text);
  border-color: var(--surface);
}

.btn:hover {
  filter: brightness(var(--btn-hover-brightness));
}

.btn.accent {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
  box-shadow: var(--btn-accent-shadow);
}

@media (max-width: 640px) {
  .cta .btn {
    font-size: var(--btn-fs-mobile);
    padding: var(--btn-py-mobile) var(--btn-px-mobile);
    font-weight: 500;
  }
}

/* =========================================================
      Markdown
      ========================================================= */

.richtext > *:first-child {
  margin-top: 0;
}

.richtext > *:last-child {
  margin-bottom: 0;
}

.richtext p,
.richtext ul,
.richtext ol,
.richtext blockquote {
  margin: 0 0 1em;
}

.richtext h2,
.richtext h3,
.richtext h4 {
  margin: 1.4em 0 0.6em;
  line-height: 1.2;
}

.richtext ul,
.richtext ol {
  padding-left: 1.2em;
}

.richtext li + li {
  margin-top: 0.35em;
}

.richtext a {
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.richtext strong {
  font-weight: 700;
}

.richtext em {
  font-style: italic;
}

.richtext blockquote {
  padding-left: 1rem;
  border-left: 2px solid var(--accent);
}

.richtext a.btn,
a.btn {
  text-decoration: none;
}

/* =========================================================
      grids
      ========================================================= */

.benefitsGrid--count-1,
.whyGrid--count-1 {
  grid-template-columns: minmax(0, 1fr);
}

.benefitsGrid--count-2,
.whyGrid--count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.benefitsGrid--count-3,
.whyGrid--count-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.benefitsGrid--count-4,
.whyGrid--count-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.benefitsGrid--count-6,
.whyGrid--count-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.servicesGrid--count-1 {
  grid-template-columns: minmax(0, 1fr);
}

.servicesGrid--count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.servicesGrid--count-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.servicesGrid--count-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.servicesGrid--count-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.servicesGrid--count-1 {
  max-width: 520px;
  margin-inline: auto;
}

.targetProfilesGrid {
  display: grid;
  gap: 24px;
}

.targetProfilesGrid--count-1 {
  grid-template-columns: minmax(0, 1fr);
}

.targetProfilesGrid--count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.targetProfilesGrid--count-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.targetProfilesGrid--count-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.targetProfilesGrid--count-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 640px) {
  .servicesGrid,
  .servicesGrid[class*="--count-"],
  .benefitsGrid,
  .benefitsGrid[class*="--count-"],
  .whyGrid,
  .whyGrid[class*="--count-"],
  .targetProfilesGrid,
  .targetProfilesGrid[class*="--count-"] {
    grid-template-columns: 1fr;
  }
}

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

.siteHeader {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--bg) 92%, white);
  backdrop-filter: blur(var(--blur-1));
  border-bottom: var(--border-w) solid var(--border-soft);
  transition:
    background 220ms ease,
    backdrop-filter 220ms ease;
  height: var(--header-h, 96px);
}

.siteHeader .headerInner {
  width: 100%;
  max-width: 98%;
  margin: 0 auto;
  padding: 12px clamp(12px, 3vw, 40px);
  display: flex;
  transform-origin: left center;
  transform: scale(1) translateY(0);
  transition: transform var(--dur-2) var(--ease-std);
  will-change: transform;
}

.siteHeader .brand {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  text-decoration: none;
}

.siteHeader .brand img {
  width: var(--logo-size, 64px);
  height: var(--logo-size, 64px);
  object-fit: contain;
  background: none;
  padding: 10px;
  border: none;
  box-shadow: none;
  transition: transform var(--dur-2) var(--ease-std);
}

.siteHeader .brand .b1 {
  font-size: var(--fs-body);
  font-weight: 800;
  line-height: 1.45;
  transition: font-size var(--dur-2) var(--ease-std);
}

.siteHeader .brand .b2 {
  font-size: var(--text-2xs);
  opacity: 0.8;
  line-height: 1.35;
}

.siteHeader .links {
  display: flex;
  gap: 28px;
  align-items: center;
  margin-left: auto;
  justify-content: flex-end;
  text-align: right;
}

.siteHeader .links a {
  font-size: var(--text-sm);
  font-weight: 700;
  text-decoration: none;
  color: color-mix(in srgb, var(--text) 88%, black);
  opacity: 0.95;
  padding: 10px 2px;
  position: relative;
  transition:
    opacity 0.2s ease,
    color 0.2s ease;
}

.siteHeader .links a:hover {
  opacity: 1;
}

.siteHeader .links a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 6px;
  width: 100%;
  height: 2px;
  background: var(--accent);
  border-radius: var(--radius-xs);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.22s ease;
}

.siteHeader .links a:hover::after {
  transform: scaleX(1);
}

.siteHeader .links a.active {
  opacity: 1;
  color: var(--text);
}
.siteHeader .links a.active::after {
  transform: scaleX(1);
}

.siteHeader.isShrink {
  --header-h: 72px;
}
.siteHeader.isShrink .headerInner {
  transform: scale(0.92) translateY(-2px);
}

.siteHeader.isShrink .brand img {
  width: var(--logo-size-shrink, 44px);
  height: var(--logo-size-shrink, 44px);
  padding: 6px;
  transform: scale(0.88);
  transition: transform var(--dur-3) var(--ease-smooth);
  will-change: transform;
}

.siteHeader.isShrink .brand .b1 {
  font-size: var(--text-sm);
}
.siteHeader.isShrink .brand .b2 {
  opacity: 0.7;
}

@media (max-width: 980px) {
  .siteHeader.isShrink {
    --header-h: var(--header-h, 92px);
  }
  .siteHeader.isShrink .headerInner,
  .siteHeader.isShrink .brand img {
    transform: none;
  }

  .siteHeader .headerInner {
    padding: 0 18px;
  }
  .siteHeader .links {
    display: none;
  }
  .siteHeader .brand img {
    width: 46px;
    height: 46px;
    padding: var(--space-2xs);
  }
}

@media (prefers-reduced-motion: reduce) {
  .siteHeader .headerInner,
  .siteHeader .brand img {
    transition: none;
  }
}

/* =========================================================
      Mobile Menu
      ========================================================= */

.mobileNav {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: none;
  display: none;
  z-index: 9999;
}

.siteHeader.menuOpen + .mobileNav {
  display: block;
  align-items: flex-start;
  justify-content: center;
}

.mobileNavPanel {
  width: 100%;
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: var(--border-w) solid var(--border-soft);
  border-radius: 0;
  max-height: 70vh;
  overflow: auto;
  padding: calc(20px + env(safe-area-inset-top)) 28px 24px;
}

.mobileNavInner {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding-top: var(--space-md);
  margin-top: 18px;
}

.mobileNavInner a {
  font-size: var(--fs-body);
  font-weight: 750;
  text-decoration: none;
  padding: 10px 2px;
}

.mobileNavInner a[href="#contact"] {
  font-weight: 800;
}

.menuClose {
  margin-left: auto;
  width: 42px;
  height: 42px;
  background: transparent;
  border-radius: var(--btn-radius);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
}

html.theme-default .menuClose {
  border: none;
}

.menuBtn {
  display: none;
}

@media (max-width: 980px) {
  .menuBtn {
    display: inline-flex;
  }

  .siteHeader .brand img {
    width: 50px;
    height: 50px;
    padding: 5px;
  }
  .siteHeader .brand .b1 {
    font-size: var(--text-sm);
  }
  .siteHeader .brand .b2 {
    font-size: var(--text-xs);
  }

  .siteHeader {
    z-index: 50;
    padding-top: env(safe-area-inset-top);
  }
  .siteHeader .headerInner {
    padding-top: 20px;
    padding-bottom: 10px;
  }

  .menuBtn {
    margin-left: auto;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 0;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
  }

  .menuBtn span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--text);
    border-radius: var(--radius-xs);
    transition:
      transform 0.2s ease,
      opacity 0.2s ease;
  }

  .menuBtn span:nth-child(2) {
    width: 16px;
    margin-left: 6px;
  }
}

.siteHeader.menuOpen .menuBtn span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.siteHeader.menuOpen .menuBtn span:nth-child(2) {
  opacity: 0;
}
.siteHeader.menuOpen .menuBtn span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

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

.hero {
  padding: calc(var(--space-xl) * 1.05) 0 var(--space-xl);
}

.heroGrid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--space-lg);
  align-items: center;
}

.kicker {
  display: inline-flex;
  gap: var(--space-sm);
  align-items: center;
  font-size: var(--text-2xs);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.75;
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-pill);
  background: var(--accent);
}

.lead {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 500;
  opacity: 0.95;
  margin: 6px 0 22px;
  max-width: 620px;
}

.badges {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin: var(--space-sm) 0 0;
}

.badge {
  font-size: 13px;
  padding: var(--space-2xs) 12px;
  border-radius: var(--btn-radius);
  background: rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(var(--blur-1));
  border: var(--border-w) solid rgba(255, 255, 255, 0.45);
  color: white;
  font-weight: 500;
  box-shadow: var(--shadow-soft);
}

.heroCta {
  margin-top: var(--space-sm);
}

.heroCta--full {
  margin-top: var(--space-md);
}

.heroImg {
  overflow: hidden;
  border-radius: 0;
  border: var(--border-w) solid var(--border);
  box-shadow: var(--shadow-medium);
  background: var(--surface);
}

.heroImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero--full {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: stretch;
  padding: 0;
}

.hero--full .heroBg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero--full .heroOverlay {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: calc(var(--space-xl) * 1.2) 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.25));
  color: white;
}

/* Default — Hero full landing */
html.theme-default .hero--full > .heroOverlay > .wrap.heroFullInner {
  max-width: var(--max);
  width: 100%;
}

html.theme-default .hero--full > .heroOverlay > .wrap.heroFullInner > * {
  max-width: 620px;
}

/* Default — Hero full local pages */
html.theme-default .hero--full > .heroOverlay > .wrap {
  width: 100%;
}

html.theme-default .hero--full > .heroOverlay > .wrap > .heroFullInner {
  max-width: 620px;
  width: 100%;
}

html.theme-default .hero--full > .heroOverlay > .wrap,
html.theme-default .hero--full > .heroOverlay > .wrap.heroFullInner {
  padding-left: clamp(36px, 6vw, 96px);
}

html.theme-default .hero--full .heroCta--full .btn:not(.primary):not(.accent) {
  background: var(--surface);
  color: var(--accent);
  border-color: var(--surface);
  box-shadow: none;
}

html.theme-default
  .hero--full
  .heroCta--full
  .btn:not(.primary):not(.accent):hover {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
}

html.theme-default .hero--full .btn.primary {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
  transition: all 0.22s ease;
}

html.theme-default .hero--full .btn.primary:hover {
  background: var(--surface);
  color: var(--accent);
  border-color: var(--surface);
}

.hero--full .badge {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.18);
}
.hero--full .heroGrid {
  grid-template-columns: 1fr;
}

.hero--split {
  padding: 0;
}
.hero--split .wrap {
  max-width: 100%;
  padding: 0;
}

.hero--split .heroGrid {
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
  min-height: 520px;
}

.hero--split .heroGrid > div:first-child {
  padding: var(--space-xl) var(--space-lg) var(--space-xl)
    calc(var(--space-xl) + 10%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--surface-soft);
  border-right: var(--border-w) solid rgba(0, 0, 0, 0.06);
}

html.theme-default .hero--split .heroGrid > div:first-child {
  background: var(--bg);
}

.hero--split .heroGrid > div:first-child > * {
  max-width: 640px;
}

.hero--split .heroImg {
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
  height: 100%;
}
.hero--split .heroImg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero--split .btn.primary {
  background: var(--text);
  color: white;
  border-color: var(--text);
  box-shadow: var(--shadow-medium);
}

.hero--split .cta .btn:not(.primary) {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--on-accent);
}

.hero--split .badge {
  background: rgba(255, 255, 255, 0.72);
  border: var(--border-w) solid rgba(0, 0, 0, 0.3);
  color: rgba(0, 0, 0, 0.7);
  box-shadow: var(--shadow-soft);
}

@media (max-width: 1230px) {
  .hero .heroGrid {
    grid-template-columns: 1fr 1fr;
  }
  .hero--split .heroGrid > div:first-child {
    padding: var(--space-xl) var(--space-lg);
  }
  .hero--split .lead {
    font-size: var(--text-sm);
    line-height: 1.45;
  }

  .hero--split .cta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    flex-wrap: nowrap;
  }

  .hero--split .cta .btn {
    font-size: var(--btn-fs-mobile);
    padding: var(--btn-py-mobile) var(--btn-px-mobile);
    white-space: nowrap;
    width: 100%;
  }

  .hero--full {
    min-height: 64vh;
  }
  .hero--full .heroOverlay {
    padding: var(--space-xl) 0;
  }
}

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

  .hero--split .heroGrid {
    grid-template-columns: 1fr;
    min-height: auto;
    grid-auto-flow: dense;
  }
  .hero--split .heroImg {
    height: 320px;
    order: -1;
  }

  .hero--split .heroGrid > div:first-child {
    padding: var(--space-lg) clamp(35px, 7vw, 46px);
    order: 0;
    justify-content: flex-start;
  }

  .hero--split h1 {
    line-height: 1.12;
    letter-spacing: -0.015em;
  }
  .hero--split .lead {
    font-size: clamp(16px, 2.2vw, 18px);
    line-height: 1.45;
    margin: var(--space-2xs) 0 18px;
  }

  .hero .badges {
    gap: var(--space-2xs);
  }
  .hero .cta {
    flex-wrap: wrap;
  }

  .hero--split .cta {
    margin-top: var(--space-md);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  .hero--split .cta .btn {
    width: auto;
    white-space: normal;
  }

  .hero--full {
    min-height: 58vh;
  }
  .hero--full .heroOverlay {
    padding: var(--space-xl) 0;
  }
  .hero--full h1 {
    line-height: 1.1;
    letter-spacing: -0.015em;
  }
  .hero--full .lead {
    font-size: clamp(16px, 2.2vw, 19px);
    line-height: 1.5;
    margin: 10px 0 18px;
  }
}

@media (max-width: 640px) {
  .hero--split .heroGrid > div:first-child {
    padding: var(--space-lg) clamp(35px, 7vw, 46px);
  }
  .hero--split .heroImg {
    height: 240px;
  }

  .hero .cta {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .hero .cta .btn {
    width: 100%;
  }

  .hero .kicker {
    font-size: 10px;
    letter-spacing: 0.09em;
    opacity: 0.65;
    margin-bottom: 6px;
  }
  .hero .kicker + h1 {
    margin-top: 6px;
  }

  .hero .badge {
    font-size: 11px;
    padding: 4px var(--space-2xs);
    border-radius: var(--btn-radius);
    opacity: 0.95;
  }

  .hero--full {
    min-height: 54vh;
  }
  .hero--full .heroOverlay {
    padding: var(--space-lg) 0;
  }
  .hero--full .heroFullInner {
    max-width: 92vw;
  }

  .hero--split .cta {
    flex-direction: column;
    align-items: stretch;
  }
  .hero--split .cta .btn {
    width: 100%;
    white-space: normal;
  }
}

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

#benefits {
  background: var(--accent-soft);
}

.benefitsGrid {
  display: grid;
  /*  grid-template-columns: repeat(3, minmax(0, 1fr)); */
  gap: 40px;
  margin-top: var(--space-lg);
  margin-left: auto;
  margin-right: auto;
  justify-content: center;
}

.benefitItem {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding-right: var(--space-sm);
}

.benefitIcon {
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  border-radius: var(--btn-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: #fff;
  font-weight: 800;
  font-size: var(--text-xs);
  margin-top: 3px;
}

.benefitTitle {
  margin: 0 0 6px;
}
.benefitText {
  margin: 0;
  font-size: var(--fs-blurb);
  line-height: var(--lh-blurb);
  opacity: 0.78;
}

@media (max-width: 980px) {
  .benefitsGrid {
    /*  grid-template-columns: 1fr; */
    max-width: 560px;
    gap: var(--space-xl);
  }
  .benefitItem {
    padding: 0 10px;
  }
  .benefitIcon {
    margin-bottom: 10px;
  }
}

@media (max-width: 640px) {
  #benefits .benefitIcon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    font-size: var(--text-xxs);
    margin-top: 2px;
  }
  #benefits .benefitItem {
    gap: 10px;
    padding-left: 6px;
    padding-right: 6px;
  }
  #benefits .benefitText {
    line-height: 1.45;
    opacity: 0.82;
  }
}

/* =========================================================
      Services
      ========================================================= */

.services {
  padding-bottom: 0;
}

.service {
  padding: var(--space-md);
  border: var(--border-w) solid var(--border-strong);
  border-radius: var(--radius-media);
}

html.theme-default .service {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  height: 100%;
}

.servicesIntro {
  max-width: 860px;
  margin: var(--space-2xs) auto var(--space-2lg);
  text-align: center;
  opacity: 0.85;
}

.sectionIntro.richtext p {
  margin-bottom: 0.8em;
}

.servicesGrid {
  display: grid;
  /* grid-template-columns: repeat(3, 1fr); */
  gap: var(--space-lg);
  margin-bottom: var(--space-xxl);
}

#services .cta {
  margin-bottom: var(--space-xl);
}

.services .cta {
  display: flex;
  justify-content: center;
  margin-top: var(--space-lg);
}

html.theme-default .serviceCardCta .btn.accent {
  width: 100%;
  margin-top: 20px;
}

html.theme-default .serviceCardCta {
  margin-top: var(--space-lg);
}

.serviceMediaFull {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--surface);
  border: var(--border-w) solid var(--border);
  margin-bottom: var(--space-md);
}

.serviceMediaFull img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.serviceTitle {
  margin: 0 0 var(--space-2xs);
  font-size: var(--fs-h3);
  font-weight: 800;
  padding-bottom: var(--space-2xs);
}

.serviceDesc {
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
  margin: 0 0 var(--space-md);
  opacity: 0.85;
  font-weight: 500;
}

html.theme-default .serviceDesc {
  flex: 1;
}

.serviceList {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 15px;
}

.serviceList li {
  position: relative;
  padding-left: 22px;
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
  opacity: 0.9;
}

.serviceList li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 1px;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-xs);
  font-weight: 900;
  color: var(--accent);
}

.services--blocks .servicesIntro {
  max-width: 900px;
  margin-bottom: clamp(32px, 5vw, 72px);
}

.services--blocks .sectionTitle {
  margin-bottom: var(--space-md);
}

.servicesBlocks {
  display: block;
}

.serviceBlock {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  background: var(--surface);
  border: none;
}

.servicesBlocks > .serviceBlock:nth-of-type(even) {
  background: var(--section-3);
}

html.theme-default .serviceBlock {
  background: var(--bg);
}

html.theme-default .servicesBlocks > .serviceBlock:nth-of-type(even) {
  background: var(--bg);
}

.serviceBlock--reversed .serviceBlockMedia {
  order: 2;
}

.serviceBlock--reversed .serviceBlockContent {
  order: 1;
}

.serviceBlockMedia {
  min-height: 100%;
}

.serviceBlockMedia img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.serviceBlockContent {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(32px, 5vw, 80px);
}

.serviceBlockText {
  width: 100%;
  max-width: 640px;
}

.serviceBlockTitle {
  margin: 0 0 16px;
  font-size: var(--fs-h3);
  font-weight: 800;
}

.serviceBlockText.richtext p:last-child,
.serviceBlockText.richtext ul:last-child,
.serviceBlockText.richtext ol:last-child {
  margin-bottom: 0;
}

.serviceBlockText.richtext > * + * {
  margin-top: 1.1em;
}

.serviceBlockCta {
  margin-top: var(--space-md);
}

.serviceBlockCta .btn {
  width: auto;
}

.servicesBlocksFull {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.serviceBlockText.richtext ul {
  padding-left: 1.2em;
}

.serviceBlockText.richtext li {
  margin-bottom: 0.4em;
}

@media (max-width: 980px) {
  /* .servicesGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  } */
  .servicesIntro {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
  }
  .service {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .service::after {
    content: "";
    flex: 1;
  }
  .serviceBlock {
    min-height: 360px;
  }

  .serviceBlockContent {
    padding: clamp(32px, 4vw, 48px);
  }
}

@media (max-width: 820px) {
  .serviceBlock,
  .serviceBlock--reversed {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .serviceBlockMedia,
  .serviceBlock--reversed .serviceBlockMedia {
    order: 1;
  }

  .serviceBlockContent,
  .serviceBlock--reversed .serviceBlockContent {
    order: 2;
  }

  .serviceBlockMedia {
    min-height: 260px;
  }

  .serviceBlockContent {
    padding: 50px 30px;
  }

  .serviceBlockTitle {
    margin-bottom: 12px;
  }
}

@media (max-width: 640px) {
  .servicesGrid {
    /*     grid-template-columns: 1fr; */
    gap: 22px;
  }
  .servicesIntro {
    max-width: 520px;
    padding-left: 10px;
    padding-right: 10px;
  }
  .service {
    padding: 16px;
  }
  .serviceTitle {
    font-size: var(--text-lg);
    padding-bottom: 0;
    margin-bottom: 10px;
  }
  .serviceList {
    gap: 10px;
  }
  .serviceList li {
    padding-left: 18px;
  }
  .serviceList li::before {
    top: 2px;
    width: 16px;
    height: 16px;
    font-size: var(--text-xxs);
  }
  .services .cta .btn {
    width: 100%;
    max-width: 320px;
  }
  .serviceDesc {
    margin-bottom: 16px;
    line-height: 1.45;
  }
  .serviceBlockMedia {
    min-height: 220px;
  }

  .serviceBlockCta .btn {
    width: 100%;
  }
}

/* =========================================================
      About
      ========================================================= */

.aboutSection {
  background: var(--section-2);
}

.aboutGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-xxl);
  align-items: start;
}

.aboutContent p {
  margin: 0 0 12px;
  line-height: 1.45;
  opacity: 0.9;
}

.aboutMedia {
  width: 100%;
  overflow: hidden;
  background: var(--surface);
  border-radius: var(--radius-media);
}

.aboutMedia img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 980px) {
  .aboutGrid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }
  .aboutContent {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }

  .aboutMedia {
    aspect-ratio: 1 / 1;
    background: transparent;
    border-radius: var(--radius-media);
    max-width: clamp(280px, 60vw, 420px);
    margin: 0 auto;
  }

  .aboutMedia img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

@media (max-width: 640px) {
  .aboutContent {
    max-width: 520px;
    padding-left: var(--space-2xs);
    padding-right: var(--space-2xs);
  }
  .aboutContent p {
    line-height: 1.55;
    margin-bottom: var(--space-md);
  }
  .aboutMedia {
    max-width: 360px;
  }
}

@media (max-width: 640px) {
  html.theme-default .aboutMedia {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
  }

  html.theme-default .aboutMedia img {
    width: 90%;
    max-width: 100%;
    height: auto;
    display: block;
    margin: auto;
  }
}

/* =========================================================
      Why
      ========================================================= */

.whyGrid {
  display: grid;
  /* grid-template-columns: repeat(3, 1fr); */
  gap: var(--space-xl);
  align-items: start;
}

.whyBlurb {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  text-align: center;
  align-items: center;
  padding-bottom: 20px;
}

html.theme-default .whyIcon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: var(--btn-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(
    in srgb,
    var(--accent) var(--accent-mix),
    var(--surface)
  );
  border: var(--border-w) solid
    color-mix(in srgb, var(--accent) var(--accent-mix), var(--border));
  color: color-mix(in srgb, var(--accent) 62%, var(--text));
}

.whyIcon svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.whyTitle {
  margin: 0;
  padding-bottom: 10px;
  font-size: var(--fs-h3);
  line-height: var(--lh-tight);
}

p.muted.whyText {
  margin: 0;
  font-size: var(--fs-blurb);
  line-height: var(--lh-blurb);
  opacity: 0.85;
}

.whyBody {
  max-width: 320px;
}

/* Tablette */
@media (max-width: 1024px) {
  /* .whyGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  } */
  .whyItem {
    max-width: 420px;
  }
}

@media (max-width: 980px) {
  .whyBlurb {
    flex-direction: row;
    gap: var(--space-md);
    align-items: flex-start;
    text-align: left;
  }
  .whyBody {
    padding-top: 2px;
    max-width: 100%;
  }
  .whySection .wrap {
    padding-left: 30px;
    padding-right: 30px;
  }
  .whyIcon {
    align-self: flex-start;
    margin-top: 3px;
  }
  .whyTitle {
    margin-top: 0;
  }
}

@media (max-width: 776px) {
  .whyGrid {
    /*   grid-template-columns: 1fr; */
    gap: 18px;
  }
  .whyBlurb {
    padding-bottom: 0;
    gap: 12px;
  }
  .whyIcon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
  }
  .whyTitle {
    padding-bottom: 6px;
    margin: 0;
    font-size: var(--fs-h3);
  }

  .whyBlurb {
    border-bottom: var(--border-w) solid var(--border-soft);
    padding-bottom: 16px;
  }
  .whySection .wrap {
    padding-left: 30px;
    padding-right: 30px;
  }
  .whyBlurb:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
}

/* ── WHY ME — Theme Default ───────────────────────── */

html.theme-default .whyGrid {
  gap: clamp(56px, 7vw, 96px) clamp(72px, 9vw, 120px);
}

html.theme-default .whyItem {
  max-width: 360px;
  margin-inline: auto;
}

html.theme-default .whyIcon {
  width: 48px;
  height: 48px;
  margin-bottom: 22px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
  color: var(--accent);
}

html.theme-default .whyIcon svg {
  width: 22px;
  height: 22px;
}

html.theme-default .whyItem h3 {
  max-width: 280px;
  margin-inline: auto;
  margin-bottom: 18px;
}

html.theme-default .whyItem p {
  max-width: 300px;
  margin-inline: auto;
  line-height: 1.65;
}

html.theme-default .whyIcon {
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
}

@media (max-width: 640px) {
  html.theme-default .whyBlurb {
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }

  html.theme-default .whyIcon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    margin-bottom: 14px;
  }

  html.theme-default .whyBody {
    width: 100%;
  }

  html.theme-default .whyTitle,
  html.theme-default .whyText {
    max-width: none;
    margin-inline: 0;
  }
}

/* =========================================================
      FAQ
      ========================================================= */

.faqSection {
  background: var(--surface);
  padding: var(--space-xxl) 0;
}

html.theme-default .faqSection {
  background: var(--muted);
  padding: var(--space-xxl) 0;
}

.faqList {
  max-width: 860px;
  margin: 0 auto;
  border-top: var(--border-w) solid var(--border-soft);
}

.faqItem {
  border-bottom: var(--border-w) solid var(--border-soft);
  padding: var(--space-md) 0;
}

.faqQ {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  cursor: pointer;
  padding: var(--space-sm) 0;
}

.faqQText {
  font-weight: 650;
  font-size: var(--text-md);
  line-height: var(--lh-tight);
}
.faqQ::-webkit-details-marker {
  display: none;
}

.faqA {
  padding: 0 0 var(--space-sm);
}
.faqA .muted {
  margin: 0;
  opacity: 0.92;
  line-height: var(--lh-body);
  font-size: var(--fs-body);
}

div.faqA.richtext.muted {
  padding-top: var(--space-lg);
}

.faqChevron {
  width: 18px;
  height: 18px;
  position: relative;
  flex: 0 0 18px;
  opacity: 0.7;
  transition:
    transform 0.25s ease,
    opacity 0.2s ease;
}

.faqChevron::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: var(--space-2xs);
  height: var(--space-2xs);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  top: 1px;
}

.faqItem[open] .faqChevron {
  transform: rotate(-180deg);
  opacity: 1;
}

.faqQ:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 4px;
  border-radius: var(--radius-ui);
}

@media (max-width: 980px) {
  .faqSection .wrap {
    padding-left: 60px;
    padding-right: 60px;
  }
}
@media (max-width: 640px) {
  .faqSection .wrap {
    padding-left: 30px;
    padding-right: 30px;
  }
}

/* =========================================================
   Reviews / Social proof
   ========================================================= */

.reviewsSection {
  background: var(--section-1);
}

html.theme-default .reviewsSection {
  background: var(--bg);
}

.reviewsRating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-sm);
  font-size: var(--text-sm);
}

.reviewsRating strong {
  font-size: var(--fs-h3);
  color: var(--accent);
}

.reviewsSourceLink {
  font-size: var(--text-sm);
  font-weight: 700;
  text-decoration: none;
  color: var(--accent);
}

.reviewsGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}

.reviewQuote {
  margin: 0 0 var(--space-md);
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
  font-weight: 500;
}

.reviewMeta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--text-sm);
  opacity: 0.82;
}

.reviewMeta strong {
  opacity: 1;
}

/* ── REVIEWS — Theme Default ───────────────────────── */

html.theme-default .reviewsSummary {
  max-width: none;
  margin: 0 auto;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html.theme-default .reviewsRating {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 17px;
}

html.theme-default .reviewsRating strong {
  color: var(--accent);
  font-weight: 700;
}

html.theme-default .reviewsRating span {
  color: var(--text);
  font-weight: 500;
}

html.theme-default .reviewsSourceLink {
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}

html.theme-default .reviewsSourceLink::after {
  content: " →";
}

html.theme-default .reviewCard {
  background: var(--muted);
  border: 1px solid var(--border-soft);
  border-radius: min(var(--radius-ui), 18px);
  box-shadow: var(--shadow-soft);
  padding: clamp(28px, 3vw, 38px);
}

html.theme-default .reviewQuote {
  font-size: clamp(17px, 1.5vw, 19px);
  line-height: 1.55;
  font-weight: 500;
}

html.theme-default .reviewMeta {
  margin-top: 24px;
}

html.theme-default .reviewsNav {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid var(--border-soft);
  background: var(--muted);
  color: var(--accent);
  box-shadow: var(--shadow-soft);
  font-size: 26px;
  line-height: 1;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

html.theme-default .reviewsNav:hover {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
}

@media (max-width: 980px) {
  .reviewsGrid {
    grid-template-columns: 1fr;
    max-width: 640px;
    margin: 0 auto;
  }

  .reviewsSummary {
    flex-direction: column;
    align-items: flex-start;
  }
}

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

#contact {
  padding: 0;
}
.contactSection {
  padding: var(--space-xxl) 0;
}

.contactSplit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
  border-radius: 0;
  overflow: hidden;
}

.contactLeft {
  display: flex;
  align-items: center;
}

html.theme-default .contactLeft {
  background: var(--surface);
}

.contactLeft .sectionTitle {
  text-align: start;
  align-items: start;
  justify-content: start;
}

.contactContent {
  width: 100%;
  max-width: 520px;
  margin: var(--space-xl) auto;
  padding: var(--space-xl);
}

.contactName {
  margin: var(--space-md) 0 var(--space-sm);
  font-size: var(--fs-body);
}

.contactSection .cta {
  display: flex;
  gap: var(--space-md);
  margin: var(--space-lg) 0;
  flex-wrap: wrap;
}

.contactSection .btn.primary {
  background: var(--text);
  color: white;
  border-color: var(--text);
}

.contactSection .btn {
  background: transparent;
  border-color: var(--text);
  color: var(--text);
}

.contactSection .btn:not(.primary) {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--on-accent);
}

.contactRight {
  height: 100%;
}
.contactRight iframe {
  border-radius: 0;
}

#contact .socialRow {
  display: flex;
  gap: var(--space-3sm);
  margin-top: var(--space-md);
  flex-wrap: wrap;
  align-items: center;
}

#contact .socialBtn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  color: var(--text);
  transition:
    transform 0.15s ease,
    color 0.15s ease,
    opacity 0.15s ease;
}

#contact .socialBtn:hover {
  transform: translateY(-1px);
  color: var(--accent);
}

#contact .socialBtn:focus-visible {
  outline: none;
  color: var(--accent);
}

#contact .socialSvg {
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
}

#contact .socialSvg svg {
  width: 20px;
  height: 20px;
  display: block;
  fill: currentColor;
}

.map {
  overflow: hidden;
  border-radius: 0;
  border: var(--border-w) solid var(--border);
  background: var(--surface);
}

@media (max-width: 980px) {
  .contactSplit {
    grid-template-columns: 1fr;
  }
  .contactRight {
    height: 320px;
  }
  .contactContent {
    padding: var(--space-lg);
  }
  #contact {
    padding-bottom: 0;
  }
  #contact .btn {
    min-width: 140px;
  }
  #contact .socialRow {
    gap: 16px;
  }
  #contact .map iframe {
    height: 320px;
  }

  .contactSection .wrap {
    padding-left: 36px;
    padding-right: 36px;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .contactSection p {
    margin-bottom: var(--space-2xs);
  }
  .contactSection p:last-of-type {
    margin-bottom: 18px;
  }
}

@media (max-width: 640px) {
  .contactSection .wrap {
    padding-left: 35px;
    padding-right: 35px;
  }
  .contactSection .cta {
    gap: 12px;
  }
  .contactSection .cta .btn {
    flex: 1;
  }
  .contactSection .socials {
    margin-top: var(--space-md);
    gap: 16px;
  }
  .contactSection .socials a {
    opacity: 0.7;
  }
  .contactSection .socials a:hover {
    opacity: 1;
  }
}

@media (max-width: 640px) {
  html.theme-default .contactSection .cta {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  html.theme-default .contactSection .cta .btn {
    width: 100%;
  }
}

/* =========================================================
      Pricing section
      ========================================================= */

.pricingSection {
  padding: var(--section-py) 0;
  background: var(--section-2);
}

.pricingSectionTitle {
  margin-bottom: var(--space-xl);
  text-align: center;
}

.pricingSectionIntro {
  max-width: 760px;
  margin: var(--space-2xs) auto 0;
  text-align: center;
  opacity: 0.85;
}

.pricingSectionIntro.richtext p {
  margin-bottom: 0.8em;
}

.pricingSectionIntro.richtext > *:last-child {
  margin-bottom: 0;
}

.pricingGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
  align-items: stretch;
}

.pricingCard {
  display: flex;
  flex-direction: column;
  position: relative;
  background: var(--surface);
  border: var(--border-w) solid var(--border);
  border-radius: var(--radius-media);
  overflow: hidden;
  transition:
    transform var(--dur-1) var(--ease-smooth),
    box-shadow var(--dur-1) var(--ease-smooth);
}

.pricingCard:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft);
}

.pricingCard.isFeatured {
  background: var(--accent-soft);
  color: var(--text);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border-strong));
}

.pricingCardInner {
  height: 100%;
  padding: var(--space-2lg);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
}

.pricingCardTop {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.pricingBadgeSlot {
  min-height: 30px;
  margin-top: var(--space-sm);
  display: flex;
  align-items: flex-start;
}

.pricingBadge {
  padding: 10px 15px 8px 15px;
  border-radius: var(--radius-pill);
  background: var(--accent-soft);
  color: var(--text);
  font-size: var(--text-xs);
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.pricingCard.isFeatured .pricingBadge {
  background: var(--surface);
  color: var(--text);
}

.pricingCardTitle {
  font-size: var(--fs-h3);
  line-height: var(--lh-tight);
  margin-bottom: var(--space-lg);
}

.pricingCardDescription {
  max-width: 34ch;
  margin-bottom: var(--space-2lg);
}

.pricingCardDescription p,
.pricingCardDescription ul,
.pricingCardDescription ol {
  margin: 0 0 0.85em;
}

.pricingCardDescription > *:last-child {
  margin-bottom: 0;
}

.pricingCardDescription,
.pricingNotes {
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
}

.pricingList {
  width: 100%;
  display: grid;
  gap: 0;
  margin-bottom: var(--space-2lg);
}

.pricingPriceItem {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 14px 0;
  border-bottom: var(--border-w) solid var(--border);
}

.pricingPriceMain {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.pricingPriceValue {
  font-size: clamp(26px, 4vw, 36px);
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.pricingPriceLabel {
  font-size: var(--text-lg);
  line-height: 1.2;
  color: color-mix(in srgb, var(--text) 85%, transparent);
  font-weight: 500;
  opacity: 0.85;
}

.pricingPriceDetail {
  font-size: var(--fs-card-meta);
  line-height: var(--lh-card-meta);
  color: color-mix(in srgb, var(--text) 72%, transparent);
}

.pricingCard.isFeatured .pricingPriceValue {
  color: var(--text);
}

.pricingCard.isFeatured .pricingPriceItem {
  border-bottom-color: color-mix(in srgb, var(--text) 18%, transparent);
}

.pricingCard.isFeatured .pricingList {
  border-top-color: color-mix(in srgb, var(--text) 18%, transparent);
}

.pricingCard.isFeatured .pricingPriceLabel,
.pricingCard.isFeatured .pricingPriceDetail {
  color: color-mix(in srgb, var(--text) 85%, transparent);
}

.pricingNotes {
  flex-grow: 1;
  width: 100%;
  margin-top: 0;
  color: color-mix(in srgb, var(--text) 82%, transparent);
}

.pricingCard.isFeatured .pricingNotes {
  color: color-mix(in srgb, var(--text) 86%, transparent);
}

.pricingNotes p,
.pricingNotes ul,
.pricingNotes ol {
  margin: 0 0 0.75em;
}

.pricingNotes > *:last-child {
  margin-bottom: 0;
}

.pricingNotes ul,
.pricingNotes ol {
  list-style: none;
  padding-left: 0;
}

.pricingNotes li {
  position: relative;
  padding-left: 1.2em;
}

.pricingNotes li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--accent);
  font-weight: 600;
}

.pricingCtaWrap {
  margin-top: auto;
  padding-top: var(--space-lg);
  width: 100%;
}

.pricingCta {
  display: inline-flex;
  width: 100%;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: var(--btn-radius);
  border: var(--btn-border-w) solid var(--accent);
  background: var(--accent);
  color: var(--on-accent);
  text-decoration: none;
  line-height: 1;
  transition:
    transform var(--dur-1) var(--ease-std),
    filter var(--dur-1) var(--ease-std),
    background var(--dur-1) var(--ease-std),
    color var(--dur-1) var(--ease-std),
    border-color var(--dur-1) var(--ease-std);
}

.pricingCta:hover {
  transform: translateY(-1px);
  filter: brightness(var(--btn-hover-brightness));
}

.pricingCard.isFeatured .pricingCta,
.pricingCta--featured {
  background: color-mix(in srgb, var(--surface) 90%, var(--bg));
  border-color: color-mix(in srgb, var(--text) 10%, transparent);
  color: var(--text);
}

.pricingCard.isFeatured .pricingCta:hover,
.pricingCta--featured:hover {
  filter: brightness(0.98);
}

@media (max-width: 980px) {
  .pricingGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pricingCardInner {
    padding: var(--space-md);
  }

  .pricingPriceValue {
    font-size: clamp(24px, 6vw, 32px);
  }
}

@media (max-width: 640px) {
  .pricingGrid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .pricingCardInner {
    padding: 16px;
  }
  .pricingCta {
    min-height: 40px;
    padding: var(--space-2xs) var(--space-md);
    font-size: var(--btn-fs-mobile);
  }
}

/* =========================================================
   Process
   ========================================================= */

.processSection {
  padding: var(--section-py) 0;
  background: var(--section-5);
}

.processWrap {
  max-width: 960px;
}

.processIntro {
  max-width: 760px;
  margin: 0 auto 2rem;
  text-align: center;
}

.processIntro p:last-child {
  margin-bottom: 0;
}

.processStack {
  max-width: 860px;
  margin: 0 auto;
}

.processCard {
  position: relative;
  text-align: center;
}

.processCard + .processCard {
  margin-top: 0;
}

.processCardInner {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-media);
  padding: 2.8rem 1.6rem 1.5rem;
  box-shadow: none;
}

.processBadge {
  position: relative;
  z-index: 2;
  width: 2.2rem;
  height: 2.2rem;
  margin: 0 auto -1.1rem;
  border-radius: 999px;
  background: var(--accent);
  color: var(--on-accent, #fff);
  display: grid;
  place-items: center;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 0 0 6px var(--section-5);
}

.processCardTitle {
  margin: 0 0 0.8rem;
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  line-height: 1.35;
  font-weight: 700;
  text-align: center;
}

.processCardBody {
  max-width: 74ch;
  margin: 0 auto;
  text-align: center;
  color: color-mix(in srgb, var(--text) 88%, transparent);
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
}

.processCardBody p {
  margin: 0;
}

.processCardBody p + p {
  margin-top: 0.35em;
}

.processCardBody p:last-child {
  margin-bottom: 0;
}

.processArrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 2.8rem;
}

.processArrowLine {
  width: 2px;
  height: 1.6rem;
  background: var(--accent);
  opacity: 0.4;
}

.processArrowHead {
  width: 0;
  height: 0;
  margin-top: 0.25rem;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: var(--space-2xs) solid var(--accent);
  opacity: 0.6;
}

@media (max-width: 768px) {
  .processWrap {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .processStack {
    max-width: 100%;
  }

  .processCardInner {
    padding: 2.2rem 1.15rem 1.35rem;
  }

  .processCardBody {
    max-width: 100%;
    font-size: 0.94rem;
  }
}

/* =========================
   FOOTER
   ========================= */

.siteFooter {
  padding: var(--space-xl) 0;
  border-top: var(--border-w) solid var(--border-soft);
}

/* footer : wrap plus large que le reste du site */
.siteFooter .wrap {
  max-width: min(98%, 1400px);
}

.footerGrid {
  display: grid;
  grid-template-columns: 1.2fr 1.8fr;
  gap: clamp(22px, 4vw, 56px);
  align-items: start;
}

/* LEFT */
.footerBrandRow {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.footerLogo {
  width: 40px;
  height: 40px;
  object-fit: contain;
  border-radius: var(--radius-pill);
  background: var(--surface);
  padding: 6px;
  border: var(--border-w) solid var(--border);
}

.footerBrandName {
  font-weight: 800;
  line-height: 1.1;
}

.footerBrandTagline {
  opacity: 0.85;
  line-height: 1.35;
}

.footerCopy {
  margin: var(--space-md) 0 0;
  opacity: 0.75;
}

/* RIGHT */
.footerCols {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: clamp(18px, 3vw, 36px);
  justify-content: end;
}

.footerColTitle {
  font-weight: 800;
  opacity: 0.92;
  margin: 0 0 var(--space-2xs) 0;
}

.footerList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.footerList a {
  text-decoration: none;
  opacity: 0.85;
  line-height: 1.25;
  display: inline-block;
  padding: 2px 0;
}

.footerList a:hover {
  opacity: 1;
  text-decoration: underline;
  text-decoration-thickness: var(--underline-h);
  text-underline-offset: 3px;
}

.footerCredit {
  text-align: left;
  opacity: 0.85;
  font-size: var(--fs-small);
  padding-top: 0px;
}

.footerCredit a {
  color: inherit;
  text-decoration: none;
}

.footerCredit a:hover {
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 980px) {
  .footerGrid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .footerCols {
    display: grid;
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: clamp(18px, 3vw, 36px);
  }
  .footerLeft {
    margin-bottom: var(--space-2xs);
  }
}

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

  .footerCols {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .footerLogo {
    width: 42px;
    height: 42px;
  }

  .footerCopy {
    margin-top: var(--space-sm);
  }
}

/* =========================
   LEGAL PAGE
   ========================= */

.legalPage {
  padding: var(--section-py) 0;
}

.legalHero {
  padding-bottom: 0;
}

.legalHero .sectionTitle h1 {
  font-size: var(--fs-h2);
  line-height: var(--lh-tight);
  letter-spacing: -0.01em;
}

@media (max-width: 640px) {
  .legalHero .sectionTitle h1 {
    line-height: 1.15;
  }
}

.legalContent {
  display: grid;
  gap: var(--space-lg);
}

.legalBlock h3,
.legalBlock h2 {
  margin: 0 0 var(--space-md);
  padding-bottom: 0;
  font-size: var(--fs-h3);
}

.legalBlock p {
  margin: 0 0 var(--space-sm);
  opacity: 0.92;
}

.legalBlock p:last-child {
  margin-bottom: var(--space-2lg);
}

.legalBlock .richtext p,
.legalBlock .richtext ul,
.legalBlock .richtext ol {
  margin: 0 0 0.75em;
}
.legalBlock .richtext > *:last-child {
  margin-bottom: 0;
}
.legalBlock .muted.fine {
  font-size: 1em;
  line-height: 1.6;
}

.legalBack {
  margin-top: var(--space-lg);
}

.legalBackLink {
  text-decoration: none;
  font-weight: 600;
}

.legalBackLink:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 640px) {
  .legalWrap {
    max-width: 100%;
  }

  .legalBlock p {
    margin-bottom: var(--space-sm);
    line-height: 1.65;
  }
  .legalBlock p:last-child {
    margin-bottom: var(--space-lg);
  }
}

/* =========================================================
   Local content section
   ========================================================= */

.localContentSection .wrap {
  max-width: var(--max);
  margin-top: var(--space-lg);
}

.localContentText,
.localMiniServicesIntro {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.localContentText {
  text-align: center;
}

.localRichtext {
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
  text-align: center;
}

.localContentText .localRichtext + .localRichtext {
  margin-top: var(--space-lg);
}

.localMiniServices {
  margin-top: var(--space-lg);
  margin-bottom: var(--space-lg);
  text-align: center;
}

.localMiniServicesIntro {
  margin-bottom: var(--space-md);
}

.localMiniServicesCta {
  margin-top: var(--space-lg);
  display: flex;
  justify-content: center;
}

.localMiniServicesCta .btn.primary {
  background: var(--text);
  color: #fff;
  border-color: var(--text);
  box-shadow: var(--shadow-medium);
}

/* =========================================================
   Local Page V2
   ========================================================= */

.localZonesGrid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.localZonePill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: var(--btn-radius);
  border: var(--border-w) solid var(--border-soft);
  background: var(--surface);
  font-size: var(--text-sm);
  font-weight: 600;
}

html.theme-default .localZonePill {
  border: var(--border-w) solid var(--border-strong);
}

.localProfilesGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}

.localProfileCard {
  padding: var(--space-lg);
  background: var(--surface);
  border: var(--border-w) solid var(--border-soft);
  border-radius: var(--radius-media);
  box-shadow: var(--shadow-soft);
}

html.theme-default .localProfileCard {
  background: none;
  border: none;
  box-shadow: none;
}

.localProfileCard h3 {
  margin-top: 0;
  margin-bottom: var(--space-sm);
}

html.theme-default .localProfileCard h3 {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

html.theme-default .localProfileCard h3::before {
  content: "";
  width: 10px;
  height: 10px;
  flex: none;
  margin-top: 0.45em;
  border-radius: 999px;
  background: var(--accent);
}

html.theme-default .targetProfilesGrid {
  gap: clamp(42px, 6vw, 72px) clamp(56px, 7vw, 96px);
}

.localContextGrid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
  gap: var(--space-xl);
  align-items: start;
}

.localContextGrid .localRichtext {
  text-align: left;
}

.localServicesBox {
  padding: var(--space-lg);
  border-radius: var(--radius-media);
  background: var(--accent-soft);
  border: var(--border-w) solid
    color-mix(in srgb, var(--accent) 24%, var(--border));
}

.localServicesBox h3 {
  margin-top: 0;
}

.localCtaSection {
  padding: var(--section-py) 0;
  background: var(--section-2);
}

.localCtaBox {
  max-width: 860px;
  margin: 0 auto;
  padding: var(--space-xl);
  border-radius: var(--radius-media);
  background: var(--accent);
  color: var(--on-accent);
  text-align: center;
  box-shadow: var(--shadow-medium);
}

html.theme-default .localCtaBox {
  background: color-mix(in srgb, var(--accent) 25%, var(--surface) 75%);
  color: var(--text);
}

.localCtaBox h2 {
  padding-bottom: var(--space-sm);
}

.localCtaBox p {
  max-width: 620px;
  margin: 0 auto var(--space-lg);
  opacity: 0.9;
}

.localCtaButtons {
  justify-content: center;
}

.localCtaBox .btn.primary {
  background: var(--surface);
  color: var(--text);
  border-color: var(--surface);
}

.localCtaBox .btn:not(.primary) {
  background: transparent;
  color: var(--on-accent);
  border-color: color-mix(in srgb, var(--on-accent) 65%, transparent);
}

html.theme-default .localCtaBox .btn:not(.primary) {
  background: var(--accent);
  color: var(--on-accent);
  border-color: var(--accent);
}

html.theme-default .localCtaBox .btn:not(.primary):hover {
  background: var(--surface);
  color: var(--accent);
  border-color: var(--surface);
}

@media (max-width: 980px) {
  .localProfilesGrid,
  .localContextGrid {
    grid-template-columns: 1fr;
  }

  .localProfilesGrid {
    max-width: 680px;
    margin: 0 auto;
  }
}

@media (max-width: 640px) {
  .localProfileCard,
  .localServicesBox,
  .localSocialProofBox,
  .localCtaBox {
    padding: var(--space-lg);
  }

  .localCtaButtons {
    flex-direction: column;
    align-items: stretch;
  }

  .localCtaButtons .btn {
    width: 100%;
  }
}

.localServicesLink {
  display: inline-flex;
  margin-top: var(--space-md);
  font-weight: 800;
  color: var(--accent);
  text-decoration: none;
}

.localServicesLink:hover {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* ── LOCAL CONTENT — Theme Default ─────────────────────── */

html.theme-default .localContextGrid {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
  gap: clamp(48px, 6vw, 90px);
  align-items: start;
}

html.theme-default .localRichtext {
  max-width: 680px;
}

html.theme-default .localServicesBox {
  border-radius: min(var(--radius-ui), 22px);
  box-shadow: var(--shadow-soft);
  padding: clamp(32px, 4vw, 46px);
  background: color-mix(in srgb, var(--accent) 25%, var(--surface) 75%);
  border: 1px solid color-mix(in srgb, var(--accent) 18%, transparent);
  box-shadow: var(--shadow-soft);
}

html.theme-default .localServicesBox h3 {
  position: relative;
  padding-left: 20px;
  margin-bottom: 22px;
}

html.theme-default .localServicesBox h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.25em;
  width: 5px;
  height: 1.2em;
  border-radius: 999px;
  background: var(--accent);
}

html.theme-default .localServicesBox .richtext {
  font-size: 0.98em;
}

html.theme-default .localServicesLink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 24px;
  padding: 12px 22px;
  border-radius: var(--btn-radius);
  background: var(--accent);
  color: var(--on-accent);
  font-weight: 700;
  text-decoration: none;
}

html.theme-default .localServicesLink::after {
  content: " →";
  margin-left: 6px;
}

html.theme-default .localServicesLink:hover {
  background: var(--text);
  color: #fff;
}

@media (max-width: 900px) {
  html.theme-default .localContextGrid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  html.theme-default .localRichtext,
  html.theme-default .localServicesBox {
    max-width: 720px;
    margin-inline: auto;
  }
}

@media (max-width: 640px) {
  html.theme-default .localAreasList {
    gap: 8px;
  }

  html.theme-default .localAreasList li,
  html.theme-default .localAreasList span,
  html.theme-default .localAreaPill {
    font-size: 11px;
    padding: 7px 10px;
    line-height: 1.2;
  }

  html.theme-default .localProfilesSection .wrap,
  html.theme-default .localContentSection .wrap,
  html.theme-default .localSocialProofSection .wrap,
  html.theme-default .localFaqSection .wrap,
  html.theme-default .localCtaSection .wrap {
    width: min(100% - 30px, var(--max));
  }

  html.theme-default .localProfileCard {
    padding: 0px;
  }

  html.theme-default .localZonePill {
    font-size: small;
  }
}

@media (max-width: 640px) {
  html.theme-default .localServicesLink::after {
    content: none;
  }

  html.theme-default .localServicesLink {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 12px 2px;
  }
}

.localSocialProofBox {
  max-width: 760px;
  margin: 0 auto;
  padding: var(--space-lg);
  border-radius: var(--radius-media);
  background: var(--surface);
  text-align: center;
}

html.theme-default .localSocialProofSection {
  background-color: var(--bg);
}

html.theme-default .localSocialProofStars {
  color: #f5c842;
  font-size: 42px;
  letter-spacing: 0.12em;
  margin-bottom: 16px;
  line-height: 1;
}

.localSocialProofText {
  margin: 0;
  font-size: var(--fs-sub);
}

.localSocialProofLink {
  display: inline-flex;
  margin-top: var(--space-sm);
  font-weight: 800;
  color: var(--accent);
  text-decoration: none;
}

.localSocialProofLink:hover {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

html.theme-default .localSocialProofCard {
  box-shadow: none;
  border: 0;
}

html.theme-default .localSocialProofBox {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 20px;
  text-align: center;
  border-radius: 0;
  background: none;
  border: none;
  box-shadow: none;
}

html.theme-default .localSocialProofSection {
  padding: 100px 0;
}

html.theme-default .localSocialProofRating {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 8px;
}

html.theme-default .localSocialProofCount {
  font-size: 1.15rem;
  opacity: 0.85;
}

html.theme-default .localSocialProofLink {
  display: inline-block;
  margin-top: 24px;
  font-weight: 700;
  font-size: 1.05rem;
}

/* =========================================================
       Icon list (réutilisable)
       ========================================================= */

.iconList {
  list-style: none;
  padding: 0;
  margin: var(--space-lg) auto 0;
}

.iconListItem {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.iconListText {
  font-size: var(--fs-card-text);
  line-height: var(--lh-card-text);
  font-weight: 500;
}

.localMiniServicesList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 18px 28px;
  max-width: 980px;
  margin: var(--space-xl) auto;
}

.localMiniServicesList .iconListItem {
  align-items: center;
}

@media (max-width: 980px) {
  .localContentText,
  .localMiniServicesIntro {
    max-width: 820px;
  }
}

@media (max-width: 640px) {
  .localContentText,
  .localMiniServicesIntro {
    max-width: 100%;
  }

  .localContentSection .wrap {
    padding-left: var(--space-lg);
    padding-right: var(--space-lg);
  }

  .localMiniServicesList {
    flex-direction: column;
    align-items: flex-start;
    max-width: 320px;
    gap: 12px;
  }
  .localMiniServicesCta {
    margin-top: var(--space-xl);
  }
  .localMiniServicesCta .btn {
    width: 100%;
    max-width: 100%;
  }
}

/* slider reviews */

.reviewsSlider {
  position: relative;
  margin-top: 48px;
}

.reviewsViewport {
  overflow: hidden;
  width: 100%;
}

.reviewsTrack {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}

.reviewsTrack::-webkit-scrollbar {
  display: none;
}

.reviewsTrack .reviewCard {
  flex: 0 0 calc((100% - 48px) / 3);
  min-width: 0;
  scroll-snap-align: start;
}

.reviewsNav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  z-index: 2;

  width: 42px;
  height: 42px;

  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);

  cursor: pointer;
}

.reviewsNav--prev {
  left: -58px;
}

.reviewsNav--next {
  right: -58px;
}

@media (max-width: 900px) {
  .reviewsTrack .reviewCard {
    flex-basis: calc((100% - 24px) / 2);
  }
}

@media (max-width: 640px) {
  .reviewsTrack .reviewCard {
    flex-basis: 100%;
  }

  .reviewsNav {
    display: none;
  }
}

/* =========================================================
   RichText / Markdown
   ========================================================= */

.richtext > *:first-child {
  margin-top: 0;
}

.richtext > *:last-child {
  margin-bottom: 0;
}

.richtext p {
  margin: 0 0 1.1em;
}

.richtext p:last-child {
  margin-bottom: 0;
}

.richtext strong {
  font-weight: 600;
  color: var(--text);
}

.richtext a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.richtext ul,
.richtext ol {
  margin: 1.15em 0;
  padding-left: 1.25em;
}

.richtext li {
  margin-bottom: 0.45em;
}

.richtext li:last-child {
  margin-bottom: 0;
}

.richtext h2,
.richtext h3,
.richtext h4 {
  margin-top: 1.6em;
  margin-bottom: 0.65em;
}

.richtext blockquote {
  margin: 1.5em 0;
  padding-left: 1.2em;
  border-left: 3px solid var(--accent);
  color: var(--subtitle-color);
}

/* =========================================================
   Legal pages typography
   ========================================================= */

.legalBlock {
  margin-bottom: 32px;
}

.legalBlock h3 {
  margin: 0 0 14px;
}

.legalBlock p {
  margin: 0 0 14px;
}

.legalBlock p:last-child {
  margin-bottom: 0;
}

.legalBlock .richtext {
  margin-top: 10px;
}

.legalBlock .richtext p {
  margin-bottom: 14px;
}

.legalBlock .richtext p:last-child {
  margin-bottom: 0;
}

.legalBack {
  margin-top: 40px;
}

/* =========================================================
   RichText / Markdown
   ========================================================= */

.richtext > *:first-child {
  margin-top: 0;
}

.richtext > *:last-child {
  margin-bottom: 0;
}

.richtext p {
  margin: 0 0 0.85em;
}

.richtext p:last-child {
  margin-bottom: 0;
}

.richtext strong {
  font-weight: 600;
  color: var(--text);
}

.richtext em {
  font-style: italic;
}

.richtext a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.richtext ul,
.richtext ol {
  margin: 0.75em 0 1em;
}

.richtext ul {
  list-style: disc;
  padding-left: 1.2em;
}

.richtext ol {
  list-style: decimal;
  padding-left: 1.4em;
}

.richtext li {
  margin-bottom: 0.45em;
  padding-left: 0.2em;
}

.richtext li:last-child {
  margin-bottom: 0;
}

.richtext h1,
.richtext h2,
.richtext h3,
.richtext h4 {
  margin-top: 1.5em;
  margin-bottom: 0.55em;
}

.richtext blockquote {
  display: inline-block;

  margin: 1.25em auto;
  padding-left: 1.1em;

  border-left: 3px solid var(--accent);

  color: var(--subtitle-color);
  text-align: left;
}

.richtext blockquote p {
  margin-bottom: 0.65em;
}

.richtext hr {
  margin: 1.6em 0;
  border: 0;
  border-top: 1px solid var(--border-strong);
}

.richtext[style*="center"] ul,
.richtext[style*="center"] ol,
.centered .richtext ul,
.centered .richtext ol,
.servicesIntro.richtext ul,
.servicesIntro.richtext ol {
  display: table;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.richtext[style*="center"] blockquote,
.centered .richtext blockquote,
.servicesIntro.richtext blockquote {
  display: table;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.brand img,
.footerLogo {
  object-fit: contain;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.brand img {
  width: 64px;
  height: 64px;
}

.footerLogo {
  width: 56px;
  height: 56px;
}

.brand {
  display: flex;
  align-items: center;
  min-height: 72px;
}

.brand img,
.footerLogo {
  display: block;
  object-fit: contain;

  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.footerLogo {
  width: 56px;
  height: auto;
}

.footerLogo {
  max-height: 56px;
  width: auto;
}

/* =========================================================
   Theme Default — Mobile spacing harmonization
   ========================================================= */

@media (max-width: 640px) {
  html.theme-default .sectionTitle,
  html.theme-default .sectionTitle.centered {
    max-width: 90%;
    padding-inline: 0;
    margin: auto;
  }

  html.theme-default .sectionTitle h2,
  html.theme-default .sectionTitle .sub {
    max-width: 90%;
  }
}

@media (max-width: 640px) {
  html.theme-default .aboutGrid,
  html.theme-default .whyGrid,
  html.theme-default .reviewsSlider,
  html.theme-default .contactSection .wrap,
  html.theme-default .localContentSection .wrap,
  html.theme-default .localProfilesSection .wrap {
    width: min(100% - 20px, var(--max));
    margin-inline: auto;
  }
}
