/* Old pvnpotheme import.css, rules for the top page only (PurgeCSS, minus frame.css) */
header, section {
  display: block
}

button {
  color: inherit;
  font: inherit;
  margin: 0;
  padding: 4px 6px;
  border: 1px solid #ccc;
  border-radius: 4px;
  outline: none
}

 button {
  -webkit-appearance: none
}

button {
  overflow: visible;
  background-color: transparent;
  border-radius: 0;
  border: none
}

button {
  text-transform: none
}

button {
  -webkit-appearance: none;
  cursor: pointer
}

button[disabled] {
  cursor: default
}

button::-moz-focus-inner {
  border: 0;
  padding: 0
}

div, ul, li, h2, h3, p {
  margin: 0;
  padding: 0
}

 h2, h3 {
  line-height: normal;
  font-weight: normal
}

.mb10 {
  margin-bottom: 10px !important
}

.mb50 {
  margin-bottom: 50px !important
}

.mb80 {
  margin-bottom: 80px !important
}

.mb85 {
  margin-bottom: 85px !important
}

.mb100 {
  margin-bottom: 100px !important
}

.f18px {
  font-size: 18px !important
}

.fade, .top-key .sns-btns img {
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
  opacity: 1;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden
}

.fade:hover, .top-key .sns-btns img:hover {
  opacity: 0.7
}

.left-box {
  float: left !important
}

.right-box {
  float: right !important
}

.bold {
  font-weight: bold
}

@media only screen and (max-width: 768px) {

  .mb30-tb {
    margin-bottom: 30px !important
  }

  .mb50-tb {
    margin-bottom: 50px !important
  }

  .mb60-tb {
    margin-bottom: 60px !important
  }

  .f16px-tb {
    font-size: 16px !important
  }
}

@media only screen and (max-width: 768px) {
  .pc, .fv-wrap .dots-area {
    display: none !important
  }
}

@media only screen and (min-width: 769px) {
  .tb {
    display: none !important
  }
}

@media only screen and (max-width: 768px) {
  .float > .left-box {
    float: none !important;
    width: 100% !important
  }

  .float > .right-box {
    float: none !important;
    width: 100% !important
  }

   .float > [class*=" ml"] {
    margin-left: 0 !important
  }
}

@media only screen and (min-width: 769px) {

  .float > [class^="mb"], .float > [class*=" mb"] {
    margin-bottom: 0 !important
  }
}

.float:before, .float:after {
  content: " ";
  display: table
}

.float:after {
  clear: both
}

@media only screen and (max-width: 480px) {

   .float > [class*=" ml"] {
    margin-left: 0 !important
  }
}

@media only screen and (min-width: 769px) {

  .float > [class^="mb"], .float > [class*=" mb"] {
    margin-bottom: 0 !important
  }
}

@media print {
  .tb {
    display: none !important
  }
}

.slick-dots {
  list-style: none;
  display: block;
  text-align: center;
  padding: 0;
  margin: 0 auto 20px;
  width: 10px
}

.slick-dots li {
  position: relative;
  width: 10px;
  padding: 0;
  cursor: pointer
}

.slick-dots li button {
  margin: 10px 0;
  border: 0;
  background: #fff;
  display: block;
  height: 10px;
  width: 10px;
  border-radius: 50%;
  outline: none;
  line-height: 0px;
  font-size: 0px;
  color: transparent;
  padding: 5px;
  cursor: pointer
}

.slick-dots li.slick-active button {
  background: #FF6200
}

.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent
}

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0
}

.slick-list:focus {
  outline: none
}

.slick-slider .slick-track, .slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0)
}

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto
}

.slick-track:before, .slick-track:after {
  content: "";
  display: table
}

.slick-track:after {
  clear: both
}

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none
}

.slick-slide img {
  display: block
}

.slick-initialized .slick-slide {
  display: block
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent
}

h3.top {
  text-align: center;
  line-height: 1.3;
  margin-bottom: 25px;
  font-style: italic;
  font-size: 70px;
  font-weight: 500;
  font-family: "Roboto", sans-serif
}

@media only screen and (max-width: 768px) {
  h3.top {
    font-size: 50px;
    margin-bottom: 20px
  }
}

h3:not(.top) {
  margin-bottom: 30px;
  text-align: center;
  position: relative;
  line-height: 1.4;
  padding: 12.5px;
  font-size: 28px;
  font-weight: bold
}

