/* =====================================================
   Fairy Suits - main stylesheet
   Enqueued from functions.php (fairy_suits_scripts).
   ===================================================== */

/* ---------- 1. Variables ---------- */
:root {
	--fs-primary: #c9749b;
	--fs-primary-dark: #a8577c;
	--fs-accent: #f3d9e4;
	--fs-dark: #2b2230;
	--fs-text: #4a3f4d;
	--fs-muted: #8d7f92;
	--fs-bg: #fffaf9;
	--fs-white: #ffffff;
	--fs-border: #ecdde3;
	--fs-success: #4caf7d;
	--fs-error: #d1495b;
	--fs-radius: 14px;
	--fs-radius-sm: 8px;
	--fs-shadow: 0 10px 30px rgba(43, 34, 48, 0.08);
	--fs-font-heading: 'Fairy Display', Georgia, 'Times New Roman', serif;
	--fs-font-body: 'Fairy Body', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--fs-container: 1280px;
	--fs-header-h: 88px;
	--fs-transition: 0.25s ease;
}

/* ---------- 2. Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--fs-font-body);
	color: var(--fs-text);
	background: var(--fs-bg);
	font-size: 15px;
	line-height: 1.6;
}
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-family: var(--fs-font-heading); color: var(--fs-dark); margin: 0 0 0.5em; font-weight: 600; }
button { font-family: inherit; cursor: pointer; }
input, button { border: none; outline: none; background: none; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}
.skip-link {
	position: absolute; top: -60px; left: 0; z-index: 9999;
	background: var(--fs-dark); color: #fff; padding: 12px 20px;
	transition: top var(--fs-transition);
}
.skip-link:focus { top: 0; }

.fs-container { max-width: var(--fs-container); margin: 0 auto; padding: 0 24px; }

.fs-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 32px; border-radius: 999px; font-weight: 600; font-size: 14px;
	letter-spacing: 0.02em; transition: all var(--fs-transition); cursor: pointer;
}
.fs-btn--primary { background: var(--fs-primary); color: #fff; }
.fs-btn--primary:hover { background: var(--fs-primary-dark); transform: translateY(-2px); }
.fs-btn--outline { background: transparent; border: 1.5px solid var(--fs-dark); color: var(--fs-dark); }
.fs-btn--outline:hover { background: var(--fs-dark); color: #fff; }

.fs-eyebrow {
	display: inline-block; text-transform: uppercase; letter-spacing: 0.15em;
	font-size: 12px; font-weight: 600; color: var(--fs-primary); margin-bottom: 10px;
}

.fs-section { padding: 64px 0; }
.fs-section-title { font-size: 30px; text-align: center; margin-bottom: 36px; }
.fs-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.fs-section-head .fs-section-title { margin-bottom: 0; }
.fs-link-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--fs-primary); }
.fs-link-more svg { width: 16px; height: 16px; }

/* ---------- 3. Top announcement bar ---------- */
.fs-topbar {
	background: var(--fs-dark); color: #fff; text-align: center;
	font-size: 13px; letter-spacing: 0.03em;
}
.fs-topbar p { margin: 0; padding: 8px 0; }

/* ---------- 4. Header ---------- */
.fs-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%; color: var(--fs-dark);
	position: relative; transition: background var(--fs-transition);
}
.fs-icon-btn:hover { background: var(--fs-accent); }

.fs-header { position: relative; background: var(--fs-white); border-bottom: 1px solid var(--fs-border); z-index: 100; }
.fs-header-inner {
	display: grid; grid-template-columns: auto 1fr auto; align-items: center;
	min-height: var(--fs-header-h); gap: 20px;
}
.fs-mobile-menu-toggle { display: none; }
.fs-logo { justify-self: start; }
.fs-logo img { max-height: 95px; width: auto; }
.fs-logo-text { font-family: var(--fs-font-heading); font-size: 26px; font-weight: 700; color: var(--fs-primary); }

.fs-primary-nav { justify-self: center; }
.fs-menu { display: flex; gap: 32px; }
.fs-menu > li > a {
	font-weight: 500; font-size: 15px; padding: 8px 0; position: relative;
}
.fs-menu > li > a::after {
	content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 2px;
	background: var(--fs-primary); transition: width var(--fs-transition);
}
.fs-menu > li > a:hover::after,
.fs-menu > li.current-menu-item > a::after { width: 100%; }
.fs-menu li.menu-item-has-children { position: relative; }
.fs-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 200px; background: #fff;
	box-shadow: var(--fs-shadow); border-radius: var(--fs-radius-sm); padding: 10px 0;
	opacity: 0; visibility: hidden; transform: translateY(8px); transition: all var(--fs-transition);
}
.fs-menu li.menu-item-has-children:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.fs-menu .sub-menu a { display: block; padding: 8px 20px; }
.fs-menu .sub-menu a:hover { background: var(--fs-accent); }

.fs-header-actions { justify-self: end; display: flex; align-items: center; gap: 4px; }
.fs-cart-toggle { position: relative; }
.fs-cart-count {
	position: absolute; top: 2px; right: 2px; background: var(--fs-primary); color: #fff;
	font-size: 10px; font-weight: 700; width: 17px; height: 17px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}

