
/* Hallmark · macrostructure: profile-detail(Split: 園の個性/観測ラベル) · tone: soft-utilitarian · anchor hue: warm-strawberry 20°
 * theme: custom (母子手帳のやさしさ×食品ラベルの精密 · paper oklch(97.5% .008 40) · accent oklch(52% .17 20))
 * v2.0(情報完成版) = v1.4のデザインのまま、確定した全情報を統合:
 *   育休ブロック(掲載なし表示+代替募集シグナル) / 実費徴収 / みんなの声(Google★+統一基準準拠の要約+送客
 *   +第三者評価+保護者の実務報告) / 出典表の拡充 / 出典なし文の削除(「担任が年度途中で変わる」)
 * 【言葉の絶対規律】人を測る語彙を使わない。測るのは環境・条件・園の行動であって、人ではない。
 * 【引用の規律】出典を言えない事実主張を書かない。口コミ要約は docs/review-summary-standard.md に従う。
 */
:root{
  --paper:oklch(97.5% 0.008 40); --paper-2:oklch(95.3% 0.013 40); --card:oklch(99.3% 0.004 40);
  --ink:oklch(27% 0.015 40); --ink-2:oklch(46% 0.02 40); --ink-3:oklch(62% 0.015 40);
  --rule-strong:oklch(30% 0.015 40); --rule:oklch(88% 0.012 40);
  --accent:oklch(52% 0.17 20); --accent-soft:oklch(94.5% 0.03 20);
  --leaf:oklch(93% 0.03 140);
  --focus:oklch(52% 0.17 20);
  --font-display:"Hiragino Maru Gothic ProN","Zen Maru Gothic","Yu Gothic",sans-serif;
  --font-body:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",system-ui,sans-serif;
  --font-data:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;
  --sp-sm:8px; --sp-md:16px; --sp-lg:24px; --sp-xl:40px; --sp-2xl:64px;
  --radius:16px; --radius-sm:10px; --ease-out:cubic-bezier(.22,1,.36,1);
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:oklch(21% 0.012 40); --paper-2:oklch(24% 0.014 40); --card:oklch(25.5% 0.014 40);
    --ink:oklch(93% 0.008 40); --ink-2:oklch(72% 0.014 40); --ink-3:oklch(56% 0.014 40);
    --rule-strong:oklch(88% 0.01 40); --rule:oklch(34% 0.014 40);
    --accent:oklch(72% 0.13 20); --accent-soft:oklch(31% 0.045 20); --leaf:oklch(32% 0.04 140); --focus:oklch(72% 0.13 20);
  }
}
:root[data-theme="dark"]{
  --paper:oklch(21% 0.012 40); --paper-2:oklch(24% 0.014 40); --card:oklch(25.5% 0.014 40);
  --ink:oklch(93% 0.008 40); --ink-2:oklch(72% 0.014 40); --ink-3:oklch(56% 0.014 40);
  --rule-strong:oklch(88% 0.01 40); --rule:oklch(34% 0.014 40);
  --accent:oklch(72% 0.13 20); --accent-soft:oklch(31% 0.045 20); --leaf:oklch(32% 0.04 140); --focus:oklch(72% 0.13 20);
}
:root[data-theme="light"]{
  --paper:oklch(97.5% 0.008 40); --paper-2:oklch(95.3% 0.013 40); --card:oklch(99.3% 0.004 40);
  --ink:oklch(27% 0.015 40); --ink-2:oklch(46% 0.02 40); --ink-3:oklch(62% 0.015 40);
  --rule-strong:oklch(30% 0.015 40); --rule:oklch(88% 0.012 40);
  --accent:oklch(52% 0.17 20); --accent-soft:oklch(94.5% 0.03 20); --leaf:oklch(93% 0.03 140); --focus:oklch(52% 0.17 20);
}
*{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:14.5px; line-height:1.95; -webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display); font-style:normal; line-height:1.45; text-wrap:balance; margin:0}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--focus); outline-offset:2px; border-radius:4px}
.tnum{font-family:var(--font-data); font-variant-numeric:tabular-nums}
.wrap{max-width:680px; margin:0 auto; padding:0 var(--sp-lg)}
.src{font-size:11px; color:var(--ink-3)}
.src a{color:var(--ink-3)}

