*,*::before,*::after{box-sizing:border-box}
:root{
--brand-primary:#C8806F;--brand-primary-dark:#B06A59;--brand-secondary:#DCC2BB;
--brand-tertiary:#F7EDE9;--brand-cream:#FFFBF4;--brand-ink:#2A211E;--brand-ink-soft:#5C4B45;
--brand-white:#fff;--footer-bg:#8F5648;--radius:16px;--maxw:1180px;
--shadow:0 2px 8px rgba(42,33,30,.06),0 12px 32px rgba(42,33,30,.07);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--brand-cream);color:var(--brand-ink);
font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:17px;line-height:1.7;
-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand-primary-dark)}
h1,h2,h3,h4{font-family:'Yeseva One',Georgia,serif;font-weight:400;line-height:1.18;
letter-spacing:.005em;margin:0 0 .5em;color:var(--brand-ink)}
h1{font-size:clamp(2.1rem,5.2vw,3.5rem)}
h2{font-size:clamp(1.65rem,3.6vw,2.5rem)}
h3{font-size:clamp(1.15rem,2vw,1.4rem)}
.eyebrow{font-family:'Fraunces',Georgia,serif;font-size:.82rem;letter-spacing:.18em;
text-transform:uppercase;color:var(--brand-primary-dark);margin:0 0 .7rem;font-weight:600}
.lead{font-size:clamp(1.02rem,1.5vw,1.16rem);color:var(--brand-ink-soft);max-width:62ch}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.narrow{max-width:820px}
section{padding:clamp(52px,7vw,92px) 0}
.band-tertiary{background:var(--brand-tertiary)}
.band-secondary{background:var(--brand-secondary)}
.band-white{background:var(--brand-white)}
.center{text-align:center}
.section-head{max-width:720px;margin:0 auto clamp(30px,4vw,52px);text-align:center}
.section-head .lead{margin-inline:auto}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
padding:.85rem 1.6rem;border-radius:999px;font-weight:600;font-size:.98rem;
text-decoration:none;border:2px solid transparent;cursor:pointer;
transition:transform .18s ease,box-shadow .18s ease,background .18s ease;min-height:48px}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--brand-primary);color:#fff;box-shadow:0 6px 18px rgba(200,128,111,.32)}
.btn-primary:hover{background:var(--brand-primary-dark)}
.btn-ghost{background:transparent;color:var(--brand-ink);border-color:var(--brand-primary)}
.btn-ghost:hover{background:var(--brand-primary);color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}
.center .btn-row,.section-head .btn-row{justify-content:center}
/* header */
header.site{position:sticky;top:0;z-index:60;background:rgba(255,251,244,.94);
backdrop-filter:blur(10px);border-bottom:1px solid rgba(200,128,111,.18)}
.hdr{display:flex;align-items:center;gap:18px;min-height:82px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:60px;width:auto}
nav.main{margin-left:auto;display:flex;align-items:center;gap:6px}
nav.main a{color:var(--brand-ink);text-decoration:none;font-weight:500;font-size:.95rem;
padding:.5rem .7rem;border-radius:10px;white-space:nowrap}
nav.main a:hover{background:var(--brand-tertiary);color:var(--brand-primary-dark)}
.has-menu{position:relative}
.has-menu>button{background:none;border:0;font:inherit;font-weight:500;font-size:.95rem;
color:var(--brand-ink);cursor:pointer;padding:.5rem .7rem;border-radius:10px;
display:inline-flex;align-items:center;gap:.32rem}
.has-menu>button:hover{background:var(--brand-tertiary);color:var(--brand-primary-dark)}
.menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:14px;
box-shadow:var(--shadow);padding:8px;min-width:262px;display:none;
border:1px solid rgba(200,128,111,.16);max-height:70vh;overflow:auto}
.menu.open{display:block}
.menu a{display:block;padding:.5rem .7rem;font-size:.92rem}
.tel-link{font-weight:600;color:var(--brand-primary-dark)!important}
.hamburger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:10px;
min-width:48px;min-height:48px}
.hamburger span{display:block;width:26px;height:2px;background:var(--brand-ink);margin:5px 0;
transition:.25s}
#mobile-nav{display:none;border-top:1px solid rgba(200,128,111,.18);background:var(--brand-cream);
max-height:78vh;overflow:auto}
#mobile-nav.open{display:block}
#mobile-nav .inner{padding:16px 22px 30px}
#mobile-nav a{display:block;padding:.62rem 0;color:var(--brand-ink);text-decoration:none;
border-bottom:1px solid rgba(200,128,111,.14);font-size:1rem}
#mobile-nav .grp{font-family:'Fraunces',serif;text-transform:uppercase;letter-spacing:.14em;
font-size:.74rem;color:var(--brand-primary-dark);margin:18px 0 4px;font-weight:600}
/* hero */
.hero{position:relative;min-height:clamp(460px,66vh,660px);display:flex;align-items:center;
overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;
background:linear-gradient(100deg,rgba(42,33,30,.74) 0%,rgba(42,33,30,.52) 46%,rgba(42,33,30,.24) 100%)}
.hero .wrap{position:relative;z-index:2;padding-top:56px;padding-bottom:56px}
.hero h1,.hero p{color:#fff}
.hero h1{max-width:16ch;text-shadow:0 2px 22px rgba(0,0,0,.32)}
.hero p.lead{color:rgba(255,255,255,.94);max-width:52ch}
.page-hero{background:var(--brand-tertiary);padding:clamp(48px,6vw,76px) 0 clamp(40px,5vw,60px);
border-bottom:1px solid rgba(200,128,111,.16)}
/* trust strip */
.trust-strip{background:var(--brand-primary);color:#fff;padding:16px 0}
.trust-strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
justify-content:center;gap:10px 38px;font-size:.9rem;font-weight:500}
.trust-strip li::before{content:"\2713";margin-right:.5rem;opacity:.85}
/* grids */
.grid{display:grid;gap:26px}
.g3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 6px 14px rgba(42,33,30,.08),0 20px 46px rgba(42,33,30,.12)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.card h3{margin-bottom:.28em}
.card .price{font-family:'Fraunces',serif;color:var(--brand-primary-dark);font-weight:600;
margin:0 0 .6rem;font-size:.98rem}
.card p{margin:0 0 1.1rem;color:var(--brand-ink-soft);font-size:.96rem;flex:1}
.card .more{font-weight:600;text-decoration:none;color:var(--brand-primary-dark);font-size:.94rem}
.card .more:hover{text-decoration:underline}
/* steps */
.steps{counter-reset:s;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.step{text-align:center}
.step .num{width:60px;height:60px;border-radius:50%;background:var(--brand-primary);color:#fff;
display:flex;align-items:center;justify-content:center;font-family:'Yeseva One',serif;
font-size:1.5rem;margin:0 auto 18px}
.step p{color:var(--brand-ink-soft);margin:0}
/* split */
.split{display:grid;gap:clamp(28px,4vw,56px);align-items:center;
grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.split img{border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}
/* pricing tables */
.ptable{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);
overflow:hidden;box-shadow:var(--shadow);margin:0 0 26px}
.ptable caption{caption-side:top;text-align:left;font-family:'Fraunces',serif;font-weight:600;
padding:18px 20px 10px;color:var(--brand-ink);font-size:1.05rem}
.ptable th,.ptable td{padding:13px 20px;text-align:left;border-bottom:1px solid rgba(200,128,111,.16);
font-size:.96rem}
.ptable tr:last-child td{border-bottom:0}
.ptable td:last-child{text-align:right;font-weight:600;color:var(--brand-primary-dark);white-space:nowrap}
.ptable thead th{background:var(--brand-tertiary);font-family:'Fraunces',serif;font-weight:600}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* memberships */
.tiers{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}
.tier{background:#fff;border-radius:var(--radius);padding:26px 24px 28px;box-shadow:var(--shadow);
border-top:5px solid var(--brand-primary);display:flex;flex-direction:column}
.tier h3{font-size:1.22rem;margin-bottom:.2em}
.tier .freq{font-size:.86rem;color:var(--brand-ink-soft);margin:0 0 .3rem}
.tier .save{display:inline-block;background:var(--brand-tertiary);color:var(--brand-primary-dark);
font-size:.76rem;font-weight:600;padding:.24rem .7rem;border-radius:999px;margin-bottom:1rem}
.tier dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;font-size:.93rem}
.tier dt{color:var(--brand-ink-soft)}
.tier dd{margin:0;font-weight:600;text-align:right}
/* gallery */
.gal{columns:3 260px;column-gap:16px}
.gal img{width:100%;margin:0 0 16px;border-radius:12px;break-inside:avoid;box-shadow:var(--shadow)}
.gal-strip{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.gal-strip img{aspect-ratio:1;object-fit:cover;border-radius:12px}
/* team */
.person{background:#fff;border-radius:var(--radius);padding:26px 22px;text-align:center;
box-shadow:var(--shadow)}
.person .mono-img{width:180px;height:180px;border-radius:50%;object-fit:cover;margin:0 auto 16px;
border:3px solid var(--brand-secondary);display:block}
.person .mono{width:84px;height:84px;border-radius:50%;margin:0 auto 16px;
background:var(--brand-tertiary);color:var(--brand-primary-dark);display:flex;align-items:center;
justify-content:center;font-family:'Yeseva One',serif;font-size:1.65rem;
border:2px solid var(--brand-secondary)}
.person h3{font-size:1.1rem;margin-bottom:.18em}
.person .role{font-family:'Fraunces',serif;color:var(--brand-primary-dark);font-size:.9rem;
margin:0 0 .5rem}
.person p.note{font-size:.88rem;color:var(--brand-ink-soft);margin:0}
/* faq */
.faq{max-width:820px;margin:0 auto}
.faq details{background:#fff;border-radius:12px;margin-bottom:12px;box-shadow:var(--shadow);
overflow:hidden}
.faq summary{cursor:pointer;padding:18px 22px;font-weight:600;list-style:none;
display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:48px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:'Yeseva One',serif;color:var(--brand-primary);
font-size:1.4rem;line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 22px 20px;color:var(--brand-ink-soft)}
/* reviews + map */
.reviews-wrap{width:100%;min-height:600px;padding-bottom:50px}
.map-embed iframe{width:100%;height:430px;border:0;border-radius:var(--radius);
box-shadow:var(--shadow);display:block}
.form-card{background:#fff;border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}
/* areas list */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.chips a{display:inline-block;background:#fff;border:1px solid rgba(200,128,111,.28);
padding:.5rem 1rem;border-radius:999px;text-decoration:none;color:var(--brand-ink);font-size:.92rem}
.chips a:hover{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}
/* cta band */
.cta-band{background:var(--brand-primary);color:#fff;text-align:center}
.cta-band h2,.cta-band p{color:#fff}
.cta-band .btn-ghost{border-color:#fff;color:#fff}
.cta-band .btn-ghost:hover{background:#fff;color:var(--brand-primary-dark)}
.cta-band .btn-primary{background:#fff;color:var(--brand-primary-dark);box-shadow:none}
.cta-band .btn-primary:hover{background:var(--brand-tertiary)}
/* footer */
footer.site{background:var(--footer-bg);color:var(--brand-cream);padding:60px 0 0}
footer.site a{color:var(--brand-cream);text-decoration:none}
footer.site a:hover{text-decoration:underline}
.fgrid{display:grid;gap:36px;grid-template-columns:1.5fr 1fr 1fr 1.2fr}
footer .flogo{height:62px;width:auto;margin-bottom:16px}
footer h4{font-family:'Fraunces',serif;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;
color:var(--brand-secondary);margin:0 0 1rem}
footer ul{list-style:none;padding:0;margin:0;font-size:.93rem}
footer li{margin-bottom:.5rem}
footer p{font-size:.93rem;color:rgba(255,251,244,.86);margin:0 0 1rem}
.socials{display:flex;gap:12px;margin-top:16px}
.socials a{width:40px;height:40px;border-radius:50%;background:rgba(255,251,244,.14);
display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;
letter-spacing:.02em}
.socials a:hover{background:var(--brand-cream);color:var(--footer-bg);text-decoration:none}
.fbottom{border-top:1px solid rgba(255,251,244,.2);margin-top:44px;padding:20px 0;
display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between;font-size:.85rem;
color:rgba(255,251,244,.8)}
/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
.reveal{opacity:1;transform:none;transition:none}
html{scroll-behavior:auto}
.btn:hover,.card:hover{transform:none}}
@media(max-width:980px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
nav.main{display:none}
.hamburger{display:block}
.brand img{height:48px}
.hdr{min-height:68px}}
@media(max-width:620px){
.fgrid{grid-template-columns:1fr}
.gal{columns:2 150px}
body{font-size:16px}}
/* hidden-page shell */
body.bare{background:var(--brand-tertiary);display:flex;align-items:center;
justify-content:center;min-height:100vh;padding:40px 20px}
.bare-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);
padding:clamp(28px,5vw,48px);max-width:640px;width:100%}

/* per-image crop focal points */
img{object-position:center}
img[src="/images/akita-lying-grass-by-lake.jpg"]{object-position:52% 36%}
img[src="/images/aussie-mix-leash-street.jpg"]{object-position:53.4% 39.9%}
img[src="/images/aussie-mix-lying-grass-blue-eyes.jpg"]{object-position:57% 26%}
img[src="/images/australian-shepherd-sitting-street.jpg"]{object-position:45.8% 25.2%}
img[src="/images/black-lab-and-yellow-lab-patio.jpg"]{object-position:60% 22%}
img[src="/images/black-white-cat-peeking-railing.jpg"]{object-position:51.5% 22.1%}
img[src="/images/boxer-dog-harness-sitting.jpg"]{object-position:57% 30%}
img[src="/images/brown-pit-outdoor-leash-under-tree.jpg"]{object-position:48% 24%}
img[src="/images/brown-white-doodle-grass-happy.jpg"]{object-position:57% 28%}
img[src="/images/bulldog-puppy-closeup-tongue.jpg"]{object-position:53.2% 32.0%}
img[src="/images/bulldog-puppy-patio.jpg"]{object-position:49.3% 35.4%}
img[src="/images/bulldog-running-grass-leash.jpg"]{object-position:48.7% 39.1%}
img[src="/images/calico-cat-on-bed.jpg"]{object-position:42.1% 16.5%}
img[src="/images/cat-and-small-dog-on-rug.jpg"]{object-position:55% 42%}
img[src="/images/cat-in-cat-tree-indoor.jpg"]{object-position:33% 32%}
img[src="/images/chihuahua-mix-sidewalk-walk.jpg"]{object-position:72% 28%}
img[src="/images/corgi-on-neighborhood-walk.jpg"]{object-position:47% 18%}
img[src="/images/curly-brown-white-dog-leash-grass.jpg"]{object-position:53% 22%}
img[src="/images/dog-belly-up-on-couch-blanket.jpg"]{object-position:26% 28%}
img[src="/images/dog-cozy-in-blanket-indoor.jpg"]{object-position:57% 48%}
img[src="/images/dog-with-blue-letter-toy.jpg"]{object-position:45% 45%}
img[src="/images/doodle-at-front-door.jpg"]{object-position:47% 45%}
img[src="/images/doodle-with-ball-patio.jpg"]{object-position:46.9% 42.0%}
img[src="/images/golden-retriever-holding-ball.jpg"]{object-position:57.9% 40.0%}
img[src="/images/goldendoodle-dirt-with-toy.jpg"]{object-position:50% 25%}
img[src="/images/goldendoodle-drinking-from-cup.jpg"]{object-position:48% 26%}
img[src="/images/goldendoodle-in-car-window.jpg"]{object-position:54% 24%}
img[src="/images/goldendoodle-running-dog-park.jpg"]{object-position:63% 30%}
img[src="/images/gray-cat-given-treat-stick.jpg"]{object-position:48% 32%}
img[src="/images/gray-pit-lying-outdoor-daybed.jpg"]{object-position:48% 50%}
img[src="/images/gray-pitbull-closeup-paws-cushion.jpg"]{object-position:52% 42%}
img[src="/images/gray-tabby-cat-on-couch.jpg"]{object-position:72% 40%}
img[src="/images/gray-white-cat-sitting-carpet.jpg"]{object-position:63% 28%}
img[src="/images/husky-closeup-blue-eyes.jpg"]{object-position:55% 40%}
img[src="/images/labradoodle-being-petted.jpg"]{object-position:57% 38%}
img[src="/images/orange-cat-and-gray-pit-indoor.jpg"]{object-position:68% 35%}
img[src="/images/orange-cat-santa-hat-indoor.jpg"]{object-position:55% 45%}
img[src="/images/orange-tabby-cat-lying-dark-surface.jpg"]{object-position:54.5% 45.7%}
img[src="/images/person-holding-two-kittens-in-car.jpg"]{object-position:63.2% 19.4%}
img[src="/images/person-hugging-golden-retriever.jpg"]{object-position:40% 36%}
img[src="/images/person-with-black-dog-doorway.jpg"]{object-position:44% 24%}
img[src="/images/person-with-poodle-mix-patio.jpg"]{object-position:43.8% 22.1%}
img[src="/images/person-with-two-curly-dogs-a.jpg"]{object-position:42% 22%}
img[src="/images/person-with-two-curly-dogs-b.jpg"]{object-position:42% 22%}
img[src="/images/person-with-two-white-retrievers-a.jpg"]{object-position:58.9% 17.8%}
img[src="/images/person-with-two-white-retrievers-b.jpg"]{object-position:52% 30%}
img[src="/images/pitbull-walking-leash.jpg"]{object-position:52% 30%}
img[src="/images/schnauzer-neighborhood-walk.jpg"]{object-position:30% 45%}
img[src="/images/senior-shepherd-mix-walk.jpg"]{object-position:42% 26%}
img[src="/images/shaggy-dog-lying-grass-with-toy.jpg"]{object-position:57% 26%}
img[src="/images/siamese-cat-sitting-wood-floor.jpg"]{object-position:45% 38%}
img[src="/images/siamese-cat-with-pompom-toy.jpg"]{object-position:35% 58%}
img[src="/images/small-black-tan-dog-sidewalk.jpg"]{object-position:63.4% 40.3%}
img[src="/images/small-white-dog-treat-time.jpg"]{object-position:71.6% 39.8%}
img[src="/images/spotted-dog-sitting-grass-harness.jpg"]{object-position:57% 30%}
img[src="/images/tan-dog-sitting-patio-pink-harness.jpg"]{object-position:50.3% 38.6%}
img[src="/images/tan-lab-mix-sitting.jpg"]{object-position:48% 30%}
img[src="/images/tan-pit-mix-leash-sidewalk.jpg"]{object-position:62% 42%}
img[src="/images/tan-white-dog-in-greenery-happy.jpg"]{object-position:47% 32%}
img[src="/images/team-danna-rapoport-avatar.jpg"]{object-position:50% 50%}
img[src="/images/team-danna-rapoport.jpg"]{object-position:41% 22%}
img[src="/images/team-emma-barr-avatar.jpg"]{object-position:50% 50%}
img[src="/images/team-emma-barr.jpg"]{object-position:40% 19%}
img[src="/images/team-katie-wilson-avatar.jpg"]{object-position:50% 50%}
img[src="/images/team-katie-wilson.jpg"]{object-position:42% 22%}
img[src="/images/team-lia-munoz-avatar.jpg"]{object-position:50% 50%}
img[src="/images/team-lia-munoz.jpg"]{object-position:43.6% 22.2%}
img[src="/images/team-miranda-davis-avatar.jpg"]{object-position:50% 50%}
img[src="/images/team-miranda-davis.jpg"]{object-position:66.5% 33.6%}
img[src="/images/terrier-and-beagle-mix-duo-walk.jpg"]{object-position:48% 42%}
img[src="/images/terrier-neighborhood-walk.jpg"]{object-position:55% 38%}
img[src="/images/two-cats-cuddling-patio-tile.jpg"]{object-position:42% 33%}
img[src="/images/two-cats-near-christmas-tree.jpg"]{object-position:48% 52%}
img[src="/images/two-dogs-leash-grass.jpg"]{object-position:43.6% 49.1%}
img[src="/images/two-dogs-park-houses-bg.jpg"]{object-position:43% 40%}
img[src="/images/two-doodles-on-bench.jpg"]{object-position:57% 38%}
img[src="/images/two-doodles-walking-leash-park.jpg"]{object-position:45% 44%}
img[src="/images/two-labs-sitting-sidewalk.jpg"]{object-position:45% 33%}
img[src="/images/two-schnauzers-in-pet-stroller.jpg"]{object-position:48% 34%}
img[src="/images/two-white-retriever-pups-turf.jpg"]{object-position:46% 47%}
img[src="/images/walker-pov-three-dogs-on-leash.jpg"]{object-position:52% 42%}
img[src="/images/wheaten-terrier-running-leash-grass.jpg"]{object-position:68% 40%}
img[src="/images/white-curly-dog-outdoor-leash.jpg"]{object-position:53% 35%}
img[src="/images/white-curly-dog-park.jpg"]{object-position:57% 30%}
img[src="/images/white-longhair-cat-blue-eyes-indoor.jpg"]{object-position:48% 32%}
img[src="/images/white-pit-type-closeup-tongue-grass.jpg"]{object-position:52% 45%}
img[src="/images/white-poodle-lake-walk.jpg"]{object-position:50% 38%}
img[src="/images/yorkie-leash-grass.jpg"]{object-position:48% 35%}
