/* ==========================================================================
   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); }

/* ---------- Mega Menu ---------- */
.fy-nav-item { position: relative; }
.fy-nav-item > a { display: inline-flex; align-items: center; gap: 4px; }
.fy-nav-chevron { transition: transform 0.2s; }
.fy-nav-item--mega.is-open > a .fy-nav-chevron,
.fy-nav-item--mega:hover > a .fy-nav-chevron { transform: rotate(180deg); }

/* Standard sub-menu (non-mega) */
.fy-nav-item--has-children:not(.fy-nav-item--mega) > .sub-menu { position: absolute; top: 100%; left: 0; min-width: 200px; 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; list-style: none; padding: 8px 0; }
.fy-nav-item--has-children:not(.fy-nav-item--mega):hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.fy-nav-item--has-children:not(.fy-nav-item--mega) > .sub-menu li { margin: 0; }
.fy-nav-item--has-children:not(.fy-nav-item--mega) > .sub-menu a { display: block; padding: 8px 16px; font-size: 13px; color: var(--fy-text); white-space: nowrap; }
.fy-nav-item--has-children:not(.fy-nav-item--mega) > .sub-menu a:hover { background: rgba(44,85,69,0.05); color: var(--fy-primary); }

/* Mega panel */
.fy-mega-panel { position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(8px); width: 100vw; max-width: var(--fy-wide-width); background: var(--fy-surface); border: 1px solid var(--fy-border); box-shadow: var(--fy-shadow-lg); opacity: 0; visibility: hidden; transition: all 0.25s ease; z-index: 200; padding: 24px; }
.fy-nav-item--mega.is-open > .fy-mega-panel,
.fy-nav-item--mega:hover > .fy-mega-panel { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

.fy-mega-panel__inner { max-width: var(--fy-wide-width); margin: 0 auto; }

/* Mega category grid (auto-populated from WooCommerce) */
.fy-mega-categories { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.fy-mega-category { display: flex; flex-direction: column; align-items: center; text-align: center; text-decoration: none; padding: 12px 8px; border-radius: 8px; transition: all var(--fy-transition); }
.fy-mega-category:hover { background: rgba(44,85,69,0.04); transform: translateY(-2px); }
.fy-mega-category__image { width: 80px; height: 80px; border-radius: 50%; overflow: hidden; margin-bottom: 8px; border: 2px solid var(--fy-border); transition: border-color var(--fy-transition); }
.fy-mega-category:hover .fy-mega-category__image { border-color: var(--fy-primary); }
.fy-mega-category__image img { width: 100%; height: 100%; object-fit: cover; }
.fy-mega-category__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-mega-category__name { display: block; font-size: 13px; font-weight: 600; color: var(--fy-text); margin-bottom: 2px; line-height: 1.3; }
.fy-mega-category__count { display: block; font-size: 11px; color: var(--fy-text-muted); line-height: 1.2; }

/* Mega panel columns (manual sub-items) */
.fy-mega-panel__columns { display: flex; gap: 32px; }
.fy-mega-panel__column { flex: 1; min-width: 0; }
.fy-mega-panel__heading { display: block; font-size: 14px; font-weight: 700; color: var(--fy-primary); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--fy-primary); }
.fy-mega-panel__heading a { color: var(--fy-primary); text-decoration: none; }
.fy-mega-panel__heading a:hover { color: var(--fy-primary-dark); }
.fy-mega-panel__links { list-style: none; padding: 0; }
.fy-mega-panel__link-item { margin-bottom: 4px; }
.fy-mega-panel__link-item a { display: block; padding: 6px 0; font-size: 13px; color: var(--fy-text-light); text-decoration: none; transition: color var(--fy-transition), padding-left var(--fy-transition); }
.fy-mega-panel__link-item a:hover { color: var(--fy-primary); padding-left: 4px; }

/* ---------- 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 ---------- */
/* Hero — Compact split layout */
.fy-hero--split {
	background: var(--fy-primary);
	color: #fff;
	padding: 0;
	min-height: auto;
}
.fy-hero__inner {
	max-width: var(--fy-wide-width);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 0;
}
.fy-hero__text {
	padding: 40px 24px;
}
.fy-hero__title {
	font-size: clamp(26px, 5vw, 40px);
	color: #fff;
	margin-bottom: 12px;
	line-height: 1.15;
}
.fy-hero__subtitle {
	font-size: clamp(15px, 2vw, 18px);
	margin-bottom: 24px;
	opacity: 0.9;
	line-height: 1.5;
}
.fy-hero__ctas {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.fy-hero__cta {
	font-size: 15px;
	padding: 12px 28px;
}
.fy-btn-outline-dark {
	background: transparent;
	border: 2px solid rgba(255,255,255,0.6);
	color: #fff;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--fy-font-body);
	font-weight: 600;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 12px 28px;
	cursor: pointer;
	transition: all var(--fy-transition);
	text-decoration: none;
	line-height: 1;
}
.fy-btn-outline-dark:hover {
	background: rgba(255,255,255,0.15);
	border-color: #fff;
	color: #fff;
}
.fy-hero__trust {
	display: flex;
	gap: 20px;
	margin-top: 24px;
	flex-wrap: wrap;
}
.fy-hero__trust-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: rgba(255,255,255,0.85);
	font-size: 13px;
	font-weight: 500;
}
.fy-hero__trust-item .fy-icon {
	stroke: rgba(255,255,255,0.85);
}
.fy-hero__image {
	display: none;
}
.fy-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------- 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; }
h3.fy-category-card__name,
.fy-category-card__name { font-family: var(--fy-font-body); font-size: 14px; font-weight: 600; color: var(--fy-text); margin-top: 8px; line-height: 1.3; }
.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; }