nav{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-md); max-width:680px; margin:0 auto; padding:var(--sp-md) var(--sp-lg)}
.mark{font-family:var(--font-display); font-weight:800; font-size:14px; color:var(--ink); text-decoration:none}
.mark b{color:var(--accent)}
.back{font-size:13px; color:var(--ink-2); text-decoration:none; white-space:nowrap}
.back:hover{color:var(--ink)}

.en-hero{padding:var(--sp-lg) 0 var(--sp-xl)}
.photo{
  height:170px; border-radius:var(--radius); position:relative; overflow:hidden;
  background:
    radial-gradient(90px 60px at 82% 78%, var(--leaf) 0 60%, transparent 61%),
    radial-gradient(120px 80px at 12% 85%, var(--leaf) 0 60%, transparent 61%),
    radial-gradient(70px 70px at 88% 18%, var(--accent-soft) 0 60%, transparent 61%),
    linear-gradient(180deg, var(--card), var(--paper-2));
  border:1.5px solid var(--rule);
}
.photo span{position:absolute; left:14px; bottom:10px; font-size:11px; color:var(--ink-3)}
.en-hero h1{font-size:24px; font-weight:800; margin-top:var(--sp-md)}
.en-hero .meta{color:var(--ink-2); font-size:13px; margin-top:2px}
.tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:var(--sp-md)}
.tags span{font-family:var(--font-display); font-weight:700; font-size:12px; color:var(--ink-2); background:var(--card); border:1.5px solid var(--rule); border-radius:999px; padding:4px 13px}
.tags .src-tag{border-style:dashed; color:var(--ink-3); font-weight:400}

/* ファーストビューの要点サマリー（v2.2）: 親が最初に知りたい数字を1画面に */
.keyfacts{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:var(--sp-md)}
.kf{background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); padding:10px 12px; text-decoration:none; color:var(--ink)}
.kf:hover{border-color:var(--accent)}
.kf .k{display:block; font-size:10.5px; color:var(--ink-3); letter-spacing:.04em}
.kf .v{display:block; font-family:var(--font-display); font-weight:800; font-size:15px; line-height:1.4; margin-top:1px}
.kf .v .tnum{font-size:16px}
.kf .n{display:block; font-size:10.5px; color:var(--ink-3); font-weight:400; margin-top:1px}
@media (max-width:414px){ .keyfacts{grid-template-columns:repeat(2,1fr)} }
.gist{margin-top:var(--sp-lg); background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius); overflow:hidden}
.gist h2{font-size:11px; letter-spacing:.16em; color:var(--ink-3); font-weight:700; padding:15px 18px 0}
.gist ul{list-style:none; margin:8px 0 0; padding:0 0 4px}
.gist li{border-top:1px solid var(--rule); padding:11px 18px; font-family:var(--font-display); font-weight:700; font-size:15px; line-height:1.6}
.gist li:first-of-type{border-top:0}
.gist li .sub{display:block; font-family:var(--font-body); font-weight:400; font-size:12px; color:var(--ink-3); margin-top:1px}
.gist li.ask{padding:0}
.gist summary{cursor:pointer; list-style:none; padding:11px 44px 11px 18px; position:relative}
.gist summary::-webkit-details-marker{display:none}
.gist summary::after{content:"？"; position:absolute; right:16px; top:50%; transform:translateY(-50%);
  width:20px; height:20px; border-radius:50%; background:var(--accent-soft); color:var(--accent);
  font-family:var(--font-body); font-size:11px; font-weight:700; display:grid; place-items:center}
.gist details[open] summary::after{content:"×"; background:var(--accent); color:var(--card)}
.gist .why{margin:0; padding:0 18px 14px; font-family:var(--font-body); font-weight:400; font-size:13px; color:var(--ink-2); line-height:1.85}
.gist .why a{font-weight:700; display:inline-block; margin-top:6px}

.voice{margin-top:var(--sp-lg); background:var(--accent-soft); border-radius:var(--radius); padding:20px 22px}
.voice h2{font-size:13px; letter-spacing:.16em; color:var(--accent); font-weight:800}
.voice blockquote{margin:8px 0 0; font-family:var(--font-display); font-weight:700; font-size:17px; line-height:1.8}
.voice p{margin:8px 0 0; font-size:13px; color:var(--ink-2)}
.voice .src{display:block; margin-top:6px}
.readmore{display:inline-block; margin-top:12px; font-family:var(--font-display); font-weight:700; font-size:13px; text-decoration:none;
  background:var(--card); border:1.5px solid var(--rule); border-radius:999px; padding:7px 16px}
