@charset "UTF-8";
/* リンク */
a {
  color: #0A67BF;
  text-decoration: underline;
  transition: .2s; }

@media (hover: hover) {
  a:hover {
    text-decoration: none; } }
#no_script {
  position: relative;
  width: 100%;
  background: #c00;
  color: #fff;
  text-align: center;
  padding: 5px 10px;
  margin: 0;
  font-size: 14px;
  z-index: 100; }

/*スマホ・PC振り分け*/
.sp {
  display: none !important; }

.sp_inline {
  display: none !important; }

.sp_only,
.tb_only {
  display: none !important; }

/* structure
====================================================================================================================================== */
html,
body {
  width: 100%; }

html {
  scroll-behavior: smooth;
  height: 100%; }

body {
  overflow-y: scroll;
  overflow-x: hidden;
  min-width: 1100px;
  background-color: #fff;
  color: #111; }

#container {
  width: 100%;
  overflow: hidden; }

.wrapper {
  display: flow-root;
  margin: 0 auto;
  width: 1000px; }
  @media screen and (min-width: 1060px) {
    .wrapper {
      width: auto;
      padding: 0 50px;
      max-width: 1200px; } }

/* 中ページ
====================================================================================================================================== */
#page_title_wrap {
  padding: 0 0 2em;
  animation: item_appear 0.8s ease-out both;
  animation-delay: 0.1s; }
  #page_title_wrap .comment_text {
    margin-top: 0.5em;
    font-size: 0.9rem; }
    #page_title_wrap .comment_text p {
      margin-bottom: 0; }
  #page_title_wrap .update {
    font-size: 0.8rem;
    text-align: right;
    line-height: 1.5;
    margin-bottom: 0; }
    #page_title_wrap .update br {
      display: none; }
  #page_title_wrap .page_title_bottom {
    border-top: 3px solid #BECACC;
    margin-top: 1.5em;
    line-height: 1;
    padding-top: 0.9em;
    font-size: 0.7rem;
    color: #666; }
    #page_title_wrap .page_title_bottom p {
      margin-bottom: 0; }
  #page_title_wrap.subtop {
    padding-bottom: 0; }
    #page_title_wrap.subtop #navibar {
      margin-bottom: 0;
      padding-bottom: 0.5em; }
    #page_title_wrap.subtop .subtop_title_wrap {
      padding: 3em 0;
      border-top: 6px solid #0E6CC4;
      background: linear-gradient(to bottom, rgba(29, 114, 194, 0.15) 0%, transparent 100%);
      position: relative; }
      #page_title_wrap.subtop .subtop_title_wrap:before {
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background: #fff;
        position: absolute;
        left: 0;
        top: 0;
        z-index: -1; }
    #page_title_wrap.subtop .page_title {
      display: flex;
      align-items: center;
      gap: 0.6em; }
      #page_title_wrap.subtop .page_title .icon {
        display: block;
        width: 1.87em; }
        #page_title_wrap.subtop .page_title .icon img {
          width: 100%; }

#navibar {
  margin-bottom: 1.7em; }
  #navibar p {
    font-size: 0.8rem;
    text-align: left;
    line-height: 1.5;
    margin-bottom: 0; }

/* header
====================================================================================================================================== */
#header_top {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  width: 100%;
  border-top: 6px solid #1D72C2; }
  .cms-ready #header_top {
    top: 46px; }
  #header_top .wrapper {
    display: flex;
    justify-content: flex-end;
    gap: 16px; }
    #header_top .wrapper:before {
      display: none !important; }
  #header_top .link_kakuka a {
    display: block;
    border-radius: 0 0 10px 10px;
    background: #1D72C2 url(../images/icon/i_soudan_w.svg) no-repeat left 1.4em center;
    background-size: 1.7em auto;
    font-size: 0.9rem;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    line-height: 1;
    padding: 1em 2.3em 1em 3.8em;
    border: 2px solid transparent !important; }
    #header_top .link_kakuka a:focus {
      outline-color: #000 !important; }

@media (hover: hover) {
  #header_top .link_kakuka a:hover {
    opacity: 0.8; } }
