
:root{
  --ink:#00030C; --ink-soft:#6B6560; --ink-warm:#3D372F;
  --cream:#F1F0EE; --cream-2:#E7E5E1; --champagne:#EFE8DC;
  --line:#DAD7D2;
  --gold:#D3BA97; --gold-l:#E0CDB0; --gold-d:#B0905F; --gold-text:#8A6A38; --gold-bg:#F1F0EE;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --label:'Cinzel',Georgia,serif;
  --sans:'Jost','Helvetica Neue',Arial,sans-serif;
  --pad:clamp(20px,5vw,72px);
  --maxw:1240px;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;background:#fff;color:var(--ink);
  font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{ max-width:100%;display:block; }
a{ color:inherit; }
.container{ width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad); }

.eyebrow{
  font-family:var(--label);font-weight:600;
  font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold-text);margin:0;
}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--sans);font-weight:500;
  font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  padding:18px 36px;border:1px solid var(--ink);cursor:pointer;border-radius:999px;
  text-decoration:none;background:var(--ink);color:var(--cream);
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease;
}
.btn:hover{ background:var(--gold);border-color:var(--gold);color:#fff; }
.btn.ghost{ background:transparent;color:var(--ink); }
.btn.ghost:hover{ background:var(--ink);color:var(--cream);border-color:var(--ink); }
.btn.light{ background:var(--cream);color:var(--ink);border-color:var(--cream); }
.btn.light:hover{ background:var(--gold);border-color:var(--gold);color:#fff; }
.hero .btn,.header-cta{ background:#01030C;border-color:#01030C;color:var(--cream);font-weight:500; }
.cta-dark{ background:#01030C;border-color:#01030C;color:var(--cream);font-weight:500; }
.cta-dark:hover{ background:var(--gold);border-color:var(--gold);color:#fff; }
.hero .btn:hover,.header-cta:hover{ background:var(--gold);border-color:var(--gold);color:#fff; }

/* Top utility bar */
.topbar{
  background:var(--champagne);color:var(--ink-soft);border-bottom:1px solid var(--line);
  font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:16px;padding:9px 16px;white-space:nowrap;
}
.topbar-cta{
  font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--gold);
  color:var(--ink);background:none;padding:0;transition:opacity .2s ease;white-space:nowrap;
}
.topbar-cta:hover{ opacity:.7; }

/* Header */
.topnav{ position:sticky;top:0;z-index:50; }
.site-header{
  background:transparent;border-bottom:1px solid transparent;
  transition:background .3s ease,border-color .3s ease,backdrop-filter .3s ease;
}
.site-header.scrolled{
  background:rgba(255,255,255,.65);
  -webkit-backdrop-filter:saturate(150%) blur(12px);
  backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--line);
}
.header-inner{ display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px; }
.site-logo{ height:42px;width:auto; }
.header-nav{ display:flex;align-items:center;gap:14px; }
.header-nav .navlink{
  font-family:var(--label);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;color:var(--ink);transition:color .2s ease;
}
.header-nav .navlink:hover{ color:var(--gold); }
.header-cta{ padding:11px 26px;font-size:.74rem; }
.header-phone{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.04em;
  text-decoration:none;color:var(--ink);white-space:nowrap;
  padding:10px 20px;border:1px solid var(--ink);border-radius:999px;
  transition:background .2s ease,color .2s ease;
}
.header-phone svg{ width:16px;height:16px;flex:none; }
.header-phone:hover{ background:rgba(0,3,12,.1); }
.header-phone b{ color:var(--ink);font-weight:600; }

/* Rating badge — Google style */
.rating-badge{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 1px 4px rgba(0,3,12,.05);
  padding:9px 16px;border-radius:9px;
}
a.rating-badge:hover{ box-shadow:0 4px 16px rgba(0,3,12,.12);transform:translateY(-2px); }
.hero-badge{
  background:rgba(255,255,255,0.18);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  backdrop-filter:blur(14px) saturate(160%);
  border:1px solid rgba(255,255,255,0.38);
  text-decoration:none;cursor:pointer;
}
.hero-badge:hover{
  background:rgba(255,255,255,0.28);
  transform:translateY(-2px);
}
.rating-badge .g-logo{ width:34px;height:34px;flex:none; }
.hero-badge .g-logo{ background:#fff;border-radius:50%;padding:5px;box-shadow:0 1px 5px rgba(0,3,12,.12); }
.rating-badge .rb-body{ display:flex;flex-direction:column;gap:3px;line-height:1.05; }
.rating-badge .rb-top{ display:flex;align-items:center;gap:8px; }
.rating-badge .rb-top b{ font-family:var(--sans);font-weight:600;font-size:1.1rem;color:var(--ink);letter-spacing:0; }
.rating-badge .stars{ color:#E57029;letter-spacing:.04em;font-size:.98rem; }
.rating-badge .rtxt{
  font-family:var(--sans);font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink-soft);text-align:left;
}

/* HERO */
.hero{
  position:relative;
  margin-top:-72px;
  background-image:url('/lp/assets/hero.png');
  background-size:cover;
  background-position:right top;
  background-repeat:no-repeat;
  min-height:clamp(640px,84vh,840px);
  display:flex;align-items:center;
  padding:clamp(96px,9vw,128px) 0 clamp(48px,7vw,90px);
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,
    rgba(241,240,238,.96) 0%,
    rgba(241,240,238,.88) 32%,
    rgba(241,240,238,.45) 56%,
    rgba(241,240,238,0) 78%);
}
.hero::after{
  content:"";position:absolute;left:0;right:0;top:0;height:210px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(241,240,238,1) 0%,
    rgba(241,240,238,1) 28%,
    rgba(241,240,238,.85) 55%,
    rgba(241,240,238,0) 100%);
}
.hero .container{ position:relative;z-index:2; }
.hero-copy{ max-width:780px; }
.hero h1{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(2.6rem,4.8vw,4rem);line-height:1.14;letter-spacing:-.02em;
  margin:0 0 1.7rem;color:var(--ink-warm);
}
.hero h1 em{ font-style:italic;color:var(--gold-d); }
.hero h1 .hero-br{ display:none; }
@media (min-width:901px){ .hero h1 .hero-br{ display:inline; } }
.hero .subhead{
  font-size:1.14rem;line-height:1.55;color:var(--ink-soft);font-weight:400;
  max-width:44ch;margin:0 0 1.7rem;text-wrap:pretty;
}
.hero-actions{ display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:1.5rem; }
.hero-offer{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--label);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
}
.hero-offer .dot{ width:7px;height:7px;background:var(--gold);transform:rotate(45deg);flex:none; }
.hero-trust{
  display:flex;flex-direction:column;align-items:flex-start;gap:18px;
  margin-top:2.9rem;
}
.hero-trust .trust-points{
  display:flex;flex-direction:column;align-items:flex-start;gap:16px;
  font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--ink-warm);
}
.hero-trust .trust-points span{ display:inline-flex;align-items:center;gap:8px; }
.hero-trust .trust-points span svg{ width:16px;height:16px;flex:none;color:currentColor; }

/* image-slot baseline so empty placeholders look intentional before fill */
image-slot{ background:var(--cream-2); --bg:var(--cream-2); }

@media (max-width:900px){
  .header-nav .navlink,.header-phone{ display:none; }
  .hero{ background-position:72% center; }
  .hero::before{
    background:linear-gradient(90deg,
      rgba(241,240,238,.97) 0%,
      rgba(241,240,238,.92) 45%,
      rgba(241,240,238,.6) 75%,
      rgba(241,240,238,.35) 100%);
  }
}
@media (max-width:768px){
  .header-inner{ height:68px; }
  .hero{ margin-top:-68px; }
  .site-logo{ height:38px; }
  .header-cta{ padding:12px 18px;font-size:.68rem; }
  .hero h1{ font-size:clamp(2.3rem,9vw,3.2rem); }
  .hero .subhead{ font-size:1.06rem; }
  .topbar{ font-size:.58rem;letter-spacing:.12em; }
  .topbar .sep{ margin:0 .4em; }
}
@media (max-width:768px){
  .rating-badge{ width:100%;justify-content:center; }
}
