:root{
  --bg:#f4f6f8;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --ink:#172230;
  --muted:#667382;
  --line:#d8e0e8;
  --line-strong:#c7d2dc;
  --navy:#18324a;
  --blue:#2b5f93;
  --blue-dark:#204b76;
  --blue-soft:#eaf2f8;
  --amber:#9a5b10;
  --amber-soft:#fff8ee;
  --danger:#9f3b31;
  --danger-soft:#fff1ef;
  --shadow:0 8px 24px rgba(25,47,70,.06);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--blue)}
button,input,select{font:inherit}
img{max-width:100%;height:auto}
.wrap{width:min(1040px,calc(100% - 40px));margin:auto}
.site-header{background:var(--navy);color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}
.header-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:.98rem;font-weight:750;letter-spacing:.01em}
.brand-copy{line-height:1.28}
.brand small{display:block;margin-top:2px;color:#cbd8e4;font-size:.66rem;font-weight:500;letter-spacing:.01em}
.site-nav{display:flex;align-items:center;gap:20px}
.site-nav a{color:#e4ebf1;text-decoration:none;font-size:.79rem;font-weight:650}
.site-nav a:hover{text-decoration:underline}

.hero{padding:48px 0 28px;background:linear-gradient(180deg,#edf3f7 0,#f4f6f8 100%)}
.hero-copy{max-width:760px}
.eyebrow{color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.1em}
h1{
  margin:8px 0 12px;
  color:var(--navy);
  font-size:clamp(2.15rem,4.4vw,3.35rem);
  line-height:1.17;
  letter-spacing:-.035em;
  font-weight:760;
}
.mobile-break{display:none}
.hero-lead{max-width:720px;margin:0;color:#485869;font-size:1rem;line-height:1.8}

.search-panel{
  max-width:900px;
  margin-top:24px;
  padding:18px;
  background:var(--surface);
  border:1px solid var(--line-strong);
  border-radius:14px;
  box-shadow:var(--shadow);
}
.search-label{display:block;margin-bottom:7px;color:var(--navy);font-size:.85rem;font-weight:750}
.primary-search{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:12px}
input,select{
  width:100%;
  min-height:48px;
  padding:11px 13px;
  border:1px solid #aebdca;
  border-radius:9px;
  background:#fff;
  color:var(--ink);
}
input{font-size:1rem}
input::placeholder{color:#85909c}
input:focus,select:focus,button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #9fc5e9;outline-offset:2px}
.search-button{min-height:48px;border:0;border-radius:9px;background:var(--blue);color:#fff;font-weight:750;cursor:pointer}
.search-button:hover{background:var(--blue-dark)}
.search-options{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:10px}
.search-help{margin:1px 0 0;color:var(--muted);font-size:.76rem}
.advanced-search{margin:0}
.advanced-search summary{cursor:pointer;list-style:none;width:max-content;color:var(--blue);font-size:.79rem;font-weight:700}
.advanced-search summary::-webkit-details-marker{display:none}
.advanced-search summary::after{content:" ＋";font-weight:500}
.advanced-search[open] summary::after{content:" －"}
.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:430px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.filter-grid label{color:var(--muted);font-size:.75rem;font-weight:650}
.filter-grid select{min-height:44px;margin-top:4px}

.trust-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  max-width:900px;
  margin-top:16px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  border-radius:10px;
}
.trust-item{padding:11px 14px}
.trust-item+.trust-item{border-left:1px solid var(--line)}
.trust-label{display:block;color:var(--muted);font-size:.68rem;line-height:1.35}
.trust-item strong{display:block;margin-top:2px;color:var(--navy);font-size:.8rem;line-height:1.45}
.notice{max-width:900px;margin:12px 0 0;padding-left:12px;border-left:3px solid #d8a359;color:#62533f;font-size:.78rem;line-height:1.65}
.notice strong{color:var(--amber)}

.results-section{padding:30px 0 64px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}
h2{margin:0;color:var(--navy);font-size:1.45rem;line-height:1.35;letter-spacing:-.018em}
.section-description{margin:4px 0 0;color:var(--muted);font-size:.78rem}
.result-count{color:var(--muted);font-size:.8rem;font-weight:700}
.cards{display:grid;gap:10px}
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding:16px 18px;
  box-shadow:0 2px 8px rgba(25,47,70,.025);
  transition:border-color .15s ease,box-shadow .15s ease;
}
.card:hover{border-color:#a9bdcf;box-shadow:0 5px 16px rgba(25,47,70,.05)}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px}
.card-brand{color:var(--blue);font-size:.72rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.card-date{color:#7a8794;font-size:.72rem}
.card h3{margin:0;font-size:1.08rem;line-height:1.42;font-weight:740}
.card h3 a{color:var(--navy);text-decoration:none}
.card h3 a:hover{text-decoration:underline}
.card-facts{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:8px;color:#536170;font-size:.76rem}
.card-facts span{display:inline-flex;align-items:center;gap:4px}
.card-facts strong{color:#344456;font-weight:700}
.risk{color:var(--danger)!important;font-weight:750}
.card-summary{max-width:820px;margin:9px 0 0;color:#4e5c69;font-size:.88rem;line-height:1.65}
.card-id{margin-top:6px;color:#78838e;font-size:.74rem;line-height:1.55}
.card-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:11px;padding-top:9px;border-top:1px solid #e8edf1}
.source-note{color:var(--muted);font-size:.72rem}
.action-link{font-size:.79rem;font-weight:750;text-decoration:none}
.action-link:hover{text-decoration:underline}
.empty{display:none;padding:26px;border:1px dashed #acb8c3;border-radius:12px;background:#fff;color:var(--muted);font-size:.88rem}

.policy-section{margin-top:46px;padding-top:34px;border-top:1px solid var(--line)}
.policy-heading{max-width:680px}
.policy-heading h2{margin-top:5px}
.policy-heading p{margin:8px 0 0;color:var(--muted);font-size:.87rem;line-height:1.72}
.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px}
.policy-grid>div{padding-top:12px;border-top:2px solid #ccd8e2}
.policy-no{display:block;color:var(--blue);font-size:.67rem;font-weight:850;letter-spacing:.1em}
.policy-grid strong{display:block;margin-top:5px;color:var(--navy);font-size:.92rem}
.policy-grid p{margin:5px 0 0;color:var(--muted);font-size:.79rem;line-height:1.65}

footer{border-top:1px solid var(--line);background:#fff;padding:28px 0 38px}
.footer-inner{display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:start;color:var(--muted);font-size:.76rem;line-height:1.65}
.footer-inner strong{color:var(--navy);font-size:.84rem}
.footer-inner p{margin:4px 0 0}
.footer-note{max-width:680px}

.detail-hero{padding:32px 0 22px;background:linear-gradient(180deg,#edf3f7 0,#f4f6f8 100%)}
.breadcrumbs{margin-bottom:12px;color:var(--muted);font-size:.74rem}
.detail-hero h1{margin:6px 0 10px;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.25}
.detail-summary{max-width:760px;margin:0;color:#4d5b69;font-size:.95rem;line-height:1.75}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;padding:0 0 56px}
.detail-main,.detail-side>div{background:#fff;border:1px solid var(--line);border-radius:12px}
.detail-main{padding:22px 24px}
.detail-side>div{padding:18px}
.detail-main h2{margin:26px 0 8px;font-size:1.18rem;line-height:1.4}
.detail-main h2:first-of-type{margin-top:0}
.detail-main p{margin:0;color:#475666;font-size:.9rem;line-height:1.75}
.detail-label{display:inline-block;margin-bottom:10px;color:var(--blue);font-size:.7rem;font-weight:800;letter-spacing:.06em}
.check-box{margin:0 0 22px;padding:14px 16px;border-left:3px solid var(--blue);background:var(--surface-soft)}
.check-box strong{color:var(--navy);font-size:.86rem}
.check-box p{margin-top:4px}
.info-table{width:100%;margin:10px 0 0;border-collapse:collapse}
.info-table th,.info-table td{padding:10px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.82rem;line-height:1.6}
.info-table th{width:138px;color:var(--muted);font-weight:650}
.source-card{position:sticky;top:18px;border-top:3px solid var(--blue)!important}
.source-agency{display:block;color:var(--blue);font-size:.68rem;font-weight:850;letter-spacing:.08em}
.source-card>strong{display:block;margin-top:4px;color:var(--navy);font-size:.9rem;line-height:1.45}
.source-card .small{margin-top:7px;color:var(--muted);font-size:.74rem;line-height:1.6}
.source-btn{display:block;margin:13px 0;text-align:center;background:var(--blue);color:#fff;text-decoration:none;font-size:.79rem;font-weight:750;border-radius:8px;padding:10px 12px}
.source-btn:hover{background:var(--blue-dark)}
.source-meta{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.source-meta div{display:flex;justify-content:space-between;gap:12px;margin:5px 0;font-size:.72rem}
.source-meta span{color:var(--muted)}
.source-meta strong{color:#344456;font-weight:700}
.small{color:var(--muted);font-size:.76rem;line-height:1.65}

@media(max-width:800px){
  .wrap{width:min(100% - 28px,1040px)}
  .header-inner{min-height:58px}
  .site-nav{display:none}
  .hero{padding:36px 0 24px}
  .mobile-break{display:block}
  .hero-lead{font-size:.94rem;line-height:1.75}
  .primary-search{grid-template-columns:1fr;gap:14px}
  .search-button{width:100%}
  .search-options{display:block}
  .search-help{margin-top:7px}
  .filter-grid{grid-template-columns:1fr;min-width:0}
  .trust-strip{grid-template-columns:1fr}
  .trust-item+.trust-item{border-left:0;border-top:1px solid var(--line)}
  .section-head{align-items:flex-start}
  .policy-grid{grid-template-columns:1fr;gap:18px}
  .footer-inner{grid-template-columns:1fr;gap:14px}
  .detail-grid{grid-template-columns:1fr}
  .source-card{position:static}
}
@media(max-width:520px){
  body{font-size:16px}
  .wrap{width:min(100% - 24px,1040px)}
  h1{font-size:2rem}
  .search-panel{padding:14px;border-radius:11px}
  .card{padding:14px}
  .card-top{align-items:flex-start}
  .card-footer{align-items:flex-start}
  .detail-main{padding:18px}
  .detail-side>div{padding:16px}
  .info-table th{width:104px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}
.legal-page{padding:0 0 64px}
.legal-panel{max-width:820px;padding:26px 28px;background:#fff;border:1px solid var(--line);border-radius:12px}
.legal-panel h2{margin:28px 0 8px;font-size:1.08rem}
.legal-panel h2:first-child{margin-top:0}
.legal-panel p{margin:0 0 10px;color:#475666;font-size:.9rem;line-height:1.8}
.policy-date{margin-top:28px!important;color:var(--muted)!important;font-size:.78rem!important}
.footer-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px!important}
.footer-links a{font-size:.76rem}
@media(max-width:520px){
  .legal-panel{padding:20px 18px}
}
