/* A quieter editorial layout, grounded in the existing identity. */
:root{--sans:'DM Sans',Arial,sans-serif;--serif:'Fraunces',Georgia,serif;--cream:#f7f4ef;--paper:#fffdf9;--ink:#173f42;--muted:#536e69}
body,button,input,textarea,select{font-family:var(--sans)}
.container{width:min(100% - 72px,1180px)}
.eyebrow,.kicker{font-size:12px;letter-spacing:.1em}
.hero{min-height:0;background:var(--cream)}
.hero-grid{min-height:610px;grid-template-columns:51% 49%}
.hero-copy{padding:44px 0 42px;max-width:570px}
.hero h1{font-size:clamp(50px,5.25vw,71px);letter-spacing:-.055em;line-height:1.09;margin:22px 0 25px}
.hero h1 em{font-style:normal;font-weight:600;letter-spacing:-.05em}
.hero-copy>p{font-size:17px;line-height:1.6;max-width:470px}
.hero-note{margin-top:33px;font-size:13px;font-weight:500}
.hero-art{height:610px;right:calc(50% - 50vw);width:clamp(660px,45vw,800px)}
.hero-team-photo{mask-image:linear-gradient(90deg,transparent 0%,#000 22%);object-position:50% 59%}
.intro-strip{background:#075e66}
.strip-inner{min-height:154px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:68px;align-items:center;justify-content:initial}
.strip-title{font-family:var(--serif);font-size:clamp(31px,3vw,42px);font-weight:600;letter-spacing:-.035em;line-height:1.16;margin:0;max-width:510px}
.strip-support{font-size:16px;line-height:1.55;font-weight:400;margin:0;max-width:390px;color:#dcece6}
.section-pad{padding:94px 0}
.section-heading{margin-bottom:43px;gap:30px;align-items:end}
.section-heading h2,.about h2,.booking h2,.faq h2{font-size:clamp(40px,4.4vw,60px);line-height:1.1;letter-spacing:-.045em}
.section-heading h2 em,.about h2 em,.booking h2 em,.faq h2 em,.closing h2 em{font-style:normal}
.section-heading>p{font-size:16px;line-height:1.55;width:330px}
.journey .section-heading h2 em,.faq h2 em{font-style:normal;color:var(--ink)}
.journey.section-pad{padding:56px 0 76px}
.journey .section-heading{display:block;margin-bottom:37px}
.journey .section-heading>p{width:auto;max-width:620px;margin:18px 0 0;font-size:17px;line-height:1.5}
.steps{border-top:0;gap:34px}
.step,.step:not(:first-child){border:0;padding:2px 0 0;min-height:0;display:block}
.step-icon{height:56px;align-items:start}
.step-icon svg{width:36px;height:36px}
.step h3{font-family:var(--sans);font-size:20px;letter-spacing:-.035em;font-weight:700;line-height:1.2;margin-bottom:10px}
.step p{font-size:15px;line-height:1.55;max-width:295px}
.quote-band{padding:35px 0}.quote-inner p{font-size:clamp(32px,3.6vw,48px)}
.quote-inner em{font-style:normal;font-weight:600;color:var(--teal)}
.quote-inner .quote-paws{width:min(25vw,294px);height:70px;flex:none;margin-left:auto;fill:#58a5a5;stroke:none;opacity:.8}
.services{background:#f3f0ea}
.services .section-heading h2{font-family:var(--serif);font-size:clamp(44px,4.7vw,64px)}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px;row-gap:38px;border:0}
.services .service-card{display:block;border:0;padding:0;background:transparent;min-width:0}
.service-open{width:100%;display:grid;grid-template-columns:42% minmax(0,1fr);align-items:center;gap:20px;min-height:0;padding:0;text-align:left;transition:none}
.service-open:hover{background:transparent;padding:0}
.service-open:focus-visible{outline:3px solid var(--teal);outline-offset:5px}
.service-tile-photo{display:block;overflow:hidden;aspect-ratio:1/1;background:#dfe9e3}
.service-tile-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.service-card:first-child .service-tile-photo img{object-position:center 25%}
.service-open:hover .service-tile-photo img{transform:scale(1.035)}
.service-tile-copy{display:block;padding:0}
.service-open h3{font-family:var(--sans);font-size:23px;line-height:1.18;font-weight:700;letter-spacing:-.04em;margin:0 0 9px}
.service-open p{max-width:none;font-size:15px;line-height:1.5;color:#526d69;min-height:0}
.service-more{display:inline-flex;align-items:center;gap:9px;border-bottom:1px solid #8baea5;padding-bottom:3px;margin-top:18px;font-size:12px;font-weight:700;color:#006d77}
.service-more span{font-size:17px;line-height:1}
.service-secondary{margin-top:50px}
.service-secondary h3{font-family:var(--serif);font-size:29px;font-weight:600;letter-spacing:-.035em;margin:0 0 18px}
.service-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px;border-top:1px solid #bfd1c8}
.service-secondary-grid article{border-bottom:1px solid #bfd1c8}
.service-secondary-grid .service-open{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:97px;padding:16px 2px}
.service-secondary-grid .service-open:hover{padding:16px 2px;background:transparent}
.service-secondary-grid .service-open strong{display:block;font-size:18px;font-weight:700;letter-spacing:-.025em;margin-bottom:4px}
.service-secondary-grid .service-open small{display:block;font-size:14px;line-height:1.4;color:#56736c}
.service-secondary-grid .service-open>span:last-child{font-size:21px;color:var(--teal)}
.service-footer{border-top:1px solid #c9d6ce;margin-top:40px;padding-top:20px}
.service-footer p{font-size:14px}
.about-visual img{box-shadow:none;width:82%}
.about-caption{font-size:10px;letter-spacing:.06em}
.booking{background:#e9eee8}
.booking.section-pad{padding:78px 0}
.booking-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(50px,7vw,100px);align-items:start}
.booking-copy{padding:25px 0 0}
.booking h2{font-family:var(--serif);font-size:clamp(43px,4.6vw,62px);margin-bottom:20px;max-width:430px}
.booking-copy>p{font-size:17px;line-height:1.6;max-width:430px}
.schedule{margin-top:35px;padding-top:24px;max-width:430px}
.booking-composer{background:transparent;border:0;padding:0;box-shadow:none;display:block}
.booking-form-intro{font-family:var(--serif);font-size:28px;font-weight:600;letter-spacing:-.035em;line-height:1.2;margin:0 0 21px}
.booking-field-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.booking-field{margin:0 0 21px}
.booking-pet-choice{border:0;padding:0;margin:0 0 23px}
.booking-pet-choice legend{padding:0;margin-bottom:10px;font-size:14px;font-weight:700;color:var(--ink)}
.booking-pet-options{display:flex;flex-wrap:wrap;gap:8px}
.booking-pet-options label{position:relative;cursor:pointer}
.booking-pet-options input{position:absolute;opacity:0;width:1px;height:1px}
.booking-pet-options span{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 17px;border:1px solid #a9c4b9;border-radius:100px;background:transparent;color:#385e58;font-size:13px;font-weight:600;transition:background .2s,border-color .2s,color .2s}
.booking-pet-options input:checked+span{background:var(--teal);border-color:var(--teal);color:#fff}
.booking-pet-options input:focus-visible+span{outline:3px solid #0097b2;outline-offset:3px}
.booking-composer #booking-other-pet{margin-top:10px}
.booking-composer #booking-other-pet[hidden]{display:none}
.booking-composer .form-label{display:block;font-size:14px;font-weight:700;margin:0 0 7px;color:var(--ink)}
.booking-composer .form-label span{font-weight:400;color:#617c73}
.booking-composer input[type="text"],.booking-composer textarea{width:100%;border:0;border-bottom:1.5px solid #9fbeb3;border-radius:0;background:rgba(255,253,249,.44);padding:11px 12px;color:var(--ink);font:inherit;font-size:15px;line-height:1.45;resize:vertical;box-shadow:none}
.booking-composer input[type="text"]{height:49px}
.booking-composer textarea{min-height:74px}
.booking-composer input::placeholder,.booking-composer textarea::placeholder{color:#70847d;opacity:1}
.booking-composer input:focus,.booking-composer textarea:focus{outline:2px solid #006d77;outline-offset:2px;background:#fffdf9}
.booking-composer .booking-submit{width:100%;min-height:58px;margin-top:5px;border-radius:100px;justify-content:center;gap:20px;font-size:15px}
.booking-composer .booking-fine{margin-top:12px;font-size:12px;text-align:center;color:#5e776f}
.faq-grid{gap:45px}.faq-list details p{font-size:15px}.faq-grid>div:first-child>p{font-size:15px}
.closing h2 em{font-style:normal}
.service-dialog-copy .kicker{font-size:12px}.service-dialog-detail span{font-size:11px}
.perto-panel{height:auto;max-height:min(590px,calc(100dvh - 105px))}
.perto-messages{flex:0 1 auto;min-height:150px;max-height:310px}
@media(max-width:1000px){
  .hero-grid{min-height:570px}.hero-art{height:570px;width:640px;right:calc(50% - 50vw)}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:30px}
  .service-open{display:block}.service-tile-copy{padding-top:14px}
  .service-open p{min-height:0}.booking-grid{gap:50px}
}
@media(max-width:760px){
  .container{width:min(100% - 36px,560px)}
  .hero-grid{display:flex;min-height:0}.hero-copy{padding:50px 0 25px}
  .hero h1{font-size:clamp(42px,10.3vw,56px);line-height:1.07;margin:19px 0 21px}
  .hero-copy>p{font-size:16px;line-height:1.55}.hero-note{font-size:12px;margin-top:25px}
  .hero-art{width:calc(100% + 36px);height:auto;aspect-ratio:622/547;right:auto;margin-left:-18px}
  .hero-team-photo{mask-image:linear-gradient(to bottom,#000 0%,#000 94%,transparent 100%);object-position:50% 60%}
  .strip-inner{min-height:0;display:block;padding-block:30px;white-space:normal}
  .strip-title{font-size:29px;margin-bottom:11px}.strip-support{font-size:14px;line-height:1.5;max-width:420px}
  .section-pad{padding:72px 0}.section-heading{margin-bottom:35px}
  .journey.section-pad{padding:48px 0 60px}.journey .section-heading{margin-bottom:26px}.journey .section-heading>p{font-size:15px;margin-top:15px}
  .section-heading h2,.about h2,.booking h2,.faq h2{font-size:clamp(40px,9.6vw,54px)}
  .section-heading>p{width:auto;font-size:15px;margin-top:16px}
  .steps{display:block}.step,.step:not(:first-child){display:grid;grid-template-columns:44px 1fr;gap:0 10px;padding:19px 0;border-bottom:1px solid #d2dfd9}
  .step-icon{grid-column:1;grid-row:1/3;height:auto}.step-icon svg{width:31px;height:31px}
  .step h3{grid-column:2;grid-row:1;font-size:18px;margin:0 0 6px}.step p{grid-column:2;grid-row:2;font-size:14px}
  .quote-band{padding:35px 0 51px}.quote-inner .quote-paws{display:block;position:absolute;right:0;bottom:-45px;width:170px;height:40px;opacity:.68}
  .service-grid{display:grid;grid-template-columns:1fr;gap:24px}
  .services .service-card{border:0}.service-open{display:grid;grid-template-columns:37% minmax(0,1fr);gap:15px;align-items:center}.service-tile-photo{aspect-ratio:1/1}
  .service-tile-copy{padding:0}.service-open h3{font-size:21px}.service-open p{font-size:14px;line-height:1.4}
  .service-more{font-size:11px;margin-top:10px}
  .service-secondary{margin-top:34px}.service-secondary h3{font-size:27px}.service-secondary-grid{grid-template-columns:1fr}.service-secondary-grid .service-open{min-height:83px}.service-secondary-grid .service-open strong{font-size:17px}.service-secondary-grid .service-open small{font-size:13px}
  .service-footer{display:block;margin-top:30px}.service-footer .text-link{margin-top:15px}
  .about-visual img{width:78%}.booking-grid{display:block}.booking-copy{padding:0 0 27px}
  .booking h2{max-width:500px}.booking-copy>p{font-size:15px}.schedule{margin-top:25px}
  .booking-form-intro{font-size:25px}.booking-composer{padding:0}.booking-field-pair{gap:14px}
  .booking-composer .form-label{font-size:13px}.booking-composer input[type="text"],.booking-composer textarea{font-size:14px}
  .booking-composer .booking-submit{min-height:55px;font-size:14px}
  .faq-grid{gap:22px}
  .perto-panel{height:auto;max-height:calc(100dvh - 166px)}.perto-messages{min-height:130px;max-height:260px}
}
@media(max-width:420px){
  .booking-field-pair{display:block;gap:0}
  .service-grid{gap:25px}.service-open h3{font-size:19px}.service-open p{font-size:13px}.service-more{font-size:11px}
}

.professional-register{font-weight:700;color:var(--teal)!important;font-size:13px!important;letter-spacing:.01em}.footer-legal{display:flex;gap:10px 18px;flex-wrap:wrap;margin-top:12px}.footer-legal a,.booking-fine a,.perto-foot a{text-decoration:underline;text-underline-offset:3px}.footer-legal a{font-size:12px}.booking-fine{line-height:1.5}