#header {
  padding: 42px 0 13px;
  background: url(../images/bg_yama.webp) no-repeat center bottom, linear-gradient(to bottom, rgba(222, 240, 250, 0.85) 0%, #fff 70%);
  background-size: 1330px auto, auto;
  position: relative; }
  #header:before, #header:after {
    content: "";
    display: block;
    width: 415px;
    aspect-ratio: 30/11;
    background: url(../images/bg_leaf.webp) no-repeat center top;
    background-size: contain;
    opacity: 0.5;
    position: absolute;
    top: 6px; }
  #header:before {
    right: calc(50% + 230px);
    scale: -1 1; }
  #header:after {
    left: calc(50% + 230px); }
  @media screen and (min-width: 1120px) {
    #header:before {
      right: calc(50% + 280px); }
    #header:after {
      left: calc(50% + 280px); } }
  #header .wrapper {
    position: relative; }
    #header .wrapper:before {
      content: "";
      display: block;
      width: 120px;
      aspect-ratio: 180/42;
      background: url(../images/illust_birds.webp) no-repeat;
      background-size: contain;
      position: absolute;
      top: 30px;
      left: 390px; }
  #header .header_main {
    display: flex;
    justify-content: space-between;
    align-items: center; }
  #header .links_area {
    position: relative;
    z-index: 1;
    padding-right: 205px; }
    #header .links_area > ul {
      display: flex;
      align-items: center;
      gap: 25px; }
      #header .links_area > ul > li > a {
        display: flex;
        align-items: center;
        font-size: 0.8rem;
        font-weight: bold;
        letter-spacing: 0.05em;
        text-decoration: none;
        color: #111;
        padding-left: 2em;
        background: url(../images/icon/icon_arrow.svg) no-repeat left center;
        background-size: 1.5em auto;
        border: 2px solid transparent; }
    #header .links_area .link_language {
      position: absolute;
      top: 0;
      right: 0;
      z-index: 1; }
      #header .links_area .link_language.opened {
        height: auto; }
    #header .links_area > ul > li > a,
    #header .links_area .link_language .lang_pulldown_title {
      height: 40px; }
  #header .sp_header_conts {
    display: none; }

@media (hover: hover) {
  #header .links_area ul > li > a:hover {
    text-decoration: underline; } }
#site_title {
  width: 304px;
  margin-bottom: 0; }
  #site_title a {
    display: block;
    border: 2px solid transparent; }

@media (hover: hover) {
  #site_title a:hover {
    opacity: 0.7; } }
.link_language {
  transition: .2s; }
  .link_language.opened {
    background-color: #fff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
    .link_language.opened .lang_pulldown_title {
      position: relative; }
      .link_language.opened .lang_pulldown_title a:after {
        rotate: calc(45deg + 180deg);
        translate: 0 -35%; }
  .link_language .lang_pulldown_title {
    position: relative;
    padding: 2px; }
    .link_language .lang_pulldown_title a {
      display: flex;
      align-items: center;
      font-size: 0.9rem;
      font-weight: bold;
      color: #111;
      text-decoration: none;
      padding: 0 4em 0 2.5em;
      background: url(../images/icon/menu_lang.svg) no-repeat left 0.7em center;
      background-size: 1.4em auto;
      position: relative;
      height: 100%;
      border: 2px solid transparent; }
      .link_language .lang_pulldown_title a:after {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        right: 0.75em;
        width: 0.45em;
        height: 0.45em;
        border-right: 1.5px solid #111;
        border-bottom: 1.5px solid #111;
        translate: 0 -55%;
        rotate: 45deg; }
  .link_language .lang_select {
    display: none;
    padding: 0 0.7em 1em;
    background-color: #fff; }
    .link_language .lang_select ul li {
      border-bottom: 1px dashed #BECACC; }
      .link_language .lang_select ul li a {
        display: block;
        font-size: 0.9rem;
        font-weight: bold;
        color: #111;
        text-decoration: none;
        padding: 0.55em 0;
        border: 2px solid transparent; }

@media (hover: hover) {
  .link_language a:hover {
    text-decoration: underline; } }
/* ヘッダーのアニメーション */
/*
#header.top{
  #site_title{
    animation: item_appear 0.8s 0.3s ease-out both;
  }
  .links_area{
    animation: item_appear 0.5s 0.6s ease-out both;
  }
  #globalnavi{
    ul.nav_list{
      > li{
        animation: item_appear 0.8s ease-out both;
        */
/*
      }
    }
  }
}
  */
@keyframes header_appear {
  from {
    opacity: 0;
    transform: translateY(-15px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
@keyframes item_appear {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
#sp_menu_back {
  display: none; }

#accessibility_menu {
  display: none; }

.sp_menu_item {
  display: none; }

/* サイト内検索
====================================================================================================================================== */
#site_search,
#site_search_sp,
#site_search_top {
  position: relative;
  width: 280px; }
  #site_search form,
  #site_search_sp form,
  #site_search_top form {
    height: 100%; }
  #site_search input,
  #site_search_sp input,
  #site_search_top input {
    display: block;
    width: 100%;
    height: 100%;
    background-color: #fff;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #111;
    border: 1px solid #BECACC;
    border-top: none;
    border-radius: 0 0 6px 6px;
    padding: 0 40px 0 12px; }
    #site_search input:-webkit-autofill,
    #site_search_sp input:-webkit-autofill,
    #site_search_top input:-webkit-autofill {
      box-shadow: 0 0 0 1000px #F0F3F5 inset;
      -webkit-text-fill-color: #111; }
    #site_search input::placeholder,
    #site_search_sp input::placeholder,
    #site_search_top input::placeholder {
      color: #666; }
  #site_search button,
  #site_search_sp button,
  #site_search_top button {
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;
    height: 100%;
    background: url(../images/icon/i_search.svg) no-repeat center center;
    background-size: 22px auto;
    border: 2px transparent; }

#site_search_top {
  width: auto; }
  #site_search_top input {
    height: auto;
    font-size: 0.9rem;
    border-top: 1px solid #BECACC;
    border-radius: 6px;
    padding: 0.5em 0.7em;
    padding-right: 40px; }

