/* ===== NS Reviews (themeable via CSS vars) ===== */
.nsrev{ --nsrev-accent:#956622; --nsrev-gold:#b98b3c; --nsrev-ink:#181109; --nsrev-body:#4a4234; --nsrev-bg:#f6f1e8; --nsrev-card:#fffdf8; --nsrev-card2:#fbf6ec; --nsrev-line:rgba(149,102,34,.26); --nsrev-star:#e0a52e;
  color:var(--nsrev-ink); background:var(--nsrev-bg); }
.nsrev *{ box-sizing:border-box; }
.nsrev .nsrev__inner{ max-width:1100px; margin:0 auto; padding:clamp(46px,4.8vw,64px) clamp(20px,5vw,44px); }

/* head + aggregate badge */
.nsrev .nsrev__head{ text-align:center; margin:0 0 clamp(28px,3.2vw,42px); }
.nsrev .nsrev__badge{ display:inline-flex; align-items:center; gap:clamp(12px,1.4vw,18px); background:linear-gradient(180deg,var(--nsrev-card),var(--nsrev-card2)); border:1px solid var(--nsrev-line); border-radius:6px; padding:clamp(11px,1.2vw,15px) clamp(18px,2vw,26px); box-shadow:0 12px 30px rgba(58,42,18,.12); }
.nsrev .nsrev__g{ flex:0 0 auto; width:clamp(26px,2.6vw,34px); height:clamp(26px,2.6vw,34px); }
.nsrev .nsrev__badge-main{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.nsrev .nsrev__rating-row{ display:flex; align-items:center; gap:9px; }
.nsrev .nsrev__rating-num{ font-family:"Helvetica Neue",Arial,sans-serif; font-weight:800; font-size:clamp(26px,2.7vw,38px); line-height:1; color:var(--nsrev-ink); letter-spacing:-.01em; }
.nsrev .nsrev__stars{ display:inline-flex; gap:2px; line-height:0; }
.nsrev .nsrev__stars svg{ width:clamp(16px,1.6vw,21px); height:clamp(16px,1.6vw,21px); display:block; }
.nsrev .nsrev__stars svg path{ fill:var(--nsrev-star); }
.nsrev .nsrev__star.is-off path{ fill:rgba(149,102,34,.22); }
.nsrev .nsrev__badge-sub{ color:#5a5244; font-size:clamp(11.5px,1vw,13.5px); font-weight:600; }
.nsrev .nsrev__badge-sub b{ color:var(--nsrev-accent); font-weight:700; }
.nsrev .nsrev__badge-count{ margin-left:.5em; }

/* title: テーマ（SWELL等）の見出し装飾を確実に打ち消す */
.nsrev .nsrev__title{ margin:clamp(20px,2.2vw,28px) auto clamp(13px,1.5vw,18px); padding:0; border:0; background:none; color:var(--nsrev-ink); font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif; font-weight:600; font-size:clamp(28px,3.4vw,46px); line-height:1.28; letter-spacing:.02em; }
.nsrev .nsrev__title::before, .nsrev .nsrev__title::after{ content:none !important; display:none !important; border:0 !important; background:none !important; margin:0 !important; width:auto !important; height:auto !important; }
.nsrev .nsrev__lead{ margin:0 auto; max-width:40em; color:#4f4738; font-size:clamp(14.5px,1.22vw,17px); line-height:1.9; }

/* list */
.nsrev .nsrev__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,1.8vw,24px); }
.nsrev .nsrev__card{ display:flex; flex-direction:column; min-width:0; background:linear-gradient(180deg,var(--nsrev-card),var(--nsrev-card2)); border:1px solid var(--nsrev-line); border-radius:4px; box-shadow:0 10px 26px rgba(58,42,18,.1); padding:clamp(18px,1.9vw,24px) clamp(18px,1.9vw,24px) clamp(18px,1.9vw,22px); }
.nsrev .nsrev__card-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 clamp(10px,1.1vw,13px); }
.nsrev .nsrev__date{ color:#8a8170; font-size:clamp(11px,.92vw,12.5px); font-weight:600; }
.nsrev .nsrev__text{ flex:1 1 auto; margin:0 0 clamp(14px,1.5vw,18px); color:var(--nsrev-body); font-size:clamp(13.5px,1.06vw,15.5px); line-height:1.85; }
.nsrev .nsrev__by{ display:flex; align-items:center; gap:10px; padding-top:clamp(11px,1.2vw,14px); border-top:1px solid rgba(149,102,34,.16); margin-top:auto; }
.nsrev .nsrev__avatar{ flex:0 0 auto; width:clamp(34px,3vw,40px); height:clamp(34px,3vw,40px); display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:linear-gradient(180deg,var(--nsrev-gold),var(--nsrev-accent)); color:#fff8ea; font-family:"Yu Mincho","YuMincho",serif; font-size:clamp(15px,1.3vw,18px); font-weight:600; }
.nsrev .nsrev__by-txt{ display:flex; flex-direction:column; min-width:0; line-height:1.3; }
.nsrev .nsrev__name{ color:var(--nsrev-ink); font-size:clamp(13px,1.04vw,14.5px); font-weight:700; }
.nsrev .nsrev__src{ color:#9a9180; font-size:clamp(10.5px,.86vw,12px); font-weight:600; }

.nsrev .nsrev__more{ margin:clamp(24px,2.6vw,34px) 0 0; text-align:center; }
.nsrev .nsrev__more a{ display:inline-flex; align-items:center; gap:9px; text-decoration:none; border:1px solid rgba(40,34,25,.34); border-radius:3px; padding:13px 26px; color:#28221a; font-size:clamp(13px,1.05vw,15px); font-weight:700; transition:background-color .25s ease,border-color .25s ease; }
.nsrev .nsrev__more a:hover{ background:rgba(40,34,25,.05); border-color:rgba(40,34,25,.5); }
.nsrev .nsrev__more svg{ width:18px; height:18px; flex:0 0 auto; }

/* 2カラム指定時（PC） */
@media (min-width:901px){
  .nsrev.nsrev--cols-2 .nsrev__list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px){
  .nsrev .nsrev__list{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
}
@media (max-width:560px){
  .nsrev .nsrev__inner{ padding:clamp(40px,8vw,52px) clamp(19px,5vw,24px); }
  .nsrev .nsrev__badge{ gap:11px; padding:11px 16px; }
  .nsrev .nsrev__title{ font-size:clamp(25px,7vw,34px); }
  .nsrev .nsrev__list{ grid-template-columns:minmax(0,1fr); gap:13px; }
}
