@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root { --ink:#19231d; --muted:#68736b; --green:#126a3a; --green-deep:#0b4129; --green-soft:#e4f0e6; --pink:#d91679; --pink-soft:#fde8f3; --cream:#fbfaf6; --line:#dfe8df; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',sans-serif; line-height:1.5; }
button,a { font:inherit; } button { border:0; cursor:pointer; } a { color:inherit; text-decoration:none; }
.container { width:min(1180px, calc(100% - 64px)); margin:auto; }
.site-header { position:sticky; top:0; z-index:20; background:rgba(251,250,246,.9); backdrop-filter:blur(18px); border-bottom:1px solid rgba(223,232,223,.8); }
.nav-wrap { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:flex; align-items:center; gap:10px; background:none; padding:0; text-align:left; }.brand img { width:45px; height:45px; object-fit:contain; }.brand span { display:grid; gap:0; }.brand strong { font-size:13px; letter-spacing:.14em; color:var(--green-deep); }.brand small { color:var(--pink); font-size:9px; font-weight:700; letter-spacing:.2em; }
.main-nav { display:flex; gap:28px; margin-left:auto; }.main-nav button { background:none; color:#5e685f; text-transform:capitalize; font-size:13px; padding:8px 0; transition:.2s; }.main-nav button:hover,.main-nav button:first-child { color:var(--green); }.mobile-call { display:none; }
.nav-actions { display:flex; align-items:center; gap:21px; }.call-link { color:var(--green); font-size:13px; display:flex; gap:7px; align-items:center; }.nav-cta,.button-primary { background:var(--green); color:#fff; border-radius:4px; display:inline-flex; align-items:center; gap:10px; transition:.25s; }.nav-cta { padding:12px 16px; font-size:12px; }.nav-cta:hover,.button-primary:hover { background:var(--green-deep); transform:translateY(-2px); }.menu-toggle { display:none; background:none; color:var(--green); }
.hero { min-height:650px; display:flex; align-items:center; position:relative; overflow:hidden; background:linear-gradient(135deg,#fbfaf6 0%,#edf6ed 100%); }.hero-glow { position:absolute; width:550px; height:550px; right:-120px; top:-200px; border-radius:50%; background:rgba(217,22,121,.07); }.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:75px; align-items:center; padding:70px 0 84px; }.eyebrow { color:var(--pink); text-transform:uppercase; letter-spacing:.18em; font-size:10px; font-weight:700; display:flex; align-items:center; gap:10px; }.eyebrow-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--green); }.hero h1,h2 { font-family:'Playfair Display',serif; font-weight:500; line-height:1.1; }.hero h1 { font-size:clamp(50px,6vw,84px); letter-spacing:-.04em; max-width:620px; margin:22px 0; }.hero h1 em,h2 em { color:var(--green); font-style:italic; }.hero-lede { color:var(--muted); font-size:16px; max-width:470px; line-height:1.8; }.hero-actions { display:flex; gap:13px; margin:32px 0 40px; }.button { padding:14px 20px; font-size:13px; }.button-ghost { background:transparent; color:var(--green); border:1px solid #b7cdbb; border-radius:4px; display:inline-flex; gap:9px; align-items:center; }.button-ghost:hover { border-color:var(--green); background:#fff; }.trust-row { display:flex; align-items:center; gap:13px; }.trust-avatars { display:flex; }.trust-avatars span,.client>span { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; margin-right:-7px; border:2px solid var(--cream); color:#fff; background:var(--green); font-size:8px; font-weight:700; }.trust-avatars span:nth-child(2) { background:var(--pink); }.trust-avatars span:nth-child(3) { background:#7e9e80; }.stars { color:#ed9b2c; letter-spacing:2px; font-size:11px; }.trust-row small { color:var(--muted); font-size:10px; }.hero-visual { position:relative; min-height:510px; }.hero-image-frame { position:absolute; right:45px; top:0; width:min(390px,80%); height:470px; border-radius:200px 200px 15px 15px; overflow:hidden; box-shadow:22px 25px 50px rgba(34,72,47,.18); }.hero-image-frame img,.intro-main,.intro-detail,.promise-card img { width:100%; height:100%; object-fit:cover; }.image-stamp { position:absolute; left:20px; bottom:20px; background:#fff; padding:14px; display:flex; gap:9px; color:var(--green); align-items:center; box-shadow:0 7px 20px #0001; }.image-stamp span { line-height:1.25; font-size:10px; }.image-stamp strong { font-size:12px; }.floating-card { position:absolute; bottom:62px; left:0; background:#fff; padding:15px 18px; display:flex; align-items:center; gap:11px; box-shadow:0 12px 30px #244b3020; z-index:2; }.card-icon { display:grid; place-items:center; width:36px; height:36px; background:var(--pink-soft); color:var(--pink); border-radius:50%; }.floating-card strong,.floating-card small { display:block; font-size:11px; }.floating-card small { color:var(--muted); margin-top:2px; font-size:10px; }.outline-orb { position:absolute; width:100px; height:100px; border:1px solid #afd1b4; border-radius:50%; left:15px; top:70px; }.scroll-note { position:absolute; bottom:22px; left:calc((100% - 1180px)/2); color:#78877b; font-size:10px; letter-spacing:.14em; text-transform:uppercase; display:flex; gap:9px; align-items:center; }.scroll-note span { height:25px; width:1px; background:var(--pink); }
.intro-section { padding:125px 0; background:#fff; }.intro-grid,.why-grid { display:grid; grid-template-columns:1fr 1fr; gap:105px; align-items:center; }.intro-images { min-height:535px; position:relative; }.intro-main { width:77%; height:440px; border-radius:4px; }.intro-detail { position:absolute; width:45%; height:235px; right:0; bottom:0; border:10px solid #fff; }.experience-badge { position:absolute; top:30px; right:5px; background:var(--green); color:#fff; padding:17px; width:120px; height:120px; border-radius:50%; transform:rotate(9deg); display:grid; place-items:center; text-align:center; }.experience-badge strong { font-family:'Playfair Display'; font-size:27px; color:#c8e5c9; }.experience-badge span { font-size:9px; line-height:1.3; }.section-copy h2,.section-heading h2,.testimonial-layout h2 { font-size:clamp(37px,4vw,54px); margin:17px 0 21px; letter-spacing:-.03em; }.section-copy>p,.section-heading>p { color:var(--muted); line-height:1.8; font-size:14px; max-width:480px; }.values-list { margin:30px 0; border-top:1px solid var(--line); }.values-list>div { display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--line); }.values-list svg { flex:none; color:var(--pink); margin-top:2px; }.values-list strong,.values-list small { display:block; }.values-list strong { font-size:13px; }.values-list small { color:var(--muted); font-size:11px; margin-top:3px; }.text-link { background:none; color:var(--green); padding:0; display:flex; gap:9px; align-items:center; font-size:13px; font-weight:700; }
.section-pad { padding:115px 0; }.services-section { background:var(--cream); }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:45px; gap:40px; }.section-heading>p { margin:0 0 8px; }.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.service-card { padding:27px; background:#fff; border:1px solid #edf0e9; min-height:250px; display:flex; flex-direction:column; transition:.25s; }.service-card:hover { transform:translateY(-5px); box-shadow:0 15px 35px #254a2a12; border-color:#c1ddc4; }.service-card.featured { background:var(--green); color:#fff; }.service-card.featured p { color:#d6e8d7; }.service-card.featured button { color:#fff; }.service-top { display:flex; justify-content:space-between; }.service-icon { width:42px; height:42px; display:grid; place-items:center; background:var(--green-soft); color:var(--green); border-radius:50%; }.featured .service-icon { background:#ffffff20; color:#e5f0de; }.service-number { font-size:11px; color:#a3b0a5; }.service-card h3 { font-family:'Playfair Display'; font-size:23px; font-weight:500; margin:28px 0 9px; }.service-card p { color:var(--muted); font-size:12px; line-height:1.7; margin:0; }.service-card button { margin-top:auto; padding:23px 0 0; background:none; color:var(--green); display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; }
.process-section { background:#fff; padding:100px 0; }.centered { display:block; text-align:center; }.centered .eyebrow { justify-content:center; }.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; margin-top:45px; }.process-step { border-top:1px solid #cbdccf; padding-top:20px; }.process-step>span { color:var(--pink); font-family:'Playfair Display'; font-size:22px; }.process-step h3 { font-size:14px; margin:16px 0 7px; }.process-step p { color:var(--muted); font-size:12px; line-height:1.7; }.stats-section { background:var(--green-deep); color:#fff; }.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); }.stat { min-height:168px; padding:32px 20px; border-right:1px solid #ffffff25; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }.stat:first-child { border-left:1px solid #ffffff25; }.stat svg { color:#c2e3bc; margin-bottom:12px; }.stat strong { font-family:'Playfair Display'; font-size:42px; font-weight:500; }.stat span { color:#c9dccb; font-size:11px; margin-top:1px; }
.why-section { background:#f3f7f0; }.benefit-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin-top:30px; }.benefit-grid div { font-size:12px; color:#516054; display:flex; align-items:center; gap:8px; }.benefit-grid svg { color:var(--pink); }.promise-card { position:relative; min-height:480px; overflow:hidden; }.promise-card img { position:absolute; inset:0; }.promise-card:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#0b4129dc,transparent 65%); }.promise-overlay { position:absolute; z-index:1; bottom:30px; left:30px; right:30px; color:#fff; }.promise-overlay svg { color:#d1e8c9; }.promise-overlay p { font-family:'Playfair Display'; font-style:italic; font-size:25px; line-height:1.25; max-width:400px; margin:12px 0; }.promise-overlay span { font-size:11px; color:#c9dfca; }
.testimonial-section { background:var(--pink-soft); }.testimonial-layout { display:grid; grid-template-columns:1fr 1.2fr; gap:100px; align-items:center; }.testimonial-note { color:var(--muted); font-size:13px; }.carousel-controls { display:flex; align-items:center; gap:18px; margin-top:55px; }.carousel-controls>button { width:39px; height:39px; border:1px solid #d2abc0; background:transparent; color:var(--pink); display:grid; place-items:center; }.dots { display:flex; gap:7px; }.dots button { width:6px; height:6px; border-radius:50%; padding:0; background:#d7b6c8; }.dots button.active { background:var(--pink); width:21px; border-radius:5px; }.testimonial-card { background:#fff; padding:48px; position:relative; min-height:310px; box-shadow:0 15px 35px #a91b6210; }.quote-mark { font-family:Georgia; font-size:70px; color:#f1c6db; height:53px; line-height:1; }.testimonial-card blockquote { font-family:'Playfair Display'; font-size:25px; line-height:1.35; margin:16px 0 32px; max-width:550px; }.client { display:flex; align-items:center; gap:13px; }.client>span { background:var(--green); width:39px; height:39px; margin:0; }.client strong,.client small { display:block; font-size:12px; }.client small { color:var(--muted); font-size:10px; margin-top:3px; }
.gallery-section { background:#fff; }.filter-row { display:flex; gap:7px; }.filter-row button { background:transparent; border:1px solid #dbe5da; padding:8px 14px; color:var(--muted); font-size:11px; }.filter-row button.active,.filter-row button:hover { background:var(--green); color:#fff; border-color:var(--green); }.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.gallery-item { height:245px; position:relative; overflow:hidden; padding:0; background:#eee; }.gallery-item:nth-child(2),.gallery-item:nth-child(5) { height:330px; margin-top:-85px; }.gallery-item img { width:100%; height:100%; object-fit:cover; transition:.4s; }.gallery-item:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#0b412988,transparent 50%); opacity:0; transition:.3s; }.gallery-item span { position:absolute; right:16px; bottom:15px; z-index:1; width:36px; height:36px; color:#fff; border:1px solid #fff8; display:grid; place-items:center; opacity:0; transform:translateY(8px); transition:.3s; }.gallery-item:hover img { transform:scale(1.05); }.gallery-item:hover:after,.gallery-item:hover span { opacity:1; }.gallery-item:hover span { transform:none; }
.contact-section { background:var(--green-soft); }.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; }.contact-copy>p { color:var(--muted); font-size:14px; line-height:1.8; max-width:420px; }.contact-details { margin:38px 0; border-top:1px solid #c8dacb; }.contact-details>a,.contact-details>div { display:flex; align-items:center; gap:14px; border-bottom:1px solid #c8dacb; padding:17px 0; }.contact-details>a>span,.contact-details>div>span { width:37px; height:37px; display:grid; place-items:center; background:#fff; color:var(--green); border-radius:50%; }.contact-details strong,.contact-details small { display:block; }.contact-details strong { font-size:12px; }.contact-details small { color:var(--muted); font-size:11px; max-width:290px; }.contact-details>a>svg { margin-left:auto; color:var(--green); }.social-row { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:10px; }.social-row a { width:30px; height:30px; border:1px solid #bdd0c0; display:grid; place-items:center; color:var(--green); }.social-row span { margin-right:7px; }.contact-form { background:#fff; padding:38px; box-shadow:0 15px 35px #254a2a0d; }.form-heading { margin-bottom:25px; }.form-heading span,.form-heading small { display:block; }.form-heading span { font-family:'Playfair Display'; font-size:26px; }.form-heading small { color:var(--muted); font-size:11px; margin-top:5px; }.form-row { display:grid; grid-template-columns:1fr 1fr; gap:17px; }label { display:block; color:#4c5c51; font-size:10px; font-weight:700; letter-spacing:.04em; margin-bottom:17px; }label small { color:#98a29b; font-weight:400; }input,select,textarea { display:block; width:100%; margin-top:7px; padding:12px 0; border:0; border-bottom:1px solid #ccd8cd; outline:0; color:var(--ink); background:transparent; font-size:13px; font-weight:400; font-family:inherit; }textarea { resize:vertical; border:1px solid #ccd8cd; padding:12px; }input:focus,select:focus,textarea:focus { border-color:var(--green); }select { color:var(--muted); }.form-submit { border:0; margin-top:5px; }.form-message { margin-top:14px; font-size:11px; display:flex; align-items:center; gap:7px; }.form-message.success { color:var(--green); }.form-message.error { color:#b3284f; }
footer { background:#0d2e1d; color:#d6e5d6; padding:70px 0 25px; }.footer-grid { display:grid; grid-template-columns:2fr 1fr 1.2fr 1.3fr; gap:40px; padding-bottom:65px; }.footer-brand img { width:65px; height:65px; object-fit:contain; background:#fff; border-radius:50%; }.footer-brand p { max-width:230px; color:#a5bea8; font-size:12px; line-height:1.7; margin-top:17px; }.footer-grid h4 { color:#fff; font-size:11px; letter-spacing:.12em; text-transform:uppercase; margin:5px 0 20px; }.footer-grid button,.footer-grid a,.footer-grid span { background:none; display:block; color:#a5bea8; padding:0; margin-bottom:11px; font-size:11px; text-align:left; }.footer-grid button:hover,.footer-grid a:hover { color:#fff; }.footer-bottom { border-top:1px solid #ffffff20; display:flex; justify-content:space-between; padding-top:21px; color:#78927e; font-size:10px; }.lightbox { position:fixed; inset:0; z-index:50; background:#07150dcc; display:flex; justify-content:center; align-items:center; padding:60px; }.lightbox img { max-width:min(900px,85vw); max-height:82vh; object-fit:contain; }.lightbox-close,.lightbox-arrow { position:absolute; background:#ffffff18; color:#fff; display:grid; place-items:center; width:45px; height:45px; }.lightbox-close { right:25px; top:25px; }.lightbox-arrow { top:50%; transform:translateY(-50%); }.lightbox-arrow.left { left:25px; }.lightbox-arrow.right { right:25px; }
@media (max-width:900px) { .container { width:min(100% - 40px, 680px); }.main-nav { display:none; position:absolute; top:78px; left:0; right:0; background:#fff; padding:18px 20px 25px; box-shadow:0 20px 30px #0001; flex-direction:column; gap:3px; }.main-nav.open { display:flex; }.main-nav button { text-align:left; padding:11px 0; }.mobile-call { display:flex !important; align-items:center; gap:7px; color:var(--pink) !important; border-top:1px solid var(--line); margin-top:7px; padding-top:16px !important; }.nav-actions { display:none; }.menu-toggle { display:block; }.hero-grid,.intro-grid,.why-grid,.contact-grid,.testimonial-layout { grid-template-columns:1fr; gap:55px; }.hero-grid { padding-top:60px; }.hero-visual { min-height:470px; }.hero-image-frame { right:0; }.floating-card { left:0; }.scroll-note { display:none; }.intro-images { min-height:480px; }.section-heading { display:block; }.section-heading>p { margin-top:20px; }.services-grid { grid-template-columns:1fr 1fr; }.process-grid { grid-template-columns:1fr 1fr; }.contact-grid { gap:45px; }.footer-grid { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:span 2; } }
@media (max-width:560px) { .container { width:calc(100% - 32px); }.brand strong { font-size:11px; }.brand img { width:39px; height:39px; }.hero { min-height:auto; }.hero h1 { font-size:48px; }.hero-grid { padding:55px 0 70px; gap:35px; }.hero-visual { min-height:390px; }.hero-image-frame { width:78%; height:370px; }.floating-card { bottom:15px; }.services-grid,.process-grid,.stats-grid,.gallery-grid { grid-template-columns:1fr; }.service-card { min-height:220px; }.process-step { display:grid; grid-template-columns:42px 1fr; gap:12px; }.stats-grid { padding:20px 0; }.stat,.stat:first-child { min-height:125px; border:0; border-bottom:1px solid #ffffff20; }.stat:last-child { border-bottom:0; }.gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(5) { height:275px; margin-top:0; }.section-pad,.intro-section { padding:76px 0; }.intro-images { min-height:390px; }.intro-main { height:340px; }.intro-detail { height:175px; }.experience-badge { width:95px; height:95px; top:15px; }.testimonial-card { padding:28px; }.testimonial-card blockquote { font-size:21px; }.contact-form { padding:25px 20px; }.form-row { grid-template-columns:1fr; gap:0; }.footer-grid { grid-template-columns:1fr 1fr; gap:30px 20px; }.footer-brand { grid-column:span 2; }.footer-bottom { display:block; line-height:2; }.footer-bottom span { display:block; } }
[hidden]{display:none!important}