/* globalnavi
====================================================================================================================================== */
#globalnavi ul.nav_list,
#top_sp_navi ul.nav_list {
  display: flex; }
  #globalnavi ul.nav_list li,
  #top_sp_navi ul.nav_list li {
    flex: 1;
    font-size: 0.9rem;
    font-weight: bold;
    line-height: 1.3; }
    #globalnavi ul.nav_list li a,
    #top_sp_navi ul.nav_list li a {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 10px;
      color: #111;
      text-decoration: none;
      padding: 18px 0;
      border: 2px solid transparent; }
    #globalnavi ul.nav_list li .icon,
    #top_sp_navi ul.nav_list li .icon {
      width: 70px; }
      #globalnavi ul.nav_list li .icon img,
      #top_sp_navi ul.nav_list li .icon img {
        width: 100%; }

@media (hover: hover) {
  #globalnavi ul.nav_list li a:hover {
    opacity: 0.8;
    text-decoration: underline; } }
/* contents
====================================================================================================================================== */
#conts {
  width: 100%;
  padding-bottom: 4rem; }
  #conts.in {
    padding-bottom: 5rem; }

/* よく利用されるページ */
.frequently_visited_pages {
  display: flex;
  flex-wrap: wrap;
  gap: 6px; }
  .frequently_visited_pages .page_link a {
    display: block;
    font-size: 0.8rem;
    font-weight: bold;
    border-radius: 6px;
    line-height: 1.3;
    padding: 0.5em 0.7em 0.4em;
    text-decoration: none;
    border: 1px solid #1D72C2; }
    @media screen and (min-width: 768px) {
      .frequently_visited_pages .page_link a {
        font-size: 0.75rem; } }
  .frequently_visited_pages .page_link.urgent_care_clinic a {
    background-color: #1D72C2;
    color: #fff;
    padding-left: 2em;
    background-image: url(../images/icon/i_clinic.svg);
    background-repeat: no-repeat;
    background-position: left 0.7em center;
    background-size: 0.75em auto; }

@media (hover: hover) {
  .frequently_visited_pages .page_link a:hover {
    background-color: #1D72C2;
    color: #fff; } }
#top_two_columns_wrap {
  display: grid;
  grid-template-columns: 65% 30%;
  gap: calc(100% - 65% - 30%);
  padding-bottom: 4.5em; }

#sp_sns_area {
  display: none; }

#articles_area .wrapper {
  display: grid;
  grid-template-columns: 610% 33.8%;
  grid-column-gap: calc(100% - 61% - 33.8%); }

#side_area .links_list_area {
  margin-bottom: 3em;
  position: relative; }
  #side_area .links_list_area .list_box {
    display: block;
    width: auto;
    margin: 0 0 12px; }
    @media screen and (min-width: 768px) {
      #side_area .links_list_area .list_box .border_box {
        padding: 1em 1.2em; }
      #side_area .links_list_area .list_box .text_area {
        padding: 0; }
        #side_area .links_list_area .list_box .text_area .title {
          font-size: 1rem;
          padding-left: 1.7em;
          background-size: 1.25em auto; }
      #side_area .links_list_area .list_box .comment_text {
        font-size: 0.8rem; }
      #side_area .links_list_area .list_box .text_area .title {
        font-size: 0.95rem; } }
  #side_area .links_list_area:before {
    content: "";
    display: block;
    width: 90px;
    aspect-ratio: 180/238;
    background: url(../images/parts_mizutama.webp) no-repeat;
    background-size: contain;
    position: absolute;
    scale: -1 1;
    bottom: -2.5em;
    right: -40px;
    pointer-events: none; }
