
:root {
  --radius-card: 24px;
  --radius-image: 16px;
  --radius-input: 12px;
  --shadow-card: 0 12px 32px rgba(0,0,0,0.08);
  --shadow-button: 0 4px 12px rgba(0,0,0,0.06);
  --section-pad: clamp(4rem, 7vw, 6rem);
  --h1-size: clamp(2.2rem, 4.5vw, 3rem);
  --h2-size: 1.9rem;
  --h3-size: 1.4rem;
}
html { scroll-behavior: smooth; }
body { background: var(--color-background); color: var(--color-text-primary); font-family: var(--font-body); font-size: 1.06rem; line-height: 1.65; }
h1,h2,h3,h4,.font-display { font-family: var(--font-display); letter-spacing: -0.025em; }
h1 { font-size: var(--h1-size); line-height: 1.1; }
h2 { font-size: var(--h2-size); line-height: 1.2; }
h3 { font-size: var(--h3-size); line-height: 1.25; }
h1,h2,h3,p { text-wrap: pretty; }
.section-pad { padding-block: var(--section-pad); }
.eyebrow { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; color: var(--color-accent); }
.card-lift { border-radius: var(--radius-card); box-shadow: var(--shadow-card); background: var(--color-surface); }
.rounded-image { border-radius: var(--radius-image); }
.btn-pill { border-radius: 9999px; box-shadow: var(--shadow-button); transition: transform .2s ease, background-color .2s ease; }
.btn-pill:hover { transform: scale(1.02); }
input, select, textarea { border-radius: var(--radius-input); }
.nav-link { transition: color .2s ease; }
.nav-link:hover { color: var(--color-accent); }
.hero-mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.hero-mosaic img { width: 100%; height: 12rem; object-fit: cover; border-radius: var(--radius-image); }
.hero-mosaic img:nth-child(2) { object-position: 65% center; }
.hero-mosaic img:nth-child(3) { object-position: 30% bottom; }
.hero-mosaic img:nth-child(4) { object-position: 80% bottom; }
.process-card { min-height: 100%; }
.icon-line { width: 1.75rem; height: 1.75rem; flex: 0 0 auto; }
.cookie-banner { position: fixed; z-index: 50; inset-inline: 1rem; bottom: 1rem; max-width: 48rem; margin-inline: auto; border-radius: 24px; box-shadow: var(--shadow-card); }
.confirmation { display: none; }
.confirmation.is-visible { display: block; }
@media (min-width: 768px) { .hero-mosaic img { height: 15rem; } }
@media (min-width: 1024px) { .hero-mosaic img { height: 13rem; } }
