@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ink:#382447;--purple:#71498b;--lilac:#ede4f2;--paper:#fcfafc;--muted:#716579;--line:#dfd3e5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}a,button{transition:background .2s,color .2s,transform .2s}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a871bf;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.13}h1{font-size:clamp(46px,5.9vw,82px);letter-spacing:-2px;margin-bottom:27px}h2{font-size:clamp(34px,3.6vw,49px);letter-spacing:-1px;margin-bottom:24px}h3{font-size:27px}em{font-weight:400;color:var(--purple)}p{color:var(--muted)}.topline{padding:8px 5%;background:var(--purple);color:white;font-size:10px;letter-spacing:2px;display:flex;justify-content:space-between}header{display:flex;align-items:center;justify-content:space-between;padding:25px 5%;gap:25px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:20px;line-height:1.3;letter-spacing:1.6px}.brand small{display:block;font-family:Arial,sans-serif;letter-spacing:3.5px;font-size:8px;margin-top:6px}.seal{display:grid;place-items:center;border:1px solid #b3a0bf;border-radius:50%;width:48px;height:48px;font-size:19px;letter-spacing:-3px;padding-right:3px}nav{display:flex;gap:26px;font-size:13px}nav a:hover,.textlink:hover{color:#9966b5}.navcall{font-size:13px;border:1px solid var(--line);padding:10px 18px;border-radius:30px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:655px;background:#f2ecf6}.herotext{padding:60px 8% 38px 10%}.small{display:block;font-size:10px;font-family:'DM Sans',Arial,sans-serif;font-weight:600;letter-spacing:2px;text-transform:uppercase;margin-bottom:20px}.herotext p{max-width:420px;font-size:16px}.heroimage{position:relative;min-height:580px}.heroimage>img{height:100%;width:100%;object-fit:cover;position:absolute}.heroimage:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f2ecf6 0%,transparent 18%)}.photolabel{position:absolute;z-index:1;bottom:36px;right:36px;display:flex;gap:18px;align-items:center;background:#fffcf5e8;border:1px solid white;padding:20px 28px;border-radius:4px}.photolabel>span{font-family:Georgia;font-size:30px;border-right:1px solid var(--line);padding-right:18px}.photolabel p{font-family:Georgia;font-size:20px;line-height:1.4;margin:0;color:var(--ink)}.actions{display:flex;align-items:center;gap:24px;margin:30px 0}.button{display:inline-block;border:0;background:var(--purple);color:white;padding:16px 25px;border-radius:4px;font:500 13px 'DM Sans',Arial;line-height:1.5;cursor:pointer}.button:hover{background:#57316e;transform:translateY(-2px)}.textlink{font-size:13px;text-decoration:underline;text-underline-offset:6px}.herobottom{border-top:1px solid #d7c8e0;padding-top:19px;font-size:9px;letter-spacing:1.6px;max-width:410px}.herobottom span{display:block;font-size:11px;letter-spacing:0;margin-top:4px;color:var(--muted)}.ribbon{padding:23px 7%;display:flex;gap:30px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);font-family:Georgia;font-size:19px}.ribbon b{font-size:19px;color:#b39bc1;font-weight:400}.section{padding:88px 7%}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:60px;margin-bottom:30px}.sectionhead p{max-width:340px;font-size:14px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{padding:30px 25px;border:1px solid var(--line);background:white;border-radius:10px;display:flex;flex-direction:column}.card .small{font-size:8px;letter-spacing:1.5px;color:var(--purple)}.card h3{font-size:25px}.card p{font-size:13px;line-height:1.7}.card .arrow{margin-top:auto;font-size:11px;padding-top:18px;color:var(--purple)}.card:hover{background:#f0e7f5;transform:translateY(-4px)}.story{display:grid;grid-template-columns:1fr 1fr;background:#eee4f3;align-items:center;gap:7%;padding:65px 7%}.story img{width:100%;height:470px;object-fit:cover;border-radius:160px 160px 5px 5px}.story p{font-size:15px}.frequency{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.frequency .card{padding:25px 20px}.frequency h3{font-size:25px}.areasection{margin:0 7%;padding:60px;background:#f1eaf5;display:grid;grid-template-columns:1.3fr 1fr;gap:80px;border-radius:12px}.citylist{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;align-content:start}.citylist a{border-bottom:1px solid #d7c8df;padding:18px 0;font-size:14px;display:flex;justify-content:space-between}.citylist a:hover{color:var(--purple);background:#ffffff60}.allcities{grid-template-columns:repeat(3,1fr);margin-bottom:35px}.faq{max-width:1000px;margin:auto}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-size:16px}details p{padding-top:18px;font-size:14px;margin-bottom:0}.cta{background:var(--purple);padding:65px 8%;display:flex;justify-content:space-between;align-items:center;gap:35px;color:white}.cta p{color:#e6d8ed}.cta h2{margin-bottom:18px}.light{background:#faf4fe;color:var(--ink)}.light:hover{background:white;color:var(--purple)}footer{padding:55px 7% 22px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}footer>.brand{display:block}footer p{font-size:12px}.footline{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;font-size:10px;color:var(--muted)}.footline span{float:right}.intro{text-align:center;padding:60px 10% 65px;background:#f0e8f5}.intro .back{display:block;font-size:11px;margin-bottom:40px;color:var(--muted)}.intro h1{font-size:clamp(43px,5vw,68px)}.intro p{max-width:680px;margin:0 auto}.detail{padding:70px 8%;display:grid;grid-template-columns:1.5fr 1fr;gap:75px;align-items:start}.detail p{font-size:15px}.detail h3{margin-top:30px}.detail aside{background:var(--lilac);border:1px solid var(--line);padding:35px;border-radius:12px}.detail aside h3{margin-top:0}.detailimg{width:100%;border-radius:12px}.checklist{list-style:none;padding:0}.checklist li{border-bottom:1px solid var(--line);padding:14px 0 14px 28px;position:relative;font-size:15px}.checklist li:before{content:'';position:absolute;left:0;color:var(--purple)}.lead{font-size:20px!important}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:17px}label{display:block;font-size:12px;margin-bottom:15px;font-weight:500}input,select,textarea{display:block;width:100%;border:1px solid #cdbbd6;border-radius:5px;background:white;padding:13px;font:14px 'DM Sans',Arial;color:var(--ink);margin-top:6px}input:focus,select:focus,textarea:focus{outline:2px solid #a77bbd}.smallprint{font-size:11px!important;margin-top:14px}.phone{font-size:23px}hr{border:0;border-top:1px solid #ccb9d8;margin:28px 0}#message-result{margin-top:25px;padding:25px;background:#eee4f3;border-radius:10px}#message-result .button{margin-top:15px}
@media(max-width:1000px){nav{gap:14px}.grid{grid-template-columns:repeat(2,1fr)}.frequency{grid-template-columns:repeat(3,1fr)}.herotext{padding-left:8%}.actions{flex-wrap:wrap;gap:20px}.areasection{gap:35px;padding:35px}.detail{gap:35px}.navcall{display:none}}
@media(max-width:650px){.topline{font-size:8px;letter-spacing:1px;justify-content:center}.topline span{display:none}header{padding:18px 6%;flex-wrap:wrap;gap:20px;justify-content:center}.brand{font-size:20px}nav{width:100%;justify-content:center;gap:22px;font-size:11px}.hero{display:flex;flex-direction:column}.herotext{padding:40px 7%}h1{font-size:59px}.herotext .small{font-size:8px}.heroimage{min-height:360px}.heroimage:after{background:linear-gradient(#f2ecf6,transparent 25%)}.photolabel{right:20px;bottom:20px;padding:14px 20px}.ribbon{padding:20px;gap:15px;flex-wrap:wrap;justify-content:center;font-size:16px}.ribbon b{display:none}.section{padding:55px 6%}.sectionhead{display:block}.sectionhead p{max-width:none}.grid{gap:12px}.card{padding:23px 17px}.card h3{font-size:23px}.story{grid-template-columns:1fr;padding:40px 6%;gap:35px}.story img{height:330px;border-radius:100px 100px 5px 5px}.frequency{grid-template-columns:1fr}.frequency .card{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.frequency .card .small{grid-column:1/-1}.frequency .card h3{grid-column:1}.frequency .card p{grid-column:2;grid-row:2/4}.areasection{margin:0 6%;padding:30px 23px;grid-template-columns:1fr;gap:25px}.allcities{grid-template-columns:1fr 1fr}.cta{padding:45px 7%;display:block}.cta .button{margin-top:12px}footer{grid-template-columns:1fr 1fr}footer>.brand{grid-column:1/-1}.footline span{display:block;float:none;margin-top:8px}.intro{padding:35px 6% 45px}.intro h1{font-size:45px}.detail{padding:45px 6%;grid-template-columns:1fr;gap:30px}.detail aside{padding:28px}.formgrid{gap:12px}.detail h2{font-size:35px}}
/* Photo-led cards and the Yessi identity */
.brand .founders{display:block;font-family:'DM Sans',Arial,sans-serif;font-size:9px;letter-spacing:.2px;margin-top:7px;color:var(--muted)}
.hero h1{font-size:clamp(48px,5.4vw,76px)}.hero h1 em{display:block}.hero-founders{color:var(--purple);font-size:17px!important;font-weight:500;margin-bottom:14px}.seal{letter-spacing:0;padding:0}
.card.photo-card{overflow:hidden}.card-photo{width:calc(100% + 50px);max-width:none;height:190px;object-fit:cover;margin:-30px -25px 24px}.frequency .card-photo{width:calc(100% + 40px);height:160px;margin:-25px -20px 22px}.photo-card:hover .card-photo{filter:brightness(1.04)}
@media(max-width:650px){.hero h1{font-size:53px}.brand .founders{font-size:9px}.card-photo{width:calc(100% + 34px);height:150px;margin:-23px -17px 20px}.frequency .card.photo-card{display:flex}.frequency .card-photo{height:200px}.hero-founders{font-size:16px!important}}

/* Full-width photographic hero, fading toward the text. */
.hero{position:relative;display:block;isolation:isolate;min-height:650px;background:#f2ecf6 url('images/hero-modern.jpg') center 55% / cover no-repeat}
.hero:before{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(247,242,250,.98) 0%,rgba(247,242,250,.94) 26%,rgba(247,242,250,.74) 44%,rgba(247,242,250,.20) 67%,rgba(247,242,250,0) 85%)}
.herotext{position:relative;z-index:1;width:56%;padding:70px 4% 55px 7%}.heroimage{position:absolute;inset:0;min-height:0;pointer-events:none;z-index:0}.heroimage>img,.heroimage:after{display:none}.photolabel{right:5%;bottom:35px}.hero h1{font-size:clamp(48px,5.4vw,76px)}
@media(max-width:650px){.hero{min-height:730px;background-position:64% center}.hero:before{background:linear-gradient(180deg,rgba(247,242,250,.98) 0%,rgba(247,242,250,.94) 35%,rgba(247,242,250,.65) 60%,rgba(247,242,250,.05) 90%)}.herotext{width:100%;padding:40px 7% 180px}.hero h1{font-size:51px}.heroimage{min-height:0}.photolabel{right:7%;bottom:22px}.checklist li{padding-left:0}}

.brand-logo{display:flex;flex-direction:column;align-items:center;gap:0;flex-shrink:0}.brand-logo>img{width:230px;height:auto;display:block}.brand-logo .founders{margin-top:0;font-size:10px}.footer-logo{display:block!important}.footer-logo img{width:260px;max-width:100%;height:auto}.photolabel .photo-icon{width:58px;height:58px;object-fit:contain}.photolabel{gap:14px}@media(max-width:650px){.brand-logo>img{width:220px}.footer-logo{grid-column:1/-1}.photolabel .photo-icon{width:48px;height:48px}}

/* Keep native iPhone date/time fields inside their grid cells. */
.detail>*{min-width:0}.formgrid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:18px;align-items:start}
#estimate{min-width:0;width:100%}#estimate label{min-width:0;max-width:100%;line-height:1.5;float:none;display:block;margin:0 0 12px}#estimate .full-width{grid-column:1/-1}
#estimate input,#estimate select,#estimate textarea{box-sizing:border-box;min-width:0;width:100%;max-width:100%;font-size:16px;display:block;float:none}
#estimate input[type=date],#estimate input[type=time]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;min-height:50px;line-height:1.5}#estimate input::-webkit-date-and-time-value{text-align:left;min-width:0}#estimate .formgrid{margin-bottom:18px}
@media(max-width:700px){.detail{grid-template-columns:minmax(0,1fr)}#estimate .formgrid{grid-template-columns:minmax(0,1fr);gap:16px}#estimate .full-width{grid-column:auto}#estimate h2{font-size:clamp(28px,8vw,36px);overflow-wrap:break-word}#estimate input,#estimate select{min-height:50px}}