.readmore:hover{border-color:var(--accent)}
.policy .readmore{margin-top:4px}
.policy .src{display:block; margin-top:2px}
.policy{margin-top:var(--sp-md); display:grid; gap:var(--sp-md); background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); padding:16px 18px}
.policy b{display:block; font-family:var(--font-display); font-weight:800; font-size:12px; letter-spacing:.1em; color:var(--accent)}
.policy p{margin:3px 0 0; font-size:13.5px}

.life{padding:var(--sp-xl) 0 0}
.life h2,.env h2,.visit h2,.nearby h2,.sources h2{font-size:19px; font-weight:800}
.ch{display:flex; align-items:baseline; gap:11px; padding-bottom:9px; border-bottom:2.5px solid var(--rule-strong)}
.ch .no{font-family:var(--font-data); font-size:11px; color:var(--accent); font-weight:700; letter-spacing:.1em}
.ch-lead{color:var(--ink-2); font-size:12.5px; margin:10px 0 0; max-width:36em}
.life .grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr)); gap:var(--sp-md); margin-top:var(--sp-md)}
.life .cell{background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); padding:12px 15px}
.life .cell b{display:block; font-family:var(--font-display); font-size:13px; font-weight:800}
.life .cell p{margin:2px 0 0; font-size:12.5px; color:var(--ink-2)}
.sub-h{font-size:15px; font-weight:800; margin-top:var(--sp-lg)}
.basics{width:100%; border-collapse:collapse; margin-top:8px; font-size:13.5px; background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); overflow:hidden}
.basics th{font-weight:400; color:var(--ink-2); text-align:left; padding:9px 16px; width:44%}
.basics td{font-weight:700; text-align:right; padding:9px 16px}
.basics td small{display:block; font-weight:400; color:var(--ink-3); font-size:11px}
.basics tr + tr{border-top:1px solid var(--rule)}
.basics .quiet{color:var(--ink-3); font-weight:400}
.ages{width:100%; border-collapse:collapse; margin-top:8px; font-size:13px; background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); overflow:hidden; text-align:center}
.ages th,.ages td{padding:7px 4px; border-top:1px solid var(--rule)}
.ages thead th{border-top:0; color:var(--ink-2); font-weight:400; font-size:12px}
.ages tbody th{font-weight:400; color:var(--ink-2); font-size:12px; width:16%}
.ages td{font-weight:700}
.staff{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px}
.staff span{background:var(--card); border:1.5px solid var(--rule); border-radius:999px; padding:5px 14px; font-size:12.5px; color:var(--ink-2)}
.staff b{color:var(--ink); margin-left:4px; font-size:14px}
.chips{display:flex; flex-wrap:wrap; gap:7px; margin-top:8px}
.chips span{font-size:12.5px; color:var(--ink-2); background:var(--card); border:1.5px solid var(--rule); border-radius:999px; padding:5px 13px}
.chips .off{color:var(--ink-3); border-style:dashed}

