@charset "utf-8";
/*
Template: yswallow
Theme Name: swallow_custom
Theme URI:https://open-cage.com/swallow/
Description: OPENCAGE「スワロー」の子テーマ
Version: 1.1.0
*/


/* ============================================================
   Lightning テーマ 追加CSS
   対象：トップページ装飾・ヘッダー・フッター・レスポンシブ
   貼り付け先：外観 → カスタマイズ → 追加CSS
   ============================================================ */


/* ============================================================
   1. CSS変数（キーカラー・コンテナ幅）
      ※カスタマイザーで色設定している場合は動的CSSで上書きされるため不要
      　独自テーマや別テーマで使う場合にここで定義する
   ============================================================ */
:root {
  --vk-color-primary:      #337ab7;
  --vk-color-primary-dark: #2e6da4;
  --color-key:             #337ab7;
  --color-key-dark:        #2e6da4;
  --color-footer-border:   rgba(0, 0, 0, 0.15);

  /* コンテナ幅（モバイルファースト：デフォルトは100%） */
  --vk-width-container:         100%;
  --vk-width-container-padding: 15px;

  /* 2カラム時の比率 */
  --vk-width-col-2-main: 66.6%;
  --vk-width-col-2-sub:  calc(var(--vk-width-container) * 0.27);
}

/* ブレークポイントごとのコンテナ幅（Bootstrapと同じ値） */
@media (min-width: 576px)  { :root { --vk-width-container: 540px;  } }
@media (min-width: 768px)  { :root { --vk-width-container: 720px;  } }
@media (min-width: 992px)  { :root { --vk-width-container: 960px;  } }
@media (min-width: 1200px) { :root { --vk-width-container: 1140px; } }


/* ============================================================
   2. トップページ（固定ページ指定時）のレイアウト
      ・サイドバーを非表示にして1カラム全幅にする
      ・コンテンツ上下の余白をゼロにする（LP的な見た目）
   ============================================================ */

/* トップページのサイドバーを非表示 */
.home .subSection,
.home .sideSection {
  display: none;
}

/* トップページのメインエリアを全幅に */
.home .mainSection {
  width: 100%;
  float: none;
  margin-bottom: 0;
}

/* トップページのコンテンツ上下余白をゼロに（LP風） */
.home .siteContent {
  padding-top: 0;
  padding-bottom: 0;
}

/* ページヘッダー（タイトル帯）・パンくずリストをトップページでは非表示 */
.home .page-header,
.home .breadSection {
  display: none;
}


/* ============================================================
   3. ヘッダー
   ============================================================ */

/* ヘッダー全体 */
.siteHeader {
  width: 100%;
  position: relative;
  z-index: 1000;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  margin-bottom: 0;
  min-height: 46px;
  border: none;
  border-radius: 0;
}

/* ヘッダー内コンテナの上下パディング（モバイル） */
.siteHeader .container {
  padding-top: 5px;
  padding-bottom: 4px;
}

/* ロゴエリア */
.siteHeader_logo {
  display: inline-block;
  height: auto;
  padding: 5px 0;
  margin: 0;
  font-size: 32px;
  line-height: 1.5em;
  white-space: inherit;
}
.siteHeader_logo a {
  color: #333;
  text-decoration: none;
}
.siteHeader_logo a:hover {
  color: var(--vk-color-primary);
  text-decoration: none;
}
.siteHeader_logo img {
  max-height: 40px;
  display: block;
}

/* PC：ロゴ左・ナビ右のレイアウト */
@media (min-width: 1200px) {
  .siteHeader_logo {
    float: left;
  }
  .siteHeader_logo img {
    max-height: 50px;
  }
  .gMenu_outer {
    right: 0;
    float: right;
    width: auto;
    min-height: 4em;
    display: table;
  }
  .gMenu {
    right: 0;
    margin: 0;
    float: right;
  }
  .gMenu_outer nav {
    display: table-cell;
    vertical-align: middle;
  }
  .siteHeader .container {
    padding-top: 16px;
    padding-bottom: 14px;
  }
}

/* タブレット：ロゴ中央寄せ */
@media (max-width: 1199.98px) {
  .siteHeader_logo {
    width: 100%;
    text-align: center;
  }
  .siteHeader_logo img {
    margin-left: auto;
    margin-right: auto;
  }
  .gMenu_outer nav {
    text-align: center;
  }
  .gMenu {
    display: inline-flex;
    margin: 0 auto;
  }
}