#side_area .side_area_box {
  margin-bottom: 3rem; }
  #side_area .side_area_box:last-child {
    margin-bottom: 0; }
  #side_area .side_area_box h4 {
    margin-bottom: 0.6em; }
#side_area .about_daisencho .about_links_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px; }
#side_area .about_daisencho .thumbnail_box {
  display: block;
  width: auto;
  margin: 0; }
  #side_area .about_daisencho .thumbnail_box figcaption.column02 {
    padding: 0.6rem 0.5rem 0.5rem; }
  @media screen and (min-width: 768px) {
    #side_area .about_daisencho .thumbnail_box figure figcaption {
      font-size: 0.85rem; } }

#conts .related_sites {
  border-top: solid 1px #BECACC;
  padding: 2.5rem 0; }
  #conts .related_sites ul {
    margin: 0 !important;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.7em; }
    #conts .related_sites ul .cms-placeholder {
      display: contents; }
    @media screen and (min-width: 768px) {
      #conts .related_sites ul {
        grid-template-columns: repeat(5, 1fr); } }
    #conts .related_sites ul li {
      padding: 0;
      margin: 0; }
      #conts .related_sites ul li a {
        display: block; }
      #conts .related_sites ul li:before {
        display: none; }
      #conts .related_sites ul li img {
        width: 100%; }
  @media (hover: hover) {
    #conts .related_sites ul li a:hover {
      opacity: 0.8; } }

/* 広告スペース
====================================================================================================================================== */
#ad_space {
  padding: 1.7em;
  background-color: #F2F5F5;
  border-radius: 10px;
  position: relative; }
  #ad_space .title_area {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    line-height: 1;
    margin-bottom: 1em; }
  #ad_space h5 {
    font-size: 1rem;
    font-weight: normal;
    color: #666;
    line-height: 1;
    margin-bottom: 0; }
  #ad_space .about_ad {
    font-size: 0.9rem; }
  #ad_space ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.7em;
    margin-bottom: 0; }
    #ad_space ul .cms-placeholder {
      display: contents; }
    #ad_space ul li {
      margin: 0;
      padding: 0; }
      #ad_space ul li:before {
        display: none; }
      #ad_space ul li a {
        display: block; }
      #ad_space ul li img {
        width: 100%;
        height: auto; }
  #ad_space:before {
    content: "";
    display: block;
    width: 106px;
    aspect-ratio: 180/238;
    background: url(../images/parts_mizutama.webp) no-repeat;
    background-size: contain;
    position: absolute;
    scale: -1 1;
    bottom: -3.5em;
    right: -45px;
    z-index: -1; }

@media (hover: hover) {
  #ad_space ul li a:hover {
    opacity: 0.8; } }
/* footer
====================================================================================================================================== */
#footer .footer_top {
  border-top: 1px solid #BECACC;
  border-bottom: 1px solid #BECACC;
  padding: 30px 0; }
  #footer .footer_top ul {
    display: flex;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: bold;
    line-height: 1.6; }
    #footer .footer_top ul li {
      width: 350px; }
      #footer .footer_top ul li:first-child {
        border-right: 1px solid #BECACC; }
      #footer .footer_top ul li a {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 12px;
        text-decoration: none;
        color: #111;
        padding: 10px 0; }
      #footer .footer_top ul li .icon {
        width: 50px;
        aspect-ratio: 1/1;
        border-radius: 50%;
        background-color: #DEF0FA;
        display: grid;
        place-items: center; }
        #footer .footer_top ul li .icon img {
          width: 60%; }
      #footer .footer_top ul li .text_area {
        width: 9.33em; }
      #footer .footer_top ul li .sub_text {
        display: block;
        font-size: 0.667em;
        color: #666;
        font-weight: normal;
        letter-spacing: 0.05em; }
