/*
   responsive.css - レスポンシブ用スタイル
   ブレークポイント: 1400px / 1200px / 1024px / 900px / 767px

   【コメントで区切っているページ】
   - トップページ（フロント）
   - パンくず（共通）
   - FAQページ（よくあるご質問）
   - アーカイブページ・お知らせ一覧
   - お知らせ詳細ページ（single）
   - 共通（固定ページ・投稿詳細のラッパー）
   - COMPANYページ（会社概要）
   - HOUSINGページ（住宅プラン）
   - SHOPページ（店舗プラン）
   - AGENTページ（代理店をご検討中の方）
*/

/* ================================
   Responsive 1400px
   ================================ */


@media (min-width: 1601px) {
  .main_visual_content h2 {
    font-size: 3.5vw;
    line-height: 1.2;
  }

  .main_visual_content h2 .sub_title {
    font-size: 1.25vw;
  }
}

@media (max-width: 1400px) {

  /* トップページ（フロント） */
  .breadcrumbs_list {
    padding: 0 5%;
  }

  .plan_item {
    height: 500px;
  }

  .plan_item a h3 {
    font-size: 36px;
  }

  .topics_section {
    padding: 0 20px 80px;
  }

  .contact_section ul {
    padding: 0 20px;
  }

  .agent_section_01 h1 {
    padding: 0 5%;
  }

  .agent_section_01_txt img {
    width: 90%;
    left: 5%;
  }

  .agent_section_01_txt_inner h2,
  .agent_section_01_txt_inner h2 span,
  .agent_section_01_txt_inner h2 span::before {
    font-size: 36px;
  }

  .agent_section_01_txt_inner h2 span::before {
    top: -35px;
  }

  .agent_section_03 {
    margin: 0 5% 50px;
    justify-content: space-between;
  }

  .agent_section_03 ul li {
    font-size: 14px;
  }

  .company_section_03 {
    padding: 50px 5%;
  }

  .company_section_04 {
    padding: 50px 5% 100px;
  }

  .company_section_03 ul li,
  .company_section_04 ul li {
    padding: 30px;
  }

  .company_section_05,
  .company_section_07 {
    margin: 0 5%;
  }

  .contractor_section_inner ul li h4 {
    font-size: 18px;
  }

  .contractor_section ul li.contractor_item_wide h4 {
    font-size: 18px;
  }

  .contractor_section ul li.contractor_item_wide p {
    font-size: 14px;
  }

  .contractor_section ul li a img:first-child,
  .agency_section ul li a img:first-child {
    width: 30px;
  }

}

@media (max-width: 1300px) {

  .agent_section_02 ul li p {
    font-size: 14px;
  }

  .agent_section_03 div h2 {
    font-size: 28px;
    margin: 40px 0 0 40px;
  }

  .agent_section_03 img {
    left: 30px;
  }
}

@media screen and (max-width: 1250px) and (min-width: 1024px) {

  .tab_br_none {
    display: none;
  }
}

/* ================================
   Responsive 1200px
   ================================ */

@media (max-width: 1200px) {

  /* トップページ（フロント） */
  .plan_item {
    height: 450px;
  }
}

@media screen and (max-width: 1200px) and (min-width: 1024px) {

  .housing_section_01 .list_02 li:nth-child(8),
  .housing_section_01 .list_02 li:nth-child(9) {
    font-size: 14px;
  }
}

/* ================================
   Responsive 1024px
   ================================ */

