/* Famous Bridal public-page motion (seo-20261016).
 * Only opacity/transform/scale/translate are animated so layout never shifts
 * (keeps Core Web Vitals healthy). Everything is off for reduced-motion users,
 * and content is only hidden after site-motion.js has run. */

/* Home H1 now carries brand + service/place; keep the original look. */
.luxury-hero h1 .luxury-hero-brand { display: block; }
.luxury-hero h1 .luxury-hero-subtitle { display: block; letter-spacing: 0; }
.luxury-hero-zh {
  margin: 14px 0 0;
  color: var(--lux-champagne-deep, #9a7b4f);
  font-family: "Noto Serif SC", "Cormorant Garamond", serif;
  font-size: clamp(14px, 1.15vw, 16px);
  letter-spacing: 0.08em;
}

/* Chinese service index in the footer */
.footer-services-zh {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 13px;
}
.footer-services-zh-title { font-weight: 700; opacity: 0.85; margin-right: 4px; }
.footer-services-zh a { color: inherit; opacity: 0.75; text-decoration: none; transition: opacity .2s ease; }
.footer-services-zh a:hover, .footer-services-zh a:focus-visible { opacity: 1; text-decoration: underline; }

@media (prefers-reduced-motion: no-preference) {
  /* Slow cinematic zoom on hero photos */
  .luxury-hero-bg,
  .subhero img,
  .story-hero img,
  [class*="-hero-media"] img,
  .portfolio-index-hero img {
    animation: fb-kenburns 14s cubic-bezier(.22, .61, .36, 1) both;
    will-change: scale;
  }
  @keyframes fb-kenburns { from { scale: 1.09; } to { scale: 1; } }

  /* Hero text rises in on load */
  .luxury-hero-inner > *,
  .subhero > *:not(img):not(picture) {
    animation: fb-rise .9s cubic-bezier(.22, .61, .36, 1) both;
  }
  .luxury-hero-inner > *:nth-child(2), .subhero > *:nth-child(2) { animation-delay: .08s; }
  .luxury-hero-inner > *:nth-child(3), .subhero > *:nth-child(3) { animation-delay: .16s; }
  .luxury-hero-inner > *:nth-child(4), .subhero > *:nth-child(4) { animation-delay: .24s; }
  .luxury-hero-inner > *:nth-child(5), .subhero > *:nth-child(5) { animation-delay: .32s; }
  .luxury-hero-inner > *:nth-child(n+6), .subhero > *:nth-child(n+6) { animation-delay: .4s; }
  @keyframes fb-rise { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }

  /* Scroll reveal (classes added by site-motion.js) */
  .fb-reveal {
    opacity: 0;
    translate: 0 28px;
    transition: opacity .8s cubic-bezier(.22, .61, .36, 1), translate .8s cubic-bezier(.22, .61, .36, 1);
    transition-delay: var(--fb-delay, 0s);
  }
  .fb-reveal.fb-reveal-image { translate: 0 0; scale: 1.04; transition-property: opacity, scale; }
  .fb-reveal.is-visible { opacity: 1; translate: 0 0; scale: 1; }

  /* Cards: gentle lift and photo zoom on hover */
  .fb-card { transition: translate .35s ease, box-shadow .35s ease; }
  .fb-card .fb-card-media { overflow: hidden; }
  .fb-card img { transition: scale .9s cubic-bezier(.22, .61, .36, 1), filter .5s ease; }
  @media (hover: hover) {
    .fb-card:hover { translate: 0 -4px; box-shadow: 0 18px 40px -22px rgba(43, 41, 38, .45); }
    .fb-card:hover img { scale: 1.045; filter: saturate(1.05); }
  }

  /* Buttons: soft light sweep on hover */
  .luxury-button { position: relative; overflow: hidden; }
  .luxury-button::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .45) 50%, transparent 70%);
    translate: -120% 0;
    pointer-events: none;
  }
  @media (hover: hover) {
    .luxury-button:hover::after { translate: 120% 0; transition: translate .8s ease; }
  }

  /* Header gains depth after scrolling */
  .site-header { transition: box-shadow .3s ease, background-color .3s ease; }
  .site-header.fb-scrolled { box-shadow: 0 10px 30px -24px rgba(43, 41, 38, .55); }
}
