:root {
  --snur-ink: #101418;
  --snur-ink-soft: #2a3138;
  --snur-paper: #f5f2ec;
  --snur-paper-alt: #ece6db;
  --snur-line: #d9d1c2;
  --snur-accent: #ff4d2e;
  --snur-accent-deep: #c93317;
  --snur-gold: #d4a15b;
  --snur-muted: #5b6470;
  --snur-white: #ffffff;
  --snur-shadow-soft: 0 18px 40px rgba(16, 20, 24, 0.08);
  --snur-shadow-strong: 0 28px 60px rgba(16, 20, 24, 0.22);
  --snur-radius-lg: 26px;
  --snur-radius-md: 16px;
  --snur-radius-sm: 10px;
  --snur-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "Manrope", "Helvetica Neue", Arial, sans-serif;
  color: var(--snur-ink);
  background-color: var(--snur-paper);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

main {
  display: block;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Bebas Neue", "Manrope", Arial, sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.08;
  color: var(--snur-ink);
  margin: 0 0 0.6em;
}

h1 {
  font-size: clamp(2.5rem, 6vw, 4.6rem);
  letter-spacing: 0.01em;
}

h2 {
  font-size: clamp(1.9rem, 4vw, 3rem);
}

h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
}

p {
  margin: 0 0 1rem;
  color: var(--snur-ink-soft);
}

a {
  color: var(--snur-accent-deep);
  text-decoration: none;
  transition: color 0.2s var(--snur-ease), opacity 0.2s var(--snur-ease);
}

a:hover,
a:focus-visible {
  color: var(--snur-accent);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.snur-section {
  padding: clamp(3.5rem, 7vw, 6.5rem) 1.25rem;
  position: relative;
}

.snur-section--dark {
  background-color: var(--snur-ink);
  color: var(--snur-paper);
}

.snur-section--dark h1,
.snur-section--dark h2,
.snur-section--dark h3,
.snur-section--dark p,
.snur-section--dark li {
  color: var(--snur-paper);
}

.snur-wrap {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

.snur-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--snur-accent-deep);
  margin-bottom: 1.1rem;
}

.snur-section--dark .snur-eyebrow {
  color: var(--snur-gold);
}

.snur-eyebrow::before {
  content: "";
  width: 26px;
  height: 2px;
  background: currentColor;
  display: inline-block;
}

.snur-lead {
  font-size: clamp(1.05rem, 1.6vw, 1.22rem);
  color: var(--snur-ink-soft);
  max-width: 62ch;
}

.snur-section--dark .snur-lead {
  color: #d8d2c6;
}

.snur-hero {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: var(--snur-paper);
  padding: clamp(4rem, 9vw, 8rem) 1.25rem;
  overflow: hidden;
}

.snur-hero h1,
.snur-hero p {
  color: var(--snur-paper);
}

.snur-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: end;
}

@media (min-width: 992px) {
  .snur-hero-grid {
    grid-template-columns: 1.35fr 1fr;
    gap: 3rem;
  }
}

.snur-hero-tag {
  display: inline-block;
  padding: 0.35rem 0.9rem;
  border: 1px solid rgba(245, 242, 236, 0.4);
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--snur-gold);
  margin-bottom: 1.4rem;
}

.snur-hero-card {
  background: rgba(16, 20, 24, 0.55);
  border: 1px solid rgba(245, 242, 236, 0.18);
  border-radius: var(--snur-radius-lg);
  padding: 1.6rem 1.5rem;
  backdrop-filter: blur(6px);
}

.snur-hero-card dl {
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.55rem 1rem;
  font-size: 0.92rem;
  color: #e8e2d6;
}

.snur-hero-card dt {
  color: var(--snur-gold);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.72rem;
  align-self: center;
}

.snur-hero-card dd {
  margin: 0;
  color: #f5f2ec;
}

.snur-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
  transition: transform 0.2s var(--snur-ease), background 0.2s var(--snur-ease), color 0.2s var(--snur-ease);
  cursor: pointer;
}

.snur-btn--primary {
  background: var(--snur-accent);
  color: var(--snur-white);
}

.snur-btn--primary:hover,
.snur-btn--primary:focus-visible {
  background: var(--snur-accent-deep);
  color: var(--snur-white);
  transform: translateY(-2px);
}

.snur-btn--ghost {
  background: transparent;
  color: var(--snur-paper);
  border-color: rgba(245, 242, 236, 0.5);
}

.snur-btn--ghost:hover,
.snur-btn--ghost:focus-visible {
  background: var(--snur-paper);
  color: var(--snur-ink);
}

