/* ---------- Hero Slider ---------- */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, var(--cream-000) 0%, var(--cream-050) 100%);
  padding:0;
}
.hero-slider{position:relative;}
.hero-slider-viewport{overflow:hidden;}
.hero-track{display:flex; transition:transform .6s cubic-bezier(.25,.8,.3,1);}
.hero-slide{flex:0 0 100%; padding:64px 0 90px;}
.hero-slide .container{
  display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
}
.hero-eyebrow{
  font-family:var(--font-body); font-weight:600; font-size:.8rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--green-700); margin-bottom:18px; display:flex; align-items:center; gap:10px;
}
.hero-eyebrow::before{content:"";width:26px;height:1px;background:var(--gold-500);}
.hero-heading em{font-style:italic; color:var(--gold-600);}
.hero p.lede{font-size:1.15rem; max-width:460px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:38px;}
.hero-stats{display:flex; gap:36px;}
.hero-stats div strong{display:block; font-family:var(--font-display); font-size:1.7rem; color:var(--maroon-900);}
.hero-stats div span{font-size:.8rem; color:var(--ink-500); text-transform:uppercase; letter-spacing:.06em;}

.hero-art{position:relative; display:flex; align-items:center; justify-content:center;}
.hero-art-frame{
  position:relative; width:100%; aspect-ratio:1/1; border-radius:50% 50% 46% 46%/58% 58% 42% 42%;
  background:radial-gradient(circle at 50% 38%, var(--gold-100) 0%, var(--cream-100) 62%, var(--cream-050) 100%);
  display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 1px rgba(201,138,44,.25);
}
.hero-art-frame img{width:86%; border-radius:50%; object-fit:cover; box-shadow:var(--shadow-lg);}

/* Slider controls */
.slider-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--cream-200);
  background:rgba(253,248,241,.9); color:var(--maroon-900); display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:var(--shadow-sm); transition:background .2s, transform .2s;
}
.slider-arrow:hover{background:var(--white); transform:translateY(-50%) scale(1.06);}
.slider-arrow.prev{left:8px;}
.slider-arrow.next{right:8px;}
.slider-arrow svg{width:20px; height:20px;}

.slider-dots{
  display:flex; justify-content:center; gap:10px; padding-bottom:28px;
}
.slider-dots button{
  width:9px; height:9px; border-radius:50%; border:none; background:var(--cream-200); cursor:pointer; padding:0;
  transition:background .25s, width .25s;
}
.slider-dots button.active{background:var(--gold-500); width:26px; border-radius:999px;}

@media (max-width:760px){
  .slider-arrow{width:38px; height:38px;}
  .slider-arrow svg{width:16px; height:16px;}
}
.hero-flame{
  position:absolute; top:6%; left:50%; transform:translateX(-50%);
  width:64px; height:64px; opacity:.9;
}
.hero-glow-ray{
  position:absolute; inset:0; border-radius:inherit;
  background:conic-gradient(from 200deg, transparent 0deg, rgba(201,138,44,.22) 40deg, transparent 90deg);
  animation:spin 18s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
.hero-leaf{position:absolute; width:70px; opacity:.85;}
.hero-leaf.l1{top:-10px; left:-18px; transform:rotate(-18deg);}
.hero-leaf.l2{bottom:0; right:-24px; transform:rotate(16deg) scaleX(-1);}

@media (max-width:960px){
  .hero-slide .container{grid-template-columns:1fr; text-align:center;}
  .hero-eyebrow, .hero-ctas, .hero-stats{justify-content:center;}
  .hero p.lede{margin-left:auto; margin-right:auto;}
  .hero-art{margin-top:20px; max-width:380px; margin-left:auto; margin-right:auto;}
}

/* ---------- Trust strip ---------- */
.trust-strip{padding:0; background:var(--white); border-top:1px solid var(--cream-200); border-bottom:1px solid var(--cream-200);}
.trust-strip .container{display:flex; padding:26px 24px;}
.trust-item{flex:1; display:flex; align-items:center; gap:12px; justify-content:center; text-align:left; padding:0 12px;}
.trust-item svg{width:30px;height:30px;color:var(--gold-600); flex-shrink:0;}
.trust-item strong{display:block; font-size:.88rem; color:var(--maroon-900);}
.trust-item span{font-size:.76rem; color:var(--ink-500);}
@media (max-width:860px){
  .trust-strip .container{flex-wrap:wrap; gap:18px;}
  .trust-item{flex:1 1 45%;}
}

/* ---------- Category ring ---------- */
.category-scroll{display:grid; grid-template-columns:repeat(7,1fr); gap:20px;}
.category-card{
  display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center;
  padding:8px 6px; border-radius:var(--r-md); transition:transform .25s ease;
}
.category-card:hover{transform:translateY(-6px);}
.category-ring{
  width:116px; height:116px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--cream-100); border:1.5px solid var(--cream-200); position:relative; overflow:hidden;
  transition:border-color .25s, box-shadow .25s;
}
.category-card:hover .category-ring{border-color:var(--gold-400); box-shadow:var(--shadow-md);}
.category-ring img{width:60%; height:60%; object-fit:contain;}
.category-card strong{font-size:.9rem; color:var(--maroon-900); font-weight:600;}
.category-card span{font-size:.76rem; color:var(--ink-500);}
@media (max-width:960px){.category-scroll{grid-template-columns:repeat(4,1fr);}}
@media (max-width:600px){.category-scroll{grid-template-columns:repeat(3,1fr); gap:14px;}}

