:root{
	--bg:#f7f3ef;
	--bg-2:#fffdfa;
	--surface:rgba(255,255,255,.88);
	--surface-strong:#ffffff;
	--text:#4b433d;
	--muted:#736a63;
	--line:rgba(110,92,80,.12);
	--line-strong:rgba(110,92,80,.18);
	--accent:#b89480;
	--accent-2:#a98370;
	--accent-3:#8f6d5d;
	--chip:#f3e9e2;
	--shadow:0 18px 54px rgba(93,72,59,.08);
	--shadow-soft:0 10px 28px rgba(93,72,59,.06);
	--radius:28px;
	--radius-md:22px;
	--radius-sm:18px;
	--wrap:1180px;
}

*,
*::before,
*::after{
	box-sizing:border-box;
}

html{
	scroll-behavior:smooth;
}

body{
	margin:0;
	font-family:'Plus Jakarta Sans',sans-serif;
	color:var(--text);
	background:
		radial-gradient(circle at top left, rgba(215,194,180,.14), transparent 32%),
		radial-gradient(circle at top right, rgba(226,210,201,.12), transparent 28%),
		linear-gradient(180deg, #fcfaf8 0%, var(--bg) 100%);
}

img{
	display:block;
	max-width:100%;
	height:auto;
}

a{
	color:inherit;
	text-decoration:none;
}

.wrap{
	width:min(calc(100% - 32px), var(--wrap));
	margin:0 auto;
}

.topbar{
	position:sticky;
	top:0;
	z-index:60;
	backdrop-filter:blur(14px);
	background:rgba(252,250,248,.78);
	border-bottom:1px solid rgba(110,92,80,.08);
	transition:background .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.topbar.is-scrolled{
	background:rgba(252,250,248,.94);
	border-bottom-color:rgba(110,92,80,.12);
	box-shadow:0 10px 24px rgba(93,72,59,.04);
}

.topbar-in{
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:76px;
	gap:20px;
}

.brand-mini{
	font-family:'Cormorant Garamond',serif;
	font-size:2rem;
	line-height:1;
	letter-spacing:.02em;
}

.topbar-links{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:18px;
	flex-wrap:wrap;
}

.top-link{
	font-size:.94rem;
	color:var(--muted);
}

.top-link-cta{
	display:inline-flex;
	align-items:center;
	min-height:40px;
	padding:0 16px;
	border-radius:999px;
	background:rgba(184,148,128,.12);
	color:var(--accent-3);
	border:1px solid rgba(184,148,128,.18);
}

.hero{
	position:relative;
	min-height:62vh;
	display:flex;
	align-items:center;
	justify-content:center;
	overflow:hidden;
}

.hero-media{
	position:absolute;
	inset:0;
}

.hero-media img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
	filter:saturate(.88) brightness(1.14);
}

.hero-overlay{
	position:absolute;
	inset:0;
	background:
		radial-gradient(
			circle at center,
			rgba(255,252,249,0.45) 0%,
			rgba(255,252,249,0.30) 40%,
			rgba(255,252,249,0.15) 100%
		);
}

.hero-content{
	position:relative;
	z-index:2;
	width:100%;
}

.hero-box{
	max-width:700px;
	margin:0 auto;
	padding:28px 20px;
	text-align:center;
	color:var(--text);
}

.hero-logo{
	width:min(100%, 320px);
	margin:0 auto 14px;
}

.section-kicker{
	margin:0 0 10px;
	font-size:.82rem;
	font-weight:700;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--accent-2);
}

h1,
h2,
h3{
	margin:0;
	font-family:'Cormorant Garamond',serif;
	font-weight:600;
	letter-spacing:.01em;
}

h1{
	font-size:clamp(2.7rem, 5vw, 4.4rem);
	line-height:.92;
}

h2{
	font-size:clamp(2.05rem, 4vw, 3rem);
	line-height:.96;
}

h3{
	font-size:2rem;
	line-height:1;
}

.hero-copy{
	max-width:560px;
	margin:12px auto 0;
	font-size:1rem;
	line-height:1.56;
	color:rgba(75,67,61,.84);
}

.hero-actions{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:14px;
	margin-top:22px;
}

.btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:52px;
	padding:0 24px;
	border-radius:999px;
	border:1px solid var(--line-strong);
	font-size:.95rem;
	font-weight:600;
	transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.btn:hover{
	transform:translateY(-1px);
}

.btn-primary{
	background:var(--accent);
	border-color:var(--accent);
	color:#fff;
	box-shadow:0 12px 28px rgba(184,148,128,.18);
}

.btn-primary:hover{
	background:var(--accent-2);
	border-color:var(--accent-2);
}

.btn-ghost{
	background:rgba(255,255,255,.62);
	color:var(--text);
	backdrop-filter:blur(8px);
}

.btn-ghost-light{
	background:rgba(255,255,255,.65);
}

.intro{
	padding:68px 0 24px;
}

.intro-in{
	display:grid;
	grid-template-columns:minmax(320px, .86fr) minmax(0, 1.14fr);
	gap:28px;
	align-items:center;
}

