/* バブルリング 障がい者水泳サポート — プール・ボランティア公式サイトの型に倣った共通スタイル
   実測ベース: コンテナ1100px / 本文900px / 基調色 #00A4CB・#1D84DB・帯 #006AD5・黄 #ffd836 */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html.fs-large { font-size: 18px; }
html.fs-xlarge { font-size: 20px; }
body {
  margin: 0; background: #fff; color: #000; font-size: 16px;
  font-family: "ヒラギノ角ゴシック ProN", "Hiragino Kaku Gothic ProN", 游ゴシック体, "Yu Gothic", YuGothic, "Hiragino Sans", メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
p, a, li { line-height: 2; }
a { color: #009FD9; text-decoration: underline; }
a:hover { text-decoration: none; }
img { max-width: 100%; }
.container { margin-left: auto; margin-right: auto; padding-left: 10px; padding-right: 10px; width: 1100px; max-width: 100%; }
@media only screen and (max-width: 768px) {
  .container { padding-left: 20px; padding-right: 20px; width: auto; }
}
.center-text { text-align: center; }
.pc { display: block; } .tb { display: none; }
@media only screen and (max-width: 768px) { .pc { display: none !important; } .tb { display: block; } }

/* ---------- ロゴ ---------- */
.logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; line-height: 1.25; }
.logo .logo-name { font-weight: bold; font-size: 22px; letter-spacing: 0.08em; }
.logo .logo-sub { display: block; font-size: 11px; letter-spacing: 0.14em; font-weight: bold; }
.logo.on-dark { color: #fff; }
.logo.on-light { color: #006AD5; }
.logo.on-light .logo-sub { color: #00A4CB; }

/* ---------- スライドメニューボタン ---------- */
.slidemenu-btn {
  position: fixed; top: 34px; right: 100px; width: 190px; z-index: 9999; cursor: pointer;
  background: #fff; border: 1px solid #1D84DB; border-radius: 40px; color: #1D84DB;
  font-size: 16px; font-weight: bold; letter-spacing: 0.2em; padding: 10px 0; text-align: center;
  box-shadow: 0 3px 6px rgba(0,0,0,0.16); font-family: inherit;
}
.slidemenu-btn .close-txt { display: none; }
body.open .slidemenu-btn .menu-txt { display: none; }
body.open .slidemenu-btn .close-txt { display: inline; }
@media only screen and (max-width: 768px) {
  .slidemenu-btn { top: 15px; right: 15px; width: 110px; padding: 6px 0; font-size: 14px; }
}

/* ---------- スライドメニュー（全面） ---------- */
body.open { position: fixed; height: 100%; overflow: hidden; width: 100%; }
.slide-menu {
  position: fixed; top: 0; left: 100%; width: 100vw; height: 100%; overflow-y: scroll;
  z-index: 9998; transition: left 0.3s;
}
body.open .slide-menu { left: 0; }
.slide-bg { width: 100%; min-width: 1100px; min-height: 100%; background: linear-gradient(#00C5FF, #1D84DB); }
@media only screen and (max-width: 768px) { .slide-bg { min-width: auto; } }
.slide-bg .logo { margin-top: 35px; margin-bottom: 85px; }
@media only screen and (max-width: 768px) { .slide-bg .logo { margin-top: 15px; margin-bottom: 30px; } }
.slide-content { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: stretch; margin-bottom: 100px; }
.slide-content .left-column { width: 300px; }
.slide-content .right-column { width: 673px; }
.slide-content .page-list { list-style: none; margin: 0; padding: 0; }
.slide-content .page-list a { color: #fff; text-decoration: none; font-size: 19px; font-weight: bold; letter-spacing: 0.05em; }
.slide-content .page-list a:hover { text-decoration: underline; }
.slide-content .page-blocks { list-style: none; margin: 0; padding: 0; }
.slide-content .page-blocks > li {
  position: relative; display: flex; align-items: stretch; min-height: 76px; margin-bottom: 14px;
  background: linear-gradient(180deg, #ffffff, #e3f4fb); transition: 0.3s;
}
.slide-content .page-blocks > li:hover { box-shadow: 0 3px 6px rgba(0,0,0,0.16); background: linear-gradient(180deg, #fffdf0, #fdf3c0); }
.slide-content .page-blocks > li > a { position: absolute; inset: 0; z-index: 9; }
.slide-content .page-blocks .img-wrap { width: 144px; flex: none; }
.slide-content .page-blocks .img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.slide-content .page-blocks .txt-box { display: flex; align-items: center; width: 100%; padding: 15px 20px; }
.slide-content .page-blocks .txt-box::after { content: "\203A"; margin-left: auto; font-size: 26px; font-weight: bold; color: #1D84DB; padding-left: 12px; }
.slide-content .page-blocks .ttl { font-size: 19px; font-weight: bold; line-height: 1.5; margin: 0; color: #000; }
.slidemenu-tb { display: none; }
@media only screen and (max-width: 768px) {
  .slide-content { display: none; }
  .slidemenu-tb { display: block; padding-bottom: 60px; }
}
.slidemenu-list01, .slidemenu-list02, .slidemenu-list03 { list-style: none; margin: 0 0 20px; padding: 0; }
.slidemenu-list01 { border-top: 1px solid #fff; margin-bottom: 15px; }
.slidemenu-list01 > li, .slidemenu-list02 > li { border-bottom: 1px solid #fff; }
.slidemenu-list01 a, .slidemenu-list02 a { display: block; color: #fff; text-decoration: none; font-weight: bold; padding: 10px 0; line-height: 1.6; }
.slidemenu-tb { padding-bottom: 70px; }
.menu-fs { color: #fff; margin: 30px 0 60px; }
.menu-fs .fs-label { font-weight: bold; margin-right: 10px; }

/* 文字サイズ切替ボタン */
.fs-btn {
  font-family: inherit; cursor: pointer; border: 1px solid #1D84DB; background: #fff; color: #1D84DB;
  border-radius: 20px; padding: 4px 16px; font-size: 14px; font-weight: bold; margin-right: 6px;
}
.fs-btn[aria-pressed="true"] { background: #1D84DB; color: #fff; }
.menu-fs .fs-btn { border-color: #fff; background: transparent; color: #fff; }
.menu-fs .fs-btn[aria-pressed="true"] { background: #fff; color: #1D84DB; }

/* ---------- トップ: ヒーロースライダー ---------- */
.fv-wrap { position: relative; height: 100vh; min-height: 560px; overflow: hidden; margin-bottom: 100px; }
.fv-slide { position: absolute; inset: 0; background-position: center; background-size: cover; opacity: 0; transition: opacity 1s; }
.fv-slide.active { opacity: 1; }
.fv-slide .container { position: relative; height: 100%; }
.fv-slide .slide-txt { position: absolute; left: 10px; bottom: 18%; color: #fff; text-shadow: 0 2px 10px rgba(0,40,70,0.55); }
.fv-slide .slide-txt .en { font-family: "Barlow", sans-serif; font-style: italic; font-weight: 700; font-size: 54px; line-height: 1.1; margin: 0 0 9px; letter-spacing: 0.02em; }
.fv-slide .slide-txt .jp { font-size: 30px; font-weight: bold; letter-spacing: 0.1em; margin: 0; line-height: 1.5; }
.fv-slide .slide-txt .txt { margin: 55px 0 0; font-size: 17px; font-weight: bold; line-height: 1.9; max-width: 560px; }
.fv-logo { position: absolute; top: 34px; left: 0; z-index: 5; }
.top-key .key-content { position: relative; height: 100%; }
.top-key h2.catch {
  position: absolute; top: 50%; left: 0; transform: translateY(-50%); margin: 0;
  color: #fff; letter-spacing: 0.1em; font-size: 36px; font-weight: bold; line-height: 1.6;
  text-shadow: 0 2px 10px rgba(0,40,70,0.55);
}
.dots-area { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); z-index: 6; }
.dots-area button { display: block; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; background: transparent; margin: 0 0 12px; padding: 0; cursor: pointer; }
.dots-area button.active { background: #fff; }
.scroll-hint {
  position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 6; color: #fff;
  font-family: "Barlow", sans-serif; font-size: 13px; letter-spacing: 0.3em; text-align: center;
  text-shadow: 0 1px 6px rgba(0,40,70,0.6);
}
@media only screen and (max-width: 768px) {
  .fv-wrap { height: 100svh; min-height: 480px; margin-bottom: 60px; }
  .fv-logo { top: 15px; left: 15px; }
  .fv-slide .slide-txt { left: 20px; right: 20px; bottom: 14%; }
  .fv-slide .slide-txt .en { font-size: 34px; }
  .fv-slide .slide-txt .jp { font-size: 21px; }
  .fv-slide .slide-txt .txt { margin-top: 30px; font-size: 15px; }
  .top-key h2.catch { left: 20px; right: 20px; text-align: center; font-size: 24px; line-height: 1.6; }
  .dots-area { display: none; }
}

/* ---------- トップ: お知らせ ---------- */
.l-main { padding-bottom: 100px; }
@media only screen and (max-width: 768px) { .l-main { padding-bottom: 60px; } }
.news-flex { margin-bottom: 50px; }
.news-left { max-width: 900px; margin: 0 auto; }
@media only screen and (max-width: 768px) {
  .news-flex { margin-bottom: 30px; }
}
.news-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #e8e8e8; }
.news-list > li { border-bottom: 1px solid #e8e8e8; padding: 17px 0; }
.news-list time {
  letter-spacing: 0; line-height: 1.2; margin-right: 20px; color: #333; font-style: italic;
  font-size: 18px; font-weight: 600; font-family: "Barlow", sans-serif;
}
.news-list .tag {
  display: inline-block; background: #1db6db; line-height: 1; min-width: 60px; text-align: center;
  padding: 6px 16px; border-radius: 2em; color: #fff; font-size: 14px; font-weight: bold; vertical-align: 2px;
}
.news-list .news-title { margin-top: 5px; display: block; color: #000; font-weight: bold; text-decoration: none; }
.news-list .news-excerpt { margin: 8px 0 0; color: #333; line-height: 1.8; }
.news-note { color: #333; line-height: 1.9; }
.news-btns { text-align: center; }
.more-btn {
  width: 200px; border: 1px solid #1D84DB; display: inline-block; background: #1D84DB; border-radius: 20px;
  color: #fff; text-decoration: none; letter-spacing: 0.1em; font-weight: bold; transition: 0.3s;
  line-height: 1.5; padding: 7px; text-align: center;
}
.more-btn:hover { color: #1D84DB; background: #fff; }
.news-btns .more-btn { width: 125px; font-size: 14px; letter-spacing: 0.05em; padding: 7px 4px; }
.news-btns .more-btn + .more-btn { margin-left: 20px; }
/* リンク先で色を決める（プール・ボランティア公式の現行ルールに倣う: お問い合わせ系=黄 / ページ移動=青） */
.more-btn[href="contact.html"] { background: #FFD836; border-color: #FFD836; color: #333; }
.more-btn[href="contact.html"]:hover { background: #FFD836; color: #333; opacity: 0.8; }
.cta-area .btn[href="contact.html"], .cta-area .btn[href^="mailto:"] { background: #FFD836; color: #333; }
@media only screen and (max-width: 768px) {
  .news-btns .more-btn { width: 125px; }
  .news-btns .more-btn + .more-btn { margin-left: 10px; }
}

/* ---------- 入口タイル（エントランス） ---------- */
section.entrance-sec { margin-bottom: 85px; }
.entrance-list {
  list-style: none; margin: 0 0 -33px; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-start;
  align-items: stretch; width: calc(100% + 33px);
}
.entrance-list > li { margin: 0 33px 33px 0; width: 338px; }
.entrance-card { position: relative; transition: 0.3s; }
.entrance-card > a { position: absolute; display: block; width: 100%; height: 100%; top: 0; left: 0; z-index: 9; }
.entrance-card .img-wrap { aspect-ratio: 3 / 2; overflow: hidden; }
.entrance-card .img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.entrance-card .txt-box {
  display: flex; justify-content: center; align-items: center; height: 92px; padding: 6px 10px;
  background: linear-gradient(180deg, #f4fbfe, #d9f0fa); transition: 0.3s;
}
.entrance-card .txt { letter-spacing: 0.05em; line-height: 1.4; text-align: center; font-size: 18px; font-weight: bold; margin: 0; color: #000; }
.entrance-card .txt small { font-size: 15px; }
.entrance-card:hover { box-shadow: 0 3px 6px rgba(0,0,0,0.16); }
.entrance-card:hover .txt-box { background: linear-gradient(180deg, #fffdf0, #fdf3c0); }
@media only screen and (max-width: 768px) {
  section.entrance-sec { margin-bottom: 50px; }
  .entrance-list { width: 100%; margin-bottom: -20px; justify-content: space-between; }
  .entrance-list > li { margin: 0 0 20px; width: calc(50% - 10px); }
  .entrance-card .txt-box { height: 80px; }
  .entrance-card .txt { font-size: 16px; }
  .entrance-card .txt small { font-size: 13px; }
}
@media only screen and (max-width: 600px) {
  .entrance-list > li { width: 100%; }
  .entrance-card .txt-box { height: 24.5333vw; }
  .entrance-card .txt { font-size: 4.8vw; }
  .entrance-card .txt small { font-size: 3.9vw; }
}

/* ---------- 共通CTA（common-parts） ---------- */
.common-parts {
  text-align: center; background: linear-gradient(165deg, #00a4cb 0%, #1d84db 55%, #006ad5 100%);
  padding: 60px 20px 80px; color: #fff;
}
.common-parts .ttl { letter-spacing: 0.2em; line-height: 1.5; margin: 0 0 30px; font-size: 30px; font-weight: bold; text-shadow: 0 2px 8px rgba(0,40,70,0.5); }
.common-parts .txt { letter-spacing: 0.1em; margin: 0 0 30px; font-size: 18px; font-weight: bold; line-height: 2; text-shadow: 0 2px 8px rgba(0,40,70,0.5); }
.common-parts .btn-row { font-size: 0; }
.common-parts .btn-row a {
  display: inline-block; background: #ffd836; width: 300px; max-width: 100%; letter-spacing: 0.1em; color: #000;
  text-decoration: none; line-height: 2; padding: 12px; border-radius: 30px; transition: 0.3s;
  font-size: 18px; font-weight: bold; margin: 0 15px 10px;
}
.common-parts .btn-row a:hover { background: rgba(255, 216, 54, 0.8); }
@media only screen and (max-width: 768px) {
  .common-parts { padding: 40px 20px; }
  .common-parts .ttl { margin-bottom: 20px; font-size: 24px; }
  .common-parts .txt { font-size: 16px; margin-bottom: 20px; }
}

/* ---------- 下層: キービジュアル ---------- */
.key-visual { margin-bottom: 160px; position: relative; }
.key-visual .key-bg { background-position: center; background-size: cover; position: absolute; left: 0; top: 0; width: 100%; height: 343px; }
.key-visual .key-content { padding: 20px; position: relative; height: 343px; }
.key-visual .logo { width: auto; }
.key-visual h1 {
  width: 100%; left: 0; bottom: -50px; position: absolute; background: rgba(0, 106, 213, 1);
  line-height: 1.5; text-align: center; color: #fff; letter-spacing: 0.1em;
  padding: 7.5px 15px; font-size: 30px; font-weight: bold; margin: 0;
}
@media only screen and (max-width: 768px) {
  .key-visual { margin-bottom: 100px; }
  .key-visual .key-bg { height: 300px; }
  .key-visual .key-content { height: 300px; padding: 20px 0; }
  .key-visual h1 { font-size: 24px; padding: 9px 15px; bottom: -54px; }
}

/* ---------- 本文（pv-body 相当） ---------- */
.pv-body { padding-bottom: 100px; }
.top-intro { padding-bottom: 10px; }
@media only screen and (max-width: 768px) { .pv-body { padding-bottom: 60px; } }
.pv-body > * { max-width: 900px; margin-left: auto; margin-right: auto; }
.pv-body p { margin: 0 0 1.4em; line-height: 2; }
.pv-body h2 {
  position: relative; margin-top: 70px; margin-bottom: 30px; padding: 12.5px;
  text-align: center; line-height: 1.4; font-size: 28px; font-weight: bold; letter-spacing: 0.1em;
}
.pv-body > h2:first-child, .pv-body > .bk-graybox + h2 { margin-top: 0; }
.pv-body h2::before, .pv-body h2::after {
  content: ""; position: absolute; left: 0; width: 100%; height: 1px;
  background: linear-gradient(to right, rgba(0, 164, 203, 0), #00A4CB, rgba(0, 164, 203, 0));
}
.pv-body h2::before { top: 0; }
.pv-body h2::after { bottom: 0; }
.pv-body h3 {
  position: relative; margin-top: 50px; margin-bottom: 20px; padding-left: 39px;
  line-height: 1.5; font-size: 24px; font-weight: bold; letter-spacing: 0.1em;
}
.pv-body h3::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 29px; height: 24px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 24'%3E%3Cpath d='M1 8c3-3.4 6-3.4 9 0s6 3.4 9 0 6-3.4 9 0' fill='none' stroke='%2300A4CB' stroke-width='2.6' stroke-linecap='round'/%3E%3Cpath d='M1 16c3-3.4 6-3.4 9 0s6 3.4 9 0 6-3.4 9 0' fill='none' stroke='%231D84DB' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;
}
.pv-body ul, .pv-body ol { margin: 0 0 1.4em; padding-left: 1.6em; }
.pv-body ul > li { list-style-type: disc; }
.pv-body ol > li { list-style-type: decimal; }
.pv-body li { line-height: 1.8; margin-bottom: 0.4em; }
.pv-body table { width: 100%; border-collapse: collapse; margin-bottom: 2em; font-size: 15px; }
.pv-body th, .pv-body td { border: 1px solid #d0d0d0; padding: 10px 14px; vertical-align: top; text-align: left; line-height: 1.7; }
.pv-body th { background: #f8f8f8; font-weight: bold; }
.pv-body table.spec td:first-child { background: #f8f8f8; font-weight: bold; width: 28%; }
.pv-body img.lead-photo { display: block; width: 100%; height: auto; margin: 0 auto 2em; }
.pv-body .note-small { color: #666; font-size: 14px; margin-top: 2rem; }
@media only screen and (max-width: 768px) {
  .pv-body h2 { margin-top: 50px; margin-bottom: 20px; line-height: 1.8; font-size: 22px; }
  .pv-body h3 { padding-left: 30px; font-size: 18px; margin-top: 36px; }
  .pv-body h3::before { width: 22px; height: 18px; }
  .pv-body table { font-size: 14px; }
  .pv-body th, .pv-body td { padding: 8px 10px; }
  .pv-body table.spec td:first-child { width: 34%; }
}

/* ページ内目次（グレーボックス＋アンカーリンク） */
.bk-graybox { padding: 40px; background: #f8f8f8; margin-bottom: 60px; }
@media only screen and (max-width: 768px) { .bk-graybox { padding: 20px; margin-bottom: 40px; } }
.bk-graybox .toc-title { text-align: center; font-weight: bold; letter-spacing: 0.1em; margin: 0 0 20px; font-size: 17px; }
.anchor-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; }
.anchor-links > li { margin: 0 6px 12px; }
.pv-body .anchor-links > li { list-style: none; }
.anchor-links a {
  position: relative; display: flex; align-items: center; justify-content: center; width: 261px; max-width: 100%;
  min-height: 52px; padding: 8px 34px 8px 15px; background: #fff; color: #000; font-weight: bold;
  text-decoration: none; line-height: 1.5; transition: background 0.2s;
}
.anchor-links a::after { content: "▼"; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 12px; color: #00A4CB; }
.anchor-links a:hover { background: #ffd836; }
@media only screen and (max-width: 768px) {
  .anchor-links { justify-content: space-between; }
  .anchor-links > li { width: calc(50% - 5px); margin: 0 0 10px; }
  .anchor-links a { width: 100%; min-height: auto; padding: 8px 30px 8px 12px; font-size: 14px; }
}
@media only screen and (max-width: 480px) {
  .anchor-links > li { width: 100%; }
}

/* ノートボックス */
.note-box { padding: 40px; background: #f8f8f8; margin-bottom: 2em; }
.note-box p { margin: 0; }
.mail-addr { font-weight: bold; letter-spacing: 0.03em; }
@media only screen and (max-width: 768px) { .note-box { padding: 20px; } }

/* 本文中のCTAボタン（ピル型） */
.cta-area { text-align: center; margin: 50px auto 0; }
.cta-area .btn {
  display: inline-block; min-width: 260px; max-width: 100%; box-sizing: border-box;
  padding: 14px 40px; border-radius: 40px; background: #00A4CB; color: #fff;
  font-weight: bold; letter-spacing: 0.1em; line-height: 1.4; text-decoration: none; transition: opacity 0.2s;
  margin: 0 8px 14px;
}
.cta-area .btn:hover { opacity: 0.8; }
@media only screen and (max-width: 768px) {
  .cta-area .btn { width: 100%; min-width: 0; padding: 12px 15px; margin: 0 0 12px; }
}

/* 参加の流れ */
.pv-body ol.flow { list-style: none; padding-left: 0; }
.flow > li { display: flex; gap: 16px; margin-bottom: 24px; }
.flow .f-num {
  flex: none; width: 44px; height: 44px; border-radius: 50%; background: #00A4CB; color: #fff;
  font-family: "Barlow", sans-serif; font-weight: 700; font-size: 20px;
  display: flex; align-items: center; justify-content: center; line-height: 1;
}
.flow .f-body h3 { margin: 4px 0 6px; padding-left: 0; font-size: 19px; letter-spacing: 0.05em; }
.flow .f-body h3::before { display: none; }
.flow .f-body p { margin: 0; }

/* 代表紹介ボックス */
.rep-box { display: flex; gap: 30px; align-items: flex-start; margin-bottom: 2em; }
.rep-box img { width: 200px; flex: none; }
.rep-box .rep-name { font-size: 19px; font-weight: bold; margin: 0 0 10px; }
.rep-box p { margin-bottom: 0.8em; }
@media only screen and (max-width: 768px) {
  .rep-box { flex-direction: column; gap: 15px; }
  .rep-box img { width: 100%; }
}

/* よくある質問 */
.qa { margin-bottom: 2em; }
.qa .q { font-size: 19px; font-weight: bold; color: #00A4CB; letter-spacing: 0.05em; margin: 36px 0 12px; line-height: 1.6; }
.qa:first-of-type .q { margin-top: 0; }
.qa .a p { margin: 0; }

/* ---------- ページ下部（sub-common） ---------- */
.sub-common { background: #ebebeb; }
.sub-common .common-inner {
  display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 20px 0;
}
.sub-common .toppage-btn { margin-bottom: 15px; }
.toppage-btn {
  display: inline-block; border-radius: 20px; text-decoration: none; font-weight: bold; letter-spacing: 0.1em;
  line-height: 2; font-size: 16px; padding: 3px; text-align: center; width: 240px;
  border: 1px solid #333; background: #333; color: #fff; transition: 0.3s;
}
.toppage-btn:hover { color: #333; background: #fff; }
.bread-crumb { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; font-size: 14px; }
.bread-crumb li { line-height: 1.8; }
.bread-crumb a { color: #000; text-decoration: none; }
.bread-crumb a:hover { text-decoration: underline; }
.bread-crumb li + li::before { content: "＞"; margin: 0 8px; color: #666; }
@media only screen and (max-width: 768px) {
  .sub-common .common-inner { display: block; text-align: center; }
}

/* ---------- フッター ---------- */
footer { padding: 80px 0 0; background: #fff; }
footer .f-flex { display: flex; justify-content: space-between; align-items: flex-start; }
footer .f-main { }
footer .logo { margin-bottom: 22px; }
footer .address { margin: 0 0 10px; line-height: 1.6; }
footer .f-tel { margin: 0 0 10px; }
footer .f-tel a { color: #000; text-decoration: none; font-weight: bold; letter-spacing: 0.05em; }
footer .f-mail { margin: 0 0 20px; }
footer .f-mail a { color: #000; text-decoration: none; font-weight: bold; letter-spacing: 0.05em; }
footer .f-mail a:hover, footer .f-tel a:hover { text-decoration: underline; }
footer .fs-box { font-size: 14px; }
footer .fs-box .fs-label { font-weight: bold; margin-right: 8px; }
footer .site-map { display: flex; justify-content: flex-end; align-items: stretch; }
footer .page-list01 { list-style: none; margin: 0; padding: 0 20px 0 0; margin-right: 20px; border-right: #dedede 1px solid; }
footer .page-list01 a { color: #000; font-weight: 500; line-height: 2; text-decoration: none; }
footer .page-list01 a:hover { text-decoration: underline; }
footer .page-list02 { list-style: none; margin: 0; padding: 0; }
footer .page-list02 a { display: block; margin-bottom: 15px; text-decoration: none; color: #000; font-weight: 500; line-height: 1.6; }
footer .page-list02 a:hover { text-decoration: underline; }
.f-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 40px; padding-bottom: 30px; }
.bottom-link a { text-decoration: none; color: #000; }
.bottom-link a:hover { text-decoration: underline; }
.copyright { font-weight: bold; font-family: "Barlow", sans-serif; margin: 0; }
@media only screen and (max-width: 768px) {
  footer { text-align: center; padding: 40px 0 0; }
  footer .f-flex { display: block; }
  footer .logo { width: auto; margin: 0 auto 15px; justify-content: center; display: inline-flex; }
  footer .site-map { display: none; }
  .f-bottom { display: block; text-align: center; }
  .bottom-link { margin-bottom: 10px; }
  .bottom-link a { display: block; }
}
.page-top {
  position: fixed; right: 0; bottom: 0; width: 50px; height: 50px; z-index: 9990; cursor: pointer;
  background: #1D84DB; color: #fff; border: none; font-size: 20px; line-height: 1; transition: 0.3s; padding: 0;
}
.page-top:hover { box-shadow: 0 3px 6px rgba(0,0,0,0.16); }