.snur-btn--dark {
  background: var(--snur-ink);
  color: var(--snur-paper);
}

.snur-btn--dark:hover,
.snur-btn--dark:focus-visible {
  background: var(--snur-accent-deep);
  color: var(--snur-white);
  transform: translateY(-2px);
}

.snur-grid-3 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .snur-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .snur-grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

.snur-card {
  background: var(--snur-white);
  border: 1px solid var(--snur-line);
  border-radius: var(--snur-radius-md);
  padding: 1.75rem 1.6rem;
  box-shadow: var(--snur-shadow-soft);
  transition: transform 0.25s var(--snur-ease), box-shadow 0.25s var(--snur-ease);
  height: 100%;
}

.snur-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--snur-shadow-strong);
}

.snur-card__icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--snur-accent);
  color: var(--snur-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  margin-bottom: 1.1rem;
}

.snur-card h3 {
  margin-top: 0;
}

.snur-card p {
  margin-bottom: 0;
  color: var(--snur-muted);
}

.snur-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (min-width: 768px) {
  .snur-stats {
    grid-template-columns: repeat(4, 1fr);
  }
}

.snur-stat {
  background: var(--snur-paper-alt);
  border-radius: var(--snur-radius-md);
  padding: 1.4rem 1.2rem;
  text-align: center;
  border: 1px solid var(--snur-line);
}

.snur-stat__value {
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: var(--snur-ink);
  line-height: 1;
  margin-bottom: 0.4rem;
}

.snur-stat__label {
  font-size: 0.82rem;
  color: var(--snur-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.snur-list-clean {
  list-style: none;
  padding: 0;
  margin: 0;
}

.snur-list-clean li {
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  padding: 0.6rem 0;
  border-bottom: 1px dashed var(--snur-line);
}

.snur-list-clean li:last-child {
  border-bottom: none;
}

.snur-list-clean i {
  color: var(--snur-accent);
  margin-top: 0.4rem;
}

.snur-section--dark .snur-list-clean li {
  border-bottom-color: rgba(245, 242, 236, 0.15);
}

.snur-section--dark .snur-list-clean i {
  color: var(--snur-gold);
}

.snur-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 992px) {
  .snur-split {
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
  }
}

.snur-media {
  border-radius: var(--snur-radius-lg);
  overflow: hidden;
  box-shadow: var(--snur-shadow-strong);
  aspect-ratio: 4 / 3;
}

.snur-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.snur-quote {
  border-left: 4px solid var(--snur-accent);
  padding: 0.5rem 0 0.5rem 1.5rem;
  font-size: 1.15rem;
  font-style: italic;
  color: var(--snur-ink-soft);
}

.snur-cta-band {
  background: var(--snur-ink);
  color: var(--snur-paper);
  border-radius: var(--snur-radius-lg);
  padding: clamp(2rem, 4vw, 3.2rem);
  display: grid;
  gap: 1.5rem;
  align-items: center;
}

@media (min-width: 768px) {
  .snur-cta-band {
    grid-template-columns: 1.4fr 1fr;
  }
}

.snur-cta-band h2 {
  color: var(--snur-paper);
  margin-bottom: 0.4rem;
}

.snur-cta-band p {
  color: #d8d2c6;
  margin-bottom: 0;
}

.snur-cta-band__actions {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
  justify-content: flex-start;
}

@media (min-width: 768px) {
  .snur-cta-band__actions {
    justify-content: flex-end;
  }
}

.snur-form {
  display: grid;
  gap: 1rem;
  background: var(--snur-white);
  padding: clamp(1.5rem, 3vw, 2.2rem);
  border-radius: var(--snur-radius-lg);
  border: 1px solid var(--snur-line);
  box-shadow: var(--snur-shadow-soft);
}

.snur-form__field {
  display: grid;
  gap: 0.35rem;
}

.snur-form label {
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--snur-ink-soft);
}

.snur-form input,
.snur-form textarea,
.snur-form select {
  width: 100%;
  padding: 0.85rem 1rem;
  border-radius: var(--snur-radius-sm);
  border: 1px solid var(--snur-line);
  font-family: inherit;
  font-size: 1rem;
  background: var(--snur-paper);
  color: var(--snur-ink);
  transition: border 0.2s var(--snur-ease), box-shadow 0.2s var(--snur-ease);
}

.snur-form input:focus,
.snur-form textarea:focus,
.snur-form select:focus {
  outline: none;
  border-color: var(--snur-accent);
  box-shadow: 0 0 0 3px rgba(255, 77, 46, 0.18);
}

.snur-form textarea {
  min-height: 130px;
  resize: vertical;
}

