*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy:       #0f172a;
  --navy-mid:   #1e293b;
  --navy-soft:  #334155;
  --teal:       #0d9488;
  --teal-mid:   #0f766e;
  --teal-light: #5eead4;
  --warm-white: #fafaf9;
  --stone-100:  #f5f5f4;
  --stone-200:  #e7e5e4;
  --stone-400:  #a8a29e;
  --stone-600:  #57534e;
  --text:       #1c1917;
  --font-serif: 'Lora', Georgia, serif;
  --font-sans:  'DM Sans', system-ui, sans-serif;
}
html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); color: var(--text); background: var(--warm-white); font-size: 16px; line-height: 1.7; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
h1,h2,h3,h4 { font-family: var(--font-serif); line-height: 1.25; color: var(--navy); }
p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }
.container { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
.btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--teal); color: white;
  padding: .85rem 1.75rem; border-radius: 8px;
  font-weight: 700; font-size: 1rem;
  transition: background .2s, transform .15s;
}
.btn-primary:hover { background: var(--teal-mid); transform: translateY(-1px); }
.btn-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  border: 1.5px solid rgba(250,250,249,.3); color: rgba(250,250,249,.9);
  padding: .85rem 1.75rem; border-radius: 8px; font-weight: 500; font-size: 1rem;
  transition: border-color .2s;
}
.btn-outline:hover { border-color: rgba(250,250,249,.65); }
@keyframes pulse-teal {
  0%,100% { box-shadow: 0 4px 20px rgba(13,148,136,.45); }
  50%      { box-shadow: 0 4px 30px rgba(13,148,136,.75), 0 0 0 8px rgba(13,148,136,.12); }
}
