@font-face{font-family:Lilita;src:url('/assets/fonts/lilita-one.ttf') format('truetype');font-display:swap}
@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-condensed.ttf') format('truetype');font-display:swap;font-weight:800}
@font-face{font-family:DM;src:url('/assets/fonts/dm-sans.ttf') format('truetype');font-display:swap}
:root{--blue:#91c9f0;--red:#f0442a;--yellow:#ffd34e;--ink:#10100e;--white:#fff;--display:Lilita,'Arial Rounded MT Bold',sans-serif;--body:DM,Arial,sans-serif;--gutter:clamp(24px,5.9vw,100px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0}body{margin:0;color:var(--ink);background:var(--white);font-family:var(--body);font-size:18px;line-height:1.4}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-underline-offset:6px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}button,summary{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:6px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #24638d;outline-offset:2px}::selection{background:var(--ink);color:var(--blue)}img{display:block;width:100%;height:auto}h1,h2,p,figure{margin:0}h1,h2,.wordmark{font-family:var(--display);font-weight:400;letter-spacing:-.025em;line-height:.98}h2{font-size:clamp(36px,5.5vw,76px)}[hidden]{display:none!important}.wrap{padding-inline:var(--gutter)}.skip-link{position:absolute;left:24px;top:-100px;padding:12px;background:white;z-index:30}.skip-link:focus{top:10px}
.header{min-height:98px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px var(--gutter);position:relative;z-index:2;background:white}.wordmark{font-size:clamp(30px,3.5vw,48px);text-decoration-line:none;white-space:nowrap}.wordmark span{color:var(--yellow)}nav{display:flex;align-items:center;gap:40px;font-size:15px;font-weight:600}nav a{padding-block:12px;text-decoration-line:none}nav a:hover{text-decoration-line:underline}.nav-book{position:relative}
.hero{position:relative;background:var(--blue);min-height:clamp(560px,51vw,760px);isolation:isolate}.hero-photo{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center}.hero-copy{position:relative;z-index:1;padding:clamp(65px,7vw,112px) 0 100px var(--gutter);width:55%}h1{font-size:clamp(70px,8.3vw,120px);line-height:.96}.hero-copy p{font-size:clamp(22px,2.6vw,34px);margin-top:24px;letter-spacing:-.025em}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;padding:14px 36px;border:0;font-size:18px;line-height:1.3;text-decoration-line:none;font-weight:600;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}.button-yellow{background:var(--yellow);color:var(--ink)}.button-yellow:hover{background:#f4c43c}.button-black{background:var(--ink);color:white}.button-black:hover{background:#30302b}.hero-copy .button{margin-top:28px}.hero-snapshot{position:absolute;width:18%;max-width:245px;aspect-ratio:1;bottom:-22px;left:27%;padding:8px;background:white;box-shadow:0 4px 8px #0002;transform:rotate(-11deg);z-index:2}.hero-snapshot img{height:100%;object-fit:cover}
.portfolio{padding-block:68px 62px}.portfolio h2{margin-bottom:44px}.photo-board{display:grid;grid-template-columns:42% 30% 28%;grid-template-rows:auto auto;align-items:start;padding-inline:8px;min-height:610px}.print{position:relative}.photo-print{display:block;width:100%;background:white;border:0;padding:9px;box-shadow:0 1px 7px #0002;transition:box-shadow .18s ease}.photo-print:hover{box-shadow:0 3px 12px #0003}.photo-print img{height:100%;object-fit:cover}.print figcaption{font-size:14px;font-weight:600;padding:12px 8px 0}.print-corgi{grid-column:1;grid-row:1/3;transform:rotate(-2deg);margin-right:32px}.print-corgi .photo-print{aspect-ratio:4/5}.print-dogs{grid-column:2/4;grid-row:1;width:91%;transform:rotate(-5deg);margin-top:-20px;z-index:1}.print-dogs .photo-print{aspect-ratio:1.5}.print-cat{grid-column:3;grid-row:1/3;margin-top:72%;transform:rotate(5deg);z-index:2}.print-cat .photo-print{aspect-ratio:1}
.experience{background:var(--yellow);color:var(--ink);position:relative;isolation:isolate;min-height:430px}.experience-photo{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center}.experience-copy{position:relative;padding:62px var(--gutter);max-width:65%;z-index:1}.experience h2{font-size:clamp(44px,5.8vw,80px)}.experience-copy>p{font-size:clamp(20px,2.2vw,28px);margin-top:22px;max-width:35ch}.shoot-details{margin-top:23px;max-width:460px}.shoot-details summary{display:inline-block;font-weight:700;text-decoration-line:underline;text-underline-offset:6px;padding:8px 0;min-height:44px}.shoot-details summary::after{content:' +';text-decoration-line:none}.shoot-details[open] summary::after{content:' −'}.steps{padding-top:16px}.steps p{margin-bottom:20px;font-size:17px;line-height:1.5}.steps strong{display:block}
.goodbye{position:relative;background:var(--blue);min-height:390px;isolation:isolate}.goodbye-photo{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center}.goodbye-copy{position:relative;padding:50px var(--gutter) 35px}.goodbye h2{font-size:clamp(44px,5.8vw,78px)}.goodbye .button{margin-top:24px}footer{display:flex;align-items:center;gap:26px;position:relative;padding:30px var(--gutter)}footer .wordmark{font-size:36px}.domain{padding:10px 0 10px 26px;border-left:1px solid var(--ink);font-size:15px;text-decoration-line:none}.domain:hover{text-decoration-line:underline}
.booking{padding-block:70px 80px;display:grid;grid-template-columns:1fr 1.25fr;gap:70px;scroll-margin-top:0}.booking h2{font-size:clamp(44px,5.8vw,78px)}#booking-heading:focus{outline:none}.booking-intro p{margin-top:24px;max-width:33ch}.booking-intro p:last-child{font-size:15px;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:15px;font-weight:600;margin-bottom:20px}input,select,textarea{display:block;width:100%;background:white;border:1px solid var(--ink);border-radius:0;margin-top:9px;padding:12px;min-height:48px;font-size:16px;line-height:1.5}textarea{resize:vertical}textarea::placeholder{color:#666;font-size:15px}.form-status{margin-top:18px;font-size:15px;line-height:1.6}
@media(min-width:1500px){.header,.portfolio,.booking{padding-inline:max(var(--gutter),calc((100vw - 1350px)/2))}.hero-copy{padding-left:max(var(--gutter),calc((100vw - 1350px)/2))}.photo-board{min-height:700px}}
@media(max-width:1000px){nav{gap:24px}.header{min-height:80px}.hero{min-height:540px}.hero-copy{width:61%;padding-top:75px}h1{font-size:clamp(64px,8.5vw,88px)}.hero-copy p{font-size:24px}.hero-snapshot{left:32%;width:19%}.photo-board{min-height:480px}.experience-copy{max-width:72%}.experience{min-height:370px}.goodbye{min-height:350px}}
@media(max-width:600px){body{font-size:16px}.header{min-height:112px;flex-wrap:wrap;gap:4px;padding-block:16px 12px}.header .wordmark{font-size:36px}nav{width:100%;justify-content:space-between;gap:14px;font-size:13px}nav a{min-height:40px;padding-block:10px}.hero{min-height:690px;display:flex;flex-direction:column}.hero-copy{width:100%;padding:28px var(--gutter) 0}.hero h1{font-size:clamp(58px,13.5vw,80px);line-height:.96}.hero-copy p{font-size:22px;margin-top:16px}.hero-copy .button{margin-top:20px}.button{min-height:50px;padding:13px 25px;font-size:16px}.hero-photo{top:auto;bottom:0;height:54%;object-position:73% center}.hero-snapshot{width:120px;left:25px;bottom:-17px;padding:6px}.portfolio{padding-top:58px;padding-bottom:52px}.portfolio h2{font-size:38px;margin-bottom:38px;max-width:12ch}.photo-board{grid-template-columns:54% 46%;grid-template-rows:auto auto;min-height:0;row-gap:28px;padding-inline:3px}.print-corgi{grid-column:1;grid-row:1;margin-right:14px}.print-dogs{grid-column:1/3;grid-row:2;width:94%;margin:12px 0 0 6px;transform:rotate(-3deg)}.print-cat{grid-column:2;grid-row:1;margin-top:45px;margin-left:5px;transform:rotate(6deg)}.photo-print{padding:6px}.print figcaption{font-size:12px;padding-top:9px}.experience{min-height:620px}.experience-copy{max-width:100%;padding:36px var(--gutter) 300px}.experience h2{font-size:49px;line-height:.98}.experience-copy>p{font-size:19px;max-width:29ch;margin-top:19px}.desktop-break{display:none}.shoot-details{margin-top:12px}.experience-photo{inset:auto 0 0;height:300px;object-position:75% center}.steps p{font-size:16px}.goodbye{min-height:520px}.goodbye-copy{padding:36px var(--gutter) 250px}.goodbye h2{font-size:49px}.goodbye-photo{top:auto;bottom:70px;height:280px;object-position:78% center}footer{background:var(--blue);padding:22px var(--gutter);gap:18px}footer .wordmark{font-size:29px}.domain{font-size:13px;padding-left:18px}.booking{grid-template-columns:1fr;gap:30px;padding-block:44px}.booking h2{font-size:49px}.booking-intro p{margin-top:18px}.field-row{grid-template-columns:1fr;gap:0}}
@media(max-width:360px){.hero{min-height:665px}.hero-copy p{font-size:20px}.header .wordmark{font-size:32px}.experience h2,.goodbye h2,.booking h2{font-size:43px}footer{gap:12px}.domain{padding-left:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
select{-webkit-appearance:none;appearance:none;min-height:50px;padding-right:44px;background-image:url('/assets/chevron.svg');background-repeat:no-repeat;background-position:right 14px center;background-size:18px 18px;cursor:pointer}

/* The approved concept uses condensed display lettering and a rounded wordmark. */
h1,h2{font-family:Barlow,sans-serif;font-weight:800;letter-spacing:-.02em}
.header .wordmark{font-size:clamp(36px,4.6vw,52px)}
.photo-board{min-height:0}
.experience-copy{max-width:46%;padding-right:0}
.experience-copy>p{max-width:28ch}
.experience h2{color:var(--ink)}
.experience-photo{left:auto;width:63%;mask-image:linear-gradient(to right,transparent,#000 14%)}
@media(max-width:1000px) and (min-width:601px){.experience-copy{max-width:47%}.experience h2{font-size:clamp(44px,5.8vw,80px)}}
@media(max-width:600px){.header .wordmark{font-size:36px}.experience-copy{max-width:100%;padding-right:var(--gutter)}.experience-photo{width:100%;mask-image:linear-gradient(to bottom,transparent,#000 12%)}.hero-photo,.goodbye-photo{mask-image:linear-gradient(to bottom,transparent,#000 9%)}.hero{background:#7dccf2}.goodbye,footer{background:#85c9ee}}

.booking-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.button:disabled{opacity:.6;cursor:wait;transform:none}


/* Extend the same hero photograph behind the desktop navigation. */
.header{background:transparent}
.hero{background:#7dccf2}
.hero-photo{top:-98px;height:calc(100% + 98px)}
@media(min-width:601px) and (max-width:1000px){.hero-photo{top:-80px;height:calc(100% + 80px)}}
@media(max-width:600px){.header{background:#7dccf2}.hero-photo{top:auto;height:54%}}

@media(max-width:600px){
  .header{min-height:0;padding-block:14px 8px;gap:4px}
  nav{justify-content:flex-start;gap:24px}
  nav a{padding-block:8px;min-height:36px}
}
@media(max-width:360px){nav{gap:20px}}


.pet-details{border:0;border-top:1px solid #10100e33;margin:4px 0 24px;padding:20px 0 0;min-width:0}
.pet-details legend{font-weight:700;font-size:17px;padding:0 12px 0 0}
.pet-details .field-row{align-items:start}

.field-hint{display:block;margin-top:7px;font-size:13px;line-height:1.5;font-weight:400}

.pet-count-field{margin-bottom:24px}
.pet-count-field>label{margin-bottom:9px}
.pet-stepper{display:inline-grid;grid-template-columns:48px 60px 48px;border:1px solid var(--ink);background:white}
.pet-stepper button{display:grid;place-items:center;min-height:48px;padding:0;border:0;background:white}
.pet-stepper button:hover:not(:disabled){background:var(--yellow)}
.pet-stepper button:disabled{opacity:.35;cursor:not-allowed}
.pet-stepper input{width:60px;min-height:48px;height:48px;border:0;margin:0;padding:12px 4px;text-align:center;appearance:textfield;-moz-appearance:textfield}
.pet-stepper input::-webkit-inner-spin-button,.pet-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.pet-details:last-child{margin-bottom:0}

.breed-field{position:relative}
.breed-field input{padding-right:40px;background-image:url('/assets/chevron.svg');background-repeat:no-repeat;background-position:right 14px center;background-size:18px}
.breed-field input:disabled{background-color:#f5f5f5}
.breed-suggestions{position:absolute;top:100%;left:0;right:0;z-index:20;display:block;margin-top:4px;max-height:240px;overflow-y:auto;border:1px solid var(--ink);background:white;box-shadow:0 6px 12px #00000012;font-size:16px;font-weight:400;line-height:1.4;overscroll-behavior:contain;scrollbar-color:var(--ink) white;scrollbar-width:thin}
.breed-suggestions [role="option"]{display:block;padding:11px 12px;min-height:44px;cursor:pointer}
.breed-suggestions [aria-selected="true"]{background:var(--yellow);color:var(--ink)}

.booking-footer{padding:0;margin-top:32px;background:transparent}
@media(max-width:600px){.goodbye-photo{bottom:0}}

/* Allow the last section to align with the top even on tall displays. */
.booking{min-height:100svh}

.goodbye-photo{object-fit:contain;object-position:right center;mask-image:linear-gradient(to right,transparent 30%,#000 50%)}
@media(max-width:600px){.goodbye-photo{object-fit:cover;object-position:right top;mask-image:linear-gradient(to bottom,transparent,#000 3%)}}
.goodbye-photo{left:auto;right:0;width:auto;max-width:100%;mask-image:linear-gradient(to right,transparent,#000 18%)}
@media(max-width:600px){.goodbye-photo{width:100%;max-width:none;mask-image:linear-gradient(to bottom,transparent,#000 3%)}}
@media(min-width:1001px){.goodbye-photo{width:780px}}
@media(min-width:601px) and (max-width:1000px){.goodbye-photo{width:700px}}

/* The header and hero share the first screen; later sections begin below it. */
.hero{height:calc(100svh - var(--header-height,98px));min-height:0}
.hero-photo{top:calc(-1 * var(--header-height,98px));height:calc(100% + var(--header-height,98px))}
.hero-copy{padding-top:clamp(24px,9svh,100px);padding-bottom:0}
.hero h1{font-size:clamp(56px,min(8.3vw,15svh),120px)}
.hero-copy p{font-size:clamp(20px,min(2.6vw,4svh),34px)}
.hero-snapshot{bottom:20px;width:min(18%,26svh)}
@media(max-width:600px){
  .hero-copy{padding-top:44px}
  .hero h1{font-size:clamp(48px,min(14.9vw,11svh),80px)}
  .hero-photo{top:auto;height:56%}
  .hero-snapshot{width:clamp(84px,24vw,120px);bottom:16px}
}
@media(max-height:500px) and (min-width:601px){
  .hero-copy{padding-top:12px}
  .hero h1{font-size:clamp(40px,13svh,64px)}
  .hero-copy p{margin-top:12px}
  .hero-copy .button{margin-top:16px}
  .hero-snapshot{left:39%;width:20svh;bottom:12px}
  
}
@media(min-width:601px){.hero-snapshot{bottom:28px}}
@media(max-height:500px) and (min-width:601px){
  .header{background:#7dccf2}
  .hero-photo{top:0;height:100%;mask-image:linear-gradient(to bottom,transparent,#000 8%)}
  .hero-snapshot{bottom:12px}
}

/* Let the cat print dip past the first-screen edge without revealing the gallery. */
.hero-snapshot-frame{position:absolute;inset:0;overflow:clip;pointer-events:none;z-index:2}
.hero-snapshot{bottom:-28px}
@media(max-width:600px){.hero-snapshot{bottom:-16px}}
@media(max-height:500px) and (min-width:601px){.hero-snapshot{bottom:-12px}}

/* Keep the dog position independent of the continuous header/hero backdrop. */
@media(min-width:601px){
  .header{background:#7dccf2}
  .hero-photo{
    left:auto;right:0;top:auto;bottom:0;
    width:min(75%,calc((100svh - var(--header-height,98px)) * 1.5));
    height:auto;max-height:100%;object-fit:contain;object-position:right bottom;
    mask-image:none;
  }
}
@media(min-width:601px) and (max-width:1000px) and (min-height:800px){
  .hero-photo{width:100%;height:56%;max-height:none;object-fit:contain;object-position:right bottom;mask-image:none}
  
}

/* One blue surface behind the transparent dog portrait and navigation. */
.header,.hero{background:#7dccf2}
.hero-photo{mask-image:none}

/* Keep the complete fresh portrait within its responsive frame. */
.hero-photo{aspect-ratio:3/2;overflow:visible}
.hero-photo>img{position:absolute;bottom:0;left:0;width:100%;height:100%;max-width:none;object-fit:inherit;object-position:inherit}
body{isolation:isolate}
body::before{content:"";position:absolute;inset:0 0 auto;height:100svh;background:#7dccf2;z-index:-1;pointer-events:none}
.header,.hero{background:transparent}
@media(max-width:600px){.hero-photo{width:100%}}

.wordmark{display:inline-flex;align-items:center;gap:.22em}
.wordmark .wordmark-text{color:var(--ink)}
.wordmark-camera{width:.9em;height:.77em;flex:none;color:var(--ink);transform:rotate(-7deg);margin-left:.04em}

.booking-footer{display:inline-flex;width:fit-content;max-width:100%;padding:18px 22px;background:#7dccf2;border-radius:10px}

@media(max-width:600px){.header nav{gap:18px;flex-wrap:wrap;justify-content:flex-start}}

:root{--control-radius:6px}
.header nav{gap:8px}
.header nav a{padding:10px 12px;border-radius:var(--control-radius);text-decoration-line:none;transition:background-color .16s ease}
.header nav a:hover{background:var(--yellow);text-decoration-line:none}
.button,input,select,textarea{border-radius:var(--control-radius)}
.pet-stepper{border-radius:var(--control-radius)}
.pet-stepper button:first-child{border-radius:5px 0 0 5px}
.pet-stepper button:last-child{border-radius:0 5px 5px 0}
.pet-stepper input{border-radius:0}
.breed-suggestions{border-radius:var(--control-radius)}
@media(max-width:600px){.header nav{gap:4px;font-size:12px}.header nav a{padding:10px 8px}}
@media(max-width:360px){.header nav{display:grid;grid-template-columns:repeat(2,max-content);column-gap:12px;row-gap:0}}
@media(prefers-reduced-motion:reduce){.header nav a{transition:none}}

.mobile-nav-toggle{display:none;border:0;background:transparent;padding:10px;border-radius:var(--control-radius);width:44px;height:44px;flex:none}
.menu-close-icon{display:none}
@media(max-width:900px){
  .header[data-mobile-header],.portal-header[data-mobile-header]{position:relative;z-index:30;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;min-height:76px}
  .header[data-mobile-header] .wordmark,.portal-header[data-mobile-header] .wordmark{font-size:30px}
  [data-mobile-header] .mobile-nav-toggle{display:grid;place-items:center}
  .mobile-nav-toggle:hover,[data-menu-open] .mobile-nav-toggle{background:var(--yellow)}
  [data-mobile-header]:not([data-menu-open]) nav{display:none}
  .header[data-mobile-header][data-menu-open] nav,.portal-header[data-mobile-header][data-menu-open] nav{position:absolute;top:calc(100% - 1px);left:0;right:0;width:100%;display:grid;grid-template-columns:1fr;gap:4px;padding:8px 24px 20px;background:#7dccf2;font-size:16px;border-bottom:1px solid #10100e}
  [data-mobile-header] nav a,[data-mobile-header] nav .text-button{display:block;text-align:left;width:100%;min-height:44px;padding:12px;border-radius:var(--control-radius)}
  [data-menu-open] .menu-open-icon{display:none}
  [data-menu-open] .menu-close-icon{display:block}
}

.breed-suggestions,[role="listbox"]{scrollbar-width:none}
.breed-suggestions::-webkit-scrollbar,[role="listbox"]::-webkit-scrollbar{display:none}

@media(min-width:601px){
.photo-board[data-layout="1"]{grid-template-columns:28% 30% 42%}
.photo-board[data-layout="1"] .print-corgi{grid-column:3;grid-row:1/3;margin-right:0;margin-left:32px;transform:rotate(3deg)}
.photo-board[data-layout="1"] .print-dogs{grid-column:1/3;transform:rotate(4deg)}
.photo-board[data-layout="1"] .print-cat{grid-column:1;transform:rotate(-5deg)}
.photo-board[data-layout="2"] .print-corgi{transform:rotate(3deg)}
.photo-board[data-layout="2"] .print-dogs{transform:rotate(-2deg);margin-top:20px}
.photo-board[data-layout="2"] .print-cat{margin-top:95%;transform:rotate(8deg)}
}

.hero-snapshot-extra{display:none}
@media(min-width:901px){.hero-snapshot-extra{display:block;left:10%;right:auto;width:min(14%,22svh);max-width:190px;bottom:-20px;transform:rotate(9deg)}.hero-snapshot-extra img{object-position:50% 30%}}

.hero-snapshot-iguana{display:none}
@media(min-width:901px){.hero-snapshot-iguana{display:block;left:44%;right:auto;width:min(14%,22svh);max-width:190px;bottom:-24px;transform:rotate(8deg)}}

@media(min-width:901px){
  .hero-snapshot-frame{--snapshot-start:max(var(--gutter),calc((100vw - 1350px)/2));--snapshot-small:min(14vw,22svh,190px);--snapshot-cat:min(18vw,26svh,245px);--snapshot-gap:clamp(20px,2vw,32px)}
  .hero-snapshot{left:calc(var(--snapshot-start) + var(--snapshot-small) + var(--snapshot-gap));width:var(--snapshot-cat)}
  .hero-snapshot-extra{left:var(--snapshot-start);width:var(--snapshot-small)}
  .hero-snapshot-iguana{left:calc(var(--snapshot-start) + var(--snapshot-small) + var(--snapshot-cat) + 2 * var(--snapshot-gap));width:var(--snapshot-small)}
}

.hero-photo>img{transform:scale(1.15);transform-origin:right bottom}
@media(max-width:600px){.hero-photo>img{transform:scale(1.08)}}

:root{--section-inset:max(var(--gutter),calc((100vw - 1350px)/2))}
.experience-copy{padding-left:var(--section-inset)}
.booking-combined{background:#85c9ee;min-height:440px;padding:0;scroll-margin-top:0}
.booking-content{position:relative;z-index:1;width:min(580px,calc(55% - var(--section-inset)));margin-left:var(--section-inset);padding:50px 0 40px}
.booking-combined .booking-footer{display:none}
.booking-combined #booking-action{margin-top:24px}
.booking-combined #booking-form{margin-top:30px}
.booking-combined .goodbye-photo{top:auto;bottom:0;height:440px;object-position:right bottom}
.booking-combined.is-booking-open .goodbye-photo{width:min(60%,1000px);height:680px;object-fit:contain;object-position:right bottom;mask-image:linear-gradient(to right,transparent,#000 18%);mask-composite:add}
.booking-combined.is-booking-open .booking-content{padding-bottom:60px}
.booking-combined.is-booking-open #booking-action{margin-top:0}
.booking-combined .form-status:empty{display:none}
@media(max-width:600px){
.booking-combined{min-height:520px}
.booking-content{width:auto;margin:0;padding:36px var(--gutter) 310px}
.booking-combined .goodbye-photo{height:280px;width:100%}
.booking-combined.is-booking-open{display:flex;flex-direction:column}
.booking-combined.is-booking-open .booking-content{display:contents}
.booking-combined.is-booking-open .booking-intro{order:1;padding:36px var(--gutter) 0}
.booking-combined.is-booking-open #booking-form{order:2;margin:30px var(--gutter) 0}
.booking-combined.is-booking-open #booking-action{order:3;align-self:flex-start;margin:0 var(--gutter)}
.booking-combined.is-booking-open #booking-status{order:4;margin:18px var(--gutter) 0}
.booking-combined.is-booking-open .goodbye-photo{position:static;order:5;width:100%;height:360px;object-fit:cover;object-position:right bottom;mask-image:linear-gradient(to bottom,transparent,#000 10%)}
}

.experience-photo,.booking-combined .goodbye-photo,.booking-combined.is-booking-open .goodbye-photo{mask-image:none}

/* Cast shadows upward behind the animals, with no downward offset. */
.hero-photo>img,.experience-photo,.booking-combined .goodbye-photo{filter:none}
@media(min-width:601px){
  .experience-photo{left:0;right:auto;width:58%;transform:scaleX(-1);filter:none}
  .experience-copy{margin-left:50%;width:50%;max-width:none;padding:62px var(--section-inset) 62px var(--gutter)}
}
@media(max-width:600px){
  .hero-photo>img,.experience-photo,.booking-combined .goodbye-photo{filter:none}
}

.booking-combined:not(.is-booking-open){min-height:360px}
.booking-combined:not(.is-booking-open) .goodbye-photo{height:360px}
@media(max-width:600px){
  .booking-combined:not(.is-booking-open){min-height:440px}
  .booking-combined:not(.is-booking-open) .booking-content{padding-bottom:230px}
  .booking-combined:not(.is-booking-open) .goodbye-photo{height:280px}
}

@media(min-width:901px) and (min-height:601px){.hero-copy{padding-top:calc(clamp(24px,9svh,100px) + 24px)}}

@media(max-width:600px){
  .hero-snapshot-frame{--mobile-snapshot-size:clamp(84px,24vw,110px)}
  .hero-snapshot{left:var(--gutter);width:var(--mobile-snapshot-size);max-width:none;bottom:calc(var(--mobile-snapshot-size) * .82 - 16px);z-index:3}
  .hero-snapshot-extra{display:block;right:auto;bottom:calc(var(--mobile-snapshot-size) * 1.64 - 16px);transform:rotate(9deg);z-index:2}
  .hero-snapshot-iguana{display:block;right:auto;bottom:-16px;transform:rotate(8deg);z-index:4}
}

:root{--header-height:98px}
@media(min-width:901px) and (max-width:1000px){:root{--header-height:80px}}
@media(max-width:900px){:root{--header-height:76px}}
.header[data-mobile-header]{height:var(--header-height);min-height:var(--header-height)}

/* Keep the contact cutout independent of browser SVG-filter rendering. */
.booking-combined .goodbye-photo{filter:none}
@media(max-width:600px){
  .hero-copy{padding-top:76px}
  .experience-photo{filter:none}
}

/* Independent shadow layers leave the visible cutouts unfiltered. */
.hero-photo>img:not(.cutout-shadow),.experience-photo:not(.cutout-shadow),.booking-combined .goodbye-photo:not(.cutout-shadow){filter:none;z-index:1}
.hero-photo>img.cutout-shadow,.experience-photo.cutout-shadow,.booking-combined .goodbye-photo.cutout-shadow{
  filter:brightness(0) blur(3px);opacity:.08;translate:8px -5px;
  mask-image:linear-gradient(to bottom,#000 0%,#000 65%,transparent 94%);pointer-events:none;z-index:0;
}
@media(min-width:601px){.experience-photo.cutout-shadow{translate:8px -5px}}
@media(max-width:600px){
  .hero-photo>img.cutout-shadow,.experience-photo.cutout-shadow,.booking-combined .goodbye-photo.cutout-shadow{opacity:.07;translate:6px -4px}
  .booking-combined.is-booking-open .goodbye-photo.cutout-shadow{position:absolute;bottom:0;top:auto}
}

@media(max-width:600px){
  .experience{min-height:0}
  .experience-copy{padding-bottom:270px}
  .experience-photo{height:300px}
}

@media(max-width:600px){.portfolio h2,.experience h2,.booking-combined h2{font-size:49px;line-height:.98}}

@media(max-width:360px){.portfolio h2,.experience h2,.booking-combined h2{font-size:43px}}

html[data-initial-section] {scroll-behavior:auto}
html[data-initial-section] body{visibility:hidden}
.location-field{position:relative}.location-empty{display:block;padding:12px;line-height:1.5}

/* Use the same underline metrics for text links and button-based links. */
a,button,summary,.gallery-row h2,.gallery-row h3{text-underline-offset:6px;text-decoration-thickness:1px;text-decoration-style:solid;text-decoration-skip-ink:auto}

.booking-combined .goodbye-photo.cutout-shadow{filter:none}
.booking-confirmation{margin-top:28px;max-width:36ch;outline:none}
.booking-confirmation h3{margin:0 0 12px;font-size:24px;line-height:1.3}
.booking-confirmation p{font-size:17px;line-height:1.6}
@media(max-width:600px){.booking-combined.is-booking-sent .booking-content{padding-bottom:300px}}

.booking-combined #booking-form{position:relative;z-index:2}
.breed-field:focus-within,.location-field:focus-within{z-index:21}
.breed-suggestions{border-radius:6px}

.breed-suggestions[popover]{padding:0;color:var(--ink)}
.breed-suggestions::backdrop{background:transparent;pointer-events:none}
/* Keep offset cutout shadows inside the section width without clipping height. */
.hero,.experience,.booking-combined{overflow-x:clip}

/* Keep the hover target and neighboring prints stable during the tilt. */
.photo-board{isolation:isolate}
.photo-print{transform:translate3d(0,0,0);backface-visibility:hidden;will-change:transform;pointer-events:none;transition:none}
.photo-print:hover{box-shadow:0 1px 7px #0002}
@media(hover:hover) and (pointer:fine){
  .photo-print{transition:transform .2s ease-out}
  .print:hover>.photo-print{transform:translate3d(0,0,0) rotate(2deg)}
  .print-dogs:hover>.photo-print{transform:translate3d(0,0,0) rotate(-2deg)}
}
@media(prefers-reduced-motion:reduce){.photo-print{transition:none}.print:hover>.photo-print{transform:translate3d(0,0,0)}}

.hero-snapshot{padding:0;background:transparent;box-shadow:none;pointer-events:auto}
.hero-snapshot-print{display:block;width:100%;height:100%;padding:8px;background:white;box-shadow:0 4px 8px #0002;transform:translate3d(0,0,0);backface-visibility:hidden;will-change:transform;pointer-events:none}
@media(max-width:600px){.hero-snapshot-print{padding:6px}}
@media(hover:hover) and (pointer:fine){
  .hero-snapshot-print{transition:transform .2s ease-out}
  .hero-snapshot:hover>.hero-snapshot-print{transform:translate3d(0,0,0) rotate(2deg)}
  .hero-snapshot-extra:hover>.hero-snapshot-print{transform:translate3d(0,0,0) rotate(-2deg)}
}
@media(prefers-reduced-motion:reduce){.hero-snapshot-print{transition:none}.hero-snapshot:hover>.hero-snapshot-print{transform:translate3d(0,0,0)}}
