/* 蹴GO | SCORE本人プレイヤー・全国制覇MAP v0.4.0 */
.kcs-self {box-sizing:border-box;margin:16px 0 20px;padding:18px;border:2px solid #d7eab6;border-radius:20px;background:linear-gradient(140deg,#f8ffe9 0%,#fff 70%);box-shadow:0 6px 20px rgba(23,89,49,.08);color:#12392c}
.kcs-self *{box-sizing:border-box}
.kcs-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px;font-weight:900;font-size:17px}
.kcs-head small{font-size:11px;color:#237b43;padding:4px 9px;border-radius:99px;background:#e2f7dd;white-space:nowrap}
.kcs-self label{display:grid;gap:9px;font-size:14px;font-weight:800}
.kcs-self select{width:100%;min-height:45px;padding:10px 12px;border:2px solid #c1deba;border-radius:12px;font:inherit;color:#14372c;background:white;max-width:100%}
.kcs-hint{margin:10px 0;color:#52735d;line-height:1.7;font-size:12px}
.kcs-status{color:#167840;font-weight:700;font-size:13px;line-height:1.7;min-height:1.4em}
.kcs-status.is-error{color:#b72a38}.kcs-map-link{display:inline-flex;margin-top:10px;padding:9px 14px;border-radius:50px;background:#0b8048;color:#fff!important;text-decoration:none;font-weight:800;font-size:13px}

/* =========================================================
   全国制覇MAP v0.4.0（スタンプ帳UI）
   ========================================================= */
.kego-conquest-root{
  --m-sky1:#3fb6f4;--m-sky2:#a8e3ff;--m-ink:#16324a;--m-ink2:#4b6476;--m-line:#d6e6f0;
  --m-go1:#7ee04a;--m-go2:#3db63a;--m-go3:#2a8f2c;--m-blue:#2f8cf0;--m-blue2:#1f6fd0;
  --m-gold:#ffc21a;--m-gold2:#f39c0b;--m-red:#e8414b;--m-cream:#fffbea;
  --m-font:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Hiragino Sans","Noto Sans JP",-apple-system,BlinkMacSystemFont,sans-serif;
  font-family:var(--m-font);max-width:1240px;margin:0 auto 56px;padding:14px;color:var(--m-ink);box-sizing:border-box;-webkit-tap-highlight-color:transparent
}
.kego-conquest-root *{box-sizing:border-box}
.kego-conquest-root button{font-family:inherit}
.kego-conquest-root button:focus-visible,.kego-conquest-root a:focus-visible,.kcm-map-pref:focus-visible{outline:3px solid #ffd84d;outline-offset:2px}
.kego-conquest-loading{padding:40px;text-align:center;color:var(--m-ink2);font-weight:800}

/* ---------- HERO ---------- */
.kcm-hero{position:relative;overflow:hidden;color:#fff;padding:clamp(22px,4vw,44px);border-radius:28px;background:linear-gradient(180deg,var(--m-sky1) 0%,#6cc8f7 55%,#8fd86a 55.2%,#5cc443 100%);box-shadow:0 7px 0 #2a8f2c,0 18px 34px rgba(20,90,140,.18)}
.kcm-hero__sky{position:absolute;inset:0;pointer-events:none}
.kcm-cloud{position:absolute;display:block;width:120px;height:36px;border-radius:40px;background:#fff;opacity:.9}
.kcm-cloud::before,.kcm-cloud::after{content:"";position:absolute;background:#fff;border-radius:50%}
.kcm-cloud::before{width:56px;height:56px;left:16px;top:-28px}.kcm-cloud::after{width:42px;height:42px;left:58px;top:-18px}
.kcm-cloud--1{top:40px;left:-140px;animation:kcmCloud 40s linear infinite}
.kcm-cloud--2{top:96px;left:-140px;transform:scale(.6);animation:kcmCloud 56s linear -20s infinite}
@keyframes kcmCloud{to{left:calc(100% + 160px)}}
.kcm-hero__main{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center}
.kcm-eyebrow{display:inline-block;padding:4px 12px;border-radius:999px;background:rgba(255,255,255,.25);font-size:11px;font-weight:900;letter-spacing:.2em}
.kcm-hero h1{margin:10px 0 8px!important;color:#fff!important;font-size:clamp(32px,6vw,54px)!important;font-weight:900;line-height:1.1;text-shadow:0 4px 0 rgba(10,80,140,.35);letter-spacing:.02em}
.kcm-hero p{margin:0;font-size:14px;line-height:1.8;font-weight:800;max-width:560px;text-shadow:0 1px 0 rgba(10,80,140,.3)}
.kcm-title{display:inline-flex;align-items:center;gap:12px;margin-top:16px;padding:10px 16px 10px 10px;border-radius:20px;background:#fff;color:var(--m-ink);box-shadow:0 5px 0 rgba(10,80,140,.25)}
.kcm-title__badge{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(180deg,#ffd84d,#f2a90c);color:#fff;font-size:22px;box-shadow:0 3px 0 #c98200;text-shadow:0 1px 0 rgba(0,0,0,.2)}
.kcm-title small{display:block;font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--m-blue2)}
.kcm-title strong{display:block;font-size:19px;font-weight:900;line-height:1.3}
.kcm-title em{display:block;font-style:normal;font-size:12px;font-weight:800;color:var(--m-ink2)}
.kcm-title em b{color:#e8414b;font-size:15px}
.kcm-ring{position:relative;width:clamp(130px,22vw,180px);aspect-ratio:1/1;filter:drop-shadow(0 6px 0 rgba(10,80,140,.25))}
.kcm-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.kcm-ring__bg{fill:#fff;stroke:#e3f1fa;stroke-width:12}
.kcm-ring__fg{fill:none;stroke:var(--m-go2);stroke-width:12;stroke-linecap:round;transition:stroke-dasharray 1.4s cubic-bezier(.2,.9,.25,1) .2s}
.kcm-ring__num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--m-ink);line-height:1}
.kcm-ring__num strong{font-size:clamp(40px,7vw,56px);font-weight:900}
.kcm-ring__num span{font-size:14px;font-weight:900;color:var(--m-ink2);margin-top:2px}
.kcm-ring__num small{margin-top:6px;padding:2px 8px;border-radius:999px;background:var(--m-go2);color:#fff;font-size:12px;font-weight:900}
.kcm-stats{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}
.kcm-stat{display:grid;justify-items:center;gap:2px;padding:10px 6px;border-radius:18px;background:rgba(255,255,255,.95);color:var(--m-ink);box-shadow:0 4px 0 rgba(20,100,30,.3);text-align:center}
.kcm-stat span{font-size:18px;line-height:1}
.kcm-stat strong{font-size:24px;font-weight:900;line-height:1.15}
.kcm-stat strong em{font-style:normal;font-size:13px;color:var(--m-ink2)}
.kcm-stat small{font-size:11px;font-weight:800;color:var(--m-ink2)}

/* ---------- 案内 ---------- */
.kcm-info{margin-top:16px;padding:16px 18px;border-radius:20px;background:#fff;box-shadow:0 5px 0 #c9dbe8;line-height:1.8;font-size:14px;font-weight:700}
.kcm-info strong{display:block;font-size:16px;font-weight:900}
.kcm-info ol{margin:6px 0 12px;padding-left:1.4em}
.kcm-info--warn{background:#fff4d1;box-shadow:0 5px 0 #e9c45a;color:#6a4800}
.kcm-loading{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;padding:18px;border-radius:20px;background:#fff;box-shadow:0 5px 0 #c9dbe8;font-weight:900;color:var(--m-ink2)}
.kcm-loading__ball{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 45%,#e3e9ee 70%,#c3ccd3);box-shadow:0 3px 0 rgba(0,0,0,.12);animation:kcmBall .6s ease-in-out infinite alternate}
@keyframes kcmBall{to{transform:translateY(-10px) rotate(120deg)}}

/* ---------- ボタン ---------- */
.kcm-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;padding:8px 18px;border:0;border-radius:20px;color:#fff!important;text-decoration:none!important;font-weight:900;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease;text-align:center}
.kcm-btn span{font-size:17px;line-height:1.3}
.kcm-btn small{font-size:11px;font-weight:800;opacity:.92}
.kcm-btn--go{background:linear-gradient(180deg,var(--m-go1),var(--m-go2));box-shadow:0 5px 0 var(--m-go3);text-shadow:0 2px 0 rgba(0,70,0,.3)}
.kcm-btn--sky{background:linear-gradient(180deg,#5cb8ff,var(--m-blue));box-shadow:0 5px 0 var(--m-blue2);text-shadow:0 2px 0 rgba(0,40,110,.3)}
.kcm-btn:active{transform:translateY(4px);box-shadow:0 1px 0 rgba(0,0,0,.2)}
.kcm-btn--sm{min-height:48px;font-size:15px}

/* ---------- 地方バー ---------- */
.kcm-regions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}
.kcm-region{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px 12px;border:0;border-radius:16px;background:#fff;color:var(--m-ink);box-shadow:0 4px 0 #c9dbe8;cursor:pointer;text-align:left;transition:transform .1s ease}
.kcm-region:active{transform:translateY(3px);box-shadow:0 1px 0 #c9dbe8}
.kcm-region__name{font-size:13px;font-weight:900;white-space:nowrap}
.kcm-region__bar{height:10px;border-radius:999px;background:#e9f1f6;overflow:hidden}
.kcm-region__bar i{display:block;height:100%;width:var(--p);border-radius:inherit;background:var(--c);transition:width 1s ease}
.kcm-region__num{font-size:12px;font-weight:800;color:var(--m-ink2)}
.kcm-region__num b{font-size:15px;color:var(--c)}
.kcm-region em{position:absolute;right:8px;top:-8px;padding:1px 6px;border-radius:6px;background:var(--c);color:#fff;font-size:9px;font-style:normal;font-weight:900;letter-spacing:.08em}
.kcm-region.is-full{background:linear-gradient(180deg,#fff,#fffbe0)}

/* ---------- レイアウト ---------- */
.kcm-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.8fr);gap:16px;margin-top:16px;align-items:start}
.kcm-map-pane,.kcm-detail,.kcm-book{min-width:0;background:#fff;border-radius:26px;padding:18px;box-shadow:0 6px 0 #c9dbe8,0 14px 28px rgba(20,70,110,.10)}
.kcm-pane-head h2{margin:0!important;font-size:21px!important;font-weight:900;color:var(--m-ink)!important}
.kcm-pane-head p{margin:4px 0 12px;font-size:13px;font-weight:700;color:var(--m-ink2)}
.kcm-pane-head p b{color:var(--m-red);font-size:16px}

/* 地方ズーム */
.kcm-zoom{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 8px;margin:0 -2px}
.kcm-zoom::-webkit-scrollbar{display:none}
.kcm-zoom button{flex:none;min-height:38px;padding:0 14px;border:0;border-radius:999px;background:#eef6fc;color:var(--m-ink2);font-size:13px;font-weight:900;cursor:pointer;box-shadow:0 3px 0 #d3e4ef;transition:transform .1s ease}
.kcm-zoom button.is-on{background:linear-gradient(180deg,#5cb8ff,var(--m-blue));color:#fff;box-shadow:0 3px 0 var(--m-blue2)}
.kcm-zoom button:active{transform:translateY(2px)}

/* 地図 */
.kcm-map-frame{position:relative;width:100%;aspect-ratio:1/1;border-radius:22px;overflow:hidden;background:radial-gradient(circle at 70% 30%,#d6f0ff 0%,#bfe5fb 60%,#a9dbf7 100%)}
.kcm-map-frame::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.55) 1.5px,transparent 1.6px);background-size:22px 22px;opacity:.6}
.kcm-japan-svg{position:relative;display:block;width:100%;height:100%}
.kcm-map-pref{fill:#e9eef1;stroke:#fff;stroke-width:calc(5px / var(--zoom,1));stroke-linejoin:round;cursor:pointer;transition:fill .2s ease}
.kcm-map-pref.is-available{fill:#fffdf3;stroke:#9cc3da}
.kcm-map-pref.is-unlisted{fill:#d4dfe6}
.kcm-map-pref.is-complete{fill:var(--c,#3db63a)}
.kcm-map-pref:hover{filter:brightness(.95)}
.kcm-map-pref.is-selected{stroke:#ffb400;stroke-width:calc(12px / var(--zoom,1));filter:drop-shadow(0 0 8px rgba(255,180,0,.6))}
.kcm-land .kcm-map-pref.is-selected{paint-order:stroke}
.kcm-mapstamp{pointer-events:none}
.kcm-mapstamp__fill{fill:rgba(255,255,255,.88);stroke:#e8414b;stroke-width:4}
.kcm-mapstamp__ring{fill:none;stroke:#e8414b;stroke-width:2.5;stroke-dasharray:4 3}
.kcm-mapstamp__txt{fill:#e8414b;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-weight:900}
.kcm-intro .kcm-mapstamp{animation:kcmStampDrop .45s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d,0s)}
.kcm-intro .kcm-mapstamp.is-new{animation:kcmStampNew .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--d,0s)}
@keyframes kcmStampDrop{from{opacity:0;scale:1.8}to{opacity:1;scale:1}}
@keyframes kcmStampNew{0%{opacity:0;scale:3.2}60%{opacity:1;scale:.88}100%{opacity:1;scale:1}}

/* 選択中カード */
.kcm-mapcard{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:20px;background:rgba(255,255,255,.97);box-shadow:0 5px 0 rgba(20,70,110,.18),0 12px 24px rgba(20,70,110,.18);animation:kcmCardIn .3s cubic-bezier(.2,1.2,.4,1)}
@keyframes kcmCardIn{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
.kcm-mapcard__mini{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:3px dashed #b9cbd7;color:#9fb3c1;font-size:20px;font-weight:900}
.kcm-mapcard__mini.is-done{border:3px solid var(--m-red);color:var(--m-red);background:#fff5f5;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;transform:rotate(-8deg)}
.kcm-mapcard__txt{min-width:0;flex:1}
.kcm-mapcard__txt small{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--c,#2f8cf0);color:#fff;font-size:10px;font-weight:900}
.kcm-mapcard__txt strong{display:block;font-size:18px;font-weight:900;line-height:1.3}
.kcm-mapcard__txt em{display:block;font-style:normal;font-size:12px;font-weight:800;color:var(--m-ink2)}
.kcm-mapcard__go{flex:none;min-height:42px;padding:0 14px;border:0;border-radius:14px;background:linear-gradient(180deg,#5cb8ff,var(--m-blue));color:#fff;font-size:13px;font-weight:900;box-shadow:0 3px 0 var(--m-blue2);cursor:pointer}
.kcm-legend{display:flex;gap:6px 14px;flex-wrap:wrap;margin-top:12px;font-size:12px;font-weight:800;color:var(--m-ink2)}
.kcm-legend span{display:inline-flex;gap:6px;align-items:center}
.kcm-legend i{display:inline-block;width:14px;height:14px;border-radius:4px}
.kcm-legend i.is-complete{background:linear-gradient(135deg,#ff5a5f,#3db63a,#2f8cf0)}
.kcm-legend i.is-available{background:#fffdf3;border:2px solid #9cc3da}
.kcm-legend i.is-unlisted{background:#d4dfe6}
.kcm-map-credit{display:block;margin-top:8px;font-size:10px;color:#8aa3b5;line-height:1.5}
.kcm-error{background:#fff4f3;color:#962c2c;padding:20px;border-radius:15px}

/* ---------- スタンプ（共通） ---------- */
.kcm-stamp{--t:-6deg;position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:50%;color:var(--c,#e8414b);border:3px solid currentColor;background:radial-gradient(circle,rgba(255,255,255,0) 58%,rgba(255,255,255,.4) 59%),#fff;box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 5.5px currentColor;transform:rotate(var(--t));font-family:var(--m-font)}
.kcm-stamp::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.55) 0 8%,transparent 9%),radial-gradient(circle at 70% 80%,rgba(255,255,255,.5) 0 6%,transparent 7%),radial-gradient(circle at 80% 30%,rgba(255,255,255,.45) 0 4%,transparent 5%);pointer-events:none}
.kcm-stamp__top{font-size:6.5px;font-weight:900;letter-spacing:.04em}
.kcm-stamp strong{font-size:19px;font-weight:900;line-height:1.15;letter-spacing:-.02em;white-space:nowrap}
.kcm-stamp__bot{font-size:8px;font-weight:900;letter-spacing:.04em;margin-top:1px}
.kcm-stamp--big{width:104px;height:104px;flex:none}
.kcm-stamp--big strong{font-size:23px}
.kcm-stamp--big .kcm-stamp__top{font-size:8px}.kcm-stamp--big .kcm-stamp__bot{font-size:9px}
.kcm-stamp--ghost{color:#b9cbd7;border-style:dashed;box-shadow:none;background:#f6fafc}
.kcm-stamp--ghost strong{font-size:34px}

/* ---------- スタンプ帳 ---------- */
.kcm-book{margin-top:16px;background:linear-gradient(180deg,#fffdf4,#fff8e1);box-shadow:0 6px 0 #ead9a3,0 14px 28px rgba(120,90,20,.10)}
.kcm-book__region{margin-top:16px;padding-top:12px;border-top:2px dashed #ecdcae}
.kcm-book__region:first-of-type{border-top:0;margin-top:4px;padding-top:0}
.kcm-book__region h3{display:flex;align-items:center;gap:10px;margin:0 0 10px!important;font-size:15px!important;font-weight:900;color:var(--m-ink)!important}
.kcm-book__region h3 span{padding:3px 12px;border-radius:999px;background:var(--c);color:#fff}
.kcm-book__region h3 small{font-size:13px;color:var(--m-ink2)}
.kcm-book__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.kcm-slot{position:relative;display:grid;place-items:center;aspect-ratio:1/1;padding:0;border:0;border-radius:22px;background:transparent;cursor:pointer;transition:transform .12s ease}
.kcm-slot:hover{transform:translateY(-2px)}
.kcm-slot .kcm-stamp{--t:var(--t);width:88%;height:88%}
.kcm-slot__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:84%;height:84%;border-radius:50%;border:3px dashed #d7c99f;color:#a8987a;background:rgba(255,255,255,.6)}
.kcm-slot__empty strong{font-size:15px;font-weight:900}
.kcm-slot__empty small{font-size:9px;font-weight:800;opacity:.85}
.kcm-slot.is-selected{background:rgba(255,216,77,.28)}
.kcm-slot__new{position:absolute;right:-2px;top:2px;padding:2px 6px;border-radius:8px;background:var(--m-red);color:#fff;font-size:10px;font-style:normal;font-weight:900;box-shadow:0 2px 0 #b52632;animation:kcmNew 1s ease-in-out infinite alternate}
@keyframes kcmNew{to{transform:translateY(-3px)}}
.kcm-intro .kcm-slot.is-on .kcm-stamp{animation:kcmSlotStamp .45s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--d) + .3s)}
.kcm-intro .kcm-slot.is-new .kcm-stamp{animation:kcmSlotNew .8s cubic-bezier(.3,1.6,.5,1) both;animation-delay:1s}
@keyframes kcmSlotStamp{from{opacity:0;transform:rotate(var(--t)) scale(1.7)}to{opacity:1;transform:rotate(var(--t)) scale(1)}}
@keyframes kcmSlotNew{0%{opacity:0;transform:rotate(calc(var(--t) - 30deg)) scale(3)}60%{opacity:1;transform:rotate(var(--t)) scale(.85)}100%{transform:rotate(var(--t)) scale(1)}}

/* ---------- 詳細 ---------- */
.kcm-detail{position:sticky;top:20px}
.kcm-detail__empty{text-align:center;padding:24px 6px}
.kcm-detail__empty span{font-size:42px}
.kcm-detail__empty strong{display:block;margin-top:8px;font-size:17px;font-weight:900}
.kcm-detail__empty p{font-size:13px;font-weight:700;color:var(--m-ink2);line-height:1.7}
.kcm-detail__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kcm-detail__region{display:inline-block;padding:3px 12px;border-radius:999px;background:var(--c);color:#fff;font-size:11px;font-weight:900}
.kcm-detail h2{margin:6px 0 0!important;font-size:28px!important;font-weight:900;color:var(--m-ink)!important;line-height:1.2}
.kcm-detail__top .kcm-stamp--big{color:var(--m-red);animation:kcmSlotStamp .45s cubic-bezier(.3,1.6,.5,1) both}
.kcm-detail__status{margin:14px 0 0;padding:12px 14px;border-radius:16px;background:#ecfae4;color:#24702a;font-size:14px;font-weight:900;line-height:1.6}
.kcm-detail__status.is-empty{background:#f2f7fa;color:var(--m-ink2)}
.kcm-detail h3{margin:18px 0 8px!important;font-size:15px!important;font-weight:900;color:var(--m-ink)!important}
.kcm-courses{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.kcm-course{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:#f6fbff}
.kcm-course.is-done{background:#f1fbea}
.kcm-course__mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2.5px dashed #c3d5e2;color:#fff;font-size:14px;font-weight:900}
.kcm-course.is-done .kcm-course__mark{border:0;background:var(--m-go2);box-shadow:0 2px 0 var(--m-go3)}
.kcm-course__info strong{display:block;font-size:14px;font-weight:900;line-height:1.4}
.kcm-course__info small{display:block;font-size:11px;font-weight:800;color:var(--m-ink2)}
.kcm-course__go{flex:none;padding:8px 12px;border-radius:12px;background:linear-gradient(180deg,var(--m-go1),var(--m-go2));color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:900;box-shadow:0 3px 0 var(--m-go3);white-space:nowrap}
.kcm-detail__note,.kcm-footnote{font-size:12px;color:#7d93a3;line-height:1.8;font-weight:700}
.kcm-footnote{margin-top:16px}

/* ---------- シェア ---------- */
.kcm-share{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}

/* ---------- トースト ---------- */
.kcm-toast{position:fixed;left:50%;bottom:calc(var(--kego-bottom-obstruction,0px) + 24px);z-index:100700;max-width:calc(100vw - 32px);transform:translateX(-50%) translateY(20px);padding:12px 18px;border-radius:999px;background:#16324a;color:#fff;font-family:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN",sans-serif;font-size:14px;font-weight:900;box-shadow:0 6px 0 rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:.3s ease;text-align:center}
.kcm-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- レスポンシブ ---------- */
@media(max-width:900px){
  .kcm-layout{grid-template-columns:1fr}
  .kcm-detail{position:relative;top:auto}
  .kcm-regions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .kego-conquest-root{padding:10px}
  .kcm-hero{border-radius:22px;padding:20px 16px;background:linear-gradient(180deg,var(--m-sky1) 0%,#6cc8f7 62%,#8fd86a 62.2%,#5cc443 100%)}
  .kcm-hero__main{grid-template-columns:1fr;justify-items:center;text-align:center}
  .kcm-hero__txt{order:2}
  .kcm-ring{order:1;width:150px}
  .kcm-title{text-align:left}
  .kcm-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kcm-map-pane,.kcm-detail,.kcm-book{padding:14px;border-radius:22px}
  .kcm-map-frame{border-radius:18px}
  .kcm-map-frame{overflow:visible;aspect-ratio:auto;background:none}
  .kcm-map-frame::before{display:none}
  .kcm-map-frame .kcm-japan-svg{aspect-ratio:1/1;height:auto;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 70% 30%,#d6f0ff 0%,#bfe5fb 60%,#a9dbf7 100%)}
  .kcm-mapcard{position:relative;left:auto;right:auto;bottom:auto;margin-top:10px;padding:8px 10px;gap:10px;border:3px solid #e3eef6}
  .kcm-mapcard__txt strong{font-size:16px}
  .kcm-book__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .kcm-stamp strong{font-size:15px}
  .kcm-slot__empty strong{font-size:13px}
  .kcm-share{grid-template-columns:1fr}
  .kcm-detail h2{font-size:24px!important}
  .kcm-stamp--big{width:88px;height:88px}
}
@media(max-width:380px){
  .kcm-book__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kcm-regions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .kego-conquest-root *,.kego-conquest-root *::before,.kego-conquest-root *::after{animation:none!important;transition:none!important}
  .kcm-cloud{display:none}
}


/* =========================================================
   蹴GO v0.4.0: 全国制覇MAP（ID 1254）のみ、
   Lightning標準の白帯/パンくず/記事枠/白フッターを排除する。
   他の固定ページ・投稿・共通ヘッダーには適用しない。
   ========================================================= */
body.page-id-1254{background:#e8f5fb!important}
body.page-id-1254 .breadSection,
body.page-id-1254 .breadcrumb,
body.page-id-1254 .breadcrumbs,
body.page-id-1254 .vk_breadcrumb,
body.page-id-1254 .vk-breadcrumb,
body.page-id-1254 .page-header,
body.page-id-1254 .pageHeader,
body.page-id-1254 .vk-page-header,
body.page-id-1254 .entry-header,
body.page-id-1254 .entry-title,
body.page-id-1254 .page-header-title {display:none!important}
body.page-id-1254 .siteContent,
body.page-id-1254 .site-content,
body.page-id-1254 .siteContent .container,
body.page-id-1254 .mainSection,
body.page-id-1254 .mainSection-base,
body.page-id-1254 .mainSection-col,
body.page-id-1254 .content-area,
body.page-id-1254 article,
body.page-id-1254 .entry-body,
body.page-id-1254 .entry-content{
  max-width:none!important;
  width:100%!important;
  padding-top:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
body.page-id-1254 .siteContent{padding:0!important;background:#e8f5fb!important}
body.page-id-1254 .siteContent .container,
body.page-id-1254 .mainSection,
body.page-id-1254 .mainSection-base,
body.page-id-1254 .mainSection-col,
body.page-id-1254 .content-area,
body.page-id-1254 .entry-body,
body.page-id-1254 .entry-content{padding-left:0!important;padding-right:0!important}
body.page-id-1254 .siteContent .row{margin-left:0!important;margin-right:0!important}
body.page-id-1254 .kego-conquest-root{max-width:none;width:100%;margin:0 auto;padding:clamp(10px,2vw,28px) clamp(10px,2vw,28px) 38px;background:transparent}
/* 投稿末尾のLightning標準のフッターだけをMAPページで非表示。 */
body.page-id-1254 .siteFooter,
body.page-id-1254 .site-footer{display:none!important}
@media(max-width:600px){body.page-id-1254 .kego-conquest-root{padding:10px 10px 30px}}

/* ---------- MAPだけでメールログインできるカード ---------- */
.kcm-auth{position:relative;margin:16px 0 0;padding:18px 20px;border:2px solid #c9e6f1;border-radius:20px;background:linear-gradient(120deg,#ffffff,#e8f7ff);box-shadow:0 5px 0 #bfdbe8;color:#16324a}
.kcm-auth__head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}
.kcm-auth__head strong{font-size:18px;font-weight:900}
.kcm-auth__head span{font-size:11px;font-weight:900;padding:4px 10px;border-radius:99px;background:#d9f2e0;color:#11613a}
.kcm-auth__desc{font-size:13px;line-height:1.7;font-weight:700;margin:0 0 12px!important;color:#526d80}
.kcm-auth__form{display:flex;flex-wrap:wrap;align-items:end;gap:10px}
.kcm-auth__label{display:grid;gap:5px;flex:1 1 230px;font-weight:800;font-size:12px}
.kcm-auth__email{height:46px!important;width:100%;padding:8px 12px!important;background:white!important;color:#16324a!important;border:2px solid #bbd6e5!important;border-radius:12px!important;font-size:15px!important;box-sizing:border-box}
.kcm-auth__button{min-height:46px;padding:9px 20px!important;border:0!important;border-radius:12px!important;font-size:14px!important;font-weight:900!important;cursor:pointer;background:#197dd5!important;color:white!important;box-shadow:0 4px 0 #075a9f}
.kcm-auth__button:disabled{opacity:.5;cursor:wait}
.kcm-auth__button--secondary{background:#eff8ff!important;color:#1a5d90!important;border:2px solid #a9d2ed!important;box-shadow:none}
.kcm-auth__message{margin:10px 0 0!important;line-height:1.6;font-size:13px;font-weight:800;min-height:1.3em;color:#117541}
.kcm-auth__message.is-error{color:#b22d3b}
.kcm-auth__identity{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.kcm-auth__identity span{font-size:13px;font-weight:800;overflow-wrap:anywhere}
.kcm-auth__note{font-size:11px;font-weight:700;line-height:1.6;margin:8px 0 0!important;color:#567187}
@media(max-width:600px){.kcm-auth{padding:16px 14px}.kcm-auth__button{width:100%}}

/* Shared Turnstile client widget: scope to the auth forms only. */
.kego-turnstile-wrap{display:flex;flex-direction:column;gap:5px;align-items:flex-start;max-width:100%;margin:10px 0;}
.kego-turnstile-host{max-width:100%;min-height:65px;}
.kego-turnstile-status{font-size:11px;line-height:1.5;color:#3e6071;}
.kego-turnstile-status.is-error{color:#b42318;}

/* MAP ↔ shared member login navigation — v0.4.2. */
.kego-conquest-root .kcm-auth__member-link{display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;min-height:46px;padding:9px 14px!important;text-decoration:none!important;text-align:center;line-height:1.5;margin:9px 0 3px;max-width:100%;color:#1a5d90!important}
.kego-conquest-root .kcm-auth__member-link:focus-visible{outline:3px solid #ffbf2f;outline-offset:3px}
.kego-conquest-root .kcm-auth__identity .kcm-auth__member-link{margin:0;flex:1 1 230px}
@media(max-width:600px){.kego-conquest-root .kcm-auth__member-link{width:100%}}
