* {
	margin:0;
	padding:0;
	box-sizing:border-box
}
:root {
 --bg:#f4f7f5;
--surface:#ffffff;
--surface-alt:#e9f2ed;
--ink:#14322b;
--muted:#587069;
 --brand:#0f786a;
--brand-deep:#0b4a41;
--brand-tint:#d5ebe4;
 --accent:#e8974c;
--accent-deep:#cd7d33;
--accent-tint:#fbe8d3;
 --border:#dde8e2;
--shadow-sm:0 4px 14px -8px rgba(16,60,52,.28);
 --shadow:0 16px 40px -20px rgba(16,60,52,.30);
--radius:20px;
--radius-lg:28px;
 --font-display:'Newsreader', Georgia, 'Times New Roman', serif;
 --font-body:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
html {
	scroll-behavior:smooth
}
body {
	font-family:var(--font-body);
	background:var(--bg);
	color:var(--ink);
	line-height:1.65;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden
}
a {
	color:inherit;
	text-decoration:none
}
img {
	max-width:100%;
	display:block
}
section {
	scroll-margin-top:88px
}
.container {
	max-width:1140px;
	margin:0 auto;
	padding:0 24px
}
.section {
	padding:clamp(56px, 8vw, 104px) 0
}
.section--tint {
	background:var(--surface-alt)
}
.eyebrow {
	display:inline-flex;
	align-items:center;
	gap:10px;
font-size:.76rem;
	font-weight:600;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--brand);
	margin-bottom:16px
}
.eyebrow::before {
	content:"";
	width:24px;
	height:2px;
	background:var(--accent);
	border-radius:2px
}
.eyebrow--center {
	justify-content:center
}
h1, h2, h3 {
	font-family:var(--font-display);
	font-weight:500;
	line-height:1.14;
	letter-spacing:-.01em
}
h2.section-title {
	font-size:clamp(1.95rem, 3.6vw, 2.75rem);
	color:var(--ink);
	max-width:20ch
}
.section-head {
	margin-bottom:clamp(36px, 5vw, 54px)
}
.section-head--center {
	text-align:center;
	margin-inline:auto
}
.section-head--center h2 {
	margin-inline:auto
}
.section-intro {
	color:var(--muted);
	font-size:1.05rem;
	margin-top:18px;
	max-width:58ch
}
.section-head--center .section-intro {
	margin-inline:auto
}
/* buttons */
.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:9px;
	font-family:var(--font-body);
	font-weight:600;
font-size:.97rem;
	padding:14px 26px;
	border-radius:999px;
	border:1.6px solid transparent;
	cursor:pointer;
	transition:transform .18s ease, background .18s ease, box-shadow .18s ease, border-color .18s ease;
	white-space:nowrap
}
.btn svg {
	width:18px;
	height:18px
}
.btn-primary {
	background:var(--accent);
	color:#3a2410;
	box-shadow:0 12px 24px -12px rgba(205,125,51,.7)
}
.btn-primary:hover {
	background:var(--accent-deep);
	transform:translateY(-2px)
}
.btn-ghost {
	background:transparent;
	color:var(--ink);
	border-color:var(--border)
}
.btn-ghost:hover {
	border-color:var(--brand);
	color:var(--brand);
	transform:translateY(-2px)
}
.btn-white {
	background:#fff;
	color:var(--brand-deep)
}
.btn-white:hover {
	transform:translateY(-2px);
	box-shadow:var(--shadow)
}
.btn-lg {
	padding:16px 32px;
	font-size:1.02rem
}
:focus-visible {
outline:3px solid var(--accent);
outline-offset:3px;
border-radius:6px
}

