/* ===== 共通変数 ===== */
:root { --sotsot-gutter: 40px; }
@media (max-width: 1024px) { :root { --sotsot-gutter: 24px; } }
@media (max-width: 767px)  { :root { --sotsot-gutter: 20px; } }

.sotsot-page,
.sotsot-lp {
  --bg: #FFFFFF;
  --bg-soft: #FEFFEB;
  --ink: #5C5C5C;
  --ink-strong: #44413E;
  --ink-soft: #666666;
  --purple: #C2B2F1;
  --yellow: #FDFF73;
  --yellow-cta: #F9FB73;
  --line: #ECECEC;
  --reading-width: 600px;
}

.sotsot-lp {
  color: var(--ink);
  background: var(--bg);
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
.sotsot-lp * {
  box-sizing: border-box;
}
.sotsot-lp h1,
.sotsot-lp h2,
.sotsot-lp .brand {
  font-family: 'Zen Maru Gothic', sans-serif;
}

/* ===== 左右余白（全ページ共通・ここだけ） ===== */
.sotsot-page .wrap,
.sotsot-lp .wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--sotsot-gutter);
}
/* TOP以外はKadenceの本文枠が余白を持つ。二重がけを防ぐ */
@media (max-width: 1024px) {
  body:not(.home) .single-entry > .entry-content-wrap {
    padding-left: var(--sotsot-gutter) !important;
    padding-right: var(--sotsot-gutter) !important;
  }
  body:not(.home) .single-entry > .entry-content-wrap .wrap {
    padding-left: 0;
    padding-right: 0;
  }
}

.legend h2{padding: 2em 0 0; text-align: center;}
.legend h3{text-align: center;}
.sotsot-lp a {
  color: inherit;
  text-decoration: none;
}

/* ---- 共通バッジパーツ：ランクS/A/B等の表示に使用 ---- */
.rank-badge {
  position: relative;
  width: 64px;
}
.rank-badge-img {
  width: 100%;
  height: auto;
  display: block;
}
.rank-badge-letter {
  position: absolute;
  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--yellow);
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 30px;
  line-height: 1;
}
/* 斜め配置（サムネの角に乗せる用）が必要なページだけ使う修飾クラス */
.rank-badge--corner {
  position: absolute;
  top: -18px;
  left: -14px;
  transform: rotate(-8deg);
  z-index: 3;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.12));
}

/* SP */
@media (max-width: 480px) {
  .rank-badge { width: 46px; } /* 64px→46px、KVバッジの縮小率(約72%)に揃えた */
  .rank-badge-letter { font-size: 22px; } /* 30px→22px */
}

