*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{width:100%;min-height:100vh}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/capolinea-0.ttf)format("truetype")}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/capolinea-1.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/capolinea-2.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/capolinea-3.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/capolinea-4.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/capolinea-5.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/capolinea-6.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/capolinea-7.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/capolinea-8.ttf)format("truetype")}:root{--green:#47694b;--green-dark:#304d35;--cream:#f7f7f0;--coral:#bb5344;--text:#252920;--muted:#62675d;--line:#dce1d5;color:var(--text);background:var(--cream);font-synthesis:none;font-family:DM Sans,sans-serif}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:5px}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Playfair Display,Georgia,serif}p{font-size:1rem;line-height:1.7}h2{letter-spacing:-.035em;font-size:clamp(2rem,3vw,2.75rem);font-weight:500;line-height:1.13}h3{font-weight:600}.icon{flex-shrink:0;width:24px;height:24px}.handwritten{font-family:Caveat,cursive;font-weight:500}.heart{color:var(--coral);font-family:Caveat,cursive}.eyebrow{color:var(--green);letter-spacing:.16em;margin-bottom:16px;font-size:.75rem;font-weight:700;display:block}.button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:13px 18px;font-size:.875rem;font-weight:600;line-height:1.4;transition:background .2s;display:inline-flex}.button .icon{width:19px;height:19px}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.outline{color:var(--coral);border-color:var(--coral);background:0 0}.outline:hover{background:#faeae4}.text-link{color:var(--coral);text-underline-offset:5px;font-size:.9375rem;font-weight:600;line-height:1.7;text-decoration:underline}.text-link:hover{color:var(--green-dark)}.accent-line{background:#df816c;width:42px;height:3px;margin:22px 0}.skip-link{z-index:200;background:#fff;padding:15px;position:fixed;top:-80px;left:15px}.skip-link:focus{top:10px}.header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;background:#fffefaef;border-bottom:1px solid #e4e6dd;align-items:center;gap:26px;height:88px;padding:0 3.2%;display:flex;position:sticky;top:0}.brand{flex:0 0 220px}.brand img{width:220px}.navigation{gap:22px;margin-left:auto;display:flex}.navigation a{white-space:nowrap;border-bottom:2px solid #0000;padding:12px 0;font-family:Playfair Display,serif;font-size:.875rem}.navigation a:hover{border-color:var(--coral)}.menu-button{width:46px;height:46px;color:var(--green-dark);background:0 0;border:0;font-size:1.7rem;display:none}.hero{background:#f9f9f2;grid-template-columns:57% 43%;display:grid}.hero-image{min-height:470px;position:relative}.hero-image img{object-fit:cover;object-position:43% center;width:100%;height:100%;position:absolute}.hero-content{background:radial-gradient(at 40% 25%,#e9eedf 0,#0000 55%);padding:48px 9% 72px;position:relative}.hero h1{letter-spacing:-.045em;margin-bottom:24px;font-size:clamp(2.8rem,4.5vw,4.6rem);font-weight:600;line-height:1.02}.hero h1 .heart{font-size:.75em}.hero-content p{max-width:420px;margin-bottom:24px;font-size:.9375rem;line-height:1.6}.hero-buttons{flex-wrap:wrap;gap:12px;display:flex}.hero-note{color:var(--green);font-size:1.4rem;line-height:.95;position:absolute;bottom:12px;right:8%;transform:rotate(-6deg)}.services{background:#f0f3ea;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:24px 3.2%;display:grid}.service-card{background:#fffefa;border-radius:12px;overflow:hidden}.service-image{aspect-ratio:1.9;display:block;overflow:hidden}.service-image img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.service-card:hover img{transform:scale(1.04)}.service-body{align-items:flex-start;gap:12px;padding:18px 18px 22px;display:flex}.service-body>.icon{color:#d97965;width:27px;height:27px;margin-top:4px}.service-body h2{margin:0 0 5px;font-size:1.5rem}.service-body p{color:var(--muted);min-height:42px;margin-bottom:12px;font-size:.875rem;line-height:1.5}.about{background:#f9f8f1;grid-template-columns:56% 44%;display:grid}.about-image{min-height:380px;position:relative}.about-image img{object-fit:cover;width:100%;height:100%;position:absolute}.about-content{padding:46px 180px 46px 9%;position:relative}.about-content h2{margin-bottom:0}.about-content p{color:#50564a;font-size:.9375rem}.about-note{color:var(--green);font-size:1.85rem;line-height:1.08;position:absolute;top:27%;right:6%;transform:rotate(6deg)}.about-content .button{margin-top:8px}.moments{max-width:1180px;margin:auto;padding:76px 30px 64px}.section-heading{text-align:center;margin-bottom:40px}.section-heading h2{margin-bottom:14px}.section-heading p{color:var(--muted);margin-bottom:0}.moment{grid-template-columns:1fr 1fr;align-items:center;gap:7%;margin-top:55px;display:grid}.moment-image{aspect-ratio:1.35;border-radius:12px;position:relative;overflow:hidden}.moment-image>img{object-fit:cover;width:100%;height:100%}.moment-label{color:var(--green-dark);background:#fffdf7f5;border-radius:6px;align-items:center;gap:9px;padding:10px 15px;font-family:Playfair Display,serif;font-size:1.125rem;display:flex;position:absolute;bottom:18px;left:18px}.moment.reverse .moment-image{order:2}.moment h2{max-width:410px;margin-bottom:0;font-size:clamp(1.8rem,2.8vw,2.4rem)}.moment-content p{color:#50564a}.moment-content ul{margin:20px 0;padding:0;list-style:none}.moment-content li{align-items:baseline;gap:10px;margin:9px 0;font-size:.9375rem;display:flex}.moment-content li:before{content:"✓";color:var(--green)}.moment .eyebrow{margin-bottom:12px}.moment .accent-line{margin:18px 0}.reviews{text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:44px 24px 48px}.reviews .handwritten{color:var(--green);font-size:1.85rem}.reviews h2{margin:8px 0 14px;font-size:2rem}.reviews p{color:var(--muted);max-width:600px;margin:0 auto 22px}.contact{background:#f8f7f0;padding:65px max(4%,50% - 590px)}.contact-grid{grid-template-columns:.8fr 1.2fr;gap:50px;scroll-margin-top:20px;display:grid}.contact-intro{background:#e7ecdf;border-radius:12px;align-self:start;overflow:hidden}.contact-intro>img{object-fit:cover;object-position:center 50%;width:100%;height:330px}.contact-intro>div{padding:28px 32px}.contact-intro .handwritten{color:var(--green);font-size:2rem}.contact-intro h3{margin:5px 0 14px;font-size:1.5rem}.contact-intro p{color:var(--muted);margin-bottom:12px}.contact-intro a{overflow-wrap:anywhere}.contact-form{min-width:0;position:relative}.contact-form h3{margin:0 0 8px;font-size:1.65rem}.form-note{color:var(--muted);margin-bottom:20px;font-size:.875rem;line-height:1.5}.form-row{grid-template-columns:1fr 1fr;gap:18px;display:grid}.contact-form label{margin-bottom:20px;font-size:.875rem;font-weight:600;display:block}.contact-form input:not([type=checkbox]),.contact-form textarea,.contact-form select{width:100%;color:var(--text);background:#fffefb;border:1px solid #c6cdbd;border-radius:6px;min-width:0;margin-top:8px;padding:13px 12px;font-size:1rem;display:block}.contact-form textarea{resize:vertical;min-height:130px;line-height:1.5}.contact-form ::placeholder{color:#72766c;opacity:1}.optional{color:var(--muted);font-weight:400}.contact-form .consent{align-items:flex-start;gap:11px;font-weight:400;line-height:1.55;display:flex}.consent input{height:19px;accent-color:var(--green);flex:0 0 19px;margin:3px 0 0}.consent a,.form-status a,details a{text-underline-offset:3px;text-decoration:underline}.honey{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-status{color:var(--green-dark);overflow-wrap:anywhere;font-size:.9375rem;line-height:1.6}.form-status:not(:empty){background:#eaf0e3;border:1px solid #b8c7b2;border-radius:6px;margin-top:18px;padding:16px}.form-status.error{color:#8c3126;background:#fff0ea;border-color:#e5b5a9}.contact-form button:disabled{opacity:.65;cursor:wait}details{border-top:1px solid var(--line);margin-top:24px;padding-top:16px;font-size:.875rem}details summary{cursor:pointer;color:var(--green-dark);font-weight:600;line-height:1.5}details p{margin:14px 0 0;font-size:.875rem;line-height:1.65}.visit{background:#e9eedf;grid-template-columns:1.1fr 1fr 1fr;align-items:center;gap:40px;padding:35px 4%;display:grid}.map-panel{background:#f7f8f2;border:5px solid #fff;border-radius:12px;height:305px;position:relative;overflow:hidden}.map-panel iframe{border:0;width:100%;height:100%}.map-cover{text-align:center;background:linear-gradient(135deg,#f8faf4,#dfe7d4);flex-direction:column;justify-content:center;align-items:center;height:100%;padding:12px 12px 40px;display:flex}.map-cover>.icon{color:var(--green);margin-bottom:6px}.map-cover h3{margin-bottom:6px;font-size:1.4rem}.map-cover p{margin-bottom:12px;font-size:.875rem;line-height:1.5}.map-cover small{color:var(--muted);margin:9px 0;font-size:.75rem}.map-link{background:var(--green-dark);color:#fff;text-align:center;padding:10px;font-size:.875rem;position:absolute;bottom:0;left:0;right:0}.visit-address>.icon{color:var(--green);margin-bottom:10px}.visit h3{margin-bottom:14px;font-size:1.125rem}.visit address{font-size:.9375rem;font-style:normal;line-height:1.7}.email-link{overflow-wrap:anywhere;align-items:center;gap:10px;margin:20px 0;font-size:.875rem;display:flex}.visit-address .handwritten{color:var(--green);font-size:1.8rem;line-height:1.1;display:block;transform:rotate(-3deg)}.hours h3{align-items:center;gap:10px;display:flex}.hours dl{margin:0}.hours dl>div{justify-content:space-between;gap:20px;margin:10px 0;font-size:.875rem;display:flex}.hours dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.hours .closed dd{color:var(--coral)}.footer{background:var(--green-dark);color:#fff;padding:27px 4% 18px}.footer-top{align-items:center;gap:30px;display:flex}.footer-top>a{flex:0 0 205px}.footer-top img{width:205px}.footer-top>p{border-left:1px solid #708672;margin:0;padding-left:25px;font-size:.875rem;line-height:1.6}.footer nav{flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;max-width:430px;margin-left:auto;display:flex}.footer nav a{padding:5px 0;font-size:.875rem}.footer a:hover{text-underline-offset:4px;text-decoration:underline}.footer-bottom{color:#d9e3d7;border-top:1px solid #6f806b;flex-wrap:wrap;justify-content:space-between;gap:18px;margin-top:24px;padding-top:16px;font-size:.75rem;display:flex}.site{width:100%;max-width:1440px;margin-inline:auto;box-shadow:0 0 60px #23371a0a}@media (width>=1600px){.hero-image{min-height:540px}}@media (width<=1150px){.header{gap:20px}.brand{flex-basis:190px}.brand img{width:190px}.navigation{gap:16px}.where-button{display:none}.hero-content{padding:40px 7% 65px}.hero h1{font-size:3.25rem}.hero-image{min-height:440px}.service-body{gap:8px;padding:16px 12px}.service-body>.icon{width:22px}.about-content{padding:40px 10%}.about-note{display:none}.visit{gap:25px}.contact-grid{gap:30px}}@media (width<=900px){.header{justify-content:space-between;height:76px}.brand{flex-basis:190px}.menu-button{display:block}.navigation{border-bottom:1px solid var(--line);background:#fffefb;max-height:calc(100dvh - 76px);padding:18px 6%;display:none;position:absolute;top:76px;left:0;right:0;overflow:auto;box-shadow:0 12px 20px #23331f14}.navigation.open{grid-template-columns:1fr 1fr;gap:6px 20px;display:grid}.navigation a{padding:13px 4px;font-size:1rem}.hero{grid-template-columns:1fr 1fr}.hero h1{font-size:2.75rem}.hero .eyebrow{font-size:.7rem}.hero-content{padding:35px 8% 65px}.hero-buttons{gap:10px}.services{grid-template-columns:repeat(2,minmax(0,1fr))}.service-body p{min-height:0}.about{grid-template-columns:1fr 1fr}.about-content{padding:32px 9%}.moment{gap:5%}.moment-image{aspect-ratio:1/1.2}.contact-grid{grid-template-columns:1fr}.contact-intro{grid-template-columns:1fr 1fr;display:grid}.contact-intro>img{height:280px}.contact-intro>div{align-self:center}.visit{grid-template-columns:1fr 1fr}.map-panel{grid-column:1/-1;height:300px}.footer-top{flex-wrap:wrap}.footer nav{justify-content:flex-start;width:100%;max-width:none;margin:0}.footer-bottom{font-size:.8125rem}}@media (width<=600px){html{scroll-padding-top:90px}.header{padding:0 20px}.brand{flex-basis:180px}.hero{grid-template-columns:1fr}.hero-image{min-height:260px}.hero-content{padding:32px 24px 62px}.hero h1{font-size:3.25rem}.hero-content p{max-width:none}.hero-note{font-size:1.25rem;bottom:14px;right:28px}.hero-buttons{gap:10px}.hero-buttons .button{padding:12px;font-size:.8125rem}.services{gap:12px;padding:18px 16px}.service-image{aspect-ratio:1.45}.service-body{padding:14px 12px;display:block}.service-body>.icon{width:23px;height:23px;margin:0 0 7px}.service-body h2{font-size:1.3rem}.service-body p{min-height:63px;font-size:.875rem}.service-body a{font-size:.875rem}.about{grid-template-columns:1fr}.about-image{min-height:260px}.about-content{padding:32px 24px}.moments{padding:48px 22px}.section-heading{margin-bottom:30px}.section-heading h2{font-size:2rem}.moment{grid-template-columns:1fr;gap:24px;margin-top:40px}.moment.reverse .moment-image{order:0}.moment-image{aspect-ratio:1.5}.moment-content h2{font-size:2rem}.moment-content ul{margin:18px 0}.reviews{padding:35px 22px}.reviews h2{font-size:1.85rem}.contact{padding:45px 22px}.contact-intro{display:block}.contact-intro>img{height:250px}.contact-intro>div{padding:24px}.form-row{grid-template-columns:1fr;gap:0}.contact-form .button{width:100%}.visit{grid-template-columns:1fr;gap:28px;padding:26px 22px}.map-panel{grid-column:auto}.visit-address .handwritten{display:none}.hours{border-top:1px solid #c9d1c1;padding-top:22px}.hours dl>div{font-size:.9375rem}.footer{padding:28px 22px 20px}.footer-top{gap:22px}.footer-top>p{border:0;padding:0}.footer-bottom{flex-direction:column;gap:14px}.footer nav{gap:8px 20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.form-fields{border:0;min-width:0;margin:0;padding:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-captcha{min-width:0;margin:20px 0}.contact-captcha p,.contact-captcha small{color:inherit;margin:8px 0;font-size:.8125rem;line-height:1.5;display:block}.contact-captcha a{text-decoration:underline}.contact-captcha .captcha-retry{color:inherit;background:0 0;border:1px solid;min-height:40px;margin:4px 0;padding:8px 12px;font-size:.8125rem}.contact-captcha>div{max-width:100%;overflow:hidden}.social-links{flex-wrap:wrap;gap:12px;margin:18px 0;display:flex}.social-links a{border:1px solid var(--green);background:var(--green);color:#fff;border-radius:6px;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.social-links a:hover{filter:brightness(.9)}.section-heading .social-links{justify-content:center}.footer-social{flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:24px;display:flex}.footer-social .social-links{margin:0}.footer-social .social-links a{border-color:currentColor}.legal-info{overflow-wrap:anywhere;border-top:1px solid #708672;margin-top:18px;padding-top:12px;font-size:.75rem;line-height:1.5}.legal-info p{font-size:inherit;line-height:inherit;margin:2px 0}.legal-info strong{font-weight:500}.privacy-notice{padding:36px clamp(22px,5vw,72px);line-height:1.7}.privacy-notice summary{cursor:pointer;padding:12px 0;font-weight:600}.privacy-notice a{text-decoration:underline}footer .site-credit{flex-basis:100%;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:6px;width:100%;margin-top:10px;font-size:10px;line-height:1.4;display:flex}footer .site-credit a{background:0 0;border-radius:0;align-items:center;min-height:24px;padding:3px 0;display:inline-flex}footer .site-credit img{object-fit:contain;width:64px;height:auto;display:block}@media (width<=600px){footer .site-credit{justify-content:center;margin-top:8px}}.footer .site-credit a{position:relative}.footer .site-credit a:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 20%,#fff 20%);position:absolute;inset:3px 0;-webkit-mask:url(/images/novelo-logo.png) 50%/contain no-repeat;mask:url(/images/novelo-logo.png) 50%/contain no-repeat}