h3:not(.top):before, h3:not(.top):after {
  left: 0;
  content: "";
  height: 1px;
  width: 100%;
  position: absolute;
  background: -webkit-gradient(linear, left top, right top, from(rgba(0, 164, 203, 0)), color-stop(#00A4CB), to(rgba(0, 164, 203, 0)));
  background: linear-gradient(to right, rgba(0, 164, 203, 0), #00A4CB, rgba(0, 164, 203, 0))
}

h3:not(.top):before {
  top: 0
}

h3:not(.top):after {
  bottom: 0
}

@media only screen and (max-width: 768px) {
  h3:not(.top) {
    line-height: 1.8;
    margin-bottom: 20px;
    font-size: 22px
  }
}

 .entrance-card {
  position: relative
}

 .entrance-card > a {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 9
}

body.first {
  position: fixed;
  width: 100%;
  height: 100%
}

.fv-area {
  height: 400px;
  margin-bottom: 100px
}

.fv-wrap {
  position: relative;
  z-index: 999;
  -webkit-transition: 1s;
  transition: 1s;
  margin-bottom: 100px;
  overflow: hidden;
  height: 400px
}

@media only screen and (max-width: 768px) {
  .fv-wrap {
    height: 375px
  }
}

body.first .fv-wrap {
  height: 100vh
}

.fv-wrap .dots-area {
  position: absolute;
  left: 20px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%)
}

.fv-slider {
  -webkit-transition: 1s;
  transition: 1s;
  width: 100%;
  min-height: 640px;
  height: 400px
}

body.first .fv-slider {
  height: 100vh
}

.fv-item {
  background-position: center;
  background-size: cover;
  width: 100%
}

.fv-item .slide-container {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100vh;
  min-height: 640px
}

.fv-item .slide-txt .en {
  margin-bottom: 9px
}

.fv-item .slide-txt .txt {
  margin-top: 55px
}

@media only screen and (max-width: 768px) {
  .fv-item .slide-container {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    margin: 0 -20px;
    padding: 90px 20px 0
  }

  .fv-item .slide-txt {
    position: relative;
    z-index: 10
  }

  .fv-item .slide-txt .en {
    margin-bottom: 0
  }

  .fv-item .slide-txt .txt {
    margin-top: 30px
  }
}

@media only screen and (max-width: 768px) {
  .overlay-tb {
    position: relative
  }

  .overlay-tb:after {
    content: "";
    background: #006ad5;
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 1;
    opacity: 0.25
  }
}

.slide01 {
  position: relative
}

.slide01 .logo {
  width: 174px;
  position: absolute;
  top: 34px;
  left: 100px
}

.slide01 .slide-txt {
  width: 861px
}

@media only screen and (max-width: 768px) {
  .slide01 {
    background-position-x: 63%
  }

  .slide01 .slide-container {
    padding-top: 0;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center
  }

  .slide01 .logo {
    top: 16px;
    left: 16px;
    width: 100px
  }

  .slide01 .slide-txt {
    width: 100%
  }
}

.slide02 .en {
  width: 305px
}

.slide02 .jp {
  width: 304px
}

.slide02 .txt {
  width: 458px
}

@media only screen and (max-width: 768px) {
  .slide02 {
    background-position: 67% center
  }

  .slide02 .en {
    width: 221px
  }

  .slide02 .jp {
    width: 167px
  }

  .slide02 .txt {
    width: 262px
  }
}

.slide03 .en {
  width: 384px
}

.slide03 .jp {
  width: 260px
}

.slide03 .txt {
  width: 517px
}

@media only screen and (max-width: 768px) {
  .slide03 {
    background-position-x: 60%
  }

  .slide03 .en {
    width: 279px
  }

  .slide03 .jp {
    width: 143px
  }

  .slide03 .txt {
    width: 296px
  }
}

.slide04 .en {
  width: 348px
}

.slide04 .jp {
  width: 207px
}

.slide04 .txt {
  width: 600px
}

@media only screen and (max-width: 768px) {
  .slide04 {
    background-position-x: 35%
  }

  .slide04 .en {
    width: 253px
  }

  .slide04 .jp {
    width: 114px
  }

  .slide04 .txt {
    width: 343px
  }
}

.slide05 .en {
  width: 265px
}

.slide05 .jp {
  width: 568px
}

@media only screen and (max-width: 768px) {
  .slide05 .slide-container {
    padding-top: 0;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center
  }

  .slide05 .en {
    width: 192px
  }

  .slide05 .jp {
    width: 312px
  }
}

.top-key {
  background: 75% center / cover;
  margin-bottom: 90px;
  position: relative
}

.top-key .key-content {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 400px;
  position: relative
}

.top-key .logo {
  position: absolute;
  width: 110px;
  top: 34px;
  left: 0
}

.top-key h2 {
  color: #fff;
  letter-spacing: 0.1em;
  font-size: 36px;
  font-weight: bold
}

.top-key .sns-btns {
  position: absolute
}

@media only screen and (min-width: 769px) {
  .top-key .sns-btns {
    right: 37px;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%)
  }

  .top-key .sns-btns > p {
    width: 25px
  }

  .top-key .sns-btns > p:not(:last-child) {
    margin-bottom: 15px
  }
}

@media only screen and (max-width: 768px) {
  .top-key .sns-btns {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    bottom: 20px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    z-index: 10
  }

  .top-key .sns-btns > p {
    width: 25px
  }

  .top-key .sns-btns > p:not(:last-child) {
    margin-right: 15px
  }
}

@media only screen and (max-width: 768px) {
  .top-key .key-content {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0 -20px;
    padding: 0 20px;
    height: 375px;
    position: relative
  }

  .top-key .key-content:after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    pointer-events: none;
    background: #006ad5;
    opacity: 0.3;
    z-index: 1
  }

  .top-key h2 {
    text-align: center;
    font-size: 24px;
    line-height: 1.6;
    position: relative;
    z-index: 10
  }

  .top-key .logo {
    z-index: 10;
    top: 15px;
    left: 15px
  }
}

