/* 共通: JS を使わない UI の実装
 * 元 CSS (reset / common / 各ページ css) は無加工でコピーし、差分だけここで上書きする。
 * DOM は build/common.py が生成する:
 *   <input#nav-toggle.nav-toggle> <header.header>…<label.hamburger__btn for=nav-toggle>…</header>
 *   <div.hamburger#nav-menu> … <input#nav-group.nav-group-toggle><label.group-btn> <div.hamburger__group><div.hamburger__group-inner>…
 * :has() を使わず兄弟セレクタ (~ / +) だけで動く。
 */

/* ------------------------------------------------------------
 * 開閉用 checkbox: 視覚的にのみ隠す (Tab でフォーカス → Space で開閉できるよう display:none にしない)
 * ---------------------------------------------------------- */
.nav-toggle,
.nav-group-toggle {
  position: fixed; /* フォーカス時にページ先頭へスクロールしないよう fixed */
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}
.nav-group-toggle {
  position: absolute;
}
@media screen and (min-width: 1241px) {
  .nav-toggle {
    display: none; /* PC ではハンバーガー自体が無い */
  }
}

/* ------------------------------------------------------------
 * ハンバーガーメニュー (元: common/js/script.js の fadeIn/fadeOut 300ms + .showing)
 * ---------------------------------------------------------- */
label.hamburger__btn {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}
.hamburger {
  opacity: 0;
  /* 閉じるとき: opacity を 0.3s で落としてから display:none (allow-discrete 非対応環境は即時に閉じる) */
  transition: opacity 0.3s ease, display 0.3s allow-discrete;
}
@media screen and (max-width: 1240px) {
  .nav-toggle:checked ~ .hamburger {
    display: block;
    opacity: 1;
    animation: static-nav-fade-in 0.3s ease;
  }
}
@keyframes static-nav-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* ボタンの × 化 (元 CSS の .hamburger__btn.showing を移植) */
.nav-toggle:checked ~ .header .hamburger__btn {
  background: #74838D;
}
.nav-toggle:checked ~ .header .hamburger__btn .hamburger__btn-line:nth-child(2) {
  width: 0;
  transition: 0.3s;
}
.nav-toggle:checked ~ .header .hamburger__btn .hamburger__btn-line:nth-child(1) {
  transform: rotate(45deg);
  width: 30px;
  top: 33px;
  left: 18px;
  transition: 0.2s;
}
.nav-toggle:checked ~ .header .hamburger__btn .hamburger__btn-line:nth-child(3) {
  transform: rotate(-45deg);
  width: 30px;
  top: 33px;
  left: 18px;
  transition: 0.2s;
}
@media screen and (max-width: 450px) {
  .nav-toggle:checked ~ .header .hamburger__btn .hamburger__btn-line:nth-child(1),
  .nav-toggle:checked ~ .header .hamburger__btn .hamburger__btn-line:nth-child(3) {
    width: 24px;
    top: 25px;
    left: 13px;
  }
}
/* フォーカスリングはキーボード操作時のみ。タップ/クリックで label 経由に checkbox へフォーカスが移った場合に
 * :focus-visible が一致するブラウザがあるため、ポインタ操作 (hover:none の端末・ホバー中) では出さない */
@media (hover: hover) {
  .nav-toggle:focus-visible ~ .header .hamburger__btn:not(:hover) {
    outline: 2px solid #0B7BEC;
    outline-offset: 3px;
  }
}

/* 「会社情報」アコーディオン (元: slideDown/slideUp 300ms + span.showing でシェブロン回転) */
label.group-btn {
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.hamburger__group {
  display: grid; /* 元 CSS の display:none を上書き */
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.hamburger__group-inner {
  min-height: 0;
  overflow: hidden;
  visibility: hidden; /* 閉じている間は中のリンクに Tab で入らない */
  transition: visibility 0s 0.3s;
}
.nav-group-toggle:checked ~ .hamburger__group {
  grid-template-rows: 1fr;
}
.nav-group-toggle:checked ~ .hamburger__group .hamburger__group-inner {
  visibility: visible;
  transition: visibility 0s;
}
.hamburger__link.group-btn .group-btn-span::before {
  transition: transform 0.3s;
}
.nav-group-toggle:checked + .group-btn .group-btn-span::before {
  transform: rotate(180deg);
}
@media (hover: hover) {
  .nav-group-toggle:focus-visible + .group-btn:not(:hover) {
    outline: 2px solid #fff;
    outline-offset: -4px;
  }
}
.nav-toggle:focus,
.nav-group-toggle:focus {
  outline: none;
}

/* ------------------------------------------------------------
 * PC ヘッダーのドロップダウン: <button> → <div tabindex=0> にした差分の補正
 * 開閉自体は元 CSS の .has-child:hover / :focus-within
 * ---------------------------------------------------------- */
.header__right-bottom div.header__link.has-child {
  display: inline-block; /* button と同じ inline-block (padding 24px 0 が高さに効く) */
  text-align: center;
  cursor: pointer;
  user-select: none;
}
.header__right-bottom div.header__link.has-child .header__item-wrapper {
  text-align: left;
  cursor: auto;
}
.header__right-bottom div.header__link.has-child:focus {
  outline: none;
}
.header__right-bottom div.header__link.has-child:focus-visible {
  outline: 2px solid #0B7BEC;
  outline-offset: 2px;
  border-radius: 2px;
}

/* ------------------------------------------------------------
 * ニュース記事の SNS シェア (Facebook share_button / X share button の見た目を再現)
 * ---------------------------------------------------------- */
.news-article__sns {
  align-items: center;
}
.sns-share {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  box-sizing: border-box;
  font-family: Helvetica, Arial, "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 11px;
  line-height: 1;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s;
}
.sns-share::before {
  content: "";
  flex: none;
  background: center / contain no-repeat;
}
.sns-share:hover,
.sns-share:focus-visible {
  color: #fff;
}
.sns-share--facebook {
  padding: 0 8px;
  border-radius: 3px;
  background-color: #1877F2;
}
.sns-share--facebook:hover {
  background-color: #166FE5;
}
.sns-share--facebook::before {
  width: 14px;
  height: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23fff' d='M16 8.05A8 8 0 1 0 6.75 15.95V10.3H4.72V8.05h2.03V6.27c0-2 1.2-3.12 3.03-3.12.88 0 1.8.16 1.8.16v1.97h-1.01c-1 0-1.31.62-1.31 1.26v1.51h2.22l-.35 2.25H9.26v5.65A8 8 0 0 0 16 8.05z'/%3E%3C/svg%3E");
}
.sns-share--x {
  padding: 0 12px 0 10px;
  border-radius: 9999px;
  background-color: #0F1419;
  font-size: 13px;
}
.sns-share--x:hover {
  background-color: #272C30;
}
.sns-share--x::before {
  width: 13px;
  height: 13px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23fff' d='M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
 * フッター: cloudsecure シール (元 JS が挿入していた seal.cgi 画像 + 証明ページへのリンク)
 * 元サイトでは全幅で 150×58 のまま (common.css の .footer__guide-content img の高さ指定で縮ませない)
 * ---------------------------------------------------------- */
.footer__guide-content .cloudsecure-seal-link {
  display: block;
  flex-shrink: 0;
  line-height: 0;
}
.footer__guide-content img.cloudsecure-seal {
  width: 150px;
  height: 58px;
  max-width: none;
  flex-shrink: 0;
}