/* スマホ：ロゴ中央・グローバルナビを非表示（モバイルナビに任せる） */
@media (max-width: 991.98px) {
  .siteHeader_logo {
    font-size: 1.6rem;
    float: inherit;
    text-align: center;
    display: block;
    margin: 0 auto;
    padding: 0 45px; /* ハンバーガーボタン分の余白 */
  }
  .siteHeader_logo img {
    display: block;
    margin: 0 auto;
  }
  .gMenu_outer {
    display: none;
  }
}


/* ============================================================
   4. フッター
   ============================================================ */

/* フッター全体 */
.siteFooter {
  display: block;
  overflow: hidden;
  border-top: 3px solid var(--vk-color-primary);
  background-color: #f9f9f9;
}

/* フッターリンクのアンダーライン制御 */
.siteFooter a:where(:not(:is(.btn, .wp-block-button__link))) {
  text-decoration: underline;
}
.siteFooter a:where(:not(:is(.btn, .wp-block-button__link))):hover {
  text-decoration: none;
}
.siteFooter li > a {
  text-decoration: none;
}
.siteFooter li > a:hover {
  text-decoration: underline;
}

/* フッターナビゲーション */
.footerMenu li {
  margin-bottom: 0;
  font-size: 14px;
}

/* PC：フッターナビを横並び */
@media (min-width: 768px) {
  .footerMenu ul {
    margin: 12px 0 10px;
  }
  .footerMenu li {
    float: left;
  }
  .footerMenu li a {
    border-left: 1px solid var(--color-footer-border, #ccc);
    padding: 0 1em;
  }
  .footerMenu li:last-child a {
    border-right: 1px solid var(--color-footer-border, #ccc);
  }
}

/* スマホ：フッターナビを縦並び */
@media (max-width: 767px) {
  .footerMenu .nav {
    display: unset;
  }
  .footerMenu li {
    float: none;
    display: block;
    overflow: hidden;
    padding: 0.5em 0;
    border-bottom: 1px solid var(--color-footer-border, #ccc);
  }
  .footerMenu li:last-child {
    border-bottom: none;
  }
}

/* コピーライトエリア */
.copySection {
  border-top: 1px solid var(--color-footer-border, #ccc);
}
.copySection p {
  font-size: 12px;
  margin: 0 15px 5px;
}

/* フッターウィジェット内の見出し下線 */
.siteFooter .subSection-title {
  border-bottom: 1px solid var(--color-footer-border, #ccc);
}
.siteFooter .widget_archive ul li a,
.siteFooter .widget_categories ul li a,
.siteFooter .widget_nav_menu ul li a,
.siteFooter .widget_pages ul li a,
.siteFooter .widget_recent_entries ul li a {
  border-bottom: 1px solid var(--color-footer-border, #ccc);
}


/* ============================================================
   5. コンテンツ幅・コンテナ共通
   ============================================================ */

/* セクションボックス（フッター上のウィジェットエリアなど） */
.sectionBox {
  padding-top: 2em;
  padding-bottom: 2em;
  display: block;
}
.sectionBox::after {
  content: "";
  clear: both;
  display: block;
}

/* メインコンテンツ上下余白（トップページ以外） */
.siteContent {
  padding: 2rem 0;
}
@media (min-width: 768px) { .siteContent { padding: 2.5rem 0; } }
@media (min-width: 992px) { .siteContent { padding: 3rem 0 3.5rem; } }
@media (min-width: 1200px) { .siteContent { padding: 3.5rem 0 4rem; } }

/* 2カラム時のメイン・サイドバー幅（PC） */
@media (min-width: 992px) {
  .mainSection-col-two {
    width: 66.66667%;
    float: left;
  }
  .sideSection-col-two {
    width: calc(33.33333% - 3rem);
    float: right;
  }
  .mainSection-col-one,
  .sideSection-col-one {
    width: 100%;
  }
}

/* スマホ：全幅に戻す */
@media (max-width: 991.98px) {
  .mainSection,
  .sideSection {
    width: 100%;
    flex-basis: unset;
  }
  .mainSection {
    margin-bottom: 2rem;
  }
}

/* PC：ヘッダーの隙間無くす */
@media (min-width: 992px) {
  .site-content,
  .site-main,
  .site-content .container {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}