@media only screen and (max-width: 768px) {
  .list-wrap {
    margin-bottom: 40px
  }
}

.entrance-list {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: calc(100% + 33px);
  margin-bottom: -33px
}

.entrance-list > li {
  margin: 0 33px 33px 0;
  width: 338px
}

@media only screen and (max-width: 768px) {
  .entrance-list {
    width: 100%;
    margin-bottom: -20px;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between
  }

  .entrance-list > li {
    margin: 0 0 20px;
    width: calc(50% - 10px)
  }
}

@media only screen and (max-width: 600px) {
  .entrance-list > li {
    width: 100%
  }
}

.entrance-card {
  -webkit-transition: 0.3s;
  transition: 0.3s
}

.entrance-card .txt-box {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 92px;
  background: url(/pv/theme/pool_volunteer/media/img/txt_bg01.png) no-repeat center/cover;
  -webkit-transition: 0.3s;
  transition: 0.3s
}

.entrance-card .txt {
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-align: center;
  font-size: 18px;
  font-weight: bold
}

.entrance-card:hover {
  -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16)
}

.entrance-card:hover .txt-box {
  background-image: url(/pv/theme/pool_volunteer/media/img/txt_bg01_y.png)
}

@media only screen and (max-width: 768px) {
  .entrance-card .txt-box {
    height: 80px
  }

  .entrance-card .txt {
    font-size: 16px
  }
}

@media only screen and (max-width: 600px) {
  .entrance-card .txt-box {
    height: 24.5333vw
  }

  .entrance-card .txt {
    font-size: 4.8vw
  }
}

.other-pages {
  font-size: 0;
  text-align: right
}

.other-pages > li {
  display: inline-block;
  margin-left: 35px
}

.other-pages a {
  color: #000;
  font-weight: 500;
  font-size: 16px
}

@media only screen and (min-width: 769px) {
  .other-pages {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%)
  }
}

@media only screen and (max-width: 768px) {
  .other-pages {
    text-align: left
  }

  .other-pages > li {
    display: inline-block;
    margin: 0;
    min-width: 110px
  }
}

.news-list {
  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: #1d84db;
  line-height: 1;
  min-width: 60px;
  text-align: center;
  padding: 6px 16px;
  border-radius: 2em;
  color: #fff;
  font-size: 14px;
  font-weight: bold
}

.news-list .tag.-news {
  background: #1db6db
}

.news-list .tag.-media {
  background: #dbcc1d
}

.news-list a {
  margin-top: 5px;
  display: block;
  color: #000;
  font-weight: 500
}

.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;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  line-height: 1.5;
  padding: 7px
}

.more-btn:hover {
  color: #1D84DB;
  background: #fff
}

.bk-graybox {
  padding: 40px;
  background: #f8f8f8
}

@media only screen and (max-width: 768px) {
  .bk-graybox {
    padding: 20px
  }
}

h3 {
  letter-spacing: 0.1em
}


/* Edit 3-22 */


/* Edit 2022.04.26 */

/* Edit 2022.06.14 */

/* Edit 2022.09.09 */

/*-----------------*/


/*#gallery-2 {*/
/*  display: grid;*/
/*  grid-auto-columns: 33% 33% 33%;*/
/*  column-gap: 1%;*/
/*}*/
/*#gallery-2 dl.gallery-item {*/
/*  float: none;*/
/*  width: 100%;*/
/*}*/

