@import url("https://fonts.googleapis.com/css2?family=Fraunces:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap");
:root { --color-primary-50: #f1f4f9; --color-primary-100: #dbe2f0; --color-primary-200: #becbe4; --color-primary-300: #92a9d3; --color-primary-400: #6e8cc4; --color-primary-500: #4a6fb5; --color-primary-600: #3e5e98; --color-primary-700: #324c7b; --color-primary-800: #263a5e; --color-primary-900: #18243a; --color-accent-50: #fcfaed; --color-accent-100: #f8f4d3; --color-accent-200: #f2eab0; --color-accent-300: #eadd7b; --color-accent-400: #e2d150; --color-accent-500: #dbc624; --color-accent-600: #b8a61e; --font-sans: "Inter", system-ui, sans-serif; --font-heading: "Fraunces", "Georgia", serif; --section-y: 3.4rem; --section-yMd: 5.1rem; --radius-button: 9999px; }
/* theme-css-contract: v3
   gen-07-29 — generated by scripts/theme-pipeline/generate.js (#1004; all 34 blocks since #1051). */

.hero {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
  text-align: center;
}

.hero__media {
  width: 100%;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-900);
  overflow: hidden;
}

.hero__body {
  gap: 1rem;
  margin-left: auto;
  margin-right: auto;
  padding: 2.5rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-800);
}

.hero__title {
  font-family: var(--font-heading);
  font-size: 3.5rem;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.hero__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
  margin-left: auto;
  margin-right: auto;
}

.hero__cta {
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.hero__deco {
  height: 0.25rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  margin-left: auto;
  margin-right: auto;
}

.hero__form {
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-900);
  margin-left: auto;
  margin-right: auto;
}

.hero__form-error {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-block);
  border-width: 1px;
  border-style: solid;
  border-color: var(--color-accent-400);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--color-primary-50);
}

.hero__form-success {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-900);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--color-primary-50);
  margin-left: auto;
  margin-right: auto;
}

.cta-banner {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .cta-banner {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.cta-banner__headline {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.cta-banner__desc {
  margin-top: 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.cta-banner__action {
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.page-header {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .page-header {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.page-header__crumbs {
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: var(--color-primary-800);
}

.page-header__title {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.page-header__sub {
  margin-top: 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.contact-form {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .contact-form {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.contact-form__heading {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.contact-form__intro {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
}

.contact-form__form {
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-900);
}

.contact-form__error {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-block);
  border-width: 1px;
  border-style: solid;
  border-color: var(--color-accent-400);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--color-primary-50);
}

.contact-form__note {
  font-size: 0.75rem;
  line-height: 1.6;
  color: var(--color-primary-100);
}

.contact-form__success {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-900);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--color-primary-50);
}

.contact-form__media {
  width: 100%;
  border-radius: var(--radius-block);
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-900);
}

.contact-form__aside {
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-900);
}

.quote-form {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .quote-form {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.quote-form__form {
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-100);
}

.quote-form__intro {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.quote-form__main {
  gap: 1rem;
}

.quote-form__aside {
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-100);
}

.quote-form__step {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.quote-form__error {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-block);
  border-width: 1px;
  border-style: solid;
  border-color: var(--color-accent-400);
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--color-primary-900);
}

.quote-form__action {
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.quote-form__success {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-100);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--color-primary-900);
}

.services-list {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .services-list {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.services-list__item {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.services-list__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  color: var(--color-primary-900);
}

.services-list__title {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-900);
}

.services-list__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.services-list__actions {
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.services-list__features {
  gap: 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-primary-800);
}

.services-list__products {
  gap: 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-primary-800);
}

.services-nav {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

.services-nav__link {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.service-related-pages {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .service-related-pages {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.service-related-pages__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.service-related-pages__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.service-related-pages__card {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.contact-info {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .contact-info {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.contact-info__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.contact-info__location {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.contact-info__label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--color-primary-800);
}

.contact-info__address {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.contact-info__phone {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  border-width: 0 0 1px;
  border-style: solid;
  border-color: var(--color-primary-600);
  color: var(--color-primary-600);
}

.contact-info__email {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  border-width: 0 0 1px;
  border-style: solid;
  border-color: var(--color-primary-600);
  color: var(--color-primary-600);
}

.contact-info__media {
  width: 100%;
  border-radius: var(--radius-block);
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-100);
}

.process-steps {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .process-steps {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.process-steps__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.process-steps__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
}

.process-steps__step {
  gap: 0.4rem 1.25rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-700);
}

.process-steps__num {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-family: var(--font-heading);
  font-size: 1.0625rem;
  font-weight: 800;
  color: var(--color-primary-900);
}

.process-steps__title {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-50);
}

.process-steps__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-100);
}

.team-grid {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .team-grid {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.team-grid__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.team-grid__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.team-grid__member {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.team-grid__name {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-900);
}

.team-grid__role {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--color-primary-800);
}

.team-grid__bio {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.blog-preview {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .blog-preview {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.blog-preview__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.blog-preview__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.blog-preview__post {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.blog-preview__category {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.blog-preview__date {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-primary-800);
}

.blog-preview__title {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-900);
}

.blog-preview__excerpt {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.content-split {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .content-split {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.content-split__media {
  width: 100%;
  border-radius: var(--radius-block);
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-900);
}

.content-split__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.content-split__body {
  gap: 1rem;
}

.content-split__bullets {
  gap: 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-primary-100);
}

.content-split__stats {
  gap: 1rem;
}

.content-split__stat {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-700);
}

.content-split__stat-value {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-accent-500);
}

.content-split__stat-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--color-primary-100);
}

.text-block {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

.text-block__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.text-block__body {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-primary-800);
}

.text-block__attribution {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-primary-800);
}

.text-block__list {
  gap: 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-primary-800);
}

.social-proof {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .social-proof {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.social-proof__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.social-proof__rating {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-primary-500);
}

.social-proof__reviews {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-primary-800);
}

.social-proof__platform {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.social-proof__badge {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.social-proof__quote {
  font-size: 1.0625rem;
  line-height: 1.7;
  font-style: italic;
  color: var(--color-primary-900);
}

.social-proof__quote-author {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-primary-800);
}

.social-proof__stat {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.social-proof__stat-value {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-primary-500);
}

.social-proof__stat-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--color-primary-800);
}

.social-proof__media {
  width: 100%;
  border-radius: var(--radius-block);
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-100);
}

.features-grid {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .features-grid {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.features-grid__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.features-grid__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
}

.features-grid__item {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-700);
}

.features-grid__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  color: var(--color-primary-900);
}

.features-grid__title {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-50);
}

.features-grid__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-100);
}

