@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/montserrat-400.e66bcd2761ab.woff2") format("woff2");
}

@font-face {
  font-family: Montserrat;
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url("/assets/fonts/montserrat-700.f9d9e65b1537.woff2") format("woff2");
}

@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/playfair-600.5d2286941a6b.woff2") format("woff2");
}

:root {
  --fc-green-950: #0b221b;
  --fc-green-900: #0f2b23;
  --fc-green-800: #1e3f32;
  --fc-green-700: #2b6b58;
  --fc-gold-500: #856126;
  --fc-gold-300: #d7bb83;
  --fc-champagne-200: #e6dcc0;
  --fc-ivory-100: #f4efe6;
  --fc-ivory-50: #fffdf8;
  --fc-white: #fff;
  --fc-ink: #17221e;
  --fc-muted: #52615b;
  --fc-border: rgb(15 43 35 / 12%);
  --fc-danger: #8d2e2e;
  --fc-success: #1d644b;
  --fc-serif: "Playfair Display", Georgia, serif;
  --fc-sans: Montserrat, Arial, sans-serif;
  --fc-radius-sm: 0.625rem;
  --fc-radius-md: 1rem;
  --fc-radius-lg: 1.5rem;
  --fc-shadow: 0 1rem 3rem rgb(15 43 35 / 8%);
  --fc-shadow-soft: 0 1rem 3rem rgb(15 43 35 / 8%);
  --fc-shadow-raised: 0 1.5rem 4rem rgb(15 43 35 / 12%);
  --fc-container: 75rem;
  --fc-container-wide: 82rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--fc-ink);
  background: #fffdf9;
  font-family: var(--fc-sans);
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizelegibility;
}

body.fc-no-scroll {
  overflow: hidden;
}

img,
picture {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

a {
  color: inherit;
}

button,
input,
select,
textarea {
  font: inherit;
}

:focus-visible {
  outline: 3px solid var(--fc-gold-500);
  outline-offset: 3px;
}

[hidden] {
  display: none !important;
}

.fc-container {
  width: min(calc(100% - 2.5rem), var(--fc-container));
  margin-inline: auto;
}

.fc-visually-hidden,
.fc-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.75rem 1rem;
  color: var(--fc-white);
  background: var(--fc-green-950);
  border-radius: 0.5rem;
  transform: translateY(-160%);
}

.skip-link:focus {
  transform: translateY(0);
}

.fc-homologation {
  min-height: 1.75rem;
  display: grid;
  place-items: center;
  padding: 0.25rem 1rem;
  color: var(--fc-white);
  background: linear-gradient(90deg, #66501f, #7a5e25, #66501f);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.25;
  text-align: center;
  white-space: nowrap;
}

.fc-site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  background: rgb(255 253 248 / 94%);
  border-bottom: 1px solid rgb(225 219 207 / 78%);
  box-shadow: 0 0.35rem 1.5rem rgb(11 36 29 / 4%);
  backdrop-filter: blur(16px) saturate(130%);
}

.fc-header-inner {
  min-height: 5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.fc-logo {
  width: clamp(11rem, 18vw, 14rem);
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
}

.fc-logo img {
  width: 100%;
  aspect-ratio: 260 / 101;
  object-fit: contain;
}

.fc-nav {
  display: flex;
  align-items: center;
  gap: clamp(0.8rem, 1.55vw, 1.45rem);
}

.fc-nav > a:not(.fc-button) {
  font-size: 0.77rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none;
}

.fc-nav a[aria-current="page"] {
  color: var(--fc-green-800);
  text-decoration: underline;
  text-decoration-color: var(--fc-gold-500);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.45rem;
}

.fc-button {
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.7rem 1.25rem;
  color: var(--fc-white);
  background: var(--fc-green-900);
  border: 1px solid var(--fc-green-900);
  border-radius: 999px;
  box-shadow: 0 0.5rem 1.2rem rgb(11 36 29 / 10%);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.fc-button:hover {
  background: var(--fc-green-800);
  border-color: var(--fc-green-800);
  transform: translateY(-1px);
  box-shadow: 0 0.75rem 1.6rem rgb(11 36 29 / 14%);
}

.fc-button--small {
  min-height: 2.75rem;
  padding-inline: 1rem;
  font-size: 0.72rem;
}

.fc-button--secondary {
  color: var(--fc-green-900);
  background: transparent;
}

.fc-text-link,
.fc-card__link {
  color: var(--fc-green-800);
  font-size: 0.84rem;
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3em;
}

.fc-text-button {
  min-height: 2.75rem;
  padding: 0.55rem 0.75rem;
  color: var(--fc-green-800);
  background: transparent;
  border: 0;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.25em;
  cursor: pointer;
}

.fc-nav-toggle {
  width: 2.875rem;
  height: 2.875rem;
  display: none;
  place-content: center;
  gap: 0.28rem;
  padding: 0;
  color: var(--fc-green-900);
  background: rgb(245 240 231 / 70%);
  border: 1px solid var(--fc-border);
  border-radius: 0.9rem;
  cursor: pointer;
}

.fc-nav-toggle span {
  width: 1.15rem;
  height: 2px;
  display: block;
  background: currentcolor;
  border-radius: 999px;
}

.fc-mobile-nav {
  position: fixed;
  z-index: 200;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 25rem);
}

.fc-mobile-nav__backdrop {
  width: 100%;
  height: 100%;
  background: rgb(11 36 29 / 62%);
  border: 0;
}

.fc-mobile-nav__panel {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 1.25rem;
  overflow-y: auto;
  background: var(--fc-ivory-50);
  border-left: 1px solid rgb(234 223 200 / 65%);
  box-shadow: -1rem 0 3rem rgb(11 36 29 / 14%);
  animation: fc-drawer-enter 220ms ease-out both;
}

.fc-mobile-nav__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.fc-mobile-nav__top img {
  width: 11.5rem;
}

.fc-mobile-nav__panel > a:not(.fc-button) {
  padding: 0.85rem 0.55rem;
  border-bottom: 1px solid var(--fc-border);
  font-size: 0.92rem;
  font-weight: 600;
  text-decoration: none;
}

.fc-mobile-nav__panel .fc-button {
  margin-top: auto;
}

.fc-icon-button {
  width: 2.875rem;
  height: 2.875rem;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--fc-green-900);
  background: transparent;
  border: 1px solid var(--fc-border);
  border-radius: 50%;
  font-size: 1.5rem;
  cursor: pointer;
}

.fc-hero {
  overflow: hidden;
  padding-top: clamp(1.25rem, 2.5vw, 2.25rem);
  background: radial-gradient(circle at 82% 18%, rgb(234 223 200 / 50%), transparent 32%), linear-gradient(135deg, var(--fc-ivory-100), var(--fc-ivory-50));
}

