/* Contract Seating For Less — store styles (Storefront child) */

:root {
	--brand-navy: #0e2f52;
	--brand-navy-2: #17406b;
	--brand-gold: #e8ad2e;      /* gold: add to cart, primary CTAs */
	--brand-gold-dk: #c9900f;
	--brand-gold-lt: #f5c75a;
	--brand-cream: #f7f3ec;
	--brand-sand: #ebe3d5;
	--brand-line: #e3ddd2;
	--brand-warm: #fbf8f2;
	--brand-sage: #dde8dd;
	--brand-green: #4f7a5a;
	--brand-ink: #1b2430;
	--brand-muted: #6f7275;
	--brand-ok: #2f6b4f;
	--brand-radius: 4px;
	--brand-head: 'Montserrat', 'Poppins', Arial, sans-serif;
	--brand-body: 'Poppins', Arial, sans-serif;
}

body {
	background: #fff;
	color: var(--brand-ink);
	font-family: var(--brand-body);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6,
.site-title, .product_title, .woocommerce-loop-product__title {
	font-family: var(--brand-head);
	color: var(--brand-navy);
	letter-spacing: -0.01em;
}
a { color: var(--brand-navy); }
a:hover, a:focus { color: var(--brand-navy-2); }

/* ---------- Buttons ---------- */
button, input[type="button"], input[type="reset"], input[type="submit"],
.button, .added_to_cart, .widget a.button,
.wc-block-components-button:not(.is-link) {
	background: var(--brand-navy);
	border-color: var(--brand-navy);
	color: #fff;
	font-family: var(--brand-head);
	font-weight: 600;
	letter-spacing: .02em;
	border-radius: var(--brand-radius);
	padding: .85em 1.6em;
	transition: background .15s ease, color .15s ease;
}
button:hover, input[type="submit"]:hover, .button:hover, .added_to_cart:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--brand-navy-2);
	color: #fff;
}
button.alt, input[type="button"].alt, input[type="submit"].alt, .button.alt,
.single_add_to_cart_button, .checkout-button, #place_order,
.csfl-btn-gold {
	background: var(--brand-gold) !important;
	border-color: var(--brand-gold) !important;
	color: var(--brand-navy) !important;
}
button.alt:hover, .button.alt:hover, .single_add_to_cart_button:hover,
.checkout-button:hover, #place_order:hover, .csfl-btn-gold:hover {
	background: var(--brand-gold-dk) !important;
	border-color: var(--brand-gold-dk) !important;
	color: var(--brand-navy) !important;
}
.csfl-btn-ghost {
	background: transparent !important;
	border: 1px solid rgba(255,255,255,.5) !important;
	color: #fff !important;
}
.csfl-btn-ghost:hover { background: rgba(255,255,255,.1) !important; }

/* ---------- Top bar + header ---------- */
.csfl-topbar {
	background: var(--brand-navy);
	color: #fff;
	font-size: .8rem;
	font-weight: 500;
	text-align: center;
	padding: .5em 0;
}
.csfl-topbar__sep { margin: 0 .6em; opacity: .6; }

