/* Aureli homepage — layout + seed market motion */

/* Aureli-inspired homepage sections */

.a47-hero-banner {
  position: relative; min-height: clamp(420px, 62vh, 620px);
  display: grid; place-items: center; overflow: hidden;
}
.a47-hero-banner-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transform: scale(1.02);
}
.a47-hero-banner-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(61,43,63,.55) 0%, rgba(30,21,32,.72) 100%);
}
.a47-hero-banner-content {
  position: relative; z-index: 1; text-align: center; color: #fff;
  padding: 3rem 0;
}
.a47-hero-banner-kicker {
  font-size: .72rem; letter-spacing: .24em; text-transform: uppercase;
  margin-bottom: 1rem; opacity: .9;
}
.a47-hero-banner-content h1 {
  font-size: clamp(2rem, 5.5vw, 3.5rem);
  letter-spacing: .06em; text-transform: uppercase;
  margin-bottom: .75rem;
}
.a47-hero-banner-lede {
  font-size: 1rem; opacity: .92; margin-bottom: 2rem;
}
.a47-hero-banner-actions {
  display: flex; align-items: center; justify-content: center; gap: 1rem; flex-wrap: wrap;
}

.a47-partner-strip {
  background: var(--a47-white);
  border-bottom: 1px solid var(--a47-border);
  padding: 1.25rem 0;
}
.a47-partner-inner {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 1rem;
  font-family: var(--a47-font-serif);
  font-size: .95rem; color: var(--a47-muted);
  letter-spacing: .04em;
}

