/* ============================================================
   Shop additions — real-data grids, category & product pages
   (loads after lux.css)
   ============================================================ */

/* category hero */
.cat-hero{ background:linear-gradient(105deg,#20382E 0%,#2C4B3C 60%,#3a5a48 100%); color:#F2ECE1; }
.cat-hero .container{ padding:64px 32px; }
.cat-hero .eyebrow{ color:var(--brass-lt); margin-bottom:16px; }
.cat-hero h1{ color:#FBF7EF; max-width:18ch; }
.cat-hero p{ color:#CBD8CE; max-width:60ch; margin:16px 0 0; font-size:1.05rem; }
.cat-hero .meta{ display:flex; gap:26px; margin-top:24px; flex-wrap:wrap; }
.cat-hero .meta span{ display:flex; align-items:center; gap:9px; font-size:.9rem; color:#DCE6DE; font-weight:600; }
.cat-hero .meta b{ color:#fff; }

/* toolbar */
.shop-bar{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding:26px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.shop-bar .count{ font-size:.9rem; color:var(--muted); letter-spacing:.04em; }
.shop-bar .count b{ color:var(--ink); }
.chips-row{ display:flex; gap:10px; flex-wrap:wrap; }

/* product grid (real images) */
.pgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; padding:40px 0 0; }
.pcard{ background:var(--paper); border:1px solid var(--line); border-radius:6px; overflow:hidden; transition:.22s; display:flex; flex-direction:column; }
.pcard:hover{ box-shadow:var(--shadow); transform:translateY(-4px); border-color:var(--brass); }
.pcard .ph{ position:relative; aspect-ratio:1/1; background:#fff; overflow:hidden; }
.pcard .ph img{ width:100%; height:100%; object-fit:cover; transition:.4s; }
.pcard:hover .ph img{ transform:scale(1.05); }
.pcard .tag{ position:absolute; top:12px; left:12px; background:var(--pine); color:#E9E0D0; font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 11px; border-radius:2px; }
.pcard .body{ padding:18px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1; }
.pcard .cat{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clay); font-weight:700; }
.pcard h3{ font-family:var(--display); font-size:1.24rem; line-height:1.15; color:var(--ink); margin:0; }
.pcard:hover h3{ color:var(--clay); }
.pcard .foot{ display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:12px; }
.pcard .price{ font-family:var(--display); font-size:1.1rem; color:var(--ink); }
.pcard .price small{ font-size:.72rem; color:var(--muted); letter-spacing:.06em; }
.pcard .rate{ font-size:.78rem; color:var(--star); }
.pcard .rate span{ color:var(--muted); margin-left:4px; }

/* pagination */
.pager{ display:flex; gap:8px; justify-content:center; padding:54px 0 0; }
.pager button{ min-width:42px; height:42px; border:1px solid var(--line); background:var(--paper); border-radius:4px; font-weight:700; color:var(--ink-soft); }
.pager button.active{ background:var(--clay); border-color:var(--clay); color:#fff; }
.pager button:disabled{ opacity:.4; }

/* category index cards */
.catgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.catcard{ position:relative; border-radius:6px; overflow:hidden; aspect-ratio:4/5; display:flex; align-items:flex-end; background:var(--pine); }
.catcard img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; transition:.4s; }
.catcard::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,30,24,.86) 8%, rgba(20,30,24,.15) 60%); }
.catcard:hover img{ transform:scale(1.06); }
.catcard .lbl{ position:relative; z-index:2; padding:22px; color:#fff; }
.catcard .lbl h3{ color:#fff; font-size:1.4rem; margin:0 0 4px; }
.catcard .lbl span{ font-size:.78rem; color:var(--brass-lt); letter-spacing:.08em; text-transform:uppercase; font-weight:700; }

/* product page real images */
.pp-main-img{ aspect-ratio:1/1; border-radius:var(--radius); background:#fff; overflow:hidden; box-shadow:var(--shadow-sm); }
.pp-main-img img{ width:100%; height:100%; object-fit:cover; }
.thumb-r{ aspect-ratio:1/1; border-radius:var(--radius); background:#fff; overflow:hidden; cursor:pointer; position:relative; padding:0; border:none; display:block; width:100%; }
.thumb-r img{ width:100%; height:100%; object-fit:cover; }
.thumb-r::before{ content:""; position:absolute; inset:0; border:1px solid var(--line); border-radius:var(--radius); transition:.2s; z-index:1; }
.thumb-r.active::before{ border:1.5px solid var(--brass); box-shadow:0 0 0 3px rgba(176,137,79,.16); }

@media (max-width:1080px){ .pgrid,.catgrid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .pgrid,.catgrid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .pgrid,.catgrid{ grid-template-columns:1fr; } }

/* ---- logo lockup ---- */
.brand{ flex-shrink:0; }
.brand .logo-mark{ display:block; flex-shrink:0; }
.brand .wm{ white-space:nowrap; }

/* ---- homepage quote split ---- */
.quote-split{ display:grid; grid-template-columns:1fr 1.05fr; gap:56px; align-items:start; }
@media (max-width:880px){ .quote-split{ grid-template-columns:1fr; gap:40px; } }

/* ---- shared blog cards (home + blog) ---- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.post-card{ background:var(--paper); border:1px solid var(--line); border-radius:6px; overflow:hidden; transition:.22s; display:flex; flex-direction:column; }
.post-card:hover{ box-shadow:var(--shadow); transform:translateY(-4px); border-color:var(--brass); }
.post-card .thumb{ aspect-ratio:16/10; background:#fff; overflow:hidden; }
.post-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:.4s; }
.post-card:hover .thumb img{ transform:scale(1.05); }
.post-card .pc-body{ padding:22px; display:flex; flex-direction:column; gap:9px; flex:1; }
.post-card .pc-meta{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clay); font-weight:700; }
.post-card h3{ font-family:var(--display); font-size:1.3rem; line-height:1.14; }
.post-card:hover h3{ color:var(--clay); }
.post-card p{ font-size:.9rem; margin:0; }
.post-card .rm{ color:var(--clay); font-weight:700; font-size:.84rem; margin-top:auto; padding-top:6px; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .blog-grid{ grid-template-columns:1fr; } }

/* ---- category trust bar ---- */
.catbar{ background:var(--paper); border-bottom:1px solid var(--line); }
.catbar .cb{ display:flex; align-items:center; justify-content:center; gap:12px; }
.catbar .cb svg{ width:26px; height:26px; color:var(--pine); stroke-width:1.5; flex-shrink:0; }
.catbar .cb span{ font-weight:700; color:var(--ink); font-size:.92rem; }

/* ---- services cards ---- */.svc{ background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:28px; transition:.2s; }
.svc:hover{ border-color:var(--brass); box-shadow:var(--shadow-sm); }
.svc h4{ font-family:var(--sans); font-weight:800; font-size:1.06rem; color:var(--ink); margin-bottom:8px; }
.svc p{ font-size:.92rem; margin:0; }

@media (max-width:880px){ .catbar-row{ grid-template-columns:1fr 1fr; } .why-grid{ grid-template-columns:1fr 1fr !important; } .split2{ grid-template-columns:1fr !important; } }
@media (max-width:560px){ .catbar-row{ grid-template-columns:1fr; } .why-grid{ grid-template-columns:1fr !important; } }
.brand .wm b{ font-size:1.34rem; white-space:nowrap; line-height:1; }
.brand .wm b em{ font-style:italic; }
.brand .wm small{ white-space:nowrap; }
.topbar .tb-left{ display:flex; gap:24px; align-items:center; }
.topbar .tb-left a{ letter-spacing:.06em; text-transform:uppercase; font-size:.72rem; }
@media (max-width:680px){ .topbar .tb-left{ display:none; } }
@media (max-width:420px){ .brand .wm b{ font-size:1.15rem; } }

/* ---- restored + homepage extras ---- */
.catbar-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:24px 0; }

/* quote form panel (category + contact) */
.quote{ background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:38px; box-shadow:var(--shadow-sm); }
.quote .cfg-grid{ gap:16px; }
@media (max-width:560px){ .quote{ padding:24px; } }

/* contact page */
.contact-grid{ display:grid; grid-template-columns:1.05fr .85fr; gap:40px; align-items:start; }
.contact-panel{ background:var(--pine); color:#CBD8CE; border-radius:8px; padding:40px; }
.contact-panel .cinfo{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:22px; }
.contact-panel .cinfo li{ display:flex; gap:14px; align-items:flex-start; }
.contact-panel .cinfo .ic{ width:38px; height:38px; flex-shrink:0; border-radius:6px; background:rgba(255,255,255,.08); border:1px solid var(--line-dark); display:flex; align-items:center; justify-content:center; color:var(--brass-lt); font-size:1.1rem; }
.contact-panel .cinfo b{ display:block; color:#FBF7EF; font-size:.95rem; margin-bottom:3px; }
.contact-panel .cinfo a, .contact-panel .cinfo span{ display:block; color:#A9B8AD; font-size:.92rem; }
.contact-panel .cinfo a:hover{ color:var(--brass-lt); }
.contact-panel .cpromise{ display:flex; gap:14px; align-items:flex-start; margin-top:30px; padding-top:26px; border-top:1px solid var(--line-dark); }
.contact-panel .cpromise p{ font-family:var(--display); font-style:italic; font-size:1.05rem; color:#E5DBC9; margin:0; line-height:1.5; }
@media (max-width:880px){ .contact-grid{ grid-template-columns:1fr; gap:28px; } }

/* form success / error notice */
.form-notice{ border-radius:8px; padding:14px 18px; font-weight:600; font-size:.94rem; margin-bottom:20px; }
.form-notice.ok{ background:#E7F0E8; border:1px solid #B6D2BC; color:#1F5130; }
.form-notice.err{ background:#F6E5DE; border:1px solid #E0B7A8; color:#8A3B1E; }

/* refined quote card (contact page) */
.quote-card{ padding:0; overflow:hidden; }
.quote-card-head{ background:var(--pine); color:#E5DBC9; padding:30px 38px; position:relative; }
.quote-card-head .qch-badge{ display:inline-block; background:var(--clay); color:#fff; font-size:.6rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; padding:5px 11px; border-radius:3px; margin-bottom:14px; }
.quote-card-head h3{ font-family:var(--display); font-size:1.9rem; color:#FBF7EF; margin:0 0 8px; }
.quote-card-head p{ font-size:.92rem; color:#B9C9BD; margin:0; max-width:44ch; }
.quote-card-body{ padding:34px 38px 38px; }
.dropzone{ display:flex; align-items:center; gap:14px; margin-top:20px; padding:18px 20px; border:1.5px dashed var(--line); border-radius:8px; background:var(--paper-2); cursor:pointer; transition:.18s; }
.dropzone:hover{ border-color:var(--brass); background:#fff; }
.dropzone .dz-ic{ width:40px; height:40px; flex-shrink:0; border-radius:50%; background:var(--brass); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.dropzone .dz-tx{ display:flex; flex-direction:column; }
.dropzone .dz-tx b{ color:var(--ink); font-size:.94rem; }
.dropzone .dz-tx small{ color:var(--muted); font-size:.8rem; }
.quote-card-body .btn-block{ margin-top:22px; }
@media (max-width:560px){ .quote-card-head{ padding:24px; } .quote-card-body{ padding:24px; } }

/* 3-step strip (contact) */
.steps3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.s3{ display:flex; gap:16px; align-items:flex-start; padding:26px; background:var(--paper); border:1px solid var(--line); border-radius:8px; }
.s3 .s3n{ font-family:var(--display); font-size:1.7rem; color:var(--clay); line-height:1; flex-shrink:0; }
.s3 h4{ font-family:var(--sans); font-weight:800; font-size:1.02rem; color:var(--ink); margin:0 0 5px; }
.s3 p{ font-size:.88rem; margin:0; }
@media (max-width:760px){ .steps3{ grid-template-columns:1fr; } }

/* how it works — dark pine band with connecting line */
.howitworks{ background:var(--pine); }
.howitworks .how-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative; }
.howitworks .how-row::before{ content:""; position:absolute; top:38px; left:12%; right:12%; height:2px; background:repeating-linear-gradient(90deg,var(--brass) 0 10px,transparent 10px 20px); opacity:.5; }
.howitworks .how-step{ text-align:center; position:relative; z-index:1; }
.howitworks .how-node{ position:relative; width:76px; height:76px; margin:0 auto 22px; border-radius:50%; background:var(--pine-2); border:1px solid var(--line-dark); display:flex; align-items:center; justify-content:center; }
.howitworks .how-ic svg{ width:30px; height:30px; color:var(--brass-lt); stroke-width:1.5; }
.howitworks .how-num{ position:absolute; top:-6px; right:-6px; width:28px; height:28px; border-radius:50%; background:var(--clay); color:#fff; font-family:var(--display); font-size:.82rem; font-weight:600; display:flex; align-items:center; justify-content:center; }
.howitworks .how-step h4{ font-family:var(--sans); font-weight:800; font-size:1.1rem; color:#FBF7EF; margin:0 0 8px; }
.howitworks .how-step p{ font-size:.9rem; color:#B9C9BD; margin:0; max-width:24ch; margin-inline:auto; }
@media (max-width:760px){
  .howitworks .how-row{ grid-template-columns:1fr 1fr; gap:36px 16px; }
  .howitworks .how-row::before{ display:none; }
}
@media (max-width:420px){ .howitworks .how-row{ grid-template-columns:1fr; } }

/* trusted-by strip */
.trust-logos{ display:flex; align-items:center; gap:40px; padding:26px 0; flex-wrap:wrap; justify-content:center; }
.tl-label{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.tl-row{ display:flex; align-items:center; gap:42px; flex-wrap:wrap; justify-content:center; }
.tl-row span{ font-family:var(--display); font-size:1.3rem; color:var(--muted); letter-spacing:.04em; opacity:.7; transition:.2s; }
.tl-row span:hover{ opacity:1; color:var(--ink); }

/* stats band */
.statband{ background:var(--pine); color:#E5DBC9; padding:58px 0; }
.statband-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; text-align:center; }
.statband .sb .n{ font-family:var(--display); font-size:3rem; color:#FBF7EF; line-height:1; }
.statband .sb p{ font-size:.92rem; color:#B9C9BD; margin:10px 0 0; }
@media (max-width:680px){ .trust-logos{ gap:24px; } .tl-row{ gap:26px; } .statband-row{ grid-template-columns:1fr 1fr; gap:34px 20px; } }
