:root{--navy:#071f2b;--ink:#15323c;--teal:#087b78;--mint:#9adbd0;--paper:#f3f6f3;--white:#fff;--line:#cad8d5;--muted:#526b72}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP","Yu Gothic",sans-serif;line-height:1.85;overflow-x:hidden}a{color:#07635f;text-underline-offset:.2em}img{max-width:100%;height:auto}.site-header{background:var(--navy);color:#fff;position:relative;z-index:10}.header-inner,.global-nav ul,.content-layout,.footer-grid{width:min(1180px,calc(100% - 40px));margin:auto}.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;line-height:1.25}.brand b,.brand small{display:block}.brand b{letter-spacing:.12em}.brand small{color:#b9d8d4;font-size:.72rem}.brand-mark{width:34px;height:34px;border:2px solid var(--mint);border-radius:50%;position:relative}.brand-mark:after{content:"";position:absolute;width:10px;height:10px;background:var(--mint);border-radius:50%;inset:10px}.global-nav{border-top:1px solid #28434c}.global-nav ul{display:flex;justify-content:center;list-style:none;padding:0;margin:0;flex-wrap:wrap}.global-nav a{display:block;padding:10px 12px;color:#dcedea;text-decoration:none;font-size:.78rem}.global-nav a:hover,.global-nav a:focus{background:#123944;color:#fff}.menu-toggle{display:none;border:1px solid #9ec2bd;background:transparent;border-radius:4px;width:44px;height:40px;padding:8px}.menu-toggle span{display:block;height:2px;margin:5px;background:#fff}.hero{height:clamp(390px,52vw,590px);position:relative;background:#102d38;color:#fff;overflow:hidden}.hero-image{width:100%;height:100%;object-fit:cover;display:block}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,18,26,.9),rgba(2,18,26,.46) 58%,rgba(2,18,26,.12))}.hero-overlay{position:absolute;z-index:2;left:max(20px,calc((100% - 1124px)/2));bottom:clamp(35px,8vw,90px);width:min(760px,calc(100% - 40px))}.hero h1{font-family:"Yu Mincho",serif;font-size:clamp(2rem,4.5vw,4rem);line-height:1.25;margin:.15em 0}.hero-overlay>p:last-child{font-size:clamp(1rem,2vw,1.25rem);margin:0;text-wrap:balance}.eyebrow{color:#b9eee5;font-weight:bold;letter-spacing:.14em;margin:0}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:54px;padding-top:60px;padding-bottom:70px}.main-content{min-width:0;background:#fff;padding:clamp(24px,5vw,55px);box-shadow:0 8px 30px rgba(15,47,55,.06)}.main-content section+section,.main-content p+section{margin-top:46px}.main-content h2{font-size:1.55rem;line-height:1.45;border-left:5px solid var(--teal);padding-left:15px;margin:0 0 20px}.main-content h3{font-size:1.18rem;margin-top:2.2em}.main-content p{margin:0 0 1.25em}.side-nav{align-self:start;position:sticky;top:20px;background:#e5efec;padding:25px}.side-nav h2{font-size:1rem;margin:0 0 13px}.side-nav ul,.related ul,.related-sites ul,footer ul{list-style:none;margin:0;padding:0}.side-nav li{border-top:1px solid #bdcfcb}.side-nav a{display:block;padding:9px 4px;text-decoration:none;font-size:.9rem}.side-blog{margin-top:18px;background:var(--teal);color:#fff!important;text-align:center}.ad{margin:42px 0;padding:20px 24px;border:1px solid #a9c6c0;background:#f0f8f5}.ad span{font-size:.68rem;border:1px solid #789993;padding:1px 5px}.ad p{margin:.4em 0}.related li,.related-sites li{padding:.45em 0;border-bottom:1px solid var(--line)}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.story-card{border:1px solid var(--line);padding:22px;background:#f8fbfa}.story-card h2{font-size:1.08rem;border:0;padding:0;margin:0 0 12px}.story-card p{font-size:.9rem}.read-more{font-weight:bold}footer{background:var(--navy);color:#d5e5e2;padding:52px 0 20px}.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.footer-grid h2{color:#fff;font-size:1rem;margin-top:0}.footer-grid p,.footer-grid a{font-size:.84rem;color:#c3dcd7}.copyright{text-align:center;border-top:1px solid #29424a;margin:35px auto 0;padding-top:18px;font-size:.75rem}@media(max-width:780px){.header-inner{min-height:68px}.brand small{display:none}.menu-toggle{display:block}.global-nav{display:none}.global-nav.is-open{display:block}.global-nav ul{display:block;width:100%;padding:8px 20px}.global-nav a{padding:10px}.hero{height:400px}.hero:after{background:linear-gradient(0deg,rgba(2,18,26,.9),rgba(2,18,26,.18))}.hero-overlay{bottom:30px}.content-layout{display:block;width:100%;padding:0}.main-content{padding:34px 20px;box-shadow:none}.side-nav{position:static;margin:0;padding:28px 20px}.card-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:24px;width:calc(100% - 40px)}.main-content h2{font-size:1.3rem;overflow-wrap:anywhere}.hero h1{font-size:2rem;overflow-wrap:anywhere}}

.footer-links{width:min(1180px,calc(100% - 40px));margin:30px auto 0;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;font-size:.84rem}.footer-links a{color:#c3dcd7}

/* LATEST-COMMENTARY:START */
.latest-commentary {
  padding: 3rem 0;
}
/* .container を持たないサイトでも端に張り付かないための保険。
   :where() は詳細度0なので、サイト側の .container 定義が常に優先される。 */
:where(.latest-commentary .container) {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1rem;
}
.latest-commentary h2 {
  margin-bottom: 1.25rem;
}
.latest-commentary-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.latest-commentary-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line, #e5e5e5);
}
.latest-commentary-list time {
  flex: 0 0 auto;
  color: var(--muted, #666);
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}
.latest-commentary-list a {
  flex: 1 1 16rem;
  min-width: 0;
  color: var(--ink, #222);
  text-decoration: none;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.latest-commentary-list a:hover {
  color: #0b5;
  text-decoration: underline;
}
.latest-commentary-more {
  margin-top: 1.25rem;
}
.latest-commentary-more a {
  color: #0b5;
  text-decoration: none;
  font-weight: 600;
}
.latest-commentary-more a:hover {
  text-decoration: underline;
}
@media (max-width: 600px) {
  .latest-commentary-list li {
    flex-direction: column;
    gap: 0.2rem;
  }
  /* 縦積み時に flex-basis(16rem) が高さに効かないよう auto に戻す */
  .latest-commentary-list a,
  .latest-commentary-list time {
    flex: 0 0 auto;
  }
}
/* LATEST-COMMENTARY:END */
