:root {
  --site-primary: #951840;
  --site-primary-light: #ba7182;
  --site-primary-dark: #740026;
  --site-secondary: #ab5d3b;
  --site-accent: #007862;
  --site-background: #fee4e4;
  --site-surface: #faf5f6;
  --site-text: #230e14;
  --site-muted: #725758;
  --radius-pill: 9999px;
  --radius-card: 24px;
  --radius-image: 16px;
  --radius-input: 12px;
  --section-pad: clamp(5rem, 8vw, 7rem);
  --shadow-none: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--site-background); color: var(--site-text); font-family: var(--font-body), sans-serif; font-size: 1.125rem; line-height: 1.65; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display), sans-serif; letter-spacing: -0.035em; line-height: 1.12; text-wrap: balance; }
h1 { font-size: clamp(2.4rem, 5vw, 3.4rem); }
h2 { font-size: 2.2rem; }
h3 { font-size: 1.5rem; }
p { text-wrap: pretty; }
a { color: inherit; }
.site-nav a { text-decoration: none; }
.site-nav a:hover, footer a:hover { color: var(--site-primary); }
.logo-mark { width: 2.5rem; height: 2.5rem; object-fit: contain; }
.eyebrow { color: var(--site-primary); font-size: .78rem; font-weight: 700; letter-spacing: .1em; line-height: 1.3; text-transform: uppercase; }
.eyebrow::before { content: "["; margin-right: .16rem; }
.eyebrow::after { content: "]"; margin-left: .16rem; }
.section-pad { padding-bottom: var(--section-pad); padding-top: var(--section-pad); }
.hero-image { border-radius: var(--radius-image); min-height: 30rem; object-fit: cover; width: 100%; }
.overlap-card { background: var(--site-surface); border-radius: var(--radius-card); margin-top: -5rem; max-width: 44rem; padding: clamp(2rem, 5vw, 4rem); position: relative; }
.motif-initial::first-letter { color: var(--site-primary); font-size: 1.35em; font-weight: 700; }
.service-card { background: var(--site-surface); border: 1px solid rgba(149,24,64,.13); border-radius: var(--radius-card); padding: 1.75rem; }
.service-number { color: var(--site-primary); font-family: var(--font-display), sans-serif; font-size: 1rem; font-weight: 700; letter-spacing: .08em; }
.form-control, .form-select { background: var(--site-surface); border: 0; border-radius: var(--radius-input); color: var(--site-text); font: inherit; padding: .85rem 1rem; width: 100%; }
.form-control:focus, .form-select:focus { outline: 2px solid var(--site-primary-light); outline-offset: 2px; }
.btn-site { background: var(--site-surface); border: 0; border-radius: var(--radius-input); box-shadow: inset 0 -2px 0 rgba(0,0,0,.08); color: var(--site-primary-dark); display: inline-flex; font-size: .95rem; font-weight: 700; justify-content: center; padding: .8rem 1.25rem; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.btn-site:hover { background: #fff; color: var(--site-primary); }
.btn-primary-site { background: var(--site-primary); color: #fff; }
.btn-primary-site:hover { background: var(--site-primary-dark); color: #fff; }
.cookie-banner { background: var(--site-text); bottom: 1rem; color: #fff; left: 1rem; max-width: 35rem; padding: 1.25rem; position: fixed; right: 1rem; z-index: 50; }
.cookie-banner[hidden] { display: none; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .85rem; }
.cookie-actions button { border: 0; border-radius: var(--radius-pill); cursor: pointer; font: inherit; font-size: .9rem; padding: .55rem 1rem; }
.cookie-accept { background: #fff; color: var(--site-text); }
.cookie-decline { background: transparent; color: #fff; outline: 1px solid rgba(255,255,255,.55); }
footer { background: var(--site-surface); }
footer ul { list-style: none; margin: 0; padding: 0; }
footer li + li { margin-top: .4rem; }
@media (max-width: 767px) {
  .hero-image { min-height: 21rem; }
  .overlap-card { margin: -3rem 1rem 0; }
}