.a47-category-banners { padding: 3.5rem 0; background: var(--a47-white); }
.a47-category-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
.a47-category-banner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 180px;
  background: var(--a47-accent);
  color: #fff;
  overflow: hidden;
  transition: transform .25s ease;
}
.a47-category-banner:hover { transform: translateY(-3px); }
.a47-category-banner--peony { background: #5C7A4A; }
.a47-category-banner--hydrangea { background: #8B6B8E; }
.a47-category-banner--rose { background: #6B8F71; }
.a47-category-banner--tulip { background: #C47A3A; }
.a47-category-banner--lily { background: #3D6B5C; }
.a47-category-banner--daisy { background: #A67C52; }
.a47-category-banner--bouquet { background: #5C4A5E; }
.a47-category-banner-copy {
  display: flex; flex-direction: column; justify-content: center;
  padding: 1.75rem 1.5rem;
}
.a47-category-banner-copy h2 {
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  font-weight: 600; margin-bottom: .75rem;
}
.a47-shop-now {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; text-decoration: underline;
}
.a47-category-banner-img {
  display: flex; align-items: center; justify-content: center;
  padding: .75rem;
}
.a47-category-banner-img img {
  max-height: 150px; width: auto; object-fit: contain;
}

.a47-hot-pick { padding: 3.5rem 0; background: var(--a47-cream); }
.a47-hot-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.a47-hot-card {
  position: relative; background: var(--a47-white);
  text-align: center; overflow: hidden;
}
.a47-hot-img {
  display: block; background: #f5f2ef;
  aspect-ratio: 1; overflow: hidden;
}
.a47-hot-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .35s ease;
}
.a47-hot-card:hover .a47-hot-img img { transform: scale(1.04); }
.a47-hot-body { padding: 1rem .75rem 1.25rem; }
.a47-hot-body h3 {
  font-family: var(--a47-font-sans);
  font-size: .92rem; font-weight: 700; margin-bottom: .35rem;
}

.a47-split-promo { padding: 4rem 0; background: var(--a47-white); }
.a47-split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.a47-split-copy h2 {
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  margin-bottom: 1rem;
}
.a47-split-copy p { color: var(--a47-muted); max-width: 44ch; margin-bottom: 1.5rem; }
.a47-split-visual img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover;
  border-radius: 2px;
}

.a47-featured { padding: 3.5rem 0 4rem; }
.a47-featured-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
.a47-product-card {
  position: relative; text-align: center;
}
.a47-product-img {
  display: block; background: #f5f2ef;
  aspect-ratio: 1; overflow: hidden; margin-bottom: .75rem;
}
.a47-product-img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .35s ease;
}
.a47-product-card:hover .a47-product-img img { transform: scale(1.04); }
.a47-product-body h3 {
  font-family: var(--a47-font-sans);
  font-size: .88rem; font-weight: 700;
}
.a47-featured-cta { text-align: center; margin-top: 2.5rem; }

.a47-art-banner {
  position: relative; min-height: 320px;
  display: grid; place-items: center; overflow: hidden;
}
.a47-art-banner-bg {
  position: absolute; inset: 0;
  background: url('seed-images/AP47-002.jpg') center/cover no-repeat;
}
.a47-art-banner-bg::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(30,21,32,.58);
}
.a47-art-banner-content {
  position: relative; z-index: 1; text-align: center; color: #fff;
  padding: 3rem 1rem;
}
.a47-art-banner-content h2 {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  margin-bottom: .5rem;
}
.a47-art-banner-content p { opacity: .9; margin-bottom: 1.5rem; }

@media (max-width: 1024px) {
  .a47-hot-grid, .a47-featured-grid { grid-template-columns: repeat(2, 1fr); }
  .a47-split-grid { grid-template-columns: 1fr; }
  .a47-split-visual { order: -1; }
}

@media (max-width: 640px) {
  .a47-category-grid { grid-template-columns: 1fr; }
  .a47-category-banner { grid-template-columns: 1.2fr 1fr; min-height: 140px; }
  .a47-hot-grid, .a47-featured-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .a47-partner-inner { justify-content: center; }
}

@media (max-width: 420px) {
  .a47-hot-grid, .a47-featured-grid { grid-template-columns: 1fr; }
}

/* Dynamic Aureli homepage — same layout, creative motion & depth */

.page-home-dynamic {
  --a47-dyn-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --a47-dyn-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --a47-dyn-plum: #2a1830;
  --a47-dyn-rose: #e8b4bc;
  --a47-dyn-gold: #d4af7a;
  --a47-dyn-glass: rgba(255, 255, 255, 0.08);
}

/* ── Hero ── */
.a47-dyn-hero {
  isolation: isolate;
  min-height: clamp(460px, 68vh, 680px);
}

.a47-hero-banner-bg.a47-dyn-parallax {
  animation: a47KenBurns 22s ease-in-out infinite alternate;
  will-change: transform;
}

@keyframes a47KenBurns {
  from { transform: scale(1.05) translate3d(0, 0, 0); }
  to   { transform: scale(1.14) translate3d(-1.5%, -1%, 0); }
}

.a47-dyn-hero-mesh {
  background:
    radial-gradient(ellipse 80% 60% at 20% 80%, rgba(201, 168, 108, 0.35) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 85% 15%, rgba(232, 180, 188, 0.28) 0%, transparent 50%),
    linear-gradient(165deg, rgba(42, 24, 48, 0.72) 0%, rgba(30, 21, 32, 0.88) 55%, rgba(20, 12, 24, 0.92) 100%);
}

.a47-dyn-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.45;
  pointer-events: none;
  z-index: 1;
  animation: a47OrbFloat 14s var(--a47-dyn-ease) infinite alternate;
}
.a47-dyn-orb--1 {
  width: 280px; height: 280px;
  background: var(--a47-dyn-gold);
  top: 10%; left: 5%;
}
.a47-dyn-orb--2 {
  width: 220px; height: 220px;
  background: var(--a47-dyn-rose);
  bottom: 15%; right: 8%;
  animation-delay: -6s;
}

@keyframes a47OrbFloat {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(24px, -18px, 0) scale(1.08); }
}

.a47-dyn-pulse-dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--a47-dyn-gold);
  margin-right: .55rem;
  vertical-align: middle;
  animation: a47Pulse 2.4s ease-in-out infinite;
  box-shadow: 0 0 12px var(--a47-dyn-gold);
}

@keyframes a47Pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.75); }
}

.a47-dyn-headline-line {
  display: block;
  font-size: 0.55em;
  letter-spacing: 0.32em;
  font-weight: 500;
  margin-bottom: 0.15em;
  opacity: 0.92;
}

.a47-dyn-headline-accent {
  font-style: italic;
  font-weight: 600;
  background: linear-gradient(135deg, #fff 30%, var(--a47-dyn-gold) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.a47-dyn-btn-glow {
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(212, 175, 122, 0.45);
  transition: transform 0.35s var(--a47-dyn-ease), box-shadow 0.35s var(--a47-dyn-ease);
}
.a47-dyn-btn-glow:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(212, 175, 122, 0.55);
}

