:root {
  /* ── メルヘン＆かわいい パステル配色 ── */
  --ink: #6b5563;          /* やわらかいプラムブラウン（読みやすさ維持） */
  --ink-2: #8a7480;
  --ink-3: #b3a3ac;
  --amber: #ef9fb4;        /* メインの差し色＝やさしいコーラルピンク */
  --amber-dark: #d97e99;   /* 濃いめピンク（ホバー等） */
  --pink: #ef9fb4;
  --mint: #a3d9c9;         /* サブ差し色：ミント */
  --lav: #c9b6e6;          /* サブ差し色：ラベンダー */
  --gold: #f0c56b;         /* ほんのり金 */
  --paper: #fff7f6;        /* 生成りピンクの背景 */
  --card: #ffffff;
  --line: #f6e3e8;         /* やわらかいピンクの罫 */
  --night: #f6e9f2;        /* 旧・夜色 → やさしい薄紫ピンクに */
  --radius: 18px;
  /* 見出しは丸ゴシックでかわいく（Mac/iOSは丸ゴが出る） */
  --serif: "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN", "Zen Maru Gothic", "Rounded Mplus 1c", "Yu Gothic", sans-serif;
  --sans: "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN", -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.95;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }

/* ============ ヘッダー ============ */
.hd {
  background: var(--night);
  color: #f4f1ea;
}
.hd__in {
  max-width: 1120px;
  margin: 0 auto;
  padding: 1.4rem 1.5rem;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.hd__logo {
  font-family: var(--serif);
  font-size: 1.5rem;
  letter-spacing: .22em;
  margin: 0;
  text-decoration: none;
  color: #f4f1ea;
}
.hd__logo em {
  font-style: normal;
  color: var(--amber);
}
.hd__sub {
  font-size: .7rem;
  letter-spacing: .18em;
  color: #9c968a;
  margin: .35rem 0 0;
}
.hd__nav {
  display: flex;
  gap: 1.6rem;
  font-size: .82rem;
  letter-spacing: .1em;
}
.hd__nav a { text-decoration: none; color: #d8d3c8; }
.hd__nav a:hover { color: var(--amber); }

/* ============ ヒーロー ============ */
.hero {
  background: var(--night);
  color: #ece7dd;
  border-top: 1px solid #2a282e;
  padding: 3.5rem 1.5rem 4rem;
  text-align: center;
}
.hero h1 {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3.6vw, 2.3rem);
  font-weight: 400;
  letter-spacing: .1em;
  line-height: 1.75;
  margin: 0 0 1rem;
}
.hero p {
  font-size: .88rem;
  color: #9c968a;
  letter-spacing: .06em;
  margin: 0;
}
.hero__rule {
  width: 44px;
  height: 1px;
  background: var(--amber);
  margin: 1.6rem auto 0;
}

/* ============ レイアウト ============ */
.wrap { max-width: 1120px; margin: 0 auto; padding: 3rem 1.5rem 4rem; }
.sec__head {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1.75rem;
}
.sec__head h2 {
  font-family: var(--serif);
  font-size: 1.15rem;
  letter-spacing: .16em;
  font-weight: 400;
  margin: 0;
}
.sec__head span { font-size: .7rem; color: var(--ink-3); letter-spacing: .16em; }
.sec__head::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line);
}

