/* KWSS-2.1 hub layout (product_tag hubs). */
.kwss-hub .woocommerce-products-header { margin-bottom: 2rem; }

.kwss-hub .woocommerce-products-header__title, .kwss-hub__header h1, .kwss-hub__header .page-title { margin-bottom: .75rem !important; }
.kwss-hub__intro { max-width: 46em; font-size: var(--kwss-fs-lead); margin-left: auto; margin-right: auto; }
.kwss-hub__intro p:last-child { margin-bottom: 0; }
.kwss-hub__intro { line-height: 1.55; }
.kwss-trust-strip--hub { max-width: 46rem; margin: 1.5rem auto 0; padding: 1rem 0 0; border-top: 1px solid var(--kwss-line, rgba(15,42,68,.14)); display: flex; flex-wrap: wrap; justify-content: center; gap: .625rem 2.5rem; list-style: none; font-size: var(--kwss-fs-base); line-height: 1.4; }
.kwss-trust-strip--hub li { line-height: 1.4; }
.kwss-hub__header { text-align: center; }
.kwss-hub__header .page-title, .kwss-hub__header h1, .kwss-hub__header .woocommerce-products-header__title { text-align: center !important; margin-left: auto; margin-right: auto; }
.kwss-hub__header .kwss-hub__intro { text-align: center; }
.kwss-trust-strip--hub li { margin: 0; padding: 0 0 0 22px; }
.kwss-hub-section { margin: 0 0 3rem; }
.kwss-hub-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1em; border-bottom: 1px solid rgba(0,0,0,.08); margin-bottom: 1.5rem; padding-bottom: .5rem; }
.kwss-hub-section__head h2 { margin: 0; font-size: var(--kwss-fs-h3); }
.kwss-hub-section__more { white-space: nowrap; font-size: var(--kwss-fs-sm); text-decoration: none; }
.kwss-hub-section__more:hover { text-decoration: underline; }
.kwss-hub-section ul.products { margin-bottom: 0; }
.kwss-hub__all-title { font-size: var(--kwss-fs-h3); margin: 0 0 1.5rem; border-bottom: 1px solid rgba(0,0,0,.08); padding-bottom: .65rem; }
.kwss-hub__copy { max-width: 46em; margin: 3rem 0 0; }
.kwss-hub__copy h2 { font-size: var(--kwss-fs-h3); margin-top: 1.6em; }
.kwss-hub__copy h3 { font-size: var(--kwss-fs-lead); }
.kwss-hub-related { margin: 2rem 0 0; }
.kwss-hub-related h2 { font-size: var(--kwss-fs-h3); }
.kwss-hub-related ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5em .75em; }
.kwss-hub-related li { margin: 0; }
.kwss-hub-related a { display: inline-block; padding: .45em .9em; font-size: var(--kwss-fs-sm); border: 1px solid rgba(0,0,0,.15); border-radius: 999px; text-decoration: none; }
.kwss-hub-related a:hover { border-color: currentColor; }
.kwss-hub-related__count { color: var(--kwss-muted, #4a5561); font-size: var(--kwss-fs-sm); }
@media (max-width: 767px) { .kwss-hub-section__head { flex-direction: column; gap: .25em; } }
/* KWSS-4.2 guide CTA + 4.1 story */
.kwss-cta { margin: 3rem 0 0; padding: 1.5rem; border: 1px solid var(--kwss-line, rgba(15,42,68,.14)); border-radius: 8px; background: #fff; }
.kwss-cta__head { display: grid; grid-template-columns: 1fr auto; grid-template-areas: 'title button' 'text button'; align-items: center; column-gap: 1.5rem; row-gap: .25rem; margin-bottom: 1.5rem; }
.kwss-cta__head h2 { grid-area: title; margin: 0; font-size: var(--kwss-fs-h3); }
.kwss-cta__head p { grid-area: text; margin: 0; color: var(--kwss-muted, #4a5561); }
.kwss-cta__head .button { grid-area: button; white-space: nowrap; }
.kwss-cta ul.products { margin-bottom: 0; }
@media (max-width: 767px) { .kwss-cta { padding: 1rem; } .kwss-cta__head { grid-template-columns: 1fr; grid-template-areas: 'title' 'text' 'button'; } }
/* Guides: text column stays 46em, the CTA spans the full content width. */
.kwss-guide .entry-content > :not(.kwss-cta), .kwss-story__body > * { max-width: 46em; }
.kwss-guide .entry-header { margin-bottom: 1.5rem !important; padding-bottom: 1rem !important; }
.kwss-guide .entry-header .entry-title { margin-bottom: 0; }
.kwss-guide .entry-content h2, .kwss-story__body h2 { font-size: var(--kwss-fs-h3); margin-top: 2rem; }
.kwss-story__hero { margin: 0 0 2rem; }
.kwss-story__hero img { width: 100%; height: auto; border-radius: 8px; }
/* KWSS-4.2 guide index */
.kwss-guides { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.5rem; margin: 0 0 1.5rem; }
.kwss-guide-card { display: flex; flex-direction: column; }
.kwss-guide-card__img img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; margin-bottom: .875rem; }
.kwss-guide-card__title { font-size: var(--kwss-fs-h3); margin: 0 0 .5rem; }
.kwss-guide-card__title a { text-decoration: none; color: var(--kwss-navy, #0f2a44); }
.kwss-guide-card__excerpt { margin: 0 0 .75rem; color: var(--kwss-text, #1f2a33); }
.kwss-guide-card__more { margin-top: auto; text-decoration: none; font-weight: 600; }
@media (max-width: 1023px) { .kwss-guides { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .kwss-guides { grid-template-columns: 1fr; } }

/* KWSS-4.banners — photo banner behind the H1 on hubs, categories and collections.
   Full-bleed inside Storefront's container; the photo stays at full brightness
   with a light navy scrim for the title (same recipe as the homepage hero). */
body.kwss-has-banner { overflow-x: clip; }
.kwss-banner { position: relative; width: 100vw; margin: 0 0 1rem calc(50% - 50vw); min-height: clamp(280px, 42vh, 520px); display: flex; align-items: center; justify-content: center; overflow: hidden; background: var(--kwss-navy, #0f2a44); }
.kwss-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; } /* waist-up banners: faces + graphics; per-page override via kwss_banner_focus term/post meta (hats = 8) */
.kwss-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,68,.04) 0%, rgba(15,42,68,.16) 55%, rgba(15,42,68,.24) 100%); } /* barely-there scrim; the title's shadow does the legibility work */
.kwss-banner__inner { position: relative; z-index: 1; width: 100%; max-width: 66.4989378333em; margin: 0 auto; padding: 2rem 2.617em; text-align: center; }
.kwss-hub__header .kwss-banner__title, .kwss-banner__title { color: #fff !important; margin: 0; text-shadow: 0 2px 8px rgba(10,25,40,.7), 0 0 28px rgba(10,25,40,.5); }
@media (max-width: 767px) { .kwss-banner { min-height: 240px; margin-bottom: 1.25rem; } .kwss-banner__inner { padding: 1.5rem 20px; } }

/* Breadcrumb under the banner, centred above the intro */
.kwss-banner__crumbs { text-align: center; margin: 0 0 1.25rem; }
.kwss-banner__crumbs .storefront-breadcrumb, .kwss-banner__crumbs .woocommerce-breadcrumb { margin: 0 auto !important; padding: 0 !important; text-align: center; }
.kwss-banner__crumbs .col-full { padding: 0; margin: 0 auto; }

/* YITH filter bar inside the drawer: plain labelled dropdowns, not heading-styled buttons */
.kwss-filters__body .yith-wcan-filters .yith-wcan-filter .filter-title,
.kwss-filters__body .yith-wcan-filters.horizontal:not(.filters-modal) .yith-wcan-filter .filter-title {
	background: #fff !important; color: var(--kwss-navy) !important; font-family: 'Roboto', sans-serif !important; font-size: var(--kwss-fs-base) !important; font-weight: 600 !important;
	text-transform: none !important; letter-spacing: 0 !important; line-height: 1.3 !important; padding: .6rem 2.25rem .6rem .875rem !important; margin: 0 !important;
	border: 1px solid rgba(15,42,68,.3) !important; border-radius: 4px !important; box-shadow: none !important; min-width: 12rem;
}
.kwss-filters__body .yith-wcan-filters .yith-wcan-filter .filter-title::after { color: var(--kwss-turq) !important; right: .875rem !important; }
.kwss-filters__body .yith-wcan-filters.horizontal .filters-container { display: flex; flex-wrap: wrap; gap: .75rem 1rem; padding: 0; margin: 0; }
.kwss-filters__body .yith-wcan-filters.horizontal .yith-wcan-filter { margin: 0 !important; padding: 0 !important; }
.kwss-filters__body .yith-wcan-filters .filter-content { border: 1px solid rgba(15,42,68,.2); border-radius: 4px; margin-top: .25rem; }
.kwss-filters__body .yith-wcan-filters .filter-item a, .kwss-filters__body .yith-wcan-filters .filter-item label { font-size: var(--kwss-fs-base); }
@media (max-width: 600px) { .kwss-filters__body .yith-wcan-filters .yith-wcan-filter .filter-title { min-width: 0; width: 100%; } }
.kwss-filters__body .yith-wcan-filters, .kwss-filters__body .yith-wcan-filters.horizontal { background: transparent !important; padding: 0 !important; margin: 0 !important; min-height: 0 !important; box-shadow: none !important; border: 0 !important; }
.kwss-filters__body { padding: .25rem 1rem 1rem; }
/* centre the filter controls in the drawer */
.kwss-filters__body .yith-wcan-filters.horizontal .filters-container { justify-content: center; }
.kwss-filters__body .yith-wcan-filters.horizontal .filters-container > form { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 1rem; width: 100%; margin: 0; }
.kwss-filters__body { padding: .5rem 1rem 1.25rem; text-align: center; }
.kwss-filters > summary { text-align: center; }

/* KWSS-4.textpages — long-form pages (legal, FAQ, size guide, wholesale, story) on desktop:
   a measured column, a real title block, and comfortable vertical rhythm. */
.kwss-textpage .entry-header { max-width: 46rem; margin: 0 auto; padding-bottom: 1.25rem; border-bottom: 1px solid var(--kwss-line, rgba(15,42,68,.14)); }
.kwss-textpage .entry-header .entry-title { margin: 0; }
.kwss-textpage .entry-content { max-width: 46rem; margin: 1.75rem auto 0; font-size: var(--kwss-fs-base); line-height: 1.7; }
.kwss-textpage .entry-content > p { margin: 0 0 1.15em; }
.kwss-textpage .entry-content > p:first-of-type { font-size: var(--kwss-fs-lead); line-height: 1.6; color: var(--kwss-text); }
.kwss-textpage .entry-content h2 { font-size: var(--kwss-fs-h2); margin: 2.25rem 0 .6em; padding-top: 1.5rem; border-top: 1px solid var(--kwss-line, rgba(15,42,68,.14)); }
.kwss-textpage .entry-content h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.kwss-textpage .entry-content h3 { font-size: var(--kwss-fs-h3); margin: 1.75rem 0 .5em; }
.kwss-textpage .entry-content ul, .kwss-textpage .entry-content ol { margin: 0 0 1.15em 1.25em; padding: 0; }
.kwss-textpage .entry-content li { margin: 0 0 .5em; line-height: 1.65; }
.kwss-textpage .entry-content li > strong:first-child { color: var(--kwss-navy); }
.kwss-textpage .entry-content a { text-decoration: underline; text-underline-offset: .12em; }
.kwss-textpage .entry-content > p:last-child { margin-bottom: 0; }
/* schema FAQ blocks read as a Q&A list, not a wall */
.kwss-textpage .schema-faq-section { padding: 1.15em 0; border-bottom: 1px solid var(--kwss-line, rgba(15,42,68,.14)); }
.kwss-textpage .schema-faq-section:last-child { border-bottom: 0; }
.kwss-textpage .schema-faq-question { display: block; font-family: 'Fjalla One', sans-serif; font-size: var(--kwss-fs-h3); font-weight: 400; letter-spacing: .3px; color: var(--kwss-navy); margin-bottom: .4em; }
.kwss-textpage .schema-faq-answer { margin: 0; }
/* tables (size guide) keep their own full width inside the column */
.kwss-textpage .kwss-size-table { max-width: 100%; }
.kwss-textpage .wp-block-columns { gap: 2rem; }
@media (max-width: 767px) { .kwss-textpage .entry-content { font-size: var(--kwss-fs-base); line-height: 1.65; } .kwss-textpage .entry-content h2 { margin-top: 1.75rem; } }

/* Active-filter banner above the grid */
.kwss-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .625rem; margin: 0 0 1.25rem; padding: .75rem 1rem; background: var(--kwss-sand, #e8dcc4); border-radius: 6px; font-size: var(--kwss-fs-base); line-height: 1.4; }
.kwss-active-filters__label { font-weight: 600; color: var(--kwss-navy); }
.kwss-active-filters__chip { display: inline-block; padding: .2em .7em; background: #fff; border: 1px solid rgba(15,42,68,.18); border-radius: 999px; color: var(--kwss-navy); }
.kwss-active-filters__clear { margin-left: auto; color: var(--kwss-navy); text-decoration: underline; text-underline-offset: .15em; }
.kwss-active-filters__clear:hover { color: var(--kwss-coral, #c9431f); }
@media (max-width: 600px) { .kwss-active-filters__clear { margin-left: 0; } }
