/* ==========================================================================
   Flores Ya Pro — Main Stylesheet
   ========================================================================== */

/* ---------- Design Tokens ---------- */
:root {
	--fy-primary: #2C5545;
	--fy-primary-dark: #0e3727;
	--fy-accent: #C4896F;
	--fy-accent-rose: #D4A3A3;
	--fy-bg: #FDFBF7;
	--fy-surface: #ffffff;
	--fy-border: #e0ddd7;
	--fy-text: #1a1a1a;
	--fy-text-light: #333333;
	--fy-text-muted: #666666;
	--fy-success: #2d7d46;
	--fy-error: #d63031;
	--fy-warning: #f39c12;
	--fy-font-heading: 'Playfair Display', serif;
	--fy-font-body: 'Inter', sans-serif;
	--fy-content-width: 800px;
	--fy-wide-width: 1200px;
	--fy-radius: 0px;
	--fy-radius-sm: 4px;
	--fy-shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
	--fy-shadow-md: 0 4px 12px rgba(0,0,0,0.1);
	--fy-shadow-lg: 0 8px 30px rgba(0,0,0,0.12);
	--fy-transition: 0.2s ease;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-family: var(--fy-font-body); font-size: 16px; line-height: 1.6; color: var(--fy-text); background: var(--fy-bg); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--fy-primary); text-decoration: none; transition: color var(--fy-transition); }
a:hover { color: var(--fy-primary-dark); }
h1, h2, h3, h4, h5, h6 { font-family: var(--fy-font-heading); color: var(--fy-primary); line-height: 1.2; font-weight: 700; }
h1 { font-size: clamp(28px, 6vw, 42px); }
h2 { font-size: clamp(24px, 4vw, 36px); }
h3 { font-size: clamp(18px, 3vw, 24px); }
ul, ol { list-style: none; }
button { cursor: pointer; font-family: var(--fy-font-body); }
input, textarea, select { font-family: var(--fy-font-body); font-size: 16px; }