/* ============ 店カード ============ */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.75rem;
}
.shop {
  background: var(--card);
  border: 1px solid var(--line);
  text-decoration: none;
  display: block;
  transition: transform .25s ease, box-shadow .25s ease;
}
.shop:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(28, 27, 25, .1);
}
.shop__img {
  aspect-ratio: 3 / 2;
  background:
    radial-gradient(120% 90% at 30% 20%, #2c2a30 0%, #17161a 70%);
  display: grid;
  place-items: center;
  position: relative;
}
.shop__img span {
  font-family: var(--serif);
  color: var(--amber);
  letter-spacing: .3em;
  font-size: .72rem;
}
.shop__area {
  position: absolute;
  top: 0; left: 0;
  background: var(--amber);
  color: #fff;
  font-size: .66rem;
  letter-spacing: .14em;
  padding: .3rem .7rem;
}
.shop__body { padding: 1.15rem 1.25rem 1.35rem; }
.shop__genre { font-size: .68rem; color: var(--ink-3); letter-spacing: .14em; }
.shop__name {
  font-family: var(--serif);
  font-size: 1.16rem;
  line-height: 1.55;
  margin: .35rem 0 .6rem;
  color: var(--ink);
}
.shop:hover .shop__name { color: var(--amber-dark); }
.shop__lead {
  font-size: .82rem;
  color: var(--ink-2);
  margin: 0 0 .9rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.shop__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: .7rem;
  font-size: .72rem;
  color: var(--ink-3);
}

/* ============ 評価 ============ */
.rate { color: var(--amber); letter-spacing: .12em; font-size: .8rem; }
.rate b { color: var(--ink); font-size: .88rem; margin-left: .35rem; font-weight: 600; }

/* ============ 記事本文 ============ */
.article { max-width: 760px; margin: 0 auto; }
.crumb { font-size: .72rem; color: var(--ink-3); letter-spacing: .08em; margin-bottom: 1.25rem; }
.crumb a { color: var(--ink-3); }
.article__area {
  display: inline-block;
  background: var(--amber);
  color: #fff;
  font-size: .68rem;
  letter-spacing: .16em;
  padding: .3rem .8rem;
}
.article h1 {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 4vw, 2.05rem);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: .04em;
  margin: 1rem 0 1.1rem;
}
.article__meta {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
  font-size: .75rem;
  color: var(--ink-3);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: .85rem 0;
  margin-bottom: 2.5rem;
}

/* 店舗情報ボックス */
.info {
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 3px solid var(--amber);
  padding: 1.35rem 1.5rem;
  margin: 2.5rem 0;
}
.info h3 {
  font-family: var(--serif);
  font-size: .95rem;
  letter-spacing: .14em;
  font-weight: 400;
  margin: 0 0 1rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--line);
}
.info dl { display: grid; grid-template-columns: 6.5rem 1fr; gap: .55rem 1rem; margin: 0; font-size: .85rem; }
.info dt { color: var(--ink-3); }
.info dd { margin: 0; }

.body h2 {
  font-family: var(--serif);
  font-size: 1.28rem;
  font-weight: 400;
  letter-spacing: .06em;
  margin: 3rem 0 1.2rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--line);
  position: relative;
}
.body h2::after {
  content: '';
  position: absolute;
  left: 0; bottom: -1px;
  width: 3rem; height: 1px;
  background: var(--amber);
}
.body h3 { font-size: 1.02rem; margin: 2.1rem 0 .8rem; }
.body p { margin: 0 0 1.4rem; }
.body img { max-width: 100%; height: auto; }
.body blockquote {
  margin: 1.75rem 0;
  padding: 1.1rem 1.4rem;
  background: #f3efe7;
  border-left: 3px solid var(--ink-3);
  font-size: .9rem;
  color: var(--ink-2);
}
.body blockquote p:last-child { margin: 0; }
.body table { width: 100%; border-collapse: collapse; margin: 1.75rem 0; font-size: .88rem; }
.body th, .body td { border-bottom: 1px solid var(--line); padding: .7rem .5rem; text-align: left; }
.body th { color: var(--ink-3); font-weight: 500; }

.codoc-entries { margin: 3rem 0 1rem; }