.env{padding:var(--sp-2xl) 0 0}
.env .intro{color:var(--ink-2); font-size:13px; margin:6px 0 var(--sp-md); max-width:38em}
.label{background:var(--card); border:2.5px solid var(--rule-strong); border-radius:var(--radius); overflow:hidden; box-shadow:0 2px 0 var(--rule)}
.label-head{display:flex; justify-content:space-between; align-items:baseline; gap:var(--sp-md); padding:12px 20px; border-bottom:2.5px solid var(--rule-strong)}
.label-head .kind{font-family:var(--font-display); font-weight:800; font-size:13px; letter-spacing:.14em}
.label-head .upd{font-size:11px; color:var(--ink-3)}
.label table{width:100%; border-collapse:collapse; font-size:13.5px}
.label th{font-weight:400; color:var(--ink-2); text-align:left; padding:10px 20px; width:52%; vertical-align:top}
.label td{font-weight:700; text-align:right; padding:10px 20px; vertical-align:top}
.label tr{border-top:1px solid var(--rule)}
.label tr:first-child{border-top:0}
.label td small{display:block; font-weight:400; color:var(--ink-3); font-size:11px; line-height:1.6}
.label .quiet{color:var(--ink-3); font-weight:400}
.days{padding:18px 20px 4px}
.days-lead{margin:0; font-size:13px; color:var(--ink-2)}
.days-fig{margin:2px 0 0; font-family:var(--font-data); font-variant-numeric:tabular-nums; font-size:54px; font-weight:600; line-height:1.05; letter-spacing:-.03em; color:var(--ink)}
.days-fig .u{font-family:var(--font-display); font-size:.36em; font-weight:800; color:var(--accent); margin-left:.08em}
.days-say{margin:4px 0 0; font-family:var(--font-display); font-weight:800; font-size:17px; line-height:1.6}
.days-say.lead-say{margin:0 0 8px; font-size:20px; line-height:1.55}
.days-say.lead-say em{font-style:normal; color:var(--accent)}
.days-fig .fig-cap{font-family:var(--font-body); font-size:11px; font-weight:400; color:var(--ink-3); margin-left:10px; letter-spacing:.06em}
.days-say .since{display:block; font-family:var(--font-body); font-weight:400; font-size:12.5px; color:var(--ink-2); margin-top:2px}
.scale{padding:2px 20px 14px}
.scale-track{position:relative; height:6px; border-radius:3px; background:var(--paper-2)}
.scale-track .med{position:absolute; top:-4px; bottom:-4px; left:38%; width:2px; background:var(--ink-3)}
.scale-track .me{position:absolute; top:50%; left:70%; width:13px; height:13px; border-radius:50%; background:var(--accent); border:2.5px solid var(--card); transform:translate(-50%,-50%)}
.scale-cap{display:flex; justify-content:space-between; font-size:10.5px; color:var(--ink-3); margin-top:6px}
.scale-cap b{color:var(--ink-2)}
.wage{padding:16px 20px 14px; border-top:2px solid var(--rule-strong)}
.wage-h{margin:0; font-family:var(--font-display); font-weight:800; font-size:12px; letter-spacing:.12em; color:var(--ink)}
.wage-say{margin:6px 0 0; font-family:var(--font-display); font-weight:700; font-size:15px; line-height:1.7}
.wage-say b{color:var(--accent)}
.wage-note{margin:8px 0 0; font-size:11.5px; color:var(--ink-3); line-height:1.8}
.wage .src{display:block; margin-top:8px}
.tl{padding:14px 20px 4px; border-top:1px solid var(--rule)}
.tl h4{margin:0 0 8px; font-family:var(--font-display); font-weight:800; font-size:11px; letter-spacing:.14em; color:var(--ink-3)}
.tl ol{list-style:none; margin:0; padding:0}
.tl li{display:flex; gap:12px; padding:5px 0 5px 14px; position:relative; font-size:13px; align-items:baseline}
.tl li::before{content:""; position:absolute; left:2px; top:12px; width:7px; height:7px; border-radius:50%; background:var(--rule); border:1.5px solid var(--card)}
.tl li::after{content:""; position:absolute; left:5px; top:19px; bottom:-5px; width:1.5px; background:var(--rule)}
.tl li:last-child::after{display:none}
.tl li.now::before{background:var(--accent); width:9px; height:9px; left:1px}
.tl li.now span{font-weight:700}
.tl time{flex:0 0 62px; color:var(--ink-3); font-size:12px}
.tl li.now em{display:block; font-style:normal; font-weight:400; font-size:11.5px; color:var(--ink-2); margin-top:1px}
.tl-note{margin:8px 0 4px; font-size:11px; color:var(--ink-3); line-height:1.7}
.basis{padding:14px 20px; border-top:1px solid var(--rule); background:var(--accent-soft)}
.basis p{margin:0; font-size:13px; line-height:1.85; color:var(--ink-2)}
.basis b{color:var(--ink); font-family:var(--font-display)}
.basis .src{display:block; margin-top:8px}
.caveat-inline{display:flex; gap:10px; padding:12px 20px; border-top:2.5px solid var(--rule-strong); background:var(--paper-2); font-size:12px; color:var(--ink-2)}
.caveat-inline .i{flex:0 0 auto; font-family:var(--font-display); font-weight:800; color:var(--accent)}
.label-foot{display:flex; flex-wrap:wrap; gap:var(--sp-md) var(--sp-lg); padding:11px 20px; border-top:1px solid var(--rule); font-size:12px}
.label-foot a{text-decoration:none; font-weight:700}
.label-foot a:hover{text-decoration:underline}
.reply{margin-top:var(--sp-md); padding:13px 16px; background:var(--card); border:1.5px solid var(--rule); border-left:4px solid var(--accent); border-radius:var(--radius-sm); font-size:12.5px; color:var(--ink-2)}
.reply b{color:var(--ink); font-family:var(--font-display)}