.snur-form__note {
  font-size: 0.82rem;
  color: var(--snur-muted);
  margin: 0;
}

.snur-faq {
  display: grid;
  gap: 0.75rem;
}

.snur-faq__item {
  background: var(--snur-white);
  border: 1px solid var(--snur-line);
  border-radius: var(--snur-radius-md);
  padding: 1.1rem 1.3rem;
  box-shadow: var(--snur-shadow-soft);
}

.snur-faq__item summary {
  cursor: pointer;
  font-weight: 700;
  list-style: none;
  position: relative;
  padding-right: 2rem;
  color: var(--snur-ink);
}

.snur-faq__item summary::-webkit-details-marker {
  display: none;
}

.snur-faq__item summary::after {
  content: "\f067";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  right: 0;
  top: 0;
  color: var(--snur-accent);
  transition: transform 0.2s var(--snur-ease);
}

.snur-faq__item[open] summary::after {
  transform: rotate(45deg);
}

.snur-faq__item p {
  margin: 0.8rem 0 0;
  color: var(--snur-muted);
}

.snur-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.9rem;
}

@media (min-width: 768px) {
  .snur-gallery {
    grid-template-columns: repeat(3, 1fr);
  }
}

.snur-gallery figure {
  margin: 0;
  border-radius: var(--snur-radius-md);
  overflow: hidden;
  background: var(--snur-paper-alt);
  box-shadow: var(--snur-shadow-soft);
}

.snur-gallery img {
  aspect-ratio: 1 / 1;
  width: 100%;
  object-fit: cover;
}

.snur-gallery figcaption {
  padding: 0.65rem 0.85rem;
  font-size: 0.82rem;
  color: var(--snur-muted);
  background: var(--snur-white);
}

.snur-steps {
  counter-reset: snur-step;
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 1rem;
}

.snur-steps li {
  counter-increment: snur-step;
  position: relative;
  padding: 1.1rem 1.3rem 1.1rem 4rem;
  background: var(--snur-white);
  border-radius: var(--snur-radius-md);
  border: 1px solid var(--snur-line);
  box-shadow: var(--snur-shadow-soft);
}

.snur-steps li::before {
  content: counter(snur-step, decimal-leading-zero);
  position: absolute;
  left: 1.2rem;
  top: 50%;
  transform: translateY(-50%);
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: 1.6rem;
  color: var(--snur-accent);
  line-height: 1;
}

.snur-steps strong {
  display: block;
  margin-bottom: 0.15rem;
  color: var(--snur-ink);
}

.snur-steps span {
  color: var(--snur-muted);
  font-size: 0.95rem;
}

.snur-price-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 768px) {
  .snur-price-row {
    grid-template-columns: repeat(3, 1fr);
  }
}

.snur-price {
  background: var(--snur-white);
  border: 1px solid var(--snur-line);
  border-radius: var(--snur-radius-md);
  padding: 1.6rem 1.4rem;
  box-shadow: var(--snur-shadow-soft);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.snur-price__label {
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--snur-muted);
}

.snur-price__value {
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: 2.4rem;
  color: var(--snur-ink);
  line-height: 1;
}

.snur-price__desc {
  color: var(--snur-muted);
  font-size: 0.92rem;
  margin: 0;
}

.snur-price--featured {
  background: var(--snur-ink);
  border-color: var(--snur-ink);
}

.snur-price--featured .snur-price__value,
.snur-price--featured .snur-price__label,
.snur-price--featured .snur-price__desc {
  color: var(--snur-paper);
}

.snur-price--featured .snur-price__label {
  color: var(--snur-gold);
}

.snur-team {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .snur-team {
    grid-template-columns: repeat(4, 1fr);
  }
}

.snur-team-card {
  background: var(--snur-white);
  border-radius: var(--snur-radius-md);
  overflow: hidden;
  box-shadow: var(--snur-shadow-soft);
  border: 1px solid var(--snur-line);
}

.snur-team-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  background: var(--snur-paper-alt);
}

.snur-team-card__body {
  padding: 1rem 1.1rem 1.2rem;
}

.snur-team-card__name {
  font-weight: 700;
  margin: 0 0 0.15rem;
  color: var(--snur-ink);
}

.snur-team-card__role {
  font-size: 0.82rem;
  color: var(--snur-muted);
  letter-spacing: 0.05em;
}

.snur-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

.snur-timeline::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: var(--snur-line);
}

.snur-timeline li {
  position: relative;
  padding: 0 0 1.6rem 2.6rem;
}

.snur-timeline li::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 8px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--snur-accent);
  border: 3px solid var(--snur-paper);
  box-shadow: 0 0 0 2px var(--snur-accent);
}

