/* =========================================================
   PETOOME — HOMEPAGE (hero + spotlight)
   Loaded only on the Homepage template.
   ========================================================= */

.petoome-home{ overflow-x:hidden; }

/* ---------- HERO ---------- */
.home-hero{ position:relative; padding: 64px 0 96px; }
.home-hero-bg{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.home-hero-bg .whisker-corner{ position:absolute; top:-30px; left:-30px; width:260px; height:260px; opacity:0.7; }
.home-hero-bg .whisker-corner path{ fill:none; stroke: var(--navy); stroke-width:1.3; stroke-linecap:round; }

.home-hero-inner{
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items:center;
  position:relative; z-index:2;
}
.home-hero-title{
  font-family:'Fraunces', serif; font-weight:500; color: var(--navy);
  font-size: clamp(46px, 7vw, 92px); line-height:0.98; margin: 0;
}
/* Letters are revealed by GSAP; this is a quick (~0.6s) brand moment only —
   everything else in the hero (image, slider copy) is visible immediately
   and never waits on JS or animation libraries. */
.home-hero-title .char{ display:inline-block; opacity:0; transform: translateY(0.35em); }
.no-js .home-hero-title .char{ opacity:1 !important; transform:none !important; }

.whisker-underline{ display:block; width:min(360px,60vw); height:26px; margin: 4px 0 26px; }
.whisker-underline path{ fill:none; stroke: var(--brass); stroke-width:2.2; stroke-linecap:round; }

/* ---------- hero slider (pure CSS transitions — no animation lib needed) ---------- */
.hero-slider{
  position: relative;
  min-height: clamp(104px, 16vw, 128px); /* reserves space so nothing shifts on rotation */
}
.hero-slide{
  position:absolute; inset:0;
  opacity:0; transform: translateY(8px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
  pointer-events:none;
  will-change: opacity, transform;
}
.hero-slide.is-active{
  position:relative; /* only the active slide participates in layout, so screen readers/tab order stay clean */
  opacity:1; transform:translateY(0);
  pointer-events:auto;
}
.hero-slide:not(.is-active){ position:absolute; }

.home-hero-tagline{ max-width: 460px; font-size: 17px; color: var(--ink-soft); margin: 10px 0 22px; }
.home-hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

.hero-slider-controls{ display:flex; align-items:center; gap:20px; margin-top: 30px; }
.hero-dots{ display:flex; gap:8px; }
.hero-dot{
  width:8px; height:8px; padding:0; border-radius:50%;
  background: var(--border); border:none; cursor:pointer;
  transition: width 0.3s var(--ease), background 0.3s var(--ease);
}
.hero-dot.is-active{ width:22px; border-radius:5px; background: var(--brass); }
.hero-dot:hover{ background: var(--brass-soft); }

.hero-arrows{ display:flex; gap:8px; margin-left:auto; }
.hero-arrow{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--border);
  background: var(--white); color: var(--navy); font-size:16px; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease), border-color 0.25s var(--ease);
}
.hero-arrow:hover{ background: var(--navy); color: var(--cream); border-color: var(--navy); transform: translateY(-2px); }
.hero-arrow:active{ transform: translateY(0) scale(0.94); }

/* ---------- hero media (first image visible immediately — this is the LCP element) ---------- */
.home-hero-media{ position:relative; display:flex; justify-content:center; }
.home-hero-media-frame{
  position:relative;
  width:100%; max-width: 420px; aspect-ratio: 3/4;
  background: var(--white); border-radius: 28px; overflow:hidden;
  box-shadow: 0 30px 60px -30px rgba(16,39,63,0.4);
  border: 1px solid var(--border);
  animation: petoomeFloat 6.5s ease-in-out infinite; /* transform-only, GPU-cheap */
}
/* Each slide's image is stacked absolutely; only the active one is
   in-flow/opaque. The first is server-rendered as active, so it never
   waits on JS to appear. */
.hero-slide-image{
  position:absolute; inset:0; opacity:0;
  transition: opacity 0.6s var(--ease);
  will-change: opacity;
}
.hero-slide-image.is-active{ position:relative; opacity:1; }
.hero-slide-image img,
.hero-slide-image .hero-slide-image-el{ width:100%; height:100%; object-fit:cover; display:block; }
.home-hero-media-frame--placeholder{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:20px;
  color: var(--ink-soft); font-size:13px; background: var(--cream-dim);
}
.home-hero-badge{
  position:absolute; bottom:-18px; left: 50%; transform: translateX(-50%);
  background: var(--navy); color: var(--cream); border-radius: var(--radius-pill);
  padding: 12px 26px; display:flex; flex-direction:column; align-items:center; text-align:center;
  font-size: 11px; letter-spacing:0.08em; text-transform:uppercase; font-weight:700;
  box-shadow: 0 16px 30px -14px rgba(16,39,63,0.5);
  line-height:1.5;
  z-index:2;
}

