/* ============ BASE / RESET ============ */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--paper-0);
  color: var(--ink-950);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
button{ font: inherit; cursor: pointer; }
input, select{ font: inherit; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
.container{ max-width: var(--content-max); margin-inline:auto; padding-inline: var(--sp-4); }
@media (min-width: 900px){ .container{ padding-inline: var(--sp-6); } }

h1,h2,h3,h4{ font-family: var(--font-display); color: var(--ink-950); font-weight: 700; letter-spacing: -0.01em; }

.eyebrow{
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--merit-gold-600);
  font-weight: 600;
  display:flex; align-items:center; gap:0.6em;
}
.eyebrow::before{
  content:""; width: 22px; height: 2px; background: var(--merit-gold-500); display:inline-block;
}

.section{ padding-block: var(--sp-7); }
.section-head{ max-width: 640px; margin-bottom: var(--sp-5); }
.section-head h2{ font-size: var(--step-3); margin-top: var(--sp-2); }
.section-head p{ color: var(--slate-600); margin-top: var(--sp-2); font-size: var(--step-1); }
.section--dark{ background: var(--ridge-900); color: var(--paper-0); }
.section--dark h2, .section--dark h3{ color: var(--paper-0); }
.section--dark .section-head p{ color: var(--dusk-100); opacity: .85; }
.section--tint{ background: var(--dusk-100); }

/* visually-hidden utility for a11y labels */
.vh{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* focus visibility */
:focus-visible{ outline: 3px solid var(--merit-gold-500); outline-offset: 2px; border-radius: 4px; }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:0.5em;
  padding: 0.9em 1.6em;
  border-radius: var(--radius-pill);
  font-weight: 600;
  font-size: var(--step--1);
  border: 1.5px solid transparent;
  transition: transform var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out), background var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out);
  white-space: nowrap;
}
.btn:active{ transform: translateY(1px); }
.btn-ember{ background: var(--ember-500); color: #fff; box-shadow: 0 6px 20px -6px rgba(192,67,46,0.55); }
.btn-ember:hover{ background: var(--ember-600); }
.btn-gold{ background: var(--merit-gold-500); color: var(--ridge-900); box-shadow: 0 6px 20px -6px rgba(201,150,44,0.5); }
.btn-gold:hover{ background: var(--merit-gold-600); }
.btn-ghost{ background: transparent; border-color: rgba(255,255,255,0.35); color: inherit; }
.btn-ghost:hover{ border-color: rgba(255,255,255,0.7); }
.btn-outline{ background: transparent; border-color: var(--ridge-900); color: var(--ridge-900); }
.btn-outline:hover{ background: var(--ridge-900); color: #fff; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.55; cursor: not-allowed; }
.btn-sm{ padding: 0.6em 1.1em; font-size: var(--step--1); }

/* ridge divider motif — echoes the Himachal skyline, used once, deliberately */
.ridge-divider{ display:block; width:100%; height:auto; }
