/* ─────────────────────────────────────────────────────────────
   Praxis Hauck · Thamm — Design Tokens
   Klassisch-vertrauensvoll: gedeckte Petrol- & Salbeitöne,
   warmes Cremepapier, serifige Headlines, klare Sans für Body.
   ───────────────────────────────────────────────────────────── */

:root {
  /* Surfaces */
  --bg:           #f3efe7;   /* warm cream */
  --bg-2:         #ece6da;   /* slightly deeper cream — section breaks */
  --surface:      #ffffff;
  --surface-2:    #faf7f1;   /* very subtle off-white card */

  /* Ink */
  --ink:          #1a2429;   /* near-black, warm slate */
  --ink-2:        #4a5560;
  --ink-3:        #8a939c;
  --ink-4:        #c2c8cd;

  /* Brand — deep petrol / dark teal */
  --primary:      #1f4d52;
  --primary-700:  #163a3e;
  --primary-600:  #265e64;
  --primary-100:  #d8e2e1;
  --primary-50:   #ecf1f0;

  /* Accents */
  --sage:         #8ba79a;
  --sage-soft:    #c8d4cc;
  --sand:         #c7b58e;   /* warm tan for highlights */
  --sand-soft:    #e8dec4;

  /* Functional */
  --border:       #e1dccf;
  --border-soft:  #eee9dc;
  --success:      #4f7a5a;
  --warning:      #b67d3a;
  --danger:       #a85842;

  /* Type */
  --font-display: "Source Serif 4", "Source Serif Pro", Georgia, serif;
  --font-sans:    "Geist", "Söhne", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:    "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Radius */
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 14px;
  --r-xl: 22px;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(20,30,35,.04), 0 1px 1px rgba(20,30,35,.03);
  --shadow-md: 0 2px 6px rgba(20,30,35,.05), 0 8px 24px rgba(20,30,35,.06);
  --shadow-lg: 0 8px 24px rgba(20,30,35,.08), 0 24px 60px rgba(20,30,35,.10);
}

/* ── Base reset ────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--bg);
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--ink);
  text-wrap: balance;
}
p { margin: 0; text-wrap: pretty; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
ul { margin: 0; padding: 0; list-style: none; }

/* ── Type scale ────────────────────────────────────────────── */
.t-eyebrow {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
}
.t-h1   { font-size: 68px; line-height: 1.04; letter-spacing: -0.028em; }
.t-h2   { font-size: 44px; line-height: 1.10; letter-spacing: -0.024em; }
.t-h3   { font-size: 30px; line-height: 1.20; letter-spacing: -0.02em; }
.t-h4   { font-size: 22px; line-height: 1.30; letter-spacing: -0.014em; }
.t-lead { font-size: 19px; line-height: 1.55; color: var(--ink-2); }
.t-body { font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.t-sm   { font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.t-xs   { font-size: 12.5px; line-height: 1.5; color: var(--ink-3); }
.t-num  { font-feature-settings: "tnum" 1, "lnum" 1; }

/* ── Buttons ───────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  white-space: nowrap;
}
.btn-primary {
  background: var(--primary);
  color: #fff;
}
.btn-primary:hover { background: var(--primary-700); }
.btn-ghost {
  background: transparent;
  color: var(--ink);
  border-color: var(--border);
}
.btn-ghost:hover { background: var(--surface); }
.btn-lg { padding: 17px 26px; font-size: 16px; }
.btn-sm { padding: 10px 16px; font-size: 14px; }

/* ── Reusable ──────────────────────────────────────────────── */
.divider { height: 1px; background: var(--border); border: 0; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--primary-700);
  background: var(--primary-50);
  border: 1px solid var(--primary-100);
  border-radius: 999px;
  letter-spacing: -0.005em;
}
.chip-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--sage);
}
.card {
  background: var(--surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--r-lg);
}

/* Placeholder photo block */
.photo {
  position: relative;
  background: linear-gradient(135deg, #d6cdb7 0%, #b8c7c1 60%, #9eb4ad 100%);
  overflow: hidden;
  border-radius: var(--r-lg);
}
.photo::after {
  content: attr(data-label);
  position: absolute;
  left: 12px; bottom: 10px;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(20,30,35,.45);
  font-weight: 500;
}
.photo-portrait {
  background:
    radial-gradient(circle at 50% 38%, #d4cdb7 0 70px, transparent 70px),
    linear-gradient(180deg, #d6cdb7 0%, #b8c7c1 100%);
}
/* Real photo inside a .photo frame fills it and hides the placeholder */
.photo > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