.float {
	position:absolute;
	background:#fff;
	border-radius:16px;
	padding:12px 16px;
	box-shadow:var(--shadow);
	display:flex;
	align-items:center;
	gap:11px;
	z-index:3
}
.float .ic {
	width:34px;
	height:34px;
	border-radius:10px;
	display:flex;
	align-items:center;
	justify-content:center;
	flex:none
}
.float .ic svg {
	width:18px;
	height:18px
}
.float small {
	display:block;
font-size:.72rem;
	color:var(--muted);
	line-height:1.3
}
.float strong {
	display:block;
font-size:.9rem;
	color:var(--ink);
	font-weight:600;
	line-height:1.2
}
.float.f1 {
	top:14%;
	left:-26px
}
.float.f1 .ic {
	background:var(--brand-tint);
	color:var(--brand)
}
.float.f2 {
	bottom:11%;
	right:-22px
}
.float.f2 .ic {
	background:var(--accent-tint);
	color:var(--accent-deep)
}
/* welcome */
.welcome {
	display:grid;
	grid-template-columns:1.2fr 1fr;
	gap:clamp(32px, 5vw, 64px);
	align-items:center
}
.welcome p {
	color:var(--muted);
	font-size:1.08rem
}
.welcome p+p {
	margin-top:16px
}
.welcome .lead-line {
	font-family:var(--font-display);
	font-size:clamp(1.4rem, 2.6vw, 1.85rem);
	color:var(--ink);
	line-height:1.3;
	margin-bottom:20px
}
.mini-points {
	display:grid;
	gap:16px
}
.mini-point {
	display:flex;
	gap:14px;
	align-items:flex-start
}
.mini-point .ic {
	width:44px;
	height:44px;
	border-radius:12px;
	background:var(--brand-tint);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	flex:none
}
.mini-point .ic svg {
	width:22px;
	height:22px
}
.mini-point h4 {
	font-family:var(--font-body);
	font-size:1.02rem;
	font-weight:600;
	margin-bottom:2px
}
.mini-point p {
font-size:.94rem;
	margin:0
}
/* grids + cards */
.grid {
	display:grid;
	gap:22px
}
.grid-4 {
	grid-template-columns:repeat(4, 1fr)
}
.grid-3 {
	grid-template-columns:repeat(3, 1fr)
}
.card {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius);
	padding:28px;
	transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	display:block
}
.card:hover {
	transform:translateY(-5px);
	box-shadow:var(--shadow);
	border-color:transparent
}
.card .ic {
	width:54px;
	height:54px;
	border-radius:15px;
	background:var(--brand-tint);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	margin-bottom:20px
}
.card .ic svg {
	width:27px;
	height:27px
}
.card:nth-child(even) .ic {
	background:var(--accent-tint);
	color:var(--accent-deep)
}
.card h3 {
	font-family:var(--font-body);
	font-size:1.14rem;
	font-weight:600;
	margin-bottom:9px;
	color:var(--ink)
}
.card p {
	color:var(--muted);
font-size:.95rem
}
.card .more {
	display:inline-flex;
	align-items:center;
	gap:6px;
	margin-top:16px;
font-size:.88rem;
	font-weight:600;
	color:var(--brand)
}
.card .more svg {
	width:15px;
	height:15px;
	transition:transform .18s ease
}
.card:hover .more svg {
	transform:translateX(4px)
}
/* features */
.feature {
	display:flex;
	gap:16px;
	align-items:flex-start;
	padding:6px 4px
}
.feature .ic {
	width:50px;
	height:50px;
	border-radius:14px;
	background:var(--surface);
	border:1px solid var(--border);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	flex:none;
	box-shadow:var(--shadow-sm)
}
.feature .ic svg {
	width:24px;
	height:24px
}
.feature h3 {
	font-family:var(--font-body);
	font-size:1.06rem;
	font-weight:600;
	margin-bottom:5px
}
.feature p {
	color:var(--muted);
font-size:.95rem
}
/* band */
.band {
	background:var(--brand-deep);
	color:#eaf4f1;
	border-radius:var(--radius-lg);
	padding:clamp(44px, 6vw, 72px);
	text-align:center;
	position:relative;
	overflow:hidden
}
.band::before {
	content:"";
	position:absolute;
	width:360px;
	height:360px;
	border-radius:50%;
	background:rgba(255,255,255,.05);
	top:-120px;
	left:-80px
}
.band::after {
	content:"";
	position:absolute;
	width:300px;
	height:300px;
	border-radius:50%;
	background:rgba(232,151,76,.14);
	bottom:-130px;
	right:-60px
}
.band .quote-mark {
	font-family:var(--font-display);
	font-size:4rem;
	line-height:.4;
	color:var(--accent);
	opacity:.8;
	position:relative
}
.band h2 {
	position:relative;
	font-size:clamp(1.7rem, 3.4vw, 2.5rem);
	color:#fff;
	max-width:22ch;
	margin:14px auto 18px;
	font-weight:500
}
.band p {
	position:relative;
	color:rgba(234,244,241,.82);
	max-width:52ch;
	margin:0 auto 30px;
	font-size:1.05rem
}
.band .btn-white {
	position:relative
}
.band .band-actions {
	position:relative;
	display:flex;
	gap:14px;
	justify-content:center;
	flex-wrap:wrap
}
/* steps */
.steps {
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:22px;
	counter-reset:step
}
.step {
	position:relative;
	padding-top:8px
}
.step .num {
	counter-increment:step;
	font-family:var(--font-display);
	font-size:2.4rem;
	font-weight:600;
	color:var(--brand);
	display:flex;
	align-items:center;
	gap:14px;
	margin-bottom:16px
}
.step .num::before {
	content:counter(step, decimal-leading-zero)
}
.step .num .dash {
	flex:1;
	height:1px;
	background:var(--border)
}
.step h3 {
	font-family:var(--font-body);
	font-size:1.08rem;
	font-weight:600;
	margin-bottom:8px
}
.step p {
	color:var(--muted);
font-size:.94rem
}
/* pricing */
.price-grid {
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:20px;
	align-items:stretch
}
.price {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius);
	padding:30px 26px;
	display:flex;
	flex-direction:column;
	transition:transform .2s ease, box-shadow .2s ease
}
.price:hover {
	transform:translateY(-5px);
	box-shadow:var(--shadow)
}
.price.featured {
	border:1.5px solid var(--brand);
	box-shadow:var(--shadow);
	position:relative
}
.price.featured .tag-pop {
	position:absolute;
	top:-13px;
	left:50%;
	transform:translateX(-50%);
	background:var(--accent);
	color:#3a2410;
font-size:.72rem;
	font-weight:700;
	letter-spacing:.04em;
	padding:5px 14px;
	border-radius:999px;
	text-transform:uppercase
}
.price h3 {
	font-family:var(--font-body);
	font-size:1.1rem;
	font-weight:700;
	margin-bottom:6px
}
.price .sub {
	color:var(--muted);
font-size:.86rem;
	min-height:38px
}
.price .amount {
	font-family:var(--font-display);
	font-size:1.55rem;
	font-weight:600;
	color:var(--brand-deep);
	margin:14px 0 4px
}
.price .amount span {
	font-family:var(--font-body);
font-size:.82rem;
	font-weight:500;
	color:var(--muted)
}
.price ul {
	list-style:none;
	margin:18px 0 24px;
	display:grid;
	gap:11px
}
.price li {
	display:flex;
	gap:10px;
font-size:.9rem;
	color:var(--ink);
	align-items:flex-start
}
.price li svg {
	width:17px;
	height:17px;
	color:var(--brand);
	flex:none;
	margin-top:3px
}
.price .btn {
	margin-top:auto;
	width:100%
}
.price-note {
	text-align:center;
	color:var(--muted);
font-size:.94rem;
	margin-top:26px
}
.price-note a {
	color:var(--brand);
	font-weight:600
}
/* quotes */
.quotes {
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:22px
}
.quote {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius);
	padding:30px
}
.quote .stars {
	color:var(--accent);
	display:flex;
	gap:2px;
	margin-bottom:14px
}
.quote .stars svg {
	width:18px;
	height:18px
}
.quote p {
	color:var(--ink);
	font-size:1rem;
	line-height:1.6;
	margin-bottom:20px
}
.quote .who {
	display:flex;
	align-items:center;
	gap:12px
}
.quote .av {
	width:44px;
	height:44px;
	border-radius:50%;
	background:var(--brand-tint);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	font-family:var(--font-display);
	font-weight:600;
	font-size:1.05rem;
	flex:none
}
.quote .who strong {
	display:block;
	font-family:var(--font-body);
font-size:.95rem;
	font-weight:600
}
.quote .who small {
	color:var(--muted);
font-size:.85rem
}
/* faq */
.faq-wrap {
	max-width:820px;
	margin:0 auto
}
.faq {
	border-bottom:1px solid var(--border)
}
.faq button {
	width:100%;
	background:none;
	border:none;
	cursor:pointer;
	text-align:left;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	padding:22px 4px;
	font-family:var(--font-body);
	font-size:1.06rem;
	font-weight:600;
	color:var(--ink)
}
.faq button .plus {
	flex:none;
	width:26px;
	height:26px;
	border-radius:50%;
	background:var(--brand-tint);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	transition:transform .25s ease, background .2s
}
.faq button .plus svg {
	width:15px;
	height:15px
}
.faq[aria-expanded="true"] button .plus {
	transform:rotate(45deg);
	background:var(--brand);
	color:#fff
}
.faq .answer {
	max-height:0;
	overflow:hidden;
	transition:max-height .3s ease
}
.faq .answer p {
	color:var(--muted);
	padding:0 4px 22px;
font-size:.98rem
}
/* service detail */
.service-layout {
	display:grid;
	grid-template-columns:1fr 340px;
	gap:clamp(30px, 4vw, 56px);
	align-items:start
}
.service-side {
	position:sticky;
	top:96px;
	display:grid;
	gap:18px
}
.side-card {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius);
	padding:26px
}
.side-card--accent {
	background:var(--accent-tint);
	border-color:#f3d9bd
}
.side-card--brand {
	background:var(--brand-deep);
	color:rgba(234,244,241,.85)
}
.side-card--brand h4 {
	color:#fff
}
.side-card h3 {
	font-family:var(--font-display);
	font-size:1.3rem;
	margin-bottom:8px;
	color:var(--ink)
}
.side-card h4 {
	font-family:var(--font-body);
font-size:.82rem;
	text-transform:uppercase;
	letter-spacing:.1em;
	font-weight:600;
	color:var(--ink);
	margin-bottom:14px
}
.side-card p {
	color:var(--muted);
font-size:.94rem;
	margin-bottom:16px
}
.side-card--accent p {
	color:#7a5a30
}
.side-card--brand p {
	color:rgba(234,244,241,.85);
	margin-bottom:0;
	line-height:1.9
}
.side-card .btn {
	width:100%;
	margin-bottom:10px
}
.side-card .btn:last-child {
	margin-bottom:0
}
.side-list {
	list-style:none;
	display:grid;
	gap:2px
}
.side-list a {
	display:flex;
	align-items:center;
	gap:11px;
	padding:10px 12px;
	border-radius:10px;
font-size:.93rem;
	color:var(--ink);
	transition:background .15s
}
.side-list a:hover {
	background:var(--surface-alt);
	color:var(--brand)
}
.side-list a svg {
	width:18px;
	height:18px;
	color:var(--brand);
	flex:none
}
.prose .intro {
	font-size:1.18rem;
	color:var(--ink);
	line-height:1.6;
	margin-bottom:28px
}
.prose h2 {
	font-family:var(--font-display);
	font-size:1.5rem;
	color:var(--ink);
	margin:34px 0 14px
}
.prose h2:first-child {
	margin-top:0
}
.prose p {
	color:var(--muted);
	margin-bottom:14px
}
.checklist {
	list-style:none;
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px 24px;
	margin:6px 0 8px
}
.checklist li {
	display:flex;
	gap:11px;
	align-items:flex-start;
	color:var(--ink);
font-size:.97rem
}
.checklist li svg {
	width:20px;
	height:20px;
	color:var(--brand);
	flex:none;
	margin-top:2px
}
.cta-inline {
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:32px
}
/* about */
.two-col {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:clamp(30px, 5vw, 60px);
	align-items:center
}
.stat-strip {
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:20px
}
.mv-card {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius);
	padding:32px
}
.mv-card .ic {
	width:52px;
	height:52px;
	border-radius:15px;
	background:var(--brand-tint);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	margin-bottom:18px
}
.mv-card .ic svg {
	width:26px;
	height:26px
}
.mv-card h3 {
	font-family:var(--font-display);
	font-size:1.4rem;
	margin-bottom:10px;
	color:var(--ink)
}
.mv-card p {
	color:var(--muted);
font-size:.97rem
}
/* blog */
.blog-grid {
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:24px
}
.blog-card {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius);
	overflow:hidden;
	transition:transform .2s, box-shadow .2s;
	display:block
}
.blog-card:hover {
	transform:translateY(-5px);
	box-shadow:var(--shadow)
}
.blog-thumb {
	height:172px;
	background:linear-gradient(135deg, var(--brand-tint), var(--accent-tint));
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--brand);
	position:relative
}
.blog-thumb svg {
	width:46px;
	height:46px;
	opacity:.5
}
.blog-cat {
	position:absolute;
	top:14px;
	left:14px;
	background:#fff;
	color:var(--brand-deep);
font-size:.72rem;
	font-weight:600;
	padding:5px 11px;
	border-radius:999px
}
.blog-body {
	padding:24px
}
.blog-body .date {
font-size:.82rem;
	color:var(--muted);
	margin-bottom:8px
}
.blog-body h3 {
	font-family:var(--font-display);
	font-size:1.2rem;
	line-height:1.32;
	margin-bottom:10px;
	color:var(--ink)
}
.blog-body p {
	color:var(--muted);
font-size:.93rem;
	margin-bottom:14px
}
.blog-body .more {
	display:inline-flex;
	align-items:center;
	gap:6px;
font-size:.88rem;
	font-weight:600;
	color:var(--brand)
}
.blog-body .more svg {
	width:15px;
	height:15px
}
.note {
	background:var(--accent-tint);
	border:1px solid #f3d9bd;
	border-radius:14px;
	padding:16px 20px;
	color:#7a5a30;
font-size:.92rem;
	margin-bottom:32px
}
/* contact */
.contact-grid {
	display:grid;
	grid-template-columns:1fr 1.1fr;
	gap:clamp(32px, 5vw, 60px);
	align-items:start
}
.contact-info .lead-line {
	font-family:var(--font-display);
	font-size:clamp(1.5rem, 2.8vw, 2rem);
	line-height:1.28;
	margin-bottom:14px
}
.contact-info>p {
	color:var(--muted);
	margin-bottom:28px;
	max-width:42ch
}
.contact-row {
	display:flex;
	gap:14px;
	align-items:flex-start;
	margin-bottom:20px
}
.contact-row .ic {
	width:46px;
	height:46px;
	border-radius:12px;
	background:var(--surface);
	border:1px solid var(--border);
	color:var(--brand);
	display:flex;
	align-items:center;
	justify-content:center;
	flex:none;
	box-shadow:var(--shadow-sm)
}
.contact-row .ic svg {
	width:22px;
	height:22px
}
.contact-row small {
	display:block;
	color:var(--muted);
font-size:.8rem;
	text-transform:uppercase;
	letter-spacing:.08em;
	font-weight:600;
	margin-bottom:2px
}
.contact-row strong {
	font-family:var(--font-body);
	font-weight:600;
	font-size:1.02rem;
	color:var(--ink)
}
.form {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	padding:clamp(26px, 4vw, 40px);
	box-shadow:var(--shadow)
}
.form h3 {
	font-family:var(--font-display);
	font-size:1.5rem;
	margin-bottom:6px
}
.form>p {
	color:var(--muted);
font-size:.94rem;
	margin-bottom:24px
}
.field {
	margin-bottom:18px
}
.field label {
	display:block;
font-size:.85rem;
	font-weight:600;
	margin-bottom:7px
}
.field input, .field select, .field textarea {
	width:100%;
	font-family:var(--font-body);
font-size:.98rem;
	color:var(--ink);
	padding:13px 15px;
	border:1.4px solid var(--border);
	border-radius:12px;
	background:var(--bg);
	transition:border-color .18s ease, background .18s ease
}
.field input:focus, .field select:focus, .field textarea:focus {
	outline:none;
	border-color:var(--brand);
	background:#fff
}
.field textarea {
	resize:vertical;
	min-height:96px
}
.form .btn {
	width:100%;
	margin-top:4px
}
.form-note {
font-size:.82rem;
	color:var(--muted);
	text-align:center;
	margin-top:14px
}
.confirm {
	display:none;
	background:var(--brand-tint);
	color:var(--brand-deep);
	border-radius:12px;
	padding:14px 16px;
font-size:.92rem;
	font-weight:500;
	margin-top:16px
}
.confirm.show {
	display:block
}
.area-tags {
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:8px
}
.area-tag {
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:999px;
	padding:9px 16px;
font-size:.9rem;
	color:var(--ink)
}

