:root {
  --section-border: rgba(85, 85, 85, 0.18);
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--color-background);
  color: var(--color-text-primary);
  font-family: var(--font-body);
}

a,
button {
  transition: transform 180ms ease, color 180ms ease, background-color 180ms ease, border-color 180ms ease, opacity 180ms ease;
}

a:hover,
a:focus-visible,
button:hover,
button:focus-visible {
  transform: scale(1.02);
}

img,
input,
textarea,
select,
button,
.rounded,
.rounded-sm,
.rounded-md,
.rounded-lg,
.rounded-xl,
.rounded-2xl,
.rounded-3xl {
  border-radius: 0 !important;
  box-shadow: none !important;
}

section {
  border-top: 1px solid var(--section-border);
}

section:first-of-type {
  border-top: 0;
}

.site-shell,
.site-card,
.process-card,
.info-card,
.trust-card,
.contact-panel,
.footer-panel,
.cookie-banner,
.map-frame,
.content-block {
  border: 1px solid var(--section-border);
  box-shadow: none;
  border-radius: 0;
}

.btn-pill,
.button-pill,
.cookie-banner button,
form button,
a.cta-link {
  border-radius: 9999px !important;
  box-shadow: none !important;
}

.btn-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--color-primary);
  color: #ffffff;
  padding: 0.9rem 1.35rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--color-primary);
}

.btn-pill:hover,
.btn-pill:focus-visible {
  background: var(--color-primary-light);
  border-color: var(--color-primary-light);
}

.btn-secondary {
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  background: var(--color-surface);
}

.nav-link {
  position: relative;
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.2rem;
  width: 100%;
  height: 1px;
  background: var(--color-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}

.nav-link:hover::after,
.nav-link:focus-visible::after {
  transform: scaleX(1);
}

.alt-surface {
  background: var(--color-surface);
}

.logo-mark {
  width: 2.75rem;
  height: 2.75rem;
  object-fit: cover;
}

.hero-image,
.section-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.map-frame iframe {
  width: 100%;
  min-height: 320px;
  border: 0;
}

.cookie-banner {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 50;
  max-width: 24rem;
  background: var(--color-background);
  padding: 1rem;
}

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

.footer-link,
.inline-link {
  color: var(--color-text-secondary);
  text-decoration: none;
}

.footer-link:hover,
.footer-link:focus-visible,
.inline-link:hover,
.inline-link:focus-visible {
  color: var(--color-accent);
}

@media (max-width: 767px) {
  .cookie-banner {
    left: 1rem;
    max-width: none;
  }
}
