/* =========================================================
   rfid-products.css
   /rfid/products/ 用：カード系スタイル一式
   - サブカテゴリカード（.mts-card-*）
   - 問い合わせ誘導カード（a.mts-cta2colText-*）
   - 製品サムネイル（.mts-prod-*）
   ========================================================= */

/* =========================================================
   1) サブカテゴリカード
   ========================================================= */

.mts-card-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  align-items:stretch;
}
@media (max-width: 960px){
  .mts-card-grid{ grid-template-columns:1fr; }
}

.mts-card{
  --mts-primary:#0b3a73;
  --mts-primary-2:#0a2f5e;
  --mts-bg:#ffffff;
  --mts-muted:#f3f6fa;
  --mts-border:#e6eaf0;
  --mts-text:#132033;
  --mts-sub:#516071;

  position:relative;
  display:grid;
  grid-template-columns:96px 1fr;
  gap:12px;
  padding:10px;
  background:var(--mts-bg);
  border:1px solid var(--mts-border);
  border-radius:12px;
  text-decoration:none;
  color:var(--mts-text);
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.mts-card::before{
  content:"";
  position:absolute;
  left:0; top:0;
  width:4px; height:100%;
  background:var(--mts-primary);
  border-radius:12px 0 0 12px;
}
.mts-card:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(0,0,0,.10);
  border-color:#d9e2ee;
}
.mts-card:focus-visible{
  outline:3px solid rgba(11,58,115,.25);
  outline-offset:3px;
}

.mts-card__media{
  background:var(--mts-muted);
  border-radius:10px;
  overflow:hidden;
  height:128px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mts-card__img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.mts-card__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  gap:4px;
}