.fc-hero__grid {
  height: clamp(34rem, 58vh, 38rem);
  display: grid;
  grid-template-columns: minmax(0, 0.98fr) minmax(25rem, 1.02fr);
  align-items: stretch;
  gap: clamp(2rem, 4vw, 4.25rem);
}

.fc-hero__content {
  position: relative;
  z-index: 2;
  align-self: center;
  padding-block: clamp(2.5rem, 4.5vw, 3.75rem);
}

.fc-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1.1rem;
  color: var(--fc-green-800);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.45;
}

.fc-eyebrow::before {
  width: 2rem;
  height: 1px;
  flex: 0 0 auto;
  content: "";
  background: var(--fc-gold-500);
}

.fc-hero h1,
.fc-section-title,
.fc-page-hero h1,
.fc-error-page h1 {
  margin: 0;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-weight: 600;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.fc-hero h1 {
  max-width: 12.5ch;
  font-size: clamp(3.1rem, 4vw, 3.8rem);
  line-height: 1.04;
}

.fc-hero__lead {
  max-width: 35rem;
  margin: 1.35rem 0 0;
  color: #3f5049;
  font-size: clamp(0.98rem, 1.25vw, 1.06rem);
  line-height: 1.66;
}

.fc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem 1.25rem;
  margin-top: 1.55rem;
}

.fc-hero__media {
  position: relative;
  min-height: 100%;
  margin: 0 0 2rem;
  overflow: hidden;
  border: 1px solid rgb(234 223 200 / 72%);
  border-radius: var(--fc-radius-lg) var(--fc-radius-lg) 1.25rem 1.25rem;
  box-shadow: var(--fc-shadow);
}

.fc-hero__media::before {
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 0;
  width: 24%;
  content: "";
  background: linear-gradient(90deg, rgb(245 240 231 / 94%), transparent);
  pointer-events: none;
}

.fc-hero__media picture,
.fc-hero__media img {
  width: 100%;
  height: 100%;
}

.fc-hero__media img {
  object-fit: cover;
  object-position: 50% 28%;
}

@keyframes fc-drawer-enter {
  from {
    opacity: 0;
    transform: translateX(1.5rem);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.fc-trust {
  position: relative;
  z-index: 2;
  margin-top: -2rem;
}

.fc-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  overflow: hidden;
  color: var(--fc-ivory-50);
  background: var(--fc-green-900);
  border: 1px solid rgb(184 138 59 / 50%);
  border-radius: var(--fc-radius-md);
  box-shadow: var(--fc-shadow);
}

.fc-trust-item {
  min-height: 6.5rem;
  display: grid;
  place-items: center;
  padding: 1rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
}

.fc-trust-item + .fc-trust-item {
  border-left: 1px solid rgb(234 223 200 / 18%);
}

.fc-section {
  padding-block: clamp(4.25rem, 7vw, 6.25rem);
}

.fc-section--ivory {
  background: linear-gradient(180deg, #f7f2e9, var(--fc-ivory-100));
}

.fc-split,
.fc-audience,
.fc-profile-grid,
.fc-service-layout,
.fc-contact-band {
  display: grid;
  align-items: start;
  gap: clamp(2.5rem, 7vw, 6rem);
}

.fc-split {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: center;
}

.fc-audience {
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}

.fc-profile-grid {
  grid-template-columns: minmax(18rem, 0.78fr) minmax(0, 1.22fr);
}

.fc-service-layout {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.4fr);
}

.fc-contact-band {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: clamp(2rem, 5vw, 4rem);
  background: var(--fc-ivory-100);
  border: 1px solid rgb(225 219 207 / 76%);
  border-radius: var(--fc-radius-lg);
  box-shadow: var(--fc-shadow-soft);
}

.fc-contact-band__actions {
  display: grid;
  gap: 0.8rem;
  text-align: center;
}

.fc-section-title {
  font-size: clamp(2.3rem, 3.75vw, 3.7rem);
  line-height: 1.08;
}

.fc-section-copy,
.fc-section-intro {
  color: var(--fc-muted);
}

.fc-section-copy {
  font-size: 1.04rem;
}

.fc-section-copy p:first-child {
  margin-top: 0;
}

.fc-section-header {
  max-width: 48rem;
  margin-bottom: clamp(2rem, 4vw, 2.75rem);
}

.fc-section-header--center {
  margin-inline: auto;
  text-align: center;
}

.fc-section-header--center .fc-eyebrow {
  justify-content: center;
}

.fc-section-intro {
  margin-top: 1rem;
}

.fc-grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.4rem);
}

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

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

