:root{--ink:#31212a;--red:#94242c;--pink:#f2c6cd;--paper:#fffdfb;--line:#d6c7c9;--soft:#f4eff0;--muted:#6c5961}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Arial,Helvetica,sans-serif}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:Georgia,'Times New Roman',serif;line-height:1.04;letter-spacing:-.055em}h1{font-size:clamp(3.2rem,6vw,6.3rem)}h2{font-size:clamp(2.4rem,4vw,4rem)}h3{font-size:1.5rem;line-height:1.2;letter-spacing:-.025em}em{font-weight:400;color:var(--red)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #246dc2;outline-offset:5px}button:disabled{opacity:.5;cursor:not-allowed}button{border:0}p{max-width:60ch}img{max-width:100%;display:block}figure img{width:100%;height:100%;object-fit:cover}figure{overflow:hidden}figcaption{font-size:.8rem;line-height:1.4}header{display:flex;align-items:center;gap:25px;padding:23px 4vw;border-bottom:1px solid var(--line);position:relative;z-index:5;background:var(--paper)}.concept{text-align:center;background:var(--ink);color:#fff;font-size:.75rem;letter-spacing:.1em;padding:6px 12px}.brand{line-height:1.15;flex-shrink:0}.brand>span{font-family:Georgia,serif;font-size:1.6rem;display:block;letter-spacing:-.035em}.brand em{display:block;font-size:1.08rem;letter-spacing:0}.brand small{display:block;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;margin-top:7px}.menu-toggle{width:26px;padding:7px 0;background:none;display:grid;gap:5px;flex-shrink:0}.menu-toggle span{height:2px;background:var(--ink);width:24px}header nav{display:flex;align-items:center;gap:22px;margin-left:auto;font-size:.88rem;white-space:nowrap}nav a{position:relative}header nav a:after{content:'';height:1px;bottom:-5px;left:0;width:0;position:absolute;background:var(--red);transition:width .2s}header nav a:hover:after,header nav a.active:after{width:100%}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--red);color:#fff;padding:15px 27px;border-radius:3px;font-size:.88rem;font-weight:600;letter-spacing:.02em;min-height:48px;transition:background .2s,transform .2s}.button:hover{background:#6f1922;transform:translateY(-2px)}.button.light{background:#fff;color:var(--ink)}.nav-book{flex-shrink:0;padding:12px 22px}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:3px;font-size:.9rem}.eyebrow{text-transform:uppercase;font-size:.73rem;letter-spacing:.16em;font-weight:600;margin-bottom:25px}.lead{font-size:1.13rem;line-height:1.65}.home-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:7%;padding:55px 8vw 60px;max-width:1600px;margin:auto;align-items:center}.hero-copy h1{font-size:clamp(3.8rem,6.6vw,7rem);margin-bottom:25px}.hero-photo{height:600px;position:relative;border-radius:48% 48% 3px 3px}.hero-photo img{object-position:center 42%}.hero-photo figcaption{position:absolute;bottom:15px;left:20px;right:20px;color:white;text-shadow:0 1px 4px #000;padding-top:30px;background:linear-gradient(transparent,#0005)}.hero-tag{position:absolute;right:5%;top:60%;background:var(--pink);padding:25px 30px;border-radius:50%;text-align:center;font-family:Georgia,serif;font-size:1.5rem;line-height:1.1;transform:rotate(10deg);box-shadow:0 5px 30px #31212a12}.actions{display:flex;align-items:center;gap:25px;margin-top:30px}.booking-note{font-size:.76rem;color:var(--muted);margin-top:15px;max-width:36ch}.info-ribbon{display:flex;justify-content:space-around;gap:20px;background:var(--red);color:#fff;padding:20px 5vw;font-size:.85rem;letter-spacing:.025em}.home-paths{padding:85px 8vw;display:grid;grid-template-columns:1fr 1.2fr;gap:8%}.path-list a{display:flex;gap:23px;border-top:1px solid var(--line);padding:26px 0}.path-list a:last-child{border-bottom:1px solid var(--line)}.path-list span{font:italic 1.1rem Georgia,serif;color:var(--red)}.path-list p{font-size:.94rem;color:var(--muted);margin-top:7px}.page-intro{padding:65px 8vw 40px;max-width:1300px}.page-intro .lead{margin-top:25px;max-width:48ch}.service-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;padding:20px 8vw 80px}.service-photo{height:700px;position:sticky;top:25px;border-radius:3px 160px 3px 3px}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:15px}.tabs button{background:none;padding:12px 20px;border-radius:24px;border:1px solid var(--line);font-size:.9rem}.tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}.service-row{padding:26px 0;border-bottom:1px solid var(--line)}.service-row h2{font-size:2.15rem;margin-bottom:12px}.service-row p{color:var(--muted);font-size:.95rem}.service-bottom{padding-top:25px}.service-bottom p{font-size:.8rem;margin-top:15px;color:var(--muted)}[hidden]{display:none!important}.gallery-grid{columns:3;column-gap:25px;padding:20px 8vw 50px}.gallery-item{break-inside:avoid;margin-bottom:25px;border-radius:3px}.gallery-item img{height:auto}.gallery-2{padding-top:70px}.gallery-end{display:flex;justify-content:space-between;align-items:center;padding:35px 8vw 70px}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:65px 8vw 75px;align-items:center}.about-layout .page-intro{padding:0 0 35px}.about-layout .lead{margin-bottom:20px}.about-layout .text-link{margin-top:25px}.about-photo{height:640px;border-radius:45% 45% 3px 3px}.approach{background:var(--soft);padding:60px 8vw;display:grid;grid-template-columns:1fr 2fr;gap:5%}.approach h2{margin-bottom:25px}.approach-notes{display:flex;gap:30px;border-top:1px solid var(--line);margin-top:35px;padding-top:25px}.approach-notes b,.approach-notes span{display:block}.approach-notes span{font-size:.9rem;margin-top:7px}.boarding-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:9%;padding:10px 8vw 75px}.boarding-photo figure{height:650px;border-radius:3px 3px 40% 3px}.photo-note{font-size:.76rem;margin-top:12px;color:var(--muted)}.stay-row{padding:25px 0;border-top:1px solid var(--line)}.stay-row>span{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:var(--red)}.stay-row h2{font-size:2.5rem;margin:15px 0}.callout{background:var(--ink);color:#fff;padding:30px;margin-top:15px}.callout p{margin:15px 0 25px;font-size:.95rem}.visit-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:9%;padding:10px 8vw 75px}.address-card{background:var(--red);color:#fff;padding:45px;border-radius:3px 100px 3px 3px}.address-card .eyebrow{max-width:23ch}.address-card h2{font-size:3.6rem;margin-bottom:15px}.address-card .button{margin-top:25px}.address-card dl{margin:35px 0 25px;border-top:1px solid #ffffff55;padding-top:15px}.address-card dl div{display:flex;justify-content:space-between;gap:20px;font-size:.87rem}.address-card dd{margin:0}.contact-link,.contact-email{display:block;margin:10px 0;overflow-wrap:anywhere}.contact-link{font-size:1.4rem}.address-card .text-link{margin-top:15px}.visit-questions h2{font-size:2.6rem;margin:15px 0 30px}details{border-top:1px solid var(--line);padding:20px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:1.05rem;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:15px}summary:after{content:'+';font-size:1.25rem}details[open] summary:after{content:'−'}details p{padding-top:15px;color:var(--muted);font-size:.95rem}details .button{margin-top:20px}footer{border-top:1px solid var(--line);padding:35px 6vw 15px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:35px;font-size:.85rem}footer b{font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;display:block;margin-bottom:12px}footer a{display:block;margin-bottom:5px}footer p{line-height:1.65}.footer-brand{display:flex;align-items:center;gap:20px}.footer-brand img{width:110px;height:auto}.footer-brand p{font-family:Georgia,serif;font-size:1.15rem;line-height:1.25}.footer-fine{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:.72rem;color:var(--muted);gap:15px}.footer-fine button{padding:0;background:none;font-size:inherit}.skip{position:fixed;top:0;left:15px;z-index:100;background:white;padding:10px;transform:translateY(-110%)}.skip:focus{transform:none}dialog{border:0;background:var(--paper);color:var(--ink);max-width:600px;width:calc(100% - 40px);padding:40px;box-shadow:0 15px 80px #0003}dialog::backdrop{background:#31212acc}dialog>button:first-child{float:right;background:none;padding:0 0 20px;font-size:.9rem}dialog h2{clear:both;font-size:2.5rem;margin:20px 0}dialog p{font-size:.95rem;margin:15px 0}dialog p a{text-decoration:underline}#menu-dialog{position:fixed;margin:0;height:100dvh;max-height:none;max-width:440px;left:0;top:0;border-radius:0;padding:35px}#menu-dialog .eyebrow{clear:both;padding-top:35px}#menu-dialog nav{display:grid;gap:18px;font:2.1rem Georgia,serif;margin:25px 0 35px}#menu-dialog nav .active{color:var(--red)}.menu-phone{display:block;margin-top:20px;font-size:1.1rem}.studio{background:#ebe5e8;padding:55px 8vw}.studio-top{display:flex;justify-content:space-between;gap:40px;margin-bottom:30px;align-items:end}.studio-top p{max-width:38ch}.studio h2{font-size:3.3rem}.studio-layout{display:grid;grid-template-columns:1fr 280px;background:#f9f6f3;border:1px solid #d6c7c9}.studio-view{height:500px;position:relative;overflow:hidden}.studio-view canvas{width:100%;height:100%;display:block;touch-action:none}.studio-hint{position:absolute;bottom:12px;left:20px;font-size:.75rem;pointer-events:none;color:#66565e}.studio-controls{padding:28px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.studio-controls button{border:1px solid var(--line);background:transparent;min-height:46px;text-align:left;padding:10px 15px;border-radius:3px;font-size:.88rem}.studio-controls button.selected{background:var(--red);border-color:var(--red);color:white}.studio-controls .reset{margin-top:auto}.studio-controls p{font-size:.85rem;margin:10px 0}.studio-turns{display:flex;gap:8px}.studio-turns button{flex:1}.studio-footnote{font-size:.75rem;color:var(--muted);margin-top:15px}.studio-fallback{position:absolute;inset:0;display:grid;place-content:center;padding:40px;text-align:center}.studio-fallback p{max-width:38ch}.studio-status{min-height:70px}
@media(min-width:1500px){header{padding-left:6vw;padding-right:6vw}header nav{gap:30px}.home-hero{padding-top:75px;padding-bottom:75px}.hero-photo{height:680px}}
@media(max-width:1150px){header{gap:18px;padding-left:3vw;padding-right:3vw}header nav{gap:13px;font-size:.8rem}.brand>span{font-size:1.35rem}.brand small{font-size:.6rem}.nav-book{padding:12px 15px}.hero-photo{height:540px}.home-hero{padding-left:6vw;padding-right:6vw;gap:5%}.hero-tag{right:3%}.footer-brand{display:block}.footer-brand p{margin-top:15px}}
@media(max-width:900px){header nav{display:none}header{padding:16px 5vw}.brand{margin-right:auto}.hero-photo{height:470px}.home-hero{gap:25px}.hero-copy h1{font-size:3.9rem}.hero-tag{display:none}.home-paths{gap:30px}.service-layout{gap:35px;padding-left:6vw;padding-right:6vw}.service-photo{height:590px}.tabs button{padding:10px 12px}.about-layout,.boarding-layout,.visit-layout{gap:35px;padding-left:6vw;padding-right:6vw}.about-photo{height:530px}.address-card{padding:30px}.address-card h2{font-size:2.8rem}.contact-email{font-size:.8rem}footer{grid-template-columns:1fr 1fr}.footer-brand{display:flex}.footer-brand p{margin:0}.studio-layout{grid-template-columns:1fr 230px}.studio-controls{padding:20px}.studio-view{height:460px}}
@media(max-width:650px){h1{font-size:3.5rem}.concept{font-size:.63rem;letter-spacing:.04em}.brand>span{font-size:1.3rem}.brand em{font-size:.95rem}.brand small{font-size:.53rem}.nav-book{font-size:.75rem;min-height:42px;padding:10px 15px}header{gap:15px}.home-hero{display:flex;flex-direction:column;padding:35px 6vw 30px;gap:30px;align-items:stretch}.hero-copy h1{font-size:clamp(3.4rem,12vw,4.8rem)}.hero-copy h1 br:nth-child(2){display:none}.hero-copy .lead{font-size:1rem;max-width:30ch}.eyebrow{font-size:.68rem;margin-bottom:20px}.actions{gap:22px;margin-top:25px}.hero-photo{height:450px;width:100%;border-radius:46% 46% 3px 3px}.hero-photo img{object-position:center 43%}.hero-photo figcaption{font-size:.7rem}.info-ribbon{flex-direction:column;align-items:center;gap:5px;font-size:.8rem;padding:18px}.home-paths{grid-template-columns:1fr;padding:45px 6vw;gap:30px}.home-paths h2{font-size:2.8rem}.path-list a{padding:22px 0}.path-list h3{font-size:1.3rem}.page-intro{padding:38px 6vw 25px}.page-intro .lead{font-size:1rem;margin-top:20px}.service-layout{display:flex;flex-direction:column-reverse;padding:0 6vw 45px;gap:30px}.service-photo{position:static;height:450px;border-radius:3px 100px 3px 3px}.service-menu{min-height:600px}.tabs{justify-content:space-between;gap:4px}.tabs button{font-size:.85rem;padding:10px 18px}.service-row{padding:22px 0}.gallery-grid{columns:2;padding:0 6vw 25px;column-gap:12px}.gallery-item{margin-bottom:12px}.gallery-2{padding-top:40px}.gallery-end{padding:10px 6vw 40px;gap:20px}.gallery-end h2{font-size:2.2rem}.gallery-end .button{padding:13px 18px;white-space:nowrap}.about-layout{display:flex;flex-direction:column;padding:38px 6vw 40px;gap:30px}.about-photo{height:470px;width:100%}.about-layout .page-intro{padding-bottom:25px}.approach{display:block;padding:40px 6vw}.approach h2{font-size:2.7rem}.approach-notes{flex-direction:column;gap:18px}.approach-notes p{display:grid;grid-template-columns:100px 1fr;gap:15px}.approach-notes span{margin:0}.boarding-layout{display:flex;flex-direction:column-reverse;padding:0 6vw 40px;gap:30px}.boarding-photo figure{height:460px}.stay-row h2{font-size:2.5rem}.visit-layout{display:block;padding:0 6vw 45px}.address-card{padding:35px 28px;border-radius:3px 80px 3px 3px}.visit-questions{margin-top:35px}.contact-email{font-size:.94rem}footer{padding:30px 6vw 15px;gap:30px 20px;font-size:.8rem}.footer-brand{grid-column:1/-1}.footer-fine{flex-direction:column;align-items:flex-start;gap:8px}footer>div:nth-child(4){grid-column:1/-1}dialog{padding:25px}.studio{padding:35px 6vw}.studio-top{display:block;margin-bottom:25px}.studio h2{font-size:2.8rem}.studio-top>p{margin-top:20px;font-size:.95rem}.studio-layout{display:block}.studio-view{height:360px}.studio-controls{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:20px}.studio-controls .eyebrow,.studio-status,.studio-turns,.studio-controls .reset{grid-column:1/-1}.studio-controls .eyebrow{margin:0}.studio-controls .reset{text-align:center}.studio-status{min-height:0}.studio-controls p{margin:3px 0}.studio-footnote{font-size:.72rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}}
.studio-invitation{display:flex;gap:25px;justify-content:center;align-items:center;padding:16px 6vw;background:var(--pink);font-size:.85rem}.studio-invitation a{border-bottom:1px solid currentColor}.studio-invitation span{font-family:Georgia,serif;font-style:italic;font-size:1.1rem}@media(max-width:650px){.studio-invitation{flex-direction:column;gap:3px;text-align:center}}
.pricing-layout{display:grid;grid-template-columns:240px 1fr;gap:6%;padding:10px 8vw 70px}.pricing-nav{position:sticky;top:25px;align-self:start;display:flex;flex-direction:column;gap:14px;font-size:.88rem}.pricing-nav .eyebrow{margin-bottom:5px}.pricing-nav>a:not(.button){border-bottom:1px solid var(--line);padding-bottom:10px}.pricing-nav .button{margin-top:10px}.price-note{background:var(--soft);padding:25px;font-size:.92rem}.price-note p{margin:10px 0}.price-section{padding-top:45px;scroll-margin-top:20px}.price-section h2{font-size:2.5rem;margin-bottom:22px}.price-table-wrap{overflow-x:auto}.price-table-wrap table{border-collapse:collapse;width:100%;font-size:.9rem}.price-table-wrap th,.price-table-wrap td{text-align:left;padding:15px 10px;border-bottom:1px solid var(--line)}.price-table-wrap thead{background:var(--ink);color:#fff}.price-table-wrap th{font-weight:500}.price-table-wrap td{white-space:nowrap}.price-detail{font-size:.8rem;color:var(--muted);margin:15px 0 25px}.price-sections>.price-note:last-child{margin-top:25px}@media(max-width:900px){.pricing-layout{grid-template-columns:185px 1fr;gap:25px;padding-left:6vw;padding-right:6vw}}@media(max-width:650px){.pricing-layout{display:block;padding:0 6vw 40px}.pricing-nav{position:static;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:30px;font-size:.8rem}.pricing-nav .eyebrow,.pricing-nav .button{grid-column:1/-1}.price-section h2{font-size:2.2rem}.price-table-wrap table{font-size:.79rem}.price-table-wrap th,.price-table-wrap td{padding:12px 8px}.price-note{padding:20px}}
.studio-instructions{font-size:.82rem;color:var(--ink);margin-top:16px;max-width:85ch}.studio-view canvas:focus-visible{outline:3px solid #246dc2;outline-offset:-4px}.studio-status{min-height:94px}.studio-view{height:520px}.studio-controls{gap:8px}.studio-controls .reset{margin-top:8px}@media(max-width:650px){.studio-view{height:390px}.studio-status{min-height:0}.studio-instructions{font-size:.78rem}}
.studio-layout{align-items:stretch}.studio-view{height:auto;min-height:580px}.studio-controls{padding:22px}.studio-controls>p.eyebrow{margin:0 0 4px}.studio-controls>.studio-status{margin:6px 0;min-height:80px;line-height:1.45}.studio-controls>button{min-height:42px;padding:10px 14px}@media(max-width:650px){.studio-view{height:390px;min-height:390px}.studio-controls>.studio-status{min-height:0}.studio-controls{padding:18px}}

/* Core navigation stays visible on desktop and tablet, even narrow windows. */
@media(min-width:651px){
 header{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:14px 24px;padding:20px 4vw 0}
 header .menu-toggle{grid-column:1;grid-row:1}
 header .brand{grid-column:2;grid-row:1;margin-right:auto}
 header .nav-book{grid-column:3;grid-row:1}
 header nav{display:flex;grid-column:1/-1;grid-row:2;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 22px;width:100%;margin:0;border-top:1px solid var(--line);padding:5px 0 9px;white-space:normal;font-size:.92rem}
 header nav a{display:inline-flex;align-items:center;min-height:42px;padding:8px 5px;line-height:1.25}
 header nav a:after{bottom:3px}
 header nav a[aria-current=page]{color:var(--red);font-weight:700}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Service-specific booking without making mobile visitors hunt through Square. */
.price-sections,.pricing-layout>*{min-width:0}.price-table-wrap{max-width:100%}.price-table-wrap:focus-visible{outline:3px solid #246dc2;outline-offset:4px}
.price-choice{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px 14px}.price-amount{white-space:nowrap}
.price-book{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;background:var(--red);color:#fff;border-radius:3px;font-size:.75rem;line-height:1.25;font-weight:600;white-space:nowrap}.price-book:hover{background:#6f1922}.price-call{background:#f4eff0;color:var(--red);border:1px solid var(--line)}.price-call:hover{background:#e8dade}
.dog-price-table .price-choice{display:grid;justify-content:start;gap:8px}.price-table-wrap td{white-space:normal}.price-section{scroll-margin-top:24px}#cats{scroll-margin-top:24px}
@media(max-width:650px){
 .dog-price-table,.dog-price-table tbody{display:block;width:100%}.dog-price-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .dog-price-table tbody tr{display:block;margin:0 0 22px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.dog-price-table tbody th{display:block;width:100%;background:var(--soft);font-size:1rem;font-weight:600;padding:12px 14px}
 .dog-price-table tbody td{display:block;padding:12px 14px}.dog-price-table tbody td:before{content:attr(data-service-label);display:block;font-weight:600;margin-bottom:6px}.dog-price-table .price-choice{display:flex;justify-content:space-between;align-items:center}.dog-price-table tbody td:last-child{border-bottom:0}
 .price-book{font-size:.72rem;padding:9px 10px}.price-choice{gap:8px}.price-table-wrap th{overflow-wrap:anywhere}
}
