
:root{
  --ink:#142033;
  --muted:#667085;
  --line:#dfe5ee;
  --bg:#f4f6fa;
  --white:#fff;
  --navy:#0d2d5d;
  --blue:#0e62c5;
  --green:#14854b;
  --pink:#d9104b;
  --red:#b60016;
  --red2:#7b000a;
  --gold:#f7cf5d;
  --gold-deep:#9d5b00;
  --orange:#e55a00;
  --shadow:0 14px 34px rgba(20,32,51,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  background:var(--bg);
  color:var(--ink);
}
a{color:inherit}
.container{width:min(1240px,calc(100% - 28px));margin:auto}

/* Header */
body > header{
  position:sticky;top:0;z-index:40;
  background:#fff;
  border-bottom:1px solid var(--line);
  box-shadow:0 3px 14px rgba(19,35,58,.07);
}
.header-inner{
  min-height:82px;
  display:flex;align-items:center;justify-content:space-between;gap:22px;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#111}
.brand-mark{
  width:48px;height:48px;border-radius:50%;
  display:grid;place-items:center;
  background:linear-gradient(145deg,#fff6b3,#e2a10b);
  color:#6d3f00;font-size:26px;
  border:2px solid #d39a15;
  box-shadow:inset 0 2px 0 #fff,0 5px 12px rgba(151,93,0,.23);
}
.brand-copy strong{display:block;font-size:23px;line-height:1.05}
.brand-copy small{display:block;margin-top:5px;font-weight:700}
nav{display:flex;gap:4px;flex-wrap:wrap}
nav a{
  text-decoration:none;
  min-width:102px;
  text-align:center;
  padding:12px 10px;
  border-radius:10px;
  font-weight:900;
}
nav a small{display:block;margin-top:5px;font-size:10px;color:#777}
nav a:hover,nav a.active{
  background:linear-gradient(#cf001e,#a30014);
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);
}
nav a.active small, nav a:hover small{color:#ffe2e7}
.updated-box{
  padding:10px 15px;border:1px solid var(--line);
  border-radius:10px;background:#fff;font-size:12px;white-space:nowrap;
  box-shadow:0 3px 10px rgba(0,0,0,.05);
}
.updated-box strong{display:block;margin-top:2px;font-size:15px}
.updated-box span{display:block;margin-top:2px}

/* Premium hero */
.premium-stage{
  position:relative;
  overflow:hidden;
  padding:18px 0 10px;
  background:
    radial-gradient(circle at 14% 30%,rgba(255,68,25,.32),transparent 28%),
    radial-gradient(circle at 72% 10%,rgba(255,205,60,.13),transparent 26%),
    linear-gradient(108deg,#5a0006 0%,#a80012 35%,#7e0009 67%,#3d0004 100%);
  border-bottom:5px solid #c68100;
}
.premium-stage::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(135deg,rgba(255,255,255,.04) 25%,transparent 25%) 0 0/64px 64px,
    linear-gradient(315deg,rgba(255,255,255,.028) 25%,transparent 25%) 0 0/64px 64px;
  pointer-events:none;
}
.premium-stage::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,transparent,#ffe68d 20%,#b87400 50%,#ffe68d 80%,transparent);
}
.premium-glow{
  position:absolute;border-radius:50%;filter:blur(28px);opacity:.45;pointer-events:none;
}
.premium-glow-a{width:240px;height:240px;left:-70px;top:80px;background:#e24300}
.premium-glow-b{width:260px;height:260px;right:120px;top:-100px;background:#c18b00}
.premium-stage-inner{
  position:relative;z-index:2;
  width:min(1480px,calc(100% - 28px));
  margin:auto;
  display:grid;
  grid-template-columns:440px 1fr;
  gap:12px;
  align-items:stretch;
}

/* Left framed title panel */
.title-panel{
  position:relative;
  min-height:410px;
  padding:28px 22px 24px;
  text-align:center;
  color:#fff;
  background:
    radial-gradient(circle at 48% 32%,rgba(255,198,39,.18),transparent 35%),
    linear-gradient(145deg,#85000c,#c10a16 48%,#730007);
  border:3px solid #e6b744;
  box-shadow:
    inset 0 0 0 2px #6e1d00,
    inset 0 0 30px rgba(255,182,36,.18),
    0 12px 26px rgba(0,0,0,.34);
}
.title-panel::before{
  content:"";
  position:absolute;inset:10px;
  border:1px solid rgba(255,221,122,.68);
  pointer-events:none;
}
.title-panel::after{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 18% 20%,#ffd545 0 2px,transparent 3px),
    radial-gradient(circle at 82% 18%,#fff0a7 0 2px,transparent 3px),
    radial-gradient(circle at 76% 70%,#ffcc3d 0 2px,transparent 3px),
    radial-gradient(circle at 24% 76%,#fff3b1 0 2px,transparent 3px);
  background-size:90px 86px,130px 120px,105px 98px,150px 135px;
  opacity:.72;
  pointer-events:none;
}
.corner{
  position:absolute;width:44px;height:44px;z-index:3;
  border-color:#f7d36b;border-style:solid;
}
.corner-tl{left:10px;top:10px;border-width:3px 0 0 3px;border-radius:14px 0 0 0}
.corner-tr{right:10px;top:10px;border-width:3px 3px 0 0;border-radius:0 14px 0 0}
.corner-bl{left:10px;bottom:10px;border-width:0 0 3px 3px;border-radius:0 0 0 14px}
.corner-br{right:10px;bottom:10px;border-width:0 3px 3px 0;border-radius:0 0 14px 0}
.title-eyebrow{
  display:inline-block;position:relative;z-index:2;
  padding:7px 17px;
  background:#541006;
  border:1px solid #d6a233;
  color:#ffe989;
  font-weight:1000;
  clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);
}
.title-crown{
  position:relative;z-index:2;
  margin:-2px auto -12px;
  font-size:58px;
  line-height:1;
  color:#ffd24b;
  text-shadow:0 3px 0 #8d4b00,0 6px 12px rgba(0,0,0,.4);
}
.title-panel h1{
  position:relative;z-index:2;
  margin:10px 0 0;
  font-size:30px;
  line-height:1.12;
  text-shadow:0 3px 0 rgba(0,0,0,.4);
}
.title-divider{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:9px;
  margin:10px auto 4px;
  color:#ffd45b;
}
.title-divider span{width:62px;height:1px;background:linear-gradient(90deg,transparent,#ffd45b)}
.title-divider span:last-child{background:linear-gradient(90deg,#ffd45b,transparent)}
.title-divider b{font-size:13px}
.title-top3{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin:2px 0 11px;
}
.title-top3 strong{
  font-family:Arial Black,Impact,sans-serif;
  font-size:88px;
  letter-spacing:-7px;
  line-height:.88;
  color:#ffd85a;
  -webkit-text-stroke:2px #fff0a5;
  text-shadow:0 4px 0 #a96300,0 8px 0 #5c2600,0 14px 22px rgba(0,0,0,.45);
}
.laurel{
  font-size:58px;color:#ffd44f;
  filter:drop-shadow(0 3px 1px #714000);
}
.title-banner{
  position:relative;z-index:2;
  margin:5px auto 12px;
  padding:12px 24px;
  color:#4f2900;
  font-size:17px;font-weight:1000;
  background:linear-gradient(#fff7a6,#ffc51b 55%,#d77b00);
  border:2px solid #fff0a0;
  box-shadow:0 5px 11px rgba(0,0,0,.27);
  clip-path:polygon(0 13%,8% 18%,8% 0,92% 0,92% 18%,100% 13%,94% 50%,100% 87%,92% 82%,92% 100%,8% 100%,8% 82%,0 87%,6% 50%);
}
.title-update{
  position:relative;z-index:2;
  display:inline-block;
  padding:8px 18px;
  border-radius:999px;
  background:#360305;
  border:1px solid #d79b23;
  font-weight:900;
}

/* Cards */
.top3-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.rank-card{
  position:relative;
  min-width:0;
  min-height:410px;
  padding:56px 18px 17px;
  border-radius:0;
  color:#132033;
  background:
    radial-gradient(circle at 90% 10%,rgba(255,225,139,.2),transparent 22%),
    linear-gradient(145deg,#fffdf7,#fff9e8 72%,#ffe8a9);
  border:3px solid #d7a43b;
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.95),
    inset 0 0 30px rgba(255,206,75,.09),
    0 11px 23px rgba(0,0,0,.27);
}
.rank-card::after{
  content:"";
  position:absolute;inset:8px;
  border:1px solid rgba(185,126,10,.24);
  pointer-events:none;
}
.rank-card.rank-2{
  background:linear-gradient(145deg,#fff,#f1f8ff 75%,#cbe6ff);
  border-color:#8ab5d8;
}
.rank-card.rank-3{
  background:linear-gradient(145deg,#fffdf9,#fff4e9 75%,#ffd4ad);
  border-color:#d58b45;
}
.medal{
  position:absolute;z-index:3;
  left:10px;top:-13px;
  width:82px;height:82px;border-radius:50%;
  display:grid;place-items:center;
  font-size:40px;font-weight:1000;color:#fff;
  border:6px double #fff2ac;
  box-shadow:0 6px 12px rgba(0,0,0,.31);
  text-shadow:0 3px 0 rgba(0,0,0,.25);
}
.rank-1 .medal{background:linear-gradient(145deg,#ffe972,#d28a00)}
.rank-2 .medal{background:linear-gradient(145deg,#f4f7fb,#8f9cab)}
.rank-3 .medal{background:linear-gradient(145deg,#ffd1a1,#aa5623)}
.medal::before{
  content:"♛";position:absolute;top:-31px;
  font-size:34px;color:inherit;
  filter:drop-shadow(0 2px 1px rgba(0,0,0,.3));
}
.rank-tag{
  position:absolute;z-index:3;right:14px;top:17px;
  padding:7px 13px;border-radius:999px;
  background:#e50042;color:#fff;font-size:13px;font-weight:1000;
  box-shadow:0 3px 7px rgba(0,0,0,.14);
}
.rank-2 .rank-tag{background:#0d5ab5}
.rank-3 .rank-tag{background:#db5400}
.bank-row{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-top:12px;
}
.bank-logo{
  width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;
  color:#fff;font-size:18px;font-weight:1000;
  background:linear-gradient(145deg,#2bb4e8,#07539b);
  box-shadow:0 4px 9px rgba(0,0,0,.16);
}
.rank-2 .bank-logo{background:linear-gradient(145deg,#ef2737,#940008)}
.rank-3 .bank-logo{background:linear-gradient(145deg,#59b599,#174f78)}
.bank-name{font-size:21px;font-weight:1000}
.campaign-name{
  position:relative;z-index:2;
  text-align:center;margin-top:10px;
  font-weight:800;min-height:44px;
}
.rate-wrap{
  position:relative;z-index:2;
  display:flex;align-items:flex-end;justify-content:center;gap:8px;
  margin:17px 0 10px;
}
.rate-label{
  font-weight:1000;color:#e50042;line-height:1.05;
}
.rank-2 .rate-label,.rank-2 .rate{color:#0d5ab5}
.rank-3 .rate-label,.rank-3 .rate{color:#db5400}
.rate{
  color:#e50042;
  font-family:Arial Black,Arial,sans-serif;
  font-size:48px;line-height:1;letter-spacing:-4px;
  text-shadow:0 2px #fff;
}
.rate small{font-size:22px;letter-spacing:-1px}
.deadline{
  position:relative;z-index:2;
  width:108px;margin:9px auto 0;padding:8px;
  text-align:center;background:#fff;border-radius:9px;
  box-shadow:0 3px 9px rgba(0,0,0,.12);
  font-size:11px;font-weight:800;
}
.deadline strong{display:block;font-size:27px}
.features{
  position:relative;z-index:2;
  list-style:none;padding:0;margin:14px 0 0;
  font-size:14px;font-weight:700;
}
.features li{position:relative;padding-left:20px;margin:7px 0}
.features li::before{content:"●";position:absolute;left:0;color:#e50042}
.rank-2 .features li::before{color:#0d5ab5}
.rank-3 .features li::before{color:#db5400}
.rank-card .cta{
  position:relative;z-index:2;
  display:block;margin-top:15px;padding:12px;
  color:#fff;text-align:center;text-decoration:none;
  font-size:17px;font-weight:1000;
  border-radius:999px;
  background:linear-gradient(#ff2c69,#ce003f);
  border:2px solid rgba(255,255,255,.35);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.42),0 5px 9px rgba(120,0,45,.24);
}
.rank-2 .cta{background:linear-gradient(#2d83df,#004ea8)}
.rank-3 .cta{background:linear-gradient(#ff8424,#d34400)}
.more-campaigns{
  position:relative;z-index:2;
  display:block;width:max-content;
  margin:8px auto 0;color:#ffe77f;
  text-decoration:none;font-weight:900;font-size:13px;
}

/* Calm dashboard */
.content-wrap{padding:18px 0 44px}
.dashboard{
  display:grid;
  grid-template-columns:1.18fr .88fr .88fr;
  gap:15px;
}
.panel{
  background:#fff;border:1px solid var(--line);
  border-radius:13px;overflow:hidden;box-shadow:var(--shadow)
}
.panel-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 15px;color:#fff;font-size:18px;font-weight:1000;
}
.panel-head.pink{background:linear-gradient(90deg,#df0f4d,#b40837)}
.panel-head.blue{background:linear-gradient(90deg,#155fbb,#073b7b)}
.panel-head.green{background:linear-gradient(90deg,#1a9852,#0b6c35)}
.panel-head a{font-size:13px;text-decoration:none}
.mini-table{width:100%;border-collapse:collapse}
.mini-table th,.mini-table td{padding:10px 9px;border-bottom:1px solid #e8ecf1;text-align:left;font-size:13px}
.mini-table th{background:#f7f8fb}
.mini-rate{font-size:22px;font-weight:1000;color:#d50f4d}
.news-list{list-style:none;margin:0;padding:0}
.news-list li{padding:13px 14px;border-bottom:1px solid #e8ecf1}
.news-list a{text-decoration:none;font-weight:700}
.news-list time{display:block;font-size:12px;color:#6c7687;margin-bottom:4px}
.quick-actions{
  margin-top:15px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:13px;
}
.quick{
  display:flex;align-items:center;gap:12px;
  padding:16px;border-radius:12px;text-decoration:none;font-weight:900;
  border:1px solid var(--line);box-shadow:0 5px 14px rgba(17,39,67,.06)
}
.quick-red{background:#fff1f4;color:#bf123f}
.quick-blue{background:#eef5ff;color:#194a8d}
.quick-orange{background:#fff5e8;color:#a64c00}
.quick-purple{background:#f7f0ff;color:#6633a0}
.quick-icon{font-size:30px}
.quick small{display:block;margin-top:5px;color:#667085;font-weight:600}
.notice{
  margin-top:16px;padding:12px;border-radius:12px;
  background:#fff8df;border:1px solid #f1d27c;color:#6d5400
}
footer{
  padding:24px 0;background:#fff;border-top:1px solid var(--line);
  color:#667085;font-size:13px
}

/* Inner pages */
.page-main{padding:28px 0 48px}
.section{margin-top:22px}
.section h1,.section h2{margin:0;color:var(--navy)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px}
.muted{color:var(--muted)}
.card,.table-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 22px rgba(15,47,87,.06)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;padding:14px}
input,select{width:100%;padding:11px;border:1px solid #cfd7e3;border-radius:9px;background:#fff}
.table-wrap{overflow:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{padding:14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.data-table th{background:#edf4ff;color:var(--navy)}
.badge{background:#fff1c9;color:#805800;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.news-card{padding:18px}.news-meta{font-size:13px;color:var(--muted)}
.news-card h3{margin:7px 0}.news-card a{color:var(--blue);font-weight:700}

@media(max-width:1180px){
  .updated-box{display:none}
  nav a{min-width:auto}
  .premium-stage-inner{grid-template-columns:1fr}
  .title-panel{max-width:700px;width:100%;margin:auto}
  .top3-grid{max-width:1080px;width:100%;margin:auto}
}
@media(max-width:860px){
  .header-inner{flex-direction:column;align-items:flex-start;padding:12px 0}
  nav{width:100%;overflow:auto;flex-wrap:nowrap}
  nav a{white-space:nowrap}
  .top3-grid,.dashboard,.quick-actions,.news-grid{grid-template-columns:1fr}
  .title-top3 strong{font-size:72px}
  .filters{grid-template-columns:1fr}
}
@media(max-width:520px){
  .container,.premium-stage-inner{width:min(100% - 18px,1240px)}
  .brand-copy strong{font-size:19px}
  .title-panel{padding-left:14px;padding-right:14px}
  .title-panel h1{font-size:24px}
  .title-top3 strong{font-size:58px}
  .laurel{font-size:40px}
  .rank-card{padding-left:15px;padding-right:15px}
}


/* Approved Pattern B title artwork */
.premium-stage-inner{
  grid-template-columns:464px 1fr;
  gap:10px;
  align-items:stretch;
}
.approved-title-panel{
  position:relative;
  min-height:410px;
  overflow:hidden;
  border:3px solid #e6b744;
  background:#8d000c;
  box-shadow:
    inset 0 0 0 2px #6e1d00,
    0 12px 26px rgba(0,0,0,.34);
}
.approved-title-image{
  display:block;
  width:100%;
  height:100%;
  min-height:410px;
  object-fit:cover;
  object-position:center;
}
.top3-grid{
  gap:10px;
  align-items:stretch;
}
.rank-card{
  min-height:410px;
}
@media(max-width:1180px){
  .premium-stage-inner{grid-template-columns:1fr}
  .approved-title-panel{
    width:min(100%,700px);
    min-height:0;
    margin:auto;
  }
  .approved-title-image{
    height:auto;
    min-height:0;
  }
}


/* v2: approved title image — prevent cropping at wide widths */
.approved-title-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 50%,rgba(204,0,20,.28),transparent 65%),
    linear-gradient(145deg,#720008,#9d000d 55%,#5b0005);
}
.approved-title-image{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  max-height:410px;
  object-fit:contain;
  object-position:center;
}

/* Keep the approved artwork proportions instead of stretching it */
@media(min-width:1181px){
  .approved-title-panel{
    min-height:410px;
    padding:12px 0;
  }
  .approved-title-image{
    width:100%;
    height:100%;
    max-height:386px;
    object-fit:contain;
  }
}

@media(max-width:1180px){
  .approved-title-panel{
    min-height:0;
    padding:0;
  }
  .approved-title-image{
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
  }
}

.campaign-detail-link{text-decoration:none;color:inherit}.campaign-detail-link:hover{color:#155eb5}


/* Campaign detail typography consistency */
body{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.brand-copy strong,
header nav a{
  font-weight:800;
}

.ordinary-detail-link{text-decoration:none;color:inherit}
.ordinary-detail-link:hover{color:#155eb5}
.table-detail-button{
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 12px;border-radius:8px;
  background:#155eb5;color:#fff;text-decoration:none;font-size:12px;font-weight:800;
  white-space:nowrap
}
.table-detail-button:hover{background:#0e478d}

.news-detail-link{
  color:inherit;
  text-decoration:none;
}
.news-detail-link:hover{
  color:#155eb5;
}
.news-list a{
  display:block;
}


/* ===== 現在ページのナビゲーション強調 ===== */
body > header nav a.active{
  background:linear-gradient(180deg,#d60022 0%,#a90019 100%);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 5px 13px rgba(154,0,24,.22);
}
body > header nav a.active small{
  color:#ffe5ea;
}
body > header nav a.active:hover{
  background:linear-gradient(180deg,#d60022 0%,#a90019 100%);
  color:#fff;
}


/* ===== Ver.2.3 金融サイトUI改善 ===== */
.freshness-bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 14px;padding:11px 14px;border:1px solid #d6e4f1;border-radius:12px;
  background:#f8fbfe;color:#324b64;font-size:13px
}
.freshness-bar .trust-chip{
  display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;
  background:#e9f7ef;color:#176a3d;font-weight:900
}
.freshness-bar>span:not(.trust-chip){font-weight:900;color:#0a315b}
.freshness-bar small{color:#718296}
.home-trust-strip{background:#fff;border-bottom:1px solid #dce6ef}
.home-trust-strip .container{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:13px;padding-bottom:13px}
.home-trust-strip strong{color:#176a3d}
.home-trust-strip span{color:#5b6e82;font-size:13px}
.data-table .rate-cell strong{
  font-size:1.32rem;color:#d6003d;font-weight:900;letter-spacing:.01em
}
.data-table .bank-cell strong{font-size:1.03rem;color:#092f5a}
.data-table .confirmed-cell{font-size:.9rem;color:#52677c}
.table-detail-button,.mobile-detail-link{font-weight:900}
.mobile-detail-link{display:none;color:#155eb5;text-decoration:none;margin-top:7px}
.mini-table .mini-rate{font-weight:900;color:#d6003d;font-size:1.08rem}

@media(max-width:760px){
  .freshness-bar{align-items:flex-start;gap:7px}
  .freshness-bar small{width:100%}
  .home-trust-strip .container{display:block;text-align:center}
  .home-trust-strip span{display:block;margin-top:3px}

  .data-table{display:block;width:100%}
  .data-table thead{display:none}
  .data-table tbody{display:grid;gap:12px}
  .data-table tbody tr{
    display:grid!important;grid-template-columns:76px 1fr;
    border:1px solid #d7e2ed!important;border-radius:14px!important;
    padding:0!important;background:#fff;overflow:hidden;
    box-shadow:0 5px 16px rgba(21,56,91,.06)
  }
  .data-table tbody td{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    min-height:48px;padding:10px 13px!important;border:0!important;
    border-bottom:1px solid #edf1f5!important;text-align:right!important
  }
  .data-table tbody td:last-child{border-bottom:0!important}
  .data-table tbody td::before{
    flex:0 0 74px;text-align:left;font-size:11px;font-weight:900;color:#65798f
  }
  .data-table tbody .rank-cell{
    grid-column:1;grid-row:1 / span 2;display:grid!important;place-items:center!important;
    padding:0!important;background:#eef5fc;color:#0a315b;font-size:1.3rem;font-weight:900;
    border-right:1px solid #dce5ef!important;border-bottom:1px solid #dce5ef!important
  }
  .data-table tbody .rank-cell::before{content:"順位";display:block;flex:none;font-size:10px;text-align:center}
  .data-table tbody .bank-cell{grid-column:2;grid-row:1;justify-content:flex-start!important;text-align:left!important}
  .data-table tbody .bank-cell::before{display:none}
  .data-table tbody .bank-cell a{width:100%}
  .data-table tbody .rate-cell{grid-column:2;grid-row:2}
  .data-table tbody .rate-cell::before{content:"年利"}
  .data-table tbody .rate-cell strong{font-size:1.5rem}
  .data-table tbody .condition-cell{grid-column:1 / 3;grid-row:auto;align-items:flex-start;text-align:left!important}
  .data-table tbody .condition-cell::before{content:"条件";flex:0 0 55px}
  .data-table tbody .confirmed-cell{grid-column:1 / 3}
  .data-table tbody .confirmed-cell::before{content:"確認日";flex:0 0 55px}
  .data-table tbody .detail-cell{grid-column:1 / 3;justify-content:flex-end!important}
  .data-table tbody .detail-cell::before{display:none}
  .data-table tbody .end-cell{grid-column:1 / 3}
  .data-table tbody .end-cell::before{content:"終了日";flex:0 0 55px}
  .data-table tbody .category-cell{grid-column:1 / 3}
  .data-table tbody .category-cell::before{content:"種類";flex:0 0 55px}
  .mobile-detail-link{display:inline-block}
}

/* ===== Ver.2.4 ニュース検索 ===== */
.news-filter-panel{margin:0 0 18px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 22px rgba(15,47,87,.05)}
.news-filter-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}
.news-filter-grid label span{display:block;margin:0 0 6px;color:var(--navy);font-size:12px;font-weight:800}
.news-filter-grid select{min-height:44px}
#newsFilterReset{min-height:44px;padding:0 16px;border:1px solid #b9c9d9;border-radius:9px;background:#f7f9fc;color:var(--navy);font-weight:800;cursor:pointer;white-space:nowrap}
#newsFilterReset:hover{background:#eef4fa}
.news-filter-summary{display:flex;align-items:baseline;gap:5px;margin-top:11px;color:var(--muted);font-size:12px}
.news-filter-summary strong{color:var(--blue);font-size:17px}
.news-empty{padding:28px;text-align:center;background:#fff;border:1px dashed #cbd8e5;border-radius:14px;color:var(--muted)}
@media(max-width:860px){.news-filter-grid{grid-template-columns:1fr 1fr}.news-filter-grid button{grid-column:1 / 3}}
@media(max-width:520px){.news-filter-grid{grid-template-columns:1fr}.news-filter-grid button{grid-column:auto}}


/* ===== Ver2.7.0 clean redesign ===== */
body{background:#f7f9fc;color:#0b2b5b}
body > header{position:sticky;background:rgba(255,255,255,.98);box-shadow:0 3px 16px rgba(22,54,93,.08)}
.header-inner{min-height:72px;gap:18px}
.brand{gap:12px;min-width:320px}
/* Crown size is intentionally fixed */
.brand-mark{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;font-size:26px!important;flex:0 0 48px!important}
.brand-copy{display:flex;flex-direction:column;align-items:center;line-height:1}
.brand-copy strong{font-size:20px;line-height:1;font-weight:900;color:#0b2b5b;white-space:nowrap}
.brand-copy .brand-en{font-family:Arial,sans-serif;font-size:10px;letter-spacing:2px;color:#9aa2af;font-weight:800;margin:5px 0 4px;display:flex;align-items:center;gap:7px;white-space:nowrap}
.brand-copy .brand-en:before,.brand-copy .brand-en:after{content:"";width:24px;height:1px;background:#cdd4dd}
.brand-copy small{margin:0;font-size:10px;font-weight:700;color:#0b2b5b;white-space:nowrap}
nav{gap:12px;align-items:center}
nav a{min-width:108px;padding:11px 12px;border-radius:9px;color:#0b2b5b}
nav a.active,nav a:hover{background:#e60012;box-shadow:0 5px 12px rgba(230,0,18,.18)}
.updated-box{display:none}
.modern-home{padding:22px 0 0;background:#f7f9fc}
.home-hero{height:252px;display:grid;grid-template-columns:43% 57%;overflow:hidden;border-radius:16px;background:linear-gradient(105deg,#e5f3ff 0%,#d8ecff 48%,#cfe7ff 100%);box-shadow:0 5px 22px rgba(49,96,151,.12);position:relative}
.hero-copy{padding:28px 24px 22px 54px;position:relative;z-index:2}
.hero-badge{display:inline-block;background:#df1821;color:#fff;font-weight:900;font-size:17px;padding:7px 24px;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%)}
.hero-copy h1{font-size:36px;line-height:1.25;margin:12px 0 4px;color:#062d72;letter-spacing:.02em}
.hero-copy h1 strong{font-size:54px;letter-spacing:.04em}
.hero-copy p{font-weight:800;margin:5px 0 18px;color:#14396d}
.hero-btn{display:inline-flex;align-items:center;gap:24px;padding:13px 28px;border-radius:999px;background:#0866c7;color:#fff;text-decoration:none;font-weight:900;box-shadow:0 7px 15px rgba(8,102,199,.22)}
.hero-visual{height:100%;overflow:hidden;position:relative;background:#cfe7ff;display:flex;align-items:center;justify-content:center}
.hero-visual img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;mix-blend-mode:multiply}
.modern-content{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1fr);gap:24px;padding-top:20px;padding-bottom:34px}
.modern-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px}
.modern-section-head h2{font-size:21px;margin:0;color:#0b2b5b}.modern-section-head a{font-size:13px;color:#0d63bc;text-decoration:none;font-weight:900;white-space:nowrap}
.modern-top3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.modern-home .rank-card{min-height:330px;padding:96px 18px 16px;border-radius:12px;background:#fff;border:1px solid #e3e9f1;box-shadow:0 6px 18px rgba(19,54,94,.08)}
.modern-home .rank-card:after{display:none}.modern-home .rank-card .rate{color:#e60012}
.modern-home .rank-card .medal{top:10px;left:12px;width:72px;height:72px;font-size:34px;border-width:5px}
.modern-home .rank-card .medal::before{top:-8px;font-size:24px}
.modern-home .rank-card .rank-tag{top:18px;right:14px}
.modern-home .rank-card .bank-row{margin-top:0;min-height:44px}
.modern-home .rank-card .deadline{width:auto;max-width:100%;display:block;white-space:nowrap;margin:10px auto 0;padding:8px 10px;font-size:12px}
.modern-home .rank-card .features{margin-top:12px;min-height:30px}
.modern-home .rank-card .features li{margin:5px 0}
.modern-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 24px}
.modern-quick .quick{background:#fff!important;color:#0b2b5b!important;border:1px solid #e1e7f0;border-radius:12px;box-shadow:0 4px 14px rgba(19,54,94,.06);padding:20px 14px;min-height:132px}
.modern-quick .quick-icon{font-size:32px}.modern-quick small{color:#667085;margin-top:12px}
.modern-ranking,.modern-news{background:#fff;border:1px solid #e1e7f0;border-radius:14px;box-shadow:0 4px 16px rgba(19,54,94,.06);padding:18px}
.modern-ranking .mini-table{background:#fff}.modern-side{padding-top:0}.modern-news{position:sticky;top:94px}.modern-news .news-list{margin:0}.modern-news .news-list li{padding:15px 0;border-bottom:1px solid #e7ebf1}.side-more{display:block;text-align:center;padding:18px 0 4px;color:#0d63bc;text-decoration:none;font-weight:900}
.home-trust-strip{background:#eef6ff;border-top:1px solid #dce8f5;border-bottom:0;color:#0b4d8c;margin-top:0}
footer{background:#0b2b5b;color:#dce7f5}
@media(max-width:900px){.header-inner{min-height:68px}.brand{min-width:0}.brand-copy strong{font-size:17px}.brand-copy .brand-en{font-size:8px;margin:4px 0 3px}.brand-copy small{font-size:9px}nav{display:none}.home-hero{height:auto;grid-template-columns:1fr}.hero-copy{padding:24px}.hero-copy h1{font-size:29px}.hero-copy h1 strong{font-size:42px}.hero-visual{height:210px}.modern-content{grid-template-columns:1fr}.modern-top3{grid-template-columns:1fr}.modern-quick{grid-template-columns:1fr 1fr}.modern-news{position:static}}
@media(max-width:520px){.brand-mark{width:48px!important;height:48px!important;flex-basis:48px!important}.brand-copy strong{font-size:15px}.brand-copy small{font-size:8px}.brand-copy .brand-en:before,.brand-copy .brand-en:after{width:15px}.container{width:min(100% - 18px,1240px)}.modern-quick{grid-template-columns:1fr}.hero-copy{padding:20px}.hero-visual{height:180px}}

/* Ver2.7.2: TOPヒーローを承認済みの横長・低めサイズへ調整 */
@media (min-width: 901px){
  .home-hero{
    height:170px;
    grid-template-columns:58% 42%;
  }
  .hero-copy{
    padding:18px 24px 16px 44px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
  }
  .hero-badge{
    font-size:14px;
    padding:5px 20px;
  }
  .hero-copy h1{
    font-size:28px;
    line-height:1.12;
    margin:8px 0 2px;
  }
  .hero-copy h1 strong{
    font-size:40px;
    line-height:1;
  }
  .hero-copy p{
    font-size:13px;
    margin:4px 0 9px;
  }
  .hero-btn{
    padding:8px 22px;
    font-size:13px;
    gap:18px;
  }
  .hero-visual{
    height:170px;
    overflow:hidden;
  }
  .hero-visual img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
  }
}


/* Ver2.7.3: ユーザー指定の添付TOP画像（566×124 / 約4.565:1）をそのまま表示 */
.home-hero.home-hero-fixed{
  display:block;
  height:auto;
  aspect-ratio:566 / 124;
  padding:0;
  overflow:hidden;
  border-radius:12px;
  background:#eaf5ff;
  box-shadow:0 5px 22px rgba(49,96,151,.12);
}
.home-hero-fixed-link{
  display:block;
  width:100%;
  height:100%;
}
.home-hero-fixed img{
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  object-position:center;
  margin:0;
}
@media(max-width:900px){
  .home-hero.home-hero-fixed{
    height:auto;
    aspect-ratio:566 / 124;
  }
}

/* Ver2.7.4 TOPランキングボタン */
.home-hero.home-hero-fixed{position:relative}
.home-hero.home-hero-fixed>img{display:block;width:100%;height:100%;object-fit:fill;object-position:center}
.home-hero-ranking-btn{position:absolute;left:31%;top:61%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:190px;height:44px;padding:0 24px;border-radius:999px;background:linear-gradient(180deg,#0879dc,#0564bd);color:#fff;font-weight:800;font-size:16px;line-height:1;text-decoration:none;box-shadow:0 5px 12px rgba(0,91,184,.22);white-space:nowrap;z-index:2}
.home-hero-ranking-btn:hover{filter:brightness(.96)}
.home-hero-ranking-arrow{font-size:25px;font-weight:500;line-height:1}
@media(max-width:900px){.home-hero-ranking-btn{min-width:145px;height:34px;padding:0 16px;gap:10px;font-size:12px}.home-hero-ranking-arrow{font-size:19px}}
@media(max-width:560px){.home-hero-ranking-btn{min-width:112px;height:28px;padding:0 10px;gap:7px;font-size:10px}.home-hero-ranking-arrow{font-size:16px}}

/* Ver2.7.5: 添付確定画像の配置を変更せず使用。画像内ボタン位置に透明リンクのみ設定 */
.home-hero-ranking-btn{display:none!important}
.home-hero-ranking-hotspot{
  position:absolute;
  left:21.1%;
  top:51.5%;
  width:20.2%;
  height:31%;
  z-index:3;
  display:block;
  border-radius:999px;
  background:transparent;
}

/* Ver2.7.8: TOP画像の縦横比を保持し、つぶれを防止 */
.home-hero.home-hero-fixed > img{
  object-fit:cover !important;
  object-position:center !important;
}


/* Ver2.7.9: キャンペーン一覧「主な条件」をコンパクト表示 */
.data-table .campaign-condition-cell{
  width:32%;
  max-width:390px;
  min-width:260px;
  white-space:normal;
  vertical-align:middle;
}
.campaign-condition-preview{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  line-height:1.55;
  max-height:3.1em;
  overflow-wrap:anywhere;
}
.condition-more-btn{
  margin-top:6px;
  padding:0;
  border:0;
  background:transparent;
  color:#0867c5;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.condition-more-btn:hover{color:#004d99}

/* 条件全文ポップアップ */
.condition-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.condition-modal.is-open{display:flex}
.condition-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,31,61,.46);
  backdrop-filter:blur(2px);
}
.condition-modal-panel{
  position:relative;
  z-index:1;
  width:min(620px,calc(100vw - 32px));
  max-height:min(72vh,640px);
  overflow:auto;
  background:#fff;
  border-radius:18px;
  box-shadow:0 22px 60px rgba(13,49,91,.28);
  padding:26px 28px 22px;
}
.condition-modal-panel h3{
  margin:0 42px 16px 0;
  color:#08386d;
  font-size:22px;
}
.condition-modal-text{
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.8;
  color:#213b59;
  font-size:15px;
}
.condition-modal-close{
  position:absolute;
  top:14px;
  right:16px;
  width:36px;
  height:36px;
  border:0;
  border-radius:50%;
  background:#f1f5fa;
  color:#173d68;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}
.condition-modal-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:22px;
}
.condition-modal-ok{
  border:0;
  border-radius:10px;
  background:#0a66c2;
  color:#fff;
  font-weight:800;
  padding:10px 24px;
  cursor:pointer;
}
body.condition-modal-open{overflow:hidden}

@media(max-width:760px){
  .data-table .campaign-condition-cell{
    width:auto;
    max-width:none;
    min-width:0;
  }
  .campaign-condition-preview{-webkit-line-clamp:3;max-height:4.65em}
  .condition-modal-panel{padding:22px 20px 18px}
}


/* Ver2.7.10: TOP3金利クリック→シミュレーター（見た目は変更しない） */
.rate-simulator-link{
  color:inherit;
  text-decoration:none;
  display:inline-block;
}
.rate-simulator-link:visited{color:inherit}
.rate-simulator-link:hover{color:inherit;text-decoration:none}
.rate-simulator-link:focus-visible{
  outline:2px solid #1d70c9;
  outline-offset:3px;
  border-radius:4px;
}
/* 補足文は非表示だが、カードの既存レイアウト位置は維持 */
.features.features-empty{
  visibility:hidden;
}


/* Ver2.7.11: TOP3カードの縦方向だけ圧縮。既存デザインは維持 */
.modern-home .rank-card{
  min-height:0 !important;
  padding-bottom:16px !important;
}

/* Ver2.7.10で非表示にした補足欄は高さも確保しない */
.modern-home .rank-card .features.features-empty{
  display:none !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

/* 終了日から既存CTAまでの余白を自然な間隔に */
.modern-home .rank-card .deadline{
  margin-bottom:0 !important;
}
.modern-home .rank-card .cta{
  margin-top:14px !important;
}

/* 3カードはグリッド内で同じ高さにそろえる */
.modern-home .modern-top3{
  align-items:stretch;
}
.modern-home .modern-top3 .rank-card{
  height:100%;
}


/* Ver2.7.12: TOP3カード 終了日の下の余白をさらに圧縮 */
.modern-home .rank-card .deadline{
  margin-bottom:0 !important;
}
.modern-home .rank-card .cta{
  margin-top:6px !important;
}
.modern-home .rank-card{
  padding-bottom:10px !important;
}


/* Ver2.7.15: 現在のTOP画像 1563×249px の比率に表示枠を合わせる */
.home-hero.home-hero-fixed{
  aspect-ratio:1563 / 249 !important;
  height:auto !important;
  overflow:hidden !important;
}
.home-hero.home-hero-fixed > img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
}
@media(max-width:900px){
  .home-hero.home-hero-fixed{
    aspect-ratio:1563 / 249 !important;
    height:auto !important;
  }
}

.data-table .ordinary-condition-cell{width:46%;max-width:520px;min-width:300px;white-space:normal;vertical-align:middle}
.ordinary-condition-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.55;max-height:3.1em;overflow-wrap:anywhere}
.ordinary-condition-more-btn{margin-top:6px;padding:0;border:0;background:transparent;color:#0867c5;font:inherit;font-size:12px;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.data-table .ordinary-condition-cell{width:auto;max-width:none;min-width:0}.ordinary-condition-preview{-webkit-line-clamp:3;max-height:4.65em}}


/* Ver2.7.18: 一覧の金利をクリックしてシミュレーターへ。通常時の見た目は維持 */
.table-rate-link{
  color:inherit;
  text-decoration:none;
  font:inherit;
  font-weight:inherit;
}
.table-rate-link:visited{color:inherit}
.table-rate-link:hover{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}
.table-rate-link:focus-visible{
  outline:2px solid #1d70c9;
  outline-offset:3px;
  border-radius:3px;
}


/* Ver2.7.20: ふくまる先生コメント */
.ordinary-editor-avatar{
  overflow:hidden;
  padding:0;
  background:#fff4d6;
  border:3px solid #f5c95d;
}
.ordinary-editor-avatar img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
}


/* Ver2.7.21: ふくまる先生コメントの顔アイコンを単体表示 */
.ordinary-editor-avatar{
  overflow:hidden !important;
  background:#fff7dc !important;
  border:3px solid #f5c95d !important;
}
.ordinary-editor-avatar img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 35% !important;
  transform:scale(1.12);
  transform-origin:center;
}


/* Ver2.7.22: ふくまる先生の顔を丸枠中央へ */
.ordinary-editor-avatar img{
  object-position:center center !important;
  transform:scale(1.18) !important;
  transform-origin:center center !important;
}


/* Ver2.7.22: キャンペーン詳細もふくまる先生コメントへ統一 */
.campaign-editor-avatar{
  overflow:hidden !important;
  padding:0 !important;
  background:#fff7dc !important;
  border:3px solid #f5c95d !important;
}
.campaign-editor-avatar img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:scale(1.18);
  transform-origin:center center;
  border-radius:50%;
}


/* Ver2.7.23: ふくまる先生顔アイコンを正しく円中央へ統一 */
.ordinary-editor-avatar,
.editor-avatar{
  overflow:hidden !important;
  padding:0 !important;
  background:#fff7dc !important;
  border:3px solid #f5c95d !important;
  border-radius:50% !important;
}
.ordinary-editor-avatar img,
.editor-avatar img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:none !important;
  border-radius:50% !important;
}

/* Ver2.7.24: 他銀行との金利比較 銀行詳細リンク */
.ordinary-bank-compare-link{
  color:inherit;
  font-weight:inherit;
  text-decoration:none;
}
.ordinary-bank-compare-link:hover{
  color:#0b63b6;
  text-decoration:underline;
  text-underline-offset:3px;
}
