/* ===== Tokens ===== */
:root{
  --ink: #141414;
  --ink-soft: #1E1E1E;
  --graphite: #2A2A2A;
  --silver: #C7CDD1;
  --silver-dim: #8B9096;
  --wine: #8C2438;
  --wine-light: #B23A52;
  --off-white: #F2F0EC;

  --font-head: 'Space Grotesk', sans-serif;
  --font-body: 'Inter', sans-serif;

  --radius: 4px;
  --wrap: 1140px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--off-white);
  background:var(--ink);
  line-height:1.6;
}
img{max-width:100%; display:block;}
h1,h2,h3{
  font-family:var(--font-head);
  font-weight:600;
  line-height:1.1;
  margin:0 0 .5em;
  color:var(--off-white);
}
h1{font-size:clamp(2.1rem, 5vw, 3.4rem); font-weight:700;}
h2{font-size:clamp(1.5rem, 2.8vw, 2.2rem);}
h3{font-size:1.15rem; margin-bottom:.35em;}
p{margin:0 0 1em; color:var(--silver);}
a{color:inherit;}

.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px;}

.kicker{
  font-family:var(--font-head);
  color:var(--wine-light);
  font-weight:600;
  font-size:.85rem;
  margin:0 0 .6em;
}
.kicker.center{text-align:center;}
.center{text-align:center;}

/* ===== Buttons ===== */
.btn{
  display:inline-block;
  padding:.85em 1.7em;
  border-radius:var(--radius);
  text-decoration:none;
  font-weight:600;
  font-size:.95rem;
  border:1.5px solid transparent;
  font-family:var(--font-head);
  transition:background .2s ease, border-color .2s ease;
}
.btn-primary{background:var(--wine); color:var(--off-white);}
.btn-primary:hover{background:var(--wine-light);}
.btn-ghost{
  border-color:rgba(242,240,236,.35);
  color:var(--off-white);
  margin-left:.75em;
}
.btn-ghost:hover{border-color:var(--off-white);}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:20;
  background:rgba(20,20,20,.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(242,240,236,.08);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px;
}
.brand{display:flex; align-items:center; gap:12px;}
.logo{height:36px; width:auto; border-radius:3px;}
.brand-name{font-family:var(--font-head); font-weight:600; font-size:1.05rem;}
.brand-name em{font-style:normal; color:var(--wine-light);}
.brand-name.small{font-size:.95rem;}
.nav{display:flex; align-items:center; gap:26px; font-weight:500; font-size:.92rem;}
.nav a{text-decoration:none; color:var(--silver);}
.nav-cta{
  background:var(--wine);
  color:var(--off-white) !important;
  padding:.55em 1.1em;
  border-radius:var(--radius);
  font-family:var(--font-head); font-weight:600;
}

/* ===== Hero ===== */
.hero{position:relative; padding:130px 0 80px; overflow:hidden; min-height:520px; display:flex; align-items:center;}
.hero-media{position:absolute; inset:0; z-index:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:center bottom;}
.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(20,20,20,.96) 30%, rgba(20,20,20,.55) 70%, rgba(20,20,20,.25) 100%);
}
.hero-content{position:relative; z-index:1; max-width:640px;}
.hero-content .lead{font-size:1.08rem; max-width:48ch; color:var(--off-white); opacity:.85;}
.hero-actions{margin-top:1.5em;}

/* ===== Services ===== */
.services{padding:90px 0;}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
  margin-top:2.2em;
}
.service{
  border-top:1px solid rgba(242,240,236,.15);
  padding-top:20px;
}
.service-index{
  font-family:var(--font-head);
  color:var(--wine-light);
  font-size:.85rem;
  font-weight:600;
}
.note{
  margin-top:2.5em;
  font-size:.88rem;
  color:var(--silver-dim);
  border-left:2px solid var(--wine);
  padding-left:16px;
  max-width:70ch;
}

