@charset "UTF-8";
@media screen and (max-width: 768px) {
  /* sp */
  .sp,
  .tb_only {
    display: block !important; }

  .sp_off,
  .tb_off {
    display: none !important; }

  .sp_inline {
    display: inline !important; }

  /* structure
====================================================================================================================================== */
  html {
    scroll-padding-top: 75px; }
    html.cms-ready:has(#cms_toolbar) {
      scroll-padding-top: calc(75px + 46px); }

  body {
    overflow-x: hidden;
    width: 100%;
    min-width: 0; }

  .wrapper {
    margin: 0;
    padding-left: 20px;
    padding-right: 20px;
    width: auto !important; }

  /* header
  ====================================================================================================================================== */
  #header {
    padding: 0;
    background: none;
    height: 95px; }
    #header:before {
      right: auto;
      left: 0;
      width: 100%;
      height: 180px;
      aspect-ratio: auto;
      opacity: 1;
      scale: 1;
      background: url(../images/bg_yama.png) no-repeat center bottom, linear-gradient(to bottom, rgba(222, 240, 250, 0.85) 0%, #fff 70%);
      background-size: 820px auto, auto; }
    #header:after {
      top: 6px;
      left: auto;
      right: 0;
      width: 330px;
      right: -25px; }
    #header .wrapper {
      padding: 0; }
      #header .wrapper:before {
        display: none; }
    #header .header_main {
      display: flex;
      justify-content: space-between;
      align-items: center; }

  #sp_fixed_header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    border-top: 6px solid #1D72C2;
    height: 95px;
    padding: 0 15px;
    z-index: 10000;
    transition: .2s; }
    .cms-ready #sp_fixed_header {
      top: 46px; }
    #sp_fixed_header.scrolled {
      border-top: none;
      background-color: #fff;
      height: 75px;
      padding-right: 0;
      box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
      #sp_fixed_header.scrolled #site_title {
        width: 185px; }
      #sp_fixed_header.scrolled .sp_header_conts {
        height: 100%; }
      #sp_fixed_header.scrolled #button_menu_open a {
        border-radius: 0;
        height: 100%; }
    #sp_fixed_header .sp_header_conts {
      font-size: 0.7rem;
      display: flex;
      justify-content: flex-end; }
    #sp_fixed_header .sp_menu_open {
      width: 5.5em; }
      #sp_fixed_header .sp_menu_open a {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0.9em;
        padding: 0.8em 0;
        line-height: 1;
        font-weight: bold;
        text-decoration: none;
        color: #111; }
      #sp_fixed_header .sp_menu_open .icon {
        width: 2.3em; }
        #sp_fixed_header .sp_menu_open .icon img {
          width: 100%; }
    #sp_fixed_header #button_menu_open {
      margin-left: 0.7em; }
      #sp_fixed_header #button_menu_open a {
        background-color: #1D72C2;
        color: #fff;
        border-radius: 6px; }

  #site_title {
    width: 220px;
    transition: .2s; }

  /* スマホ用メニュー
====================================================================================================================================== */
  .sp_menu {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 11000;
    width: 325px;
    height: 100vh;
    translate: 100%;
    margin: 0;
    background-color: #fff;
    padding: 1.4em 1.4em 2.5em;
    transition: translate 0.5s ease-out; }
    .cms-ready .sp_menu {
      top: 46px;
      height: calc(100vh - 46px); }
    .sp_menu.opened {
      translate: 0;
      box-shadow: 0 0 200px 0 rgba(0, 0, 0, 0.15); }
    .sp_menu .button_sp_menu_close {
      width: 24px;
      margin-left: auto;
      margin-bottom: 20px; }
      .sp_menu .button_sp_menu_close img {
        width: 100%; }
    .sp_menu .to_top {
      font-size: 0.9rem;
      font-weight: bold;
      text-align: left;
      margin-bottom: 20px; }
      .sp_menu .to_top a {
        display: block;
        color: #111;
        text-decoration: none;
        line-height: 1.55;
        padding-left: 2em;
        position: relative; }
        .sp_menu .to_top a:before {
          content: "";
          display: block;
          background: url(../images/icon/icon_arrow.svg) no-repeat left center;
          background-size: contain;
          position: absolute;
          top: 0;
          left: 0;
          width: 1.55em;
          rotate: 180deg;
          aspect-ratio: 1/1; }
    .sp_menu .button_area {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-bottom: 2.5em; }
      .sp_menu .button_area a {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        gap: 0.67em;
        width: 100%;
        min-width: 0;
        border-radius: 10px;
        background-image: none;
        padding: 1.2em;
        letter-spacing: normal; }
        .sp_menu .button_area a .icon {
          width: 1.73em; }
          .sp_menu .button_area a .icon img {
            width: 100%; }
    .sp_menu .sp_menu_close {
      display: block !important;
      font-size: 0.9rem;
      color: #0A67BF;
      text-align: center;
      font-weight: bold;
      line-height: 1; }

  /* globalnavi
  ====================================================================================================================================== */
  #globalnavi ul.nav_list,
  #top_sp_navi ul.nav_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 23px;
    border-bottom: none; }
    #globalnavi ul.nav_list li,
    #top_sp_navi ul.nav_list li {
      animation: none; }
      #globalnavi ul.nav_list li a,
      #top_sp_navi ul.nav_list li a {
        border: 1px solid #BECACC;
        padding: 1.2em 0px;
        border-radius: 10px; }
      #globalnavi ul.nav_list li .icon,
      #top_sp_navi ul.nav_list li .icon {
        width: 3.7em; }

  /* Language
  ====================================================================================================================================== */
  #langage_menu .button_sp_menu_close {
    margin-bottom: 0; }
  #langage_menu .language_list {
    margin-bottom: 2em; }
    #langage_menu .language_list ul li {
      border-bottom: 1px dashed #BECACC; }
      #langage_menu .language_list ul li a {
        display: block;
        font-size: 1rem;
        font-weight: bold;
        color: #111;
        text-decoration: none;
        padding: 1.6em 0;
        padding-left: 1.7em;
        background: url(../images/icon/icon_arrow.svg) no-repeat left center;
        background-size: 1.3em auto; }

  /* 探す
  ====================================================================================================================================== */
  #search_menu .search_menu_section_box {
    margin-bottom: 2em; }
    #search_menu .search_menu_section_box .title_text {
      font-size: 0.7rem;
      font-weight: bold;
      line-height: 1.3;
      letter-spacing: normal;
      padding-left: 1.8em;
      background: url(../images/icon/i_star.svg) no-repeat left center;
      background-size: 1.3em auto;
      margin-bottom: 0.7em; }
      #search_menu .search_menu_section_box .title_text.search_title {
        background-image: url(../images/icon/i_search.svg); }
    #search_menu .search_menu_section_box .frequently_visited_pages {
      gap: 7px; }
      #search_menu .search_menu_section_box .frequently_visited_pages .page_link a {
        font-size: 0.8rem; }
  #search_menu .button_area a {
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    border-radius: 6px;
    padding: 1.1em;
    gap: 0.7em; }
    #search_menu .button_area a .icon {
      width: 1.9em; }

  /* サイト内検索
====================================================================================================================================== */
  #site_search_sp {
    width: 100%; }
    #site_search_sp form {
      height: auto; }
    #site_search_sp input {
      height: auto;
      font-size: 1rem;
      border-top: 1px solid #BECACC;
      border-radius: 6px;
      padding: 0.6em 0.8em;
      padding-right: 40px; }

  /* contents
====================================================================================================================================== */
  #conts {
    position: relative;
    padding-top: 20px; }
    #conts.top {
      padding-top: 25px; }

  #top_two_columns_wrap {
    display: block;
    width: auto; }

  .top_section.type01 {
    grid-template-columns: 1fr 140px; }

  #top_sp_navi {
    margin-bottom: 1.7em;
    position: relative; }
    #top_sp_navi:before {
      content: "";
      display: block;
      width: 75px;
      aspect-ratio: 180/238;
      background: url(../images/parts_mizutama.png) no-repeat;
      background-size: contain;
      position: absolute;
      scale: -1 1;
      bottom: -1.5em;
      right: -15px; }
    #top_sp_navi ul.nav_list {
      margin-bottom: 0;
      grid-template-columns: repeat(3, 1fr); }
      #top_sp_navi ul.nav_list li {
        padding: 0;
        margin: 0; }
        #top_sp_navi ul.nav_list li:before {
          display: none; }
        #top_sp_navi ul.nav_list li.life_scene {
          grid-column: 2 / span 2; }
          #top_sp_navi ul.nav_list li.life_scene a {
            flex-direction: row;
            height: 100%;
            padding: 1.1em; }
          #top_sp_navi ul.nav_list li.life_scene .icon {
            width: 3.45em;
            flex-shrink: 0; }
          #top_sp_navi ul.nav_list li.life_scene .sub_text {
            display: block;
            font-size: 0.82em;
            font-weight: normal;
            line-height: 1.6;
            letter-spacing: normal;
            color: #666;
            margin-top: 0.5em; } }
  @media screen and (max-width: 768px) and (max-width: 540px) {
    #top_sp_navi .title {
      font-size: 0.95rem !important;
      margin-top: 0.2rem; } }

