  :root{
    --navy:#10213f; --navy-2:#1b3057; --gold:#bd9a4e; --gold-soft:#e6d3a3;
    --paper:#f7f4ed; --paper-2:#fffdf8; --ink:#1d2330; --ink-soft:#55606f;
    --line:#ddd6c6; --c:#5d6b78; --err:#9a3b3b;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{margin:0;background:var(--paper);color:var(--ink);
    font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
    line-height:1.7;-webkit-font-smoothing:antialiased;}
  .mincho{font-family:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;}
  .wrap{max-width:1060px;margin:0 auto;padding:0 22px;}

  header{background:rgba(255,253,248,.97);color:var(--ink);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);backdrop-filter:blur(10px);}
  .nav{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1060px;margin:0 auto;padding:10px 22px;}
  .logo{display:flex;align-items:center;gap:10px;color:inherit;font-weight:700;text-decoration:none;}
  .logo-full{display:block;height:36px;width:auto;filter:drop-shadow(0 1px 1px rgba(16,33,63,.06));}
  .logo-icon{display:none;height:30px;width:auto;filter:drop-shadow(0 1px 1px rgba(16,33,63,.06));}
  .logo b{display:none;}
  .nav ul{display:flex;gap:20px;list-style:none;margin:0;padding:0;flex-wrap:wrap;align-items:center;}
  .nav ul a{color:var(--navy-2);text-decoration:none;font-size:13px;letter-spacing:.06em;padding:4px 0;}
  .nav ul a:hover,.nav ul a:focus,.nav ul a.on{color:var(--navy);border-bottom:1px solid var(--gold);}
  @media(max-width:680px){.nav{flex-direction:column;align-items:flex-start;}.nav ul{gap:14px;}.logo-full{display:none;}.logo-icon{display:block;}}

  section{padding:46px 0;}
  section:nth-of-type(even){background:var(--paper-2);}
  .sec-head{display:flex;align-items:baseline;gap:14px;margin-bottom:4px;flex-wrap:wrap;}
  .sec-no{font-family:"Yu Mincho",serif;font-size:13px;color:var(--gold);font-weight:700;letter-spacing:.1em;}
  .sec-head h2{font-size:22px;margin:0;font-weight:700;letter-spacing:.04em;}
  .sec-sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 24px;}
  .sec-head .refresh{margin-left:auto;font-size:12px;color:var(--navy-2);background:var(--paper-2);
    border:1px solid var(--line);border-radius:6px;padding:5px 12px;cursor:pointer;font-family:inherit;}
  .sec-head .refresh:hover{border-color:var(--gold);}
  section:nth-of-type(even) .sec-head .refresh{background:var(--paper);}

  .news{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
  @media(max-width:760px){.news{grid-template-columns:1fr;}}
  .feed{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
  section:nth-of-type(even) .feed{background:var(--paper);}
  .feed-h{display:flex;align-items:center;gap:8px;padding:11px 15px;border-bottom:1px solid var(--line);background:rgba(16,33,63,.03);}
  .feed-h h3{font-size:14.5px;margin:0;font-weight:700;letter-spacing:.02em;}
  .feed-h .state{margin-left:auto;width:8px;height:8px;border-radius:50%;background:#b9b0a0;display:inline-block;flex:none;}
  .feed-h .state.ok{background:#2f6b46;}
  .feed-h .state.fail{background:var(--err);}
  .feed-h .state.loading{background:#c9b98a;}
  .feed-h .frefresh{background:none;border:1px solid var(--line);border-radius:6px;color:var(--navy-2);font-size:12px;line-height:1;padding:4px 8px;cursor:pointer;}
  .feed-h .frefresh:hover{border-color:var(--gold);}
  .feed ul{list-style:none;margin:0;padding:6px 15px 12px;}
  .feed li{padding:9px 0;border-bottom:1px dashed var(--line);}
  .feed li:last-child{border-bottom:none;}
  .feed a{text-decoration:none;color:var(--navy-2);font-size:13.5px;line-height:1.5;display:block;}
  .feed a:hover{text-decoration:underline;}
  .feed .meta{display:block;font-size:11px;color:var(--c);margin-top:3px;letter-spacing:.03em;}
  .feed .loading,.feed .err{color:var(--ink-soft);font-size:12.5px;padding:14px 0;}
  .feed .err{color:var(--err);}
  .stamp{font-size:11px;color:var(--ink-soft);margin-top:14px;letter-spacing:.04em;}

  .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
  @media(max-width:720px){.grid{grid-template-columns:1fr;}}
  .src{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
  section:nth-of-type(even) .src{background:var(--paper);}
  .src-h{display:flex;align-items:center;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line);background:rgba(16,33,63,.03);}
  .src-h h3{font-size:14.5px;margin:0;font-weight:700;}
  .src-h .tag{margin-left:auto;font-size:10px;color:var(--ink-soft);border:1px solid var(--line);border-radius:5px;padding:2px 8px;letter-spacing:.06em;white-space:nowrap;}
  .src ul{list-style:none;margin:0;padding:11px 15px 14px;display:flex;flex-wrap:wrap;gap:7px 14px;}
  .src li{font-size:13px;}
  .src a{text-decoration:none;color:var(--navy-2);}
  .src a:hover{border-bottom:1px solid var(--gold);}
  .src a::after{content:"›";color:var(--gold);margin-left:3px;}

  .db{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
  @media(max-width:720px){.db{grid-template-columns:1fr;}}
  .db a{display:flex;flex-direction:column;gap:7px;text-decoration:none;color:var(--ink);
    border:1px solid var(--line);border-radius:9px;padding:14px 16px;background:var(--paper-2);transition:.12s;}
  section:nth-of-type(even) .db a{background:var(--paper);}
  .db a:hover{border-color:var(--gold);}
  .db .top{display:flex;align-items:flex-start;gap:8px;}
  .db .nm{font-size:14px;font-weight:700;flex:1;line-height:1.45;letter-spacing:.01em;}
  .db .use{font-size:12px;color:var(--ink-soft);line-height:1.6;}
  .db .foot{display:flex;align-items:center;gap:8px;margin-top:1px;}
  .db .go{margin-left:auto;font-size:11px;color:var(--ink-soft);letter-spacing:.06em;white-space:nowrap;}
  .db .go::after{content:" ›";color:var(--gold);}
  .lock{font-size:10px;color:var(--gold);border:1px solid var(--gold-soft);border-radius:4px;padding:1px 6px;white-space:nowrap;}
  .pri{font-size:10px;border-radius:4px;padding:2px 8px;white-space:nowrap;font-weight:700;letter-spacing:.04em;}
  .pri.p-top{background:#7a1f1f;color:#fff;}
  .pri.p-high{background:var(--gold);color:#3a2c08;}
  .pri.p-mid{background:#e7e0cf;color:#5b5234;}
  .pri.p-low{background:#eceae3;color:var(--ink-soft);}
  .rotb{font-size:10px;color:#3a2c08;background:var(--gold-soft);border-radius:4px;padding:1px 7px;white-space:nowrap;font-weight:700;letter-spacing:.04em;flex:none;}
  .newb{display:inline-block;font-size:9.5px;color:#fff;background:#7a1f1f;border-radius:3px;padding:0 5px;margin-right:6px;font-weight:700;letter-spacing:.08em;vertical-align:1px;}

  footer{background:var(--navy);color:#aeb8cb;font-size:12px;line-height:1.8;padding:32px 0 38px;border-top:3px double var(--gold);}
  footer .wrap{display:grid;gap:14px;}
  footer b{color:var(--gold-soft);font-weight:600;}
  footer .disc{border-left:2px solid var(--gold);padding-left:14px;}
  footer .copy{border-top:1px solid #2b3e62;padding-top:12px;color:#7e8ba6;letter-spacing:.06em;}
  .cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:6px;}
  @media(max-width:720px){.cards{grid-template-columns:1fr;}}
  .cards a{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:13px 15px;background:var(--paper-2);transition:.12s;}
  section:nth-of-type(even) .cards a{background:var(--paper);}
  .cards a:hover{border-color:var(--gold);}
  .cards .top{display:flex;align-items:flex-start;gap:8px;}
  .cards .nm{font-size:13.5px;font-weight:700;flex:1;line-height:1.45;letter-spacing:.01em;}
  .cards .use{font-size:11.5px;color:var(--ink-soft);line-height:1.55;}
  .cards .foot{display:flex;align-items:center;}
  .cards .go{margin-left:auto;font-size:11px;color:var(--ink-soft);letter-spacing:.06em;}
  .cards .go::after{content:" \203A";color:var(--gold);}
  .catlabel{font-size:12.5px;font-weight:700;color:var(--navy);letter-spacing:.06em;margin:24px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;}
  .catlabel::before{content:"";width:14px;height:2px;background:var(--gold);}
  .catlabel:first-of-type{margin-top:6px;}

  /* ---- 税制改正 施行日タイムライン ---- */
  .kbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 22px;}
  .kbar select,.kbar input{font:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line);
    border-radius:7px;background:var(--paper-2);color:var(--ink);}
  .kbar input{flex:1;min-width:150px;}
  .kbar .cnt{font-size:12px;color:var(--ink-soft);margin-left:auto;white-space:nowrap;}
  .warn{background:#fff7e2;border:1px solid var(--gold);border-radius:9px;padding:12px 15px;
    font-size:12.5px;color:#5b4a1e;margin-bottom:20px;line-height:1.65;}
  .grp{margin-bottom:26px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--paper-2);}
  .grp-h{background:var(--navy);color:#fff;padding:12px 16px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
  .grp-h h3{margin:0;font-size:15.5px;letter-spacing:.04em;font-weight:700;}
  .grp-h .gn{font-size:11px;color:#9fb0cd;letter-spacing:.06em;}
  .grp-note{font-size:11.5px;color:var(--ink-soft);padding:9px 16px;border-bottom:1px solid var(--line);background:var(--paper);}
  .kitem{padding:13px 16px;border-bottom:1px solid var(--line);display:grid;gap:5px;}
  .kitem:last-child{border-bottom:none;}
  .kitem .kt{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;}
  .kitem .knm{font-size:14px;font-weight:700;line-height:1.5;flex:1;min-width:180px;}
  .kitem .ksum{font-size:12.5px;color:var(--ink-soft);line-height:1.65;}
  .kitem .kap{font-size:11.5px;color:var(--navy-2);background:var(--paper);border-left:2px solid var(--gold);
    padding:5px 9px;border-radius:0 5px 5px 0;line-height:1.6;}
  .kitem .kf{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:2px;}
  .tag{font-size:10px;border-radius:4px;padding:2px 8px;font-weight:700;letter-spacing:.04em;white-space:nowrap;
    background:var(--navy-2);color:#fff;}
  .st{font-size:10px;border-radius:4px;padding:2px 8px;font-weight:700;letter-spacing:.04em;white-space:nowrap;}
  .st.s-taiko{background:#e7e0cf;color:#5b5234;}
  .st.s-hoan{background:var(--gold);color:#3a2c08;}
  .st.s-seiritsu{background:#1f5c3a;color:#fff;}
  .unv{font-size:10px;background:#fdeaea;color:var(--err);border:1px solid #f0c9c9;border-radius:4px;padding:1px 7px;font-weight:700;}
  .ksrc{margin-left:auto;font-size:11.5px;color:var(--navy-2);text-decoration:none;border-bottom:1px solid var(--gold);}
  .ksrc:hover{color:var(--navy);}
  .ksrc.dead{color:var(--ink-soft);border-bottom:1px dotted var(--line);cursor:not-allowed;}
  .empty{padding:26px 16px;text-align:center;color:var(--ink-soft);font-size:13px;}

  /* ---- 貼り付け画面 ---- */
  .pbox{background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:14px 16px;}
  .pbox pre{margin:0 0 12px;font-size:11.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word;
    color:var(--ink-soft);max-height:230px;overflow:auto;font-family:ui-monospace,"SFMono-Regular",Menlo,monospace;}
  .btn{font:inherit;font-size:13px;padding:8px 16px;border:1px solid var(--line);border-radius:7px;
    background:var(--paper-2);color:var(--navy-2);cursor:pointer;transition:.12s;}
  .btn:hover{border-color:var(--gold);}
  .btn.gold{background:var(--gold);border-color:var(--gold);color:#3a2c08;font-weight:700;}
  .msg{font-size:12px;color:var(--ink-soft);margin-left:10px;}
  .frm{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;}
  @media(max-width:720px){.frm{grid-template-columns:1fr;}}
  .frm label{display:grid;gap:5px;font-size:12px;color:var(--ink-soft);}
  .frm input,.frm select{font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);
    border-radius:7px;background:var(--paper-2);color:var(--ink);}
  textarea#src{width:100%;min-height:190px;font-size:12.5px;line-height:1.6;padding:12px;
    border:1px solid var(--line);border-radius:9px;background:var(--paper-2);color:var(--ink);
    font-family:ui-monospace,"SFMono-Regular",Menlo,monospace;resize:vertical;}
  .frm2{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;}
  .chk{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:6px;margin-right:auto;}
  .ok{background:#eef6ee;border:1px solid #bcd9bc;border-radius:9px;padding:12px 15px;
    font-size:12.5px;color:#2c4a2c;margin-top:14px;line-height:1.65;}
  .ok a{color:#1f5c3a;}
  .prev{margin-top:12px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--paper-2);}
  .prow{padding:9px 13px;border-bottom:1px solid var(--line);font-size:12.5px;display:flex;
    align-items:baseline;gap:9px;flex-wrap:wrap;}
  .prow:last-child{border-bottom:none;}
  .prow b{font-weight:700;}
  .prow .pap{color:var(--ink-soft);font-size:11.5px;margin-left:auto;}
  .prow.more{color:var(--ink-soft);font-size:11.5px;justify-content:center;}
  code{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:11.5px;}

  /* ---- 施行日マップ：年度タブ（令和元〜） ---- */
  .kyears{display:flex;gap:2px;overflow-x:auto;margin:0 0 18px;border-bottom:2px solid var(--line);
    -webkit-overflow-scrolling:touch;scrollbar-width:thin;}
  .kyears .ky{font:inherit;font-size:13px;color:var(--ink-soft);background:none;border:none;
    border-bottom:3px solid transparent;padding:7px 13px 8px;cursor:pointer;white-space:nowrap;
    letter-spacing:.03em;line-height:1.3;}
  .kyears .ky:hover{color:var(--navy);}
  .kyears .ky.on{color:var(--navy);font-weight:700;border-bottom-color:var(--gold);}
  .kyears .kyn{display:block;font-size:10px;color:#9aa2ae;letter-spacing:.04em;font-weight:400;}
  .ksep{display:inline-block;margin:0 7px;color:#c3ccd8;font-size:11px;}

/* verification state */
.vfy{display:inline-block;margin-left:6px;padding:2px 7px;border:1px solid #9bb7a6;border-radius:999px;font-size:11px;color:#315d43;background:#f2f8f4;vertical-align:middle}
.kbar select#f-verified{min-width:150px}

/* legal basis pilot */
.klaw{margin-top:10px;padding:9px 11px;border-left:3px solid #64748b;background:#f8fafc;font-size:.86rem;line-height:1.55}
.klaw a{font-weight:700}
.klaw-rel,.klaw-art,.klaw-note{margin-top:3px;color:#475569}
.klaw-art.pending,.klaw-pending{color:#92400e;background:#fffbeb;border-left-color:#d97706}

/* ===== Separate research rooms ===== */
.room-hero{background:var(--navy);color:#fff;padding:0;border-bottom:1px solid rgba(189,154,78,.45)}
.room-hero .room-visual{position:relative;min-height:330px;overflow:hidden;display:flex;align-items:flex-end}
.room-hero .room-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.room-hero .room-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,20,42,.94) 0%,rgba(7,20,42,.72) 48%,rgba(7,20,42,.15) 100%)}
.room-hero .room-copy{position:relative;z-index:1;padding:54px 0 48px;max-width:680px}
.room-hero .room-label{display:inline-flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.2em;color:var(--gold-soft);font-weight:700;text-transform:uppercase}
.room-hero .room-label::before{content:"";width:28px;height:1px;background:var(--gold)}
.room-hero h1{font-size:32px;line-height:1.45;margin:14px 0 0;letter-spacing:.03em}
.room-hero p{font-size:14px;line-height:1.85;color:#d1d9e7;max-width:610px;margin:14px 0 0}
.room-switch{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
.room-switch a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;color:var(--ink);transition:.15s}
.room-switch a:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 8px 24px rgba(16,33,63,.08)}
.room-switch img{width:100%;height:180px;object-fit:cover;display:block}
.room-switch .room-card-copy{padding:18px 20px 20px}
.room-switch .room-card-copy b{display:block;font-size:18px;color:var(--navy);margin-bottom:7px}
.room-switch .room-card-copy span{font-size:12.5px;line-height:1.7;color:var(--ink-soft)}
.room-switch .room-card-copy em{display:block;margin-top:13px;font-size:11px;font-style:normal;letter-spacing:.08em;color:var(--gold-dark)}
.room-index-intro{padding-top:38px}
@media(max-width:760px){
  .room-hero .room-visual{min-height:300px}
  .room-hero .room-visual::after{background:linear-gradient(90deg,rgba(7,20,42,.95),rgba(7,20,42,.62))}
  .room-hero h1{font-size:25px}
  .room-switch{grid-template-columns:1fr}
  .room-switch img{height:150px}
}


/* ---- 統一ヒーロー ---- */
.hero{
  position:relative;
  background:linear-gradient(180deg,#0f2448 0%, #10213f 100%);
  color:#fff;
  overflow:hidden;
  border-bottom:1px solid rgba(189,154,78,.42);
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(5,18,40,.92) 0%, rgba(5,18,40,.86) 34%, rgba(5,18,40,.42) 70%, rgba(5,18,40,.16) 100%),
    radial-gradient(circle at 18% 18%, rgba(189,154,78,.08), transparent 34%),
    radial-gradient(circle at 82% 70%, rgba(255,255,255,.05), transparent 24%);
  z-index:0;
}
.hero-shell{position:relative;min-height:360px;overflow:hidden;}
.hero-copy{position:relative;z-index:2;max-width:620px;min-height:360px;padding:46px 0 44px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;}
.eyebrow{font-size:12px;letter-spacing:.34em;color:var(--gold-soft);font-weight:700;text-transform:uppercase;}
.hero h1{font-size:27px;line-height:1.5;margin:16px 0 0;font-weight:700;letter-spacing:.02em;max-width:15em;}
.hero p{color:#cbd5e6;font-size:15px;max-width:640px;margin:16px 0 0;line-height:1.9;}
.hero-art{position:absolute;right:max(16px, calc((100vw - 1060px)/2 - 10px));top:0;height:100%;width:min(47vw, 660px);object-fit:contain;object-position:right center;z-index:1;pointer-events:none;opacity:.98;filter:drop-shadow(0 18px 42px rgba(0,0,0,.18));}
.hero-links .hero-art{opacity:.72;transform:translateX(24px)}
.hero-official .hero-art,.hero-database .hero-art{width:min(48vw, 680px)}
.room-index-intro{padding-top:38px}
.room-switch{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:0}
.room-switch a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;color:var(--ink);transition:.15s}
.room-switch a:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 8px 24px rgba(16,33,63,.08)}
.room-switch img{width:100%;height:180px;object-fit:cover;display:block;background:linear-gradient(180deg,#12274a,#10213f)}
.room-switch .room-card-copy{padding:18px 20px 20px}
.room-switch .room-card-copy b{display:block;font-size:18px;color:var(--navy);margin-bottom:7px}
.room-switch .room-card-copy span{font-size:12.5px;line-height:1.7;color:var(--ink-soft)}
.room-switch .room-card-copy em{display:block;margin-top:13px;font-size:11px;font-style:normal;letter-spacing:.08em;color:var(--gold)}
.cards a,.db a,.src,.feed,.grp{box-shadow:0 4px 18px rgba(16,33,63,.03)}
@media(max-width:980px){
  .hero-shell{min-height:332px}
  .hero-copy{min-height:332px;padding:40px 0 40px;max-width:560px}
  .hero h1{font-size:25px}
  .hero-art{width:min(50vw, 540px);right:8px}
}
@media(max-width:760px){
  .hero-shell{min-height:300px}
  .hero::before{background:linear-gradient(180deg, rgba(5,18,40,.94) 0%, rgba(5,18,40,.82) 58%, rgba(5,18,40,.72) 100%),radial-gradient(circle at 18% 18%, rgba(189,154,78,.08), transparent 34%)}
  .hero-copy{min-height:300px;padding:34px 0 34px;max-width:none}
  .hero h1{font-size:24px;max-width:none}
  .hero p{font-size:14px;max-width:none}
  .hero-art{right:-24px;bottom:-4px;top:auto;height:68%;width:78%;opacity:.42}
  .room-switch{grid-template-columns:1fr}
  .room-switch img{height:150px}
}

.hero h1 .line{display:block;}
.hero h1 .line + .line{margin-top:.08em;}


/* ---- 情報源フィルター ---- */
.resource-filter{margin:22px 0 28px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);box-shadow:0 4px 18px rgba(16,33,63,.04)}
.filter-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px;color:var(--navy);font-weight:700;letter-spacing:.05em}
.filter-title strong{font-size:12px;color:var(--ink-soft);font-weight:500}
.resource-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.resource-tab{appearance:none;border:1px solid var(--line);background:#fff;color:var(--navy-2);border-radius:8px;padding:8px 12px;font:inherit;font-size:12.5px;cursor:pointer;transition:.12s}
.resource-tab span{display:block;font-size:9.5px;color:var(--ink-soft);margin-top:1px}
.resource-tab:hover{border-color:var(--gold)}
.resource-tab.on{background:var(--navy);border-color:var(--navy);color:#fff}
.resource-tab.on span{color:#b9c6da}
.resource-controls{display:grid;grid-template-columns:1fr .72fr minmax(220px,1.35fr) auto;gap:10px;align-items:end}
.resource-controls label{display:grid;gap:5px}
.resource-controls label>span{font-size:10.5px;color:var(--ink-soft);letter-spacing:.06em}
.resource-controls select,.resource-controls input{width:100%;font:inherit;font-size:12.5px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}
.filter-reset{font:inherit;font-size:11.5px;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--navy-2);cursor:pointer;white-space:nowrap}
.filter-reset:hover{border-color:var(--gold)}
.cards>a[hidden],.db>a[hidden],.catlabel[hidden],.cards[hidden]{display:none!important}
@media(max-width:850px){.resource-controls{grid-template-columns:1fr 1fr}.resource-search{grid-column:1/-1}.filter-reset{justify-self:start}}
@media(max-width:560px){.resource-filter{padding:14px}.resource-controls{grid-template-columns:1fr}.resource-search{grid-column:auto}.resource-tab{padding:7px 10px}.filter-reset{width:100%}}

.ksrc-sub{font-size:10.5px;opacity:.78;}


/* v21: personal workspace & legal details */
.klaw{padding:0;overflow:hidden}
.klaw summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:9px 11px;list-style:none;font-weight:600}
.klaw summary::-webkit-details-marker{display:none}
.klaw summary::before{content:"＋";color:var(--gold);font-weight:700;margin-right:5px}
.klaw[open] summary::before{content:"−"}
.klaw-body{padding:0 11px 10px 30px;border-top:1px dashed var(--line)}
.klaw-checked{font-size:10.5px;color:var(--ink-soft);font-weight:400;white-space:nowrap}
.kfav{appearance:none;border:0;background:transparent;color:#a68a46;font-size:20px;line-height:1;cursor:pointer;padding:1px 2px;flex:none}
.kfav.on{color:#9b6a00}
.appstate{font-size:10px;border-radius:4px;padding:2px 7px;white-space:nowrap;font-weight:700}
.app-active{background:#e6f4ea;color:#27633d}.app-future{background:#e9effa;color:#355487}.app-ended{background:#eceae3;color:#706a5e}.app-unknown{background:#fff5dd;color:#7b5a16}
.filter-personal{appearance:none;border:1px solid var(--line);background:#fff;color:var(--navy-2);border-radius:7px;padding:8px 10px;font:inherit;font-size:12px;cursor:pointer}
.filter-personal:hover,.filter-personal.on{border-color:var(--gold)}
.filter-personal.on{background:var(--navy);color:#fff}
.resource-card{position:relative;padding-right:50px!important}
.resource-fav{position:absolute;right:14px;top:12px;font-size:20px;color:#a68a46;z-index:2;line-height:1;cursor:pointer}
.resource-fav.on{color:#9b6a00}
@media(max-width:620px){.klaw summary{align-items:flex-start;flex-wrap:wrap}.klaw-checked{width:100%;padding-left:22px}.appstate{order:9}}

/* v22: practical themes, client tags, comparison, sharing and printing */
.practice-nav{margin:22px 0 18px;padding:18px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#f8fafc,#fff);box-shadow:0 4px 18px rgba(16,33,63,.04)}
.practice-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:12px}.practice-head b{color:var(--navy);font-size:14px}.practice-head span{font-size:11px;color:var(--ink-soft)}
.practice-buttons{display:flex;flex-wrap:wrap;gap:8px}.practice-btn{appearance:none;border:1px solid #cad4e2;background:#fff;color:var(--navy-2);border-radius:999px;padding:8px 13px;font:inherit;font-size:12px;cursor:pointer}.practice-btn:hover{border-color:var(--gold);background:#fffaf0}
.context-tags{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0}.theme-tag,.client-tag{display:inline-block;border-radius:999px;padding:3px 8px;font-size:9.5px;line-height:1.25}.theme-tag{background:#eef2f8;color:#334e76;border:1px solid #d8e0ec}.client-tag{background:#f8f3e7;color:#725c24;border:1px solid #eadcb8}
.kf{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.item-actions{display:flex;gap:6px;margin-left:auto}.item-actions button{appearance:none;border:1px solid var(--line);background:#fff;color:var(--navy-2);border-radius:6px;padding:6px 9px;font:inherit;font-size:10.5px;cursor:pointer}.item-actions button:hover{border-color:var(--gold);background:#fffaf0}
.compare-modal[hidden]{display:none}.compare-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}.compare-backdrop{position:absolute;inset:0;background:rgba(6,18,40,.68)}.compare-panel{position:relative;width:min(1180px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:14px;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,.3)}.compare-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px}.compare-head h2{margin:4px 0 0;color:var(--navy);font-size:23px}.eyebrow-dark{font-size:10px;letter-spacing:.2em;color:var(--gold-dark);font-weight:700}.compare-close{appearance:none;border:0;background:#eef2f6;color:var(--navy);font-size:24px;width:38px;height:38px;border-radius:50%;cursor:pointer}.compare-note{font-size:11.5px;color:var(--ink-soft);line-height:1.7;margin:14px 0}.compare-table-wrap{overflow:auto}.compare-table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.55}.compare-table th,.compare-table td{border:1px solid var(--line);padding:10px;vertical-align:top}.compare-table th{background:#f3f6fa;color:var(--navy);white-space:nowrap}.compare-table td:first-child{white-space:nowrap;font-weight:700}.compare-table .ksrc{white-space:nowrap}.modal-open{overflow:hidden}
@media(max-width:760px){.practice-head{display:block}.practice-head span{display:block;margin-top:4px}.compare-modal{padding:8px}.compare-panel{padding:16px;max-height:96vh}.compare-table{font-size:11px}.kf{align-items:flex-start}.item-actions{width:100%;margin-left:0}}
@media print{
 body.print-one header,body.print-one .hero,body.print-one #kaisei .sec-head,body.print-one #kaisei .sec-sub,body.print-one #warn,body.print-one .practice-nav,body.print-one .kyears,body.print-one .kbar,body.print-one .grp-h,body.print-one footer,body.print-one .kitem:not(.print-target){display:none!important}
 body.print-one #kaisei,body.print-one #kaisei .wrap,body.print-one .grp,body.print-one .print-target{display:block!important;margin:0!important;padding:0!important;max-width:none!important;border:0!important;box-shadow:none!important;background:#fff!important}
 body.print-one .print-target{font-size:11pt}.print-one .kfav,.print-one .item-actions{display:none!important}.print-one .klaw{break-inside:avoid}.print-one a{color:#000;text-decoration:none}.print-one a[href]::after{content:" (" attr(href) ")";font-size:8pt;word-break:break-all}
}
/* v23: year-difference-only filter */
.practice-buttons select{appearance:none;border:1px solid #cad4e2;background:#fff;color:var(--navy-2);border-radius:8px;padding:8px 32px 8px 11px;font:inherit;font-size:12px;cursor:pointer}
.practice-buttons select:focus{outline:2px solid rgba(166,138,70,.22);border-color:var(--gold)}
#diff-cnt{align-self:center;margin-left:4px}

/* ===== 相続税評価ナビ ===== */
.hero-valuation{background:linear-gradient(135deg,#0e203d 0%,#173257 58%,#263f61 100%)}
.valuation-intro{padding:26px 0 8px;background:#f6f3ec}
.valuation-note{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border:1px solid #ded5c5;background:#fff;border-radius:10px;line-height:1.75}
.valuation-note b{color:var(--navy);white-space:nowrap}.valuation-note span{color:#536070;font-size:14px}
.valuation-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.valuation-jump a{text-decoration:none;color:#263b57;background:#fff;border:1px solid #d9d2c5;border-radius:999px;padding:7px 12px;font-size:12px}.valuation-jump a:hover{border-color:var(--gold);color:#10213f}
.valuation-section{padding:46px 0}.valuation-section.alt{background:#f5f3ee}
.valuation-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px}.valuation-flow>div{position:relative;background:#fff;border:1px solid #ddd6ca;border-radius:10px;padding:17px 14px;min-height:126px}.valuation-flow em{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#10213f;color:#fff;font-style:normal;font-weight:700;margin-bottom:11px}.valuation-flow b,.valuation-flow span{display:block}.valuation-flow b{font-size:14px;color:#182b46;margin-bottom:7px}.valuation-flow span{font-size:12px;line-height:1.6;color:#657080}
.valuation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.valuation-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid #dcd6cb;border-radius:11px;padding:18px;min-height:170px;box-shadow:0 4px 14px rgba(16,33,63,.04);transition:transform .16s,border-color .16s,box-shadow .16s}.valuation-card[href]:hover{transform:translateY(-2px);border-color:#b79a5c;box-shadow:0 8px 20px rgba(16,33,63,.08)}
.vc-top{display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.vc-top span{font-weight:700;color:#162a47;line-height:1.45}.vc-top em{font-style:normal;font-size:10px;white-space:nowrap;border-radius:999px;padding:4px 7px;background:#edf1f6;color:#51627a}.valuation-card.contract .vc-top em{background:#f6ecda;color:#806126}.valuation-card.public .vc-top em{background:#e7f1ec;color:#36634e}.valuation-card.memo .vc-top em{background:#eee9f4;color:#645275}
.valuation-card p{font-size:13px;line-height:1.75;color:#566273;margin:14px 0 12px}.valuation-card small{display:block;border-top:1px solid #ece7dd;padding-top:10px;color:#7a6851;line-height:1.55}
@media(max-width:900px){.valuation-flow{grid-template-columns:repeat(2,1fr)}.valuation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.valuation-note{display:block}.valuation-note b{display:block;margin-bottom:5px}.valuation-flow,.valuation-grid{grid-template-columns:1fr}.valuation-flow>div,.valuation-card{min-height:auto}.valuation-section{padding:34px 0}}


/* v51: 改正適用時期マップの絞り込みを簡素化 */
.page-kaisei .kbar.kbar-simple{
  display:grid;
  grid-template-columns:minmax(170px,1fr) minmax(180px,1fr) minmax(170px,1fr) minmax(260px,2fr) auto;
  align-items:center;
  gap:10px;
}
.page-kaisei .kbar.kbar-simple select,
.page-kaisei .kbar.kbar-simple input{width:100%;min-width:0;}
.page-kaisei .kbar.kbar-simple .cnt{white-space:nowrap;text-align:right;}
@media (max-width:900px){
  .page-kaisei .kbar.kbar-simple{grid-template-columns:1fr 1fr;}
  .page-kaisei .kbar.kbar-simple #f-q{grid-column:1/-1;}
  .page-kaisei .kbar.kbar-simple .cnt{grid-column:1/-1;text-align:right;}
}
@media (max-width:560px){
  .page-kaisei .kbar.kbar-simple{grid-template-columns:1fr;}
  .page-kaisei .kbar.kbar-simple #f-q,
  .page-kaisei .kbar.kbar-simple .cnt{grid-column:auto;}
}


/* v59: 適用開始年度と税制改正年度を独立して絞り込む */
.page-kaisei .year-filter-block{margin:0 0 18px;}
.page-kaisei .year-filter-head{display:flex;align-items:baseline;gap:12px;margin:0 0 7px;}
.page-kaisei .year-filter-label{color:var(--navy);font-size:13px;font-weight:800;letter-spacing:.04em;}
.page-kaisei .year-filter-help{color:#7f8996;font-size:11px;}
.page-kaisei .year-filter-block .kyears{margin-bottom:0;}
.page-kaisei .reform-year-filter{padding:14px 16px 12px;border:1px solid var(--line);background:#f8fafc;}
.page-kaisei .tag-reform-year{border-color:#d5c18c;background:#fbf7ec;color:#70591f;}
@media(max-width:640px){
  .page-kaisei .year-filter-head{display:block;}
  .page-kaisei .year-filter-help{display:block;margin-top:3px;}
  .page-kaisei .reform-year-filter{padding:12px 10px 10px;}
}
.detail-btn,.guide-btn,.video-btn{display:inline-flex;align-items:center;border:1px solid #b8c9da;border-radius:7px;padding:5px 9px;font-size:.78rem;font-weight:700;text-decoration:none;background:#fff;color:#174d80}.guide-btn{border-color:#9dbda9;color:#25613d}.video-btn{border-color:#d4b6a2;color:#854b26}.hash-target{outline:3px solid rgba(182,147,69,.5);outline-offset:4px}