#footer .footer_main {
  padding: 60px 0;
  background: url(../images/bg_town.webp) no-repeat right calc(50% + 350px) bottom, linear-gradient(to bottom, rgba(222, 240, 250, 0.8) 0%, rgba(222, 240, 250, 0.5) 100%);
  background-size: 560px auto, auto auto;
  position: relative; }
  #footer .footer_main:before, #footer .footer_main:after {
    content: "";
    display: block;
    width: 415px;
    aspect-ratio: 30/11;
    background: url(../images/bg_leaf.webp) no-repeat center top;
    background-size: contain;
    opacity: 0.5;
    position: absolute; }
  #footer .footer_main:before {
    right: calc(50% + 215px);
    scale: -1 1;
    top: 0; }
  #footer .footer_main:after {
    left: calc(50% + 215px);
    scale: 1 -1;
    bottom: 0; }
  @media screen and (min-width: 1120px) {
    #footer .footer_main:before {
      right: calc(50% + 265px); }
    #footer .footer_main:after {
      left: calc(50% + 265px); } }
  #footer .footer_main .wrapper {
    display: flex;
    justify-content: space-between;
    position: relative;
    z-index: 1; }
  #footer .footer_main .logo_map_area {
    width: 27%;
    padding: 50px 25px 0;
    text-align: center; }
    #footer .footer_main .logo_map_area .footer_logo {
      margin-bottom: 18px; }
      #footer .footer_main .logo_map_area .footer_logo p {
        font-size: 0.8rem;
        line-height: 1.6;
        margin-bottom: 1em; }
      #footer .footer_main .logo_map_area .footer_logo .logo img {
        width: min(200px, 100%); }
    #footer .footer_main .logo_map_area .map_image img {
      width: 100%; }
  #footer .footer_main .info_area {
    width: 70%;
    background-color: #fff;
    border-radius: 10px;
    padding: 30px; }
    #footer .footer_main .info_area .info_box {
      font-size: 0.9rem;
      border-bottom: 1px dashed #BECACC;
      padding-bottom: 27px;
      margin-bottom: 30px; }
      #footer .footer_main .info_area .info_box.last_info {
        padding-bottom: 0;
        border-bottom: none; }
      #footer .footer_main .info_area .info_box h4 {
        font-size: 1rem;
        line-height: 2;
        margin-bottom: 0.3em; }
        #footer .footer_main .info_area .info_box h4 a {
          display: inline-block;
          vertical-align: middle;
          font-size: 0.8em;
          font-weight: bold;
          line-height: 1;
          border-radius: 6px;
          border: 1px solid #1D72C2;
          padding: 0.55em 0.6em;
          text-decoration: none;
          margin-left: 0.3em; }
    #footer .footer_main .info_area .open_hours {
      background-color: #F2F5F5;
      border-radius: 10px;
      font-size: 0.9rem;
      font-weight: bold;
      text-align: center;
      padding: 1.2em 1.5em;
      letter-spacing: 0.05em; }
      #footer .footer_main .info_area .open_hours h4 {
        font-size: inherit;
        line-height: inherit;
        padding: 0;
        position: static;
        text-align: inherit;
        margin-bottom: 0; }
        #footer .footer_main .info_area .open_hours h4:before {
          display: none; }
      #footer .footer_main .info_area .open_hours p {
        margin-bottom: 0; }
#footer .footer_bottom {
  background-color: #1D72C2;
  color: #fff;
  font-size: 0.8rem;
  text-align: center;
  padding: 2.8rem 0; }
#footer .footer_links {
  margin-bottom: 1.6em; }
  #footer .footer_links ul {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    column-gap: 2.8em;
    row-gap: 0.4em; }
    #footer .footer_links ul li a {
      display: block;
      font-weight: bold;
      white-space: nowrap;
      color: #fff; }
      #footer .footer_links ul li a:focus {
        outline-color: #fff !important; }

@media (hover: hover) {
  #footer .footer_top ul li a:hover {
    color: #0A67BF; }
    #footer .footer_top ul li a:hover .link_title {
      text-decoration: underline; }
  #footer .footer_main .info_area .info_box h4 a:hover {
    background-color: #1D72C2;
    color: #fff; } }
/* side_fixed_box
====================================================================================================================================== */
#side_fixed_box {
  position: fixed;
  width: 35px;
  right: 18px;
  bottom: 22px;
  z-index: 10000; }
  #side_fixed_box .top_page {
    display: block;
    text-indent: -9999px;
    background-color: #fff;
    background-size: 30% auto;
    width: 100%;
    aspect-ratio: 1/1;
    border-radius: 50%;
    border: 1px solid #BECACC;
    opacity: 1;
    position: relative; }
    #side_fixed_box .top_page:before {
      content: "";
      display: block;
      width: 30%;
      aspect-ratio: 1/1;
      border-left: 2.5px solid #1D72C2;
      border-top: 2.5px solid #1D72C2;
      position: absolute;
      top: 50%;
      left: 50%;
      translate: -50% -35%;
      rotate: 45deg; }

@media (hover: hover) {
  #side_fixed_box .top_page:hover {
    opacity: 0.7; } }
