@font-face {
  font-family: "Dashna Cabinet";
  src: url("/assets/fonts/CabinetGrotesk-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --dashna-type: "Dashna Cabinet", "Helvetica Neue", Arial, sans-serif;
}
html,
body,
button,
input,
select,
textarea {
  font-family: var(--dashna-type) !important;
}
body {
  font-weight: 400 !important;
  letter-spacing: -0.002em;
}

/* fixed custom wordmark */
.nav-title {
  display: block !important;
  width: 132px !important;
  line-height: 0 !important;
  justify-self: center;
  text-indent: 0 !important;
  letter-spacing: 0 !important;
  transform: none !important;
}
.nav-title img {
  display: block;
  width: 100%;
  height: auto;
}
.footer-wordmark {
  width: 158px;
  line-height: 0;
  margin: auto;
}
.footer-wordmark img {
  display: block;
  width: 100%;
  height: auto;
}

/* calm navigation */
.nav-group {
  font-size: 0.76rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.012em !important;
  text-transform: none !important;
}
.service-bar {
  font-size: 0.66rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.018em !important;
}

/* headings: regular weight, modest scale */
.display,
.hero-copy h1,
.page-hero h1,
.about-intro h2,
.chapter-copy h3,
.chapter-copy blockquote,
.about-closing strong,
.cta-band h2,
.swap-feature-copy h2,
.guide-copy h2,
.legal-main h1,
.step-copy h3,
.commission-success h3 {
  font-family: var(--dashna-type) !important;
  font-weight: 400 !important;
}
.display,
.page-hero h1,
.legal-main h1 {
  letter-spacing: -0.026em !important;
  line-height: 1.03 !important;
}
.page-hero .display {
  font-size: clamp(2.25rem, 3.6vw, 3.55rem) !important;
}
.chapter-copy h3,
.process-item h3,
.swap-category h3,
.guide-copy h2,
.legal-main h2 {
  font-family: var(--dashna-type) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
}

/* text + utility */
p,
li,
details,
summary {
  font-family: var(--dashna-type) !important;
}
.page-hero p,
.about-intro p,
.chapter-copy p,
.process-item p,
.swap-category p,
.swap-step p,
.guide-copy p,
.legal-main p,
.legal-main li,
.faq details p {
  font-weight: 400 !important;
  line-height: 1.72 !important;
  letter-spacing: -0.002em !important;
}
.eyebrow,
.chapter-year,
.process-num,
.progress-meta,
.field label,
.microcopy,
.upload-note,
.policy-note,
.form-trustline,
.footer-nav,
.footer-legal,
.footer-contact-copy {
  font-family: var(--dashna-type) !important;
  font-weight: 400 !important;
}
.eyebrow {
  text-transform: none !important;
  letter-spacing: 0.04em !important;
}

/* editorial links */
.text-link,
.form-helper-link,
.ring-guide-bottom a,
.review-edit {
  font-family: var(--dashna-type) !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
}

/* buttons — visible, clean, not shouty */
.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  min-height: 48px !important;
  padding: 13px 20px !important;
  border: 1px solid #232426 !important;
  border-radius: 0 !important;
  background: #232426 !important;
  color: #fafaf8 !important;
  font-family: var(--dashna-type) !important;
  font-size: 0.86rem !important;
  line-height: 1.1 !important;
  text-transform: none !important;
  opacity: 1 !important;
  box-shadow: none !important;
}
.btn:hover {
  transform: none !important;
  background: #393a3c !important;
  border-color: #393a3c !important;
}
.btn.light {
  background: transparent !important;
  color: #232426 !important;
  border-color: rgba(35, 36, 38, 0.38) !important;
}
.btn.light:hover {
  border-color: #232426 !important;
  background: rgba(35, 36, 38, 0.035) !important;
}

.form-step h4,
.faq summary,
.guide-callout strong,
.review-row strong,
.swap-step strong {
  font-family: var(--dashna-type) !important;
  font-weight: 500 !important;
}
@media (max-width: 760px) {
  .nav-title {
    width: 114px !important;
  }
  .footer-wordmark {
    width: 142px;
  }
  .btn {
    min-height: 49px !important;
    font-size: 0.87rem !important;
  }
}
.nav-group {
  font-size: 0.86rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.008em !important;
}
.service-bar {
  font-size: 0.74rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.012em !important;
}
.service-bar a {
  font-weight: 500 !important;
}

.btn {
  min-height: 50px !important;
  padding: 14px 23px !important;
  font-size: 0.91rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}
.text-link,
.form-helper-link,
.ring-guide-bottom a,
.review-edit {
  font-size: 0.9rem !important;
  font-weight: 500 !important;
}

.footer-social-icon {
  width: 34px !important;
  height: 34px !important;
}
.footer-contact-copy > span {
  font-size: 0.7rem !important;
  letter-spacing: 0.08em !important;
  font-weight: 500 !important;
}
.footer-contact-copy strong {
  font-family: var(--dashna-type) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}
.footer-nav {
  font-size: 0.8rem !important;
  font-weight: 500 !important;
}
.footer-legal {
  font-size: 0.72rem !important;
}
.page-hero .display {
  font-size: clamp(2.2rem, 3.5vw, 3.45rem) !important;
}
.cta-band .display {
  font-size: clamp(1.9rem, 2.8vw, 2.7rem) !important;
}
.section .display,
.about-intro .display {
  font-size: clamp(1.8rem, 2.8vw, 2.7rem) !important;
}

@media (max-width: 760px) {
  .nav-group {
    font-size: 0.89rem !important;
  }
  .service-bar {
    font-size: 0.68rem !important;
  }
  .btn {
    min-height: 50px !important;
    font-size: 0.92rem !important;
  }
  .footer-social-icon {
    width: 35px !important;
    height: 35px !important;
  }
  .footer-contact-copy strong {
    font-size: 0.92rem !important;
  }
  .footer-nav {
    font-size: 0.79rem !important;
  }
}

/* Keyboard navigation across every page. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
