/* ---------- buttons / chips ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:600;
  border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer;
  transition:background var(--d) var(--ease),color var(--d) var(--ease),border-color var(--d) var(--ease),transform var(--d) var(--ease)}
.btn--primary{background:var(--cyan);color:#fff}
.btn--primary:hover{background:var(--blue);transform:translateY(-2px)}
.btn--ghost{border-color:var(--line-2);color:var(--navy);background:transparent}
.btn--ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.btn--light{background:#fff;color:var(--navy)}
.btn--light:hover{background:var(--cyan-pale);transform:translateY(-2px)}
.btn--outline-light{border-color:rgba(184,228,250,.5);color:#fff;background:transparent}
.btn--outline-light:hover{border-color:var(--cyan-light);color:var(--cyan-light)}
.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--line-2);border-radius:var(--r-pill);background:#fff;
  font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all var(--d) var(--ease)}
.chip:hover{border-color:var(--cyan);color:var(--cyan)}
.chip[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.chip .x{opacity:.6}

/* ---------- brand cards ---------- */
.bgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut)}
.bcard{position:relative;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);padding:30px;min-height:248px;
  transition:transform var(--d) var(--ease),box-shadow var(--d) var(--ease),border-color var(--d) var(--ease)}
.bcard:hover,.bcard:focus-visible{transform:translateY(-5px);box-shadow:var(--sh-2);border-color:rgba(0,136,207,.45)}
.bcard .bmark{flex:1;display:flex;align-items:center;justify-content:center;min-height:132px;min-width:0}
.bcard .bmark img{max-height:92px;max-width:min(100%,248px);object-fit:contain;filter:grayscale(1) contrast(1.04);opacity:.78;
  transition:filter var(--d) var(--ease),opacity var(--d) var(--ease),transform var(--d) var(--ease)}
.bcard:hover .bmark img,.bcard:focus-visible .bmark img{filter:grayscale(0);opacity:1;transform:scale(1.06)}
.bmark .ph{width:100%;max-width:248px;height:92px;border:1px dashed var(--line-2);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);text-align:center;line-height:1.45;
  background:repeating-linear-gradient(45deg,#fff,#fff 8px,#F1F5F9 8px,#F1F5F9 16px)}
.bcard .bmeta{border-top:1px solid var(--line);padding-top:15px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;min-width:0}
.bcard .bname{font-size:13.5px;letter-spacing:.03em;font-weight:600;color:var(--navy);min-width:0;overflow-wrap:anywhere}
.bcard .bcount{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5A6B80;min-width:0}
.bcard .warn{position:absolute;top:14px;right:14px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#7A4E00;
  background:#FFF6E0;border:1px solid #EBD9AC;border-radius:var(--r-pill);padding:3px 9px}
@media(max-width:1140px){.bgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.bgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bcard{padding:16px;min-height:190px}
  .bcard .bmark{min-height:96px}.bcard .bmark img{max-height:72px;max-width:min(100%,150px)}}
@media(max-width:480px){.bgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.bcard .bname{font-size:12px}}

/* ---------- EDITORIAL FEATURED SHOWCASE ---------- */
.feat{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--gut)}
.feat-main{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden;
  display:flex;flex-direction:column;transition:transform var(--d) var(--ease),box-shadow var(--d) var(--ease),border-color var(--d) var(--ease)}
.feat-main:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:rgba(0,136,207,.45)}
.feat-main .fsurface{height:430px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:#F3F6F9}
.feat-main .fsurface img{max-height:80%;max-width:74%;object-fit:contain;transition:transform 480ms var(--ease)}
.feat-main:hover .fsurface img{transform:scale(1.05)}
.feat-main .fbody{padding:26px 30px 30px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.feat-main h3{font-size:24px;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
.feat-col{display:grid;grid-template-rows:repeat(3,1fr);gap:var(--gut)}
.feat-card{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);box-shadow:var(--sh-1);padding:18px;overflow:hidden;
  transition:transform var(--d) var(--ease),box-shadow var(--d) var(--ease),border-color var(--d) var(--ease)}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:rgba(0,136,207,.45)}
.feat-card .fthumb{height:112px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;overflow:hidden;background:#F3F6F9}
.feat-card .fthumb.dark{background:#F3F6F9}
.feat-card .fthumb img{max-height:84%;max-width:84%;object-fit:contain;transition:transform 420ms var(--ease)}
.feat-card:hover .fthumb img{transform:scale(1.06)}
.feat-card .fthumb.light img{mix-blend-mode:multiply}
.feat-card h3{font-size:15px;font-weight:600;line-height:1.34;color:var(--navy)}
.eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:600}
@media(max-width:980px){.feat{grid-template-columns:1fr}.feat-main .fsurface{height:260px}.feat-col{grid-template-rows:none;grid-template-columns:1fr}}

/* ---------- product cards ---------- */
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut)}
.pcard{background:#fff;border:1px solid var(--line);min-width:0;border-radius:var(--r-lg);box-shadow:var(--sh-1);overflow:hidden;display:flex;flex-direction:column;
  transition:transform var(--d) var(--ease),box-shadow var(--d) var(--ease),border-color var(--d) var(--ease)}