/* 緊急情報
====================================================================================================================================== */
#emergency_info {
  border: 2px solid #c00;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 1.5em; }
  #emergency_info .emergency_main {
    background-color: #FFF4F2;
    padding: 1.2em 1.2em 1em; }
  #emergency_info h2 {
    color: #fff;
    font-size: 1.05rem;
    line-height: 1.6;
    border: none;
    padding: 0.6em 0 0.6em 2.3em;
    background: #c00 url(../images/icon/i_attention_w.svg) no-repeat left 1em center;
    background-size: 0.88em auto;
    margin-bottom: 0; }
  #emergency_info .article_list li a {
    color: #c00; }
  #emergency_info .link_to_list a {
    color: #c00;
    background-image: url(../images/icon/i_attention_r.svg); }
  #emergency_info.no_articles {
    border: 1px solid #BECACC;
    font-size: 0.8rem;
    padding: 0.8em 1.1em; }
    #emergency_info.no_articles p {
      margin-bottom: 0;
      padding-left: 2em;
      background: url(../images/icon/i_attention_g.svg) no-repeat left center;
      background-size: 1.5em auto; }

/* トップページ
====================================================================================================================================== */
.slider_wrap {
  padding-bottom: 27px;
  margin-bottom: 0.8rem;
  position: relative; }
  .slider_wrap:before {
    content: "";
    display: block;
    width: 90px;
    aspect-ratio: 180/238;
    background: url(../images/parts_mizutama.webp) no-repeat;
    background-size: contain;
    position: absolute;
    bottom: -5px;
    left: -40px; }

.top_section {
  padding: 20px;
  border-radius: 10px;
  background-color: #F2F5F5;
  margin-bottom: 1.8rem; }
  .top_section .top_title {
    font-size: 0.7rem;
    font-weight: bold;
    line-height: 1.3;
    color: #111;
    border: none;
    padding: 0;
    background: none;
    padding-left: 1.5em;
    background: url(../images/icon/i_star.svg) no-repeat left center;
    background-size: 1.1em auto;
    margin-bottom: 0.5em; }
    .top_section .top_title.search_title {
      background-image: url(../images/icon/i_search.svg); }
  .top_section .top_search_box {
    margin-bottom: 1em; }
  .top_section.type01 {
    display: grid;
    grid-template-columns: 1fr 26.5%;
    gap: 20px; }
    .top_section.type01 .button_area {
      flex-direction: column;
      gap: 12px;
      margin-bottom: 0; }
      .top_section.type01 .button_area a {
        display: flex;
        align-items: center;
        width: 100%;
        min-width: 0;
        background-image: none;
        font-size: 0.8rem;
        letter-spacing: 0.05em;
        border-radius: 10px;
        padding: 0.8em 1.2em;
        gap: 0.9em; }
        .top_section.type01 .button_area a:hover {
          color: #0A67BF;
          text-decoration: underline;
          opacity: 1;
          background-color: #f8f8f8; }
        .top_section.type01 .button_area a .icon {
          width: 1.9em; }

#important_info {
  background-color: #DEF0FA; }
  #important_info .top_title {
    background-image: url(../images/icon/i_attention_b.svg);
    margin-bottom: 0.8em; }
  #important_info ul {
    margin-bottom: 0; }
    #important_info ul li {
      padding-left: 0;
      margin-bottom: 0.8em;
      font-size: 0.95rem;
      line-height: 1.5;
      font-weight: bold; }
      #important_info ul li:before {
        display: none; }
      #important_info ul li a {
        display: block;
        padding-left: 1.6em;
        background: url(../images/icon/icon_arrow_noborder.svg) no-repeat left top 0.1em;
        background-size: 1.2em auto; }
      #important_info ul li.no_news {
        font-size: 0.85rem; }

/* タブ */
#news .tab {
  margin-bottom: 1.4em;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 6px;
  position: relative;
  font-size: 0.85rem;
  height: 3.7em;
  padding: 0 0.8rem; }
  #news .tab:before {
    content: "";
    width: 100%;
    left: 0;
    bottom: 0px;
    position: absolute;
    border-bottom: solid 1px #BECACC;
    height: 0;
    display: block;
    z-index: 1; }
  #news .tab li {
    height: calc(100% - 5px);
    text-indent: 0;
    padding: 0;
    margin-bottom: 0;
    line-height: 1.3;
    flex: 1; }
    #news .tab li:before {
      display: none; }
    #news .tab li a {
      display: grid;
      place-items: center;
      background: #F2F5F5;
      color: #666;
      border: 1px solid #F2F5F5;
      border-bottom: none;
      border-radius: 6px 6px 0 0;
      text-decoration: none;
      font-weight: bold;
      text-align: center;
      width: 100%;
      height: 100%; }
      #news .tab li a:hover {
        opacity: 0.8; }
    #news .tab li.select {
      height: 100%;
      z-index: 2; }
      #news .tab li.select a {
        border-color: #BECACC;
        background-color: #fff;
        color: #111;
        position: relative; }
        #news .tab li.select a:after {
          content: "";
          display: block;
          position: absolute;
          top: 100%;
          left: 0;
          width: 100%;
          height: 1px;
          background-color: #fff; }
        #news .tab li.select a:hover {
          opacity: 1; }
