
:root {
  --ink: #1f2520;
  --muted: #657066;
  --paper: #fbf8f1;
  --paper-2: #f2eee5;
  --stone: #d7cec0;
  --lichen: #5f7c5d;
  --lichen-dark: #405c42;
  --terracotta: #b86f4d;
  --rope: #dcae49;
  --white: #fffdf7;
  --shadow: 0 24px 80px rgba(31, 37, 32, .14);
  --radius: 26px;
  --radius-sm: 16px;
  --max: 1180px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; }
h1, h2, h3 { line-height: 1.06; letter-spacing: -.035em; margin: 0 0 1rem; }
h1 { font-size: clamp(3rem, 8vw, 6.9rem); max-width: 11ch; }
h2 { font-size: clamp(2rem, 4vw, 4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); }
.lead { font-size: clamp(1.15rem, 2vw, 1.45rem); color: #3f493f; max-width: 72ch; }
.eyebrow {
  color: var(--terracotta);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: .78rem;
  font-weight: 800;
  margin-bottom: .8rem;
}
.skip-link {
  position: absolute;
  left: 1rem;
  top: -10rem;
  background: var(--ink);
  color: white;
  padding: .75rem 1rem;
  border-radius: 999px;
  z-index: 10;
}
.skip-link:focus { top: 1rem; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: .75rem clamp(1rem, 3vw, 2rem);
  background: rgba(251,248,241,.86);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(31,37,32,.08);
}
.brand { display: inline-flex; align-items: center; gap: .75rem; min-width: max-content; }
.brand img { border-radius: 999px; }
.brand strong { display: block; font-size: 1.08rem; letter-spacing: -.02em; }
.brand small { display: block; color: var(--muted); font-size: .78rem; line-height: 1.1; }
.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  flex-wrap: wrap;
}
.site-nav a {
  padding: .68rem .8rem;
  border-radius: 999px;
  font-size: .93rem;
  color: #344038;
}
.site-nav a:hover, .site-nav a.active { background: var(--paper-2); color: var(--ink); }
.language-switcher {
  display: flex;
  gap: .35rem;
  background: white;
  border: 1px solid rgba(31,37,32,.08);
  padding: .25rem;
  border-radius: 999px;
  box-shadow: 0 12px 30px rgba(31,37,32,.05);
}
.flag {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .35rem .5rem;
  border-radius: 999px;
  font-size: .82rem;
}
.flag.active { background: var(--ink); color: white; }
.menu-toggle {
  display: none;
  appearance: none;
  border: 1px solid rgba(31,37,32,.14);
  background: white;
  border-radius: 999px;
  padding: .62rem .95rem;
  font-weight: 800;
}
main { overflow: hidden; }
.hero, .page-hero {
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(3rem, 8vw, 7rem) clamp(1rem, 3vw, 2rem) clamp(2rem, 6vw, 5rem);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.page-hero.small { grid-template-columns: 1fr minmax(280px, .65fr); }
.hero-copy { position: relative; z-index: 1; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: white;
  padding: .9rem 1.25rem;
  font-weight: 850;
  box-shadow: 0 14px 30px rgba(31,37,32,.16);
  cursor: pointer;
}
.button:hover { transform: translateY(-1px); }
.button.secondary { background: white; color: var(--ink); border: 1px solid rgba(31,37,32,.12); box-shadow: none; }
.button.light { background: var(--white); color: var(--ink); }
.text-link { color: var(--lichen-dark); font-weight: 900; }
.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
  margin-top: 2rem;
}
.proof-grid span {
  background: white;
  border: 1px solid rgba(31,37,32,.08);
  border-radius: 18px;
  padding: .9rem;
  color: #3f493f;
  font-weight: 750;
  box-shadow: 0 16px 40px rgba(31,37,32,.04);
}
.hero-media {
  position: relative;
  min-height: 460px;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  background: var(--stone);
}
.hero-media > img, .hero-media picture, .hero-media picture img {
  width: 100%;
  height: 100%;
  min-height: 460px;
  object-fit: cover;
}
.floating-card {
  position: absolute;
  left: 1.2rem;
  bottom: 1.2rem;
  right: 1.2rem;
  padding: 1rem 1.1rem;
  border-radius: 20px;
  background: rgba(255,253,247,.9);
  backdrop-filter: blur(12px);
  box-shadow: 0 20px 40px rgba(0,0,0,.14);
}
.floating-card strong { display: block; font-size: 1.25rem; }
.floating-card span { color: var(--muted); }
.section {
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 5.5rem) clamp(1rem, 3vw, 2rem);
}
.section-head { max-width: 760px; margin-bottom: 2rem; }
.section-head p:not(.eyebrow) { color: var(--muted); font-size: 1.12rem; }
.feature-grid, .three-columns, .info-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.three-columns, .info-grid { grid-template-columns: repeat(3, 1fr); }
.feature-card {
  display: block;
  min-height: 235px;
  padding: 1.35rem;
  border-radius: var(--radius-sm);
  background: var(--white);
  border: 1px solid rgba(31,37,32,.08);
  box-shadow: 0 18px 50px rgba(31,37,32,.05);
}
.feature-card:hover { transform: translateY(-2px); }
.feature-icon {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px;
  background: var(--paper-2);
  color: var(--terracotta);
  font-weight: 900;
  margin-bottom: 1.2rem;
}
.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .43fr);
  gap: 2rem;
  align-items: start;
}
.split.reverse { grid-template-columns: minmax(320px, .48fr) minmax(0, 1fr); }
.sticky-note, .resource-card {
  background: var(--lichen-dark);
  color: white;
  border-radius: var(--radius);
  padding: 1.25rem;
  box-shadow: var(--shadow);
}
.sticky-note .media-card { margin: 0 0 1.25rem; }
.sticky-note p, .sticky-note span { color: rgba(255,255,255,.78); }
.media-card {
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: var(--paper-2);
  margin: 0;
}
.media-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.media-card figcaption { padding: .75rem 1rem; color: var(--muted); font-size: .9rem; }
.tick-list {
  list-style: none;
  padding: 0; margin: 1rem 0 0;
  display: grid; gap: .9rem;
}
.tick-list li {
  position: relative;
  padding-left: 1.8rem;
}
.tick-list li:before {
  content: "✓";
  position: absolute;
  left: 0; top: 0;
  color: var(--rope);
  font-weight: 900;
}
.tick-list strong { display: block; }
.tick-list.big li { background: white; padding: 1rem 1rem 1rem 2.8rem; border-radius: 16px; border: 1px solid rgba(31,37,32,.08); }
.tick-list.big li:before { left: 1rem; top: 1rem; }
.tick-list.big span { color: var(--muted); }
.event-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.event-grid.compact { grid-template-columns: repeat(2, 1fr); }
.event-card {
  background: white;
  border-radius: 22px;
  border: 1px solid rgba(31,37,32,.08);
  padding: 1.2rem;
  box-shadow: 0 18px 55px rgba(31,37,32,.05);
  display: flex;
  flex-direction: column;
  gap: .8rem;
}
.event-card p { color: var(--muted); }
.event-top { display: flex; gap: .5rem; flex-wrap: wrap; }
.pill {
  display: inline-flex;
  padding: .35rem .65rem;
  background: #f7eadf;
  color: #9b5d42;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 900;
}
.pill.ghost { background: #edf3ec; color: var(--lichen-dark); }
.event-meta {
  display: grid;
  gap: .5rem;
  margin: auto 0 .4rem;
}
.event-meta div {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: .8rem;
  border-top: 1px solid rgba(31,37,32,.08);
  padding-top: .5rem;
}
.event-meta dt { color: var(--muted); font-size: .82rem; }
.event-meta dd { margin: 0; font-weight: 750; }
.gallery-strip, .photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.photo-grid { grid-template-columns: repeat(3, 1fr); }
.photo-card {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: white;
  border: 1px solid rgba(31,37,32,.08);
  box-shadow: 0 14px 35px rgba(31,37,32,.04);
}
.photo-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.photo-card figcaption { padding: .8rem .9rem; display: grid; gap: .2rem; }
.photo-card span { color: var(--muted); font-size: .9rem; }
.about-band, .cta-panel {
  background: var(--ink);
  color: white;
  border-radius: var(--radius);
  padding: clamp(1rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: .58fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.about-media { overflow: hidden; border-radius: 20px; min-height: 360px; }
.about-media img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.about-copy p, .cta-panel p { color: rgba(255,255,255,.76); }
.cta-panel { grid-template-columns: 1fr auto; background: linear-gradient(135deg, var(--lichen-dark), #223327); }
.filters {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1.4rem;
}
.filter {
  border: 1px solid rgba(31,37,32,.12);
  background: white;
  border-radius: 999px;
  padding: .65rem 1rem;
  cursor: pointer;
  font-weight: 850;
}
.filter.active { background: var(--ink); color: white; }
.image-mosaic {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.image-mosaic .photo-card:first-child { grid-column: 1 / -1; }
.offer-grid, .two-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.offer-card, .large-card {
  background: white;
  border: 1px solid rgba(31,37,32,.08);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 18px 55px rgba(31,37,32,.05);
}
.offer-card img, .large-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.offer-card div, .large-card div { padding: 1.25rem; }
.offer-card ul { padding-left: 1.2rem; margin: 0; color: var(--muted); }
.two-cards { grid-template-columns: repeat(2, 1fr); }
.note { color: var(--terracotta); font-weight: 800; }
.timeline {
  list-style: none;
  margin: 0; padding: 0;
  display: grid; gap: .8rem;
}
.timeline li {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 1rem;
  background: white;
  border: 1px solid rgba(31,37,32,.08);
  border-radius: 18px;
  padding: 1rem;
}
.timeline span { color: var(--terracotta); font-weight: 950; }
.timeline p { margin: 0; color: var(--muted); }
.resource-card { background: white; color: var(--ink); }
.resource-list { display: grid; gap: .5rem; margin-top: 1rem; }
.resource-list a {
  display: flex; justify-content: space-between; gap: 1rem;
  padding: .85rem 1rem;
  border-radius: 14px;
  background: var(--paper-2);
}
.contact-lines { display: grid; gap: .4rem; margin-top: 1.2rem; }
.contact-lines a { color: var(--lichen-dark); font-weight: 900; }
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 1.4rem;
}
.form-card {
  background: white;
  border-radius: var(--radius);
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid rgba(31,37,32,.08);
  box-shadow: 0 18px 55px rgba(31,37,32,.05);
}
.contact-form { display: grid; gap: 1rem; }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
label { display: grid; gap: .35rem; color: var(--muted); font-weight: 800; }
input, textarea {
  width: 100%;
  border: 1px solid rgba(31,37,32,.16);
  border-radius: 14px;
  padding: .85rem .95rem;
  background: var(--white);
  color: var(--ink);
  font: inherit;
}
textarea { resize: vertical; }
.form-note { color: var(--muted); font-size: .92rem; }
.accordion-list {
  display: grid;
  gap: .75rem;
}
details {
  background: white;
  border: 1px solid rgba(31,37,32,.08);
  border-radius: 18px;
  padding: .9rem 1.1rem;
}
summary {
  cursor: pointer;
  font-weight: 900;
  font-size: 1.08rem;
}
details p { margin-top: .8rem; color: var(--muted); }
.site-footer {
  max-width: var(--max);
  margin: 2rem auto 0;
  padding: 2rem clamp(1rem, 3vw, 2rem);
  border-top: 1px solid rgba(31,37,32,.1);
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 2rem;
  color: var(--muted);
}
.footer-contact, .footer-links { display: grid; gap: .35rem; }
.footer-contact a, .footer-links a { color: var(--ink); font-weight: 800; }
.footer-brand { margin-bottom: .75rem; }
@media (max-width: 1050px) {
  .site-header { grid-template-columns: auto auto 1fr; }
  .menu-toggle { display: inline-flex; justify-self: end; }
  .site-nav {
    position: absolute;
    left: 1rem; right: 1rem; top: calc(100% + .5rem);
    display: none;
    background: white;
    border-radius: 20px;
    padding: .75rem;
    box-shadow: var(--shadow);
    justify-content: start;
  }
  .site-nav.open { display: grid; grid-template-columns: repeat(2, 1fr); }
  .language-switcher { justify-self: end; }
  .hero, .page-hero, .page-hero.small, .split, .split.reverse, .contact-layout {
    grid-template-columns: 1fr;
  }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .event-grid, .event-grid.compact, .photo-grid, .gallery-strip, .offer-grid, .two-cards, .info-grid, .three-columns {
    grid-template-columns: repeat(2, 1fr);
  }
  .hero-media { min-height: 360px; }
  .hero-media > img { min-height: 360px; }
  .proof-grid { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .site-header { grid-template-columns: 1fr auto; }
  .language-switcher { grid-column: 1 / -1; justify-self: start; width: 100%; overflow-x: auto; }
  .brand small { display: none; }
  .site-nav.open { grid-template-columns: 1fr; }
  .hero, .page-hero { padding-top: 2rem; }
  .hero-media { min-height: 300px; }
  .hero-media > img { min-height: 300px; }
  .feature-grid, .event-grid, .event-grid.compact, .photo-grid, .gallery-strip, .offer-grid, .two-cards, .info-grid, .three-columns, .form-row, .image-mosaic {
    grid-template-columns: 1fr;
  }
  .about-band, .cta-panel { grid-template-columns: 1fr; }
  .timeline li { grid-template-columns: 1fr; }
  h1 { font-size: clamp(2.5rem, 14vw, 4.6rem); }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}
.hp-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-status { max-width: 760px; margin: 5rem auto; padding: 2rem; border-radius: 28px; background: #fff; box-shadow: 0 24px 80px rgba(23, 28, 23, .10); }

/* Dynamic calendar */
.event-loading, .event-empty { grid-column: 1 / -1; padding: 1.25rem; border-radius: 18px; background: var(--white); color: var(--muted); border: 1px solid rgba(31,37,32,.08); }
.event-card[hidden] { display: none !important; }

/* 2026 layout and typography hardening */
:root{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  --display-font:ui-serif,Georgia,Cambria,"Times New Roman",serif;
}
body{overflow-x:hidden;text-rendering:optimizeLegibility}
main{overflow:visible}
h1,h2,h3{font-family:var(--display-font);font-weight:700;letter-spacing:-.025em;overflow-wrap:normal;word-break:normal;hyphens:auto}
h1{font-size:clamp(2.7rem,6.6vw,5.9rem);line-height:.98;max-width:13ch}
h2{font-size:clamp(2rem,4.2vw,3.85rem);line-height:1.02}
h3{line-height:1.12}
.hero,.page-hero{isolation:isolate;overflow:visible;grid-template-columns:minmax(0,1fr) minmax(320px,.82fr)}
.hero-copy,.page-hero>div,.about-copy,.section-head{min-width:0;position:relative;z-index:2}
.hero-media{z-index:1;min-width:0;aspect-ratio:4/5;min-height:0}
.hero-media>img,.hero-media picture,.hero-media picture img{min-height:0;height:100%;object-position:center}
.page-hero .media-card{min-width:0;align-self:stretch}
.page-hero .media-card img{height:100%;min-height:360px;object-fit:cover}
.feature-card h3,.event-card h3,.offer-card h3,.large-card h3{overflow-wrap:anywhere}
.site-header{min-width:0}.site-nav{min-width:0}.brand span{min-width:0}
img{image-rendering:auto}
.contact-status{display:none;border-radius:16px;padding:1rem 1.1rem;margin-top:.35rem;border:1px solid transparent}
.contact-status strong,.contact-status span{display:block}.contact-status span{margin-top:.25rem}
.contact-status.loading{display:block;background:#f2eee5;color:#49534b}
.contact-status.success{display:block;background:#e8f3e7;color:#284a30;border-color:rgba(65,99,72,.15)}
.contact-status.local{display:block;background:#fff7df;color:#654f16;border-color:rgba(217,173,77,.25)}
.contact-status.error{display:block;background:#fff0ed;color:#7d3028;border-color:rgba(155,58,49,.18)}
.status-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.form-status{margin:0;width:min(760px,100%)}
@media(max-width:1050px){
  .hero,.page-hero,.page-hero.small{grid-template-columns:1fr;padding-top:clamp(2.2rem,6vw,4rem)}
  .hero-copy,.page-hero>div{max-width:850px}
  .hero-media{aspect-ratio:16/10;min-height:0;max-height:620px}
  .hero-media>img,.page-hero .media-card img{min-height:0}
  h1{max-width:15ch}
}
@media(max-width:680px){
  h1{font-size:clamp(2.45rem,12vw,4.1rem);line-height:1;max-width:100%}
  h2{font-size:clamp(1.9rem,9vw,3rem)}
  .hero-media{aspect-ratio:4/3;min-height:0;border-radius:20px}
  .floating-card{position:static;border-radius:0;background:var(--white);box-shadow:none}
  .page-hero .media-card img{min-height:240px;max-height:420px}
  .site-header{padding:.65rem .8rem}
  .flag span{display:none}.flag{font-size:1.05rem;padding:.35rem .55rem}
}


/* Dedicated company and inclusive climbing offers */
.special-offers { align-items: stretch; }
.special-offer { display: flex; flex-direction: column; scroll-margin-top: 110px; }
.special-offer > img { aspect-ratio: 16 / 9; min-height: 260px; object-fit: cover; object-position: center; }
.special-offer-content { display: flex; flex: 1; flex-direction: column; align-items: flex-start; }
.special-offer-content > p:not(.eyebrow) { color: var(--muted); }
.special-offer-content .button { margin-top: auto; }
.special-offer .compact-list { margin: .4rem 0 1.4rem; }
.special-offer .compact-list li { margin-bottom: .45rem; }
.special-offers.detailed .special-offer-content { padding: clamp(1.25rem, 3vw, 2rem); }
.special-offers.detailed .special-offer > img { min-height: 320px; }
.special-list { width: 100%; margin: 1rem 0 1.5rem; }
.offer-intro { font-size: 1.02rem; }
input[list] { background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 18px) 52%, calc(100% - 13px) 52%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 2.5rem; }
@media (max-width: 680px) {
  .special-offer > img, .special-offers.detailed .special-offer > img { min-height: 220px; }
}


/* Dedicated navigation tabs: Companies and Disability & inclusion */
.site-nav a.nav-company,
.site-nav a.nav-inclusion { font-weight: 850; border: 1px solid transparent; }
.site-nav a.nav-company { background: rgba(217,173,77,.13); border-color: rgba(217,173,77,.22); }
.site-nav a.nav-inclusion { background: rgba(79,112,91,.11); border-color: rgba(79,112,91,.18); }
.site-nav a.nav-company:hover,
.site-nav a.nav-company.active { background: #ead49a; color: #263126; }
.site-nav a.nav-inclusion:hover,
.site-nav a.nav-inclusion.active { background: #cfe0d2; color: #263126; }
.offer-hero .hero-media { aspect-ratio: 4 / 3; }
.offer-benefits .info-card { min-height: 100%; }
.offer-steps { grid-template-columns: 1fr; gap: .75rem; }
.step-card { min-height: 0; }
.step-card div { padding: 1.15rem 1.25rem; }
.step-card p { margin-bottom: 0; }
.feature-mosaic { align-self: stretch; }
.feature-mosaic .photo-card:first-child { grid-row: span 2; }
.feature-mosaic .photo-card img { min-height: 260px; }
.offer-options .format-card { border-top: 4px solid var(--accent); }
.audience-list { display: grid; gap: .55rem; }
.nav-company-card { border-top: 5px solid #d7ad4d; }
.nav-inclusion-card { border-top: 5px solid #65856e; }
@media (min-width: 1051px) {
  .site-header { gap: .7rem; }
  .site-nav { gap: .1rem; }
  .site-nav a { padding: .62rem .62rem; font-size: .84rem; }
  .language-switcher { flex-shrink: 0; }
}
@media (max-width: 680px) {
  .offer-hero .hero-media { aspect-ratio: 4 / 3; }
  .feature-mosaic .photo-card:first-child { grid-row: auto; }
}

/* 2026-07 responsive typography refinement
   Keeps headings readable without oversized or syllable-broken titles. */
:root {
  --display-font: Georgia, Cambria, "Times New Roman", Times, serif;
  --body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--body-font);
  font-size: clamp(1rem, .975rem + .10vw, 1.06rem);
  line-height: 1.58;
}

h1,
h2,
h3 {
  font-family: var(--display-font);
  font-weight: 700;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: manual;
}

h1 {
  font-size: clamp(3.25rem, 4.9vw, 5.15rem);
  line-height: .98;
  letter-spacing: -.035em;
  max-width: 12.5ch;
}

h2 {
  font-size: clamp(2.1rem, 3.25vw, 3.35rem);
  line-height: 1.04;
  letter-spacing: -.028em;
}

h3 {
  font-size: clamp(1.25rem, 1.55vw, 1.6rem);
  line-height: 1.16;
  letter-spacing: -.018em;
  overflow-wrap: anywhere;
}

.lead {
  font-size: clamp(1.06rem, 1.15vw, 1.25rem);
  line-height: 1.58;
  max-width: 64ch;
}

.hero,
.page-hero {
  padding-top: clamp(3rem, 6vw, 5.6rem);
  padding-bottom: clamp(2.75rem, 5vw, 4.5rem);
}

.hero-copy,
.page-hero > div:first-child {
  max-width: 760px;
}

.button {
  font-size: .98rem;
  line-height: 1.2;
  padding: .84rem 1.18rem;
}

.eyebrow {
  font-size: .74rem;
  letter-spacing: .17em;
}

@media (max-width: 1050px) {
  h1 {
    font-size: clamp(3rem, 6.8vw, 4.55rem);
    max-width: 14ch;
  }

  h2 {
    font-size: clamp(2rem, 4.8vw, 3.05rem);
  }

  .hero,
  .page-hero,
  .page-hero.small {
    gap: clamp(1.75rem, 4vw, 3rem);
  }
}

@media (max-width: 680px) {
  body {
    font-size: 1rem;
    line-height: 1.56;
  }

  .hero,
  .page-hero,
  .page-hero.small {
    padding: 1.75rem 1rem 2.75rem;
    gap: 1.55rem;
  }

  h1 {
    font-size: clamp(2.45rem, 10.4vw, 3.35rem);
    line-height: 1.01;
    letter-spacing: -.032em;
    max-width: 13.5ch;
  }

  h2 {
    font-size: clamp(1.9rem, 8vw, 2.55rem);
    line-height: 1.07;
  }

  h3 {
    font-size: clamp(1.22rem, 5vw, 1.48rem);
  }

  .lead {
    font-size: clamp(1.03rem, 4.2vw, 1.16rem);
    line-height: 1.55;
  }

  .button-row {
    margin-top: 1.35rem;
    gap: .6rem;
  }

  .button {
    padding: .78rem 1rem;
    font-size: .94rem;
  }

  .proof-grid {
    margin-top: 1.55rem;
  }
}

@media (max-width: 430px) {
  h1 {
    font-size: clamp(2.3rem, 10.8vw, 2.85rem);
    max-width: 12.8ch;
  }

  h2 {
    font-size: clamp(1.8rem, 8.2vw, 2.25rem);
  }

  .button-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .button-row .button {
    width: 100%;
  }
}
