:root { --navy:#122f42; --aqua:#bdece8; --mint:#ecf8f5; --cream:#faf8f2; --coral:#ed755b; --ink:#173141; --font-sans:"DM Sans"; --font-serif:"Playfair Display"; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:var(--font-sans), sans-serif; }
a { color:inherit; text-decoration:none; }
.nav { height:88px; display:flex; align-items:center; justify-content:space-between; padding:0 6vw; border-bottom:1px solid #dce9e7; position:relative; z-index:5; background:#fff; }
.brand { display:flex; align-items:center; gap:12px; text-transform:uppercase; font-weight:800; letter-spacing:.04em; line-height:1.05; }
.brand small { display:block; font-size:10px; letter-spacing:.22em; margin-top:4px; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border:2px solid var(--navy); border-radius:50% 50% 44% 56%; font-family:var(--font-serif); font-size:25px; font-style:italic; }
nav { display:flex; align-items:center; gap:34px; font-size:14px; font-weight:650; }
nav a:hover { color:#268d88; }
.nav-call { background:var(--navy); color:#fff; padding:13px 22px; border-radius:999px; }
.nav-call:hover { color:white; background:#1d4b62; }
.hero { min-height:680px; display:grid; grid-template-columns:55% 45%; background:var(--cream); overflow:hidden; }
.hero-copy { padding:94px 7vw 70px; position:relative; z-index:2; }
.eyebrow,.section-label { font-size:12px; font-weight:800; letter-spacing:.18em; color:#287f7d; }
.eyebrow { display:flex; align-items:center; gap:10px; text-transform:uppercase; }
.eyebrow span { width:31px; height:2px; background:var(--coral); }
h1,h2 { font-family:var(--font-serif); color:var(--navy); letter-spacing:-.04em; margin:0; font-weight:600; line-height:.96; }
h1 { font-size:clamp(60px,6.7vw,102px); margin:25px 0 28px; }
h1 em,h2 em { font-weight:400; color:#2a918c; }
.hero-text { max-width:590px; font-size:19px; line-height:1.65; color:#506774; }
.hero-actions { display:flex; gap:12px; margin:34px 0; }
.button { min-height:54px; padding:0 25px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:22px; font-weight:750; transition:.2s transform,.2s background; }
.button:hover { transform:translateY(-2px); }
.primary { background:var(--coral); color:#fff; }
.secondary { border:1px solid #a9beba; background:#fff; min-width:125px; }
.trust-line { display:flex; gap:27px; font-size:13px; font-weight:700; color:#55717a; }
.trust-line span::first-letter { color:#2a918c; }
.hero-art { position:relative; min-height:680px; background:var(--aqua); overflow:hidden; }
.sun { position:absolute; width:420px; height:420px; background:#f7d484; border-radius:50%; top:110px; right:-85px; opacity:.72; }
.room { position:absolute; inset:auto 0 0 0; height:300px; background:linear-gradient(#f7f3e7 0 68%,#d7c4a5 68%); clip-path:polygon(0 14%,100% 0,100% 100%,0 100%); }
.table { position:absolute; bottom:50px; left:45%; width:210px; height:18px; border-radius:50%; background:#bd8063; box-shadow:0 8px 0 #9a6651; }
.table span { position:absolute; width:54px; height:64px; border:5px solid #337574; border-radius:50%; left:72px; bottom:18px; }
.table b { position:absolute; width:12px; height:100px; background:#9a6651; left:100px; top:14px; }
.plant { position:absolute; bottom:84px; left:13%; width:150px; height:160px; }
.plant b { position:absolute; bottom:0; left:38px; width:75px; height:70px; background:#c67c59; clip-path:polygon(10% 0,90% 0,75% 100%,25% 100%); }
.plant i { position:absolute; width:55px; height:100px; background:#518c72; border-radius:90% 10% 85% 15%; bottom:55px; left:48px; transform:rotate(-20deg); }
.plant i:nth-child(2){transform:rotate(25deg);left:75px;bottom:60px;background:#39775e}.plant i:nth-child(3){transform:rotate(-55deg);left:22px;bottom:42px}
.sparkle { position:absolute; color:#fff; font-size:58px; z-index:2; text-shadow:0 4px 25px rgba(20,80,80,.12); }
.sparkle-one { top:90px; left:16%; }.sparkle-two { top:220px; right:18%; font-size:34px; }
.quote-card { position:absolute; left:-50px; top:180px; z-index:3; width:245px; padding:27px 30px; background:var(--navy); color:#fff; border-radius:4px 38px 4px 38px; transform:rotate(-3deg); box-shadow:0 20px 50px rgba(18,47,66,.18); }
.quote-card span { font-size:10px; letter-spacing:.18em; }.quote-card strong { display:block; font:italic 39px var(--font-serif); color:#f7d484; }.quote-card small { display:block; margin-top:8px; color:#cce7e2; }
.intro { text-align:center; padding:110px 20px 105px; max-width:850px; margin:auto; }
.intro h2,.section-heading h2,.cta h2 { font-size:clamp(45px,5.5vw,75px); margin:18px 0 28px; }
.intro>p:last-child { font-size:18px; line-height:1.8; color:#5c717b; max-width:700px; margin:auto; }
.services { background:var(--mint); padding:105px 6vw; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:55px; }
.section-heading>p { max-width:430px; color:#5d747e; line-height:1.7; font-size:16px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.service-card { background:#fff; padding:32px; min-height:270px; border-top:3px solid transparent; transition:.25s transform,.25s border-color,.25s box-shadow; }
.service-card:hover { transform:translateY(-5px); border-color:var(--coral); box-shadow:0 16px 36px rgba(25,77,75,.08); }
.service-card>span { font-size:12px; font-weight:800; color:#46a39e; }
.service-card h3 { font:600 25px var(--font-serif); margin:28px 0 13px; color:var(--navy); }
.service-card p { line-height:1.6; font-size:14px; color:#657983; min-height:68px; }
.service-card a { font-size:12px; text-transform:uppercase; letter-spacing:.09em; font-weight:800; color:#257f7b; }
.service-card a b { margin-left:8px; color:var(--coral); }
.process { padding:105px 7vw; text-align:center; background:#fff; }
.process-row { display:flex; align-items:flex-start; justify-content:center; margin-top:55px; }
.process article { width:260px; }
.process article b { display:grid; place-items:center; margin:0 auto 22px; width:44px; height:44px; border-radius:50%; background:var(--aqua); color:var(--navy); font:600 20px var(--font-serif); }
.process h3 { font:600 22px var(--font-serif); color:var(--navy); margin:0 0 11px; }
.process article p { color:#657983; font-size:14px; line-height:1.6; }
.dash { width:90px; border-top:1px dashed #90beba; margin:21px 25px 0; }
.cta { padding:90px 7vw; background:var(--navy); color:#d8e9e8; display:flex; align-items:center; justify-content:space-between; }
.cta .section-label { color:#7ed1ca; }.cta h2 { color:#fff; }.cta h2 em { color:#f3ce79; }.cta>div>p:last-child { font-size:17px; }
.cta-actions { text-align:center; min-width:430px; }
.phone { display:block; color:#fff; font:600 38px var(--font-serif); margin-bottom:22px; }
.light { background:#fff; color:var(--navy); }.outline { border:1px solid #6e8998; color:#fff; margin-left:8px; }
.cta-actions small { display:block; margin-top:17px; color:#8eacb8; }
footer { padding:50px 6vw; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:30px; background:#0c2535; color:#a7bdc7; font-size:13px; }
.footer-brand { color:#fff; }.footer-brand .brand-mark { border-color:#7ed1ca; color:#7ed1ca; }
footer p { line-height:1.6; text-align:center; } footer>div:last-child { text-align:right; }
footer>div a { display:block; color:#fff; font-size:17px; font-weight:700; margin-bottom:8px; } footer small { display:block; }
.mobile-bar { display:none; }
@media (max-width:900px) {
  .nav { padding:0 22px; } nav>a:not(.nav-call) { display:none; }
  .hero { grid-template-columns:1fr; }.hero-copy { padding:65px 7vw 55px; }.hero-art { min-height:440px; }.quote-card { left:7vw; top:70px; }
  .section-heading { display:block; }.section-heading>p { margin-top:25px; }.service-grid { grid-template-columns:repeat(2,1fr); }
  .cta { display:block; }.cta-actions { min-width:0; text-align:left; margin-top:45px; }
}
@media (max-width:600px) {
  body { padding-bottom:70px; }.nav { height:76px; }.nav-call { display:none; }.brand { font-size:13px; }.brand-mark { width:36px;height:36px; }
  .hero { min-height:0; }.hero-copy { padding:55px 22px 48px; }.hero-text { font-size:17px; }.hero-actions { flex-direction:column; }.button { width:100%; }.trust-line { flex-wrap:wrap; gap:10px 17px; }
  .hero-art { min-height:390px; }.quote-card { width:220px; }.intro,.services,.process,.cta { padding:75px 22px; }
  .service-grid { grid-template-columns:1fr; }.service-card { min-height:0; }.service-card p { min-height:0; }
  .process-row { display:block; }.process article { width:auto; max-width:300px; margin:auto; }.dash { display:block; width:1px; height:45px; border-top:0; border-left:1px dashed #90beba; margin:15px auto; }
  .phone { font-size:32px; }.cta-actions .outline { margin:10px 0 0; }.cta-actions small { text-align:center; }
  footer { grid-template-columns:1fr; text-align:center; padding:45px 22px; } footer>div:last-child { text-align:center; }
  .mobile-bar { position:fixed; z-index:20; bottom:0; left:0; right:0; height:70px; padding:9px; gap:8px; display:grid; grid-template-columns:1.5fr 1fr; background:#fff; box-shadow:0 -5px 20px rgba(18,47,66,.12); }
  .mobile-bar a { display:grid; place-items:center; border-radius:999px; background:var(--coral); color:#fff; font-weight:800; font-size:14px; }.mobile-bar a:last-child { background:var(--navy); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
