/* 折衷案D：ワードマーク・ヘッダー・detailsメニュー・フッター。 */
.site-header { position: relative; z-index: var(--corp-z-header); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 112px; }
.wordmark { display: inline-flex; align-items: center; gap: 16px; flex-shrink: 0; min-height: 44px; padding-right: 24px; text-decoration: none; line-height: 1.4; }
.wordmark__mark { flex-shrink: 0; width: 48px; height: 48px; color: var(--corp-green); }
.wordmark__text { display: flex; flex-direction: column; }
.wordmark__name { color: var(--corp-green); font-size: 28px; font-weight: 700; letter-spacing: .04em; }
.wordmark__caption { margin-top: 8px; font-size: 12px; font-weight: 400; letter-spacing: .08em; }
.wordmark:hover .wordmark__name, .wordmark:focus-visible .wordmark__name, .wordmark:hover .wordmark__mark, .wordmark:focus-visible .wordmark__mark { color: var(--corp-green-hover); }
.site-nav__list { display: flex; align-items: center; gap: 24px; }
.site-nav__link { display: inline-flex; align-items: center; min-width: 44px; min-height: 48px; font-size: 14px; text-decoration: none; white-space: nowrap; }
.site-nav__link:hover, .site-nav__link:focus-visible, .site-nav__link[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; }
.site-nav__contact { min-height: 48px; padding: 12px 24px; white-space: nowrap; }
.site-nav__contact[aria-current="page"], .mobile-menu__contact[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; }
.mobile-menu { display: none; }
.site-footer { padding-block: 64px 32px; }
.site-footer__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 48px; }
.site-footer__tagline { margin-top: 24px; color: var(--corp-muted); font-size: 14px; }
.site-footer__nav { display: grid; grid-template-columns: repeat(3, auto); gap: 8px 40px; }
.site-footer__link { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; font-size: 14px; text-decoration: none; }
.site-footer__link:hover, .site-footer__link:focus-visible, .site-footer__link[aria-current="page"] { text-decoration: underline; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--corp-line); }
.site-footer__policies { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.site-footer__policy { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; font-size: 12px; text-decoration: none; }
.site-footer__policy:hover, .site-footer__policy:focus-visible, .site-footer__policy[aria-current="page"] { text-decoration: underline; }
.site-footer__copyright { color: var(--corp-muted); font-size: 12px; }

@media (max-width: 1040px) {
  .site-nav__list { gap: 16px; }
  .site-nav__link, .site-nav__contact { font-size: 12px; }
  .site-nav__contact { padding-inline: 16px; }
  .wordmark { padding-right: 0; }
  .site-footer__nav { gap: 8px 24px; }
}
@media (max-width: 760px) {
  .site-header__inner { min-height: 96px; gap: 16px; }
  .wordmark { gap: 12px; }
  .wordmark__mark { width: 40px; height: 40px; }
  .wordmark__name { font-size: 24px; }
  .site-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu__toggle { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 96px; min-height: 48px; padding: 12px; border: 1px solid var(--corp-green); border-radius: var(--corp-radius-button); color: var(--corp-green); cursor: pointer; font-size: 12px; list-style: none; }
  .mobile-menu__toggle::-webkit-details-marker { display: none; }
  .mobile-menu__toggle:hover, .mobile-menu__toggle:focus-visible, .mobile-menu[open] .mobile-menu__toggle { color: var(--corp-white); background: var(--corp-green); }
  .mobile-menu__toggle::after { content: ""; width: 16px; height: 8px; border-block: 1px solid currentColor; }
  .mobile-menu[open] .mobile-menu__toggle::after { height: 1px; border-bottom: 0; }
  .mobile-menu__nav { position: absolute; z-index: var(--corp-z-drawer); top: calc(100% - 8px); left: 24px; right: 24px; padding: 24px; border: 1px solid var(--corp-line); border-radius: var(--corp-radius-button); background: var(--corp-white); }
  .mobile-menu__list { display: grid; gap: 8px; }
  .mobile-menu__link { display: flex; align-items: center; min-height: 48px; padding-inline: 8px; font-size: 14px; text-decoration: none; }
  .mobile-menu__link:hover, .mobile-menu__link:focus-visible, .mobile-menu__link[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; }
  .mobile-menu__contact { display: flex; margin-top: 8px; }
  .site-footer { padding-block: 48px 24px; }
  .site-footer__top { flex-direction: column; gap: 40px; }
  .site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 32px; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; gap: 24px; margin-top: 40px; }
  .site-footer__policies { gap: 8px 16px; }
}
@media (max-width: 359px) {
  .wordmark__mark { width: 32px; height: 32px; }
  .wordmark__name { font-size: 20px; }
  .mobile-menu__toggle { min-width: 80px; }
}