.fc-card {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  padding: clamp(1.4rem, 2.7vw, 2rem);
  background: var(--fc-white);
  border: 1px solid rgb(216 212 202 / 78%);
  border-radius: var(--fc-radius-md);
  box-shadow: 0 0.4rem 1.5rem rgb(11 36 29 / 4%);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.fc-card:hover {
  border-color: rgb(184 138 59 / 42%);
  box-shadow: var(--fc-shadow-soft);
  transform: translateY(-3px);
}

.fc-card__number {
  color: var(--fc-gold-500);
  font-family: var(--fc-serif);
  font-size: 1.8rem;
  line-height: 1;
}

.fc-card h2,
.fc-card h3,
.fc-empty h3 {
  margin: 1rem 0 0.65rem;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: clamp(1.3rem, 2vw, 1.5rem);
  line-height: 1.24;
}

.fc-card p {
  margin: 0 0 1.2rem;
  color: var(--fc-muted);
}

.fc-card__link {
  margin-top: auto;
}

.fc-check-list {
  display: grid;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fc-check-list li {
  position: relative;
  padding: 0.95rem 1rem 0.95rem 3rem;
  background: rgb(255 255 255 / 64%);
  border: 1px solid rgb(225 219 207 / 76%);
  border-radius: 1rem;
}

.fc-check-list li::before {
  position: absolute;
  top: 0.9rem;
  left: 1rem;
  color: var(--fc-green-800);
  content: "✓";
  font-weight: 700;
}

.fc-steps {
  counter-reset: step;
}

.fc-step {
  position: relative;
  min-height: 100%;
  padding: 1.35rem 1.35rem 1.35rem 4.35rem;
  background: rgb(255 255 255 / 50%);
  border: 1px solid rgb(225 219 207 / 72%);
  border-radius: var(--fc-radius-md);
}

.fc-step::before {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  color: var(--fc-gold-500);
  content: "0" counter(step);
  counter-increment: step;
  font-family: var(--fc-serif);
  font-size: 1.8rem;
}

.fc-step h3 {
  margin: 0 0 0.4rem;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: 1.35rem;
}

.fc-step p {
  margin: 0;
  color: var(--fc-muted);
}

.fc-feature-band,
.fc-cta {
  color: var(--fc-white);
  background: linear-gradient(135deg, var(--fc-green-900), #154b3c);
}

.fc-feature-band .fc-section-title,
.fc-cta .fc-section-title {
  color: var(--fc-ivory-50);
}

.fc-feature-band .fc-eyebrow,
.fc-cta .fc-eyebrow {
  color: var(--fc-champagne-200);
}

.fc-feature-band .fc-check-list li {
  background: rgb(255 255 255 / 5%);
  border-color: rgb(234 223 200 / 16%);
}

.fc-feature-band .fc-check-list li::before {
  color: var(--fc-gold-300);
}

.fc-cta__inner {
  max-width: 52rem;
  margin-inline: auto;
  text-align: center;
}

.fc-cta__inner .fc-eyebrow {
  justify-content: center;
}

.fc-cta__inner p {
  color: var(--fc-champagne-200);
}

.fc-cta .fc-button {
  color: var(--fc-green-950);
  background: var(--fc-gold-300);
  border-color: var(--fc-gold-300);
}

.fc-faq {
  max-width: 58rem;
}

.fc-faq details {
  margin-bottom: 0.7rem;
  padding-inline: 1.25rem;
  background: rgb(255 255 255 / 55%);
  border: 1px solid rgb(225 219 207 / 78%);
  border-radius: 1rem;
}

.fc-faq summary {
  position: relative;
  padding: 1.15rem 3rem 1.15rem 0;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.35;
  list-style: none;
  cursor: pointer;
}

.fc-faq summary::-webkit-details-marker {
  display: none;
}

.fc-faq summary::after {
  position: absolute;
  top: 50%;
  right: 0.35rem;
  color: var(--fc-gold-500);
  content: "+";
  font-family: var(--fc-sans);
  font-size: 1.6rem;
  transform: translateY(-50%);
}

.fc-faq details[open] summary::after {
  content: "−";
}

.fc-faq__answer {
  max-width: 48rem;
  padding: 0 3rem 1.4rem 0;
  color: var(--fc-muted);
}

.fc-page-hero {
  padding-block: clamp(3.75rem, 6vw, 5.5rem) clamp(2.75rem, 5vw, 4.25rem);
  background: radial-gradient(circle at 84% 10%, rgb(234 223 200 / 46%), transparent 28%), linear-gradient(135deg, var(--fc-ivory-100), var(--fc-ivory-50));
  border-bottom: 1px solid var(--fc-border);
}

.fc-page-hero__inner {
  max-width: 61rem;
}

.fc-page-hero h1,
.fc-error-page h1 {
  max-width: 18ch;
  margin-top: 0.7rem;
  font-size: clamp(2.8rem, 4.5vw, 4.25rem);
  line-height: 1.07;
}

.fc-page-lead {
  max-width: 48rem;
  color: var(--fc-muted);
  font-size: 1.08rem;
}

.fc-breadcrumb {
  margin-bottom: 1.4rem;
  font-size: 0.75rem;
  font-weight: 700;
}

.fc-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fc-breadcrumb li + li::before {
  margin-right: 0.45rem;
  color: var(--fc-gold-500);
  content: "/";
}

.fc-profile {
  position: sticky;
  top: 7rem;
  margin: 0;
  overflow: hidden;
  border-radius: var(--fc-radius-lg);
  box-shadow: var(--fc-shadow);
}

.fc-profile img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.fc-prose {
  max-width: 50rem;
}

.fc-prose h2 {
  margin: 2.6rem 0 0.85rem;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  line-height: 1.15;
}

.fc-prose section:first-child h2 {
  margin-top: 0;
}

.fc-prose p,
.fc-prose li {
  color: #465650;
}

.fc-prose a {
  color: var(--fc-green-800);
  text-underline-offset: 0.25em;
}

.fc-educational-notice,
.fc-notice {
  padding: 1rem 1.15rem;
  border-radius: var(--fc-radius-sm);
}

.fc-educational-notice {
  margin-top: 2rem;
  color: var(--fc-muted);
  background: var(--fc-ivory-100);
  font-size: 0.86rem;
}

.fc-notice {
  color: #5f4618;
  background: #fff2d6;
  border-left: 4px solid var(--fc-gold-500);
}

.fc-service-aside {
  position: sticky;
  top: 7rem;
  padding: 1.75rem;
  color: var(--fc-white);
  background: linear-gradient(145deg, var(--fc-green-900), #154b3c);
  border-radius: var(--fc-radius-md);
  box-shadow: var(--fc-shadow-soft);
}

.fc-service-aside h2 {
  margin: 0;
  color: var(--fc-champagne-200);
  font-family: var(--fc-serif);
  font-size: 1.65rem;
}

.fc-service-aside p {
  color: rgb(255 253 248 / 78%);
}

.fc-empty {
  padding: clamp(2rem, 6vw, 4rem);
  text-align: center;
  background: var(--fc-ivory-100);
  border: 1px solid rgb(225 219 207 / 78%);
  border-radius: var(--fc-radius-md);
}

.fc-empty h3 {
  margin-top: 0;
}

.fc-post-card time,
.fc-post-meta {
  color: var(--fc-muted);
  font-size: 0.76rem;
}

.fc-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1rem;
}

.fc-article {
  max-width: 50rem;
  margin-inline: auto;
}

.fc-video-consent {
  min-height: 22rem;
  display: grid;
  place-items: center;
  padding: 2rem;
  color: var(--fc-white);
  background: var(--fc-green-900);
  border-radius: var(--fc-radius-md);
  text-align: center;
}

.fc-video-consent iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
}

.fc-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.58fr);
  align-items: start;
  gap: clamp(2rem, 6vw, 5rem);
}

.fc-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.fc-field {
  display: grid;
  gap: 0.35rem;
}

.fc-field--full {
  grid-column: 1 / -1;
}

.fc-field label {
  color: var(--fc-green-900);
  font-size: 0.82rem;
  font-weight: 700;
}

.fc-optional,
.fc-field small {
  color: var(--fc-muted);
  font-size: 0.72rem;
  font-weight: 400;
}

.fc-field input,
.fc-field select,
.fc-field textarea {
  width: 100%;
  min-height: 3.2rem;
  padding: 0.72rem 0.85rem;
  color: var(--fc-ink);
  background: var(--fc-white);
  border: 1px solid #9daaa4;
  border-radius: var(--fc-radius-sm);
}

.fc-field textarea {
  min-height: 8rem;
  resize: vertical;
}

.fc-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.fc-checkbox input {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
  margin-top: 0.2rem;
}

.fc-alert {
  margin-bottom: 1.25rem;
  padding: 1rem 1.15rem;
  border-radius: var(--fc-radius-sm);
  font-weight: 600;
}

.fc-alert--error {
  color: #641f1f;
  background: #fde9e7;
  border: 1px solid #e9b0aa;
}

.fc-alert--success {
  color: #174b39;
  background: #e6f4ed;
  border: 1px solid #a8d5c3;
}

