@layer custom {
:root {
  --cnvs-themecolor: #C9154F;
  --cnvs-themecolor-rgb: 201,21,79;
  --c-ground: #F4F4F2; --c-ground-2: #FFFFFF; --c-ink: #111214; --c-muted: #5A5B60;
  --c-accent: var(--cnvs-themecolor); --c-line: #D9D9D5; --c-dark: #1B1C20; --c-dark-2: #111214;
  --space-1: 4px; --space-2: 8px; --space-3: 16px; --space-4: 24px; --space-5: 40px; --space-6: 64px; --space-7: 96px; --space-8: 140px;
  --band: 120px; --band-compact: 72px; --gutter: 32px;
  --fs-display: clamp(2.75rem, 6vw, 5.5rem); --fs-h1: clamp(2.25rem, 4.5vw, 4rem); --fs-h2: clamp(2rem, 3.5vw, 3.25rem);
  --fs-h3: 1.375rem; --fs-lead: 1.25rem; --fs-body: 1.0625rem; --fs-small: 0.9375rem; --fs-label: 0.875rem;
  --radius-s: 8px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --cnvs-body-font: 'Golos Text', sans-serif;
  --cnvs-primary-font: 'Onest', sans-serif;
  --cnvs-secondary-font: 'Onest', sans-serif;
}
body { font-family: var(--cnvs-body-font); font-size: var(--fs-body); line-height: 1.65; color: var(--c-ink); background: var(--c-ground); }
h1, h2, h3, .ha-display, .ha-h2, .ha-statement, .ha-big, .ha-foot-line { font-family: var(--cnvs-primary-font); font-weight: 500; text-wrap: balance; color: inherit; }
p { text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }

/* header */
#header.ha-header, #header.ha-header #header-wrap { background: var(--c-ground-2); }
#header.ha-header { border-bottom: 1px solid var(--c-line); }
#header.ha-header #header-wrap { border-top: 1px solid var(--c-line); }
.ha-btn { background: var(--c-accent); color: #fff; border-radius: var(--radius-s); font: 600 var(--fs-label)/1.3 var(--cnvs-primary-font); padding: 0 var(--space-4); transition: transform 160ms var(--ease-out), background-color 160ms; }
.ha-btn:hover { background: #A8103F; color: #fff; }
.ha-btn:active, .ha-btn-light:active { transform: scale(0.97); }
.ha-btn-light { background: #fff; color: var(--c-ink); border-radius: var(--radius-s); font: 600 var(--fs-label)/1.3 var(--cnvs-primary-font); padding: 0 var(--space-5); transition: transform 160ms var(--ease-out); }
#header.ha-header .ha-btn { height: 40px; line-height: 40px; }
.ha-accent .ha-btn-light, .ha-accent .ha-btn-light:hover { color: var(--c-ink); }

/* hero */
.ha-hero { position: relative; display: flex; align-items: flex-end; min-height: min(78vh, 760px); overflow: hidden; background: var(--c-dark); }
.ha-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ha-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(17, 18, 20, 0.58); }
.ha-hero-inner { position: relative; z-index: 2; padding-top: var(--band); padding-bottom: var(--band); }
.ha-display { font-size: var(--fs-display); line-height: 1.02; letter-spacing: -0.03em; color: #fff; margin: 0 0 var(--space-4); }
.ha-lead { font-size: var(--fs-lead); line-height: 1.5; max-width: 48ch; margin: 0 0 var(--space-5); }
.ha-hero .ha-lead { color: #fff; }
.ha-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.ha-actions .button { height: 52px; line-height: 52px; margin: 0; }
.ha-link { color: #fff; text-decoration: underline; text-underline-offset: 4px; font-weight: 500; }
.ha-link:hover { color: #fff; text-decoration-thickness: 2px; }

/* bands */
.ha-band { padding: var(--band) 0; margin: 0; }
.ha-compact { padding: var(--band-compact) 0; margin: 0; }
.ha-white { background: var(--c-ground-2); }
.ha-dark { background: var(--c-dark); color: #fff; }
.ha-dark-2 { background: var(--c-dark-2); color: #fff; }
.ha-accent { background: var(--c-accent); color: #fff; }
.ha-h2 { font-size: var(--fs-h2); line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 var(--space-4); }
.ha-mb { margin-bottom: var(--space-6); }
.ha-statement { font-size: var(--fs-h1); line-height: 1.08; letter-spacing: -0.025em; max-width: 22ch; margin: 0 0 var(--space-5); }
.ha-statement { max-width: 24ch; }
.ha-body-narrow { max-width: 62ch; color: var(--c-muted); }
.ha-dark .ha-body-narrow { color: rgba(255,255,255,.75); }
.ha-body-narrow::before { content: ""; display: block; width: 64px; border-top: 1px solid var(--c-line); margin-bottom: var(--space-3); }
.ha-body-narrow { margin-top: 0; }
.ha-photo { width: 100%; height: auto; border-radius: var(--radius-s); display: block; aspect-ratio: 3 / 2; object-fit: cover; }
.ha-photo-tall { aspect-ratio: 2 / 3; }
.section.ha-band, .section.ha-compact { overflow: visible; }
.ha-sticky { position: sticky; top: 120px; align-self: flex-start; }
@media (max-width: 991.98px) { .ha-sticky { position: static; } .ha-band { padding: var(--band-compact) 0; } .ha-hero-inner { padding-top: var(--band-compact); padding-bottom: var(--band-compact); } }

/* figures */
.ha-ruled { border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.ha-fig { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); }
.ha-fig + .ha-fig { border-left: 1px solid var(--c-line); }
.ha-fig strong { font: 500 var(--fs-h1)/1.05 var(--cnvs-primary-font); letter-spacing: -0.02em; }
.ha-fig span { font-size: var(--fs-small); color: var(--c-muted); }
@media (max-width: 991.98px) { .ha-fig:nth-child(3) { border-left: 0; } .ha-fig:nth-child(n+3) { border-top: 1px solid var(--c-line); } }

/* rows */
.ha-row, .ha-credit { padding: var(--space-4) 0; border-top: 1px solid var(--c-line); }
.ha-row:last-child, .ha-credit:last-child { border-bottom: 1px solid var(--c-line); }
.ha-row h3, .ha-credit h3 { font-size: var(--fs-h3); line-height: 1.3; margin: 0 0 var(--space-2); }
.ha-row p, .ha-credit p { color: var(--c-muted); margin: 0; max-width: 62ch; }
.ha-dark .ha-row, .ha-dark .ha-row:last-child { border-color: rgba(255,255,255,.2); }
.ha-dark .ha-row p { color: rgba(255,255,255,.75); }
.ha-h2 + .ha-row { margin-top: var(--space-5); }

/* cases */
.ha-case + .ha-case { margin-top: var(--space-7); }
.ha-big { font-size: clamp(4rem, 9vw, 8rem); line-height: 1; letter-spacing: -0.04em; color: #FF6B96; margin-bottom: var(--space-3); }
.ha-h3 { font-size: var(--fs-h3); line-height: 1.3; margin: 0 0 var(--space-3); color: #fff; }
.ha-case p { color: rgba(255,255,255,.8); max-width: 54ch; }
.ha-meta { font: 600 var(--fs-label)/1.3 var(--cnvs-primary-font); color: rgba(255,255,255,.7); margin: 0; }

/* tiers */
.ha-tier { background: var(--c-ground-2); border: 1px solid var(--c-line); border-radius: var(--radius-s); padding: var(--space-5); }
.ha-tier h3 { font-size: var(--fs-h3); margin: 0 0 var(--space-1); }
.ha-tier .ha-meta { color: var(--c-muted); margin-bottom: var(--space-3); }
.ha-tier p { color: var(--c-muted); }
.ha-tier .ha-fee { font: 500 var(--fs-h3)/1.3 var(--cnvs-primary-font); color: var(--c-ink); margin: var(--space-4) 0 0; }
.ha-tier-main { border-color: var(--c-ink); padding-top: calc(var(--space-5) + var(--space-6)); padding-bottom: calc(var(--space-5) + var(--space-4)); }

/* quotes */
.ha-quote { font: 500 var(--fs-h1)/1.12 var(--cnvs-primary-font); letter-spacing: -0.02em; margin: 0; max-width: 28ch; max-width: 30ch; }
.ha-quote-s { font-size: var(--fs-lead); line-height: 1.5; margin: 0; padding-top: var(--space-4); border-top: 1px solid var(--c-line); }
.ha-quote cite, .ha-quote-s cite { display: block; font: normal 400 var(--fs-small)/1.5 var(--cnvs-body-font); color: var(--c-muted); margin-top: var(--space-3); }

/* toggles */
.faqs .toggle { --cnvs-toggle-font-size: var(--fs-h3); --cnvs-toggle-bottom-margin: 0; --cnvs-toggle-header-padding: 0px; --cnvs-toggle-header-elements-padding: 0px; --cnvs-toggle-content-padding-y: 0px; border-bottom: 1px solid var(--c-line); margin: 0; }
.faqs .toggle:first-child { border-top: 1px solid var(--c-line); }
.faqs .toggle-header { flex-wrap: nowrap; align-items: center; gap: var(--space-4); padding: var(--space-4) 0; font-weight: 500; }
.faqs .toggle-title, .faqs .toggle-title.ps-1 { padding: 0 !important; font-family: var(--cnvs-primary-font); font-size: var(--fs-h3); color: var(--c-ink); }
.faqs .toggle-icon { order: 2; margin-left: auto; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 50%; background: rgba(var(--cnvs-themecolor-rgb), .1); color: var(--c-accent); flex: none; }
.faqs .toggle-active .toggle-icon { background: var(--c-accent); color: #fff; }
.faqs .toggle-content { max-width: 62ch; padding: 0 var(--space-6) var(--space-4) 0; color: var(--c-muted); }

/* contact */
.ha-accent .ha-lead { color: #fff; }
.ha-details { font-size: var(--fs-body); line-height: 2; color: #fff; }
.ha-details i { margin-right: var(--space-2); }
.ha-form label { color: #fff; font: 600 var(--fs-label)/1.3 var(--cnvs-primary-font); margin-bottom: var(--space-2); }
.ha-form .form-control:where(:not(.form-select)) { height: 52px; background: #fff; color: var(--c-ink); border: 1px solid #fff; border-radius: var(--radius-s); font-size: var(--fs-body); }
.ha-form textarea.form-control:where(:not(.form-select)) { height: auto; }
.ha-form .cnvs-form-group { margin-bottom: var(--space-4); }
.ha-btn-light { height: 52px; line-height: 52px; }

/* footer */
#footer.ha-footer { --cnvs-footer-bg: var(--c-dark); }
.ha-footer .footer-widgets-wrap { padding: var(--band) 0 var(--band-compact); }
.ha-foot-line { font-size: var(--fs-h1); line-height: 1.08; letter-spacing: -0.025em; color: #fff; max-width: 18ch; margin: 0 0 var(--space-6); }
.ha-foot-list, .ha-hours { list-style: none; margin: 0; padding: 0; color: rgba(255,255,255,.8); }
.ha-foot-list li { padding: var(--space-1) 0; }
#footer .footer-widgets-wrap a { color: rgba(255,255,255,.85); }
#footer .footer-widgets-wrap a:hover { color: #fff; text-decoration: underline; }
.ha-hours li { display: flex; justify-content: space-between; padding: var(--space-2) 0; border-top: 1px solid rgba(255,255,255,.2); font-variant-numeric: tabular-nums; }
.ha-hours li:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
#footer #copyrights { background: #111214; color: rgba(255,255,255,.75); font-size: var(--fs-small); }
#footer #copyrights a { color: #fff; text-decoration: underline; }

/* fixes */
.ha-foot-list a { overflow-wrap: anywhere; }
.ha-footer .container, .ha-foot-list { min-width: 0; max-width: 100%; }
@media (max-width: 575.98px) { #header .header-misc .button { display: none; } #logo { min-width: 0; } }
.ha-photo-wide { aspect-ratio: 21 / 8; margin-top: var(--space-6); }
#formats .ha-photo-wide { margin-top: 0; }
.ha-figure { margin: 0 0 var(--space-6); }
.ha-figure figcaption { font-size: var(--fs-small); color: var(--c-muted); margin-top: var(--space-2); }
#team, #why, #how { overflow: visible; }
#team .lg\:col-4 { align-self: flex-start; }
@media (min-width: 992px) { #team .lg\:col-4 { position: sticky; top: 120px; } }
[data-cx="sticky-steps"] .cx-step { display: grid; gap: var(--space-5); padding-block: var(--space-6); }
[data-cx="sticky-steps"] .cx-step-n { font-size: var(--fs-label); font-weight: 600; color: var(--c-accent); margin: 0 0 var(--space-3); }
[data-cx="sticky-steps"] .cx-step-text h3 { font-size: var(--fs-h3); margin: 0 0 var(--space-2); }
[data-cx="sticky-steps"] .cx-step-text p:not(.cx-step-n) { color: var(--c-muted); }
[data-cx="sticky-steps"] .cx-step-media { margin: 0; }
[data-cx="sticky-steps"] .cx-step-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-s); }
@media (min-width: 992px) {
  [data-cx="sticky-steps"] .cx-step { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); column-gap: var(--space-7); min-height: 120vh; align-items: start; padding-block: 0; }
  [data-cx="sticky-steps"] .cx-step-text { padding-block: 40vh 10vh; max-width: 34ch; }
  [data-cx="sticky-steps"] .cx-step-media { position: sticky; top: 120px; }
  [data-cx="sticky-steps"] .cx-step-media img { max-height: 70vh; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* defect fixes */
.section.ha-band, .section.ha-compact { overflow-x: clip; overflow-y: visible; }
@media (min-width: 992px) {
  [data-cx="sticky-steps"] .cx-step { min-height: 85vh; align-items: stretch; padding-block: var(--space-5); }
  [data-cx="sticky-steps"] .cx-step-text { padding-block: 0; display: flex; flex-direction: column; justify-content: center; max-width: none; }
  [data-cx="sticky-steps"] .cx-step-media { position: sticky; top: 120px; align-self: start; }
  [data-cx="sticky-steps"] .cx-step-media img { max-height: 60vh; }
}
@media (max-width: 991.98px) {
  .row > [class*=col-].ha-sticky { position: static !important; margin-bottom: var(--space-4); }
  #header.ha-header .header-misc { display: none; }
}
.ha-band .row.sm\:g-12 { --bs-gutter-x: 24px; }

/* art-direction pass */
.ha-statement { font-weight: 400; line-height: 1.08; letter-spacing: -0.03em; max-width: 22ch; }
.ha-statement strong { font-weight: 600; color: var(--c-accent); }
.ha-h2, .ha-display, .ha-foot-line, .ha-quote { line-height: 1.06; letter-spacing: -0.03em; }
.ha-h2-xl { font-size: clamp(2.75rem, 6.5vw, 5.5rem); line-height: 1.02; margin-bottom: var(--space-3); }
.ha-eyebrow { font: 600 0.8125rem/1.3 var(--cnvs-primary-font); text-transform: uppercase; letter-spacing: 0.12em; color: #A8103F; margin: 0 0 var(--space-3); }
.dark .ha-eyebrow { color: #FF8FB0; }
.ha-sub { font-size: var(--fs-lead); line-height: 1.5; color: var(--c-muted); max-width: 52ch; margin: 0 0 var(--space-5); }
.dark .ha-sub { color: rgba(255,255,255,.78); }
.ha-sub.ha-mb { margin-bottom: var(--space-6); }
.ha-fig strong { font-size: clamp(2.75rem, 5vw, 4.5rem); font-weight: 600; letter-spacing: -0.03em; }
[data-cx="sticky-steps"] .cx-step-text { position: relative; padding-left: var(--space-5); border-left: 1px solid var(--c-line); }
[data-cx="sticky-steps"] .cx-step-n::before { content: ""; position: absolute; left: -5px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--c-accent); }
@media (min-width: 992px) { #header.ha-header #header-wrap .header-row { justify-content: space-between !important; } #header.ha-header .nav-spacer { display: none; } }
@media (max-width: 991.98px) { #header.ha-header #header-wrap .header-row { justify-content: space-between !important; } }
.ha-foot-legal { margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid rgba(255,255,255,.2); font-size: var(--fs-small); color: rgba(255,255,255,.75); }
.ha-foot-legal p { margin: 0; }
.ha-foot-legal strong { color: #fff; font-weight: 600; }

/* defect pass 2 */
/* type: tight display lines, one-line stat */
.ha-statement, .ha-statement strong { line-height: 1.06; }
.ha-big { font-size: clamp(2.75rem, 5.2vw, 4.75rem); line-height: 1; white-space: nowrap; letter-spacing: -0.03em; }
/* how we work: tight steps, text top-aligned with its image */
@media (min-width: 992px) {
  [data-cx="sticky-steps"] .cx-step { min-height: 0; align-items: start; padding-block: var(--space-5); }
  [data-cx="sticky-steps"] .cx-step-text { justify-content: flex-start; align-self: start; padding-block: 0 var(--space-4); }
  [data-cx="sticky-steps"] .cx-step-media { position: static; }
  [data-cx="sticky-steps"] .cx-step-media img { aspect-ratio: 3 / 2; max-height: none; }
}
[data-cx="sticky-steps"] .cx-step-n::before { top: 4px; }
/* footer: same container as the page, column headings */
.ha-footer .container { max-width: 1320px; width: 100%; padding-inline: var(--space-4); margin-inline: auto; }
.ha-foot-h { font: 600 var(--fs-label)/1.3 var(--cnvs-primary-font); text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,.75); margin: 0 0 var(--space-3); padding-bottom: var(--space-2); border-bottom: 1px solid rgba(255,255,255,.2); }
/* pricing: equal cards; quotes without heavy rule */
.ha-tier { height: 100%; }
.ha-tier-main { border-color: var(--c-line); padding: var(--space-5); }
.ha-quote, .ha-quote-s { border-left: 0; padding-left: 0; }

/* how we work: image holds while the step scrolls; text column level with it */
@media (min-width: 992px) {
  [data-cx="sticky-steps"] .cx-step { min-height: 100vh; align-items: stretch; padding-block: var(--space-5); }
  [data-cx="sticky-steps"] .cx-step-text { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding-block: 0; }
  [data-cx="sticky-steps"] .cx-step-media { position: static; align-self: stretch; }
  [data-cx="sticky-steps"] .cx-step-media img { position: sticky; top: 120px; }
}
/* spacing: two band values only */
.section.ha-band { padding-block: var(--band); margin: 0; }
.section.ha-compact { padding-block: var(--band-compact); margin: 0; }
@media (max-width: 991.98px) { .section.ha-band { padding-block: var(--band-compact); } }
.ha-band .row.sm\:g-12 { --bs-gutter-x: var(--gutter); }

/* sticky-column autofix: Canvas forces col-* to position: relative */
@media (min-width: 992px) { .row > [class*=col-].ha-sticky { position: sticky; top: 120px; align-self: flex-start; } :is(.content-wrap, .section):has(.ha-sticky) { overflow-x: clip; overflow-y: visible; } }

/* ---- inline overrides ---- */
:where(img[width][height]){height:auto}

:is(.content-wrap,.section):has([data-cx]){overflow-x:clip;overflow-y:visible}

.content-wrap {
  padding-top: 0;
  padding-bottom: 0;
}

.section {
  margin-top: 0;
  margin-bottom: 0;
}

#copyrights a:not(.button) { text-decoration: underline !important; text-underline-offset: 0.2em; }

#contact .ha-btn-light:hover, #contact .ha-btn-light:focus-visible { background: #efedea; color: var(--c-ink); }
}
