/* Japan Pocket Guide — one stylesheet for every page. Light mode only. */
:root{
  --ink:#1f2a44;--text:#2b2f3a;--muted:#5a6378;--accent:#d9381e;--accent-d:#c8321a;
  --bg:#faf8f4;--paper:#fff;--soft:#f3efe7;--line:#e5e2db;--blue:#9db7d8;--blue-d:#2f5d8a;
  --ok:#2f7d4f;--warn:#b7791f;--max:1100px;--art:800px;--r:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:17px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji"}
img,svg,video{max-width:100%;height:auto}
a{color:var(--blue-d);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--accent-d)}
h1,h2,h3,h4{color:var(--ink);line-height:1.25;margin:1.4em 0 .5em;font-weight:700}
h1{font-size:clamp(1.7rem,4.2vw,2.5rem);margin-top:.3em;letter-spacing:-.01em}
h2{font-size:clamp(1.3rem,3vw,1.65rem);padding-top:.2em}
h3{font-size:1.15rem}
p,ul,ol{margin:0 0 1em}
ul,ol{padding-left:1.4em}
li{margin:.25em 0}
small,.small{font-size:.86rem}
.muted{color:var(--muted)}
.ja{color:var(--muted);font-size:.86em;white-space:nowrap}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--soft);padding:1px 5px;border-radius:4px}
hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}
main.wrap{padding-bottom:40px;min-height:50vh}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 14px;z-index:99}
.skip:focus{left:8px;top:8px}

/* header + nav */
.hd{background:var(--paper);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:12px;height:60px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:800;font-size:1.25rem;letter-spacing:-.01em}
.logo-mark{flex:none}
.hd-search{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg)}
.hd-search:hover{border-color:var(--ink)}
.nav{background:var(--ink)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nav ul::-webkit-scrollbar{display:none}
.nav a{display:block;color:#fff;text-decoration:none;padding:11px 13px;font-size:.95rem;font-weight:600;opacity:.92;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current]{opacity:1;border-bottom-color:var(--accent);color:#fff}

/* breadcrumb + article head */
.bc{font-size:.86rem;margin:14px 0 4px;color:var(--muted)}
.bc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.bc li+li::before{content:"›";margin:0 6px 0 2px;color:#9aa0ad}
.bc a{color:var(--muted)}
.kicker{font-size:.86rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:18px 0 0}
.kicker a{color:inherit;text-decoration:none}
.art-h h1{margin-top:.2em}
.lede{font-size:1.15rem;color:var(--ink);margin:0 0 .6em}
.dateline{font-size:.86rem;color:var(--muted);margin:0 0 1.2em;padding-bottom:1em;border-bottom:1px solid var(--line)}
.art{max-width:var(--art)}
.art p,.art li{font-size:1.02rem}

/* answer box, boxes, toc */
.answer{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--r);padding:14px 18px;margin:0 0 1.4em}
.answer-h{font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 .3em}
.answer p:last-child{margin-bottom:0}
.box{border-radius:var(--r);padding:12px 16px;margin:1.3em 0;border:1px solid var(--line);background:var(--paper)}
.box p:last-child,.box ul:last-child{margin-bottom:0}
.box-h{font-weight:800;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .3em}
.box-tip{border-left:5px solid var(--ok)}.box-tip .box-h{color:var(--ok)}
.box-warn{border-left:5px solid var(--warn);background:#fff9ee}.box-warn .box-h{color:var(--warn)}
.box-note{border-left:5px solid var(--blue-d)}.box-note .box-h{color:var(--blue-d)}
.box-facts,.box-key{border-left:5px solid var(--ink);background:var(--soft)}.box-facts .box-h,.box-key .box-h{color:var(--ink)}
.toc{background:var(--soft);border-radius:var(--r);padding:12px 18px;margin:0 0 1.5em;font-size:.95rem}
.toc-h{font-weight:800;margin:0 0 .3em;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.toc ol{margin:0;padding-left:1.3em;columns:2;column-gap:24px}
.toc li{break-inside:avoid}
@media(max-width:600px){.toc ol{columns:1}}

/* tables */
.tbl{overflow-x:auto;margin:1.2em 0;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:.95rem;background:var(--paper)}
caption{caption-side:top;text-align:left;font-weight:700;color:var(--ink);padding:0 0 6px}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
thead th{background:var(--soft);font-weight:700;color:var(--ink);white-space:nowrap}
tbody th{font-weight:600;white-space:nowrap}
td.num,th.num{text-align:right;white-space:nowrap}
.src-line{font-size:.82rem;color:var(--muted);margin:-.6em 0 1.4em}
@media(max-width:640px){
  .stack thead{display:none}
  .stack tr{display:block;border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:6px 12px;background:var(--paper)}
  .stack td{display:flex;gap:10px;border:0;padding:4px 0}
  .stack td::before{content:attr(data-th);flex:0 0 40%;font-weight:600;color:var(--muted)}
}

/* cards + lists */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:1em 0 1.6em}
.cards.c3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--text);transition:transform .12s,box-shadow .12s}
.card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(31,42,68,.1);color:var(--text)}
.card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.card-b{padding:12px 14px 14px}
.card-k{font-size:.74rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.card-t{font-weight:700;color:var(--ink);font-size:1.05rem;line-height:1.3}
.card-d{font-size:.9rem;color:var(--muted);margin-top:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.links{list-style:none;padding:0;margin:0 0 1.5em;columns:2;column-gap:28px}
.links li{break-inside:avoid;margin:.35em 0;padding-left:1em;text-indent:-1em}
.links li span{display:block;text-indent:0;font-size:.86rem;color:var(--muted)}
@media(max-width:600px){.links{columns:1}}
.related{margin-top:2.2em;padding-top:1em;border-top:1px solid var(--line)}
.pref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 18px;list-style:none;padding:0;margin:.6em 0 1.6em}
.pref-grid li{margin:0}
.pref-grid a{display:block;padding:7px 10px;background:var(--paper);border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);font-weight:600}
.pref-grid a:hover{border-color:var(--accent);color:var(--accent-d)}
.pref-grid .ja{display:block;font-weight:400}
.pills{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:.4em 0 1.4em}
.pills li{margin:0}
.pills a{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.92rem;font-weight:600}
.pills a:hover,.pills a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.panel h2,.panel h3{margin-top:.2em}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 1em}
.kv dt{font-weight:700;color:var(--ink)}
.kv dd{margin:0}

