/* Editorial category entry points; product samples retain their original colours. */
.home-page #fabrics { background:var(--dark); color:#fff; }
.application-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; width:100%; }
.application-card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-width:0; aspect-ratio:1.65; padding:clamp(20px,2.2vw,40px); overflow:hidden; background:#1b2621; }
.application-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.application-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0005,#000b); }
.application-card:hover>img { transform:scale(1.035); }
.application-card.fabric-tilt { perspective:1000px; overflow:visible; background:transparent; isolation:isolate; user-select:none; }
.application-card.fabric-tilt::after { display:none; }
.fabric-tilt-surface { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:inherit; background:#1b2621; transform-style:preserve-3d; box-shadow:0 8px 18px #0003; transition:box-shadow .35s; pointer-events:none; }
.fabric-tilt-surface>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.fabric-tilt-surface::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,#0005,#000b); transform:translateZ(1px); opacity:1; transition:opacity .35s ease; }
@media(hover:hover) and (pointer:fine) {
  .fabric-tilt:hover .fabric-tilt-surface::after { opacity:0; }
}
.fabric-tilt-surface .application-card-copy { transform:translateZ(30px); text-shadow:0 3px 14px #0009; }
.fabric-tilt-glare { position:absolute; inset:0; background:radial-gradient(ellipse at var(--glare-x,50%) var(--glare-y,50%),#ffffff26,transparent 65%); opacity:0; transform:translateZ(2px); transition:opacity .35s; }
.fabric-tilt.is-tilting { z-index:2; }
.is-tilting .fabric-tilt-surface { box-shadow:0 22px 38px #0008; }
.is-tilting .fabric-tilt-glare { opacity:1; }
.fabric-tilt:focus-visible { outline:2px solid var(--button-accent); outline-offset:6px; }
@media(prefers-reduced-motion:reduce), (hover:none) {
  .fabric-tilt-surface,.fabric-tilt-surface::after,.fabric-tilt-glare { transition:none; }
  .fabric-tilt-surface .application-card-copy { transform:none; }
}
.application-card-copy { position:relative; z-index:1; }
.application-card h3 { margin:6px 0 0; font-size:clamp(24px,2.3vw,40px); line-height:1.15; font-weight:700; text-wrap:balance; }
.category-en { color:#d5d5d5; font-size:12px; line-height:1.5; font-weight:400; letter-spacing:.04em; }
:lang(en) .category-en { display:none; }
.application-card.beyond-card { background:#253e35; color:#fff; }
.beyond-card::after { display:none; }
.beyond-corner { position:absolute; top:20px; right:24px; font-size:23px; font-weight:300; }
.beyond-card h3 { margin:0 0 14px; font-size:clamp(27px,2.7vw,48px); line-height:1.15; }
.beyond-card p { margin:0 0 15px; font-size:clamp(12px,1vw,17px); line-height:1.6; color:#ccd6d0; }
.beyond-card .explore-more { font-size:clamp(12px,1vw,17px); font-weight:700; }
.catalog-page { background:var(--dark); color:#f5f5f5; }
.catalog-main { padding:36px var(--padding) 80px; min-height:var(--screen-height); }
.catalog-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:44px; color:#aaa; font-size:12px; line-height:1.6; }
.catalog-breadcrumb a:hover { color:var(--button-accent); }
.catalog-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:42px; }
.catalog-heading h1 { margin:0; font-size:clamp(34px,4vw,68px); line-height:1.15; font-weight:700; }
#catalog-result-count { margin:0; color:#aaa; font-size:16px; }
.catalog-layout { display:grid; grid-template-columns:clamp(245px,21vw,320px) minmax(0,1fr); gap:clamp(32px,4vw,72px); }
.catalog-filter-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.catalog-filter-heading h2 { margin:0; font-size:20px; font-weight:700; }
.filter-group { border-top:1px solid #fff3; padding:19px 0; }
.filter-group>summary { cursor:pointer; font-size:15px; font-weight:700; list-style-position:outside; margin-left:16px; }
.filter-choices { display:flex; flex-direction:column; gap:12px; margin-top:22px; }
.filter-option { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.5; color:#ccc; cursor:pointer; overflow-wrap:anywhere; }
.filter-option input { accent-color:var(--button-accent); flex-shrink:0; width:15px; height:15px; margin:2px 0 0; }
.filter-option:has(input:checked) { color:#fff; }
.filter-child { padding-left:21px; }
.filter-empty { font-size:12px; color:#888; margin:0; line-height:1.6; }
.weight-filter { margin:0; padding:22px 0; border:0; border-top:1px solid #fff3; }
.weight-filter legend { padding:0; float:left; width:100%; font-size:15px; font-weight:700; margin-bottom:18px; }
.weight-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; clear:both; }
.weight-inputs label { display:flex; flex-direction:column; gap:9px; font-size:12px; color:#aaa; }
.weight-control { clear:both; }
.weight-range { padding:0 10px; margin-bottom:22px; }
.weight-track { position:relative; height:72px; touch-action:none; cursor:ew-resize; }
.weight-bars { position:absolute; inset:0 0 12px; pointer-events:none; }
.weight-bar { position:absolute; bottom:12px; width:var(--bar-width,4px); height:12px; margin-left:calc(var(--bar-width,4px) / -2); background:#343438; border-radius:2px; transition:height .3s ease,transform .3s ease,background .15s; transform-origin:center bottom; }
.weight-bar.selected { background:#f5f5f5; }
.weight-track::before,.weight-rail { content:""; position:absolute; top:57px; height:2px; background:#343438; pointer-events:none; }
.weight-track::before { left:0; right:0; }
.weight-rail { background:var(--button-accent); }
.weight-handle { position:absolute; top:36px; width:28px; height:44px; transform:translateX(-50%); border:0; padding:0; background:transparent; cursor:ew-resize; touch-action:none; z-index:1; }
.weight-handle::after { content:""; position:absolute; left:9px; top:14px; width:10px; height:16px; border-radius:3px; background:#f5f5f5; border:2px solid #101010; box-shadow:0 0 0 1px #777; }
.weight-handle:hover::after,.weight-handle:focus-visible::after { background:var(--button-accent); box-shadow:0 0 0 3px #ed174830; }
.weight-handle:focus-visible { outline:1px solid var(--button-accent); outline-offset:1px; border-radius:5px; z-index:2; }
.weight-scale { display:flex; justify-content:space-between; color:#888; font-size:11px; font-variant-numeric:tabular-nums; }
.weight-scale small { font-size:10px; }
.weight-inputs { gap:12px; }
.weight-inputs label { gap:8px; font-size:11px; letter-spacing:.04em; }
.weight-number { display:flex; align-items:center; min-width:0; padding:0 10px; border:1px solid #ffffff28; border-radius:7px; background:#1c1c1e; transition:border-color .2s,background .2s; }
.weight-number:focus-within { border-color:var(--button-accent); background:#222224; }
.weight-inputs input { min-width:0; flex:1; width:0; color:#fff; padding:12px 0; border:0; outline:0; background:transparent; font-family:inherit; font-size:18px; font-variant-numeric:tabular-nums; appearance:textfield; }
.weight-inputs input::-webkit-inner-spin-button,.weight-inputs input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.weight-unit { color:#888; font-size:10px; letter-spacing:0; padding-left:4px; }
@media(prefers-reduced-motion:reduce) { .weight-bar { transition:none; } }
.filter-actions { display:flex; flex-direction:column; align-items:stretch; gap:16px; padding-top:10px; }
.filter-actions .button { min-width:0; min-height:46px; font-size:13px; }
.catalog-reset { padding:9px 0; border:0; background:transparent; color:#aaa; text-decoration:underline; text-underline-offset:4px; font-size:13px; }
.catalog-products { min-width:0; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 22px; }
.product-card { display:block; min-width:0; }
.product-card-image { display:flex; align-items:center; justify-content:center; aspect-ratio:1; overflow:hidden; background:#1c1c1c; border:1px solid #ffffff0d; }
.product-card-image img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.product-card:hover img { transform:scale(1.03); }
.product-card h2 { margin:18px 0 8px; font-size:clamp(17px,1.4vw,24px); line-height:1.35; font-weight:700; overflow-wrap:anywhere; }
.product-card:hover h2 { color:var(--button-accent); }
.product-code { margin:0; color:#aaa; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.no-product-image { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:80px; padding:24px; color:#7d7d7d; font-size:13px; text-align:center; }
.catalog-message { margin:20px 0; color:#ccc; font-size:18px; line-height:1.8; }
.catalog-retry { background:transparent; border:1px solid #777; color:#fff; padding:12px 22px; margin:10px 0 24px; font-size:14px; }
.catalog-retry:disabled { opacity:.4; cursor:wait; }
.catalog-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:24px; margin-top:48px; font-size:14px; }
.catalog-pagination button { background:transparent; border:1px solid #666; color:#fff; padding:12px 18px; font-size:14px; }
.catalog-pagination button:disabled { opacity:.3; cursor:default; }
.catalog-pagination button:hover:enabled { border-color:var(--button-accent); color:var(--button-accent); }
#filter-toggle { display:none; border:1px solid #777; background:transparent; color:#fff; padding:11px 18px; font-size:14px; }
.product-heading { margin:0 0 34px; }
.product-heading .product-code { margin-bottom:14px; }
.product-heading h1 { margin:0; max-width:1100px; font-size:clamp(32px,3.6vw,60px); line-height:1.2; font-weight:700; overflow-wrap:anywhere; }
.product-detail-page .catalog-main { width:100%; max-width:1680px; margin-inline:auto; padding-top:28px; }
.product-detail-page .catalog-breadcrumb { margin-bottom:28px; }
#back-to-fabrics { display:inline-flex; align-items:center; gap:10px; min-height:36px; font-size:13px; color:#a5a5a5; transition:color .2s; }
#back-to-fabrics::before { content:"←"; font-size:18px; line-height:1; }
#back-to-fabrics:hover { color:#fff; }
#back-to-fabrics:focus-visible { outline:1px solid var(--button-accent); outline-offset:5px; }
.product-detail-page .product-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px 48px; margin:0 0 28px; padding-bottom:24px; border-bottom:1px solid #ffffff21; }
.product-detail-page .product-heading h1 { max-width:100%; font-size:clamp(26px,2.4vw,42px); line-height:1.3; font-weight:600; letter-spacing:-.02em; text-wrap:pretty; }
.product-identity { display:flex; flex-direction:column; align-items:flex-end; gap:8px; max-width:340px; }
.product-identity-label { color:#777; font-size:11px; line-height:1.5; letter-spacing:.07em; }
.product-identity-value { color:#bbb; font-size:14px; line-height:1.5; letter-spacing:.025em; overflow-wrap:anywhere; }
@media(max-width:760px) {
  .product-detail-page .catalog-main { padding-top:18px; }
  .product-detail-page .catalog-breadcrumb { margin-bottom:20px; }
  .product-detail-page .product-heading { grid-template-columns:minmax(0,1fr); gap:16px; padding-bottom:20px; margin-bottom:24px; }
  .product-identity { flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:6px 12px; max-width:none; }
  .product-identity-value { font-size:13px; }
}
.product-gallery { display:grid; grid-template-columns:minmax(0,1fr) 104px; gap:24px; max-width:1500px; margin:0 auto; }
.product-gallery.single-image { grid-template-columns:1fr; }
.product-main-image { display:flex; align-items:center; justify-content:center; height:clamp(300px,64vh,780px); background:#191919; }
.product-main-image img { display:block; width:100%; height:100%; object-fit:contain; }
.product-thumbnails { display:flex; flex-direction:column; gap:14px; max-height:clamp(300px,64vh,780px); overflow-y:auto; padding:2px; }
.product-thumbnails button { position:relative; padding:0; border:2px solid #333; background:#1c1c1c; aspect-ratio:1; width:100%; flex-shrink:0; overflow:hidden; }
.product-thumbnails button[aria-pressed="true"] { border-color:var(--button-accent); }
.product-thumbnails img { display:block; width:100%; height:100%; object-fit:cover; }
.product-information { margin:72px auto 0; max-width:1500px; }
.product-information h2 { margin:0 0 30px; font-size:clamp(28px,2.6vw,40px); font-weight:700; }
.product-information dl { margin:0; }
.product-information-row { display:grid; grid-template-columns:220px minmax(0,1fr); gap:28px; padding:23px 0; border-top:1px solid #fff2; font-size:clamp(16px,1.5vw,22px); line-height:1.8; }
.product-information dt { font-weight:700; }
.product-information dd { margin:0; color:#ccc; white-space:pre-wrap; overflow-wrap:anywhere; }
.product-applications-row { align-items:start; }
.application-icon-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(116px,144px)); gap:28px 24px; list-style:none; margin:0; padding:0; white-space:normal; }
.application-icon-item { display:flex; flex-direction:column; align-items:center; gap:12px; min-width:0; text-align:center; padding:2px 4px; }
.application-icon-item img { display:block; width:96px; height:96px; flex-shrink:0; }
.application-icon-name { color:#d0d0d0; font-size:13px; line-height:1.6; font-weight:400; overflow-wrap:anywhere; }
@media(max-width:440px) { .application-icon-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; } }
.navigation-drawer.textile-drawer { width:min(920px,100%); }
.application-navigation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 64px; }
.application-navigation-group h3 { margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid #ffffff88; font-size:21px; line-height:1.4; font-weight:700; }
.application-navigation-group ul { display:flex; flex-direction:column; gap:10px; list-style:none; margin:0; padding:0 0 24px; border-bottom:1px solid #ffffff44; }
.application-navigation-group li { font-size:19px; line-height:1.5; font-weight:300; }
.application-navigation-group a { display:block; }
.application-navigation-group a:hover { color:var(--button-accent); }
.application-navigation>.all-fabrics-link { grid-column:1 / -1; font-size:16px; }
.application-navigation>.catalog-message { grid-column:1 / -1; }
@media(max-width:1100px) { .catalog-layout { grid-template-columns:220px minmax(0,1fr); gap:30px; } .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
  .application-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-layout { grid-template-columns:1fr; }
  #filter-toggle { display:block; }
  #catalog-filters { display:none; }
  #catalog-filters.filters-open { display:block; padding:24px; background:#181818; }
  .catalog-main { padding-top:26px; }
  .catalog-heading { margin-bottom:30px; }
  .catalog-breadcrumb { margin-bottom:32px; }
  .product-information-row { grid-template-columns:1fr; gap:8px; }
  .product-gallery { grid-template-columns:minmax(0,1fr) 70px; gap:14px; }
  .product-main-image { height:clamp(260px,55vh,560px); }
  .product-thumbnails { max-height:clamp(260px,55vh,560px); }
  .application-navigation { gap:32px; }
  .application-navigation-group h3 { font-size:18px; }
  .application-navigation-group li { font-size:16px; }
}
@media(max-width:440px) {
  .application-grid { grid-template-columns:1fr; gap:16px; }
  .application-card { aspect-ratio:1.5; padding:26px; }
  .application-card h3 { font-size:30px; }
  .beyond-card h3 { font-size:36px; }
  .beyond-card p,.beyond-card .explore-more { font-size:14px; }
  .product-grid { gap:28px 14px; }
  .product-card h2 { font-size:16px; }
  .product-code { font-size:11px; }
  .no-product-image { font-size:11px; padding:12px; }
  .catalog-pagination { gap:13px; }
  .product-gallery { grid-template-columns:minmax(0,1fr) 54px; gap:10px; }
  .product-thumbnails { gap:10px; }
  .application-navigation { grid-template-columns:1fr; }
}
