:root { color-scheme: light; --ink:#17211d; --muted:#617069; --paper:#f6f7f3; --white:#fff; --line:#d9e1dc; --brand:#195947; --brand-dark:#0f3b30; --gold:#c79a43; --rust:#b44b33; --shadow:0 18px 50px rgba(23,33,29,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { margin:0; max-width:100%; overflow-x:hidden; font-family:Arial, Helvetica, sans-serif; color:var(--ink); background:var(--paper); line-height:1.58; }
img { display:block; max-width:100%; }
a { color:inherit; }
.site-header { position:sticky; top:0; z-index:20; display:grid; grid-template-columns:minmax(220px,1fr) auto auto; align-items:center; gap:20px; min-height:72px; padding:12px clamp(16px,4vw,44px); background:rgba(246,247,243,.98); border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:12px; min-width:0; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:44px; height:44px; background:var(--brand); color:var(--white); font-weight:800; font-size:13px; border-radius:7px; }
.brand strong,.brand small { display:block; }
.brand small { color:var(--muted); font-size:12px; }
.nav { display:flex; gap:16px; font-size:14px; white-space:nowrap; }
.nav a,.site-footer a,.link-grid a { text-decoration:none; }
.nav a:hover,.site-footer a:hover { color:var(--brand); }
.music-toggle { position:fixed; right:16px; bottom:16px; z-index:60; display:inline-flex; align-items:center; justify-content:center; justify-self:end; min-height:40px; padding:0 14px; border:1px solid var(--line); border-radius:999px; color:var(--brand-dark); background:var(--white); font:inherit; font-weight:800; cursor:pointer; white-space:nowrap; box-shadow:0 14px 34px rgba(25,89,71,.18); }
.music-toggle.active { color:var(--white); border-color:var(--brand); background:var(--brand); }
.hero { position:relative; min-height:82vh; display:grid; align-items:end; overflow:hidden; background:#1f2824; }
.hero-image,.hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-image { object-fit:cover; }
.hero-shade { background:linear-gradient(90deg,rgba(16,20,18,.79),rgba(16,20,18,.42) 55%,rgba(16,20,18,.12)),linear-gradient(0deg,rgba(16,20,18,.56),rgba(16,20,18,0) 46%); }
.hero-content { position:relative; width:min(980px,calc(100% - 32px)); margin:0 0 clamp(44px,8vh,84px) clamp(16px,7vw,96px); color:var(--white); }
.eyebrow,.section-kicker { margin:0 0 12px; color:var(--gold); font-weight:800; text-transform:uppercase; font-size:13px; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:1000px; margin-bottom:18px; font-size:clamp(40px,7vw,86px); line-height:.98; }
h2 { margin-bottom:16px; font-size:clamp(28px,4vw,46px); line-height:1.08; }
h3 { margin-bottom:10px; font-size:22px; line-height:1.2; }
.hero-copy { max-width:780px; margin-bottom:26px; font-size:clamp(18px,2.1vw,24px); }
.address-line { margin:18px 0 0; color:rgba(255,255,255,.82); overflow-wrap:anywhere; }
.cta-row,.contact-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 20px; border:1px solid transparent; text-decoration:none; font-weight:800; cursor:pointer; font:inherit; }
.button.primary { background:var(--brand); color:var(--white); }
.button.primary:hover { background:var(--brand-dark); }
.button.secondary { background:rgba(255,255,255,.12); color:var(--white); border-color:rgba(255,255,255,.78); }
.button.tertiary,.button.ghost { background:rgba(0,0,0,.12); color:var(--white); border-color:rgba(255,255,255,.55); }
.button.dark,.button.secondary.dark,.button.tertiary.dark { background:var(--white); color:var(--ink); border-color:var(--line); }
.quick-facts { width:min(1180px,calc(100% - 32px)); margin:-34px auto 0; position:relative; z-index:5; display:grid; grid-template-columns:repeat(4,1fr); background:var(--white); box-shadow:var(--shadow); }
.quick-facts div { padding:20px; border-right:1px solid var(--line); }
.quick-facts div:last-child { border-right:0; }
.quick-facts strong,.quick-facts span { display:block; }
.quick-facts span { color:var(--muted); font-size:14px; }
.section { width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:clamp(58px,8vw,96px) 0; }
.section-heading { display:grid; grid-template-columns:minmax(0,.9fr) minmax(320px,1fr); gap:clamp(24px,5vw,64px); align-items:start; }
.section-heading p,.long-copy p,.price-band p,.contact-section p { color:var(--muted); font-size:17px; }
.link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:24px; }
.link-grid a { display:block; background:var(--white); border:1px solid var(--line); padding:18px; font-weight:800; }
.link-grid span { display:block; margin-top:5px; color:var(--muted); font-weight:400; }
.price-band { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.price-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,.8fr); gap:22px; margin:28px 0 20px; }
.price-main,.price-points div { background:var(--white); border:1px solid var(--line); padding:24px; box-shadow:0 12px 34px rgba(23,33,29,.06); }
.price-formula { padding:18px; border-left:4px solid var(--gold); background:#fff7e8; color:var(--ink) !important; font-weight:800; }
.notice { padding:16px; border:1px solid #c8ddd2; background:#eef7f1; color:var(--ink) !important; font-weight:700; }
.price-points { display:grid; gap:10px; }
.price-points strong,.price-points span { display:block; }
.price-points span { color:var(--muted); }
.long-copy { border-top:1px solid var(--line); }
.long-copy h2 { margin-top:34px; font-size:clamp(24px,3vw,34px); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:28px; }
.gallery-grid img { width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--line); }
.faq-list { display:grid; gap:10px; max-width:960px; }
details { background:var(--white); border:1px solid var(--line); padding:18px 20px; }
summary { cursor:pointer; font-weight:800; }
details p { margin:12px 0 0; color:var(--muted); }
.contact-section { display:grid; grid-template-columns:minmax(0,.9fr) minmax(320px,1fr); gap:clamp(24px,5vw,58px); width:min(1180px,calc(100% - 32px)); margin:0 auto clamp(58px,8vw,92px); padding:clamp(30px,5vw,46px); background:#e6ede8; }
.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; background:var(--white); border:1px solid var(--line); padding:20px; }
.contact-form label { display:grid; gap:6px; font-weight:800; font-size:14px; }
.contact-form input,.contact-form textarea { width:100%; min-height:44px; border:1px solid var(--line); padding:10px 12px; font:inherit; }
.contact-form textarea { min-height:120px; resize:vertical; }
.contact-form .full { grid-column:1/-1; }
.hp-field { position:absolute; left:-9999px; }
.legal-section { width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:34px 0; border-top:1px solid var(--line); color:var(--muted); }
.legal-section h2 { color:var(--ink); font-size:28px; }
.site-footer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; padding:30px clamp(16px,4vw,44px); background:var(--ink); color:var(--white); }
.site-footer span,.site-footer a { display:block; color:rgba(255,255,255,.82); }
@media (max-width:920px) { .site-header,.quick-facts,.section-heading,.price-layout,.link-grid,.gallery-grid,.contact-section,.site-footer { grid-template-columns:1fr; } .nav { overflow-x:auto; padding-bottom:4px; } .quick-facts div { border-right:0; border-bottom:1px solid var(--line); } }
@media (max-width:760px) { .music-toggle { right:14px; bottom:14px; min-height:38px; padding:0 12px; font-size:12px; } }
@media (max-width:560px) { h1 { font-size:38px; } .hero { min-height:76vh; } .hero-content { margin-left:16px; margin-bottom:36px; } .button { width:100%; } .contact-form { grid-template-columns:1fr; } }
