:root {
  --bulma-family-primary: 'Public Sans', sans-serif;
  --bulma-family-secondary: 'Public Sans', serif;
  --bulma-radius: 0px;
  --bulma-scheme-main: #f4f2ff;
  --bulma-text: #1a172c;
  --bulma-control-border-width: 1px;

  --site-primary: #625898;
  --site-primary-light: #bcb6ef;
  --site-primary-dark: #554793;
  --site-secondary: #5caeb1;
  --site-accent: #d0649d;
  --site-background: #f4f2ff;
  --site-surface: #fbfaff;
  --site-text-primary: #1a172c;
  --site-text-secondary: #5d5b6e;
  --site-border: rgba(92, 174, 177, 0.22);
  --site-shadow-flat: 0 1px 2px rgba(0, 0, 0, 0.05);
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: #f4f2ff;
  color: #1a172c;
  font-family: var(--bulma-family-primary);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--bulma-family-secondary);
}

.button.is-primary {
  background-color: #625898;
  border-color: #625898;
  color: #fff;
}

.button.is-primary:hover,
.button.is-primary:focus {
  background-color: #554793;
  border-color: #554793;
  color: #fff;
}

.button.is-link {
  background-color: #625898;
  color: #fff;
}

.has-text-primary {
  color: #625898 !important;
}

.has-background-primary {
  background-color: #625898 !important;
}

a {
  color: #625898;
}

a:hover {
  color: #554793;
}

.navbar-item:hover,
.navbar-item:focus {
  color: #625898;
}

.navbar,
.section,
.hero,
.footer {
  background-color: #f4f2ff;
}

.navbar {
  border-bottom: 1px solid var(--site-border);
  box-shadow: none;
}

.navbar-item img {
  max-height: 2.25rem;
}

.hero {
  border-bottom: 1px solid var(--site-border);
}

.section {
  border-bottom: 1px solid var(--site-border);
}

.footer {
  border-top: 1px solid var(--site-border);
  padding: 1.25rem 1.5rem;
}

.title.is-1,
.title.is-2,
.title.is-3 {
  letter-spacing: -0.03em;
  line-height: 0.95;
}

.title.is-1 {
  font-size: clamp(3rem, 7vw, 5.5rem);
}

.title.is-2 {
  font-size: clamp(2.25rem, 5vw, 4rem);
}

.subtitle,
.content p,
.content li,
.label,
.input,
.textarea {
  color: var(--site-text-secondary);
}

.hero-copy {
  max-width: 44rem;
}

.hero-visual-wrap {
  border: 3px solid var(--site-primary);
  box-shadow: 3px 3px 0 var(--site-primary);
  background: var(--site-surface);
}

.hero-visual-wrap img,
.service-visual,
.card-image img,
.timeline-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.stat-band {
  border-top: 1px solid var(--site-border);
  border-bottom: 1px solid var(--site-border);
  background: var(--site-surface);
}

.stat-band .column {
  border-right: 1px solid var(--site-border);
}

.stat-band .column:last-child {
  border-right: 0;
}

.stat-value {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  color: var(--site-primary);
  line-height: 1;
}

.stat-label {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--site-text-secondary);
}

.card {
  border-radius: 0;
  box-shadow: var(--site-shadow-flat);
  border: 1px solid var(--site-border);
  background: var(--site-surface);
}

.button,
.input,
.textarea,
.select select {
  border-radius: 0 !important;
}

.button {
  background: var(--site-surface);
  color: var(--site-text-primary);
  border: 3px solid var(--site-primary);
  box-shadow: 3px 3px 0 var(--site-primary);
  transition: transform 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.button:hover,
.button:focus {
  box-shadow: none;
  transform: translate(3px, 3px);
}

.button.is-primary,
.button.is-link {
  border-width: 3px;
  box-shadow: 3px 3px 0 var(--site-primary);
}

.input,
.textarea {
  background: var(--site-surface);
  border: 3px solid var(--site-primary);
  box-shadow: 3px 3px 0 var(--site-primary);
  color: var(--site-text-primary);
}

.input:focus,
.textarea:focus {
  box-shadow: none;
  border-color: var(--site-primary-dark);
}

.kicker {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.85rem;
  color: var(--site-accent);
  font-weight: 700;
}

.timeline-block,
.process-block,
.contact-panel {
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  box-shadow: var(--site-shadow-flat);
  padding: 2rem;
}

.testimonial-quote {
  font-size: 1.1rem;
  color: var(--site-text-primary);
}

.map-frame {
  width: 100%;
  min-height: 320px;
  border: 3px solid var(--site-primary);
}

.footer-row {
  align-items: center;
  min-height: 80px;
}

.footer-row p,
.footer-row a {
  font-size: 0.95rem;
}

.legal-content {
  max-width: 860px;
}

.cookie-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 40;
  background: var(--site-surface);
  border: 3px solid var(--site-primary);
  box-shadow: 3px 3px 0 var(--site-primary);
  padding: 1rem;
}

.cookie-banner.is-hidden {
  display: none;
}

.cookie-banner .buttons {
  margin-bottom: 0;
}

.logo-text {
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--site-text-primary);
}

.muted {
  color: var(--site-text-secondary);
}

@media screen and (max-width: 1023px) {
  .navbar-menu {
    border-top: 1px solid var(--site-border);
  }

  .stat-band .column {
    border-right: 0;
    border-bottom: 1px solid var(--site-border);
  }

  .stat-band .column:last-child {
    border-bottom: 0;
  }

  .footer-row {
    row-gap: 0.75rem;
    text-align: center;
  }
}
