

.sprite{ display:none; }
.ico{
  width:1em; height:1em; fill:currentColor;
  flex-shrink:0; vertical-align:-0.125em;
  transition:transform var(--dur) var(--ease);
}
.ico-box .ico{ width:1em; height:1em; }

*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 16px);
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--text-body-sm);
  line-height:1.5;
  letter-spacing:var(--tracking-body-sm);
  color:var(--text);
  background:var(--canvas);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; transition:color var(--dur) var(--ease); }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; border:0; background:none; color:inherit; }
input,select,textarea{ font:inherit; color:inherit; }
p{ margin:0 0 var(--space-16); }

h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  color:var(--heading);
  font-weight:var(--fw-semibold);
  line-height:1.12;
  letter-spacing:var(--tracking-heading);
  margin:0 0 var(--space-16);
}
::selection{ background:var(--brand-green); color:#fff; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.sec-sub{
  display:block;
  font-family:var(--font-body);
  font-size:var(--text-eyebrow);
  font-weight:var(--fw-bold);
  letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:var(--space-12);
}

.sec-title{
  font-size:clamp(34px, 5.2vw, 64px);
  font-weight:var(--fw-semibold);
  line-height:1.08;
  letter-spacing:var(--tracking-heading);
  margin-bottom:var(--space-20);
}
.sec-title--light{ color:#fff; }

.sec-title em{ font-style:normal; color:var(--action-text); }
.sec-title--light em,
.hero__title em{ font-style:normal; color:var(--brand-glow); }

.sec-desc{
  font-size:var(--text-body);
  line-height:1.56;
  letter-spacing:var(--tracking-body);
  max-width:640px; margin-inline:auto;
}
.sec-head{ margin-bottom:var(--space-48); }
.sec-head--center{ text-align:center; }

.btn{
  --btn-bg:var(--action-bg);
  --btn-fg:var(--action-fg);
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-8);
  font-family:var(--font-body);
  font-size:var(--text-body-sm);
  font-weight:var(--fw-bold);
  letter-spacing:-0.006em;
  padding:var(--space-20) var(--space-40);
  border-radius:var(--radius-button);
  background:var(--btn-bg); color:var(--btn-fg);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease),
             box-shadow var(--dur) var(--ease);
  white-space:nowrap; text-align:center;
}
.btn:hover{ background:var(--brand-abyss); color:#fff; }

.btn--primary:hover{ background:var(--action-bg-hover); color:var(--action-fg-hover); }

.hero .btn--primary,
.error-page .btn--primary{ --btn-bg:var(--brand-vivid); --btn-fg:var(--ink-deep); }
.hero .btn--primary:hover,
.error-page .btn--primary:hover{ background:var(--brand-glow); color:var(--ink-deep); }
.btn:focus-visible{ box-shadow:var(--shadow-focus); }
.btn .ico{ font-size:13px; }

.btn--primary{ --btn-bg:var(--action-bg); --btn-fg:var(--action-fg); }

.btn--ghost{
  --btn-bg:transparent; --btn-fg:var(--brand-abyss);
}
.btn--ghost:hover{ background:var(--wash); color:var(--brand-green); }

.btn--light{ --btn-bg:var(--brand-vivid); --btn-fg:var(--brand-abyss); }
.btn--light:hover{ background:var(--brand-green); color:#fff; }

.btn--outline-light{
  --btn-bg:transparent; --btn-fg:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
}
.btn--outline-light:hover{ background:#fff; color:var(--brand-abyss); }

.btn--lg{ padding:21px var(--space-48) 22px; font-size:var(--text-body); }
.btn--block{ display:flex; width:100%; }
