#cp84-store-page { background:#fbf4a3; color:#253449; padding:0 20px 60px; font-family:"Noto Sans JP","メイリオ",Meiryo,sans-serif; line-height:1.8; }
#cp84-store-page * { box-sizing:border-box; }
#cp84-store-page .store-page-inner { width:100%; max-width:1120px; margin:0 auto; }
#cp84-store-page .store-page-heading { padding:44px 0 30px; text-align:center; }
#cp84-store-page .store-page-heading p { margin:0; color:#005baa; font-size:17px; font-weight:700; }
#cp84-store-page h1 { margin:8px 0 18px; color:#004ea2; font-size:34px; font-weight:700; line-height:1.5; }
#cp84-store-page .tab-intro { margin:0 0 14px; text-align:center; font-size:16px; }
#cp84-store-page .company-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 24px; }
#cp84-store-page .company-tab { display:flex; justify-content:center; align-items:center; gap:8px; padding:17px 10px; border:2px solid #005baa; border-radius:9px; background:#fff; color:#005baa; font-size:17px; font-weight:700; line-height:1.5; text-align:center; text-decoration:none; }
#cp84-store-page .company-tab[aria-selected="true"] { background:#005baa; color:#fff; }
#cp84-store-page .company-tab:hover { box-shadow:0 3px 0 rgba(0,78,162,.18); }
#cp84-store-page a:focus-visible, #cp84-store-page summary:focus-visible { outline:3px solid #cc141c; outline-offset:4px; }
#cp84-store-page .store-panel { padding:32px; border-radius:12px; background:#fff; margin:0 0 24px; scroll-margin-top:20px; }
#cp84-store-page [hidden] { display:none !important; }
#cp84-store-page h2 { margin:0 0 26px; padding:0 0 16px; border-bottom:3px solid #005baa; color:#004ea2; font-size:28px; font-weight:700; line-height:1.5; }
#cp84-store-page h3 { margin:0 0 15px; padding:0; color:#004ea2; font-size:21px; font-weight:700; line-height:1.6; }
#cp84-store-page .point-rows { overflow:hidden; border:1px solid #c9ddeb; border-radius:8px; }
#cp84-store-page .point-row { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:18px; align-items:center; padding:16px 20px; background:#f0f7fc; }
#cp84-store-page .point-row-app { background:#edf8ee; }
#cp84-store-page .point-row + .point-row { border-top:1px solid #c9ddeb; }
#cp84-store-page .point-card { margin:0 0 3px; font-size:14px; font-weight:700; }
#cp84-store-page .point-category { margin:0; font-size:16px; }
#cp84-store-page .point-amount { margin:0; color:#004ea2; font-size:20px; font-weight:700; line-height:1.6; }
#cp84-store-page .store-section { margin-top:32px; }
#cp84-store-page h4 { margin:24px 0 12px; padding:7px 12px; border-left:4px solid #005baa; background:#f1f6fa; color:#253449; font-size:17px; font-weight:700; line-height:1.6; }
#cp84-store-page .store-names { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 24px; list-style:none; margin:0; padding:0; }
#cp84-store-page .store-names li { margin:0; padding:12px 0; border-bottom:1px solid #e1e8ee; font-size:16px; overflow-wrap:anywhere; }
#cp84-store-page #retailing .store-names { grid-template-columns:repeat(2,minmax(0,1fr)); }
#cp84-store-page .company-note { margin:16px 0 0; font-size:14px; }
#cp84-store-page .restaurant-heading { margin-top:32px; }
#cp84-store-page .hotel-restaurants { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
#cp84-store-page details { border:1px solid #d7e2eb; border-radius:7px; overflow:hidden; }
#cp84-store-page summary { padding:14px 16px; background:#f0f7fc; color:#004ea2; font-size:16px; font-weight:700; cursor:pointer; }
#cp84-store-page details ul { list-style:disc; margin:0; padding:14px 18px 18px 35px; font-size:15px; }
#cp84-store-page details li { margin:0 0 6px; }
#cp84-store-page .restaurant-subheading { list-style:none; margin:14px 0 8px -15px; font-weight:700; color:#004ea2; }
#cp84-store-page .restaurant-subheading:first-child { margin-top:0; }
#cp84-store-page .store-page-notes { font-size:14px; }
#cp84-store-page .store-page-notes p { margin:4px 0; padding-left:1em; text-indent:-1em; }
#cp84-store-page .store-back { margin:36px 0 0; text-align:center; }
#cp84-store-page .store-back a { display:inline-block; padding:14px 32px; border:2px solid #005baa; border-radius:8px; background:#fff; color:#005baa; font-size:16px; font-weight:700; text-decoration:none; }
@media(max-width:767px) {
  #cp84-store-page { padding:0 16px 40px; }
  #cp84-store-page .store-page-heading { padding:30px 0 24px; }
  #cp84-store-page .store-page-heading p { font-size:14px; }
  #cp84-store-page h1 { font-size:25px; }
  #cp84-store-page .tab-intro { font-size:14px; }
  #cp84-store-page .company-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:20px; }
  #cp84-store-page .company-tab { padding:13px 5px; font-size:14px; }
  #cp84-store-page .store-panel { padding:24px 18px; }
  #cp84-store-page h2 { margin-bottom:22px; font-size:23px; }
  #cp84-store-page h3 { font-size:19px; }
  #cp84-store-page h4 { font-size:16px; }
  #cp84-store-page .point-row { grid-template-columns:minmax(0,1fr); gap:6px; padding:14px; }
  #cp84-store-page .point-card { font-size:13px; }
  #cp84-store-page .point-category { font-size:14px; }
  #cp84-store-page .point-amount { font-size:18px; }
  #cp84-store-page .store-names, #cp84-store-page #retailing .store-names { grid-template-columns:minmax(0,1fr); }
  #cp84-store-page .store-names li { padding:11px 0; font-size:15px; }
  #cp84-store-page .hotel-restaurants { grid-template-columns:minmax(0,1fr); }
  #cp84-store-page .company-note, #cp84-store-page .store-page-notes { font-size:13px; }
}

/* 基本ポイント欄は数字だけ拡大。その他の文字は元の20px／SP18pxを維持。 */
#cp84-store-page .point-number { display:inline-block; font-size:36px; font-weight:800; line-height:1.2; }
@media(max-width:767px) {
  #cp84-store-page .point-number { font-size:32px; }
}
