/* 全国版 = 都道府県の選択ポータル(regional-ds 1.0.0 の style.css に重ねる。body.portal のページだけで読み込む。県版には影響しない)
   方針: 本文 16px 以上・見出しと本文の強弱・余白は詰めて密度を上げる・都道府県の選択を主役に・フォレストグリーン+ライムのアクセント
   地方の色(a0〜a5)は地図タイルと一覧の見出しで共通。装飾・写真・アニメーションは使わない */
body.portal{font-size:16px;letter-spacing:0;line-height:1.75}
.portal{--a0:#b8d9dc;--a1:#dcf89c;--a2:#e6e7a4;--a3:#f0c6ac;--a4:#bfe2bf;--a5:#9fd0bf}
.portal .a0{--rc:var(--a0)}.portal .a1{--rc:var(--a1)}.portal .a2{--rc:var(--a2)}.portal .a3{--rc:var(--a3)}.portal .a4{--rc:var(--a4)}.portal .a5{--rc:var(--a5)}
/* お知らせ帯・ヘッダー */
.pNotice{background:#0b2a23;color:#d3e4da;font-size:13px;line-height:1.5;padding:7px 0;text-align:center}
.portal .siteheader{background:var(--paper)}
.portal .nav{height:76px}
.portal .brandname{font-size:26px}
.portal .brandsub{font-size:12px;letter-spacing:.06em;margin-top:6px;color:#456354}
.portal .navlinks a{font-size:15px;color:#2f5547}
.pNavCta{background:var(--deep)!important;color:#fff!important;border-color:var(--deep)!important;font-size:14px!important;padding:0 18px!important}
.pNavCta:hover{background:#225e4c!important}
/* メインビジュアル */
.pHero{background:var(--deep);color:#fff;padding:52px 0 56px}
.pHeroGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,680px);gap:36px;align-items:center}
.pKicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:16px;font-weight:700;color:#cfe3d7}
.pBadge{background:var(--lime);color:var(--deep);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:800}
.pTitle{font-size:clamp(38px,4.4vw,62px);line-height:1.22;letter-spacing:-.04em;font-weight:900;margin:18px 0 16px}
.pTitle em{font-style:normal;color:var(--lime);display:block}
.pLead{font-size:18px;line-height:1.85;color:#dbe9e0;margin:0;max-width:34em}
.pChooser{margin-top:26px;background:var(--paper);color:var(--ink);border-radius:20px;padding:18px 20px 16px;box-shadow:0 18px 40px rgba(0,0,0,.18);max-width:620px}
.pChooserLabel{display:block;font-size:16px;font-weight:800;margin-bottom:10px}
.pChooserRow{display:flex;gap:10px}
.pChooserRow select{flex:1;min-width:0;min-height:58px;border:2px solid #9fb9a8;border-radius:13px;background:#fff;color:var(--ink);font-size:17px;font-weight:700;padding:0 14px}
.pChooserRow select:focus-visible{border-color:var(--deep)}
.pGo{min-height:58px;border:0;border-radius:13px;background:var(--lime);color:var(--deep);font-size:17px;font-weight:900;padding:0 22px;white-space:nowrap;box-shadow:inset 0 -3px 0 var(--lime2)}
.pGo:hover{background:var(--lime2)}
.pMsg{margin:8px 0 0;font-size:15px;font-weight:700;color:#8a3a12;min-height:0}
.pMsg:empty{display:none}
.pMeta{margin:16px 0 0;font-size:15px;color:#e6f0ea;font-weight:600}
.pMeta a{color:var(--lime);text-decoration:underline;text-underline-offset:4px;font-weight:700;display:inline-block;padding:6px 0}
/* 地図タイル(選択の近道) */
.pMapBox{background:#163f35;border:1px solid #2c5a4c;border-radius:24px;padding:18px 20px 20px}
.pMapHead{align-self:start;padding:2px 0 0}
.pMapCap{margin:0;font-size:20px;font-weight:900;color:#fff;letter-spacing:-.02em}
.pMapHint{margin:6px 0 0;font-size:14px;line-height:1.6;color:#d6e6dc;max-width:19em}
.pMap{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));grid-template-rows:repeat(13,minmax(0,1fr));gap:4px;aspect-ratio:15/13}
.pTile{display:flex;align-items:center;justify-content:center;border-radius:7px;background:var(--rc);color:#10352d;font-size:15px;font-weight:800;line-height:1;letter-spacing:-.1em;white-space:nowrap;overflow:hidden;min-width:24px;min-height:24px;transition:background .15s}
.pTile.l3{font-size:13px;letter-spacing:-.12em}
a.pTile:hover,a.pTile.sel{background:#fff;outline:3px solid var(--lime);outline-offset:1px;position:relative;z-index:1}
.pTile.off{background:transparent;border:1px dashed #5b8475;color:#a9c4b6}
.pLegend{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,max-content);gap:7px 18px;font-size:14px;color:#e3f0e7}
.pLegend li{display:flex;align-items:center;gap:8px}
/* 見出しは明朝(OS 標準の書体・外部フォントなし)で、公的データを扱う落ち着きと本文ゴシックとの強弱を出す */
.pTitle,.pSecHead h2,.pData h2{word-break:keep-all;overflow-wrap:anywhere;font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"BIZ UDPMincho","Noto Serif JP",serif;font-weight:800;letter-spacing:-.02em}
/* セクション共通 */
.pSection{padding:60px 0}
.pSecHead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px 40px;align-items:end;margin-bottom:26px}
.pSecHead h2,.pData h2{font-size:clamp(28px,3vw,38px);line-height:1.3;letter-spacing:-.04em;margin:0;font-weight:900}
.pSecHead p{margin:0;font-size:16px;color:#24463b;line-height:1.8}
/* 都道府県の一覧(主役)。箱を並べず、地方を見出しにした索引の行にする(PC・タブレット)。スマホは地方ごとに開閉する */
.pAreas{background:var(--base)}
.pRegions{border-top:2px solid var(--deep);background:var(--paper);border-radius:0 0 20px 20px;box-shadow:0 1px 0 var(--line)}
.pRegion{display:flow-root;border-bottom:1px solid var(--line);padding:14px 20px;scroll-margin-top:12px}
.pRegion:last-child{border-bottom:0}
.pRegion summary{list-style:none;float:left;width:190px;min-height:52px;display:flex;flex-direction:column;justify-content:center;cursor:default;pointer-events:none}
.pRegion summary::-webkit-details-marker{display:none}
.pRegion h3{display:flex;align-items:center;gap:10px;font-size:19px;margin:0;letter-spacing:-.02em}
.pRegion h3 i{width:6px;height:28px;border-radius:3px;background:var(--rc);flex:none;display:inline-block;border:1px solid rgba(16,53,45,.2)}
.pRegionN{font-size:13px;color:#456354;margin:2px 0 0 16px;font-weight:700}
.pPrefs{list-style:none;margin:0 0 0 206px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}
.pPrefs a,.pPrefs .off{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:52px;padding:6px 14px;border:1px solid #c9d9c7;border-radius:12px;background:#fbfdf8;line-height:1.3;font-size:16px;font-weight:800;color:var(--ink);white-space:nowrap}
.pPrefs a::after{content:"→";font-weight:700;color:#4d7a66;font-size:15px}
.pPrefs a:hover{background:var(--lime);border-color:var(--lime2)}
.pPrefs a:hover::after{color:var(--deep)}
.pPrefs .off{border-style:dashed;background:#f2f5ee;color:#456354;flex-direction:column;align-items:flex-start;justify-content:center}
.pPrefs .off small{font-size:13px;font-weight:700}
.pLegend i{width:13px;height:13px;border-radius:4px;background:var(--rc);flex:none;display:inline-block}
/* 特徴 3 点 */
/* 箱を並べず 1 本の帯にする(地方カードと見た目を分け、後半にメリハリを付ける) */
.pAbout{background:#e3eedf;padding:48px 0}
.pAbout .pSecHead{margin-bottom:22px}
.pFeatures{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--deep)}
.pFeatures li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;padding:22px 28px 6px 0;align-content:start}
.pFeatures li+li{padding-left:28px;border-left:1px solid #b9cfb7}
.pNum{display:none}
.pFeatIcon{grid-row:1/span 2;width:52px;height:52px;border-radius:50%;background:var(--deep);display:grid;place-items:center;color:var(--lime)}
.pFeatIcon .icon{width:24px;height:24px}
.pFeatures h3{font-size:21px;margin:6px 0 0;letter-spacing:-.03em;align-self:center}
.pFeatures p{margin:0;font-size:16px;color:#24463b;line-height:1.8}
/* データについて */
.pData p{font-size:16px;color:#2b4d42;margin:10px 0 0}
.pData .pSecHead p{margin:0}
.pTextLink{display:inline-block;padding:4px 0;font-weight:800;color:#1f6b53;text-decoration:underline;text-underline-offset:4px}
.pDataCard{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:8px 28px 22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 40px;align-items:start}
.pDataCard h3:first-child{margin-top:16px}
.pDl{display:grid;grid-template-columns:7.5em minmax(0,1fr);margin:0;font-size:16px}
.pDl dt,.pDl dd{margin:0;padding:12px 0;border-bottom:1px solid #e5ebe3}
.pDl dt{font-weight:800;color:#2f5547}
.pDl dd a{color:#1f6b53;text-decoration:underline;text-underline-offset:3px}
.pDataCard h3{font-size:18px;margin:20px 0 6px}
.pNotes{margin:0;padding-left:1.2em;font-size:16px;color:#2b4d42}
.pNotes li{margin:4px 0}
.pFix{font-size:15px!important}
.pFix a{color:#1f6b53;text-decoration:underline;text-underline-offset:3px}
/* フッター・下層ページの文字(全国版のみ) */
.portal .foot{padding:44px 0 28px}
.portal .footTop{padding-bottom:32px}
.portal .footIntro{font-size:14px;color:#3f5d51}
.portal .footLinks{font-size:14px}
.portal .footLast{font-size:13px}
.portal .disclaimer{font-size:14px}
.portal .prose p,.portal .prose li,.portal .dl{font-size:16px}
.portal .regionHero p,.portal .breadcrumb{font-size:15px}
/* レスポンシブ */
@media(max-width:1100px){.pHeroGrid{grid-template-columns:1fr;gap:32px}.pMapBox{display:none}.pSecHead{grid-template-columns:1fr}.pRegion summary{width:150px}.pPrefs{margin-left:166px;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.pPrefs a,.pPrefs .off{justify-content:center;text-align:center;padding:6px 6px}.pPrefs a::after{display:none}}
@media(max-width:860px){
  .portal .nav{height:66px}
  .portal .brandname{font-size:22px}
  .portal .brandsub{font-size:11px}
  .pNavCta{font-size:14px!important;padding:0 14px!important}
  .pHero{padding:32px 0 38px}
  .pTitle{font-size:clamp(32px,8.4vw,46px);margin:14px 0 12px}
  .pLead{font-size:16px}
  .pChooser{padding:16px 16px 14px;margin-top:20px}
  .pChooserRow{flex-direction:column}
  .pGo{width:100%}
  .pSection{padding:44px 0}
  .pAbout{padding:40px 0}
  .pFeatures{grid-template-columns:1fr}
  .pFeatures li,.pFeatures li+li{padding:18px 0 16px;border-left:0}
  .pFeatures li+li{border-top:1px solid #b9cfb7}
  .pFeatIcon{width:46px;height:46px}
  .pFeatures h3{font-size:19px}
  .pDataCard{padding:4px 16px 18px;grid-template-columns:1fr}
  .pSecHead{margin-bottom:18px}
}
/* スマホ: 地方ごとに開閉(初期は閉じる=portal.js)。見出しの行を押して開く */
@media(max-width:640px){
  .pRegions{border-radius:0 0 16px 16px}
  .pRegion{padding:0 14px}
  .pRegion summary{float:none;width:auto;min-height:56px;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer;pointer-events:auto}
  .pRegion summary::after{content:"";width:10px;height:10px;border-right:2.5px solid var(--deep);border-bottom:2.5px solid var(--deep);transform:rotate(45deg);margin:0 6px 4px 12px;flex:none}
  .pRegion[open] summary::after{transform:rotate(-135deg);margin-bottom:-4px}
  .pRegionN{margin:0 0 0 auto}
  .pPrefs{margin:0 0 14px;grid-template-columns:repeat(3,minmax(0,1fr))}
  .pPrefs a,.pPrefs .off{min-height:48px}
  .pDl{grid-template-columns:1fr}.pDl dt{border-bottom:0;padding-bottom:0}
}
@media(max-width:360px){.pNotice{font-size:12px}.portal .brandname{font-size:19px}.portal .brandsub{font-size:10px;letter-spacing:0}.pNavCta .icon{display:none}.pNavCta{padding:0 12px!important;font-size:13px!important}.pPrefs a,.pPrefs .off{padding:6px 4px;font-size:15px}.pTitle{font-size:29px}}
