/* Lifecore — calm & modern design system */
:root {
  /* Lifecore "Live Fully" brand — sage greens + charcoal-navy on cream */
  --sage-900:#3a4a3f; --sage-800:#4a5d4d; --sage-700:#5f7562;
  --sage-600:#7a967f; --sage-500:#8ca896; --sage-300:#b3c7b6;
  --sage-100:#e4ece2; --sage-50:#f0f4ee;
  --slate-900:#2e3a43; --slate-800:#38454f; --slate-700:#48586230;
  --sand-100:#f4f1ea; --sand-200:#e9e4d8; --sand-300:#d9dcdd;
  --clay:#8ca896; --clay-dark:#5f7562;
  --ink:#2e3a43; --muted:#6c7770; --line:#e0e3dd;
  --white:#ffffff; --cream:#f6f3ec;
  --ok:#4b8c62; --warn:#c58b3c; --err:#b4553f;
  --radius:16px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(47,59,50,.05), 0 12px 32px -12px rgba(47,59,50,.18);
  --shadow-sm:0 1px 2px rgba(47,59,50,.06), 0 4px 14px -8px rgba(47,59,50,.15);
  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; font-family:var(--font); color:var(--ink);
  background:var(--cream); line-height:1.6; -webkit-font-smoothing:antialiased;
}
h1,h2,h3 { font-family:var(--serif); font-weight:600; line-height:1.15; color:var(--sage-900); letter-spacing:-.01em; }
h1 { font-size:clamp(2.4rem,5vw,3.6rem); margin:0 0 .4em; }
h2 { font-size:clamp(1.7rem,3.2vw,2.4rem); margin:0 0 .5em; }
h3 { font-size:1.25rem; margin:0 0 .4em; }
p { margin:0 0 1em; }
a { color:var(--sage-700); text-decoration:none; }
a:hover { color:var(--clay-dark); }
img { max-width:100%; display:block; }
.container { width:min(1120px,92%); margin:0 auto; }
.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:.78rem; font-weight:600; color:var(--clay-dark); margin-bottom:1rem; }
.muted { color:var(--muted); }
.center { text-align:center; }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:.98rem;
  padding:.8rem 1.5rem; border-radius:999px; border:1.5px solid transparent; cursor:pointer;
  transition:transform .12s ease, box-shadow .2s ease, background .2s ease; font-family:var(--font); }
