:root{
  --ink: #040503;
  --ink-soft: #4a4038;
  --frame: #b18742;
  --frame-deep: #8c6a30;
  --frame-light: #c9a367;
  --bg: #e0cdbc;
  --bg-deep: #d2bca4;
  --paper: #f3e9db;
  --dark: #241a10;
  --dark-soft: #f1e6d6;
  --max: 1120px;
  --font-body: 'Inter', sans-serif;
  --font-display: 'Poppins', sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  font-weight:400;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:var(--font-display); font-weight:700; }
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}
section{ padding:88px 0; }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--frame-deep); margin-bottom:18px;
}
.eyebrow::before{ content:''; width:22px; height:1.5px; background:var(--frame); }
.section-head{ max-width:640px; margin-bottom:44px; }
.section-head-center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head-center .eyebrow{ justify-content:center; }
h2{ font-size:clamp(26px,3.6vw,36px); line-height:1.22; color:var(--ink); }
.section-lead{ margin-top:14px; font-size:16px; color:var(--ink-soft); line-height:1.7; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--frame); color:var(--dark);
  padding:16px 30px; border-radius:100px; text-decoration:none;
  font-family:var(--font-display); font-weight:700; font-size:15.5px; letter-spacing:0.2px;
  border:1px solid var(--frame); transition:transform .15s ease, background .2s ease, box-shadow .2s ease;
  box-shadow:0 14px 26px -14px rgba(36,26,16,0.5);
}
.btn:hover{ background:var(--frame-deep); transform:translateY(-2px); }
.btn-block{ display:flex; width:100%; }

.ph{
  background: repeating-linear-gradient(135deg, var(--bg-deep), var(--bg-deep) 10px, #c7ad91 10px, #c7ad91 20px);
  border: 1.5px dashed var(--frame);
  color: #5c452a;
  font-size: 0.86rem;
  font-weight:600;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px 16px;
}
.ph span{ max-width:280px; }

.hero{ position:relative; overflow:hidden; padding:72px 0 48px; }
.hero-line-svg{ position:absolute; top:0; right:-6%; width:58%; height:100%; opacity:0.18; pointer-events:none; }
@media(max-width:899px){ .hero-line-svg{ display:none; } }
.hero-grid{ display:grid; grid-template-columns:1fr; gap:44px; align-items:center; }
@media(min-width:900px){ .hero-grid{ grid-template-columns:1.05fr 0.95fr; gap:56px; } }
h1{
  font-size:clamp(32px, 5vw, 50px); line-height:1.14; color:var(--ink); letter-spacing:-0.4px;
}
.h1-lead{ display:block; }
.h1-accent{ display:block; margin-top:6px; color:var(--frame-deep); font-weight:600; }
.hero-sub{ margin-top:22px; font-size:17.5px; color:var(--ink-soft); max-width:480px; line-height:1.7; }
.hero-ctas{ margin-top:32px; }
.hero-note{ margin-top:20px; font-size:13.5px; color:var(--ink-soft); font-weight:600; }
.hero-photo-wrap{ position:relative; }
.hero-photo-frame{
  position:relative; border-radius:20px; overflow:hidden;
  background:var(--paper); aspect-ratio:4/5; padding:14px;
  border:1.5px solid var(--frame);
  box-shadow:0 30px 60px -20px rgba(36,26,16,0.35);
}
.hero-photo-frame img{ width:100%; height:100%; object-fit:cover; object-position:center 38%; border-radius:10px; display:block; }

.stat-strip{
  background:linear-gradient(135deg, var(--frame) 0%, var(--frame-deep) 100%);
  padding:38px 0;
}
.stat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px 20px; text-align:center; }
@media(min-width:760px){ .stat-grid{ grid-template-columns:repeat(4,1fr); } }
.stat-item{
  display:flex; flex-direction:column; gap:6px; padding:16px 14px; border-radius:12px;
  background:rgba(4,5,3,0.08); border:1px solid rgba(4,5,3,0.16);
}
.stat-num{ font-family:var(--font-display); font-weight:700; font-size:clamp(20px,3vw,27px); color:var(--dark); }
.stat-label{ font-size:12.5px; text-transform:uppercase; font-weight:700; letter-spacing:0.3px; color:#2c2013; }

.pains{ background:var(--dark); color:var(--dark-soft); }
.pains .eyebrow{ color:var(--frame-light); }
.pains .eyebrow::before{ background:var(--frame-light); }
.pains h2{ color:var(--dark-soft); }
.pain-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
@media(min-width:760px){ .pain-grid{ grid-template-columns:1fr 1fr; } }
.pain-item{
  background:rgba(241,230,214,0.05); padding:28px 26px; border-radius:14px;
  border:1px solid rgba(177,135,66,0.4);
}
.pain-item p{ font-size:16px; line-height:1.65; }
.pain-mark{ color:var(--frame-light); display:block; margin-bottom:10px; }

.reframe{ text-align:center; position:relative; overflow:hidden; padding:110px 0; }
.reframe-bg{
  position:absolute; inset:0; background-size:cover; background-position:65% 18%; filter:saturate(0.95);
  background-image:url('/assets/img/reframe-bg.jpg');
  background-image:image-set(url('/assets/img/reframe-bg.webp') type('image/webp'), url('/assets/img/reframe-bg.jpg') type('image/jpeg'));
}
.reframe-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(36,26,16,0.42) 0%, rgba(36,26,16,0.58) 100%); }
.reframe .wrap{ max-width:740px; position:relative; z-index:1; }
.reframe-line{ width:60px; height:2px; background:var(--frame-light); margin:0 auto 28px; }
.reframe blockquote{
  font-family:var(--font-display); font-weight:700; font-size:clamp(22px,3.2vw,32px); line-height:1.42; color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,0.55);
}
.reframe p.after{ margin-top:22px; color:#f1e8db; font-size:16px; max-width:520px; margin-left:auto; margin-right:auto; text-shadow:0 1px 12px rgba(0,0,0,0.5); }

.about-grid{ display:grid; grid-template-columns:1fr; gap:40px; align-items:center; }
@media(min-width:900px){ .about-grid{ grid-template-columns:0.8fr 1.2fr; } }
.about-photo{
  border-radius:18px; overflow:hidden; aspect-ratio:4/5; background:var(--paper); padding:14px;
  border:1.5px solid var(--frame);
}
.about-photo img{ width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }
.about-body p{ margin-top:14px; font-size:16px; color:var(--ink-soft); line-height:1.75; }
.stars{ margin-top:22px; color:var(--frame-deep); font-size:1.1rem; letter-spacing:2px; }
.stars small{ display:block; color:var(--ink); font-size:0.95rem; letter-spacing:0; margin-top:4px; font-weight:700; }
.review-shot{ margin-top:16px; width:100%; max-width:340px; border-radius:10px; border:1.5px solid var(--frame); display:block; }

.content{ background:var(--bg-deep); }

.testimonials{ }
.testi-carousel{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; -webkit-overflow-scrolling:touch; }
.testi-shot{ flex:0 0 auto; width:260px; border-radius:14px; scroll-snap-align:start; overflow:hidden; border:1.5px solid var(--frame); background:var(--paper); }
.testi-shot img{ width:100%; height:auto; display:block; }
.excerpt-shot{ width:300px; box-shadow:0 16px 30px -18px rgba(36,26,16,0.35); }
@media(min-width:760px){ .excerpt-shot{ width:340px; } }
.testi-note{ margin-top:24px; text-align:center; color:var(--ink-soft); font-size:15px; }
.testi-more{ margin-top:14px; text-align:center; }
.google-link{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--dark); background:var(--frame); text-decoration:none;
  padding:13px 22px; border-radius:100px; transition:transform .2s ease, background .2s ease;
}
.google-link:hover{ background:var(--frame-deep); transform:translateY(-2px); }

