/* wg:design-vars:start */
:root{--wg-surface:#ffffff;--wg-surface-alt:#f2f2f2;--wg-surface-inverse:#1b1b1b;--wg-ink:#1b1b1b;--wg-ink-muted:#585858;--wg-ink-inverse:#f8f8f8;--wg-primary:#a30049;--wg-primary-hover:#7e0036;--wg-primary-soft:#fff6f7;--wg-accent:#58b4a6;--wg-accent-soft:#e4f7f3;--wg-link:#7e0036;--wg-link-inverse:#ffc1cd;--wg-line:#e4e4e4;--wg-line-inverse:#424242;--wg-primary-on:#ffffff;--wg-accent-on:#090909;--wg-font-display:'Cormorant Garamond', Georgia, 'Times New Roman', serif;--wg-font-body:'Montserrat', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;--wg-radius-ui:4px;--wg-radius-card:6px;--wg-shadow-card:none;--wg-section:8rem}
/* wg:design-vars:end */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes drawRule {
  from { width: 0; }
  to { width: 100%; }
}

#cookie-banner {
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

#cookie-banner.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

#cookie-banner:not(.hidden) {
  opacity: 1;
  visibility: visible;
}

#site-header {
  transition: padding 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}

#site-header.is-scrolled {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--wg-line);
}

input,
textarea,
select {
  transition: border-color 0.25s ease, background-color 0.25s ease;
}

input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--wg-primary);
  background-color: var(--wg-surface);
}

input.error,
textarea.error,
select.error {
  border-color: #dc2626;
}

.error-message {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  color: #dc2626;
}

.success-message {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  color: #15803d;
}

.section {
  position: relative;
}

.section + .section {
  border-top: 1px solid var(--wg-line);
}

.rule-thin {
  width: 100%;
  height: 1px;
  background-color: var(--wg-line);
  border: none;
  margin: 2.5rem 0;
}

.rule-thin-inverse {
  width: 100%;
  height: 1px;
  background-color: var(--wg-line-inverse);
  border: none;
  margin: 2.5rem 0;
}

.big-numeral {
  font-family: var(--wg-font-display);
  font-size: clamp(3.5rem, 8vw, 7rem);
  line-height: 1;
  color: var(--wg-primary-soft);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.pull-quote {
  font-family: var(--wg-font-display);
  font-size: clamp(1.5rem, 2.5vw, 2.1rem);
  line-height: 1.35;
  font-style: italic;
  color: var(--wg-ink);
  border-left: 1px solid var(--wg-primary);
  padding-left: 1.5rem;
  margin: 2rem 0;
}

.pull-quote.on-dark {
  color: var(--wg-ink-inverse);
  border-left-color: var(--wg-ink-inverse);
}

.fade-in-up {
  animation: fadeInUp 0.7s ease both;
}

.fade-in {
  animation: fadeIn 0.6s ease both;
}

.eyebrow {
  position: relative;
}

a {
  transition: color 0.2s ease, opacity 0.2s ease;
}

.card img,
.img-frame img {
  transition: opacity 0.4s ease;
}

#back-to-top {
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

#back-to-top.hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
}

#back-to-top:not(.hidden) {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.accordion-content {
  transition: max-height 0.3s ease;
}

.accordion-header i {
  transition: transform 0.3s ease;
}

.accordion-header[aria-expanded="true"] i {
  transform: rotate(180deg);
}

@media print {
  #site-header,
  #mobile-menu,
  #cookie-banner,
  #back-to-top,
  footer,
  .no-print {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
  }

  .section {
    border-top: none;
    padding: 1rem 0;
  }

  a {
    text-decoration: underline;
  }
}