@charset "utf-8";
/* ============= 独自のスタイル ================= */

/* PCのみ */
@media screen and (min-width:1440px) {}

/* NPC */
@media screen and (max-width:1440px) {

  body,
  button,
  input,
  select,
  textarea,
  button {
    font-family: 'Poppins', 'Noto Sans JP', sans-serif;
    font-size: 16px;
  }

  .wrap {
    max-width: 1000px;
  }

  .big_wrap {
    max-width: 1200px;
  }

  #page_menu li {
    margin: 10px 0;
  }

  #page_menu,
  #page_menu li,
  #page_menu li img {
    width: 60px;
  }

  #page_menu li,
  #page_menu li img,
  #page_menu li .back {
    height: 60px;
  }

  #page_menu li .text small {
    font-size: 50%;
  }

  #page_menu li .text span {
    font-size: 90%;
  }

  #page_menu .text {
    top: 4px;
  }

  .page_mg_title {
    font-size: 2.4vw;
  }
}

/* タブレット想定 */
@media screen and (max-width:960px) {

  body,
  button,
  input,
  select,
  textarea {
    font-size: 16px;
  }

  .pc_show {
    display: none !important;
  }

  .pc_hidden {
    display: block !important;
  }

  .wrap {
    width: calc(100% - 100px);
  }

  #head_menu {
    display: none;
  }

  #page_menu li:hover .back {
    width: 0;
  }

  header {
    justify-content: space-between;
  }

  #head_userlink {
    display: none;
  }
  #head_logo img{
    width: 90%;
  }

  #sp_menu_bt {
    transition: .5s all ease;
  }
  #sp_menu_bt {
    height: 40px;
  }

  #footer_head {
    flex-direction: column;
  }

  #footer_head img {
    margin-bottom: 30px;
  }

  #footer_nav {
    width: 100%;
  }

  #sp_menu_bt {
    display: block;
    width: 45px;
    position: relative;
  }

  .head_active #sp_menu_bt {
    height: 30px;
  }

  .head_active #head_logo img {
    width: 90%;
  }

  .head_active #sp_menu_bt {
    width: 35px;
  }

  #sp_menu_bt::before,
  #sp_menu_bt::after {
    content: "";
    position: absolute;
    width: 100%;
    left: 0;
  }

  #sp_menu_bt::before {
    top: 0;
    border-top: 5px solid #0173BE;
    border-bottom: 5px solid #0173BE;
    height: calc(50% - 7px);
  }

  #sp_menu_bt::after {
    bottom: 0;
    border-bottom: 5px #0173BE solid;
    height: 50%;
  }

  .head_active #sp_menu_bt {
    width: 40px;
  }

  #sp_menu {
    transition: all ease .3s;
    width: calc(100% - 130px);
    max-width: 400px;
    position: fixed;
    height: 100%;
    background: #0173BE;
    top: 0;
    right: -100%;
    z-index: 20000;
  }

  #sp_menu.active {
    right: 0;
  }

  #sp_menu ul {
    padding: 40px 0 0 30px;
  }

  #sp_menu li {
    width: 100%;
    padding: 20px;
  }

  #sp_menu li a {
    font-size: 3vw;
    color: #fff;
  }

  .sp_menu {
    display: block;
  }

  #sp_menu_close_area {
    position: fixed;
    z-index: 19999;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
  }

  #sp_menu_close {
    display: block;
    top: -100px;
    right: 10px;
    position: fixed;
    z-index: 20001;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #fff;
    overflow: hidden;
    transition: all ease .6s;
  }

  #sp_menu_close.active {
    top: 10px;
  }

  #sp_menu_close::before,
  #sp_menu_close::after {
    position: absolute;
    content: "";
    top: 18px;
    width: 35px;
    height: 35px;
    border-top: 4px solid #0173BE;
  }

  #sp_menu_close::before {
    transform: rotate(45deg);
    right: 20px;
  }

  #sp_menu_close::after {
    transform: rotate(-45deg);
    left: 20px;
  }

  .contact_section .bt_area a {
    width: calc(50% - 20px);
    margin: 10px;
  }

  #comfohome_head br {
    display: block;
  }

  #comfohome_head.page_mg_title {
    font-size: 4.4vw;
  }


  /* TOPページ関連 */
  #top_info {
    left: 5%;
  }

  #top_info_inner ul {
    width: 80%;
  }

  #top_main_copy text {
    font-size: 6vw;
  }

  #top_info svg {
    height: 20vh;
  }

  #top_info img {
    width: 40%;
    min-width: 250px;
  }

  #top_info_inner p {
    font-size: 2.5vw;
    line-height: 160%;
  }

  .textbase h2 {
    font-size: 300%;
  }

  .textarea h3 {
    font-size: 160%;
  }

  .textarea .bt_area {
    margin-top: 30px;
  }

  .ts_table th,
  .ts_table td {
    padding: 15px;
  }

  #sp_menu li .nolink::after {
    content: "(近日公開予定)";
    margin-left: 10px;
    color: #fff;
    font-size: 80%;
    display: inline-block;
  }

  #gcalendar iframe{
    aspect-ratio: 1;
  }
}

