/* ============================================
   DR DENT CLINIC — Design Tokens & Base
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  /* ---- Brand palette, extracted from the Dr Dent Clinic mark ---- */
  --navy:        #1E2F4D;   /* primary — the silhouette in the logo */
  --navy-deep:   #0E1A2B;   /* backgrounds, footer */
  --navy-soft:   #34496E;
  --teal:        #0FA6B8;   /* the enamel-blue ribbon */
  --teal-light:  #7CE7EF;
  --teal-glow:   rgba(15,166,184,0.18);
  --gold:        #C2A46B;   /* the "CLINIC" wordmark accent */
  --gold-soft:   #E4D6B8;
  --cream:       #FBF8F3;   /* page background */
  --cream-dim:   #F3EEE5;
  --ink:         #16212F;
  --ink-soft:    #4B5768;
  --white:       #FFFFFF;

  /* ---- Type ---- */
  --font-display: 'Fraunces', 'Times New Roman', serif;
  --font-body: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* ---- Layout ---- */
  --container: 1240px;
  --gutter: clamp(24px, 5vw, 72px);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 32px;

  /* ---- Motion ---- */
  --ease: cubic-bezier(.22,1,.36,1);
  --dur: 0.7s;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: auto; width: 100%; max-width: 100%; overflow-x: hidden; }
html.lenis, html.lenis body{ height: auto; }
.lenis.lenis-smooth{ scroll-behavior: auto; }

body{
  margin:0;
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
  font-size: 16px;
  line-height: 1.6;
}

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; }
h1,h2,h3,h4,p{ margin:0; }

.container{
  width:100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.eyebrow{
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--teal);
  display:flex;
  align-items:center;
  gap:12px;
}
.eyebrow::before{
  content:'';
  width:26px; height:1px;
  background: var(--gold);
}

h1, .h1{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -0.01em;
  color: var(--navy);
}
h2, .h2{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--navy);
  font-size: clamp(34px, 4.6vw, 58px);
}
h3, .h3{
  font-family: var(--font-display);
  font-weight: 500;
  color: var(--navy);
  font-size: clamp(22px, 2.4vw, 28px);
}

.lede{
  font-size: clamp(17px, 1.6vw, 20px);
  color: var(--ink-soft);
  line-height: 1.65;
  max-width: 44ch;
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 16px 30px;
  border-radius: 999px;
  font-weight:700;
  font-size:14.5px;
  letter-spacing:0.01em;
  border: 1px solid transparent;
  transition: transform 0.45s var(--ease), background 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  white-space: nowrap;
}
.btn svg{ width:18px; height:18px; flex-shrink:0; }
.btn-primary{
  background: linear-gradient(135deg, #17C4D6, #0B8B9C);
  color: var(--white);
  box-shadow: 0 14px 30px -12px rgba(15,166,184,0.55);
}
.btn-primary:hover{ transform: translateY(-3px); box-shadow: 0 18px 36px -12px rgba(15,166,184,0.65); }
.btn-ghost{
  background: rgba(30,47,77,0.04);
  color: var(--navy);
  border-color: rgba(30,47,77,0.35);
  font-weight:700;
}
.btn-ghost:hover{ border-color: var(--navy); transform: translateY(-3px); }
.btn-ghost-light{
  background: transparent;
  color: var(--white);
  border-color: rgba(255,255,255,0.35);
}
.btn-ghost-light:hover{ border-color: var(--white); transform: translateY(-3px); }
.btn-block{ width:100%; }

/* ---- Reveal utility (JS toggles .is-visible) ---- */
.reveal{
  opacity:0;
  transform: translateY(36px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.reveal.is-visible{ opacity:1; transform: translateY(0); }
.reveal-delay-1{ transition-delay: 0.08s; }
.reveal-delay-2{ transition-delay: 0.16s; }
.reveal-delay-3{ transition-delay: 0.24s; }
.reveal-delay-4{ transition-delay: 0.32s; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

::selection{ background: var(--teal); color:var(--white); }

/* Focus visibility */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
  outline: 2px solid var(--teal);
  outline-offset: 3px;
  border-radius: 4px;
}
