:root{--blue:#BFE4F7;--pink:#F5B6C8;--paper:#F8F4ED;--rose:#E989A7;--denim:#7FA8C7;--gold:#D8B36A;--ink:#263d48;--muted:#526775;--line:#d4dcd9;--white:#fffdf9;--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next',Avenir,'Segoe UI',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.6}
button{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{color:inherit}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #9a345c;outline-offset:5px}
h1,h2,h3,p{margin:0}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;line-height:1.08}
h1 em,h2 em{font-weight:400}
h2{font-size:clamp(2.7rem,4.8vw,4.6rem)}
h3{line-height:1.2;font-weight:600}
p{color:var(--muted)}
[hidden]{display:none!important}
.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:12px;z-index:100}
.skip:focus{top:10px}
.header{display:flex;align-items:center;justify-content:space-between;padding:15px 5%;gap:28px;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid #263d4810}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand img{width:58px;height:58px;object-fit:cover;border-radius:50%;border:1px solid #d8b36a80}
.brand>span{font-size:26px;line-height:.92;letter-spacing:.1em;font-weight:800}
.brand small{display:block;font-size:12px;letter-spacing:.27em;font-weight:500;margin-top:9px}
.header nav{display:flex;gap:27px;font-size:14px}
.header nav a:hover,.footer-links a:hover{color:#a23760}
.header-actions{display:flex;align-items:center;gap:22px}
.btn{border:1px solid var(--ink);background:var(--ink);color:var(--white);padding:15px 27px;border-radius:50px;display:inline-flex;justify-content:center;align-items:center;gap:12px;font-size:15px;line-height:1.5;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s}
.btn:hover{background:#3e5a68;transform:translateY(-2px);box-shadow:0 6px 18px #263d4819}
.btn.small{padding:11px 20px;font-size:14px}
.btn.outline{background:transparent;color:var(--ink)}
.btn.outline:hover{background:#ffffff60}
.menu-button{display:none;border:0;background:none;font-size:24px}
.hero{min-height:680px;position:relative;background:#b8def0;overflow:hidden;display:flex;align-items:center;padding:80px 6% 100px}
.hero-image{position:absolute;right:0;top:0;height:100%;width:75%;object-fit:cover;object-position:70% 52%}
.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#b8def0 2%,#b8def0 23%,#b8def0d9 31%,#b8def000 50%);pointer-events:none}
.hero-copy{position:relative;z-index:2;max-width:550px}
.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:650;line-height:1.5;color:var(--ink);margin-bottom:22px}
.eyebrow span{margin:0 10px}
.hero h1{font-size:clamp(3.2rem,5.7vw,5.65rem);margin-bottom:27px}
.hero h1 em{color:#43657a}
.hero-copy>p:not(.eyebrow){font-size:18px;color:#3c5665;line-height:1.7}
.button-row{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:30px}
.text-link{border:0;background:none;padding:0 0 4px;border-bottom:1px solid currentColor;font-weight:600;font-size:14px;line-height:1.5;display:inline-block}
.text-link:hover{color:#9d365c}
.hero-note{display:flex;align-items:center;gap:13px;margin-top:46px;font-size:13px;line-height:1.5}
.tiny-heart{display:grid;place-items:center;width:42px;height:42px;border:1px solid #5e819888;border-radius:50%;font-size:25px}
.hero-note strong{font-weight:550}
.care-strip{display:flex;align-items:center;justify-content:space-evenly;gap:25px;padding:22px;background:var(--pink);font-size:14px;color:#543948;overflow:hidden;white-space:nowrap}
.care-strip b{font-size:20px;font-weight:400}
.section{padding:95px 6%;max-width:1600px;margin:auto}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:45px}
.section-head>p{max-width:360px;font-size:15px;line-height:1.8;padding-bottom:8px}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service-card{padding:30px 34px 34px;border-radius:25px;min-height:340px;display:flex;align-items:flex-start;flex-direction:column}
.blue{background:#d9edf6}
.pink{background:#f7d4df}
.cream{background:#ece7dc}
.card-top{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:12px;margin-bottom:32px}
.service-icon{font-size:35px;line-height:1}
.service-card h3{font-family:var(--serif);font-weight:400;font-size:33px;letter-spacing:-.03em;margin-bottom:17px}
.service-card p{font-size:14px;line-height:1.7;margin-bottom:28px;max-width:290px}
.service-card .text-link{margin-top:auto}
.philosophy{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;padding-top:30px}
.brand-portrait{position:relative;background:#d3e8f0;padding:8%;border-radius:50% 50% 30px 30px}
.brand-portrait img{border-radius:50%;mix-blend-mode:multiply}
.portrait-label{background:var(--pink);display:block;text-align:center;position:relative;transform:rotate(-5deg);padding:9px;font-size:14px;margin:10px -30px 0}
.philosophy-copy h2{margin-bottom:28px}
.philosophy-copy>p:not(.eyebrow){max-width:490px;font-size:16px}
.principle{display:flex;gap:19px;padding:22px 0;border-bottom:1px solid var(--line)}
.principle>span{font-size:12px;padding-top:3px;color:#657882}
.principle h3{font-size:16px;margin-bottom:8px}
.principle p{font-size:14px;line-height:1.7;max-width:390px}
.philosophy-copy>.text-link{margin-top:22px}
.moment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.moment-card{border-top:1px solid #72828a;padding:26px 0;transition:transform .2s}
.moment-card:hover{transform:translateY(-5px)}
.moment-number{font-size:12px;letter-spacing:.15em}
.moment-card h3{font-family:var(--serif);font-weight:400;font-size:43px;margin:30px 0 13px;letter-spacing:-.03em}
.moment-card p{font-size:14px;max-width:250px;min-height:55px}
.moment-link{display:block;font-size:12px;font-weight:600;margin-top:30px;text-decoration:underline;text-underline-offset:5px}
.faq{display:grid;grid-template-columns:1fr 1.25fr;gap:8%;padding-top:20px}
.faq-list details{border-bottom:1px solid #bdc6c7}
.faq-list summary{cursor:pointer;list-style:none;padding:23px 35px 23px 0;position:relative;font-size:16px;font-weight:500}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list p{font-size:14px;line-height:1.8;padding:0 25px 25px 0}
.contact-section{text-align:center;background:var(--blue);padding:75px 20px}
.contact-section h2{margin-bottom:25px}
.contact-section .button-row{justify-content:center}
.contact-section>.eyebrow{font-size:12px}
footer{padding:45px 6% 20px;background:var(--paper)}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-bottom:35px}
.footer-top>p{font-size:14px}
.footer-top>p span{font-size:12px}
.footer-links{display:flex;flex-direction:column;gap:5px;font-size:13px}
.footer-links button{padding:0;border:0;background:transparent;text-align:left;font-size:12px;color:var(--muted)}
.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;gap:35px;align-items:center}
.footer-bottom p{font-size:12px;max-width:690px}
.footer-bottom>span{white-space:nowrap;font-size:12px;letter-spacing:.09em}
.footer-bottom b{font-size:15px;letter-spacing:-.03em;margin-left:6px}
@media(min-width:1500px){.hero{min-height:760px}
.hero-copy{max-width:650px}
}
@media(max-width:1100px){.header nav{gap:18px;font-size:12px}
.header{padding:14px 4%;gap:20px}
.header-actions{gap:17px}
.brand>span{font-size:22px}
.brand img{width:48px;height:48px}
.header .btn{font-size:12px;padding:11px 15px}
.hero{min-height:630px;padding-left:5%;padding-top:70px}
.hero h1{font-size:64px}
.hero-copy{max-width:470px}
.hero-image{width:80%;object-position:65% center}
.service-card{padding:26px}
.section{padding-left:5%;padding-right:5%}
.philosophy{gap:7%}
}
@media(max-width:850px){.header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:22px 6%;border-bottom:1px solid var(--line);flex-wrap:wrap;box-shadow:0 12px 20px #263d4810}
.header nav.open{display:flex}
.menu-button{display:block}
.hero{min-height:600px}
.hero h1{font-size:58px}
.hero-copy{max-width:410px}
.hero-copy>p:not(.eyebrow){font-size:16px}
.hero-image{width:95%;object-position:50% center;opacity:.95}
.hero:after{background:linear-gradient(90deg,#b8def0 1%,#b8def0 20%,#b8def0b0 41%,transparent 63%)}
.hero .button-row{gap:18px}
.hero .btn{font-size:13px;padding:14px 19px}
.hero .text-link{font-size:12px}
.hero .eyebrow{font-size:12px}
.care-strip span:nth-last-child(-n+3),.care-strip b:nth-last-child(-n+3){display:none}
.section{padding-top:70px;padding-bottom:70px}
.section-head>p{max-width:270px;font-size:14px}
.service-card h3{font-size:28px}
.service-card{padding:22px}
.service-card p{font-size:13px}
.service-card .text-link{font-size:12px}
.philosophy{gap:5%}
.philosophy h2{font-size:42px}
.philosophy-copy>p:not(.eyebrow){font-size:14px}
.faq{gap:5%}
.faq h2{font-size:42px}
.faq-list summary{font-size:14px}
.footer-top>p{display:none}
}
@media(max-width:600px){html{scroll-padding-top:90px}
.header{padding:12px 5%;gap:15px}
.brand img{width:43px;height:43px}
.brand>span{font-size:19px}
.brand small{font-size:12px;margin-top:6px}
.header-actions{gap:19px}
.header .btn{display:none}
.menu-button{font-size:22px;padding:4px}
.hero{display:block;min-height:850px;padding:43px 6% 430px}
.hero-image{top:auto;bottom:0;width:100%;height:490px;object-fit:cover;object-position:72% 50%;opacity:1}
.hero:after{background:linear-gradient(180deg,#b8def0 0%,#b8def0 40%,#b8def080 47%,#b8def000 55%)}
.hero h1{font-size:51px;line-height:1.03;margin-bottom:23px}
.hero-copy{max-width:100%}
.hero .eyebrow{font-size:12px;letter-spacing:.09em;margin-bottom:19px}
.hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.65}
.hero .button-row{margin-top:25px;gap:22px}
.hero .btn{font-size:13px;padding:13px 19px}
.hero-note{display:none}
.care-strip{padding:17px 18px;gap:17px;font-size:12px;justify-content:center}
.care-strip b{font-size:15px}
.section{padding:58px 6%}
.section-head{display:block;margin-bottom:30px}
.section-head>p{margin-top:23px;max-width:100%;padding:0;font-size:14px}
.eyebrow{font-size:12px;margin-bottom:17px}
h2{font-size:42px}
.services-grid{grid-template-columns:1fr;gap:17px}
.service-card{min-height:0;padding:27px}
.service-card h3{font-size:34px}
.service-card h3 br{display:none}
.card-top{margin-bottom:25px}
.service-card p{font-size:15px;max-width:100%;margin-bottom:24px}
.service-card .text-link{font-size:14px}
.philosophy{display:flex;flex-direction:column;gap:42px;padding-top:15px}
.brand-portrait{max-width:340px;padding:6%;margin:0 20px 0}
.portrait-label{font-size:12px;margin:8px -25px 0}
.philosophy-copy>p:not(.eyebrow){font-size:15px}
.principle p{font-size:14px}
.philosophy-copy>.text-link{font-size:12px}
.moment-grid{grid-template-columns:1fr;gap:0}
.moment-card{padding:24px 0}
.moment-card h3{font-size:35px;margin:17px 0 10px}
.moment-card p{max-width:none;min-height:0}
.moment-link{margin-top:18px;font-size:12px}
.faq{display:block;padding-top:12px}
.faq-list{margin-top:25px}
.faq-list summary{font-size:15px;padding:20px 35px 20px 0}
.faq-list p{font-size:14px}
.contact-section{padding:58px 6%}
.contact-section h2{font-size:44px}
.contact-section>.eyebrow{font-size:12px}
.contact-section .button-row{flex-direction:column;gap:13px}
.contact-section .btn{width:100%;font-size:14px}
.footer-top{align-items:flex-start}
.footer-links{font-size:12px}
.footer-links button{font-size:12px}
.footer-bottom{display:block}
.footer-bottom p{font-size:12px}
.footer-bottom>span{display:block;margin-top:20px}
footer{padding:30px 6% 23px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
}

.svg-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.icon{display:inline-block;flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.eyebrow .icon{width:12px;height:12px}.tiny-heart .icon{width:24px;height:24px}.service-icon .icon{width:35px;height:35px}.care-strip .icon{width:20px;height:20px}
.brand{min-width:44px;min-height:44px}.header nav a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}.btn{min-width:44px;min-height:44px}.text-link{display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:8px 0;max-width:100%}.text-link .icon{width:17px;height:17px}
.menu-button{width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;align-items:center;justify-content:center}.menu-button .icon{width:24px;height:24px}.menu-close-icon{display:none}.menu-button[aria-expanded="true"] .menu-open-icon{display:none}.menu-button[aria-expanded="true"] .menu-close-icon{display:block}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:44px;min-height:64px;padding-right:0}.faq-list summary:after{content:none}.faq-list summary .icon{width:22px;height:22px}.faq-list details[open] .plus-vertical{opacity:0}.faq-list summary span{min-width:0}
.footer-links a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:44px;min-height:44px}.moment-card{min-width:44px;min-height:44px}.moment-link .icon{width:17px;height:17px;margin-left:4px}.footer-bottom b{margin-left:0}.skip{min-width:44px;min-height:44px}.location-line{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px}.location-line span+span{border-left:1px solid #6b8896;padding-left:16px}
@media(max-width:850px){.menu-button{display:inline-flex}.header nav{gap:12px 20px}.header nav a{font-size:14px}.footer-links a{font-size:14px}}
@media(max-width:600px){.care-strip{white-space:normal;text-align:center;gap:12px}.care-strip span{flex-shrink:1}.care-strip b{flex-shrink:0}.care-strip b:nth-child(4){display:none}.footer-top{flex-wrap:wrap}.footer-links{min-width:174px;flex:1}.footer-top .brand{margin-right:auto}.header-actions{gap:8px}.header .menu-button{padding:10px}.location-line{flex-direction:column;gap:4px}.location-line span+span{border-left:0;padding-left:0}.contact-section .btn{padding-left:20px;padding-right:20px}.philosophy-copy>.text-link{font-size:12px}}
.brand-portrait img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