/* みんなの声（v2.0追加） */
.gcard{margin-top:8px; background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); overflow:hidden}
.gcard .ghead{display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:12px 16px; border-bottom:1px solid var(--rule)}
.gcard .gstar{font-family:var(--font-display); font-weight:800; font-size:17px}
.gcard .gstar .tnum{font-size:19px}
.gcard .gsrc{font-size:11px; color:var(--ink-3)}
.gsum{padding:6px 16px 12px; font-size:13px}
.gsum .gn{font-size:11px; color:var(--ink-3); display:block; margin:6px 0 2px}
.gsum ul{list-style:none; margin:0; padding:0}
.gsum li{padding:6px 0; border-bottom:1px dotted var(--rule)}
.gsum li:last-child{border-bottom:0}
/* 口コミ本文・投稿者名は他人が書いた文字列。長い連続語で375px幅を割らせない。 */
.gcard,.gsum,.gsum li,.gsum .src,.gfoot{min-width:0; overflow-wrap:anywhere; word-break:break-word}
.gsum li .src{display:block; margin-top:4px}
.gcard .ghead{flex-wrap:wrap}
.gsum .gctx{display:block; font-size:11.5px; color:var(--ink-3); margin-top:3px; padding-left:12px; border-left:2px solid var(--accent-soft); line-height:1.7}
.gfoot{padding:10px 16px; border-top:1px solid var(--rule); font-size:12.5px;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 14px}
/* Google の表示要件（地図なしでPlacesのデータを出すときはロゴが要る）。
   素材はGoogle配布の公式SVGで、明暗テーマで差し替える。 */
.glogo img{display:block; height:16px; width:auto}
.glogo .dark{display:none}
@media (prefers-color-scheme:dark){
  .glogo .light{display:none} .glogo .dark{display:block}
}
:root[data-theme="dark"] .glogo .light{display:none}
:root[data-theme="dark"] .glogo .dark{display:block}
:root[data-theme="light"] .glogo .light{display:block}
:root[data-theme="light"] .glogo .dark{display:none}
.gfoot a{font-weight:700; text-decoration:none}
.gfoot a:hover{text-decoration:underline}
.panel-cta{margin-top:8px; background:var(--accent-soft); border-radius:var(--radius-sm); padding:14px 16px; font-size:13px; color:var(--ink-2)}
.panel-cta b{font-family:var(--font-display); color:var(--ink)}
.panel-cta .items{display:flex; flex-wrap:wrap; gap:6px; margin:8px 0}
.panel-cta .items span{font-size:11.5px; background:var(--card); border:1px solid var(--rule); border-radius:999px; padding:3px 10px; color:var(--ink-3)}

.nearby{padding:var(--sp-2xl) 0 0}
.nb-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr)); gap:var(--sp-md); margin-top:var(--sp-md)}
.nb{display:block; background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); padding:12px 15px; text-decoration:none; color:var(--ink)}
.nb:hover{border-color:var(--ink-3)}
.nb b{font-family:var(--font-display); font-size:13.5px; display:block}
.nb .m{font-size:11px; color:var(--ink-2); display:block; margin-top:1px}
.nb .s{font-size:11.5px; color:var(--ink-2); display:block; margin-top:6px}
.nb .s i{font-style:normal; display:inline-block; vertical-align:middle; width:56px; height:4px; border-radius:2px; background:var(--paper-2); position:relative; margin:0 5px}
.nb .s i em{position:absolute; top:50%; width:8px; height:8px; border-radius:50%; background:var(--accent); transform:translate(-50%,-50%)}
.nb .s .say{display:block; font-style:normal; font-size:11px; color:var(--ink-3); margin-top:2px}
.visit{padding:var(--sp-2xl) 0}
.visit .qa{margin-top:var(--sp-md); display:grid; gap:8px}
.visit .q{background:var(--card); border:1.5px solid var(--rule); border-radius:999px; padding:9px 18px; font-size:13px}
.visit .q b{font-family:var(--font-display); color:var(--accent); margin-right:6px}
.visit .note{font-size:12px; color:var(--ink-3); margin-top:8px}
.sources{padding:var(--sp-2xl) 0 0}
.data-tbl{width:100%; border-collapse:collapse; margin-top:var(--sp-md); font-size:12.5px; background:var(--card); border:1.5px solid var(--rule); border-radius:var(--radius-sm); overflow:hidden}
.data-tbl th,.data-tbl td{text-align:left; padding:8px 14px; border-top:1px solid var(--rule); vertical-align:top}
.data-tbl thead th{border-top:0; font-size:11px; color:var(--ink-3); letter-spacing:.08em; font-weight:700; background:var(--paper-2)}
.data-tbl td:last-child{color:var(--ink-3); white-space:nowrap; font-family:var(--font-data); font-size:11.5px}

