:root{
  --sub-blue:#143f69;
  --sub-blue-deep:#0f3151;
  --sub-accent:#c63b2d;
  --sub-bg:#eef3f8;
  --sub-card:#ffffff;
  --sub-border:#d6dee8;
  --sub-text:#28405f;
  --sub-subtext:#5c7390;
  --sub-shadow:0 8px 24px rgba(20, 63, 105, 0.07);
  --sub-radius:14px;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
}

.sub-page{
  background:var(--sub-bg);
  color:var(--sub-text);
  min-height:60vh;
}

.page-hero{
  padding:42px 0 34px;
  background:linear-gradient(180deg, #edf3f8 0%, #e8eff6 100%);
  border-bottom:1px solid #d9e2ec;
}

.page-kicker{
  margin:0 0 10px;
  color:var(--sub-accent);
  font-weight:700;
  letter-spacing:.08em;
}

.page-title{
  margin:0;
  font-size:clamp(2rem, 3vw, 3rem);
  line-height:1.2;
  font-weight:800;
  color:var(--sub-blue);
}

.page-lead{
  max-width:880px;
  margin:18px 0 0;
  color:var(--sub-subtext);
  line-height:1.95;
}

.sub-section{
  padding:24px 0;
}

.sub-section:first-of-type{
  padding-top:38px;
}

.content-card{
  background:var(--sub-card);
  border:1px solid var(--sub-border);
  border-radius:var(--sub-radius);
  box-shadow:var(--sub-shadow);
  padding:28px 28px 30px;
}

.section-title{
  position:relative;
  margin:0 0 22px;
  padding-left:18px;
  font-size:clamp(1.4rem, 2vw, 1.95rem);
  line-height:1.3;
  color:var(--sub-blue);
  font-weight:800;
}

.section-title::before{
  content:"";
  position:absolute;
  left:0;
  top:.15em;
  width:6px;
  height:1.2em;
  border-radius:999px;
  background:var(--sub-blue);
}

.section-body p{
  margin:0 0 1.15em;
  line-height:2;
}

.section-note{
  color:var(--sub-subtext);
}

.update-note{
  margin-top:18px;
  color:var(--sub-subtext);
  font-size:.95rem;
}

.table-wrap{
  width:100%;
  overflow-x:auto;
  margin-top:18px;
}

.info-table{
  width:100%;
  border-collapse:collapse;
  min-width:640px;
}

.info-table thead th{
  background:#f4f8fb;
  color:var(--sub-blue);
  font-weight:700;
  text-align:left;
  border-bottom:2px solid var(--sub-border);
  padding:14px 14px;
}

.info-table tbody td{
  padding:14px 14px;
  border-bottom:1px solid #e3e9f0;
  vertical-align:top;
  line-height:1.8;
}

.info-table tbody tr:hover{
  background:#fbfdff;
}

.numbered-list{
  margin:20px 0 0;
  padding-left:1.4em;
}

.numbered-list li{
  margin-bottom:12px;
  line-height:1.95;
}

.link-list{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  gap:12px;
}

.link-list a{
  display:block;
  padding:14px 16px;
  background:#f7fafc;
  border:1px solid var(--sub-border);
  border-radius:10px;
  color:var(--sub-blue);
  text-decoration:none;
  font-weight:700;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.link-list a:hover,
.link-list a:focus{
  background:var(--sub-blue);
  border-color:var(--sub-blue);
  color:#ffffff;
  transform:translateY(-1px);
}

.member-list{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  gap:12px;
}

.member-item{
  padding:16px 18px;
  background:#fbfdff;
  border:1px solid #e3e9f0;
  border-radius:12px;
  line-height:1.8;
}

.back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  width:48px;
  height:48px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--sub-blue);
  color:#ffffff;
  text-decoration:none;
  font-weight:700;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
  transition:background-color .2s ease, transform .2s ease;
  z-index:100;
}

.back-to-top:hover,
.back-to-top:focus{
  background:var(--sub-accent);
  transform:translateY(-2px);
}

@media (max-width: 900px){
  .content-card{
    padding:24px 20px 24px;
  }
}

@media (max-width: 767px){
  .page-hero{
    padding:34px 0 28px;
  }

  .page-lead,
  .section-body p,
  .numbered-list li,
  .member-item{
    line-height:1.9;
  }

  .back-to-top{
    right:16px;
    bottom:16px;
    width:44px;
    height:44px;
  }
}
/* breadcrumb */

.breadcrumb{
font-size:.9rem;
margin-bottom:14px;
color:#6c7f95;
}

.breadcrumb a{
color:#143f69;
text-decoration:none;
font-weight:600;
}

.breadcrumb span{
margin:0 6px;
}

.breadcrumb a:hover{
text-decoration:underline;
}
/* footer alignment fix */

.site-footer{
text-align:center;
}

.site-footer .container{
text-align:center;
}