/* ==========================================================================
   Frosted Bloom — per-category landing pages (template-category-landing.php).
   ========================================================================== */

.gfd-cl {
	--gfd-pink: var(--gfd-primary,#e08a12);
	--gfd-pink-dark: var(--gfd-primary-dark,#b3660d);
	--gfd-heading: var(--gfd-heading,#7a3d0a);
	--gfd-ink: #2e2e3a;
	--gfd-ink-soft: #5a5a6a;
	--gfd-glass: rgba(255, 255, 255, 0.82);
	--gfd-border: rgba(255, 255, 255, 0.9);
	--gfd-shadow: 0 14px 34px rgba(0, 0, 0, 0.08);
	max-width: 1160px;
	margin: 0 auto;
	padding: 26px 16px 52px;
	color: var(--gfd-ink);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Montserrat', sans-serif;
}
.gfd-cl * { box-sizing: border-box; }

/* Hero */
.gfd-cl-hero { text-align: center; padding: 12px 0 24px; }
.gfd-cl-hero__eyebrow {
	display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--gfd-pink-dark);
	background: rgba(var(--gfd-primary-rgb,224,138,18), .10); padding: 5px 14px; border-radius: 999px; margin-bottom: 12px;
}
.gfd-cl-hero__title { font-size: 32px; font-weight: 800; color: var(--gfd-heading); line-height: 1.15; margin: 0 0 12px; }
.gfd-cl-hero__sub { font-size: 16px; color: var(--gfd-ink-soft); max-width: 720px; margin: 0 auto 18px; line-height: 1.6; }
.gfd-cl-hero__cta {
	display: inline-block; background: linear-gradient(135deg, var(--gfd-pink), var(--gfd-pink-dark));
	color: #fff !important; text-decoration: none !important; font-weight: 700; font-size: 15px;
	padding: 12px 30px; border-radius: 999px; box-shadow: 0 10px 24px rgba(var(--gfd-primary-rgb,224,138,18), 0.28);
	transition: filter .12s ease, transform .12s ease;
}
.gfd-cl-hero__cta:hover { filter: brightness(1.05); transform: translateY(-1px); }

/* Products */
.gfd-cl-products { margin: 6px 0 32px; scroll-margin-top: 90px; }
.gfd-cl-products .woocommerce { max-width: none; }

/* Section headings */
.gfd-cl-secttitle { font-size: 24px; font-weight: 800; color: var(--gfd-heading); margin: 8px 0 4px; text-align: center; }
.gfd-cl-sectsub { font-size: 14.5px; color: var(--gfd-ink-soft); text-align: center; margin: 0 0 22px; }

/* Compact product cards (used in sub-category + availability sections) */
/* auto-fit (not auto-fill) so a few items stretch to fill the row — no trailing white space. */
.gfd-cl-mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.gfd-cl-mini {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--gfd-border); border-radius: 14px; overflow: hidden;
	transition: transform .12s ease, box-shadow .12s ease;
}
.gfd-cl-mini:hover { transform: translateY(-2px); box-shadow: var(--gfd-shadow); }
.gfd-cl-mini__link { display: block; text-decoration: none !important; }
.gfd-cl-mini__img { display: block; aspect-ratio: 1/1; overflow: hidden; background: #fff4f8; }
.gfd-cl-mini__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gfd-cl-mini__name { display: block; padding: 8px 10px 2px; font-size: 13px; font-weight: 600; color: var(--gfd-ink); line-height: 1.3; }
.gfd-cl-mini .gfd-avail-badges { padding: 4px 10px 0; margin: 0; }
.gfd-cl-mini__price { padding: 4px 10px 8px; font-size: 13px; font-weight: 700; color: var(--gfd-pink-dark); margin-top: auto; }
.gfd-cl-mini__cart.button {
	display: block; margin: 0 10px 10px; padding: 8px 10px; font-size: 12.5px; font-weight: 700;
	text-align: center; border-radius: 999px; border: 0; line-height: 1.2;
	background: linear-gradient(135deg, var(--gfd-pink), var(--gfd-pink-dark)); color: #fff !important;
	text-decoration: none !important;
}
.gfd-cl-mini__cart.button:hover { filter: brightness(1.05); color: #fff !important; }

/* Sub-category showcase */
.gfd-cl-subcats { margin: 6px 0 34px; scroll-margin-top: 90px; }
/* Pack sub-category cards 2+ per row on wider screens; 1 per row on mobile.
   align-items:start so a card with fewer products doesn't stretch tall. */
.gfd-cl-subcat-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 18px; align-items: start; }
.gfd-cl-subcat {
	background: var(--gfd-glass); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
	border: 1px solid var(--gfd-border); border-radius: 20px; box-shadow: var(--gfd-shadow); padding: 20px 22px;
}
.gfd-cl-subcat__head { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.gfd-cl-subcat__thumb { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 14px; overflow: hidden; }
.gfd-cl-subcat__thumb img { width: 100%; height: 100%; object-fit: cover; }
.gfd-cl-subcat__intro { flex: 1; min-width: 0; }
.gfd-cl-subcat__name { font-size: 19px; font-weight: 800; margin: 0 0 4px; }
.gfd-cl-subcat__name a { color: var(--gfd-heading); text-decoration: none; }
.gfd-cl-subcat__desc { font-size: 13.5px; color: var(--gfd-ink-soft); margin: 0 0 4px; line-height: 1.5; }
.gfd-cl-subcat__more { font-size: 13px; font-weight: 700; color: var(--gfd-pink-dark); text-decoration: none; }

/* Availability sections */
.gfd-cl-availsec { margin: 6px 0 34px; }
.gfd-cl-avail { background: var(--gfd-glass); border: 1px solid var(--gfd-border); border-radius: 20px; box-shadow: var(--gfd-shadow); padding: 18px 22px; margin-bottom: 16px; }
.gfd-cl-avail__title { display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 800; color: var(--gfd-heading); margin: 0 0 14px; }
.gfd-cl-avail__ico { display: inline-flex; }

/* SEO content */
.gfd-cl-seo {
	background: var(--gfd-glass);
	-webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
	border: 1px solid var(--gfd-border); border-radius: 20px; box-shadow: var(--gfd-shadow);
	padding: 28px 32px; margin: 0 0 20px; line-height: 1.65;
}
.gfd-cl-seo h2 { font-size: 23px; color: var(--gfd-heading); font-weight: 800; margin: 0 0 10px; }
.gfd-cl-seo h3 { font-size: 18px; color: var(--gfd-heading); font-weight: 700; margin: 20px 0 8px; }
.gfd-cl-seo p { margin: 0 0 12px; color: var(--gfd-ink-soft); }
.gfd-cl-seo ul, .gfd-cl-seo ol { margin: 0 0 12px; padding-left: 22px; color: var(--gfd-ink-soft); }
.gfd-cl-seo li { margin-bottom: 6px; }

@media (max-width: 600px) {
	.gfd-cl-hero__title { font-size: 26px; }
	.gfd-cl-seo { padding: 22px 20px; }
}