/* fab */
.fab {
	display:none;
	position:fixed;
	right:18px;
	bottom:18px;
	z-index:70;
	background:var(--accent);
	color:#3a2410;
	padding:14px 20px;
	border-radius:999px;
	font-weight:600;
	box-shadow:0 14px 30px -10px rgba(205,125,51,.8);
	align-items:center;
	gap:9px
}
.fab svg {
	width:19px;
	height:19px
}
/* reveal */
.reveal {
	opacity:0;
	transform:translateY(24px);
	transition:opacity .6s ease, transform .6s ease
}
.reveal.in {
	opacity:1;
	transform:none
}
/* responsive */
@media(max-width:960px) {
.grid-4, .grid-3 {
	grid-template-columns:repeat(2, 1fr)
}
.steps {
	grid-template-columns:repeat(2, 1fr)
}
.price-grid {
	grid-template-columns:repeat(2, 1fr)
}
.quotes {
	grid-template-columns:1fr
}
.blog-grid {
	grid-template-columns:repeat(2, 1fr)
}
.hero-grid {
	grid-template-columns:1fr;
	gap:48px
}
.hero-visual {
	max-width:380px
}
.welcome, .two-col, .contact-grid {
	grid-template-columns:1fr;
	gap:36px
}
.service-layout {
	grid-template-columns:1fr;
	gap:40px
}
.service-side {
	position:static;
	grid-template-columns:1fr 1fr;
	display:grid
}
.side-card--brand {
	grid-column:1/-1
}
.stat-strip {
	grid-template-columns:1fr
}
.foot-grid {
	grid-template-columns:1fr 1fr
}
}
@media(max-width:640px) {
.nav-links, .nav-phone {
	display:none
}
.hamburger {
	display:block
}
.nav-links.open {
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:2px;
	position:absolute;
	top:72px;
	left:0;
	right:0;
	background:var(--surface);
	padding:14px 24px 22px;
	border-bottom:1px solid var(--border);
	box-shadow:var(--shadow);
	max-height:80vh;
	overflow-y:auto
}
.nav-links.open>a {
	padding:12px 0;
	width:100%;
	border-bottom:1px solid var(--border);
	opacity:1
}
.has-drop {
	width:100%
}
.drop-trigger {
	padding:12px 0;
	width:100%;
	justify-content:space-between;
	border-bottom:1px solid var(--border)
}
.drop {
	position:static;
	transform:none;
	opacity:1;
	visibility:visible;
	box-shadow:none;
	border:none;
	padding:2px 0 8px 14px;
	min-width:0;
	background:transparent
}
.drop a {
	padding:9px 0
}
.grid-4, .grid-3, .steps, .price-grid, .blog-grid, .checklist {
	grid-template-columns:1fr
}
.service-side {
	grid-template-columns:1fr
}
.foot-grid {
	grid-template-columns:1fr
}
.foot-bottom {
	flex-direction:column
}
.float.f1 {
	left:-8px
}
.float.f2 {
	right:-6px
}
.fab {
	display:inline-flex
}
}
@media(prefers-reduced-motion:reduce) {
html {
	scroll-behavior:auto
}
.reveal {
	opacity:1;
	transform:none;
	transition:none
}
* {
	transition:none!important
}
}