.btn:active { transform:translateY(1px); }
.btn-primary { background:var(--sage-700); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover { background:var(--sage-800); color:#fff; }
.btn-secondary { background:transparent; color:var(--sage-800); border-color:var(--sage-300); }
.btn-secondary:hover { background:var(--sage-50); color:var(--sage-900); }
.btn-clay { background:var(--clay); color:#fff; }
.btn-clay:hover { background:var(--clay-dark); color:#fff; }
.btn-block { width:100%; justify-content:center; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* Header */
.site-header { position:sticky; top:0; z-index:50; background:rgba(251,250,246,.85);
  backdrop-filter:saturate(180%) blur(12px); border-bottom:1px solid var(--line); }
.nav { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; }
.brand { display:flex; align-items:center; gap:.65rem; color:var(--slate-900); }
.brand-mark { width:46px; height:26px; flex:none; }
.brand-word { display:flex; flex-direction:column; line-height:1; }
.brand-word .name { font-family:var(--font); font-weight:700; font-size:1.15rem; letter-spacing:.22em; color:var(--slate-900); }
.brand-word .name .bars { color:var(--sage-600); }
.brand-word .tag { font-family:var(--font); font-weight:600; font-size:.56rem; letter-spacing:.34em; color:var(--sage-600); margin-top:.28rem; }
.brand:hover { color:var(--slate-900); }
.nav-links { display:flex; align-items:center; gap:1.8rem; }
.nav-links a { color:var(--sage-800); font-weight:500; font-size:.96rem; }
.nav-links a:hover { color:var(--clay-dark); }
.nav-toggle { display:none; background:none; border:0; cursor:pointer; }
@media (max-width:760px){
  .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column;
    align-items:flex-start; gap:1rem; padding:1.2rem 4%; background:var(--cream); border-bottom:1px solid var(--line); }
  .nav-links.open { display:flex; }
  .nav-toggle { display:block; }
}

/* Hero */
.hero { position:relative; overflow:hidden;
  background:radial-gradient(1200px 500px at 78% -8%, var(--sage-100), transparent 60%),
             linear-gradient(180deg, var(--cream), var(--sand-100)); }
.hero-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; padding:5rem 0 4.5rem; }
.hero-lead { font-size:1.2rem; color:var(--sage-800); max-width:34ch; }
.hero-cta { display:flex; gap:1rem; flex-wrap:wrap; margin-top:2rem; }
.hero-art { position:relative; aspect-ratio:1/1; border-radius:24px;
  background:linear-gradient(160deg,var(--sage-500),var(--sage-700)); box-shadow:var(--shadow);
  display:flex; align-items:center; justify-content:center; }
.hero-badges { display:flex; gap:1.4rem; margin-top:2.4rem; flex-wrap:wrap; }
.hero-badge { font-size:.9rem; color:var(--sage-800); display:flex; align-items:center; gap:.5rem; }
.hero-badge b { color:var(--sage-900); }
@media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; gap:2rem; padding:3.2rem 0; } .hero-art{ max-width:340px; } }

/* Sections */
section { padding:4.5rem 0; }
.section-head { max-width:640px; margin:0 auto 3rem; }
.section-head.center { text-align:center; }

/* About */
.about-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:3rem; align-items:center; }
.portrait { aspect-ratio:4/5; border-radius:20px; background:linear-gradient(160deg,var(--sand-300),var(--clay));
  box-shadow:var(--shadow); display:flex; align-items:flex-end; padding:1.4rem; color:#fff; font-weight:600; }
.tag-row { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }
.tag { background:var(--sage-100); color:var(--sage-800); border-radius:999px; padding:.35rem .9rem; font-size:.82rem; font-weight:600; }
@media (max-width:820px){ .about-grid{ grid-template-columns:1fr; } .portrait{ max-width:320px; } }

/* Values / pillars */
.pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.pillar { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem; box-shadow:var(--shadow-sm); }
.pillar .ic { width:44px; height:44px; border-radius:12px; background:var(--sage-100); display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
@media (max-width:820px){ .pillars{ grid-template-columns:1fr; } }

/* Services */
.services { background:linear-gradient(180deg,var(--sand-100),var(--cream)); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.service-card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.9rem; display:flex; flex-direction:column; box-shadow:var(--shadow-sm); transition:transform .15s ease, box-shadow .2s ease; }
.service-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.service-card h3 { margin-bottom:.25rem; }
.service-meta { display:flex; align-items:baseline; gap:.5rem; margin:.4rem 0 1rem; }
.price { font-family:var(--serif); font-size:1.7rem; color:var(--sage-900); font-weight:600; }
.per { color:var(--muted); font-size:.9rem; }
.service-card p { color:var(--muted); flex:1; }
@media (max-width:820px){ .service-grid{ grid-template-columns:1fr; } }

/* CTA band */
.cta-band { background:linear-gradient(160deg,var(--sage-700),var(--sage-900)); color:#fff; border-radius:24px;
  padding:3.2rem; text-align:center; box-shadow:var(--shadow); }
.cta-band h2 { color:#fff; }
.cta-band p { color:var(--sage-100); max-width:52ch; margin:0 auto 1.8rem; }

/* Footer */
.site-footer { background:var(--sage-900); color:var(--sage-100); padding:3rem 0 2rem; margin-top:2rem; }
.footer-grid { display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.site-footer a { color:var(--sage-100); }
.site-footer a:hover { color:#fff; }
.footer-brand { font-family:var(--serif); font-size:1.3rem; color:#fff; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:2rem; padding-top:1.2rem; font-size:.85rem; color:var(--sage-300); }

/* Forms & booking */
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.8rem; box-shadow:var(--shadow-sm); }
label { display:block; font-weight:600; font-size:.9rem; margin:0 0 .4rem; color:var(--sage-900); }
input, textarea, select { width:100%; padding:.7rem .85rem; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  font-family:var(--font); font-size:1rem; background:var(--white); color:var(--ink); }
input:focus, textarea:focus, select:focus { outline:none; border-color:var(--sage-500); box-shadow:0 0 0 3px var(--sage-100); }
.field { margin-bottom:1.1rem; }
.hint { font-size:.82rem; color:var(--muted); margin-top:.35rem; }

.steps { display:flex; gap:.5rem; margin-bottom:2rem; flex-wrap:wrap; }
.step { display:flex; align-items:center; gap:.5rem; font-size:.9rem; color:var(--muted); }
.step .n { width:26px; height:26px; border-radius:50%; background:var(--sage-100); color:var(--sage-700);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; }
.step.active { color:var(--sage-900); font-weight:600; }
.step.active .n { background:var(--sage-700); color:#fff; }
.step.done .n { background:var(--ok); color:#fff; }

.svc-options { display:grid; gap:1rem; }
.svc-option { display:flex; justify-content:space-between; gap:1rem; align-items:center; text-align:left;
  border:1.5px solid var(--line); border-radius:var(--radius); padding:1.1rem 1.3rem; background:var(--white); cursor:pointer; width:100%; }
.svc-option:hover { border-color:var(--sage-500); background:var(--sage-50); }
.svc-option.selected { border-color:var(--sage-700); background:var(--sage-50); box-shadow:0 0 0 3px var(--sage-100); }
.svc-option .name { font-weight:600; color:var(--sage-900); }
.svc-option .desc { font-size:.86rem; color:var(--muted); margin-top:.2rem; }

.day-list { display:flex; flex-direction:column; gap:1.4rem; }
.day-block .day-label { font-weight:600; color:var(--sage-900); margin-bottom:.6rem; }
.slot-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:.6rem; }
.slot { padding:.6rem; border:1.5px solid var(--line); border-radius:var(--radius-sm); background:#fff;
  cursor:pointer; font-weight:600; font-size:.9rem; color:var(--sage-800); text-align:center; }
.slot:hover { border-color:var(--sage-500); background:var(--sage-50); }
.slot.selected { background:var(--sage-700); color:#fff; border-color:var(--sage-700); }

.notice { padding:.9rem 1.1rem; border-radius:var(--radius-sm); font-size:.92rem; margin-bottom:1rem; }
.notice.info { background:var(--sage-50); color:var(--sage-800); border:1px solid var(--sage-100); }
.notice.err { background:#fbeeea; color:var(--err); border:1px solid #f0d5cd; }
.notice.ok { background:#eaf3ec; color:var(--ok); border:1px solid #cfe6d5; }

.badge { display:inline-flex; align-items:center; gap:.35rem; padding:.25rem .7rem; border-radius:999px; font-size:.78rem; font-weight:600; }
.badge.pending { background:#fbf1e0; color:var(--warn); }
.badge.confirmed { background:#eaf3ec; color:var(--ok); }
.badge.cancelled { background:#f6e7e2; color:var(--err); }
.badge.completed { background:var(--sage-100); color:var(--sage-700); }
.badge.paid { background:#eaf3ec; color:var(--ok); }
.badge.unpaid { background:#fbf1e0; color:var(--warn); }

.spinner { width:22px; height:22px; border:3px solid var(--sage-100); border-top-color:var(--sage-700);
  border-radius:50%; animation:spin .8s linear infinite; margin:1.5rem auto; }
@keyframes spin { to { transform:rotate(360deg); } }
.hidden { display:none !important; }