/* Unavailable Product Card */
.fy-product-card--unavailable { opacity: 0.7; pointer-events: auto; }
.fy-product-card--unavailable .fy-product-card__image { position: relative; }
.fy-product-card--unavailable .fy-product-card__image::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.15); }
.fy-product-card--unavailable .fy-product-card__image img { filter: grayscale(40%); }
.fy-product-card--unavailable .fy-quick-buy { display: none; }
.fy-product-card__badge--out { background: var(--fy-text-muted); color: #fff; font-size: 10px; }

/* Stock availability badges (WooCommerce) */
.fy-out-of-stock { color: var(--fy-error); font-weight: 600; font-size: 14px; }
.fy-low-stock { color: var(--fy-warning); font-weight: 600; font-size: 14px; }

/* 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; }
/* 2 filas en desktop/tablet para mostrar el doble de productos */
.fy-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(2, auto);
	grid-auto-columns: 260px;
	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 { scroll-snap-align: start; }
/* Móvil: volvemos a fila única, slide más ancho para legibilidad */
@media (max-width: 640px) {
	.fy-carousel__track {
		grid-template-rows: auto;
		grid-auto-columns: 78%;
	}
}
.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; }

	/* hero responsive handled in new split styles */

	.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__track { grid-auto-columns: 280px; }
	.fy-category-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Mobile-specific */
@media (max-width: 767px) {
	.fy-mega-panel { display: none; }
	.fy-nav-item--has-children:not(.fy-nav-item--mega) > .sub-menu { display: none; }
	.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 { flex: 1; margin-right: 10px; }
	.fy-sticky-atc__actions { flex-shrink: 0; }
	.fy-sticky-atc__title { font-size: 13px; }
	.fy-sticky-atc__btn { padding: 8px 16px; font-size: 13px; }
}

/* ------ Live Search (Dropdown Version) ------ */
.fy-header-search {
	flex: 1;
	max-width: 400px;
	position: relative;
}

.fy-search-form {
	display: flex;
	align-items: center;
	background: #fff;
	border: 1px solid var(--fy-border);
	padding: 4px 8px;
	border-radius: var(--fy-radius-sm);
	transition: border-color var(--fy-transition);
}

.fy-search-form:focus-within {
	border-color: var(--fy-primary);
}

