/* ============================================================
   BASE.CSS — Global typography & body foundation
   ============================================================ */

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-height, 80px) + 20px);
}

/* ── LENIS SMOOTH SCROLL ─────────────────────────────────── */
html.lenis, html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

body {
  font-family:             var(--font-body);
  font-size:               var(--text-base);
  font-weight:             var(--weight-regular);
  line-height:             var(--leading-relaxed);
  color:                   var(--text-primary);
  background-color:        var(--bg-base);
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering:          optimizeLegibility;
  overflow-x:              clip;
  max-width:               100%;
  position:                relative;
}

body.mobile-nav-open {
  overflow: hidden !important;
  touch-action: none;
}

img, video, iframe {
  max-width: 100%;
}

/* ── LUCIDE ICONS ─────────────────────────────────────────── */
.lucide, [data-lucide] {
  width: 1.2em;
  height: 1.2em;
  display: inline-block;
  vertical-align: -0.2em;
  stroke-width: 1.75;
}

/* ── HEADINGS ─────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6 {
  font-family:          var(--font-heading);
  font-weight:          var(--weight-light);
  line-height:          var(--leading-snug);
  color:                var(--text-primary);
  text-wrap:            balance;
  font-feature-settings: "liga" 1, "kern" 1;
}

h1 { font-size: var(--text-hero); letter-spacing: var(--tracking-tight); line-height: 0.98; }
h2 { font-size: var(--text-4xl);  letter-spacing: var(--tracking-tight); line-height: 1.06; }
h3 { font-size: var(--text-2xl);  letter-spacing: -0.015em;              line-height: 1.14; }
h4 { font-size: var(--text-xl);   letter-spacing: -0.01em;               line-height: 1.18; }
h5 {
  font-family:    var(--font-body);
  font-size:      var(--text-md);
  font-weight:    var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  line-height:    1.25;
}

/* ── BODY TEXT & PROSE ────────────────────────────────────── */

p {
  font-family: var(--font-body);
  font-size:   var(--text-base);
  font-weight: var(--weight-light);
  line-height: var(--leading-relaxed);
  color:       var(--text-secondary);
  max-width:   var(--measure, 65ch);
  text-wrap:   pretty;
}

.prose {
  max-width: var(--measure, 65ch);
}

.prose p + p {
  margin-top: 1.25em;
}

em { font-style: italic; }

strong {
  font-weight: var(--weight-medium);
  color:       var(--text-primary);
}

/* ── TABULAR NUMERALS (Aligned metrics for data & numbers) ── */

.tabular-nums,
.price,
.stat__number,
.hero__google-badge,
.bio-topbar,
.bio-rating-hat,
[id="liveTime"],
.contact-card__content strong,
a[href^="tel:"] {
  font-variant-numeric: tabular-nums lining-nums;
}

/* ── LINKS & ANCHORS ──────────────────────────────────────── */

a {
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color var(--duration-base) ease, text-decoration-color var(--duration-base) ease;
}

/* ── LABELS & EYEBROWS ────────────────────────────────────── */

.label {
  display:        block;
  font-family:    var(--font-body);
  font-size:      var(--text-xs);
  font-weight:    var(--weight-regular);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color:          var(--text-muted);
}

.label--light {
  color: var(--accent-light);
}

.label--accent {
  color: var(--accent-primary);
}

/* ── SECTION TITLES ───────────────────────────────────────── */

.section-title {
  font-family:    var(--font-heading);
  font-size:      var(--text-4xl);
  font-weight:    var(--weight-light);
  letter-spacing: var(--tracking-tight);
  line-height:    1.06;
  color:          var(--text-primary);
}

.section-title--italic {
  font-style: italic;
}

.section-title--center {
  text-align: center;
}

.section-title--light {
  color: var(--text-on-dark);
}

.section-intro {
  font-family:  var(--font-body);
  font-size:    var(--text-md);
  font-weight:  var(--weight-light);
  line-height:  var(--leading-relaxed);
  color:        var(--text-secondary);
  max-width:    var(--container-text);
}

/* ── SELECTION ────────────────────────────────────────────── */

::selection {
  background: var(--accent-primary);
  color:      var(--text-on-dark);
}

/* ── FOCUS RING ───────────────────────────────────────────── */

:focus-visible {
  outline:        2px solid var(--accent-primary);
  outline-offset: 3px;
  border-radius:  var(--radius-sm);
}

/* ── SCROLLBAR (WebKit) ───────────────────────────────────── */

::-webkit-scrollbar        { width: 6px; }
::-webkit-scrollbar-track  { background: var(--bg-surface); }
::-webkit-scrollbar-thumb  { background: var(--accent-light); border-radius: var(--radius-full); }
