/* Furever Feline — art-safe layout, optical alignment revision 27.
   Resolve graphic overlap at the source, not with repeated negative margins.
   Shared menu logo always retains its natural painted shape. */

/* The source logo is a square bitmap with generous white margins. Center the
   complete painted cat inside a portrait viewport; NEVER squash its aspect. */
.home-document .site-header .brand-cat,
.contact-document .site-header .brand-cat {
  display:block;
  position:relative;
  width:58px;
  height:71px;
  flex:0 0 58px;
  min-width:58px;
  overflow:hidden;
}
.home-document .site-header .brand-cat > img,
.contact-document .site-header .brand-cat > img {
  display:block;
  position:absolute;
  width:92px;
  height:92px;
  min-width:0;
  max-width:none;
  aspect-ratio:1 / 1;
  object-fit:contain;
  object-position:center;
  left:-16px;
  top:-11px;
  transform:none;
}

/* Artwork composition: original prayer plant foreground + blue-eyed cat background.
   The illustration occupies its own measurable grid/flex area; its images are
   contained by that box, never positioned outside it toward live text. */
.home-document .value-heading-scene {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);
  column-gap:clamp(34px,4.2vw,68px);
  row-gap:0;
  align-items:center;
  margin-bottom:0;
}
.home-document .value-heading {
  position:relative;
  z-index:1;
  grid-column:1;
  grid-row:1;
  min-width:0;
  padding:0;
  margin:0;
}
.home-document .value-garden {
  display:block;
  position:relative;
  grid-column:2;
  grid-row:1;
  width:min(100%,465px);
  max-width:100%;
  height:auto;
  aspect-ratio:1.56;
  margin:0;
  padding:0;
  justify-self:center;
  align-self:end;
  overflow:hidden;
  isolation:isolate;
  line-height:0;
  pointer-events:none;
}
.home-document .value-garden > img {
  display:block;
  position:absolute;
  max-width:none;
  height:auto;
  top:auto;
  bottom:0;
  object-fit:contain;
  margin:0;
  transform:none;
}
.home-document .value-garden > .garden-plant {
  width:83%;
  left:-2%;
  right:auto;
  bottom:-10px;
  z-index:1;
}
.home-document .value-garden > .garden-cat {
  width:69%;
  right:2.5%;
  left:auto;
  bottom:0;
  z-index:0;
}
.home-document .value-panel {position:relative;z-index:2;}

@media (min-width:761px) and (max-width:1099px) {
  .home-document .value-heading-scene {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:clamp(30px,4vw,42px);
    row-gap:0;
    margin-bottom:0;
  }
  .home-document .value-garden {width:min(100%,395px);}
}

/* Phones are intentionally stacked: actual flow, not image overlays. */
@media (max-width:760px) {
  .home-document .site-header .brand-cat,
  .contact-document .site-header .brand-cat {
    width:52px;
    height:64px;
    flex:0 0 52px;
    min-width:52px;
  }
  .home-document .site-header .brand-cat > img,
  .contact-document .site-header .brand-cat > img {
    width:83px;
    height:83px;
    left:-15px;
    top:-10px;
  }
  .home-document .value-heading-scene {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:clamp(22px,6vw,28px);
    margin-bottom:0;
  }
  .home-document .value-heading {
    grid-column:auto;
    grid-row:auto;
    align-self:stretch;
    flex:none;
    padding:0;
    margin:0;
    width:100%;
  }
  .home-document .value-heading > .eyebrow,
  .home-document .value-heading > h2 {text-align:center;}
  .home-document .value-garden {
    display:block;
    position:relative;
    grid-column:auto;
    grid-row:auto;
    flex:none;
    align-self:center;
    justify-self:auto;
    width:min(90%,340px);
    max-width:100%;
    height:auto;
    aspect-ratio:1.56;
    margin:0;
    overflow:visible;
  }
  .home-document .value-panel {
    margin-top:0;
  }
}