.fc-contact-card {
  padding: 1.8rem;
  color: var(--fc-white);
  background: linear-gradient(145deg, var(--fc-green-900), #154b3c);
  border-radius: var(--fc-radius-md);
  box-shadow: var(--fc-shadow-soft);
}

.fc-contact-card h2 {
  margin-top: 0;
  color: var(--fc-champagne-200);
  font-family: var(--fc-serif);
}

.fc-contact-card a {
  color: var(--fc-white);
  overflow-wrap: anywhere;
  text-underline-offset: 0.25em;
}

.fc-contact-list {
  display: grid;
  gap: 1.15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fc-error-page {
  min-height: 65vh;
  display: grid;
  align-items: center;
  padding-block: 5rem;
  background: var(--fc-ivory-100);
}

.fc-error-page p:not(.fc-eyebrow) {
  max-width: 42rem;
  color: var(--fc-muted);
}

.fc-site-footer {
  padding-block: 4rem 2rem;
  color: var(--fc-ivory-100);
  background: linear-gradient(155deg, var(--fc-green-950), #0e3027);
}

.fc-footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.7fr 0.85fr;
  gap: 3rem;
}

.fc-footer-logo {
  width: min(100%, 18rem);
  margin-bottom: 1rem;
}

.fc-site-footer h2 {
  margin-top: 0;
  color: var(--fc-champagne-200);
  font-family: var(--fc-serif);
  font-size: 1.2rem;
}

.fc-site-footer p,
.fc-site-footer li {
  color: rgb(255 253 248 / 76%);
  font-size: 0.85rem;
}

.fc-footer-links {
  display: grid;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fc-footer-links a {
  color: var(--fc-white);
  text-decoration: none;
}

.fc-footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgb(234 223 200 / 18%);
  font-size: 0.74rem;
}

.fc-footer-bottom button {
  padding: 0;
  color: var(--fc-champagne-200);
  background: none;
  border: 0;
  text-decoration: underline;
  cursor: pointer;
}

.fc-whatsapp-float {
  position: fixed;
  z-index: 80;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  width: 3.5rem;
  height: 3.5rem;
  display: none;
  align-items: center;
  justify-content: center;
  color: var(--fc-white);
  background: #176a4a;
  border: 2px solid var(--fc-white);
  border-radius: 50%;
  box-shadow: 0 0.7rem 2rem rgb(11 36 29 / 24%);
}

.fc-whatsapp-float img {
  color: currentcolor;
}

.fc-consent {
  position: fixed;
  z-index: 300;
  right: 1rem;
  bottom: 1rem;
  width: min(calc(100% - 2rem), 35rem);
  padding: 1.25rem;
  background: var(--fc-white);
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius-md);
  box-shadow: var(--fc-shadow);
}

.fc-consent h2,
.fc-consent-dialog h2 {
  margin: 0 0 0.4rem;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: 1.35rem;
}

.fc-consent p,
.fc-consent-dialog p {
  margin: 0;
  color: var(--fc-muted);
  font-size: 0.82rem;
}

.fc-consent__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.9rem;
}

.fc-consent__actions .fc-button {
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  font-size: 0.72rem;
}

.fc-consent-dialog {
  width: min(calc(100% - 2rem), 39rem);
  padding: 0;
  border: 0;
  border-radius: var(--fc-radius-md);
  box-shadow: var(--fc-shadow);
}

.fc-consent-dialog::backdrop {
  background: rgb(11 36 29 / 64%);
}

.fc-consent-dialog__inner {
  padding: 1.4rem;
}

.fc-consent-dialog__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.fc-consent-options {
  display: grid;
  gap: 0.75rem;
  margin-block: 1rem;
}

.fc-consent-option {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem;
  background: var(--fc-ivory-100);
  border-radius: var(--fc-radius-sm);
}

.fc-consent-option span {
  display: grid;
}

.fc-consent-option small {
  color: var(--fc-muted);
}

.fc-consent-option input {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
}

@media (max-width: 1080px) {
  .fc-nav > a:not(.fc-button) {
    display: none;
  }

  .fc-nav-toggle {
    display: grid;
  }

  .fc-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(23rem, 0.84fr);
  }

  .fc-hero h1 {
    font-size: clamp(3.1rem, 5vw, 3.55rem);
  }

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

@media (max-width: 820px) {
  .fc-container {
    width: min(calc(100% - 2rem), var(--fc-container));
  }

  .fc-homologation {
    min-height: 1.75rem;
    padding-inline: 0.45rem;
    font-size: 0.56rem;
    letter-spacing: 0.11em;
  }

  .fc-header-inner {
    min-height: 4.25rem;
  }

  .fc-logo {
    width: min(10.8rem, calc(100vw - 5.5rem));
  }

  .fc-nav .fc-button--small {
    display: none;
  }

  .fc-mobile-nav {
    grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 88vw);
  }

  .fc-hero__grid {
    position: relative;
    min-height: 38.75rem;
    height: clamp(38.75rem, calc(100svh - 5rem), 45.5rem);
    width: 100%;
    display: block;
  }

  .fc-hero__content {
    position: absolute;
    z-index: 3;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    width: auto;
    max-width: 25rem;
    margin-inline: auto;
    padding: clamp(1.05rem, 4vw, 1.35rem);
    background: rgb(255 253 248 / 88%);
    border: 1px solid rgb(255 255 255 / 68%);
    border-radius: 1.4rem;
    box-shadow: 0 1.25rem 3.5rem rgb(11 36 29 / 20%);
    backdrop-filter: blur(12px) saturate(125%);
  }

  .fc-hero h1 {
    max-width: 13ch;
    font-size: clamp(2.125rem, 9.4vw, 2.55rem);
    line-height: 1.02;
  }

  .fc-hero__lead {
    max-width: 38ch;
    margin-top: 0.8rem;
    font-size: 0.91rem;
    line-height: 1.5;
  }

  .fc-hero__actions {
    gap: 0.45rem;
    align-items: stretch;
    margin-top: 0.95rem;
  }

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

  .fc-hero__actions .fc-text-link {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    justify-content: center;
    font-size: 0.77rem;
  }

  .fc-hero__media {
    position: absolute;
    z-index: 1;
    inset: 0;
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .fc-hero__media::before {
    z-index: 2;
    inset: 0;
    width: auto;
    height: auto;
    background: linear-gradient(180deg, rgb(11 36 29 / 3%) 0%, rgb(11 36 29 / 2%) 34%, rgb(11 36 29 / 30%) 75%, rgb(11 36 29 / 56%) 100%), linear-gradient(90deg, rgb(245 240 231 / 16%) 0%, transparent 54%);
  }

  .fc-hero__media img {
    height: 100%;
    aspect-ratio: auto;
    object-position: 54% 18%;
  }

  .fc-trust {
    margin-top: 0;
    padding-block: 0 1rem;
    background: var(--fc-ivory-100);
  }

  .fc-trust-grid {
    grid-template-columns: repeat(2, 1fr);
    border-radius: 0.9rem;
  }

  .fc-trust-item {
    min-height: 5.4rem;
    padding: 0.75rem;
    font-size: 0.69rem;
  }

  .fc-trust-item:nth-child(3) {
    border-top: 1px solid rgb(234 223 200 / 18%);
    border-left: 0;
  }

  .fc-trust-item:nth-child(4) {
    border-top: 1px solid rgb(234 223 200 / 18%);
  }

  .fc-section {
    padding-block: 3.75rem;
  }

  .fc-split,
  .fc-audience,
  .fc-profile-grid,
  .fc-service-layout,
  .fc-contact-band,
  .fc-contact-grid,
  .fc-footer-grid {
    grid-template-columns: 1fr;
  }

  .fc-grid--2,
  .fc-grid--3,
  .fc-form {
    grid-template-columns: 1fr;
  }

  .fc-field--full {
    grid-column: auto;
  }

  .fc-section-title {
    font-size: clamp(2.05rem, 9vw, 2.8rem);
  }

  .fc-page-hero {
    padding-block: 3.25rem 3rem;
  }

  .fc-page-hero h1,
  .fc-error-page h1 {
    font-size: clamp(2.3rem, 10vw, 3rem);
  }

  .fc-page-lead {
    font-size: 1rem;
  }

  .fc-profile,
  .fc-service-aside {
    position: static;
  }

  .fc-contact-band {
    padding: 1.5rem;
  }

  .fc-footer-bottom {
    flex-direction: column;
  }

  .fc-site-footer {
    padding-bottom: 5.5rem;
  }

  .fc-whatsapp-float.is-visible {
    display: inline-flex;
  }

  .fc-consent {
    bottom: 5.25rem;
  }
}

