:root{
  --sage:#6F7F73;
  --sageDark:#5F7368;
  --champ:#E7D6C3;
  --ivory:#FBFAF7;
  --card:#FFFFFF;
  --ink:#1F2422;
  --muted:#5E6763;
  --line:rgba(31,36,34,.10);
  --shadow:0 10px 28px rgba(0,0,0,.06);
  --radius:18px;

  --serif:"DM Serif Display", serif;
  --sans:"Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.6}
a{color:inherit;text-decoration:none}
a:hover{opacity:.9}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.link{text-decoration:underline;text-underline-offset:3px}

/* Header */
.header{position:sticky;top:0;z-index:10;background:rgba(251,250,247,.88);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.brand__name{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.2px}

.nav{position:relative}
.nav__menu{display:flex;gap:18px;align-items:center}
.nav__menu a{font-size:14px;color:var(--muted)}
.nav__menu a:hover{color:var(--ink)}
.nav__cta{
  padding:10px 14px;border-radius:10px;
  background:rgba(95,115,104,.12);
  color:var(--sageDark)!important;
  border:1px solid rgba(95,115,104,.18);
}
.nav__cta:hover{background:rgba(95,115,104,.16)}

.nav__toggle{display:none;width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--card);align-items:center;justify-content:center;flex-direction:column;gap:5px}
.nav__toggle span{display:block;width:18px;height:2px;background:var(--ink);opacity:.85;border-radius:2px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:12px;background:var(--sageDark);color:#fff;font-weight:500;border:1px solid transparent;box-shadow:0 10px 22px rgba(95,115,104,.16)}
.btn:hover{transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--sageDark);border:1px solid rgba(95,115,104,.30);box-shadow:none}

/* Hero */
.hero{padding:56px 0 22px}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:start}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
h1{font-family:var(--serif);font-weight:400;font-size:54px;line-height:1.04;margin:0 0 14px;letter-spacing:-.01em}
.lead{color:var(--muted);font-size:17px;max-width:62ch;margin:0 0 18px}
.lead--sm{font-size:16px}
.hero__buttons{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 16px}

.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--card);padding:8px 10px;border-radius:999px;font-size:13px;color:var(--muted)}

/* Card */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.card--tight{padding:18px}
.card--muted{background:rgba(231,214,195,.18)}
.card h2{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.card p{margin:0 0 10px}
.card__title{font-family:var(--serif);font-weight:400;margin:0 0 10px;font-size:24px}
.divider{height:1px;background:var(--line);margin:14px 0}
.muted{color:var(--muted)}
.small{font-size:12px}

/* Sections */
.section{padding:54px 0}
.section--alt{background:rgba(231,214,195,.20);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section__head{margin-bottom:18px}
.section__head--center{text-align:center}
.section__head h2{font-family:var(--serif);font-weight:400;font-size:36px;margin:0}
.subhead{margin:8px 0 0;color:var(--muted)}
.center{text-align:center}

/* Services */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.serviceCard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.serviceCard h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:0 0 12px;text-align:center}

/* Packages */
.packages3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.package{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-align:center;box-shadow:var(--shadow)}
.package h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 8px}
.price{font-family:var(--serif);font-weight:400;font-size:34px;margin:6px 0 2px;letter-spacing:-.01em}
.package__hours{margin:0;color:var(--muted);font-weight:500}
.package__sub{margin:10px 0 0;color:var(--muted);font-size:13px}
.package--featured{background:var(--sage);color:#fff;border-color:transparent}
.package--featured .price{color:#fff}
.package--featured .package__hours,.package--featured .package__sub{color:rgba(255,255,255,.86)}
.note{color:var(--muted);margin-top:14px}

/* Add-ons */
.addons{margin-top:16px;display:flex;justify-content:center}
.addons__card{
  width:min(760px, 100%);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
}
.addons__card h3{font-family:var(--serif);font-weight:400;margin:0 0 10px;font-size:22px}
.addons__list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.addons__list li{
  display:flex;justify-content:space-between;gap:16px;
  padding:10px 12px;border:1px solid var(--line);border-radius:14px;
  background:rgba(231,214,195,.12);
}
.addons__list strong{color:var(--ink)}

/* About */
.aboutGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}
.aboutText h2{font-family:var(--serif);font-weight:400;font-size:40px;margin:0 0 10px}
.aboutMini{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.mini{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);text-align:center}
.mini h4{margin:0 0 6px;font-size:14px}
.mini p{margin:0;color:var(--muted);font-size:12px}
.aboutSide{display:grid;gap:12px}

/* Checklist */
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding-left:20px;position:relative;color:var(--muted);margin:10px 0}
.checklist li::before{content:"✓";position:absolute;left:0;top:0;color:var(--sageDark);font-weight:600}
.checklist--compact li{margin:8px 0}

/* Inquire */
.inquireGrid{display:grid;grid-template-columns:1fr 1.05fr;gap:18px;align-items:start}
.inquireText h2{font-family:var(--serif);font-weight:400;font-size:40px;margin:0 0 10px}
.form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}
input,textarea{width:100%;margin-top:6px;padding:12px;border-radius:12px;border:1px solid rgba(31,36,34,.14);background:#fff;font-family:var(--sans);font-size:14px;outline:none}
input:focus,textarea:focus{border-color:rgba(95,115,104,.55)}
.formRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* Footer */
.footer{padding:26px 0}
.footer__inner{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:18px}

/* Responsive */
@media (max-width: 980px){
  h1{font-size:44px}
  .hero__grid{grid-template-columns:1fr}
  .cards3,.packages3{grid-template-columns:1fr}
  .aboutGrid{grid-template-columns:1fr}
  .aboutMini{grid-template-columns:1fr}
  .inquireGrid{grid-template-columns:1fr}
}
@media (max-width: 780px){
  .nav__toggle{display:flex}
  .nav__menu{display:none;position:absolute;right:0;top:52px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:8px;min-width:200px}
  .nav__menu.is-open{display:flex}
  .nav__menu a{padding:10px;border-radius:10px}
  .nav__menu a:hover{background:rgba(231,214,195,.22)}
  .formRow{grid-template-columns:1fr}
  .addons__list li{flex-direction:column;align-items:flex-start}
}


/* Hero media */
.heroMedia{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.heroMedia__item{
  margin:0;
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  background: var(--card);
  box-shadow: var(--shadow);
}
.heroMedia__item img{
  width:100%;
  height:240px;
  object-fit:cover;
  display:block;
}
@media (max-width: 980px){
  .heroMedia{grid-template-columns:1fr}
  .heroMedia__item img{height:220px}
}
