@charset "UTF-8";
:root {
  --forest: #18392F;
  --forest-deep: #102B24;
  --gold: #C6A46A;
  --ivory: #F8F5EF;
  --beige: #E8DFD2;
  --blush: #EBCFC9;
  --ink: #27352F;
  --muted: #68756D;
  --line: rgba(24,57,47,.14);
  --serif: "Iowan Old Style", "Baskerville", "Palatino Linotype", Georgia, serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", sans-serif;
  --wrap: 1240px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; color: var(--ink); background: var(--ivory); font: 16px/1.7 var(--sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
::selection { background: var(--gold); color: var(--forest-deep); }
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 100; background: var(--ivory); padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }
.wrap { width: min(var(--wrap), calc(100% - 56px)); margin-inline: auto; }
.eyebrow { margin: 0 0 1rem; color: #927448; font-size: .69rem; letter-spacing: .19em; text-transform: uppercase; font-weight: 700; }
h1,h2,h3,h4 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; line-height: 1.08; color: var(--forest); margin: 0 0 1.1rem; }
h1 { font-size: clamp(3rem, 6.4vw, 6.2rem); }
h2 { font-size: clamp(2.25rem, 4vw, 4rem); }
h3 { font-size: clamp(1.5rem, 2vw, 2rem); }
p { margin: 0 0 1.2rem; }
.lead { max-width: 690px; color: #59675F; font-size: clamp(1.04rem, 1.5vw, 1.24rem); line-height: 1.8; }
.small-note { font-size: .82rem; color: var(--muted); }
.topline { background: var(--forest-deep); color: rgba(255,255,255,.83); font-size: .72rem; letter-spacing: .07em; }
.topline-inner { display:flex; justify-content:space-between; align-items:center; min-height:34px; gap:1rem; }
.topline a { text-decoration:none; }
.site-header { position: sticky; top:0; z-index:50; background: rgba(248,245,239,.96); border-bottom:1px solid var(--line); backdrop-filter: blur(14px); }
.nav-row { min-height:91px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand { display:flex; align-items:center; text-decoration:none; min-width:195px; }
.brand img { width:194px; max-height:68px; object-fit:contain; object-position:left center; }
.nav-links { display:flex; align-items:center; gap:clamp(.9rem,1.7vw,1.65rem); }
.nav-links a { color:var(--forest); font-size:.76rem; text-decoration:none; font-weight:600; transition:color .2s; white-space:nowrap; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color:#9b7843; }
.nav-links .nav-cta { padding:.75rem 1.1rem; background:var(--forest); color:var(--ivory); letter-spacing:.07em; font-size:.67rem; }
.menu-toggle { display:none; border:1px solid var(--line); color:var(--forest); background:transparent; padding:.7rem .85rem; cursor:pointer; }
.announcement { background:var(--beige); padding:.55rem 1rem; text-align:center; font-size:.82rem; }
.hero { min-height:620px; position:relative; display:grid; align-items:center; overflow:hidden; background:var(--forest); color:var(--ivory); }
.hero:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(16,43,36,.88) 0%, rgba(16,43,36,.64) 48%, rgba(16,43,36,.1) 100%); z-index:1; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-content { position:relative; z-index:2; padding-block:7rem; max-width:760px; }
.hero h1 { color:var(--ivory); font-size:clamp(3.2rem,7.5vw,7rem); }
.hero .eyebrow { color:#ddc18f; }
.hero .lead { color:rgba(248,245,239,.84); margin:1.5rem 0 2rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; padding:.82rem 1.25rem; border:1px solid var(--forest); background:var(--forest); color:var(--ivory); text-decoration:none; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; transition:transform .25s, background .25s, color .25s; cursor:pointer; }
.button:hover { transform:translateY(-2px); background:var(--forest-deep); }
.button-gold { background:var(--gold); border-color:var(--gold); color:var(--forest-deep); }
.button-gold:hover { background:#d2b57f; border-color:#d2b57f; }
.button-light { background:transparent; border-color:rgba(248,245,239,.65); color:var(--ivory); }
.button-light:hover { background:var(--ivory); color:var(--forest); }
.button-outline { background:transparent; color:var(--forest); border-color:var(--forest); }
.section { padding:clamp(4.5rem,9vw,8rem) 0; }
.section-tight { padding:4rem 0; }
.section-head { max-width:760px; margin-bottom:3rem; }
.section-head.center { text-align:center; margin-inline:auto; }
.section-head.center .lead { margin-inline:auto; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,7vw,7rem); align-items:center; }
.split.reverse > :first-child { order:2; }
.split-media { position:relative; }
.split-media img { width:100%; aspect-ratio: .91; object-fit:cover; }
.split-media:after { content:""; position:absolute; inset:20px -20px -20px 20px; border:1px solid var(--gold); z-index:-1; }
.image-caption { margin-top:.8rem; color:var(--muted); font-size:.76rem; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.service-card { background:var(--ivory); display:flex; flex-direction:column; min-width:0; }
.service-card img { width:100%; height:230px; object-fit:cover; }
.service-body { padding:1.6rem 1.6rem 1.8rem; flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.service-body h3 { font-size:1.6rem; }
.service-body p { color:var(--muted); font-size:.92rem; }
.service-price { color:#8b6b3d; font-size:.86rem; font-weight:700; margin-bottom:1rem; }
.service-body .text-link { margin-top:auto; }
.text-link { color:var(--forest); text-decoration:none; text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; font-weight:700; border-bottom:1px solid var(--gold); padding-bottom:.32rem; }
.text-link:hover { color:#967643; }
.offer-list { border-top:1px solid var(--line); }
.offer { display:grid; grid-template-columns:1fr auto; gap:2rem; padding:1.25rem 0; border-bottom:1px solid var(--line); align-items:start; }
.offer h3 { font-size:1.35rem; margin-bottom:.35rem; }
.offer p { color:var(--muted); font-size:.9rem; margin:0; max-width:680px; }
.offer-price { font-family:var(--serif); font-size:1.35rem; color:var(--forest); white-space:nowrap; }
.soft-panel { padding:clamp(2rem,4vw,4rem); background:var(--beige); }
.blush-panel { background:var(--blush); }
.forest-panel { background:var(--forest); color:var(--ivory); }
.forest-panel h2,.forest-panel h3 { color:var(--ivory); }
.forest-panel .lead,.forest-panel p { color:rgba(248,245,239,.82); }
.feature-band { background:var(--forest); color:var(--ivory); padding:4rem 0; }
.feature-band h2 { color:var(--ivory); max-width:850px; }
.feature-band .eyebrow { color:var(--gold); }
.feature-band .contact-inline { color:var(--ivory); }
.stateline { display:flex; flex-wrap:wrap; gap:1.6rem 2rem; padding-top:1.4rem; margin-top:1.4rem; border-top:1px solid rgba(255,255,255,.25); }
.stateline span { font-size:.82rem; color:rgba(248,245,239,.82); }
.page-hero { padding:6.5rem 0 5.5rem; background:var(--beige); position:relative; overflow:hidden; }
.page-hero:after { content:""; position:absolute; width:38vw; height:38vw; right:-10vw; top:-19vw; border:1px solid rgba(198,164,106,.4); border-radius:50%; box-shadow:0 0 0 45px rgba(198,164,106,.05),0 0 0 90px rgba(198,164,106,.04); }
.page-hero .wrap { position:relative; z-index:1; }
.page-hero h1 { max-width:900px; }
.page-hero .lead { max-width:720px; }
.breadcrumbs { color:var(--muted); font-size:.75rem; margin-bottom:1.4rem; }
.breadcrumbs a { text-decoration:none; }
.custom-cta { padding:clamp(3rem,7vw,6rem) 0; background:#efe5d4; }
.custom-cta-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:3rem; align-items:center; }
.custom-cta h2 { max-width:780px; }
.custom-cta-contact { border-left:1px solid rgba(24,57,47,.24); padding-left:2rem; }
.custom-cta-contact p { margin:.2rem 0; }
.custom-cta-actions { margin-top:1.5rem; }
.contact-inline { display:inline-block; text-decoration:none; font-weight:600; }
.steps { counter-reset:step; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.step { border-top:1px solid var(--gold); padding-top:1.2rem; }
.step:before { counter-increment:step; content:"0" counter(step); display:block; color:#9b7843; font:1.4rem var(--serif); margin-bottom:1rem; }
.step h3 { font-size:1.5rem; }
.step p { color:var(--muted); font-size:.9rem; }
.comparison { width:100%; border-collapse:collapse; text-align:left; margin:2rem 0; }
.comparison th,.comparison td { padding:1rem; border-bottom:1px solid var(--line); vertical-align:top; }
.comparison th { color:var(--forest); font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }
.comparison td:first-child { font-weight:600; }
.membership-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; align-items:stretch; }
.membership-card { background:#fffdf8; border:1px solid var(--line); padding:2rem; display:flex; flex-direction:column; }
.membership-card.featured { background:var(--forest); color:var(--ivory); transform:translateY(-12px); }
.membership-card.featured h3,.membership-card.featured .membership-price { color:var(--ivory); }
.membership-card h3 { font-size:1.6rem; }
.membership-price { font:2.4rem var(--serif); color:var(--forest); margin:.7rem 0; }
.membership-card ul { padding-left:1.1rem; margin:.5rem 0 1.5rem; color:var(--muted); }
.membership-card.featured ul { color:rgba(248,245,239,.78); }
.membership-card .button { margin-top:auto; }
.disabled-button { opacity:.55; cursor:not-allowed; pointer-events:none; }
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,6vw,6rem); }
.contact-detail { padding:1.35rem 0; border-bottom:1px solid var(--line); }
.contact-detail span { display:block; color:var(--muted); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; }
.contact-detail a { color:var(--forest); text-decoration:none; font-size:1.1rem; }
.form-shell { background:#fffdf9; padding:clamp(1.5rem,4vw,3rem); border:1px solid var(--line); }
.inquiry-placeholder { background:#fffdf9; padding:2rem; border:1px solid var(--line); }
.inquiry-form { display:grid; gap:1.1rem; margin-top:1.4rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-field { display:grid; gap:.4rem; }
.form-field label { color:var(--forest); font-size:.78rem; font-weight:700; letter-spacing:.025em; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-height:48px; border:1px solid rgba(24,57,47,.24); border-radius:0; background:#fffefa; color:var(--ink); padding:.7rem .8rem; outline:none; }
.form-field textarea { min-height:125px; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:#947543; box-shadow:0 0 0 3px rgba(198,164,106,.18); }
.form-field input::placeholder,.form-field textarea::placeholder { color:#8b958e; }
.form-help { margin:0; color:var(--muted); font-size:.78rem; line-height:1.55; }
.consent { display:flex; align-items:flex-start; gap:.65rem; color:var(--muted); font-size:.79rem; line-height:1.5; }
.consent input { flex:0 0 auto; width:17px; height:17px; margin:.15rem 0 0; accent-color:var(--forest); }
.consent a { color:var(--forest); }
.spam-trap { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.inquiry-form .btn,.inquiry-form .button { justify-self:start; min-height:50px; padding:.82rem 1.25rem; border:1px solid var(--forest); border-radius:0; background:var(--forest); color:var(--ivory); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:transform .25s,background .25s; }
.inquiry-form .btn:hover,.inquiry-form .button:hover { transform:translateY(-2px); background:var(--forest-deep); }
.inquiry-form .btn:disabled,.inquiry-form .button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.inquiry-form .btn:focus-visible,.inquiry-form .button:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.legal-copy { max-width:850px; }
.legal-copy h2 { font-size:2rem; margin-top:2.8rem; }
.legal-copy h3 { font-size:1.4rem; margin-top:1.7rem; }
.notice { padding:1.15rem 1.35rem; border-left:3px solid var(--gold); background:#f0e9dc; font-size:.88rem; }
.site-footer { padding:4rem 0 1.5rem; background:var(--forest-deep); color:rgba(248,245,239,.8); }
.footer-grid { display:grid; grid-template-columns:1.3fr .8fr .8fr 1fr; gap:2.5rem; padding-bottom:3rem; }
.footer-brand img { width:185px; background:var(--ivory); padding:.45rem; margin-bottom:1.3rem; }
.site-footer h3 { color:var(--ivory); font:700 .7rem var(--sans); letter-spacing:.15em; text-transform:uppercase; margin-bottom:1rem; }
.site-footer p,.site-footer a { font-size:.84rem; }
.site-footer a { text-decoration:none; }
.site-footer a:hover { color:var(--gold); }
.footer-list { list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding-top:1.2rem; display:flex; justify-content:space-between; gap:1rem; font-size:.72rem; }
.reveal { opacity:0; transform:translateY(16px); transition:opacity .65s ease,transform .65s ease; }
.reveal.is-visible { opacity:1; transform:none; }
.announcement-bar { padding:.7rem 1rem; text-align:center; background:var(--gold); color:var(--forest-deep); font-size:.83rem; }
@media (max-width: 1000px) {
 .nav-links { gap:.8rem; }
 .nav-links a { font-size:.69rem; }
 .brand { min-width:150px; }
 .brand img { width:160px; }
 .footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 760px) {
 .wrap { width:min(var(--wrap),calc(100% - 36px)); }
 .topline-inner { justify-content:center; }
 .topline-inner > span:first-child { display:none; }
 .nav-row { min-height:76px; }
 .menu-toggle { display:block; }
 .nav-links { display:none; position:absolute; top:100%; left:0; right:0; padding:1rem 22px 1.4rem; background:var(--ivory); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; }
 .nav-links.is-open { display:flex; }
 .nav-links a { padding:.75rem 0; border-bottom:1px solid var(--line); font-size:.78rem; }
 .nav-links .nav-cta { margin-top:.7rem; padding:.85rem 1rem; text-align:center; }
 .hero { min-height:640px; }
 .hero:before { background:linear-gradient(90deg,rgba(16,43,36,.86),rgba(16,43,36,.45)); }
 .hero-content { padding-block:5rem; }
 .service-grid { grid-template-columns:1fr 1fr; }
 .service-card img { height:190px; }
 .split,.contact-layout,.custom-cta-grid { grid-template-columns:1fr; }
 .form-grid { grid-template-columns:1fr; }
 .split.reverse > :first-child { order:initial; }
 .split-media { margin:0 12px 12px 0; }
 .page-hero { padding:5rem 0 4rem; }
 .steps { grid-template-columns:1fr; gap:1rem; }
 .membership-grid { grid-template-columns:1fr; }
 .membership-card.featured { transform:none; }
 .custom-cta-contact { border-left:0; border-top:1px solid rgba(24,57,47,.24); padding:1.5rem 0 0; }
}
@media (max-width: 500px) {
 h1 { font-size:3.15rem; }
 .hero h1 { font-size:3.45rem; }
 .service-grid { grid-template-columns:1fr; }
 .service-card img { height:225px; }
 .offer { grid-template-columns:1fr; gap:.4rem; }
 .offer-price { font-size:1.15rem; }
 .footer-grid { grid-template-columns:1fr; gap:2rem; }
 .footer-bottom { flex-direction:column; }
 .comparison { font-size:.8rem; }
 .comparison th,.comparison td { padding:.7rem .45rem; }
}
@media (prefers-reduced-motion: reduce) {
 *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
 .reveal { opacity:1; transform:none; }
}
