/* Product Material Library: editorial grid with keyboard-accessible inline details. */
.post-type-archive-product { background: var(--fc-archive-page-bg, #f4f7f6); }
.fc-library { background: var(--fc-archive-page-bg, #f4f7f6); color: var(--fc-archive-body-color, #17201e); min-width: 0; overflow: clip; }
.fc-library *,
.fc-library *::before,
.fc-library *::after { box-sizing: border-box; }
.fc-library-container { margin-inline: auto; max-width: var(--fc-site-content, 1280px); padding-inline: 32px; width: 100%; }

.fc-library-intro { background: var(--fc-archive-intro-bg, #eef3f1); }
.fc-library-intro .fc-library-container { padding-bottom: var(--fc-archive-intro-padding-d, 76px); padding-top: calc(var(--fc-header-height, 82px) + var(--fc-archive-intro-padding-d, 76px)); }
.fc-library-intro__eyebrow { color: var(--fc-archive-accent-color, #718b85); font-size: 12px; font-weight: 650; letter-spacing: .2em; margin: 0 0 18px; text-transform: uppercase; }
.fc-library-intro h1 { color: var(--fc-archive-heading-color, #17201e); font-family: var(--fc-serif); font-size: var(--fc-archive-h1-d, 54px); font-weight: 500; letter-spacing: -.04em; line-height: 1.08; margin: 0; }
.fc-library-intro__text { color: var(--fc-archive-muted-color, #6f7a77); font-size: var(--fc-archive-intro-font-d, 18px); line-height: 1.72; margin: 24px 0 0; max-width: 720px; overflow-wrap: anywhere; }

.fc-library-results { padding-block: var(--fc-archive-grid-padding-d, 64px); }
.fc-library-layout { align-items: start; display: grid; gap: 48px; grid-template-columns: minmax(220px, 232px) minmax(0, 1fr); overflow: visible; }
.fc-library-results__main,
.fc-library-grid { min-width: 0; overflow: visible; }
.fc-library-sidebar__sticky { position: sticky; top: calc(var(--fc-header-compact, 68px) + 20px); }
.admin-bar .fc-library-sidebar__sticky { top: calc(var(--fc-header-compact, 68px) + 52px); }
.fc-library-sidebar__eyebrow { color: var(--fc-archive-muted-color, #6f7a77); font-size: 12px; font-weight: 650; letter-spacing: .14em; margin: 0 0 16px; text-transform: uppercase; }
.fc-library-sidebar__nav { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); }
.fc-library-sidebar__item { align-items: center; border-bottom: 1px solid var(--fc-archive-border-color, #d9e1df); color: var(--fc-archive-muted-color, #6f7a77); display: flex; font-size: var(--fc-archive-nav-font-d, 15px); gap: 12px; justify-content: space-between; min-height: 48px; padding: 8px 0; text-decoration: none; transition: border-color .24s ease, color .24s ease, padding .24s ease; }
.fc-library-sidebar__item small { color: inherit; font-size: .78em; opacity: .72; }
.fc-library-sidebar__item:hover,
.fc-library-sidebar__item:focus-visible,
.fc-library-sidebar__item[aria-current="page"] { color: var(--fc-archive-heading-color, #17201e); }
.fc-library-sidebar__item[aria-current="page"] { border-bottom-color: var(--fc-archive-accent-color, #718b85); font-weight: 650; padding-left: 10px; position: relative; }
.fc-library-sidebar__item[aria-current="page"]::before { background: var(--fc-archive-accent-color, #718b85); content: ""; height: 22px; left: 0; position: absolute; width: 2px; }
.fc-library-mobile-categories { display: none; }

.fc-library-toolbar { align-items: start; border-bottom: 1px solid var(--fc-archive-border-color, #d9e1df); display: block; margin-bottom: 32px; min-height: 68px; padding-bottom: 18px; position: relative; }
.fc-library-toolbar__label { color: var(--fc-archive-heading-color, #17201e); font-size: 13px; font-weight: 650; letter-spacing: .13em; margin: 0 0 4px; text-transform: uppercase; }
.fc-library-toolbar__count { color: var(--fc-archive-muted-color, #6f7a77); font-size: 14px; line-height: 1.45; margin: 0; }
.fc-library-filter { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); margin-top: 30px; min-width: 0; }
.fc-library-filter summary { align-items: center; color: var(--fc-archive-heading-color, #17201e); cursor: pointer; display: flex; font-size: 14px; font-weight: 650; gap: 13px; justify-content: space-between; list-style: none; min-height: 48px; padding: 0; position: relative; width: 100%; }
.fc-library-filter summary::-webkit-details-marker,
.fc-library-mobile-categories summary::-webkit-details-marker { display: none; }
.fc-library-filter summary span,
.fc-library-mobile-categories summary span { display: block; height: 12px; position: relative; width: 12px; }
.fc-library-filter summary span::before,
.fc-library-filter summary span::after,
.fc-library-mobile-categories summary span::before,
.fc-library-mobile-categories summary span::after { background: currentColor; content: ""; inset: 50% 0 auto; height: 1px; position: absolute; transition: transform .24s ease; }
.fc-library-filter summary span::after,
.fc-library-mobile-categories summary span::after { transform: rotate(90deg); }
.fc-library-filter[open] summary span::after,
.fc-library-mobile-categories[open] summary span::after { transform: rotate(0); }
.fc-library-filter__panel { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); padding-top: 18px; width: 100%; }
.fc-library-filter form { display: grid; gap: 17px; grid-template-columns: minmax(0, 1fr); }
.fc-library-filter fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.fc-library-filter legend { color: var(--fc-archive-muted-color, #6f7a77); font-size: 12px; font-weight: 550; letter-spacing: .07em; margin: 0 0 8px; text-transform: uppercase; }
.fc-library-filter select { appearance: none; background: transparent linear-gradient(45deg, transparent 50%, currentColor 50%) calc(100% - 14px) 50% / 5px 5px no-repeat; border: 0; border-bottom: 1px solid var(--fc-archive-border-color, #d9e1df); border-radius: 0; box-shadow: none; color: var(--fc-archive-body-color, #17201e); font-size: 16px; min-height: 46px; padding: 8px 28px 8px 0; width: 100%; }
.fc-library-filter select:focus { border-bottom-color: var(--fc-archive-accent-color, #718b85); box-shadow: none; outline: 0; }
.fc-library-filter select:focus-visible { outline: 2px solid var(--fc-archive-accent-color, #718b85); outline-offset: 3px; }
.fc-library-filter__actions { align-items: stretch; display: flex; flex-direction: column; gap: 10px; }
.fc-library-filter__actions button,
.fc-library-button { align-items: center; background: var(--fc-archive-cta-bg, #263a35); border: 1px solid var(--fc-archive-cta-bg, #263a35); border-radius: 2px; box-shadow: none; color: var(--fc-archive-cta-color, #fff); display: inline-flex; font-size: 14px; font-weight: 650; justify-content: center; min-height: 48px; padding: 11px 24px; text-decoration: none; transition: background-color .24s ease, border-color .24s ease, color .24s ease; }
.fc-library-filter__actions button:hover,
.fc-library-filter__actions button:focus-visible,
.fc-library-button:hover,
.fc-library-button:focus-visible { background: var(--fc-archive-heading-color, #17201e); border-color: var(--fc-archive-heading-color, #17201e); color: #fff; }
.fc-library-filter__actions a,
.fc-library-text-link { border-bottom: 1px solid currentColor; color: var(--fc-archive-heading-color, #17201e); font-size: 14px; padding-bottom: 3px; text-decoration: none; }
.fc-library-filter__actions a { align-self: flex-start; min-height: 38px; padding-top: 8px; }

.fc-library-grid { align-items: start; display: grid; gap: 32px 26px; grid-template-columns: repeat(3, minmax(0, 1fr)); position: relative; }
.fc-library-card { background: var(--fc-card-product-bg, var(--fc-archive-card-bg, #fff)); border: 1px solid var(--fc-archive-border-color, #d9e1df); border-radius: 4px; display: flex; flex-direction: column; min-width: 0; overflow: visible; position: relative; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.fc-library-card__media { aspect-ratio: var(--fc-archive-image-ratio, 4 / 5); background: #e7ecea; display: block; overflow: hidden; position: relative; }
.fc-library-card__image { display: block; height: 100%; inset: 0; object-fit: cover; object-position: var(--fc-archive-default-focus, center); position: absolute; transition: opacity .26s ease, transform .26s cubic-bezier(.22,.61,.36,1); width: 100%; }
.fc-library-card__image--front { opacity: 1; }
.fc-library-card__image--back { opacity: 0; }
.fc-library-card__image--center { object-position: center; }
.fc-library-card__image--top { object-position: center top; }
.fc-library-card__image--bottom { object-position: center bottom; }
.fc-library-card__image--left { object-position: left center; }
.fc-library-card__image--right { object-position: right center; }
.fc-library-card__image--left-top { object-position: left top; }
.fc-library-card__image--right-top { object-position: right top; }
.fc-library-card__image--left-bottom { object-position: left bottom; }
.fc-library-card__image--right-bottom { object-position: right bottom; }
.fc-library-card__placeholder { align-items: center; color: var(--fc-archive-muted-color, #6f7a77); display: flex; flex-direction: column; gap: 18px; height: 100%; justify-content: center; padding: 24px; text-align: center; }
.fc-library-card__placeholder > span,
.fc-library-card__back-placeholder > span { border-block: 1px solid var(--fc-archive-border-color, #d9e1df); display: block; height: 22px; opacity: .9; width: 52px; }
.fc-library-card__placeholder small,
.fc-library-card__back-placeholder small { font-size: 11px; letter-spacing: .14em; }
.fc-library-card__body { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 154px; padding: 18px 18px 17px; }
.fc-library-card__code { color: var(--fc-archive-accent-color, #718b85); font-size: 11px; font-weight: 650; letter-spacing: .11em; margin-bottom: 8px; text-transform: uppercase; }
.fc-library-card__title { color: var(--fc-archive-heading-color, #17201e); font-family: var(--fc-serif); font-size: var(--fc-archive-name-font-d, 24px); font-weight: 500; letter-spacing: -.02em; line-height: 1.3; margin: 0; overflow-wrap: anywhere; }
.fc-library-card__texture { color: var(--fc-archive-muted-color, #6f7a77); font-size: var(--fc-archive-param-font-d, 15px); line-height: 1.45; margin-top: 9px; overflow-wrap: anywhere; }
.fc-library-card__color { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); color: var(--fc-archive-muted-color, #6f7a77); font-size: 12px; letter-spacing: .045em; margin-top: auto; padding-top: 13px; text-transform: none; }
.fc-library-card__color--custom::before { background: var(--fc-archive-accent-color, #718b85); content: ""; display: inline-block; height: 1px; margin-right: 8px; vertical-align: middle; width: 24px; }
.fc-library-card__view { align-items: center; appearance: none; background: transparent; border: 0; border-radius: 0; color: var(--fc-archive-heading-color, #17201e); cursor: pointer; display: flex; font: inherit; font-size: 12px; font-weight: 600; gap: 8px; justify-content: space-between; margin: 8px 0 -8px; min-height: 44px; padding: 8px 0; text-align: left; width: 100%; }
.fc-library-card__view span:last-child { font-size: 18px; font-weight: 400; line-height: 1; transition: transform .25s cubic-bezier(.22,.61,.36,1); }
.fc-library-card__view:hover { color: var(--fc-archive-accent-color, #718b85); }
.fc-library-card__view:focus-visible { outline: 2px solid var(--fc-archive-accent-color, #718b85); outline-offset: 3px; }
.fc-library-card:focus-visible { outline: 2px solid var(--fc-archive-accent-color, #718b85); outline-offset: 3px; }
.fc-library-card__preview { display: none; }
.fc-library-card__details-label { color: var(--fc-archive-accent-color, #718b85); font-size: 11px; font-weight: 650; letter-spacing: .12em; margin: 0 0 8px; text-transform: uppercase; }
.fc-library-card__details-title { color: var(--fc-archive-heading-color, #17201e); font-family: var(--fc-serif); font-size: 24px; font-weight: 500; line-height: 1.25; margin: 0 0 14px; overflow-wrap: anywhere; }
.fc-library-card__specs { margin: 0; }
.fc-library-card__specs > div { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); display: grid; gap: 10px; grid-template-columns: 72px minmax(0, 1fr); padding: 9px 0; }
.fc-library-card__specs dt { color: var(--fc-archive-muted-color, #6f7a77); font-size: 12px; }
.fc-library-card__specs dd { color: var(--fc-archive-heading-color, #17201e); font-size: 14px; line-height: 1.55; margin: 0; overflow-wrap: anywhere; }
.fc-library-mobile-details { background: var(--fc-archive-card-bg, #fff); border: 1px solid var(--fc-archive-border-color, #d9e1df); border-radius: 4px; box-shadow: 0 14px 30px rgba(23,32,30,.07); grid-column: 1 / -1; min-width: 0; opacity: 0; position: relative; transform: translateY(-6px); transition: opacity .24s ease, transform .24s ease; }
.fc-library-mobile-details[hidden] { display: none; }
.fc-library-mobile-details.is-open { opacity: 1; transform: translateY(0); }
.fc-library-mobile-details__close { align-items: center; appearance: none; background: transparent; border: 0; color: var(--fc-archive-muted-color, #6f7a77); cursor: pointer; display: flex; font: inherit; font-size: 12px; gap: 8px; justify-content: flex-end; margin-left: auto; min-height: 44px; padding: 8px 18px; }
.fc-library-mobile-details__close:hover { color: var(--fc-archive-heading-color, #17201e); }
.fc-library-mobile-details__close:focus-visible { outline: 2px solid var(--fc-archive-accent-color, #718b85); outline-offset: -3px; }
.fc-library-mobile-details__close span:last-child { font-size: 20px; line-height: 1; }
.fc-library-mobile-details__content { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); min-width: 0; padding: 18px; }

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.fc-library-card__view { display: none; }
	.fc-library-card__preview { background: var(--fc-archive-card-bg, #fff); border: 1px solid var(--fc-archive-border-color, #d9e1df); border-radius: 4px; box-shadow: 0 18px 38px rgba(23,32,30,.12); color: inherit; display: block; left: calc(100% + 14px); opacity: 0; pointer-events: none; position: absolute; text-decoration: none; top: -1px; transform: translateY(8px); transition: opacity .24s ease, transform .24s ease; visibility: hidden; width: min(410px, 34vw); z-index: 8; }
	.fc-library-card__preview-content { min-width: 0; padding: 22px 22px 24px; }
	.fc-library-card:hover,
	.fc-library-card:focus-within { border-color: var(--fc-archive-accent-color, #718b85); box-shadow: 0 16px 30px rgba(23,32,30,.08); transform: translateY(-6px); z-index: 10; }
	.fc-library-card:hover .fc-library-card__image,
	.fc-library-card:focus-within .fc-library-card__image { transform: scale(1.025); }
	.fc-library-card.has-back-image:hover .fc-library-card__image--front,
	.fc-library-card.has-back-image:focus-within .fc-library-card__image--front { opacity: 0; }
	.fc-library-card.has-back-image:hover .fc-library-card__image--back,
	.fc-library-card.has-back-image:focus-within .fc-library-card__image--back { opacity: 1; }
	.fc-library-card.is-preview-open .fc-library-card__preview { opacity: 1; transform: translateY(0); visibility: visible; }
	.fc-library-card.is-preview-left .fc-library-card__preview { left: auto; right: calc(100% + 14px); }
}

.fc-library-pagination { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 48px; }
.fc-library-pagination .page-numbers { align-items: center; border: 1px solid transparent; border-radius: 0; color: var(--fc-archive-muted-color, #6f7a77); display: inline-flex; height: 44px; justify-content: center; min-width: 44px; padding: 6px; text-decoration: none; }
.fc-library-pagination .page-numbers:hover,
.fc-library-pagination .page-numbers:focus-visible { border-color: var(--fc-archive-border-color, #d9e1df); color: var(--fc-archive-heading-color, #17201e); }
.fc-library-pagination .current { border-bottom-color: var(--fc-archive-accent-color, #718b85); color: var(--fc-archive-heading-color, #17201e); }
.fc-library-empty { border-block: 1px solid var(--fc-archive-border-color, #d9e1df); padding-block: 72px; text-align: center; }
.fc-library-empty > p { color: var(--fc-archive-heading-color, #17201e); font-family: var(--fc-serif); font-size: 28px; margin: 0 0 28px; }
.fc-library-empty > div { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; justify-content: center; }

.fc-library-cta { background: var(--fc-archive-cta-bg, #263a35); color: var(--fc-archive-cta-color, #fff); }
.fc-library-cta__inner { align-items: center; display: flex; gap: 48px; justify-content: space-between; padding-bottom: var(--fc-archive-cta-padding-d, 64px); padding-top: var(--fc-archive-cta-padding-d, 64px); }
.fc-library-cta h2 { color: inherit; font-family: var(--fc-serif); font-size: var(--fc-archive-cta-title-d, 34px); font-weight: 500; letter-spacing: -.025em; line-height: 1.2; margin: 0; }
.fc-library-cta p { color: inherit; font-size: 16px; line-height: 1.7; margin: 14px 0 0; max-width: 700px; opacity: .7; }
.fc-library-cta__button { align-items: center; border: 1px solid currentColor; border-radius: 2px; color: inherit; display: inline-flex; flex: 0 0 auto; font-size: 14px; font-weight: 650; gap: 13px; justify-content: center; min-height: 50px; padding: 12px 24px; text-decoration: none; transition: background-color .24s ease, color .24s ease; }
.fc-library-cta__button:hover,
.fc-library-cta__button:focus-visible { background: var(--fc-archive-cta-color, #fff); color: var(--fc-archive-cta-bg, #263a35); }

@media (max-width: 1199px) {
	.fc-library-layout { gap: 36px; grid-template-columns: minmax(210px, 224px) minmax(0, 1fr); }
	.fc-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
	.fc-library-container { padding-inline: 24px; }
	.fc-library-layout { gap: 28px; grid-template-columns: minmax(190px, 208px) minmax(0, 1fr); }
	.fc-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.fc-library-container { padding-inline: 16px; }
	.fc-library-intro .fc-library-container { padding-bottom: var(--fc-archive-intro-padding-m, 52px); padding-top: calc(var(--fc-header-mobile-height, 58px) + var(--fc-archive-intro-padding-m, 52px)); }
	.fc-library-intro__eyebrow { margin-bottom: 14px; }
	.fc-library-intro h1 { font-size: var(--fc-archive-h1-m, 38px); }
	.fc-library-intro__text { font-size: var(--fc-archive-intro-font-m, 16px); line-height: 1.7; margin-top: 18px; }
	.fc-library-results { padding-block: var(--fc-archive-grid-padding-m, 48px); }
	.fc-library-layout { display: block; }
	.fc-library-sidebar { margin-bottom: 28px; }
	.fc-library-sidebar__sticky { position: static; }
	.fc-library-sidebar__eyebrow,
	.fc-library-sidebar__nav { display: none; }
	.fc-library-mobile-categories { border-block: 1px solid var(--fc-archive-border-color, #d9e1df); display: block; }
	.fc-library-mobile-categories summary { align-items: center; color: var(--fc-archive-heading-color, #17201e); cursor: pointer; display: flex; font-size: var(--fc-archive-nav-font-m, 14px); font-weight: 650; justify-content: space-between; min-height: 52px; list-style: none; }
	.fc-library-mobile-categories nav { border-top: 1px solid var(--fc-archive-border-color, #d9e1df); padding: 4px 0; }
	.fc-library-mobile-categories .fc-library-sidebar__item { min-height: 44px; }
	.fc-library-filter { margin-top: 18px; }
	.fc-library-toolbar { margin-bottom: 24px; }
	.fc-library-filter form { grid-template-columns: minmax(0, 1fr); }
	.fc-library-filter__actions { align-items: stretch; flex-direction: column; gap: 16px; }
	.fc-library-filter__actions button { min-height: 48px; width: 100%; }
	.fc-library-filter__actions a { align-self: center; min-height: 44px; padding-top: 11px; }
	.fc-library-grid { gap: 18px 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fc-library-card__body { min-height: 136px; padding: 15px 13px 14px; }
	.fc-library-card__title { font-size: var(--fc-archive-name-font-m, 20px); }
	.fc-library-card__texture { font-size: var(--fc-archive-param-font-m, 14px); }
	.fc-library-card__color { font-size: 11px; padding-top: 10px; }
	.fc-library-card__view { font-size: 11px; margin-top: 6px; }
	.fc-library-card__specs > div { display: block; padding: 8px 0; }
	.fc-library-card__specs dt { margin-bottom: 3px; }
	.fc-library-card__details-title { font-size: 22px; }
	.fc-library-mobile-details__content { padding: 16px; }
	.fc-library-pagination { margin-top: 42px; }
	.fc-library-empty { padding-block: 56px; }
	.fc-library-empty > p { font-size: 24px; }
	.fc-library-cta__inner { align-items: stretch; flex-direction: column; gap: 28px; padding-bottom: var(--fc-archive-cta-padding-m, 48px); padding-top: var(--fc-archive-cta-padding-m, 48px); }
	.fc-library-cta h2 { font-size: var(--fc-archive-cta-title-m, 28px); }
	.fc-library-cta__button { align-self: flex-start; min-height: 50px; }
}

@media (max-width: 359px) {
	.fc-library-card__body { padding-inline: 11px; }
	.fc-library-card__title { font-size: 18px; }
	.fc-library-card__texture { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
	.fc-library *,
	.fc-library *::before,
	.fc-library *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
	.fc-library-card:hover,
	.fc-library-card:focus-within,
	.fc-library-card:hover .fc-library-card__image,
	.fc-library-card:focus-within .fc-library-card__image { transform: none; }
}
