/* ── DOMS product browser ── */
.shop { --blue:#02528a; --gold:#FDC327; --ink:#1f2733; --mut:#647084; --line:#e7eef5;
  font-family:'Poppins',sans-serif; color:var(--ink); }

/* shell: sticky rail + main */
.shop-wrap { max-width:1340px; margin:0 auto; padding:0 clamp(18px,4vw,44px); }
.shop-layout { display:grid; grid-template-columns:248px 1fr; gap:clamp(24px,3vw,40px); align-items:start;
  padding:clamp(26px,4vw,44px) 0 clamp(60px,8vw,100px); }

/* left rail */
.shop-rail { position:sticky; top:96px; align-self:start; }
.shop-rail h4 { font-size:11px; font-weight:800; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--mut); margin:0 0 12px; padding-left:14px; }
.shop-rail nav { display:flex; flex-direction:column; gap:2px; }
.rail-link { display:flex; align-items:center; gap:11px; padding:11px 14px; border-radius:11px;
  text-decoration:none; color:#36424f; font-size:14px; font-weight:600; cursor:pointer;
  border:1px solid transparent; transition:background .16s, color .16s, border-color .16s; background:none; text-align:left; width:100%; }
.rail-link .dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; background:var(--sc,#cbd5e1); }
.rail-link .ct { margin-left:auto; font-size:11.5px; font-weight:700; color:#9aa7b4; }
.rail-link:hover { background:#f4f8fc; color:var(--blue); }
.rail-link.active { background:var(--blue); color:#fff; border-color:var(--blue); }
.rail-link.active .ct { color:rgba(255,255,255,.7); }
.rail-link.active .dot { background:#fff; }

/* header / toolbar */
.shop-head { margin-bottom:20px; }
.shop-head .eb { font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#c79212; }
.shop-head h1 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(30px,4.4vw,46px); line-height:1.02;
  color:#0d1b4b; margin:6px 0 6px; }
.shop-head p { font-size:14.5px; color:var(--mut); margin:0; max-width:640px; line-height:1.6; }

.shop-toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:20px 0 16px; }
.shop-search { position:relative; flex:1; min-width:200px; }
.shop-search svg { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:#9aa7b4; }
.shop-search input { width:100%; padding:12px 14px 12px 40px; border:1px solid var(--line); border-radius:11px;
  font:inherit; font-size:15px; color:var(--ink); background:#fff; transition:border-color .16s, box-shadow .16s; }
/* iOS zooms the page when a focused field is <16px — force 16px on phones */
@media (max-width: 760px){
  .shop-search input, .shop-sort, .shop input, .shop select, .shop textarea { font-size: 16px !important; }
}
.shop-search input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(2,82,138,.12); }
.shop-sort { padding:12px 36px 12px 14px; border:1px solid var(--line); border-radius:11px; font:inherit;
  font-size:13.5px; font-weight:600; color:#36424f; background:#fff
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23647084' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 13px center;
  -webkit-appearance:none; appearance:none; cursor:pointer; }
.shop-sort:focus { outline:none; border-color:var(--blue); }

/* subcategory chips */
.shop-subs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.sub-chip { padding:7px 14px; border:1px solid var(--line); border-radius:99px; background:#f7fafd;
  font-size:12.5px; font-weight:600; color:#36424f; cursor:pointer; transition:all .15s; }
.sub-chip:hover { border-color:#cfe0ee; color:var(--blue); }
.sub-chip.active { background:var(--blue); color:#fff; border-color:var(--blue); }

.shop-count { font-size:13px; color:var(--mut); margin-bottom:16px; }
.shop-count b { color:var(--ink); }
.shop-count a { color:var(--blue); font-weight:700; text-decoration:none; margin-left:10px; cursor:pointer; }

/* grid */
.shop-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(248px,1fr)); gap:clamp(18px,2vw,26px); }
.sp-card { position:relative; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:#fff; cursor:pointer;
  text-align:left; padding:0; font:inherit; display:flex; flex-direction:column;
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .18s; opacity:0; transform:translateY(10px);
  animation:spIn .4s ease forwards; }
@keyframes spIn { to { opacity:1; transform:translateY(0); } }
.sp-card:hover { transform:translateY(-6px); box-shadow:0 26px 52px rgba(13,27,75,.16); border-color:transparent; }
.sp-card::after { content:""; position:absolute; inset:0; border-radius:20px; pointer-events:none;
  box-shadow:inset 0 0 0 2px var(--sc); opacity:0; transition:opacity .2s ease; }
.sp-card:hover::after { opacity:.5; }
.sp-card .ph { position:relative; aspect-ratio:1/1; background:linear-gradient(158deg,var(--tint),#fff);
  display:flex; align-items:center; justify-content:center; overflow:hidden; }
.sp-card .ph.has-img { background:#fff; }
.sp-card .ph.has-img.noimg { background:linear-gradient(158deg,var(--tint),#fff); }
.sp-card .ph .bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.14; }
.sp-card .ph .real { position:relative; width:88%; height:88%; object-fit:contain;
  mix-blend-mode:multiply; transition:transform .25s ease; }
.sp-card:hover .ph .real { transform:scale(1.06); }
.sp-card .ph .wm { position:relative; font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:clamp(30px,3vw,40px); color:var(--sc); opacity:.9; letter-spacing:-.01em; text-align:center;
  padding:0 18px; line-height:1; text-transform:uppercase; }
.sp-card .ph .tag { position:absolute; top:13px; left:13px; background:rgba(255,255,255,.94);
  color:var(--sc); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:5px 11px; border-radius:99px; box-shadow:0 2px 8px rgba(13,27,75,.08); }
.sp-card .bd { padding:16px 17px 18px; display:flex; flex-direction:column; gap:5px; flex:1; }
.sp-card .bd h3 { font-size:15px; font-weight:700; color:var(--ink); line-height:1.34; margin:0;
  letter-spacing:-.005em; }
.sp-card .bd .sc { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--mut);
  font-weight:600; margin-top:auto; padding-top:10px; }
.sp-card .bd .sc::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--sc); flex-shrink:0; }

.shop-empty { padding:60px 20px; text-align:center; color:var(--mut); font-size:15px; }
.shop-empty b { color:var(--ink); }

/* ── product detail view ── */
.pd { padding:clamp(20px,3vw,30px) 0 clamp(60px,8vw,100px); }
.pd-back { display:inline-flex; align-items:center; gap:7px; background:none; border:none; cursor:pointer;
  font:inherit; font-size:13.5px; font-weight:700; color:var(--blue); padding:8px 0; margin-bottom:6px; }
.pd-back:hover { text-decoration:underline; }
.pd-crumb { font-size:12px; color:var(--mut); margin-bottom:18px; }
.pd-crumb a { color:var(--blue); text-decoration:none; cursor:pointer; }
.pd-main { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,60px); align-items:start; }
.pd-img { aspect-ratio:1/1; border-radius:22px; position:relative; overflow:hidden;
  background:linear-gradient(158deg,var(--tint),#eef4fa); display:flex; align-items:center; justify-content:center; }
.pd-img.has-img { background:#fff; border:1px solid var(--line); }
.pd-img.has-img.noimg { background:linear-gradient(158deg,var(--tint),#eef4fa); border:none; }
.pd-img .bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.16; }
.pd-img .real { position:relative; width:84%; height:84%; object-fit:contain; mix-blend-mode:multiply; }
.pd-img .wm { position:relative; font-family:'Barlow Condensed',sans-serif; font-weight:800;
  font-size:clamp(40px,5vw,64px); color:var(--sc); text-align:center; padding:0 24px; line-height:1.02; text-transform:uppercase; }
.pd-cat { font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#c79212; cursor:pointer; text-decoration:none; }
.pd-main h1 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(28px,4vw,46px); color:#0d1b4b;
  line-height:1.04; margin:8px 0 10px; }
.pd-price { font-size:15px; font-weight:800; color:#0d1b4b; margin-bottom:16px; }
.pd-price span { font-weight:500; color:var(--mut); font-size:13px; }
.pd-blurb { font-size:15px; line-height:1.85; color:#51606f; margin-bottom:22px; }
.pd-feats { list-style:none; margin:0 0 26px; padding:0; }
.pd-feats li { display:flex; gap:11px; align-items:flex-start; padding:10px 0; font-size:14.5px;
  color:#36424f; border-bottom:1px solid var(--line); }
.pd-feats li svg { flex-shrink:0; color:#1F8A5B; margin-top:1px; }
.pd-cta { display:flex; gap:12px; flex-wrap:wrap; }
.pd-btn { display:inline-flex; align-items:center; gap:9px; padding:13px 26px; border-radius:11px;
  font-size:14px; font-weight:800; text-decoration:none; cursor:pointer; border:none; transition:transform .18s, box-shadow .18s; }
.pd-btn.prim { background:var(--gold); color:#0a2550; }
.pd-btn.prim:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(253,195,39,.36); }
.pd-btn.amazon { background:#0d1b4b; color:#fff; }
.pd-btn.amazon:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(13,27,75,.32); background:#13235e; }
.pd-btn.amazon.off { background:#eef2f6; color:#9aa7b4; cursor:not-allowed; box-shadow:none; transform:none; }

/* premium product image badge */
.pd-img { isolation:isolate; }
.pd-badge { position:absolute; top:16px; left:16px; z-index:2; display:inline-flex; align-items:center; gap:6px;
  background:rgba(13,27,75,.9); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; padding:6px 12px; border-radius:99px; backdrop-filter:blur(4px); }
.pd-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); }

/* trust strip */
.pd-trust { display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; margin-top:26px; padding-top:24px;
  border-top:1px solid var(--line); }
.pd-trust-item { display:flex; gap:12px; align-items:flex-start; }
.pd-trust-item svg { flex-shrink:0; color:var(--blue); margin-top:1px; }
.pd-trust-item b { display:block; font-size:13.5px; font-weight:700; color:var(--ink); line-height:1.3; }
.pd-trust-item span { display:block; font-size:12px; color:var(--mut); line-height:1.4; margin-top:1px; }

/* product detail carousels */
.pd-rail-sec { margin-top:clamp(44px,6vw,72px); }
.pd-rail-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; }
.pd-rail-eb { font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#c79212; margin-bottom:4px; }
.pd-rail-head h2 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(22px,3vw,32px); color:#0d1b4b; margin:0; line-height:1.02; }
.pd-rail-ctrl { display:flex; gap:10px; flex-shrink:0; }
.pd-arw { width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:#fff;
  display:flex; align-items:center; justify-content:center; color:var(--blue); cursor:pointer;
  transition:background .16s, color .16s, border-color .16s, opacity .16s, transform .16s; }
.pd-arw:hover { background:var(--blue); color:#fff; border-color:var(--blue); transform:translateY(-2px); }
.pd-arw.off { opacity:.32; pointer-events:none; }
.pd-rail { display:grid; grid-auto-flow:column; grid-auto-columns:208px; gap:16px; overflow-x:auto;
  scroll-snap-type:x mandatory; padding:6px 4px 18px; margin:0 -4px; scrollbar-width:none; }
.pd-rail::-webkit-scrollbar { display:none; }
.pd-rail .sp-card { scroll-snap-align:start; }
@media (max-width:560px){ .pd-rail { grid-auto-columns:158px; } }

@media (max-width:920px){ .pd-main { grid-template-columns:1fr; } }
@media (max-width:780px){
  .shop-layout { grid-template-columns:1fr; }
  .shop-body { min-width:0; }
  .shop-rail { position:static; min-width:0; max-width:100%; overflow:visible; }
  .shop-rail h4 { display:block; margin-bottom:10px; padding-left:2px; }
  /* all categories visible at once — tidy 2-column grid of pills */
  .shop-rail nav { display:grid; grid-template-columns:1fr 1fr; gap:8px; width:100%; max-width:100%; }
  .rail-link { white-space:normal; line-height:1.25; align-items:center; min-height:46px;
    padding:10px 12px; font-size:12.5px; border:1px solid #e7eef5; border-radius:12px; background:#f7fafd; }
  .rail-link:first-child { grid-column:1 / -1; justify-content:center; }
  .rail-link.active { border-color:var(--blue); }
  .rail-link .ct { display:none; }
  .shop-grid { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:14px; }
}
@media (max-width:560px){
  .shop-wrap { padding:0 14px; }
  .shop-grid { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:11px; }
  .sp-card { border-radius:15px; }
  .sp-card .bd { padding:11px 11px 13px; }
  .sp-card .bd h3 { font-size:12.5px; }
  .pd-rail { grid-auto-columns:46% !important; }
}
/* never let the grid or its children force horizontal scroll */
.shop, .shop-body, .shop-grid { max-width:100%; min-width:0; }
.shop-wrap { min-width:0; }