/* >>>>>>>>>>>>>>>>>>>>>>>>>>>> Pricing <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */


*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#f4f7f5;--surface:#ffffff;--surface-alt:#e9f2ed;--ink:#14322b;--muted:#587069;
  --brand:#0f786a;--brand-deep:#0b4a41;--brand-tint:#d5ebe4;
  --accent:#e8974c;--accent-deep:#cd7d33;--accent-tint:#fbe8d3;
  --border:#dde8e2;--shadow-sm:0 4px 14px -8px rgba(16,60,52,.28);
  --shadow:0 16px 40px -20px rgba(16,60,52,.30);--radius:20px;--radius-lg:28px;
  --font-display:'Newsreader',Georgia,'Times New Roman',serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
section{scroll-margin-top:88px}
.container{max-width:1140px;margin:0 auto;padding:0 24px}
.section{padding:clamp(56px,8vw,104px) 0}
.section--tint{background:var(--surface-alt)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.76rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin-bottom:16px}
.eyebrow::before{content:"";width:24px;height:2px;background:var(--accent);border-radius:2px}
.eyebrow--center{justify-content:center}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.14;letter-spacing:-.01em}
h2.section-title{font-size:clamp(1.95rem,3.6vw,2.75rem);color:var(--ink);max-width:20ch}
.section-head{margin-bottom:clamp(36px,5vw,54px)}
.section-head--center{text-align:center;margin-inline:auto}
.section-head--center h2{margin-inline:auto}
.section-intro{color:var(--muted);font-size:1.05rem;margin-top:18px;max-width:58ch}
.section-head--center .section-intro{margin-inline:auto}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-body);font-weight:600;font-size:.97rem;padding:14px 26px;border-radius:999px;border:1.6px solid transparent;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--accent);color:#3a2410;box-shadow:0 12px 24px -12px rgba(205,125,51,.7)}
.btn-primary:hover{background:var(--accent-deep);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--border)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-2px)}
.btn-white{background:#fff;color:var(--brand-deep)}
.btn-white:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-lg{padding:16px 32px;font-size:1.02rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}


.brand{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-weight:600;font-size:1.24rem;color:var(--ink)}
.brand .mark{width:38px;height:38px;flex:none;color:var(--brand)}
.brand small{display:block;font-family:var(--font-body);font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);margin-top:-2px}

