*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-white);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 450;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
body.is-menu-open { overflow: hidden; }
main { display: block; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 0.13em; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 720;
  line-height: 0.98;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
h1, .heading-style-h1 { font-size: clamp(3.4rem, 8vw, 7.8rem); }
h2, .heading-style-h2 { font-size: clamp(2.35rem, 5.2vw, 4.8rem); }
h3, .heading-style-h3 { font-size: clamp(1.45rem, 2.4vw, 2.1rem); line-height: 1.08; }
h4, .heading-style-h4 { font-size: 1.35rem; line-height: 1.15; }
h5, .heading-style-h5 { font-size: 1.1rem; line-height: 1.2; }
h6, .heading-style-h6 { font-size: 0.95rem; line-height: 1.2; }
p { margin: 0; }
ul, ol { margin: 0; }
blockquote { margin: 0; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }

.page-wrapper { min-height: 100vh; overflow: clip; }
.main-wrapper { position: relative; }
.container-small, .container-medium, .container-large, .container-xlarge {
  width: min(100% - (2 * var(--page-gutter)), var(--container-xlarge));
  margin-inline: auto;
}
.container-small { max-width: var(--container-small); }
.container-medium { max-width: var(--container-medium); }
.container-large { max-width: var(--container-large); }
.container-xlarge { max-width: var(--container-xlarge); }
.padding-global { padding-inline: var(--page-gutter); }
.padding-section-small { padding-block: clamp(3.5rem, 7vw, 6rem); }
.padding-section-medium { padding-block: clamp(4.5rem, 9vw, 8rem); }
.padding-section-large { padding-block: clamp(5.5rem, 11vw, 10rem); }
.padding-vertical { padding-inline: 0; }
.text-size-large { font-size: clamp(1.1rem, 1.8vw, 1.35rem); line-height: 1.55; }
.text-size-medium { font-size: 1rem; }
.text-size-small { font-size: 0.875rem; }
.text-size-tiny { font-size: 0.75rem; }
.text-style-label {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}
.text-style-muted { color: var(--color-muted); }
.text-style-allcaps { text-transform: uppercase; }
.text-style-nowrap { white-space: nowrap; }
.text-align-left { text-align: left; }
.text-align-center { text-align: center; }
.text-align-right { text-align: right; }
.text-color-white { color: var(--color-white); }
.text-color-black { color: var(--color-ink); }
.background-color-white { background: var(--color-white); }
.background-color-black { color: var(--color-white); background: var(--color-ink); }
.background-color-petal { background: var(--color-paper); }
.background-color-dark { color: var(--color-white); background: var(--color-ink); }
.background-color-dark a { color: inherit; }
.color-scheme-1 { color: var(--color-scheme-1--text); background: var(--color-scheme-1--background); }
.color-scheme-2 { color: var(--color-scheme-2--text); background: var(--color-scheme-2--background); }
.color-scheme-3 { color: var(--color-scheme-3--text); background: var(--color-scheme-3--background); }

.button, .w-button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  padding: 0.82rem 1.3rem;
  border: 1px solid var(--color-rose);
  border-radius: var(--radius-small);
  color: var(--color-white);
  background: var(--color-rose);
  font-size: 0.82rem;
  font-weight: 720;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform 180ms ease, background 180ms ease, border-color 180ms ease;
}
.button:hover, .w-button:hover { color: var(--color-white); background: var(--color-rose-dark); border-color: var(--color-rose-dark); transform: translateY(-2px); text-decoration: none; }
.button.is-secondary { color: currentColor; background: transparent; border-color: currentColor; }
.button.is-secondary:hover { color: var(--color-white); background: var(--color-ink); border-color: var(--color-ink); }
.background-color-dark .button.is-secondary, .section_home-hero .button.is-secondary { color: var(--color-white); border-color: #6f626c; }
.background-color-dark .button.is-secondary:hover, .section_home-hero .button.is-secondary:hover { background: var(--color-white); border-color: var(--color-white); color: var(--color-ink); }
.button.is-light { color: var(--color-ink); background: var(--color-white); border-color: var(--color-white); }
.button.is-light:hover { color: var(--color-white); background: var(--color-ink); border-color: var(--color-ink); }
.button.is-small { min-height: 2.6rem; padding: 0.65rem 1rem; font-size: 0.72rem; }
.button.is-disabled, .button[disabled] { cursor: not-allowed; opacity: 0.48; transform: none; }
.button_group { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }

.form_input, .w-input, .w-select, input:not([type="checkbox"]):not([type="radio"]), textarea, select {
  width: 100%; min-height: 3rem; padding: 0.75rem 0.9rem; color: var(--color-ink); background: var(--color-white); border: 1px solid var(--color-line); border-radius: var(--radius-small);
}
textarea { min-height: 8rem; resize: vertical; }
.form_input:focus, .w-input:focus, .w-select:focus, input:focus, textarea:focus, select:focus { border-color: var(--color-ink); outline: 3px solid rgba(245, 184, 65, 0.5); }
.form_message-success { padding: 1rem; color: var(--color-sage-ink); background: var(--color-sage); }
.form_message-error { padding: 1rem; color: var(--feedback--error-ink); background: #fce6eb; }

.icon-height-xxsmall { height: 1rem; }
.icon-height-xsmall { height: 1.5rem; }
.icon-height-small { height: 2rem; }
.icon-height-medium { height: 3rem; }
.icon-height-large { height: 4rem; }
.icon-height-xlarge { height: 6rem; }
.icon-height-custom1 { height: 8rem; }
[class*="icon-1x1-"] { aspect-ratio: 1; object-fit: contain; }
.icon-1x1-xxsmall { width: 1rem; }
.icon-1x1-xsmall { width: 1.5rem; }
.icon-1x1-small { width: 2rem; }
.icon-1x1-medium { width: 3rem; }
.icon-1x1-large { width: 4rem; }
.icon-1x1-xlarge { width: 6rem; }
.icon-1x1-custom1 { width: 8rem; }
.aspect-ratio-square { aspect-ratio: 1; }
.aspect-ratio-portrait { aspect-ratio: 3 / 4; }
.aspect-ratio-landscape { aspect-ratio: 4 / 3; }
.aspect-ratio-widescreen { aspect-ratio: 16 / 9; }
.overflow-hidden { overflow: hidden; }
.overflow-auto { overflow: auto; }
.overflow-scroll { overflow: scroll; }
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }
.position-relative { position: relative; }
.position-absolute { position: absolute; }
.display-none, .hide { display: none !important; }
.display-block { display: block; }
.display-inlineflex { display: inline-flex; }
.align-center { margin-inline: auto; }
.z-index-1 { position: relative; z-index: 1; }
.z-index-2 { position: relative; z-index: 2; }
.margin-top-auto { margin-top: auto; }
.inherit-color { color: inherit; }

@media (prefers-reduced-motion: no-preference) {
  [data-reveal] { opacity: 0; transform: translateY(1.4rem); transition: opacity 700ms cubic-bezier(.2,.7,.2,1), transform 700ms cubic-bezier(.2,.7,.2,1); }
  [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
}

@media (max-width: 767px) {
  .button_group { align-items: stretch; }
  .button_group .button { flex: 1 1 11rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
