:root{--bg:#fbf9f8;--ink:#221a1f;--muted:#6b6168;--line:#ece5e8;--accent:#d6136f;--soft:#f6eef2;--white:#fff}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font:400 16.5px/1.7 "Plus Jakarta Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}a{color:inherit}
h1,h2{font-family:Gloock,Georgia,serif;font-weight:400;letter-spacing:-.01em;line-height:1.06}
h1{font-size:clamp(44px,5.2vw,74px)}h2{font-size:clamp(30px,3.2vw,46px)}h3{font-size:19px;font-weight:700;letter-spacing:-.01em}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:28px;padding:10px clamp(20px,4vw,56px);background:rgba(251,249,248,.9);backdrop-filter:blur(10px);transition:box-shadow .3s}
.top.scrolled{box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 21px Gloock,Georgia,serif}
.brand img{width:48px;height:48px;object-fit:contain}.brand em{font-style:normal;color:var(--muted)}
.top nav{margin-left:auto;display:flex;gap:28px;font-size:15px}.top nav a{text-decoration:none;color:var(--muted)}.top nav a:hover{color:var(--ink)}
.call{display:flex;align-items:center;gap:8px;background:var(--accent);color:#fff;text-decoration:none;padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px}
.call svg{width:16px;height:16px;fill:#fff}
.hero{max-width:1280px;margin:0 auto;padding:clamp(50px,6vw,90px) clamp(20px,4vw,56px) 40px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.lede{font-size:18.5px;color:var(--muted);margin:24px 0 32px;max-width:30em}
.ctas{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;padding:15px 28px;border-radius:999px;font:inherit;font-weight:600;border:0;cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-1px);background:var(--accent)}.link{color:var(--muted)}
.visual{position:relative;padding:0 0 60px 60px}
.photo{border-radius:24px;width:100%;aspect-ratio:4/3.3;object-fit:cover}
.list{position:absolute;left:0;bottom:0;width:min(300px,70%);background:var(--white);border-radius:18px;padding:20px 22px;box-shadow:0 30px 60px -30px rgba(34,26,31,.35)}
.list-h{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.list ul{list-style:none}
.list li{position:relative;padding:8px 0 8px 32px;font-size:14.5px;border-top:1px solid var(--line);color:var(--muted);transition:color .4s}
.list li:before{content:"";position:absolute;left:0;top:9px;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);transition:background .35s,border-color .35s}
.list li:after{content:"";position:absolute;left:7px;top:13px;width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .35s}
.ready .list li{color:var(--ink)}
.ready .list li:before{background:var(--accent);border-color:var(--accent)}
.ready .list li:after{transform:rotate(45deg) scale(1)}
.list li:nth-child(1),.list li:nth-child(1):before,.list li:nth-child(1):after{transition-delay:.6s}
.list li:nth-child(2),.list li:nth-child(2):before,.list li:nth-child(2):after{transition-delay:1.1s}
.list li:nth-child(3),.list li:nth-child(3):before,.list li:nth-child(3):after{transition-delay:1.6s}
.list li:nth-child(4),.list li:nth-child(4):before,.list li:nth-child(4):after{transition-delay:2.1s}
.done{font:400 17px Gloock,serif;color:var(--accent);margin-top:8px;opacity:0;transition:opacity .6s ease 2.6s}.ready .done{opacity:1}
.services,.how,.story,.area,.contact{max-width:1280px;margin:0 auto;padding:clamp(90px,10vw,140px) clamp(20px,4vw,56px) 0}
.head{max-width:680px;margin-bottom:44px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cards article{position:relative;background:var(--white);border:1px solid var(--line);border-radius:22px;padding:32px}
.cards .feat{border-color:var(--accent);box-shadow:0 30px 60px -40px rgba(214,19,111,.45)}
.num{font:400 15px Gloock,serif;color:var(--accent)}
.pill{position:absolute;top:28px;right:28px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--soft);color:var(--accent);padding:5px 10px;border-radius:999px}
.cards h3{font-size:22px;margin:10px 0 8px}.cards p{color:var(--muted);font-size:15.5px}
.cards ul{list-style:none;margin-top:18px}
.cards li{position:relative;padding:9px 0 9px 22px;border-top:1px solid var(--line);font-size:15px}
.cards li:before{content:"";position:absolute;left:0;top:18px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.also{margin-top:26px;color:var(--muted)}
.how ol{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.how li{counter-increment:s;border-top:2px solid var(--ink);padding-top:22px}
.how li:before{content:counter(s);display:block;font:400 44px Gloock,serif;color:var(--accent);line-height:1;margin-bottom:12px}
.how p{color:var(--muted);margin-top:6px}
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.photos{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;align-items:end}
.photos img{border-radius:18px;width:100%;object-fit:cover}
.photos img:first-child{aspect-ratio:4/5;object-position:30% center}.photos img:last-child{aspect-ratio:3/4}
.story-copy p{color:var(--muted);margin-top:16px}
blockquote{margin-top:28px;padding:24px 26px;background:var(--soft);border-radius:18px;font:400 21px/1.45 Gloock,Georgia,serif}
blockquote cite{display:block;margin-top:10px;font:600 13px "Plus Jakarta Sans",sans-serif;color:var(--accent);font-style:normal}
.area{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;align-items:start}
.towns{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.towns li{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-weight:500}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-bottom:clamp(90px,10vw,130px)}
.card{background:var(--ink);color:#fff;border-radius:24px;padding:clamp(28px,4vw,48px)}
.card .eyebrow{color:#ff7fb6}.card h2{margin-bottom:24px}
.card dl div{padding:13px 0;border-top:1px solid rgba(255,255,255,.14)}
.card dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}.card dd{font-size:17px;overflow-wrap:anywhere}.card a{text-decoration:none}
.form-wrap{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:clamp(28px,4vw,44px)}
.form-wrap h3{font-size:22px;margin-bottom:18px}
.quote label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:14px}
.quote input,.quote select,.quote textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;color:var(--ink);padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.quote :focus{outline:2px solid var(--accent);outline-offset:1px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote .btn{width:100%}
.status{font-size:14px;color:var(--accent);margin-top:12px;min-height:1em}.hp{position:absolute;left:-9999px}
footer{padding:28px clamp(20px,4vw,56px);font-size:14px;color:var(--muted);text-align:center;border-top:1px solid var(--line)}footer a{text-decoration:none}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}.js .reveal.in{opacity:1;transform:none}
@media (max-width:960px){.top nav{display:none}.call{margin-left:auto}.hero,.story,.contact,.area{grid-template-columns:1fr}.cards,.how ol{grid-template-columns:1fr}.visual{padding:0 0 70px 24px}}
@media (max-width:560px){.brand em{display:none}.call span{display:none}.call{padding:11px}.row2{grid-template-columns:1fr}h1{font-size:44px}.pill{position:static;display:inline-block;margin-top:8px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
