/* Overrides on top of the original Webflow CSS so long knowledge content fits the same components. */
.kb-logo{font-family:inherit;font-weight:700;font-size:1.5rem;letter-spacing:-.02em;text-transform:lowercase;line-height:1;color:currentColor;white-space:nowrap}
.footer-logo .kb-logo{font-size:clamp(3rem,10vw,9rem)}
.case-section:not(.is-hero) .case-section_text{height:auto;min-height:100dvh;padding-top:14dvh;padding-bottom:14dvh;justify-content:flex-start}
.case-section:not(.is-hero) .w-richtext{text-align:left;max-width:42em;width:100%}
.case-section:not(.is-hero) .w-richtext h2{text-align:center;margin-bottom:.6em}
.w-richtext ul,.w-richtext ol{padding-left:1.3em;margin:0 0 1em}
.w-richtext li{margin-bottom:.45em}
.w-richtext code{font-size:.85em;background:rgba(127,127,127,.15);padding:.05em .3em;border-radius:.3em}
.w-richtext table{width:100%;border-collapse:collapse;font-size:.85em;margin:1em 0;display:block;overflow-x:auto}
.w-richtext th,.w-richtext td{border-bottom:1px solid rgba(127,127,127,.3);padding:.5em .6em;text-align:left;vertical-align:top}
.w-richtext a{text-decoration:underline;text-underline-offset:.15em}
.accordion-css__item-bottom-content .w-richtext{text-align:left}
.case-section_p{max-width:40em}
.kb-chips{display:flex;flex-wrap:wrap;gap:.5em;margin-top:2em;justify-content:center}
.kb-chips button{font:inherit;font-size:.85rem;border:1px solid currentColor;border-radius:999px;padding:.45em 1em;background:transparent;color:inherit;cursor:pointer;opacity:.7}
.kb-chips button span{opacity:.6;margin-left:.3em}
.kb-chips button.is-active,.kb-chips button:hover{opacity:1;background:#101010;color:#ffffff;border-color:#101010}
.kb-search{display:flex;flex-direction:column;gap:.6em;width:min(42em,90vw)}
.kb-search input{font:inherit;font-size:clamp(1.2rem,2.4vw,2rem);padding:.6em 1em;border-radius:999px;border:2px solid #101010;background:#fff;color:#101010;outline:none;width:100%}
.kb-search input:focus{border-color:#be1d40}
.kb-results-section{padding:3em 0 8em}
.kb-results{display:flex;flex-direction:column;gap:.4em;max-width:56em;margin:0 auto}
.kb-result{display:flex;gap:1em;align-items:flex-start;padding:1em;border-radius:1em;text-decoration:none;color:inherit;background:rgba(127,127,127,.06)}
.kb-result:hover{background:rgba(0,56,255,.08)}
.kb-result img{width:4.2em;aspect-ratio:9/16;object-fit:cover;border-radius:.5em;flex:none}
.kb-result-tag{width:4.2em;flex:none;font-size:2em;text-align:center;opacity:.5}
.kb-result-body{display:flex;flex-direction:column;gap:.3em}
.kb-result mark{background:#fee897;color:inherit;padding:0 .1em}
.kb-step-btn{margin-top:1.5em}
.kb-card-link{display:block;color:inherit;text-decoration:none}
.kb-marquee{white-space:nowrap;padding:0 1.5em;text-decoration:none;color:inherit}
.kb-intro{max-width:52em;margin:1.5em 0 2em;text-align:left}
.marquee-advanced__item-width{width:auto!important;min-width:0!important}
.kb-marquee{font-size:clamp(1rem,2vw,1.6rem)}

/* phone: long @handles / codes must wrap instead of widening the case list */
@media (max-width: 767px) {
  .case_list, .case-section, .case-section_text, .case-section_title { min-width: 0; max-width: 100%; }
  .case-section_title .heading-xxl, .case-section_text p { overflow-wrap: anywhere; }
  .case-section.is-hero .heading-xxl { font-size: clamp(2rem, 10.5vw, 3.2rem); }
}

/* ===== crimson system: pure white page, crimson accent, every fill readable ===== */
:root, .theme-light {
  --_colors---swatch--blue: #be1d40;      /* accent (was blue) */
  --_colors---swatch--off-white: #ffffff; /* page bg + light text on fills */
  --_colors---swatch--pink: #f7d9df;      /* blush: accent on the dark footer */
  --_colors---swatch--orange: #f7d9df;    /* video progress bar */
}
html, body, .page-wrapper, main, [data-barba="container"] { background-color: #ffffff; }
::selection { background: #be1d40; color: #ffffff; }
/* white cards on a white page need an edge */
.accordion-css__item, .work-card, .intro-media-m_card, .intro-media-l_card, .nav-links, .nav-close { box-shadow: 0 0 0 1px rgba(16,16,16,.10); }
.accordion-css__item-icon { background-color: #f7d9df; color: #be1d40; }
.kb-result { border-color: rgba(16,16,16,.12); }
/* text on fills follows the fill (set inline by the builder) */
.services-card_wrap * { color: inherit; }
/* titles that sit on photos stay white whatever the frame colour */
.featured-card .featured-card_h { color: #ffffff; text-shadow: 0 2px 18px rgba(0,0,0,.55); }

/* media fill their frames (crop, never stretch/squash) */
main img:not([src$=".svg"]), .img-trail-media, img.floating-media, .work-card img, .featured-card img,
.services-card img, .kb-result img, video { object-fit: cover; object-position: 50% 30%; }

/* type: Archivo (bold grotesk, Marc Jacobs-style caps) + Instrument Serif (condensed serif, CS Calory stand-in) */
h1, h2, .heading-xxl, .heading-xl, .heading-l, .heading-m, .heading-s { font-stretch: 80%; letter-spacing: -0.01em; }
.heading-alt, [class*="heading"] .heading-alt { font-family: "Instrument Serif", Georgia, serif; font-stretch: normal; letter-spacing: 0; font-weight: 400; }
body, p, .paragraph-m, .paragraph-l, .w-richtext { font-stretch: 100%; }

/* credits + legal */
.kb-credit { color: inherit; text-decoration: none; }
.kb-credit:hover { color: #be1d40; }
.kb-legal { font-size: 0.8rem; line-height: 1.5; opacity: .75; max-width: 46rem; }
.kb-legal a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* nav reads cleanly over content */
.nav { background-color: #ffffff; box-shadow: 0 1px 0 rgba(16,16,16,.08); }

/* ===== phone ===== */
@media (max-width: 767px) {
  /* reel/goal steps: content height, not a full screen each */
  .case-section:not(.is-hero) .case-section_text { min-height: 0; padding-top: 4.5rem; padding-bottom: 2.5rem; }
  .case-section:not(.is-hero) .case-section_media { height: auto; max-height: 62vh; overflow: hidden; }
  .case-section .w-richtext { font-size: 1rem; line-height: 1.55; }
  .case-section .w-richtext h2 { font-size: clamp(2rem, 9vw, 2.6rem); }
  /* tap targets */
  .w-richtext a, .kb-legal a { padding: .15em 0; }
  .kb-chips { position: relative; z-index: 1; }
  .kb-chips button { min-height: 40px; }
  .accordion-css__item-top { min-height: 52px; }
  .section-dock__list { max-width: calc(100vw - 32px); overflow-x: auto; scrollbar-width: none; }
  .section-dock__list::-webkit-scrollbar { display: none; }
  .footer-logo .kb-logo { font-size: clamp(2.4rem, 13vw, 4rem); overflow-wrap: anywhere; }
  .kb-search { width: 100%; }
}
.nav-logo { width: auto; min-width: 0; justify-content: flex-start; }
@media (max-width: 767px) { .nav-logo .kb-logo { font-size: 1.3rem; } }

/* type pairing: bold condensed caps + serif italic in sentence case (serif never in all caps) */
.heading-alt, [class*="heading"] .heading-alt, .w-richtext h2 em, h1 em, h2 em {
  font-family: "Instrument Serif", Georgia, serif; font-style: italic; font-weight: 400;
  text-transform: none; font-stretch: normal; letter-spacing: -0.01em;
  font-size: 1.12em; line-height: 0.9; vertical-align: baseline;
}
@media (max-width: 767px) { .w-richtext ol, .w-richtext ul { padding-left: 1.6em; } }

/* ===== lead capture (inline, never a popup) ===== */
.kb-sub, .kb-work { background: #ffffff; padding: clamp(3.5rem, 8vw, 7rem) 1.25rem; border-top: 1px solid rgba(16,16,16,.08); }
.kb-sub_in { max-width: 40rem; margin: 0 auto; text-align: center; }
.kb-sub_h { font-size: clamp(2.2rem, 6vw, 4rem); line-height: .95; text-transform: uppercase; font-weight: 800; margin: 0 0 .5em; color: #101010; }
.kb-sub_p { font-size: 1.05rem; line-height: 1.5; color: #3a3a3a; margin: 0 auto 1.5em; max-width: 30rem; }
.kb-form_row { display: flex; gap: .5rem; max-width: 32rem; margin: 0 auto; }
.kb-form input, .kb-form select, .kb-form textarea { font: inherit; font-size: 16px; width: 100%; padding: .9em 1.1em; border: 1.5px solid #101010; border-radius: 999px; background: #fff; color: #101010; outline: none; }
.kb-form textarea { border-radius: 1.2em; resize: vertical; }
.kb-form input:focus, .kb-form select:focus, .kb-form textarea:focus { border-color: #be1d40; box-shadow: 0 0 0 3px rgba(190,29,64,.15); }
.kb-form button { font: inherit; font-weight: 700; font-size: 1rem; white-space: nowrap; padding: .9em 1.4em; border: 0; border-radius: 999px; background: #be1d40; color: #fff; cursor: pointer; min-height: 48px; }
.kb-form button:hover { background: #6e1427; }
.kb-form button:disabled { opacity: .6; cursor: default; }
.kb-form_msg { min-height: 1.4em; margin: .8em 0 0; font-size: .95rem; color: #101010; }
.kb-form.is-error .kb-form_msg { color: #be1d40; }
.kb-form.is-done .kb-form_row, .kb-form.is-done label, .kb-form.is-done > button { display: none; }
.kb-form_msg a, .kb-sub_alt a { color: #be1d40; text-decoration: underline; text-underline-offset: 2px; }
.kb-sub_alt { margin-top: 1.6em; font-size: .95rem; color: #3a3a3a; }
.kb-sub.is-subbed .kb-form, .kb-sub.is-subbed .kb-sub_p { display: none; }
.kb-sub.is-subbed .kb-sub_h::after { content: ""; }
.kb-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.kb-work .kb-sub_in { max-width: 48rem; text-align: left; }
.kb-work_list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem 2rem; margin-bottom: 3rem; }
.kb-work_list h3 { font-size: 1.4rem; text-transform: uppercase; font-weight: 800; margin: 0 0 .2em; color: #be1d40; }
.kb-work_list p { margin: 0; color: #3a3a3a; line-height: 1.45; }
.kb-form--lead { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.kb-form--lead label { display: flex; flex-direction: column; gap: .4em; font-size: .9rem; font-weight: 600; color: #101010; }
.kb-form--lead .kb-form_full, .kb-form--lead button, .kb-form--lead .kb-form_msg { grid-column: 1 / -1; }
.kb-form--lead select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #101010 50%), linear-gradient(135deg, #101010 50%, transparent 50%); background-position: calc(100% - 1.3em) 55%, calc(100% - .95em) 55%; background-size: .35em .35em; background-repeat: no-repeat; }
@media (max-width: 767px) {
  .kb-form_row { flex-direction: column; }
  .kb-form_row button { width: 100%; }
  .kb-work_list, .kb-form--lead { grid-template-columns: 1fr; }
}
.kb-form button { height: 52px; min-height: 0; padding: 0 1.5em; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.kb-form input, .kb-form select { height: 52px; padding-top: 0; padding-bottom: 0; }
