:root{
  --teal:#147C8F; --teal-deep:#0E5F6E; --navy:#16132C; --ink:#2C2A40; --butter:#FBE7AE; --cream:#FFFBF1; --sand:#F4E9D2; --line:#E5DAC2;
  --head:"Fraunces",Georgia,serif; --body:"Figtree",system-ui,sans-serif;
  --wrap:1160px; --gutter:clamp(16px,4vw,36px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1.08rem/1.65 var(--body)}
img{display:block;max-width:100%;height:auto}
a{color:var(--teal-deep)}
h1,h2,h3{font-family:var(--head);font-weight:600;line-height:1.14;color:var(--navy);margin:0;font-optical-sizing:auto}
h2{font-size:clamp(1.95rem,3.6vw,2.7rem)}
h3{font-size:clamp(1.3rem,2vw,1.5rem)}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}

.btn{display:inline-block;font:600 1.02rem/1 var(--body);text-decoration:none;padding:15px 24px;border-radius:999px;background:var(--teal-deep);color:#fff;border:2px solid var(--teal-deep);transition:background .15s,color .15s;cursor:pointer}
.btn:hover{background:var(--navy);border-color:var(--navy)}
.btn.ghost{background:transparent;color:var(--teal-deep)}
.btn.ghost:hover{background:var(--teal-deep);color:#fff}
.btn.light{background:var(--butter);border-color:var(--butter);color:var(--navy)}
.btn.light:hover{background:#fff;border-color:#fff}
.more{font-weight:600;text-decoration:none}
.more:hover{text-decoration:underline}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:1px solid var(--line)}
.header-in{display:flex;align-items:center;gap:20px;min-height:78px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);flex:none}
.brand img{width:52px;height:52px}
.brand b{font:600 1.28rem/1.1 var(--head);display:block}
.brand small{font:400 .8rem/1.2 var(--body);display:block;color:var(--ink)}
.primary{margin-left:auto}
.primary ul{list-style:none;margin:0;padding:0;display:flex;gap:2px}
.primary a{display:block;font-weight:500;text-decoration:none;color:var(--ink);padding:9px 13px;border-radius:8px}
.primary a:hover{background:var(--sand)}
.primary a[aria-current=page]{color:var(--teal-deep);font-weight:700}
.header-actions{display:flex;align-items:center;gap:10px}
.call-now{padding:13px 19px;font-size:.98rem;white-space:nowrap}
.nav-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0;cursor:pointer}
.nav-toggle span{display:block;width:21px;height:2px;background:var(--navy);margin:5px auto;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Home hero */
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center;padding-block:clamp(36px,5vw,64px)}
.eyebrow{font-weight:600;color:var(--teal-deep);margin-bottom:12px}
h1{font-size:clamp(2.7rem,6vw,4.6rem)}
.hero .lede{font-size:clamp(1.12rem,1.5vw,1.26rem);max-width:32em;margin:20px 0 26px}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.arch{background:var(--butter);border-radius:999px 999px 18px 18px;padding:14px 14px 0;justify-self:center;width:min(100%,420px)}
.arch img{width:100%;aspect-ratio:4/4.7;object-fit:cover;object-position:56% 50%;border-radius:999px 999px 8px 8px}
.trust{background:var(--sand)}
.trust ul{list-style:none;margin:0;padding:16px 0;display:flex;flex-wrap:wrap;gap:6px 34px;justify-content:space-between;font-weight:600;color:var(--navy);font-size:1rem}

/* Sections */
.block{padding-block:clamp(48px,7vw,84px)}
.block.tint{background:var(--sand)}
.head{max-width:40rem;margin-bottom:clamp(26px,4vw,40px)}
.head p{margin:12px 0 0;font-size:1.12rem}
.page-head{background:var(--teal);color:#fff;padding-block:clamp(40px,6vw,68px) clamp(30px,4vw,44px)}
.page-head h1{color:#fff;font-size:clamp(2.4rem,5vw,3.7rem)}
.page-head p{margin:14px 0 0;font-size:1.16rem;max-width:36em}
.wave{display:block;width:100%;height:clamp(28px,4vw,54px);background:var(--cream);margin-top:-2px;position:relative}
.wave.to-sand{background:var(--sand)}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,28px)}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card-in{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.card h3{margin-bottom:8px}
.card p{font-size:1.02rem}
.card .more{margin-top:auto}
.card.plain{background:var(--teal);border-color:var(--teal);color:#fff;justify-content:center}
.card.plain h3{color:#fff}

/* Split rows */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,5vw,60px);align-items:center}
.split img{border-radius:16px;width:100%;aspect-ratio:4/3;object-fit:cover}
.split h2{margin-bottom:14px}
.service{padding-block:clamp(36px,5vw,56px);border-top:1px solid var(--line);scroll-margin-top:80px}
.service:first-child{border-top:0;padding-top:0}
.service:nth-child(even) img{order:2}
.service h2{font-size:clamp(1.7rem,3vw,2.2rem)}
.service ul{padding-left:1.2em;margin:0 0 1em}
.fine{font-size:.95rem;color:#4b4960}

.values{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,36px)}
.values h3{margin-bottom:6px}
.values p{margin:0}

/* Reviews */
.quotes{columns:2;column-gap:24px}
.quote{break-inside:avoid;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin:0 0 24px}
.quote footer{font-weight:700;color:var(--navy)}
.quote footer span{font-weight:400}
.cards .quote{margin:0}

/* About */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0}
.gallery figure{margin:0}
.gallery img{border-radius:14px;width:100%;aspect-ratio:1.1;object-fit:cover}
.gallery figcaption{font-size:.96rem;padding-top:7px}
.creds{list-style:none;padding:0;margin:0}
.creds li{padding:10px 0;border-bottom:1px solid var(--line);font-weight:600;color:var(--navy)}
.member{display:flex;gap:22px;align-items:center;margin-top:24px}
.member img{width:96px;height:auto}

