.clm-root { --clm-muted:#666; --clm-line:#d8d8d8; width:100%; max-width:100%; min-width:0; overflow-x:clip; color:inherit; background:transparent; font:inherit; line-height:inherit; container-type:inline-size; }
.clm-root, .clm-root * { box-sizing:border-box; }
.clm-root :is(h2,h3,h4) { position:static !important; display:block !important; margin-left:0 !important; margin-right:0 !important; padding:0 !important; color:inherit !important; background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; text-shadow:none !important; }
.clm-root :is(h2,h3,h4)::before, .clm-root :is(h2,h3,h4)::after { display:none !important; content:none !important; }
.clm-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.clm-hero { background:transparent; border-bottom:1px solid var(--clm-line); }
.clm-hero-inner, .clm-section, .clm-footer { width:100%; max-width:1180px; min-width:0; margin-inline:auto; }
.clm-hero-inner { padding:26px 0 30px; }
.clm-brand-row { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.clm-brand { display:inline-flex; align-items:center; gap:9px; font-weight:700; }
.clm-brand-mark { display:grid; width:30px; height:30px; place-items:center; border:1px solid var(--clm-line); font-size:15px; }
.clm-verified { color:var(--clm-muted); font-size:12px; }
.clm-hero-copy { margin:18px 0 22px; }
.clm-root .clm-hero h2 { max-width:820px; margin:0; color:inherit; font:inherit; font-size:clamp(27px,3.6vw,38px); line-height:1.28; font-weight:750; letter-spacing:-.025em; }
.clm-lead { max-width:760px; margin:14px 0 0; color:inherit; font-size:14px; line-height:1.75; }
.clm-section { padding:44px 0; }
.clm-section-heading { display:flex; align-items:flex-start; gap:14px; margin-bottom:20px; }
.clm-section-number { margin:3px 0 0; color:var(--clm-muted); font-size:12px; }
.clm-root .clm-section-heading h2 { margin:0; color:inherit; font:inherit; font-size:clamp(20px,2.4vw,26px); line-height:1.35; font-weight:750; letter-spacing:-.015em; }
.clm-section-heading p:last-child { margin:8px 0 0; color:var(--clm-muted); font-size:13px; }
.clm-cartogram-shell { display:block; padding:0; background:transparent; border:0; }
.clm-cartogram-viewport { width:100%; max-width:100%; overflow-x:auto; padding:2px 0 8px; scrollbar-color:#94a3b8 #eef2f7; }
.clm-prefecture-cartogram { position:relative; display:grid; grid-template-columns:repeat(15,38px); grid-template-rows:repeat(10,32px); width:570px; min-width:570px; height:320px; margin:0 auto; overflow:visible; background:transparent; border:0; }
.clm-prefecture-tile { position:relative; z-index:1; display:flex; grid-column:var(--clm-map-x) / span var(--clm-map-w); grid-row:var(--clm-map-y) / span var(--clm-map-h); align-items:center; justify-content:center; width:calc(100% - 2px); height:calc((var(--clm-map-h) * 32px) - 2px); margin:1px; padding:3px; color:#243247 !important; background:var(--clm-region-color); border:1px solid rgba(15,23,42,.3); border-radius:3px; box-shadow:0 1px 2px rgba(15,23,42,.1); text-decoration:none !important; transition:transform .15s ease,filter .15s ease,box-shadow .15s ease; }
.clm-prefecture-tile:hover, .clm-prefecture-tile:focus-visible { z-index:2; outline:3px solid #2563eb; outline-offset:1px; filter:saturate(1.1); transform:translateY(-2px) scale(1.06); box-shadow:0 5px 14px rgba(15,23,42,.2); }
.clm-prefecture-tile span { font-size:10px; font-weight:700; white-space:nowrap; }
.clm-map-region-links { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px; }
.clm-map-region-links a { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:8px; padding:10px 12px; color:inherit !important; background:#fff; border:1px solid var(--clm-line); text-decoration:none !important; }
.clm-map-region-links a:hover, .clm-map-region-links a:focus-visible { border-color:#3b82f6; outline:2px solid #bfdbfe; outline-offset:1px; }
.clm-map-region-links i { width:12px; height:12px; background:var(--clm-region-color); border:1px solid rgba(0,0,0,.12); border-radius:50%; }
.clm-map-region-links b { font-size:12px; }
.clm-map-region-links span { color:var(--clm-muted); font-size:10px; }
.clm-legend { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:18px; color:var(--clm-muted); font-size:11px; }
.clm-list-section { padding-top:24px; }
.clm-regions { display:grid; gap:64px; }
.clm-region-block { scroll-margin-top:24px; }
.clm-region-title { display:grid; grid-template-columns:minmax(150px,.7fr) 1.6fr auto; align-items:end; gap:20px; padding-bottom:12px; border-bottom:2px solid currentColor; }
.clm-root .clm-region-title h3 { margin:0; color:inherit; font:inherit; font-size:24px; line-height:1.25; font-weight:750; letter-spacing:-.015em; }
.clm-region-title p { margin:0; color:var(--clm-muted); font-size:11px; }
.clm-region-title > a { font-size:11px; text-decoration:underline; }
.clm-prefecture { margin-top:26px; container-type:inline-size; }
.clm-root .clm-prefecture h4 { margin:0 0 10px; color:inherit; font:inherit; font-size:15px; font-weight:700; }
.clm-table-wrap { width:100%; max-width:100%; overflow:hidden; border:1px solid #cbd5e1; }
.clm-root .clm-table { width:100% !important; max-width:100% !important; margin:0; border:0; table-layout:fixed; border-collapse:collapse; font-size:13px; }
.clm-table th { padding:12px; color:#334155; background:#eef4fb; border:0; border-bottom:1px solid #cbd5e1; text-align:left; font-size:10px; white-space:nowrap; }
.clm-table td { padding:15px 12px; border:0; border-bottom:1px solid var(--clm-line); vertical-align:middle; }
.clm-table tbody tr:last-child td { border-bottom:0; }
.clm-table tbody tr:hover { background:#f8fbff; }
.clm-table th:nth-child(1) { width:19%; }
.clm-table th:nth-child(2) { width:15%; }
.clm-table th:nth-child(3) { width:18%; }
.clm-table th:nth-child(4) { width:20%; }
.clm-table th:nth-child(5) { width:28%; }
.clm-status-badge { display:inline-flex; align-items:center; justify-content:center; padding:3px 7px; border:1px solid; border-radius:999px; font-size:10px; font-weight:700; white-space:nowrap; }
.clm-table .clm-status-badge { display:flex; width:max-content; margin-top:6px; }
.clm-municipality-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px 9px; margin-top:7px; }
.clm-municipality-meta .clm-status-badge { margin-top:0; }
.clm-status-badge.is-active { color:#137333; background:#e7f5e9; border-color:#81c995; }
.clm-status-badge.is-upcoming { color:#8a4b00; background:#fff4ce; border-color:#f6c344; }
.clm-status-badge.is-ended { color:#5f6368; background:#f1f3f4; border-color:#bdc1c6; }
.clm-payment-list { display:grid; justify-items:start; gap:4px; }
.clm-payment-pill { padding:4px 7px; color:#fff; border:1px solid transparent; border-radius:4px; font-size:10px; font-weight:700; white-space:nowrap; }
.clm-payment-pill.is-paypay { background:#ff003c; }
.clm-payment-pill.is-aupay { background:#eb5505; }
.clm-payment-pill.is-dpay { background:#cc0033; }
.clm-payment-pill.is-rakuten { background:#bf0000; }
.clm-payment-pill.is-aeon { background:#a50064; }
.clm-payment-pill.is-merpay { background:#ff0211; }
.clm-payment-pill.is-upi { background:linear-gradient(100deg,#f58220 0 48%,#08783e 52% 100%); }
.clm-payment-pill.is-paper { background:#5f6368; }
.clm-payment-pill.is-local { background:#006e54; }
.clm-period { font-weight:600; overflow-wrap:anywhere; }
.clm-benefit { color:#c2410c; overflow-wrap:anywhere; }
.clm-benefit + .clm-eligibility { display:flex; width:max-content; margin-top:7px; }
.clm-limit-line { display:block; line-height:1.55; }
.clm-spend-guide { display:inline-block; margin-top:4px; color:inherit; font-size:13px; line-height:1.55; }
.clm-eligibility { display:inline-flex; align-items:center; justify-content:center; padding:4px 7px; border:1px solid; border-radius:4px; font-size:10px; font-weight:700; white-space:nowrap; }
.clm-eligibility.is-traveler { color:#075985; background:#e0f2fe; border-color:#7dd3fc; }
.clm-eligibility.is-resident { color:#9f1239; background:#fff1f2; border-color:#fda4af; }
.clm-official-link { color:#0759a8 !important; font-size:11px; font-weight:700; text-decoration:underline; white-space:nowrap; }
.clm-empty { margin-top:18px; padding:20px; color:var(--clm-muted); border:1px dashed var(--clm-line); font-size:13px; }
.clm-footer { margin-top:8px; padding:28px 0 42px; border-top:1px solid var(--clm-line); color:var(--clm-muted); font-size:11px; }
.clm-footer-meta { display:flex; justify-content:flex-end; gap:22px; }
.clm-footer-meta a { color:inherit; font-weight:600; text-decoration:underline; }

@container (max-width:760px) {
  .clm-table-wrap { overflow:visible; border:0; }
  .clm-table, .clm-table tbody, .clm-table tr, .clm-table td { display:block; width:100%; }
  .clm-table thead { display:none; }
  .clm-table tbody { display:grid; gap:10px; }
  .clm-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; padding:14px; border:1px solid var(--clm-line); }
  .clm-table td { min-width:0 !important; padding:9px 0; border-bottom:1px dashed var(--clm-line); overflow-wrap:anywhere; }
  .clm-table td:first-child { grid-column:1/-1; }
  .clm-table td:last-child { border-bottom:0; }
  .clm-table td::before { display:block; margin-bottom:5px; content:attr(data-label); color:var(--clm-muted); font-size:10px; font-weight:600; }
}

@container (max-width:500px) {
  .clm-table tr { grid-template-columns:1fr; }
  .clm-table td:first-child { grid-column:auto; }
}

@media (max-width:900px) {
  .clm-region-title { grid-template-columns:1fr auto; }
  .clm-region-title p { grid-column:1/-1; grid-row:2; }
}

@media (max-width:640px) {
  .clm-hero-inner { padding:22px 0 28px; }
  .clm-brand { font-size:13px; }
  .clm-verified { font-size:10px; }
  .clm-hero-copy { margin:18px 0 22px; }
  .clm-root .clm-hero h2 { font-size:27px; }
  .clm-lead { font-size:14px; }
  .clm-section { padding-block:42px; }
  .clm-section-heading { gap:12px; }
  .clm-cartogram-shell { padding:0; }
  .clm-map-region-links { grid-template-columns:repeat(2,1fr); }
  .clm-regions { gap:52px; }
  .clm-root .clm-region-title h3 { font-size:24px; }
  .clm-region-title > a { display:none; }
  .clm-footer-meta { justify-content:space-between; }
}

@media (prefers-reduced-motion:reduce) {
  .clm-prefecture-tile { transition:none; }
}