/* Screen reader text */
.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); position: absolute; height: 1px; width: 1px; overflow: hidden; word-wrap: normal; }
.screen-reader-text:focus { clip: auto; background: #fff; border: 1px solid var(--fy-border); display: block; height: auto; left: 5px; top: 5px; padding: 15px 23px 14px; width: auto; z-index: 100000; }

/* ---------- Skip Link ---------- */
.fy-skip-link { position: absolute; top: -100%; left: 50%; transform: translateX(-50%); z-index: 10000; background: var(--fy-primary); color: #fff; padding: 8px 16px; font-weight: 600; }
.fy-skip-link:focus { top: 0; color: #fff; }

/* ---------- Topbar ---------- */
.fy-topbar { background: var(--fy-primary); color: #fff; padding: 8px 0; font-size: 13px; text-align: center; position: relative; overflow: hidden; transition: max-height 0.3s, padding 0.3s; }
.fy-topbar.is-closed { max-height: 0; padding: 0; }
.fy-topbar__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.fy-topbar__text { display: flex; align-items: center; gap: 6px; }
.fy-topbar__close { background: none; border: none; color: #fff; cursor: pointer; padding: 4px; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); opacity: 0.7; transition: opacity var(--fy-transition); }
.fy-topbar__close:hover { opacity: 1; }

/* ---------- Header ---------- */
.fy-site-header { background: var(--fy-surface); border-bottom: 1px solid var(--fy-border); position: sticky; top: 0; z-index: 100; transition: box-shadow var(--fy-transition); }
.fy-site-header.is-sticky { box-shadow: var(--fy-shadow-md); }
.fy-header-inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.fy-header-logo img, .fy-header-logo .custom-logo { max-height: 48px; width: auto; }
.fy-header-logo .fy-site-title { font-family: var(--fy-font-heading); font-size: 24px; color: var(--fy-primary); font-weight: 700; }
.fy-main-navigation { display: none; }
.fy-nav-menu { list-style: none; display: flex; gap: 24px; }
.fy-nav-menu a { color: var(--fy-text); font-size: 14px; font-weight: 500; transition: color var(--fy-transition); }
.fy-nav-menu a:hover { color: var(--fy-primary); }
.fy-header-actions { display: flex; align-items: center; gap: 12px; }

/* Cart icon */
.fy-mini-cart-toggle { position: relative; }
.fy-cart-link { position: relative; display: flex; align-items: center; color: var(--fy-text); padding: 4px; }
.fy-cart-count { position: absolute; top: -4px; right: -6px; background: var(--fy-accent); color: #fff; font-size: 11px; font-weight: 600; min-width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; line-height: 1; }

/* Mini-cart dropdown */
.fy-mini-cart-dropdown { position: absolute; top: 100%; right: 0; width: 340px; background: var(--fy-surface); border: 1px solid var(--fy-border); box-shadow: var(--fy-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(8px); transition: all var(--fy-transition); z-index: 200; padding: 16px; }
.fy-mini-cart-toggle:hover .fy-mini-cart-dropdown,
.fy-mini-cart-dropdown.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.fy-mini-cart__title { font-size: 16px; margin-bottom: 12px; }
.fy-mini-cart__items { list-style: none; max-height: 240px; overflow-y: auto; }
.fy-mini-cart__item { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--fy-border); align-items: center; }
.fy-mini-cart__item-image { width: 50px; flex-shrink: 0; }
.fy-mini-cart__item-image img { width: 50px; height: 50px; object-fit: cover; }
.fy-mini-cart__item-name { font-size: 13px; font-weight: 500; display: block; }
.fy-mini-cart__item-qty { font-size: 12px; color: var(--fy-text-muted); }
.fy-mini-cart__item-remove { font-size: 18px; color: var(--fy-text-muted); margin-left: auto; text-decoration: none; }
.fy-mini-cart__total { display: flex; justify-content: space-between; padding: 12px 0; font-weight: 600; border-top: 2px solid var(--fy-primary); margin-top: 8px; }
.fy-mini-cart__actions { display: flex; gap: 8px; margin-top: 12px; }
.fy-mini-cart__actions .fy-btn { flex: 1; font-size: 12px; padding: 8px 12px; text-align: center; }
.fy-mini-cart__empty { text-align: center; padding: 24px 0; color: var(--fy-text-muted); }

/* Menu toggle */
.fy-menu-toggle { background: none; border: none; cursor: pointer; padding: 4px; color: var(--fy-text); }

/* ---------- Mobile Menu ---------- */
.fy-mobile-menu { position: fixed; top: 0; right: -100%; width: 85%; max-width: 360px; height: 100vh; background: var(--fy-surface); z-index: 1000; transition: right 0.3s ease; overflow-y: auto; box-shadow: var(--fy-shadow-lg); }
.fy-mobile-menu.is-open { right: 0; }
.fy-mobile-menu__header { display: flex; justify-content: space-between; align-items: center; padding: 16px; border-bottom: 1px solid var(--fy-border); }
.fy-mobile-menu__title { font-size: 18px; font-weight: 600; }
.fy-mobile-menu__close { background: none; border: none; color: var(--fy-text); padding: 4px; }
.fy-mobile-nav-menu { list-style: none; padding: 8px 0; }
.fy-mobile-nav-menu li { border-bottom: 1px solid var(--fy-border); }
.fy-mobile-nav-menu a { display: block; padding: 14px 16px; color: var(--fy-text); font-size: 15px; font-weight: 500; }
.fy-mobile-nav-menu a:hover { background: rgba(44, 85, 69, 0.05); color: var(--fy-primary); }
.fy-mobile-menu__cart, .fy-mobile-menu__whatsapp { padding: 12px 16px; border-top: 1px solid var(--fy-border); }
.fy-mobile-menu__cart a, .fy-mobile-menu__whatsapp a { display: flex; align-items: center; gap: 8px; color: var(--fy-text); font-weight: 500; }
.fy-mobile-menu__overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 999; opacity: 0; visibility: hidden; transition: all 0.3s; }
.fy-mobile-menu.is-open ~ .fy-mobile-menu__overlay { opacity: 1; visibility: visible; }

/* ---------- Buttons ---------- */
.fy-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--fy-font-body); font-weight: 600; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; padding: calc(0.667em + 2px) calc(1.333em + 2px); border: 2px solid transparent; cursor: pointer; transition: all var(--fy-transition); text-decoration: none; line-height: 1; }
.fy-btn-primary { background: var(--fy-primary); color: #fff; border-color: var(--fy-primary); }
.fy-btn-primary:hover { background: var(--fy-primary-dark); border-color: var(--fy-primary-dark); color: #fff; }
.fy-btn-secondary { background: transparent; color: var(--fy-primary); border-color: var(--fy-primary); }
.fy-btn-secondary:hover { background: var(--fy-primary); color: #fff; }
.fy-btn-accent { background: var(--fy-accent); color: #fff; border-color: var(--fy-accent); }
.fy-btn-accent:hover { background: #b07a62; border-color: #b07a62; color: #fff; }
.fy-btn-buy-now { background: var(--fy-accent); color: #fff; border-color: var(--fy-accent); width: 100%; margin-top: 8px; }
.fy-btn-buy-now:hover { background: #b07a62; border-color: #b07a62; }

/* ---------- Section Container ---------- */
.fy-section { padding: 48px 0; }
.fy-section__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; }
.fy-section__title { font-size: clamp(24px, 4vw, 36px); text-align: center; margin-bottom: 8px; }
.fy-section__subtitle { text-align: center; color: var(--fy-text-light); margin-bottom: 32px; font-size: 16px; }
.fy-section__cta { text-align: center; margin-top: 32px; }

/* ---------- Hero ---------- */
.fy-hero { position: relative; min-height: 60vh; display: flex; align-items: center; justify-content: center; background-color: var(--fy-primary); background-size: cover; background-position: center; color: #fff; text-align: center; padding: 60px 16px; }
.fy-hero__overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(14,55,39,0.7), rgba(44,85,69,0.5)); }
.fy-hero__content { position: relative; z-index: 1; max-width: 700px; }
.fy-hero__title { font-size: clamp(28px, 6vw, 48px); color: #fff; margin-bottom: 16px; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.fy-hero__subtitle { font-size: clamp(16px, 2.5vw, 20px); margin-bottom: 24px; opacity: 0.9; }
.fy-hero__cta { font-size: 16px; padding: 14px 32px; }

/* ---------- Category Grid ---------- */
.fy-category-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.fy-category-card { display: block; text-align: center; text-decoration: none; transition: transform var(--fy-transition); }
.fy-category-card:hover { transform: translateY(-4px); }
.fy-category-card__image { border-radius: 8px; overflow: hidden; aspect-ratio: 1; background: var(--fy-border); }
.fy-category-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.fy-category-card:hover .fy-category-card__image img { transform: scale(1.05); }
.fy-category-card__placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--fy-primary), var(--fy-accent)); color: #fff; }
.fy-category-card__name { font-family: var(--fy-font-body); font-size: 14px; font-weight: 600; color: var(--fy-text); margin-top: 8px; }
.fy-category-card__count { font-weight: 400; color: var(--fy-text-muted); font-size: 12px; }

/* ---------- Product Grid ---------- */
.fy-product-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.fy-product-card { background: var(--fy-surface); border: 1px solid var(--fy-border); overflow: hidden; transition: box-shadow var(--fy-transition), transform var(--fy-transition); position: relative; }
.fy-product-card:hover { box-shadow: var(--fy-shadow-md); transform: translateY(-2px); }
.fy-product-card__link { text-decoration: none; color: inherit; display: block; }
.fy-product-card__image { aspect-ratio: 1; overflow: hidden; background: #f5f5f5; position: relative; }
.fy-product-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.fy-product-card:hover .fy-product-card__image img { transform: scale(1.05); }
.fy-product-card__placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, #f0f0f0, #e0e0e0); }
.fy-product-card__badge { position: absolute; top: 8px; left: 8px; padding: 4px 8px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; z-index: 1; }
.fy-product-card__badge--sale { background: var(--fy-error); color: #fff; }
.fy-product-card__badge--featured { background: var(--fy-primary); color: #fff; }
.fy-product-card__info { padding: 12px; }
.fy-product-card__title { font-family: var(--fy-font-body); font-size: 14px; font-weight: 600; color: var(--fy-text); margin-bottom: 4px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fy-product-card__price { font-size: 16px; font-weight: 700; color: var(--fy-primary); margin-bottom: 4px; }
.fy-product-card__price del { color: var(--fy-text-muted); font-weight: 400; font-size: 13px; }
.fy-product-card__price ins { text-decoration: none; color: var(--fy-error); }
.fy-delivery-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--fy-success); font-weight: 500; }

/* Quick Buy Button */
.fy-quick-buy { width: 100%; padding: 10px; background: var(--fy-primary); color: #fff; border: none; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; transition: background-color var(--fy-transition); }
.fy-quick-buy:hover { background: var(--fy-primary-dark); }
.fy-quick-buy.is-loading { opacity: 0.7; pointer-events: none; }

/* ---------- Countdown ---------- */
.fy-countdown-section { background: var(--fy-primary); color: #fff; padding: 32px 0; }
.fy-countdown-section__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; text-align: center; }
.fy-countdown-section__title { color: #fff; margin-bottom: 4px; }
.fy-countdown-section__text { font-size: 14px; opacity: 0.9; }
.fy-countdown { display: flex; align-items: center; gap: 8px; }
.fy-countdown__block { text-align: center; }
.fy-countdown__number { display: block; font-size: 32px; font-weight: 700; font-family: var(--fy-font-heading); line-height: 1; background: rgba(255,255,255,0.15); padding: 8px 12px; min-width: 56px; }
.fy-countdown__label { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-top: 4px; display: block; opacity: 0.8; }
.fy-countdown__sep { font-size: 28px; font-weight: 700; opacity: 0.6; }

/* ---------- Trust Badges ---------- */
.fy-trust-badges { padding: 32px 0; background: var(--fy-surface); border-top: 1px solid var(--fy-border); border-bottom: 1px solid var(--fy-border); }
.fy-trust-badges__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; display: grid; grid-template-columns: 1fr; gap: 20px; }
.fy-trust-badges--horizontal .fy-trust-badges__inner { grid-template-columns: repeat(2, 1fr); }
.fy-trust-badge { display: flex; align-items: center; gap: 12px; }
.fy-trust-badge__icon { color: var(--fy-primary); flex-shrink: 0; }
.fy-trust-badge__title { font-family: var(--fy-font-body); font-size: 14px; font-weight: 600; color: var(--fy-text); margin-bottom: 2px; }
.fy-trust-badge__desc { font-size: 12px; color: var(--fy-text-muted); }

/* ---------- Testimonials ---------- */
.fy-testimonials__header { text-align: center; margin-bottom: 24px; }
.fy-testimonials__badge { display: inline-block; background: var(--fy-primary); color: #fff; padding: 4px 12px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; }
.fy-testimonials__stars { display: flex; justify-content: center; gap: 2px; margin-bottom: 4px; }
.fy-testimonials__summary { font-size: 13px; color: var(--fy-text-muted); }
.fy-testimonials__slider { overflow: hidden; position: relative; }
.fy-testimonials__track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
.fy-testimonials__track::-webkit-scrollbar { display: none; }
.fy-testimonial-card { flex: 0 0 280px; scroll-snap-align: start; background: var(--fy-surface); border: 1px solid var(--fy-border); padding: 20px; }
.fy-testimonial-card__rating { display: flex; gap: 2px; margin-bottom: 12px; }
.fy-testimonial-card__text { font-size: 14px; line-height: 1.5; color: var(--fy-text-light); margin-bottom: 12px; }
.fy-testimonial-card__name { font-weight: 600; font-size: 13px; }

/* Stars */
.fy-star { font-size: 18px; }
.fy-star--full { color: #f39c12; }
.fy-star--half { color: #f39c12; }
.fy-star--empty { color: var(--fy-border); }
.fy-rating { display: flex; align-items: center; gap: 2px; }
.fy-rating-count { font-size: 12px; color: var(--fy-text-muted); margin-left: 4px; }

/* ---------- Occasions ---------- */
.fy-occasions__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.fy-occasion-card { display: block; text-align: center; padding: 24px 16px; background: var(--fy-surface); border: 1px solid var(--fy-border); transition: all var(--fy-transition); text-decoration: none; }
.fy-occasion-card:hover { border-color: var(--fy-primary); box-shadow: var(--fy-shadow-md); transform: translateY(-2px); }
.fy-occasion-card__icon { color: var(--fy-primary); margin-bottom: 12px; }
.fy-occasion-card__title { font-family: var(--fy-font-body); font-size: 16px; font-weight: 600; color: var(--fy-text); margin-bottom: 4px; }
.fy-occasion-card__desc { font-size: 13px; color: var(--fy-text-muted); }

/* ---------- Featured Product ---------- */
.fy-featured-product { padding: 48px 0; background: var(--fy-surface); }
.fy-featured-product__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; display: grid; gap: 32px; }
.fy-featured-product__image img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.fy-featured-product__label { display: inline-block; background: var(--fy-accent); color: #fff; padding: 4px 12px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
.fy-featured-product__title { margin-bottom: 8px; }
.fy-featured-product__price { font-size: 28px; font-weight: 700; color: var(--fy-primary); margin-bottom: 12px; }
.fy-featured-product__desc { color: var(--fy-text-light); margin-bottom: 16px; line-height: 1.6; }
.fy-featured-product__trust { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; font-size: 13px; color: var(--fy-text-muted); }
.fy-featured-product__trust span { display: flex; align-items: center; gap: 4px; }
.fy-featured-product__actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- CTA Section ---------- */
.fy-cta-section { position: relative; padding: 64px 16px; text-align: center; background-color: var(--fy-primary); background-size: cover; background-position: center; color: #fff; }
.fy-cta-section__overlay { position: absolute; inset: 0; background: rgba(14,55,39,0.85); }
.fy-cta-section__content { position: relative; z-index: 1; max-width: 600px; margin: 0 auto; }
.fy-cta-section__title { color: #fff; margin-bottom: 12px; }
.fy-cta-section__text { opacity: 0.9; margin-bottom: 24px; }

/* ---------- Delivery Info ---------- */
.fy-delivery-info { padding: 48px 0; }
.fy-delivery-info__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; }
.fy-delivery-info__title { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 32px; }
.fy-delivery-info__grid { display: grid; gap: 16px; }
.fy-delivery-info__card { background: var(--fy-surface); border: 1px solid var(--fy-border); padding: 24px; }
.fy-delivery-info__card h3 { font-family: var(--fy-font-body); font-size: 16px; font-weight: 600; margin-bottom: 12px; color: var(--fy-text); }
.fy-delivery-info__cities { list-style: none; }
.fy-delivery-info__cities li { display: flex; align-items: center; gap: 6px; padding: 4px 0; font-size: 14px; }
.fy-delivery-info__schedule { list-style: none; }
.fy-delivery-info__schedule li { display: flex; justify-content: space-between; padding: 6px 0; font-size: 14px; border-bottom: 1px solid var(--fy-border); }
.fy-delivery-info__schedule li:last-child { border-bottom: none; }
.fy-delivery-info__available { display: inline-flex; align-items: center; gap: 4px; color: var(--fy-success); font-weight: 600; font-size: 14px; margin-top: 8px; }

/* ---------- FAQ ---------- */
.fy-faq { padding: 48px 0; max-width: var(--fy-content-width); margin: 0 auto; padding-left: 16px; padding-right: 16px; }
.fy-faq__title { text-align: center; margin-bottom: 24px; }
.fy-faq__item { border: 1px solid var(--fy-border); margin-bottom: -1px; }
.fy-faq__question { padding: 16px 20px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-weight: 600; font-size: 15px; list-style: none; }
.fy-faq__question::-webkit-details-marker { display: none; }
.fy-faq__question .fy-icon { transition: transform 0.2s; }
.fy-faq__item[open] .fy-faq__question .fy-icon { transform: rotate(180deg); }
.fy-faq__answer { padding: 0 20px 16px; font-size: 14px; color: var(--fy-text-light); line-height: 1.6; }

/* ---------- Guarantee ---------- */
.fy-guarantee { padding: 48px 0; }
.fy-guarantee__title { text-align: center; margin-bottom: 32px; }
.fy-guarantee__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; }
.fy-guarantee__card { text-align: center; padding: 24px 16px; background: var(--fy-surface); border: 1px solid var(--fy-border); }
.fy-guarantee__icon { color: var(--fy-primary); margin-bottom: 12px; }
.fy-guarantee__card-title { font-family: var(--fy-font-body); font-size: 16px; font-weight: 600; color: var(--fy-text); margin-bottom: 8px; }
.fy-guarantee__card-text { font-size: 13px; color: var(--fy-text-muted); line-height: 1.5; }

/* ---------- Promo Banner ---------- */
.fy-promo-banner { color: #fff; padding: 16px 0; }
.fy-promo-banner__inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; text-align: center; }
.fy-promo-banner__text { font-weight: 500; }
.fy-promo-banner__link { color: #fff; display: inline-flex; align-items: center; gap: 4px; font-weight: 600; text-decoration: underline; }

/* ---------- Carousel ---------- */
.fy-carousel { position: relative; overflow: hidden; }
.fy-carousel__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 16px; padding: 4px; }
.fy-carousel__track::-webkit-scrollbar { display: none; }
.fy-carousel__slide { flex: 0 0 260px; scroll-snap-align: start; }
.fy-carousel__prev, .fy-carousel__next { position: absolute; top: 50%; transform: translateY(-50%); background: var(--fy-surface); border: 1px solid var(--fy-border); width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; box-shadow: var(--fy-shadow-sm); }
.fy-carousel__prev { left: 0; }
.fy-carousel__prev .fy-icon { transform: rotate(180deg); }
.fy-carousel__next { right: 0; }

/* ---------- Product Trust (single product) ---------- */
.fy-product-trust { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0; padding: 12px 0; border-top: 1px solid var(--fy-border); border-bottom: 1px solid var(--fy-border); }
.fy-product-trust__item { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--fy-text-light); }
.fy-product-trust__item .fy-icon { color: var(--fy-success); }

/* ---------- Product Countdown (single product) ---------- */
.fy-product-countdown { background: #fef9e7; border: 1px solid #f7dc6f; padding: 12px 16px; margin: 12px 0; }
.fy-product-countdown__text { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--fy-text); }
.fy-countdown-timer { font-weight: 700; color: var(--fy-error); }

/* ---------- Sticky Add to Cart ---------- */
.fy-sticky-atc { position: fixed; bottom: 0; left: 0; right: 0; background: var(--fy-surface); border-top: 1px solid var(--fy-border); box-shadow: 0 -4px 12px rgba(0,0,0,0.1); z-index: 90; transform: translateY(100%); transition: transform 0.3s; padding: 10px 16px; }
.fy-sticky-atc.is-visible { transform: translateY(0); }
.fy-sticky-atc__inner { max-width: var(--fy-wide-width); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fy-sticky-atc__product { display: flex; align-items: center; gap: 10px; }
.fy-sticky-atc__image { width: 40px; height: 40px; flex-shrink: 0; }
.fy-sticky-atc__image img { width: 100%; height: 100%; object-fit: cover; }
.fy-sticky-atc__title { font-size: 14px; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.fy-sticky-atc__price { font-size: 14px; font-weight: 700; color: var(--fy-primary); }
.fy-sticky-atc__btn { font-size: 13px; padding: 8px 20px; white-space: nowrap; }

/* ---------- WhatsApp Float ---------- */
.fy-whatsapp-float { position: fixed; bottom: 24px; right: 24px; z-index: 80; background: #25d366; color: #fff; width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(37,211,102,0.4); transition: transform var(--fy-transition), box-shadow var(--fy-transition); }
.fy-whatsapp-float:hover { transform: scale(1.1); box-shadow: 0 6px 16px rgba(37,211,102,0.5); color: #fff; }

/* WhatsApp order button (product page) */
.fy-whatsapp-order { display: inline-flex; align-items: center; gap: 8px; background: #25d366; color: #fff; padding: 10px 20px; font-size: 14px; font-weight: 600; margin-top: 12px; transition: background-color var(--fy-transition); }
.fy-whatsapp-order:hover { background: #1ea952; color: #fff; }

/* ---------- Payment Badges ---------- */
.fy-payment-badges { padding: 16px 0; border-top: 1px solid rgba(255,255,255,0.1); margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.fy-payment-badges__label { font-size: 12px; color: var(--fy-text-muted); }
.fy-payment-badge { font-size: 12px; padding: 4px 8px; border: 1px solid var(--fy-border); background: var(--fy-surface); color: var(--fy-text-light); font-weight: 500; }

/* ---------- Checkout Progress ---------- */
.fy-checkout-progress { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 20px 16px; margin-bottom: 24px; }
.fy-checkout-step { display: flex; align-items: center; gap: 6px; opacity: 0.4; }
.fy-checkout-step--active, .fy-checkout-step--done { opacity: 1; }
.fy-checkout-step__number { width: 28px; height: 28px; border-radius: 50%; background: var(--fy-border); color: var(--fy-text-muted); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
.fy-checkout-step--active .fy-checkout-step__number { background: var(--fy-primary); color: #fff; }
.fy-checkout-step--done .fy-checkout-step__number { background: var(--fy-success); color: #fff; }
.fy-checkout-step__label { font-size: 13px; font-weight: 500; }
.fy-checkout-step + .fy-checkout-step::before { content: ''; display: block; width: 30px; height: 2px; background: var(--fy-border); margin-right: 8px; }
.fy-checkout-step--done + .fy-checkout-step::before { background: var(--fy-success); }

/* ---------- Footer ---------- */
.fy-site-footer { background: var(--fy-primary-dark); color: rgba(255,255,255,0.8); padding: 48px 0 24px; }
.fy-footer-inner { max-width: var(--fy-wide-width); margin: 0 auto; padding: 0 16px; }
.fy-footer-grid { display: grid; gap: 32px; }
.fy-footer-heading { color: #fff; font-family: var(--fy-font-body); font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 16px; }
.fy-footer-tagline { font-size: 13px; line-height: 1.5; margin-top: 12px; }
.fy-footer-menu { list-style: none; }
.fy-footer-menu li { margin-bottom: 8px; }
.fy-footer-menu a { color: rgba(255,255,255,0.7); font-size: 14px; transition: color var(--fy-transition); }
.fy-footer-menu a:hover { color: #fff; }
.fy-footer-contact-list { list-style: none; }
.fy-footer-contact-list li { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 14px; }
.fy-footer-contact-list a { color: rgba(255,255,255,0.7); }
.fy-footer-contact-list a:hover { color: #fff; }
.fy-footer-bottom { text-align: center; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); margin-top: 24px; }
.fy-copyright { font-size: 13px; opacity: 0.6; }

/* ---------- Cart Trust ---------- */
.fy-cart-trust { display: flex; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.fy-cart-trust__badge { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--fy-text-light); }
.fy-cart-trust__badge .fy-icon { color: var(--fy-success); }

/* ---------- 404 ---------- */
.fy-404 { text-align: center; padding: 80px 16px; }
.fy-404-title { margin-bottom: 16px; }
.fy-404-text { margin-bottom: 24px; color: var(--fy-text-light); }

/* ---------- Page Content ---------- */
.fy-page, .fy-single, .fy-article { max-width: var(--fy-content-width); margin: 0 auto; padding: 32px 16px; }
.fy-page-header, .fy-entry-header { margin-bottom: 24px; }
.fy-entry-meta { font-size: 13px; color: var(--fy-text-muted); margin-top: 8px; }
.fy-entry-content p { margin-bottom: 16px; }
.fy-entry-content img { margin: 16px 0; }

/* ---------- Icons ---------- */
.fy-icon { flex-shrink: 0; vertical-align: middle; }

/* ==========================================================================
   Responsive — Desktop
   ========================================================================== */

@media (min-width: 768px) {
	.fy-main-navigation { display: block; }
	.fy-menu-toggle { display: none; }
	.fy-header-inner { padding: 16px 24px; }

	.fy-hero { min-height: 70vh; padding: 80px 24px; }

	.fy-section { padding: 64px 0; }
	.fy-section__inner { padding: 0 24px; }

	.fy-category-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; }
	.fy-product-grid { grid-template-columns: repeat(4, 1fr); gap: 20px; }
	.fy-product-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.fy-product-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }

	.fy-trust-badges--horizontal .fy-trust-badges__inner { grid-template-columns: repeat(4, 1fr); }

	.fy-occasions__grid { grid-template-columns: repeat(4, 1fr); }

	.fy-featured-product__inner { grid-template-columns: 1fr 1fr; align-items: center; }

	.fy-delivery-info__grid { grid-template-columns: repeat(3, 1fr); }

	.fy-guarantee__grid { grid-template-columns: repeat(4, 1fr); }

	.fy-footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; }

	.fy-testimonial-card { flex: 0 0 300px; }
}

@media (min-width: 1024px) {
	.fy-carousel__slide { flex: 0 0 280px; }
	.fy-category-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Mobile-specific */
@media (max-width: 767px) {
	.fy-product-grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
	.fy-category-grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
	.fy-mini-cart-dropdown { display: none; }
	.fy-countdown-section__inner { flex-direction: column; }
	.fy-featured-product__actions { flex-direction: column; }
	.fy-featured-product__actions .fy-btn { width: 100%; }
	.fy-sticky-atc__product { display: none; }
	.fy-sticky-atc__actions { width: 100%; }
	.fy-sticky-atc__btn { width: 100%; text-align: center; }
}