/* ---------- Feature split (Kits / Best Sellers / Flowers) ---------- */
.feature-split{display:grid; grid-template-columns:.85fr 1.3fr .85fr; gap:24px;}
.feature-panel{
  background:var(--white); border-radius:var(--r-lg); padding:30px; border:1px solid var(--cream-200);
  display:flex; flex-direction:column;
}
.feature-panel.dark{background:var(--maroon-900); color:var(--cream-100);}
.feature-panel.dark h3{color:#fff;}
.feature-panel.dark p{color:var(--cream-200);}
.feature-panel-img{border-radius:var(--r-md); overflow:hidden; margin-bottom:20px; aspect-ratio:4/3;}
.feature-panel-img img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.feature-panel:hover .feature-panel-img img{transform:scale(1.06);}
.feature-panel h3{margin-bottom:8px;}
.feature-panel p{font-size:.92rem; margin-bottom:18px;}

.mini-products{display:flex; flex-direction:column; gap:14px; margin-bottom:14px;}
.mini-products.grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.mini-product{
  display:flex; align-items:center; gap:12px; padding:10px; border-radius:var(--r-sm);
  border:1px solid var(--cream-200); transition:border-color .2s, box-shadow .2s;
}
.mini-product:hover{border-color:var(--gold-400); box-shadow:var(--shadow-sm);}
.mini-product img{width:68px; height:68px; border-radius:10px; object-fit:cover; background:var(--cream-100); flex-shrink:0;}
.mini-product .mp-info{flex:1; min-width:0;}
.mini-product .mp-info strong{display:block; font-size:.84rem; color:var(--ink-900); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mini-product .mp-info .stars{font-size:.7rem; color:var(--gold-600); margin:2px 0;}
.mini-product .mp-info .price{font-size:.86rem; font-weight:700; color:var(--maroon-800);}
.grid2 .mini-product{flex-direction:column; align-items:flex-start;}
.grid2 .mini-product img{width:100%; height:120px; object-fit:cover;}

@media (max-width:960px){.feature-split{grid-template-columns:1fr; }}

/* ---------- Why choose ---------- */
.why-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:22px;}
.why-card{text-align:center; padding:22px 14px;}
.why-icon{
  width:66px; height:66px; border-radius:50%; margin:0 auto 16px; display:flex; align-items:center; justify-content:center;
  background:var(--cream-100); color:var(--maroon-800); position:relative;
}
.why-icon svg{width:28px; height:28px;}
.why-card h4{font-family:var(--font-body); font-size:.98rem; font-weight:700; color:var(--maroon-900); margin-bottom:6px;}
.why-card p{font-size:.85rem;}
@media (max-width:960px){.why-grid{grid-template-columns:repeat(2,1fr);}}

/* ---------- Festival CTA banner ---------- */
.festival-banner{
  position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:340px;
  display:flex; align-items:center; padding:0 60px;
  background:linear-gradient(100deg, rgba(78,15,28,.92) 20%, rgba(78,15,28,.55) 60%, rgba(78,15,28,.1) 100%), url('../images/festival-bg.svg') center/cover;
}
.festival-banner-content{max-width:460px; color:#fff; position:relative; z-index:2;}
.festival-banner .eyebrow{color:var(--gold-300);}
.festival-banner .eyebrow::before{background:var(--gold-300);}
.festival-banner h2{color:#fff; margin-bottom:14px;}
.festival-banner p{color:var(--cream-100); margin-bottom:26px;}
@media (max-width:760px){.festival-banner{padding:40px 28px; min-height:auto;}}

/* ---------- Testimonials ---------- */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.testi-card{background:var(--white); border:1px solid var(--cream-200); border-radius:var(--r-md); padding:28px;}
.testi-stars{color:var(--gold-500); font-size:.9rem; margin-bottom:14px;}
.testi-card p{font-style:italic; color:var(--ink-700); margin-bottom:18px;}
.testi-person{display:flex; align-items:center; gap:12px;}
.testi-avatar{
  width:42px; height:42px; border-radius:50%; background:var(--maroon-800); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700;
}
.testi-person strong{display:block; font-size:.88rem; color:var(--maroon-900);}
.testi-person span{font-size:.76rem; color:var(--ink-500);}
@media (max-width:860px){.testi-grid{grid-template-columns:1fr;}}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--cream-200);}
.faq-q{
  display:flex; justify-content:space-between; align-items:center; gap:20px; width:100%;
  background:none; border:none; text-align:left; padding:22px 4px; cursor:pointer;
  font-family:var(--font-display); font-size:1.08rem; color:var(--maroon-900); font-weight:600;
}
.faq-q svg{flex-shrink:0; width:20px; height:20px; transition:transform .25s ease; color:var(--gold-600);}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-item.open .faq-a{max-height:240px;}
.faq-a p{padding:0 4px 22px; max-width:640px;}

/* ---------- Newsletter ---------- */
.newsletter{
  background:var(--maroon-900); border-radius:var(--r-lg); padding:56px 60px; text-align:center; color:#fff;
  position:relative; overflow:hidden;
}
.newsletter h2{color:#fff;}
.newsletter p{color:var(--cream-200); max-width:520px; margin:0 auto 26px;}
.newsletter-form{display:flex; max-width:440px; margin:0 auto; gap:0;}
.newsletter-form input{
  flex:1; padding:14px 18px; border-radius:999px 0 0 999px; border:none; font-family:var(--font-body);
}
.newsletter-form button{
  border-radius:0 999px 999px 0; border:none; background:var(--gold-500); color:var(--maroon-900); font-weight:700;
  padding:0 26px; cursor:pointer;
}
@media (max-width:600px){.newsletter{padding:40px 24px;}}