.snur-timeline__year {
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: 1.35rem;
  color: var(--snur-accent-deep);
  letter-spacing: 0.06em;
}

.snur-timeline__text {
  color: var(--snur-muted);
  margin: 0.1rem 0 0;
}

.snur-contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 992px) {
  .snur-contact-grid {
    grid-template-columns: 1fr 1.15fr;
  }
}

.snur-contact-info {
  display: grid;
  gap: 1rem;
}

.snur-contact-info__item {
  background: var(--snur-paper-alt);
  border: 1px solid var(--snur-line);
  border-radius: var(--snur-radius-md);
  padding: 1.1rem 1.3rem;
}

.snur-contact-info__item strong {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--snur-muted);
  margin-bottom: 0.25rem;
}

.snur-map {
  border-radius: var(--snur-radius-lg);
  overflow: hidden;
  box-shadow: var(--snur-shadow-soft);
  border: 1px solid var(--snur-line);
}

.snur-map iframe {
  width: 100%;
  height: 380px;
  border: 0;
  display: block;
}

.snur-testimonial {
  background: var(--snur-white);
  border-radius: var(--snur-radius-md);
  padding: 1.6rem 1.5rem;
  border: 1px solid var(--snur-line);
  box-shadow: var(--snur-shadow-soft);
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.snur-testimonial img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--snur-paper-alt);
}

.snur-testimonial__name {
  font-weight: 700;
  margin: 0;
  color: var(--snur-ink);
}

.snur-testimonial__role {
  font-size: 0.82rem;
  color: var(--snur-muted);
  margin: 0 0 0.5rem;
}

.snur-testimonial p.snur-testimonial__text {
  color: var(--snur-ink-soft);
  font-size: 0.95rem;
  margin: 0;
}

.snur-accordion + .snur-accordion {
  margin-top: 0.75rem;
}

.snur-divider {
  height: 1px;
  background: var(--snur-line);
  border: 0;
  margin: 2.5rem 0;
}

.snur-section--dark .snur-divider {
  background: rgba(245, 242, 236, 0.15);
}

.snur-link-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.55rem;
}

.snur-link-list a {
  color: var(--snur-ink-soft);
  font-size: 0.95rem;
}

.snur-link-list a:hover,
.snur-link-list a:focus-visible {
  color: var(--snur-accent-deep);
  text-decoration: underline;
}

.snur-badge {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 77, 46, 0.14);
  color: var(--snur-accent-deep);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.snur-section--dark .snur-badge {
  background: rgba(212, 161, 91, 0.18);
  color: var(--snur-gold);
}

.snur-legal-prose h2 {
  margin-top: 2rem;
}

.snur-legal-prose ul {
  padding-left: 1.2rem;
}

.snur-legal-prose li {
  margin-bottom: 0.4rem;
  color: var(--snur-ink-soft);
}

.snur-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s var(--snur-ease), transform 0.6s var(--snur-ease);
}

.snur-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.snur-cookie {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 1050;
  background: var(--snur-ink);
  color: #f5f2ec;
  border-radius: var(--snur-radius-lg);
  padding: 1.4rem 1.5rem;
  box-shadow: var(--snur-shadow-strong);
  border: 1px solid rgba(245, 242, 236, 0.12);
  display: grid;
  gap: 1rem;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  animation: snur-cookie-in 0.45s var(--snur-ease);
}

@media (min-width: 992px) {
  .snur-cookie {
    left: auto;
    right: 1.5rem;
    bottom: 1.5rem;
    margin-left: 0;
  }
}

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