.mts-card__kicker{
  font-weight:800;
  font-size:14px;
  letter-spacing:.03em;
  color:var(--mts-primary);
  margin:0;
}
.mts-card__title{
  font-weight:900;
  font-size:19px;
  line-height:1.2;
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.mts-card__desc{
  margin:0;
  font-size:14px;
  line-height:1.34;
  color:var(--mts-sub);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height: calc(14px * 1.34 * 2);
}

.mts-card__cta{
  margin-top:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:9px 12px;
  border-radius:10px;
  background:var(--mts-primary);
  color:#fff;
  font-weight:900;
  font-size:14px;
  width:max-content;
}
.mts-card:hover .mts-card__cta{ background:var(--mts-primary-2); }
.mts-card__icon{ width:15px; height:15px; }

@media (max-width: 640px){
  .mts-card{
    grid-template-columns:84px 1fr;
    gap:10px;
  }
  .mts-card__media{ height:120px; }
  .mts-card__title{ font-size:18px; }
}

/* === OVERRIDE（既存CSSに負けないよう最終上書き） === */
.mts-card .mts-card__content{ gap:4px !important; }
.mts-card .mts-card__content .mts-card__kicker{ font-size:14px !important; }
.mts-card .mts-card__content .mts-card__title{
  font-size:19px !important;
  line-height:1.2 !important;
  margin:0 !important;
}
.mts-card .mts-card__content .mts-card__desc{
  font-size:14px !important;
  line-height:1.34 !important;
  margin:0 !important;
}
.mts-card .mts-card__content .mts-card__cta{
  font-size:14px !important;
  margin-top:6px !important;
}


/* =========================================================
   2) 問い合わせ誘導カード（2カラムCTA）
   ========================================================= */

a.mts-cta2colText{
  --mts-primary:#0b3a73;
  --mts-primary-2:#0a2f5e;

  height:102px !important;
  display:grid !important;
  grid-template-columns: 1fr 300px !important;
  gap:10px !important;
  padding:10px 12px !important;
  border-radius:14px !important;
  text-decoration:none !important;
  color:#fff !important;

  background:linear-gradient(135deg, var(--mts-primary) 0%, #0a2f5e 55%, #072245 100%) !important;
  background-color:var(--mts-primary) !important;

  border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:0 14px 30px rgba(12,25,45,.22) !important;
  overflow:hidden !important;
}
a.mts-cta2colText *{ box-sizing:border-box !important; }

.mts-cta2colText__left{
  height:100%;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:3px !important;
  min-width:0 !important;
}
.mts-cta2colText__kicker{
  font-weight:900 !important;
  font-size:17px !important;
  line-height:1.02 !important;
  letter-spacing:.03em !important;
  color:rgba(255,255,255,.92) !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
}
.mts-cta2colText__title{
  font-weight:1000 !important;
  font-size:23px !important;
  line-height:1.05 !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
}
.mts-cta2colText__desc{
  margin:0 !important;
  font-size:16px !important;
  line-height:1.12 !important;
  color:rgba(255,255,255,.84) !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
}

.mts-cta2colText__right{
  height:100%;
  padding:4px !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:stretch !important;
}
.mts-cta2colText__btn{
  width:100%;
  height:calc(100% - 8px) !important;
  border-radius:12px !important;
  background:#fff !important;
  color:#0b3a73 !important;
  font-weight:1000 !important;
  font-size:20px !important; /* ボタン文字120% */
  line-height:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  padding:10px 12px !important;
  white-space:nowrap !important;
  box-shadow:0 14px 24px rgba(0,0,0,.18) !important;
}

/* Font Awesomeのフォント崩れ対策：solid強制 */
.mts-cta2colText__btnIcon i,
.mts-cta2colText__chevFa{
  font-family:"Font Awesome 6 Free" !important;
  font-weight:900 !important;
  font-style:normal !important;
}
.mts-cta2colText__btnIcon{
  width:24px !important;
  height:24px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 24px !important;
  font-size:22px !important;
  color:#0b3a73 !important;
}
.mts-cta2colText__chevFa{
  font-size:18px !important;
  margin-left:2px !important;
}

@media (max-width: 960px){
  a.mts-cta2colText{
    grid-template-columns:1fr !important;
    height:auto !important;
  }
  .mts-cta2colText__right{ padding:0 !important; }
  .mts-cta2colText__btn{
    height:52px !important;
    font-size:18px !important;
  }
  .mts-cta2colText__desc{ white-space:normal !important; }
}


/* =========================================================
   3) 製品サムネイル（製品一覧カード：PC4 / MD2 / SP1）
   ========================================================= */

/* ===== Grid：12製品（PC:4 / MD:2 / SP:1） ===== */
.mts-prod-grid4{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  column-gap:18px;
  row-gap:34px;                 /* 段間 */
  align-items:stretch;
  padding-bottom:10px;          /* 最終段下の余白（任意） */
}
@media (max-width: 1200px){
  .mts-prod-grid4{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .mts-prod-grid4{ grid-template-columns:1fr; row-gap:26px; }
}

/* ===== Card base ===== */
.mts-prod-card{
  --mts-primary:#0b3a73;
  --mts-primary-2:#0a2f5e;
  --mts-hf:#1f6f5b;

  --mts-ink:#132033;
  --mts-sub:#516071;
  --mts-bg:#f3f6fa;
  --mts-border:#e6eaf0;

  /* 影 */
  --mts-shadow: 0 14px 34px rgba(12, 25, 45, .12);
  --mts-shadow-hover: 0 18px 40px rgba(12, 25, 45, .16);

  --card-min-h: 560px;

  --cat-fs: 12px;
  --cat-lh: 1.15;
  --name-fs: 22px;
  --name-lh: 1.12;

  position:relative;
  min-height:var(--card-min-h);
  background:var(--mts-bg);
  border:1px solid #dbe3ee;
  border-radius:14px;
  padding:14px 14px 12px;
  box-shadow:var(--mts-shadow);
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.mts-prod-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--mts-shadow-hover);
  border-color:#cfd9e6;
}
.mts-prod-card::before{
  content:"";
  position:absolute;
  left:0; top:0;
  width:4px; height:100%;
  background:var(--mts-primary);
}

/* ===== Badge：UHF / HF ===== */
.mts-prod-card__badge{
  position:absolute;
  left:12px;
  top:12px;
  z-index:2;
  font-weight:900;
  font-size:12px;
  letter-spacing:.03em;
  padding:6px 10px;
  border-radius:8px;
  box-shadow:0 8px 18px rgba(12,25,45,.10);
  color:#fff;
}
.mts-prod-card__badge--uhf{ background:var(--mts-primary); }
.mts-prod-card__badge--hf{ background:var(--mts-hf); }

/* ===== Header ===== */
.mts-prod-card__head{
  box-sizing:border-box;
  padding-top:34px;
  padding-bottom:2px;
  height:140px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:6px;
  text-align:center;
}
.mts-prod-card__cat{
  margin:0 !important;
  font-size:var(--cat-fs) !important;
  line-height:var(--cat-lh) !important;
  color:var(--mts-primary);
  font-weight:800;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  white-space:normal !important;
  min-height: calc(var(--cat-fs) * var(--cat-lh) * 2);
}
.mts-prod-card__name{
  margin:0 !important;
  font-size:var(--name-fs) !important;
  line-height:var(--name-lh) !important;
  color:var(--mts-ink);
  font-weight:900;
  letter-spacing:.01em;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  white-space:normal !important;
  min-height: calc(var(--name-fs) * var(--name-lh) * 2);
}

/* ===== Media ===== */
.mts-prod-card__media{
  background:#fff;
  border:1px solid var(--mts-border);
  border-radius:12px;
  padding:10px;
  height:230px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mts-prod-card__img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
}

/* ===== CTA ===== */
.mts-prod-card__cta{
  margin-top:2px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none;
  background:linear-gradient(180deg, var(--mts-primary) 0%, var(--mts-primary-2) 100%) !important;
  color:#fff !important;
  border-radius:999px;
  padding:12px 14px;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 10px 20px rgba(11,58,115,.18);
}
.mts-prod-card__cta:hover{ filter:brightness(1.03); }
.mts-prod-card__ctaIcon{
  width:22px; height:22px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
}

/* ===== Points ===== */
.mts-prod-card__points{
  margin:0;
  padding:0 2px 0 18px;
  color:var(--mts-sub);
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ===== Chips ===== */
.mts-prod-card__chips{
  margin-top:auto;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding-top:4px;
}
.mts-chip{
  font-size:12px;
  font-weight:900;
  color:var(--mts-ink);
  background:#e9edf3;
  border:1px solid #dde4ee;
  border-radius:6px;
  padding:4px 8px;
  line-height:1.2;
  white-space:nowrap;
}

/* ===== SP ===== */
@media (max-width: 640px){
  .mts-prod-card{ --card-min-h: 520px; --name-fs:21px; }
  .mts-prod-card__head{ height:134px; padding-top:36px; }
  .mts-prod-card__media{ height:210px; }
}

/* ===== 最終上書き：紹介文フォント ===== */
.mts-prod-grid4 .mts-prod-card ul.mts-prod-card__points,
.mts-prod-grid4 .mts-prod-card ul.mts-prod-card__points li{
  font-size:12px !important;
  line-height:1.45 !important;
}
.mts-prod-grid4 .mts-prod-card ul.mts-prod-card__points{
  margin:0 !important;
  padding:0 2px 0 18px !important;
}
.mts-prod-grid4 .mts-prod-card ul.mts-prod-card__points li{
  margin:0 0 6px !important;
}