:root{--green:#163f32;--cream:#fff9ef;--wood:#b57538;--sand:#f5e5cc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--green);font-family:Georgia,serif}.poster{position:relative;aspect-ratio:var(--poster-ratio);width:100%;max-width:1800px;margin:0 auto;isolation:isolate}.poster-art{display:block;width:100%;height:100%;object-fit:contain}.hotspot{position:absolute;display:block;z-index:3;background:transparent;cursor:pointer;border-radius:12px}.hotspot:focus-visible{outline:3px solid #0878a5;outline-offset:-2px;background:#fff6}.poster-form{position:absolute;inset:0;pointer-events:none;z-index:2}.field-wrap{position:absolute;display:block;pointer-events:auto}.field-wrap input,.field-wrap textarea,.field-wrap select{display:block;width:100%;height:100%;border:1px solid #c9d1d8;border-radius:9px;background:#fffcfa;color:#203c33;font:clamp(11px,1.04vw,17px)/1.4 Georgia,serif;padding:0 12px;box-shadow:none}.field-wrap textarea{padding:9px 12px;resize:none;min-height:0}.field-wrap input:focus,.field-wrap textarea:focus,.field-wrap select:focus{outline:2px solid #729d83;outline-offset:1px}.field-wrap input::placeholder,.field-wrap textarea::placeholder{color:#8b8b91}.sr-only,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.contact-name{left:68.68%;top:51.90%;width:27.71%;height:4.12%}.contact-email{left:68.68%;top:59.95%;width:27.71%;height:4.08%}.contact-phone{left:68.68%;top:68.08%;width:27.71%;height:4.08%}.contact-message{left:68.68%;top:75.98%;width:27.71%;height:11.15%}.send-contact{position:absolute;left:68.59%;top:88.75%;width:27.94%;height:5.5%;pointer-events:auto;background:linear-gradient(135deg,#164333,#0f352b);border:3px solid #faf4e6;box-shadow:0 0 0 2px #dabb85;border-radius:18px;color:#fff;font:bold clamp(15px,1.5vw,24px) Georgia,serif;cursor:pointer}.send-contact:hover,.booking-send:hover,.confirm-request:hover{filter:brightness(1.13)}.booking-section{margin:0;padding:0;border:0;position:static;min-width:0}.b-start{left:32.18%;top:67.08%;width:19.11%;height:3.55%}.b-end{left:32.18%;top:74.58%;width:19.11%;height:3.55%}.d-date{left:54.48%;top:72.4%;width:17.14%;height:3.55%}.d-notes{left:54.48%;top:79.75%;width:17.14%;height:9.1%}.day-type{position:absolute;z-index:2;pointer-events:auto;display:flex;align-items:center}.day-type input{accent-color:#0568b7;width:17px;height:17px;margin:0;cursor:pointer}.d-single{left:54.89%;top:60.70%}.d-multi{left:54.89%;top:63.45%}.d-routine{left:54.89%;top:66.48%}.s-dog{left:74.84%;top:61.95%;width:20.60%;height:3.28%}.s-breed{left:74.84%;top:67.55%;width:10.24%;height:3.04%}.s-weight{left:85.92%;top:67.55%;width:9.52%;height:3.04%}.s-coat{left:74.84%;top:73.25%;width:20.60%;height:3.2%}.s-date{left:74.84%;top:79.25%;width:20.60%;height:3.2%}.s-notes{left:74.84%;top:85.45%;width:20.60%;height:4.60%}.booking-send{position:absolute;left:31.55%;top:91.2%;width:25.98%;height:6.0%;pointer-events:auto;border-radius:25px;background:linear-gradient(#174736,#12392c);border:3px solid #fff9eb;box-shadow:0 0 0 2px #dabd87;color:#fff;font:bold clamp(15px,1.54vw,24px) Georgia,serif;cursor:pointer}.booking-dialog[hidden]{display:none}.booking-dialog{position:fixed;inset:0;z-index:30;display:grid;place-items:center;pointer-events:auto;padding:18px}.dialog-shade{position:absolute;inset:0;background:#101b18b5}.dialog-card{z-index:1;position:relative;background:#fff9ed;border:3px solid #dfbe8f;border-radius:24px;padding:25px;width:min(95vw,500px);max-height:min(94vh,780px);overflow:auto;box-shadow:0 15px 55px #18221d99}.dialog-card h2{font:700 29px Georgia,serif;margin:0 32px 7px 0}.dialog-card p{line-height:1.35}.dialog-card label{display:block;font:bold 15px Georgia,serif;margin:10px 0}.dialog-card input,.dialog-card textarea{display:block;width:100%;padding:10px 12px;border:1px solid #cab89f;border-radius:10px;font:16px Georgia,serif;margin-top:5px}.dialog-close{position:absolute;right:16px;top:14px;cursor:pointer;background:#efe3d1;border:0;border-radius:12px;padding:7px 10px}.confirm-request,.solid-btn{display:block;text-align:center;background:#154132;color:white;border:0;padding:14px 20px;border-radius:12px;font:bold 18px Georgia,serif;cursor:pointer;text-decoration:none}.small-print{color:#675747;font-size:14px}.phone-toolbar,.phone-nav,.mobile-content,.phone-hero{display:none}.success{max-width:580px;margin:14vh auto 3vh;background:#fffaf0;padding:42px;text-align:center;border:3px solid #e2cda5;border-radius:30px;box-shadow:0 10px 30px #15392920}.success img{object-fit:contain}.success h1{font:700 34px Georgia,serif}.success p{font-size:19px;line-height:1.45}
@media(max-width:760px){.phone-toolbar{display:flex;position:relative;z-index:21;align-items:center;justify-content:space-between;background:#fffaf1;border-bottom:1px solid #d7b98c;padding:7px 11px;gap:12px}.phone-brand{color:#143d31;text-decoration:none;font:bold 15px Georgia,serif;display:flex;align-items:center;gap:7px}.phone-brand img{height:35px;width:35px;object-fit:contain}.phone-menu-btn{background:#174333;color:white;border:1px solid #c9a976;border-radius:12px;font:bold 15px Georgia,serif;padding:10px 12px;cursor:pointer}.phone-nav{position:relative;z-index:22;display:none;flex-direction:column;padding:8px 14px 16px;background:#fff8e9;border-bottom:2px solid #cbad76}.phone-nav.show{display:flex}.phone-nav a{padding:10px;font:17px Georgia,serif;border-bottom:1px solid #d5c5ad;color:#143b30;text-decoration:none}.poster{width:100%;margin:0 auto}.poster-art{width:100%;height:auto}.poster-contact,.poster-booking{aspect-ratio:auto}.poster-contact>.poster-art,.poster-booking>.poster-art{display:none}.poster-contact:before,.poster-booking:before{content:"";display:block;height:43.5vw;max-height:285px;min-height:155px;background-size:cover;background-position:center center}.poster-contact:before{background-image:url('approved/contact-mobile-hero.webp')}.poster-booking:before{background-image:url('approved/booking-mobile-hero.webp')}.poster-contact .hotspot,.poster-booking .hotspot{display:none}.mobile-content{display:block;padding:16px;background:#fff8ea;border-top:2px solid #d6b98b}.mobile-content h1{font:700 29px Georgia,serif;margin:0 0 9px}.mobile-content h2{font:700 25px Georgia,serif}.mobile-content p{line-height:1.45}.mobile-contact-links{display:flex;flex-direction:column;gap:7px}.mobile-contact-links a,.mobile-contact-links p{display:block;background:white;border:1px solid #d6c4ad;border-radius:12px;padding:13px;color:#153d31;text-decoration:none;margin:0}.poster-contact .poster-form,.poster-booking .poster-form{position:relative;inset:auto;display:block;pointer-events:auto;padding:14px;background:#fff7e8}.poster-contact .contact-fields{display:grid;gap:11px}.poster-contact .field-wrap,.poster-booking .field-wrap,.poster-booking .booking-send{position:relative!important;inset:auto!important;left:auto!important;top:auto!important;width:auto!important;height:auto!important}.poster-contact .field-wrap input{height:46px;font-size:16px}.poster-contact .field-wrap textarea{min-height:120px;font-size:16px}.poster-contact .send-contact{position:relative;left:auto;top:auto;width:100%;height:50px}.poster-booking .booking-fields{display:flex;flex-direction:column;gap:15px}.poster-booking .booking-section{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:18px 12px 12px;border:2px solid #ebd3b2;border-radius:17px;background:#fff}.poster-booking .booking-boarding{background:#eaf4e7}.poster-booking .booking-daycare{background:#fff8e8}.poster-booking .booking-spa{background:#e8f3fe}.poster-booking .booking-section legend{display:block!important;position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;white-space:normal!important;margin:0 0 8px;font:bold 23px Georgia,serif;color:#153c2f}.poster-booking .day-type{position:static!important;width:auto;display:flex;align-items:center;gap:8px}.poster-booking .day-type .sr-only{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important;margin:0!important;font-size:13px}.poster-booking .booking-daycare{display:flex;flex-direction:column}.poster-booking .booking-section .field-wrap{grid-column:1/-1}.poster-booking .booking-spa .s-breed,.poster-booking .booking-spa .s-weight{grid-column:span 1}.poster-booking .field-wrap .sr-only{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important;margin:0 0 5px!important;display:block;color:#304437;font-size:14px}.poster-booking .field-wrap input,.poster-booking .field-wrap select{height:45px;font-size:16px}.poster-booking .field-wrap textarea{height:86px;font-size:16px}.poster-booking .booking-send{width:100%!important;padding:17px 5px;height:auto!important;font-size:19px}.booking-dialog{padding:12px}.dialog-card{padding:21px}.poster-index,.poster-about,.poster-prices,.poster-portal{aspect-ratio:auto}.poster-index .poster-art,.poster-about .poster-art,.poster-prices .poster-art,.poster-portal .poster-art{height:auto}.poster-index .hotspot,.poster-about .hotspot,.poster-prices .hotspot,.poster-portal .hotspot{display:none}.success{margin:5vh 12px}}

/* Dedicated mobile homepage. Desktop artwork and hotspots remain unchanged. */
.mobile-home{display:none}
@media(max-width:760px){
.poster-index{display:none!important}
.mobile-home{display:block;background:#fff9ef;padding-bottom:28px;overflow:hidden}
.mobile-home-scene img{width:100%;height:auto;display:block}
.mobile-home-intro{padding:24px 17px 27px;text-align:center;background:linear-gradient(180deg,#fff9ef,#f5ead7);border-bottom:2px solid #dec9a6}
.mobile-home-eyebrow{font:italic 27px Georgia,serif;color:#654627;margin:0 0 8px}
.mobile-home-intro h1{font:700 clamp(34px,9vw,47px)/1.08 Georgia,serif;letter-spacing:.01em;margin:0 0 13px;color:#153f32}
.mobile-home-intro>p:not(.mobile-home-eyebrow){font:18px/1.45 Georgia,serif;margin:0 auto 20px;max-width:380px}
.mobile-home-actions{display:grid;gap:11px;max-width:420px;margin:auto}
.mobile-home-actions a{display:block;text-decoration:none;border-radius:14px;padding:15px;font:700 18px Georgia,serif;min-height:52px}
.mobile-primary{background:#174333;color:#fff;box-shadow:0 3px 0 #a87847}.mobile-secondary{background:#fff;color:#174333;border:2px solid #b78d54}
.mobile-home-services{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:22px 14px}
.mobile-home-services a{display:grid;place-items:center;text-align:center;padding:16px 8px;min-height:69px;background:#fff;border:1px solid #d6bb94;border-radius:15px;color:#164033;text-decoration:none;font:bold 16px Georgia,serif}
.mobile-parade{margin:0 13px;border:3px solid #b47b46;border-radius:20px;overflow:hidden;background:#fff5df;text-align:center;box-shadow:0 6px 18px #273d3122}
.mobile-parade-photos{display:grid;grid-template-columns:1fr 1fr;height:145px;overflow:hidden}
.mobile-parade-photos img{width:100%;height:100%;object-fit:cover;object-position:center}
.mobile-parade-copy{padding:14px 12px 18px}
.mobile-parade-copy p{font:17px/1.4 Georgia,serif;margin:6px 0 12px}
.mobile-parade-copy h2{font:700 clamp(26px,7vw,37px)/1.07 Georgia,serif;color:#9c2122;margin:6px 0 12px}
.mobile-parade-copy p:last-child{font-style:italic}
}

/* Mobile-only readable replacements for image-based approved pages. Desktop art untouched. */
.mobile-rebuilt{display:none}
@media(max-width:760px){
.poster-about,.poster-prices,.poster-portal{display:none!important}
.mobile-rebuilt{display:block;background:#fff9ee;padding-bottom:30px;color:#1a4233}
.mobile-rebuilt img{display:block;width:100%;height:auto}
.m-feature-photo{padding:16px 24px 0;background:linear-gradient(#f7eddb,#fff9ee)}
.m-feature-photo img{max-width:480px;margin:auto;max-height:440px;object-fit:cover;object-position:center 32%;border:6px solid #fff;border-radius:22px;box-shadow:0 5px 18px #2e251b30}
.m-wide-art{height:180px;overflow:hidden;background:#eaddc5}
.m-wide-art img{width:100%;height:100%;object-fit:cover}
.m-section{padding:22px 19px;max-width:610px;margin:auto}
.m-section h1{text-align:center;font:700 clamp(31px,8vw,43px)/1.12 Georgia,serif;margin:8px 0 20px;color:#173f31}
.m-script{text-align:center;color:#795139;font:italic 22px/1.28 Georgia,serif;margin:6px 0 10px}
.m-section p{font:17px/1.58 Georgia,serif;margin:0 0 16px}
.m-motto{text-align:center;background:#edf4ea;border:1px solid #d3b892;border-radius:17px;padding:18px 12px;margin:23px 0;line-height:1.8}
.m-motto p{margin:7px 0 0}
.m-cta{display:block;text-align:center;background:#174433;color:#fff;text-decoration:none;font:bold 20px Georgia,serif;padding:18px 10px;border-radius:16px;margin:22px 0 0;box-shadow:0 4px 0 #bc9460;min-height:58px}
.m-service{background:#fff;border:2px solid #d7be98;border-radius:22px;padding:18px 16px;margin:15px 0 21px;box-shadow:0 3px 10px #64503713}
.m-service h2{font:bold 26px Georgia,serif;margin:0 0 11px;color:#194c39}
.m-service h3{font:bold 20px Georgia,serif;margin:18px 0 10px}
.m-service-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.m-service-head h2{margin:0}.m-service-head strong{color:#164333;font:bold 29px Georgia,serif;white-space:nowrap}.m-service-head small{font-size:15px}
.m-section .m-note{font:15px/1.45 Georgia,serif;background:#f8f0dd;padding:12px;border-radius:11px;border-left:4px solid #b88550;margin:10px 0}
.m-prices{display:grid;grid-template-columns:1fr auto;gap:0 14px;background:#eff5ed;border-radius:12px;overflow:hidden;padding:5px 12px}
.m-prices span,.m-prices b{padding:10px 4px;border-bottom:1px solid #d7e0d2}.m-prices span:nth-last-child(2),.m-prices b:last-child{border:0}
.m-portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}
.m-portal-grid article{background:#fff;border:1px solid #dfc9a9;border-radius:17px;padding:16px 12px;text-align:center;min-width:0}
.m-portal-grid article:nth-child(3n+1){background:#f1f5e9}.m-portal-grid article:nth-child(3n+2){background:#fff7e7}.m-portal-grid article:nth-child(3n){background:#eef5f6}
.m-portal-grid article span{font-size:33px}.m-portal-grid article h2{font:bold 17px/1.2 Georgia,serif;margin:8px 0}.m-portal-grid article p{font:14px/1.45 Georgia,serif;margin:0}
.m-section .m-ending{text-align:center;font-style:italic;color:#775033;margin:24px 0}
}

/* Mobile banners: show ONLY decorative part of the original strip.
   Fractional aspect ratios match the banner's natural width and the exact
   point where the baked-in duplicate content cards begin. No object-fit cover:
   cropping with cover formerly zoomed in and showed cut-off cards. */
@media(max-width:760px){
 .m-wide-art-portal,.m-wide-art-prices {width:100%;height:auto;overflow:hidden;line-height:0;background:#fff9ee}
 .m-wide-art-portal {aspect-ratio:1448 / 280}
 .m-wide-art-prices {aspect-ratio:1448 / 205}
 .m-wide-art-portal img,.m-wide-art-prices img {display:block;width:100%;max-width:100%;height:auto;object-fit:initial;object-position:initial}
}

/* Dog Spa & Bath Services: clear scope of services across both layouts. */
.desktop-spa-clarification{background:#fff9ef;color:#193d31;padding:20px 25px 30px;font-family:Georgia,serif;border-top:1px solid #e1c79e}
.desktop-spa-clarification>div{max-width:1040px;margin:0 auto;text-align:center}
.desktop-spa-clarification h2{font-size:27px;margin:0 0 8px}
.desktop-spa-clarification p{font-size:18px;line-height:1.5;margin:5px auto;max-width:900px}
.desktop-spa-clarification .spa-not-offered{font-size:16px;font-weight:700;color:#855236}
.m-section .m-spa-disclaimer{color:#80502f;font-size:16px;font-weight:600;margin:5px 0 16px}
@media(max-width:760px){.desktop-spa-clarification{display:none}}


/* Intentional phone-only Prices header: the two close-up crops from the
   original approved illustration replace the unusably small desktop panorama.
   Separate real-text price cards below remain untouched. Desktop art unchanged. */
@media(max-width:760px){
 .m-prices-hero{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:9px 11px 0;background:linear-gradient(180deg,#f5ebda,#fff9ef)}
 .m-prices-sign{width:100%;max-width:570px;overflow:hidden;margin:0 auto;line-height:0;border:2px solid #e2c79f;border-bottom:0;border-radius:19px 19px 0 0;background:#efd9b3}
 .m-prices-sign img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
 .m-prices-dogs{width:100%;max-width:570px;overflow:hidden;margin:0 auto;line-height:0;border:2px solid #e2c79f;border-top:0;border-radius:0 0 19px 19px;background:#e1dec8;box-shadow:0 7px 18px rgba(43,34,20,.13)}
 .m-prices-dogs img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
 .m-prices-hero+.m-section{padding-top:17px}
}

/* The sign already has a large title; avoid repeating that title immediately
   underneath on small phones. Keep the semantic H1 for accessibility. */
@media(max-width:760px){
 .m-prices-hero+.m-section>h1{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;margin:-1px!important;padding:0!important;border:0!important}
 .m-prices-hero+.m-section>.m-script{font-size:20px;margin:7px 0 24px}
}

/* Final phone-only Prices sign: standalone sign, no dogs and no repeated slogan. */
@media(max-width:760px){
 .m-prices-hero{padding:12px 12px 0}
 .m-prices-sign{border:2px solid #e2c79f;border-radius:20px;box-shadow:0 7px 18px rgba(43,34,20,.13)}
 .m-prices-sign img{width:100%;height:auto;display:block}
 .m-prices-hero+.m-section>.m-script{display:none}
 .m-prices-hero+.m-section{padding-top:14px}
}

/* Phone Prices sign: ensure the complete handwritten footer remains visible. */
@media (max-width:760px){
 .m-prices-sign{overflow:visible;background:#fff9ef;border-bottom:2px solid #e2c79f;}
 .m-prices-sign img{display:block;width:100%;height:auto;object-fit:contain;object-position:center center;clip-path:none;}
 .m-prices-hero{padding-bottom:14px;}
}

/* Final mobile sign safety: no clipping and a small visual buffer beneath the handwritten line. */
@media(max-width:760px){
.m-prices-hero{padding:10px 12px 12px;}
.m-prices-sign{overflow:hidden;border-radius:19px;border:1px solid #e2c79f;background:#fbf6e8;}
.m-prices-sign img{width:100%;height:auto;object-fit:contain;display:block;}
}


/* Final cleanup: Prices mobile sign should sit naturally with no visible box/frame. */
@media(max-width:760px){
  .m-prices-hero{
    padding:10px 0 8px;
    background:transparent;
  }
  .m-prices-sign{
    width:100%;
    max-width:570px;
    margin:0 auto;
    overflow:visible;
    line-height:0;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }
  .m-prices-sign img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
    background:transparent;
  }
  .m-prices-hero + .m-section{
    padding-top:10px;
  }
}

/* Explicit mobile booking service selection: show only the chosen service. */
.service-chooser{display:none}
@media(max-width:760px){
 .poster-booking .service-chooser{display:block;background:#fffaf0;border:2px solid #dbc49e;border-radius:15px;padding:14px 10px;margin-bottom:12px}
 .service-chooser p{font:700 18px Georgia,serif;margin:0 0 12px;text-align:center;color:#173f31}
 .service-chooser-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .service-choice{border:1px solid #bfa47b;background:white;color:#173f31;border-radius:12px;padding:11px 3px;font:700 14px Georgia,serif;min-height:48px}
 .service-choice.active{background:#174333;color:white;outline:2px solid #c3a272;outline-offset:1px}
 .poster-booking .booking-section[data-selected="false"]{display:none!important}
}

.booking-account-gate{max-width:480px;width:calc(100% - 48px);box-sizing:border-box;padding:32px;border:1px solid #d7cbb1;border-radius:22px;background:#fbf6eb;color:#233d2b;font-family:Georgia,serif;box-shadow:0 20px 70px #0004}.booking-account-gate::backdrop{background:#132b22aa}.booking-account-gate button,.booking-login-link{display:inline-block;padding:12px 18px;background:#245b40;color:white;border-radius:12px;border:0;text-decoration:none;font:inherit;cursor:pointer}.booking-account-choice{font-size:14px!important;font-weight:normal!important}.booking-account-choice a{color:#245b40}

/* Resort address: visible on desktop and mobile. */
.resort-location{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 28px;padding:16px 20px;background:#163f32;color:#fff9ef;text-align:center;font:16px/1.5 Georgia,serif;border-bottom:3px solid #cfad75}
.resort-location address{font-style:normal;margin:0}.resort-location strong{display:block;font-size:clamp(18px,2.1vw,25px)}
.resort-location span{display:block;color:#f5e5cc}.resort-location a{display:inline-block;padding:10px 20px;border:1px solid #cfad75;border-radius:8px;background:#fff9ef;color:#163f32;font-weight:bold;text-decoration:none;min-height:44px}.resort-location a:hover{background:#f5e5cc}.resort-location a:focus-visible{outline:3px solid #fff;outline-offset:4px}
.resort-location-footer{margin-top:24px;border-top:3px solid #cfad75;border-bottom:0}
.poster-contact .contact-address-correction{position:absolute;z-index:4;left:3%;top:60%;width:28%;height:11%;display:flex;flex-direction:column;justify-content:center;padding:8px;background:#fff9ef;border:1px solid #cfad75;border-radius:8px;color:#163f32;text-align:center;text-decoration:none;font:700 clamp(11px,1.2vw,21px)/1.4 Georgia,serif}
.contact-address-correction small{font-weight:normal;font-size:.85em}
@media(max-width:760px){.resort-location{padding:14px 12px;gap:10px}.resort-location address{width:100%}.resort-location strong{font-size:19px}.resort-location span{font-size:14px}.resort-location a{padding:9px 18px}}
