@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f7f4ef;--cream:#eee8e1;--ink:#514339;--muted:#786d63;--line:#d9cec1;--copper:#9a542e;--sage:#e5d8ca}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 'DM Sans',Arial,sans-serif}a{color:inherit}button,input,textarea{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;line-height:1.04}h1{font-size:clamp(52px,6.5vw,88px);letter-spacing:-2px;margin-bottom:26px}h2{font-size:clamp(39px,4.8vw,62px);letter-spacing:-1px}h3{font-size:32px}p{margin-bottom:22px}.wrap{width:min(1160px,calc(100% - 80px));margin:auto}.topbar{font-size:11px;letter-spacing:2px;text-transform:uppercase;text-align:center;padding:8px;background:var(--ink);color:#f6f0e8}header{border-bottom:1px solid var(--line)}.nav{display:flex;align-items:center;justify-content:space-between;min-height:104px;gap:28px}.wordmark{text-decoration:none;font-family:Georgia,serif;font-size:29px;font-weight:bold;line-height:1.1}.wordmark small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:5px;margin-top:8px}.navlinks{display:flex;gap:30px;align-items:center}.navlinks a{text-decoration:none;font-size:14px}.navlinks a[aria-current=page]{color:var(--copper);box-shadow:0 2px var(--copper)}.navlinks .navcta{border:1px solid var(--ink);padding:10px 19px}.menu{display:none;background:none;border:1px solid var(--line);padding:7px 12px}.eyebrow{font-size:11px;letter-spacing:2.4px;text-transform:uppercase;font-weight:600;color:var(--copper);margin-bottom:24px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;align-items:center;padding-top:68px;padding-bottom:72px}.hero p.lead,.lead{font-size:18px;line-height:1.8;max-width:580px;color:var(--muted)}.hero-art{background:#eee9e3;overflow:hidden;border-radius:48% 48% 4px 4px;border:1px solid #e0d7cd;position:relative}.hero-art img{display:block;width:100%;mix-blend-mode:multiply}.art-caption{text-align:center;font-size:10px;letter-spacing:2px;padding:0 12px 22px;text-transform:uppercase}.buttons{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:30px 0 23px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--ink);color:white;text-decoration:none;font-size:14px;padding:14px 24px;border:1px solid var(--ink);cursor:pointer}.btn:hover{background:var(--copper);border-color:var(--copper)}.textlink{text-underline-offset:6px;font-size:14px}.small{font-size:13px;color:var(--muted)}.ribbon{background:var(--cream);border-block:1px solid var(--line);padding:21px 0}.ribbon .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;letter-spacing:1.3px;text-transform:uppercase}.section{padding:90px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}.section-head h2{max-width:600px;margin:0}.section-head p{max-width:350px;color:var(--muted);margin:0}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:50px 1fr 1fr;gap:28px;border-bottom:1px solid var(--line);padding:28px 0}.service-row .num{font-size:12px;color:var(--copper);padding-top:10px}.service-row h3{margin:4px 0}.service-row p{color:var(--muted);font-size:15px;margin:0}.tint{background:var(--cream)}.split{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.split p{color:var(--muted)}.photo{min-height:410px;background:var(--sage);border-radius:46% 46% 3px 3px;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}.photo svg{width:180px;height:230px;stroke:#8c8e78;fill:none;stroke-width:1}.photo span{position:absolute;bottom:28px;font-size:12px;letter-spacing:1px;color:#646653}.sign{font:italic 31px Georgia,serif;color:var(--copper);margin-bottom:0}.app-panel{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--cream)}.app-copy{padding:55px}.app-copy h2{font-size:49px}.pill{display:inline-block;border:1px solid var(--line);padding:4px 12px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:23px}.app-art{background:#713c3b;padding:42px;display:flex;align-items:center;justify-content:center;min-height:370px}.planner{background:#fcf7ef;padding:28px;width:100%;max-width:340px;transform:rotate(-3deg);box-shadow:12px 15px 0 #ffffff12}.planner h3{color:#713c3b;margin:10px 0 20px;font-size:36px}.planner .mini{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#713c3b}.planner-row{border-bottom:1px solid #ddd2c7;padding:11px 0;display:flex;justify-content:space-between;align-items:center;font-size:12px}.planner-row span{font-size:11px;color:#877b6e}.planner-note{font-size:9px;color:#877b6e;margin:20px 0 0}.cta{padding:68px 0;background:var(--sage)}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta h2{font-size:48px;margin:0 0 12px}.cta p{margin:0;color:var(--muted)}footer{padding:38px 0}.footer-grid{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}footer p,footer a{font-size:12px;color:var(--muted)}.pageintro{padding:70px 0 52px;max-width:850px}.pageintro h1{max-width:780px}.pageintro .lead{max-width:700px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 55px}.detail{padding:32px 0;border-top:1px solid var(--line)}.detail .eyebrow{margin-bottom:15px}.detail p{color:var(--muted);font-size:15px}.detail ul{padding-left:19px;color:var(--muted);font-size:14px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.steps article{border-top:1px solid var(--line);padding-top:24px}.steps h3{font-size:29px}.steps p{font-size:15px;color:var(--muted)}.contact-box{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-bottom:85px}.contact-card{padding:38px;background:var(--cream);border:1px solid var(--line);align-self:start}.email{font-size:clamp(18px,2.2vw,28px);text-underline-offset:7px}.form label{display:block;margin:18px 0 6px;font-size:13px}.form input,.form textarea,.form select{display:block;width:100%;padding:12px;border:1px solid var(--line);background:#fffaf4;color:var(--ink);border-radius:0;font:inherit}.form textarea{min-height:140px;resize:vertical}.form .btn{margin-top:22px}.form .small{margin-top:15px}.note{border-left:2px solid var(--copper);padding:10px 20px;font-size:14px;color:var(--muted)}:focus-visible{outline:3px solid var(--copper);outline-offset:5px}@media(max-width:800px){.wrap{width:calc(100% - 40px)}.nav{min-height:90px;position:relative}.wordmark{font-size:24px}.menu{display:block}.navlinks{display:none;position:absolute;top:90px;left:-20px;right:-20px;background:var(--paper);z-index:5;padding:24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.navlinks.open{display:flex}.hero{grid-template-columns:1fr;gap:35px;padding-top:45px;padding-bottom:45px}.hero-art{max-width:430px;width:100%;margin:auto}h1{font-size:57px}.section{padding:60px 0}.section-head{display:block}.section-head h2{margin-bottom:22px}.service-row{grid-template-columns:30px 1fr;gap:12px}.service-row p{grid-column:2}.split,.app-panel,.contact-box{grid-template-columns:1fr;gap:35px}.photo{min-height:350px;max-width:430px;width:100%;margin:auto}.app-panel{gap:0}.app-copy{padding:30px}.app-art{padding:32px}.cta .wrap{display:block}.cta .btn{margin-top:25px}.detail-grid,.steps{grid-template-columns:1fr}.pageintro{padding-top:45px}.ribbon .wrap{font-size:10px;gap:12px}.contact-card{padding:25px}.footer-grid{display:block}}

