/* =========================================================
   FLATSOME CHILD - LUXURY FLOWER SHOP
   custom.css — Toàn bộ style cho các section custom
   Màu chủ đạo: Trắng / Xanh lá / Hồng Pastel / Vàng Champagne
   Font: Playfair Display (heading) + Jost (body)
   ========================================================= */

:root{
	--fsc-white:      #ffffff;
	--fsc-green:      #4c7a5e;
	--fsc-green-dark: #345c45;
	--fsc-pink:       #f6d9dd;
	--fsc-pink-dark:  #e8b8c1;
	--fsc-champagne:  #d9bd8f;
	--fsc-champagne-dark:#c6a26a;
	--fsc-text:       #2b2b28;
	--fsc-text-light: #6f6a63;
	--fsc-bg-soft:    #faf8f4;
	--fsc-radius:     14px;
	--fsc-radius-sm:  8px;
	--fsc-shadow:     0 10px 30px rgba(43,43,40,.08);
	--fsc-shadow-hover: 0 16px 40px rgba(43,43,40,.14);
	--fsc-transition: all .35s cubic-bezier(.4,0,.2,1);
	--fsc-font-heading: 'Playfair Display', serif;
	--fsc-font-body: 'Jost', sans-serif;
}

body{ font-family: var(--fsc-font-body); color: var(--fsc-text); }
h1,h2,h3,.fsc-font-heading{ font-family: var(--fsc-font-heading); }

.fsc-container{ max-width:1280px; margin:0 auto; padding:0 20px; }
.fsc-section{ padding:70px 0; }
.fsc-section__head{ text-align:center; max-width:640px; margin:0 auto 44px; }
.fsc-section__eyebrow{
	display:inline-block; font-size:13px; letter-spacing:2.5px; text-transform:uppercase;
	color:var(--fsc-champagne-dark); font-weight:600; margin-bottom:10px;
}
.fsc-section__title{ font-size:38px; font-weight:600; margin:0; color:var(--fsc-text); }

/* ---------- Buttons ---------- */
.fsc-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:14px 30px; border-radius:50px; font-family:var(--fsc-font-body);
	font-size:15px; font-weight:500; letter-spacing:.3px; text-decoration:none;
	cursor:pointer; border:1.5px solid transparent; transition:var(--fsc-transition);
}
.fsc-btn--sm{ padding:9px 20px; font-size:13px; }
.fsc-btn--solid{ background:var(--fsc-champagne); color:var(--fsc-white); }
.fsc-btn--solid:hover{ background:var(--fsc-champagne-dark); transform:translateY(-2px); box-shadow:var(--fsc-shadow-hover); color:var(--fsc-white); }
.fsc-btn--outline{ background:transparent; border-color:currentColor; color:var(--fsc-green); }
.fsc-btn--outline:hover{ background:var(--fsc-green); border-color:var(--fsc-green); color:var(--fsc-white); transform:translateY(-2px); }