.drop-trigger svg{width:14px;height:14px}
.has-drop{position:relative}
.drop{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:10px;min-width:262px;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility .18s;display:grid;gap:2px;z-index:80}
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px)}
.drop a{padding:10px 12px;border-radius:11px;font-size:.9rem;display:flex;align-items:center;gap:11px;color:var(--ink);opacity:1}
.drop a:hover{background:var(--surface-alt);color:var(--brand)}
.drop a svg{width:18px;height:18px;color:var(--brand);flex:none}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-phone{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.95rem;color:var(--ink)}
.nav-phone svg{width:17px;height:17px;color:var(--brand)}
.hamburger{display:none;background:none;border:none;cursor:pointer;color:var(--ink);padding:6px}
.hamburger svg{width:26px;height:26px}
/* page banner */
.page-banner{background:var(--surface-alt);padding:clamp(46px,7vw,82px) 0 clamp(38px,6vw,60px);border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.page-banner .container{position:relative;z-index:1}
.page-banner h1{font-size:clamp(2rem,4.4vw,3rem);color:var(--ink);margin-top:14px}
.page-banner p{color:var(--muted);font-size:1.1rem;margin-top:12px;max-width:56ch}
.page-banner::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(15,120,106,.10),transparent 65%);top:-170px;right:-130px}
.page-banner::before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(232,151,76,.10),transparent 65%);bottom:-180px;left:-100px}
.breadcrumb{font-size:.86rem;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.breadcrumb a{color:var(--brand);font-weight:500}
.breadcrumb a:hover{text-decoration:underline}
/* hero */
.hero{position:relative;padding:clamp(46px,8vw,92px) 0 clamp(54px,9vw,100px);overflow:hidden}
.hero-blob{position:absolute;border-radius:50%;filter:blur(10px);z-index:0;pointer-events:none;opacity:.6}
.hero-blob.b1{width:520px;height:520px;background:radial-gradient(circle at 30% 30%,rgba(15,120,106,.16),transparent 62%);top:-160px;right:-120px}
.hero-blob.b2{width:440px;height:440px;background:radial-gradient(circle at 60% 40%,rgba(232,151,76,.16),transparent 60%);bottom:-180px;left:-140px}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,68px);align-items:center}
.hero h1{font-size:clamp(2.4rem,5.4vw,3.9rem);color:var(--ink)}
.hero h1 em{font-style:italic;color:var(--brand)}
.hero p.lead{font-size:1.18rem;color:var(--muted);margin:22px 0 32px;max-width:44ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:30px}
.hero-chips{display:flex;flex-wrap:wrap;gap:10px 22px}
.hero-chip{display:inline-flex;align-items:center;gap:9px;font-size:.92rem;color:var(--ink);font-weight:500}
.hero-chip svg{width:19px;height:19px;color:var(--brand);flex:none}
.hero-visual{position:relative;aspect-ratio:1/1.02;max-width:460px;margin-inline:auto;width:100%}
.hero-card{position:absolute;inset:0;border-radius:var(--radius-lg);background:linear-gradient(150deg,#128675 0%,#0f786a 46%,#e8974c 130%);box-shadow:0 40px 80px -30px rgba(11,74,65,.55);overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero-card::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.09);top:-70px;left:-70px}
.hero-card::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.07);bottom:-60px;right:-50px}
.hero-card svg.motif{width:52%;height:52%;color:rgba(255,255,255,.95);position:relative;z-index:1}
.float{position:absolute;background:#fff;border-radius:16px;padding:12px 16px;box-shadow:var(--shadow);display:flex;align-items:center;gap:11px;z-index:3}
.float .ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.float .ic svg{width:18px;height:18px}
.float small{display:block;font-size:.72rem;color:var(--muted);line-height:1.3}
.float strong{display:block;font-size:.9rem;color:var(--ink);font-weight:600;line-height:1.2}
.float.f1{top:14%;left:-26px}.float.f1 .ic{background:var(--brand-tint);color:var(--brand)}
.float.f2{bottom:11%;right:-22px}.float.f2 .ic{background:var(--accent-tint);color:var(--accent-deep)}
/* welcome */
.welcome{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,5vw,64px);align-items:center}
.welcome p{color:var(--muted);font-size:1.08rem}.welcome p+p{margin-top:16px}
.welcome .lead-line{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,1.85rem);color:var(--ink);line-height:1.3;margin-bottom:20px}
.mini-points{display:grid;gap:16px}
.mini-point{display:flex;gap:14px;align-items:flex-start}
.mini-point .ic{width:44px;height:44px;border-radius:12px;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.mini-point .ic svg{width:22px;height:22px}
.mini-point h4{font-family:var(--font-body);font-size:1.02rem;font-weight:600;margin-bottom:2px}
.mini-point p{font-size:.94rem;margin:0}
/* grids + cards */
.grid{display:grid;gap:22px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:block}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
.card .ic{width:54px;height:54px;border-radius:15px;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.card .ic svg{width:27px;height:27px}
.card:nth-child(even) .ic{background:var(--accent-tint);color:var(--accent-deep)}
.card h3{font-family:var(--font-body);font-size:1.14rem;font-weight:600;margin-bottom:9px;color:var(--ink)}
.card p{color:var(--muted);font-size:.95rem}
.card .more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.88rem;font-weight:600;color:var(--brand)}
.card .more svg{width:15px;height:15px;transition:transform .18s ease}
.card:hover .more svg{transform:translateX(4px)}
/* features */
.feature{display:flex;gap:16px;align-items:flex-start;padding:6px 4px}
.feature .ic{width:50px;height:50px;border-radius:14px;background:var(--surface);border:1px solid var(--border);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--shadow-sm)}
.feature .ic svg{width:24px;height:24px}
.feature h3{font-family:var(--font-body);font-size:1.06rem;font-weight:600;margin-bottom:5px}
.feature p{color:var(--muted);font-size:.95rem}
/* band */
.band{background:var(--brand-deep);color:#eaf4f1;border-radius:var(--radius-lg);padding:clamp(44px,6vw,72px);text-align:center;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.05);top:-120px;left:-80px}
.band::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(232,151,76,.14);bottom:-130px;right:-60px}
.band .quote-mark{font-family:var(--font-display);font-size:4rem;line-height:.4;color:var(--accent);opacity:.8;position:relative}
.band h2{position:relative;font-size:clamp(1.7rem,3.4vw,2.5rem);color:#fff;max-width:22ch;margin:14px auto 18px;font-weight:500}
.band p{position:relative;color:rgba(234,244,241,.82);max-width:52ch;margin:0 auto 30px;font-size:1.05rem}
.band .btn-white{position:relative}
.band .band-actions{position:relative;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:step}
.step{position:relative;padding-top:8px}
.step .num{counter-increment:step;font-family:var(--font-display);font-size:2.4rem;font-weight:600;color:var(--brand);display:flex;align-items:center;gap:14px;margin-bottom:16px}
.step .num::before{content:counter(step,decimal-leading-zero)}
.step .num .dash{flex:1;height:1px;background:var(--border)}
.step h3{font-family:var(--font-body);font-size:1.08rem;font-weight:600;margin-bottom:8px}
.step p{color:var(--muted);font-size:.94rem}
/* pricing */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
.price{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}
.price:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.price.featured{border:1.5px solid var(--brand);box-shadow:var(--shadow);position:relative}
.price.featured .tag-pop{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--accent);color:#3a2410;font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:5px 14px;border-radius:999px;text-transform:uppercase}
.price h3{font-family:var(--font-body);font-size:1.1rem;font-weight:700;margin-bottom:6px}
.price .sub{color:var(--muted);font-size:.86rem;min-height:38px}
.price .amount{font-family:var(--font-display);font-size:1.55rem;font-weight:600;color:var(--brand-deep);margin:14px 0 4px}
.price .amount span{font-family:var(--font-body);font-size:.82rem;font-weight:500;color:var(--muted)}
.price ul{list-style:none;margin:18px 0 24px;display:grid;gap:11px}
.price li{display:flex;gap:10px;font-size:.9rem;color:var(--ink);align-items:flex-start}
.price li svg{width:17px;height:17px;color:var(--brand);flex:none;margin-top:3px}
.price .btn{margin-top:auto;width:100%}
.price-note{text-align:center;color:var(--muted);font-size:.94rem;margin-top:26px}
.price-note a{color:var(--brand);font-weight:600}
/* quotes */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.quote{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px}
.quote .stars{color:var(--accent);display:flex;gap:2px;margin-bottom:14px}
.quote .stars svg{width:18px;height:18px}
.quote p{color:var(--ink);font-size:1rem;line-height:1.6;margin-bottom:20px}
.quote .who{display:flex;align-items:center;gap:12px}
.quote .av{width:44px;height:44px;border-radius:50%;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:1.05rem;flex:none}
.quote .who strong{display:block;font-family:var(--font-body);font-size:.95rem;font-weight:600}
.quote .who small{color:var(--muted);font-size:.85rem}

/* service detail */
.service-layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(30px,4vw,56px);align-items:start}
.service-side{position:sticky;top:96px;display:grid;gap:18px}
.side-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px}
.side-card--accent{background:var(--accent-tint);border-color:#f3d9bd}
.side-card--brand{background:var(--brand-deep);color:rgba(234,244,241,.85)}
.side-card--brand h4{color:#fff}
.side-card h3{font-family:var(--font-display);font-size:1.3rem;margin-bottom:8px;color:var(--ink)}
.side-card h4{font-family:var(--font-body);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink);margin-bottom:14px}
.side-card p{color:var(--muted);font-size:.94rem;margin-bottom:16px}
.side-card--accent p{color:#7a5a30}
.side-card--brand p{color:rgba(234,244,241,.85);margin-bottom:0;line-height:1.9}
.side-card .btn{width:100%;margin-bottom:10px}
.side-card .btn:last-child{margin-bottom:0}
.side-list{list-style:none;display:grid;gap:2px}
.side-list a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font-size:.93rem;color:var(--ink);transition:background .15s}
.side-list a:hover{background:var(--surface-alt);color:var(--brand)}
.side-list a svg{width:18px;height:18px;color:var(--brand);flex:none}
.prose .intro{font-size:1.18rem;color:var(--ink);line-height:1.6;margin-bottom:28px}
.prose h2{font-family:var(--font-display);font-size:1.5rem;color:var(--ink);margin:34px 0 14px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--muted);margin-bottom:14px}
.checklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:6px 0 8px}
.checklist li{display:flex;gap:11px;align-items:flex-start;color:var(--ink);font-size:.97rem}
.checklist li svg{width:20px;height:20px;color:var(--brand);flex:none;margin-top:2px}
.cta-inline{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
/* about */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,60px);align-items:center}
.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mv-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px}
.mv-card .ic{width:52px;height:52px;border-radius:15px;background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.mv-card .ic svg{width:26px;height:26px}
.mv-card h3{font-family:var(--font-display);font-size:1.4rem;margin-bottom:10px;color:var(--ink)}
.mv-card p{color:var(--muted);font-size:.97rem}
/* blog */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.blog-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .2s,box-shadow .2s;display:block}
.blog-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.blog-thumb{height:172px;background:linear-gradient(135deg,var(--brand-tint),var(--accent-tint));display:flex;align-items:center;justify-content:center;color:var(--brand);position:relative}
.blog-thumb svg{width:46px;height:46px;opacity:.5}
.blog-cat{position:absolute;top:14px;left:14px;background:#fff;color:var(--brand-deep);font-size:.72rem;font-weight:600;padding:5px 11px;border-radius:999px}
.blog-body{padding:24px}
.blog-body .date{font-size:.82rem;color:var(--muted);margin-bottom:8px}
.blog-body h3{font-family:var(--font-display);font-size:1.2rem;line-height:1.32;margin-bottom:10px;color:var(--ink)}
.blog-body p{color:var(--muted);font-size:.93rem;margin-bottom:14px}
.blog-body .more{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--brand)}
.blog-body .more svg{width:15px;height:15px}
.note{background:var(--accent-tint);border:1px solid #f3d9bd;border-radius:14px;padding:16px 20px;color:#7a5a30;font-size:.92rem;margin-bottom:32px}
/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,5vw,60px);align-items:start}
.contact-info .lead-line{font-family:var(--font-display);font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.28;margin-bottom:14px}
.contact-info>p{color:var(--muted);margin-bottom:28px;max-width:42ch}
.contact-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.contact-row .ic{width:46px;height:46px;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:var(--shadow-sm)}
.contact-row .ic svg{width:22px;height:22px}
.contact-row small{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:2px}
.contact-row strong{font-family:var(--font-body);font-weight:600;font-size:1.02rem;color:var(--ink)}
.form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(26px,4vw,40px);box-shadow:var(--shadow)}
.form h3{font-family:var(--font-display);font-size:1.5rem;margin-bottom:6px}
.form>p{color:var(--muted);font-size:.94rem;margin-bottom:24px}
.field{margin-bottom:18px}
.field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:.98rem;color:var(--ink);padding:13px 15px;border:1.4px solid var(--border);border-radius:12px;background:var(--bg);transition:border-color .18s ease,background .18s ease}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);background:#fff}
.field textarea{resize:vertical;min-height:96px}
.form .btn{width:100%;margin-top:4px}
.form-note{font-size:.82rem;color:var(--muted);text-align:center;margin-top:14px}
.confirm{display:none;background:var(--brand-tint);color:var(--brand-deep);border-radius:12px;padding:14px 16px;font-size:.92rem;font-weight:500;margin-top:16px}
.confirm.show{display:block}
.area-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.area-tag{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:9px 16px;font-size:.9rem;color:var(--ink)}