@media (max-width: 380px) {
  .fc-hero__content {
    padding: 1rem;
  }

  .fc-hero h1 {
    font-size: 2.125rem;
  }

  .fc-hero__lead {
    font-size: 0.88rem;
  }

  .fc-trust-grid {
    grid-template-columns: 1fr;
  }

  .fc-trust-item + .fc-trust-item,
  .fc-trust-item:nth-child(3) {
    border-top: 1px solid rgb(234 223 200 / 18%);
    border-left: 0;
  }
}

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

@media print {
  .fc-homologation,
  .fc-site-header,
  .fc-whatsapp-float,
  .fc-consent,
  .fc-consent-dialog {
    display: none !important;
  }
}

.fc-blog-filters {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 0.6fr) auto;
  align-items: end;
  gap: 1rem;
  margin-bottom: 2rem;
  padding: 1.25rem;
  background: var(--fc-ivory-100);
  border-radius: var(--fc-radius-md);
}

.fc-blog-grid {
  margin-top: 1.5rem;
}

.fc-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2rem;
}

.fc-pagination a {
  min-width: 2.75rem;
  min-height: 2.75rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--fc-border);
  border-radius: 50%;
  text-decoration: none;
}

.fc-pagination a[aria-current="page"] {
  color: var(--fc-white);
  background: var(--fc-green-900);
}

.fc-admin-body {
  min-height: 100vh;
  background: var(--fc-ivory-100);
}

.fc-admin-header {
  min-height: 4.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem max(1rem, calc((100vw - 75rem) / 2));
  color: var(--fc-white);
  background: var(--fc-green-950);
}

.fc-admin-header > a {
  color: var(--fc-champagne-200);
  font-family: var(--fc-serif);
  font-size: 1.3rem;
  font-weight: 600;
  text-decoration: none;
}

.fc-admin-header nav {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.fc-admin-header nav a,
.fc-admin-header nav button {
  color: var(--fc-white);
  background: transparent;
  border: 0;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.fc-admin-header form,
.fc-inline-form {
  display: inline;
}

.fc-admin-main {
  padding-block: 3rem;
}

.fc-admin-container {
  width: min(calc(100% - 2rem), 75rem);
  margin-inline: auto;
}

.fc-admin-container h1 {
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  line-height: 1.1;
}

.fc-admin-login {
  max-width: 30rem;
  margin: 4rem auto;
  padding: clamp(1.5rem, 5vw, 3rem);
  background: var(--fc-white);
  border-radius: var(--fc-radius-md);
  box-shadow: var(--fc-shadow);
}

.fc-admin-form {
  max-width: 36rem;
  display: grid;
  gap: 1rem;
}

.fc-admin-form--wide {
  max-width: 56rem;
  padding: clamp(1.25rem, 4vw, 2.5rem);
  background: var(--fc-white);
  border-radius: var(--fc-radius-md);
}

.fc-admin-form label,
.fc-admin-form fieldset {
  display: grid;
  gap: 0.35rem;
  color: var(--fc-green-900);
  font-size: 0.82rem;
  font-weight: 700;
}

.fc-admin-form input,
.fc-admin-form select,
.fc-admin-form textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.7rem 0.8rem;
  color: var(--fc-ink);
  background: var(--fc-white);
  border: 1px solid #9daaa4;
  border-radius: 0.55rem;
}

.fc-admin-form textarea {
  min-height: 8rem;
  resize: vertical;
}

.fc-admin-form textarea[name="body_markdown"] {
  min-height: 24rem;
  font-family: Consolas, monospace;
}

.fc-admin-form fieldset {
  padding: 1rem;
  border: 1px solid var(--fc-border);
  border-radius: 0.55rem;
}

.fc-admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.fc-admin-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.fc-admin-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-block: 2rem;
}

.fc-admin-stats article {
  display: grid;
  padding: 1.5rem;
  background: var(--fc-white);
  border-radius: var(--fc-radius-md);
}

.fc-admin-stats strong {
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: 2.5rem;
}

.fc-admin-table-wrap {
  overflow-x: auto;
  background: var(--fc-white);
  border-radius: var(--fc-radius-md);
}

.fc-admin-table {
  width: 100%;
  border-collapse: collapse;
}

.fc-admin-table th,
.fc-admin-table td {
  padding: 0.9rem;
  border-bottom: 1px solid var(--fc-border);
  text-align: left;
  vertical-align: top;
}

.fc-admin-table th {
  color: var(--fc-green-900);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.fc-inline-form button {
  padding: 0;
  color: var(--fc-danger);
  background: transparent;
  border: 0;
  text-decoration: underline;
  cursor: pointer;
}

.fc-admin-list {
  max-width: 36rem;
  padding: 1rem 2.5rem;
  background: var(--fc-white);
  border-radius: var(--fc-radius-md);
}

@media (max-width: 760px) {
  .fc-blog-filters,
  .fc-admin-grid,
  .fc-admin-stats {
    grid-template-columns: 1fr;
  }

  .fc-admin-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .fc-admin-header nav {
    width: 100%;
    flex-wrap: wrap;
  }

  .fc-admin-title {
    align-items: flex-start;
    flex-direction: column;
    margin-bottom: 1rem;
  }
}


/* stylelint-disable no-duplicate-selectors -- camada final que refina os componentes consolidados */

/* Refinamento v4 — medicina premium editorial contemporânea. */
body {
  color: var(--fc-ink);
  background: var(--fc-ivory-50);
  font-size: 1.0625rem;
  line-height: 1.7;
}

.fc-container {
  width: min(calc(100% - 2.5rem), var(--fc-container));
}

.fc-site-header {
  top: 0;
  overflow: visible;
  background: rgb(255 253 248 / 91%);
  border-bottom: 1px solid rgb(15 43 35 / 9%);
  box-shadow: none;
  backdrop-filter: blur(14px) saturate(112%);
}

.fc-header-inner {
  width: min(calc(100% - 2rem), var(--fc-container-wide));
  min-height: 5rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 2vw, 2rem);
  margin-inline: auto;
  overflow: visible;
}