.service-star{color:#9b743f;font-size:21px;line-height:1;margin-bottom:16px!important}.service-row .num{color:#9b743f;font-size:20px}.detail ul{list-style:none;padding-left:0}.detail li{position:relative;padding-left:24px;margin:7px 0}.detail li::before{content:"✦";position:absolute;left:0;color:#9b743f;font-size:12px;top:2px}.photo svg{stroke:#927b65}.photo span{color:#705d4c}

.pageintro + section.split{align-items:start}.pageintro + section.split .photo{margin-top:12px}

:root{--gold:#ae7b18}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none;flex-shrink:0}.nav-logo{display:block;width:86px;height:86px;border-radius:50%;object-fit:cover;border:1px solid #cfb58d;box-shadow:0 3px 12px #5143390b}.nav{min-height:118px}.navlinks{gap:26px}
.detail li::before,.service-row .num,.service-star{color:var(--gold)}.detail li::before{font-size:14px;text-shadow:0 1px #ecd493}
.services-intro{max-width:none;padding-bottom:42px}.services-intro h1{max-width:900px}.services-intro .lead{max-width:730px}.service-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.service-shortcuts a{text-decoration:none;padding:8px 16px;border:1px solid #cdb993;border-radius:30px;font-size:12px;background:#f0e7d9}.service-shortcuts a:hover{background:#e4d3b8}
.services-page .detail-grid{gap:24px;align-items:stretch}.services-page .detail{background:#fffcf6;border:1px solid #dfd1bc;border-radius:5px;padding:29px 32px 27px;scroll-margin-top:25px;box-shadow:0 5px 16px #51433905}.services-page .detail:nth-child(4n+2),.services-page .detail:nth-child(4n+3){background:#eee4d6}.service-card-top{display:flex;align-items:center;gap:16px;margin-bottom:23px}.service-icon{width:42px;height:42px;stroke:#aa7a25;fill:none;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}.service-category{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#786347}.services-page .detail h3{font-size:35px;margin-bottom:16px}.services-page .detail p{margin-bottom:18px}.services-page .detail ul{border-top:1px solid #d8c8b0;padding-top:13px;margin-bottom:0}.services-page .detail li{margin:8px 0}.services-page .note{margin-top:34px}.services-page .steps article{border-top:2px solid #cba960}
@media(max-width:800px){.nav{min-height:102px}.nav-logo{width:66px;height:66px}.brand{gap:11px}.brand .wordmark{font-size:23px}.brand .wordmark small{font-size:8px;letter-spacing:4px}.navlinks{top:102px}.services-page .detail{padding:25px 23px}.services-page .detail h3{font-size:33px}.service-shortcuts a{font-size:11px;padding:8px 12px}}@media(max-width:360px){.nav-logo{width:54px;height:54px}.brand .wordmark{font-size:21px}.brand{gap:8px}}

/* A larger standalone logo gives the brand room without repeating its name. */
.nav{min-height:174px;padding-block:12px}.nav-logo{width:150px;height:150px}.brand{gap:0}
@media(max-width:800px){.nav{min-height:130px;padding-block:12px}.nav-logo{width:106px;height:106px}.navlinks{top:130px}}
@media(max-width:360px){.nav-logo{width:98px;height:98px}.nav{min-height:122px}.navlinks{top:122px}}

.nav-logo{border:2px solid #e0d7cd;box-shadow:0 3px 12px #51433908}

/* Small decorative accents keep the rose clear of the text. */
.rose-detail{position:relative;aspect-ratio:420/270;overflow:hidden;pointer-events:none;opacity:.32;filter:grayscale(1) contrast(3);mix-blend-mode:multiply;clip-path:polygon(0 0,76.19% 0,76.19% 86.67%,90.48% 86.67%,90.48% 0,100% 0,100% 100%,0 100%)}
.rose-detail img{position:absolute;width:119.0476%;max-width:none;height:auto;left:-9.5238%;top:-20.3704%;display:block}
.about-photo-column{min-width:0}.rose-below-photo{width:min(460px,100%);margin:32px auto 0}.services-intro{position:relative;padding-right:360px;min-height:345px}.rose-services-corner{position:absolute;right:0;top:74px;width:320px;opacity:.36}
@media(max-width:980px){.services-intro{padding-right:0}.rose-services-corner{position:relative;top:auto;right:auto;width:245px;margin:26px 0 0 auto}}
@media(max-width:800px){.rose-below-photo{max-width:330px;margin-top:24px}.about-photo-column .photo{margin-top:0!important}.rose-services-corner{width:215px;opacity:.36}}

/* Keep the original rose's warm line colour rather than washing it into grey. */
.rose-services-corner{filter:contrast(1.65);opacity:.68}
.about-biography{position:relative;isolation:isolate}
.rose-head-background{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:125%;aspect-ratio:109/92;overflow:hidden;pointer-events:none;z-index:-1;opacity:.18;mix-blend-mode:multiply;filter:contrast(1.65)}
.rose-head-background img{display:block;position:absolute;width:458.7156%;max-width:none;height:auto;left:-141.2844%;top:-63.0435%}
@media(max-width:800px){.rose-services-corner{opacity:.68}.rose-head-background{width:108%;opacity:.16}}

/* Trim the horizontal book-line tails while retaining both infinity loops. */
.rose-services-corner{clip-path:polygon(27.14% 0,61.9% 0,61.9% 87.04%,60.95% 87.04%,60.95% 100%,32.86% 100%,32.86% 87.04%,27.14% 87.04%)}
/* Give the header logo the same warm, softly pink beige treatment as the arch. */
.brand{background:#eee2dc;border-radius:50%}.nav-logo{mix-blend-mode:multiply;border-color:#d9c7bd;box-shadow:0 2px 10px #51433908}

/* Lighter beige with a subtle blush, rather than a pink-tinted badge. */
.brand{background:#f8f4ee}.nav-logo{border-color:#e3d9cf}
.personal-note{margin:28px 0 0;padding:31px 32px;background:#f0e9e1;border:1px solid #e2d5c8;border-radius:3px;text-align:center}.personal-note p{font:italic 26px/1.5 Georgia,serif;color:#695447;margin:0}
@media(max-width:800px){.personal-note{max-width:430px;margin:24px auto 0;padding:25px}.personal-note p{font-size:23px}}

/* A centred introduction followed by a wider, single-column biography. */
.about-single{padding-top:55px;padding-bottom:64px}.about-heading{text-align:center;max-width:1000px;margin:0 auto}.about-heading .eyebrow{margin-bottom:18px}.about-heading h1{font-size:clamp(43px,5vw,66px);line-height:1.08;letter-spacing:-1.2px;margin:0}.about-single .photo{width:320px;max-width:100%;min-height:330px;margin:32px auto 34px}.about-single .photo svg{width:145px;height:190px}.about-text{max-width:900px;margin:0 auto}.about-text .lead{max-width:830px;margin:0 auto 30px;text-align:center;font-size:18px}.about-text>p{line-height:1.8;color:var(--muted);margin-bottom:20px}.about-text .sign{color:var(--copper);margin-top:27px;margin-bottom:3px}.about-text .small{margin-bottom:0}
@media(max-width:800px){.about-single{padding-top:38px;padding-bottom:45px}.about-single .photo{width:260px;min-height:280px;margin:26px auto 28px}.about-heading h1{font-size:44px}.about-text .lead{font-size:17px}.about-text>p{line-height:1.75}}

.about-heading .lead{max-width:830px;margin:24px auto 0;text-align:center}.about-text h2{text-align:center;font-size:clamp(36px,4vw,50px);margin:0 0 30px}.about-how-work .steps h3{color:#9b743f}
@media(max-width:800px){.about-heading .lead{font-size:17px;margin-top:20px}.about-text h2{font-size:36px;margin-bottom:25px}}

footer .wordmark{color:#615043}footer .wordmark small{color:inherit}
.lets-chat .steps h3,.lets-chat .steps .eyebrow{color:#9b743f}.lets-chat .steps .eyebrow span{color:#9b743f;font-size:17px;vertical-align:-1px;margin-right:5px}

.contact-page .pageintro{max-width:740px;padding-bottom:18px}.contact-page .contact-box{display:block;max-width:740px;padding-bottom:65px}.contact-page .form label:first-of-type{margin-top:0}

.actual-app-preview{padding:28px;background:#713c3b;min-width:0}.app-screen{width:100%;margin:0;background:#fffaf0;border:1px solid #e4d8c1;border-radius:8px;overflow:hidden;box-shadow:0 12px 30px #351d2530}.app-screen-bar{display:flex;align-items:center;gap:5px;padding:10px 12px;background:#f1e8dc;border-bottom:1px solid #dfd4c2}.app-screen-bar>span{width:5px;height:5px;border-radius:50%;background:#b9a894}.app-screen-bar small{font-size:9px;color:#766558;margin-left:6px;letter-spacing:.2px}.app-screen-crop{width:100%;aspect-ratio:1200/405;overflow:hidden;background:#fffaf0}.app-screen-crop img{display:block;width:100%;height:auto}.app-screen figcaption{font-size:10px;text-align:center;color:#766558;padding:14px 10px;border-top:1px solid #e6dbc9;background:#fffaf0}
@media(max-width:800px){.actual-app-preview{padding:25px;min-height:240px}}