/* fab */
.fab{display:none;position:fixed;right:18px;bottom:18px;z-index:70;background:var(--accent);color:#3a2410;padding:14px 20px;border-radius:999px;font-weight:600;box-shadow:0 14px 30px -10px rgba(205,125,51,.8);align-items:center;gap:9px}
.fab svg{width:19px;height:19px}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
/* responsive */
@media(max-width:960px){
  .grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .price-grid{grid-template-columns:repeat(2,1fr)}
  .quotes{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:repeat(2,1fr)}
  .hero-grid{grid-template-columns:1fr;gap:48px}
  .hero-visual{max-width:380px}
  .welcome,.two-col,.contact-grid{grid-template-columns:1fr;gap:36px}
  .service-layout{grid-template-columns:1fr;gap:40px}
  .service-side{position:static;grid-template-columns:1fr 1fr;display:grid}
  .side-card--brand{grid-column:1/-1}
  .stat-strip{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .nav-links,.nav-phone{display:none}
  .hamburger{display:block}
  .nav-links.open{display:flex;flex-direction:column;align-items:flex-start;gap:2px;position:absolute;top:72px;left:0;right:0;background:var(--surface);padding:14px 24px 22px;border-bottom:1px solid var(--border);box-shadow:var(--shadow);max-height:80vh;overflow-y:auto}
  .nav-links.open>a{padding:12px 0;width:100%;border-bottom:1px solid var(--border);opacity:1}
  .has-drop{width:100%}
  .drop-trigger{padding:12px 0;width:100%;justify-content:space-between;border-bottom:1px solid var(--border)}
  .drop{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;padding:2px 0 8px 14px;min-width:0;background:transparent}
  .drop a{padding:9px 0}
  .grid-4,.grid-3,.steps,.price-grid,.blog-grid,.checklist{grid-template-columns:1fr}
  .service-side{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .foot-bottom{flex-direction:column}
  .float.f1{left:-8px}.float.f2{right:-6px}
  .fab{display:inline-flex}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{transition:none!important}
}