/*
Theme Name:     precious_tcd019_child
Description:    precious_tcd019の子テーマ
Author:         system3r
Template:       precious_tcd019

(optional values you can add: Theme URI, Author URI, Version, License, License URI, Tags, Text Domain)
*/



p {
    line-height: 140%;
}

/*  header
  ---------------------------------------------------------------*/
  @media screen and (max-width: 768px) {
a.menu_button:before {
    font-size: 30px;
    width: 30px;
    height: 30px;
    color: #2B66AD;
}

/* a.menu_button:hover {
    background: #2B66AD;
} */

.menu_button {
    background-color: #fff;
    color: #2B66AD;
    transition: all 0.3s ease;
  }
  
  /* 開いた状態（.activeが付いたとき） */
  .menu_button.active {
    background-color: #2B66AD;
    color: #fff;
  }

  .menu_button.active:before {
    color: #fff;
  }

}

/*  fv
  ---------------------------------------------------------------*/

.fv_static {
    background-image: url('../img/fv_image.jpg');
    background-size: cover;
    background-position: center center;
    height: 600px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-bottom: 130px;
  }
  
  .fv_static .fv_text h1 {
    color: #fff;
    font-size: 42px;
    font-weight: bold;
    margin: 0;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.9);
    letter-spacing: 0.07em;
  }
  
  .fv_static .fv_text p {
    color: #fff;
    font-size: 18px;
    margin: 0;
    line-height: 1.6;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 1);
    letter-spacing: 0.15em;
    font-weight: 600;
  }
  
  @media screen and (max-width: 768px) {
    .fv_static {
        height: 610px;
      padding: 0 20px;
    }
  
    .fv_static .fv_text h1 {
        font-size: 24px;
    }
  
    .fv_static .fv_text p {
        font-size: 11px;
        letter-spacing: 0.07em;
        margin-left: 5px;
    }
    .section_title {
        margin-bottom: 28px;
    }
  }
  



  /*  TOP_business
  ---------------------------------------------------------------*/

  .business_section {
    width: 100%;
    /* max-width: 1200px; */
    margin: 0 auto 100px;
  }
  
  .section_title {
    display: flex;
    align-items: baseline; /* 文字のベースラインで揃える */
    gap: 11px;         /* 英語と日本語の間隔 */
    margin-bottom: 60px;
    flex-wrap: wrap;
    margin-bottom: 26px;
  }
  
  .section_title h2 {
    font-size: 75px;
    color: #2B66AD;
    margin: 0;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.2;
  }
  
  .section_title .section_subtitle {
    font-size: 16px;
    color: #2B66AD;
    font-weight: 600;
    white-space: nowrap;
    padding-top: 12px; /* 英字より少し下に配置 */
  }
  
  .business_item {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    margin-bottom: 60px;
    height: 380px;
  }
  

  
  .business_text {
    flex: 1;
    padding: 40px 0px 40px 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #fff;
  }
  
  .business_text h3 {
    font-size: 25px;
    font-weight: bold;
    margin-bottom: 20px;
    margin-top: 0px;
  }
  
  .business_text p {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 30px;
    width: 85%;
  }
  
  .business_image {
    flex: 1;
    display: flex;
    align-items: stretch;
  }
  
  .business_image img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* これで画像が潰れずにトリミングされる */
    display: block;
  }
  
  .blue_bg {
    background-color: #2B66AD;
  }
  
  .btn_more {
    display: inline-block;
    padding: 12px 24px;
    border: 1px solid #fff;
    background-color: #fff;
    color: #2B66AD;
    font-size: 14px;
    text-decoration: none;
    border-radius: 50px;
    transition: 0.3s;
    width: 33%;
    text-align: center;
    font-weight: 600;
  }

  a.btn_more {
    color: #2B66AD;
}
  
  .btn_more:hover {
    opacity: 0.7;
    color: #2B66AD;
  }
  
  @media screen and (min-width: 769px) {
    .business_item.reverse {
      display: flex;
      flex-direction: row-reverse;
    }
  }

  /* スマホ対応 */
  @media screen and (max-width: 768px) {
    .business_item {
        display: block;
        flex-direction: column-reverse; 
      }
    
      .business_item.reverse {
        display: block;
        flex-direction: column;
      }
  
    .business_image img {
      width: 100%;
      height: 230px;
      object-fit: cover;
      display: block;
    }
  
    .business_text {
        padding: 30px 20px 40px 27px;
    }
  
    .section_title h2 {
        font-size: 47px;
      text-align: center;
      margin-left: 10px;
    }
  
    .section_title p {
      text-align: center;
    }
    #main_col {
        padding:0px;
    }
    .business_item {
      margin-bottom: 230px;
    }
    .business_text p {
        width: 95%;
    }
  }

  
  /*  COMPANY、OUR VISION　banner
  ---------------------------------------------------------------*/

  .banner_section {
    width: 100%;
  }
  
  .banner_box {
    display: block;
    position: relative;
    background-size: cover;
    background-position: center;
    height: 400px;
    text-decoration: none; 
    color: inherit;
  }
  
  .overlay {
    background-color: rgba(34, 77, 139, 0.7); 
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    transition: background-color 0.3s ease;
  }
  
  .banner_box:hover .overlay {
    background-color: rgba(34, 77, 139, 0.4); 
  }
  
  .banner_content {
    color: #fff;
    padding: 40px;
    max-width: 1000px;
    width: 100%;
  }
  
  .banner_content.right {
    text-align: right;
    margin-left: auto;
  }
  .banner_content.right h2 {
    margin-top: -100px;
}
  
  .banner_content.left {
    text-align: left;
    margin-right: auto;
  }
  
  .banner_content h2 {
    font-size: 85px;
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-bottom: 10px;
  }

  .banner_content.left h2 {
    margin-left: -7px;
    margin-top: 0px;
}
  
  .banner_content .sub {
    font-size: 16px;
    margin-bottom: 20px;
    margin-top: -37px;
    margin-right: 6px;
  }
  
  .banner_content .desc {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 20px;
    max-width: 500px;
  }
  
  
  .banner_box:hover .banner_content {
    transform: translateY(-4px);
    transition: transform 0.3s ease;
  }
  

  @media screen and (max-width: 768px) {

    .banner_box {
      height: auto;
    }
  
    .overlay {
      flex-direction: column;
      /* justify-content: center; */
      /* padding: 40px 20px; */
    }
  
    .banner_content {
      text-align: center;
      padding: 0;
    }
  
    .banner_content.right,
    .banner_content.left {
      margin: 0;
      text-align: center;
    }
  
    .banner_content h2 {
      font-size: 40px;
      margin: 0 0 10px;
    }
  
    .banner_content .sub {
        font-size: 14px;
        margin: -25px 24px 20px;
        text-align: right;
        font-weight: 500;
    }
  
    .banner_content .desc {
        font-size: 12px;
        line-height: 1.7;
        margin: 0px 19px 20px;
        text-align: left;
        width: 71%;
    }
  
    .view-more {
      font-size: 13px;
      padding-bottom: 4px;
      text-align: right;
      margin-right: 20px;
      margin-top: 90px;
    }
    
    .banner_content.right h2 {
        margin-top: 15px;
        text-align: right;
        margin-right: 20px;
        margin-bottom: 18px;
    }

    .banner_section {
        padding-top: 50px;
    }

    a.banner_box {
        height: 240px;
    }

    .banner_content.left h2 {
        margin-left: 13px;
        margin-top: 27px;
        text-align: left;
        margin-right: 20px;
        margin-bottom: 18px;
    }

    .banner_content.left .sub {
        text-align: left;
        margin-left: 18px;
        margin-bottom: 14px;
    }

    .banner_content.left .view-more {
        margin-top: 0px;
    }

    .vision_banner {
        background-position: 70% center;
        background-size: cover;
        background-repeat: no-repeat;
      }

  }



    /* NEWS
  ---------------------------------------------------------------*/


  #index_news {
    max-width: 960px;
    margin: 90px auto;
    padding: 60px 20px;
    font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  }
  
  .top_news {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-bottom: 40px;
  }
  
  .top_news h3 {
    font-size: 60px;
    font-weight: 700;
    color: #2B66AD; /* 濃い青 */
    margin: 0;
    line-height: 1;
  }
  
  .top_news .sub {
    color: #2B66AD;
    font-weight: bold;
    font-size: 14px;
    margin-left: 10px;
    align-self: flex-end;
  }
  
  .news_archive a {
    display: inline-block;
    background-color: #2B66AD;
    color: #fff;
    text-decoration: none;
    padding: 16px 77px;
    border-radius: 999px;
    font-size: 16px;
    font-weight: bold;
    transition: 0.3s;
  }
  
  .news_archive a:hover {
    opacity: 0.8;
  }
  
  #index_news ol {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  #index_news li {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
  }
  
  #index_news .date {
    border: 1px solid #000;
    padding: 10px 20px;
    font-weight: bold;
    font-size: 16px;
    margin-right: 20px;
    white-space: nowrap;
  }
  
  #index_news .title {
    font-size: 16px;
    font-weight: bold;
  }
  
  #index_news .title a {
    text-decoration: none;
    color: #222;
    transition: 0.3s;
  }
  
  #index_news .title a:hover {
    color: #2B66AD;
  }

  .news_heading {
    display: flex;
    align-items: flex-end;
    gap: 8px; /* ← NEWSとお知らせの間の余白 */
  }
  
  .news_heading h3 {
    font-size: 70px;
    font-weight: bold;
    color: #2B66AD;
    margin: 0;
    line-height: 1;
  }
  
  .news_heading .sub {
    font-size: 16px;
    font-weight: bold;
    color: #2B66AD;
    margin: 0px 0px 0px 8px;
  }

  .news_archive.pc_only {
    display: block;
  }
  .news_archive.sp_only {
    display: none;
  }
  
  @media screen and (max-width: 768px) {
    .news_archive.pc_only {
      display: none;
    }
    .news_archive.sp_only {
      display: block;
      margin-top: 8px;
      text-align: center;
    }

    #index_news li {
        flex-direction: column;       /* ← 横並びから縦並びへ */
        align-items: flex-start;      /* ← 左寄せ */
      }
    
      #index_news .date {
        margin: 0 0 8px 0;            /* 下に余白をつける */
        font-size: 14px;
        border: none;                 /* 枠線を消す（お好みで） */
        padding: 0;
      }
    
      #index_news .title {
        font-size: 15px;
        font-weight: bold;
      }
    
      #index_news .title a {
        line-height: 1.6;
      }

      .news_heading h3 {
        font-size: 47px;
      }

      #index_news {
        margin: 0px auto;
      }
  }


    /* NEWS TOP
  ---------------------------------------------------------------*/

  .contact_banner {
    display: block;
    background-color: #2B66AD;
    color: #fff;
    text-align: center;
    padding: 100px 20px;
    text-decoration: none;
    transition: background-color 0.3s ease;
  }
  
  .contact_banner h2 {
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: -9px 0 -9px;
    transition: transform 0.3s ease;
    color: #fff;
  }
  
  .contact_banner p {
    font-size: 16px;
    font-weight: bold;
    margin: 0;
    transition: transform 0.3s ease;
    color: #fff;
  }
  
  .contact_banner:hover {
    background-color: rgba(43, 102, 173, 0.7);
  }
  
  .contact_banner:hover h2,
  .contact_banner:hover p {
    transform: translateY(-4px);
  }
  

    /* NEWS 一覧ページ
  ---------------------------------------------------------------*/

  .news_section_title {
    display: flex;
    flex-direction: column; 
    align-items: center;   
    gap: 6px;               
    margin-bottom: 70px;
    margin-top: 50px;
  }
  
  .news_section_title .subtitle {
    font-size: 20px;
    color: #2B66AD;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin: 0;
    margin-bottom: -10px;
  }
  
  .news_section_title h2 {
    font-size: 33px;
    color: #2B66AD;
    font-weight: bold;
    margin: 0;
  }

  section.news_section {
    margin: 0px 207px 140px;
}

