@import 'tailwindcss';

:root { --ink:#252321; --cream:#f4eee5; --rose:#bd655f; --pink:#e7b5ad; --line:#d8cfc3; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
body::selection { background:var(--pink); }
a { color:inherit; text-decoration:none; }
.topbar { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px clamp(22px,5vw,76px); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; font-weight:700; letter-spacing:.02em; line-height:1; }
.brand small { font-size:10px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; }
.brandMark { width:42px; height:42px; border-radius:50% 50% 44% 56%; display:grid; place-items:center; background:var(--rose); color:white; font-family:Georgia,serif; font-size:22px; font-style:italic; }
nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:700; }
.navCta { border:1px solid var(--ink); padding:13px 18px; border-radius:999px; }
.hero { min-height:calc(100vh - 86px); display:grid; grid-template-columns:1.04fr .96fr; padding:clamp(34px,5vw,76px); padding-top:clamp(52px,7vw,100px); gap:clamp(34px,6vw,88px); overflow:hidden; }
.heroCopy { align-self:center; max-width:650px; }
.eyebrow { color:#745952; letter-spacing:.2em; font-size:11px; font-weight:800; margin:0 0 26px; }
h1 { margin:0; font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(54px,7.4vw,112px); line-height:.84; letter-spacing:-.055em; }
h1 em { color:var(--rose); font-weight:400; }
.lead { font-size:clamp(17px,1.6vw,22px); line-height:1.55; max-width:560px; margin:32px 0; color:#5e5750; }
.actions { display:flex; gap:12px; flex-wrap:wrap; }
.primary,.secondary { padding:16px 22px; border-radius:999px; font-size:14px; font-weight:800; display:inline-flex; gap:28px; align-items:center; }
.primary { background:var(--ink); color:white; }
.secondary { border:1px solid #8b8177; }
.proof { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:34px; font-size:12px; color:#6a625b; }
.proof strong { font-family:Georgia,serif; font-size:27px; color:var(--ink); }
.stars { color:#a9534d; letter-spacing:.11em; }
.heroVisual { position:relative; min-height:580px; background:#dca198; border-radius:48% 48% 8px 8px; overflow:hidden; box-shadow:20px 20px 0 rgba(255,255,255,.42); }
.heroVisual img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.heroVisual::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(45,27,23,.45)); }
.visualTag { position:absolute; z-index:2; left:0; right:0; bottom:6%; color:white; text-align:center; }
.visualTag span { display:block; font-size:clamp(31px,4vw,64px); font-weight:900; line-height:.8; letter-spacing:.06em; }
.visualTag i { display:block; font-family:Georgia,serif; font-size:clamp(17px,1.7vw,26px); margin-top:7px; }
.services { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; padding:110px clamp(22px,6vw,90px); background:#262321; color:#f4eee5; }
.services .eyebrow { color:#c89188; }
h2 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(42px,5vw,72px); font-weight:400; letter-spacing:-.04em; line-height:.98; margin:0; }
.serviceList { border-top:1px solid #5c5550; }
.service { display:grid; grid-template-columns:50px 1fr 30px; gap:18px; align-items:start; padding:27px 0; border-bottom:1px solid #5c5550; }
.service>span:first-child { color:#c89188; font-size:12px; }
.service h3 { margin:0 0 8px; font-family:Georgia,serif; font-size:30px; font-weight:400; }
.service p,.fineprint { margin:0; color:#bdb4ad; line-height:1.55; max-width:570px; font-size:14px; }
.service .arrow { font-size:22px; color:#c89188; }
.fineprint { margin-top:18px; font-size:11px; }
.quoteSection { min-height:440px; display:grid; place-items:center; text-align:center; padding:90px 24px; position:relative; overflow:hidden; }
.quoteSection blockquote { margin:0; font:400 clamp(34px,4.5vw,64px)/1.18 Georgia,serif; letter-spacing:-.035em; position:relative; z-index:1; }
.quoteSection em { color:var(--rose); }
.flower { position:absolute; font-size:380px; color:rgba(189,101,95,.08); transform:rotate(12deg); }
.visit { display:grid; grid-template-columns:1fr 1fr; background:#d9a198; min-height:650px; }
.visitCard { padding:clamp(56px,7vw,105px); }
.visitCard .eyebrow { color:#704e48; }
.visitCard dl { margin:45px 0; border-top:1px solid rgba(58,44,40,.35); }
.visitCard dl div { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:17px 0; border-bottom:1px solid rgba(58,44,40,.35); }
dt { font-size:11px; text-transform:uppercase; letter-spacing:.15em; font-weight:800; } dd { margin:0; line-height:1.5; }
.mapCard { min-height:580px; position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#eae2d7; text-align:center; }
.mapGrid { position:absolute; inset:-10%; opacity:.58; background-image:linear-gradient(28deg,transparent 46%,#c9bdaf 47%,#c9bdaf 49%,transparent 50%),linear-gradient(112deg,transparent 46%,#c9bdaf 47%,#c9bdaf 49%,transparent 50%); background-size:135px 90px; transform:rotate(-8deg); }
.pin { z-index:1; width:74px; height:86px; display:grid; place-items:center; background:var(--rose); color:white; font:italic 34px Georgia,serif; border-radius:50% 50% 50% 10%; transform:rotate(-45deg); box-shadow:0 15px 35px rgba(82,44,39,.24); }
.pin::first-letter { transform:rotate(45deg); }
.mapCard strong,.mapCard small { position:relative; z-index:1; margin-top:24px; }.mapCard small{margin-top:5px;color:#6b625b}
footer { padding:42px clamp(22px,5vw,76px); display:grid; grid-template-columns:1fr auto; align-items:center; gap:18px; background:#f7f2ea; }
.footerBrand { grid-row:span 2; }.legalNote,footer>p { margin:0; max-width:520px; text-align:right; font-size:10px; color:#756c64; }.legalNote{color:#97675f}
.mobileCall { display:none; }
.primary:hover,.navCta:hover { background:var(--rose); color:white; border-color:var(--rose); }.secondary:hover{background:rgba(255,255,255,.35)}
@media (max-width:800px) { nav>a:not(.navCta){display:none}.topbar{padding:15px 20px}.hero{grid-template-columns:1fr;padding:48px 20px 64px}.heroVisual{min-height:430px;order:-1;border-radius:46% 46% 6px 6px}h1{font-size:clamp(52px,17vw,76px)}.lead{margin:24px 0}.brand small{display:none}.navCta{padding:11px 14px}.services{grid-template-columns:1fr;padding:72px 22px}.service{grid-template-columns:36px 1fr 24px}.quoteSection{min-height:360px}.visit{grid-template-columns:1fr}.visitCard{padding:70px 22px}.mapCard{min-height:430px;order:-1}.visitCard dl div{grid-template-columns:115px 1fr}footer{display:block;padding-bottom:100px}.footerBrand{display:flex;margin-bottom:24px}footer>p,.legalNote{text-align:left;margin-top:10px}.mobileCall{display:flex;position:fixed;z-index:9;bottom:14px;left:14px;right:14px;justify-content:space-between;background:var(--ink);color:white;padding:17px 20px;border-radius:999px;font-weight:800;box-shadow:0 8px 28px rgba(0,0,0,.2)} }
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
