/* TOP only. Shared article and translated-page styles remain unchanged. */
.cp-page-top { --home-blue:#176887; --home-ink:#203e4d; --home-line:#dce9ee; background:#fff; }
.cp-home { color:var(--home-ink); }
.cp-home a { text-decoration:none; }
.cp-home a:focus-visible { outline:3px solid #126c96; outline-offset:5px; }
.cp-home-container { width:min(1160px,calc(100% - 64px)); margin:auto; }
.cp-home-cover { position:relative; background:#d9edf0; isolation:isolate; overflow:hidden; }
.cp-home-cover__photo { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.cp-home-cover::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(249,253,253,.93),rgba(247,252,252,.74) 41%,rgba(236,247,250,.05) 80%); }
.cp-home-cover__inner { width:min(1160px,calc(100% - 64px)); position:relative; margin:auto; padding:62px 0 66px; }
.cp-home-eyebrow { font-size:13px; font-weight:700; letter-spacing:.1em; margin:0 0 20px; }
.cp-home h1 { font-size:clamp(30px,3.65vw,49px); font-weight:700; letter-spacing:.035em; line-height:1.6; color:#214b5c; margin:0; }
.cp-home-cover__lead { font-size:14px; line-height:2; margin:19px 0 25px; }
.cp-home-button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; min-height:46px; padding:11px 23px; background:#fff; border:1px solid #afcbd6; border-radius:7px; font-size:13px; font-weight:700; color:var(--home-blue); box-shadow:0 3px 10px #1f567510; }
.cp-home-button:hover { background:#f0f8fa; }
.cp-home-characters { display:flex; align-items:flex-end; justify-content:center; }
.cp-home-characters img { object-fit:contain; height:auto; flex-shrink:0; }
.cp-home-chopi { width:46%; }
.cp-home-log { width:52%; margin-left:-10%; }
.cp-home-cover .cp-home-characters { position:absolute; bottom:15px; right:1%; width:310px; }
.cp-home-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.cp-home h2 { font-size:24px; font-weight:700; letter-spacing:.035em; line-height:1.5; margin:0; color:var(--home-ink); }
.cp-home-heading p { font-size:13px; color:#59717c; margin:7px 0 0; }
.cp-home-link { display:inline-flex; gap:12px; align-items:center; color:var(--home-blue); font-size:13px; font-weight:600; min-height:44px; line-height:1.8; }
.cp-home-link:hover { text-decoration:underline; text-underline-offset:4px; }
.cp-home-link span { flex-shrink:0; }
.cp-home-section { margin-top:62px; scroll-margin-top:110px; min-width:0; }
.cp-home-actions { padding-top:32px; }
.cp-home-actions .cp-home-heading { justify-content:center; margin-bottom:22px; }
.cp-home-actions h2 { font-size:22px; }
.cp-home-action-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.cp-home-action { display:flex; position:relative; align-items:center; flex-direction:column; padding:15px 6px 18px; gap:5px; min-width:0; border:1px solid var(--home-line); border-radius:11px; background:#fff; color:var(--home-ink); transition:background .15s; }
.cp-home-action:hover { background:#f2f9fb; }
.cp-home-action__icon { font-size:26px; color:#41869a; line-height:1; height:33px; }
.cp-home-action strong { font-size:13px; font-weight:700; }
.cp-home-action > span:not([class]) { font-size:10px; color:#607780; }
.cp-home-action__arrow { color:#7b9da9; font-size:12px; line-height:1; }
.cp-home-feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.cp-home-feature { overflow:hidden; border:1px solid var(--home-line); border-radius:12px; background:#fff; color:var(--home-ink); }
.cp-home-feature > img,.cp-home-feature__visual { display:block; width:100%; height:210px; object-fit:cover; }
.cp-home-feature__visual { display:flex; align-items:center; justify-content:center; gap:16px; background:radial-gradient(circle at 75% 10%,#f8eacb 0,transparent 50%),linear-gradient(135deg,#d9e7f0,#ecebf4); color:#536c8a; }
.cp-home-feature__visual span:first-child { font-size:72px; font-weight:400; }
.cp-home-feature__visual span:last-child { font-size:13px; letter-spacing:.2em; }
.cp-home-feature__body { padding:20px 24px 15px; }
.cp-home-feature small { font-size:11px; color:#5e7d89; }
.cp-home-feature h3 { font-size:20px; line-height:1.5; margin:7px 0; }
.cp-home-feature p { font-size:13px; line-height:1.8; margin:0; color:#526c77; }
.cp-home-feature:hover h3 { color:var(--home-blue); }
.cp-home-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.cp-home .cp-article-card { min-width:0; border:1px solid var(--home-line); border-radius:11px; box-shadow:none; overflow:hidden; background:white; }
.cp-home .cp-article-card__image { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.cp-home .cp-article-card__body { padding:16px 18px; }
.cp-home .cp-article-card__title { font-size:16px; line-height:1.7; margin:9px 0 12px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.cp-home .cp-article-card__date { font-size:11px; color:#667c85; }
.cp-home-kind { display:inline-block; font-size:11px; line-height:1.7; font-weight:700; color:#417366; background:#eaf4ef; padding:2px 8px; border-radius:4px; margin-right:7px; }
.cp-home .cp-category-badge { font-size:10px; }
.cp-home-ranking { background:#f2f7f9; border-radius:12px; padding:25px; margin-top:62px; }
.cp-home-ranking ol { list-style:none; margin:0; padding:0; }
.cp-home-ranking li { display:flex; align-items:center; gap:15px; border-top:1px solid #d8e5eb; padding:12px 0; }
.cp-home-ranking li > span { font-size:22px; font-weight:700; color:#7c9baa; }
.cp-home-ranking .cp-home-link { font-size:14px; color:var(--home-ink); }
.cp-home-news,.cp-home-local ul { margin:0; padding:0; list-style:none; }
.cp-home-news li { display:grid; grid-template-columns:100px minmax(0,1fr); gap:18px; align-items:baseline; padding:13px 0; border-top:1px solid var(--home-line); }
.cp-home-news time { color:#6b818c; font-size:12px; }
.cp-home-news .cp-home-link,.cp-home-local .cp-home-link { color:var(--home-ink); font-size:14px; }
.cp-home-local { border-top:1px solid var(--home-line); padding-top:30px; }
.cp-home-local li { border-bottom:1px solid var(--home-line); padding:7px 0; }
.cp-home-about { display:grid; grid-template-columns:250px minmax(0,1fr); align-items:center; gap:45px; background:#f1f7f8; border:1px solid #e2edef; border-radius:15px; margin:64px 0; padding:36px 48px; }
.cp-home-about .cp-home-eyebrow { color:#527c82; margin-bottom:8px; }
.cp-home-about h2 { font-size:22px; }
.cp-home-about p:not([class]) { font-size:14px; line-height:2; max-width:630px; margin:16px 0 20px; }
@media(min-width:1100px) {
  .cp-home-editorial--ranked { display:grid; grid-template-columns:minmax(0,1fr) 275px; gap:0 34px; align-items:start; }
  .cp-home-editorial--ranked > .cp-home-section { grid-column:1; }
  .cp-home-editorial--ranked .cp-home-ranking { grid-column:2; grid-row:1 / span 3; }
  .cp-home-editorial--ranked .cp-home-ranking h2 { font-size:19px; }
  .cp-home-editorial--ranked .cp-home-grid { gap:16px; }
}
@media(max-width:900px) {
  .cp-home-action-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cp-home-cover .cp-home-characters { width:230px; right:-10px; }
  .cp-home-cover__lead { max-width:440px; }
  .cp-home-about { grid-template-columns:190px minmax(0,1fr); padding:28px; gap:22px; }
}
@media(max-width:600px) {
  .cp-home-container,.cp-home-cover__inner { width:calc(100% - 36px); }
  .cp-home-cover__inner { padding:31px 0 109px; }
  .cp-home-cover::before { background:linear-gradient(100deg,rgba(251,254,255,.94),rgba(245,252,254,.68) 75%,rgba(245,252,254,.3)); }
  .cp-home h1 { font-size:clamp(26px,7.1vw,33px); letter-spacing:0; line-height:1.6; }
  .cp-home-eyebrow { font-size:11px; margin-bottom:12px; letter-spacing:.04em; }
  .cp-home-cover__lead { font-size:12px; line-height:1.9; margin:14px 0 19px; }
  .cp-home-cover .cp-home-characters { width:160px; right:-3px; bottom:0; }
  .cp-home-button { font-size:12px; padding:10px 15px; gap:16px; }
  .cp-home-heading { align-items:flex-start; flex-wrap:wrap; gap:5px; margin-bottom:18px; }
  .cp-home h2 { font-size:20px; }
  .cp-home-heading p { font-size:12px; }
  .cp-home-heading > .cp-home-link { font-size:12px; }
  .cp-home-actions { padding-top:25px; }
  .cp-home-actions h2 { font-size:20px; }
  .cp-home-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .cp-home-action { padding:13px 5px; }
  .cp-home-action strong { font-size:13px; }
  .cp-home-action > span:not([class]) { font-size:10px; }
  .cp-home-section,.cp-home-ranking { margin-top:40px; }
  .cp-home-feature-grid { gap:13px; }
  .cp-home-feature > img,.cp-home-feature__visual { height:110px; }
  .cp-home-feature__visual { gap:0; flex-direction:column; }
  .cp-home-feature__visual span:first-child { font-size:40px; line-height:1.2; }
  .cp-home-feature__visual span:last-child { font-size:8px; letter-spacing:.05em; }
  .cp-home-feature__body { padding:12px; }
  .cp-home-feature small { font-size:10px; }
  .cp-home-feature h3 { font-size:15px; }
  .cp-home-feature p { font-size:12px; }
  .cp-home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
  .cp-home .cp-article-card__body { padding:11px; }
  .cp-home .cp-article-card__title { font-size:13px; line-height:1.65; margin:7px 0 10px; }
  .cp-home-kind { font-size:10px; padding:1px 5px; }
  .cp-home .cp-category-badge { font-size:9px; }
  .cp-home .cp-article-card__date { font-size:10px; }
  .cp-home-news li { display:block; padding:13px 0; }
  .cp-home-news .cp-home-link { font-size:13px; }
  .cp-home-about { display:flex; flex-direction:column; gap:10px; margin:40px 0; padding:24px; }
  .cp-home-about .cp-home-characters { width:200px; }
  .cp-home-about p:not([class]) { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .cp-home a { transition:none; } }
.cp-page-top .cp-nav__link { font-size:13px; white-space:nowrap; gap:0; }
.cp-page-top .cp-nav__link > span,.cp-page-top .cp-menu__link > span { display:none; }
.cp-page-top .cp-nav__list { gap:18px; }
.cp-page-top .cp-logo__en { font-size:10px; }
.cp-home-search__status { font-size:13px; color:#526c77; margin:20px 0 10px; }
.cp-home-search__results { list-style:none; padding:0; margin:0; max-height:45vh; overflow:auto; }
.cp-home-search__results a { display:block; padding:12px 0; border-bottom:1px solid #dce9ee; color:#176887; font-size:14px; }
.cp-home-search .cp-modal__dialog { max-height:90vh; overflow:auto; }
.cp-home-card-placeholder { aspect-ratio:16/9; display:grid; place-items:center; background:linear-gradient(135deg,#e6f1f4,#f4f8f9); color:#718e9b; font-size:18px; letter-spacing:.12em; }
.cp-home-action__icon img { display:block; }
.cp-page-top .cp-menu { max-height:calc(100dvh - 60px); overflow-y:auto; }
.cp-home .cp-article-card { display:block; }
.cp-home .cp-article-card__body { display:block; }
.cp-home .cp-article-card__image { flex:none; }
.cp-page-top .cp-logo__ja { white-space:nowrap; }
@media(max-width:600px) {
  .cp-page-top .cp-logo__en { display:none; }
  .cp-home-action > span:not([class]) { font-size:11px; line-height:1.7; }
}
