:root { color-scheme: light; }
body { margin:0; font-family: Figtree, Segoe UI, system-ui, sans-serif; background:#F5F9F6; color:#102418; line-height:1.5; }
a { color:#1A4328; }
header, footer { background:#1A4328; color:#fff; }
header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 24px; flex-wrap:wrap; }
header nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px 0; }
header a { color:#fff; text-decoration:none; margin-right:14px; }
.cta-row { display:flex; flex-wrap:wrap; gap:12px; margin:16px 0; }
footer .f-nav { margin-top:14px; }
footer .f-nav a { margin-right:14px; display:inline-block; }
.cta { background:#EBD553; color:#102418; padding:10px 16px; border-radius:10px; font-weight:700; text-decoration:none; }
.choices { display:flex; flex-direction:column; gap:12px; margin:28px 0 8px; }
a.choice { display:block; background:#1A4328; border:1px solid #1A4328; border-left:4px solid #EBD553; border-radius:12px; padding:16px 18px; text-decoration:none; color:#fff; }
a.choice:hover { border-color:#EBD553; }
a.choice strong { display:block; font-size:1.05rem; }
a.choice span { display:block; margin-top:4px; color:#EBD553; font-size:0.95rem; }
.more { margin:22px 0 0; }
.more a { color:#1A4328; font-weight:600; text-decoration:none; }
.more a:hover { text-decoration:underline; }
.upgrade-note { margin:0 0 22px; text-align:center; font-size:1.02rem; color:#4A6756; line-height:1.5; }
.upgrade-note button { border:0; padding:0; background:none; color:#1A4328; font:inherit; font-weight:700; text-decoration:underline; cursor:pointer; }
.upgrade-note button:hover, .upgrade-note button:focus-visible { color:#0F2418; }
.brand { margin:0 0 18px; text-align:center; }
.brand img { display:block; height:96px; width:auto; margin:0 auto; }
.modal { position:fixed; inset:0; z-index:40; display:none; align-items:center; justify-content:center; padding:20px; }
.modal.is-open { display:flex; }
.modal-backdrop { position:absolute; inset:0; background:rgba(16,36,24,0.55); }
.modal-card { position:relative; z-index:1; width:min(560px,100%); max-height:min(88vh,720px); overflow:auto; background:#fff; color:#102418; border-radius:14px; box-shadow:0 16px 40px rgba(16,36,24,0.28); padding:16px 20px 24px; }
.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin:0 0 12px; }
.modal-card h2 { margin:0; padding-top:6px; font-size:1.45rem; line-height:1.25; color:#1A4328; }
.modal-close { flex:0 0 auto; width:40px; height:40px; border:0; border-radius:10px; background:#ECF4EE; color:#1A4328; font-size:22px; line-height:1; cursor:pointer; }
.modal-card p, .modal-card li { font-size:0.98rem; line-height:1.55; }
.modal-card p { margin:0 0 12px; }
.modal-card ol { margin:0 0 16px; padding-left:1.25rem; }
.modal-visits { margin:16px 0; padding:12px 14px; background:#EBD553; border-radius:10px; color:#102418; }
.modal-close:hover, .modal-close:focus-visible { background:#D4E5DA; }
.modal-done { display:inline-block; margin-top:8px; background:#1A4328; color:#fff; padding:10px 16px; border:0; border-radius:10px; font-weight:700; cursor:pointer; }
.modal-done:hover, .modal-done:focus-visible { background:#0F2418; }
body.modal-open { overflow:hidden; }
main { max-width:760px; margin:0 auto; padding:32px 20px 64px; }
h1 { font-size:2.1rem; line-height:1.2; margin:0 0 12px; }
h1.welcome { text-align:center; }
h2 { font-size:1.35rem; margin:28px 0 8px; }
.lead { font-size:1.1rem; color:#4A6756; }
section { margin:24px 0; }
.band { padding:8px 0; }
ul { padding-left:1.2rem; }
footer { padding:24px; font-size:14px; }
footer a { color:#EBD553; }
.pillars { display:grid; gap:12px; margin:16px 0 8px; }
@media (min-width:640px) { .pillars { grid-template-columns:1fr 1fr; } }
.pillar { background:#fff; border:1px solid #D4E5DA; border-radius:12px; padding:14px 16px; }
.pillar strong { display:block; color:#1A4328; margin-bottom:4px; }
.photo-band {
  position: relative; margin: 32px 0; min-height: 200px; border-radius: 16px; overflow: hidden;
  background: #0F2418 center/cover no-repeat; color: #fff;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 28px 24px;
}
.photo-band::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(26,67,40,.28) 0%, rgba(7,20,12,.9) 100%);
}
.photo-band h2, .photo-band p { position: relative; margin: 0; }
.photo-band h2 { font-size: 1.7rem; line-height: 1.2; margin-bottom: 6px; }
.photo-band p { color: rgba(255,255,255,.88); font-size: 1.02rem; }
.quote {
  background: #EBD553; color: #1A4328; border-radius: 14px;
  padding: 16px 18px; font-size: 1.15rem; font-weight: 700; line-height: 1.35;
  margin: 16px 0;
}
.studio-card {
  background: #fff; border: 1px solid #D4E5DA; border-radius: 14px;
  padding: 16px 18px; margin: 16px 0;
}
.studio-card strong { display: block; color: #1A4328; }
.process { list-style: none; padding: 0; margin: 16px 0 8px; }
.process li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; margin: 0 0 18px; }
.process .n {
  width: 32px; height: 32px; border-radius: 10px; background: #1A4328; color: #fff;
  display: flex; align-items: center; justify-content: center; font-weight: 700;
}
.process li.featured .n { background: #0F2418; color: #EBD553; }
.process li.featured { background: #fff; border: 1px solid #D4E5DA; border-radius: 14px; padding: 14px 14px 14px 12px; }
.process li > div > strong:first-child { display: block; color: #1A4328; }
.process p { margin: 8px 0 0; }
.cta-panel { margin: 36px 0 8px; padding: 22px 20px; background: #1A4328; color: #fff; border-radius: 16px; }
.cta-panel h2 { margin: 0 0 8px; color: #fff; }
.cta-panel p { color: rgba(255,255,255,.88); }
.cta-panel .cta { display: inline-block; margin-top: 8px; }
.promo-box { background:#EBD553; border-radius:12px; padding:16px 18px; margin:20px 0; color:#102418; }
.promo-box .code { font-size:1.85rem; font-weight:800; letter-spacing:0.08em; margin:6px 0 0; }
.steps { padding-left:1.2rem; }
.steps li { margin:0 0 10px; }
.contact-form label { display:block; font-weight:600; margin:14px 0 6px; color:#1A4328; }
.contact-form .optional { font-weight:500; color:#4A6756; }
.contact-form input, .contact-form textarea {
  width:100%; box-sizing:border-box; padding:10px 12px;
  border:1px solid #D4E5DA; border-radius:10px; font:inherit; background:#fff; color:#102418;
}
.contact-form textarea { min-height:140px; resize:vertical; }
.contact-form button[type=submit] {
  margin-top:16px; background:#EBD553; color:#102418; border:0;
  padding:10px 16px; border-radius:10px; font-weight:700; cursor:pointer; font:inherit;
}
.contact-form button[type=submit]:disabled { opacity:0.65; cursor:wait; }
.hp { position:absolute; left:-9999px; height:0; overflow:hidden; }
.form-status { margin-top:12px; }
.form-status.ok { color:#1A4328; font-weight:600; }
.form-status.err { color:#8B2E2E; }
.clinics-page { max-width:920px; }
.clinic-hero {
  margin:0 0 36px; padding:34px 28px; border-radius:18px;
  background:linear-gradient(135deg,#1A4328 0%,#2D6240 100%); color:#fff;
}
.clinic-hero h1 { font-size:clamp(2.1rem,6vw,3.4rem); margin-bottom:14px; }
.clinic-hero .lead { max-width:720px; color:rgba(255,255,255,.88); }
.clinic-hero .cta { display:inline-block; margin-top:8px; }
.eyebrow {
  margin:0 0 8px; color:#8B6F00; font-size:.78rem; font-weight:800;
  letter-spacing:.1em; text-transform:uppercase;
}
.clinic-hero .eyebrow { color:#EBD553; }
.clinic-list { display:grid; gap:18px; margin-top:18px; }
.clinic-card {
  background:#fff; border:1px solid #D4E5DA; border-left:6px solid #EBD553;
  border-radius:16px; padding:22px 22px 24px; box-shadow:0 10px 26px rgba(16,36,24,.08);
}
.clinic-card h3 { margin:0 0 8px; color:#1A4328; font-size:1.55rem; }
.clinic-facts { list-style:none; padding:0; margin:18px 0; display:grid; gap:8px; }
.clinic-facts li { display:grid; grid-template-columns:minmax(88px,120px) 1fr; gap:10px; }
.clinic-facts strong { color:#1A4328; }
.clinic-survey {
  margin-top:44px; padding:26px; border-radius:18px; background:#fff;
  border:1px solid #D4E5DA;
}
.clinic-survey[hidden] { display:none; }
.clinic-survey h2 { margin-top:0; }
.clinic-survey fieldset {
  margin:24px 0 0; padding:0 0 24px; border:0; border-bottom:1px solid #D4E5DA;
}
.clinic-survey fieldset:last-of-type { border-bottom:0; padding-bottom:0; }
.clinic-survey legend { padding:0; color:#1A4328; font-size:1.12rem; font-weight:800; }
.field-help { margin:5px 0 10px; color:#4A6756; font-size:.93rem; }
.check-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.check-grid label {
  display:flex; align-items:flex-start; gap:9px; margin:0; padding:11px 12px;
  border:1px solid #D4E5DA; border-radius:10px; background:#F5F9F6; cursor:pointer;
}
.check-grid label:has(input:checked) { border-color:#1A4328; background:#ECF4EE; }
.check-grid input { width:auto; margin:3px 0 0; accent-color:#1A4328; }
.check-grid label span { color:#4A6756; font-size:.9rem; }
.contact-form .confirmation-check { display:flex; align-items:flex-start; gap:10px; margin-top:18px; }
.contact-form .confirmation-check input { width:auto; margin:4px 0 0; accent-color:#1A4328; }
.form-columns { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:600px) {
  .clinic-hero,.clinic-survey { padding:22px 18px; }
  .form-columns { grid-template-columns:1fr; gap:0; }
  .clinic-facts li { grid-template-columns:1fr; gap:0; }
}

/* Blog */
.blog-body { background:#F8F5EC; }
.blog-index { max-width:1120px; padding-top:0; }
.blog-hero {
  margin:0 -20px 30px; padding:64px max(20px,calc((100vw - 1120px)/2));
  background:linear-gradient(135deg,#102418,#2D6240); color:#fff;
}
.blog-hero h1 { max-width:820px; font-size:clamp(2.8rem,7vw,5.2rem); letter-spacing:-.045em; }
.blog-hero > p:last-child { max-width:700px; margin:14px 0 0; color:rgba(255,255,255,.82); font-size:1.2rem; }
.blog-eyebrow,.blog-kicker {
  margin:0 0 8px; color:#8B6F00; font-size:.76rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
}
.blog-hero .blog-eyebrow { color:#EBD553; }
.blog-filters {
  display:grid; grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto;
  gap:12px; align-items:end; margin:0 0 34px; padding:18px;
  background:#fff; border:1px solid #D4E5DA; border-radius:16px;
  box-shadow:0 8px 28px rgba(16,36,24,.07);
}
.blog-filters label span { display:block; margin:0 0 5px; color:#1A4328; font-size:.82rem; font-weight:800; }
.blog-filters input,.blog-filters select {
  width:100%; box-sizing:border-box; height:44px; padding:9px 11px;
  border:1px solid #BFD1C4; border-radius:9px; background:#fff; color:#102418; font:inherit;
}
.blog-filters button { height:44px; border:0; cursor:pointer; font:inherit; }
.blog-feature-wrap { margin:0 0 38px; }
.blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:0; }
.blog-card {
  overflow:hidden; background:#fff; border:1px solid #D4E5DA; border-radius:18px;
  box-shadow:0 10px 30px rgba(16,36,24,.07);
}
.blog-card-image { display:block; height:210px; overflow:hidden; background:#1A4328; }
.blog-card-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.blog-card:hover .blog-card-image img { transform:scale(1.025); }
.blog-card-placeholder { display:grid; place-items:center; height:100%; color:#EBD553; font-size:2rem; font-weight:800; }
.blog-card-copy { padding:20px; }
.blog-card h2 { margin:0 0 10px; font-size:1.5rem; line-height:1.2; }
.blog-card h2 a { color:#102418; text-decoration:none; }
.blog-card-copy > p:not(.blog-kicker):not(.blog-meta) { color:#4A6756; }
.blog-meta { color:#66786C; font-size:.82rem; }
.blog-read { display:inline-block; margin-top:6px; font-weight:800; text-decoration:none; }
.blog-featured { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
.blog-featured .blog-card-image { height:100%; min-height:360px; }
.blog-featured .blog-card-copy { display:flex; flex-direction:column; justify-content:center; padding:36px; }
.blog-featured h2 { font-size:clamp(2rem,4vw,3rem); }
.blog-empty { padding:64px 24px; text-align:center; background:#fff; border:1px solid #D4E5DA; border-radius:18px; }
.blog-empty h1,.blog-empty h2 { margin-top:0; }
.blog-article { max-width:900px; padding-top:36px; }
.blog-back a { font-weight:800; text-decoration:none; }
.blog-article article { margin-top:28px; }
.blog-article-header { display:block; padding:0; background:transparent; color:#102418; }
.blog-article-header h1 { max-width:850px; font-size:clamp(2.6rem,7vw,4.8rem); letter-spacing:-.045em; }
.blog-deck { max-width:760px; color:#4A6756; font-size:1.25rem; line-height:1.55; }
.blog-cover { display:block; width:100%; max-height:560px; margin:32px 0 42px; border-radius:20px; object-fit:cover; }
.blog-prose { max-width:730px; margin:0 auto; }
.blog-prose p,.blog-prose li { font-size:1.14rem; line-height:1.8; }
.blog-prose h2 { margin:44px 0 14px; font-size:2rem; line-height:1.2; }
.blog-prose li { margin-bottom:10px; }
.blog-prose figure { margin:34px 0; }
.blog-prose figure img { display:block; width:100%; border-radius:16px; }
.blog-video { position:relative; width:100%; aspect-ratio:16/9; margin:34px 0; overflow:hidden; border-radius:16px; background:#102418; }
.blog-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.blog-article-cta { margin:60px auto 0; max-width:730px; padding:28px; border-radius:18px; background:#1A4328; color:#fff; }
.blog-article-cta h2 { margin-top:0; color:#fff; }
.blog-article-cta p { color:rgba(255,255,255,.82); }
.blog-article-cta .cta { display:inline-block; margin-top:8px; }
@media (max-width:850px) {
  .blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blog-featured { grid-template-columns:1fr; }
  .blog-featured .blog-card-image { min-height:280px; }
}
@media (max-width:620px) {
  .blog-filters,.blog-grid { grid-template-columns:1fr; }
  .blog-featured .blog-card-copy { padding:22px; }
  .blog-card-image { height:220px; }
}