.intro-media{
	border-radius:var(--radius);
	overflow:hidden;
	box-shadow:var(--shadow);
	background:#eadfd8;
	min-height:520px;
}

.intro-media img{
	width:100%;
	height:100%;
	object-fit:cover;
}

.intro-copy{
	padding:8px 6px 8px 0;
}

.intro-copy p,
.section-head p,
.service-body p,
.process-card p,
.cta-block p{
	margin:0;
	font-size:.98rem;
	line-height:1.64;
	color:var(--muted);
}

.intro-copy h2,
.section-head h2,
.cta-block h2{
	margin-bottom:14px;
}

.intro-points{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	margin-top:22px;
}

.intro-point{
	padding:18px 18px 16px;
	border-radius:18px;
	background:var(--surface);
	border:1px solid var(--line);
	box-shadow:var(--shadow-soft);
}

.intro-point strong{
	display:block;
	font-size:.98rem;
	font-weight:700;
	margin-bottom:5px;
	color:var(--text);
}

.intro-point span{
	display:block;
	font-size:.94rem;
	line-height:1.54;
	color:var(--muted);
}

.services{
	padding:56px 0 18px;
}

.section-head{
	max-width:760px;
	margin:0 auto 28px;
	text-align:center;
}

.services-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:22px;
}

.service-card{
	display:flex;
	flex-direction:column;
	overflow:hidden;
	border-radius:var(--radius-md);
	background:rgba(255,255,255,.9);
	border:1px solid var(--line);
	box-shadow:var(--shadow-soft);
	transition:transform .18s ease, box-shadow .18s ease;
}

.service-card:hover{
	transform:translateY(-3px);
	box-shadow:0 22px 44px rgba(93,72,59,.09);
}

.service-media{
	aspect-ratio:4/3;
	background:#efe5de;
	overflow:hidden;
}

.service-media img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .45s ease;
}

.service-card:hover .service-media img{
	transform:scale(1.03);
}

.service-body{
	padding:22px 22px 22px;
}

.service-body h3{
	margin-bottom:12px;
}

.process{
	padding:46px 0 18px;
}

.process-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:20px;
}

.process-card{
	padding:28px 24px 24px;
	border-radius:var(--radius-md);
	background:var(--surface);
	border:1px solid var(--line);
	box-shadow:var(--shadow-soft);
}

.process-no{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:50px;
	height:50px;
	padding:0 14px;
	border-radius:999px;
	margin-bottom:14px;
	background:var(--chip);
	color:var(--accent-3);
	font-weight:700;
	font-size:.95rem;
}

.process-card h3{
	font-size:1.8rem;
	margin-bottom:12px;
}

.cta-block{
	padding:52px 0 78px;
}

.cta-block-in{
	max-width:880px;
	margin:0 auto;
	padding:40px 28px;
	border-radius:var(--radius);
	text-align:center;
	background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,252,248,.94));
	border:1px solid var(--line);
	box-shadow:var(--shadow-soft);
}

.footer{
	padding:0 0 34px;
}

.footer-in{
	text-align:center;
	color:var(--muted);
	font-size:.9rem;
}

.floating-wa{
	position:fixed;
	right:16px;
	bottom:16px;
	z-index:70;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:52px;
	padding:0 18px;
	border-radius:999px;
	background:#25D366;
	color:#fff;
	font-size:.94rem;
	font-weight:700;
	box-shadow:0 16px 30px rgba(37,211,102,.28);
}

@media (max-width: 1100px){
	.services-grid{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.process-grid{
		grid-template-columns:1fr;
	}
}

@media (max-width: 860px){
	.topbar-in{
		min-height:auto;
		padding:14px 0;
		flex-direction:column;
		justify-content:center;
	}

	.topbar-links{
		justify-content:center;
	}

	.hero{
		min-height:56vh;
	}

	.hero-box{
		padding:24px 14px;
	}

	.intro-in{
		grid-template-columns:1fr;
	}

	.intro-media{
		min-height:420px;
		order:1;
	}

	.intro-copy{
		order:2;
		padding:0;
	}
}

@media (max-width: 640px){
	.wrap{
		width:min(calc(100% - 22px), var(--wrap));
	}

	.brand-mini{
		font-size:1.8rem;
	}

	.topbar-links{
		gap:12px;
	}

	.top-link{
		font-size:.9rem;
	}

	.hero{
		min-height:52vh;
	}

	.hero-logo{
		width:min(100%, 270px);
	}

	.hero-copy{
		font-size:.95rem;
		line-height:1.5;
	}

	.hero-actions{
		flex-direction:column;
		align-items:stretch;
	}

	.btn{
		width:100%;
	}

	.intro{
		padding-top:54px;
	}

	.intro-media{
		min-height:340px;
	}

	.services{
		padding-top:42px;
	}

	.services-grid{
		grid-template-columns:1fr;
		gap:16px;
	}

	.service-body h3{
		font-size:1.8rem;
	}

	.floating-wa{
		right:12px;
		bottom:12px;
		min-height:48px;
		padding:0 16px;
		font-size:.92rem;
	}
}
