/* layout.css — コンテナ / セクション / ヘッダー / フッター */
.l-container { max-width: var(--container); margin-inline: auto; padding-inline: clamp(16px, 4vw, 32px); }
.l-container--narrow { max-width: var(--container-narrow); }
.l-section { padding-block: var(--section-pad); }
.l-section--gray { background: var(--c-surface); }
.site-main { padding-top: var(--header-h); }

/* ---- Header(上部固定。左サイドナビは存在しない) ---- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--header-h);
  background: var(--c-white); border-bottom: 1px solid var(--c-line);
}
.site-header__inner { display: flex; align-items: center; gap: 24px; height: var(--header-h); }
.site-header__logo img { width: clamp(140px, 15vw, 190px); height: auto; }
.global-nav { margin-left: auto; }
.global-nav__list { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.global-nav__list a { text-decoration: none; font-weight: var(--fw-bold); font-size: 14px; color: var(--c-charcoal); }
.global-nav__list a:hover { box-shadow: inset 0 -2px 0 var(--c-yellow); } /* 黄の細ルール線 */
.site-header__actions { display: flex; align-items: center; gap: 16px; }
.site-header__doclink { font-size: 13px; font-weight: var(--fw-bold); color: var(--c-charcoal); text-decoration: none; }
.site-header__doclink:hover { box-shadow: inset 0 -2px 0 var(--c-yellow); }

/* ハンバーガー / ドロワー */
.hamburger { display: none; width: 44px; height: 44px; background: none; border: 0; cursor: pointer; padding: 10px; }
.hamburger span { display: block; height: 2px; margin: 5px 0; background: var(--c-charcoal); transition: transform .2s, opacity .2s; }
.hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.drawer { display: none; position: fixed; top: var(--header-h); inset-inline: 0; bottom: 0; background: var(--c-white); padding: 24px; overflow-y: auto; }
.drawer:not([hidden]) { display: block; }
.drawer__list { list-style: none; margin: 0 0 24px; padding: 0; }
.drawer__list a { display: block; padding: 14px 4px; border-bottom: 1px solid var(--c-line); text-decoration: none; font-weight: var(--fw-bold); color: var(--c-charcoal); }

@media (max-width: 767px) {
  .global-nav, .site-header__doclink, .site-header__actions .c-btn { display: none; }
  .hamburger { display: block; margin-left: auto; }
  .site-header__actions { margin-left: auto; }
}

/* ---- Footer(チャコール濃色背景 / Dark Mode) ---- */
.site-footer { background: var(--c-charcoal); color: var(--c-white); padding-block: 56px 24px; }
.site-footer__inner { display: grid; grid-template-columns: 1fr auto; gap: 40px; }
.site-footer__brand img { filter: brightness(0) invert(1); } /* 白単色ロゴ相当の見え方。正式白版データがあれば差し替え */
.site-footer__company { font-size: var(--fs-small); color: #cfcccb; margin-top: 12px; }
.site-footer__nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.site-footer__nav a { color: var(--c-white); text-decoration: none; font-size: 14px; }
.site-footer__nav a:hover { box-shadow: inset 0 -2px 0 var(--c-yellow); }
.site-footer__copy { margin-top: 40px; font-size: 12px; color: #a9a5a4; }
@media (max-width: 767px) { .site-footer__inner { grid-template-columns: 1fr; } }