@media screen and (max-width: 768px) {
  #articles_area {
    margin-bottom: 65px; }

  /* タブ */
  #news .tab {
    height: 4em;
    margin-bottom: 1.6em; }
  #news .articles_bottom {
    width: min(400px, 100%);
    margin: 0 auto;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(2, 1fr); }
    #news .articles_bottom .sns_box {
      grid-column: 1 / span 3; }

  #side_area {
    width: min(400px, 100%);
    margin: 0 auto; }
    #side_area .links_list_area:before {
      width: 60px;
      right: -15px;
      bottom: -2em; }
    #side_area .list_box .border_box {
      padding-top: 0.3rem;
      padding-bottom: 0.3rem; }

  /* 広告スペース
  ====================================================================================================================================== */
  #ad_space {
    padding: 20px; }

  /* footer
  ====================================================================================================================================== */
  #footer .footer_top {
    padding: 20px 0; }
    #footer .footer_top ul li {
      width: 50%; }
      #footer .footer_top ul li .text_area {
        width: 9.22em; }
  #footer .footer_main {
    padding: 40px 0 30vw;
    background-position: center bottom, left top;
    background-size: 100% auto, auto auto; }
    #footer .footer_main:before {
      width: 350px;
      right: auto;
      left: 0; }
    #footer .footer_main:after {
      display: none; }
    #footer .footer_main .wrapper {
      display: block; }
    #footer .footer_main .logo_map_area {
      width: 450px;
      margin: 0 auto 2em;
      padding: 0;
      display: flex;
      justify-content: space-between;
      align-items: center; }
      #footer .footer_main .logo_map_area .footer_logo {
        width: 50%;
        margin-bottom: 0; }
        #footer .footer_main .logo_map_area .footer_logo p {
          font-size: 0.88rem;
          margin-bottom: 1em; }
        #footer .footer_main .logo_map_area .footer_logo .logo {
          width: 75%;
          margin: 0 auto; }
      #footer .footer_main .logo_map_area .map_image {
        width: 48%; }
    #footer .footer_main .info_area {
      width: min(700px, 100%);
      margin: 0 auto;
      padding: 25px; }
      #footer .footer_main .info_area .info_box {
        padding-bottom: 25px;
        margin-bottom: 25px; }
  #footer .footer_bottom {
    padding: 3rem 0 95px; }
  #footer .footer_links {
    margin-bottom: 1.6em; }
    #footer .footer_links ul {
      column-gap: 2em; }
      #footer .footer_links ul li a {
        display: block;
        font-weight: bold;
        white-space: nowrap;
        color: #fff; }
        #footer .footer_links ul li a:focus {
          border-color: #fff !important; }

  /* side_fixed_box
  ====================================================================================================================================== */
  #side_fixed_box {
    bottom: 19px;
    right: 20px; }

  /* 緊急情報
====================================================================================================================================== */
  #emergency_info h2 {
    font-size: 1.12rem; }

  /* カレンダー
====================================================================================================================================== */
  .calendar_prev_next .y .month_text,
  .calendar_prev_next .ym .month_text {
    font-size: 2em; }
  .calendar_prev_next .move {
    font-size: 1.1em; }
    .calendar_prev_next .move a {
      background-position: left center; }
    .calendar_prev_next .move.prev {
      margin-left: 0; }
      .calendar_prev_next .move.prev a {
        padding-left: 1.7em; }
    .calendar_prev_next .move.next {
      margin-right: 0; }
      .calendar_prev_next .move.next a {
        padding-right: 1.7em;
        background-position: right center; }

  .month_calendar_table tbody td {
    padding-left: 20px; }

  /* お問い合わせ
====================================================================================================================================== */
  table.table_form {
    font-size: 1em; } }