.fy-search-form label {
	flex: 1;
	display: flex;
}

.fy-search-field {
	border: none;
	background: none;
	width: 100%;
	padding: 6px 8px;
	font-size: 14px;
	color: var(--fy-text);
}

.fy-search-field:focus {
	outline: none;
}

.fy-search-submit {
	background: none;
	border: none;
	padding: 6px;
	color: var(--fy-text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color var(--fy-transition);
}

.fy-search-submit:hover {
	color: var(--fy-primary);
}

/* Dropdown Results */
.fy-search-results-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	background: #fff;
	border: 1px solid var(--fy-border);
	box-shadow: var(--fy-shadow-lg);
	z-index: 200;
	margin-top: 8px;
	border-radius: var(--fy-radius-sm);
	max-height: 480px;
	overflow-y: auto;
}

.fy-search-dropdown-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	border-bottom: 1px solid var(--fy-border);
	text-decoration: none;
	transition: background var(--fy-transition);
}

.fy-search-dropdown-item:last-child {
	border-bottom: none;
}

.fy-search-dropdown-item:hover {
	background: #f9f9f9;
}

.fy-search-dropdown-image {
	width: 50px;
	height: 50px;
	flex-shrink: 0;
	border-radius: 4px;
	overflow: hidden;
}

.fy-search-dropdown-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fy-search-dropdown-info {
	flex: 1;
}

.fy-search-dropdown-title {
	margin: 0 0 2px;
	font-size: 14px;
	color: var(--fy-text);
	font-weight: 600;
	line-height: 1.3;
}

.fy-search-dropdown-price {
	font-size: 13px;
	color: var(--fy-primary);
	font-weight: 700;
}

.fy-search-dropdown-loading,
.fy-search-dropdown-no-results {
	padding: 20px;
	text-align: center;
	font-size: 14px;
	color: var(--fy-text-muted);
}

.fy-search-dropdown-view-all {
	display: block;
	padding: 12px;
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	background: #f5f5f5;
	color: var(--fy-primary);
	border-top: 1px solid var(--fy-border);
}

.fy-search-dropdown-view-all:hover {
	background: #eeeeee;
}

/* Spinner small */
.fy-spinner-sm {
	width: 24px;
	height: 24px;
	border: 2px solid rgba(0,0,0,0.1);
	border-top-color: var(--fy-primary);
	border-radius: 50%;
	animation: fy-spin 0.8s linear infinite;
	margin: 0 auto;
}

@media (max-width: 991px) {
	.fy-header-search {
		display: none; /* Hide on mobile to show toggle? Or integrate somehow */
	}
}


