@import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,500;0,600;1,500;1,600&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  --primary:#5a43d6;
  --secondary:#f4f2ea;
  --page:#fbfaf6;
  --ink:#1f1d33;
  --muted:#56546a;
  --soft:#8a8799;
  --gold:#d8a83a;
  --line:#ece9df;
  --dark:#1f1d33;
  --hatch:repeating-linear-gradient(135deg,#eae6da,#eae6da 11px,#f3f0e8 11px,#f3f0e8 22px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--page);color:var(--ink);font-family:'Work Sans',sans-serif;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:'Spectral',serif;font-weight:600;margin:0;line-height:1.1;}
.serif{font-family:'Spectral',serif;}
.eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);font-weight:600;}
.ph{display:flex;align-items:center;justify-content:center;color:#aaa394;font-size:12px;letter-spacing:.04em;text-align:center;background:var(--hatch);min-height:160px;}

/* buttons */
.btn{display:inline-block;padding:15px 30px;font-size:15px;font-weight:600;cursor:pointer;transition:.2s;border:1px solid var(--primary);border-radius:10px;font-family:'Work Sans',sans-serif;}
.btn-solid{background:var(--primary);color:#fff;}
.btn-solid:hover{opacity:.88;}
.btn-ghost{background:transparent;color:var(--ink);border-color:#d8d3e6;}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);}

/* nav */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 56px;background:rgba(251,250,246,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav.scrolled{box-shadow:0 1px 14px rgba(31,29,51,.06);}
.nav .logo{font-family:'Spectral',serif;font-size:23px;font-weight:600;letter-spacing:-.01em;}
.nav .logo .dot{color:var(--primary);}
.nav-links{display:flex;gap:28px;align-items:center;list-style:none;margin:0;padding:0;font-size:14px;color:var(--muted);}
.nav-links a:hover{color:var(--primary);}
.nav-cta{font-size:14px;padding:11px 22px;}
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.nav-hamburger span{width:24px;height:2px;background:var(--ink);}
.mobile-menu{display:none;flex-direction:column;gap:18px;padding:24px 56px;background:var(--page);border-bottom:1px solid var(--line);}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:15px;color:var(--muted);}

/* layout */
section{padding:80px 56px;}

/* hero */
.hero{padding:80px 56px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;border-bottom:1px solid var(--line);}
.hero-text{display:flex;flex-direction:column;gap:22px;}
.hero-pills{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.hero-pill{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:600;}
.pill-a{background:#fbecc0;color:#6b5400;}
.pill-b{background:#e9e5fb;color:var(--primary);}
.hero-text h1{font-size:56px;letter-spacing:-.015em;line-height:1.08;}
.hero-text p{font-size:17px;line-height:1.65;color:var(--muted);max-width:42ch;margin:0;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;}
.hero-rating{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:14px;color:var(--muted);}
.hero-rating .stars{color:var(--gold);font-size:16px;}
.hero-media{position:relative;}
.hero-img{aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:var(--hatch);}
.hero-img>div{height:100%;}
.hero-photo{width:100%;height:100%;object-fit:cover;}
.quote-bubble{position:absolute;background:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 12px 30px rgba(31,29,51,.12);font-family:'Spectral',serif;font-style:italic;font-size:15px;}
.quote-a{top:18px;right:-14px;}
.quote-b{bottom:18px;left:-14px;background:var(--primary);color:#fff;box-shadow:0 12px 30px rgba(80,60,200,.25);}

/* about (dark) */
.about{background:var(--dark);color:#e9e7f3;display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center;}
.about .eyebrow{color:#e8c66a;}
.about h2{font-family:'Spectral',serif;font-size:34px;line-height:1.25;font-weight:600;}
.about p{font-size:16px;line-height:1.7;color:#b5b2c9;margin:0;}
.about-stats{display:flex;gap:36px;flex-wrap:wrap;margin-top:8px;}
.about-stat .num{font-family:'Spectral',serif;font-size:32px;color:#e8c66a;}
.about-stat .lbl{font-size:13px;color:#9c99b3;}
.about-img{aspect-ratio:1;border-radius:18px;overflow:hidden;background:repeating-linear-gradient(135deg,#2b2945,#2b2945 11px,#26243d 11px,#26243d 22px);color:#5a5775;}
.about-img>div{height:100%;}
.about-photo{width:100%;height:100%;object-fit:cover;}

/* prices */
.prices .section-head{text-align:center;margin-bottom:38px;}
.prices .eyebrow{margin-bottom:8px;}
.prices h2{font-family:'Spectral',serif;font-size:38px;}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.price-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;}
.price-card.featured{background:var(--primary);color:#fff;border-color:transparent;box-shadow:0 16px 40px rgba(80,60,200,.22);}
.price-card .name{font-weight:600;font-size:18px;margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.price-card .badge{font-size:12px;background:#f0d99a;color:#5a4500;padding:3px 9px;border-radius:12px;}
.price-card .price{font-family:'Spectral',serif;font-size:36px;}
.price-card .unit{font-size:15px;color:var(--soft);font-family:'Work Sans',sans-serif;}
.price-card.featured .unit{color:rgba(255,255,255,.75);}
.price-card .desc{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.7;}
.price-card.featured .desc{color:rgba(255,255,255,.9);}

/* testimonials */
.testi h2{font-family:'Spectral',serif;font-size:30px;margin-bottom:24px;}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.testi-card{background:var(--secondary);border-radius:18px;padding:26px;}
.testi-card .stars{color:var(--gold);margin-bottom:10px;}
.testi-card .quote{font-family:'Spectral',serif;font-style:italic;font-size:17px;line-height:1.5;margin-bottom:14px;}
.testi-card .author{font-size:13px;color:var(--soft);}

/* contact + map */
.contact{padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);background:var(--secondary);}
.contact-info{padding:80px 56px;}
.contact-info .eyebrow{margin-bottom:8px;}
.contact-info h2{font-family:'Spectral',serif;font-size:34px;margin-bottom:8px;}
.contact-info .intro{font-size:15px;color:var(--muted);margin:0 0 24px;}
form{display:flex;flex-direction:column;gap:13px;max-width:520px;}
form input,form select,form textarea{padding:15px 16px;border:1px solid #ddd8cc;background:#fff;color:var(--ink);border-radius:10px;font-family:'Work Sans',sans-serif;font-size:15px;outline:none;width:100%;}
form input:focus,form select:focus,form textarea:focus{border-color:var(--primary);}
form textarea{min-height:90px;resize:vertical;}
.btn-submit{margin-top:8px;padding:16px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-family:'Work Sans',sans-serif;font-weight:600;font-size:15px;cursor:pointer;width:100%;}
.map-side{position:relative;background:#e6e2d6;min-height:440px;background-image:repeating-linear-gradient(0deg,rgba(31,29,51,.05) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,rgba(31,29,51,.05) 0 1px,transparent 1px 40px);}
.map-pin{position:absolute;left:47%;top:45%;width:14px;height:14px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 7px rgba(90,70,210,.2);}
.map-card{position:absolute;left:56px;bottom:40px;font-size:14px;line-height:1.7;color:var(--muted);}
.map-card b{font-weight:600;color:var(--ink);}

/* footer */
.site-footer{padding:26px 56px;background:var(--dark);color:#8b88a3;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.site-footer ul{display:flex;gap:20px;list-style:none;margin:0;padding:0;}
.site-footer a:hover{color:#fff;}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:none;}

@media(max-width:768px){
  section{padding:48px 22px;}
  .nav{padding:18px 22px;}
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}
  .hero{grid-template-columns:1fr;padding:48px 22px;gap:32px;}
  .hero-text h1{font-size:38px;}
  .about{grid-template-columns:1fr;gap:28px;}
  .price-grid,.testi-grid{grid-template-columns:1fr;}
  .contact{grid-template-columns:1fr;}
  .contact-info{padding:48px 22px;}
  .map-side{min-height:300px;}
  .site-footer{flex-direction:column;text-align:center;}
}

.wb-brandmark{position:relative;display:inline-flex;align-items:center;}
.wb-brand-img{height:34px;width:auto;max-width:180px;display:block;object-fit:contain;}
.wb-brandmark .wb-list-edit{position:absolute;top:-10px;right:-10px;z-index:10;width:24px;height:24px;border-radius:50%;border:2px solid #fff;background:#3a5a8c;color:#fff;font-size:12px;line-height:1;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.3);opacity:1;transform:none;}