section.news_section .page_navi {
    margin: 0 249px;
}


section.news_section .page_navi span.current {
    background: #2B66AD;
}

.page_navi a, .page_navi a:hover, .page_navi span
 {
    font-size: 14px;
    padding: 15px 17px;
 }




 @media screen and (max-width: 768px) {
 section.news_section {
    margin: 0px 20px 80px;
}

section.news_section .page_navi {
    margin: 0 61px;
}

.news_section_title h2 {
    font-size: 27px;
  }
 }


    /* NEWS シングルページ
  ---------------------------------------------------------------*/

 @media screen and (max-width: 768px) {
 section.news_section #index_news {
    padding: 43px 0 0px;
}
}


      /* footer
  ---------------------------------------------------------------*/
  .foot_bnr2 {
    margin-top: 30px;
    text-align: left; /* または center */
  }

  .foot_bnr2 a {
    margin-left: 100px;
}

.info img {
    width: 60%;
}

.foot_bnr2 img {
    width: 35%;
}

div#privacy-policy\ sp_only
 {
    display: none;
}


@media screen and (max-width: 768px) {

    div#privacy-policy\ sp_only
 {
    display: block;
    text-align: center;
    text-decoration: underline;
    font-size: 13px;
}

.info img {
    width: 70%;
}

.foot_bnr2 a {
    margin-left: 0px;
}
.foot_bnr2 img {
    width: 100%;
}

}


      /* privacy-policy プライバシーポリシー
  ---------------------------------------------------------------*/

  .privacy-policy.contents {
    margin: 0 150px;
}

  @media screen and (max-width: 768px) {
    .privacy-policy.contents {
        margin: 0 20px;
    }
}



      /* business_section 事業内容
  ---------------------------------------------------------------*/