/* ------ Mobile Search in Menu ------ */
.fy-mobile-menu__search { padding: 12px 16px; border-bottom: 1px solid var(--fy-border); }
.fy-mobile-search-form { display: flex; align-items: center; background: #f5f5f5; border: 1px solid var(--fy-border); border-radius: var(--fy-radius-sm); padding: 4px 8px; transition: border-color var(--fy-transition); position: relative; }
.fy-mobile-search-form:focus-within { border-color: var(--fy-primary); background: #fff; }
.fy-mobile-search-form label { flex: 1; display: flex; }
.fy-mobile-search-field { border: none; background: none; width: 100%; padding: 8px; font-size: 15px; color: var(--fy-text); }
.fy-mobile-search-field:focus { outline: none; }
.fy-mobile-search-submit { background: none; border: none; padding: 6px; color: var(--fy-text-muted); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.fy-mobile-menu__search .fy-search-results-dropdown { position: absolute; top: 100%; left: 0; right: 0; z-index: 1001; max-height: 50vh; overflow-y: auto; }


/* ==========================================================================
   Homepage Sections — Redesigned
   ========================================================================== */

/* ------ Section spacing ------ */
.fy-section { padding: 48px 0; }
.fy-section__inner {
	max-width: var(--fy-wide-width);
	margin: 0 auto;
	padding: 0 24px;
}
.fy-section__title {
	text-align: center;
	margin-bottom: 12px;
	font-size: clamp(22px, 4vw, 32px);
}
.fy-section__subtitle {
	text-align: center;
	color: var(--fy-text-muted);
	font-size: 15px;
	margin-bottom: 32px;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}
.fy-section__cta {
	text-align: center;
	margin-top: 32px;
}

/* ------ Categories — Refined grid ------ */
.fy-categories {
	background: var(--fy-bg);
}
.fy-categories .fy-section__title {
	margin-bottom: 28px;
}
.fy-category-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.fy-category-card {
	display: block;
	text-align: center;
	text-decoration: none;
	transition: transform var(--fy-transition);
	background: var(--fy-surface);
	border: 1px solid var(--fy-border);
	border-radius: 8px;
	overflow: hidden;
	padding-bottom: 16px;
}
.fy-category-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--fy-shadow-md);
}
.fy-category-card__image {
	overflow: hidden;
	aspect-ratio: 4/3;
	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;
}
h3.fy-category-card__name,
.fy-category-card__name {
	font-family: var(--fy-font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--fy-text);
	margin-top: 12px;
	padding: 0 12px;
	line-height: 1.3;
}
.fy-category-card__count {
	display: block;
	font-size: 13px;
	color: var(--fy-text-muted);
	margin-top: 2px;
}

/* ------ Bestsellers ------ */
.fy-bestsellers {
	background: var(--fy-surface);
}

/* ------ Banner CTA ------ */
.fy-banner-cta {
	position: relative;
	background: var(--fy-primary);
	background-size: cover;
	background-position: center;
	text-align: center;
	padding: 56px 24px;
	color: #fff;
}
.fy-banner-cta__overlay {
	position: absolute;
	inset: 0;
	background: rgba(14,55,39,0.85);
}
.fy-banner-cta[style*="background-image"] .fy-banner-cta__overlay {
	background: rgba(14,55,39,0.75);
}
.fy-banner-cta__content {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}
.fy-banner-cta__title {
	font-size: clamp(22px, 4vw, 30px);
	color: #fff;
	margin-bottom: 12px;
}
.fy-banner-cta__subtitle {
	font-size: 16px;
	opacity: 0.9;
	margin-bottom: 24px;
	line-height: 1.5;
}
.fy-btn-white {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	color: var(--fy-primary);
	font-family: var(--fy-font-body);
	font-weight: 600;
	font-size: 15px;
	padding: 14px 32px;
	border: none;
	cursor: pointer;
	transition: all var(--fy-transition);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.fy-btn-white:hover {
	background: var(--fy-bg);
	color: var(--fy-primary-dark);
	transform: translateY(-1px);
	box-shadow: var(--fy-shadow-md);
}

/* ------ SEO Text ------ */
.fy-seo-text {
	background: #f7f5f0;
	padding: 56px 0;
}
.fy-seo-text__content {
	max-width: var(--fy-content-width);
	margin: 0 auto;
	padding: 0 24px;
}
.fy-seo-text__title {
	font-family: var(--fy-font-heading);
	color: var(--fy-primary);
	margin-bottom: 20px;
	font-size: clamp(22px, 4vw, 30px);
}
.fy-seo-text__content p {
	color: var(--fy-text-light);
	font-size: 15px;
	line-height: 1.75;
	margin-bottom: 16px;
}
.fy-seo-text__content p:last-child {
	margin-bottom: 0;
}
.fy-seo-text__content strong {
	color: var(--fy-primary);
	font-weight: 600;
}

/* ------ FAQ ------ */
.fy-faq {
	padding: 56px 0;
	background: var(--fy-surface);
}
.fy-faq .fy-section__inner {
	max-width: var(--fy-content-width);
}
.fy-faq__title {
	text-align: center;
	margin-bottom: 28px;
}
.fy-faq__item {
	border: 1px solid var(--fy-border);
	margin-bottom: -1px;
	background: var(--fy-surface);
}
.fy-faq__question {
	padding: 18px 20px;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-weight: 600;
	font-size: 15px;
	list-style: none;
	transition: background var(--fy-transition);
}
.fy-faq__question:hover {
	background: rgba(44,85,69,0.03);
}
.fy-faq__question::-webkit-details-marker { display: none; }
.fy-faq__question .fy-icon { transition: transform 0.2s; flex-shrink: 0; margin-left: 12px; }
.fy-faq__item[open] .fy-faq__question .fy-icon { transform: rotate(180deg); }
.fy-faq__answer {
	padding: 0 20px 18px;
	font-size: 14px;
	color: var(--fy-text-light);
	line-height: 1.7;
}

/* ------ Testimonials section ------ */
.fy-testimonials-section {
	background: var(--fy-bg);
}

/* ==========================================================================
   Homepage — Responsive
   ========================================================================== */

/* Tablet+ */
@media (min-width: 768px) {
	.fy-section { padding: 64px 0; }

	/* Hero split: text left, image right */
	.fy-hero__inner {
		grid-template-columns: 1fr 1fr;
	}
	.fy-hero__text {
		padding: 56px 48px 56px 24px;
	}
	.fy-hero__image {
		display: block;
		height: 100%;
		min-height: 420px;
	}
	.fy-hero__ctas {
		flex-direction: row;
	}

	/* Categories 3 cols */
	.fy-category-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
	}

	/* Products 3 cols at tablet */
	.fy-product-grid--cols-4 {
		grid-template-columns: repeat(3, 1fr);
	}

	.fy-seo-text { padding: 64px 0; }
	.fy-faq { padding: 64px 0; }
	.fy-banner-cta { padding: 72px 24px; }
}

/* Desktop */
@media (min-width: 1024px) {
	.fy-hero__text {
		padding: 64px 64px 64px 0;
	}
	.fy-hero__inner {
		max-width: var(--fy-wide-width);
		margin: 0 auto;
		padding-left: 24px;
	}
	.fy-hero__image {
		min-height: 480px;
	}

	/* Products 4 cols */
	.fy-product-grid--cols-4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* Mobile tweaks */
@media (max-width: 767px) {
	.fy-hero__ctas {
		flex-direction: column;
		align-items: stretch;
	}
	.fy-hero__ctas .fy-btn,
	.fy-hero__ctas .fy-btn-outline-dark {
		text-align: center;
		justify-content: center;
		min-height: 48px;
	}
	.fy-hero__trust {
		flex-direction: column;
		gap: 8px;
	}
	.fy-seo-text__content p {
		font-size: 14px;
	}
	.fy-banner-cta__title {
		font-size: 22px;
	}
}

/* ============================================================
   Ficha de producto — CTA + banner "Entrega HOY" (2026-09)
   ============================================================ */

/* Botón "Comprar ahora" más contundente, sobre todo en móvil */
.fy-product__summary .cart { margin-top: 14px; }
.fy-product__summary .single_add_to_cart_button {
	font-size: 16px;
	padding: 15px 24px;
	border-radius: var(--fy-radius-sm);
	box-shadow: 0 6px 16px rgba(44,85,69,.28);
}
.fy-product__summary .single_add_to_cart_button:hover { box-shadow: 0 8px 20px rgba(44,85,69,.34); }

/* Banner destacado de entrega el mismo día */
.fy-delivery-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 14px 0;
	padding: 12px 16px;
	border-radius: 10px;
	background: linear-gradient(135deg, #1f8a49, #34b866);
	color: #fff;
	box-shadow: 0 6px 18px rgba(31,138,73,.28);
}
.fy-delivery-banner__icon { display: inline-flex; flex: 0 0 auto; }
.fy-delivery-banner__icon .fy-icon { color: #fff; }
.fy-delivery-banner__body { display: flex; flex-direction: column; line-height: 1.28; min-width: 0; }
.fy-delivery-banner__title {
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .3px;
	text-transform: uppercase;
	color: #fff;
}
.fy-delivery-banner__sub { font-size: 13px; font-weight: 500; opacity: .96; }
.fy-delivery-banner__timer { white-space: nowrap; }
.fy-delivery-banner .fy-countdown-timer {
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	background: rgba(255,255,255,.18);
	padding: 1px 6px;
	border-radius: 4px;
}
/* Variante sobria cuando ya pasó el corte del mismo día */
.fy-delivery-banner--soft {
	background: #fff7e6;
	color: #7a5b00;
	border: 1px solid #f2d98a;
	box-shadow: none;
}
.fy-delivery-banner--soft .fy-delivery-banner__icon .fy-icon { color: #b8860b; }
.fy-delivery-banner--soft .fy-delivery-banner__title { color: #7a5b00; }

/* Distintivo de entrega dentro de la barra sticky */
.fy-sticky-atc__btn { box-shadow: 0 4px 12px rgba(44,85,69,.28); }

@media (max-width: 767px) {
	.fy-product__summary .cart { gap: 8px; }
	.fy-product__summary .single_add_to_cart_button { min-height: 52px; }
	.fy-delivery-banner__title { font-size: 15px; }
	.fy-delivery-banner__sub { font-size: 12.5px; }
}

/* ============================================================
   Ajustes barra fija de compra + flotantes (2026-09, v2)
   ============================================================ */

/* Barra fija de compra: más grande y por encima del contenido */
.fy-sticky-atc {
	z-index: 9990;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
	box-shadow: 0 -6px 18px rgba(0,0,0,.14);
}
.fy-sticky-atc__image { width: 48px; height: 48px; }
.fy-sticky-atc__title { font-size: 15px; }
.fy-sticky-atc__price { font-size: 16px; }
.fy-sticky-atc__btn {
	font-size: 15px;
	padding: 13px 26px;
	min-height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
}
@media (max-width: 767px) {
	.fy-sticky-atc__product { flex: 1; margin-right: 10px; }
	.fy-sticky-atc__title { font-size: 14px; }
	.fy-sticky-atc__price { font-size: 15px; }
	.fy-sticky-atc__btn { padding: 13px 22px; font-size: 15px; min-height: 50px; }
}

/* Ocultar el globo flotante de reseñas SOLO en la ficha de producto
   (ahí la valoración ya se muestra inline junto al título). */
body.single-product .fy-gbp-badge,
body.single-product [class*="rating-bar-position"] { display: none !important; }

/* Cuando la barra fija está visible, elevar el botón flotante de WhatsApp
   (Joinchat) para que no quede tapado por la barra. */
body.fy-atc-open .joinchat {
	transform: translateY(-72px);
	transition: transform .3s ease;
}

/* ============================================================
   Banner "Entrega programada" (tulipanes, etc.) — 2026-09
   ============================================================ */
.fy-delivery-banner--scheduled {
	background: linear-gradient(135deg, #8e4b6e, #b5638c);
	box-shadow: 0 6px 18px rgba(142,75,110,.28);
}
.fy-delivery-banner--scheduled .fy-delivery-banner__sub strong { font-weight: 800; }


/* ===================================================================
   FloresYa 2 — Rediseño encabezado de categoría (Opción B)
   Compacto + orientado a conversión. Mobile-first.
   =================================================================== */
.fy-shop__header--compact{padding:14px 16px 4px;text-align:center;}
.fy-shop__header--compact .fy-shop__title{margin:0 0 10px;font-size:clamp(20px,5.2vw,30px);line-height:1.15;}

/* Banner de entrega (USP principal) */
.fy-shop__deliver{display:inline-flex;align-items:center;gap:10px;background:#eaf3ee;border:1px solid #cfe3d6;border-radius:12px;padding:9px 14px;text-align:left;}
.fy-shop__deliver-ic{color:var(--fy-primary);display:inline-flex;flex-shrink:0;}
.fy-shop__deliver-tx{line-height:1.2;}
.fy-shop__deliver-tx strong{display:block;font-size:14px;color:var(--fy-primary-dark);font-weight:700;}
.fy-shop__deliver-tx small{display:block;font-size:11px;color:#5a7a66;}

/* Micro-chips de confianza (una línea) */
.fy-shop__chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin:10px 0 2px;padding:0;}
.fy-shop__chips li{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--fy-text-muted);}
.fy-shop__chips li svg{color:var(--fy-primary);width:14px;height:14px;flex-shrink:0;}

/* Descripción SEO colapsada (sigue en el DOM para SEO) */
.fy-shop__desc{max-width:680px;margin:8px auto 0;font-size:12.5px;line-height:1.5;color:#555;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

@media (min-width:783px){
  .fy-shop__header--compact{padding:22px 16px 6px;}
  .fy-shop__chips{gap:8px 26px;margin-top:12px;}
  .fy-shop__desc{-webkit-line-clamp:3;font-size:13.5px;}
}

/* ===================================================================
   FloresYa 2 — HOME: Hero → banda de valor + buscador (híbrido 1+2)
   =================================================================== */
.fy-hero.fy-hero--band{min-height:0 !important;padding:0 !important;display:block !important;background:#f3f6f3;border-bottom:1px solid var(--fy-border);color:inherit;text-align:left;}
.fy-hero.fy-hero--band .fy-hero__overlay{display:none !important;}
.fy-hero--band .fy-hero__inner{max-width:720px;margin:0 auto;padding:22px 16px 20px;display:block;text-align:center;}
.fy-hero--band .fy-hero__title{color:var(--fy-primary);font-size:clamp(20px,5.2vw,30px);line-height:1.15;margin:0 0 6px;}
.fy-hero--band .fy-hero__subtitle{color:#555;opacity:1;font-size:13px;line-height:1.45;margin:0 0 12px;}

.fy-hero--band .fy-hero__deliver{display:inline-flex;align-items:center;gap:8px;background:#eaf3ee;border:1px solid #cfe3d6;border-radius:10px;padding:7px 12px;font-size:12px;color:var(--fy-primary-dark);margin:0 0 14px;}
.fy-hero--band .fy-hero__deliver svg{color:var(--fy-primary);flex-shrink:0;}
.fy-hero--band .fy-hero__deliver strong{font-weight:700;}

.fy-hero__search{display:flex;align-items:center;gap:8px;width:100%;max-width:520px;margin:0 auto 14px;background:#fff;border:1.6px solid var(--fy-primary);border-radius:26px;padding:7px 8px 7px 14px;}
.fy-hero__search svg{color:var(--fy-primary);flex-shrink:0;}
.fy-hero__search input[type="search"]{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:14px;color:var(--fy-text);}
.fy-hero__search button{flex-shrink:0;border:0;cursor:pointer;background:var(--fy-primary);color:#fff;font-weight:700;font-size:13px;border-radius:20px;padding:9px 18px;}

.fy-hero__chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 14px;padding:0;}
.fy-hero__chips a{display:inline-block;text-decoration:none;font-size:12px;font-weight:600;color:var(--fy-primary);background:#fff;border:1px solid var(--fy-border);border-radius:20px;padding:6px 13px;}
.fy-hero__chips a:hover{background:var(--fy-primary);color:#fff;border-color:var(--fy-primary);}

.fy-hero--band .fy-hero__cta{display:inline-block;}

@media (min-width:783px){
  .fy-hero--band .fy-hero__inner{padding:34px 16px 30px;}
  .fy-hero__search{max-width:560px;}
}

/* ---- Quick-win: categorías más compactas (sin romper desktop) ---- */
@media (max-width:782px){
  .fy-categories .fy-section__inner{padding-top:18px;padding-bottom:6px;}
  .fy-categories .fy-section__title{margin-bottom:12px;}
  .fy-category-grid{gap:10px;}
}

/* ---- Quick-win: texto SEO menos dominante (sigue completo en el DOM) ---- */
.fy-seo-text .fy-section__inner{padding-top:26px;padding-bottom:26px;}
.fy-seo-text__title{font-size:clamp(18px,4.5vw,24px);}
.fy-seo-text__content p{font-size:13.5px;line-height:1.6;}