@media (max-width: 1024px) {

  /* トップページ（フロント） */
  .main_visual {
    min-height: auto;
  }

  .main_visual_content h2 {
    left: 65%;
    max-width: 80%;
  }

  .plan_list {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1000px;
    padding: 0 20px;
  }

  .plan_item {
    height: 400px;
  }

  .plan_item a h3 {
    font-size: 24px;
  }

  .topics_section {
    flex-direction: column;
    gap: 30px;
    padding: 0 20px 60px;
  }

  .topics_list {
    width: 100%;
  }

  .topics_section_title ul {
    flex-direction: row;
    flex-wrap: wrap;
    left: 25%;
  }

  .contractor_section_inner,
  .agency_section_inner {
    flex-direction: column;
    height: auto;
    padding: 24px 20px 24px;
    gap: 24px;
    margin: 60px 20px 0;
  }

  .contractor_section_title,
  .agency_section_title {
    width: 100%;
  }

  .contractor_section_title div img,
  .agency_section_title div img {
    width: 80%;
    margin: 0 auto;
  }

  .contractor_section ul,
  .agency_section ul {
    width: 100%;
  }

  .agency_section {
    margin: 30px 20px 0;
  }

  .agency_section_inner {
    margin: 20px auto 0;
  }

  .agency_section_title div {
    align-items: flex-start;
  }

  .contact_section ul {
    padding: 0 20px;
    gap: 20px;
  }

  .contact_section ul li.contact_item a {
    justify-content: flex-start;
    gap: 10px;
  }

  .contact_section ul li.contact_item a h3 {
    font-size: 24px;
  }

  .contact_section ul li.contact_item a div p {
    font-size: 32px;
  }

  .recruitment_section {
    padding: 30px 20px;
  }

  .recruitment_img {
    right: -20px;
    height: 90%;
  }

  /* パンくず（共通） */
  .breadcrumbs {
    padding: 0;
    margin-bottom: 12px;
  }

  .breadcrumbs_list {
    padding: 0;
  }

  /* FAQページ（よくあるご質問） */

  .faq h1 {
    padding: 0;
  }

  .faq_section {
    padding: 0;
  }

  .faq_heading {
    font-size: 20px !important;
  }

  .faq_heading::before {
    left: -20px;
  }

  .faq_question span {
    margin-right: 20px;
  }

  .faq_answer span {
    margin-right: 23px;
  }

  /* アーカイブページ・お知らせ一覧 */

  .page_title {
    padding: 0;
  }

  .posts_list {
    padding: 50px 0;
  }

  .posts_list .entry_link {
    padding: 16px;
  }

  .posts_list .entry_title {
    font-size: 1.1rem;
  }

  .topics_list li a p {
    width: 100px;
  }

  .single_contents,
  .not_found {
    padding: 0;
  }

  .post_navigation_custom {
    width: 60%;
  }

  /* 共通（固定ページ・投稿詳細のラッパー） */
  .page_contents {
    padding: 120px 5% 0;
  }

  /* COMPANYページ（会社概要） */
  .company_section_01 {
    padding: 0;
  }

  .company_section_01_inner {
    padding: 50px 0 0;
    gap: 50px;
    flex-direction: column;
  }

  .company_section_01_inner img {
    width: 100%;
    height: 400px;
    object-position: bottom;
  }

  .company_section_02 ul li,
  .company_section_02 ul li:nth-child(even) {
    margin-left: 0;
    margin-right: 0;
    padding-left: 5%;
    padding-right: 5%;
  }

  .company_section_03 {
    padding: 50px 0;
  }

  .company_section_03 ul .flex,
  .company_section_04 ul .flex {
    margin-bottom: 20px;
    gap: 20px;
  }

  .company_section_03 ul .flex:first-child,
  .company_section_04 ul .flex:first-child {
    margin-bottom: 20px;
  }

  .company_section_03 ul li,
  .company_section_04 ul li {
    padding: 20px;
  }

  .company_section_04 {
    padding: 50px 0;
  }

  .company_section_04 ul li {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .company_section_03 ul li h3 {
    font-size: 18px;
  }

  .company_section_04 ul li h3 {
    font-size: 16px;
  }

  .company_section_03 ul li p,
  .company_section_04 ul li p {
    font-size: 14px;
  }

  .company_section_05_inner {
    padding: 50px 5% 70px;
  }

  .company_section_05_inner h2 {
    margin-top: 0;
  }

  .company_section_05 img {
    left: 0;
    width: 40%;
  }

  .company_section_05 dl {
    width: 60%;
  }

  .company_section_05 dl .flex {
    padding: 15px 0;
  }

  .company_section_05 dl dt {
    width: 130px;
    padding-left: 0;
  }

  .company_section_05 dl dd,
  .company_section_05 dl div div {
    width: calc(100% - 130px);
  }

  .company_section_05 dl div div dd {
    width: 100%;
  }

  .company_section_05,
  .company_section_07 {
    margin: 0 auto;
  }

  .company_section_07 .flex {
    flex-direction: column;
    gap: 30px;
  }

  .company_section_07 .left {
    width: 100%;
  }

  .company_section_07 .right {
    width: 100%;
  }

  /* HOUSINGページ（住宅プラン） */

  .housing_section_01 {
    padding: 0 0 50px;
  }

  .housing_section_01_01 {
    margin-top: 100px;
  }

  .housing_section_01 h1 img {
    height: 300px;
    right: -10%;
  }

  .housing_section_01 .list_01 {
    grid-template-columns: repeat(2, 1fr);
  }

  .housing_section_01_02 {
    flex-direction: column;
  }

  .housing_section_01_02 div:last-child,
  .housing_section_01_03 div .white_bg,
  .housing_section_01_04 div .white_bg {
    width: 100%;
    height: 184px;
  }

  .housing_section_01_wrap {
    flex-direction: column;
  }

  .housing_section_01_03,
  .housing_section_01_04 {
    padding-right: 0;
    padding-left: 0;
    border-right: none;
  }

  .housing_section_01_03 {
    margin: 0 0 50px;
  }

  .housing_section_01 .list_02 {
    grid-template-columns: repeat(2, 1fr);
  }

  .housing_section_01 .list_02 li:last-child {
    grid-column: span 2;
  }

  .housing_section_02 ul {
    grid-template-columns: 1fr;
  }

  /* SHOPページ（店舗プラン） */
  .shop_section_01 {
    padding: 0 0 50px;
  }

  .shop_section_01 h1 img {
    height: 200px;
    right: -15%;
    bottom: 0;
  }

  .shop_section_01 .list_01 {
    grid-template-columns: repeat(2, 1fr);
  }

  .shop_section_01_wrap.flex {
    flex-direction: column;
  }

  .shop_section_01_wrap .shop_section_01_block:first-child,
  .shop_section_01_wrap .shop_section_01_block:last-child {
    padding: 0;
    border-right: none;
  }

  .shop_section_01_wrap .shop_section_01_block:first-child {
    margin-bottom: 50px;
  }

  .shop_section_01_block .white_bg {
    height: 184px;
  }

  .shop_section_02 {
    grid-template-columns: 1fr;
  }

  .course_price_section_link a {
    gap: 10px;
  }

  /* AGENTページ（代理店をご検討中の方） */

  .agent_section_01 h1 {
    padding: 0;
  }

  .agent h2 {
    padding: 0;
  }

  .agent_section_01_txt {
    height: 350px;
  }

  .agent_section_01_txt img {
    position: relative;
  }

  .agent_section_01_txt_inner {
    width: 100%;
  }

  .agent_section_01_txt_inner h2 {
    font-size: 28px;
  }

  .agent_section_01_txt_inner h2 span {
    font-size: 28px;
  }

  .agent_section_01_txt_inner h2 span::before {
    font-size: 28px;
    top: -25px;
  }

  .agent_section_01_txt img {
    width: 100%;
    left: 0;
  }

  .agent_section_02 ul {
    flex-wrap: wrap;
    padding: 0;
  }

  .agent_section_02 ul li {
    min-width: calc(50% - 10px);
  }

  .agent_section_02 ul li:nth-child(n+3) {
    margin-top: 20px;
  }

  .agent_section_03 {
    flex-direction: column;
    padding: 30px 5%;
    margin: 0 auto 50px;
  }

  .agent_section_03 div {
    width: 100%;
  }

  .agent_section_03 div h2 {
    margin: 20px 0;
  }

  .agent_section_03 img {
    position: relative;
    width: 100%;
    left: 0;
  }

  .agent_section_03 ul {
    padding: 20px 0;
  }

  .agent_section_04 {
    width: 100%;
    padding: 0 0 50px;
    margin-bottom: 0;
  }

  .agent_section_05 {
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto 80px;
  }

  .agent_section_05_link {
    gap: 1rem;
    margin-top: 1.5rem;
  }

  .agent_section_05_link_item a {
    min-height: unset;
    padding: 1rem 1.25rem;
  }

  .agent_section_05_link_item a h4 {
    font-size: 14px;
  }

  .agent_section_05_link_item a img {
    width: 26px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1024px) {

  .emergency_section {
    right: 20px;
    bottom: 20px;
  }

  .emergency_section a {
    width: 300px;
  }

  .emergency_section a h4 {
    font-size: 18px;
  }

  .emergency_section a div p {
    font-size: 14px;
  }

  .emergency_section a div p span {
    font-size: 18px;
  }

  .emergency_section a div img {
    width: 50px;
  }

  .emergency_section a div div p {
    font-size: 28px;
  }

  .contractor_section ul li.contractor_item_wide h4 {
    padding: 10px;
  }

  .tab_br_none {
    display: none;
  }
}

/* ================================
   Responsive 900px
   ================================ */

@media (max-width: 900px) {

  /* トップページ（フロント） */
  .plan_item {
    height: 330px;
  }
}

/* ================================
   Responsive 767px
   ================================ */

@media (max-width: 767px) {

  .pc_only {
    display: none;
  }

  .sp_only {
    display: block;
  }

  .page_contents h1 {
    font-size: 28px;
    line-height: 1.5;
  }

  .page_contents h1,
  .page_contents h2 {
    margin-top: 0;
  }

  /* トップページ（フロント） */
  .main_visual {
    min-height: unset;
  }

  .main_visual_content h2 {
    font-size: 8vw;
    top: 35%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 90%;
    text-align: left;
    line-height: 1.5;
  }

  .main_visual_content h2 .comma {
    font-size: 8vw;
  }

  .main_visual_content h2 .sub_title {
    display: block;
    font-size: 16px;
    margin-top: 8px;
  }

  .main_visual_image img {
    height: 480px;
    object-fit: cover;
  }

  .emergency_section {
    position: relative;
    width: 90%;
    bottom: auto;
    right: auto;
    margin: 30px auto 0;
  }

  .emergency_section a {
    width: 100%;
  }

  .emergency_section a h4 {
    font-size: 24px;
  }

  .emergency_section a div p {
    font-size: 14px;
  }

  .emergency_section a div p span {
    font-size: 18px;
  }

  .emergency_section a div img {
    width: 40px;
  }

  .emergency_section a div div p {
    font-size: 24px;
  }

  .plan_section {
    padding: 0 5%;
  }

  .plan_list {
    grid-template-columns: 1fr;
    margin: 24px auto 40px;
    padding: 0;
  }

  .plan_item {
    height: 450px;
  }

  .plan_item a h3 {
    font-size: 36px;
  }

  .topics_section {
    padding: 0 5% 40px;
  }

  .topics_list li a {
    align-items: end;
    padding: 20px;
  }

  .topics_list li a p {
    width: auto;
  }

  .topics_item_txt {
    flex-direction: column;
  }

  .contractor_section,
  .agency_section {
    margin: 30px 5% 0;
    padding: 0;
  }

  .contractor_section_inner,
  .agency_section_inner {
    margin: 0;
  }

  .contractor_section_title,
  .agency_section_title {
    align-items: center;
  }

  .contractor_section_title h3,
  .agency_section_title h3 {
    writing-mode: horizontal-tb;
    -ms-writing-mode: lr-tb;
    font-size: 24px;
    margin: 0;
  }

  .contractor_section_title div p,
  .agency_section_title div p {
    font-size: 32px;
  }

  .contractor_section ul,
  .agency_section ul {
    grid-template-columns: 1fr;
    margin: 0;
  }

  .contractor_section ul li.contractor_item_wide,
  .agency_section ul li.agency_item_wide {
    grid-column: auto;
  }

  .contractor_section ul li.contractor_item_wide a,
  .agency_section ul li.agency_item_wide a {
    padding: 10px 20px;
  }

  .contractor_section ul li.contractor_item_wide p,
  .agency_section ul li.agency_item_wide p {
    font-size: 10px;
  }

  .contractor_section ul li a,
  .agency_section ul li a {
    padding: 16px 20px;
    height: 77.47px;
    border-radius: 16px;
  }

  .contractor_section ul li a img:first-child,
  .agency_section ul li a img:first-child {
    width: 25px;
  }

  .contractor_section ul li.contractor_item_wide h4,
  .agency_section ul li.agency_item_wide h4 {
    padding: 0;
    border-right: none;
    font-size: 14px;
  }

  .contact_section ul {
    flex-direction: column;
    padding: 0 5%;
  }

  .complete ul {
    margin: 0;
  }

  .contact_section ul li.contact_item a {
    gap: 10px;
  }

  .contact_section ul li.contact_item a img {
    margin-top: 5px;
  }

  .contact_section ul li.contact_item a h3 {
    font-size: 24px;
    margin-bottom: 10px;
  }

  .contact_section ul li.contact_item a div p {
    font-size: 28px;
  }

  .contractor_item_txt_wide,
  .agency_item_txt_wide {
    flex-direction: column;
  }

  .recruitment_section a {
    flex-direction: column;
    align-items: flex-start;
  }

  .recruitment_txt p {
    font-size: 24px;
    margin-left: 0;
  }

  .recruitment_txt h3,
  .recruitment_txt h4 {
    font-size: 24px;
    padding: 16px 20px;
  }

  .recruitment_txt h4 img {
    z-index: 1;
  }

  .recruitment_img {
    height: auto;
    width: 40%;
    margin-top: 16px;
    right: -20px;
  }

  /* パンくず（共通） */
  .breadcrumbs {
    padding: 0;
    font-size: 12px;
  }

  /* FAQページ（よくあるご質問） */
  .faq_section {
    padding: 0;
    margin-bottom: 16px;
  }

  .faq_heading {
    font-size: 16px !important;
    margin: 20px 0 10px;
  }

  .faq_heading::before {
    left: -10px;
    background: url(../images/company/company_section_06_bg.jpg) no-repeat 35% top;
  }

  .faq_question {
    padding: 12px 50px 12px 12px;
    font-size: 14px;
  }

  .faq_answer {
    padding: 0 12px 12px;
    font-size: 14px;
  }

  .faq_question span {
    margin-right: 5px;
  }

  .faq_answer span {
    margin-right: 8px;
  }

  /* アーカイブページ・お知らせ一覧 */
  .posts_list {
    padding: 50px 0 30px;
    gap: 16px;
  }

  /* アーカイブページ・お知らせ一覧（横並び：日付 / タイトル / 矢印） */
  .posts_list .news_row_left {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .posts_list .news_row_left .posted_on {
    width: auto;
  }

  .posts_list .news_row_left .entry_title {
    white-space: normal;
  }

  .posts_list .entry_link {
    padding: 16px;
  }

  .posts_list .entry_title {
    font-size: 1.05rem;
  }

  .posts_list .entry_meta,
  .posts_list .entry_summary {
    font-size: 0.8125rem;
  }

  .page_title {
    font-size: 1.25rem;
    padding: 0;
  }

  .nav-links {
    margin-bottom: 0;
  }

  /* お知らせ詳細ページ（single） */
  .entry_header {
    padding: 0;
  }

  .entry_header .entry_title {
    font-size: 1.35rem;
  }

  .entry_header .entry_meta {
    font-size: 0.8125rem;
  }

  .post_thumbnail {
    margin: 0 5% 16px;
  }

  .post_thumbnail img {
    max-width: 100%;
    height: auto;
  }

  .entry_content {
    padding: 0 0 24px;
    text-align: justify;
  }

  .entry_content img {
    max-width: 100%;
    height: auto;
  }

  .entry_content a {
    word-break: break-all;
  }

  .post-navigation {
    padding: 0 0 40px;
  }

  .archive .posts_list,
  .home .posts_list {
    padding: 0;
  }

  .posts_pagination {
    padding: 0 0 30px;
  }

  .single_contents,
  .not_found {
    padding: 0;
  }

  .post_navigation_custom {
    width: 100%;
    margin: 0 auto;
  }

  .topics_section_title_list {
    position: static;
  }

  /* 共通（固定ページ・投稿詳細のラッパー） */
  .page_contents {
    padding: 100px 5% 20px;
  }

  /* COMPANYページ（会社概要） */
  .company_section_01,
  .company_section_02,
  .company_section_03,
  .company_section_04,
  .company_section_05 {
    padding: 0%;
  }

  .company_section_01_img {
    margin: 0;
  }

  .company_section_01_inner img {
    height: 200px;
  }

  .company_section_01_inner {
    padding: 20px 0 0;
    gap: 30px;
  }

  .company_section_01_inner p {
    line-height: 2;
  }

  .company_section_02 ul {
    grid-template-columns: 1fr;
  }

  .company_section_02 ul li,
  .company_section_02 ul li:nth-child(even) {
    padding: 40px 0 50px;
  }

  .company_section_03 h2,
  .company_section_04 h2 {
    padding: 40px 0 0;
  }



  .company_section_03 ul li,
  .company_section_04 ul li {
    width: 100%;
    padding: 30px;
  }


  .company_section_03 ul .flex,
  .company_section_04 ul .flex {
    padding-bottom: 50px;
    flex-direction: column;
  }

  .company_section_03 ul .flex:first-child,
  .company_section_04 ul .flex:first-child {
    padding-bottom: 0;
  }

  .company_section_05_inner {
    flex-direction: column;
    padding: 40px 5% 0;
  }

  .company_section_05_inner h2 {
    margin-bottom: 15px;
  }

  .company_section_05 img {
    position: relative;
    width: 80%;
    left: 50%;
    transform: translateX(-50%);
  }

  .company_section_05 dl {
    width: 100%;
    margin-bottom: 30px;
  }

  .company_section_05 dl .flex {
    gap: 10px;
    flex-direction: column;
  }

  .company_section_05 dl dt {
    width: 100%;
    padding-left: 0;
  }

  .company_section_05 dl dd,
  .company_section_05 dl div div {
    width: 100%;
  }

  .company_section_06::before {
    width: 120%;
    left: -10%;
  }

  .company_section_06 dl {
    width: 100%;
    margin: 30px auto 0;
  }

  .company_section_06 dl div {
    padding: 20px 0;
    flex-direction: column;
    gap: 10px;
    text-align: left;
  }

  .company_section_06 .company_section_06_inner {
    padding: 15px 0 50px;
  }

  .company_section_06_img_wrap {
    width: 100%;
    margin: 0 auto;
    overflow-x: scroll;
  }

  .company_section_06 img {
    display: block;
    width: 100%;
    min-width: 700px;
    /* 画像を横に広く保つ（必要に応じて調整） */
  }

  .company_section_07 h2 {
    font-size: 28px;
    margin: 0 0 30px;
  }

  .company_section_07 .right h3 {
    font-size: 18px;
    margin: 0 0 10px;
  }

  .company_section_07 .left {
    width: 100%;
    gap: 30px;
  }

  .company_section_07 .right {
    width: 100%;
  }

  .company_section_07 .flex:first-child div .en,
  .company_section_07 .flex:last-child div .en {
    font-size: 28px;
  }

  .company_section_07 .flex:first-child .right div a,
  .company_section_07 .flex:last-child .right div a {
    padding: 0 5%;
    border-radius: 16px;
    font-size: 14px;
  }

  .company_section_07 .flex:first-child .right div a div img,
  .company_section_07 .flex:last-child .right div a div img {
    width: 30px !important;
    margin-right: 20px;
  }

  /* HOUSINGページ（住宅プラン） */
  .housing_section_01,
  .housing_section_02,
  .housing_section_03 {
    padding: 20px 5% 40px;
  }

  .housing_section_01 {
    padding: 20px 0 0;
  }

  .housing_section_01 h1 img {
    height: 150px;
    bottom: -90px;
  }

  .housing_section_01 h2 {
    font-size: 18px;
  }

  .housing_section_01_01 {
    margin-top: 80px;
  }

  .housing_section_01 h2 span {
    font-size: 36px;
    margin-bottom: 3px;
  }

  .housing_section_01 .list_01 {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .housing_section_01 .list_01_item {
    height: auto;
    min-height: 180px;
  }

  .housing_section_01 .list_01_item img {
    height: 70px;
  }

  .housing_section_01 .list_01_item:nth-child(n+5) img {
    height: 60px;
  }

  .housing_section_01_02 div:last-child,
  .housing_section_01_03 div .white_bg,
  .housing_section_01_04 div .white_bg {
    min-height: 180px;
  }

  .housing_section_01_05 h2 {
    flex-wrap: wrap;
  }

  .housing_section_01_05 h2 .small_text {
    margin-left: 0;
    margin-top: -10px;
    font-size: 12px;
  }

  .housing_section_01 .list_02 {
    grid-template-columns: 1fr;
  }

  .housing_section_01 .list_02 li {
    min-height: unset;
  }

  .housing_section_01 .list_02 li:last-child {
    grid-column: span 1;
  }

  .course_price_section {
    margin-top: 30px;
    margin-bottom: 50px;
  }

  .course_price_section_link a {
    width: 100%;
    gap: 10px;
  }

  .course_price_section_link a h4 {
    font-size: 14px;
  }

  .housing_section_02_item {
    padding: 20px 20px;
  }

  .housing_section_02_item h3 {
    font-size: 18px;
  }

  .housing_section_02_item img {
    position: relative;
    top: 0;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    height: 80px;
    margin: 20px 0;
  }

  .housing_section_03 {
    padding: 20px 0 0;
  }

  /* SHOPページ（店舗プラン） */
  .shop_section_02 {
    padding: 20px 5% 40px;
  }

  .shop_section_01,
  .shop_section_03 {
    padding: 20px 0 0;
  }

  .shop_section_01 h1 img {
    height: 150px;
    bottom: -50px;
    right: -10%;
    position: relative;
  }

  .shop_section_01 h2 {
    font-size: 18px;
  }

  .shop_section_01 h2 span {
    font-size: 36px;
    margin-bottom: 3px;
  }

  .shop_section_01 .list_01 {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .shop_section_01 .list_01_item {
    height: auto;
    min-height: 180px;
  }

  .shop_section_01 .list_01 li:last-child {
    grid-column: span 1;
    min-height: unset;
    justify-content: flex-start;
    padding: 0;
  }

  .shop_section_01_block .white_bg {
    min-height: 180px;
  }

  .shop_section_02_item {
    padding: 20px 20px;
  }

  .shop_section_02_item h3 {
    font-size: 18px;
  }

  .shop_section_02_item img {
    position: relative;
    top: 0;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    height: 80px;
    margin: 20px 0;
  }

  /* AGENTページ（代理店をご検討中の方） */

  .agent h2 {
    padding: 0;
    font-size: 32px;
  }

  .agent_section_01_txt {
    padding: 0;
    height: 150px;
    margin: 30px 0;
  }

  .agent_section_01_txt img {
    border-radius: 16px;
  }

  .agent_section_01_txt_inner {
    position: static;
    transform: unset;
    margin-top: 50px;
  }

  .agent_section_01_txt_inner h2 {
    font-size: 24px;
    margin-bottom: 30px;
  }

  .agent_section_01_txt_inner h3 {
    font-size: 20px;
  }

  .agent_section_01_txt_inner h2 span {
    font-size: 24px;
  }

  .agent_section_01_txt_inner h2 span::before {
    font-size: 24px;
    top: -25px;
  }

  .agent_section_02 {
    margin-top: 250px;
  }

  .agent_section_02 h2 {
    font-size: 20px;
  }

  .agent_section_02 h2 .green {
    font-size: 24px;
  }

  .agent_section_02 h2 .wave01::before {
    bottom: -20px;
  }

  .agent_section_02 h2 .wave02::before {
    bottom: -20px;
  }

  .agent_section_02 ul {
    flex-direction: column;
    padding: 0 0 30px;
    gap: 50px;
  }

  .agent_section_02 ul li {
    min-width: 100%;
  }

  .agent_section_02 ul li h3 {
    font-size: 16px;
  }

  .agent_section_02 ul li img {
    height: 50px;
  }

  .agent_section_02 ul li:nth-child(2) img,
  .agent_section_02 ul li:nth-child(4) img {
    margin: 20px 0;
    height: 100px;
  }

  .agent_section_02 ul li:nth-child(n+3) {
    margin-top: 0;
  }

  .agent_section_03 div h2 {
    font-size: 24px;
    margin: 0 0 20px;
  }

  .agent_section_03 ul {
    padding: 20px 0 0;
  }

  .agent_section_03 ul li {
    height: auto;
    min-height: 60px;
    padding: 12px;
    font-size: 13px;
  }

  .agent_section_04 {
    margin-bottom: 0;
    padding: 0;
  }

  .agent_section_04 h2,
  .agent_section_05 h2 {
    font-size: 24px;
  }

  .agent_section_05 {
    margin: 50px auto 0;
  }

  .agent_section_05_link {
    flex-direction: column;
  }

  .agent_section_05_link_item {
    width: 100%;
  }
}

/* ================================
   グループ会社ページ
   （1025px〜：カード内横並びは page.css 既定）
   〜1024px：カード一覧・カード内レイアウトは縦並び、dl の dt/dd は横並びのまま
   〜767px：スマホは dt/dd も縦並び
   ================================ */

@media screen and (min-width: 1025px) and (max-width: 1300px) {
  .group_company_card img {
    width: 200px;
  }

  .group_company_card h3 {
    margin: 0 30px;
    font-size: 16px;
    width: 230px;
  }

  .group_company_card dl div dt {
    font-size: 16px;
  }

  .group_company_card dl div dd {
    font-size: 14px;
  }

  .group_company_card img:last-child {
    width: 40px;
  }
}

@media (max-width: 1024px) {
  .group_logo {
    right: 35px;
    margin-bottom: 2rem;
    justify-content: center;
  }

  .group_logo img {
    left: 65px;
    width: min(120px, 28vw);
  }

  .group_logo h2 {
    font-size: clamp(1.75rem, 6vw, 2.75rem) !important;
  }

  .group_page .group_list {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .group_company_card a {
    flex-direction: column;
    padding: 30px 20px;
  }

  .group_company_card img:first-of-type {
    width: min(200px, 85%);
    max-width: 100%;
    height: auto;
    align-self: center;
  }

  .group_company_card h3 {
    width: 100%;
    max-width: none;
    margin: 1rem 0;
    text-align: center;
    box-sizing: border-box;
  }

  .group_company_card img:last-of-type {
    top: auto;
    right: auto;
    bottom: 30px;
    transform: none;
    width: 44px;
    align-self: flex-end;
    margin-top: 0.5rem;
  }

  .group_company_card dl {
    max-width: 100%;
    box-sizing: border-box;
  }

  .group_company_card dl div {
    flex-direction: row;
    align-items: flex-start;
  }

  .group_company_card dl div dt {
    flex-shrink: 0;
  }

  .group_company_card dl div dd {
    flex: 1;
    min-width: 0;
    word-break: break-word;
  }
}

@media (max-width: 767px) {

  .group_logo {
    right: 35px;
    margin-bottom: 1rem;
  }

  .group_logo h2 {
    font-size: 2rem !important;
  }

  .group_logo img {
    left: 55px;
    bottom: 15px;
    width: min(120px, 28vw);
  }

  .group_company_card h3 {
    font-size: 14px !important;
    text-align: center;
  }

  .group_company_card img:first-of-type {
    margin: 0 auto;
  }

  .ties_holdings img:first-of-type {
    width: min(250px, 85%);
    max-width: 100%;
    height: auto;
    align-self: center;
  }

  .group_company_card dl div {
    flex-direction: column;
    align-items: center;
  }

  .group_company_card dl div dt {
    font-size: 14px !important;
    padding: 5px;
  }

  .group_company_card dl div dd {
    flex: none;
    font-size: 12px;
  }

}

/* ================================
   規約関係（privacy / antisocial / money-laundering 等）
   ================================ */

@media (max-width: 900px) {
  .section_wrap {
    padding: 0;
    margin-bottom: 60px;
    text-align: justify;
    line-height: 1.8;
  }

  .section_wrap h2 {
    line-height: 1.5;
  }

  .txt_large {
    font-size: 20px;
  }

  .table_wrap div {
    width: 100%;
  }

  .table_wrap.flex {
    flex-direction: column;
    /* お客様本位ページ：2カラムを縦積みにしたとき枠線が欠けないよう外枠＋行区切りに統一 */
    border: 1px solid #999;
    box-sizing: border-box;
  }

  .table_wrap.flex>div {
    width: 100%;
  }

  .table_wrap.flex>div h3 {
    padding: 0 5px;
  }

  .table_wrap.flex>div h3,
  .table_wrap.flex>div ul li {
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 1px solid #999;
    margin-bottom: 0;
  }

  /* 最後のブロックの最終行の下は外枠で閉じる */
  .table_wrap.flex>div:last-child ul li:last-child {
    border-bottom: none;
  }
}

@media (max-width: 767px) {
  .section_wrap {
    margin-bottom: 48px;
  }

  .section_wrap h2 {
    font-size: 16px;
  }

  .section_wrap h3 {
    font-size: 16px;
  }

  .section_wrap ol,
  .section_wrap ul {
    margin-top: 16px;
    line-height: 1.7;
  }

  /* 文章量が多いので、ネガティブインデントを弱めて横はみ出しを防止 */
  .section_wrap ol li,
  .section_wrap ul li {
    margin-bottom: 14px;
  }

  .privacy_section {
    margin: 20px 0;
  }

  .privacy_section h4 {
    margin-top: 14px;
    margin-bottom: 8px;
  }

  .privacy_section a {
    word-break: break-all;
  }

  .table_wrap {
    margin-top: 20px;
    margin-bottom: 30px;
  }

  .table_wrap div h3,
  .table_wrap div ul li {
    padding: 10px 8px !important;
    word-break: break-word;
  }

  .txt_large {
    font-size: 18px;
  }
}

/* ================================
   お問い合わせ・資料請求（Contact Form 7）
   ================================ */

@media (max-width: 900px) {

  /* 規約ページ向け .section_wrap { padding:0 } から、フォームページだけ横余白を確保 */
  .page_contents .section_wrap:has(.wpcf7-form) {
    box-sizing: border-box;
    /* 規約ページ向けの justify がフォームに効かないように */
    text-align: left;
  }

  .contactform {
    margin-top: 20px;
  }

  .contactform input[type="email"],
  .contactform input[type="tel"],
  .contactform input[type="text"],
  .contactform input[type="date"],
  .contactform select,
  .contactform textarea {
    font-size: 14px;
    padding: 0.85em 1em;
  }
}

@media (max-width: 767px) {

  /* ラベル＋入力を1列のカード風に */
  .contactform-table {
    display: block;
    width: 100%;
  }

  .contactform-table tbody,
  .contactform-table tr,
  .contactform-table th,
  .contactform-table td {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .contactform-table tr {
    margin-bottom: 12px;
    border-radius: 8px;
    overflow: hidden;
  }

  .contactform-table th {
    width: 100%;
    border: none;
    padding: 10px 0 5px;
  }

  .contactform-table td {
    border: none;
    padding: 10px 0 5px;
  }

  .contactform-table th p {
    padding-right: 3.75rem;
  }

  .contactform-table th.contactform-required p::after,
  .contactform-table th.contactform-unrequired p::after {
    font-size: 12px;
    padding: 4px 8px;
  }

  .contactform table td,
  .contactform table th {
    padding: 0 0 5px;
  }

  .contactform-table .contactform-addlist dt p {
    margin: 10px 0 5px;
  }

  .page_contents .section_wrap .wpcf7-form input[type="submit"].wpcf7-submit,
  .page_contents .section_wrap .wpcf7-form button[type="submit"].wpcf7-submit,
  .page_contents .section_wrap .wpcf7-form input[type="button"],
  .page_contents .section_wrap .wpcf7-form button[type="button"] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0;
  }

  .page_contents .section_wrap .wpcf7-form p:has(input[type="submit"]):has(input[type="button"]),
  .page_contents .section_wrap .wpcf7-form p:has(button[type="submit"]):has(input[type="button"]),
  .page_contents .section_wrap .wpcf7-form .block.text-center:has(input[type="button"]) {
    gap: 0.75rem;
    align-items: stretch;
  }

  .page_contents .section_wrap .wpcf7-form .block.text-center:has(input[type="button"])>p:not(.recaptcha_policy) {
    width: 100%;
    max-width: 100%;
  }

  .page_contents .section_wrap .wpcf7-form .block.text-center {
    padding-left: 0;
    padding-right: 0;
  }

  .page_contents .section_wrap .wpcf7-form>p.mt-5,
  .page_contents .section_wrap .wpcf7-form .privacyText,
  .page_contents .section_wrap .wpcf7-form .wpcf7-response-output {
    padding-left: 0;
    padding-right: 0;
    max-width: 100%;
  }

  .contact_page_body {
    margin-top: 1.25rem;
  }

  .page_contents .wpcf7-form div:has(input[name="_cf7msm_multistep_tag"]) {
    margin-top: 1.25rem;
    padding-left: 0;
    padding-right: 0;
    width: 100%;
    max-width: 100%;
  }

  .page_contents .section_wrap .wpcf7-form .recaptcha_policy {
    max-width: 100%;
    padding: 0 2%;
    box-sizing: border-box;
  }

  /* page.css の資料請求完了など 2 列指定を解除 */
  .request_complete ul li {
    width: 100%;
  }

  .page_contents .section_wrap:has(.wpcf7-form) {
    margin-bottom: 0;
  }

  .complete ul li {
    width: 100%;
  }

}