/* figures */
.hero{margin:0 0 1.4em}
.hero img{width:100%;aspect-ratio:1200/630;object-fit:cover;border-radius:var(--r);display:block;background:var(--soft)}
.fig{margin:1.4em 0}
.fig img{border-radius:var(--r);display:block;background:var(--soft)}
figcaption{font-size:.82rem;color:var(--muted);margin-top:6px}
.credit{color:#7a8294}
.chart{width:100%;height:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin:0 0 1.2em}

/* faq + sources */
.faqs{margin-top:2em}
.faq{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:0}
.faq summary{cursor:pointer;padding:12px 16px;font-weight:700;color:var(--ink);list-style:none;position:relative;padding-right:40px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:16px;top:9px;font-size:1.4rem;color:var(--accent)}
.faq[open] summary::after{content:"–"}
.faq>div{padding:0 16px 10px}
.faq>div p:last-child{margin-bottom:0}
.sources{margin-top:2.2em;padding:14px 18px;background:var(--soft);border-radius:var(--r);font-size:.92rem}
.sources h2{margin-top:0;font-size:1.15rem}
.src-p{color:var(--muted);margin-bottom:.6em}
.sources ul{margin:0;padding-left:1.2em}
.src-n,.src-d{color:var(--muted)}
.cite{font-size:.82rem;color:var(--muted);margin:1.6em 0 0}
.cite code{word-break:break-all}

/* buttons, forms, tools */
.btn{display:inline-block;background:var(--accent-d);color:#fff;font-weight:700;text-decoration:none;padding:10px 18px;border-radius:999px;border:0;font:inherit;cursor:pointer;line-height:1.3}
.btn:hover{background:#a8260f;color:#fff}
.btn.sec{background:var(--ink)}
.btn.sec:hover{background:#121a2e}
.btn.lite{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.btn.lite:hover{border-color:var(--ink);color:var(--ink)}
.copy{font:inherit;font-size:.8rem;padding:2px 10px;border-radius:999px;border:1px solid var(--line);background:var(--paper);cursor:pointer;color:var(--ink)}
.tool{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin:1em 0 1.6em}
.tool label{display:block;font-weight:700;color:var(--ink);margin:12px 0 4px}
.tool label:first-child{margin-top:0}
.tool input[type=number],.tool input[type=text],.tool select,.tool textarea{font:inherit;padding:9px 11px;border:1px solid #c9c4b8;border-radius:8px;width:100%;max-width:380px;background:#fff}
.tool textarea{max-width:100%}
.tool .row{display:flex;flex-wrap:wrap;gap:12px 20px}
.tool .row>div{flex:1 1 200px}
.tool .chk{display:flex;align-items:center;gap:8px;font-weight:500;margin:6px 0}
.tool .chk input{width:auto}
.tool .out{margin-top:16px;padding:14px 16px;background:var(--soft);border-radius:10px;border-left:5px solid var(--ink)}
.tool .out p:last-child{margin-bottom:0}
.tool .out .big{font-size:1.6rem;font-weight:800;color:var(--ink);line-height:1.2}
.tool .hint{font-size:.86rem;color:var(--muted)}
.tool .actions{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px}
.search-form{display:flex;gap:8px;margin:0 0 1.4em;max-width:600px}
.search-form input{flex:1;font:inherit;padding:10px 14px;border:1px solid #c9c4b8;border-radius:999px;background:#fff}

/* rankings */
.rank td.bar-c{width:38%;min-width:120px}
.bar{height:10px;background:var(--blue);border-radius:5px}
.rank .pos{color:var(--muted);text-align:right;width:2.2em}

/* home */
.home-hero{background:var(--ink);color:#fff;border-radius:var(--r);padding:34px 28px;margin:16px 0 24px;background-image:linear-gradient(135deg,#1f2a44 0%,#2d3b60 60%,#3a2a3f 100%)}
.home-hero h1{color:#fff;margin:0 0 .3em;font-size:clamp(1.8rem,4.6vw,2.7rem)}
.home-hero p{font-size:1.1rem;max-width:620px;opacity:.95}
.home-hero .search-form input{border:0}
.home-hero .btn.lite{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.35)}
.home-hero .btn.lite:hover{background:rgba(255,255,255,.22)}
.home-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:1.6em}
.sec-h h2{margin:0}
.sec-h a{font-size:.92rem;white-space:nowrap}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:1em 0 1.4em}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.stat b{display:block;font-size:1.5rem;color:var(--ink);line-height:1.2}
.stat span{font-size:.86rem;color:var(--muted)}

/* months */
.mon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;list-style:none;padding:0;margin:.6em 0 1.6em}
.mon-grid li{margin:0}
.mon-grid a{display:block;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);font-weight:700}
.mon-grid a span{display:block;font-weight:400;font-size:.82rem;color:var(--muted)}
.runs li{margin:.4em 0}

/* news */
.news-item{padding:12px 0;border-bottom:1px solid var(--line)}
.news-item time{font-size:.82rem;color:var(--muted);font-weight:700;letter-spacing:.04em}
.news-item h2,.news-item h3{margin:.2em 0 .3em;font-size:1.15rem}
.news-item p{margin:0 0 .4em}
.news-src{font-size:.86rem;color:var(--muted)}

/* ads */
.ad-slot{display:block;min-height:280px;contain:layout;margin:24px auto;text-align:center}
.ad-slot::before{content:"Advertisements";display:block;font-size:11px;color:#777}

/* footer */
.ft{background:var(--paper);border-top:1px solid var(--line);margin-top:30px;padding:30px 0 24px;font-size:.92rem}
.ft-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px 28px}
.ft h2{font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .5em;color:var(--ink)}
.ft ul{list-style:none;padding:0;margin:0}
.ft li{margin:.2em 0}
.ft a{color:var(--text);text-decoration:none}
.ft a:hover{color:var(--accent-d);text-decoration:underline}
.ft-note{color:var(--muted);font-size:.82rem;margin:22px 0 0;border-top:1px solid var(--line);padding-top:14px}

/* print */
@media print{
  .hd,.nav,.ft,.ad-slot,.skip,.related,.cite,.hd-search,.copy{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  a{color:#000;text-decoration:none}
  .wrap{max-width:none;padding:0}
  .card,.box,.answer,.tool{break-inside:avoid}
  .print-only{display:block!important}
}
.print-only{display:none}

/* section pages, months, news, home */
.pills-nav{display:flex;flex-wrap:wrap;gap:8px;margin:.6em 0 1.4em}
.pills-nav a{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:.92rem;font-weight:600}
.pills-nav a:hover,.pills-nav a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.soon{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.pref-grid a.lite{opacity:.75}
table.climate td,table.climate th{text-align:right;white-space:nowrap}
table.climate th:first-child,table.climate td:first-child{text-align:left}
.see{font-size:.92rem;margin:.2em 0 1.2em}
.meta{color:var(--muted);font-size:.9rem;margin:.2em 0 1em}
.news-list{list-style:none;padding:0;margin:.4em 0 1em}
.news-list li{padding:8px 0;border-bottom:1px solid var(--line)}
.news-list time{display:inline-block;min-width:7.5em;font-size:.82rem;color:var(--muted);font-weight:700}
.news-guide{display:inline-block;margin-left:8px}
.home-sec{margin:0 0 1.2em}

/* tools */
.btn.sm{padding:5px 11px;font-size:.82rem}
.tool h2,.tool h3{margin-top:1.2em}
.tool table.mini{border-collapse:collapse;margin:.8em 0;font-size:.92rem;width:100%;max-width:560px}
.tool table.mini th,.tool table.mini td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:right}
.tool table.mini th:first-child,.tool table.mini td:first-child{text-align:left}
.tool fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 14px 10px;margin:10px 0}
.tool legend{font-weight:700;color:var(--ink);padding:0 6px}
.tool .chk .ja{color:var(--muted);font-weight:400;margin-left:4px}
.tool .chk .ro{color:var(--muted);font-weight:400;font-size:.86rem;margin-left:4px}
.a-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 16px}
.card-out{margin-top:16px;background:#fff;border:2px solid var(--ink);border-radius:12px;padding:18px 20px}
.card-out .card-ja{font-size:1.25rem;line-height:1.7}
.card-out .card-ja p{margin:0 0 .5em}
.card-out .card-en{border-top:1px dashed var(--line);margin-top:10px;padding-top:8px;font-size:.92rem;color:var(--muted)}
.card-out .card-en p{margin:0 0 .3em}
.phrase-list{list-style:none;padding:0;margin:.4em 0 1.4em}
.phrase-list li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.phrase-list .en{grid-column:1;font-weight:700;color:var(--ink)}
.phrase-list .ja{grid-column:1;font-size:1.15rem}
.phrase-list .ro{grid-column:1;color:var(--muted);font-size:.9rem}
.phrase-list .pb{grid-column:2;grid-row:1/4;display:flex;flex-direction:column;gap:6px}
.checklist .chk{align-items:flex-start;padding:4px 0;border-bottom:1px solid var(--line);margin:0}
.checklist .chk input{margin-top:5px}
.checklist h2{font-size:1.1rem;margin:1.2em 0 .3em}
@media print{
  .k-tool .print-card>:not(.card-out),.k-tool .print-card~*,.k-tool .checklist~*,.k-tool .checklist .actions,.k-tool .checklist .hint{display:none!important}
  .card-out{border:2px solid #000}
  .card-out .card-en{color:#333}
}
