/* Manufacturer catalogue layout. All imagery keeps its native aspect ratio. */
.catalog-page { background:#fff; color:#181818; }
.catalog-page .shell { width:min(1320px,calc(100% - 64px)); }
.catalog-masthead { padding:40px 0 34px; background:linear-gradient(115deg,#eeeeef,#fafafa); border-bottom:1px solid #dededf; border-top:4px solid var(--totachi-red); }
.catalog-masthead h1 { margin:15px 0 0; max-width:1150px; font-size:clamp(25px,3vw,44px); line-height:1.17; letter-spacing:-.04em; text-transform:uppercase; }
.catalog-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; font-size:10px; font-weight:500; color:#626266; }
.catalog-breadcrumbs a:hover { color:var(--totachi-red); }
.catalog-layout { display:grid; grid-template-columns:258px minmax(0,1fr); gap:44px; align-items:start; padding-top:44px; padding-bottom:90px; }
.catalog-layout > aside { position:sticky; top:calc(var(--header-height) + 20px); }
.catalog-main { min-width:0; }
.catalog-sidebar { background:#f3f3f4; border:1px solid #dededf; }
.catalog-sidebar__title { margin:0; padding:22px 20px; color:#fff; background:var(--totachi-red); clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%); font-size:13px; line-height:1.3; font-weight:700; }
.catalog-sidebar__category { display:flex; align-items:center; gap:12px; min-height:74px; padding:14px; border-bottom:1px solid #dededf; font-size:10px; line-height:1.45; text-transform:uppercase; font-weight:700; }
.catalog-sidebar__category img { width:38px; height:38px; object-fit:contain; flex:none; }
.catalog-sidebar__category.is-current,.catalog-sidebar__category:hover { background:#fff; color:var(--totachi-red); }
.catalog-sidebar__children { background:#fff; padding:8px 16px 12px; border-bottom:1px solid #ddd; }
.catalog-sidebar__children a { display:flex; justify-content:space-between; gap:8px; align-items:center; padding:9px 10px; font-size:10px; line-height:1.5; border-left:2px solid #e6e6e7; }
.catalog-sidebar__children a[aria-current],.catalog-sidebar__children a:hover { border-color:var(--totachi-red); color:var(--totachi-red); background:#faf0f2; }
.catalog-intro { margin:0 0 26px; }
.catalog-intro h2 { margin:12px 0; font-size:clamp(24px,2.5vw,36px); line-height:1.2; }
.catalog-intro > p:last-child { max-width:670px; font-size:13px; color:#55555a; }
.catalog-subcategories { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.catalog-subcategory { display:grid; grid-template-columns:64px minmax(0,1fr) 30px; align-items:center; gap:24px; min-height:140px; padding:24px; background:#fff; border:1px solid #dededf; transition:background .2s,border-color .2s,transform .2s; }
.catalog-subcategory:hover { border-color:var(--totachi-red); background:#fafafa; transform:translateY(-2px); }
.catalog-subcategory > img { width:64px; height:64px; object-fit:contain; }
.catalog-subcategory > strong { font-size:12px; line-height:1.5; text-transform:uppercase; }
.catalog-arrow { display:grid; place-items:center; width:30px; height:32px; background:var(--totachi-red); color:#fff; clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%); font:24px Arial,sans-serif; }
.catalog-results { margin:0; }
.catalog-subcategories + .catalog-results { margin-top:52px; }
.catalog-filter { margin:0; border:1px solid var(--totachi-red); border-top:0; }
.catalog-filter__heading { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:4px solid var(--totachi-red); }
.catalog-filter__heading h2 { margin:0; padding:16px 48px 16px 24px; color:#fff; font-size:12px; line-height:1.5; text-transform:uppercase; background:var(--totachi-red); clip-path:polygon(0 0,calc(100% - 38px) 0,100% 100%,0 100%); }
.catalog-filter__heading > button { margin-right:20px; padding:8px 0; color:var(--totachi-red); font-size:10px; background:none; border:0; cursor:pointer; }
.catalog-filter__summary { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:8px 8px 8px 24px; }
.catalog-filter__summary p { margin:0; color:#3d3d41; font-size:11px; }
.catalog-filter__summary button { display:flex; justify-content:space-between; align-items:center; gap:20px; flex:none; min-height:40px; padding:10px 18px; border:0; color:#fff; background:var(--totachi-red); font-family:inherit; font-size:10px; text-transform:uppercase; font-weight:700; cursor:pointer; }
.catalog-filter__summary button[aria-expanded=true] span { transform:rotate(180deg); }
.catalog-filter__fields { display:grid; grid-template-columns:1fr 1.15fr 1.65fr; gap:14px; padding:18px 24px 24px; border-top:1px solid #f1d7dc; background:#fafafa; }
.catalog-filter__fields label { display:block; min-width:0; }
.catalog-filter__fields label > span { display:block; margin-bottom:8px; font-size:9px; line-height:1.5; text-transform:uppercase; font-weight:700; }
.catalog-filter select,.catalog-filter input { width:100%; min-width:0; height:44px; padding:10px 12px; border:1px solid #d2d2d5; border-radius:0; background:#fff; font:11px "Normalidad Wide",Arial,sans-serif; color:#171717; }
.catalog-filter input:focus,.catalog-filter select:focus { outline:2px solid var(--totachi-red); outline-offset:2px; }
.catalog-filter__search:only-child { grid-column:1 / -1; }
.catalog-count { margin:20px 0 12px; font-size:11px; color:#656569; }
.catalog-count strong { color:var(--totachi-red); }
.catalog-rows { display:grid; gap:12px; }
.catalog-row { position:relative; display:grid; grid-template-columns:210px minmax(0,1fr); gap:32px; padding:24px 32px 24px 20px; border:1px solid #dededf; background:#fff; transition:border-color .2s,background .2s; }
.catalog-row:hover { border-color:#bcbdc1; background:#fdfdfd; }
.catalog-row__image { display:grid; place-items:center; height:214px; background:#fff; }
.catalog-row__image img { display:block; width:100%; height:100%; object-fit:contain; }
.catalog-row__body { min-width:0; padding-top:12px; display:flex; flex-direction:column; align-items:stretch; }
.catalog-row__body h2 { padding-bottom:20px; margin:0 0 20px; border-bottom:1px solid #ddd; font-size:clamp(15px,1.5vw,19px); line-height:1.4; letter-spacing:-.025em; color:var(--totachi-red); }
.catalog-row__facts { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:26px; }
.catalog-row__facts > div:only-child { grid-column:1 / -1; }
.catalog-row__facts h3 { margin:0 0 8px; font-size:9px; line-height:1.4; font-weight:700; text-transform:uppercase; }
.catalog-row__facts p,.catalog-row__facts ul { margin:0; padding:0; font-size:11px; line-height:1.7; list-style:none; }
.catalog-row__open { align-self:flex-start; margin-top:auto; padding-top:18px; font-size:9px; line-height:1.4; font-weight:700; text-transform:uppercase; color:var(--totachi-red); }
.catalog-row__open span { margin-left:14px; }
.catalog-empty { padding:32px; background:#f6f6f7; border:1px solid #ddd; font-size:14px; }
.catalog-category-summary { display:grid; grid-template-columns:minmax(200px,.8fr) minmax(0,1fr); gap:36px; align-items:center; padding:36px; background:#f7f7f8; }
.catalog-category-summary > img { width:100%; height:330px; object-fit:contain; }
.catalog-category-summary h2 { font-size:28px; line-height:1.2; }
.catalog-category-summary p { font-size:13px; }
.catalog-product__top { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(240px,.85fr); gap:36px; align-items:start; }
.product-gallery { display:grid; grid-template-columns:72px minmax(0,1fr); gap:16px; min-width:0; }
.product-gallery__thumbs { display:flex; flex-direction:column; gap:8px; max-height:470px; overflow-y:auto; padding:1px; scrollbar-width:thin; }
.product-gallery__thumbs button { display:grid; flex:none; place-items:center; height:91px; width:68px; border:1px solid #dededf; padding:7px; background:#fff; cursor:pointer; }
.product-gallery__thumbs button[aria-pressed=true] { border-color:var(--totachi-red); box-shadow:inset 0 3px var(--totachi-red); }
.product-gallery__thumbs img { width:100%; height:100%; object-fit:contain; }
.product-gallery__stage { display:grid; place-items:center; margin:0; height:470px; padding:10px; background:#fff; }
.product-gallery__stage > img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.product-overview { padding:10px 0 0; min-width:0; }
.product-overview__facts { margin:0; }
.product-overview__facts > div { margin-bottom:22px; }
.product-overview__facts dt { margin-bottom:9px; font-size:9px; line-height:1.5; text-transform:uppercase; font-weight:700; color:#616166; }
.product-overview__facts dd { margin:0; font-size:12px; line-height:1.7; }
.product-overview__facts ul { list-style:none; padding:0; margin:0; }
.product-overview__facts li { position:relative; padding-left:12px; margin-bottom:4px; }
.product-overview__facts li::before { position:absolute; left:0; top:.65em; width:3px; height:3px; background:var(--totachi-red); content:""; }
.product-documents { border-top:1px solid #ddd; padding-top:20px; margin-top:26px; }
.product-documents h2 { font-size:9px; color:#626268; text-transform:uppercase; margin:0 0 10px; }
.product-documents > a { display:flex; align-items:center; gap:10px; padding:10px 0; color:var(--totachi-red); font-size:10px; line-height:1.5; }
.product-documents > a > span:last-child { margin-left:auto; }
.document-mark { padding:3px; border:1px solid var(--totachi-red); font:8px Arial,sans-serif; flex:none; }
.product-inquiry { margin-top:20px; width:100%; padding:16px; justify-content:space-between; font-size:9px; }
.product-tabs { margin-top:42px; }
.product-tabs__nav { display:flex; flex-wrap:wrap; gap:3px; border-bottom:2px solid var(--totachi-red); }
.product-tabs__nav button { border:0; border-radius:0; padding:14px 26px 13px 22px; background:#939598; color:#fff; clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%); font:700 10px/1.45 "Normalidad Wide",Arial,sans-serif; text-transform:uppercase; cursor:pointer; }
.product-tabs__nav button[aria-selected=true] { background:var(--totachi-red); }
.product-tabs__panel { padding:28px 8px 20px; max-width:850px; font-size:12px; line-height:1.9; }
.product-tabs__panel > h2 { font-size:15px; line-height:1.4; margin:0 0 20px; }
.product-tabs__panel p { margin:0 0 18px; }
.product-requirements { list-style:none; padding:0; }
.product-requirements li { padding:9px 0 9px 17px; position:relative; border-bottom:1px solid #eee; }
.product-requirements li::before { position:absolute; top:20px; left:0; width:4px; height:4px; content:""; background:var(--totachi-red); }
.product-catalogue-copy { border-top:1px solid #ddd; padding-top:24px; margin-top:28px; }
.product-catalogue-copy h3 { font-size:11px; text-transform:uppercase; }
.product-catalogue-copy > a { color:var(--totachi-red); font-size:10px; }
.product-technical-source { overflow:auto; white-space:pre-wrap; background:#f7f7f8; padding:22px; font:12px/1.8 monospace; }
.catalog-back { display:inline-flex; gap:14px; font-size:10px; font-weight:700; margin-top:22px; color:var(--totachi-red); }
.product-card__icon { width:44px; height:44px; padding:0; border:0; background:none; }
.product-card__icon::before,.product-card__icon::after { display:none; }
.product-card__icon img { display:block; width:44px; height:44px; object-fit:contain; }
.category-title-icon { width:42px; height:42px; object-fit:contain; margin-bottom:14px; }
.mobile-category-icon { width:30px; height:30px; object-fit:contain; margin-right:12px; flex:none; }
.mobile-nav__categories a { display:flex; align-items:center; }
.nav-mega__image { background:#fff; width:66px; height:66px; padding:9px; flex:none; }
.nav-mega__image img { width:48px; height:48px; object-fit:contain; }
.nav-mega__categories > a { grid-template-columns:66px minmax(0,1fr); }
.nav-mega__categories > a strong { color:#1b1b1e; }
.technology-library .section-heading > p,.technology-section .section-heading > p { color:#fff; }
@media (max-width:1180px) {
  .catalog-layout { grid-template-columns:215px minmax(0,1fr); gap:26px; }
  .catalog-subcategory { gap:14px; padding:20px; grid-template-columns:52px minmax(0,1fr) 26px; }
  .catalog-subcategory > img { width:52px; height:52px; }
  .catalog-subcategory > strong { font-size:10px; }
  .catalog-row { grid-template-columns:170px minmax(0,1fr); padding:22px; gap:24px; }
  .catalog-row__image { height:200px; }
  .catalog-product__top { grid-template-columns:minmax(0,1fr); gap:28px; }
  .product-overview__facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 26px; }
  .product-gallery__stage { height:430px; }
  .product-inquiry { width:auto; }
  .catalog-filter__fields { grid-template-columns:1fr 1fr; }
  .catalog-filter__search { grid-column:1 / -1; }
}
@media (max-width:820px) {
  .catalog-page .shell { width:calc(100% - 36px); }
  .catalog-layout { grid-template-columns:minmax(0,1fr); gap:26px; padding-top:24px; padding-bottom:60px; }
  .catalog-layout > aside { position:static; }
  .catalog-sidebar { display:flex; overflow:auto; align-items:stretch; scrollbar-width:thin; }
  .catalog-sidebar__title,.catalog-sidebar__children { display:none; }
  .catalog-sidebar__category { flex:0 0 150px; min-height:72px; font-size:9px; border-bottom:0; border-right:1px solid #dededf; }
  .catalog-sidebar__category img { width:32px; height:32px; }
  .catalog-masthead { padding:26px 0; }
  .catalog-masthead h1 { font-size:clamp(24px,5vw,36px); }
  .catalog-product__top { grid-template-columns:minmax(0,1.15fr) minmax(220px,.85fr); }
  .product-overview__facts { display:block; }
  .product-gallery { grid-template-columns:58px minmax(0,1fr); gap:8px; }
  .product-gallery__thumbs button { width:54px; height:70px; }
  .product-gallery__stage { height:350px; }
}
@media (max-width:560px) {
  .catalog-subcategories { grid-template-columns:1fr; gap:10px; }
  .catalog-subcategory { min-height:108px; grid-template-columns:52px minmax(0,1fr) 30px; gap:18px; }
  .catalog-subcategory > strong { font-size:11px; }
  .catalog-filter__heading { align-items:stretch; gap:6px; }
  .catalog-filter__heading h2 { font-size:10px; padding:14px 27px 14px 12px; flex:1; clip-path:polygon(0 0,calc(100% - 25px) 0,100% 100%,0 100%); }
  .catalog-filter__heading > button { font-size:8px; margin-right:10px; max-width:80px; }
  .catalog-filter__summary { padding:10px; gap:12px; }
  .catalog-filter__summary p { font-size:10px; }
  .catalog-filter__summary button { max-width:130px; padding:8px 10px; font-size:8px; gap:10px; }
  .catalog-filter__fields { padding:14px 12px; gap:12px; }
  .catalog-filter select,.catalog-filter input { font-size:12px; }
  .catalog-row { grid-template-columns:105px minmax(0,1fr); padding:18px 14px; gap:14px; }
  .catalog-row__image { height:170px; align-self:start; }
  .catalog-row__body { padding-top:3px; }
  .catalog-row__body h2 { font-size:13px; padding-bottom:12px; margin-bottom:12px; line-height:1.4; }
  .catalog-row__facts { grid-template-columns:1fr; gap:14px; }
  .catalog-row__facts p,.catalog-row__facts li { font-size:10px; line-height:1.65; }
  .catalog-row__facts h3 { font-size:8px; }
  .catalog-row__open { font-size:8px; }
  .catalog-product__top { grid-template-columns:1fr; }
  .product-gallery { grid-template-columns:64px minmax(0,1fr); gap:12px; }
  .product-gallery__thumbs button { width:60px; height:77px; }
  .product-gallery__stage { height:350px; padding:4px 10px; }
  .product-overview { padding-top:0; }
  .product-overview__facts { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .product-overview__facts > div { margin-bottom:8px; }
  .product-overview__facts dd { font-size:11px; }
  .product-tabs { margin-top:32px; }
  .product-tabs__nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .product-tabs__nav button { padding:12px 12px 12px 8px; font-size:8px; min-height:50px; text-align:left; }
  .product-tabs__panel { padding:24px 0; font-size:12px; }
  .catalog-category-summary { grid-template-columns:1fr; padding:24px; gap:20px; }
  .catalog-category-summary > img { height:240px; }
}
@media (prefers-reduced-motion:reduce) { .catalog-subcategory,.catalog-row { transition:none; } }

/* Readable mobile controls and specifications. */
@media (max-width: 767px) {
 .catalog-filter select,.catalog-filter input {font-size:16px;min-height:44px}
 .catalog-row__facts p,.catalog-row__facts li,.product-overview__facts dd {font-size:13px}
 .catalog-row__facts h3,.catalog-row__open {font-size:12px}
 .product-tabs__nav button {font-size:12px;min-height:48px}
 .product-tabs__panel {font-size:15px}
}

/* 1.4: manufacturer technical fields, responsive and readable at narrow widths. */
.product-technical-table { overflow-x:auto; max-width:100%; }
.product-technical-table table { border-collapse:collapse; width:100%; text-align:left; font-size:15px; }
.product-technical-table caption { text-align:left; font-weight:700; padding:0 0 16px; }
.product-technical-table th,.product-technical-table td { padding:14px 16px; border-bottom:1px solid #ddd; overflow-wrap:anywhere; }
.product-technical-table thead { background:#eee; }
.product-technical-table tbody th { font-weight:500; width:46%; }
.product-source-excerpt { margin:28px 0 0; padding:18px 22px; border-left:3px solid #df132b; background:#f4f4f4; }
.product-source-excerpt cite { font-style:normal; font-size:13px; }
.catalog-family-overview { margin-top:28px; }
.catalog-family-overview ul { padding-left:20px; line-height:1.8; }

/* 1.4.1: longer source and packaging tabs remain usable on narrow displays. */
.product-tabs__nav { overflow-x:auto; overscroll-behavior-inline:contain; }
.product-tabs__nav [role="tab"] { flex-shrink:0; }
.product-source-original { margin-top:24px; border:1px solid #ddd; padding:16px; }
.product-source-original summary { cursor:pointer; font-size:14px; font-weight:600; }
.product-technical-table td { white-space:normal; }

/* 1.6.0: long translated content and touch targets. */
.product-tabs, .product-tabs__panel, .product-overview, .product-documents { min-width:0; }
.product-tabs__nav { max-width:100%; overscroll-behavior-inline:contain; }
.product-tabs__nav button { min-height:44px; }
.product-documents a, .product-source-original summary { min-height:44px; overflow-wrap:anywhere; }
.product-source-original > div { padding:18px 0 0; }
.product-tabs__panel p { overflow-wrap:anywhere; hyphens:auto; }
.product-translation-note { padding:14px 18px; border-left:3px solid var(--totachi-red); background:#f6f6f7; }
.product-tabs__nav button:focus-visible, .product-source-original summary:focus-visible { outline:3px solid #181818; outline-offset:-3px; }
@media(max-width:560px) {
 .product-tabs__panel { font-size:14px; line-height:1.75; padding:24px 0; }
 .product-technical-table { max-width:100%; overflow-x:auto; }
 .product-technical-table th, .product-technical-table td { font-size:12px; }
 .product-inquiry { width:100%; white-space:normal; }
}

/* 1.7.0: localized manufacturer benefits remain readable at every width. */
.product-benefit-list { margin:20px 0; }
.product-benefit-list dt { margin:20px 0 5px; color:#181818; font-weight:700; overflow-wrap:anywhere; }
.product-benefit-list dd { margin:0; padding:0 0 18px; border-bottom:1px solid #e3e3e5; overflow-wrap:anywhere; }
.product-benefit-list dd:last-child { border-bottom:0; }
