:root {
  --site-primary: #72276d;
  --site-primary-light: #9d6e92;
  --site-primary-dark: #580053;
  --site-secondary: #6b6da3;
  --site-accent: #ac6718;
  --site-surface: #f6f6f6;
  --site-text-secondary: #665663;
  --site-border: rgba(107, 109, 163, 0.24);
  --bs-body-bg: #fff1ff;
  --bs-body-color: #1c121c;
  --bs-body-font-family: 'Mulish', sans-serif;
  --bs-link-color: #72276d;
  --bs-link-hover-color: #580053;
  --type-h1: clamp(2.4rem, 5vw, 3.4rem);
  --type-h2: 2.2rem;
  --type-h3: 1.5rem;
  --type-body: 1.125rem;
  --type-small: 0.95rem;
  --type-eyebrow: 0.78rem;
  --section-pad: clamp(5rem, 8vw, 7rem);
}

body {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  font-family: var(--bs-body-font-family);
  font-size: var(--type-body);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Zilla Slab', serif;
  color: var(--bs-body-color);
  line-height: 1.08;
  text-wrap: balance;
}

h1, .h1-like { font-size: var(--type-h1); }
h2, .h2-like { font-size: var(--type-h2); }
h3, .h3-like { font-size: var(--type-h3); }

p, li { text-wrap: pretty; }
small, .small { font-size: var(--type-small); }

.btn-primary { background-color: var(--site-primary); border-color: var(--site-primary); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--site-primary-dark); border-color: var(--site-primary-dark); color: #fff; }
.btn-outline-primary { color: var(--site-primary); border-color: var(--site-primary); background-color: transparent; }
.btn-outline-primary:hover, .btn-outline-primary:focus { background-color: var(--site-primary); border-color: var(--site-primary); color: #fff; }
.bg-primary { background-color: var(--site-primary) !important; }
.text-primary { color: var(--site-primary) !important; }
.border-primary { border-color: var(--site-primary) !important; }
a { color: var(--site-primary); transition: color 160ms ease; }
a:hover { color: var(--site-primary-dark); }

.btn {
  border-radius: 8px;
  padding: 0.82rem 1.15rem;
  font-weight: 800;
  box-shadow: none;
  letter-spacing: 0.01em;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
  border-width: 1px;
}
.btn:hover { transform: translateY(-1px); }

.form-control, .form-select, .form-check-input {
  border-radius: 6px;
  border-color: var(--site-border);
  background-color: rgba(246, 246, 246, 0.74);
  color: var(--bs-body-color);
  font-size: 1rem;
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--site-primary-light);
  box-shadow: 0 0 0 0.2rem rgba(114, 39, 109, 0.12);
}
label { font-size: var(--type-small); font-weight: 800; color: var(--site-text-secondary); }

.card {
  border-radius: 12px;
  border-color: var(--site-border);
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  background-color: rgba(246, 246, 246, 0.64);
}
.card-row { height: 100%; }

img { border-radius: 8px; }
.logo-mark {
  width: 42px;
  height: 42px;
  object-fit: contain;
  border-radius: 8px;
}

.site-navbar {
  background: var(--bs-body-bg);
  padding-top: 1.05rem;
  padding-bottom: 1.05rem;
  box-shadow: none;
  border: 0;
}
.navbar-brand {
  font-family: 'Zilla Slab', serif;
  font-weight: 700;
  color: var(--bs-body-color);
  letter-spacing: 0.01em;
}
.navbar-brand:hover, .nav-link:hover { color: var(--bs-body-color); }
.nav-link {
  color: var(--bs-body-color);
  font-weight: 750;
  font-size: 0.98rem;
}
.navbar-toggler { border: 0; padding: 0.35rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 0.18rem rgba(114, 39, 109, 0.14); }

.site-section {
  background: var(--bs-body-bg);
  border-top: 1px solid var(--site-border);
  padding: var(--section-pad) 0;
}
.hero-section {
  background: var(--bs-body-bg);
  padding: clamp(5.5rem, 11vw, 9rem) 0 var(--section-pad);
}
.prose { max-width: 68ch; }
.narrow-prose { max-width: 58ch; }
.eyebrow {
  display: block;
  color: var(--site-text-secondary);
  font-size: var(--type-eyebrow);
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.9rem;
}
.lead { font-size: 1.22rem; color: var(--site-text-secondary); line-height: 1.6; }
.text-secondary-site { color: var(--site-text-secondary); }

.offset-sidebar {
  border-left: 1px solid var(--site-border);
  padding-left: 1.25rem;
  color: var(--site-text-secondary);
  font-size: var(--type-small);
}
.sidebar-number {
  display: block;
  font-family: 'Zilla Slab', serif;
  color: var(--site-primary);
  font-size: 2.1rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  margin-bottom: 0.75rem;
}
.tile-number {
  display: block;
  color: var(--site-primary);
  font-family: 'Zilla Slab', serif;
  font-size: 1.35rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  margin-bottom: 1.2rem;
}
.service-list {
  padding-left: 1.1rem;
  margin-bottom: 0;
}
.service-list li { margin-bottom: 0.4rem; }
.figure-img { width: 100%; object-fit: cover; max-height: 430px; }
.phone-large {
  font-family: 'Zilla Slab', serif;
  font-size: clamp(1.75rem, 3vw, 2.45rem);
  line-height: 1.1;
  color: var(--bs-body-color);
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}
.phone-large:hover { color: var(--site-primary-dark); }

.footer {
  border-top: 1px solid var(--site-border);
  padding: clamp(3rem, 6vw, 4.5rem) 0 2rem;
  background: var(--bs-body-bg);
}
.footer p, .footer a, .footer li { font-size: var(--type-small); }
.footer-title { font-family: 'Zilla Slab', serif; font-size: 1.45rem; font-weight: 700; }
.footer-links a { color: var(--bs-body-color); text-decoration: none; }
.footer-links a:hover { color: var(--site-primary-dark); }
.legal-line { font-size: var(--type-small); color: var(--site-text-secondary); }

.cookie-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  padding: 1rem;
  max-width: 760px;
  margin: 0 auto;
}
.cookie-banner[hidden] { display: none !important; }
.cookie-banner p { margin: 0; font-size: var(--type-small); color: var(--site-text-secondary); }

.form-note {
  border-left: 1px solid var(--site-border);
  padding-left: 1rem;
  color: var(--site-text-secondary);
  font-size: var(--type-small);
}
.confirmation-message {
  border: 1px solid rgba(114, 39, 109, 0.28);
  border-radius: 10px;
  background: rgba(246, 246, 246, 0.78);
  padding: 1rem;
  color: var(--bs-body-color);
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 1rem;
  background: var(--site-primary);
  color: #fff;
  padding: 0.5rem 0.75rem;
  z-index: 2000;
  border-radius: 6px;
}
.skip-link:focus { top: 1rem; color: #fff; }

@media (max-width: 991.98px) {
  body { font-size: 1.05rem; }
  .offset-sidebar { border-left: 0; padding-left: 0; border-top: 1px solid var(--site-border); padding-top: 1.25rem; }
  .site-navbar .btn { margin-top: 0.75rem; }
}
