@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Manrope:wght@400;500;600;700&display=swap');

:root { --ivory:#f4f0e7; --forest:#173d32; --walnut:#6a4534; --sage:#9caa92; --ink:#24241f; --white:#fffefa; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.topbar { background:var(--forest); color:white; text-align:center; padding:10px 20px; font-size:13px; letter-spacing:.04em; }
header { max-width:1440px; margin:auto; height:86px; display:flex; align-items:center; justify-content:space-between; padding:0 4.5vw; background:var(--ivory); }
.brand { font-family:"DM Serif Display",serif; font-size:30px; letter-spacing:.13em; color:var(--forest); white-space:nowrap; }
nav { display:flex; gap:38px; font-size:14px; font-weight:600; }
nav a:hover { color:var(--walnut); }
.outlineButton { border:1px solid var(--forest); border-radius:10px; padding:12px 22px; font-weight:600; }
.hero { max-width:1440px; min-height:680px; margin:auto; display:grid; grid-template-columns:46% 54%; }
.heroCopy { padding:70px 5vw 48px 4.5vw; display:flex; flex-direction:column; justify-content:center; }
.eyebrow { color:var(--walnut); letter-spacing:.17em; font-size:12px; font-weight:700; margin:0 0 18px; }
h1,h2 { font-family:"DM Serif Display",serif; font-weight:400; margin:0; color:var(--ink); }
h1 { font-size:clamp(52px,5vw,76px); line-height:1.02; max-width:620px; }
h2 { font-size:clamp(40px,4vw,58px); line-height:1.06; }
.lead { font-size:18px; line-height:1.7; max-width:540px; margin:25px 0; color:#55534d; }
.heroActions { display:flex; align-items:center; gap:35px; margin:8px 0 35px; }
.primaryButton,.submitButton { background:var(--forest); color:white; padding:17px 24px; border-radius:10px; font-weight:700; border:0; cursor:pointer; }
.primaryButton span { margin-left:26px; }
.primaryButton:hover,.submitButton:hover { background:#245446; transform:translateY(-2px); }
.textLink { border-bottom:1px solid var(--ink); padding-bottom:3px; font-weight:600; }
.trustRow { display:flex; gap:20px; flex-wrap:wrap; color:#52564f; font-size:13px; }
.heroImage { position:relative; min-height:620px; overflow:hidden; border-radius:0 0 0 50px; }
.heroImage img { width:100%; height:100%; object-fit:cover; }
.floatingCard { position:absolute; left:-1px; bottom:38px; padding:20px 25px; background:rgba(255,254,250,.94); border-radius:0 16px 16px 0; box-shadow:0 12px 35px #173d3225; display:flex; flex-direction:column; gap:5px; }
.floatingCard small { color:#67675f; }
.section { max-width:1320px; margin:0 auto; padding:110px 4vw; }
.sectionIntro { max-width:760px; margin-bottom:55px; }
.sectionIntro.split { max-width:none; display:grid; grid-template-columns:1.1fr .9fr; gap:12%; align-items:end; }
.sectionIntro.split>p { color:#61615a; line-height:1.8; margin:0; }
.stepGrid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.step { border-top:1px solid #bdb5a6; padding:25px 8px 0; }
.step span { color:var(--walnut); font-size:13px; font-weight:700; }
h3 { font-family:"DM Serif Display",serif; font-weight:400; font-size:25px; margin:20px 0 10px; }
.step p,.itemCard p { color:#66655e; line-height:1.7; font-size:14px; }
.items { background:#ebe6dc; max-width:none; padding-left:max(4vw,calc((100vw - 1320px)/2 + 4vw)); padding-right:max(4vw,calc((100vw - 1320px)/2 + 4vw)); }
.itemGrid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.itemCard { background:var(--white); padding:16px 16px 20px; border-radius:16px; transition:.25s; }
.itemCard:hover { transform:translateY(-5px); box-shadow:0 16px 30px #28372e16; }
.itemVisual { height:150px; border-radius:11px; display:grid; place-items:center; background:linear-gradient(145deg,#d7c4ab,#a78f73); color:#fffdf7; overflow:hidden; }
.itemVisual span { font-size:82px; text-shadow:0 5px 20px #46392d40; }
.visual2,.visual6 { background:linear-gradient(145deg,#aab6a1,#647c6c); }.visual3,.visual7 { background:linear-gradient(145deg,#c5a988,#7d5d48); }.visual4,.visual8 { background:linear-gradient(145deg,#d8d2c5,#8c887b); }
.itemCard h3 { margin:16px 4px 4px; }.itemCard p { margin:0 4px; }
.conditionNote { background:#ded6c7; padding:18px 22px; border-radius:10px; margin:30px 0 0; font-size:14px; }
.quote { display:grid; grid-template-columns:.8fr 1.2fr; gap:8%; align-items:start; }
.quoteInfo { position:sticky; top:30px; }.quoteInfo>p:not(.eyebrow),.quoteInfo li { line-height:1.8; color:#5f5f58; }.quoteInfo ul { padding-left:20px; margin-top:25px; }
.quoteForm { background:var(--white); border-radius:20px; padding:35px; box-shadow:0 20px 50px #4a403419; }
.formRow { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
label { display:flex; flex-direction:column; gap:8px; font-size:13px; font-weight:700; margin-bottom:17px; }
input,select,textarea { width:100%; border:1px solid #cbc5ba; border-radius:8px; background:#fcfbf7; padding:14px; font:inherit; color:var(--ink); outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--forest); box-shadow:0 0 0 3px #9caa9238; }
.upload { border:1px dashed var(--sage); padding:25px; border-radius:10px; text-align:center; align-items:center; cursor:pointer; background:#f5f7f1; }
.upload input { display:none; }.upload b { color:var(--forest); font-size:16px; }.upload span,.privacy { color:#74766f; font-weight:400; }
.previews { display:flex; flex-wrap:wrap; gap:8px; margin:-5px 0 16px; }.previews img { width:70px; height:70px; object-fit:cover; border-radius:7px; }
.check { flex-direction:row; align-items:flex-start; font-weight:400; }.check input { width:auto; margin-top:2px; }
.submitButton { width:100%; font-size:16px; transition:.2s; }.privacy { display:block; text-align:center; margin-top:12px; font-size:11px; }
.success { text-align:center; padding:60px 20px; }.success>span { display:inline-grid; place-items:center; background:var(--forest); color:white; width:50px; height:50px; border-radius:50%; font-size:24px; }.success p { color:#65655e; line-height:1.7; }.success button { border:0; background:none; text-decoration:underline; cursor:pointer; }
.area { padding-top:80px; }.mapWrap { background:white; padding:14px; border-radius:18px; box-shadow:0 18px 45px #51453718; }.mapWrap iframe { border:0; width:100%; height:470px; border-radius:10px; filter:saturate(.6) sepia(.1); }
.cityList { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:22px 12px 10px; font-size:13px; color:var(--forest); }
.finalCta { padding:100px 25px; text-align:center; background:var(--forest); color:white; }.finalCta h2 { color:white; max-width:780px; margin:0 auto 35px; }.finalCta .eyebrow { color:#cfbca7; }.lightButton { display:inline-block; background:var(--ivory); color:var(--forest); border-radius:9px; padding:16px 26px; font-weight:700; }
footer { max-width:1320px; margin:auto; padding:65px 4vw 25px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:60px; position:relative; }.footer p { color:#666; }.footer div { display:flex; flex-direction:column; gap:11px; font-size:14px; }.footer div:first-child p { max-width:390px; color:#666; }.copyright { grid-column:1/-1; border-top:1px solid #d6d0c5; padding-top:20px; font-size:12px; color:#777; }
@media(max-width:900px) {
  header { height:72px; padding:0 20px; } header nav { display:none; }.brand { font-size:23px; }.outlineButton { padding:9px 13px; font-size:12px; }
  .hero { grid-template-columns:1fr; }.heroCopy { padding:65px 24px 55px; }.heroImage { min-height:450px; border-radius:0; }.heroActions { align-items:flex-start; flex-direction:column; gap:20px; }.trustRow { flex-direction:column; }
  .section { padding:80px 24px; }.sectionIntro.split,.quote { grid-template-columns:1fr; gap:35px; }.stepGrid { grid-template-columns:1fr 1fr; }.itemGrid { grid-template-columns:1fr 1fr; }.quoteInfo { position:static; }.cityList { grid-template-columns:1fr 1fr; }.mapWrap iframe { height:350px; } footer { grid-template-columns:1fr 1fr; }.footer div:first-child { grid-column:1/-1; }
}
@media(max-width:560px) {
  h1 { font-size:48px; }.stepGrid,.itemGrid,.formRow { grid-template-columns:1fr; }.quoteForm { padding:22px 17px; }.cityList,footer { grid-template-columns:1fr; }.floatingCard { right:15px; left:15px; border-radius:14px; }.topbar { font-size:11px; }
}
@media(prefers-reduced-motion:no-preference) { .heroCopy>* { animation:rise .55s both; }.heroCopy>*:nth-child(2){animation-delay:.08s}.heroCopy>*:nth-child(3){animation-delay:.15s}.heroCopy>*:nth-child(4){animation-delay:.22s}@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}} }