/* ---------- Hero Slider ---------- */
.fsc-hero{ position:relative; min-height:78vh; overflow:hidden; }
.fsc-hero__track{ position:relative; width:100%; height:100%; min-height:78vh; }
.fsc-hero__slide{
	position:absolute; inset:0; background-size:cover; background-position:center;
	background-attachment:fixed; /* Parallax nhẹ */
	opacity:0; visibility:hidden; transition:opacity 1s ease, visibility 1s;
	display:flex; align-items:center;
}
.fsc-hero__slide.is-active{ opacity:1; visibility:visible; }
.fsc-hero__overlay{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,20,18,.55) 0%, rgba(20,20,18,.15) 60%); }
.fsc-hero__content{ position:relative; z-index:2; max-width:620px; padding:0 60px; color:#fff; }
.fsc-hero__title{ font-size:56px; font-weight:700; margin:0 0 14px; line-height:1.15; color:#fff; }
.fsc-hero__subtitle{ font-size:18px; font-weight:300; margin:0 0 30px; opacity:.92; }
.fsc-hero__actions{ display:flex; gap:16px; }
.fsc-hero__dots{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); display:flex; gap:10px; z-index:3; }
.fsc-hero__dot{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.5); border:none; cursor:pointer; transition:var(--fsc-transition); }
.fsc-hero__dot.is-active{ background:#fff; width:26px; border-radius:6px; }
.fsc-hero__arrow{
	position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:46px; height:46px;
	border-radius:50%; border:1px solid rgba(255,255,255,.5); background:rgba(255,255,255,.08);
	color:#fff; font-size:18px; cursor:pointer; transition:var(--fsc-transition);
}
.fsc-hero__arrow:hover{ background:#fff; color:var(--fsc-text); }
.fsc-hero__arrow--prev{ left:26px; } .fsc-hero__arrow--next{ right:26px; }

@media (max-width:768px){
	.fsc-hero__slide{ background-attachment:scroll; }
	.fsc-hero__title{ font-size:34px; }
	.fsc-hero__content{ padding:0 24px; }
	.fsc-hero__arrow{ display:none; }
}

/* ---------- Danh mục ---------- */
.fsc-danh-muc{ background:var(--fsc-bg-soft); }
.fsc-danh-muc__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.fsc-cat-card{
	position:relative; display:block; border-radius:var(--fsc-radius); overflow:hidden;
	aspect-ratio:3/4; text-decoration:none; box-shadow:var(--fsc-shadow); transition:var(--fsc-transition);
}
.fsc-cat-card:hover{ transform:translateY(-6px); box-shadow:var(--fsc-shadow-hover); }
.fsc-cat-card__img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease; }
.fsc-cat-card:hover .fsc-cat-card__img{ transform:scale(1.08); }
.fsc-cat-card__overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%); }
.fsc-cat-card__label{
	position:absolute; left:0; right:0; bottom:0; padding:20px; color:#fff; z-index:2;
	font-family:var(--fsc-font-heading); font-size:19px; display:flex; align-items:center; gap:8px;
}
@media (max-width:992px){ .fsc-danh-muc__grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:576px){ .fsc-danh-muc__grid{ grid-template-columns:repeat(2,1fr); gap:12px;} .fsc-cat-card__label{font-size:15px;padding:14px;} }