.newsletter-signup {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .newsletter-signup {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.newsletter-signup__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.newsletter-signup__desc {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.newsletter-signup__form {
  gap: 1rem;
  padding: 1.75rem;
  border-radius: var(--radius-block);
  background-color: var(--color-primary-100);
}

.faq-accordion {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .faq-accordion {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.faq-accordion__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.faq-accordion__sub {
  margin-top: 0;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.faq-accordion__item {
  gap: 0.5rem;
  padding: 1.25rem 0;
  border-width: 0 0 1px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.faq-accordion__question {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-900);
}

.faq-accordion__answer {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.testimonials {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .testimonials {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.testimonials__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.testimonials__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
}

.testimonials__item {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-700);
}

.testimonials__rating {
  gap: 0.25rem;
}

.testimonials__star {
  font-size: 0.875rem;
  line-height: 1;
  color: var(--color-accent-400);
}

.testimonials__quote {
  font-size: 1.0625rem;
  line-height: 1.7;
  font-style: italic;
  color: var(--color-primary-50);
}

.testimonials__name {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-50);
}

.testimonials__meta {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-primary-100);
}

.testimonials__service {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.announcement-bar {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

.announcement-bar__message {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.announcement-bar__link {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  border-width: 0 0 1px;
  border-style: solid;
  border-color: var(--color-primary-600);
  color: var(--color-primary-600);
}

.pricing-table {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .pricing-table {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.pricing-table__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.pricing-table__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.pricing-table__item {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.pricing-table__item--featured {
  border-width: 2px;
  border-style: solid;
  border-color: var(--color-accent-400);
  background-color: var(--color-primary-100);
}

.pricing-table__badge {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.pricing-table__name {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-900);
}

.pricing-table__price {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-primary-500);
}

.pricing-table__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.pricing-table__features {
  gap: 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-primary-800);
}

.pricing-table__action {
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.gallery {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .gallery {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.gallery__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.gallery__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
}

.gallery__item {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-700);
}

.gallery__image {
  width: 100%;
  border-radius: var(--radius-block);
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-900);
}

.gallery__placeholder {
  width: 100%;
  border-radius: var(--radius-block);
  object-fit: cover;
  object-position: center;
  background-color: var(--color-primary-900);
}

.gallery__caption {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--color-primary-100);
}

.gallery__category {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background-color: var(--color-accent-400);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.05em;
  color: var(--color-primary-900);
}

.gallery__title {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-50);
}

.gallery__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-100);
}

.map-area {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

@media (min-width: 1024px) {
  .map-area {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.map-area__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.map-area__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-800);
}

.map-area__area {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-200);
}

.map-area__name {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-900);
}

.map-area__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-800);
}

.trusted-brands {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-50);
  color: var(--color-primary-900);
}

.trusted-brands__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-900);
}

.trusted-brands__brand {
  height: 2.5rem;
  object-fit: contain;
  opacity: 0.85;
  color: var(--color-primary-800);
}

.card-group {
  gap: calc(var(--section-block-gap) * 4);
  padding: calc(var(--section-block-pad) * 5) 1.5rem;
  background-color: var(--color-primary-800);
  color: var(--color-primary-50);
}

@media (min-width: 1024px) {
  .card-group {
    gap: calc(var(--section-block-gap) * 6);
    padding: calc(var(--section-block-pad) * 7) 3rem;
  }
}

.card-group__headline {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--color-primary-50);
}

.card-group__sub {
  margin-top: 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--color-primary-100);
}

.card-group__item {
  gap: 0.75rem;
  padding: 0 0 1.5rem;
  border-radius: 0;
  border-width: 0 0 2px;
  border-style: solid;
  border-color: var(--color-primary-700);
}

.card-group__title {
  font-family: var(--font-heading);
  font-size: 1.1875rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--color-primary-50);
}

.card-group__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-primary-100);
}

.card-group__features {
  gap: 0.5rem;
  padding-left: 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-primary-100);
}
:root { --btn-primary-bg: var(--color-primary-500); --btn-primary-ink: #ffffff; --btn-primary-hover: var(--color-primary-600); --btn-outline-ink: var(--color-primary-600); --btn-accent-hover: var(--color-accent-300); }