/* ---- 共通CTAピルボタン ---- */
.cta-btn{position:relative;z-index:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:13px 32px;border-radius:100px;font-weight:700;font-size:14px;color:var(--ink-strong);text-decoration:none;cursor:pointer;border:none;background:transparent;transition:transform 0.3s ease;}
.cta-btn::before{content:"";position:absolute;inset:0;border-radius:100px;background:linear-gradient(120deg,#E8B84B,var(--purple));transform:translate(6px,6px);z-index:-2;}
.cta-btn::after{content:"";position:absolute;inset:0;border-radius:100px;background:var(--yellow-cta);z-index:-1;}
.cta-btn:hover{transform:scale(0.97);}
.cta-btn .cta-arrow{display:inline-flex;flex-shrink:0;}

/* ---- ページ先頭に戻るボタン（全ページ共通） ---- */
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
.sotsot-totop{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:900;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid #ECECEC;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,0.08);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity 0.3s ease,transform 0.3s ease,visibility 0.3s;}
.sotsot-totop.is-show{opacity:1;visibility:visible;transform:none;}
.sotsot-totop.is-show:hover{transform:scale(0.97);}
@media (max-width:480px){
  .sotsot-totop{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:44px;height:44px;}
}

/* ---- 共通：コンパクトなひとこと（写真＋吹き出し） ---- */
.sotsot-lp .m2-note{position:relative;z-index:1;display:flex;justify-content:center;padding:52px 0 0;}
.sotsot-lp .m2-note-inner{display:flex;align-items:center;gap:22px;max-width:640px;}
.sotsot-lp .m2-note-photo{flex:none;width:96px;height:96px;padding:3px;border-radius:50%;background:linear-gradient(135deg,var(--yellow),var(--purple));box-shadow:0 6px 16px rgba(43,38,32,.12);}
.sotsot-lp .m2-note-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:3px solid #fff;}
.sotsot-lp .m2-note-bubble{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px 22px;box-shadow:0 8px 20px rgba(43,38,32,.08);font-weight: 700;}
.sotsot-lp .m2-note-bubble::before{content:"";position:absolute;left:-7px;top:50%;width:14px;height:14px;background:#fff;border-left:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:3px;transform:translateY(-50%) rotate(45deg);}
.sotsot-lp .m2-note-bubble .cap{position:relative;margin:0;font-family:'Zen Maru Gothic',sans-serif;font-size:14px;line-height:1.7;color:var(--ink-strong);}
.sotsot-lp .m2-note-name{position:relative;display:block;margin-top:4px;font-size:13px;color:var(--ink-soft);}

@media (max-width:1024px){
  .sotsot-lp .m2-note{padding-top:40px;}
}
@media (max-width:480px){
  .sotsot-lp .m2-note-inner{gap:16px;}
  .sotsot-lp .m2-note-photo{width:68px;height:68px;}
  .sotsot-lp .m2-note-bubble{padding:12px 16px;border-radius:16px;}
  .sotsot-lp .m2-note-bubble .cap{font-size:12.5px;}
  .sotsot-lp .m2-note-name{font-size:12px;}
}
/* ============================================================
   共通：商品カード（ランキング・記事内など全ページ共通）
   .sotsot-lp 配下なら、sec1 なしでも効く
   ============================================================ */
/* 商品ボックス：交互背景、上下左右padding統一、商品間はドット線のみ */
.sotsot-lp .s-product-box{position:relative;padding:56px 32px;display:flex;gap:48px;background:#fff;}
.sotsot-lp .s-product-box:nth-child(even){background:#FBFBFB;}
.sotsot-lp .s-product-box:not(:last-child){border-bottom:2px dotted var(--line);}
@media(max-width:1024px){
  .sotsot-lp .s-product-box{padding:48px 24px;gap:32px;}
}
@media(max-width:480px){
  .sotsot-lp .s-product-box{flex-direction:column;padding:40px 20px;gap:24px;}
}

/* PR表記：右上に小さく */
.sotsot-lp .pr-label{position:absolute;top:12px;right:16px;z-index:3;font-size:9px;color:var(--ink-soft);letter-spacing:1px;border:1px solid var(--line);padding:0px 6px;border-radius:3px;}

/* アフィリBOX：白背景＋薄枠＋角丸（余白はPochipp側に一本化） */
.sotsot-lp .s-affiliate{position:relative;flex:0 0 300px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:8px;}
@media(max-width:480px){.sotsot-lp .s-affiliate{flex:none;}}

/* Pochippカード：縦積み */
.sotsot-lp .s-affiliate .pochipp-box[data-id]{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:20px;margin:0;border:none;box-shadow:none;background:transparent;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__image{width:100%;margin:0;text-align:center;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__image img{width:100%;max-width:none;height:150px;object-fit:contain;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__body{padding:0;margin:0;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__title{font-size:13px;font-weight:700;color:var(--ink-strong);line-height:1.6;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__price{font-size:14px;margin-top:6px;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__price span{display:block;font-size:10px;color:var(--ink-soft);}

/* Pochippボタン：2つ横並び */
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btns{display:flex;flex-direction:row;align-items:stretch;gap:8px;width:100%;margin:0;padding:0;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btnwrap{flex:1 1 0;width:auto;min-width:0;max-width:none;margin:0;padding:0;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btn{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:44px;padding:8px 6px;font-size:12px;font-weight:700;line-height:1.4;color:#fff;text-align:center;border-radius:4px;box-shadow:none;background-image:none;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btn span{font-size:inherit;text-indent:0;white-space:normal;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btnwrap.-custom .pochipp-box__btn{background-color:#F2A33C;}
.sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btnwrap.-custom_2 .pochipp-box__btn{background-color:#BE3737;}

/* ランクバッジ：アフィリBOX左上にオーバーラップ（正立ち） */
.sotsot-lp .s-affiliate .rank-badge{position:absolute;top:-18px;left:-18px;width:54px;z-index:2;}
.sotsot-lp .s-affiliate .rank-badge-letter{font-size:23px;}

/* 評価エリア */
.sotsot-lp .s-eval{flex:1;}

/* 評価サマリー（★評価3項目）：グレー背景で囲む、PC横並び／スマホ縦積み */
.sotsot-lp .eval-summary{background:#F5F5F5;border-radius:8px;padding:4px 20px;margin-bottom:28px;display:flex;align-items:center;flex-wrap:wrap;gap:0;}
.sotsot-lp .eval-summary .stars-row{padding:4px 20px;border-right:1px solid #D9D9D9;}
.sotsot-lp .eval-summary .stars-row:first-child{padding-left:0;}
.sotsot-lp .eval-summary .mineral-row{padding:4px 20px;}
@media(max-width:768px){
  .sotsot-lp .eval-summary{flex-direction:column;align-items:flex-start;gap:10px;padding:16px 20px;}
  .sotsot-lp .eval-summary .stars-row{border-right:none;padding:0;width:100%;}
  .sotsot-lp .eval-summary .mineral-row{padding:0;}
}

.sotsot-lp .stars-row{display:flex;align-items:baseline;gap:12px;font-size:13px;color:var(--ink-strong);font-weight:500;}
.sotsot-lp .stars{color:#D9A73B;letter-spacing:2px;font-size:15px;}
.sotsot-lp .stars .off{color:#CFCFCF;}
.sotsot-lp .mineral-row{font-size:13px;color:var(--ink-strong);}
.sotsot-lp .mineral-row b{color:var(--ink-strong);}

/* POINT見出し・本文 */
.sotsot-lp .point-kicker{display:block;font-family:'Zen Maru Gothic';font-size:12px;font-weight:900;color:var(--purple);letter-spacing:1px;margin-bottom:6px;}
.sotsot-lp .point-text-wrap{border-left:2px solid var(--purple);padding-left:18px;margin-bottom:28px;}
.sotsot-lp .point-text-wrap h3{font-size:16px;font-weight:700;margin-bottom:8px;}

/* フードの特徴タグ：角丸ピル（紫系） */
.sotsot-lp .tag-label{font-size:12px;color:var(--ink-soft);margin:24px 0 8px;}
.sotsot-lp .tag-row{display:flex;flex-wrap:wrap;gap:8px;}
.sotsot-lp .tag-row span{display:inline-block;background:rgba(194,178,241,0.18);color:#8B6FD1;font-size:11px;font-weight:700;padding:5px 14px;border-radius:100px;}

/* Pochipp標準のmargin（2em auto）を打ち消す */
body:not(#__) .sotsot-lp .s-affiliate .pochipp-box[data-id]{margin:0 auto;}

/* Pochippボタン：スマホでも2つ横並び（Pochipp側のスマホ用CSSを上書き） */
body:not(#__) .sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btns{flex-direction:row;flex-wrap:nowrap;}
body:not(#__) .sotsot-lp .s-affiliate .pochipp-box[data-id] .pochipp-box__btnwrap{flex:1 1 0;width:auto;}

/* A8素材カード（Pochipp非対応商品用）：素材コードは改変せず、外側のCSSだけで整える */
.sotsot-lp .s-affiliate .a8-card{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:20px;}
.sotsot-lp .s-affiliate .a8-card__item{position:relative;}
.sotsot-lp .s-affiliate .a8-card__item table{width:100% !important;margin:0;border:none;}
.sotsot-lp .s-affiliate .a8-card__item td{width:auto !important;padding:0 !important;border:none !important;}
.sotsot-lp .s-affiliate .a8-card__item tr:first-child td{text-align:center;padding-bottom:14px !important;}
.sotsot-lp .s-affiliate .a8-card__item img[width="1"]{position:absolute;left:0;bottom:0;}

/* ボタン：Pochippのボタンと同じ見た目・2つ横並び（1つだけでも幅いっぱいになる） */
.sotsot-lp .s-affiliate .a8-card__btns{display:flex;flex-direction:row;gap:8px;width:100%;}
.sotsot-lp .s-affiliate .a8-card__btn{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:8px 6px;font-size:12px;font-weight:700;line-height:1.4;text-align:center;text-decoration:none;border-radius:4px;}
.sotsot-lp .s-affiliate .a8-card__btn,
.sotsot-lp .s-affiliate .a8-card__btn:hover,
.sotsot-lp .s-affiliate .a8-card__btn:visited{color:#fff;}
.sotsot-lp .s-affiliate .a8-card__btn--amazon{background:#F2A33C;}
.sotsot-lp .s-affiliate .a8-card__btn--rakuten{background:#BE3737;}

/* 公式ボタン（白背景＋濃色文字） */
.sotsot-lp .s-affiliate .a8-card__btn--official,
.sotsot-lp .s-affiliate .a8-card__btn--official:visited{background:#fff;color:var(--ink-strong);border:1.5px solid var(--ink-strong);}
.sotsot-lp .s-affiliate .a8-card__btn--official:hover{background:var(--bg-soft);color:var(--ink-strong);}

/* テキストリンク枠（公式アフィリ用：商品名） */
.sotsot-lp .s-affiliate .a8-card__text{position:relative;font-size:13px;font-weight:700;line-height:1.6;color:var(--ink-strong);}
.sotsot-lp .s-affiliate .a8-card__text a,
.sotsot-lp .s-affiliate .a8-card__text a:visited{color:var(--ink-strong);}
.sotsot-lp .s-affiliate .a8-card__text img[width="1"]{position:absolute;left:0;bottom:0;}

/* ============================================================
   成分MAP・リストエリア
   ============================================================ */

/* ---------- 外枠：旧デザインの交互背景・余白・枠線・点線をなくし、商品どうしは余白＋ドット線で仕切る ---------- */
.sotsot-lp .s-product-box.s-product-box--v2,
.sotsot-lp .s-product-box.s-product-box--v2:nth-child(even) {
  display: block;
  padding: 0;
  margin: 0 0 48px; /* 商品どうしの間隔 */
  background: transparent;
  border: none;
}
.sotsot-lp .s-product-box.s-product-box--v2:not(:last-child) {
  display: block;
  padding: 0 0 48px;
  margin: 0 0 48px;
  background: transparent;
  border: none;
  border-bottom: 2px dotted #ddd;
}
.sotsot-lp .s-product-box.s-product-box--v2:last-child { margin-bottom: 0; }
.sotsot-lp .s-card {
  position: relative;
  display: flex;
}
@media (max-width: 720px) {
  .sotsot-lp .s-product-box.s-product-box--v2:not(:last-child) {
    margin-bottom: 40px;
    padding-bottom: 40px;
  }
}

/* ランクバッジ：外枠（.s-card）の内側左上に固定 */
.sotsot-lp .s-card > .rank-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 3;
  width: 54px;
}
.sotsot-lp .s-card > .rank-badge .rank-badge-letter { font-size: 23px; }

/* ---------- 左：買う場所（白いカード） ---------- */
.sotsot-lp .s-card .s-affiliate {
  flex: 0 0 320px;
  align-self: flex-start; /* 中身の高さのまま（右に合わせて伸ばさない） */
  border: none;
  border-radius: 10px;
  background: #fff;
  padding: 1em;
}

/* ---------- 右：判断材料（枠も背景もなし。背景はセクション側） ---------- */
.sotsot-lp .s-info {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  padding: 0 50px;
}
.sotsot-lp .s-info-side {
  display: flex;
  flex-direction: column; /* どの画面幅でも「地図 → 評価」の縦積みに固定 */
  gap: 20px;
}

/* ---------- 成分MAP ---------- */
.sotsot-lp .pos-box { width: 100%; }
.sotsot-lp .pos-map {
  --x: 50;
  --y: 50;
  position: relative;
  width: 100%;
  max-width: 180px;
  margin: 0;
  aspect-ratio: 1 / 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
}
.sotsot-lp .pos-q {
  display: flex;
  padding: 8px 9px;
  border-radius: 10px;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 1.4;
  color: rgba(68, 65, 62, 0.72);
}
/* 文字は中心から遠い外側の角へ（点と重なりにくくする） */
.sotsot-lp .pos-hl { background: #FDFFD8; align-items: flex-start; justify-content: flex-start; text-align: left; }
.sotsot-lp .pos-hh { background: #F7FB9D; align-items: flex-start; justify-content: flex-end;   text-align: right; }
.sotsot-lp .pos-ll { background: #EEEBEB; align-items: flex-end;   justify-content: flex-start; text-align: left; }
.sotsot-lp .pos-lh { background: #EBECCD; align-items: flex-end;   justify-content: flex-end;   text-align: right; }
.sotsot-lp .pos-center {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 50%;
  width: 46%;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--purple);
  box-shadow: 0 0 0 4px #FBFBF5; /* セクションの背景色と同じ */
  transform: translate(-50%, -50%);
  text-align: center;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 10px;
  line-height: 1.4;
  color: #fff;
  text-shadow: 0 1px 2px rgba(80, 60, 130, 0.35);
}
.sotsot-lp .pos-dot {
  position: absolute;
  z-index: 3;
  left: calc(var(--x) * 1%);
  top: calc(var(--y) * 1%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--ink-strong);
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
  transform: translate(-50%, -50%);
}
.sotsot-lp .pos-label {
  margin: 8px 0 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  text-align: left;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: var(--ink-strong);
}
.sotsot-lp .pos-label-dot {
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ink-strong);
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* ---------- 評価リスト（星の頭を縦にそろえる） ---------- */
.sotsot-lp .s-rate {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-strong);
}
.sotsot-lp .s-rate li {
  display: grid;
  grid-template-columns: 8.5em 1fr; /* 8.5em＝「ミネラルバランス」が入る幅 */
  align-items: baseline;
  column-gap: 6px;
}
.sotsot-lp .s-rate .stars {
  font-size: 14px;
  letter-spacing: 1px;
  white-space: nowrap; /* 星を2行に割らない */
}

/* ---------- 右：本文 ---------- */
.sotsot-lp .s-info-main h3 {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--ink-strong);
}
.sotsot-lp .s-info-main p {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
}
.sotsot-lp .s-info-main h4 {
  margin: 24px 0 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--ink-strong);
}
.sotsot-lp .s-info-main .tag-row { margin-top: 8px; }
/* 特徴タグ：押せないラベルなので、リンクに見えないグレー */
.sotsot-lp .s-info-main .tag-row span {
  background: #EFEEF2;
  color: var(--ink);
  font-weight: 700;
}

/* ============================================================
   商品カード：レスポンシブ（iPad Pro＝PC、Air／mini＝同じ形に統一）
   ============================================================ */

/* --- PCに近い幅（1280px以下）：右の余白を少し詰めて、本文の幅を確保 --- */
@media (max-width: 1280px) {
  .sotsot-lp .s-info { padding: 0 28px; gap: 20px; }
}

/* --- タブレット（1023px以下） ---
   地図は幅に合わせて少しずつ伸び縮みし、星のリストは幅を固定する。
   → 画面幅が変わっても「地図の横に星」のまま、途中で下に落ちない --- */
@media (max-width: 1023px) {
  .sotsot-lp .s-card {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-areas:
      "aff  side"
      "main main";
    gap: 32px 40px;
  }
  /* .s-info には枠も背景もないので、中身を直接並べ替える */
  .sotsot-lp .s-info { display: contents; }
  .sotsot-lp .s-card .s-affiliate { grid-area: aff; }
  .sotsot-lp .s-info-side { grid-area: side; }
  .sotsot-lp .s-info-main { grid-area: main; }

  .sotsot-lp .s-info-side {
    flex-direction: row;
    flex-wrap: wrap;      /* 極端に狭いとき（約280px未満）だけ星が下に回る */
    align-items: center;
    gap: 16px 20px;
  }
  .sotsot-lp .pos-box { flex: 1 1 112px; width: auto; min-width: 112px; max-width: 200px; }
  .sotsot-lp .pos-q { font-size: 9px; padding: 6px 7px; }
  .sotsot-lp .pos-center { font-size: 9px; }
  .sotsot-lp .pos-label { font-size: 11px; }
  .sotsot-lp .s-rate {
    flex: 0 0 156px;
    gap: 10px;
    font-size: 11px;
  }
  .sotsot-lp .s-rate li { grid-template-columns: 8em 1fr; column-gap: 4px; }
  .sotsot-lp .s-rate .stars { font-size: 12px; letter-spacing: 1px; }
}

/* --- 720px以下：1列 --- */
@media (max-width: 720px) {
  .sotsot-lp .s-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "aff"
      "side"
      "main";
    gap: 36px;
  }
  .sotsot-lp .s-card > .rank-badge { width: 46px; top: 12px; left: 12px; }
  .sotsot-lp .s-card > .rank-badge .rank-badge-letter { font-size: 20px; }
  .sotsot-lp .s-info-side,
  .sotsot-lp .s-info-main { padding: 0 20px; }
}

/* --- 480px以下：星の列を少し細く（360px幅の端末でも地図の横に入る） --- */
@media (max-width: 480px) {
  .sotsot-lp .s-info-side { gap: 14px 24px; }
  .sotsot-lp .s-rate { flex: 0 0 150px; font-size: 10.5px; }
  .sotsot-lp .s-rate .stars { font-size: 11px; }
}

/* ひとこと下のナビリンク（控えめなテキストリンク） */
.sotsot-lp .m2-note-link{margin:0;padding:18px 0 0;text-align:center;font-size:13px;line-height:1.7;}
.sotsot-lp .m2-note-link a{color:var(--ink-soft);border-bottom:1px solid var(--purple);padding-bottom:2px;transition:color .2s ease;}
.sotsot-lp .m2-note-link a:hover{color:var(--ink-strong);}
@media (max-width:480px){
  .sotsot-lp .m2-note-link{font-size:12px;}
}

/* ナビリンク：下線なし（矢印があるので十分）、ホバーでだけ下線 */
.sotsot-lp .m2-note-link{padding-top:2.5em;}
.sotsot-lp .m2-note-link a{border-bottom:none;padding-bottom:0;}
.sotsot-lp .m2-note-link a:hover{text-decoration:underline;text-decoration-color:var(--purple);text-underline-offset:4px;}

/* タグ：中央寄せ＋枠線なしの薄紫ピル */
.entry-tags{margin-top:2.8em;}
.entry-tags .tags-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6em;}
.entry-tags .tags-links a{border:none;background:rgba(194,178,241,.18);color:#8B6FD1;border-radius:100px;padding:.3em 1em;}

/* ---- 共通：矢印つきテキストリンク ---- */
body a.sotsot-text-link{display:inline-flex;align-items:center;gap:.5em;font-weight:700;font-size:15px;line-height:1.6;color:var(--purple-deep,#4A3F8C);text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:.15em;transition:opacity .2s ease;}
body a.sotsot-text-link svg{flex:none;width:1.1em;height:1.1em;transition:transform .2s ease;}
body a.sotsot-text-link{transition:color .25s ease;}
body a.sotsot-text-link:hover{color:#8B6FD1;}
body a.sotsot-text-link:hover svg{transform:translateX(3px);}
@media (max-width:480px){
  body a.sotsot-text-link{font-size:14px;}
}

/* ---- 共通：記事下の運営者ボックス（小さめ版） ---- */
.sotsot-lp .sotsot-author{display:flex;align-items:center;gap:1.4em;max-width:680px;margin:3em auto 0;padding:1.6em 1.8em;background:#fff;border:2px dotted var(--line);border-radius:10px;}
.sotsot-lp .sotsot-author__photo{flex:none;width:80px;height:80px;padding:3px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--yellow));}
.sotsot-lp .sotsot-author__photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:3px solid #fff;}
.sotsot-lp .sotsot-author__name{margin:0;font-family:'Zen Maru Gothic',sans-serif;font-weight:700;font-size:16px;line-height:1.5;color:var(--ink-strong);}
.sotsot-lp .sotsot-author__role{margin:0 0 .6em;font-size:12px;line-height:1.6;color:var(--ink-soft);}
.sotsot-lp .sotsot-author__text{margin:0 0 .7em;font-size:13px;line-height:1.8;}
.sotsot-lp .sotsot-author .sotsot-text-link{font-size:13px;}
@media (max-width:480px){
  .sotsot-lp .sotsot-author{gap:1em;padding:1.2em 1.2em;}
  .sotsot-lp .sotsot-author__photo{width:60px;height:60px;}
}