.a47-dyn-btn-shimmer {
  position: relative;
  overflow: hidden;
}
.a47-dyn-btn-shimmer::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.35) 50%, transparent 60%);
  transform: translateX(-120%);
  transition: transform 0.6s var(--a47-dyn-ease);
}
.a47-dyn-btn-shimmer:hover::after {
  transform: translateX(120%);
}

.a47-dyn-hero-scroll {
  position: absolute;
  bottom: 1.75rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.a47-dyn-hero-scroll span {
  display: block;
  width: 22px; height: 36px;
  border: 2px solid rgba(255,255,255,0.45);
  border-radius: 12px;
  position: relative;
}
.a47-dyn-hero-scroll span::after {
  content: '';
  position: absolute;
  top: 6px; left: 50%;
  width: 4px; height: 8px;
  margin-left: -2px;
  background: #fff;
  border-radius: 2px;
  animation: a47ScrollHint 2s ease-in-out infinite;
}

@keyframes a47ScrollHint {
  0%, 100% { opacity: 1; transform: translateY(0); }
  50% { opacity: 0.3; transform: translateY(8px); }
}

/* ── Marquee partner strip ── */
.a47-dyn-marquee-wrap {
  background: var(--a47-dyn-plum);
  border: none;
  padding: 0;
  overflow: hidden;
}

.a47-dyn-marquee {
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.a47-dyn-marquee-track {
  display: flex;
  gap: 3rem;
  width: max-content;
  padding: 1rem 0;
  animation: a47Marquee 28s linear infinite;
}

.a47-dyn-marquee-track span {
  font-family: var(--a47-font-serif);
  font-size: 0.95rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.75);
  white-space: nowrap;
  position: relative;
  padding-right: 3rem;
}
.a47-dyn-marquee-track span::after {
  content: '✦';
  position: absolute;
  right: 0;
  color: var(--a47-dyn-gold);
  font-size: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
}

@keyframes a47Marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Section tags ── */
.a47-dyn-section-tag {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--a47-secondary);
  margin-bottom: 0.5rem;
  padding: 0.25rem 0.75rem;
  border: 1px solid rgba(201, 168, 108, 0.4);
  border-radius: 999px;
}

.a47-dyn-section--warm {
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(232, 180, 188, 0.12) 0%, transparent 60%),
    var(--a47-cream);
}

.a47-dyn-line-draw {
  transform-origin: center;
  animation: a47LineDraw 1.2s var(--a47-dyn-ease-out) both;
  animation-play-state: paused;
}
.a47-dyn-reveal.is-visible .a47-dyn-line-draw {
  animation-play-state: running;
}

@keyframes a47LineDraw {
  from { transform: scaleX(0); opacity: 0; }
  to   { transform: scaleX(1); opacity: 1; }
}

/* ── Category banners ── */
.a47-dyn-cat {
  position: relative;
  border-radius: 0;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
  transition: clip-path 0.45s var(--a47-dyn-ease), transform 0.45s var(--a47-dyn-ease), box-shadow 0.45s var(--a47-dyn-ease);
  box-shadow: 0 4px 0 rgba(0,0,0,0.06);
}
.a47-dyn-cat:hover {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%);
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(42, 24, 48, 0.18);
}

.a47-dyn-cat-index {
  position: absolute;
  top: 0.75rem; right: 0.85rem;
  font-size: 2.5rem;
  font-family: var(--a47-font-serif);
  font-weight: 700;
  opacity: 0.15;
  line-height: 1;
  pointer-events: none;
}

.a47-dyn-cat-float img {
  animation: a47CatFloat 5s var(--a47-dyn-ease) infinite alternate;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,0.15));
}

@keyframes a47CatFloat {
  from { transform: translateY(4px) rotate(-2deg); }
  to   { transform: translateY(-8px) rotate(2deg); }
}

.a47-dyn-cat:hover .a47-dyn-cat-float img {
  animation-play-state: paused;
  transform: scale(1.06) rotate(0deg);
  transition: transform 0.5s var(--a47-dyn-ease);
}

.a47-dyn-arrow {
  display: inline-block;
  transition: transform 0.3s var(--a47-dyn-ease);
}
.a47-dyn-cat:hover .a47-dyn-arrow {
  transform: translateX(5px);
}

