footer {
  background: #333;
  padding: 74px 0 0; }
  footer * {
    color: #fff; }
  footer a:hover,
  footer a:visited {
    color: #ffffff;
    text-decoration: none; }
  footer .inner {
    width: 94%;
    max-width: 1200px;
    margin: 0 auto;
    margin-bottom: 90px; }
    footer .inner .footer_content {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      margin-bottom: 60px; }
      footer .inner .footer_content .menu_content {
        width: 22.5%; }
        @media screen and (min-width: 1024px) {
          footer .inner .footer_content .menu_content:not(:nth-of-type(4n)) {
            margin-right: calc(10% / 3); }
          footer .inner .footer_content .menu_content:not(:nth-last-of-type(-n + 4)) {
            margin-bottom: 50px; } }
        footer .inner .footer_content .menu_content dt {
          font-size: 18px;
          font-weight: 500;
          border-bottom: 1px solid #fff;
          margin-bottom: 11px;
          padding-bottom: 3px; }
        footer .inner .footer_content .menu_content dd ul {
          padding: 0;
          margin: 0;
          list-style: none; }
          footer .inner .footer_content .menu_content dd ul li:not(:last-of-type) {
            margin-bottom: 12px; }
          footer .inner .footer_content .menu_content dd ul li a {
            font-size: 16px;
            text-decoration: none; }
        footer .inner .footer_content .menu_content.sns_link dd ul li a {
          display: flex;
          flex-wrap: wrap;
          align-items: flex-start;
          align-items: center; }
          footer .inner .footer_content .menu_content.sns_link dd ul li a i {
            width: 21px;
            display: block;
            margin-right: 10px; }
            footer .inner .footer_content .menu_content.sns_link dd ul li a i img {
              margin: auto; }
        @media screen and (min-width: 768px) {
          footer .inner .footer_content .menu_content.sns_link dt {
            margin-bottom: 14px; } }
        footer .inner .footer_content .menu_content.sns_link dd ul li:not(:last-of-type) {
          margin-bottom: 16px; }
    footer .inner .footer_txt {
      border: 1px solid #fff;
      padding: 12px;
      width: 90%;
      margin-top: 20px;
      margin: 20px auto 0; }
      @media screen and (max-width: 767px) {
        footer .inner .footer_txt {
          margin-bottom: 20px; } }
      footer .inner .footer_txt p {
        color: #fff;
        text-align: center;
        font-size: 14px; }
        footer .inner .footer_txt p br {
          display: none; }
          @media screen and (max-width: 767px) {
            footer .inner .footer_txt p br {
              display: block; } }
    footer .inner .footer_flex {
      display: flex;
      align-items: flex-start;
      margin-bottom: 40px; }
      @media screen and (max-width: 767px) {
        footer .inner .footer_flex {
          display: block;
          width: 90%;
          margin: 0 auto 5vw; } }
      footer .inner .footer_flex .hills_banner {
        margin-right: 3.333%;
        width: calc(96.667% / 2); }
      footer .inner .footer_flex .calendar_wrapper {
        display: flex;
        align-items: flex-start;
        flex-wrap: wrap;
        width: calc(96.667% / 2); }
        footer .inner .footer_flex .calendar_wrapper .calendar_ttl {
          font-size: 18px;
          font-weight: 500;
          border-bottom: 1px solid #fff;
          margin-bottom: 11px;
          padding-bottom: 3px;
          width: 100%; }
          @media screen and (max-width: 767px) {
            footer .inner .footer_flex .calendar_wrapper .calendar_ttl {
              padding: 0 0 1.3333333333vw;
              position: relative;
              font-size: 4.2666666667vw;
              margin-bottom: 2.6666666667vw;
              width: 100%; } }
        footer .inner .footer_flex .calendar_wrapper .cal_wrapper {
          padding: 0;
          width: 49%; }
          footer .inner .footer_flex .calendar_wrapper .cal_wrapper:first-of-type {
            margin-right: 2%; }
          footer .inner .footer_flex .calendar_wrapper .cal_wrapper table {
            width: 100%; }
            footer .inner .footer_flex .calendar_wrapper .cal_wrapper table tbody {
              width: 100%; }
            footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr.headline {
              background: #111; }
              footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr.headline td {
                padding: 5px;
                color: #fff; }
                footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr.headline td:first-of-type {
                  color: #FD7F1E; }
                footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr.headline td:last-of-type {
                  color: #FD7F1E; }
            footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr th div.cal_ui {
              display: none; }
            footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr th p {
              color: #fff; }
            footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr td {
              padding: 0; }
              footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr td div {
                background: #fff;
                border-radius: 0;
                color: #111;
                padding: 5px; }
                footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr td div.backward {
                  border-radius: 0;
                  color: #aaa; }
                footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr td div.Holyday {
                  color: #fff;
                  background: #faa; }
                footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr td div.Sat {
                  color: #fff;
                  background: #faa; }
                footer .inner .footer_flex .calendar_wrapper .cal_wrapper table.cal tr td div.Sun {
                  color: #fff;
                  background: #faa; }
        footer .inner .footer_flex .calendar_wrapper .calendar_attention {
          width: 100%;
          margin-top: 10px;
          display: flex;
          align-items: center; }
          footer .inner .footer_flex .calendar_wrapper .calendar_attention i {
            width: 20px;
            height: 20px;
            display: block;
            background: #faa;
            margin-right: 10px; }
          footer .inner .footer_flex .calendar_wrapper .calendar_attention p {
            font-size: 16px;
            color: #fff; }
          @media screen and (max-width: 767px) {
            footer .inner .footer_flex .calendar_wrapper .calendar_attention i {
              width: 4vw;
              height: 4vw; }
            footer .inner .footer_flex .calendar_wrapper .calendar_attention p {
              font-size: 4vw; } }
      @media screen and (max-width: 1023px) {
        footer .inner .footer_flex {
          display: block;
          width: 90%;
          margin: 0 auto 40px; }
          footer .inner .footer_flex .hills_banner {
            width: 100%;
            margin: 0 0 4%; }
          footer .inner .footer_flex .calendar_wrapper {
            width: 100%;
            flex-wrap: wrap; } }
      @media screen and (max-width: 767px) {
        footer .inner .footer_flex .hills_banner {
          margin-bottom: 6%; } }
  footer .footer_bottom {
    background: #FD7F1E;
    padding: 28px 0; }
    footer .footer_bottom .inner {
      width: 94%;
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start; }
      footer .footer_bottom .inner .footer_nav ul {
        padding: 0;
        margin: 0;
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        align-items: flex-start; }
        footer .footer_bottom .inner .footer_nav ul li {
          margin-right: 32px; }
          footer .footer_bottom .inner .footer_nav ul li a {
            display: block;
            font-size: 14px;
            color: #fff;
            text-decoration: none;
            font-weight: 400; }
      footer .footer_bottom .inner .copyright {
        margin-left: auto; }
        footer .footer_bottom .inner .copyright small {
          font-size: 14px;
          color: #fff; }
  @media screen and (max-width: 1200px) {
    footer .footer_bottom .inner .footer_nav ul li {
      margin-right: 22px; } }
  @media screen and (max-width: 1023px) {
    footer .inner {
      margin-bottom: 60px; }
      footer .inner .footer_content .menu_content {
        width: 31%; } }
    @media screen and (max-width: 1023px) and (min-width: 768px) {
      footer .inner .footer_content .menu_content:not(:nth-of-type(3n)) {
        margin-right: calc(7% / 2); }
      footer .inner .footer_content .menu_content:not(:nth-last-of-type(-n + 3)) {
        margin-bottom: 40px; } }
  @media screen and (max-width: 1023px) {
        footer .inner .footer_content .menu_content dd ul li a {
          font-size: 14px; }
    footer .footer_bottom {
      padding: 20px 0; }
      footer .footer_bottom .inner {
        display: block; }
        footer .footer_bottom .inner .footer_nav {
          margin-bottom: 20px; }
          footer .footer_bottom .inner .footer_nav ul {
            justify-content: center; }
            footer .footer_bottom .inner .footer_nav ul li {
              margin: 0; } }
          @media screen and (max-width: 1023px) and (min-width: 768px) {
            footer .footer_bottom .inner .footer_nav ul li:not(:last-of-type) {
              margin-right: 20px; } }
  @media screen and (max-width: 1023px) {
              footer .footer_bottom .inner .footer_nav ul li a {
                font-size: 13px; }
        footer .footer_bottom .inner .copyright {
          text-align: center; } }
  @media screen and (max-width: 767px) {
    footer {
      padding: 0; }
      footer .footer_bottom {
        padding: 0 0 5.3333333333vw; }
      footer .inner {
        width: 100%;
        margin-bottom: 0; }
        footer .inner .footer_content {
          display: block;
          margin-bottom: 8vw; }
          footer .inner .footer_content .menu_content {
            width: 100%; }
            footer .inner .footer_content .menu_content dt {
              line-height: 20vw;
              padding: 0 5.5%;
              position: relative;
              font-size: 4.2666666667vw;
              margin-bottom: 0; }
              footer .inner .footer_content .menu_content dt::after {
                content: "";
                width: 2.6666666667vw;
                height: 2.6666666667vw;
                border-right: 2px solid #fff;
                border-bottom: 2px solid #fff;
                transform: rotate(45deg);
                position: absolute;
                right: 5.5%;
                top: calc(50% - 1.3vw ); }
            footer .inner .footer_content .menu_content dd {
              display: none; }
              footer .inner .footer_content .menu_content dd ul {
                display: flex;
                flex-wrap: wrap;
                align-items: flex-start;
                align-items: stretch; }
                footer .inner .footer_content .menu_content dd ul li {
                  width: 50%;
                  border-bottom: 1px solid #fff;
                  margin: 0 !important;
                  position: relative; }
                  footer .inner .footer_content .menu_content dd ul li::after {
                    content: "";
                    width: 2.1333333333vw;
                    height: 2.1333333333vw;
                    top: calc(50% - 1.03vw);
                    right: 5.5vw;
                    border-top: 2px solid #fff;
                    border-right: 2px solid #fff;
                    transform: rotate(45deg);
                    position: absolute; }
                  footer .inner .footer_content .menu_content dd ul li:nth-of-type(odd) {
                    border-right: 1px solid #fff; }
                  footer .inner .footer_content .menu_content dd ul li a {
                    line-height: 1.5;
                    display: block;
                    padding: 4.6vw 5.5vw;
                    font-size: 3.4666666667vw; }
        footer .inner .hills_banner {
          margin-bottom: 8vw; }
      footer .footer_bottom .inner {
        width: 100%; }
        footer .footer_bottom .inner .footer_nav {
          margin-bottom: 4.2666666667vw; }
          footer .footer_bottom .inner .footer_nav ul li {
            width: 50%;
            border-bottom: 1px solid #666666;
            position: relative; }
            footer .footer_bottom .inner .footer_nav ul li::after {
              content: "";
              width: 1.8666666667vw;
              height: 1.8666666667vw;
              border-top: 2px solid #fff;
              border-right: 2px solid #fff;
              transform: rotate(45deg);
              position: absolute;
              top: calc(50% - .9vw);
              right: 5.3333333333vw; }
            footer .footer_bottom .inner .footer_nav ul li:nth-of-type(odd) {
              border-right: 1px solid #666666; }
            footer .footer_bottom .inner .footer_nav ul li.tokusho {
              width: 100%;
              border-right: none; }
            footer .footer_bottom .inner .footer_nav ul li a {
              font-size: 3.4666666667vw;
              padding: 3.4666666667vw 5.5vw; }
            footer .footer_bottom .inner .footer_nav ul li:last-of-type {
              border-right: none;
              border-left: 1px solid #666; } }
