/* ------------------------------------------------------------------
   Dynamic page components (layered on top of main.css)
   ------------------------------------------------------------------ */

/* product listing layout */
.shop{display:grid;grid-template-columns:250px 1fr;gap:36px;align-items:start}
.shop-side{position:sticky;top:96px}
.shop-side h3{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#7c8798;margin:0 0 14px}
.cat-list{list-style:none;margin:0;padding:0;border:1px solid #e3e8ef;border-radius:12px;overflow:hidden;background:#fff}
.cat-list li{border-bottom:1px solid #eef1f6}
.cat-list li:last-child{border-bottom:0}
.cat-list a{display:flex;justify-content:space-between;gap:8px;padding:12px 16px;font-size:14px;color:#1d2a3a;text-decoration:none}
.cat-list a:hover{background:#f6f9fd;color:#0b4da2}
.cat-list a.is-active{background:#0b4da2;color:#fff}
.cat-list .cnt{font-size:12px;color:#8a95a5}
.cat-list a.is-active .cnt{color:rgba(255,255,255,.72)}
.shop-bar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-bottom:22px}
.shop-bar form{display:flex;gap:8px;flex:1;max-width:420px}
.shop-bar input[type=search]{flex:1;height:40px;padding:0 14px;border:1px solid #d3dbe6;border-radius:8px;font-size:14px}
.shop-bar button{height:40px;padding:0 18px;border:0;border-radius:8px;background:#0b4da2;color:#fff;font-size:14px;cursor:pointer}
.shop-count{font-size:13px;color:#7c8798}

/* pager */
.pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:38px 0 0}
.pager a,.pager span{min-width:38px;height:38px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dbe2ec;border-radius:8px;font-size:14px;color:#1d2a3a;text-decoration:none;background:#fff}
.pager a:hover{border-color:#0b4da2;color:#0b4da2}
.pager .is-current{background:#0b4da2;border-color:#0b4da2;color:#fff}

/* product detail */
.pd{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.pd-gallery img{width:100%;border-radius:14px;border:1px solid #e6ebf2;background:#fff}
.pd-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.pd-thumbs img{width:100%;height:78px;object-fit:cover;border-radius:9px;border:1px solid #e6ebf2;cursor:pointer}
.pd-thumbs img:hover{border-color:#0b4da2}
.pd h1{margin:0 0 8px;font-size:32px}
.pd .model{display:inline-block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#0b4da2;font-weight:700;margin-bottom:12px}
.pd-lede{font-size:16px;line-height:1.7;color:#3d4b5c}
.pd-tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.pd-tags span{font-size:12px;padding:5px 12px;border-radius:20px;background:#eef4fc;color:#0b4da2}
.pd-actions{display:flex;gap:12px;flex-wrap:wrap}
.spec-wrap{overflow-x:auto;margin:26px 0}
.spec{width:100%;border-collapse:collapse;font-size:13.5px}
.spec caption{caption-side:top;text-align:left;font-size:13px;color:#7c8798;padding-bottom:10px}
.spec th,.spec td{border:1px solid #e3e8ef;padding:10px 12px;text-align:left;white-space:nowrap}
.spec thead th{background:#f2f6fb;font-weight:600;color:#1d2a3a}
.spec tbody tr:nth-child(even){background:#fafcfe}
.prose{max-width:760px}
.prose p{line-height:1.75;color:#3d4b5c;margin:0 0 16px}
.prose h2{font-size:23px;margin:34px 0 12px}
.prose ul{margin:0 0 18px;padding-left:20px;line-height:1.8;color:#3d4b5c}

/* news */
.news-list{display:grid;gap:20px}
.news-item{display:grid;grid-template-columns:220px 1fr;gap:22px;border:1px solid #e6ebf2;border-radius:14px;overflow:hidden;background:#fff}
.news-item img{width:100%;height:100%;object-fit:cover}
.news-item .nb{padding:20px 22px 22px}
.news-item h3{margin:0 0 8px;font-size:19px}
.news-item h3 a{color:inherit;text-decoration:none}
.news-item h3 a:hover{color:#0b4da2}
.news-item time{font-size:12px;color:#8a95a5;letter-spacing:.06em;text-transform:uppercase}
.news-item p{color:#4b5a6b;line-height:1.7;margin:10px 0 0}

/* misc */
.empty{padding:60px 20px;text-align:center;color:#8a95a5;border:1px dashed #dbe2ec;border-radius:14px}
.alert{padding:14px 18px;border-radius:10px;font-size:14px;margin:0 0 22px}
.alert--ok{background:#e9f7ef;color:#1c7c46;border:1px solid #bfe6cf}
.alert--err{background:#fdecec;color:#a52121;border:1px solid #f5c6c6}
.crumb{margin:26px 0 0}
.page-hero.compact{padding:56px 0 40px}

@media(max-width:860px){
  .shop{grid-template-columns:1fr}
  .shop-side{position:static}
  .cat-list{display:flex;overflow-x:auto}
  .cat-list li{border-bottom:0;border-right:1px solid #eef1f6;white-space:nowrap}
  .pd{grid-template-columns:1fr;gap:26px}
  .news-item{grid-template-columns:1fr}
  .news-item img{height:180px}
}
/* ===== generated static pages ===== */
.chip-row{display:flex;flex-wrap:wrap;gap:10px;padding:18px 0 4px}
.chip{padding:7px 16px;border:1px solid #d6dde6;border-radius:999px;color:#2c3e50;text-decoration:none;font-size:14px;background:#fff}
.chip:hover{border-color:#e8862e;color:#e8862e}
.detail-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:34px;align-items:start}
.gallery{min-width:0}
.gal-main{width:100%;max-height:460px;object-fit:contain;background:#fff;border:1px solid #e3e8ef;border-radius:10px}
.gal-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.gal-thumb{width:86px;height:66px;object-fit:cover;border:2px solid #e3e8ef;border-radius:8px;cursor:pointer}
.gal-thumb.cur{border-color:#e8862e}
.detail-side .side-card{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:20px 22px;box-shadow:0 6px 18px rgba(13,27,42,.05)}
.side-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed #e6ebf2;font-size:14.5px}
.side-row span{color:#7a8698}
.side-row b{color:#13293d}
.prose{max-width:880px;line-height:1.85;color:#31404f;font-size:16px}
.prose p{margin:0 0 14px}
.prose ul{margin:0 0 14px;padding-left:22px}
.prose-wrap{max-width:880px}
.spec-wrap{max-width:960px;overflow-x:auto}
.spec-wrap table{width:100%;border-collapse:collapse;font-size:14.5px}
.spec-wrap th,.spec-wrap td{border:1px solid #dfe6ee;padding:9px 12px;text-align:left}
.spec-wrap th{background:#f2f6fa}
.news-date{font-size:13px;color:#8a95a5;margin-bottom:6px}
.news-hero{width:100%;max-height:420px;object-fit:cover;border-radius:10px;margin-bottom:24px}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
.contact-info .c-item{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:18px 22px;margin-bottom:14px}
.contact-info h3{margin:0 0 6px;font-size:15px;color:#13293d}
.contact-info p{margin:0;font-size:14.5px;color:#4b5a6b;line-height:1.7}
.enq-form{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:24px 26px;box-shadow:0 6px 18px rgba(13,27,42,.05)}
.enq-form label{display:block;font-size:13.5px;color:#445064;margin:12px 0 5px}
.enq-form input,.enq-form textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #c9d2de;border-radius:7px;font-size:14.5px;font-family:inherit}
.enq-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.enq-form button{margin-top:18px;padding:12px 34px}
.sent-ok{background:#e8f6ec;color:#1d7a3d;border:1px solid #bfe4cb;border-radius:9px;padding:14px 18px;margin-bottom:16px;font-size:14.5px}
.feature{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:22px}
.feature h3{margin:10px 0 8px;font-size:17px}
.feature p{margin:0;font-size:14.5px;color:#5a6678;line-height:1.7}
.f-ico{width:44px;height:44px;border-radius:10px;background:#fdeede;color:#e8862e;display:flex;align-items:center;justify-content:center;font-size:22px}
.app{background:#fff;border:1px solid #e3e8ef;border-radius:12px;overflow:hidden}
.app img{width:100%;height:180px;object-fit:cover;display:block}
.app>div{padding:16px 20px}
.app h3{margin:0 0 6px;font-size:16.5px}
.app p{margin:0;font-size:14px;color:#5a6678}
.factory{margin:0;background:#fff;border:1px solid #e3e8ef;border-radius:12px;overflow:hidden}
.factory img{width:100%;height:190px;object-fit:cover;display:block}
.factory figcaption{padding:10px 16px;font-size:14px;color:#445064}
details.faq{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:16px 20px;margin-bottom:10px;max-width:880px}
details.faq summary{font-weight:600;cursor:pointer;color:#13293d}
details.faq p{margin:12px 0 0;color:#5a6678;line-height:1.7}
@media(max-width:980px){
  .detail-grid,.contact-grid{grid-template-columns:1fr}
  .enq-form .row2{grid-template-columns:1fr}
}
