/* ==========================================================================
   JGA 静的ページ用 ヘッダー・フッター（子テーマ jga-swell-child と同じ見た目）
   自動抽出元：wp-content/themes/jga-swell-child/assets/css/jga-top.css
   ・すべて .jga-header / .jga-drawer / .jga-footer / .jga-pageTop の中だけに効く
   ・旧 hr_style.css（.l-header / .l-footer / .l-hamburger / .p-pageTop）とは
     クラス名・ID を分けてあるので衝突しない。本文には一切影響しない
   ========================================================================== */
.jga-header, .jga-drawer, .jga-footer, .jga-pageTop {
  
  --c-brand: #2387ef;          
  --c-brand-strong: #1a6fc9;
  --c-brand-deep: #004a8f;     
  --c-navy: #00182f;           
  --c-navy-2: #002e59;         

  
  --c-ink: #10202f;
  --c-body: #46525e;
  --c-muted: #63707c;      
  --c-line: #d6dde4; /* 区切り線は1色に統一（2026-11） */
  --c-line-strong: #d6dde4;
  --c-soft: #f4f7fa;           
  --c-white: #ffffff;

  
  --f-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Meiryo", メイリオ, sans-serif;
  --f-en: "Noto Sans JP", "Helvetica Neue", Arial, "Yu Gothic", "YuGothic", "Meiryo", sans-serif;

  
  --w-container: 1200px;
  --w-wide: 1400px;
  --header-h: 84px;
  --pad-x: clamp(20px, 5vw, 60px);
  --sec-y: 120px;              

  --radius: 4px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* --- hr_style.css のリセット（font-weight:bold / a の色 / img の block 等）を部品内だけ打ち消す --- */
.jga-header, .jga-drawer, .jga-footer {
  font-family: var(--f-jp);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.32px;   /* 子テーマでは body(16px) の 0.02em を継承 */
  text-align: left;
  color: var(--c-body);
  font-feature-settings: "palt" 1;
}
@media screen and (max-width: 620px) {
  .jga-header, .jga-drawer, .jga-footer { font-size: 15px; letter-spacing: 0.3px; }
}
.jga-header *, .jga-drawer *, .jga-footer *,
.jga-header *::before, .jga-drawer *::before, .jga-footer *::before,
.jga-header *::after, .jga-drawer *::after, .jga-footer *::after { box-sizing: border-box; }
:where(.jga-header, .jga-drawer, .jga-footer) :is(div, span, p, a, li, ul, ol, nav, small, strong, address, button, img, figure) { font-family: inherit; font-weight: inherit; font-style: normal; font-size: inherit; line-height: inherit; letter-spacing: inherit; }
:where(.jga-header, .jga-drawer, .jga-footer) :is(ul, ol) { margin: 0; padding: 0; list-style: none; }
:where(.jga-header, .jga-drawer, .jga-footer) :is(p, figure, address) { margin: 0; }
:where(.jga-header, .jga-drawer, .jga-footer) a { color: inherit; text-decoration: none; transition: color 0.25s var(--ease); }
:where(.jga-header, .jga-drawer, .jga-footer, .jga-pageTop) * { color: inherit; line-height: inherit; letter-spacing: inherit; }   /* hr_style.css の「* { color / line-height / letter-spacing }」対策 */
:where(.jga-header, .jga-drawer, .jga-footer) img { display: inline; max-width: 100%; height: auto; vertical-align: middle; }
:where(.jga-header, .jga-drawer, .jga-footer, .jga-pageTop) button,
button.jga-hamburger, button.jga-pageTop { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; -webkit-appearance: none; appearance: none; }
body.jga-nav-open { overflow: hidden; }

.jga-header, .jga-drawer { --header-h:84px; }
body.jga-nav-open { overflow: hidden; }
.jga-s-vh {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.jga-s-container {
  width: 100%;
  max-width: var(--w-container);
  margin-inline: auto;
  padding-inline: var(--pad-x);
}
.jga-s-container--wide { max-width: var(--w-wide); }
.jga-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  
  background: #fff;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.jga-header.is-scrolled {
  border-bottom-color: var(--c-line);
  box-shadow: 0 2px 16px rgba(16, 32, 47, 0.06);
}
.jga-header__inner {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 36px);
  height: var(--header-h);
  max-width: var(--w-wide);
  margin-inline: auto;
  padding-inline: var(--pad-x);
  transition: height 0.3s var(--ease);
}
.jga-header.is-scrolled .jga-header__inner { height: 68px; }
.jga-header__logo {
  flex: 0 0 auto;
  display: block;
  width: clamp(178px, 17vw, 224px);
}
.jga-header__logo img { display: block; width: 100%; }
.jga-header__nav { margin-left: auto; }
.jga-header__list {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.6vw, 28px);
}
.jga-header__link {
  position: relative;
  display: block;
  padding: 8px 2px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--c-ink);
  white-space: nowrap;
}
.jga-header__link::after {
  content: "";
  position: absolute;
  left: 0; bottom: 2px;
  width: 0; height: 2px;
  background: var(--c-brand);
  transition: width 0.28s var(--ease);
}
.jga-header__link:hover,
.jga-header__link:focus-visible { color: var(--c-brand); }
.jga-header__link:hover::after,
.jga-header__link:focus-visible::after { width: 100%; }
.jga-header__item--sub { position: relative; }
.jga-header__toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  line-height: inherit;
}
.jga-header__toggle::before {
  content: "";
  order: 2;
  width: 6px; height: 6px;
  margin-top: -3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s var(--ease), margin-top 0.25s var(--ease);
}
/* サービスのドロップダウン用ボタン：テーマ・ブラウザ既定のボタン装飾を消す */
.jga-header__toggle {
  margin: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  color: var(--c-ink);
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.jga-header__subnav[hidden] { display: none; }
.jga-header__subnav ul, .jga-header__subnav { list-style: none; margin-bottom: 0; }
.jga-header__toggle[aria-expanded="true"] { color: var(--c-brand); }
.jga-header__toggle[aria-expanded="true"]::before { margin-top: 3px; transform: rotate(-135deg); }
.jga-header__subnav {
  position: absolute;
  top: calc(100% + 10px);
  left: -20px;
  min-width: 200px;
  padding: 10px 0;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: 2px;
  box-shadow: 0 8px 24px rgba(16, 32, 47, 0.06);
}
.jga-header__subnav a {
  display: block;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: var(--c-ink);
  white-space: nowrap;
}
.jga-header__subnav a:hover,
.jga-header__subnav a:focus-visible { color: var(--c-brand-deep); background: var(--c-soft); }
.jga-header__utils {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.4vw, 22px);
}
.jga-header__lang {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-size: 11px;          
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--c-muted);
}
.jga-header__lang a { color: var(--c-muted); }
.jga-header__lang a:hover { color: var(--c-brand); }
.jga-header__lang [aria-current="true"] { color: var(--c-ink); font-weight: 500; }
.jga-header__lang span[aria-hidden] { color: var(--c-line-strong); }
.jga-header__tel {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  white-space: nowrap;
}
.jga-header__tel small {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--c-muted);
}
.jga-header__tel strong {
  font-family: var(--f-en);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--c-navy);
}
.jga-header__tel:hover strong { color: var(--c-brand); }
.jga-header__cta {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 0 24px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #fff;
  background: var(--c-brand);
  border-radius: 3px;
  white-space: nowrap;
  transition: background-color 0.28s var(--ease);
}
.jga-header__cta:hover,
.jga-header__cta:focus-visible { background: var(--c-brand-strong); color: #fff; }
.jga-hamburger {
  display: none;
  flex: 0 0 auto;
  width: 46px; height: 46px;
  margin-left: auto;
  place-items: center;
}
.jga-hamburger__icon {
  position: relative;
  display: block;
  width: 24px; height: 14px;
}
.jga-hamburger__icon span {
  position: absolute;
  left: 0;
  width: 100%; height: 2px;
  background: var(--c-ink);
  transition: transform 0.3s var(--ease), opacity 0.2s var(--ease);
}
.jga-hamburger__icon span:nth-child(1) { top: 0; }
.jga-hamburger__icon span:nth-child(2) { top: 6px; }
.jga-hamburger__icon span:nth-child(3) { top: 12px; }
.jga-hamburger[aria-expanded="true"] .jga-hamburger__icon span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.jga-hamburger[aria-expanded="true"] .jga-hamburger__icon span:nth-child(2) { opacity: 0; }
.jga-hamburger[aria-expanded="true"] .jga-hamburger__icon span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.jga-drawer {
  position: fixed;
  inset: var(--header-h) 0 0 0;
  z-index: 99;
  display: none;
  padding: 8px var(--pad-x) 48px;
  overflow-y: auto;
  background: #fff;
  opacity: 0;
  transform: translateY(-8px);
  
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s var(--ease), transform 0.28s var(--ease), visibility 0s linear 0.28s;
}
.jga-drawer.is-open {
  opacity: 1;
  transform: none;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.28s var(--ease), transform 0.28s var(--ease), visibility 0s linear 0s;
}
.jga-drawer[hidden] { display: none !important; }
.jga-drawer__list { border-top: 1px solid var(--c-line); }
.jga-drawer__list a {
  position: relative;
  display: block;
  padding: 20px 30px 20px 2px;
  font-size: 17px;
  font-weight: 500;
  color: var(--c-ink);
  border-bottom: 1px solid var(--c-line);
}
.jga-drawer__list a::after {
  content: "";
  position: absolute;
  top: 50%; right: 6px;
  width: 7px; height: 7px;
  border-top: 2px solid var(--c-line-strong);
  border-right: 2px solid var(--c-line-strong);
  transform: translateY(-50%) rotate(45deg);
}
.jga-drawer__list a[data-cta] { color: var(--c-brand); font-weight: 700; }
.jga-drawer__group { border-bottom: 1px solid var(--c-line); }
.jga-drawer__groupLabel {
  display: block;
  padding: 20px 2px 6px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.9;
  color: var(--c-ink);
}
.jga-drawer__sublist { padding: 0 0 12px 16px; }
.jga-drawer__sublist a {
  padding: 10px 30px 10px 2px;
  font-size: 15px;
  border-bottom: 0;
}
.jga-drawer__foot { margin-top: 32px; display: grid; gap: 18px; }
.jga-drawer__tel {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-family: var(--f-en);
  font-size: 24px;
  font-weight: 700;
  color: var(--c-navy);
}
.jga-drawer__tel small {
  font-family: var(--f-jp);
  font-size: 12px;
  font-weight: 400;
  color: var(--c-muted);
}
.jga-footer {
  padding-block: clamp(52px, 6vw, 84px) 28px;
  color: rgba(255, 255, 255, 0.78);
  background: var(--c-navy);
  font-size: 14px;
}
.jga-footer__top {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
  gap: clamp(32px, 4vw, 72px);
  padding-bottom: clamp(32px, 4vw, 52px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.jga-footer__logo { display: block; width: 190px; }
.jga-footer__address { margin-top: 24px; font-style: normal; line-height: 1.95; }
.jga-footer__tel {
  display: inline-block;
  margin-top: 14px;
  font-family: var(--f-en);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #fff;
}
.jga-footer__tel:hover { color: #7db9f6; }
.jga-footer__group {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.jga-footer__group a { display: inline-block; transition: opacity 0.25s var(--ease); }
.jga-footer__group a:hover { opacity: 0.78; }
.jga-footer__group img { display: block; width: 190px; height: auto; }
.jga-footer__address--group { margin-top: 14px; }
.jga-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 24px;
}
.jga-footer__nav a { color: rgba(255, 255, 255, 0.8); }
.jga-footer__nav a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.jga-footer__meta { margin-top: clamp(28px, 3vw, 40px); }
.jga-footer__partnersTitle,
.jga-footer__snsTitle {
  font-size: 11px;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 12px;
}
.jga-footer__partners {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  max-width: 730px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.jga-footer__partners li { flex: 1 1 0; min-width: 0; margin: 0; }
.jga-footer__partners a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 138 / 76;
  padding: 4px 8%;
  background: #fff;
  border-radius: 2px;
  transition: opacity 0.25s var(--ease);
}
.jga-footer__partners a:hover { opacity: 0.78; }
.jga-footer__partners img { display: block; width: 100%; height: 100%; object-fit: contain; }
.jga-footer__partners img[src$=".svg"] { width: 66%; height: auto; max-height: 44%; }
.jga-footer__sns { display: flex; gap: 14px; margin-top: 24px; }
.jga-footer__sns a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  transition: background-color 0.25s var(--ease), border-color 0.25s var(--ease);
}
.jga-footer__sns a:hover { background: rgba(255, 255, 255, 0.12); border-color: #fff; }
.jga-footer__sns img { width: 15px; }
.jga-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
  margin-top: 28px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
}
.jga-footer__bottom a:hover { color: #fff; }
.jga-pageTop {
  position: fixed;
  right: 20px; bottom: 20px;
  z-index: 90;
  width: 46px; height: 46px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--c-navy-2);
  border-radius: 3px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0.3s;
}
.jga-pageTop.is-visible { opacity: 0.92; visibility: visible; transform: none; }
.jga-pageTop:hover { opacity: 1; background: var(--c-brand-deep); }
.jga-pageTop::before {
  content: "";
  width: 9px; height: 9px;
  margin-top: 4px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(-45deg);
}
@media screen and (max-width: 1280px) {
  .jga-header__list { gap: 15px; }
  .jga-header__inner { gap: 14px; }
  .jga-header__link { font-size: 14px; }
  .jga-header__tel strong { font-size: 17px; }
}
@media screen and (max-width: 1100px) {
  .jga-header__nav { display: none; }
  .jga-header__utils { margin-left: auto; }
  .jga-header__lang { display: none; }
  .jga-hamburger { display: grid; margin-left: 4px; }
  .jga-drawer { display: block; }
}
@media screen and (max-width: 900px) {
  .jga-header, .jga-drawer { --header-h:68px; }
  .jga-header__tel { display: none; }
  .jga-footer__top { grid-template-columns: 1fr; }
  .jga-footer__nav { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 620px) {
  .jga-header__logo { width: 150px; }
  .jga-header__cta { min-height: 40px; padding: 0 14px; font-size: 13px; }
  .jga-footer__nav { grid-template-columns: 1fr; }
  .jga-footer__partners { gap: 6px; }
  .jga-footer__partners a { padding: 3px 6%; }
  .jga-pageTop { right: 14px; bottom: 14px; width: 42px; height: 42px; }
}
@media screen and (max-width: 359px) {
  .jga-header__cta { display: none; }
}

/* 現在地のメニュー強調（静的ページ用。$jga['current'] で指定） */
.jga-header__link.is-current { color: var(--c-brand); }
.jga-header__link.is-current::after { width: 100%; }
.jga-drawer__list a[aria-current="page"],
.jga-footer__nav a[aria-current="page"] { color: var(--c-brand); }
.jga-footer__nav a[aria-current="page"] { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

/* 本文の開始位置を新ヘッダーの高さに合わせる（旧ヘッダーは PC 120px／SP 65px 前後だったため、
   各ページ先頭ブロックの margin-top（PC 115px／SP 66〜70px）のままだと PC で白い隙間、SP で数px の重なりが出る）。
   本文のデザイン自体は変えず、先頭ブロックの上余白だけを新ヘッダー（PC 85px／SP 69px）に合わせる。 */
.jga-header ~ main.l-main > :first-child { margin-top: 85px; }
@media screen and (max-width: 900px) {
  .jga-header ~ main.l-main > :first-child { margin-top: 69px; }
}
button.jga-pageTop { background: var(--c-navy-2); color: #fff; }
