:root{
    --navy:#0B3D91; --navy-d:#08306f; --navy-dd:#06214f; --ink:#1b2230; --muted:#5d6678;
    --orange:#FF8800; --orange-d:#e07700;
    --paper:#fbfaf7; --paper2:#f2f0e9; --sand:#f0ede4; --line:#e3ddd0; --rule:#d8d2c4;
    --maxw:1140px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Zen Kaku Gothic New",sans-serif;color:var(--ink);background:var(--paper);line-height:1.68;-webkit-font-smoothing:antialiased;font-size:15px}
  .mincho{font-family:"Shippori Mincho B1",serif}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

  /* logo */
  .logo{display:inline-flex;align-items:center;gap:9px}
  .logo .mark{width:36px;height:36px;flex:none}
  .logo .wm b{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:20px;letter-spacing:.03em;color:var(--navy);line-height:1}
  .logo .wm small{display:block;font-size:8.5px;letter-spacing:.3em;color:var(--muted);margin-top:2px}

  /* topline */
  .topline{background:var(--navy-dd);color:#cfd8ea;font-size:12px}
  .topline .wrap{display:flex;justify-content:space-between;align-items:center;height:30px}
  .topline a:hover{color:#fff}

  /* header */
  header.site{background:var(--paper);border-bottom:2px solid var(--navy);position:sticky;top:0;z-index:50}
  header.site .wrap{display:flex;align-items:center;height:60px;gap:18px}
  nav.main{margin-left:auto;display:flex;gap:20px;font-size:14px;font-weight:700}
  nav.main a{padding:3px 0;border-bottom:2px solid transparent;transition:.18s;white-space:nowrap}
  nav.main a:hover{color:var(--navy);border-color:var(--orange)}
  .hbtn{background:var(--orange);color:#fff;font-weight:700;padding:7px 16px;border-radius:4px;font-size:13.5px}
  .hbtn:hover{background:var(--orange-d)}
  .menu-toggle{display:none}

  /* hero — compact */
  .hero{background:linear-gradient(180deg,var(--paper),var(--paper2));border-bottom:1px solid var(--line)}
  .hero .wrap{display:grid;grid-template-columns:1.06fr .94fr;gap:28px;padding:24px 22px 26px;align-items:center}
  .hero .eyebrow{font-size:12px;letter-spacing:.18em;color:var(--orange);font-weight:700;margin-bottom:10px}
  .hero h1{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:clamp(23px,3vw,33px);line-height:1.5;letter-spacing:.02em}
  .hero h1 em{font-style:normal;color:var(--navy);border-bottom:3px solid var(--orange)}
  .hero p{margin-top:14px;color:var(--muted);font-size:14px;max-width:32em}
  .hero .cta{margin-top:18px;display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;font-weight:700;padding:10px 20px;border-radius:4px;font-size:14px}
  .hero .cta:hover{background:var(--navy-d)}
  /* index card compact */
  .index-card{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px rgba(40,30,10,.07);overflow:hidden}
  .index-card .ic-head{background:var(--navy);color:#fff;padding:10px 18px;font-family:"Shippori Mincho B1",serif;font-weight:700;font-size:14.5px;letter-spacing:.05em;display:flex;justify-content:space-between;align-items:center}
  .index-card .ic-head span{font-size:10px;letter-spacing:.18em;color:#aebfe0;font-family:"Zen Kaku Gothic New"}
  .idx{list-style:none;display:grid;grid-template-columns:1fr 1fr}
  .idx li a{display:flex;align-items:center;gap:11px;padding:10px 16px;border-bottom:1px solid var(--paper2);border-right:1px solid var(--paper2);transition:.15s}
  .idx li:nth-child(2n) a{border-right:0}
  .idx li a:hover{background:var(--paper)}
  .idx .num{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:21px;color:var(--navy);min-width:20px}
  .idx .tt{font-weight:700;font-size:13.5px;line-height:1.3}
  .idx .tt small{display:block;font-weight:500;font-size:11px;color:var(--muted)}
  .idx li.full{grid-column:1 / -1}
  .idx li.full a{justify-content:center;background:var(--sand);font-weight:700;color:var(--navy);font-size:13.5px;border-right:0}

  /* breaking law strip */
  .strip{background:var(--navy);color:#fff;font-size:13px}
  .strip .wrap{display:flex;align-items:center;gap:14px;padding:9px 22px}
  .strip .tg{background:var(--orange);color:#fff;font-weight:700;font-size:11.5px;padding:2px 10px;border-radius:3px;white-space:nowrap}
  .strip a{margin-left:auto;color:#cfe;font-weight:700;white-space:nowrap}
  .strip p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* section */
  section{padding:28px 0}
  .head{display:flex;align-items:baseline;gap:14px;margin-bottom:13px;border-bottom:1px solid var(--rule);padding-bottom:9px}
  .head h2{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:21px;letter-spacing:.04em;position:relative;padding-left:14px}
  .head h2::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:20px;background:var(--orange);border-radius:2px}
  .head .k{font-size:11.5px;letter-spacing:.16em;color:var(--muted);font-weight:700}
  .head .all{margin-left:auto;font-size:13px;font-weight:700;color:var(--navy)}
  .head .all:hover{color:var(--orange)}

  /* scores compact (C-style cards, denser) */
  .sgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
  .scard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 14px;transition:.2s;text-align:center;position:relative}
  .scard:hover{background:var(--navy);border-color:var(--navy);transform:translateY(-3px)}
  .scard .L{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:38px;line-height:1;color:var(--navy)}
  .scard:hover .L{color:var(--orange)}
  .scard h4{font-size:14px;font-weight:700;margin:8px 0 2px}
  .scard p{font-size:11px;color:var(--muted)}
  .scard:hover h4{color:#fff}.scard:hover p{color:#bccbea}
  .scard:last-child{border-top:3px solid var(--orange)}

  /* dense multi-column info */
  .cols{display:grid;grid-template-columns:1.25fr 1fr .85fr;gap:16px;align-items:start}
  .card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
  .card .ch{background:var(--paper2);border-bottom:1px solid var(--line);padding:9px 16px;font-family:"Shippori Mincho B1",serif;font-weight:700;font-size:15px;color:var(--navy)}
  .card .cb{padding:14px 16px}
  .card .cb p{font-size:13.5px;color:#3c4452}
  .card .src{margin-top:10px;display:inline-block;color:var(--navy);font-weight:700;font-size:13px;border-bottom:1px solid var(--orange)}
  /* news list dense */
  .news{list-style:none}
  .news li{display:flex;gap:10px;padding:8px 0;border-bottom:1px dotted var(--rule);font-size:13px;align-items:baseline}
  .news li:last-child{border-bottom:0}
  .news time{color:var(--navy);font-weight:700;white-space:nowrap;min-width:78px}
  .news .law{font-size:10px;background:var(--orange);color:#fff;padding:1px 6px;border-radius:3px;margin-right:5px;font-weight:700}
  .more{display:inline-block;margin-top:8px;color:var(--navy);font-weight:700;font-size:12.5px;border-bottom:1px solid var(--orange)}
  /* rating compact */
  .rating{background:var(--navy);color:#fff;border-radius:8px;padding:20px 18px;text-align:center}
  .rating .lab{font-family:"Shippori Mincho B1",serif;font-size:20px;font-weight:700;letter-spacing:.04em;margin-bottom:10px}
  .rating .live{display:inline-flex;gap:6px;align-items:center;font-size:11px;color:#bccbea;background:rgba(255,255,255,.1);padding:3px 11px;border-radius:999px;margin-bottom:6px}
  .rating .dot{width:6px;height:6px;border-radius:50%;background:#46e08a}
  .rating .d{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:36px;margin:6px 0 2px;letter-spacing:.02em}
  .rating .sub{font-size:11.5px;color:#bccbea}
  .rating a{display:block;margin-top:12px;background:var(--orange);color:#fff;font-weight:700;padding:9px;border-radius:4px;font-size:13.5px}
  .rating a:hover{background:var(--orange-d)}
  .discl{margin-top:14px;font-size:11.5px;color:var(--muted);line-height:1.6}
  .discl b{color:var(--ink);font-family:"Shippori Mincho B1",serif;display:block;margin-bottom:3px;font-size:13px}

  /* e-keisin banner compact */
  .pbanner{padding:0 0 30px}
  .pbanner .box{background:linear-gradient(110deg,var(--navy-d),var(--navy));color:#fff;border-radius:8px;position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:20px 26px}
  .pbanner .box::after{content:"e";position:absolute;right:150px;top:-26px;font-family:"Shippori Mincho B1",serif;font-size:150px;color:rgba(255,255,255,.05);font-style:italic}
  .pbanner .tag{font-size:11px;letter-spacing:.16em;color:var(--orange);font-weight:700}
  .pbanner h3{font-family:"Shippori Mincho B1",serif;font-weight:700;font-size:19px;margin:2px 0}
  .pbanner p{color:#cdd8ef;font-size:13px;max-width:44em}
  .pbanner .pr{display:flex;gap:10px;position:relative;z-index:2}
  .pbanner .pr a{white-space:nowrap;font-weight:700;padding:9px 18px;border-radius:4px;font-size:13.5px}
  .pbanner .pr .a1{background:var(--orange);color:#fff}.pbanner .pr .a1:hover{background:var(--orange-d)}
  .pbanner .pr .a2{border:1px solid rgba(255,255,255,.5);color:#fff}

  /* footer */
  footer.site{background:#0b1626;color:#9fb0cd;padding:34px 0 20px;font-size:13.5px}
  .f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:24px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.08)}
  footer h5{color:#fff;font-size:12.5px;letter-spacing:.05em;margin-bottom:10px}
  footer ul{list-style:none}footer ul li{margin-bottom:6px}footer a:hover{color:#fff}
  footer .logo .wm b{color:#fff}footer .logo .wm small{color:#7e8ba6}
  .copy{padding-top:14px;font-size:11.5px;color:#6b7a95;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}

  @media(max-width:920px){
    nav.main{display:none}
    .menu-toggle{display:grid;margin-left:auto;width:40px;height:40px;place-items:center;border:1px solid var(--line);border-radius:6px;background:#fff}
    .menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{display:block;width:18px;height:2px;background:var(--navy);position:relative;content:""}
    .menu-toggle span::before{position:absolute;top:-5px}.menu-toggle span::after{position:absolute;top:5px}
    .hero .wrap{grid-template-columns:1fr;gap:22px}
    .cols{grid-template-columns:1fr 1fr}
    .f-grid{grid-template-columns:1fr 1fr}
  }
  @media(max-width:560px){
    .sgrid{grid-template-columns:repeat(3,1fr)}
    .cols{grid-template-columns:1fr}
    .idx{grid-template-columns:1fr}.idx li a{border-right:0}
    .strip a{display:none}
  }

/* 現在ページのナビ表示（Blade: a.active） */
nav.main a.active{color:var(--navy);border-color:var(--orange)}

/* ============================================================
   下層（内容）ページ共通スタイル
   ============================================================ */
.page{max-width:var(--maxw);margin:0 auto;padding:22px 22px 56px}
.pankuzu{font-size:12.5px;color:var(--muted);margin:6px 0 16px}
.pankuzu a{color:var(--navy);font-weight:700}
.pankuzu a:hover{color:var(--orange)}
.page-title{font-family:"Shippori Mincho B1",serif;font-weight:800;font-size:clamp(22px,3vw,30px);color:var(--ink);letter-spacing:.04em;padding:6px 0 14px 16px;border-bottom:2px solid var(--navy);position:relative;margin-bottom:26px}
.page-title::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:30px;background:var(--orange);border-radius:3px}
.page-title span{display:inline-block;font-family:"Zen Kaku Gothic New";font-size:12px;letter-spacing:.16em;color:var(--muted);font-weight:500;margin-left:12px}

.content-area h3{font-family:"Shippori Mincho B1",serif;font-weight:700;font-size:19px;color:var(--navy);margin:30px 0 0;padding:10px 14px;background:var(--paper2);border-left:5px solid var(--orange);border-radius:4px 4px 0 0}
.content-area h3 span{font-family:"Zen Kaku Gothic New";font-size:11.5px;color:var(--muted);font-weight:500;margin-left:10px;letter-spacing:.12em}
.content-area h4{font-size:16px;font-weight:700;color:var(--ink);margin:22px 0 8px;padding-left:12px;border-left:3px solid var(--navy)}

.box_out{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;margin-bottom:8px}
.box_in{padding:20px 22px;font-size:14.5px;color:#33404f;line-height:1.85}
.box_in p{margin-bottom:12px}
.content-area h3 + .box_out{border-top:0}

/* 情報テーブル */
table.table_info{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px}
table.table_info td{border:1px solid var(--line);padding:10px 12px;vertical-align:top;line-height:1.7}
table.table_info .td_head{background:#c4d3ec;color:var(--navy-d);font-weight:700;width:32%;white-space:normal}
table.table_info .td_odd{background:#fff;color:#33404f}
table.table_info a{color:var(--navy);font-weight:700;border-bottom:1px solid var(--orange)}

/* 沿革リスト */
.dl_list dl{display:flex;gap:18px;padding:13px 0;border-bottom:1px dotted var(--rule)}
.dl_list dl:last-child{border-bottom:0}
.dl_list dt{font-family:"Shippori Mincho B1",serif;font-weight:700;color:var(--navy);min-width:104px;white-space:nowrap}
.dl_list dd{color:#33404f;font-size:14px}

/* サイトマップ目次 */
.mokuji{margin:6px 0 18px}
.mokuji > ul{list-style:none;border-left:3px solid var(--orange);padding-left:0}
.mokuji > ul > li{padding:9px 0 9px 16px;border-bottom:1px dotted var(--rule)}
.mokuji ul ul{list-style:none;margin:6px 0 0 22px}
.mokuji ul ul li{padding:6px 0 6px 16px;border-bottom:1px dotted var(--rule)}
.mokuji a{color:var(--navy);font-weight:700}
.mokuji a:hover{color:var(--orange)}

/* 注記（未移植素材のプレースホルダ等） */
.note{background:#fff7ee;border:1px dashed var(--orange);border-radius:6px;padding:14px 16px;font-size:13px;color:#8a5a00;margin:14px 0}

/* ページトップへ */
.to_top{text-align:right;margin-top:22px}
.to_top a{display:inline-block;font-size:12.5px;font-weight:700;color:var(--navy);border:1px solid var(--line);border-radius:999px;padding:6px 16px;background:#fff}
.to_top a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* 評点テーブルのセル種別 */
table.table_info .td_center{background:#cfdbef;color:var(--navy-d);font-weight:700;text-align:center;white-space:normal}
table.table_info .td_val{text-align:right;background:#fff;color:#33404f;font-variant-numeric:tabular-nums}
table.table_info .td_valcen{text-align:center;background:#fff;color:#33404f;font-weight:700}
.content-area > div:not([class]){font-size:14.5px;color:#33404f;line-height:1.85;padding:2px 2px 6px}
.content-area .mokuji h3{background:none;border:0;padding:0;margin:6px 0 8px;font-size:16px;color:var(--navy)}
