/* ==========================================================================
   Tiny Paws — Layout ("Fresh Modern")
   Clean scaffolding. No paw texture, no wavy dividers, no dark bands.
   ========================================================================== */

/* ---------- Section rhythm ---------- */
.tp-section--flush-top { padding-top: 0; }

/* Decorative bands are neutralized to light (kept inert for safety). */
.tp-band-paw { background-image: none; }
.tp-band-mocha { background: var(--tp-cream-2); color: var(--tp-ink); }
.tp-band-mocha h2, .tp-band-mocha h3, .tp-band-mocha h4 { color: var(--tp-ink); }
.tp-band-mocha .tp-lede { color: var(--tp-muted); }
.tp-wave { display: none !important; }

/* ---------- Hero ---------- */
.tp-hero__grid { display: grid; gap: 2.5rem; align-items: center; padding: clamp(2.5rem, 6vw, 5.5rem) 0; }
.tp-hero__title { margin: .15rem 0 1.1rem; letter-spacing: -.03em; }
.tp-hero__cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.4rem; }
.tp-hero__photo { position: relative; aspect-ratio: 1/1; max-width: 520px; margin-inline: auto; width: 100%; }
.tp-hero__photo .tp-arch { width: 100%; height: 100%; }
.tp-hero__photo .tp-arch img { width: 100%; height: 100%; object-fit: cover; }
.tp-hero__trust { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin-top: 1.5rem; padding-top: 1.3rem; border-top: 1px solid var(--tp-line); }
.tp-hero__trust .tp-rating { gap: .5rem; }
.tp-hero__trust-item { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; font-size: .92rem; color: var(--tp-ink); }
.tp-hero__trust-item i { color: var(--tp-raspberry); }
@media (min-width: 992px) { .tp-hero__grid { grid-template-columns: 1.05fr .95fr; } }

/* ---------- Puppy carousel rail ---------- */
.tp-puppy-rail .tp-rail__track { grid-auto-columns: minmax(250px, 1fr); gap: 1.5rem; }
@media (min-width: 992px) { .tp-puppy-rail .tp-rail__track { grid-auto-columns: minmax(280px, 1fr); } }

/* ---------- 4-step process ---------- */
.tp-step { position: relative; }
.tp-step__num {
  position: absolute; top: -13px; left: 1.4rem;
  width: 30px; height: 30px; border-radius: 50%; background: var(--tp-raspberry); color: #fff;
  font-family: var(--tp-display); font-weight: 800; display: inline-flex; align-items: center; justify-content: center; font-size: .95rem;
}
.tp-step { text-align: left; }
.tp-step__ico { margin: .3rem 0 .8rem; }

/* ---------- Plan-your-visit ---------- */
.tp-visit { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 992px) { .tp-visit { grid-template-columns: 1fr 1fr; } }
.tp-visit__map { border-radius: var(--tp-r-lg); overflow: hidden; border: 1px solid var(--tp-line); }
.tp-visit__hours { list-style: none; margin: 1rem 0 0; padding: 0; }
.tp-visit__hours li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--tp-line); }
.tp-visit__hours .is-today { color: var(--tp-raspberry); font-weight: 700; }

/* ---------- Gallery strip ---------- */
.tp-gallery-strip { display: grid; gap: .6rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 576px) { .tp-gallery-strip { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .tp-gallery-strip { grid-template-columns: repeat(6, 1fr); } }
.tp-gallery-strip a { display: block; aspect-ratio: 1/1; overflow: hidden; border-radius: var(--tp-r-sm); background: var(--tp-line); }
.tp-gallery-strip img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--tp-ease); }
.tp-gallery-strip a:hover img { transform: scale(1.06); }

/* ---------- Motion: staggered reveals ---------- */
html.tp-js [data-tp-stagger] > .tp-reveal { transition-delay: calc(var(--i, 0) * var(--tp-stagger)); }