.fc-logo {
  width: 15.25rem;
  min-width: 15.25rem;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  overflow: visible;
}

.fc-logo .fc-logo__image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 1598 / 384;
  object-fit: contain;
  object-position: left center;
  overflow: visible;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  transform: none;
}

.fc-nav {
  grid-column: 3;
  gap: clamp(1rem, 1.55vw, 1.5rem);
  white-space: nowrap;
}

.fc-nav > a:not(.fc-button) {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  font-size: 0.8125rem;
  letter-spacing: 0.015em;
}

.fc-button {
  min-height: 3.25rem;
  padding: 0.75rem 1.35rem;
  border-radius: 0.875rem;
  box-shadow: none;
  font-size: 0.8125rem;
  transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

.fc-button:hover {
  box-shadow: 0 0.75rem 1.75rem rgb(15 43 35 / 13%);
  transform: translateY(-1px);
}

.fc-button--small {
  min-height: 3rem;
  padding-inline: 1.15rem;
  font-size: 0.75rem;
}

.fc-button--with-icon img,
.fc-whatsapp-float img {
  filter: brightness(0) invert(1);
}

.fc-text-link,
.fc-card__link {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  text-decoration-thickness: 1px;
  transition: color 180ms ease, text-underline-offset 180ms ease;
}

.fc-text-link:hover,
.fc-card__link:hover {
  color: var(--fc-green-900);
  text-underline-offset: 0.45em;
}

.fc-nav-toggle {
  width: 2.875rem;
  height: 2.875rem;
  background: rgb(244 239 230 / 65%);
  border-radius: 0.875rem;
}

.fc-mobile-nav__panel {
  gap: 0.1rem;
  padding: 1.25rem;
  box-shadow: var(--fc-shadow-raised);
  animation-duration: 220ms;
}

.fc-mobile-nav__top .fc-mobile-nav__logo {
  display: block;
  width: 12.75rem;
  height: auto;
  aspect-ratio: 1598 / 384;
  object-fit: contain;
  object-position: left center;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  transform: none;
}

.fc-mobile-nav__panel > a:not(.fc-button) {
  min-height: 3.25rem;
  display: flex;
  align-items: center;
  padding: 0.7rem 0.55rem;
  font-size: 0.9375rem;
}

.fc-hero--home {
  position: relative;
  min-height: 41.25rem;
  overflow: hidden;
  padding: 0;
  background: var(--fc-ivory-100);
}

.fc-hero__picture {
  position: absolute;
  top: 0;
  right: 0;
  width: 47%;
  height: 100%;
}

.fc-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 28%;
}

.fc-hero__veil {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, var(--fc-ivory-100) 0%, var(--fc-ivory-100) 38%, rgb(244 239 230 / 94%) 42%, rgb(244 239 230 / 30%) 50%, transparent 58%);
  pointer-events: none;
}

.fc-hero__layout {
  position: relative;
  z-index: 2;
  min-height: 41.25rem;
  display: grid;
  grid-template-columns: minmax(0, 42rem) minmax(0, 1fr);
  align-items: center;
}

.fc-hero__copy {
  padding-block: 3.5rem;
}

.fc-eyebrow {
  margin-bottom: 1rem;
  color: var(--fc-green-800);
  font-size: 0.75rem;
  letter-spacing: 0.13em;
}

.fc-hero--home h1 {
  max-width: 16.5ch;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: clamp(3.75rem, 4.65vw, 4.375rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.02;
  text-wrap: balance;
}

.fc-hero__lead {
  max-width: 35rem;
  margin-top: 1.4rem;
  color: #405049;
  font-size: 1.0625rem;
  line-height: 1.7;
}

.fc-hero__actions {
  margin-top: 1.65rem;
}

.fc-trust {
  position: relative;
  z-index: 3;
  margin-top: -2rem;
  background: transparent;
  border-bottom: 0;
}

.fc-trust-grid {
  min-height: 6.25rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  color: var(--fc-ink);
  background: var(--fc-white);
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius-md);
  box-shadow: none;
}

.fc-trust-item {
  min-height: 6.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  padding: 1rem 1.5rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  text-align: left;
}

.fc-trust-item + .fc-trust-item {
  border-left: 1px solid var(--fc-border);
}

.fc-trust-item__mark,
.fc-contact-icon {
  width: 2.25rem;
  height: 2.25rem;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--fc-gold-500);
  border: 1px solid rgb(192 150 78 / 48%);
  border-radius: 50%;
  font-family: var(--fc-serif);
  font-size: 0.75rem;
}

.fc-section {
  padding-block: clamp(4.5rem, 7vw, 6.5rem);
}

.fc-section--ivory {
  background: var(--fc-ivory-100);
}

.fc-section-title {
  max-width: 18ch;
  font-size: clamp(2.375rem, 3.35vw, 3rem);
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.fc-section-header {
  max-width: 45rem;
  margin-bottom: 2.75rem;
}

.fc-section-intro,
.fc-section-copy,
.fc-about-home__copy,
.fc-contact-band p {
  max-width: 65ch;
}

.fc-section-copy {
  position: relative;
  padding-left: clamp(1.5rem, 4vw, 3.25rem);
  font-size: 1.0625rem;
}

.fc-section-copy::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 1px;
  content: "";
  background: linear-gradient(var(--fc-gold-500), transparent 82%);
}

.fc-split {
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 0.82fr);
  gap: clamp(3rem, 8vw, 7.5rem);
}

.fc-grid--3 {
  gap: 1.25rem;
}

.fc-card {
  padding: clamp(1.5rem, 2.6vw, 2rem);
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius-md);
  box-shadow: none;
  transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

.fc-card:hover {
  border-color: rgb(192 150 78 / 38%);
  box-shadow: var(--fc-shadow-soft);
  transform: translateY(-2px);
}

.fc-card h2,
.fc-card h3,
.fc-empty h3 {
  margin-top: 1rem;
  font-size: clamp(1.5rem, 2.15vw, 1.875rem);
  line-height: 1.2;
}

.fc-card p {
  font-size: 0.9375rem;
  line-height: 1.65;
}

.fc-section-link {
  margin: 1.5rem 0 0;
}