/* Reading your dog */
.reader{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(26px,5vw,60px);align-items:center}
.dog-box{background:var(--butter);border-radius:50%;aspect-ratio:1;width:100%;max-width:400px;justify-self:center}
#dog{width:100%;height:100%;display:block}
.eyes,.mouth{display:none}
[data-mood=relaxed] .e-soft,[data-mood=relaxed] .m-smile,
[data-mood=lick] .e-open,[data-mood=lick] .m-lick,
[data-mood=yawn] .e-shut,[data-mood=yawn] .m-yawn,
[data-mood=whale] .e-whale,[data-mood=whale] .m-closed,
[data-mood=worried] .e-open,[data-mood=worried] .m-closed{display:inline}
.ear{transition:transform .3s;transform-box:fill-box}
.ear-l{transform-origin:100% 0}.ear-r{transform-origin:0 0}
[data-mood=worried] .ear-l{transform:rotate(26deg) translate(16px,20px)}
[data-mood=worried] .ear-r{transform:rotate(-26deg) translate(-16px,20px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.chip{font:600 .98rem/1.1 var(--body);padding:11px 15px;border-radius:999px;border:1px solid var(--teal-deep);background:#fff;color:var(--teal-deep);cursor:pointer}
.chip[aria-pressed=true]{background:var(--teal-deep);color:#fff}
.answer{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px;min-height:11.5rem}
.answer h3{margin-bottom:8px}
.answer p{margin:0}
.note{font-size:.98rem;margin-top:16px}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,60px);align-items:start}
.phone{display:inline-block;font:600 clamp(1.8rem,3.4vw,2.4rem)/1.1 var(--head);text-decoration:none;margin-bottom:16px}
dl{margin:0}
dt{font-weight:700;color:var(--navy)}
dd{margin:0 0 12px}
form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(20px,3vw,32px)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
label{display:block;font-weight:600;color:var(--navy);margin-bottom:14px}
input,textarea{display:block;width:100%;margin-top:5px;font:400 1.04rem/1.4 var(--body);padding:11px 13px;border:1px solid #BDB29A;border-radius:10px;background:#fff;color:var(--navy)}
textarea{min-height:130px;resize:vertical}
.form-note{font-size:.94rem;margin:12px 0 0}

/* Call to action + footer */
.band{background:var(--teal);color:#fff;text-align:center}
.band h2{color:#fff;margin-bottom:10px}
.band p{font-size:1.14rem;margin-bottom:22px}
.band .wrap{padding-block:clamp(44px,6vw,68px)}
.site-footer{background:var(--navy);color:#EDE9DC;padding-block:40px 26px;font-size:1rem}
.site-footer a{color:inherit}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:26px}
.site-footer b.name{font:600 1.3rem/1.2 var(--head);display:block;color:#fff;margin-bottom:6px}
.site-footer h3{font:700 1rem/1.3 var(--body);color:#fff;margin-bottom:8px}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:4px}
.copy{margin:26px 0 0;padding-top:16px;border-top:1px solid #3a3752;font-size:.92rem}

@media (max-width:980px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .primary{position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);display:none;margin:0;padding:8px var(--gutter) 14px}
  .primary.open{display:block}
  .primary ul{flex-direction:column}
  .primary a{font-size:1.12rem;padding:11px 10px}
  .header-actions{margin-left:auto}
  .nav-toggle{display:block;order:1}
  .header-actions .call-now{order:2}
}
@media (max-width:760px){
  .hero .wrap,.split,.reader,.contact-grid{grid-template-columns:1fr}
  .service:nth-child(even) img{order:0}
  .arch{width:min(86%,340px)}
  .values,.gallery{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .quotes{columns:1}
  .answer{min-height:13rem}
  .dog-box{max-width:300px}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .brand img{width:44px;height:44px}
  .brand b{font-size:1.08rem}
  .brand small{display:none}
  .header-in{gap:8px;min-height:68px}
  .call-now{padding:12px 13px;font-size:.92rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