.site-header {
	background: #fff !important;
	border-bottom: 1px solid var(--brand-line);
	padding-top: 1.4em;
	margin-bottom: 0;
	color: var(--brand-ink);
}
.site-header .site-branding {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.2em;
}
.site-header .custom-logo-link img { height: 52px; max-height: none; width: auto; max-width: 100%; }
.csfl-store-label {
	font-family: var(--brand-head);
	color: var(--brand-muted);
	text-transform: uppercase;
	font-size: .72rem;
	letter-spacing: .22em;
	border-left: 1px solid rgba(255,255,255,.25);
	padding-left: 1rem;
	line-height: 1.3;
}
.storefront-primary-navigation { background: #fff !important; }
.main-navigation ul li a,
.site-header-cart .cart-contents,
.site-header .main-navigation ul.menu > li > a {
	color: var(--brand-navy) !important;
	font-family: var(--brand-head);
	font-weight: 600;
	font-size: .9rem;
}
.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a { color: var(--brand-gold) !important; }
.main-navigation ul.menu ul, .main-navigation ul.nav-menu ul { background: #fff !important; box-shadow: 0 8px 24px rgba(14,47,82,.12); }
.site-header-cart .widget_shopping_cart { background: #fff; color: var(--brand-ink); }
.site-header-cart .widget_shopping_cart a { color: var(--brand-navy); }
.site-header-cart .cart-contents .count { color: var(--brand-gold-dk); opacity: 1; }
.menu-toggle { color: var(--brand-navy) !important; border-color: var(--brand-line) !important; background: transparent !important; }
.menu-toggle::before, .menu-toggle::after, .menu-toggle span::before { background-color: var(--brand-navy) !important; }
.storefront-handheld-footer-bar ul li > a { background: var(--brand-navy); color: #fff; }
.storefront-handheld-footer-bar ul li.cart .count { background: var(--brand-gold); color: var(--brand-navy); border-color: var(--brand-navy); }

.storefront-breadcrumb { background: var(--brand-cream); margin-bottom: 2.5em; padding: .9em 0; }
.woocommerce-breadcrumb { font-size: .8rem; color: var(--brand-muted); }
.woocommerce-breadcrumb a { color: var(--brand-muted); }

/* ---------- Homepage ---------- */
.csfl-home .site-main { margin-bottom: 0; }
.home .storefront-breadcrumb, .home .site-content > .col-full > .woocommerce { display: none; }
.home .site-header, .home.page .site-header, .home.page:not(.page-template-template-homepage) .site-header { margin-bottom: 0 !important; }
.home .site-content > .col-full { max-width: none; padding: 0; margin: 0; }
.home .site-content > .col-full::before, .home .site-content > .col-full::after { display: none; }
.csfl-home > .site-main > section { --csfl-gutter: max(1.5rem, calc((100vw - 71.7347em) / 2 + 2.617924em)); padding-left: var(--csfl-gutter); padding-right: var(--csfl-gutter); }

.csfl-eyebrow {
	font-family: var(--brand-head);
	text-transform: uppercase;
	letter-spacing: .2em;
	font-size: .75rem;
	font-weight: 600;
	color: var(--brand-gold-dk);
	margin-bottom: .8em;
}
.csfl-hero .csfl-eyebrow { color: var(--brand-gold-lt); }
.csfl-hero {
	background:
		linear-gradient(110deg, rgba(14,47,82,.96) 0%, rgba(14,47,82,.86) 45%, rgba(14,47,82,.35) 100%),
		var(--csfl-hero, linear-gradient(135deg, #17406b 0%, #0e2f52 60%, #0a2240 100%));
	background-size: cover;
	background-position: center;
	color: #fff;
	padding-top: 6rem;
	padding-bottom: 6rem;
}
.csfl-hero__inner { max-width: 640px; }
.csfl-hero h1 {
	color: #fff;
	font-size: clamp(2rem, 4.4vw, 3.3rem);
	line-height: 1.1;
	font-weight: 700;
	margin-bottom: .5em;
}
.csfl-hero__lede { font-size: 1.1rem; font-weight: 300; color: rgba(255,255,255,.85); margin-bottom: 2em; }
.csfl-hero__ctas { display: flex; flex-wrap: wrap; gap: .8rem; }

.csfl-props {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	background: var(--brand-cream);
	border-bottom: 1px solid var(--brand-sand);
}
.csfl-prop { padding: 1.6rem 1.2rem; border-right: 1px solid var(--brand-sand); }
.csfl-prop:last-child { border-right: 0; }
.csfl-prop strong { display: block; font-family: var(--brand-head); color: var(--brand-navy); font-size: 1rem; margin-bottom: .2em; }
.csfl-prop span { font-size: .85rem; color: var(--brand-muted); }

.csfl-section { padding-top: 4rem; padding-bottom: 1rem; }
.csfl-section__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1.6rem; gap: 1rem; }
.csfl-section__head h2 { font-size: 1.7rem; margin: 0; }
.csfl-section__head a { font-family: var(--brand-head); font-weight: 600; font-size: .9rem; text-decoration: none; }

.csfl-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.2rem; }
.csfl-cat { display: flex; flex-direction: column; text-decoration: none; color: var(--brand-ink); }
.csfl-cat__img {
	aspect-ratio: 1 / 1;
	background: var(--brand-cream);
	border-radius: var(--brand-radius);
	overflow: hidden;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: .7rem;
}
.csfl-cat__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .3s ease; }
.csfl-cat:hover .csfl-cat__img img { transform: scale(1.04); }
.csfl-cat__name { font-family: var(--brand-head); font-weight: 600; color: var(--brand-navy); }
.csfl-cat__count { font-size: .8rem; color: var(--brand-muted); }

.csfl-story {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 4rem;
	align-items: center;
	background: var(--brand-navy);
	color: rgba(255,255,255,.85);
	padding-top: 5rem;
	padding-bottom: 5rem;
	margin-top: 4rem;
}
.csfl-story h2 { color: #fff; font-size: 2rem; }
.csfl-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 1.5rem; margin: 0; }
.csfl-stats dt { font-family: var(--brand-head); font-size: 1.9rem; font-weight: 700; color: var(--brand-gold-lt); line-height: 1; }
.csfl-stats dd { margin: .4em 0 0; font-size: .85rem; color: rgba(255,255,255,.75); }

.csfl-cta {
	display: flex; align-items: center; justify-content: space-between; gap: 2rem;
	background: var(--brand-cream);
	padding-top: 3rem; padding-bottom: 3rem;
}
.csfl-cta h2 { font-size: 1.4rem; margin-bottom: .3em; }
.csfl-cta p { margin: 0; max-width: 720px; color: var(--brand-muted); }
.csfl-cta .button { white-space: nowrap; }

/* ---------- Product grid ---------- */
ul.products li.product { text-align: left; }
ul.products li.product img {
	background: var(--brand-cream);
	border-radius: var(--brand-radius);
	aspect-ratio: 1 / 1;
	object-fit: contain;
	mix-blend-mode: multiply;
	margin-bottom: .8em;
}
ul.products li.product .woocommerce-loop-product__title { font-size: .95rem; font-weight: 600; margin-bottom: .2em; }
ul.products li.product .price { color: var(--brand-ink); font-weight: 500; font-size: .95rem; }
ul.products li.product .price .csfl-per { font-size: .78rem; color: var(--brand-muted); font-weight: 400; }
ul.products li.product .button { font-size: .8rem; padding: .6em 1.1em; }
ul.products li.product .csfl-badge { margin-bottom: .5em; }
.onsale { background: var(--brand-gold); color: var(--brand-navy); border: 0; border-radius: var(--brand-radius); font-weight: 600; }

.woocommerce-products-header__title, .page-title, .entry-title { font-size: 2rem; }
.term-description { color: var(--brand-muted); max-width: 760px; }

/* ---------- Badges (output by plugin) ---------- */
.csfl-badge {
	display: inline-flex; align-items: center; gap: .4em;
	font-size: .75rem; font-weight: 600; font-family: var(--brand-head);
	color: var(--brand-ok);
	background: #e8f1ec;
	padding: .25em .7em;
	border-radius: 999px;
}
.csfl-badge::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: currentColor; }
.csfl-badge--low { color: #8a5a00; background: #fbf1dc; }
.csfl-badge--out { color: var(--brand-muted); background: var(--brand-sand); }

/* ---------- Single product ---------- */
.single-product div.product .product_title { font-size: 2rem; margin-bottom: .3em; }
.single-product div.product p.price { color: var(--brand-navy); font-size: 1.5rem; font-weight: 600; }
.single-product div.product .woocommerce-product-gallery .flex-viewport,
.single-product div.product .woocommerce-product-gallery__image { background: var(--brand-cream); border-radius: var(--brand-radius); }
.single-product div.product .woocommerce-product-gallery img { mix-blend-mode: multiply; }
.single-product div.product form.cart { padding: 1.2em 0; border-top: 1px solid var(--brand-line); border-bottom: 1px solid var(--brand-line); }
.single-product div.product form.cart .quantity .qty { width: 5em; padding: .75em; }
.csfl-product-facts {
	list-style: none; margin: 1.4em 0; padding: 1.2em 1.4em;
	background: var(--brand-cream); border-radius: var(--brand-radius);
	font-size: .88rem;
}
.csfl-product-facts li { padding: .3em 0 .3em 1.6em; position: relative; }
.csfl-product-facts li::before { content: "✓"; position: absolute; left: 0; color: var(--brand-gold-dk); font-weight: 700; }
.csfl-min-note { font-size: .85rem; color: var(--brand-muted); margin: .6em 0 0; }
.csfl-quote-link { font-size: .88rem; margin-top: .8em; }
.woocommerce-tabs ul.tabs li a { font-family: var(--brand-head); font-weight: 600; }
.woocommerce-tabs ul.tabs li.active a { color: var(--brand-navy); }
table.shop_attributes th { font-family: var(--brand-head); font-weight: 600; color: var(--brand-navy); }
table.shop_attributes td, table.shop_attributes th { border-bottom: 1px solid var(--brand-line); }

/* ---------- Cart / checkout ---------- */
.woocommerce-message, .woocommerce-info { background: var(--brand-navy); border-left-color: var(--brand-gold); }
.woocommerce-error, .woocommerce-notice--error { background: #7b2a1e; }
.csfl-commercial-box {
	background: var(--brand-cream);
	border: 1px solid var(--brand-sand);
	border-left: 4px solid var(--brand-gold);
	padding: 1.2em 1.4em;
	margin: 1.5em 0;
	border-radius: var(--brand-radius);
}
.csfl-commercial-box h3 { font-size: 1rem; margin-bottom: .5em; }
.csfl-commercial-box label { font-weight: 500; }
.csfl-commercial-box .form-row { margin-bottom: .6em; }
#payment { background: var(--brand-cream); }
#payment .payment_methods > li { background: #fff; }

/* ---------- Footer ---------- */
.site-footer { background: var(--brand-navy) !important; color: rgba(255,255,255,.75) !important; padding: 3.5em 0 1.5em; }
.site-footer a { color: #fff !important; text-decoration: none; }
.site-footer a:hover { color: var(--brand-gold-lt) !important; }
.csfl-footer { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 2.5rem; margin-bottom: 2.5rem; }
.csfl-footer__brand img { max-width: 200px; height: auto; margin-bottom: 1em; }
.csfl-footer__brand p { font-size: .88rem; }
.csfl-footer h4 { color: var(--brand-gold-lt); font-size: .8rem; text-transform: uppercase; letter-spacing: .16em; margin-bottom: 1em; }
.csfl-footer ul { list-style: none; margin: 0; }
.csfl-footer li { font-size: .88rem; margin-bottom: .55em; }
.csfl-footer__legal { border-top: 1px solid rgba(255,255,255,.12); padding-top: 1.5em; font-size: .78rem; }

/* ---------- Pages ---------- */
.page:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) .entry-content { max-width: 780px; }
.page .entry-content h2 { font-size: 1.35rem; margin-top: 1.8em; }
.csfl-faq details { border-bottom: 1px solid var(--brand-line); padding: 1em 0; }
.csfl-faq summary { font-family: var(--brand-head); font-weight: 600; color: var(--brand-navy); cursor: pointer; }
.csfl-faq details p { margin: .8em 0 0; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.csfl-props { grid-template-columns: 1fr 1fr; }
	.csfl-prop:nth-child(2) { border-right: 0; }
	.csfl-prop:nth-child(-n+2) { border-bottom: 1px solid var(--brand-sand); }
	.csfl-story { grid-template-columns: 1fr; gap: 2.5rem; }
	.csfl-cta { flex-direction: column; align-items: flex-start; }
	.csfl-footer { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
	.csfl-topbar__sep, .csfl-topbar span:nth-child(n+3) { display: none; }
	.site-header .site-branding { margin-bottom: .6em; }
	.site-header .custom-logo-link img { height: 36px; }
	.csfl-store-label { font-size: .62rem; letter-spacing: .16em; }
	.csfl-hero { padding-top: 3.5rem; padding-bottom: 3.5rem; }
	.csfl-cats { grid-template-columns: 1fr 1fr; gap: .9rem; }
	.csfl-footer { grid-template-columns: 1fr; }
	.csfl-hero__ctas .button { width: 100%; text-align: center; }
}

/* ---------- Refinements ---------- */
.single-product div.product p.price .csfl-per { font-size: .9rem; font-weight: 400; color: var(--brand-muted); }
@media (max-width: 767px) {
	.site-main ul.products.columns-4 li.product,
	.site-main ul.products li.product { width: 47.5%; float: left; margin-right: 5%; clear: none; }
	.site-main ul.products li.product:nth-child(2n) { margin-right: 0; }
	.site-main ul.products li.product:nth-child(2n+1) { clear: both; }
	ul.products li.product .button { width: 100%; text-align: center; padding: .6em .4em; }
	.csfl-badge { font-size: .68rem; }
}
@media (min-width: 768px) {
	.site-header .site-branding { width: auto !important; max-width: 60%; }
}
.csfl-story .csfl-eyebrow { color: var(--brand-gold-lt); }
.csfl-topbar { border-bottom: 3px solid var(--brand-gold); }
.csfl-hero__lede strong { color: var(--brand-gold-lt); }

/* ---------- Volume pricing ---------- */
.csfl-tiers { margin: 0 0 1.2em; border: 1px solid var(--brand-line); border-radius: var(--brand-radius); overflow: hidden; }
.csfl-tiers__title { margin: 0; padding: .7em 1em; background: var(--brand-navy); color: #fff; font-family: var(--brand-head); font-weight: 600; font-size: .9rem; }
.csfl-tiers__title span { font-family: var(--brand-body); font-weight: 400; font-size: .78rem; color: rgba(255,255,255,.75); margin-left: .4em; }
.csfl-tiers table { margin: 0; width: 100%; font-size: .85rem; border-collapse: collapse; }
.csfl-tiers th, .csfl-tiers td { padding: .55em .5em; text-align: center; border-bottom: 1px solid var(--brand-line); background: #fff; }
.csfl-tiers th { font-family: var(--brand-head); font-weight: 600; color: var(--brand-muted); background: var(--brand-cream); }
.csfl-tiers th:first-child, .csfl-tiers td:first-child { text-align: left; padding-left: 1em; color: var(--brand-muted); font-weight: 500; }
.csfl-tiers td { font-weight: 600; color: var(--brand-navy); }
.csfl-tiers td.is-active { background: #fdf3dc; box-shadow: inset 0 -3px 0 var(--brand-gold); }
.csfl-tiers__live { margin: 0; padding: .6em 1em; font-size: .85rem; color: var(--brand-ink); background: var(--brand-cream); }
.csfl-tiers__live:empty { display: none; }
.csfl-aslow { font-size: .78rem; color: var(--brand-gold-dk); font-weight: 600; }
.csfl-vol-note { color: var(--brand-ok); font-weight: 600; }
.cart_item del { color: var(--brand-muted); font-weight: 400; }
@media (max-width: 600px) { .csfl-tiers table { font-size: .75rem; } .csfl-tiers th, .csfl-tiers td { padding: .45em .25em; } }
.csfl-custom-note { font-size: .85rem; background: #fdf3dc; border-left: 3px solid var(--brand-gold); padding: .7em 1em; margin: 0 0 1em; border-radius: var(--brand-radius); width: 100%; }
.csfl-badge--mto { color: #7a5200; background: #fdf0d2; }

/* Cart / checkout / account use the full content width (Storefront's align-wide caps page content at 780px). */
.woocommerce-cart .hentry .entry-content,
.woocommerce-checkout .hentry .entry-content,
.woocommerce-account .hentry .entry-content { max-width: none !important; }
.woocommerce-cart .hentry .entry-content > *,
.woocommerce-checkout .hentry .entry-content > *,
.woocommerce-account .hentry .entry-content > * { max-width: none !important; }
/* The commercial-use box sits in the order column, beside the billing details. */
@media (min-width: 768px) {
	.woocommerce-checkout .csfl-commercial-box { float: right; width: 41.1764705882%; margin-top: 0; clear: right; box-sizing: border-box; }
	.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { clear: right; }
}

/* ---------- Header v1.1: wider header, larger logo, product search ---------- */
.site-header > .col-full,
.site-header .storefront-primary-navigation > .col-full {
	max-width: 1340px;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	box-sizing: border-box;
}
.site-header > .col-full { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 2rem; }
.site-header > .col-full::before, .site-header > .col-full::after { display: none; }
.site-header > .col-full > .site-branding { float: none; margin: 0 0 1.1em 0 !important; width: auto !important; max-width: none; flex: 0 0 auto; }
.site-header .custom-logo-link img { height: 66px; }
.csfl-header-search { flex: 1 1 380px; max-width: 620px; margin: 0 0 1.1em auto; }
.csfl-search { display: flex; margin: 0; border: 2px solid var(--brand-navy, #0e2f52); border-radius: 999px; overflow: hidden; background: #fff; }
.csfl-search__field[type="search"] { flex: 1 1 auto; min-width: 0; border: 0 !important; box-shadow: none !important; background: transparent !important; padding: .72em 1.2em !important; font-size: .95rem; color: var(--brand-ink, #1d2733); outline: none; }
.csfl-search__btn { display: inline-flex; align-items: center; gap: .45em; border: 0; border-radius: 0; background: var(--brand-navy, #0e2f52) !important; color: #fff !important; padding: 0 1.3em; font-family: var(--brand-head, Montserrat, sans-serif); font-weight: 600; font-size: .85rem; letter-spacing: .04em; cursor: pointer; }
.csfl-search__btn:hover { background: var(--brand-gold, #c9a24a) !important; color: var(--brand-navy, #0e2f52) !important; }
.site-header .main-navigation ul.menu > li > a { padding-left: .85em; padding-right: .85em; }
@media (max-width: 767px) {
	.site-header > .col-full { padding-left: 1rem; padding-right: 1rem; gap: .6rem; }
	.site-header .custom-logo-link img { height: 44px; }
	.site-header > .col-full > .site-branding { margin-bottom: 0 !important; }
	.csfl-header-search { flex: 1 1 100%; max-width: none; margin: 0 0 .8em; }
	.csfl-search__btn span { display: none; }
	.csfl-search__btn { padding: 0 1em; }
}

/* ---------- Homepage v1.2: hero art, icons, warm sections, color strip, feature banners ---------- */
.csfl-hero { position: relative; overflow: hidden; }
.csfl-hero.has-cluster {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: 2rem;
	padding-top: 4rem; padding-bottom: 3.5rem;
	background:
		radial-gradient(ellipse 55% 70% at 78% 55%, rgba(232,173,46,.22) 0%, rgba(232,173,46,0) 70%),
		radial-gradient(ellipse 40% 50% at 70% 60%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 70%),
		linear-gradient(135deg, #17406b 0%, #0e2f52 55%, #0a2240 100%);
}
.csfl-hero__art { position: relative; }
.csfl-hero__art img { display: block; width: 100%; height: auto; max-width: 680px; margin-left: auto; border-radius: 14px; box-shadow: 0 24px 50px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.08); }
.csfl-hero.has-cluster::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: linear-gradient(90deg, #c63a36, #f06a2b, #f2d33c, #c9d43c, #2f7a9c, #8fc1f0); opacity: .9; }

.csfl-props { background: var(--brand-warm); }
.csfl-prop { display: flex; gap: .9rem; align-items: flex-start; }
.csfl-prop__icon { flex: 0 0 auto; color: var(--brand-gold-dk); background: #fff; border-radius: 50%; padding: 9px; width: 46px; height: 46px; box-shadow: 0 2px 8px rgba(14,47,82,.08); }

.csfl-section--warm { background: var(--brand-cream); padding-bottom: 4rem; }
.csfl-cats--3 { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.csfl-cats--4 { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.csfl-cat { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 1px 2px rgba(14,47,82,.05), 0 6px 18px rgba(14,47,82,.06); transition: transform .25s ease, box-shadow .25s ease; }
.csfl-cat:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(14,47,82,.06), 0 14px 30px rgba(14,47,82,.12); }
.csfl-cat__img { aspect-ratio: 4 / 3; border-radius: 0; margin: 0; background: #fff; }
.csfl-cat__img img { width: 82%; height: 88%; }
.csfl-cat__meta { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; padding: .9rem 1.1rem 1rem; border-top: 1px solid var(--brand-line); }
.csfl-cat__name { font-size: 1.05rem; }
.csfl-cat__count { white-space: nowrap; }
.csfl-cat:hover .csfl-cat__count { color: var(--brand-gold-dk); }

.csfl-section__head .csfl-eyebrow { margin-bottom: .35em; }
.csfl-colors-strip { padding-bottom: 3.5rem; }
.csfl-colors-strip__row { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: .8rem; }
.csfl-colorcard { display: flex; flex-direction: column; text-decoration: none; border-radius: 10px; overflow: hidden; background: #fff; border: 1px solid var(--brand-line); transition: transform .2s ease, box-shadow .2s ease; }
.csfl-colorcard::after { content: ""; display: block; height: 6px; margin: 0 8px 8px; border-radius: 999px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.14); }
.csfl-colorcard:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(14,47,82,.12); }
.csfl-colorcard__img { aspect-ratio: 3 / 4; display: flex; align-items: center; justify-content: center; background: #fff; }
.csfl-colorcard__img img { width: 100%; height: 100%; object-fit: contain; }
.csfl-colorcard__name { display: flex; align-items: center; justify-content: center; gap: .4em; padding: .55em .3em .6em; font-family: var(--brand-head); font-weight: 600; font-size: .8rem; color: var(--brand-navy); }
.csfl-colorcard__name i { width: 11px; height: 11px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0,0,0,.18); }

.csfl-features { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; padding-top: 1rem; padding-bottom: 1rem; }
.csfl-feature { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 380px; border-radius: 14px; overflow: hidden; text-decoration: none; padding: 2rem 2rem 0; transition: transform .25s ease, box-shadow .25s ease; }
.csfl-feature:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(14,47,82,.14); }
.csfl-feature--outdoor { background: var(--brand-sage); }
.csfl-feature--new { background: #f7efe0; }
.csfl-feature__text { display: flex; flex-direction: column; gap: .35rem; max-width: 30rem; position: relative; z-index: 1; }
.csfl-feature .csfl-eyebrow { margin: 0; }
.csfl-feature--outdoor .csfl-eyebrow { color: var(--brand-green); }
.csfl-feature strong { font-family: var(--brand-head); font-size: 1.55rem; line-height: 1.15; color: var(--brand-navy); }
.csfl-feature__sub { color: var(--brand-muted); font-size: .92rem; }
.csfl-feature__link { font-family: var(--brand-head); font-weight: 600; font-size: .9rem; color: var(--brand-navy); margin-top: .3rem; }
.csfl-feature:hover .csfl-feature__link { color: var(--brand-gold-dk); }
.csfl-feature img { display: block; width: 88%; height: auto; margin: 1.2rem auto 0; transition: transform .35s ease; }
.csfl-feature:hover img { transform: scale(1.03); }

/* Product cards: soft rounded photos */
ul.products li.product img, .csfl-thumb__alt { border-radius: 8px; }

@media (max-width: 1100px) {
	.csfl-colors-strip__row { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.csfl-hero.has-cluster { grid-template-columns: 1fr; padding-bottom: 2.5rem; }
	.csfl-hero__art img { max-width: 520px; margin: 0 auto; }
	.csfl-features { grid-template-columns: 1fr; }
	.csfl-cats--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.csfl-cats--3, .csfl-cats--4 { grid-template-columns: 1fr 1fr; gap: .9rem; }
	.csfl-cat__meta { flex-direction: column; gap: .1rem; padding: .7rem .8rem .8rem; }
	.csfl-colors-strip__row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 38%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
	.csfl-colorcard { scroll-snap-align: start; }
	.csfl-feature { min-height: 0; padding: 1.5rem 1.5rem 0; }
	.csfl-feature strong { font-size: 1.3rem; }
	.csfl-prop__icon { width: 40px; height: 40px; padding: 8px; }
}

/* ---------- Hero carousel (v1.2.1) ---------- */
.csfl-slider { position: relative; display: grid; background: #f6f2ec; overflow: hidden; }
.csfl-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s linear .7s; display: flex; }
.csfl-slide.is-active { opacity: 1; visibility: visible; transition: opacity .7s ease; z-index: 1; }
.csfl-slide > * { flex: 1 1 auto; }
.csfl-banner { display: block; line-height: 0; background: #f6f2ec; }
.csfl-banner img { display: block; width: 100%; height: 100%; max-height: 640px; object-fit: contain; object-position: center; margin: 0 auto; }
.csfl-slider .csfl-hero { --csfl-gutter: max(1.5rem, calc((100vw - 71.7347em) / 2 + 2.617924em)); padding-left: var(--csfl-gutter); padding-right: var(--csfl-gutter); padding-top: 3rem; padding-bottom: 3.5rem; }
.csfl-slider__arrow { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.85) !important; color: var(--brand-navy) !important; font-size: 1.7rem; line-height: 1; box-shadow: 0 2px 10px rgba(0,0,0,.15); opacity: 0; transition: opacity .2s ease; cursor: pointer; }
.csfl-slider:hover .csfl-slider__arrow, .csfl-slider__arrow:focus { opacity: 1; }
.csfl-slider__arrow--prev { left: 1rem; }
.csfl-slider__arrow--next { right: 1rem; }
.csfl-slider__dots { position: absolute; left: 0; right: 0; bottom: .9rem; z-index: 3; display: flex; justify-content: center; gap: .5rem; }
.csfl-slider__dots button { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 0; background: rgba(14,47,82,.28) !important; box-shadow: 0 0 0 2px rgba(255,255,255,.7); cursor: pointer; }
.csfl-slider__dots button.is-active { background: var(--brand-gold) !important; width: 26px; border-radius: 999px; }
@media (max-width: 900px) {
	.csfl-slider .csfl-hero { padding-top: 2.5rem; padding-bottom: 3rem; }
}
@media (max-width: 767px) {
	/* Phones: one randomly picked slide (chosen in front-page.php), no rotation. */
	.csfl-slider { display: block; }
	.csfl-slide { display: none; opacity: 1; visibility: visible; transition: none; }
	.csfl-slide.is-active { display: block; }
	.csfl-slider__arrow, .csfl-slider__dots { display: none; }
	.csfl-slider .csfl-hero__art { margin-top: .5rem; }
	.csfl-slider .csfl-hero__art img { max-width: 100%; }
}

.csfl-slider.is-instant .csfl-slide { transition: none !important; }

/* ---------- Hero photo slides (project photos) ---------- */
.csfl-photoslide { position: relative; display: flex; align-items: center; aspect-ratio: 2.4 / 1; max-height: 640px; width: 100%;
	background: linear-gradient(90deg, rgba(10,24,42,.86) 0%, rgba(10,24,42,.62) 34%, rgba(10,24,42,.10) 62%, rgba(10,24,42,0) 100%), var(--img) var(--pos, center) / cover no-repeat, #1b1b1b;
	color: #fff; --csfl-gutter: max(1.5rem, calc((100vw - 71.7347em) / 2 + 2.617924em)); padding: 2rem var(--csfl-gutter); box-sizing: border-box; }
.csfl-photoslide__inner { max-width: 520px; }
.csfl-photoslide .csfl-eyebrow { color: var(--brand-gold-lt); }
.csfl-photoslide h2 { color: #fff; font-size: clamp(1.9rem, 3.8vw, 3rem); line-height: 1.1; margin: 0 0 .45em; text-shadow: 0 2px 18px rgba(0,0,0,.25); }
.csfl-photoslide__lede { font-size: 1.05rem; font-weight: 300; color: rgba(255,255,255,.9); margin: 0 0 1.6em; }
.csfl-photoslide__credit { position: absolute; right: 1rem; bottom: .7rem; margin: 0; font-size: .72rem; letter-spacing: .04em; color: rgba(255,255,255,.85); background: rgba(0,0,0,.35); padding: .25em .7em; border-radius: 999px; }
@media (max-width: 767px) {
	.csfl-photoslide { aspect-ratio: auto; min-height: 440px; align-items: flex-end; padding: 2rem 1.25rem 3rem;
		background: linear-gradient(0deg, rgba(10,24,42,.9) 0%, rgba(10,24,42,.55) 45%, rgba(10,24,42,.05) 80%), var(--img) var(--pos, center) / cover no-repeat, #1b1b1b; }
	.csfl-photoslide .button { width: 100%; text-align: center; }
	.csfl-photoslide__credit { top: .7rem; bottom: auto; right: .7rem; }
}

/* Ready to ship: until the random pick runs, show only the first 16 */
.csfl-rts:not(.is-ready) ul.products li.product:nth-child(n+17) { display: none; }
/* ---------- Phones: compact sticky header (menu · logo · cart, search below) ---------- */
@media (max-width: 767px) {
	.csfl-topbar { font-size: .72rem; padding: .35em .5em; }
	.site-header { position: sticky !important; top: 0; z-index: 999; padding-top: .55rem !important; padding-bottom: 0 !important; margin-bottom: 0 !important; box-shadow: 0 2px 10px rgba(14,47,82,.08); }
	.admin-bar .site-header { top: 0; }
	.site-header > .col-full { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; padding: 0 .75rem !important; }
	.site-header > .col-full > .site-branding { margin: 0 !important; flex: 0 0 auto; }
	.site-header .custom-logo-link img { height: 34px !important; }
	.site-header > .col-full > .site-branding { padding: 0 48px; max-width: 100%; box-sizing: border-box; }
	.csfl-header-search { flex: 1 1 100%; margin: 0 0 .6rem !important; max-width: none; }
	.csfl-search__field[type="search"] { padding: .55em 1em !important; font-size: 16px; }
	.storefront-primary-navigation { position: static; background: transparent !important; }
	.storefront-primary-navigation > .col-full { padding: 0 !important; }
	/* Menu button: top-left, icon only */
	.main-navigation .menu-toggle { position: absolute; left: .6rem; top: .6rem; margin: 0 !important; width: 42px; height: 42px; padding: 0 !important; font-size: 0 !important; border: 1px solid var(--brand-line) !important; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
	.main-navigation .menu-toggle::before, .main-navigation .menu-toggle::after, .main-navigation .menu-toggle span::before { display: none !important; }
	.main-navigation .menu-toggle { background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e2f52' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center / 22px no-repeat !important; }
	.main-navigation.toggled .menu-toggle { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e2f52' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") !important; }
	.main-navigation.toggled .handheld-navigation { max-height: calc(100vh - 140px); overflow-y: auto; border-top: 1px solid var(--brand-line); margin: 0; padding-bottom: .5rem; }
	.main-navigation.toggled .handheld-navigation a { padding: .7em 1rem; font-size: 1rem; }
	/* Cart: top-right icon with count */
	.site-header #site-header-cart { position: absolute; right: .6rem; top: .6rem; display: block !important; width: auto; margin: 0; }
	.site-header #site-header-cart .widget_shopping_cart { display: none !important; }
	.site-header #site-header-cart .cart-contents { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0 !important; border: 1px solid var(--brand-line); border-radius: 8px; font-size: 0; position: relative; }
	.site-header #site-header-cart .cart-contents::after { display: none !important; }
	.site-header #site-header-cart .cart-contents { background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e2f52' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11.2a1.5 1.5 0 001.5 1.2h8.7a1.5 1.5 0 001.5-1.1L21 8H6.2'/%3E%3Ccircle cx='9.5' cy='20' r='1.3'/%3E%3Ccircle cx='17' cy='20' r='1.3'/%3E%3C/svg%3E") center / 22px no-repeat; }
	.site-header #site-header-cart .cart-contents .amount { display: none; }
	.site-header #site-header-cart .cart-contents .count { position: absolute; top: -6px; right: -6px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: var(--brand-gold); color: var(--brand-navy) !important; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; opacity: 1; }
	/* The bottom bar duplicated search and cart */
	.storefront-handheld-footer-bar { display: none !important; }
	body { padding-bottom: 0 !important; }
	.storefront-breadcrumb { margin-bottom: 1.2em; }
}

/* ---------- Desktop: sticky header that slims down on scroll ---------- */
@media (min-width: 768px) {
	.site-header { position: sticky !important; top: 0; z-index: 999; transition: box-shadow .2s ease; }
	.admin-bar .site-header { top: 32px; }
	.site-header .custom-logo-link img, .site-header > .col-full > .site-branding, .csfl-header-search { transition: height .2s ease, margin .2s ease; }
	.site-header.is-scrolled { box-shadow: 0 4px 16px rgba(14,47,82,.10); padding-top: .5em !important; }
	.site-header.is-scrolled .custom-logo-link img { height: 42px; }
	.site-header.is-scrolled > .col-full > .site-branding, .site-header.is-scrolled .csfl-header-search { margin-bottom: .5em !important; }
	.site-header.is-scrolled .main-navigation ul.menu > li > a { padding-top: .7em; padding-bottom: .7em; }
}
@media (max-width: 782px) and (min-width: 768px) { .admin-bar .site-header { top: 46px; } }
/* Storefront's overflow-x:hidden on the page wrapper blocks position:sticky; clip does the same job without breaking it. */
#page, .site { overflow-x: clip !important; overflow-y: visible !important; }

/* Product photos sit on pure white (they're shot on white; the cream tint made them look beige). */
ul.products li.product img, .csfl-thumb__alt, .single-product div.product .woocommerce-product-gallery .flex-viewport, .single-product div.product .woocommerce-product-gallery__image, .csfl-colorcard__img, .csfl-cat__img { background: #fff !important; }
ul.products li.product img { outline: 1px solid var(--brand-line); outline-offset: -1px; }
.csfl-cat__img img { width: 100% !important; height: 100% !important; object-fit: contain; }

/* Focus rings: none after mouse/tap clicks, a brand-colored ring only for keyboard navigation. */
a:focus:not(:focus-visible), button:focus:not(:focus-visible), input[type="radio"]:focus:not(:focus-visible), [tabindex]:focus:not(:focus-visible) { outline: none !important; box-shadow: none; }
a:focus-visible, button:focus-visible, .button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--brand-navy) !important; outline-offset: 2px; }
ul.products li.product a { -webkit-tap-highlight-color: transparent; }

/* Mini-cart dropdown buttons: keep text white (the widget link colour rule above was turning it navy on navy) */
.site-header-cart .widget_shopping_cart .buttons a.button,
.site-header-cart .widget_shopping_cart .buttons a.button:hover,
.site-header-cart .widget_shopping_cart .buttons a.button:focus {
	color: #fff;
}