.business_section {
    /* max-width: 1000px; */
    margin: 0 auto;
    font-family: "Noto Sans JP", sans-serif;
  }
  
  .business-section_title {
    display: flex;
    flex-direction: column; 
    align-items: center;   
    gap: 6px;               
    margin-bottom: 100px;
    margin-top: 50px;
  }
  
  .business-section_title .subtitle {
    font-size: 20px;
    color: #2B66AD;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin: 0;
    margin-bottom: -10px;
  }
  
  .business-section_title h2 {
    font-size: 33px;
    color: #2B66AD;
    font-weight: bold;
    margin: 0;
  }
  
  .business_block {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 80px;
    gap: 40px;
  }
  
  .business_block.reverse {
    flex-direction: row-reverse;
  }
  
  .business_block .text {
    flex: 1;
  }
  
  .business_block .text h3 {
    font-size: 24px;
    font-weight: bold;
    color: #2B66AD;
    margin-bottom: 20px;
    line-height: 1.5;
    margin-top: 0;
  }
  
  .business_block .text p {
    font-size: 15px;
    line-height: 2;
    color: #333;
  }
  
  .business_block .image {
    flex: 1;
  }
  .business_block .image img {
    width: 100%;
    height: 330px;   
    object-fit: cover;         
    border-radius: 4px;
  }

  .business_banner {
    display: block;
    text-align: center;
    margin-bottom: 60px;
  }
  
  .business_banner img {
    display: inline-block;
    max-width: 85%;
    height: auto;
    transition: opacity 0.3s ease, transform 0.3s ease;
  }
  
  /* ホバー効果（透過＋浮く） */
  .business_banner:hover img {
    opacity: 0.8;
    transform: translateY(-3px);
  }


  
  .sp_only {
    display: none;
  }

  .business_block .image-bg {
    width: 48%;
    height: 380px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 4px;
    margin-top: 12px;
  }

  
  
  @media screen and (max-width: 768px) {

    .pc_only {
        display: none !important;
      }

    .business_block {
        display: flex;
      flex-direction: column;
      gap: 0px;
      margin-bottom: 50px;
    }
    .business_block.reverse {
      flex-direction: column;
    }

    .business_block.sp_only .title {
        width: 100%;
        background: #2B66AD;
    }




    .business-section_title {
        padding: 0px 20px 0px;
        margin-bottom: 30px;
     }

  .business-section_title h2 {
    font-size: 27px;
     }



     .business_block .text {
        display: flex;
        flex-direction: column;
      }


     .business_block  h3 {
        font-size: 21px;
        color: #fff;
        padding: 0 0 20px 20px;
        padding-left: 20px;
        margin-bottom: 0px;
        text-align: left;
    }

    .business_block .image {
        margin-bottom: 24px;
      }

      .business_block .image img {
        height: 260px;
        border-radius: 0;
    }

    .business_block .text p {
        flex-direction: column;
        padding: 0 20px;
        text-align: left;

}

.business_banner img {
    max-width: 93%;

}

.business_block .image-bg {
    height: 260px;
    border-radius: 0;
    width: 100%;
    margin-bottom: 20px;
    margin-top: 0px;
  }

}


      /* our-vission 私たちの想い
  ---------------------------------------------------------------*/


  .vision_section_title {
    display: flex;
    flex-direction: column; 
    align-items: center;   
    gap: 6px;               
    margin-bottom: 70px;
    margin-top: 50px;
  }
  
  .vision_section_title .subtitle {
    font-size: 20px;
    color: #2B66AD;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin: 0;
    margin-bottom: -10px;
  }
  
  .vision_section_title h2 {
    font-size: 33px;
    color: #2B66AD;
    font-weight: bold;
    margin: 0;
  }

  .vision_block img {
    width: 100%;
}

.vision_block h3 {
    font-size: 31px;
    color: #2B66AD;
}


.vision_block .text {
    padding: 11px 35px 90px;
}


.vision_block p {
    letter-spacing: 0.08em;
    line-height: 1.7;
}


  @media screen and (max-width: 768px) {

.vision_section_title {
    padding: 0px 20px 0px;
    margin-bottom: 30px;
 }

.vision_section_title h2 {
font-size: 27px;
 }

 .vision_block .text {
    padding: 0px 20px 90px;
}

.vision_block h3 {
    font-size: 20px;
}

.vision_block img {
    object-fit: cover;
    height: 240px;
}

}



      /* company 会社概要
  ---------------------------------------------------------------*/

  .company_section_title {
    display: flex;
    flex-direction: column; 
    align-items: center;   
    gap: 6px;               
    margin-bottom: 70px;
    margin-top: 50px;
  }
  
  .company_section_title .subtitle {
    font-size: 20px;
    color: #2B66AD;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin: 0;
    margin-bottom: -10px;
  }
  
  .company_section_title h2 {
    font-size: 33px;
    color: #2B66AD;
    font-weight: bold;
    margin: 0;
  }


  div#group {
    padding: 0 110px 70px;
}


.headline2 {
    border-bottom: 1px solid #2B66AD;
    padding: 0px 0px 10px 0;
    margin: 0 0 25px 0;
    font-size: 18px;
}