@keyframes petoomeFloat{
  0%, 100%{ transform: translateY(0); }
  50%{ transform: translateY(-10px); }
}

@media (max-width: 920px){
  .home-hero-inner{ grid-template-columns:1fr; text-align:center; }
  .home-hero-ctas{ justify-content:center; }
  .hero-slider-controls{ justify-content:center; }
  .hero-arrows{ margin-left:0; }
  .whisker-underline{ margin-left:auto; margin-right:auto; }
  .home-hero-tagline{ margin-left:auto; margin-right:auto; }
}

@media (prefers-reduced-motion: reduce){
  .home-hero-media-frame{ animation:none; }
  .hero-slide{ transition: opacity 0.3s linear; transform:none; }
  .hero-slide-image{ transition: opacity 0.3s linear; }
}

/* ---------- FEATURE STRIP ---------- */
.home-features{ padding: 20px 0 70px; }
.home-features-grid{
  display:grid; grid-template-columns: repeat(4,1fr); gap: 24px;
}
.home-feature{
  background: var(--white); border:1px solid var(--border); border-radius: 18px;
  padding: 28px 22px; text-align:center;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease), border-color 0.35s var(--ease);
}
.home-feature:hover{ transform: translateY(-4px); box-shadow: var(--shadow); border-color: rgba(185,136,79,0.35); }
.home-feature .badge-icon{ width:34px; height:34px; margin: 0 auto 16px; }
.home-feature .badge-icon::after{ inset:9px; }
.home-feature h3{ font-size:17px; margin-bottom:8px; }
.home-feature p{ font-size:13.5px; margin:0; }

@media (max-width: 920px){ .home-features-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px){ .home-features-grid{ grid-template-columns: 1fr; } }

/* ---------- SPOTLIGHT ---------- */
.home-spotlight{ background: var(--cream-dim); padding: 20px 0 90px; }
.home-spotlight .whisker-divider{ width:100%; height:24px; margin-bottom: 50px; }
.home-spotlight .whisker-divider path{ fill:none; stroke: var(--brass-soft); stroke-width:1.6; }

.home-spotlight-inner{
  display:grid; grid-template-columns: 0.85fr 1.15fr; gap: 60px; align-items:center;
}
.spotlight-media{
  border-radius: 24px; overflow:hidden; background: var(--white);
  box-shadow: var(--shadow); border:1px solid var(--border);
}
.spotlight-media img{ width:100%; aspect-ratio: 1/1; object-fit:cover; }

.spotlight-content .eyebrow{ margin-bottom:14px; }
.spotlight-content h2{ font-size: clamp(28px,4vw,40px); margin-bottom:10px; }
.spotlight-rating{ margin-bottom: 10px; }
.spotlight-price{
  font-family:'Fraunces', serif; font-size:26px; color: var(--brass); margin-bottom: 16px;
}
.spotlight-price del{ color: var(--ink-soft); font-size:17px; margin-right:8px; }
.spotlight-desc{ color: var(--ink-soft); max-width:460px; margin-bottom: 22px; }
.spotlight-content form.cart{ margin-bottom: 18px; }
.spotlight-link{ font-size:13.5px; font-weight:600; color: var(--navy); border-bottom:1px solid var(--border); padding-bottom:2px; }
.spotlight-link:hover{ border-color: var(--brass); }

.spotlight-empty{ grid-column: 1/-1; text-align:center; max-width:520px; margin:0 auto; }
.spotlight-empty .eyebrow{ margin-bottom:14px; }
.spotlight-empty h2{ margin-bottom:10px; }

@media (max-width: 900px){
  .home-spotlight-inner{ grid-template-columns: 1fr; text-align:center; }
  .spotlight-desc{ margin-left:auto; margin-right:auto; }
  .spotlight-content form.cart{ justify-content:center; }
}

/* ---------- CTA BANNER ---------- */
.home-cta{ background: var(--navy); padding: 80px 0; }
.home-cta-inner{ text-align:center; max-width:560px; margin:0 auto; }
.home-cta-inner h2{ color: var(--cream); font-size: clamp(30px,4vw,44px); }
.home-cta-inner p{ color: rgba(246,242,234,0.7); margin-bottom: 26px; }