/* ============ フッター ============ */
.ft {
  background: var(--night);
  color: #8a8378;
  padding: 2.75rem 1.5rem;
  font-size: .76rem;
  letter-spacing: .08em;
}
.ft__in { max-width: 1120px; margin: 0 auto; text-align: center; }
.ft__logo {
  font-family: var(--serif);
  font-size: 1.05rem;
  letter-spacing: .24em;
  color: #f4f1ea;
  margin: 0 0 .6rem;
}
.ft__note { max-width: 620px; margin: 1.5rem auto 0; line-height: 1.85; color: #6d675e; font-size: .72rem; }

/* ── 動的サイト用の追加 ─────────────────── */
.rank{list-style:none;margin:0 0 2.5rem;padding:0;background:#fff;border:1px solid var(--line);border-radius:4px}
.rank li{display:flex;align-items:center;gap:.9rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line);font-size:.92rem}
.rank li:last-child{border-bottom:none}
.rank__no{background:var(--amber);color:#fff;font-weight:700;width:1.7rem;height:1.7rem;flex:none;display:grid;place-items:center;border-radius:2px;font-size:.8rem}
.rank__area{margin-left:auto;font-size:.75rem;color:var(--ink-3)}
.rank a{text-decoration:none}
.rank a:hover{color:var(--amber-dark)}
.card__genre{font-size:.68rem;color:var(--ink-3);letter-spacing:.14em;margin:0}
.card__lead{font-size:.82rem;color:var(--ink-2);margin:.5rem 0 .9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card__foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.7rem;font-size:.72rem;color:var(--ink-3)}
.article__img{width:100%;height:auto;border-radius:4px;margin:0 0 2rem}
.empty{color:var(--ink-3);font-size:.9rem;padding:2rem 0}
.prof{text-align:center;background:#fff;border:1px solid var(--line);border-radius:4px;padding:1.75rem 1.5rem}
.prof__ico{width:88px;height:88px;border-radius:50%;object-fit:cover;margin:0 auto 1rem;display:block}
.prof__ico--ph{background:var(--night);color:var(--amber);display:grid;place-items:center;font-size:2.2rem}
.prof__name{font-weight:700;margin:0 0 .8rem}
.prof__bio{font-size:.82rem;color:var(--ink-2);text-align:left;line-height:1.85;margin:0}

/* ── 記事カード ─────────────────────────── */
.card{background:#fff;border:1px solid var(--line);margin-bottom:1.75rem;transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(28,27,25,.1)}
.card__link{display:grid;grid-template-columns:320px minmax(0,1fr);gap:1.5rem;padding:1.25rem;text-decoration:none;color:inherit}
@media(max-width:700px){.card__link{grid-template-columns:1fr}}
.card__thumb{position:relative;aspect-ratio:3/2;background:radial-gradient(120% 90% at 30% 20%,#2c2a30 0%,#17161a 70%);display:grid;place-items:center;border-radius:3px;overflow:hidden}
.card__thumb .ph{font-family:var(--serif);color:var(--amber);letter-spacing:.3em;font-size:.72rem}
.card__thumb .badge{position:absolute;top:0;left:0;background:var(--amber);color:#fff;font-size:.66rem;letter-spacing:.14em;padding:.3rem .7rem}
.card__title{font-family:var(--serif);font-size:1.25rem;line-height:1.55;margin:.35rem 0 .6rem;color:var(--ink)}
.card:hover .card__title{color:var(--amber-dark)}

/* ══════ 記事本文の自動装飾 ══════════════════ */
.body{font-size:1.02rem;line-height:2.05;color:var(--ink)}
.body p{margin:0 0 1.5rem}

/* 見出し：グラデーションの帯 */
.body h2{
  font-family:var(--serif);font-size:1.35rem;font-weight:400;letter-spacing:.04em;
  margin:3rem 0 1.3rem;padding:.85rem 1.2rem;color:#fff;border-radius:4px;
  background:linear-gradient(100deg,#1c1b19 0%,#3a332a 55%,#6b5636 100%);
  box-shadow:0 2px 10px rgba(28,27,25,.12)
}
.body h3{
  font-size:1.12rem;margin:2.4rem 0 1rem;padding:.2rem 0 .2rem .95rem;
  border-left:4px solid var(--amber);
  background:linear-gradient(90deg,rgba(184,135,59,.10),transparent 70%)
}

/* 強調：赤系・やや大きい太字 */
.body strong.em{
  font-size:1.1em;font-weight:700;color:#b8383a;
  background:linear-gradient(transparent 62%,rgba(184,56,58,.14) 62%);
  padding:0 .12em
}
/* マーカー */
.body mark{
  background:linear-gradient(transparent 55%,rgba(184,135,59,.38) 55%);
  color:inherit;font-weight:600;padding:0 .15em
}
/* セリフ「」 */
.body .quote{color:#8e6626;font-weight:600}
/* 数値・価格・時刻 */
.body .num{color:#2c6b6b;font-weight:700;font-feature-settings:"tnum"}
/* 感嘆で終わる短文 */
.body .excite{
  color:#c2410c;font-weight:700;font-size:1.06em;
  background:linear-gradient(transparent 60%,rgba(194,65,12,.12) 60%)
}

/* 段落の性格ごとの見た目 */
.body .p-lead{
  font-size:1.1rem;font-weight:600;line-height:1.95;
  padding:1.2rem 1.4rem;border-radius:6px;margin-bottom:1.8rem;
  background:linear-gradient(135deg,#fdf9f2,#f6efe3);border:1px solid #ecdfc9
}
.body .p-hot{
  padding:1.1rem 1.3rem;border-radius:6px;margin-bottom:1.8rem;
  background:linear-gradient(135deg,#fff8f4,#ffefe6);
  border-left:4px solid #e07a3f
}
.body .p-warn{
  padding:1.1rem 1.3rem;border-radius:6px;margin-bottom:1.8rem;
  background:#f7f7f5;border-left:4px solid #9c968a;color:var(--ink-2);font-size:.95rem
}

/* 箇条書き */
.body ul{list-style:none;padding:0;margin:0 0 1.7rem}
.body li{position:relative;padding:.5rem 0 .5rem 1.6rem;border-bottom:1px dotted var(--line)}
.body li:last-child{border-bottom:none}
.body li::before{
  content:'';position:absolute;left:.35rem;top:1.15rem;
  width:7px;height:7px;border-radius:50%;
  background:linear-gradient(135deg,var(--amber),#8e6626)
}

/* 引用 */
.body blockquote{
  margin:2rem 0;padding:1.3rem 1.5rem;border-radius:6px;
  background:linear-gradient(135deg,#faf8f4,#f2ede4);
  border-left:4px solid var(--amber);position:relative
}
.body blockquote p{margin:0 0 .8rem;font-size:.96rem;color:var(--ink-2)}
.body blockquote p:last-child{margin:0}

.body hr{border:0;height:1px;margin:2.8rem 0;
  background:linear-gradient(90deg,transparent,var(--line) 20%,var(--line) 80%,transparent)}
.body a{color:#8e6626;text-decoration:underline;text-underline-offset:3px}
.body s{color:var(--ink-3)}

@media(max-width:600px){
  .body{font-size:.97rem;line-height:1.95}
  .body h2{font-size:1.18rem;padding:.7rem 1rem}
}

/* ══════ 有料エリア ══════════════════════════ */
.paywall{margin:3.5rem 0 1rem}
.paywall__line{
  display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;
  color:var(--amber);font-size:.82rem;letter-spacing:.18em;font-weight:700
}
.paywall__line::before,.paywall__line::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,transparent,var(--amber),transparent)
}
.paywall__box{
  background:linear-gradient(160deg,#fdfbf7 0%,#f6efe3 55%,#efe4d1 100%);
  border:1px solid #e8dcc6;border-radius:10px;
  padding:2rem 1.9rem 1.7rem;
  box-shadow:0 6px 24px rgba(140,110,60,.10)
}
.paywall__lead{font-size:1.05rem;line-height:1.9;margin:0 0 1.2rem;color:var(--ink)}
.paywall__lead strong{color:#8e6626;font-weight:700}
.paywall__list{list-style:none;margin:0 0 1.7rem;padding:0}
.paywall__list li{
  position:relative;padding:.45rem 0 .45rem 1.6rem;
  font-size:.92rem;color:var(--ink-2);border-bottom:1px dotted #e3d6be
}
.paywall__list li:last-child{border-bottom:none}
.paywall__list li::before{
  content:'▸';position:absolute;left:.3rem;color:var(--amber);font-size:.85rem
}
.paywall .codoc-entries{margin:0}
.paywall__note{
  font-size:.75rem;color:#8a8378;line-height:1.8;margin:1.3rem 0 0;
  padding-top:1rem;border-top:1px solid #e8dcc6
}
@media(max-width:600px){ .paywall__box{padding:1.5rem 1.2rem 1.3rem} }

/* ============ トップページ 2カラム（右にプロフィールとランキング） ============ */
.wrap--top{
  display:grid;
  grid-template-columns:minmax(0,1fr) 290px;
  gap:2.5rem;
  align-items:start;
}
@media(max-width:900px){ .wrap--top{ grid-template-columns:1fr; gap:2rem } }

.side{ position:sticky; top:1.5rem; display:flex; flex-direction:column; gap:1.25rem }
@media(max-width:900px){ .side{ position:static } }
.side__box{ background:#fff; border:1px solid var(--line); border-radius:4px; padding:1.25rem 1.25rem }
.side__head{
  font-family:var(--serif); font-size:.9rem; letter-spacing:.12em;
  margin:0 0 .9rem; padding-bottom:.6rem; border-bottom:1px solid var(--line);
}
.side__note{ font-size:.8rem; color:var(--ink-2); line-height:1.85; margin:0 }

/* サイドに置くランキング（枠は side__box が持つので中身だけ） */
.rank--side{ background:none; border:none; margin:0; padding:0 }
.rank--side li{ padding:.55rem 0; gap:.7rem; font-size:.84rem; line-height:1.5; align-items:flex-start }
.rank--side .rank__no{ margin-top:.1rem; width:1.4rem; height:1.4rem; font-size:.72rem }
.rank__area-block + .rank__area-block{ margin-top:1rem; padding-top:.9rem; border-top:1px solid var(--line) }
.rank__area-name{
  font-size:.72rem; letter-spacing:.14em; color:var(--amber-dark);
  margin:0 0 .2rem; font-weight:700;
}

/* ============ 小型カード（アイキャッチ＋タイトル＋評価だけ） ============ */
.minis{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:1.5rem 1.25rem;
}
@media(max-width:420px){ .minis{ grid-template-columns:1fr 1fr; gap:1.1rem .9rem } }

.mini{ background:none; border:none; margin:0 }
.mini__link{ display:block; text-decoration:none; color:inherit }
.mini__thumb{
  position:relative; aspect-ratio:4/3; border-radius:3px; overflow:hidden;
  background-color:#17161a; background-size:cover; background-position:center;
  background-image:radial-gradient(120% 90% at 30% 20%,#2c2a30 0%,#17161a 70%);
  display:grid; place-items:center;
  transition:transform .25s, box-shadow .25s;
}
.mini__link:hover .mini__thumb{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(28,27,25,.16) }
.mini__thumb .ph{ font-family:var(--serif); color:var(--amber); letter-spacing:.28em; font-size:.62rem }
.mini__badge{
  position:absolute; top:0; left:0; background:var(--amber); color:#fff;
  font-size:.62rem; letter-spacing:.12em; padding:.24rem .6rem;
}
.mini__title{
  font-family:var(--serif); font-size:.95rem; line-height:1.6;
  margin:.65rem 0 .3rem; color:var(--ink); font-weight:400;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.mini__link:hover .mini__title{ color:var(--amber-dark) }
.mini__rate{ margin:0; font-size:.72rem; color:var(--amber-dark); letter-spacing:.04em }
.mini__rate b{ color:var(--ink-3); font-weight:400; margin-left:.2rem }

/* 年代別バッジ（記事メタ） */
.age-badge{
  display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;
  color:#8e6626;background:linear-gradient(135deg,#fdf6ea,#f6ecd8);
  border:1px solid #ecdcc0;border-radius:20px;padding:.15rem .7rem
}

/* ══════════════════════════════════════════════════════════
   🍬 メルヘン & かわいい 上書きテーマ（後勝ち）
   やさしいパステル・丸ゴシック・ふんわり影・絵本みたいな背景
   ══════════════════════════════════════════════════════════ */

/* ── 背景：ふんわりパステルにキラキラ・水玉のメルヘン柄 ── */
body{
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 150 150'%3E%3Cg fill='none'%3E%3Cpath d='M28 24l2.4 7 7 2.4-7 2.4-2.4 7-2.4-7-7-2.4 7-2.4z' fill='%23f9d3df'/%3E%3Cpath d='M112 92l1.9 5.6 5.6 1.9-5.6 1.9-1.9 5.6-1.9-5.6-5.6-1.9 5.6-1.9z' fill='%23e0cef2'/%3E%3Cpath d='M78 128l1.5 4.4 4.4 1.5-4.4 1.5-1.5 4.4-1.5-4.4-4.4-1.5 4.4-1.5z' fill='%23c7eadf'/%3E%3Ccircle cx='98' cy='34' r='3.2' fill='%23c6ebe0'/%3E%3Ccircle cx='44' cy='104' r='2.8' fill='%23f9e2b4'/%3E%3Ccircle cx='128' cy='40' r='2.4' fill='%23f9d3df'/%3E%3Ccircle cx='18' cy='78' r='2.4' fill='%23e0cef2'/%3E%3Ccircle cx='70' cy='66' r='1.8' fill='%23f9d3df'/%3E%3C/g%3E%3C/svg%3E");
  background-attachment:fixed;
}

/* ── ヘッダー：夜色 → やさしい薄紫ピンクのグラデ ── */
.hd{
  background:linear-gradient(120deg,#fde4ee 0%,#efe6fb 100%);
  color:var(--ink);
  border-bottom:2px solid #fbdbe6;
}
.hd__logo{ color:var(--ink); font-family:var(--serif); font-weight:700; letter-spacing:.14em }
.hd__logo em{ color:var(--pink) }
.hd__sub{ color:var(--ink-3) }

/* ── ヒーロー：夢みたいなパステルのグラデ＋ふわふわ光 ── */
.hero{
  background:
    radial-gradient(55% 48% at 18% 18%, rgba(255,205,223,.75), transparent 70%),
    radial-gradient(48% 42% at 85% 22%, rgba(206,182,230,.6), transparent 72%),
    radial-gradient(52% 46% at 72% 92%, rgba(163,217,201,.45), transparent 72%),
    linear-gradient(160deg,#fde7f0 0%,#f2ecfb 55%,#fff7f6 100%);
  color:var(--ink);
  border-top:none;
  padding:4rem 1.5rem 4.5rem;
}
.hero h1{
  font-family:var(--serif); font-weight:700; color:#7a5d6e;
  letter-spacing:.08em; text-shadow:0 2px 0 rgba(255,255,255,.6);
}
.hero h1::before{ content:'✿ '; color:var(--pink); font-size:.8em }
.hero h1::after{ content:' ✿'; color:var(--lav); font-size:.8em }
.hero p{ color:#a98ea0 }
.hero__rule{
  width:auto; height:auto; background:none; margin:1.4rem auto 0; letter-spacing:.5em;
}
.hero__rule::after{ content:'♡ ⋆ ♡'; color:var(--pink); font-size:.9rem }

/* ── セクション見出し：丸ゴ＋ちいさなお花マーク ── */
.sec__head h2{ font-family:var(--serif); font-weight:700; color:#7a5d6e; letter-spacing:.1em }
.sec__head h2::before{ content:'❀ '; color:var(--pink) }
.sec__head::after{ background:repeating-linear-gradient(90deg,#f3c9d6 0 6px,transparent 6px 12px); height:2px; border-radius:2px }
.sec__head span{ color:var(--pink); font-weight:700 }

/* ── カード類：まるっと角丸＋ふんわりピンクの影 ── */
.mini__thumb, .card, .shop, .side__box, .info, .prof{
  border-radius:var(--radius);
}
.card, .shop{ border:1.5px solid #fbe0e8; box-shadow:0 8px 22px rgba(239,159,180,.14); overflow:hidden }
.card:hover, .shop:hover{ box-shadow:0 14px 30px rgba(239,159,180,.24) }
.side__box, .info, .prof{ border:1.5px solid #fbe0e8; box-shadow:0 6px 18px rgba(239,159,180,.12) }

/* サムネの「NO IMAGE」プレースホルダも夜色 → パステル */
.mini__thumb, .card__thumb, .shop__img{
  background-image:linear-gradient(135deg,#fce4ee 0%,#eadffb 55%,#dff3ec 100%) !important;
}
.mini__thumb .ph, .card__thumb .ph, .shop__img span{ color:#d98aa5 }
.prof__ico--ph{ background:linear-gradient(135deg,#fce4ee,#eadffb); color:#d98aa5 }
.prof__name{ color:#7a5d6e }

/* ── バッジ：まんまるピンクのカプセル ── */
.mini__badge, .card__thumb .badge, .shop__area, .article__area, .badge{
  border-radius:999px !important; background:var(--pink) !important; color:#fff !important;
  box-shadow:0 2px 6px rgba(239,159,180,.4);
}
.age-badge{
  background:linear-gradient(135deg,#fde4ee,#eadffb) !important;
  border:1.5px solid #f3c9d6 !important; color:#c76f8c !important;
}

/* ── ランキング番号：まる型パステル ── */
.rank{ border:1.5px solid #fbe0e8; border-radius:var(--radius); box-shadow:0 6px 18px rgba(239,159,180,.12) }
.rank__no{
  border-radius:50%; background:linear-gradient(135deg,#f7a9c0,#c9a3e6) !important;
  box-shadow:0 2px 6px rgba(239,159,180,.4);
}
.mini__title, .card__title, .shop__name{ color:#6b5563 }
.mini__link:hover .mini__title{ color:var(--amber-dark) }

/* ── 記事本文の大見出し：黒帯 → パステルのやさしい帯 ── */
.body h2{
  background:linear-gradient(100deg,#f7a9c0 0%,#d3a0e0 55%,#a3d9c9 100%) !important;
  color:#fff !important; border:none !important; border-radius:14px !important;
  box-shadow:0 4px 14px rgba(211,160,224,.28) !important;
}
.body h2::after{ display:none }
.body h3{ border-left-color:var(--pink) }
.body .p-lead{ background:linear-gradient(135deg,#fdf0f5,#f3ecfb) !important; border-color:#f3c9d6 !important }

/* ── フッター：夜色 → やさしいパステル ── */
.ft{
  background:linear-gradient(120deg,#fde4ee,#efe6fb);
  color:#a98ea0;
}
.ft__logo{ color:#7a5d6e; font-family:var(--serif); font-weight:700 }
.ft__note{ color:#b3a3ac }

/* ── 有料エリア：やわらかピンクに ── */
.paywall__line{ color:var(--pink) }
.paywall__box{ border-radius:var(--radius) }

/* ── ボタン風リンクなどの角丸を全体的にやさしく ── */
.article__area, .shop__area{ border-radius:999px }

/* 本文中に差し込む写真 */
.body-fig{ margin:2rem 0; }
.body-fig img{
  display:block; width:100%; height:auto; border-radius:16px;
  box-shadow:0 8px 24px rgba(239,159,180,.2);
}

/* ── 地域別・年代別フィルターボタン ── */
.filters{
  display:flex; flex-direction:column; gap:.7rem;
  background:#fff; border:1.5px solid #fbe0e8; border-radius:var(--radius);
  box-shadow:0 6px 18px rgba(239,159,180,.12);
  padding:1rem 1.1rem; margin:0 0 2rem;
}
.filters__row{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem }
.filters__label{
  font-family:var(--serif); font-weight:700; font-size:.8rem; color:#7a5d6e;
  margin-right:.4rem; white-space:nowrap;
}
.chip{
  display:inline-block; text-decoration:none; font-size:.82rem; font-weight:700;
  color:#c76f8c; background:linear-gradient(135deg,#fde4ee,#eadffb);
  border:1.5px solid #f3c9d6; border-radius:999px; padding:.32rem .9rem;
  transition:transform .15s, box-shadow .15s, background .15s;
}
.chip:hover{ transform:translateY(-2px); box-shadow:0 4px 12px rgba(239,159,180,.3) }
.chip--on{ color:#fff; background:linear-gradient(135deg,#f7a9c0,#c9a3e6); border-color:transparent }