@keyframes snur-cookie-in {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.snur-cookie__head {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.snur-cookie__icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(212, 161, 91, 0.18);
  color: var(--snur-gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.snur-cookie__title {
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: 1.35rem;
  margin: 0 0 0.15rem;
  letter-spacing: 0.05em;
  color: var(--snur-paper);
}

.snur-cookie__text {
  margin: 0;
  font-size: 0.9rem;
  color: #d8d2c6;
}

.snur-cookie__text a {
  color: var(--snur-gold);
  text-decoration: underline;
}

.snur-cookie__text a:hover,
.snur-cookie__text a:focus-visible {
  color: #f0d29a;
}

.snur-cookie__actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.snur-cookie__btn {
  padding: 0.7rem 1.2rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.88rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.2s var(--snur-ease), color 0.2s var(--snur-ease), transform 0.15s var(--snur-ease);
}

.snur-cookie__btn:active {
  transform: scale(0.98);
}

.snur-cookie__btn--ghost {
  background: transparent;
  color: #f5f2ec;
  border-color: rgba(245, 242, 236, 0.35);
}

.snur-cookie__btn--ghost:hover,
.snur-cookie__btn--ghost:focus-visible {
  background: rgba(245, 242, 236, 0.1);
}

.snur-cookie__btn--accept {
  background: var(--snur-accent);
  color: var(--snur-white);
}

.snur-cookie__btn--accept:hover,
.snur-cookie__btn--accept:focus-visible {
  background: var(--snur-accent-deep);
}

.snur-marquee {
  overflow: hidden;
  border-top: 1px solid var(--snur-line);
  border-bottom: 1px solid var(--snur-line);
  padding: 1rem 0;
  background: var(--snur-paper-alt);
}

.snur-marquee__track {
  display: flex;
  gap: 3rem;
  white-space: nowrap;
  animation: snur-marquee-scroll 26s linear infinite;
  font-family: "Bebas Neue", Arial, sans-serif;
  font-size: 1.4rem;
  letter-spacing: 0.14em;
  color: var(--snur-ink);
  text-transform: uppercase;
}

.snur-marquee__track span {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
}

.snur-marquee__track span::after {
  content: "\f44b";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--snur-accent);
  font-size: 0.9rem;
}

@keyframes snur-marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.snur-footnote {
  font-size: 0.82rem;
  color: var(--snur-muted);
}

.snur-check {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  font-size: 0.9rem;
  color: var(--snur-ink-soft);
}

.snur-check input {
  margin-top: 0.28rem;
}

.snur-scroll-hint {
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--snur-gold);
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  margin-top: 2rem;
}

.snur-scroll-hint i {
  animation: snur-bounce 1.8s ease-in-out infinite;
}

@keyframes snur-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

@media (prefers-reduced-motion: reduce) {
  .snur-marquee__track,
  .snur-scroll-hint i,
  .snur-reveal,
  .snur-cookie {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 575px) {
  .snur-cookie__actions {
    justify-content: stretch;
  }
  .snur-cookie__btn {
    flex: 1 1 auto;
  }
}

/* QA_GRID_COLUMN_FIX .snur-hero-grid.row */
.snur-hero-grid.row{--bs-gutter-x:0;--bs-gutter-y:0;margin-left:0;margin-right:0}
.snur-hero-grid.row>:is([class^="col-"],[class*=" col-"]){width:100%;max-width:100%;min-width:0;flex:none;padding-left:0;padding-right:0;margin-top:0}
/* QA_GRID_COLUMN_FIX .snur-grid-3.row */
.snur-grid-3.row{--bs-gutter-x:0;--bs-gutter-y:0;margin-left:0;margin-right:0}
.snur-grid-3.row>:is([class^="col-"],[class*=" col-"]){width:100%;max-width:100%;min-width:0;flex:none;padding-left:0;padding-right:0;margin-top:0}
/* QA_GRID_COLUMN_FIX .snur-team.row */
.snur-team.row{--bs-gutter-x:0;--bs-gutter-y:0;margin-left:0;margin-right:0}
.snur-team.row>:is([class^="col-"],[class*=" col-"]){width:100%;max-width:100%;min-width:0;flex:none;padding-left:0;padding-right:0;margin-top:0}
/* QA_GRID_COLUMN_FIX .snur-stats.row */
.snur-stats.row{--bs-gutter-x:0;--bs-gutter-y:0;margin-left:0;margin-right:0}
.snur-stats.row>:is([class^="col-"],[class*=" col-"]){width:100%;max-width:100%;min-width:0;flex:none;padding-left:0;padding-right:0;margin-top:0}
/* QA_GRID_COLUMN_FIX .snur-split.row */
.snur-split.row{--bs-gutter-x:0;--bs-gutter-y:0;margin-left:0;margin-right:0}
.snur-split.row>:is([class^="col-"],[class*=" col-"]){width:100%;max-width:100%;min-width:0;flex:none;padding-left:0;padding-right:0;margin-top:0}
/* QA_GRID_COLUMN_FIX .snur-price-row.row */
.snur-price-row.row{--bs-gutter-x:0;--bs-gutter-y:0;margin-left:0;margin-right:0}
.snur-price-row.row>:is([class^="col-"],[class*=" col-"]){width:100%;max-width:100%;min-width:0;flex:none;padding-left:0;padding-right:0;margin-top:0}

/* QA_CONTRAST_FIX: primary buttons need >=4.5:1 with white text */
.snur-btn--primary {
  background: #b8280f;
  color: #ffffff;
}

.snur-btn--primary:hover,
.snur-btn--primary:focus-visible {
  background: #8f1e0a;
  color: #ffffff;
}

.snur-cookie__btn--accept {
  background: #b8280f;
  color: #ffffff;
}

.snur-cookie__btn--accept:hover,
.snur-cookie__btn--accept:focus-visible {
  background: #8f1e0a;
  color: #ffffff;
}

/* QA_CONTRAST_FIX: ghost buttons sitting on white card surfaces need dark text */
.snur-card .snur-btn--ghost,
.bg-white .snur-btn--ghost {
  color: #101418;
  background: #ffffff;
  border-color: rgba(16, 20, 24, 0.45);
}

.snur-card .snur-btn--ghost:hover,
.snur-card .snur-btn--ghost:focus-visible,
.bg-white .snur-btn--ghost:hover,
.bg-white .snur-btn--ghost:focus-visible {
  background: #101418;
  color: #ffffff;
  border-color: #101418;
}

/* QA_CONTRAST_FIX: footer / dark section links */
.snur-section--dark a,
.snur-section--dark .snur-link-list a,
.snur-section--dark .snur-footnote a {
  color: #d4a15b;
}

.snur-section--dark a:hover,
.snur-section--dark a:focus-visible,
.snur-section--dark .snur-link-list a:hover,
.snur-section--dark .snur-link-list a:focus-visible {
  color: #f0c27b;
  text-decoration: underline;
}

.snur-section--dark .snur-btn--ghost {
  color: #f5f2ec;
  border-color: rgba(245, 242, 236, 0.6);
}

/* QA_CONTRAST_FIX: dark CTA band must not tint text inside white cards */
.snur-cta-band p {
  color: #d8d2c6;
}

.snur-cta-band .snur-card p,
.snur-cta-band .snur-card li {
  color: #5b6470;
}

.snur-cta-band li {
  color: #f2ede3;
}

/* QA_FORM_STATUS */
.snur-form__success {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1c6b3a;
}

/* ===== QA FIX: Bootstrap .row-cols-* shrinking children of custom grid containers ===== */
.snur-hero-grid.row > *,
.snur-team.row > *,
.snur-stats.row > *,
.snur-grid-3.row > *,
.snur-split.row > *,
.snur-price-row.row > * {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  flex: 0 0 auto;
  padding-left: 0;
  padding-right: 0;
  margin-top: 0;
}

/* ===== QA FIX: primary button contrast (white on #ff4d2e = 3.3:1) ===== */
.snur-btn--primary {
  background: #c93317;
  color: #ffffff;
}
.snur-btn--primary:hover,
.snur-btn--primary:focus-visible {
  background: #a52810;
  color: #ffffff;
}

/* ===== QA FIX: ghost button variant for light backgrounds ===== */
.snur-btn--ghost.snur-btn--on-light {
  color: #101418;
  border-color: rgba(16, 20, 24, 0.45);
  background: transparent;
}
.snur-btn--ghost.snur-btn--on-light:hover,
.snur-btn--ghost.snur-btn--on-light:focus-visible {
  background: #101418;
  color: #f5f2ec;
  border-color: #101418;
}

/* ===== QA FIX: link contrast inside dark sections / footer ===== */
.snur-section--dark .snur-link-list a,
.snur-section--dark .snur-list-clean a,
.snur-section--dark .snur-footnote a,
.snur-section--dark a.text-decoration-none:not(.snur-btn):not(.text-white) {
  color: #f0d29a;
}
.snur-section--dark .snur-link-list a:hover,
.snur-section--dark .snur-link-list a:focus-visible,
.snur-section--dark .snur-list-clean a:hover,
.snur-section--dark .snur-list-clean a:focus-visible,
.snur-section--dark a.text-decoration-none:not(.snur-btn):not(.text-white):hover,
.snur-section--dark a.text-decoration-none:not(.snur-btn):not(.text-white):focus-visible {
  color: #ffffff;
}

/* ===== QA FIX: stat text contrast on dark hero / dark sections ===== */
.snur-hero .snur-stat__value,
.snur-section--dark .snur-stat__value,
.snur-hero .snur-stat .snur-stat__value,
.snur-section--dark .snur-stat .snur-stat__value {
  color: #f5f2ec;
}
.snur-hero .snur-stat__label,
.snur-section--dark .snur-stat__label,
.snur-hero .snur-stat .snur-stat__label,
.snur-section--dark .snur-stat .snur-stat__label {
  color: #dcd6c9;
}

/* ================= QA FIXES: about page ================= */

/* 1. Custom display:grid containers that also carry Bootstrap row/col classes.
      Every direct child must fill its grid track and lose Bootstrap gutter padding. */
.snur-hero-grid.row > *,
.snur-team.row > *,
.snur-stats.row > *,
.snur-grid-3.row > *,
.snur-split.row > *,
.snur-price-row.row > *,
.snur-contact-grid.row > *,
.snur-gallery.row > * {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex: none;
  padding-left: 0;
  padding-right: 0;
  margin-top: 0;
}

/* 2. Keep the intended two-column reading layout for stat / team grids */
.snur-hero-grid.snur-hero-stats,
.snur-stats.snur-stats--pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.snur-team.snur-team--pair {
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .snur-team.snur-team--pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 3. Contrast: dark ink text on the brand-orange primary buttons (6.3:1) */
.snur-btn--primary {
  color: #101418;
}

.snur-btn--primary:hover,
.snur-btn--primary:focus-visible {
  color: #ffffff;
}

.snur-cookie__btn--accept {
  color: #101418;
}

.snur-cookie__btn--accept:hover,
.snur-cookie__btn--accept:focus-visible {
  color: #ffffff;
}

/* 4. Contrast: outline buttons placed on light section backgrounds */
.snur-btn--onlight {
  background: transparent;
  color: #101418;
  border-color: rgba(16, 20, 24, 0.45);
}

.snur-btn--onlight:hover,
.snur-btn--onlight:focus-visible {
  background: #101418;
  color: #f5f2ec;
  border-color: #101418;
}

/* 5. Contrast: links inside the dark footer */
.snur-section--dark .snur-link-list a,
.snur-section--dark a:not(.snur-btn) {
  color: #e8e2d6;
}

.snur-section--dark .snur-link-list a:hover,
.snur-section--dark .snur-link-list a:focus-visible,
.snur-section--dark a:not(.snur-btn):hover,
.snur-section--dark a:not(.snur-btn):focus-visible {
  color: #f0d29a;
  text-decoration: underline;
}

/* 6. Contrast: stat tiles sitting on dark photo overlays */
.snur-stat.bg-dark .snur-stat__value {
  color: #f5f2ec;
}

.snur-stat.bg-dark .snur-stat__label {
  color: #d8d2c6;
}

/* ===== QA FIX (legal pages): primary button text must stay readable on brand orange ===== */
/* White on #c93317 = 5.3:1, so override the earlier dark-ink button text rule. */
.snur-btn--primary {
  background: #c93317;
  color: #ffffff;
}
.snur-btn--primary:hover,
.snur-btn--primary:focus-visible {
  background: #a52810;
  color: #ffffff;
}

.snur-cookie__btn--accept {
  background: #c93317;
  color: #ffffff;
}
.snur-cookie__btn--accept:hover,
.snur-cookie__btn--accept:focus-visible {
  background: #a52810;
  color: #ffffff;
}

/* ===== QA FIX: links inside the dark utility bar of the header ===== */
header .bg-dark a:not(.snur-btn),
header .bg-dark a:not(.snur-btn):hover,
header .bg-dark a:not(.snur-btn):focus-visible {
  color: #ffffff;
  text-decoration: none;
}
header .bg-dark a:not(.snur-btn):hover,
header .bg-dark a:not(.snur-btn):focus-visible {
  text-decoration: underline;
}

/* ================= QA FIXES: homepage contrast + card layout ================= */

/* Hero section needs a dark backdrop so white copy never falls back onto white */
.snur-hero {
  background-color: #101418;
}

/* Hero carousel card: Bootstrap .bg-white was turning it white while the
   card copy is meant to be light. Force the intended dark card. */
.snur-hero-card {
  background-color: rgba(16, 20, 24, 0.9) !important;
}
.snur-hero-card h2,
.snur-hero-card h3,
.snur-hero-card .h4 {
  color: #ffffff !important;
}
.snur-hero-card p {
  color: #f2ede3 !important;
}
.snur-hero-card .snur-badge {
  background-color: rgba(212, 161, 91, 0.22) !important;
  color: #f8e7c4 !important;
}
.snur-hero-card .snur-btn--dark {
  background-color: #f5f2ec !important;
  color: #101418 !important;
}
.snur-hero-card .snur-btn--dark:hover,
.snur-hero-card .snur-btn--dark:focus-visible {
  background-color: #ffffff !important;
  color: #101418 !important;
}

/* Primary buttons: white text on deep accent (>= 7:1) */
.snur-btn--primary {
  background-color: #a8280f !important;
  color: #ffffff !important;
}
.snur-btn--primary:hover,
.snur-btn--primary:focus-visible {
  background-color: #8a1f0a !important;
  color: #ffffff !important;
}

.snur-cookie__btn--accept {
  background-color: #a8280f !important;
  color: #ffffff !important;
}
.snur-cookie__btn--accept:hover,
.snur-cookie__btn--accept:focus-visible {
  background-color: #8a1f0a !important;
  color: #ffffff !important;
}

/* Header top bar sits on .bg-dark: default link colour was unreadable */
header .bg-dark a,
header .bg-dark a.text-white,
header .bg-dark a.text-decoration-none {
  color: #f0d29a !important;
}
header .bg-dark a:hover,
header .bg-dark a:focus-visible {
  color: #ffffff !important;
  text-decoration: underline;
}

/* Newsletter note sits inside the dark CTA band but on a white form card */
.snur-cta-band .snur-form p,
.snur-cta-band .snur-form .snur-form__note {
  color: #5b6470 !important;
}

/* Testimonials: stack the quote above the author instead of side by side,
   which was squeezing the paragraph into a narrow column and spilling. */
.snur-testimonial {
  flex-direction: column;
}
.snur-testimonial p.snur-testimonial__text {
  min-width: 0;
  overflow-wrap: break-word;
}

/* ===== QA FIX: gold micro-copy on dark photo heroes needs >= 4.5:1 ===== */
.snur-hero .snur-hero-tag,
.snur-hero .snur-scroll-hint,
.snur-hero-card dt {
  color: #f2dcae;
}
.snur-hero .snur-hero-tag {
  border-color: rgba(245, 242, 236, 0.55);
}
.snur-hero-card dd,
.snur-hero-card dl {
  color: #f7f3ea;
}

/* ===== QA FIX: AOS is loaded but never initialized, so [data-aos] elements
   stayed at opacity:0 and left the services section as a blank block.
   Ensure animated blocks are visible; animation is additive when AOS runs. ===== */
html:not(.aos-init) [data-aos] {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* ===== QA FIX: services (pricing-style) .row is a custom grid ancestor with
   Bootstrap column children. The .row display:flex only applies at >=576px, so on
   mobile each .col-lg-6 became a 100%-wide grid item and Bootstrap's
   width:50%/max-width:50% + margin-top gutter rules shrank/fragmented the cards.
   Force full-width single-column stacking below the lg breakpoint. ===== */
@media (max-width: 991.98px) {
  .snur-section .row.g-4 > [class^="col-"],
  .snur-section .row.g-4 > [class*=" col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .snur-section .row.g-4 > [class^="col-"]:not(:first-child),
  .snur-section .row.g-4 > [class*=" col-"]:not(:first-child) {
    margin-top: 1.5rem;
  }

  .snur-section .row.g-4 > [class^="col-"] > .snur-card,
  .snur-section .row.g-4 > [class*=" col-"] > .snur-card {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* ===== QA FIX: hero body paragraph was clipped by the hero card's overflow:hidden
   and overlapped by the fixed cookie banner on short desktop viewports.
   Give the hero content column room so the full paragraph is visible and the
   actions sit above the bottom edge. ===== */
.snur-hero {
  padding-bottom: clamp(6rem, 12vw, 10rem);
}

.snur-hero .snur-wrap {
  position: relative;
  z-index: 1;
}

.snur-hero .col-lg-6 > .snur-lead {
  overflow: visible;
  display: block;
}

@media (min-width: 992px) {
  .snur-hero .row.align-items-center.g-5 {
    row-gap: 0;
  }

  .snur-hero .col-lg-6 > .snur-lead {
    max-width: 46ch;
    margin-bottom: 1.75rem;
  }
}

/* ===== QA CONTRAST FIX: .snur-eyebrow on light section backdrops =====
   The deep accent (#c93317) only reaches ~4.2:1 against the warm paper /
   photo-tinted light sections. Darken the same accent hue for eyebrows that
   sit on light sections only; hero and dark-section eyebrows are untouched. */
.snur-section:not(.snur-section--dark):not(.snur-hero) .snur-eyebrow,
.snur-section:not(.snur-section--dark):not(.snur-hero) .snur-eyebrow.text-white {
  color: #a52810;
}

/* ===== QA CONTRAST FIX: .snur-badge on light card backdrops =====
   #c93317 text on rgba(255, 77, 46, 0.14) over white only reaches ~4.45:1.
   Darken the same accent hue for badges on light surfaces so the label
   clears 4.5:1; badges inside dark sections / the hero card are untouched. */
.snur-card .snur-badge,
.snur-section:not(.snur-section--dark):not(.snur-hero) .snur-badge {
  color: #a52810;
}
.snur-section--dark .snur-card .snur-badge,
.snur-hero .snur-card .snur-badge {
  color: var(--snur-gold);
}
.snur-hero .snur-hero-card .snur-badge {
  color: #f8e7c4 !important;
}
