:root {
  color-scheme: light;
  --ink: #18312e;
  --muted: #5f706c;
  --cream: #fffaf0;
  --peach: #f2b49f;
  --coral: #dd735f;
  --sage: #a8c2a4;
  --line: rgba(24, 49, 46, 0.14);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 320px;
  background: #f5e8d7;
  color: var(--ink);
  font-family: Inter, ui-rounded, "Segoe UI", system-ui, sans-serif;
}

a { color: inherit; }

.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 72% 46%, rgba(255, 252, 238, 0.9), transparent 35%),
    linear-gradient(135deg, #f8eee1 0%, #efd9c5 54%, #d8c5b7 100%);
}

#room-scene,
.scene-fallback,
.scene-vignette {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

#room-scene { z-index: -2; image-rendering: pixelated; }

.scene-fallback {
  z-index: -3;
  opacity: 0.85;
  transition: opacity 220ms ease;
}

.scene-fallback::before {
  content: "";
  position: absolute;
  left: 73.5%;
  top: 50.5%;
  width: clamp(1075.2px, min(124vw, 182vh), 1761.28px);
  aspect-ratio: 1;
  background: url("./images/catroom/Room1.png") center / 100% 100% no-repeat;
  image-rendering: pixelated;
  transform: translate(-50%, -50%);
}

.hero.scene-ready .scene-fallback { opacity: 0; }

.scene-vignette {
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(248, 238, 225, 0.98) 0%, rgba(248, 238, 225, 0.9) 26%, rgba(248, 238, 225, 0.18) 52%, transparent 72%),
    linear-gradient(0deg, rgba(83, 60, 49, 0.16), transparent 24%);
}

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1.2rem, 3vw, 2.35rem) clamp(1.25rem, 5vw, 5rem);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  width: 2.8rem;
  aspect-ratio: 1;
  place-items: center;
  border: 2px solid var(--ink);
  border-radius: 0.9rem 0.9rem 0.9rem 0.25rem;
  background: var(--peach);
  box-shadow: 4px 4px 0 var(--ink);
  font: 800 1.35rem/1 Georgia, serif;
}

.brand strong,
.brand small { display: block; }

.brand strong {
  font: 700 1.1rem/1.05 Georgia, serif;
  letter-spacing: -0.02em;
}

.brand small {
  margin-top: 0.28rem;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.header-link {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--ink);
  font-size: 0.82rem;
  font-weight: 750;
  text-decoration: none;
}

.hero-copy {
  position: relative;
  z-index: 2;
  width: min(43rem, 50vw);
  padding: clamp(8rem, 17vh, 12rem) 0 4rem clamp(1.25rem, 7vw, 7rem);
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 1.35rem;
  color: #925849;
  font-size: clamp(0.72rem, 0.9vw, 0.86rem);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.eyebrow span {
  width: 1.9rem;
  height: 2px;
  background: var(--coral);
}

h1 {
  margin: 0;
  color: var(--ink);
  font: 700 clamp(3.45rem, 6.8vw, 7.25rem)/0.86 Georgia, "Times New Roman", serif;
  letter-spacing: -0.072em;
}

h1 em {
  display: inline-block;
  color: var(--coral);
  font-weight: 400;
}

.intro {
  max-width: 34rem;
  margin: clamp(1.6rem, 3.2vh, 2.4rem) 0 0;
  color: #415653;
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  line-height: 1.65;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: clamp(1.7rem, 3.5vh, 2.7rem);
}

.button {
  display: inline-flex;
  min-height: 3.45rem;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.9rem 1.35rem;
  border: 1px solid var(--ink);
  border-radius: 0.9rem;
  font-size: 0.91rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.button:hover { transform: translateY(-2px); }
.button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

.button-primary {
  background: var(--ink);
  color: #fffdf8;
  box-shadow: 5px 5px 0 var(--peach);
}

.button-secondary { background: rgba(255, 250, 240, 0.64); }
.button-secondary:hover { background: var(--cream); }

.trust-row {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-top: clamp(2rem, 5vh, 3.6rem);
  text-decoration: none;
}

.stars {
  padding: 0.62rem 0.72rem;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: rgba(255, 250, 240, 0.7);
  color: #d46b54;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
}

.trust-row strong,
.trust-row span { display: block; }
.trust-row strong { font-size: 0.82rem; }
.trust-row span { margin-top: 0.17rem; color: var(--muted); font-size: 0.72rem; }

.room-note {
  position: absolute;
  right: clamp(1rem, 4vw, 4rem);
  bottom: clamp(1rem, 4vh, 2.7rem);
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.72rem 0.9rem;
  border: 1px solid rgba(24, 49, 46, 0.13);
  border-radius: 0.9rem;
  background: rgba(255, 250, 240, 0.75);
  box-shadow: 0 12px 30px rgba(49, 37, 31, 0.08);
  backdrop-filter: blur(8px);
}

.room-note-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #6ca56e;
  box-shadow: 0 0 0 4px rgba(108, 165, 110, 0.15);
}

.room-note strong,
.room-note span { display: block; }
.room-note strong { font-size: 0.72rem; }
.room-note span { color: var(--muted); font-size: 0.64rem; }

.scene-status {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  z-index: 5;
  margin: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .scene-fallback::before {
    left: 50%;
    top: 74%;
    width: max(696.32px, min(217.34vw, 118.56vh));
  }

  .scene-vignette {
    background:
      linear-gradient(180deg, rgba(248, 238, 225, 0.98) 0%, rgba(248, 238, 225, 0.91) 42%, rgba(248, 238, 225, 0.2) 69%, transparent 84%),
      linear-gradient(0deg, rgba(83, 60, 49, 0.12), transparent 24%);
  }

  .hero-copy {
    width: 100%;
    padding: 7.5rem 1.25rem 52vh;
  }

  h1 { font-size: clamp(3.2rem, 15vw, 5.6rem); }
  .intro { max-width: 31rem; font-size: 1rem; }
  .trust-row { margin-top: 1.8rem; }
  .room-note { display: none; }
}

@media (max-width: 560px) {
  .site-header { padding: 1.1rem 1rem; }
  .header-link { font-size: 0; }
  .header-link span { font-size: 1.1rem; }
  .hero-copy { padding: 6.7rem 1rem 47vh; }
  .hero-actions { align-items: stretch; flex-direction: column; width: min(100%, 23rem); }
  .button { width: 100%; }
  .trust-row { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.subpage { min-height: 100vh; background: #f7ecdf; }
.subpage-header { display:flex;position:relative;z-index:2;width:min(100% - 2rem,86rem);margin:0 auto;padding:1.5rem 0;align-items:center;justify-content:space-between;gap:2rem; }
.subpage-nav { display:flex;flex-wrap:wrap;align-items:center;gap:clamp(.7rem,2vw,1.5rem); }
.subpage-nav a { padding:.4rem 0;border-bottom:1px solid transparent;font-size:.82rem;font-weight:800;text-decoration:none; }
.subpage-nav a:hover,.subpage-nav a[aria-current="page"] { border-color:var(--coral);color:#925849; }
.services-page { width:min(100% - 2rem,78rem);margin:0 auto;padding:clamp(4rem,9vh,7rem) 0 6rem; }
.subpage-intro { max-width:52rem; }.subpage-intro h1 { font-size:clamp(3.6rem,8vw,7.5rem); }.subpage-intro>p:last-child { max-width:43rem;margin:1.6rem 0 0;color:#415653;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65; }
.services-intro { display:grid;max-width:none;grid-template-columns:minmax(0,2fr) minmax(22rem,1fr);gap:clamp(2rem,5vw,5rem);align-items:center; }
.services-intro-copy>p:last-child { max-width:43rem;margin:1.6rem 0 0;color:#415653;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65; }
.services-cat-stage { position:relative;display:grid;min-height:29rem;place-items:center;isolation:isolate; }
.services-cat-float { display:grid;width:32px;height:32px;place-items:center;animation:services-cat-float 2.8s ease-in-out infinite; }
.services-cat-sprite { display:block;width:32px;height:32px;background:url("./images/cat1/Box3.png") 0 0 / 128px 32px no-repeat;image-rendering:pixelated;transform:scale(14);animation:services-cat-frames .9s steps(4) infinite; }
.services-cat-shadow { position:absolute;bottom:1.8rem;z-index:-1;width:18rem;height:1.8rem;border-radius:50%;background:rgba(24,49,46,.14);filter:blur(10px);animation:services-cat-shadow 2.8s ease-in-out infinite; }
@keyframes services-cat-frames { to { background-position:-128px 0; } }
@keyframes services-cat-float { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-.6rem) rotate(1deg); } }
@keyframes services-cat-shadow { 0%,100% { opacity:.72;transform:scaleX(1); } 50% { opacity:.42;transform:scaleX(.88); } }
.price-grid { display:grid;margin-top:clamp(3rem,7vh,5rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;align-items:stretch; }
.price-card { display:flex;min-height:29rem;padding:clamp(1.4rem,3vw,2.2rem);flex-direction:column;border:1px solid var(--line);border-radius:1.35rem;background:rgba(255,250,240,.82);box-shadow:0 18px 45px rgba(70,49,39,.07); }.price-card.featured { border-color:rgba(221,115,95,.65);box-shadow:7px 7px 0 rgba(242,180,159,.7); }
.price-label { margin:0 0 .65rem;color:#925849;font-size:.7rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase; }.price-card h2 { margin:0;font:700 clamp(1.7rem,3vw,2.4rem)/1 Georgia,serif; }.price { display:flex;margin:1.35rem 0 .2rem;align-items:baseline;gap:.45rem; }.price strong { font:700 2rem/1 Georgia,serif; }.price span,.duration { color:var(--muted);font-size:.78rem; }.duration { margin:.35rem 0 0; }.service-description { margin:1.3rem 0 0;color:#415653;line-height:1.65; }
.price-card ul { display:grid;margin:1.3rem 0 1.8rem;padding:0;gap:.6rem;list-style:none; }.price-card li { position:relative;padding-left:1.35rem;color:#415653;font-size:.86rem; }.price-card li::before { content:"✓";position:absolute;left:0;color:var(--coral);font-weight:900; }.price-card .button { margin-top:auto;align-self:flex-start; }.price-footnote { max-width:45rem;margin:2rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.6; }
.additional-charges { display:grid;margin-top:1.25rem;padding:clamp(1.4rem,3vw,2.2rem);grid-template-columns:minmax(15rem,.72fr) minmax(0,1.28fr);gap:clamp(1.5rem,4vw,3.5rem);border:1px solid var(--line);border-radius:1.35rem;background:#18312e;color:#fffaf0;box-shadow:0 18px 45px rgba(70,49,39,.1); }
.additional-charges-heading .price-label { color:#f2b49f; }.additional-charges-heading h2 { margin:.5rem 0 0;font:700 clamp(2rem,4vw,3rem)/1 Georgia,serif; }.additional-charges-heading>p:last-child { margin:1rem 0 0;color:rgba(255,250,240,.68);font-size:.88rem;line-height:1.6; }
.charge-list { display:grid;grid-template-columns:1fr 1fr;gap:.7rem; }.charge-item { display:grid;padding:1rem;grid-template-columns:auto 1fr;gap:1rem;align-items:start;border:1px solid rgba(255,250,240,.13);border-radius:.9rem;background:rgba(255,250,240,.055); }.charge-amount { display:grid;min-width:5.5rem;margin:0;gap:.2rem; }.charge-amount strong { color:#f2b49f;font:700 1.55rem/1 Georgia,serif; }.charge-amount span { color:rgba(255,250,240,.58);font-size:.66rem;line-height:1.25; }.charge-item h3 { margin:0;font:700 1.05rem/1.1 Georgia,serif; }.charge-item div p { margin:.45rem 0 0;color:rgba(255,250,240,.65);font-size:.76rem;line-height:1.5; }
.empty-price-list { margin-top:3rem;padding:2rem;border:1px solid var(--line);border-radius:1.25rem;background:rgba(255,250,240,.75); }.empty-price-list h2 { margin-top:0;font:700 2rem/1 Georgia,serif; }.empty-price-list p { color:var(--muted); }.empty-price-list .button { margin-top:1rem; }
.small-pets-callout { display:flex;margin-top:1.25rem;padding:clamp(1.4rem,3vw,2.2rem);align-items:center;justify-content:space-between;gap:2rem;border:1px solid rgba(221,115,95,.38);border-radius:1.35rem;background:rgba(242,180,159,.2); }
.small-pets-callout h2 { margin:.25rem 0 0;font:700 clamp(1.8rem,3vw,2.7rem)/1 Georgia,serif;letter-spacing:-.035em; }.small-pets-callout p:not(.price-label) { max-width:47rem;margin:.9rem 0 0;color:#415653;line-height:1.65; }.small-pets-callout .button { flex:none; }
@media(max-width:900px){.services-intro{grid-template-columns:1fr;gap:1rem}.services-cat-stage{min-height:20rem}.services-cat-sprite{transform:scale(10)}.services-cat-shadow{bottom:.85rem;width:13rem}}
@media(max-width:800px){.additional-charges{grid-template-columns:1fr}.charge-list{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.subpage-header{align-items:flex-start;flex-direction:column}.subpage-nav{width:100%;justify-content:flex-start;gap:.5rem 1rem}.services-page{padding-top:3rem}.charge-list{grid-template-columns:1fr}.price-card{min-height:0}.small-pets-callout{align-items:stretch;flex-direction:column}.small-pets-callout .button{width:100%}}

.booking-page { width:min(100% - 2rem,78rem);margin:0 auto;padding:clamp(4rem,8vh,6rem) 0 7rem; }.booking-intro { display:grid;max-width:none;grid-template-columns:minmax(0,1.3fr) minmax(30rem,.7fr);gap:clamp(2rem,5vw,5rem);align-items:center; }.booking-intro-copy>p:last-child { max-width:43rem;margin:1.6rem 0 0;color:#415653;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65; }.booking-cat-stage { position:relative;width:min(100%,31rem);aspect-ratio:1;overflow:hidden;justify-self:center; }.booking-cat-sprite { position:absolute;inset:0;display:block;background:url("./images/cat1/Eat1.png") 0 0 / 300% 200% no-repeat;image-rendering:pixelated;animation:booking-cat-eat 1.5s step-end infinite; }.booking-form { display:grid;margin-top:clamp(3rem,7vh,5rem);gap:1rem; }
@keyframes booking-cat-eat {
  0%,100% { background-position:0 0;transform:translate(-4.22%,.49%); }
  16.666% { background-position:50% 0;transform:translate(0,0); }
  33.333% { background-position:100% 0;transform:translate(2.66%,-1.9%); }
  50% { background-position:0 100%;transform:translate(-4.18%,5.16%); }
  66.666% { background-position:50% 100%;transform:translate(.02%,2.99%); }
  83.333% { background-position:100% 100%;transform:translate(2.66%,1.48%); }
}
.booking-form-section { display:grid;padding:clamp(1.2rem,3vw,2rem);grid-template-columns:auto 1fr;gap:1.2rem;border:1px solid var(--line);border-radius:1.3rem;background:rgba(255,250,240,.85);box-shadow:0 18px 45px rgba(70,49,39,.06); }.form-section-number { display:grid;width:2.2rem;height:2.2rem;place-items:center;border-radius:50%;color:#fff;background:var(--coral);font-weight:900; }
.booking-fields { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }.booking-fields h2 { grid-column:1/-1;margin:0 0 .3rem;font:700 2rem/1 Georgia,serif; }.booking-fields label { display:grid;gap:.45rem;font-size:.82rem;font-weight:800; }.booking-fields input,.booking-fields select,.booking-fields textarea { width:100%;padding:.8rem;border:1px solid rgba(24,49,46,.2);border-radius:.7rem;color:var(--ink);background:#fff;font:inherit; }.booking-fields input:focus,.booking-fields select:focus,.booking-fields textarea:focus { border-color:var(--coral);outline:3px solid rgba(221,115,95,.14); }.booking-fields .wide { grid-column:1/-1; }
.slot-message { min-height:1.2rem;margin:0;color:var(--muted);font-size:.78rem;line-height:1.5; }.booking-submit { display:flex;padding:1.2rem 0;align-items:center;justify-content:space-between;gap:1.5rem; }.booking-submit p { max-width:36rem;margin:0;color:var(--muted);font-size:.82rem;line-height:1.55; }.booking-submit .button { flex:none; }.booking-result { display:none;padding:1rem;border-radius:.8rem;line-height:1.6; }.booking-result:not(:empty) { display:block; }.booking-result.success { color:#295b40;background:#e2f1e7; }.booking-result.error { color:#86251f;background:#fee9e7; }
@media(max-width:950px){.booking-intro{grid-template-columns:1fr}.booking-cat-stage{width:min(100%,27rem);margin-top:1rem}}
@media(max-width:700px){.booking-page{padding-top:3rem}.booking-form-section{grid-template-columns:1fr}.booking-fields{grid-template-columns:1fr}.booking-fields h2,.booking-fields .wide{grid-column:auto}.booking-submit{align-items:stretch;flex-direction:column}.booking-submit .button{width:100%}}

.page-transition-curtain {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-content: center;
  gap: .8rem;
  overflow: hidden;
  color: #fffaf0;
  background:
    radial-gradient(circle at 72% 28%, rgba(242, 180, 159, .28), transparent 22rem),
    #18312e;
  pointer-events: none;
  text-align: center;
  transform: translateX(-105%);
  will-change: transform;
}
.page-transition-curtain::before,
.page-transition-curtain::after {
  position: absolute;
  width: clamp(8rem, 16vw, 15rem);
  aspect-ratio: 1;
  border: 1px solid rgba(255, 250, 240, .12);
  border-radius: 50%;
  content: "";
}
.page-transition-curtain::before { top: -4rem; left: 12%; }
.page-transition-curtain::after { right: 9%; bottom: -6rem; }
.page-transition-curtain.covering {
  transform: translateX(0);
  transition: transform 320ms cubic-bezier(.72, 0, .2, 1);
}
.page-transition-curtain.covered { transform: translateX(0); }
.page-transition-curtain.revealing {
  transform: translateX(105%);
  transition: transform 320ms cubic-bezier(.72, 0, .2, 1);
}
.transition-paw {
  display: block;
  font-size: clamp(3rem, 7vw, 5.5rem);
  line-height: 1;
  transform: rotate(-12deg);
  animation: transition-paw-step 520ms ease-in-out infinite alternate;
}
.transition-name {
  font: 700 clamp(1rem, 2vw, 1.35rem)/1.1 Georgia, serif;
  letter-spacing: .035em;
}
.page-is-transitioning { cursor: progress; }
@keyframes transition-paw-step {
  to { transform: translateY(-.35rem) rotate(12deg) scale(1.04); }
}
@media(prefers-reduced-motion:reduce) {
  .page-transition-curtain.covering,
  .page-transition-curtain.revealing { transition-duration: 0ms !important; }
  .transition-paw { animation: none; }
  .services-cat-float,
  .services-cat-sprite,
  .services-cat-shadow,
  .booking-cat-sprite { animation: none; }
}

.area-page { width:min(100% - 2rem,78rem);margin:0 auto;padding:clamp(4rem,8vh,6rem) 0 7rem; }
.area-intro { display:grid;max-width:none;grid-template-columns:minmax(0,1.4fr) minmax(24rem,.6fr);gap:clamp(2rem,5vw,5rem);align-items:center; }
.area-intro-copy>p:last-child { max-width:43rem;margin:1.6rem 0 0;color:#415653;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65; }
.area-cat-stage { position:relative;width:min(100%,27rem);aspect-ratio:1;overflow:hidden;justify-self:center; }
.area-cat-sprite { position:absolute;inset:0;display:block;background:url("./images/cat1/dance.png") 0 0 / 300% 200% no-repeat;image-rendering:pixelated;animation:area-cat-dance 1.35s step-end infinite; }
@keyframes area-cat-dance {
  0%,100% { background-position:0 0;transform:translate(-3.32%,0); }
  16.666% { background-position:50% 0;transform:translate(0,-.59%); }
  33.333% { background-position:100% 0;transform:translate(6.35%,0); }
  50% { background-position:0 100%;transform:translate(-2.44%,4.49%); }
  66.666% { background-position:50% 100%;transform:translate(.29%,4.69%); }
  83.333% { background-position:100% 100%;transform:translate(3.52%,4.49%); }
}
@media(prefers-reduced-motion:reduce){.area-cat-sprite{animation:none}}
.coverage-card { display:grid;overflow:hidden;margin-top:clamp(3rem,7vh,5rem);grid-template-columns:minmax(0,1.12fr) minmax(20rem,.88fr);border:1px solid var(--line);border-radius:1.6rem;background:rgba(255,250,240,.86);box-shadow:0 24px 65px rgba(70,49,39,.09); }
.coverage-map { display:grid;min-height:37rem;place-items:center;background:#dcebdc; }
.coverage-map>img { display:block;width:100%;height:100%;max-height:46rem;object-fit:contain;background:#eff5ed; }
.coverage-illustration { position:relative;display:grid;width:100%;height:100%;min-height:37rem;overflow:hidden;place-content:center;color:#18312e;background:linear-gradient(145deg,#cde8d6,#d7ebef);text-align:center;isolation:isolate; }
.coverage-illustration::before { position:absolute;inset:9% 8% 12%;z-index:-1;border-radius:48% 42% 52% 38%;content:"";background:rgba(112,132,190,.55);transform:rotate(-7deg);box-shadow:5rem 2rem 0 rgba(112,132,190,.28),-3rem 5rem 0 rgba(112,132,190,.32); }
.coverage-illustration::after { position:absolute;inset:0;z-index:-2;content:"";opacity:.45;background-image:linear-gradient(32deg,transparent 48%,rgba(255,255,255,.8) 49%,rgba(255,255,255,.8) 51%,transparent 52%),linear-gradient(122deg,transparent 48%,rgba(92,137,121,.35) 49%,rgba(92,137,121,.35) 51%,transparent 52%);background-size:7rem 7rem,9rem 9rem; }
.coverage-illustration strong { margin-top:1rem;font:700 clamp(2.3rem,5vw,4rem)/1 Georgia,serif; }.coverage-illustration small { margin-top:.5rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase; }.map-pin { display:grid;width:4rem;aspect-ratio:1;margin:auto;place-items:center;border:3px solid var(--ink);border-radius:50% 50% 50% 15%;color:var(--ink);background:var(--peach);box-shadow:5px 5px 0 var(--ink);font:800 1.5rem/1 Georgia,serif;transform:rotate(-45deg); }.map-pin::first-letter { transform:rotate(45deg); }
.coverage-copy { display:flex;padding:clamp(2rem,5vw,4rem);flex-direction:column;justify-content:center; }.coverage-base { margin:0 0 1rem;color:#925849;font-size:.76rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase; }.coverage-copy h2 { margin:0;font:700 clamp(2.2rem,4vw,3.8rem)/.98 Georgia,serif;letter-spacing:-.045em; }.coverage-copy>p:not(.coverage-base):not(.boundary-note) { margin:1.4rem 0 0;color:#415653;line-height:1.7; }
.area-chips { display:flex;margin:1.7rem 0 0;padding:0;flex-wrap:wrap;gap:.55rem;list-style:none; }.area-chips li { padding:.55rem .8rem;border:1px solid rgba(24,49,46,.18);border-radius:999px;background:#fff;font-size:.78rem;font-weight:750; }
.boundary-note { display:grid;margin:1.6rem 0 0;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;color:var(--muted);font-size:.82rem;line-height:1.55; }.boundary-note span { display:grid;width:1.5rem;aspect-ratio:1;place-items:center;border-radius:50%;color:#fff;background:var(--coral);font-weight:900; }.coverage-copy .button { margin-top:1.8rem;align-self:flex-start; }
@media(max-width:850px){.area-intro{grid-template-columns:1fr}.area-cat-stage{width:min(100%,24rem);margin-top:1rem}.coverage-card{grid-template-columns:1fr}.coverage-map,.coverage-illustration{min-height:min(75vw,32rem)}}
@media(max-width:560px){.area-page{padding-top:3rem}.coverage-copy{padding:1.5rem}.coverage-copy .button{width:100%}}

.gallery-page { width:min(100% - 2rem,82rem);margin:0 auto;padding:clamp(4rem,8vh,6rem) 0 7rem; }.gallery-intro { display:grid;max-width:none;grid-template-columns:minmax(0,1.35fr) minmax(28rem,.65fr);gap:clamp(2rem,5vw,5rem);align-items:center; }.gallery-intro-copy>p:last-child { max-width:43rem;margin:1.6rem 0 0;color:#415653;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65; }.gallery-cat-stage { position:relative;width:min(100%,30rem);aspect-ratio:1;overflow:hidden;justify-self:center; }.gallery-cat-sprite { position:absolute;inset:0;display:block;background:url("./images/cat1/post.png") 0 0 / 400% 200% no-repeat;image-rendering:pixelated;animation:gallery-cat-scratch 1.6s step-end infinite; }
@keyframes gallery-cat-scratch {
  0%,100% { background-position:0 0;transform:translate(-2.36%,0); }
  12.5% { background-position:33.333% 0;transform:translate(.9%,0); }
  25% { background-position:66.667% 0;transform:translate(1.92%,0); }
  37.5% { background-position:100% 0;transform:translate(-.56%,0); }
  50% { background-position:0 100%;transform:translate(-.9%,1.58%); }
  62.5% { background-position:33.333% 100%;transform:translate(0,1.58%); }
  75% { background-position:66.667% 100%;transform:translate(1.13%,1.58%); }
  87.5% { background-position:100% 100%;transform:translate(-.9%,1.58%); }
}
@media(prefers-reduced-motion:reduce){.gallery-cat-sprite{animation:none}}
.public-gallery { display:grid;margin-top:clamp(3rem,7vh,5rem);grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:.85rem; }
.gallery-tile { position:relative;min-height:21rem;overflow:hidden;padding:0;border:0;border-radius:1.25rem;color:#fff;background:#d8e5dd;box-shadow:0 15px 35px rgba(70,49,39,.09);cursor:zoom-in;text-align:left; }.gallery-tile.featured { grid-column:span 2;grid-row:span 2;min-height:42.85rem; }.gallery-tile img,.gallery-tile video { display:block;width:100%;height:100%;object-fit:cover;transition:transform 350ms ease; }.gallery-tile:hover img,.gallery-tile:hover video { transform:scale(1.035); }.gallery-tile:focus-visible { outline:4px solid var(--coral);outline-offset:3px; }
.video-badge { position:absolute;inset:50% auto auto 50%;display:grid;width:3.4rem;aspect-ratio:1;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(24,49,46,.72);box-shadow:0 8px 25px rgba(0,0,0,.18);transform:translate(-50%,-50%);backdrop-filter:blur(8px); }
.tile-caption { position:absolute;inset:auto 0 0;display:grid;padding:3.5rem 1.2rem 1.1rem;gap:.25rem;background:linear-gradient(transparent,rgba(24,49,46,.88)); }.tile-caption strong { font:700 1.35rem/1 Georgia,serif; }.tile-caption small { overflow:hidden;font-size:.76rem;line-height:1.45;text-overflow:ellipsis;white-space:nowrap; }
.empty-gallery { display:grid;margin-top:4rem;padding:clamp(3rem,8vw,7rem);place-items:center;border:1px dashed rgba(24,49,46,.25);border-radius:1.5rem;background:rgba(255,250,240,.65);text-align:center; }.empty-gallery>div { font-size:4rem; }.empty-gallery h2 { margin:1rem 0 0;font:700 clamp(2rem,4vw,3.5rem)/1 Georgia,serif; }.empty-gallery p { margin:.8rem 0 0;color:var(--muted); }.empty-gallery .button { margin-top:1.5rem; }
.gallery-lightbox { position:fixed;inset:1.25rem;box-sizing:border-box;width:calc(100vw - 2.5rem);height:calc(100dvh - 2.5rem);max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.2);border-radius:1.4rem;color:#fff;background:#10221f;box-shadow:0 30px 100px rgba(0,0,0,.45); }.gallery-lightbox::backdrop { background:rgba(16,27,25,.78);backdrop-filter:blur(10px); }.lightbox-media { position:absolute;inset:1rem 4.75rem 6rem;display:grid;min-width:0;min-height:0;overflow:hidden;place-items:center; }.lightbox-media img,.lightbox-media video { display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain; }.lightbox-close,.lightbox-arrow { position:absolute;z-index:2;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:#fff;background:rgba(16,34,31,.72);backdrop-filter:blur(8px); }.lightbox-close { top:1rem;right:1rem;width:3rem;aspect-ratio:1;font-size:1.7rem; }.lightbox-arrow { top:50%;width:3.4rem;aspect-ratio:1;font-size:1.25rem;transform:translateY(-50%); }.lightbox-arrow.previous { left:1rem; }.lightbox-arrow.next { right:1rem; }.lightbox-caption { position:absolute;inset:auto 5rem 1.35rem;text-align:center; }.lightbox-caption strong { font:700 1.35rem/1 Georgia,serif; }.lightbox-caption p { margin:.4rem 0 0;color:rgba(255,255,255,.72);font-size:.82rem; }
@media(max-width:900px){.gallery-intro{grid-template-columns:1fr}.gallery-cat-stage{width:min(100%,25rem);margin-top:1rem}}
@media(max-width:850px){.public-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-tile{min-height:18rem}.gallery-tile.featured{min-height:36.85rem}}
@media(max-width:560px){.gallery-page{padding-top:3rem}.public-gallery{grid-template-columns:1fr}.gallery-tile,.gallery-tile.featured{grid-column:auto;grid-row:auto;min-height:24rem}.gallery-lightbox{inset:.5rem;width:calc(100vw - 1rem);height:calc(100dvh - 1rem)}.lightbox-arrow{top:auto;bottom:1rem}.lightbox-caption{inset:auto 4rem 1.35rem}.lightbox-media{inset:.75rem .75rem 5.5rem}}

.contact-page { width:min(100% - 2rem,78rem);margin:0 auto;padding:clamp(4rem,8vh,6rem) 0 7rem; }.contact-intro { display:grid;max-width:none;grid-template-columns:minmax(0,1.4fr) minmax(26rem,.6fr);gap:clamp(2rem,5vw,5rem);align-items:center; }.contact-intro-copy>p:last-child { max-width:43rem;margin:1.6rem 0 0;color:#415653;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.65; }.contact-cat-stage { position:relative;width:min(100%,28rem);aspect-ratio:1;overflow:hidden;justify-self:center; }.contact-cat-sprite { position:absolute;inset:0;display:block;background:url("./images/cat1/wash1.png") 0 0 / 300% 200% no-repeat;image-rendering:pixelated;animation:contact-cat-wash 2s step-end infinite; }
@keyframes contact-cat-wash {
  0%,100% { background-position:0 0;transform:translate(-8.89%,1.37%); }
  16.666% { background-position:50% 0;transform:translate(0,0); }
  33.333% { background-position:100% 0;transform:translate(7.52%,-.98%); }
  50% { background-position:0 100%;transform:translate(-7.32%,8.98%); }
  66.666% { background-position:50% 100%;transform:translate(.88%,6.84%); }
  83.333% { background-position:100% 100%;transform:translate(6.54%,6.84%); }
}
@media(prefers-reduced-motion:reduce){.contact-cat-sprite{animation:none}}
.contact-layout { display:grid;margin-top:clamp(3rem,7vh,5rem);grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);gap:1rem;align-items:start; }
.public-contact-form { display:grid;padding:clamp(1.3rem,4vw,2.5rem);gap:1.4rem;border:1px solid var(--line);border-radius:1.4rem;background:rgba(255,250,240,.88);box-shadow:0 20px 55px rgba(70,49,39,.08); }.contact-fields { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }.contact-fields label { display:grid;gap:.45rem;font-size:.82rem;font-weight:800; }.contact-fields label>span { color:var(--muted);font-size:.7rem;font-weight:600; }.contact-fields input,.contact-fields select,.contact-fields textarea { width:100%;padding:.85rem;border:1px solid rgba(24,49,46,.2);border-radius:.7rem;color:var(--ink);background:#fff;font:inherit; }.contact-fields input:focus,.contact-fields select:focus,.contact-fields textarea:focus { border-color:var(--coral);outline:3px solid rgba(221,115,95,.14); }.contact-fields .wide { grid-column:1/-1; }.contact-honeypot { position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important; }.contact-fields .privacy-check { display:flex;align-items:flex-start;grid-template-columns:auto 1fr;flex-direction:row;font-weight:600;line-height:1.5; }.privacy-check input { width:auto;margin-top:.18rem; }.contact-submit { display:flex;padding-top:.4rem;align-items:center;justify-content:space-between;gap:1.5rem; }.contact-submit p { max-width:25rem;margin:0;color:var(--muted);font-size:.78rem;line-height:1.5; }.contact-submit .button { flex:none; }.contact-result { display:none;margin:0;padding:1rem;border-radius:.75rem;line-height:1.55; }.contact-result:not(:empty) { display:block; }.contact-result.success { color:#295b40;background:#e2f1e7; }.contact-result.error { color:#86251f;background:#fee9e7; }
.contact-aside { position:relative;overflow:hidden;padding:clamp(1.5rem,4vw,2.6rem);border-radius:1.4rem;color:#fff;background:#18312e;box-shadow:0 20px 55px rgba(24,49,46,.18); }.contact-aside::after { position:absolute;right:-4rem;bottom:-6rem;width:14rem;aspect-ratio:1;border:1px solid rgba(255,255,255,.12);border-radius:50%;content:""; }.contact-aside-mark { display:grid;width:3.5rem;aspect-ratio:1;margin-bottom:2rem;place-items:center;border:2px solid #fffaf0;border-radius:1rem 1rem 1rem .3rem;color:#18312e;background:var(--peach);box-shadow:5px 5px 0 #fffaf0;font:800 1.5rem/1 Georgia,serif; }.contact-aside .eyebrow { color:var(--peach); }.contact-aside h2 { margin:0;font:700 clamp(2.2rem,4vw,3.5rem)/1 Georgia,serif;letter-spacing:-.04em; }.contact-aside>p:not(.eyebrow) { color:rgba(255,255,255,.7);line-height:1.7; }.contact-aside ul { display:grid;margin:2rem 0 0;padding:1.5rem 0 0;gap:1rem;border-top:1px solid rgba(255,255,255,.16);list-style:none; }.contact-aside li { display:grid;gap:.25rem;font-size:.82rem; }.contact-aside li strong { color:rgba(255,255,255,.62);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em; }.contact-aside a { position:relative;z-index:1;color:#fff;text-underline-offset:.25rem; }
@media(max-width:900px){.contact-intro{grid-template-columns:1fr}.contact-cat-stage{width:min(100%,24rem);margin-top:1rem}}
@media(max-width:850px){.contact-layout{grid-template-columns:1fr}.contact-aside{order:-1}}
@media(max-width:600px){.contact-page{padding-top:3rem}.contact-fields{grid-template-columns:1fr}.contact-fields .wide{grid-column:auto}.contact-submit{align-items:stretch;flex-direction:column}.contact-submit .button{width:100%}}

.about-page { width:min(100% - 2rem,78rem);margin:0 auto;padding:clamp(4rem,8vh,6rem) 0 7rem; }
.about-hero { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);gap:clamp(2rem,7vw,7rem);align-items:end; }
.about-hero h1 { font-size:clamp(4rem,9vw,8.5rem); }.about-hero h1 em { color:var(--coral);font-weight:400; }
.about-lead { max-width:47rem;margin:1.8rem 0 0;color:#415653;font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.72; }
.about-note { position:relative;overflow:hidden;padding:clamp(1.7rem,4vw,2.8rem);border-radius:1.4rem;color:#fffaf0;background:#18312e;box-shadow:8px 8px 0 var(--peach); }
.about-note::after { position:absolute;right:-4rem;bottom:-5rem;width:12rem;aspect-ratio:1;border:1px solid rgba(255,255,255,.14);border-radius:50%;content:""; }
.about-note-mark { display:grid;width:4.2rem;aspect-ratio:1;place-items:center;border:2px solid #fffaf0;border-radius:1.25rem 1.25rem 1.25rem .35rem;color:var(--ink);background:var(--peach);box-shadow:5px 5px 0 #fffaf0;font:800 1.8rem/1 Georgia,serif; }
.about-note p { position:relative;z-index:1;margin:2.2rem 0 0;color:rgba(255,250,240,.76);font:700 clamp(1.25rem,2vw,1.65rem)/1.35 Georgia,serif; }
.about-story { display:grid;margin-top:clamp(4rem,9vh,7rem);grid-template-columns:minmax(0,1.2fr) minmax(19rem,.8fr);gap:clamp(2rem,7vw,6rem);align-items:start; }
.about-story-copy h2 { max-width:43rem;margin:.45rem 0 0;font:700 clamp(2.6rem,5.5vw,5rem)/.95 Georgia,serif;letter-spacing:-.05em; }.about-story-copy>p:not(.price-label) { max-width:48rem;margin:1.25rem 0 0;color:#415653;font-size:clamp(.98rem,1.3vw,1.12rem);line-height:1.8; }
.about-details { display:grid;gap:.7rem; }.about-details>div { display:grid;padding:1.25rem;grid-template-columns:auto 1fr;gap:1rem;border:1px solid var(--line);border-radius:1rem;background:rgba(255,250,240,.78); }.about-details span { display:grid;width:2.4rem;aspect-ratio:1;place-items:center;border-radius:.75rem;color:#925849;background:rgba(242,180,159,.3);font-size:.7rem;font-weight:900; }.about-details p { margin:0;color:var(--muted);font-size:.84rem;line-height:1.62; }.about-details strong { display:block;margin-bottom:.4rem;color:var(--ink);font:700 1.08rem/1.1 Georgia,serif; }
.meet-section { display:grid;margin-top:clamp(4rem,9vh,7rem);padding:clamp(1.5rem,4vw,3rem);grid-template-columns:minmax(17rem,.72fr) minmax(0,1.28fr);gap:clamp(2rem,6vw,5rem);border:1px solid var(--line);border-radius:1.6rem;background:rgba(255,250,240,.84);box-shadow:0 22px 55px rgba(70,49,39,.08); }
.meet-heading h2,.other-pets h2,.about-cta h2 { margin:.45rem 0 0;font:700 clamp(2.25rem,4.8vw,4.2rem)/.98 Georgia,serif;letter-spacing:-.045em; }.meet-heading>p:last-child,.other-pets>div>p:last-child { margin:1.3rem 0 0;color:#415653;line-height:1.72; }
.meet-steps { display:grid;margin:0;padding:0;gap:.75rem;list-style:none; }.meet-steps li { display:grid;padding:1.2rem;grid-template-columns:auto 1fr;gap:1rem;border:1px solid var(--line);border-radius:1rem;background:#fff; }.meet-steps li>span { display:grid;width:2.6rem;aspect-ratio:1;place-items:center;border-radius:.8rem;color:#925849;background:rgba(242,180,159,.3);font-size:.72rem;font-weight:900; }.meet-steps h3 { margin:.15rem 0 0;font:700 1.25rem/1 Georgia,serif; }.meet-steps p { margin:.55rem 0 0;color:var(--muted);font-size:.85rem;line-height:1.6; }
.other-pets { display:grid;margin-top:1rem;padding:clamp(1.5rem,4vw,3rem);grid-template-columns:minmax(0,1fr) minmax(20rem,1fr);gap:clamp(2rem,6vw,5rem);align-items:center;border-radius:1.6rem;background:#dcebdc; }
.other-pets ul { display:grid;margin:0;padding:0;grid-template-columns:1fr 1fr;gap:.65rem;list-style:none; }.other-pets li { padding:1rem;border:1px solid rgba(24,49,46,.14);border-radius:999px;background:rgba(255,255,255,.65);font-size:.83rem;font-weight:800;text-align:center; }
.about-cta { display:flex;margin-top:1rem;padding:clamp(1.5rem,4vw,3rem);align-items:center;justify-content:space-between;gap:2rem;border:1px solid var(--line);border-radius:1.6rem;background:rgba(255,250,240,.76); }.about-actions { display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end; }
@media(max-width:850px){.about-hero,.about-story,.meet-section,.other-pets{grid-template-columns:1fr}.about-note{max-width:32rem}.about-cta{align-items:stretch;flex-direction:column}.about-actions{justify-content:flex-start}}
@media(max-width:560px){.about-page{padding-top:3rem}.other-pets ul{grid-template-columns:1fr}.about-actions{flex-direction:column}.about-actions .button{width:100%}}

.site-footer { position:relative;overflow:hidden;color:#fffaf0;background:#18312e; }
.site-footer::before { position:absolute;inset:0;content:"";pointer-events:none;background:radial-gradient(circle at 18% 130%,rgba(242,180,159,.18),transparent 23rem); }
.site-footer-inner { position:relative;display:flex;width:min(100% - 2rem,78rem);min-height:13rem;margin:0 auto;align-items:center;justify-content:space-between;gap:clamp(2rem,6vw,6rem); }
.footer-sleeping-cat { position:relative;width:10rem;aspect-ratio:1;overflow:hidden;flex:none; }
.footer-sleeping-cat-sprite { position:absolute;inset:0;display:block;background:url("./images/cat1/sleeping.png") 0 0 / 300% 200% no-repeat;image-rendering:pixelated;animation:footer-cat-sleep 3s step-end infinite; }
.site-footer-copy { display:grid;justify-items:end;gap:.45rem;text-align:right; }
.site-footer-copy p { margin:0;color:rgba(255,250,240,.68);font-size:.76rem;line-height:1.5; }
.site-footer-credit { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem; }
.site-footer a { color:#f2b49f;font-weight:800;text-underline-offset:.25rem; }
.site-footer a:hover { color:#fffaf0; }
.site-footer a:focus-visible { outline:3px solid #f2b49f;outline-offset:4px; }
@keyframes footer-cat-sleep {
  0%,100% { background-position:0 0;transform:translate(-.88%,.59%); }
  16.666% { background-position:50% 0;transform:translate(0,0); }
  33.333% { background-position:100% 0;transform:translate(.78%,-.39%); }
  50% { background-position:0 100%;transform:translate(-.88%,5.27%); }
  66.666% { background-position:50% 100%;transform:translate(.2%,5.27%); }
  83.333% { background-position:100% 100%;transform:translate(1.47%,4.88%); }
}
@media(max-width:600px){.site-footer-inner{min-height:0;padding:2rem 0;flex-direction:column;gap:1rem}.footer-sleeping-cat{width:8rem}.site-footer-copy{justify-items:center;text-align:center}.site-footer-credit{justify-content:center}}
@media(prefers-reduced-motion:reduce){.footer-sleeping-cat-sprite{animation:none}}