.fc-process-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fc-process-step {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  padding: 0.75rem clamp(1.25rem, 3vw, 2.5rem);
}

.fc-process-step + .fc-process-step {
  border-left: 1px solid var(--fc-border);
}

.fc-process-step > span {
  color: var(--fc-gold-500);
  font-family: var(--fc-serif);
  font-size: 1.875rem;
  line-height: 1;
}

.fc-process-step h3 {
  margin: 0 0 0.55rem;
  color: var(--fc-green-900);
  font-family: var(--fc-serif);
  font-size: clamp(1.5rem, 2vw, 1.75rem);
  line-height: 1.2;
}

.fc-process-step p {
  margin: 0;
  color: var(--fc-muted);
  font-size: 0.9375rem;
}

.fc-about-home {
  position: relative;
}

.fc-about-home::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: min(8rem, 18vw);
  height: 1px;
  content: "";
  background: var(--fc-gold-500);
  transform: translateX(-50%);
}

.fc-about-home__grid {
  display: grid;
  grid-template-columns: minmax(18rem, 0.82fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 7.5rem);
}

.fc-about-home__media {
  margin: 0;
  overflow: hidden;
  border-radius: var(--fc-radius-lg);
  box-shadow: var(--fc-shadow-soft);
}

.fc-about-home__media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 24%;
}

.fc-about-home__copy p:not(.fc-eyebrow) {
  color: var(--fc-muted);
}

.fc-empty--editorial {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(2rem, 5vw, 3.5rem);
  text-align: left;
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius-md);
}

.fc-empty--editorial h3 {
  max-width: 26ch;
  margin: 0 0 0.5rem;
}

.fc-faq {
  max-width: 58rem;
  margin-inline: auto;
}

.fc-faq details {
  padding-inline: 1.25rem;
  background: rgb(255 253 248 / 58%);
  border-color: var(--fc-border);
  border-radius: var(--fc-radius-sm);
}

.fc-faq summary {
  min-height: 3.5rem;
  font-size: 1.3125rem;
}

.fc-contact-band {
  padding: clamp(2rem, 5vw, 3.5rem);
  background: transparent;
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius-md);
  box-shadow: none;
}

.fc-cta {
  background: var(--fc-green-900);
}

.fc-cta__inner {
  text-align: left;
}

.fc-cta__inner .fc-eyebrow {
  justify-content: flex-start;
}

.fc-page-hero {
  min-height: 18rem;
  display: grid;
  align-items: center;
  padding-block: 3rem;
  background: radial-gradient(circle at 86% 0%, rgb(230 220 192 / 48%), transparent 28%), var(--fc-ivory-100);
}

.fc-page-hero__inner {
  width: min(calc(100% - 2.5rem), 75rem);
  max-width: 75rem;
}

.fc-page-hero h1,
.fc-error-page h1 {
  max-width: 19ch;
  font-size: clamp(2.875rem, 4vw, 3.625rem);
  line-height: 1.06;
}

.fc-page-lead {
  max-width: 65ch;
  margin-bottom: 0;
  font-size: 1.0625rem;
  line-height: 1.65;
}

.fc-breadcrumb {
  margin-bottom: 1rem;
  font-size: 0.75rem;
}

.fc-prose,
.fc-article {
  max-width: 68ch;
}

.fc-prose p,
.fc-prose li,
.fc-article p,
.fc-article li {
  font-size: 1.0625rem;
  line-height: 1.7;
}

.fc-prose h2 {
  font-size: clamp(2.375rem, 3.4vw, 3rem);
}

.fc-contact-grid {
  width: min(calc(100% - 2.5rem), var(--fc-container));
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 21rem);
  gap: clamp(2rem, 4vw, 4.5rem);
}

.fc-contact-grid > * {
  min-width: 0;
}

.fc-contact-main {
  width: min(100%, 47.5rem);
}

.fc-contact-intro {
  margin-bottom: 2rem;
}

.fc-contact-intro .fc-section-title {
  max-width: 20ch;
  font-size: clamp(2.25rem, 3.2vw, 2.75rem);
}

.fc-form {
  gap: 1.15rem;
}

.fc-field label {
  font-size: 0.875rem;
}

.fc-optional,
.fc-field small {
  font-size: 0.8125rem;
}

.fc-field input,
.fc-field select,
.fc-field textarea {
  min-height: 3.25rem;
  padding: 0.8rem 0.9rem;
  border-color: rgb(15 43 35 / 34%);
  border-radius: var(--fc-radius-sm);
}

.fc-field textarea {
  min-height: 8.5rem;
}

.fc-field [aria-invalid="true"] {
  border-color: var(--fc-danger);
}

.fc-checkbox {
  min-height: 2.75rem;
}

.fc-checkbox input {
  width: 1.35rem;
  height: 1.35rem;
}

.fc-notice {
  margin: 0;
  color: #554522;
  background: #fbf5e7;
  border: 1px solid rgb(192 150 78 / 32%);
  border-left: 2px solid var(--fc-gold-500);
}

.fc-form-disclosure {
  color: var(--fc-muted);
  font-size: 0.8125rem;
}

.fc-form-disclosure p {
  margin: 0 0 0.35rem;
}

.fc-noscript {
  color: var(--fc-muted);
  font-size: 0.875rem;
}

.fc-contact-card {
  padding: 1.75rem;
  color: var(--fc-ink);
  background: var(--fc-ivory-100);
  border: 1px solid var(--fc-border);
  border-radius: var(--fc-radius-md);
  box-shadow: none;
}

.fc-contact-card .fc-eyebrow {
  margin-bottom: 0.65rem;
}

.fc-contact-card h2 {
  margin: 0 0 1.5rem;
  color: var(--fc-green-900);
  font-size: 1.75rem;
}

.fc-contact-list {
  gap: 0;
}

.fc-contact-list li {
  display: flex;
  gap: 0.85rem;
  padding-block: 1rem;
  color: var(--fc-muted);
  font-size: 0.875rem;
}

.fc-contact-list li + li {
  border-top: 1px solid var(--fc-border);
}

.fc-contact-card a {
  color: var(--fc-green-800);
  overflow-wrap: anywhere;
}

.fc-contact-card strong {
  color: var(--fc-green-900);
}

.fc-site-footer {
  padding-block: 4rem 2rem;
  background: var(--fc-green-950);
}

.fc-footer-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(10rem, 0.65fr) minmax(14rem, 0.85fr);
  gap: clamp(2rem, 6vw, 5rem);
}

.fc-footer-brand {
  max-width: 28rem;
}

.fc-footer-logo {
  display: block;
  width: min(100%, 13.5rem);
  height: auto;
  aspect-ratio: 1448 / 1086;
  object-fit: contain;
  object-position: left center;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
  transform: none;
}

.fc-site-footer h2 {
  font-size: 1.25rem;
}

.fc-site-footer p,
.fc-site-footer li {
  font-size: 0.875rem;
}