footer{border-top:2.5px solid var(--rule-strong); margin-top:var(--sp-xl); padding:var(--sp-xl) 0 var(--sp-2xl); background:var(--paper-2)}
footer p{color:var(--ink-2); font-size:12.5px; max-width:42em; margin:0 0 6px}
footer .fine{color:var(--ink-3); font-size:11px}
.updated{display:flex; flex-wrap:wrap; gap:6px 22px; margin:var(--sp-md) 0 var(--sp-sm); padding-top:var(--sp-md); border-top:1px solid var(--rule)}
.updated div{display:flex; gap:8px; align-items:baseline}
.updated dt{font-size:11.5px; color:var(--ink-3); margin:0}
.updated dd{font-size:11.5px; color:var(--ink-2); margin:0; font-weight:700}

@media (max-width:414px){
  .label th{width:46%}
  .label-head{flex-direction:column; gap:2px}
}

/* 実写真を出すときだけの差分（見本は装飾ボックス） */
.photo.has-img{height:auto; background:var(--card); padding:0}
/* 直下の子だけを狙う。子孫セレクタにすると、帰属行の中のアバターまで
   幅100%・display:block にしてしまう（実測: 16pxのはずのアバターが100pxで出た）。 */
.photo.has-img > img{display:block; width:100%; height:auto; border-radius:calc(var(--radius) - 2px)}
.photo.has-img > span{position:static; display:block; padding:7px 14px}

/* 閲覧時にGoogleから取り直す写真。取れなければ枠のまま（レイアウトは変えない）。 */
figure.photo{margin:0}
.photo .photo-fallback{position:absolute; left:14px; bottom:10px; font-size:11px; color:var(--ink-3)}
.photo.has-img .photo-fallback{position:static}
/* 帰属は画像のすぐ下。Googleの表示要件なので、折り返しても必ず出す。 */
.photo-credit{
  position:static; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px;
  padding:7px 14px 9px; font-size:11px; line-height:1.7; color:var(--ink-3);
}
.photo-credit a{color:var(--ink-3)}
.photo-credit .who{display:inline-flex; align-items:center; gap:5px; color:var(--ink-2)}
.photo-credit .avatar{width:16px; height:16px; border-radius:50%; display:block}
.photo-credit .report{margin-left:auto}
.crumbs{font-size:11.5px; color:var(--ink-3); margin:0 0 var(--sp-sm)}
.crumbs a{color:var(--ink-3)}
.photo-sv iframe{width:100%; height:100%; border:0; display:block; min-height:220px}

/* ---- 一覧ページ ---- */
.list-hero{padding:var(--sp-lg) 0 var(--sp-md)}
.list-hero h1{font-size:24px; font-weight:800}
.list-hero p{color:var(--ink-2); font-size:13px; margin:6px 0 0}
.finder{margin:var(--sp-md) 0 0}
.finder input{width:100%; font:inherit; font-size:16px; color:var(--ink);
  background:var(--card); border:1.5px solid var(--rule); border-radius:999px;
  padding:11px 18px}
.finder input:focus{outline:2px solid var(--focus); outline-offset:2px}
.finder .count{font-size:12px; color:var(--ink-3); margin:8px 0 0}
.cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));
  gap:10px; margin:var(--sp-md) 0 0; padding:0; list-style:none}
.cards a{display:block; background:var(--card); border:1.5px solid var(--rule);
  border-radius:var(--radius-sm); padding:12px 15px; text-decoration:none; color:var(--ink)}
.cards a:hover{border-color:var(--accent)}
.cards b{display:block; font-family:var(--font-display); font-size:14px; font-weight:800}
.cards .m{display:block; font-size:11.5px; color:var(--ink-2); margin-top:2px}
.cards .n{display:block; font-size:11px; color:var(--ink-3); margin-top:4px}
.empty{margin:var(--sp-md) 0; color:var(--ink-3); font-size:13px}
.prose{max-width:42em}
.prose h2{font-size:17px; font-weight:800; margin:var(--sp-lg) 0 6px}
.prose p,.prose li{font-size:13.5px; color:var(--ink-2); line-height:1.95}
.prose ol,.prose ul{padding-left:1.2em}