.bridge{ background:var(--paper); border-top:1px solid rgba(177,135,66,0.3); border-bottom:1px solid rgba(177,135,66,0.3); }
.bridge .wrap{ max-width:640px; text-align:center; }
.bridge p{ margin-top:14px; font-size:16.5px; color:var(--ink-soft); line-height:1.7; }

.price{ }
.price .wrap{ max-width:560px; text-align:center; }
.price-box{
  background:var(--dark); color:#fff; border-radius:18px; padding:44px 32px; margin-top:8px;
  border:1.5px solid var(--frame);
}
.price-anchor{ color:#c9bba6; font-size:1rem; text-decoration:line-through; opacity:0.8; }
.price-main{ font-family:var(--font-display); font-weight:700; font-size:2.8rem; color:#fff; margin:10px 0 4px; }
.price-caption{ color:#dccdb6; font-size:0.98rem; }
.price-box .btn{ margin-top:26px; }

.faq-list{ max-width:760px; }
.faq-item{ border-bottom:1px solid rgba(177,135,66,0.4); }
.faq-item:first-child{ border-top:1px solid rgba(177,135,66,0.4); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:22px 0; display:flex; justify-content:space-between; align-items:center;
  font-family:var(--font-display); font-size:17.5px; color:var(--ink); font-weight:700; gap:20px;
}
.faq-q .icon{ font-size:20px; color:var(--frame-deep); flex-shrink:0; transition:transform .25s ease; }
.faq-item.open .faq-q .icon{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-item.open .faq-a{ max-height:220px; }
.faq-a p{ padding-bottom:22px; color:var(--ink-soft); font-size:15.5px; line-height:1.7; max-width:620px; }

.cta-final{ background:var(--dark); color:#fff; text-align:center; }
.cta-final h2{ color:#fff; max-width:24ch; margin:0 auto; }
.cta-final .btn{ margin-top:28px; }

.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, var(--frame-light), var(--frame));
  z-index:9999; transition:width .08s linear;
}

.sticky-cta{
  position:fixed; left:0; right:0; bottom:-100px; z-index:900;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  background:var(--dark); color:#fff; padding:12px 18px;
  box-shadow:0 -12px 30px -10px rgba(0,0,0,0.35);
  transition:bottom .35s cubic-bezier(.22,1,.36,1);
}
.sticky-cta.show{ bottom:0; }
.sticky-cta-price{ font-family:var(--font-display); font-weight:700; font-size:17px; }
.sticky-cta-price small{ display:block; font-family:var(--font-body); font-size:11px; color:#cbbca4; font-weight:600; }
.sticky-cta .btn{ padding:11px 20px; font-size:14px; white-space:nowrap; }
@media(min-width:900px){ .sticky-cta{ display:none; } }

.hero-photo-frame, .about-photo{ transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease; }
.hero-photo-frame:hover, .about-photo:hover{ transform:translateY(-4px); box-shadow:0 40px 70px -24px rgba(36,26,16,0.42); }

.pain-mark{ display:inline-flex; align-items:center; justify-content:center; }
.pain-mark svg{ width:30px; height:24px; }

@keyframes ctaPulse{
  0%{ box-shadow:0 14px 26px -14px rgba(36,26,16,0.5), 0 0 0 0 rgba(177,135,66,0.45); }
  70%{ box-shadow:0 14px 26px -14px rgba(36,26,16,0.5), 0 0 0 14px rgba(177,135,66,0); }
  100%{ box-shadow:0 14px 26px -14px rgba(36,26,16,0.5), 0 0 0 0 rgba(177,135,66,0); }
}
.price-box .btn, .cta-final .btn{ animation:ctaPulse 2.6s ease-out infinite; }
.price-box .btn:hover, .cta-final .btn:hover{ animation:none; }
@media (prefers-reduced-motion: reduce){
  .price-box .btn, .cta-final .btn{ animation:none; }
}

.testi-carousel-wrap{ position:relative; }
.testi-carousel-wrap::after{
  content:''; position:absolute; top:0; right:0; bottom:8px; width:56px;
  background:linear-gradient(90deg, rgba(224,205,188,0), var(--bg));
  pointer-events:none;
}
.testi-dots{ display:flex; gap:7px; margin-top:14px; justify-content:center; }
.testi-dots span{ width:7px; height:7px; border-radius:50%; background:rgba(140,106,48,0.3); transition:background .25s ease, transform .25s ease; }
.testi-dots span.active{ background:var(--frame-deep); transform:scale(1.3); }

.stat-num .count{ font-variant-numeric:tabular-nums; }

.stat-grid [data-reveal]:nth-child(1){ transition-delay:0s; }
.stat-grid [data-reveal]:nth-child(2){ transition-delay:.07s; }
.stat-grid [data-reveal]:nth-child(3){ transition-delay:.14s; }
.stat-grid [data-reveal]:nth-child(4){ transition-delay:.21s; }
.hero-grid [data-reveal]:nth-child(2){ transition-delay:.12s; }

[data-reveal]{
  opacity:0; transform:translateY(32px) scale(0.98);
  transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
  will-change:opacity, transform;
}
[data-reveal].in{ opacity:1; transform:translateY(0) scale(1); }
.pain-grid [data-reveal]{ transform:translateX(-44px) scale(0.98); }
.pain-grid [data-reveal]:nth-child(even){ transform:translateX(44px) scale(0.98); }
.pain-grid [data-reveal].in{ transform:translateX(0) scale(1); }
.pain-grid [data-reveal]:nth-child(1){ transition-delay:0s; }
.pain-grid [data-reveal]:nth-child(2){ transition-delay:.08s; }
.pain-grid [data-reveal]:nth-child(3){ transition-delay:.16s; }
.pain-grid [data-reveal]:nth-child(4){ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}

.site-footer{ background:var(--dark); padding:28px 0; text-align:center; }
.site-footer .wrap{ max-width:640px; }
.footer-crp{ color:#e7dbca; font-size:13px; font-weight:600; margin-bottom:8px; }
.footer-links{ font-size:12.5px; color:#c9bca6; display:flex; align-items:center; justify-content:center; gap:10px; }
.footer-links a{ color:#e7dbca; text-decoration:underline; text-underline-offset:3px; }
.footer-links a:hover{ color:var(--frame-light); }
.footer-links span{ opacity:0.5; }

.pain-lead{ margin-top:26px; color:#dccdb6; text-align:center; }
.eyebrow-light{ color:#c9a367; }
