:root{
	--green-950:#0b2f27;
	--green-900:#123f33;
	--green-800:#166044;
	--green-700:#247354;
	--green-100:#dff1e6;
	--cream:#f8f6ef;
	--sand:#eee9dc;
	--gold:#a7651e;
	--text:#28342f;
	--muted:#63716b;
	--white:#fff;
	--line:rgba(11,47,39,.12);
	--shadow:0 24px 70px rgba(11,47,39,.13);
	--radius:2rem;--max:1180px
	}
	*{
		box-sizing:border-box}
	html{
		scroll-behavior:smooth;
		scroll-padding-top:92px}
	body{
		margin:0;
		background:var(--cream);
		color:var(--text);
		font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
		line-height:1.65}
	a{
		color:inherit}
	img{
		max-width:100%;
		display:block}
		.container{
			width:min(calc(100% - 2.2rem),var(--max));
			margin-inline:auto}
		.narrow{
			max-width:900px}
		.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}
		.skip-link{
			position:fixed;
			left:1rem;
			top:-5rem;
			z-index:1000;
			background:#fff;
			padding:.8rem 1rem;
			border-radius:.7rem}
		.skip-link:focus{
			top:1rem}
		.site-header{
			position:sticky;
			top:0;
			z-index:100;
			background:rgba(248,246,239,.9);
			backdrop-filter:blur(14px);
			border-bottom:1px solid var(--line)}
		.header-inner{
			min-height:78px;
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:1rem}
		.brand{
			display:flex;
			align-items:center;
			gap:.75rem;
			text-decoration:none;
			color:var(--green-950)}
		.brand-mark{
			display:grid;
			place-items:center;
			width:50px;
			height:50px;
			border-radius:8px;
			background:#F8F6EF;
			color:white;
			font-size:1.3rem}
			.brand strong,.brand small{
				display:block}
			.brand strong{
				font-size:.96rem}
			.brand small{
				color:var(--muted);
				font-size:.78rem}
			.main-nav{
				display:flex;
				align-items:center;
				gap:.15rem}
			.main-nav a{
				padding:.55rem .62rem;
				border-radius:999px;
				text-decoration:none;
				font-size:.84rem;
				font-weight:650;
				color:#465650}
			.main-nav a:hover,.main-nav a.active{
				background:var(--green-100);
				color:var(--green-950)}
			.main-nav .nav-cta{
				background:var(--green-800);
				color:white;
				margin-left:.4rem;
				padding:.65rem 1rem}
			.menu-button{
				display:none;
				border:0;
				background:transparent;
				padding:.5rem}
				.menu-button span:not(.sr-only){
					display:block;
					width:24px;
					height:2px;
					background:var(--green-950);
					margin:5px}
				.section{
					padding:6rem 0}
				.hero-section{
					padding-top:1.5rem}
				.hero{
					position:relative;
					overflow:hidden;
					min-height:600px;
					display:grid;
					grid-template-columns:1.2fr .8fr;
					align-items:center;
					padding:clamp(2rem,6vw,5rem);
					border-radius:2.5rem;
					background:linear-gradient(135deg,var(--green-950),#175e4d 72%,#26806b);
					color:white}
				.hero-copy{
					position:relative;
					z-index:2}
				.pill{
					display:inline-block;
					margin:0 0 1.3rem;
					padding:.45rem .85rem;
					border:1px solid rgba(255,255,255,.2);
					border-radius:999px;
					background:rgba(255,255,255,.08);
					font-size:.82rem;
					font-weight:700}
				.hero h1{
					max-width:820px;
					margin:0;
					font-size:clamp(3rem,6.6vw,5.6rem);
					line-height:.98;
					letter-spacing:-.055em}
				.hero-lead{
					max-width:660px;
					margin:1.7rem 0 0;
					font-size:1.15rem;
					color:#e4f5eb}
				.button-row{
					display:flex;
					flex-wrap:wrap;
					gap:.8rem;
					margin-top:2rem}
				.button{
					display:inline-flex;
					align-items:center;
					justify-content:center;
					gap:.4rem;
					padding:.85rem 1.2rem;
					border:0;
					border-radius:999px;
					background:var(--green-800);
					color:white;
					text-decoration:none;
					font-weight:750;
					box-shadow:0 12px 25px rgba(11,47,39,.13);
					transition:.2s}
				.hero .button{
					background:#f3cf8c;
					color:var(--green-950)}
				.button:hover{
					transform:translateY(-2px);
					background:var(--green-900)}
				.hero .button:hover{
					background:white}
				.button-light{
					background:white;
					color:var(--green-950)}
				.hero-art{
					position:relative;
					min-height:340px}
				.orb{
					position:absolute;
					border-radius:50%;
					filter:blur(2px)}
				.orb-one{
					width:260px;
					height:260px;
					right:0;
					top:5%;
					background:rgba(243,207,140,.22)}
				.orb-two{
					width:170px;
					height:170px;
					left:10%;
					bottom:0;
					background:rgba(215,244,225,.17)}
				.line-art{
					position:absolute;
					inset:0;
					display:grid;
					place-items:center;
					font-size:10rem;
					color:rgba(255,255,255,.18)}
				.service-grid{
					display:grid;
					grid-template-columns:repeat(4,1fr);
					gap:1.2rem;
					margin-top:1.5rem}
				.service-card{
					padding:1.7rem;
					border:1px solid var(--line);
					border-radius:var(--radius);
					background:white;
					text-decoration:none;
					box-shadow:0 4px 17px rgba(15,56,45,.035);
					transition:.25s}
					.service-card:hover{
						transform:translateY(-5px);
						box-shadow:var(--shadow)}
					.service-card .icon{
						display:grid;
						place-items:center;
						width:47px;
						height:47px;
						border-radius:16px;
						background:var(--green-100);
						color:var(--green-800);
						font-size:1.3rem}
					.service-card h2{
						color:var(--green-950);
						font-size:1.3rem}
					.service-card p{
						color:var(--muted)}
					.service-card strong,.text-link{
						color:var(--green-800);
						font-size:.92rem;
						text-decoration:none}
					.intro-panel{
						display:grid;
						grid-template-columns:1.2fr .8fr;
						gap:3rem;
						align-items:center;
						margin-top:4rem;
						padding:clamp(2rem,5vw,4rem);
						border-radius:var(--radius);
						background:var(--sand)}
					.intro-panel h2,.practice-grid h3{
						font-size:clamp(2rem,4vw,3.1rem);
						line-height:1.08;
						color:var(--green-950);
						margin:.5rem 0 1.2rem;
						letter-spacing:-.035em}
					.eyebrow{
						margin:0;
						color:var(--gold);
						font-size:.77rem;
						font-weight:850;
						text-transform:uppercase;
						letter-spacing:.2em}
					.light{
						color:#9ee2c0}
					.photo-placeholder{
						min-height:300px;
						display:grid;
						place-items:end;
						padding:1.2rem;
						border-radius:1.6rem;
						background:linear-gradient(135deg,#c7e6d4,#eee2c2);
						color:var(--green-950);
						text-align:center}
					.photo-placeholder span{
						background:rgba(255,255,255,.82);
						padding:.8rem 1rem;
						border-radius:1rem;
						font-weight:650;
						font-size:.85rem}
					.photo-placeholder img{
						width: 100%;
						height: 100%;
						object-fit: contain;
						object-position: center center;
						border-radius: 1.6rem}
					.section-soft{
						background:#f0eee7}
					.section-heading{
						max-width:820px;
						margin-bottom:3.5rem}
					.section-heading h2{
						margin:.5rem 0 1rem;
						color:var(--green-950);
						font-size:clamp(2.5rem,5vw,4.6rem);
						line-height:1.02;
						letter-spacing:-.05em}
					.section-heading>p:last-child{
						font-size:1.14rem;
						color:var(--muted)}
					.content-layout{
						display:grid;
						grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);
						gap:3rem;
						align-items:start}
					.prose{
						font-size:1.05rem}
					.prose>p{
						line-height:1.9}
					.prose h3{
						margin-top:2.5rem;
						color:var(--green-950);
						font-size:1.8rem}
					.prose blockquote{
						margin:2.2rem 0;
						padding:2rem;
						border-radius:var(--radius);
						background:var(--green-950);
						color:white;
						font-size:1.45rem;
						line-height:1.5}
					.qualification-grid{
						display:grid;
						grid-template-columns:1fr 1fr;
						gap:1rem}
					.info-card{
						padding:1.5rem;
						border:1px solid var(--line);
						border-radius:1.5rem;
						background:white}
					.info-card h3,.info-card h4{
						margin-top:0;
						color:var(--green-950)}
					.info-card ul{
						padding-left:1.2rem}
					.treatment-grid .info-card{
						min-height: 100%;}
					.consultation-card{
						background: var(--green-100);
					}
						
						
					
					.contact-card{
						position:sticky;
						top:105px;
						display:flex;
						flex-direction:column;
						gap:.8rem;
						padding:2rem;
						border-radius:var(--radius);
						background:var(--green-950);
						color:white;
						box-shadow:var(--shadow)}
					.contact-card h3{margin:.4rem 0;font-size:1.7rem}.contact-card a{text-decoration:none;color:#ddf5e8;overflow-wrap:anywhere}.contact-card .button{margin-top:.5rem;color:var(--green-950)}.contact-card.compact{position:static}.check-list{list-style:none;padding:0!important}.check-list li{position:relative;padding-left:1.8rem;margin:.7rem 0}.check-list li:before{content:"✓";position:absolute;left:0;color:var(--green-700);font-weight:900}.steps{display:grid;gap:.75rem;padding:0;list-style:none}.steps li{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem;border-radius:1.2rem;background:var(--green-100);font-weight:750;color:var(--green-950)}.steps span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--green-800);color:white}.notice{margin-top:2rem;padding:1.1rem 1.2rem;border:1px solid #e8ca90;border-radius:1rem;background:#fff4d9;color:#63471e;font-size:.9rem}.tag-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.tag-grid span{padding:.75rem .9rem;border:1px solid var(--line);border-radius:1rem;background:white;font-size:.9rem}.soft-box{margin-top:2rem;padding:1.5rem;border-radius:1.5rem;background:var(--sand)}.soft-box h3{margin-top:0}.tall{min-height:520px;position:sticky;top:105px}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.practice-grid p{font-size:1.05rem;color:var(--muted);line-height:1.85}.room{min-height:440px}.map-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:2rem}.map-grid .contact-card{position:static}.map-consent{display:grid;place-items:center;text-align:center;min-height:440px;padding:2rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--sand)}.map-consent>*{max-width:470px}.map-consent h3{font-size:1.8rem;color:var(--green-950)}.map-pin{font-size:3rem;color:var(--green-800)}.legal-section{padding-top:4rem}.legal-card{padding:clamp(1.5rem,4vw,3rem);border:1px solid var(--line);border-radius:var(--radius);background:#fff}.legal-card h3{margin-top:2rem;color:var(--green-950)}.legal-card h3:first-child{margin-top:0}.site-footer{background:var(--green-950);color:#e1f2e8}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr .7fr;gap:3rem;padding:4rem 0}.footer-grid h2,.footer-grid h3{color:white}.footer-grid a{display:block;color:#c3decf;text-decoration:none;margin:.35rem 0}.footer-bottom{padding:1.2rem;text-align:center;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem;color:#9bc2ab}.to-top{position:fixed;right:1.1rem;bottom:1.1rem;width:46px;height:46px;border:0;border-radius:50%;background:var(--green-800);color:white;font-size:1.2rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.to-top.visible{opacity:1;pointer-events:auto;transform:none}:focus-visible{outline:3px solid #e7a642;outline-offset:3px}@media(max-width:1050px){.menu-button{display:block}.main-nav{display:none;position:absolute;top:78px;left:0;right:0;padding:1rem;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 15px 30px rgba(11,47,39,.08)}.main-nav.open{display:grid}.main-nav a{padding:.8rem 1rem}.main-nav .nav-cta{margin:.3rem 0 0;text-align:center}.hero{grid-template-columns:1fr;min-height:auto}.hero-art{display:none}}@media(max-width:800px){.section{padding:4.3rem 0}.hero{padding:3rem 1.4rem;border-radius:2rem}.hero h1{font-size:clamp(2.8rem,13vw,4.6rem)}.service-grid,.content-layout,.practice-grid,.map-grid,.intro-panel,.footer-grid{grid-template-columns:1fr}.qualification-grid,.tag-grid{grid-template-columns:1fr}.intro-panel{gap:1.5rem}.contact-card,.tall{position:static}.footer-grid{gap:1.4rem}.photo-placeholder{min-height:280px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}