/* Category layout based on the supplied canopy reference. */
.archive-reference { padding-top: 0; background: #fff; }
.archive-reference .archive-hero { position: relative; padding-top: 1px; margin-bottom: 22px; }
.archive-reference .archive-hero-image { background-position: right top; background-size: auto 340px; background-repeat: no-repeat; min-height: 300px; }
.archive-reference .archive-hero-image::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#fff 30%,rgba(255,255,255,.97) 44%,rgba(255,255,255,.65) 57%,transparent 76%); pointer-events: none; }
.archive-reference .breadcrumbs, .archive-reference .term-card { position: relative; }
.archive-reference .breadcrumbs { font-size: 13px; margin: 20px 0 36px; }
.archive-reference .term-card { padding: 0; border-radius: 0; background: transparent; }
.archive-reference .term-desc { max-height: 196px; max-width: 760px; }
.archive-reference .term-desc::after { height: 22px; }
.archive-reference .term-desc h1 { color: #102b20; font-size: 36px; line-height: 1.22; font-weight: 700; margin: 0 0 22px; }
.archive-reference .term-desc p, .archive-reference .term-desc li { color: #656b79; font-size: 14px; line-height: 1.65; }
.archive-reference .term-desc em { font-style: normal; }
.archive-reference .term-desc h2 { font-size: 23px; }
.archive-reference .term-desc h3 { font-size: 19px; }
.archive-reference .term-card.is-open .term-desc { max-height: none; }
.archive-reference .collapse-more { max-width: 760px; padding: 12px 0 16px; }
.archive-reference .btn-more { background: #eaf7ed; color: #075b32; border: 0; border-radius: 6px; min-width: 134px; padding: 10px 20px; font-size: 14px; font-weight: 600; }
.archive-reference .shop-layout { grid-template-columns: 280px minmax(0,1fr); gap: 26px; }
.archive-reference .shop-main { min-width: 0; }
.archive-reference .shop-sidebar { border: 1px solid #efefef; box-shadow: 0 3px 16px rgba(0,0,0,.045); border-radius: 11px; padding: 23px 18px; }
.archive-reference .widget-title { display: flex; gap: 13px; align-items: center; font-size: 18px; font-weight: 700; margin-bottom: 28px; text-transform: none; }
.archive-reference .widget_price_filter .widget-title::before { content: ''; width: 18px; height: 18px; flex: none; background: #176d46; clip-path: polygon(0 0,100% 0,65% 44%,65% 100%,35% 80%,35% 44%); }
.archive-price-caption { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 13px; margin-bottom: 22px; }
.archive-price-output { background: #eaf7ed; color: #12653d; border-radius: 4px; padding: 6px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.archive-reference .widget_price_filter .price_slider { margin: 0 9px 24px; background: #dcece1; height: 5px; }
.archive-reference .widget_price_filter .ui-slider-range, .archive-reference .widget_price_filter .ui-slider-handle { background: #176d46; }
.archive-reference .widget_price_filter .ui-slider-handle { width: 17px; height: 17px; top: -6px; }
.archive-reference .widget_price_filter .ui-slider-handle:focus-visible { outline: 3px solid #a8cfb6; outline-offset: 3px; }
.archive-reference .widget_price_filter .price_slider_amount { display: block; }
.archive-price-inputs { display: grid; grid-template-columns: minmax(0,1fr) 18px minmax(0,1fr); gap: 9px; align-items: center; margin-bottom: 18px; }
.archive-price-inputs > span { color: #818792; text-align: center; }
.archive-price-inputs input { width: 100%; min-width: 0; border: 1px solid #e0e4e9; border-radius: 5px; background: #fff; height: 41px; padding: 8px; font-size: 13px; color: #343a44; }
.archive-reference .widget_price_filter .button { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 46px; background: #176d46; color: #fff; border: 0; border-radius: 7px; font-weight: 600; font-size: 14px; }
.archive-reference .widget_price_filter .button:hover { background: #0b5431; }
.archive-reference .price_label { display: none !important; }
.archive-price-reset { display: block; text-align: center; margin-top: 12px; font-size: 13px; }
.archive-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 12px 0 24px; }
.archive-reference .shop-heading { margin: 0; font-size: 25px; line-height: 1.3; color: #121b16; font-weight: 700; }
.archive-order { display: flex; align-items: center; gap: 12px; flex: none; color: #6d7280; font-size: 13px; }
.archive-order form { margin: 0; }
.archive-order select { width: 146px; border: 1px solid #e0e4e9; background: #fff; border-radius: 7px; height: 36px; padding: 0 10px; font-size: 13px; color: #343a44; }
.archive-reference .products-grid { gap: 18px 16px; }
.archive-reference .product-card { border: 1px solid #ededed; border-radius: 11px; box-shadow: 0 3px 12px rgba(0,0,0,.045); }
.archive-reference .pc-img { height: auto; aspect-ratio: 1.19; }
.archive-reference .pc-body { padding: 12px 14px 15px; }
.archive-reference .pc-title { font-size: 15px; line-height: 21px; font-weight: 400; margin-bottom: 10px; }
.archive-reference .price { color: #ff1019; font-weight: 700; font-size: 16px; }
.pc-favorite { position: absolute; top: 11px; right: 11px; width: 33px; height: 33px; border: 0; border-radius: 50%; background: #fff; color: #333; box-shadow: 0 1px 8px #0002; display: grid; place-items: center; cursor: pointer; z-index: 2; }
.pc-favorite[aria-pressed='true'] { color: #176d46; }
.pc-favorite[aria-pressed='true'] svg { fill: #176d46; }
.pc-favorite:focus-visible { outline: 3px solid #176d46; outline-offset: 2px; }
@media (min-width: 850px) and (max-width: 1199px) {
 .archive-reference .shop-layout { grid-template-columns: 240px minmax(0,1fr); gap: 20px; }
 .archive-reference .products-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .archive-reference .term-desc, .archive-reference .collapse-more { max-width: 65%; }
 .archive-reference .term-desc h1 { font-size: 30px; }
 .archive-toolbar { flex-wrap: wrap; }
}
@media (max-width: 849px) {
 .archive-reference .archive-hero-image { background-size: auto 280px; }
 .archive-reference .archive-hero-image::before { background: rgba(255,255,255,.88); }
 .archive-reference .breadcrumbs { margin: 16px 0 24px; font-size: 12px; }
 .archive-reference .term-desc { max-height: 208px; }
 .archive-reference .term-desc h1 { font-size: 27px; margin-bottom: 16px; }
 .archive-reference .shop-layout { grid-template-columns: minmax(0,1fr); gap: 20px; }
 .archive-reference .shop-sidebar { display: block; padding: 18px; }
 .archive-reference .widget-title { margin-bottom: 18px; }
 .archive-price-caption { margin-bottom: 18px; }
 .archive-toolbar { flex-wrap: wrap; margin: 0 0 18px; gap: 14px; }
 .archive-reference .shop-heading { font-size: 22px; }
 .archive-order { justify-content: space-between; width: 100%; }
 .archive-order select { width: 190px; }
 .archive-reference .products-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 10px; }
 .archive-reference .pc-body { padding: 10px; }
 .archive-reference .pc-title { font-size: 14px; line-height: 20px; }
 .archive-reference .price { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .archive-reference .pc-img img, .archive-reference .collapse-body { transition: none; } }
/* WooCommerce hides its price inputs during slider setup; these remain editable. */
.archive-reference .archive-price-inputs input { display: block !important; }

.archive-reference .term-desc { max-height: var(--archive-intro-height, 220px); }
.archive-reference .term-desc::after { display: none; }
.archive-reference .btn-more { display: inline-flex; align-items: center; justify-content: center; gap: 12px; }

/* Mô tả danh mục ngắn gọn, luôn hiển thị đủ */
.archive-reference .term-desc { max-height: none; }
.archive-reference .term-desc h1 { margin-bottom: 14px; }
.archive-reference .shop-layout:not(:has(.shop-sidebar)) { grid-template-columns: minmax(0,1fr); }