/* SPのみ */
@media screen and (max-width:520px) {

  body,
  button,
  input,
  select,
  textarea {
    font-size: 3.3vw;
  }

  .wrap {
    width: calc(100% - 60px);
  }

  .sp_hidden {
    display: none !important;
  }

  header {
    padding: 25px 3%;
  }

  #footer_nav {
    display: none;
  }

  #footer_head {
    padding: 30px 0;
    text-align: center;
  }

  #footer_head img {
    width: 55%;
    display: block;
    margin: 0 auto;
    max-width: 250px;
  }

  #footer_foot {
    padding: 10px;
    text-align: center;
  }

  #sp_menu_bt {
    width: 40px;
  }

  #sp_menu li {
    padding: 10px;
  }

  #sp_menu li a {
    font-size: 4vw;
  }

  .head_active #sp_menu_bt {
    width: 35px;
  }

  #page_menu,
  #page_menu li,
  #page_menu li img {
    width: 50px;
  }

  #page_menu li,
  #page_menu li img,
  #page_menu li .back {
    height: 50px;
  }

  #sp_menu_bt::before,
  #sp_menu_bt::after {
    border-width: 4px;
  }

  #sp_menu_bt::before {
    height: calc(50% - 6px);
  }

  #page_menu {
    right: 1%;
  }

  #page_menu,
  #sp_page_menu_bt {
    transition: .3s all ease;
  }

  .contact_section {
    padding: 30px 0;
    font-size: 100%;
  }

  .contact_section img {
    max-width: 240px;
    width: 90%;
    margin: 15px auto 0;
  }

  .contact_section strong {
    font-size: 180%;
  }

  .contact_section .bt_area {
    margin-top: 20px;
  }

  .contact_section .bt_area a {
    width: calc(100% - 40px);
    margin: 5px 10px;
  }

  .q_area,
  .a_area {
    padding: 10px 0 10px 50px;
  }

  .q_area p {
    font-size: 120%;
  }

  .q_area::before,
  .a_area::before {
    font-size: 250%;
    top: calc(50% - 26px);
  }

  .pop_box {
    width: calc(100% - 40px);
    padding: 40px;
  }

  .pop_box h2 {
    font-size: 150%;
    margin-bottom: 15px;
  }

  .pop_box table {
    margin-top: 20px;
  }

  .pop_box .main_table th,
  .pop_box .main_table td {
    text-align: left;
  }

  .main_table th {
    font-size: 110%;
  }

  .main_table th,
  .main_table td {
    padding: 7px;
  }

  .pop_close_bt::before,
  .pop_close_bt::after {
    width: 30px;
    height: 30px;
    top: 10px;
  }

  .pop_close_bt::before {
    right: 15px;
  }

  .pop_close_bt::after {
    left: 15px;
  }

  /* TOPページ関連 */
  #top_main_copy text {
    font-size: 8vw;
    letter-spacing: 1.1rem;
  }

  #top_info_inner p {
    font-size: 15px;
  }

  #top_info_inner ul {
    width: 100%;
    margin-top: 20px;
    border-top: 1px solid #fff;
  }

  #top_info_inner li {
    width: 80%;
    text-align: left;
    border: none;
    margin: 10px 0;
  }

  #top_info_inner li p {
    font-size: 2.5vw;
  }

  #top_info img {
    margin: 30px 0 20px;
  }

  .textbase {
    padding: 50px 0;
  }

  .title_u_text_box {
    padding: 40px 20px 20px;
    margin-top: 30px;
  }

  .title_u_text_box h4 {
    position: static;
    line-height: 120%;
    margin-bottom: 15px;
  }

  .title_u_text_box h4 span {
    padding: 0;
  }

  .textarea {
    padding: 40px 0;
  }

  .textarea .bt_area {
    margin: 30px auto;
  }

  .textarea .bt_area.col2 {
    flex-direction: column;
  }

  .textarea .bt_area.col2 a {
    width: 100%;
    margin: 10px;
  }

  #qa_area .pdf_bt p {
    text-align: left;
  }

  #qa_area .pdf_bt a {
    padding: 10px 0;
    margin-top: 20px;
  }

}