#news .tab_content {
  margin-bottom: 0; }
  #news .tab_content > li {
    display: none;
    padding: 0;
    margin: 0;
    text-indent: 0; }
    #news .tab_content > li:before {
      display: none; }
    #news .tab_content > li.first_select {
      display: block; }
#news .articles_bottom {
  display: grid;
  grid-template-columns: 16.2% 16.2% 16.2% 1fr;
  gap: 12px; }
  #news .articles_bottom .to_list a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.9em;
    font-size: 0.85rem;
    font-weight: bold;
    line-height: 1;
    background-color: #1D72C2;
    color: #fff;
    padding: 1em 0;
    border-radius: 10px;
    text-decoration: none;
    border: 2px solid #1D72C2; }
    #news .articles_bottom .to_list a:focus {
      outline-color: #111; }
    #news .articles_bottom .to_list a .icon {
      width: 2em; }
      #news .articles_bottom .to_list a .icon img {
        width: 100%; }
  #news .articles_bottom .sns_box {
    background-color: #F2F5F5;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px;
    font-size: 0.9rem;
    font-weight: bold; }
    #news .articles_bottom .sns_box p {
      margin-bottom: 0; }
    #news .articles_bottom .sns_box ul {
      margin-bottom: 0 !important;
      display: flex;
      gap: 12px; }
      #news .articles_bottom .sns_box ul li {
        width: 38px;
        margin: 0 !important;
        padding: 0 !important; }
        #news .articles_bottom .sns_box ul li a {
          display: block; }
        #news .articles_bottom .sns_box ul li:before {
          display: none !important; }
        #news .articles_bottom .sns_box ul li img {
          width: 100%; }

@media (hover: hover) {
  #news .articles_bottom .to_list a:hover {
    opacity: 0.8; }
  #news .articles_bottom .sns_box ul li a:hover {
    opacity: 0.7; } }
/* カレンダー
====================================================================================================================================== */
.calendar_prev_next {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px; }
  .calendar_prev_next .y,
  .calendar_prev_next .ym {
    font-weight: bold;
    line-height: 1;
    margin: 0;
    padding-right: 0.8em; }
    .calendar_prev_next .y span,
    .calendar_prev_next .ym span {
      vertical-align: middle; }
    .calendar_prev_next .y .month_text,
    .calendar_prev_next .ym .month_text {
      font-size: 2.2em;
      margin-left: 0.3em; }
  .calendar_prev_next .move {
    font-size: 1.2em;
    font-weight: bold;
    line-height: 1.3; }
    .calendar_prev_next .move a {
      display: block;
      text-decoration: none;
      background: url(../images/icon/arrow_maru_l.svg) no-repeat left 3px center;
      background-size: 1.3em auto;
      transition: .3s; }
    .calendar_prev_next .move.prev {
      margin-left: -3px; }
      .calendar_prev_next .move.prev a {
        padding: 0 0 0 1.75em; }
    .calendar_prev_next .move.next {
      margin-right: -3px; }
      .calendar_prev_next .move.next a {
        padding: 0 1.75em 0 0;
        background-image: url(../images/icon/arrow_maru.svg);
        background-position: right 3px center; }

