/* Product directory and product detail components only. */
.catalog-hero{padding:45px 0 42px;background:#eef5fb;border-bottom:1px solid #dae6f1;color:#0b2345}
.catalog-hero h1{font-size:clamp(32px,3.4vw,46px);line-height:1.24;letter-spacing:-.035em}
.catalog-hero p{max-width:760px;margin-top:17px;color:#566b80;font-size:15px;line-height:1.85}
.catalog-hero .eyebrow{color:#087dc4;margin-bottom:13px}
.catalog-heading{margin-bottom:28px;max-width:840px}
.catalog-heading h2{color:#0b2345;font-size:27px;line-height:1.4}
.catalog-heading p{margin-top:10px;color:#566b80;font-size:14px;line-height:1.85}
.catalog-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:34px;align-items:start;padding-top:42px;padding-bottom:70px}
.catalog-layout>*{min-width:0}
.catalog-sidebar{position:sticky;top:112px;padding:24px 20px;border:1px solid #dce5ee;background:#f7f9fc;align-self:start;border-radius:3px}
.catalog-sidebar h2,.catalog-sidebar h3{font-size:18px;line-height:1.45;color:#0b2345;margin-bottom:20px}
.catalog-sidebar p{font-size:12px;line-height:1.8;color:#64788c}
.catalog-filter-group{margin-bottom:19px;min-width:0}
.catalog-filter-group label,.catalog-search label{display:block;font-size:13px;font-weight:650;line-height:1.5;color:#0b2345;margin-bottom:8px}
.catalog-filter-group select,.catalog-search input{display:block;width:100%;max-width:100%;min-width:0;min-height:44px;padding:10px 11px;background:#fff;border:1px solid #bfcedb;border-radius:3px;color:#233d58;font:inherit;font-size:14px;line-height:1.5}
.catalog-filter-group select:hover,.catalog-search input:hover{border-color:#087dc4}
.catalog-search{min-width:0;margin-bottom:22px}
.catalog-search input::placeholder{color:#8593a1}
.catalog-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #dce5ee;color:#566b80;font-size:13px;line-height:1.75}
.catalog-summary strong{color:#0b2345;font-size:16px;font-weight:700}
.catalog-summary p{flex-basis:100%;max-width:100%;color:#64788c;font-size:12px}
.catalog-summary button,.catalog-sidebar button{padding:8px 13px;min-height:38px;color:#087dc4;background:#fff;border:1px solid #bfd7ea;border-radius:3px;font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.catalog-summary button:hover,.catalog-sidebar button:hover{background:#e9f4fc;border-color:#087dc4}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px;align-items:stretch}
.catalog-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff;border:1px solid #dce5ee;border-radius:3px;transition:border-color .18s,box-shadow .18s,transform .18s}
.catalog-card:hover{border-color:#81b6d8;box-shadow:0 10px 26px #0b234510;transform:translateY(-2px)}
.catalog-card-image{display:block;overflow:hidden;background:#e9ebee;border-bottom:1px solid #dce5ee}
.catalog-card-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;object-position:center;mix-blend-mode:normal;transition:transform .25s}
.catalog-card:hover .catalog-card-image img{transform:scale(1.025)}
.catalog-card-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:20px;min-width:0;overflow-wrap:anywhere}
.catalog-card-body small{display:block;color:#087dc4;font-size:10px;font-weight:650;letter-spacing:.07em;line-height:1.7;margin-bottom:8px}
.catalog-card-body h2{font-size:20px;line-height:1.45;letter-spacing:-.02em;color:#0b2345;margin:0}
.catalog-card-body h2 a:hover{color:#087dc4}
.catalog-card-body p{font-size:13px;line-height:1.8;color:#627488;margin:12px 0 20px}
.catalog-card-body .text-link{font-size:13px;line-height:1.5;gap:10px;color:#087dc4;border-color:#b2d6ec;margin-top:auto}
.catalog-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:34px}
.catalog-pagination button{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:8px 12px;background:#fff;color:#314d68;border:1px solid #cddbe7;border-radius:3px;font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.catalog-pagination button:hover:not(:disabled){background:#edf6fc;border-color:#087dc4;color:#087dc4}
.catalog-pagination button.active,.catalog-pagination button[aria-current="page"]{color:#fff;background:#087dc4;border-color:#087dc4}
.catalog-pagination button:disabled{opacity:.45;cursor:default}
.catalog-empty{padding:56px 24px;background:#f5f9fc;border:1px dashed #b8cedf;text-align:center;color:#566b80;font-size:15px;line-height:1.8}
.catalog-empty h2,.catalog-empty h3{font-size:23px;color:#0b2345;margin-bottom:12px}
.catalog-empty p{margin-top:10px}
.catalog-empty button{margin-top:20px}
.product-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:52px;align-items:center;padding-top:26px;padding-bottom:52px;color:#0b2345}
.product-detail>*{min-width:0}
.product-detail-image{margin:0;border:1px solid #dce5ee;border-radius:3px;overflow:hidden;background:#e9ebee}
.product-detail-image img{display:block;width:100%;height:auto;object-fit:contain;object-position:center;mix-blend-mode:normal}
.product-detail-image figcaption{padding:14px 18px;background:#fff;border-top:1px solid #dce5ee;color:#64788c;font-size:12px;line-height:1.8}
.product-detail-copy h1{font-size:clamp(30px,3vw,42px);line-height:1.3;letter-spacing:-.035em;margin-bottom:21px;overflow-wrap:anywhere}
.product-detail-copy .eyebrow,.product-detail-copy>small{color:#087dc4;font-size:11px;font-weight:650;letter-spacing:.1em;line-height:1.7}
.product-detail-copy p{color:#566b80;font-size:15px;line-height:1.85}
.product-detail-copy .actions{margin-top:26px;gap:12px}
.product-detail-copy .btn{background:#087dc4;color:#fff;border-color:#087dc4}
.product-detail-copy .btn:hover{background:#0666a1;border-color:#0666a1}
.product-detail-copy .btn.secondary{background:#fff;border-color:#b4c8da;color:#0b2345}
.product-detail-copy .btn.secondary:hover{border-color:#087dc4;background:#eef6fc;color:#087dc4}
.product-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:27px 0 0;padding:0;border-top:1px solid #dce5ee}
.product-meta>div{min-width:0;padding:14px 0;border-bottom:1px solid #dce5ee}
.product-meta dt{font-size:11px;line-height:1.7;color:#6d7e8f;margin:0 0 4px}
.product-meta dd{font-size:14px;line-height:1.65;font-weight:600;color:#233d58;margin:0;overflow-wrap:anywhere}
.product-detail-body{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:40px;align-items:start;padding-top:38px;padding-bottom:60px;border-top:1px solid #dce5ee}
.product-detail-body>*{min-width:0}
.product-detail-body>aside{align-self:start;position:sticky;top:112px}
.product-info-card{padding:29px 30px;margin-bottom:22px;background:#fff;border:1px solid #dce5ee;border-radius:3px;overflow-wrap:anywhere}
.product-info-card h2{font-size:24px;line-height:1.4;color:#0b2345;margin-bottom:17px}
.product-info-card h3{font-size:18px;line-height:1.5;color:#0b2345;margin-bottom:12px}
.product-info-card p,.product-info-card li{font-size:14px;line-height:1.85;color:#566b80}
.product-info-card p+p{margin-top:14px}
.product-info-card ul{margin:17px 0;padding-left:1.2em}
.product-info-card li::marker{color:#087dc4}
.product-info-card .btn{margin-top:19px;background:#087dc4;color:#fff}
.product-info-card .text-link{color:#087dc4;border-color:#b2d6ec}
.product-detail-body aside .product-info-card{padding:23px;background:#f4f8fc}
.product-detail-body aside .product-info-card h2,.product-detail-body aside .product-info-card h3{font-size:19px}
.product-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:26px;margin-bottom:56px}
.product-related>.catalog-heading,.product-related>h2{grid-column:1/-1;margin:0 0 7px;color:#0b2345;font-size:27px;line-height:1.4}
.product-related .catalog-card-body h2{font-size:19px}
.catalog-review-table{display:block;width:100%;max-width:100%;overflow-x:auto;border:1px solid #dce5ee;border-radius:3px;margin:24px 0;background:#fff;-webkit-overflow-scrolling:touch}
.catalog-review-table table{min-width:680px;margin:0;border-collapse:collapse;font-size:13px}
.catalog-review-table th{background:#edf4fa;color:#0b2345;font-weight:650}
.catalog-review-table th,.catalog-review-table td{padding:13px 16px;line-height:1.75;border-bottom:1px solid #dce5ee;text-align:left;vertical-align:top}
.catalog-review-table td{color:#566b80;overflow-wrap:anywhere}
.catalog-review-table a{color:#087dc4;text-decoration:underline;text-underline-offset:3px}
.catalog-review-table tr:last-child td{border-bottom:0}
.catalog-hero :focus-visible,.catalog-layout :focus-visible,.product-detail :focus-visible,.product-detail-body :focus-visible,.product-related :focus-visible,.catalog-review-table :focus-visible{outline:3px solid #087dc4;outline-offset:4px}
.catalog-grid [hidden],.catalog-sidebar [hidden],.catalog-pagination [hidden],.catalog-empty[hidden],.product-related [hidden]{display:none!important}

@media(max-width:1100px){
  .catalog-layout{gap:24px}
  .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:21px 18px}
  .product-detail{gap:32px}
  .product-detail-body{grid-template-columns:minmax(0,1fr) 260px;gap:26px}
  .product-info-card{padding:25px}
}
@media(max-width:900px){
  .catalog-layout{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:30px;padding-bottom:50px}
  .catalog-sidebar{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;padding:22px}
  .catalog-sidebar>h2,.catalog-sidebar>h3,.catalog-sidebar>p,.catalog-sidebar>.catalog-search,.catalog-sidebar>button{grid-column:1/-1}
  .catalog-sidebar>form{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
  .catalog-sidebar>form>.catalog-search,.catalog-sidebar>form>button,.catalog-sidebar>form>p{grid-column:1/-1}
  .catalog-sidebar .catalog-search{margin-bottom:15px}
  .product-detail-body{grid-template-columns:minmax(0,1fr);gap:6px}
  .product-detail-body>aside{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .product-related{gap:16px}
}
@media(max-width:768px){
  .catalog-hero{padding:33px 0 30px}
  .catalog-hero h1{font-size:36px}
  .catalog-hero p{font-size:14px;margin-top:14px}
  .catalog-heading{margin-bottom:22px}
  .catalog-heading h2{font-size:24px}
  .catalog-summary{margin-bottom:19px}
  .catalog-card-body{padding:18px}
  .catalog-card-body h2{font-size:19px}
  .product-detail{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:16px;padding-bottom:35px}
  .product-detail-image{max-width:640px;width:100%;margin-inline:auto}
  .product-detail-copy h1{font-size:34px;margin-bottom:16px}
  .product-detail-copy p{font-size:14px}
  .product-detail-body{padding-top:25px;padding-bottom:37px}
  .product-related{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px;margin-bottom:40px}
}
@media(max-width:560px){
  .catalog-layout{gap:24px}
  .catalog-sidebar{padding:18px;gap:0 14px}
  .catalog-sidebar>form{gap:0 14px}
  .catalog-sidebar h2,.catalog-sidebar h3{font-size:17px;margin-bottom:17px}
  .catalog-filter-group{margin-bottom:15px}
  .catalog-filter-group label,.catalog-search label{font-size:12px}
  .catalog-filter-group select,.catalog-search input{font-size:13px;padding:9px;min-height:42px}
  .catalog-summary{gap:10px;font-size:12px}
  .catalog-summary strong{font-size:14px}
  .catalog-grid{gap:17px 12px}
  .catalog-card-body{padding:15px 12px}
  .catalog-card-body small{font-size:9px;letter-spacing:.03em}
  .catalog-card-body h2{font-size:17px;line-height:1.45}
  .catalog-card-body p{font-size:12px;margin:10px 0 16px}
  .catalog-card-body .text-link{font-size:12px;gap:6px}
  .catalog-pagination{gap:7px;margin-top:26px}
  .catalog-pagination button{min-width:38px;min-height:40px;padding:8px 10px;font-size:12px}
  .catalog-empty{padding:35px 18px;font-size:14px}
  .product-detail-copy h1{font-size:30px}
  .product-detail-copy .actions{gap:10px;margin-top:22px}
  .product-detail-copy .actions .btn{flex:1;padding:12px;gap:8px;font-size:13px}
  .product-meta{gap:0 16px;margin-top:22px}
  .product-meta dd{font-size:13px}
  .product-detail-body>aside{grid-template-columns:minmax(0,1fr);gap:0}
  .product-info-card,.product-detail-body aside .product-info-card{padding:22px 19px;margin-bottom:18px}
  .product-info-card h2{font-size:22px}
  .product-info-card p,.product-info-card li{font-size:13px}
  .product-related{gap:17px 12px}
  .product-related>.catalog-heading,.product-related>h2{font-size:24px}
  .product-related .catalog-card-body h2{font-size:17px}
}
@media(max-width:360px){
  .catalog-hero h1{font-size:32px}
  .catalog-grid,.product-related{grid-template-columns:minmax(0,1fr)}
  .catalog-sidebar,.catalog-sidebar>form{grid-template-columns:minmax(0,1fr)}
  .catalog-card-body{padding:19px}
  .catalog-card-body h2,.product-related .catalog-card-body h2{font-size:20px}
  .catalog-card-body p{font-size:13px}
  .catalog-card-body .text-link{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
  .catalog-card,.catalog-card-image img{transition:none}
  .catalog-card:hover,.catalog-card:hover .catalog-card-image img{transform:none}
}

/* Match the shared page shell and the rendered catalogue markup. */
.catalog-hero .catalog-heading{max-width:1200px;margin-bottom:0}
.catalog-summary p{flex:1;margin:0;font-size:13px}
.catalog-filter-group>a:not(.btn){display:block;font-size:12px;line-height:1.7;margin:10px 0;color:#31516f}
.catalog-filter-group .btn{margin-top:16px;font-size:12px;padding:12px;gap:10px}
.catalog-footnote,.product-detail-copy .product-image-note{font-size:12px;color:#6d7e8f;line-height:1.85;margin-top:24px}
.product-related{display:block}
.product-related>.section-head{margin-bottom:24px}
.product-detail-body aside .text-link{display:flex;font-size:13px;margin:16px 0}
.catalog-pagination[hidden]{display:none!important}
.catalog-card-image img{aspect-ratio:5/4}
.catalog-card-body p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:3.6em}
@media(max-width:900px){
  .catalog-sidebar{display:block}
  .catalog-sidebar>.catalog-filter-group:nth-child(n+3){display:none}
  .catalog-sidebar .catalog-filter-group{margin-bottom:0}
}