/* ===== About ===== */
.about{padding:90px 0;}
.alt-bg{background:var(--ink-soft);}
.about-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
}
.about-image img{
  border-radius:8px;
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
  filter:saturate(1.05);
}

/* ===== Before/After reveal ===== */
.reveal-section{padding:90px 0;}
.reveal-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  margin-top:2.5em;
  align-items:start;
}
.reveal-caption{
  font-family:var(--font-head);
  font-weight:600;
  font-size:1rem;
  color:var(--off-white);
  margin:0 0 .8em;
  text-align:center;
}
.reveal{
  position:relative;
  max-width:100%;
  margin:0 auto;
  aspect-ratio:4/5;
  border-radius:8px;
  overflow:hidden;
  cursor:ew-resize;
  user-select:none;
  box-shadow:0 30px 60px -25px rgba(0,0,0,.6);
}
.reveal img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
}
.reveal-before-wrap{
  position:absolute; inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
  clip-path:inset(0 38% 0 0);
}
.reveal-before-wrap img{
  position:absolute; inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.reveal-handle{
  position:absolute; top:0; bottom:0; left:62%;
  width:3px; background:var(--off-white);
  transform:translateX(-50%);
}
.reveal-handle::before{
  content:"";
  position:absolute; top:50%; left:50%;
  width:44px; height:44px;
  background:var(--wine);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.reveal-arrows{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  color:var(--off-white);
  font-size:.9rem;
  letter-spacing:2px;
}
.reveal-tag{
  position:absolute; top:16px;
  font-family:var(--font-head); font-weight:600; font-size:.78rem;
  background:rgba(20,20,20,.65);
  padding:.4em .8em;
  border-radius:20px;
  color:var(--off-white);
}
.reveal-tag-left{left:16px;}
.reveal-tag-right{right:16px;}

/* ===== Pricing ===== */
.pricing{padding:90px 0; background:var(--ink-soft);}
.price-table{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:2.2em;
}
.price-item{
  border:1px solid rgba(242,240,236,.15);
  border-radius:8px;
  padding:32px 24px;
  text-align:center;
}
.price-item.featured{
  border-color:var(--wine);
  background:rgba(140,36,56,.08);
}
.price-item .price{
  display:block;
  font-family:var(--font-head);
  font-size:1.6rem;
  color:var(--wine-light);
  margin-top:.4em;
}
.price-note{margin-top:2em; font-size:.88rem; color:var(--silver-dim);}

/* ===== Contact ===== */
.contact{padding:90px 0;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.contact-form{
  display:flex; flex-direction:column; gap:16px;
  background:var(--ink-soft);
  padding:32px;
  border-radius:8px;
  border:1px solid rgba(242,240,236,.12);
}
.contact-form label{
  display:flex; flex-direction:column; gap:6px;
  font-weight:600; font-size:.88rem; color:var(--off-white);
}
.contact-form input, .contact-form textarea{
  font-family:var(--font-body);
  font-size:1rem;
  padding:.7em .8em;
  border:1px solid rgba(242,240,236,.2);
  border-radius:4px;
  resize:vertical;
  background:var(--ink);
  color:var(--off-white);
}
.form-hint{font-size:.76rem; color:var(--silver-dim); margin:0;}

/* ===== Footer ===== */
.site-footer{
  background:var(--ink);
  border-top:1px solid rgba(242,240,236,.1);
  padding:28px 0;
}
.footer-inner{
  display:flex; align-items:center; justify-content:space-between;
  font-size:.85rem; color:var(--silver-dim);
}

/* ===== Responsive ===== */
@media (max-width: 860px){
  .about-grid, .contact-grid{grid-template-columns:1fr;}
  .service-grid{grid-template-columns:1fr;}
  .price-table{grid-template-columns:1fr;}
  .reveal-row{grid-template-columns:1fr;}
  .nav{gap:14px; font-size:.82rem;}
  .hero{padding:120px 0 70px;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}