/* 2026/10/25 MT：スライドが終わった状態（最後の1枚 .top-key）の高さを下層ページのヘッダー（body.css の .key-visual）と同じにし、下の余白を詰める
   旧は 400px／スマホ 375px、下の余白 100px。スライド中（body.first）は 100vh のまま */
.fv-area, .fv-wrap, .fv-slider, .top-key .key-content { height: 270px; }
.fv-area { margin-bottom: 40px; }
.fv-wrap { margin-bottom: 0; }
body:not(.first) .fv-slider { min-height: 0; }
@media only screen and (max-width: 768px) {
  .fv-area, .fv-wrap, .fv-slider, .top-key .key-content { height: 200px; }
}
/* 高さを縮めるとロゴと見出しが重なるので、ロゴを下層ページと同じ上20pxにし、見出しを下げる。スマホはロゴを90pxにする */
.top-key .logo { top: 20px; }
.top-key h2 { margin-top: 50px; }
@media only screen and (max-width: 768px) {
  .top-key .logo { top: 12px; width: 90px; }
  .top-key h2 { margin-top: 30px; }
  .top-key .sns-btns { bottom: 12px; }
}
@media only screen and (max-width: 374px) {
  .top-key h2 { font-size: 20px; }
}
/* トップのお知らせ（新しい2件）：タイトルは太字、本文の冒頭は2行まで（2026/10/25 MT） */
.news-list a { font-weight: bold; }
.news-list .news-excerpt {
  margin: 8px 0 0;
  color: #333;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

/* 2026/10/25 MT：Facebook の埋め込み（ヘッダーだけ出ていた）を、Instagram・YouTube と同じ形のバナーに */
.fb-bnr a { display: flex; align-items: center; justify-content: center; gap: 10px; aspect-ratio: 676 / 160; background: #1877F2; border-radius: 4px; color: #fff; font-size: 18px; font-weight: bold; letter-spacing: 0.05em; text-decoration: none; }
.fb-bnr svg { width: 26px; height: 26px; }
/* メニュー下の「お知らせ」「お問い合わせ」をボタンにして中央へ */
.other-pages { text-align: center; transform: none; -webkit-transform: none; margin-top: 10px; }
.other-pages > li { display: inline-block; margin: 0 10px 10px; min-width: 0; }
.other-pages a.more-btn { font-size: 16px; color: #fff; }
.other-pages a.more-btn:hover { color: #1D84DB; }
@media (max-width:768px){ .other-pages > li { margin: 0 4px 10px; } .other-pages a.more-btn { width: 120px; font-size: 14px; } }


/* お問い合わせのボタンを、お知らせ一覧の右に並べる（2026/10/25 MT。入り口の一覧の下の2つは外した） */
.news-btns .more-btn + .more-btn { margin-left: 20px; }
@media (max-width:768px){ .news-btns .more-btn { width: 125px; font-size: 14px; letter-spacing: 0.05em; padding: 7px 4px; } .news-btns .more-btn + .more-btn { margin-left: 10px; } }

/* 入り口の一覧と「活動を支援する」の間を詰める（2026/10/25 MT。旧は一覧の下85px＋本文の下100px） */
body.top section.mb85 { margin-bottom: 0 !important; }
body.top .l-main { padding-bottom: 60px; }
@media (max-width:768px){ body.top .l-main { padding-bottom: 30px; } }


/* LINE の友だち追加のバナー（Facebook の上。2026/10/25 MT）。形は .fb-bnr と同じ */
.line-bnr a { display: flex; align-items: center; justify-content: center; gap: 10px; aspect-ratio: 676 / 160; background: #06C755; border-radius: 4px; color: #fff; font-size: 18px; font-weight: bold; letter-spacing: 0.05em; text-decoration: none; }
.line-bnr svg { width: 28px; height: 28px; }


/* SNSの4つのバナーの高さを、それぞれ5pxずつ低くする（2026/10/25 MT。元は幅×160/676＝PC 80px）。
   幅は右の欄に合わせて変わるので、右の欄をコンテナにして幅から高さを出す。画像は上下2.5pxずつ切る */
.right-box:has(> .fb-bnr) { container-type: inline-size; }
.fb-bnr a, .line-bnr a { aspect-ratio: auto; height: calc(100cqw * 160 / 676 - 5px); }
.ins-bnr img, .yb-bnr img { display: block; width: 100%; height: calc(100cqw * 160 / 676 - 5px); object-fit: cover; border-radius: 4px; }