@media (max-width:365px) {
  .home-document .site-header .brand-cat,
  .contact-document .site-header .brand-cat {
    width:49px;
    height:60px;
    min-width:49px;
    flex:0 0 49px;
  }
  .home-document .site-header .brand-cat > img,
  .contact-document .site-header .brand-cat > img {
    width:77px;
    height:77px;
    left:-14px;
    top:-9px;
  }
  .home-document .header-inner .wordmark,
  .contact-document .header-inner .wordmark {
    font-size:clamp(1.092rem,4.83vw,1.197rem);
  }
  .home-document .header-inner .button-small,
  .contact-document .header-inner .button-small {
    padding-inline:10px;
    font-size:0.819rem;
    gap:4px;
  }
  .home-document .value-heading-scene {gap:32px;}
  .home-document .value-garden {width:min(91%,320px);}
}

/* PHOTO-FREE HERO STUDY — original mascot with full ears, tail and paws.
   Navigation stays text-only. Nothing else on the website is redesigned. */
.home-document .site-header .brand,
.contact-document .site-header .brand { gap:0; }
.home-document .hero.hero-no-photo {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  justify-items:stretch;
  width:min(1200px,calc(100% - 64px));
  padding:clamp(108px,8vw,128px) 0 clamp(32px,4vw,54px);
  row-gap:0;
  text-align:left;
}
.home-document .hero.hero-no-photo .hero-copy {display:contents;}
.home-document .hero.hero-no-photo #hero-title {
  grid-row:1;
  position:relative;
  text-align:left;
  max-width:1010px;
  margin:0;
  font-size:clamp(3.6225rem,6.51vw,6.825rem);
  line-height:1.04;
  letter-spacing:-.045em;
}
.home-document .hero.hero-no-photo #hero-title .hero-title-first {
  display:block;
  position:relative;
}
.home-document .hero.hero-no-photo #hero-title .hero-title-group {
  display:block;
}
.home-document .hero.hero-no-photo #hero-title .hero-title-accent {
  margin-top:.03em;
}
.home-document .hero.hero-no-photo #hero-title .hero-mascot {
  position:absolute;
  width:140px;
  height:180px;
  right:60px;
  top:-90px;
  overflow:hidden;
  pointer-events:none;
  z-index:1;
}
.home-document .hero.hero-no-photo #hero-title .hero-mascot img {
  position:absolute;
  display:block;
  width:225px;
  height:225px;
  max-width:none;
  left:-50px;
  top:-26px;
  object-fit:contain;
  transform:none;
}
.home-document .hero.hero-no-photo .hero-copy>.hero-intro {
  grid-row:2;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:30px 46px;
  width:100%;
  padding:32px 0 42px;
  background:transparent;
  text-align:left;
  border-radius:0;
  max-width:none;
}
.home-document .hero.hero-no-photo .hero-intro-copy h2 {
  font-size:clamp(1.5225rem,2.31vw,2.1525rem);
  margin-bottom:8px;
}
.home-document .hero.hero-no-photo .hero-intro-copy p {
  max-width:60ch;
  margin:0;
}
.home-document .hero.hero-no-photo .hero-intro-actions {
  align-items:flex-start;
}
.home-document .hero.hero-no-photo .hero-visit-details {
  grid-row:3;
  grid-column:1;
  margin:0;
  padding:24px 0;
  width:100%;
  background:transparent;
  border-top:1px solid #b9eaf3;
  border-bottom:1px solid #b9eaf3;
}
@media (min-width:761px) and (max-width:1100px) {
  .home-document .hero.hero-no-photo {width:calc(100% - 48px);padding-top:132px;}
  .home-document .hero.hero-no-photo #hero-title {font-size:clamp(3.4125rem,6.93vw,5.04rem);}
  .home-document .hero.hero-no-photo #hero-title .hero-mascot {width:95px;height:119px;top:-111px;right:16px;}
  .home-document .hero.hero-no-photo #hero-title .hero-mascot img {width:148px;height:148px;left:-33px;top:-17px;}
  .home-document .hero.hero-no-photo .hero-copy>.hero-intro {grid-template-columns:minmax(0,1fr) auto;gap:26px;padding:28px 0 36px;}
}
@media(max-width:760px) {
  .home-document .hero.hero-no-photo {
    width:calc(100% - 36px);
    padding:30px 0 32px;
    justify-items:stretch;
  }
  .home-document .hero.hero-no-photo #hero-title {
    font-size:clamp(1.995rem,8.82vw,3.255rem);
    letter-spacing:-.045em;
    line-height:1.1;
    margin:0;
    text-align:center;
  }
  /* Place the existing mascot centered ABOVE the text, in normal layout flow.
     Its full painted tail and paws remain visible without overlapping the headline. */
  .home-document .hero.hero-no-photo #hero-title .hero-title-first {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }
  .home-document .hero.hero-no-photo #hero-title .hero-title-first > .hero-title-group {
    order:2;
    align-self:stretch;
  }
  /* The original logo is an opaque 1254px white square. Its painted cat is
     offset inside that square, and the tail shifts the silhouette to the right.
     Keep the illustrated cat the same size while centering its FACE/BODY, not
     its outer bitmap or total silhouette. Widen the transparent-looking viewport
     slightly so the entire tail remains visible on the narrowest phones. */
  .home-document .hero.hero-no-photo #hero-title .hero-mascot {
    position:relative;
    order:1;
    flex:none;
    width:calc(clamp(146px,42vw,172px) + 24px);
    height:clamp(178px,51.15vw,210px);
    aspect-ratio:auto;
    top:auto;
    right:auto;
    left:auto;
    bottom:auto;
    margin:10px auto 9px;
    overflow:hidden;
  }
  .home-document .hero.hero-no-photo #hero-title .hero-mascot img {
    width:calc(clamp(146px,42vw,172px) * 1.59);
    height:auto;
    left:calc(clamp(146px,42vw,172px) * -0.353 + 30px);
    top:-15.25%;
  }
  .home-document .hero.hero-no-photo .hero-copy>.hero-intro {
    grid-row:2;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    padding:15px 0 27px;
    gap:23px;
  }
  .home-document .hero.hero-no-photo .hero-intro h2 {font-size:clamp(1.3965rem,5.46vw,1.722rem);margin-bottom:8px;text-align:center;}
  .home-document .hero.hero-no-photo .hero-intro-copy p {font-size:1.05rem;line-height:1.57;}
  .home-document .hero.hero-no-photo .hero-intro-actions {flex-direction:column;gap:6px;align-items:stretch;}
  .home-document .hero.hero-no-photo .hero-intro-actions .button {width:100%;}
  /* Center the reassurance LIST as a group on mobile, preserving one shared
     icon column and left-aligned labels rather than centering each line. */
  .home-document .hero.hero-no-photo .hero-visit-details {
    grid-row:3;
    padding:20px 0;
    grid-template-columns:minmax(0,1fr);
    gap:14px;
    justify-items:center;
  }
  .home-document .hero.hero-no-photo .hero-visit-details>li,
  .home-document .hero.hero-no-photo .hero-visit-details>li:last-child {
    grid-column:1;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-self:center;
    justify-content:flex-start;
    width:min(100%,258px);
    gap:11px;
    text-align:left;
  }
}