.month_calendar_table {
  width: 100%;
  border: none; }
  .month_calendar_table th,
  .month_calendar_table td {
    padding: 21px 15px;
    border-top: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
    border-left: none;
    border-right: none; }
  .month_calendar_table tbody th {
    width: 0;
    background: none; }
    .month_calendar_table tbody th .day_of_week {
      font-size: 0.8em;
      margin-left: 0.3em; }
  .month_calendar_table tbody td {
    padding-left: 30px;
    line-height: 1.7; }
    .month_calendar_table tbody td a {
      display: block;
      font-weight: bold;
      text-decoration: none;
      padding-left: 1.6em;
      position: relative;
      background: url(../images/icon/arrow_maru.svg) no-repeat left top 0.25em;
      background-size: 1.2em auto;
      transition: .3s;
      margin-bottom: 4px; }
      .month_calendar_table tbody td a:last-of-type {
        margin-bottom: 0; }
  .month_calendar_table tbody tr.sat th {
    color: #395DB8;
    background-color: rgba(57, 93, 184, 0.1); }
  .month_calendar_table tbody tr.sun th {
    color: #CC3D3D;
    background-color: rgba(204, 61, 61, 0.1); }
  .month_calendar_table tbody tr.today th {
    color: #fff;
    background-color: #395DB8; }

@media (hover: hover) {
  .calendar_prev_next .move a:hover {
    background-position: left center;
    text-decoration: underline; }
  .calendar_prev_next .move.next a:hover {
    background-position: right center; }

  .month_calendar_table tbody td a:hover {
    text-decoration: underline;
    background-position: left 3px top 0.25em; } }
.year_calendar_table {
  width: 100%; }
  .year_calendar_table tbody th {
    width: 0; }

/* お問い合わせ
====================================================================================================================================== */
table.table_form {
  width: min(850px, 100%);
  margin: 2rem auto 0;
  border: none; }
  table.table_form tbody th,
  table.table_form tbody td {
    display: block;
    width: 100% !important;
    padding: 0;
    border: none; }
  table.table_form tbody th {
    line-height: 1.6;
    background: none;
    padding-bottom: 7px; }
  table.table_form tbody td {
    padding-bottom: 35px; }
    table.table_form tbody td ul {
      display: flex;
      justify-content: flex-start;
      align-items: flex-start;
      flex-wrap: wrap;
      margin-bottom: 0 !important; }
      table.table_form tbody td ul li {
        margin: 0 1em 0 0 !important;
        padding: 0.2em 0 !important; }
        table.table_form tbody td ul li label {
          margin-bottom: 0 !important; }
        table.table_form tbody td ul li:before {
          display: none !important; }
    table.table_form tbody td .notes {
      margin-top: 0.3em;
      font-size: 0.9em;
      line-height: 1.8;
      color: #777; }
      table.table_form tbody td .notes:empty {
        display: none; }
  table.table_form .required {
    display: inline-block;
    vertical-align: middle;
    font-size: 0.7rem;
    font-weight: normal;
    background-color: #0A67BF;
    color: #fff;
    padding: 0.05em 0.35em;
    margin-left: 0.5em; }

form input[type="text"],
form input[type="email"],
form input[type="number"],
form input[type="tel"],
form input[type="url"],
form input[type="password"],
form textarea {
  width: 100% !important;
  background: #f2f2f2;
  border: solid 2px #f2f2f2;
  color: #111;
  padding: 8px 10px;
  font-size: 16px;
  line-height: 1.7;
  transition: background-color 0.3s, color 0.3s; }
  @media screen and (max-width: 768px) {
    form input[type="text"],
    form input[type="email"],
    form input[type="number"],
    form input[type="tel"],
    form input[type="url"],
    form input[type="password"],
    form textarea {
      font-size: 16px !important; } }
form select {
  display: block;
  width: fit-content !important;
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
  background: #fff;
  border: solid 1px #BECACC;
  font-size: 16px;
  height: auto;
  padding: 8px 10px;
  border-radius: 6px; }
form textarea {
  height: 220px; }

/*confilm*/
.error {
  color: #c00;
  font-weight: normal; }

.error:before {
  content: "※"; }

/* ライトボックス */
.lightbox_overlay {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  font-weight: normal;
  z-index: 99999; }
  .lightbox_overlay.active {
    opacity: 1;
    visibility: visible; }
    .lightbox_overlay.active .lightbox_content {
      transform: scale(1); }

.lightbox_content {
  position: relative;
  background: #FFFFFF;
  border-radius: 12px;
  max-width: 90%;
  max-height: 85vh;
  overflow: hidden;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  transform: scale(0.95);
  transition: transform 0.3s ease;
  line-height: 1.8; }
  @media (min-width: 768px) {
    .lightbox_content {
      max-width: 600px; } }

.lightbox_header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #0A67BF;
  color: #FFFFFF;
  padding: 0.6rem 1rem;
  padding-right: 0.7rem; }
  .lightbox_header .lightbox_title {
    font-weight: bold;
    line-height: 1.6; }
  .lightbox_header .lightbox_close {
    display: block;
    width: 1.8rem;
    height: 1.8rem;
    background: url(../images/icon/i_close_w.svg) no-repeat center center;
    background-size: 75% auto;
    text-decoration: none; }
    .lightbox_header .lightbox_close:hover {
      opacity: 0.7; }

.lightbox_body {
  padding: 1.5rem;
  overflow-y: auto;
  max-height: calc(90vh - 3rem); }
  .lightbox_body .date {
    font-size: 0.8rem;
    color: #666;
    margin-bottom: 0.8rem; }
  .lightbox_body .text_area {
    white-space: pre-wrap;
    padding-bottom: 2rem; }