/* ---------- 5. Search drawer ---------- */
.fs-search-drawer {
	position: absolute; top: 100%; left: 0; right: 0; background: #fff;
	box-shadow: var(--fs-shadow); padding: 28px 0; transform: translateY(-12px);
	opacity: 0; visibility: hidden; transition: all var(--fs-transition); z-index: 90;
}
.fs-search-drawer.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.fs-search-form { display: flex; align-items: center; border: 1.5px solid var(--fs-border); border-radius: 999px; padding: 6px 8px 6px 24px; }
.fs-search-input { flex: 1; padding: 10px 0; font-size: 16px; }
.fs-search-submit {
	width: 44px; height: 44px; border-radius: 50%; background: var(--fs-primary); color: #fff;
	display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.fs-search-results { margin-top: 20px; max-height: 60vh; overflow-y: auto; }
.fs-search-result-item {
	display: flex; align-items: center; gap: 14px; padding: 10px 6px; border-radius: var(--fs-radius-sm);
}
.fs-search-result-item:hover { background: var(--fs-bg); }
.fs-search-result-item img { width: 52px; height: 66px; object-fit: cover; border-radius: 6px; }
.fs-search-result-item .fs-price { color: var(--fs-primary); font-weight: 600; font-size: 13px; }
.fs-search-view-all { display: block; text-align: center; margin-top: 14px; font-weight: 600; color: var(--fs-primary); }
.fs-search-empty { text-align: center; color: var(--fs-muted); padding: 20px 0; }
.fs-drawer-close {
	position: absolute; top: 20px; right: 24px; width: 36px; height: 36px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; background: var(--fs-bg);
}

/* ---------- 6. Cart drawer ---------- */
.fs-cart-drawer {
	position: fixed; top: 0; right: -420px; width: 100%; max-width: 420px; height: 100vh;
	background: #fff; z-index: 200; transition: right var(--fs-transition);
	display: flex; flex-direction: column; box-shadow: -10px 0 40px rgba(0,0,0,0.15);
}
.fs-cart-drawer.is-open { right: 0; }
.fs-cart-drawer-header {
	display: flex; align-items: center; justify-content: space-between;
	padding: 22px 24px; border-bottom: 1px solid var(--fs-border);
}
.fs-cart-drawer-header .fs-drawer-close { position: static; }
.fs-cart-drawer-body { flex: 1; overflow-y: auto; padding: 20px 24px; }
.fs-cart-empty { text-align: center; padding: 60px 0; color: var(--fs-muted); }
.fs-cart-empty svg { width: 44px; height: 44px; margin: 0 auto 16px; color: var(--fs-primary); }
.fs-mini-cart-items { display: flex; flex-direction: column; gap: 18px; }
.fs-mini-cart-item { display: flex; gap: 14px; align-items: flex-start; position: relative; }
.fs-mini-cart-thumb img { width: 64px; height: 80px; object-fit: cover; border-radius: 8px; }
.fs-mini-cart-details { flex: 1; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.fs-mini-cart-qty { color: var(--fs-muted); font-size: 13px; }
.fs-mini-cart-remove { position: absolute; top: 0; right: 0; width: 24px; height: 24px; color: var(--fs-muted); }
.fs-mini-cart-footer { margin-top: 24px; border-top: 1px solid var(--fs-border); padding-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.fs-mini-cart-subtotal { display: flex; justify-content: space-between; font-size: 15px; }
.fs-drawer-overlay {
	position: fixed; inset: 0; background: rgba(43,34,48,0.5); z-index: 150;
	opacity: 0; visibility: hidden; transition: all var(--fs-transition);
}
.fs-drawer-overlay.is-active { opacity: 1; visibility: visible; }

/* ---------- 7. Mobile menu ---------- */
.fs-mobile-menu {
	position: fixed; top: 0; left: -320px; width: 300px; height: 100vh; background: #fff;
	z-index: 200; transition: left var(--fs-transition); padding: 24px; overflow-y: auto;
}
.fs-mobile-menu.is-open { left: 0; }
.fs-mobile-menu-close { position: static; margin-bottom: 20px; }
.fs-mobile-menu-list li a { display: block; padding: 14px 4px; border-bottom: 1px solid var(--fs-border); font-weight: 500; }

/* ---------- 8. Hero ---------- */
.fs-hero { position: relative; overflow: hidden; }
.fs-hero-track { position: relative; height: 550px !important;}
.fs-hero-slide {
	position: relative; min-height: 460px; display: flex; align-items: center;
}
.fs-hero--slider .fs-hero-slide { display: none; }
.fs-hero--slider .fs-hero-slide.is-active { display: flex; }
.fs-hero-img { position: absolute; inset: 0; width: 100%;height: 550px ;object-fit: cover; z-index: 0; }
.fs-hero-slide::before {
	content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(43,34,48,0.55), rgba(43,34,48,0.05));
	z-index: 1; height: 600px;
}
.fs-hero-caption { position: relative; z-index: 2; max-width: 560px; color: #fff; margin-top: 80px;}
.fs-hero-caption h1 { color: #fff; font-size: 44px; }
.fs-hero-caption p { font-size: 16px; margin-bottom: 24px; opacity: 0.9; }
.fs-hero-dots { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 3; }
.fs-hero-dot { width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,0.5); }
.fs-hero-dot.is-active { background: #fff; }
.fs-hero-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
	width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,0.85); color: var(--fs-dark);
	display: flex; align-items: center; justify-content: center;
}
.fs-hero-prev { left: 20px; }
.fs-hero-next { right: 20px; }

/* ---------- 9. Category grid ---------- */
.fs-cat-grid { display: flex; gap: 20px; }
.fs-cat-tile { position: relative; border-radius: var(--fs-radius); overflow: hidden; aspect-ratio: 5/6; }
.fs-cat-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.fs-cat-tile:hover img { transform: scale(1.06); }
.fs-cat-name {
	position: absolute; bottom: 0; left: 0; right: 0; padding: 14px 10px; text-align: center;
	background: linear-gradient(0deg, rgba(0,0,0,0.6), transparent); color: #fff; font-weight: 600; font-size: 14px;
}


/* ---------- 10. Product grid / cards ---------- */
/* Simple div + flexbox, same pattern as every other card grid in the theme
   (categories, collections, testimonials) — no ul/li list markup. */
.fs-product-grid {
	display: flex;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	flex-wrap: wrap;
}
.fs-product-card { flex: 1 1 calc(25% - 21px); min-width: 220px; background: #fff; border-radius: var(--fs-radius); overflow: hidden; transition: box-shadow var(--fs-transition); }
.fs-product-card:hover { box-shadow: var(--fs-shadow); }
.fs-product-thumb { position: relative; overflow: hidden; aspect-ratio: 3/4; background: var(--fs-accent); height: 465px; }
.fs-product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.fs-product-card:hover .fs-product-thumb img { transform: scale(1.05); }

.fs-badge {
	position: absolute; top: 12px; left: 12px; z-index: 2; padding: 4px 12px; border-radius: 999px;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
}
.fs-badge--sale { background: var(--fs-primary); color: #fff; }
.fs-badge--soldout { background: var(--fs-dark); color: #fff; top: 42px; }

.fs-card-icons {
	position: absolute; top: 12px; right: 12px; z-index: 2; display: flex; flex-direction: column; gap: 8px;
	opacity: 0; transform: translateX(8px); visibility: hidden; transition: all 0.3s ease;
}
/* .fs-product-card:hover .fs-card-icons { opacity: 1; transform: translateX(0); } */

.fs-collage-grid:hover .fs-card-icons { opacity: 1; visibility: visible;
}
.fs-card-icons .fs-icon-btn { background: #fff; width: 36px; height: 36px; box-shadow: var(--fs-shadow); }
.fs-card-icons .fs-icon-btn svg { width: 16px; height: 16px; }
.fs-wishlist-btn.is-active { color: var(--fs-primary); }

.fs-product-info { padding: 16px 6px 4px; text-align: center; }
.fs-product-info h2, .fs-product-info h3 { font-size: 15px; margin-bottom: 6px; font-family: var(--fs-font-body); font-weight: 600; }
.fs-product-info .price { color: var(--fs-primary); font-weight: 700; font-size: 15px; }
.fs-product-info .price del { color: var(--fs-muted); font-weight: 400; margin-right: 6px; }
.fs-product-info .star-rating { margin: 6px auto; }
.fs-add-to-cart {
	display: inline-block; margin-top: 10px; padding: 10px 26px; border-radius: 999px;
	background: var(--fs-dark); color: #fff; font-size: 13px; font-weight: 600; transition: all var(--fs-transition);
}
.fs-add-to-cart:hover { background: var(--fs-primary); }
.fs-add-to-cart.loading { opacity: 0.6; pointer-events: none; }
.fs-add-to-cart.added::after { content: ' ✓'; }
/* =====================================================
   Editorial collage product card — v3 (2 per row, always visible icons)
   ===================================================== */


.fs-product-collage { position: relative; }

.fs-collage-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: var(--fs-radius);
    width: 400px;
	height: 485px;
}


.fs-collage-text {
	background: var(--fs-dark);
	color: #fff;
	padding: 28px 26px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-height: 295px;
}
.fs-collage-number { font-size: 14px; opacity: 0.6; margin-bottom: 16px; }
.fs-collage-title { margin: 0 0 16px; }
.fs-collage-title a {
	color: #fff;
	font-size: 26px;
	line-height: 1.25;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-weight: 700;
}
canvas { list-style: none; margin: 0 0 auto; padding: 0; }
.fs-collage-bullets li { font-size: 14px; line-height: 2; opacity: 0.8; }
.fs-collage-price { margin-top: 20px; font-size: 20px; font-weight: 700; }
.fs-collage-price ins { text-decoration: none; }
.fs-collage-price del { opacity: 0.5; margin-right: 8px; font-size: 15px; font-weight: 400; }

.fs-collage-photo {
	position: relative;
	background-size: cover;
	background-position: center;
	display: block;
	overflow: hidden;
}
.fs-collage-photo::after {
	content: '';
	position: absolute; inset: 0;
	background: rgba(0,0,0,0);
	transition: background var(--fs-transition);
}
.fs-collage-photo:hover::after { background: rgba(0,0,0,0.12); }

/* Icons always visible (fixed: previously stayed invisible since the old
   hover-parent ".fs-product-card:hover" no longer exists in this layout) */
.fs-collage-photo--a .fs-card-icons {
	position: absolute; top: 14px; right: 14px; z-index: 2;
	display: flex; flex-direction: column; gap: 8px;
	opacity: 1; transform: none;
}
.fs-collage-photo--a .fs-card-icons .fs-icon-btn {
	background: #fff; width: 36px; height: 36px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	box-shadow: var(--fs-shadow);
}
.fs-collage-photo--a .fs-card-icons .fs-icon-btn svg { width: 17px; height: 17px; }
.fs-wishlist-btn.is-active { color: var(--fs-primary); }

.fs-collage-photo--c { position: relative; }
.fs-collage-photo-link { position: absolute; inset: 0; z-index: 1; }
.fs-collage-cart-overlay {
	position: absolute; left: 16px; bottom: 16px; right: 16px; z-index: 2;
	opacity: 0; transform: translateY(6px);
	transition: all var(--fs-transition);
}
.fs-collage-photo--c:hover .fs-collage-cart-overlay { opacity: 1; transform: translateY(0); }

.fs-collage-cart-overlay .add_to_cart_button,
.fs-collage-cart-overlay a.button {
	display: inline-block;
	background: transparent;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 0 0 3px;
	border-bottom: 1px solid #fff;
	border-radius: 0;
}
.fs-collage-cart-overlay .added_to_cart { display: none; }

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
	.fs-product-grid { gap: 24px; }
}

/* ---------- Mobile: stack the 2x2 collage into one column ---------- */
@media (max-width: 640px) {
	.fs-product-grid { grid-template-columns: 1fr; gap: 28px; }

	.fs-collage-grid {
		/* grid-template-columns: 1fr; */
		grid-template-rows: auto;
		aspect-ratio: auto;
	}

	.fs-collage-text { padding: 24px 20px; }
	.fs-collage-title a { font-size: 20px; }
	.fs-collage-bullets li { font-size: 13px; }

	.fs-collage-photo { aspect-ratio: 2 / 5; }

	/* Always show the "Add to cart" link on mobile — no hover on touch */
	.fs-collage-cart-overlay { opacity: 1; transform: none; position: static; padding: 14px 16px; background: rgba(0,0,0,0.55); }
}
/* ---------- 11. Promo banner ---------- */
.fs-promo-banner { background: var(--fs-accent); }
.fs-promo-banner-inner { text-align: center; padding: 30px 0; }
.fs-promo-banner-inner h2 { font-size: 32px; }

/* ---------- 12. Collections grid ---------- */
.fs-collections-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fs-collection-card { position: relative; border-radius: var(--fs-radius); overflow: hidden; aspect-ratio: 4/5; }
.fs-collection-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.fs-collection-card:hover img { transform: scale(1.05); }
.fs-collection-overlay {
	position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px;
	background: linear-gradient(0deg, rgba(0,0,0,0.65), transparent 60%); color: #fff;
}
.fs-collection-overlay h3 { color: #fff; margin-bottom: 8px; }

/* ---------- 13. Testimonials ---------- */
.fs-testimonials { background: var(--fs-bg); }
.fs-testimonials-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fs-testimonial-card { background: #fff; border-radius: var(--fs-radius); padding: 30px; box-shadow: var(--fs-shadow); }
.fs-quote-icon { color: var(--fs-accent); margin-bottom: 14px; }
.fs-testimonial-author { display: flex; align-items: center; gap: 10px; margin-top: 18px; }
.fs-testimonial-author img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }

/* ---------- 14. Footer ---------- */
.fs-footer { background: var(--fs-dark); color: #d9cfda;  padding: 30px; }
.fs-newsletter { background: var(--fs-primary); display: none;}
.fs-newsletter-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 34px 0; flex-wrap: wrap; }
.fs-newsletter-inner h3 { color: #fff; margin-bottom: 4px; }
.fs-newsletter-inner p { color: rgba(255,255,255,0.85); margin: 0; }
.fs-newsletter-form { display: flex; gap: 10px; }
.fs-newsletter-form input { background: #fff; padding: 12px 18px; border-radius: 999px; min-width: 260px; }
.fs-newsletter-form button { background: var(--fs-dark); color: #fff; padding: 12px 26px; border-radius: 999px; font-weight: 600; }

.fs-footer-columns { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding: 56px 0 30px; }
.fs-footer-col h4 { color: #fff; font-size: 15px; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 18px; }
.fs-footer-menu li a, .fs-footer-col p { display: block; padding: 6px 0; color: #cfc2d1; font-size: 14px; }
.fs-footer-menu li a:hover { color: #fff; }
.fs-footer-about .fs-logo-text { color: #fff; }
.fs-socials { display: flex; gap: 10px; margin-top: 18px; }
.fs-social-link {
	width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.08);
	display: flex; align-items: center; justify-content: center; color: #fff;
}
.fs-social-link:hover { background: var(--fs-primary); }

.fs-footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding: 18px 0; }
.fs-footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.fs-footer-bottom-inner p { margin: 0; font-size: 13px; }
.fs-payment-icons { display: flex; gap: 12px; color: #cfc2d1; }

/* ---------- 15. Generic content pages / blog ---------- */
.fs-main { padding: 56px 0; }
.fs-page-title { font-size: 32px; margin-bottom: 24px; }
.fs-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.fs-card { background: #fff; border-radius: var(--fs-radius); overflow: hidden; box-shadow: var(--fs-shadow); }
.fs-card-thumb { display: block; aspect-ratio: 4/3; overflow: hidden; }
.fs-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fs-card-body { padding: 20px; }
.fs-card-title { font-size: 17px; margin-bottom: 10px; }
.fs-card-meta { font-size: 12px; color: var(--fs-muted); margin-bottom: 8px; }
.fs-card-excerpt { font-size: 14px; color: var(--fs-muted); margin-bottom: 12px; }
.fs-pagination { display: flex; justify-content: center; margin-top: 40px; }
.fs-pagination ul { display: flex; gap: 8px; }
.fs-pagination a, .fs-pagination span {
	display: flex; align-items: center; justify-content: center; width: 40px; height: 40px;
	border-radius: 50%; border: 1px solid var(--fs-border);
}
.fs-pagination .current { background: var(--fs-primary); color: #fff; border-color: var(--fs-primary); }
.fs-empty-state { text-align: center; padding: 80px 0; }
.fs-empty-state svg { width: 44px; height: 44px; color: var(--fs-primary); margin-bottom: 16px; }

/* ---------- 16. Shop / WooCommerce layout ---------- */
.fs-woo-layout { display: flex;  gap: 40px; padding: 40px 0; align-items: start; }
.fs-woo-layout:has(.fs-shop-sidebar) { grid-template-columns: 260px 1fr; }
body.fs-no-sidebar .fs-woo-layout { grid-template-columns: 1fr; }
.fs-shop-sidebar { background: #fff; border-radius: var(--fs-radius); padding: 24px; box-shadow: var(--fs-shadow); }
.fs-widget-title { font-size: 15px; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 14px; }
.fs-breadcrumbs { font-size: 13px; color: var(--fs-muted); margin-bottom: 20px; }

/* Cart / checkout tables keep default WC structure but get restyled */
table.shop_table { width: 100%; border-collapse: collapse; }
table.shop_table th, table.shop_table td { padding: 14px; border-bottom: 1px solid var(--fs-border); text-align: left; }
.woocommerce-message, .woocommerce-error, .woocommerce-info {
	background: var(--fs-accent); color: var(--fs-dark); padding: 16px 20px; border-radius: var(--fs-radius-sm);
	list-style: none; margin-bottom: 24px;
}

/* ---------- 17. 404 ---------- */
.fs-404-inner { text-align: center; padding: 80px 0; }
.fs-404-inner h1 { font-size: 96px; color: var(--fs-accent); }
.fs-404-inner .fs-search-form { max-width: 420px; margin: 24px auto; }
.fs-404-inner .fs-btn { margin-top: 16px; }

/* ---------- 18. Responsive ---------- */
@media (max-width: 1100px) {
	.fs-product-card { flex-basis: calc(33.333% - 19px); }
	.fs-blog-grid { grid-template-columns: repeat(2, 1fr); }
	.fs-collections-grid, .fs-testimonials-track { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
	.fs-primary-nav { display: none; }
	.fs-mobile-menu-toggle { display: inline-flex; }
	.fs-header-inner { grid-template-columns: auto 1fr auto; }
	.fs-woo-layout { grid-template-columns: 1fr; }
	.fs-shop-sidebar { position: static; order: 2; }
}

@media (max-width: 640px) {
	.fs-product-grid { gap: 16px; }
	.fs-product-card { flex-basis: calc(50% - 8px); }
	.fs-cat-grid { flex-wrap:wrap ; }
	.fs-blog-grid, .fs-collections-grid, .fs-testimonials-track { grid-template-columns: 1fr; }
	.fs-hero-caption h1 { font-size: 30px; }
	.fs-footer-columns { grid-template-columns: 1fr 1fr; }
	.fs-newsletter-inner { flex-direction: column; text-align: center; }
	.fs-newsletter-form { width: 100%; }
	.fs-newsletter-form input { min-width: 0; flex: 1; }
}
/* =====================================================================
   SINGLE PRODUCT PAGE REDESIGN — Fairy Suits (FIXED VERSION)
   Bug fix: the "Sale!" badge was being auto-placed into the grid as its
   own column (shrinking the gallery image next to it). It's now taken
   out of the grid flow entirely and overlaid on top of the image
   instead, and gallery/summary/tabs are explicitly assigned to named
   grid areas so their order can never get scrambled again.
   Every rule is still scoped under ".single-product" only.
   ===================================================================== */

/* ---------- 1. Two-column layout: gallery left, info right ---------- */
.single-product .product.type-product {
	position: relative;
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	grid-template-areas:
		"gallery summary"
		"tabs    tabs";
	gap: 48px;
	align-items: start;
}

.single-product .woocommerce-product-gallery {
	grid-area: gallery;
}

.single-product .summary.entry-summary {
	grid-area: summary;
}

.single-product .woocommerce-tabs {
	grid-area: tabs;
}

.single-product .product.type-product > *:not(.woocommerce-product-gallery):not(.summary):not(.woocommerce-tabs):not(span.onsale) {
	grid-column: 1 / -1;
}

/* ---------- 2. Image gallery ---------- */
.single-product .woocommerce-product-gallery {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	background: #f7eef1;
}

.single-product .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.single-product .woocommerce-product-gallery__image {
	border-radius: 16px;
	overflow: hidden;
}

.single-product .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	display: block;
	border-radius: 16px;
}

.single-product .woocommerce-product-gallery__trigger {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 5;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
}

.single-product ol.flex-control-nav.flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	flex-wrap: wrap;
}

.single-product ol.flex-control-thumbs li {
	width: 72px;
}

.single-product ol.flex-control-thumbs img {
	width: 72px;
	height: 96px;
	object-fit: cover;
	border-radius: 8px;
	border: 2px solid transparent;
	cursor: pointer;
	opacity: .7;
	transition: opacity .2s ease, border-color .2s ease;
}

.single-product ol.flex-control-thumbs img:hover {
	opacity: 1;
}

.single-product ol.flex-control-thumbs img.flex-active {
	border-color: var(--fs-primary, #701745);
	opacity: 1;
}


.single-product span.onsale {
	position: absolute;
	top: 20px;
	left: 20px;
	z-index: 6;
	display: inline-block;
	background: var(--fs-primary, #701745);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 6px 14px;
	border-radius: 999px;
	margin: 0;
}

.single-product .summary.entry-summary {
	padding: 8px 0;
}

.single-product .summary .product_title {
	font-size: 30px;
	line-height: 1.2;
	margin: 0 0 14px;
}

.single-product .summary p.price {
	font-size: 24px;
	font-weight: 700;
	color: var(--fs-primary, #701745);
	margin: 0 0 18px;
}

.single-product .summary p.price del {
	color: #9a8d9e;
	font-weight: 400;
	font-size: 17px;
	margin-right: 8px;
	text-decoration: line-through;
}

.single-product .summary p.price ins {
	text-decoration: none;
}

.single-product .woocommerce-product-details__short-description {
	color: #5c505f;
	font-size: 15px;
	line-height: 1.7;
	margin-bottom: 16px;
}

.single-product p.stock {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	color: #3f8a5c;
	background: #e8f6ee;
	padding: 6px 14px;
	border-radius: 999px;
	margin-bottom: 22px;
}

.single-product p.stock.out-of-stock {
	color: #b4344a;
	background: #fbe7ea;
}

.single-product form.cart {
	align-items: center;
	gap: 16px;
	margin-bottom: 26px;
	flex-wrap: wrap;
}

.single-product form.cart .quantity {
	margin: 0;
}

.single-product form.cart .qty {
	width: 76px;
	height: 52px;
	text-align: center;
	border: 1.5px solid #ecdde3;
	border-radius: 999px;
	font-size: 15px;
}

.single-product .single_add_to_cart_button {
	flex: 1;
	flex-basis: 100%;
	min-width: 200px;
	background: #2b2230;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 16px 32px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	cursor: pointer;
	transition: background .25s ease;
	margin-top: 20px;
}

.single-product .single_add_to_cart_button:hover {
	background: var(--fs-primary, #701745);
}

.single-product .product_meta {
	font-size: 13px;
	color: #8d7f92;
	padding-top: 18px;
	border-top: 1px solid #ecdde3;
}

.single-product .product_meta a {
	color: var(--fs-primary, #701745);
	font-weight: 600;
	text-decoration: none;
}

.single-product .woocommerce-tabs {
	margin-top: 56px;
	border-top: 1px solid #ecdde3;
	padding-top: 32px;
}

.single-product ul.tabs.wc-tabs {
	display: flex;
	gap: 32px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	border-bottom: 1px solid #ecdde3;
}

.single-product ul.tabs.wc-tabs li a {
	display: inline-block;
	padding: 0 0 14px;
	font-size: 15px;
	font-weight: 600;
	color: #8d7f92;
	text-decoration: none;
}

.single-product ul.tabs.wc-tabs li.active a {
	color: #2b2230;
	border-bottom: 2px solid var(--fs-primary, #701745);
}

.single-product .woocommerce-Tabs-panel h2 {
	font-size: 20px;
	margin-bottom: 12px;
}

.single-product .woocommerce-Tabs-panel p {
	color: #5c505f;
	line-height: 1.75;
}

/* ---------- 5. Mobile: stack into one column ---------- */
@media (max-width: 900px) {
	.single-product .product.type-product {
		grid-template-columns: 1fr;
		grid-template-areas:
			"gallery"
			"summary"
			"tabs";
	}

	.single-product .woocommerce-product-gallery__image img {
		max-height: 480px;
	}
}

.fs-wishlist-toggle { position: relative; }
.fs-wishlist-count {
	position: absolute; top: 2px; right: 2px; background: var(--fs-primary); color: #fff;
	font-size: 10px; font-weight: 700; width: 17px; height: 17px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}


/* =====================================================
   Shop Sidebar Widgets Fairy Suits styling
   ===================================================== */

.fs-shop-sidebar .fs-widget {
	padding-bottom: 26px;
	margin-bottom: 26px;
	border-bottom: 1px solid var(--fs-border);
}
.fs-shop-sidebar .fs-widget:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
}

/* Widget headings (Search / Recent Posts / Recent Comments) */
.fs-shop-sidebar .wp-block-heading {
	font-family: var(--fs-font-body);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--fs-dark);
	margin: 0 0 16px;
	padding-bottom: 10px;
	position: relative;
}
.fs-shop-sidebar .wp-block-heading::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 32px;
	height: 2px;
	background: var(--fs-primary);
}

/* Search widget */
.fs-shop-sidebar .wp-block-search {
	display: block;
}
.fs-shop-sidebar .wp-block-search__label {
	display: none;
}
.fs-shop-sidebar .wp-block-search__inside-wrapper {
	display: flex;
	align-items: center;
	border: 1.5px solid var(--fs-border);
	border-radius: 999px;
	overflow: hidden;
	background: var(--fs-bg);
}
.fs-shop-sidebar .wp-block-search__input {
	flex: 1;
	border: none;
	background: transparent;
	padding: 11px 18px;
	font-size: 14px;
	font-family: var(--fs-font-body);
	color: var(--fs-text);
	min-width: 0;
}
.fs-shop-sidebar .wp-block-search__input:focus {
	outline: none;
}
.fs-shop-sidebar .wp-block-search__button {
	border: none;
	background: var(--fs-primary);
	color: #fff;
	padding: 11px 20px;
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	transition: background var(--fs-transition);
}
.fs-shop-sidebar .wp-block-search__button:hover {
	background: var(--fs-primary-dark);
}

/* Recent Posts list */
.fs-shop-sidebar .wp-block-latest-posts {
	list-style: none;
	margin: 0;
	padding: 0;
}
.fs-shop-sidebar .wp-block-latest-posts__list li {
	padding: 10px 0;
	border-bottom: 1px dashed var(--fs-border);
}
.fs-shop-sidebar .wp-block-latest-posts__list li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.fs-shop-sidebar .wp-block-latest-posts__post-title {
	font-size: 14px;
	font-weight: 500;
	color: var(--fs-text);
	transition: color var(--fs-transition);
}
.fs-shop-sidebar .wp-block-latest-posts__post-title:hover {
	color: var(--fs-primary);
}

/* Recent Comments list */
.fs-shop-sidebar .wp-block-latest-comments {
	list-style: none;
	margin: 0;
	padding: 0;
}
.fs-shop-sidebar .wp-block-latest-comments__comment {
	padding: 10px 0;
	border-bottom: 1px dashed var(--fs-border);
	font-size: 13px;
	line-height: 1.6;
}
.fs-shop-sidebar .wp-block-latest-comments__comment:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.fs-shop-sidebar .wp-block-latest-comments__comment-author {
	font-weight: 600;
	color: var(--fs-dark);
}
.fs-shop-sidebar .wp-block-latest-comments__comment-link {
	color: var(--fs-primary);
}
.fs-shop-sidebar .wp-block-latest-comments__comment-meta {
	color: var(--fs-muted);
}
@media (max-width: 800px) {
	.fs-shop-sidebar {
		display: none;
	}
}

/* =====================================================
   Shop ordering dropdown Fairy Suits styling
   ===================================================== */

.woocommerce-ordering {
	margin-bottom: 24px;
	display: inline-block;
}

.woocommerce-ordering .orderby {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-color: #fff;
	border: 1.5px solid var(--fs-border);
	border-radius: 999px;
	padding: 11px 42px 11px 20px;
	font-family: var(--fs-font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--fs-dark);
	cursor: pointer;
	transition: border-color var(--fs-transition), box-shadow var(--fs-transition);

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23c9749b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 12px 8px;
}

.woocommerce-ordering .orderby:hover {
	border-color: var(--fs-primary);
}

.woocommerce-ordering .orderby:focus {
	outline: none;
	border-color: var(--fs-primary);
	box-shadow: 0 0 0 3px rgba(201, 116, 155, 0.15);
}

/* Firefox removes the dotted focus ring around the selected option text */
.woocommerce-ordering .orderby:-moz-focusring {
	color: transparent;
	text-shadow: 0 0 0 var(--fs-dark);
}


/* =====================================================
   WooCommerce shop pagination  Fairy Suits styling
   ===================================================== */

.woocommerce-pagination {
	margin-top: 40px;
}

.woocommerce-pagination ul.page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-pagination .page-numbers li {
	display: flex;
}

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 4px;
	border-radius: 50%;
	border: 1px solid var(--fs-border);
	font-family: var(--fs-font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--fs-dark);
	background: #fff;
	transition: all var(--fs-transition);
}

.woocommerce-pagination .page-numbers a:hover {
	background: var(--fs-accent);
	border-color: var(--fs-primary);
	color: var(--fs-primary-dark);
}

.woocommerce-pagination .page-numbers span.current {
	background: var(--fs-primary);
	border-color: var(--fs-primary);
	color: #fff;
}

.woocommerce-pagination .page-numbers .next,
.woocommerce-pagination .page-numbers .prev {
	font-size: 16px;
}

.woocommerce-pagination .page-numbers .dots {
	background: transparent;
	border: none;
}
/* =====================================================
   WhatsApp floating button
   ===================================================== */
.fs-whatsapp-float {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 500;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--fs-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 20px rgba(201, 116, 155, 0.4);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.fs-whatsapp-float:hover {
	background: var(--fs-primary-dark);
	transform: scale(1.08);
	box-shadow: 0 8px 26px rgba(201, 116, 155, 0.5);
}
/* Subtle pulse animation to draw attention */
.fs-whatsapp-float::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--fs-primary);
	opacity: 0.5;
	animation: fs-whatsapp-pulse 2s infinite;
	z-index: -1;
}
@keyframes fs-whatsapp-pulse {
	0% { transform: scale(1); opacity: 0.5; }
	70% { transform: scale(1.6); opacity: 0; }
	100% { transform: scale(1.6); opacity: 0; }
}
@media (max-width: 640px) {
	.fs-whatsapp-float {
		bottom: 16px;
		right: 16px;
		width: 50px;
		height: 50px;
	}
}


/* =====================================================================
   HERO CAPTION REDESIGN — clean, centered, bold uppercase style
   (reference: Outfitters "END OF SEASON SALE" banner look)
   Background image (.fs-hero-img) and dark overlay (.fs-hero-slide::before)
   are intentionally NOT touched here — only the text layout/typography
   and the dots navigation are changed.
   ===================================================================== */

/* Caption block: was left-aligned in a 560px box — now centered (both
   horizontally and vertically within the slide) and spans wider so the
   heading can sit in the middle like the reference image. */
.fs-hero-caption {
	max-width: 900px;
	width: 100%;
	text-align: center;
	position: absolute;
	top: 45%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* Eyebrow (used as the small caption under the heading, matching the
   reference's "TERMS & CONDITIONS APPLY" style — small, spaced-out,
   uppercase, subdued). */
.fs-hero-caption .fs-eyebrow {
	display: block;
	color: rgba(255, 255, 255, 0.85);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	margin-bottom: 0;
	order: 3;
	margin-top: 40px;
}

/* Main heading: large, bold, uppercase, tight letter-spacing, clean
   sans-serif — matches the reference's big centered sale headline. */
.fs-hero-caption h1 {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
	color: #fff;
	font-size: 90px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	line-height: 1.15;
	margin: 0 0 18px;
}

/* Subtext: small, centered, uppercase, spaced — same treatment as the
   eyebrow so both read as quiet supporting lines around the big heading. */
.fs-hero-caption p {
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	opacity: 0.85;
	margin: 0 0 20px;
}

/* Reorder so it reads: heading → subtext → eyebrow/terms line → button,
   as a centered stack (order set here; alignment already set above). */
.fs-hero-caption .fs-btn {
	background: transparent;
	color: #fff;
	border: 1.5px solid #fff;
	border-radius: 0;
}
.fs-hero-caption .fs-btn:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
}
 

/* Dots navigation → short horizontal dash lines instead of round dots. */
.fs-hero-dots {
	gap: 10px;
}
.fs-hero-dot {
	width: 26px;
	height: 3px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.45);
	transition: background 0.25s ease, width 0.25s ease;
}
.fs-hero-dot.is-active {
	background: #fff;
	width: 34px;
}

@media (max-width: 640px) {
	.fs-hero-caption h1 { font-size: 30px; }
	.fs-hero-caption { max-width: 92%; }
	.fs-hero-dot { width: 18px; }
	.fs-hero-dot.is-active { width: 24px; }
}
/* =====================================================
   Variation swatches + quantity steppers
   ===================================================== */
.fs-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

.woocommerce div.product form.variations_form table.variations,
.woocommerce div.product form.variations_form table.variations tbody,
.woocommerce div.product form.variations_form table.variations tr,
.woocommerce div.product form.variations_form table.variations th,
.woocommerce div.product form.variations_form table.variations td {
	display: block; border: none; padding: 0; background: none; width: auto; text-align: start;
}
.woocommerce div.product form.variations_form table.variations th.label {
	font-size: 13px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 0.05em; color: var(--fs-dark); margin-bottom: 10px;
}
.woocommerce div.product form.variations_form table.variations td.value {
	margin-bottom: 4px;
}

.fs-variation-swatches { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.fs-swatch-btn {
	min-width: 44px; height: 44px; padding: 0 16px;
	border: 1.5px solid var(--fs-border); border-radius: 999px;
	background: #fff; color: var(--fs-dark); font-size: 13px; font-weight: 600;
	transition: all var(--fs-transition);
}
.fs-swatch-btn:hover { border-color: var(--fs-primary); }
.fs-swatch-btn.is-selected { background: var(--fs-dark); border-color: var(--fs-dark); color: #fff; }

.woocommerce div.product form.variations_form .reset_variations {
	display: inline-block; font-size: 12px; color: var(--fs-muted);
	text-decoration: underline; margin: 0 0 16px;
}

/* Quantity stepper */
.fs-qty-inner {
	display: flex; align-items: center; width: fit-content;
	border: 1.5px solid var(--fs-border); border-radius: 999px; overflow: hidden;
}
.fs-qty-btn {
	width: 40px; height: 52px; display: flex; align-items: center; justify-content: center;
	font-size: 18px; color: var(--fs-dark); background: var(--fs-bg);
	transition: background var(--fs-transition);
}
.fs-qty-btn:hover { background: var(--fs-accent); }
.quantity input.qty {
	border: none !important; border-radius: 0 !important;
	width: 50px !important; height: 52px !important; text-align: center;

}
.quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none; margin: 0;
}

aside{
	display: none !important;
}

.post-type-archive-product .fs-cat-grid br {
    display: none !important;
	
}
/* Hide the short description bullet */
.fs-collage-bullets {
	display: none;
}

.fs-product-grid {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    justify-content: center;
}

.woocommerce-shop .fs-product-grid, 
.tax-product_cat .fs-product-grid,
.single-product .fs-product-grid{
	justify-content: start !important;
}