/* ---------- Product Grid ---------- */
.fsc-product-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.fsc-product-card{
	background:#fff; border-radius:var(--fsc-radius); overflow:hidden; box-shadow:var(--fsc-shadow);
	transition:var(--fsc-transition);
}
.fsc-product-card:hover{ box-shadow:var(--fsc-shadow-hover); transform:translateY(-4px); }
.fsc-product-card__media{ position:relative; aspect-ratio:1/1; overflow:hidden; background:#f3f1ec; }
.fsc-product-card__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .5s ease; }
.fsc-product-card__img--hover{ opacity:0; }
.fsc-product-card:hover .fsc-product-card__img--main{ opacity:0; }
.fsc-product-card:hover .fsc-product-card__img--hover{ opacity:1; }
.fsc-badge{ position:absolute; top:12px; left:12px; z-index:2; background:var(--fsc-pink-dark); color:#7a2e3a; font-size:12px; font-weight:600; padding:5px 11px; border-radius:50px; }
.fsc-icon-btn{
	position:absolute; z-index:2; width:36px; height:36px; border-radius:50%; background:#fff; border:none;
	display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; transform:translateX(8px);
	transition:var(--fsc-transition); color:var(--fsc-text); box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.fsc-product-card:hover .fsc-icon-btn{ opacity:1; transform:translateX(0); }
.fsc-icon-btn--wishlist{ top:12px; right:12px; }
.fsc-icon-btn--wishlist.is-active{ color:#e8536a; }
.fsc-icon-btn--quickview{ top:56px; right:12px; }
.fsc-product-card__info{ padding:18px 18px 22px; text-align:center; }
.fsc-product-card__title{ font-size:15.5px; font-weight:500; margin:0 0 8px; font-family:var(--fsc-font-body); }
.fsc-product-card__title a{ color:var(--fsc-text); text-decoration:none; }
.fsc-product-card__price{ color:var(--fsc-green-dark); font-weight:600; margin-bottom:14px; }
.fsc-product-card__price del{ color:var(--fsc-text-light); font-weight:400; margin-right:6px; }
@media (max-width:992px){ .fsc-product-grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:576px){ .fsc-product-grid{ gap:14px;} }

/* ---------- Dịch vụ ---------- */
.fsc-dich-vu{ background:linear-gradient(180deg,#fff, var(--fsc-pink) 250%); }
.fsc-dich-vu__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.fsc-service-card{ text-align:center; padding:34px 20px; background:#fff; border-radius:var(--fsc-radius); box-shadow:var(--fsc-shadow); transition:var(--fsc-transition); }
.fsc-service-card:hover{ transform:translateY(-6px); box-shadow:var(--fsc-shadow-hover); }
.fsc-service-card__icon{ font-size:36px; margin-bottom:14px; }
.fsc-service-card__title{ font-family:var(--fsc-font-body); font-size:17px; font-weight:600; margin:0 0 8px; }
.fsc-service-card__desc{ color:var(--fsc-text-light); font-size:14px; margin:0; line-height:1.6; }
@media (max-width:768px){ .fsc-dich-vu__grid{ grid-template-columns:repeat(2,1fr);} }

/* ---------- Feedback ---------- */
.fsc-feedback__track{ display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; }
.fsc-feedback-card{
	flex:0 0 340px; scroll-snap-align:start; background:var(--fsc-bg-soft); border-radius:var(--fsc-radius);
	padding:28px; box-shadow:var(--fsc-shadow);
}
.fsc-feedback-card__stars{ color:var(--fsc-champagne-dark); letter-spacing:2px; margin-bottom:12px; }
.fsc-feedback-card__content{ font-style:italic; color:var(--fsc-text); line-height:1.7; min-height:80px; }
.fsc-feedback-card__author{ display:flex; align-items:center; gap:10px; margin-top:16px; font-weight:500; }
.fsc-feedback-card__author img{ border-radius:50%; object-fit:cover; }

/* ---------- Instagram ---------- */
.fsc-instagram__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }
.fsc-instagram__item{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden; }
.fsc-instagram__item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.fsc-instagram__overlay{ position:absolute; inset:0; background:rgba(76,122,94,.55); display:flex; align-items:center; justify-content:center; opacity:0; transition:var(--fsc-transition); }
.fsc-instagram__item:hover .fsc-instagram__overlay{ opacity:1; }
.fsc-instagram__item:hover img{ transform:scale(1.1); }
@media (max-width:768px){ .fsc-instagram__grid{ grid-template-columns:repeat(3,1fr);} }

/* ---------- Newsletter ---------- */
.fsc-newsletter{ background:var(--fsc-green); }
.fsc-newsletter__inner{ text-align:center; color:#fff; max-width:560px; }
.fsc-newsletter__title{ color:#fff; font-size:32px; margin:0 0 12px; }
.fsc-newsletter__desc{ opacity:.9; margin-bottom:26px; }
.fsc-newsletter__form{ display:flex; gap:10px; }
.fsc-newsletter__form input{ flex:1; padding:14px 20px; border-radius:50px; border:none; font-family:var(--fsc-font-body); }
.fsc-newsletter__message{ margin-top:14px; font-size:14px; }
@media (max-width:576px){ .fsc-newsletter__form{ flex-direction:column;} }

/* ---------- Modal Quick View ---------- */
.fsc-modal{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:var(--fsc-transition); }
.fsc-modal.is-open{ opacity:1; visibility:visible; }
.fsc-modal__overlay{ position:absolute; inset:0; background:rgba(20,20,18,.6); }
.fsc-modal__panel{ position:relative; background:#fff; border-radius:var(--fsc-radius); max-width:760px; width:92%; max-height:86vh; overflow:auto; padding:34px; transform:scale(.94); transition:var(--fsc-transition); }
.fsc-modal.is-open .fsc-modal__panel{ transform:scale(1); }
.fsc-modal__close{ position:absolute; top:14px; right:16px; background:none; border:none; font-size:26px; cursor:pointer; color:var(--fsc-text-light); }
.fsc-qv{ display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.fsc-qv__gallery img{ width:100%; border-radius:var(--fsc-radius-sm); }
.fsc-qv__price{ font-size:22px; color:var(--fsc-green-dark); font-weight:600; margin:10px 0; }
.fsc-qv__form{ display:flex; gap:10px; margin-top:20px; }
@media (max-width:640px){ .fsc-qv{ grid-template-columns:1fr; } }
.fsc-loading-skeleton{ height:260px; border-radius:var(--fsc-radius-sm); background:linear-gradient(90deg,#eee 25%,#f6f6f6 50%,#eee 75%); background-size:200% 100%; animation:fsc-shimmer 1.4s infinite; }
@keyframes fsc-shimmer{ 0%{background-position:200% 0;} 100%{background-position:-200% 0;} }

/* ---------- Sticky Add To Cart (Product Page) ---------- */
.fsc-sticky-atc{ position:fixed; left:0; right:0; bottom:-100px; background:#fff; box-shadow:0 -8px 30px rgba(0,0,0,.1); z-index:999; transition:bottom .35s ease; }
.fsc-sticky-atc.is-visible{ bottom:0; }
.fsc-sticky-atc__inner{ display:flex; align-items:center; gap:14px; padding:12px 20px; }
.fsc-sticky-atc__inner img{ border-radius:8px; object-fit:cover; }
.fsc-sticky-atc__info{ flex:1; display:flex; flex-direction:column; }
.fsc-sticky-atc__price{ color:var(--fsc-green-dark); font-weight:600; }

/* ---------- Shipping Progress (Mini Cart) ---------- */
.fsc-shipping-progress{ padding:12px 16px; font-size:13px; }
.fsc-shipping-progress__bar{ height:6px; background:#eee; border-radius:6px; overflow:hidden; margin-top:8px; }
.fsc-shipping-progress__bar span{ display:block; height:100%; background:var(--fsc-champagne); transition:width .4s ease; }
.fsc-shipping-progress .is-success{ color:var(--fsc-green-dark); font-weight:600; }

/* ---------- Product Contact Buttons ---------- */
.fsc-product-contact-btns{ display:flex; gap:10px; margin:16px 0; flex-wrap:wrap; }

/* ---------- Mobile Bottom Navigation ---------- */
.fsc-bottom-nav{
	position:fixed; left:0; right:0; bottom:0; z-index:998; background:#fff; display:flex;
	box-shadow:0 -4px 16px rgba(0,0,0,.08); padding:8px 0 calc(8px + env(safe-area-inset-bottom));
}
.fsc-bottom-nav__item{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; font-size:11px; color:var(--fsc-text-light); text-decoration:none; position:relative; }
.fsc-bottom-nav__cart-icon{ position:relative; }
.fsc-bottom-nav__cart-badge{ position:absolute; top:-6px; right:-8px; background:var(--fsc-pink-dark); color:#7a2e3a; font-size:9px; border-radius:50%; width:16px; height:16px; display:flex; align-items:center; justify-content:center; }

.fsc-float-actions{ position:fixed; right:14px; bottom:76px; z-index:997; display:flex; flex-direction:column; gap:10px; }
.fsc-float-btn{ width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:11px; font-weight:700; text-decoration:none; box-shadow:0 6px 16px rgba(0,0,0,.2); }
.fsc-float-btn--zalo{ background:#0068ff; }
.fsc-float-btn--messenger{ background:#0084ff; }

.fsc-back-to-top{
	position:fixed; right:14px; bottom:132px; z-index:997; width:40px; height:40px; border-radius:50%;
	background:var(--fsc-green); color:#fff; border:none; display:flex; align-items:center; justify-content:center;
	cursor:pointer; opacity:0; visibility:hidden; transition:var(--fsc-transition);
}
.fsc-back-to-top.is-visible{ opacity:1; visibility:visible; }

/* ---------- Search Suggest (Header AJAX) ---------- */
.fsc-search-suggest{ list-style:none; margin:0; padding:0; }
.fsc-search-suggest li a{ display:flex; align-items:center; gap:10px; padding:8px 12px; text-decoration:none; color:var(--fsc-text); }
.fsc-search-suggest li a:hover{ background:var(--fsc-bg-soft); }
.fsc-search-suggest li a img{ border-radius:6px; }
.fsc-search-suggest em{ display:block; font-style:normal; color:var(--fsc-green-dark); font-size:12px; }

/* ---------- Empty state ---------- */
.fsc-empty{ text-align:center; color:var(--fsc-text-light); grid-column:1/-1; }

/* ---------- Toast ---------- */
.fsc-toast{
	position:fixed; left:50%; bottom:30px; transform:translate(-50%,20px); z-index:99999;
	background:var(--fsc-green-dark); color:#fff; padding:12px 24px; border-radius:50px;
	font-size:14px; opacity:0; transition:var(--fsc-transition); box-shadow:var(--fsc-shadow-hover);
}
.fsc-toast.is-visible{ opacity:1; transform:translate(-50%,0); }

/* ---------- Utility ---------- */
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }
