@charset "UTF-8";


/*==============================================================================
スマホ＋ipadまで(0~768px)
==============================================================================*/
@media screen and (max-width: 768px) {

  /*---------------------
  ■ 見出し
  ---------------------*/
  h2.icon {
    margin: 3rem 0 2rem;
  }
  h2.icon:before {
    top: -1.5rem;
  }
  h2.uline {
      font-size: 3rem;
      font-weight: bold;
      margin: 0 0 3rem;
  }
  h2.uline::after {
      bottom: -1.2rem;
  }
  h3.uline {
      font-size: 2.4rem;
  }
  h2.page {
      margin-top: 2rem 0 1rem;
  }
  /*---------------------
  ヘッダー
  ---------------------*/
  div.header_contents {
      display: none;
  }
  .navigation-branding p.main-title a{
    font-size: 2.4rem;
    color: #43a42d!important;
  }
  .navigation-branding img, .site-logo.mobile-header-logo img {
    height: 50px;
    width: auto;
    margin-top: -.75rem;
  }
  .main-navigation {
      background: #fff;
  }

  /*---------------------
  ナビゲーション
  ---------------------*/
  nav .inside-navigation {  /* off canvas */
    padding: 0 !important;
  }

  div#mobile-menu {
    position: relative;
    z-index: 2;
  }
  button.menu-toggle {
      width: auto;
      border: 0;
      float: right;
      line-height: 2.8rem;
      padding: 0;
  }
  .dropdown-menu-toggle:before {
      color: #43a42d;
  }
  .menu-toggle .mobile-menu {
      display: none;
  }
  .main-navigation {
      margin-top: 0;
      height: 6rem;
  }
  .main-navigation.toggled .main-nav li {
      border-bottom: solid 1px #ccc;
      background-color: #fff;
  }
  .main-navigation .main-nav ul li:hover > a,
  .main-navigation .main-nav ul li:focus > a,
  .main-navigation .main-nav ul li.sfHover > a,
  .main-navigation .main-nav ul ul.sub-menu li > a {
      color: #333;
  }
  .main-navigation ul ul {
    box-shadow: none;
  }
  ul.sub-menu {
    border-top: solid 1px #ccc;
  }
  ul.sub-menu>li {
    background-color: #eaf7f6 !important;
  }
  .main-navigation .main-nav ul li[class*="current-menu-"] {
    border-bottom: none;
  }
  .main-navigation .main-nav ul li[class*="current-menu-"] > a {
    color: #fff;
    background-color: #43a42d;
  }
  .main-navigation.has-branding .menu-toggle{
      padding: 0;
      border-left: solid 1px #ddd;
  }
  .main-navigation.has-branding .menu-toggle,
  .main-navigation.has-sticky-branding.navigation-stick .menu-toggle {
      padding-right: 0;
      height: 6rem;
  }
  .menu-toggle:before {
      content: "MENU" !important;
      display: block;
      font-family: Roboto;
      font-size: 1.2rem;
      padding: .5rem 1rem 0;
      width: 6rem;
      line-height: 80%;
  }
  .toggled-on li {
    padding: 1rem;
  }
  ul.sub-menu li {
    background-color: #4f4f4f;
  }
  /* スマホでサイドメニュー非表示 */
  .widget_nav_menu{
    display: none;
  }

  /*---------------------
  ■ ページヒーロー(トップ＆固定)
  ---------------------*/
  /* 背景にドットを敷く。<div class="bg_dot">で囲む。 */
  .bg_dot {
      text-align: center;
      height: 100%;
      overflow: initial;
      padding: 1rem;
      display: flex;
      align-items: center;
  }
  p.main_txt {
    font-size: 2rem;
    margin: 2rem 0;
    line-height: 3rem;
  }
  p.main_txt span.caption {
      margin-left: 0;
  }
  .page-hero-top .inside-page-hero {
      height: 100%;
  }
  .page-hero-page {
      height: 10rem;
      margin-bottom: 1rem;
  }
  /*---------------------
  フッター
  ---------------------*/
  address {
      padding: 3rem 3rem 1rem;
  }
  address .box-wrapper .cta {
      border-left: none;
      border-top: solid 1px #eaeaea;
      padding-top: 3rem;
      margin-top: 1rem;
  }
  address .box-wrapper.two.stepdown {
      text-align: center;
  }
  address .company_logo {
      margin: auto;
  }
  address .tel_fax {
      justify-content: center;
  }
  address a.button_first {
    margin: 1rem auto;
  }
  section.footer_contents_wrap {
      padding: 0 1rem;
  }
  address .box {
    text-align: left;
  }
  address .pdf {
    padding: 1rem;
    display: block;
    margin: 2rem auto 0;
  }
  /* ================================================
  ■ お知らせ
  ================================================ */
  .news_wrap {
      padding: 1rem 0 3rem;
  }
  .news_contents {
      max-width: initial;
      height: auto;
      max-height: initial;
  }
  .news_contents a {
      display: block;
      text-decoration: none;
      padding: 2rem 1rem;
  }
  a.button_third {
      margin: 3rem auto 0;
  }
  li.list-news .news-cat {
      padding: .3rem .5rem;
      margin: 0 .5rem;
      width: auto;
  }
  li.list-news .news-txt {
      padding: 0;
      display: block;
  }
  li.list-news .news-date {
      margin-right: 0;
  }
  li.list-news .news-txt {
      padding: 1rem 0 0 0;
      display: block;
  }
  div.entry-meta {
      margin-bottom: 5rem;
  }
  body.single div.entry-meta {
	    margin-bottom: 1rem;
	}
  footer.entry-meta {
      margin-top: 0;
      padding-top: 0;
  }
  .nav-next { float: left; }
  .site-main .post-navigation {
    margin-bottom: 5rem;
  }
  /* ================================================
  ■ テーブル
  ================================================ */
  table.plan th.bg_blue:before {
      margin: -2.5rem auto .5rem;
  }
  table.plan td.price {
      font-size: 3.6rem;
      padding: 0;
      vertical-align: middle;
  }
  table.plan tr.title > td{
      font-size: 1.8rem;
      font-weight: bold;
      vertical-align: middle;
  }
  table.plan tr:nth-child(odd) {
      background: #f9f9f9;
  }
  table.plan tr:nth-child(even) {
      background: #fff;
  }
  table.option td span {
     display: block;
  }
  table.option tr td:nth-of-type(1){
    width: 70%;
  }
  table.option tr td:nth-of-type(2){
    width: 30%;
  }
  /* ================================================
  ■ Smart Slider
  ================================================ */
  div#n2-ss-2item1 span.title {
    font-size: 4rem;
    margin-bottom: 3rem;
    line-height: 150%;
  }
  div#n2-ss-2item1 span.title::after {
      bottom: -2rem;
  }
  div#n2-ss-2item1 {
      line-height: 60% !important;
  }
  div#n2-ss-2item1 span.text {
      font-size: 1.4rem;
  }
}

/*==============================================================================
スマホ以外(768px以上)
==============================================================================*/
@media screen and (min-width: 768px) {
  .sp_br{ display: none; }
}


/*==============================================================================
スマホのみ(0～767px)
==============================================================================*/
@media screen and (max-width: 767px) {
  /*---------------------
  ■ 基本/共通設定
  ---------------------*/
  h2 {
    font-size: 2.1rem;
    margin: 2rem 0 1rem;
  }
  h3 {
      font-size: 1.8rem;
      margin-bottom: 1rem;
      padding: 1rem 0;
  }
  .sp_br{ display: inline-block; }
  .anchor {
    display: block !important;
    padding-top: 30px !important;
    margin-top: -20px !important;
  }
  .card_title {
      padding: .5rem 0 2rem;
  }
  /*---------------------
  ■ パンくず ※スマホのみ非表示
  ---------------------*/
  ul.breadcrumb {
    display: none;
  }
  /*---------------------
  ■ ページヒーロー(トップ＆固定)
  ---------------------*/
  .page-hero-top{
    padding: 0;
    min-height: 80vh;
    height: 80vh;
    background: url(../images/main_bg_sp.jpg) no-repeat center center;
    background-size: cover;
  }
  h1.main span {
      font-size: 2.1rem;
      padding: .5rem 1rem;
  }
  h1.main strong {
      font-size: 2.6rem;
      margin: 0;
  }
  /* ---------------------
  ■ ボタン
  --------------------- */
  a.button_first {
      font-size: 1.8rem;
      margin: 3rem auto 2rem;
      max-width: 30rem;
  }
  /* ---------------------
  ■ サイドバー/ウィジェット
  --------------------- */
  div#right-sidebar {
      padding-left: 0;
  }

  /*---------------------
  テーブル
  ---------------------*/
  table.common tr th {
    padding: 1rem 1.5rem;
  }
  table.common th, table.common td {
    display: block;
    width: 100%;
    border: none;
    border-bottom: 1px solid #ccc;
    margin: 0;
    padding: 1.5rem;
  }
  table.common tr:last-child td{
    border: none;
  }

  table.common_head {
      border: 1px solid #ccc;
  }
  table.common_head tr th {
    padding: 1rem 1.5rem;
  }
  table.common_head th, table.common_head td {
    width: 100%;
    margin: 0;
    padding: 1rem 1.5rem;
  }

  table.common2 tr th, table.common2 tr td {
      padding: .5rem 1rem;
      display: block;
      margin-bottom: 0;
  }

  /*---------------------
  問合せ
  ---------------------*/
  input[type='text'], input[type='email'], input[type='tel'], textarea {
      min-height: 4rem;
  }
  input.wpcf7-form-control.wpcf7-file { /* inputファイルのtableはみ出しを防ぐ */
    width: 100%;
  }
  span.wpcf7-form-control > span.wpcf7-list-item {
      margin-bottom: 1rem;
  }
  span.wpcf7-form-control > span.last{
    margin-bottom: 0;
  }

  /*---------------------
  よくある質問
  ---------------------*/
  .faq .faq_tab label {
    line-height: 2.4rem;
    padding: 2rem 4rem 2rem 2rem;
  }

  /*---------------------
  404/検索結果
    ---------------------*/
  body.error404 .entry-title,
  body.error404 p,
  body.search .entry-title,
  body.search p,
  form.search-form {
      text-align: left;
  }
}

/*==============================================================================
タブレットのみ(768～1200px未満)
==============================================================================*/
@media screen and (min-width: 768px) and (max-width: 1199px) {
  .page-hero-page { margin-bottom: 0; }
  ul.breadcrumb { margin-bottom: 3rem; }
}

/*==============================================================================
SE対応(320px未満)
==============================================================================*/
@media screen and (max-width: 320px) {
  h1.main {
      font-size: 3rem;
      line-height: 4rem;
  }
  p.main_txt {
      font-size: 2rem;
  }
  p.main_txt span {
      font-size: 3rem;
  }
}