/* ── Hot pick cards ── */
.a47-dyn-card {
  border-radius: 2px;
  background: var(--a47-white);
  box-shadow: 0 1px 0 rgba(42,24,48,0.06);
  transition: transform 0.4s var(--a47-dyn-ease), box-shadow 0.4s var(--a47-dyn-ease);
}
.a47-dyn-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, var(--a47-dyn-gold), transparent 40%, var(--a47-dyn-rose));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s var(--a47-dyn-ease);
  pointer-events: none;
  z-index: 3;
}
.a47-dyn-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 48px rgba(42, 24, 48, 0.12);
}
.a47-dyn-card:hover::before {
  opacity: 1;
}

.a47-dyn-card-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(42,24,48,0.25) 100%);
  opacity: 0;
  transition: opacity 0.35s var(--a47-dyn-ease);
  pointer-events: none;
}
.a47-dyn-card:hover .a47-dyn-card-shade {
  opacity: 1;
}

/* ── Split promo frame ── */
.a47-dyn-frame {
  position: relative;
  margin: 0;
}
.a47-dyn-frame img {
  border-radius: 0;
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  transition: clip-path 0.5s var(--a47-dyn-ease), transform 0.5s var(--a47-dyn-ease);
}
.a47-dyn-frame:hover img {
  clip-path: polygon(20px 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%, 0 20px);
  transform: scale(1.02);
}

.a47-dyn-frame-ring {
  position: absolute;
  inset: -12px;
  border: 1px solid rgba(201, 168, 108, 0.35);
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  pointer-events: none;
  transition: inset 0.5s var(--a47-dyn-ease), opacity 0.5s;
  opacity: 0.6;
}
.a47-dyn-frame:hover .a47-dyn-frame-ring {
  inset: -18px;
  opacity: 1;
}

/* ── Featured product hover ── */
.a47-dyn-product .a47-product-img {
  position: relative;
  border-radius: 2px;
  overflow: hidden;
}

.a47-dyn-product-hover {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(42, 24, 48, 0.55);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.35s var(--a47-dyn-ease), transform 0.35s var(--a47-dyn-ease);
}
.a47-dyn-product:hover .a47-dyn-product-hover {
  opacity: 1;
  transform: translateY(0);
}

.a47-dyn-product:hover .a47-product-img img {
  transform: scale(1.08);
}

/* ── Bottom art banner ── */
.a47-dyn-art {
  min-height: 360px;
}

.a47-dyn-parallax-slow {
  background: url('seed-images/AP47-016.jpg') center/cover no-repeat;
  animation: a47KenBurns 30s ease-in-out infinite alternate-reverse;
}

.a47-dyn-art-grain {
  position: absolute;
  inset: 0;
  opacity: 0.04;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 1;
}

.a47-art-banner-bg::after {
  background: linear-gradient(135deg, rgba(42,24,48,0.75) 0%, rgba(30,21,32,0.65) 50%, rgba(201,168,108,0.25) 100%);
}

/* ── Scroll reveal ── */
.a47-dyn-reveal {
  opacity: 0;
  transform: translateY(32px);
  transition:
    opacity 0.75s var(--a47-dyn-ease-out),
    transform 0.75s var(--a47-dyn-ease-out);
  transition-delay: calc(var(--a47-stagger, 0) * 80ms);
}
.a47-dyn-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.a47-dyn-hero .a47-dyn-reveal {
  opacity: 1;
  transform: none;
  animation: a47HeroIn 1.1s var(--a47-dyn-ease-out) both;
}

@keyframes a47HeroIn {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .a47-hero-banner-bg,
  .a47-dyn-parallax-slow,
  .a47-dyn-marquee-track,
  .a47-dyn-orb,
  .a47-dyn-cat-float img,
  .a47-dyn-pulse-dot,
  .a47-dyn-hero-scroll span::after {
    animation: none !important;
  }
  .a47-dyn-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ── Responsive (layout unchanged) ── */
@media (max-width: 1024px) {
  .a47-dyn-orb { display: none; }
}

@media (max-width: 640px) {
  .a47-dyn-headline-line { font-size: 0.5em; }
  .a47-dyn-cat-index { font-size: 1.75rem; }
}