/* A quieter, accessible secondary action for the photography-free hero. */
.home-document .hero.hero-no-photo .hero-intro-actions .hero-more-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-bottom:0;
  box-shadow:none;
  text-decoration:none;
  font-weight:500;
  line-height:1.4;
  padding:8px 3px;
  transition:color 170ms ease;
}
.home-document .hero.hero-no-photo .hero-more-arrow {
  display:inline-block;
  font-size:1.05em;
  line-height:1;
  transition:transform 170ms ease;
}
.home-document .hero.hero-no-photo .hero-more-link:hover {color:var(--purple);border:0;}
.home-document .hero.hero-no-photo .hero-more-link:hover .hero-more-arrow {transform:translateX(2px);}
.home-document .hero.hero-no-photo .hero-more-link:focus-visible {
  outline:2px solid var(--purple);
  outline-offset:3px;
  border-radius:3px;
}
@media(prefers-reduced-motion:reduce) {
  .home-document .hero.hero-no-photo .hero-more-link,
  .home-document .hero.hero-no-photo .hero-more-arrow {transition:none;}
}

/* TWO LOWER CTA COLOR REFINEMENTS — match purple navigation/hero actions.
   Scope to the lower homepage invitation and contact submission only.
   Keep all existing dimensions, actions, and disabled behavior intact. */