.fc-footer-links a {
  min-height: 2.25rem;
  display: inline-flex;
  align-items: center;
}

.fc-footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.fc-whatsapp-float {
  display: none;
}

.fc-reveal {
  transform: translateY(0.75rem);
  transition: transform 240ms ease;
}

.fc-reveal.fc-reveal--visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 74.99rem) {
  .fc-header-inner {
    min-height: 4.75rem;
  }

  .fc-logo {
    width: 14.25rem;
    min-width: 14.25rem;
  }

  .fc-nav > a:not(.fc-button),
  .fc-nav .fc-button--small {
    display: none;
  }

  .fc-nav-toggle {
    display: grid;
  }
}

@media (max-width: 68.75rem) {
  .fc-contact-grid {
    grid-template-columns: 1fr;
  }

  .fc-contact-main {
    width: 100%;
  }

  .fc-contact-card {
    width: min(100%, 47.5rem);
  }
}

@media (max-width: 56.25rem) {
  .fc-hero--home {
    min-height: 46rem;
  }

  .fc-hero__picture {
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .fc-hero__image {
    object-position: 66% 18%;
  }

  .fc-hero__veil {
    background: linear-gradient(to top, rgb(244 239 230 / 98%) 0%, rgb(244 239 230 / 88%) 34%, rgb(244 239 230 / 34%) 58%, transparent 76%), linear-gradient(to right, rgb(244 239 230 / 38%) 0%, rgb(244 239 230 / 8%) 54%, transparent 76%);
  }

  .fc-hero__layout {
    min-height: inherit;
    display: flex;
    align-items: flex-end;
    padding: 1rem 0 1.5rem;
  }

  .fc-hero__copy {
    width: min(100%, 23rem);
    padding: 1.125rem;
    background: linear-gradient(135deg, rgb(255 253 248 / 88%), rgb(244 239 230 / 74%));
    border: 1px solid rgb(255 255 255 / 62%);
    border-radius: var(--fc-radius-lg);
    box-shadow: 0 1rem 3rem rgb(15 43 35 / 10%);
    backdrop-filter: blur(12px) saturate(108%);
  }

  @supports not (backdrop-filter: blur(1px)) {
    .fc-hero__copy {
      background: rgb(255 253 248 / 96%);
    }
  }

  .fc-hero--home .fc-eyebrow {
    margin-bottom: 0.75rem;
    font-size: 0.6875rem;
    line-height: 1.45;
  }

  .fc-hero--home h1 {
    max-width: 11.5ch;
    font-size: clamp(2.25rem, 9.4vw, 2.625rem);
    line-height: 1.03;
  }

  .fc-hero__lead {
    max-width: 35ch;
    margin-top: 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.58;
  }

  .fc-hero__actions {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.9rem;
  }

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

  .fc-hero__actions .fc-text-link {
    justify-content: flex-start;
  }

  .fc-trust-grid {
    grid-template-columns: 1fr;
    border: 0;
    border-radius: 0;
  }

  .fc-trust {
    margin-top: 0;
  }

  .fc-trust-item {
    min-height: 4.75rem;
    justify-content: flex-start;
    padding-inline: 0;
  }

  .fc-trust-item + .fc-trust-item {
    border-top: 1px solid var(--fc-border);
    border-left: 0;
  }

  .fc-split,
  .fc-about-home__grid,
  .fc-service-layout,
  .fc-profile-grid,
  .fc-footer-grid {
    grid-template-columns: 1fr;
  }

  .fc-split,
  .fc-about-home__grid {
    gap: 2.5rem;
  }

  .fc-section-copy {
    padding-left: 1.5rem;
  }

  .fc-grid--3 {
    grid-template-columns: 1fr;
  }

  .fc-process-list {
    grid-template-columns: 1fr;
  }

  .fc-process-step {
    padding: 1.35rem 0;
  }

  .fc-process-step + .fc-process-step {
    border-top: 1px solid var(--fc-border);
    border-left: 0;
  }

  .fc-about-home__media {
    width: min(100%, 31rem);
  }

  .fc-empty--editorial {
    align-items: flex-start;
    flex-direction: column;
  }

  .fc-page-hero {
    min-height: 15rem;
    padding-block: 2.5rem;
  }

  .fc-page-hero h1,
  .fc-error-page h1 {
    font-size: clamp(2rem, 8.8vw, 2.375rem);
  }

  .fc-page-lead {
    font-size: 1rem;
  }

  .fc-section-title,
  .fc-prose h2 {
    font-size: clamp(1.75rem, 7.9vw, 2.125rem);
  }

  .fc-contact-grid {
    width: min(calc(100% - 2rem), var(--fc-container));
  }

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

  .fc-field--full {
    grid-column: auto;
  }

  .fc-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 47.99rem) {
  body {
    padding-bottom: calc(5rem + env(safe-area-inset-bottom));
    font-size: 1rem;
  }

  .fc-container {
    width: min(calc(100% - 2rem), var(--fc-container));
  }

  .fc-header-inner {
    min-height: 4.25rem;
  }

  .fc-logo {
    width: 13.5rem;
    min-width: 13.5rem;
  }

  .fc-mobile-nav {
    grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 88vw);
  }

  .fc-section {
    padding-block: 4rem;
  }

  .fc-contact-band {
    grid-template-columns: 1fr;
    padding: 1.5rem;
  }

  .fc-whatsapp-float {
    position: fixed;
    z-index: 80;
    right: 0.875rem;
    bottom: calc(0.875rem + env(safe-area-inset-bottom));
    left: 0.875rem;
    width: auto;
    height: 3.5rem;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    color: var(--fc-white);
    background: #176a4a;
    border: 1px solid rgb(255 255 255 / 58%);
    border-radius: 1rem;
    box-shadow: var(--fc-shadow-raised);
    font-size: 0.8125rem;
    font-weight: 700;
    text-decoration: none;
  }

  .fc-whatsapp-float.is-visible {
    display: inline-flex;
  }

  .fc-consent {
    bottom: calc(0.875rem + env(safe-area-inset-bottom));
  }

  .fc-site-footer {
    padding-bottom: 2.5rem;
  }
}

@media (max-width: 26.8125rem) {
  .fc-logo {
    width: 12.75rem;
    min-width: 12.75rem;
  }
}

@media (max-width: 24.3125rem) {
  .fc-logo {
    width: 12rem;
    min-width: 12rem;
  }
}

@media (max-width: 22.4375rem) {
  .fc-logo {
    width: 11.5rem;
    min-width: 11.5rem;
  }

  .fc-hero__copy {
    padding: 1rem;
  }

  .fc-hero--home h1 {
    font-size: 2.25rem;
  }

  .fc-hero__lead {
    font-size: 0.875rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fc-reveal {
    opacity: 1;
    transform: none;
  }
}

@media print {
  .fc-whatsapp-float {
    display: none !important;
  }
}
