@charset "UTF-8";
/* 幅980px以下からcss適応 */
@media only screen and (max-width: 980px) {
  body {
    border-top: 1px solid #105bbe;
    position: relative;
  }
  body:before {
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    background: #1e6bcd;
    position: absolute;
    left: 0;
    top: 0;
  }
  body#top {
    background-image: none;
  }
  #wrap {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
  }
  #header {
    width: 100%;
    height: auto;
    margin: 0 auto;
    padding: 0 2.5%;
    box-sizing: border-box;
    position: relative;
    display: flex;
    flex-direction: column;
  }
  #header h1,
  #header p.h-link,
  #header p.logo,
  #header p.h-contact {
    position: relative;
  }
  #header h1 {
    order: 1;
  }
  #header .header_menu {
    width: 100%;
    max-width: 900px;
    margin: 12px auto;
  }
  #header .header_menu {
    display: flex;
    justify-content: space-between;
    order: 2;
  }
  #header .header_menu-l p.logo {
    top: 0;
    line-height: 0;
  }
  #header .header_menu-l p.logo a {
    line-height: 0;
  }
  #header .header_menu-r {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  #header .header_menu-r p.h-contact,
  #header .header_menu-r p.h-link {
    top: 0;
  }
  #header .header_menu-r .h-contact {
    display: flex;
    justify-content: flex-end;
    margin-top: 4px;
    line-height: 0;
  }
  #main-image {
    width: 100%;
    box-sizing: border-box;
    padding: 0 2.5%;
    max-width: 100%;
    margin: 0 auto;
    background: linear-gradient(to bottom, #ebf3fc 0%, #ffffff 100%);
    text-align: center;
  }
  #main-image img {
    width: 100%;
    max-width: 900px;
    height: auto;
  }
  #navi {
    display: flex;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    background: linear-gradient(to bottom, #1e6bcd 0%, #2977d8 10%, #034cb0 100%);
  }
  #navi ul {
    display: flex;
    justify-content: space-between;
    width: 95%;
    max-width: 900px;
  }
  #navi ul li {
    width: 16.6666666667%;
  }
  #cont {
    display: flex;
    justify-content: space-between;
    width: 95%;
    max-width: 900px;
    margin: 20px auto 0;
  }
  #main,
  #side {
    float: none;
  }
  #main {
    width: 100%;
    max-width: 614px;
  }
  #side {
    margin-left: 30px;
  }
  #footer {
    width: 100%;
  }
  /* トップページ */
  .info {
    width: 100%;
    box-sizing: border-box;
    background-size: cover;
  }
  /* 下層ページ */
  .access_map {
    width: 100%;
    height: auto;
    min-height: 400px;
  }
}
/* 幅940px以下からcss適応 */
@media only screen and (max-width: 940px) {
  /* common */
  #header .logo {
    margin-right: 24px;
  }
  #header .logo img {
    width: auto;
    max-width: 100%;
    height: auto;
  }
  #header .header_menu-r .h-link,
  #header .header_menu-r .h-contact {
    display: none;
  }
  #header #sp_headmenu {
    display: flex;
    flex-direction: row;
  }
  #header .sp_headmenu-contact {
    margin-right: 12px;
  }
  #header .sp_headmenu-contact a {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #a7c731;
    box-sizing: border-box;
    width: 50px;
    height: 50px;
    border: 2px solid #c1d671;
  }
  #header .sp_headmenu-contact a img {
    width: auto;
    max-width: 100%;
    height: auto;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    width: 50px;
    height: 50px;
    background: #0066be;
    position: relative;
    border: 2px solid #3884c5;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span {
    position: relative;
    width: 36px;
    height: 4px;
    background: #fff;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:before, #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 36px;
    height: 4px;
    background: #fff;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:before {
    top: -10px;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:after {
    bottom: -10px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts {
    display: block;
    width: 100%;
    height: 100%;
    right: -100%;
    background: rgba(0, 102, 190, 0.95);
    position: fixed;
    top: 0;
    z-index: 9999;
    transition: all 0.15s linear 0s;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts.on {
    right: 0;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap {
    position: relative;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn {
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    width: 50px;
    height: 50px;
    background: #fff;
    position: relative;
    border: 2px solid #3884c5;
    position: absolute;
    right: 2.5%;
    top: 35px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span {
    position: relative;
    width: 100%;
    background: #0066be;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span:before, #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 36px;
    height: 4px;
    background: #0066be;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span:before {
    top: -2px;
    transform: rotate(-45deg);
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span:after {
    bottom: -2px;
    transform: rotate(45deg);
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenulist-contact {
    padding-bottom: 24px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenulist-contact a {
    display: block;
    width: 100%;
    max-width: 200px;
    margin: 0 auto;
    background: #fff;
    font-size: 15px;
    font-weight: bold;
    color: #0066be;
    text-align: center;
    box-sizing: border-box;
    padding: 16px;
    line-height: 1;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist {
    padding-top: 120px;
    display: flex;
    flex-wrap: wrap;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts {
    width: 100%;
    border-top: 1px solid #fff;
    box-sizing: border-box;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts:last-of-type {
    border-bottom: 1px solid #fff;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a {
    display: block;
    font-size: 15px;
    font-weight: bold;
    color: #fff;
    box-sizing: border-box;
    padding: 16px 0;
    text-align: center;
    position: relative;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:before, #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:after {
    content: "";
    display: block;
    width: 10px;
    height: 2px;
    background: #fff;
    position: absolute;
    right: 12px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:before {
    transform: rotate(45deg);
    top: calc(50% - 3px);
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:after {
    transform: rotate(135deg);
    top: calc(50% + 3px);
  }
  #navi {
    display: none;
  }
  #cont {
    flex-direction: column;
  }
  #main {
    width: 100%;
    max-width: 100%;
  }
  #main h2 {
    position: relative;
    border-bottom: 2px solid #f5f5f5;
    background: none;
  }
  #main h2:before, #main h2:after {
    content: "";
    display: block;
    position: absolute;
  }
  #main h2:before {
    width: 17px;
    height: 17px;
    background: #fff;
    border: 5px solid #0066be;
    box-sizing: border-box;
    left: 1px;
    top: 1px;
    border-radius: 100px;
  }
  #main h2:after {
    width: 100%;
    height: 0;
    border-bottom: 1px dotted #cdcdcd;
    bottom: -2px;
    left: 0;
  }
  #side {
    width: 100%;
    margin: 0 auto;
    padding: 0;
    background: none;
    border: none;
  }
  #side .section.on {
    display: flex;
    justify-content: center;
    box-sizing: border-box;
    padding: 15px;
    background: #F3FAFF;
    border: 1px solid #BDE0EC;
    margin-bottom: 15px;
  }
  #side .section.on p {
    margin: 0 20px 0 0 !important;
    line-height: 0;
  }
  #side .section.on p:last-of-type {
    margin-right: 0 !important;
  }
  #side .section.on p img {
    width: auto;
    max-width: 100%;
    height: auto;
  }
  #side .sp_sideconts {
    display: flex;
    justify-content: space-between;
    background: #F3FAFF;
    box-sizing: border-box;
    padding: 15px;
    border: 1px solid #BDE0EC;
  }
  #side .sp_sideconts .section {
    width: calc(33.3333333333% - 20px);
    margin-bottom: 0;
    margin-right: 15px;
  }
  #side .sp_sideconts .section:last-of-type {
    margin-right: 0;
  }
  #side .sp_sideconts .section h2 {
    border-bottom: 1px solid #0066be;
    line-height: 0;
  }
  #side .sp_sideconts .section img {
    width: auto;
    max-width: 100%;
    height: auto;
  }
  #side .sp_sideconts .section p {
    margin: 0;
  }
  #side .sp_sideconts .section .media-thum {
    margin-right: 12px;
  }
  #side .sp_sideconts .media-txt span br {
    display: none;
  }
  #footer {
    display: flex;
    flex-wrap: wrap;
  }
  #footer #pagetop {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding-right: 2.5%;
  }
  #footer .fl {
    width: calc(70% - 24px);
    box-sizing: border-box;
    margin-left: 24px;
  }
  #footer .fr {
    width: auto;
    max-width: 250px;
    box-sizing: border-box;
    margin-right: 24px;
    margin-left: 24px;
  }
  /* 下層ページ */
  #second {
    background: none;
  }
  #second .pan {
    border: 2px solid #fff;
    background: linear-gradient(to bottom, #ffffff 0%, #ffffff 38%, #f2f2f2 100%);
    box-sizing: border-box;
    padding: 1px;
    padding: 8px 12px;
    line-height: 1;
    position: relative;
  }
  #second .pan:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    border: 1px solid #f1f1f1;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
  }
  #second .page-title {
    border: 1px solid #e1e1e1;
    box-sizing: border-box;
    padding: 17px 18px;
    position: relative;
  }
  #second .page-title:before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    right: 0;
    bottom: 0;
    opacity: 0.8;
  }
  #second .page-title.feature:before {
    background: url("../feature/images/sp_bg-feature.png") no-repeat right center/contain;
  }
  #second .page-title.concept:before {
    background: url("../concept/images/sp_bg-cocept.png") no-repeat right center/contain;
  }
  #second .page-title.menu:before {
    background: url("../menu/images/sp_bg-menu.png") no-repeat right center/contain;
  }
  #second .page-title.price:before {
    background: url("../price/images/sp_bg-price.png") no-repeat right center/contain;
  }
  #second .page-title.access:before {
    background: url("../access/images/sp_bg-access.png") no-repeat right center/contain;
  }
  #second .page-title.profile:before {
    background: url("../profile/images/sp_bg-profile.png") no-repeat right center/contain;
  }
  #second .page-title.link:before {
    background: url("../link/images/sp_bg-link.png") no-repeat right center/contain;
  }
  #second .page-title.contact:before {
    background: url("../contact/images/sp_bg-contact.png") no-repeat right center/contain;
  }
  #second .page-title.privacy:before, #second .page-title.sitemap:before {
    background: url("../images/common/sp_bg01.png") no-repeat right center/contain;
  }
  #second .page-title .second_ttl {
    font-size: 24px;
    font-weight: bold;
    position: relative;
    box-sizing: border-box;
    padding: 10px 0 8px 28px;
    line-height: 1.2;
  }
  #second .page-title .second_ttl:before {
    content: "";
    display: block;
    width: 14px;
    height: 100%;
    box-sizing: border-box;
    border: 1px solid #b3d1ec;
    background: linear-gradient(to bottom, #b3d1ec 0%, #e0ecf7 50%, #b3d1ec 51%, #b3d1ec 100%);
    position: absolute;
    left: 0;
    top: 0;
  }
}
/* 幅680px以下からcss適応 */
@media only screen and (max-width: 680px) {
  #header h1 {
    font-size: 12px;
    line-height: 1.25;
    text-align: left;
    padding-top: 6px;
  }
  #header .header_menu {
    margin-top: 16px;
  }
  #header .sp_headmenu-contact {
    margin-right: 8px;
  }
  #header .sp_headmenu-contact a {
    width: 40px;
    height: 40px;
  }
  #header .sp_headmenu-contact a img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 20px;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu {
    width: 40px;
    height: 40px;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span {
    width: 28px;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:before, #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:after {
    width: 28px;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:before {
    top: -9px;
  }
  #header .sp_headmenu-hummenu button.sp_headmenu-hummenu-menu span:after {
    bottom: -9px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn {
    width: 40px;
    height: 40px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span:before, #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-closebtn span:after {
    width: 28px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist {
    padding-top: 108px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a {
    font-size: 14px;
    padding: 12px 0;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:before, #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:after {
    width: 8px;
  }
  #header .sp_headmenu-hummenu .sp_headmenu-hummenu-conts .sp_headmenu-hummenu-wrap .sp_headmenu-menulist .sp_headmenu-menulist-conts a:after {
    top: calc(50% + 2px);
  }
  .info {
    border: 4px solid #F5E9CF;
    background: none;
    position: relative;
    box-sizing: border-box;
    padding: 16px 16px 16px;
  }
  .info:before {
    content: "";
    display: block;
    width: 35px;
    height: 45px;
    background: url("../images/top/sp_info-bg01.png") no-repeat left top;
    position: absolute;
    top: -2px;
    left: -2px;
  }
  .info:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url("../images/top/sp_info-bg.png") no-repeat right top/contain;
    opacity: 0.12;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
  }
  .info div {
    position: relative;
    padding-top: 40px;
  }
  .info div:before {
    content: "";
    display: block;
    width: 100%;
    max-width: 257px;
    height: 100%;
    max-height: 19px;
    background: url("../images/top/sp_info-ttl.png") no-repeat left top;
    position: absolute;
    left: 20px;
    top: 0;
  }
  .section {
    margin-bottom: 24px;
  }
  .section p {
    font-size: 15px;
    line-height: 1.75;
  }
  .img,
  .img02 {
    float: none;
    margin: 0 auto 12px;
    line-height: 0;
    text-align: center;
  }
  #side .section:first-of-type.on {
    justify-content: center;
    flex-direction: row;
    padding: 0;
    border: none;
    background: none;
  }
  #side .section:first-of-type.on p {
    width: 100%;
    max-width: 226px;
    text-align: center;
    margin: 0 8px 0 0 !important;
  }
  #side .section:first-of-type.on p:last-of-type {
    margin: 0 !important;
  }
  #side .sp_sideconts {
    width: 100%;
    margin: 0 auto;
    flex-direction: column;
    padding: 12px;
  }
  #side .sp_sideconts .section {
    width: 100%;
    margin: 0 auto 24px !important;
  }
  #side .sp_sideconts .section:last-of-type {
    margin-bottom: 0 !important;
  }
  #side .sp_sideconts .section h2 {
    margin-bottom: 12px;
  }
  #side .sp_sideconts .section p.ar {
    text-align: left;
    margin-bottom: 8px;
  }
  #side .sp_sideconts .section h3 {
    margin: 0;
  }
  #side .sp_sideconts .section p .br {
    display: inline;
  }
  #side .sp_sideconts .section .media-txt br {
    display: none;
  }
  #side .sp_sideconts .section .media-txt span {
    display: block;
  }
  #side .side_map iframe {
    width: 100%;
    height: 88vw;
    min-height: 250px;
    max-height: 280px;
  }
  #footer {
    flex-direction: column;
  }
  #footer #pagetop {
    margin-bottom: 12px;
  }
  #footer .fl,
  #footer .fr {
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    padding: 0 5%;
  }
  #footer .fl {
    order: 3;
  }
  #footer .fr {
    order: 2;
    max-width: 100%;
    text-align: center;
    margin-bottom: 8px;
    color: #fff;
  }
  /* 下層ページ */
  #second .page-title {
    padding: 10px;
  }
  #second .page-title .second_ttl {
    font-size: 20px;
    padding: 6px 0 2px 18px;
  }
  #second .page-title .second_ttl:before {
    width: 10px;
  }
  .price-t,
  .time-t {
    box-sizing: border-box;
    border: 1px solid #ddd;
    display: block;
    background: #fff;
  }
  .price-t tbody,
  .time-t tbody {
    display: block;
  }
  .price-t tbody tr,
  .time-t tbody tr {
    display: flex;
    flex-direction: column;
  }
  .price-t tbody tr th, .price-t tbody tr td,
  .time-t tbody tr th,
  .time-t tbody tr td {
    width: 100%;
    display: block;
    box-sizing: border-box;
    padding: 8px;
    text-align: left;
  }
  .access_map {
    height: 70vw;
    min-height: 130px;
    max-height: 260px;
  }
  table.mailform {
    display: block;
    box-sizing: border-box;
  }
  table.mailform tbody {
    display: block;
  }
  table.mailform tbody tr {
    display: flex;
    flex-direction: column;
  }
  table.mailform tbody tr th, table.mailform tbody tr td {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
    padding: 7px 10px;
  }
  table.mailform tbody tr th {
    font-weight: bold;
  }
  table.mailform tbody tr th img {
    margin-right: 4px;
    margin-left: 0;
  }
  table.mailform tbody tr td input,
  table.mailform tbody tr td textarea {
    font-size: 17px;
    box-sizing: border-box;
  }
  table.mailform tbody tr td textarea {
    width: 100% !important;
  }
  #confirmWindow,
  #confirmBody {
    width: 100% !important;
  }
  ul.sitemap li {
    margin-left: 1em;
  }
}/*# sourceMappingURL=sp.css.map */