@media screen and (max-width: 540px) {
  /* sp */
  .sp_only_off,
  .tb_only {
    display: none !important; }

  .sp_only,
  .tb_off {
    display: block !important; }

  /* structure
  ====================================================================================================================================== */
  html {
    scroll-padding-top: 65px; }
    html.cms-ready:has(#cms_toolbar) {
      scroll-padding-top: calc(65px + 46px); }

  /* 中ページ
  ====================================================================================================================================== */
  #navibar {
    margin-bottom: 2em; }
    #navibar p {
      font-size: 0.8rem; }

  /* globalnavi
  ====================================================================================================================================== */
  #globalnavi {
    overflow: auto; }
    #globalnavi ul.nav_list li.with_icon a {
      justify-content: flex-start;
      padding: 11px 0;
      padding-left: 20px;
      gap: 8px; }
      #globalnavi ul.nav_list li.with_icon a .icon {
        width: 40px; }
      #globalnavi ul.nav_list li.with_icon a .title {
        text-align: left; }

  /* header
  ====================================================================================================================================== */
  #header:before {
    height: 185px;
    background-position: right -120px bottom, left top;
    background-size: 800px auto, auto; }
  #header:after {
    width: 230px;
    right: -20px; }

  #sp_fixed_header {
    padding: 0 12px 0 8px; }
    #sp_fixed_header.scrolled {
      height: 65px; }
      #sp_fixed_header.scrolled #site_title {
        width: 140px; }

  #site_title {
    width: 170px; }

  /* contents
====================================================================================================================================== */
  /* トップページ
====================================================================================================================================== */
  .slider_wrap:before {
    width: 75px;
    bottom: -24px;
    left: -32px; }

  .top_section.type01 {
    display: block;
    margin-left: -20px;
    margin-right: -20px;
    border-radius: 0; }
    .top_section.type01 .main_area {
      margin-bottom: 1em; }
    .top_section.type01 .button_area {
      flex-direction: row; }
      .top_section.type01 .button_area a {
        flex: 1;
        flex-direction: column;
        width: auto;
        font-size: 0.85rem;
        padding: 1em 0 0.7em;
        gap: 0.5em; }
        .top_section.type01 .button_area a .icon {
          width: 2em; }

  #top_sp_navi ul.nav_list {
    grid-template-columns: repeat(2, 1fr); }
    #top_sp_navi ul.nav_list li.life_scene {
      grid-column: auto; }
      #top_sp_navi ul.nav_list li.life_scene a {
        flex-direction: column;
        padding: 0.8em 0.7em 0.4em;
        gap: 10px; }
      #top_sp_navi ul.nav_list li.life_scene .icon {
        width: 2.07em; }
      #top_sp_navi ul.nav_list li.life_scene .text_area {
        display: block;
        width: 100%;
        text-align: center; }
      #top_sp_navi ul.nav_list li.life_scene .sub_text {
        font-size: 0.78em; }
  #top_sp_navi:before {
    width: 60px; }

  /* タブ */
  #news .tab {
    gap: 4px;
    margin-left: -20px;
    margin-right: -20px;
    padding: 0 20px;
    font-size: 0.8rem; }

  /* 広告スペース
====================================================================================================================================== */
  #ad_space ul {
    grid-template-columns: repeat(2, 1fr); }

  /* footer
  ====================================================================================================================================== */
  #footer .footer_top ul li.link_madoguchi {
    width: 70%; }
  #footer .footer_top ul li.link_faq {
    width: 30%;
    font-size: 0.8rem;
    text-align: center; }
    #footer .footer_top ul li.link_faq a {
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 10px; }
    #footer .footer_top ul li.link_faq .icon {
      width: 2.17em;
      border-radius: 0;
      aspect-ratio: auto;
      background-color: transparent; }
      #footer .footer_top ul li.link_faq .icon img {
        width: 100%; }
  #footer .footer_main {
    padding-bottom: 53vw;
    background-size: 150% auto, auto auto; }
    #footer .footer_main:before {
      width: 230px;
      left: -10px; }
    #footer .footer_main .logo_map_area {
      width: min(350px, 100%);
      margin: 0 auto 2.5rem; }
      #footer .footer_main .logo_map_area .footer_logo {
        width: 51.42%; }
        #footer .footer_main .logo_map_area .footer_logo p {
          font-size: 0.9rem;
          margin-bottom: 1em; }
        #footer .footer_main .logo_map_area .footer_logo .logo {
          width: 87.5%;
          margin: 0 auto; }
      #footer .footer_main .logo_map_area .map_image {
        width: 45.71%; }
    #footer .footer_main .info_area {
      padding: 20px; }
  #footer .footer_bottom {
    padding-top: 3.5rem; }
    #footer .footer_bottom ul {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      column-gap: 1em; }
      #footer .footer_bottom ul li {
        text-align: left; }

  /* side_fixed_box
====================================================================================================================================== */
  #side_fixed_box {
    width: 2.2rem;
    right: 0.8rem; }

  /* 緊急情報
====================================================================================================================================== */
  #emergency_info h2 {
    font-size: 1.2rem; }

  /* カレンダー
====================================================================================================================================== */
  .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; }
      .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.1em; }
      .calendar_prev_next .move a {
        background-position: left center; }
      .calendar_prev_next .move.prev {
        margin-left: 0; }
        .calendar_prev_next .move.prev a {
          padding-left: 1.6em; }
      .calendar_prev_next .move.next {
        margin-right: 0; }
        .calendar_prev_next .move.next a {
          padding-right: 1.6em;
          background-position: right center; }

  .month_calendar_table tbody th {
    white-space: nowrap;
    text-align: center; }
    .month_calendar_table tbody th .day_of_week {
      display: block;
      line-height: 1; }

  .year_calendar_table {
    border: none; }
    .year_calendar_table tbody th,
    .year_calendar_table tbody td {
      display: block;
      width: 100%;
      margin-bottom: -1px; }
    .year_calendar_table th br {
      display: none; } }
