/* Kelrosa global design system — canonical responsive type, buttons and brand behavior. */
:root{
  --kr-h1:var(--kr-type-h1);
  --kr-h2:var(--kr-type-h2);
  --kr-h3:var(--kr-type-h3);
  --kr-h4:var(--kr-type-h4);
  --kr-h5:19px;
  --kr-h6:15px;
}

body{
  color:var(--kr-slate);
  font-size:var(--kr-type-body);
  line-height:var(--kr-line-body);
}

body :is(h1,h2,h3,h4,h5,h6){
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--kr-ink);
  font-weight:650;
  text-wrap:balance;
}
body .site-main h1{font-size:var(--kr-h1);line-height:var(--kr-line-h1);letter-spacing:-.048em}
body .site-main h2{font-size:var(--kr-h2);line-height:var(--kr-line-h2);letter-spacing:-.038em}
body .site-main h3{font-size:var(--kr-h3);line-height:var(--kr-line-h3);letter-spacing:-.026em}
body .site-main h4{font-size:var(--kr-h4);line-height:1.24;letter-spacing:-.02em}
body .site-main h5{font-size:var(--kr-h5);line-height:1.32;letter-spacing:-.015em}
body .site-main h6{font-size:var(--kr-h6);line-height:1.4;letter-spacing:.04em}

/* Reusable text roles. */
body .site-main :is(.section-description,.kr-lead){font-size:var(--kr-type-body-lg);line-height:1.68}
body .site-main :is(.kr-kicker,.eyebrow){font-size:var(--kr-type-label);line-height:1.4;color:var(--kr-brand)}
body .site-main .kr-heading-limit{max-width:var(--kr-heading-max)}
body .site-main .kr-copy-limit{max-width:var(--kr-copy-max)}

/* Component type scale: utility headings stay below primary section headings. */
body .site-main .kr-hero__sheet h2{font-size:clamp(28px,2vw,36px);line-height:1.08}
body .site-main .kr-card h3{font-size:var(--kr-h3);line-height:var(--kr-line-h3)}
body .site-main .kr-process__step h3{font-size:clamp(22px,1.5vw,27px);line-height:1.18}
body .site-main .kr-stage h3{font-size:clamp(24px,1.8vw,30px);line-height:1.14}
body .site-main .kr-contact-route h3{font-size:clamp(22px,1.5vw,27px);line-height:1.18}
body .site-main :is(.kr-blog-card,.kr-product-card) h2{font-size:clamp(23px,1.6vw,29px);line-height:1.14}
body .site-main .kr-form-card h2{font-size:clamp(34px,2.8vw,46px);line-height:1.06}
body .site-main .kr-home-process__item strong{font-size:clamp(22px,1.5vw,27px);line-height:1.16}

body :is(.kr-section--ink,.kr-callout,.kr-home-partner,.kr-home-cta__panel,.site-footer) :is(h1,h2,h3,h4,h5,h6){color:#fff}
body .kr-visual-panel figcaption :is(h1,h2,h3,h4,h5,h6),body .kr-hero__sheet :is(h1,h2,h3,h4,h5,h6){color:var(--kr-ink)}

body :is(.button,button.button,input[type=submit]){
  min-height:52px;
  padding:14px 24px;
  border:1px solid var(--kr-primary);
  border-radius:8px;
  background:var(--kr-primary);
  color:#fff;
  font-size:14px;
  font-weight:780;
  line-height:1.1;
  box-shadow:0 9px 22px rgba(88,169,79,.12);
}
body :is(.button,button.button,input[type=submit]):is(:hover,:focus-visible){
  background:var(--kr-primary-hover);
  border-color:var(--kr-primary-hover);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(88,169,79,.18);
}
body .button--ghost{background:rgba(255,255,255,.5);border-color:rgba(23,29,41,.16);color:var(--kr-primary);box-shadow:none}
body .button--ghost:is(:hover,:focus-visible){background:#fff;border-color:var(--kr-primary);color:var(--kr-primary)}
body :is(.kr-section--ink,.kr-callout) .button:not(.button--ghost){background:#fff;border-color:#fff;color:var(--kr-primary)}
body :is(.kr-section--ink,.kr-callout) .button:not(.button--ghost):is(:hover,:focus-visible){background:var(--kr-aqua);border-color:var(--kr-aqua);color:var(--kr-primary)}
.button>[aria-hidden="true"],.header-cta>[aria-hidden="true"],.mobile-menu-action .button>[aria-hidden="true"]{display:none!important}
.button::before,.button::after,button.button::before,button.button::after,input[type=submit]::before,input[type=submit]::after{content:none!important}

body .kr-section--ink{background:var(--kr-deep)}
body .kr-format-card>span,body .nav-links .current{background:var(--kr-primary);border-color:var(--kr-primary);color:#fff}

@media(max-width:767px){
  body{font-size:var(--kr-type-body)}
  body :is(.button,button.button,input[type=submit]){width:100%}
}