.pcard:hover,.pcard:focus-visible{transform:translateY(-5px);box-shadow:var(--sh-2);border-color:rgba(0,136,207,.45)}
.studio{height:236px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.studio--light{background:#F3F6F9}
.studio--dark{background:#F3F6F9}   /* rev.5: catalog cards use ONE surface; dark only in the hero */
.studio img{max-height:78%;max-width:76%;width:auto;object-fit:contain;transform-origin:center center;transition:transform 320ms var(--ease)}
.studio--light img{mix-blend-mode:multiply}

.pcard:hover .studio img{transform:scale(1.05)}
.pbody{padding:20px 22px 24px;border-top:1px solid var(--line);flex:1;display:flex;flex-direction:column;gap:9px}
.pbody h3{font-size:15px;font-weight:600;line-height:1.36;color:var(--navy);overflow-wrap:anywhere}
.pmeta{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5A6B80;display:flex;flex-wrap:wrap;gap:4px 12px}
.pcard .go{margin-top:auto;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--cyan);font-weight:700}
.ph-tile{width:64%;height:60%;border:1px dashed var(--line-2);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  text-align:center;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);line-height:1.5;padding:8px;
  background:repeating-linear-gradient(45deg,#fff,#fff 8px,#F1F5F9 8px,#F1F5F9 16px)}
@media(max-width:1140px){.pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.studio{height:160px}.pbody{padding:14px}}
@media(max-width:360px){.pgrid{grid-template-columns:1fr}.studio{height:236px}}   /* 390px keeps 2 readable columns; 320px drops to one */
@media(max-width:380px){.pgrid{grid-template-columns:1fr}}

/* ---------- filters ---------- */
.shop{display:grid;grid-template-columns:272px minmax(0,1fr);gap:40px;align-items:start}
.rail{position:sticky;top:110px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:24px}
.rail h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);margin-bottom:14px}
.rail .group{padding:16px 0;border-top:1px solid var(--line)}
.rail .opts{display:flex;flex-direction:column;gap:10px;max-height:212px;overflow:auto}
.rail label{display:flex;gap:10px;align-items:center;font-size:13.5px;cursor:pointer}
.rail .cnt{margin-left:auto;color:#5A6B80;font-size:11.5px}
.rail input[type=checkbox]{width:16px;height:16px;accent-color:var(--cyan)}
.searchbox{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line-2);padding:10px 2px}
.searchbox input{border:0;background:none;outline:none;font-size:15px;width:100%;font-family:inherit}
.shopbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:22px}
.activebar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.count{font-size:13px;color:#5A6B80}
select.sort{border:1px solid var(--line-2);border-radius:var(--r-pill);padding:10px 14px;background:#fff;font-family:inherit;font-size:13px}
.mfilter{display:none}
.mtools{display:none}
.mcount{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:8px;padding:0 6px;
  border-radius:var(--r-pill);background:var(--cyan);color:#fff;font-size:11px;letter-spacing:0}
.backdrop{position:fixed;inset:0;background:rgba(0,20,45,.44);z-index:69;opacity:0;transition:opacity 180ms var(--ease)}
.backdrop.show{opacity:1}
.sheetclose{display:none}
.sheetfoot{display:none}
html.sheet-open{overflow:hidden}
#devpanel{position:fixed;left:12px;bottom:12px;z-index:99;max-width:420px;background:#0B1B33;color:#CFE6FF;
  font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;padding:12px 14px;border-radius:10px;border:1px solid #1E4C86;opacity:.94}
#devpanel b{display:block;margin-bottom:6px;color:#8FD4FF}
#devpanel span{display:inline-block;min-width:132px;color:#7FA6D8}
@media(max-width:980px){
  .shop{grid-template-columns:1fr;gap:20px}
  .mtools{display:flex;gap:12px;align-items:center;margin-bottom:18px}
  .msearch{flex:1;background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:10px 16px}
  .mfilter{display:inline-flex;white-space:nowrap}
  .rail{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:82vh;overflow:auto;z-index:70;border-radius:var(--r-lg) var(--r-lg) 0 0;
    box-shadow:0 -14px 40px rgba(0,20,45,.22);display:none;padding:26px 22px calc(26px + env(safe-area-inset-bottom))}
  .rail.open{display:block}
  .rail .dsearch{display:none}
  .sheetclose{display:flex;position:absolute;top:12px;right:12px;width:40px;height:40px;align-items:center;justify-content:center;
    border:1px solid var(--line-2);border-radius:var(--r-pill);background:#fff;font-size:20px;line-height:1;cursor:pointer}
  .rail .opts{max-height:none}
  .sheetfoot{display:flex;gap:12px;position:sticky;bottom:0;margin-top:18px;padding:16px 0 4px;background:#fff;border-top:1px solid var(--line)}
  .sheetfoot .btn{flex:1;justify-content:center}
}
@media(max-width:980px){.shop{grid-template-columns:1fr}}

/* ---------- states ---------- */
.sk{background:linear-gradient(90deg,#E7EDF3,#F8FAFC,#E7EDF3);background-size:200% 100%;animation:sh 1.2s infinite linear;border-radius:var(--r-lg)}
@keyframes sh{from{background-position:200% 0}to{background-position:-200% 0}}
.empty{border:1px dashed var(--line-2);border-radius:var(--r-lg);padding:56px;text-align:center;background:#fff}
.empty h3{font-size:20px;margin-bottom:10px;color:var(--navy)}

/* ---------- detail ---------- */
.detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:start}
.dstudio{border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);height:520px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.dstudio img{max-height:82%;max-width:84%;object-fit:contain;transform-origin:center center;transition:transform 320ms var(--ease)}
.dstudio.dark{background:#F3F6F9}
.dstudio.light{background:#F3F6F9}
.dstudio.light img{mix-blend-mode:multiply}
.spec{border-top:1px solid var(--line);margin-top:22px}
.spec div{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.spec dt{width:172px;color:#5A6B80;font-size:11px;letter-spacing:.11em;text-transform:uppercase;padding-top:3px}
.spec dd{flex:1;color:var(--ink)}
.flag{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7A4E00;background:#FFF6E0;border:1px solid #EBD9AC;border-radius:var(--r-pill);padding:3px 9px;margin-left:8px}
@media(max-width:980px){.detail{grid-template-columns:1fr;gap:24px}.dstudio{height:320px}}

/* ---------- notes / footer ---------- */
.note{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:20px;font-size:13.5px;color:#4A5567}
.note b{color:var(--navy)}
footer.site{background:var(--navy);color:rgba(255,255,255,.76);padding:70px 0 38px;font-size:14px;position:relative;overflow:hidden}
.fgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr);gap:var(--gut);position:relative;z-index:2}
footer h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:16px}
footer a:hover{color:var(--cyan-light)}
.fbot{margin-top:46px;padding-top:20px;border-top:1px solid var(--line-on-navy);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:12px;position:relative;z-index:2}
.footlogo{height:40px;width:auto;margin-bottom:20px}
.media-fallback{display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);line-height:1.5;
  border:1px dashed var(--line-2);border-radius:var(--r-sm);background:repeating-linear-gradient(45deg,#fff,#fff 8px,#F1F5F9 8px,#F1F5F9 16px)}
.media-fallback.ph{width:100%;max-width:248px;height:92px}
.media-fallback.ph-tile{width:64%;height:60%;padding:8px}
@media(max-width:860px){.fgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){
  .track{animation:none}
  .marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}
  *{transition-duration:1ms!important}
  .bcard:hover,.pcard:hover,.feat-main:hover,.feat-card:hover,.m-tile:hover{transform:none}
  .sk{animation:none}
  .hero-visual:hover img{transform:none}
}
