:root{
  --ink:#141210;
  --gold:#C9A227;
  --gold-bright:#E3BC3F;
  --cream:#F7F1E1;
  --cream-deep:#EFE6CF;
  --body-on-cream:#3A352C;
  --body-on-ink:#D8D2C2;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Public Sans", -apple-system, "Segoe UI", Arial, sans-serif;
  color-scheme: light;
}
:root:not([data-theme="light"]){ color-scheme: light; }
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ color-scheme: light; }
}
:root[data-theme="dark"]{ color-scheme: light; }

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--cream);
  color:var(--body-on-cream);
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; }
a:focus-visible, .phone-cta:focus-visible, .nav a:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:4px;
  border-radius:2px;
}
.wrap{ max-width:44rem; margin:0 auto; padding:0 1.375rem; }

/* ---------- NAV ---------- */
.topbar{
  background:var(--ink);
  border-bottom:1px solid #2A2721;
  padding:1rem 0 .875rem;
}
.topbar .wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.75rem 1.5rem;
  justify-content:space-between;
}
.topbar .brand{
  font-family:var(--serif);
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.13em;
  color:var(--gold);
  text-decoration:none;
  white-space:nowrap;
}
.nav{
  display:flex;
  flex-wrap:wrap;
  gap:1.125rem;
  font-size:.92rem;
  font-weight:600;
}
.nav a{
  color:#B5AE9C;
  text-decoration:none;
  padding-bottom:2px;
  border-bottom:2px solid transparent;
}
.nav a:hover{ color:#EDE7D6; }
.nav a[aria-current="page"]{
  color:#FBF7EB;
  border-bottom-color:var(--gold);
}
.nav a.btn{
  color:var(--ink);
  background:var(--gold);
  padding:.3rem .75rem;
  border-radius:4px;
  border-bottom:none;
}
.nav a.btn:hover{ background:var(--gold-bright); color:var(--ink); }

/* ---------- HERO ---------- */
.hero{
  background:var(--ink);
  color:var(--body-on-ink);
  padding:3rem 0 4rem;
  border-bottom:5px solid var(--gold);
}
.hero.short{ padding:2.75rem 0 3rem; }
.hero h1{
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(2.1rem, 6vw, 3.3rem);
  line-height:1.08;
  color:#FBF7EB;
  max-width:17ch;
  margin-bottom:1.25rem;
}
.hero.short h1{ max-width:22ch; font-size:clamp(1.9rem, 5vw, 2.7rem); }
.hero .sub{
  font-size:1.125rem;
  max-width:34rem;
  margin-bottom:3rem;
}
.hero.short .sub{ margin-bottom:0; }

/* The dare */
.dare{
  border-left:5px solid var(--gold);
  padding-left:1.375rem;
}
.dare p.lead{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.35rem;
  color:#FBF7EB;
  margin-bottom:.875rem;
}
.phone-cta{
  display:inline-block;
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(2rem, 7.5vw, 3.4rem);
  letter-spacing:.01em;
  color:var(--gold-bright);
  text-decoration:none;
  line-height:1.15;
  animation:ring 2.6s ease-in-out infinite;
}
.phone-cta:hover{ color:#F0CD55; }
@keyframes ring{
  0%, 84%, 100%{ transform:translateX(0); }
  86%{ transform:translateX(-2px) rotate(-.4deg); }
  88%{ transform:translateX(2px) rotate(.4deg); }
  90%{ transform:translateX(-2px); }
  92%{ transform:translateX(2px); }
  94%{ transform:translateX(0); }
}
@media (prefers-reduced-motion: reduce){
  .phone-cta{ animation:none; }
  html{ scroll-behavior:auto; }
}
.dare p.after{
  margin-top:.875rem;
  font-size:1rem;
  font-style:italic;
  color:#B5AE9C;
  max-width:32rem;
}
.dare p.after strong{ color:var(--body-on-ink); }

/* Phone mockup */
.phone-wrap{
  margin-top:3.25rem;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1rem;
}
.phone-wrap .caption{
  font-size:.95rem;
  font-style:italic;
  color:#B5AE9C;
}
.phone{
  width:min(20rem, 100%);
  background:#1E1B16;
  border:1px solid #3A362E;
  border-radius:22px;
  padding:1rem .875rem 1.125rem;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
}
.phone .p-head{
  display:flex;
  align-items:center;
  gap:.625rem;
  padding-bottom:.75rem;
  margin-bottom:.875rem;
  border-bottom:1px solid #33302A;
}
.phone .p-avatar{
  width:2rem; height:2rem;
  border-radius:50%;
  background:var(--gold);
  color:var(--ink);
  font-family:var(--serif);
  font-weight:900;
  font-size:.95rem;
  display:flex; align-items:center; justify-content:center;
}
.phone .p-name{
  font-size:.9rem;
  font-weight:700;
  color:#EDE7D6;
  line-height:1.2;
}
.phone .p-missed{
  font-size:.72rem;
  color:#C96A5A;
}
.bubble{
  max-width:85%;
  font-size:.85rem;
  line-height:1.45;
  padding:.55rem .75rem;
  border-radius:14px;
  margin-bottom:.55rem;
}
.bubble.biz{
  background:#2B2822;
  color:#E4DECD;
  border-bottom-left-radius:4px;
}
.bubble.cust{
  background:var(--gold);
  color:var(--ink);
  font-weight:600;
  margin-left:auto;
  border-bottom-right-radius:4px;
}
.bubble .t{
  display:block;
  font-size:.62rem;
  opacity:.65;
  margin-top:.25rem;
}
.p-booked{
  margin-top:.7rem;
  text-align:center;
  font-size:.78rem;
  font-weight:700;
  color:var(--gold-bright);
  letter-spacing:.04em;
}

/* ---------- SECTIONS ---------- */
section{ padding:3.75rem 0; }
h2{
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(1.5rem, 4vw, 1.95rem);
  line-height:1.2;
  color:var(--ink);
  margin-bottom:1.5rem;
  max-width:24ch;
}
h3.sub{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.2rem;
  color:var(--ink);
  margin:2rem 0 .5rem;
}
p + p{ margin-top:1rem; }
section p{ max-width:36rem; }

.math{ background:var(--cream); }
.punch{ max-width:36rem; padding:1.125rem 0; }
.punch + .punch{ border-top:1px solid var(--cream-deep); }
.punch .kicker{
  font-family:var(--serif);
  font-weight:700;
  color:var(--ink);
}

.math-photo{ margin-top:2.5rem; max-width:36rem; }
.math-photo img{
  display:block; width:100%; height:auto;
  border-radius:12px;
  border:1px solid var(--cream-deep);
}
.math-photo figcaption{
  margin-top:.625rem;
  font-size:.9rem;
  font-style:italic;
  color:var(--body-on-cream);
  opacity:.75;
}

.how{ background:var(--cream-deep); }
.step{ display:flex; gap:1.25rem; max-width:38rem; }
.step + .step{ margin-top:2rem; }
.step .num{
  flex:none;
  width:2.375rem; height:2.375rem;
  border-radius:50%;
  background:var(--gold);
  color:var(--ink);
  font-family:var(--serif);
  font-weight:900;
  font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
  margin-top:.15rem;
}
.step h3{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.2rem;
  color:var(--ink);
  margin-bottom:.35rem;
}
.step blockquote{
  margin:.625rem 0 0;
  padding:.625rem 1rem;
  background:var(--cream);
  border-left:3px solid var(--gold);
  font-style:italic;
  font-size:1rem;
}

.price{ background:var(--cream); }
.price-box{
  background:var(--ink);
  color:var(--body-on-ink);
  border-radius:10px;
  padding:2.5rem 2rem 2.25rem;
  max-width:38rem;
}
.price-box .figure{
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(2.2rem, 6vw, 3rem);
  color:var(--gold-bright);
  line-height:1;
  margin-bottom:.5rem;
}
.price-box .figure small{
  font-size:.4em; font-weight:700;
  letter-spacing:.05em; color:var(--gold);
}
.price-box ul{ list-style:none; margin:1.5rem 0 0; }
.price-box li{
  padding-left:1.5rem;
  position:relative;
  margin-top:.625rem;
}
.price-box li::before{
  content:"";
  position:absolute;
  left:0; top:.55em;
  width:.55rem; height:.55rem;
  background:var(--gold);
}
.price-box .deal{
  margin-top:1.75rem;
  padding-top:1.5rem;
  border-top:1px solid #33302A;
}
.price-box .deal h3{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.25rem;
  color:var(--gold);
  margin-bottom:.5rem;
}

.about{ background:var(--cream-deep); }

.cta{
  background:var(--ink);
  color:var(--body-on-ink);
  border-top:5px solid var(--gold);
  padding:4rem 0;
}
.cta h2{ color:#FBF7EB; }
.cta .phone-cta{ animation:none; margin-top:.75rem; }
.cta .or{ margin-top:1.25rem; font-size:1rem; }
.cta .or a{
  color:var(--gold-bright);
  font-weight:700;
  text-decoration-color:var(--gold);
  text-underline-offset:3px;
}
.cta-photo{ margin:0 0 2.5rem; max-width:26rem; }
.cta-photo img{
  display:block; width:100%; height:auto;
  border-radius:12px;
  border:1px solid #33302A;
  opacity:.92;
}
.cta-photo figcaption{
  margin-top:.625rem;
  font-size:.9rem;
  font-style:italic;
  color:#8E887A;
}

/* Contact page */
.contact-grid{ max-width:38rem; }
.contact-line{
  font-family:var(--serif);
  font-weight:900;
  font-size:clamp(1.8rem, 6vw, 2.6rem);
  color:var(--ink);
  text-decoration:none;
  display:inline-block;
  line-height:1.2;
}
.contact-line:hover{ color:var(--gold); }
.contact-meta{ margin-top:.5rem; font-size:1rem; }
.form-box{
  margin-top:2.5rem;
  background:var(--cream-deep);
  border:1px solid #E2D7BC;
  border-radius:12px;
  padding:1.5rem 1.25rem;
}
.form-box h3{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.25rem;
  color:var(--ink);
  margin-bottom:.35rem;
}
.form-box p.note{ font-size:.95rem; margin-bottom:1.25rem; }
.form-box iframe{
  width:100%;
  min-height:764px;
  border:none;
  border-radius:8px;
  background:var(--cream);
}
.consent{
  margin-top:1.25rem;
  font-size:.82rem;
  line-height:1.55;
  color:#6A6355;
  max-width:38rem;
}
.consent a{ color:#6A6355; }

/* Services list */
.svc{
  max-width:38rem;
  padding:1.5rem 0;
  border-bottom:1px solid var(--cream-deep);
}
.svc h3{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.25rem;
  color:var(--ink);
  margin-bottom:.4rem;
}
.svc .tag{
  display:inline-block;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#7A6B2E;
  background:#F0E4BE;
  border-radius:3px;
  padding:.15rem .5rem;
  margin-bottom:.5rem;
}

footer{
  background:var(--ink);
  color:#8E887A;
  font-size:.875rem;
  padding:2rem 0 2.25rem;
  border-top:1px solid #2A2721;
}
footer .trades{ font-style:italic; }
footer .legal{ margin-top:.75rem; }
footer .flinks{
  margin-top:.75rem;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
footer .flinks a{
  color:#B5AE9C;
  text-decoration:underline;
  text-underline-offset:3px;
}
footer .flinks a:hover{ color:var(--gold-bright); }

/* Legal pages */
.legal-body{ padding:3rem 0 4rem; }
.legal-body .wrap{ max-width:44rem; }
.legal-body .eff{
  font-size:.95rem;
  font-weight:600;
  color:var(--ink);
  padding-bottom:1.25rem;
  margin-bottom:1.75rem;
  border-bottom:2px solid var(--gold);
  max-width:none;
}
.legal-body h2{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.25rem;
  color:var(--ink);
  margin:2.25rem 0 .75rem;
  max-width:none;
}
.legal-body p{
  font-size:1rem;
  line-height:1.7;
  max-width:none;
  margin-bottom:.875rem;
}
.legal-body p + p{ margin-top:0; }
.legal-body strong{ color:var(--ink); }
.legal-body a{
  color:#7A6B2E;
  text-decoration:underline;
  text-underline-offset:3px;
}