.home-document .hello-section .hello-copy > a.button,
.contact-document .inquiry-panel #prepare-inquiry {
  background:var(--purple);
  color:#fff;
  border-color:var(--purple);
}
.home-document .hello-section .hello-copy > a.button:hover,
.contact-document .inquiry-panel #prepare-inquiry:hover {
  background:#5d4bb4;
  border-color:#5d4bb4;
  color:#fff;
}
.home-document .hello-section .hello-copy > a.button:focus-visible,
.contact-document .inquiry-panel #prepare-inquiry:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:4px;
}

/* BUTTON SIZING AUDIT v25 — optical sizing by device, not one generic width.
   Buttons use minimum 44px touch areas, deliberate internal padding,
   balanced label wrapping, and existing purple/white branding. */
.home-document .header-inner .button-small,
.contact-document .header-inner .button-small {
  min-height:46px;
  max-width:100%;
  white-space:nowrap;
  align-items:center;
  justify-content:center;
}
.home-document .service-option-link {
  min-height:52px;
  padding:12px 18px;
  font-size:0.984375rem;
  line-height:1.36;
  white-space:normal;
  overflow-wrap:break-word;
  text-wrap:balance;
  border-radius:14px;
}
.home-document .hero.hero-no-photo.hero-editorial-v1 .hero-intro-actions .button {
  min-height:52px;
  max-width:100%;
}
.home-document .hello-section .hello-copy > a.button {
  min-height:52px;
  max-width:100%;
  padding:12px 22px;
  font-size:0.984375rem;
  line-height:1.35;
  justify-content:center;
  text-align:center;
  white-space:normal;
}
.contact-document .inquiry-panel #prepare-inquiry {
  display:inline-flex;
  width:auto;
  min-width:min(100%,270px);
  max-width:100%;
  min-height:56px;
  padding:13px 24px;
  align-items:center;
  justify-content:center;
  gap:14px;
  font-size:0.984375rem;
  line-height:1.35;
  white-space:normal;
  text-align:center;
}
.home-document .trust-welcome .text-link {min-height:44px;}
@media (min-width:761px) and (max-width:1100px) {
  .home-document .hello-section .hello-copy > a.button {min-height:52px;padding-inline:20px;}
  .contact-document .inquiry-panel #prepare-inquiry {min-height:54px;}
  .home-document .service-option-link {min-height:52px;}
}
@media (max-width:760px) {
  .home-document .header-inner .button-small,
  .contact-document .header-inner .button-small {min-height:46px;}
  .home-document .site-menus .page-jumps a,
  .contact-document .site-menus .page-jumps a {min-height:46px;}
  .home-document .service-option-link {min-height:50px;padding:12px 16px;font-size:0.945rem;}
  .home-document .hello-section .hello-copy > a.button {
    display:flex;
    width:min(100%,290px);
    max-width:100%;
    margin:5px auto 0;
    min-height:52px;
    padding:12px 17px;
  }
  .contact-document .inquiry-panel #prepare-inquiry {
    display:flex;
    width:min(100%,300px);
    min-width:0;
    max-width:100%;
    min-height:54px;
    margin-left:auto;
    margin-right:auto;
    padding:12px 18px;
  }
}
@media (max-width:350px) {
  .home-document .header-inner .button-small,
  .contact-document .header-inner .button-small {padding-inline:10px;}
  .home-document .service-option-link {padding-inline:12px;}
  .home-document .hello-section .hello-copy > a.button {padding-inline:13px;}
}

/* HEADER BRAND PURPLE v27 — only the main company name, not its subtitle. */
.home-document .site-header .wordmark,
.contact-document .site-header .wordmark {color:var(--purple);}
.home-document .site-header .wordmark > span,
.contact-document .site-header .wordmark > span {color:var(--body);}

/* feline-type-plus-five-20261101 */

/* feline-price-alignment-20261101: keep rate descriptions naturally aligned at desktop widths. */
@media (min-width:1101px){.home-document .service-option-price dt{max-width:none;min-width:0;}}
