@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root { --ink:#17372d; --ink-2:#224c3c; --cream:#fffaf0; --paper:#f7f0e2; --line:#e8ddc7; --lime:#d7e96c; --orange:#e67842; --peach:#f1d4bd; --muted:#627169; --white:#fffef9; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.container { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:50; background:rgba(255,250,240,.94); border-bottom:1px solid rgba(23,55,45,.1); backdrop-filter:blur(14px); }
.header-inner { height:86px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:40px; }
.brand { display:inline-flex; align-items:center; gap:11px; width:max-content; line-height:1; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border-radius:50% 42% 50% 38%; background:var(--lime); color:var(--ink); font-size:20px; transform:rotate(-8deg); }
.brand > span:last-child { display:grid; gap:5px; }
.brand strong { font-family:"Fraunces",serif; font-size:21px; letter-spacing:-.02em; }
.brand small { font-size:8px; letter-spacing:.22em; font-weight:700; }
.desktop-nav { display:flex; gap:34px; align-items:center; font-size:14px; font-weight:600; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; bottom:-7px; width:100%; height:2px; background:var(--orange); transform:scaleX(0); transform-origin:right; transition:transform .25s ease; }
.desktop-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.header-phone { justify-self:end; display:flex; align-items:center; gap:12px; font-weight:700; font-size:16px; }
.header-phone span:first-child { display:grid; text-align:right; line-height:1.25; }
.header-phone small { color:var(--muted); font-size:10px; font-weight:500; }
.phone-disc { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:var(--cream); font-size:15px; }
.menu-toggle,.mobile-nav { display:none; }
.hero { position:relative; overflow:hidden; padding:88px 0 0; background:radial-gradient(circle at 80% 16%,rgba(215,233,108,.34),transparent 28%),var(--cream); }
.orbit { position:absolute; border:1px solid rgba(23,55,45,.11); border-radius:50%; pointer-events:none; }
.orbit-one { width:500px; height:500px; right:-170px; top:20px; }
.orbit-two { width:260px; height:260px; right:12%; top:180px; }
.hero-grid { min-height:550px; display:grid; grid-template-columns:1.04fr .96fr; gap:60px; align-items:center; }
.kicker { display:inline-flex; align-items:center; gap:8px; color:#805030; text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:700; }
h1,h2 { margin:18px 0 22px; font-family:"Fraunces",serif; letter-spacing:-.045em; line-height:.98; }
h1 { max-width:680px; font-size:clamp(54px,6vw,82px); }
h1 em,h2 em { color:var(--orange); font-weight:600; }
.hero-copy > p { max-width:590px; margin:0; color:var(--muted); font-size:18px; }
.hero-actions { display:flex; align-items:center; gap:28px; margin:34px 0 28px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 22px; border-radius:4px; font-weight:700; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.button:hover { transform:translateY(-3px); }
.button-primary { background:var(--orange); color:#fff; box-shadow:0 12px 26px rgba(166,83,48,.2); }
.button-primary:hover { box-shadow:0 16px 32px rgba(166,83,48,.28); background:#d86838; }
.text-link { display:inline-flex; gap:10px; align-items:center; font-weight:700; border-bottom:1px solid rgba(23,55,45,.35); }
.text-link span,.service-card a span { transition:transform .2s ease; }
.text-link:hover span,.service-card a:hover span { transform:translateX(4px); }
.hero-notes { display:flex; gap:26px; flex-wrap:wrap; color:var(--muted); font-size:13px; }
.hero-notes span { display:flex; gap:8px; align-items:center; }
.hero-notes b { color:var(--ink); }
.hero-art { position:relative; height:500px; }
.sun-disc { position:absolute; width:340px; height:340px; right:35px; top:30px; border-radius:50%; background:var(--lime); }
.house { position:absolute; width:280px; height:250px; right:60px; top:112px; filter:drop-shadow(0 24px 18px rgba(23,55,45,.15)); }
.roof { position:absolute; width:235px; height:235px; left:20px; top:-23px; background:var(--ink); transform:rotate(45deg); border-radius:14px 6px 8px 6px; }
.house-body { position:absolute; z-index:2; left:35px; bottom:0; width:220px; height:165px; background:#f3ead8; border:8px solid var(--ink); border-top:0; }
.window { position:absolute; top:36px; width:44px; height:50px; background:#dce8ad; border:7px solid var(--ink); }
.window::after { content:""; position:absolute; left:50%; top:0; bottom:0; width:5px; background:var(--ink); transform:translateX(-50%); }
.window-one { left:22px; }.window-two { right:22px; }.door { position:absolute; bottom:0; left:84px; width:55px; height:87px; background:var(--orange); border:7px solid var(--ink); border-bottom:0; }
.shield-badge { position:absolute; z-index:5; right:12px; top:45px; width:104px; height:114px; display:grid; place-items:center; background:var(--orange); border:8px solid var(--cream); border-radius:49% 49% 52% 52% / 38% 38% 67% 67%; box-shadow:0 16px 30px rgba(23,55,45,.2); }
.shield-badge span { width:50px; height:50px; display:grid; place-items:center; border-radius:50%; background:var(--cream); font-size:28px; font-weight:700; }
.leaf { position:absolute; z-index:1; width:90px; height:190px; border-radius:100% 0 100% 0; background:var(--peach); opacity:.85; }
.leaf-one { left:50px; top:20px; transform:rotate(-34deg); }.leaf-two { right:-15px; bottom:32px; transform:rotate(42deg) scale(.8); background:#e5edbc; }
.floating-card { position:absolute; z-index:8; background:rgba(255,254,249,.94); border:1px solid rgba(23,55,45,.13); box-shadow:0 18px 45px rgba(23,55,45,.13); backdrop-filter:blur(8px); }
.availability-card { left:8px; bottom:55px; padding:15px 18px; display:flex; align-items:center; gap:12px; }
.availability-card div { display:grid; }.availability-card strong { font-size:13px; }.availability-card small { color:var(--muted); }
.pulse-dot { width:12px; height:12px; border-radius:50%; background:#69a15f; box-shadow:0 0 0 6px rgba(105,161,95,.15); animation:pulse 2s infinite; }
.rating-card { right:0; bottom:26px; display:grid; gap:2px; padding:13px 18px; transform:rotate(2deg); }.rating-card strong { color:#b46737; letter-spacing:.12em; }.rating-card span { font-size:11px; color:var(--muted); }
.trust-strip { position:relative; z-index:3; display:grid; grid-template-columns:repeat(4,1fr); background:var(--ink); color:#fff; }
.trust-strip div { position:relative; min-height:116px; padding:27px 24px 24px 53px; display:grid; align-content:center; border-right:1px solid rgba(255,255,255,.13); }
.trust-strip i { position:absolute; top:30px; left:20px; color:var(--lime); font-style:normal; font-size:10px; }.trust-strip strong { font-family:"Fraunces",serif; font-size:16px; }.trust-strip span { color:rgba(255,255,255,.62); font-size:12px; }
.section { padding:110px 0; }
.section-heading,.process-heading { display:grid; grid-template-columns:1.25fr .75fr; align-items:end; gap:80px; margin-bottom:56px; }
h2 { font-size:clamp(43px,5vw,65px); }.section-heading p,.process-heading p,.act-copy > p { color:var(--muted); font-size:16px; }
.service-grid { display:grid; grid-template-columns:1.2fr .8fr 1fr; grid-template-rows:auto auto; gap:18px; }
.service-card { position:relative; min-height:328px; padding:32px; display:flex; flex-direction:column; overflow:hidden; background:#f3ead8; border:1px solid var(--line); transition:transform .25s ease,box-shadow .25s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(23,55,45,.1); }
.featured-card { grid-row:span 2; background:var(--ink); color:#fff; }.warm-card { background:var(--peach); }.wide-card { grid-column:2 / 4; min-height:270px; }
.card-number { position:absolute; top:24px; right:24px; color:rgba(23,55,45,.42); font-size:11px; font-weight:700; }.featured-card .card-number { color:rgba(255,255,255,.45); }
.service-icon { width:68px; height:68px; display:grid; place-items:center; margin-bottom:auto; border-radius:50%; background:var(--lime); color:var(--ink); font-size:30px; }.warm-card .service-icon { background:var(--cream); }.wide-card .service-icon { background:var(--orange); color:#fff; }
.service-card h3 { margin:26px 0 8px; font-family:"Fraunces",serif; font-size:27px; }.service-card p { margin:0 0 22px; max-width:370px; color:var(--muted); }.featured-card p { color:rgba(255,255,255,.65); }.service-card a { margin-top:auto; display:flex; align-items:center; gap:9px; font-size:13px; font-weight:700; }
.act-now { background:#f3ead8; }
.act-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.concern-visual { position:relative; min-height:520px; background:var(--ink); overflow:hidden; }
.visual-house { position:absolute; width:245px; height:218px; left:50%; top:50%; transform:translate(-50%,-43%); background:#efe5ce; border:8px solid var(--cream); clip-path:polygon(50% 0,100% 36%,100% 100%,0 100%,0 36%); }
.visual-house span { position:absolute; top:104px; width:44px; height:50px; background:var(--lime); border:6px solid var(--ink); }.visual-house span:first-child { left:34px; }.visual-house span:nth-child(2) { right:34px; }.visual-house i { position:absolute; bottom:0; left:91px; width:55px; height:80px; background:var(--orange); border:6px solid var(--ink); }
.scan-ring { position:absolute; border:1px solid rgba(215,233,108,.35); border-radius:50%; }.ring-one { width:350px; height:350px; left:50%; top:50%; transform:translate(-50%,-50%); }.ring-two { width:470px; height:470px; left:50%; top:50%; transform:translate(-50%,-50%); }
.visual-label { position:absolute; padding:10px 14px; background:var(--cream); font-size:11px; font-weight:600; box-shadow:0 8px 20px rgba(0,0,0,.12); }.visual-label b { color:var(--orange); margin-right:6px; }.label-one { left:20px; top:46px; }.label-two { right:14px; top:176px; }.label-three { left:36px; bottom:40px; }
.act-copy h2 { max-width:560px; }.act-copy ul { padding:0; margin:28px 0 34px; list-style:none; display:grid; gap:12px; }.act-copy li { position:relative; padding-left:30px; font-weight:600; }.act-copy li::before { content:"✓"; position:absolute; left:0; color:#6f8b3f; }.button-dark { background:var(--ink); color:#fff; }
.process { background:var(--ink); color:#fff; }.kicker-light { color:var(--lime); }.process-heading p { color:rgba(255,255,255,.62); }.process-heading h2 em { color:var(--lime); }
.steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); }.steps article { padding:40px 48px 44px 0; border-right:1px solid rgba(255,255,255,.16); }.steps article + article { padding-left:48px; }.steps article:last-child { border-right:0; }.steps span { color:var(--lime); font-size:12px; }.steps h3 { margin:42px 0 10px; font-family:"Fraunces",serif; font-size:25px; }.steps p { color:rgba(255,255,255,.57); font-size:14px; }
.testimonial { max-width:900px; margin:72px auto 0; display:grid; grid-template-columns:auto 1fr auto; gap:28px; align-items:center; }.quote-mark { color:var(--lime); font-family:"Fraunces",serif; font-size:110px; line-height:.7; }.testimonial blockquote { margin:0; font-family:"Fraunces",serif; font-size:24px; line-height:1.45; }.testimonial div { display:grid; min-width:150px; }.testimonial div span { color:rgba(255,255,255,.5); font-size:10px; }
.final-cta { padding:78px 0; background:var(--lime); }.final-cta-inner { display:grid; grid-template-columns:1fr auto; gap:60px; align-items:center; }.final-cta h2 { max-width:750px; margin-bottom:0; font-size:clamp(42px,5vw,62px); }.cta-phone { display:grid; text-align:right; }.cta-phone > span { font-size:12px; }.cta-phone a { display:flex; align-items:center; gap:14px; font-family:"Fraunces",serif; font-size:28px; font-weight:700; }.cta-phone b { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--ink); }
.site-footer { padding:72px 0 24px; background:#10261f; color:#fff; }.footer-top { display:grid; grid-template-columns:1.5fr .6fr .7fr; gap:90px; padding-bottom:58px; }.brand-footer .brand-mark { background:var(--orange); }.footer-brand p { max-width:510px; margin:24px 0 0; color:rgba(255,255,255,.54); font-size:13px; }.footer-links,.footer-call { display:grid; align-content:start; gap:12px; font-size:13px; }.footer-links strong,.footer-call strong { margin-bottom:8px; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:.13em; font-size:10px; }.footer-links a:hover,.footer-call a:hover { color:var(--lime); }.footer-call a { font-family:"Fraunces",serif; font-size:18px; }.footer-call span { color:rgba(255,255,255,.45); font-size:11px; }.footer-bottom { padding-top:23px; display:flex; justify-content:space-between; gap:30px; border-top:1px solid rgba(255,255,255,.13); color:rgba(255,255,255,.42); font-size:10px; }
.legal-hero { padding:100px 0 78px; background:radial-gradient(circle at 80% 10%,rgba(215,233,108,.4),transparent 24%),var(--cream); border-bottom:1px solid var(--line); }.legal-hero h1 { margin-bottom:12px; }.legal-hero p { color:var(--muted); }.terms-hero { background:radial-gradient(circle at 80% 10%,rgba(230,120,66,.18),transparent 24%),var(--cream); }
.legal-content { padding:90px 0 120px; }.legal-grid { display:grid; grid-template-columns:250px minmax(0,760px); gap:100px; align-items:start; }.legal-grid aside { position:sticky; top:120px; display:grid; gap:12px; padding:24px; border-left:3px solid var(--lime); background:var(--paper); font-size:13px; }.legal-grid aside strong { margin-bottom:6px; font-family:"Fraunces",serif; font-size:18px; }.legal-grid aside a { color:var(--muted); }.legal-grid aside a:hover { color:var(--orange); }.legal-grid article > p:first-child { margin-top:0; font-size:19px; color:var(--ink); }.legal-grid article h2 { margin:48px 0 14px; padding-top:10px; font-size:34px; letter-spacing:-.03em; }.legal-grid article p { color:#53645d; }.legal-grid article a { color:#9b4e2d; text-decoration:underline; }
.reveal { animation:reveal .75s ease both; }.reveal-delay { animation-delay:.14s; }
@keyframes reveal { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
@keyframes pulse { 0%,100% { box-shadow:0 0 0 4px rgba(105,161,95,.14); } 50% { box-shadow:0 0 0 9px rgba(105,161,95,.04); } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
@media (max-width:900px) {
  .header-inner { grid-template-columns:1fr auto; }.desktop-nav,.header-phone { display:none; }.menu-toggle { display:grid; place-content:center; gap:6px; width:44px; height:44px; border:0; background:transparent; }.menu-toggle span { width:25px; height:2px; background:var(--ink); transition:transform .2s ease; }.menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }.mobile-nav { position:absolute; left:0; right:0; top:86px; display:grid; gap:0; max-height:0; overflow:hidden; background:var(--cream); transition:max-height .3s ease; border-bottom:1px solid transparent; }.mobile-nav.open { max-height:280px; border-color:var(--line); }.mobile-nav a { padding:14px 24px; border-top:1px solid var(--line); font-weight:600; }
  .hero { padding-top:58px; }.hero-grid,.act-grid { grid-template-columns:1fr; }.hero-grid { gap:28px; }.hero-art { width:min(530px,100%); margin:auto; }.trust-strip { grid-template-columns:1fr 1fr; }.section-heading,.process-heading { grid-template-columns:1fr; gap:20px; }.service-grid { grid-template-columns:1fr 1fr; }.featured-card { grid-row:auto; }.wide-card { grid-column:1 / 3; }.act-grid { gap:55px; }.concern-visual { min-height:480px; }.steps { grid-template-columns:1fr; }.steps article,.steps article + article { padding:30px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }.steps article:last-child { border-bottom:0; }.steps h3 { margin-top:16px; }.testimonial { grid-template-columns:auto 1fr; }.testimonial div { grid-column:2; }.final-cta-inner { grid-template-columns:1fr; }.cta-phone { text-align:left; }.footer-top { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:1 / 3; }.legal-grid { grid-template-columns:1fr; gap:50px; }.legal-grid aside { position:static; }
}
@media (max-width:600px) {
  .container { width:min(100% - 28px,1180px); }.header-inner { height:76px; }.brand-mark { width:38px; height:38px; }.brand strong { font-size:19px; }.mobile-nav { top:76px; }
  .hero { padding-top:46px; } h1 { font-size:49px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:19px; }.hero-notes { display:grid; gap:9px; }.hero-art { height:405px; transform:scale(.88); transform-origin:center top; margin-bottom:-46px; }.sun-disc { right:0; width:300px; height:300px; }.house { right:10px; }.availability-card { left:-12px; }.rating-card { right:-12px; }.trust-strip { grid-template-columns:1fr; }.trust-strip div { min-height:90px; border-right:0; border-bottom:1px solid rgba(255,255,255,.13); }
  .section { padding:78px 0; } h2 { font-size:43px; }.section-heading { margin-bottom:38px; }.service-grid { grid-template-columns:1fr; }.wide-card { grid-column:auto; }.service-card { min-height:310px; }.act-grid { gap:42px; }.concern-visual { min-height:390px; }.visual-house { transform:translate(-50%,-45%) scale(.78); }.ring-one { width:285px; height:285px; }.ring-two { width:375px; height:375px; }.label-two { top:150px; }.process-heading { margin-bottom:36px; }.testimonial { grid-template-columns:1fr; gap:12px; }.quote-mark { font-size:70px; }.testimonial div { grid-column:auto; }.testimonial blockquote { font-size:21px; }.final-cta { padding:64px 0; }.final-cta h2 { font-size:42px; }.cta-phone a { font-size:24px; }.footer-top { grid-template-columns:1fr; gap:38px; }.footer-brand { grid-column:auto; }.footer-bottom { flex-direction:column; }.legal-hero { padding:70px 0 50px; }.legal-content { padding:55px 0 80px; }.legal-grid { gap:35px; }.legal-grid article h2 { font-size:30px; }.legal-grid article > p:first-child { font-size:17px; }
}