/* 共通スタイル（PC） */
table {
    width: 100%;
    border-collapse: collapse;
  }
  
  table th,
  table td {
    padding: 8px 12px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #ccc;
  }
  
  

  .company_access {
    max-width: 1000px;
    margin: 0 auto;
    padding: 60px 20px;
    font-family: "Noto Sans JP", sans-serif;
  }
  
  .access_block {
    /* display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: wrap; */
  }
  
  .access_map {
    flex: 1 1 55%;
    min-width: 300px;
    margin-bottom: 20px;
  }
  
  .access_text {
    flex: 1 1 40%;
    min-width: 260px;
  }
  
  .access_text h3 {
    font-size: 24px;
    font-weight: bold;
    color: #2B66AD;
    margin-bottom: 20px;
  }
  
  .access_text p {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
    margin-bottom: 12px;
  }
  

  
  

@media screen and (max-width: 768px) {

    div#group {
        padding: 0 20px 70px;
    }

    .company_section_title {
        padding: 0px 20px 0px;
        margin-bottom: 55px;
     }

     .company_section_title {
        margin-top: 25px;
     }
     
        .company_access {
          padding: 60px 0px;
        }
    }


    
    .company_section_title h2 {
    font-size: 27px;
     }

     table tr {
        display: block;
        margin-bottom: 1em;
        border-bottom: 2px solid #eee;
      }
    
      table th,
      table td {
        display: block;
        width: 100%;
        padding: 6px 10px;
        border: none;
      }
    
      table th {
        font-weight: bold;
        background-color: #f8f8f8;
        border-bottom: 1px solid #ddd;
      }

      #group th {
        width: 97%;
        border: none;
        background: #F9F7FF;
      }

      #group th, #group td {
        border: none;
        padding-left: 10px;
      }

      #group td {
        width: 94%;
      }
      table tr {
        border-bottom: none;
      }

      .access_block {
        flex-direction: column;
      }
    
      .access_map iframe {
        width: 100%;
        height: 300px;
      }
    
      .access_text h3 {
        margin-top: 30px;
        font-size: 20px;
      }
    
      .access_text p {
        font-size: 15px;
      }


    }




          /* contact お問い合せ
  ---------------------------------------------------------------*/

  .contact_section {
    padding: 0 180px;
}

  .contact_section_title {
    display: flex;
    flex-direction: column; 
    align-items: center;   
    gap: 6px;               
    margin-bottom: 45px;
    margin-top: 30px;
  }
  
  .contact_section_title .subtitle {
    font-size: 20px;
    color: #2B66AD;
    letter-spacing: 0.1em;
    font-weight: bold;
    margin: 0;
    margin-bottom: -10px;
  }
  
  .contact_section_title h2 {
    font-size: 27px;
    color: #2B66AD;
    font-weight: bold;
    margin: 0;
  }

    .contact_text {
        text-align: center;
        padding: 0 111px;
    }

    .formWrapper dl {
        padding: 0px 0;
    }

    .post ul, .post ol, .post dl {
        margin-bottom: 0px;
    }

    .formBtn_wrap{
    text-align: center;
}

@media screen and (max-width: 768px) {
.contact_section {
    padding: 0 20px;
}
    .contact_text {
        padding: 0;
    }

    input#zip {
        width: 90px;
    }

    input#zip2 {
        width: 150px;
    }


}