/* ===================== Global ===================== */
:root{
  --base-white:#fff; --main-text:#333; --primary-blue:#007BFF;
  --light-gray-bg:#F5F5F5; --border-color:#E0E0E0; --title-mark-bg:#FFF6B8;
  --cat-bg:#E6F3FF; --cat-fg:#0B63CE;
}
html,body{height:100%}
body{
  font-family:'Noto Sans JP',sans-serif; margin:0; padding:0;
  background:var(--base-white); color:var(--main-text); line-height:1.7;
  display:flex; flex-direction:column; min-height:100vh;
}
main{flex:1}
.container{width:90%;max-width:1100px;margin:0 auto}

/* ===================== Header ===================== */
.site-header{border-bottom:1px solid var(--border-color);padding:1rem 0;background:var(--base-white)}
.main-nav{
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:1rem
}
/* =====================
   Logo (image)
   ===================== */
  /* ロゴ画像をヘッダーにフィットさせる */
  .logo img {
    height: auto;       /* 高さは自動 */
    width: 140px;       /* 横幅を指定して調整（必要に応じて増減） */
    display: block;
  }
.nav-center{
  list-style:none;
  display:flex;
  gap:2rem;
  margin:0;
  padding:0;
  margin-left: 3rem;
}
.nav-center a{color:var(--main-text);text-decoration:none;font-weight:700;transition:color .2s}
.nav-center a:hover{color:var(--primary-blue)}
.user-actions{display:flex;gap:1rem;justify-self:end}
.user-id{font-size:.9rem;color:#555;align-self:center}
.nav-toggle{display:none;background:none;border:none;font-size:1.8rem;cursor:pointer;margin-left:auto;z-index:1001}

/* SP menu */
@media (max-width:767px){
  .main-nav{display:flex;justify-content:space-between;align-items:center}
  .nav-toggle{display:block}
  .nav-links{display:none;flex-direction:column;position:fixed;top:0;left:-260px;width:240px;height:100vh;background:#fff;margin:0;padding:0;box-shadow:2px 0 8px rgba(0,0,0,.1);transition:left .3s;z-index:1000}
  .nav-links.active{display:flex;left:0}
  .nav-links li{list-style:none;border-bottom:1px solid var(--border-color)}
  .nav-links li:last-child{border-bottom:none}
  .nav-links a,.nav-links form button{display:block;width:100%;padding:12px 16px;color:var(--main-text);text-decoration:none;font-weight:600;font-size:15px;text-align:left;background:none;border:none;cursor:pointer}
  .nav-links a:hover,.nav-links form button:hover{background:#f3f4f6;color:var(--primary-blue)}
  .sp-user-id{font-size:.9rem;color:#555;padding:12px 16px;text-align:center;border-top:1px solid var(--border-color)}
  .nav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:999}
  .nav-overlay.active{display:block}
  .nav-center,.user-actions{display:none}
}
/* PC menu */
@media (min-width:768px){
  .nav-links{display:none!important}
  .nav-center{display:flex}
  .user-actions{display:flex}
  .nav-toggle{display:none}
}

/* ===================== Buttons & footer ===================== */
.btn{display:inline-block;padding:.5rem 1.5rem;border-radius:5px;text-decoration:none;font-weight:700;text-align:center;transition:opacity .2s;min-width:110px}
.btn:hover{opacity:.8}
.btn-primary{background:var(--primary-blue);color:#fff}
.btn-secondary{background:transparent;color:var(--primary-blue);border:1px solid var(--primary-blue)}
.site-footer{background:#2c3e50;padding:3rem 0;margin-top:auto;color:#bdc3c7;font-size:.9rem}
.footer-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #34495e}
/* .footer-logo{font-size:1.5rem;font-weight:700;color:#fff}*/
.footer-logo img {
    height: auto;       /* 高さは自動 */
    width: 140px;       /* 横幅を指定して調整（必要に応じて増減） */
    display: block;
  }
.footer-nav{display:flex;gap:1.5rem}
.footer-nav a{color:#bdc3c7;text-decoration:none;transition:color .2s}
.footer-nav a:hover{color:#fff}
@media (max-width:767px){.footer-content{flex-direction:column;gap:1rem;text-align:center}.footer-nav{flex-direction:column;gap:.5rem}}

/* ===================== Hero & Section title ===================== */
.hero{text-align:center;padding:4rem 1rem;background:#f2f2f2;border-radius:8px}
.hero h1{font-size:2rem;font-weight:700;margin:0 auto;line-height:1.5;max-width:800px;color:#222}
@media (min-width:768px){.hero h1{font-size:1.6rem}}
.section-title{display:block;width:100%;text-align:center;font-size:1.8rem;font-weight:700;margin:3rem auto 2rem;padding:.75rem 0 1rem;border-bottom:1px solid var(--border-color);line-height:1.4}
@media (max-width:767px){.section-title{font-size:1.5rem;margin:2rem 0 1.25rem;padding:.5rem 0 .9rem}}

/* ===================== List page: filter/sort ===================== */
.filter-sort-bar{margin-bottom:2rem;padding:1rem;background:#fafafa;border:1px solid #eee;border-radius:6px}
.filter-form{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.filter-form label{font-weight:600;margin-right:.5rem}
.sort-controls{display:flex;align-items:center;gap:.5rem}
.sort-controls select{padding:.4rem .6rem;font-size:.9rem}
@media (max-width:767px){
  .filter-form{flex-direction:column;align-items:flex-start}
  .filter-form .btn{align-self:center;margin-top:.5rem}
}

/* ===================== Bottom buttons spacing ===================== */
.section-more,.to-top{margin:2rem 0 4rem}
@media (max-width:767px){.section-more,.to-top{margin-bottom:5rem}}

/* ===================== Detail: breadcrumb / hero / back-btn ===================== */
.breadcrumb{margin:0 0 1rem 0;text-align:left}
.breadcrumb__list{display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:0;list-style:none;font-size:.9rem}
.breadcrumb__item::after{content:"/";margin-left:.4rem}
.breadcrumb__item:last-child::after{content:""}
.breadcrumb__item a{text-decoration:none;color:var(--primary-blue)}
.breadcrumb__item--current{color:#555;font-weight:600}
.article-detail__hero{display:block;margin:1.5rem auto;max-width:100%;border-radius:8px}
.article-detail__back{text-align:center;margin:2rem 0 4rem}
@media (max-width:767px){.article-detail__back{margin-bottom:5rem}}

/* ===================== Table & Blockquote in detail ===================== */
.article-detail__body table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}
.article-detail__body table th,.article-detail__body table td{border:1px solid var(--border-color);padding:.6rem .8rem;text-align:left}
.article-detail__body table th{background:var(--light-gray-bg);font-weight:700}
.article-detail__body blockquote{border-left:4px solid var(--primary-blue);background:#f9f9f9;padding:1rem 1.25rem;margin:1.5rem 0;color:#555;font-style:italic}

/* =====================
   Bottom Buttons: Centralize
   ===================== */
   .to-top,
   .section-more,
   .promo-box {
     text-align: center;        /* 中央揃え */
     margin: 2rem 0 4rem;       /* 上下余白 */
   }
   
   .to-top .btn,
   .section-more .btn,
   .promo-box .btn {
     display: inline-block;     /* 真ん中に配置 */
     margin: 0 auto;            /* 左右中央 */
   }
   
   /* =====================
   TOPページ プロモーション画像を記事カード幅に合わせる
   ===================== */
.promo-section {
  max-width: 1100px;
  margin: 0 auto;
}

.promo-section .promo-img {
  width: 100%;
  max-width: 1000px;   /* 記事カード3列に合わせる */
  margin: 0 auto;
  display: block;
  border-radius: 6px;
}

.policy-back {
  margin-top: 40px;
  margin-bottom: 60px;
  text-align: center;
}

footer .copyright {
  text-align: center;
  color: #666;        /* 必要なら色指定 */
  font-size: 14px;    /* 必要ならサイズ指定 */
  margin: 10px 0;     /* 上下に余白 */
}

.below-link {
  display: block;
  padding-top: 40px;   /* marginの代わりにpaddingを使う */
  text-align: center;
  font-size: 0.95rem;
}