 /* 基本設定 */
html { font-family: "Arial", "Helvetica",system-ui, sans-serif; font-size:62.5%; letter-spacing: 1px; font-feature-settings: "pwid" 1; box-sizing: border-box; }
body { margin:0; padding:0; box-sizing: border-box; }
div { box-sizing: border-box; padding:0; margin:0; }
ul { list-style: none; padding:0; margin:0; }
a, a:link, a:hover, a:visited, a:active { color:#000; text-decoration: none; }
textarea { resize: vertical; }
.sp-on { display:block !important; }
.pc-on { display:none !important; }

.wrapper { position:relative; top:0; left:0; width:100%; height:auto; overflow-x:hidden; opacity:1; transition: opacity 0.4s cubic-bezier(0.5, 0, 0.75, 0); transition-delay: 0.4s;  }
.wrapper.is-preload { opacity: 0; }
.col1 { position:relative; top:0; left:0; width:100%; }
.col2 { position:relative; top:0; left:0; width:45%; }
.col2:nth-child(odd) { margin-right:2.5%; }

.col1 { position:relative; top:0; left:0; width:32%; }
.col4 { position:relative; top:0; left:0; width:25%; }



/* WebFontの設定 */

.noto-reg {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}

.noto-bold {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}



.inter-reg {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.inter-bold {
  font-family: "Inter", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

/* ↓ここからスマホ用設定↓ */



/* 方眼背景の設定 */
.hougan {
    background-image: linear-gradient(0deg, transparent calc(100% - 1px), #efefef calc(100% - 1px)),
                      linear-gradient(90deg, transparent calc(100% - 1px), #efefef calc(100% - 1px));
    background-size: 5vw 5vw ;
    background-repeat: repeat;
    background-position: top left;
}

/* ページ遷移用設定 */
 @keyframes fadeOut {
  0% { opacity:1; }
  100% { opacity:0; }
}

#page_transition { position: fixed; width:100%; height:100dvh; margin:0; padding:0; pointer-events: none; z-index: 9999; box-sizing: border-box; overflow: hidden; }
.transition_kumanote { position:absolute; bottom:0; right:0%; width:80%; max-width:420px; height:auto; opacity: 0.001; transform:translate(150%, 30%) rotate(-8deg); transform-origin:bottom right; transition:transform .2s cubic-bezier(0.22, 1, 0.36, 1); }
.transition_kumanote img { width:100%; height:auto; }
#page_transition.is-active .transition_kumanote { transform:translate(85%, -25%) rotate(-40deg); opacity:1; }
#page_transition.is-hide .transition_kumanote { transform:translate(150%, 30%) rotate(-8deg); opacity:1; transition: transform 0.2s cubic-bezier(0.64, 0, 0.78, 0); }
.wrapper.is-hide { animation:fadeOut .4s cubic-bezier(0.5, 0, 0.75, 0) forwards; }


/* ヘッダーの設定 */
.header_logo { position:fixed; width:80px; height:80px; top:4vw; left:4vw; background-color: #fff; border-radius: 100%; box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.35);  z-index:9998; }
.header_logo img { width:100%; position:relative; transition:opacity .3s ease; }
.header_logo a { position:absolute; top:0; left:0; width:100%; height:100%; }
.header_logo:hover img { opacity:0.6; cursor:pointer; }

.menu_icon { position:fixed; bottom:5vw; right:5vw; width:60px; height:60px; background-color: #000; border-radius:98%; transition:all .3s ease; z-index:9998; cursor:pointer; }
.menu_icon span,.menu_icon span::before, .menu_icon span::after { content:''; position:absolute; width:28px; height:2px; background-color: #fff; transition:all .3s ease; }
.menu_icon span { top:calc(50% - 1px); left:calc(50% - 14px); }
.menu_icon span::before { top:-8px; }
.menu_icon span::after { top:8px; }
.menu_icon:hover { transform:scale(1.1); transform-origin: center; }
.menu_icon:hover span::before { top:-10px; }
.menu_icon:hover span::after { top:10px; }

#menu-btn-check { display: none; }
#menu-btn-check:checked ~ .menu_icon span { background-color: rgba(255, 255, 255, 0); }
#menu-btn-check:checked ~ .menu_icon span::before { top:0; transform:rotate(405deg); }
#menu-btn-check:checked ~ .menu_icon span::after { top:0; transform:rotate(-405deg); }
#menu-btn-check:checked ~ .menu_icon:hover { transform:scale(1.1); transform-origin: center; }

#menu-btn-check:checked ~ .header_menu_content { left:0; transform:inherit;}
.header_menu_content { position:fixed; width:100%; height:100%; top:0; left:100%; transform:rotate(20deg); transform-origin:bottom left; background-color: #fff;  box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.35); z-index:9000; transition:all .6s cubic-bezier(0.85, 0, 0.15, 1) ; }
.header_menu_content ul { position:relative; top:50%; width:90vw; left:5vw; transform:translateY(-50%); padding:10vw 0; }
.header_menu_content li { font-size:4.2rem; margin-bottom:5vw; }
.header_menu_content li:last-child { margin-bottom:0; }
.header_menu_content a { transition:all .3s cubic-bezier(0.25, 1, 0.5, 1);  }
.header_menu_content a:hover { padding-left:1.5rem; }

.hd_nav_arw { content:''; position:relative; display:inline-block; top:6px; left:-6px; width:18px; height:28px; transform:rotate(-45deg);  background:none; margin-left:1.5rem; opacity:0; transition:all .3s cubic-bezier(0.25, 1, 0.5, 1); }
.hd_nav_arw::before { content:''; position:absolute; top:calc(50% - 2px); width:17px; height:2px; background-color: #000; display:block;  }
.hd_nav_arw::after { content:''; position:absolute;top:calc(50% - 1px); right:2px;  width:8px; height:8px; border-top:solid 2px #000; border-right:solid 2px #000; transform: translateY(-50%) rotate(45deg);  display:block; }
.header_menu a:hover > .hd_nav_arw { top:0; left:0; opacity:1; }



/* フッター（copyright）の設定 */
footer { position:relative; left:5vw; width:90vw; padding:5vw 0; text-align:center; }
footer span { font-size:1rem; color:#ababab; }


/* TOPページの設定 */
#top_main_area { position:relative; width:100%; height:auto; }
.top_logo { position:relative; top:0; left:5vw; width:90vw; height:auto; padding:5vw 0; }
.top_logo img { width:100%; height:auto; }

.top_main_img { position:relative; top:0; left:5vw; width:90vw; height:auto; aspect-ratio: 9 / 16;  overflow: hidden; background-color: #f1f1f1; }
.top_main_img img { position:relative; top:50%; left:50%; width: auto; height:100%; transform:translate(-50%, -50%); }
.top_main_img video { position:relative; width:100%; height:100%; object-fit: cover; object-position: 50% 50%; }
.top_menu { position:relative; top:0;; left:10vw; width:80vw; padding:5vw 0; }
.top_menu li { position:relative; font-size:4rem; margin-bottom:2vw; }
.top_menu li:last-child { margin-bottom:0; }
.top_menu a { transition:all .3s cubic-bezier(0.25, 1, 0.5, 1); }
.top_menu a:hover { padding-left:1.5rem; }

.top_menu_arw { content:''; position:relative; display:inline-block; top:6px; left:-6px; width:18px; height:28px; transform:rotate(-45deg);  background:none; margin-left:1.5rem; opacity:0; transition:all .3s cubic-bezier(0.25, 1, 0.5, 1); }
.top_menu_arw::before { content:''; position:absolute; top:calc(50% - 2px); width:17px; height:2px; background-color: #000; display:block;  }
.top_menu_arw::after { content:''; position:absolute;top:calc(50% - 1px); right:2px;  width:8px; height:8px; border-top:solid 2px #000; border-right:solid 2px #000; transform: translateY(-50%) rotate(45deg);  display:block; }
.top_menu a:hover > .top_menu_arw { top:0; left:0; opacity:1; }


/* AOUT USページの設定 */

#concept, #company_info, #member, #awards { position:relative; top:0; left:5vw; width:90vw; height:auto; padding:10vw 0 15vw 0; }
#concept { padding-top:calc(80px + 10vw); }
#concept h1 { font-size:4rem; line-height:125%; margin-top:0; margin-bottom:5vw; }
.concept_img { position:relative; top:0; left:0; width:100%; height:auto; }
.concept_img img { position:relative; top:0; left:0; width:100%; height:auto; }
.concept_txt { position:relative; top:0; left:0; width:100%; height:auto; padding-top:5vw; }
.concept_txt p { font-size:1.7rem; line-height:175%; margin-top:0; margin-bottom:2.5vw; }

#company_info h3, #member h3, #awards h3 { font-size:3.2rem; line-height:120%; margin-top:0; margin-bottom:5vw; }
.company_info_detail { position:relative; width:100%; height:auto; }
.company_info_detail dl { position:relative; width:100%; height:auto; font-size:1.3rem; margin:0; display:flex; flex-wrap:wrap; }
.company_info_detail dt, dd {margin-bottom:2vw;} 
.company_info_detail dt { width:7rem;}
.company_info_detail dd { width:calc(100% - 7rem); margin-left:0; }
.company_info_detail dt:last-of-type, .company_info_detail dd:last-of-type { margin-bottom:0; }

.member_card { position:relative; top:0; left:0; width:100%; height:auto; margin-bottom:10vw; }
.member_card:last-of-type { margin-bottom:0; }
.member_ph { position:relative; top:0; left:0; width:100%; height:auto; }
.member_ph img { width:100%; height:auto; }
.member_txt { position:relative; top:0; left:0; width:100%; height:auto; padding:5vw 0; }
.member_txt h5 { font-size:2rem; margin-top:0; margin-bottom:5px; }
.member_txt h6 { font-size:1rem; margin:0; }
.member_txt p { font-size:1.3rem; line-height:150%; margin:0; padding:15px 0 30px 0; }
.member_history { position:relative; width:100%; height:auto; font-size:1.2rem; margin:0; display:flex; flex-wrap:wrap; vertical-align:middle }
.member_history div { position:relative; width:100%; margin-bottom:4px; }
.member_history dt { width:5rem; margin:0 0 4px 0; }
.member_history dd { width:calc(100% - 5em); margin:0 0 4px 0; }
.member_history dt:last-of-type, .member_history dd:last-of-type { margin-bottom:0; }

.award_list { position:relative; width:100%; height:auto; }
.award_list dl { position:relative; width:100%; height:auto; display:flex; flex-wrap: wrap; }
.award_list dt { width:20%; font-size:2rem; color:#bcbcbc; margin-bottom:4vw; }
.award_list dd { width:80%; margin-left:0; font-size:1.3rem; margin-bottom:4vw; }
.award_list dd > p { margin-top:0; margin-bottom:2vw; }
.award_list dd > p:last-child { margin-bottom:0; }
.award_list a { text-decoration: underline; transition:all .3s ease; }
.award_list a:hover { opacity:0.6; }



/* RECRUITINGページの設定 */
#recruit_comingsoon { position:relative; top:0; left:0; width:100%; height:100vh;  }
#recruit_comingsoon h3 { position:absolute; width:50vw; top:50%; left:50%; transform:translate(-50%, -50%); font-size:2.4rem; text-align:center; margin:0; color:#ababab; }


/* NEWSページの設定 */
#news_list { position:relative; width:90vw; height:auto; min-height:85vh; top:0; left:5vw; padding:5vw 0 10vw 0;  }
.news_section_ttl { position:relative; width:100%; height:80px; margin:0 0 5vw 0; }
.news_section_ttl h1 { position:absolute; top:50%; right:0; transform:translateY(-50%); font-size:4rem;text-align: right; margin:0; }
.news_index { position:relative; width:100%;}
.news_index dl { position:relative; width:100%; font-size:1.3rem; padding:10vw 0; margin:0; border-bottom:solid 1px #ccc;  }
.news_index dl:first-child { border-top:solid 1px #ccc; }
.news_index dt, .news_index dd { position:relative; width:100%; margin:0;  }
.news_index dt { color:#bcbcbc; margin-bottom:1vw; }
.news_list_arw { position:absolute; top:50%; right:12px; transform:translateY(-50%); width:48px; height:48px; opacity:0; transition:all .3s cubic-bezier(0.85, 0, 0.15, 1) ;  }
.news_list_arw span { content:''; position:absolute; top:50%; right:2px; transform:translateY(-50%);  width:28px; height:2px; background-color: #000; display:block; }
.news_list_arw span::after { content:''; position:absolute; top:-7px; right:0;  width:14px; height:14px; border-top:solid 2px #000; border-right:solid 2px #000; transform:rotate(45deg); transform-origin:center; display:block;  }

.news_index dl a { position:absolute; width:100%; height:100%; top:0; left:0; cursor:pointer; }
.news_index dl:hover > dt { color:#dedede; }
.news_index dl:hover > dd { color:#888888; }
.news_index dl:hover > .news_list_arw  { right:0; opacity:1; }

.pagination-container { margin-top:5vw; }
.pagination { display:flex; flex-wrap:wrap; }
.page-item { position:relative; width:28px; height:28px; margin:0 5px; }
.page-item:nth-of-type(1) { margin-left:0; }
.number { position:relative; border:1px solid #ccc; border-radius:100%; box-sizing: border-box; }
.number a { position:absolute; width:100%; height:100%; font-size:1.2rem; color:#ccc; text-align:center; padding:7px 0; box-sizing: border-box; }

.pager-active { border-color:#000; background-color: #000; }
.pager-active a { color:#fff; }


#news_article {  position:relative; width:90vw; height:auto; top:0; left:5vw; padding:30vw 0 10vw 0;  }
.news_ttl { position:relative; width:100%; margin-bottom:5vw; }
.news_ttl h6 { font-size:1.3rem; color:#bcbcbc; margin:0 0 2vw 0; }
.news_ttl h3 { font-size:2rem; line-height:160%; margin:0; }
.news_txt { position:relative; width:100%; height:auto; padding-bottom:10vw; }
.news_txt p { font-size:1.3rem; line-height:180%; margin-top:0; margin-bottom:3vw; }
.news_txt p:last-child { margin-bottom:0; }

.news_img { position:relative; width:100%; height:auto; margin-bottom:5vw; overflow: hidden; }
.news_img:last-of-type { margin-bottom:0; }
.news_img img { width:100%; height:auto; }




/* PROJECTページの設定 */
#prj_index { position:relative; width:90vw; height:auto; left:5vw; top:0; padding:5vw 0 10vw 0; }
.prj_index_section_ttl { position:relative; width:100%; height:80px; margin:0 0 5vw 0; }
.prj_index_section_ttl h1 { position:absolute; top:50%; right:0; transform:translateY(-50%); font-size:4rem;text-align: right; margin:0; }

.prj_index_sort { position:relative; width:100%; height:auto; padding:0 0 5vw 0; display:flex; flex-wrap:wrap; }
.prj_index_sort button { font-size:1.3rem; color:#bcbcbc; border:none; padding:0; margin-right:14px; margin-bottom:4px; background:none; cursor:pointer; transition:all .3s ease; }
.prj_index_sort button:last-of-type { margin-right:0; }
.prj_index_sort button:hover { color:#000; }

.sort_active { color:#000 !important; font-weight:700 !important; }
.hide { display:none !important;}
.show { display:block !important; }


.prj_card { position:relative; width:100%; height:auto; aspect-ratio: 4 / 3; margin-bottom:5vw; }
.prj_card:last-of-type { margin-bottom:0; }
.prj_index_ttl { position:absolute; top:50%; left:0; width:100%; height:auto; padding:0 10%; transform:translateY(-50%); opacity:0; transition:opacity .3s cubic-bezier(0.76, 0, 0.24, 1); }
.prj_index_ttl h3 { font-size:2.4rem; line-height:95%; margin-top:0; margin-bottom:1vw; color:#fff; text-align:center; }
.prj_index_ttl h3 > span { font-size:1.8rem; }
.prj_index_ttl h5 { font-size:1.2rem; color:#fff; margin:0; text-align:center; }

.prj_thumbnail { position:absolute; top:0; left:0; width:100%; height:100%; overflow: hidden; }
.prj_thumbnail img { position:absolute; top:0; left:0; width:100%; height:auto; transform-origin:center; object-fit: cover; transition:transform .3s cubic-bezier(0.76, 0, 0.24, 1); }
.prj_thumbnail::after { content:''; position:absolute; width:100%; height:100%; background-color:#000; opacity:0; mix-blend-mode: multiply; display:block; transition:opacity .3s cubic-bezier(0.76, 0, 0.24, 1); }

.prj_card a { position:absolute; top:0; left:0; width:100%; height:100%; cursor:pointer; }
.prj_card:hover > .prj_index_ttl { opacity:1; }
.prj_card:hover > .prj_thumbnail img { transform:scale(1.1); }
.prj_card:hover > .prj_thumbnail::after { opacity:.55; }


#prj_detail { position:relative; padding-bottom:10vw; }
.prj_main_area { position:relative; width:100%; height:auto; top:0; left:0; padding-top:0; }
.prj_main_ph { position:relative; width:100%; height:auto; aspect-ratio: 1 / 1.1; overflow: hidden;}
.prj_main_ph img { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); width:auto; height:100%; object-fit: cover; }
.prj_name { position:absolute; top:0; right:0; }
.prj_name h1 { position:relative; width:100%;  font-size:5.4rem; line-height:110%; margin:0; color:#000; writing-mode: vertical-rl; }
.prj_name_sub { font-size:1.6rem; padding-top:10px; }
.kakko_start { margin-top:-2.5rem;}
.kakko_end { margin-bottom:-2.5rem; }

.prj_ttl_area { position:relative; top:0; left:5vw; width:90vw; height:auto; }

.prj_ttl { position:relative; width:100%; height:auto; padding:10vw 0; }
.prj_ttl h3 { font-size:3rem; line-height:110%; margin:0; }

.prj_info { position:relative; padding:4vw 0; border-top:1px solid #ccc; border-bottom:1px solid #ccc; }
.prj_scope_area { padding-bottom:5px; margin-bottom:5px; box-sizing: border-box; }
.prj_scope { font-size:1.2rem; padding:4px 8px; border:1px solid #000; border-radius:20px; margin-right:5px; margin-bottom:5px; display:inline-block; box-sizing: border-box; }
.prj_credit { position:relative; }
.prj_credit ul { position:relative; font-size:1rem; }

.prj_txt { position:relative; top:0; left:5vw; width:90vw; height:auto; padding:7.5vw 0; }
.prj_txt p { font-size:1.3rem; line-height:180%; text-align: justify; margin-top:0; margin-bottom:4vw; }
.prj_txt p:last-child { margin-bottom:0; }

.prj_detail_ph, .prj_detail_video { position:relative; top:0; left:5vw; width:90vw; height:auto; margin-bottom:10px; }
.prj_detail_ph img { width:100%; }
.prj_detail_ph:last-of-type, .prj_detail_video:last-of-type { margin-bottom:0; }
.prj_detail_video { aspect-ratio: 16 / 9; }
.prj_detail_video iframe { width:100%; height:100%; }


/* NEWSとPROJECT共通の戻るボタンの設定 */
#back_to_index { position:relative; width:130px; left:5vw; display:flex; align-items:center; }
.back_arw { content:''; position:relative; width:16px; height:24px; display:block;  }
.back_arw::before { content:''; position:absolute; top:calc(50% - 1px); left:0; width:16px; height:2px; background-color: #000;  transition:all .3s cubic-bezier(0.85, 0, 0.15, 1); }
.back_arw::after { content:''; position:absolute; top:calc(50% - 5px); left:0; width:8px; height:8px; border-top:solid 2px #000; border-left:solid 2px #000; transform:rotate(-45deg);  transition:all .3s cubic-bezier(0.85, 0, 0.15, 1); }
#back_to_index p { font-size:1.2rem; margin:0; padding-left:12px; transition:all .3s cubic-bezier(0.85, 0, 0.15, 1); }
#back_to_index a { position:absolute; width:100%; height:100%; top:0; left:0; }

#back_to_index:hover p { padding-left:4px; color:#565656; }
#back_to_index:hover > .back_arw::before { width:10px; }



/* ↓CONTACT用設定↓ */
#contact_input, #contact_confirm { position:relative; padding:5vw 0 10vw 0; }
.contact_section_ttl { position:relative; width:90vw; left:5vw; height:80px; margin:0 0 10vw 0; }
.contact_section_ttl h1 { position:absolute; top:50%; right:0; transform:translateY(-50%); font-size:4rem;text-align: right; margin:0; }
.contact_input_ttl { position:relative; width:90vw; left:5vw; }
.contact_input_ttl h3 { font-size:2.2rem; line-height:110%; margin:0 0 5vw 0;  }
.contact_input_ttl p { font-size:1.3rem; line-height:150%; margin:0 0 12.5vw 0; }

#contact_input form { position:relative; width:90vw; left:5vw; padding-bottom:10vw; }
.form_input_name, .form_input_company, .form_input_mail, .form_input_tel, .form_input_inquiry, .form_input_agree { position:relative; width:100%; height:auto; margin-bottom:18px; display:flex; flex-wrap:wrap; align-items: center; }
.form_input_name label, .form_input_company label, .form_input_mail label, .form_input_tel label, .form_input_inquiry label { width:25%; font-size:1.3rem; padding-right:10px; display:block; box-sizing:border-box; }
.form_input_name input, .form_input_company input, .form_input_mail input, .form_input_tel input, .form_input_inquiry textarea { width:75%; height:48px; padding:8px; border:1px solid #cdcdcd; background-color: #f5f5f5; display:block; box-sizing:border-box; }

.form_input_inquiry { align-items:flex-start; }
.form_input_inquiry label { padding-top:10px; }
.form_input_inquiry textarea { min-height:160px; }

.form_input_agree { margin-bottom:0; padding:5vw 0; border-top:1px solid #cdcdcd; border-bottom:1px solid #cdcdcd; }
.form_input_agree input { width:28px; height:28px; margin:0; box-sizing:border-box; border:1px solid #cdcdcd; padding:5px; cursor:pointer; }
.form_input_agree label { width:calc(100% - 28px); padding-left:20px; font-size:1.3rem; box-sizing:border-box; cursor:pointer;  }
.form_input_agree_caption { width:100%; padding-left:48px; display:block; }
.form_input_agree_caption a { text-decoration: underline; opacity:1; transition:all .3s ease; }
.form_input_agree_caption a:hover { text-decoration: none; opacity:0.6; }


.form_input_submit { position:relative; width:100%; padding:10vw 0 0 0; }
.form_input_submit button { position:relative; left:50%; width:240px; height:60px; font-size:1.5rem; color:#fff; border:1px solid #000; background-color: #000; border-radius:30px; margin:0; padding:0; transform:translateX(-50%); cursor:pointer; transition:all .3s ease-in-out; }
.form_input_submit button > span { content:''; position:absolute; top:calc(50% - 1px); right:18px; width:16px; height:2px; background-color: #fff; display:block; transition:all .3s ease-in-out; }
.form_input_submit button > span::after { content:''; position:absolute; top:-4px; right:0; width:8px; height:8px; border-top:2px solid #fff; border-right:2px solid #fff; transform:rotate(45deg); display:block; }
.form_input_submit button:hover { background-color: #454545; }
.form_input_submit button:hover > span { right:14px; }

.form_input_submit button:disabled { background-color: #f1f1f1; color:#bcbcbc; border:1px solid #cdcdcd; cursor:default; }
.form_input_submit button:disabled > span { display:none; }


#contact_confirm form { position:relative; width:90vw; left:5vw; box-sizing: border-box; display:block; }
.contact_confirm_list { position:relative; width:100%; height:auto; border:1px solid #cdcdcd; background-color: #fff; padding:5vw; box-sizing: border-box; }
.contact_confirm_list dl { position:relative; width:100%; height:auto; margin:0; padding:0; display:flex; flex-wrap:wrap; }
.contact_confirm_list dt { width:70px; font-size:1rem; padding:24px 0 20px 0; border-bottom:1px solid #efefef; vertical-align: middle; }
.contact_confirm_list dd { width:calc(100% - 70px); margin:0; font-size:1.4rem; padding:20px 0; border-bottom:1px solid #efefef; vertical-align: middle; }

.contact_confirm_list dt:last-of-type { border-bottom:none; }
.contact_confirm_list dd:last-of-type { border-bottom:none; }

.contact_confirm_btn_area { position:relative; width:100%; padding:20px 0 40px 0; }
.contact_back_to_input, .contact_send { position:relative; width:100%; height:auto; margin:0; padding:0; }
.contact_back_to_input { margin-bottom:15px; }
.contact_back_to_input button, .contact_send button { position:relative; left:50%; width:240px; height:60px; padding-left:15px; border-radius:30px; transform:translateX(-50%); cursor:pointer; transition:all .3s ease-in-out;  }
.contact_back_to_input button { color:#676767; background-color: #ededed; border:1px solid #ababab; }
.contact_send button { color:#fff; background-color: #000; border:1px solid #000; }

.contact_back_to_input button > span { content:''; position:absolute; top:calc(50% - 1px); left:18px; width:16px; height:2px; background-color: #898989; display:block; transition:all .3s ease-in-out;  }
.contact_back_to_input button > span::after { content:''; position:absolute; top:-4px; left:0; width:8px; height:8px; border-top:2px solid #898989; border-left:2px solid #898989; transform:rotate(-45deg); display:block; }
.contact_send button > span { content:''; position:absolute; top:calc(50% - 8px); left:16px; width:17px; height:12px; border:2px solid #fff; border-radius:4px; display:block; }
.contact_send button > span::before { content:''; position:absolute; top:calc(50% - 2px); left:2px; width:8px; height:2px; background-color: #fff; transform:rotate(32deg); border-radius:2px; }
.contact_send button > span::after { content:''; position:absolute; top:calc(50% - 2px); right:2px; width:8px; height:2px; background-color: #fff; transform:rotate(-32deg); border-radius:2px; }


.contact_back_to_input button:hover { background-color: #bcbcbc; }
.contact_back_to_input button:hover > span { left:14px; }
.contact_send button:hover { background-color: #454545; }


#contact_thanks { position:relative; width:100%; height:100vh; left:0; padding:10vw 0; box-sizing: border-box; }
.contact_thanks_inner { position:relative; width:90vw; left:5vw; top:50%; transform:translateY(-50%); }
.contact_thanks_ttl { position:relative; width:100%; height:auto; margin:0; padding:5vw 0; }
.contact_thanks_ttl h1 { font-size:4rem; margin:0; text-align:center; }
.contact_thanks_txt { position:relative; width:100%; padding-bottom:20px; }
.contact_thanks_txt p { font-size:1.8rem; margin:0; }
.contact_thanks_note { position:relative; padding:5vw; border:1px solid #cccccc; border-radius:12px; }
.contact_thanks_note p { font-size:1rem; margin-top:0; margin-bottom:10px; }
.contact_thanks_note p:last-child { margin-bottom:0; }


/* ↓プライバシーポリシー用設定↓ */

#policy { position:relative; width:90vw; left:5vw; padding:5vw 0 10vw 0; }
.policy_ttl { position:relative; width:100%; height:80px; margin:0 0 10vw 0; }
.policy_ttl h1 { position:absolute; top:50%; right:0; transform:translateY(-50%); font-size:2.8rem;text-align: right; margin:0;}
.policy_lead { position:relative; width:100%; height:auto; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid #cccccc; }
.policy_lead p { font-size:1.3rem; line-height:160%; margin:0; }
.policy_txt { position:relative; width:100%; height:auto; margin-bottom:40px; }
.policy_txt h3 { font-size:1.8rem; margin:0 0 10px 0; }
.policy_txt p { font-size:1.3rem; line-height:160%; margin:0 0 10px 0; }
.policy_txt dl { position:relative; width:100%; left:0; padding-left:5%; font-size:1.3rem; display:flex; flex-wrap:wrap; }
.policy_txt dt { width:20px; margin:0 0 10px 0; padding-top:2px; }
.policy_txt dd { width:calc(100% - 20px); padding:0; margin:0 0 10px 0; }
.policy_note { position:relative; width:100%; padding:5vw; margin:10px 0 0 0; border:1px solid #cccccc; border-radius:12px; }
.policy_note h5 { font-size:1.4rem; margin:0 0 5px 0; }
.policy_note a { text-decoration: underline; transition:all .3s ease; }
.policy_note a:hover { text-decoration: none; opacity:0.7; }

@media (prefers-reduced-motion: reduce) {
  .wrapper,
  .transition_kumanote {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
  }
}


/* ↓ここからタブレット用設定↓ */
@media screen and (min-width: 481px) {

  .transition_kumanote { right:-10%; transform:translateY(150%) rotate(-15deg); }
  #page_transition.is-active .transition_kumanote { transform:translateY(12%) rotate(-15deg); opacity:1; }
  #page_transition.is-hide .transition_kumanote { transform:translateY(150%) rotate(-15deg); opacity:1;}
  
  .top_main_img { aspect-ratio: 1 / 1; }
  .top_main_img img, .top_main_img video { width: auto; height:100%; }
  .top_menu { width:90vw; left:5vw; }
  #concept h1 { font-size:5rem; }

  .prj_index_section_ttl h1, .news_section_ttl h1, .contact_section_ttl h1 { font-size:5rem; }
  .prj_name h1 { font-size:6.4rem; line-height:100%; }
  .prj_name h1 { line-height:85%; }
  .prj_ttl h3 { font-size:4rem; line-height:120%; }
  .prj_detail_ph { margin-bottom:15px; }


  .news_index dl { padding:50px 0; }

  #news_article { padding-top:160px; padding-bottom:60px; }
  .news_ttl { margin-bottom:30px; }
  .news_ttl h6 { margin-bottom:10px; }
  .news_txt { padding-bottom:60px; }
  .news_txt p { margin-bottom:10px; }


  footer { padding:20px 0; }


}




/* ↓ここからPC用設定↓ */
@media screen and (min-width: 961px) {

  .sp-on { display:none !important; }
  .pc-on { display:block !important; }

  /* 方眼背景の設定 */
  .hougan { background-size: 2.5vw 2.5vw ; }

  .transition_kumanote { width:30vw; max-width:initial;  right:25%;  transform:translateY(150%) rotate(-8deg); }
  #page_transition.is-active .transition_kumanote { transform:translateY(20%) rotate(-8deg); opacity:1; }
  #page_transition.is-hide .transition_kumanote { transform:translateY(150%) rotate(-8deg); opacity:1;}


  header { position:fixed; width:15vw; height:auto; top:5vw; left:5vw; z-index:9999; }

  .header_logo { position:relative; width:100px; height:100px; top:0; left:0; }
  .menu_icon { display:none; }
  .header_menu_content { position:relative; top:0; left:0; width:15vw; padding-top:30px; transform:none; background: none; box-shadow: none; }
  .header_menu_content ul { width:100%; height:auto; top:0; left:0; padding:0; transform:none; }
  .header_menu_content li { font-size:1.6rem; margin-bottom:10px; }
  .header_menu_content a:hover { padding-left:4px; }
  .hd_nav_arw { top:4px; left:-3px;  width:12px; height:12px; margin-left:4px; }
  .hd_nav_arw::before { width:9px; }
  .hd_nav_arw::after { width:4px; height:4px; }
  .header_menu a:hover > .hd_nav_arw { top:2px; left:0;  }


  #top_main_area { display:flex; flex-wrap:wrap; }
  .top_logo { padding-bottom:0; }
  .top_main_img { left:0; top:-5vw; width:70%; aspect-ratio: 1.414 / 1; margin-bottom:-5vw; z-index:-1; }
  .top_main_img img, .top_main_img video { width:101%; height:auto; }
  .top_menu { width:30%; top:-5vw; left:0; padding:0 5vw 0 2.5vw; margin-bottom:-5vw; }
  .top_menu ul { position:absolute; bottom:2.5vw; }
  .top_menu li { font-size:3.6rem; margin-bottom:1.2vw; }
  
  
  .top_menu a:hover { padding-left:1rem; }
  .top_menu_arw { margin-left:1rem; }

  #concept, #company_info, #member, #awards, #prj_detail, #news_list, #news_article, #recruit_comingsoon, #contact_input, #contact_confirm, #contact_thanks, #policy { left:20vw; width:75vw; padding-bottom:5vw; }

  #concept, #company_info, #member, #contact_input { padding-top:5vw; display:flex; flex-wrap:wrap; }
  #concept h1 { font-size:8rem; line-height:110%; width:100%; }
  .concept_img, .concept_txt { width:50%; }
  .concept_img img { top:50%; transform:translateY(-50%); }
  .concept_txt { padding:2.5vw; }
  .concept_txt p:last-of-type { margin-bottom:0; }
  #company_info h3, #member h3, #awards h3 { font-size:3.6rem; margin-bottom:20px; }
  #company_info h3, #member h3 { width:30%;}
  .company_info_detail, .member_detail { width:70%; }
  .company_info_detail dt, dd { margin-bottom:15px; }
  .company_info_detail dt { width:8rem; }
  .company_info_detail dd { width:calc(100% - 8rem); }
  .member_card { display:flex; flex-wrap:wrap; margin-bottom:20px; }
  .member_ph { width:40%; margin-top:5px; }
  .member_txt { width:60%; padding:0 0 0 20px; margin-top:5px; }
  .member_ph { aspect-ratio: 3 / 4; overflow: hidden; margin-bottom:0; }
  .member_ph img { position:relative; width:auto; height:100%; left:50%; transform:translateX(-50%); }
  .member_txt h5 { margin-bottom:5px; }
  .member_txt p { padding:10px 0 30px 0; }
  .member_history { font-size:1rem; }
  .member_history dt, .member_history dd, .member_history div { margin-bottom:5px; }
  .member_history dt { width:4rem; }
  .member_history dd { width:calc(100% - 4rem); }
  #awards { padding-top:5vw; }
  .award_list dt, .award_list dd { margin-bottom:15px; }
  .award_list dt { font-size:3.2rem; width:140px; }
  .award_list dd { padding-top:6px; width:calc(100% - 140px); font-size:1.6rem; }


  #prj_index { width:75vw; left:20vw; padding:5vw 0; }
  .prj_index_section_ttl, .news_section_ttl, .contact_section_ttl, .policy_ttl { height:100px; margin-bottom:30px; }
  .prj_index_section_ttl h1, .news_section_ttl h1 , .contact_section_ttl h1 { position:relative; left:0; font-size:11rem; right:inherit; text-align:left; }
  .prj_index_list { display:flex; flex-wrap:wrap; justify-content: space-between; }
  .prj_card { width:49%; margin-bottom:20px; }
  .prj_index_ttl h3 { font-size:4rem; line-height:105%; }
  .prj_index_ttl h3 > span { font-size:3rem; margin:0; }
  .prj_index_ttl h5 { font-size:1.4rem; margin-top:10px; }

  #prj_detail { left:20vw; width:80vw; padding-bottom:5vw; }
  .prj_main_ph { aspect-ratio: 4 / 3; top:90px; margin-bottom:90px; }
  .prj_name { right:inherit; top:-15px; left:-6px; }
  .prj_name h1 { font-size:10rem; line-height:110%; writing-mode: horizontal-tb; }
  .prj_name_sub { position:relative; top:-50px; font-size:5rem; padding:0; display:inline-block; }
  .prj_name_eng { top:-5px; }
  .prj_name_eng h1 { font-size:12rem; line-height:85%; }
  .kakko_start { margin-top:0; margin-left:-4rem; }
  .kakko_end { margin-bottom:0; margin-right:-4rem; }
  .prj_ttl_area, .prj_txt, .prj_detail_ph, .prj_detail_video { width:70vw; left:5vw; }
  .prj_ttl_area { padding:5vw 0; display:flex; flex-wrap:wrap; }
  .prj_ttl { width:65%; padding:20px 0; }
  .prj_ttl h3 { position:relative; top:50%; font-size:4.2rem; transform:translateY(-50%); }
  .prj_info { width:35%; padding:0 0 0 20px; border-top:none; border-bottom:none; border-left:1px solid #ccc; }

  .prj_txt { padding:0 0 10vw 0; }
  .prj_txt p { font-size:1.6rem; column-count: 2; column-gap: 2em; }
  .prj_detail_ph, .prj_detail_video { margin-bottom:20px; }

  #back_to_index { position:fixed; left:4vw; bottom:60px; z-index:9990; }


  .news_index dl { display:flex; font-size:1.6rem; }
  .news_index dt { width:12rem; margin:0; padding-top:2px; }
  .news_index dd { width:calc(100% - 12rem); }

  .pagination-container { margin-top:20px; }

  #news_article { padding-top:5vw; }
  .news_ttl { margin-bottom:40px;  }
  .news_ttl h6 { font-size:1.8rem; }
  .news_ttl h3 { font-size:3.6rem; margin:0;}
  .news_txt { padding-bottom:80px; }
  .news_txt p { font-size:1.5rem; margin-bottom:15px; }
  .news_img { margin-bottom:30px; }

  #recruit_comingsoon { padding:0; }
  #recruit_comingsoon h3 { font-size:4rem; }

  #contact_confirm { display:flex; flex-wrap:wrap; }

  .contact_section_ttl { width:100%; left:0; margin-bottom:60px; }
  .contact_input_ttl { width:30%; left:0;}
  #contact_input form, #contact_confirm form { width:70%; left:0; padding-left:60px; padding-bottom:60px; box-sizing: border-box; }

  .contact_input_ttl h3 { font-size:3rem; margin-bottom:20px; line-height:130%; }
  .contact_input_ttl p { line-height:175%; margin:0; }

  .form_input_name label, .form_input_company label, .form_input_mail label, .form_input_tel label, .form_input_inquiry label { font-size:1.6rem; width:10rem; }
  .form_input_name input, .form_input_company input, .form_input_mail input, .form_input_tel input, .form_input_inquiry textarea { width:calc(100% - 10rem); }
  .form_input_agree { padding:20px 0; }
  .form_input_agree label { font-size:1.6rem; }
  .form_input_agree_caption { font-size:1.2rem; padding-top:5px; }
  .form_input_submit { padding-top:40px; }

  .contact_confirm_list dl { padding:30px; }
  .contact_confirm_list dt { width:80px; font-size:1.2rem; padding:33px 0 30px 0;  }
  .contact_confirm_list dd { width:calc(100% - 80px); font-size:1.6rem; padding:30px 0; }

  .contact_back_to_input, .contact_send { width:240px; }

  .contact_confirm_btn_area { width:100%; padding:20px 0 40px 50px; display:flex; flex-wrap:wrap; justify-content: center; }
  .contact_back_to_input, .contact_send { width:220px; }
  .contact_back_to_input button, .contact_send button { width:220px; left:0; transform:none; margin-bottom:0;  }
  .contact_back_to_input { margin-right:6px; }
  .contact_send { margin-left:6px; }

  #contact_thanks { height:auto; padding:0; }
  .contact_thanks_inner { width:100%; top:0; left:0; transform:none; padding:5vw 0; }
  .contact_thanks_ttl { padding:0; margin-bottom:60px; }
  .contact_thanks_ttl h1 { font-size:10rem; text-align:left; }
  .contact_thanks_txt { margin-bottom:30px; }
  .contact_thanks_txt p { font-size:2.4rem; }
  .contact_thanks_note { padding:40px; }
  .contact_thanks_note p { font-size:1.2rem; margin-bottom:15px; }


  .policy_ttl h1 { position:relative; left:0; font-size:6rem; right:inherit; text-align:left; }
  .policy_lead { margin-bottom:30px; padding-bottom:30px; }
  .policy_txt h3 { font-size:2.4rem; }
  .policy_txt p { margin-bottom:15px; }
  .policy_txt dl { padding-left:20px;}
  .policy_note { padding:40px; }



  footer { position:fixed; width:15vw; height:15px; bottom:20px; padding:0; text-align:left; z-index:-1; }

}
 

/* ↓ここからPC用設定2↓ */
@media screen and (min-width: 1500px) {

  .header_logo { width:8vw; height:8vw; }
  .header_menu_content { padding-top:2vw; }
  .header_menu_content li { font-size:1.4vw; margin-bottom:0.8vw; }
  .hd_nav_arw { top:0.2vw; left:0.1vw; width:1vw; height:1vw; margin-left:0.2vw; }
  .hd_nav_arw::before { width:1vw; height:0.15vw; top:calc(50% - 0.25vw); }
  .hd_nav_arw::after { width:0.4vw; height:0.4vw; right:0; top:calc(50% - 0.175vw); border-top:solid 0.15vw #000; border-right:solid 0.15vw #000; }
  .header_menu_content a:hover { padding-left:0.6vw; }


  .top_menu { padding-left:3vw; }
  .top_menu ul { bottom:4vw; }
  .top_menu li { font-size:3vw; }
  .top_menu_arw { top:0.4vw; left:-0.4vw; width:1vw; height:2vw; }
  .top_menu_arw::before { top:calc(50% - 0.2vw); width:1vw; height:0.15vw; }
  .top_menu_arw::after { width:0.5vw; height:0.5vw; top:calc(50% - 0.15vw); right:0; border-top:solid 0.15vw #000; border-right:solid 0.15vw #000; }

  
  #concept, #company_info, #member, #awards, #prj_detail, #news_list, #news_article, #recruit_comingsoon, #contact_input, #contact_confirm, #contact_thanks { padding-top:4vw; }

  .prj_index_section_ttl, .news_section_ttl, .contact_section_ttl { height:10vw; margin-bottom:3vw; }
  .prj_index_section_ttl h1, .news_section_ttl h1, .contact_section_ttl h1 { font-size:10vw; }
  .prj_index_sort button { font-size:1vw; margin-right:1vw; margin-bottom:0.3vw; }

  .prj_index_list { justify-content:flex-start; }

  .prj_index_ttl h3 { font-size:2vw; margin-bottom:0; }
  .prj_index_ttl h3 > span { font-size:1.2vw; }
  .prj_index_ttl h5 { font-size:0.8vw; margin-top:0.5vw; }
  .prj_card { width:32%; margin-bottom:1vw; margin-left:0.6%; margin-right:0.6%; }

  #prj_detail { padding-top:0; }
  .prj_main_ph { top:7.5vw; margin-bottom:7.5vw; }
  .prj_name { left:-0.5vw; top:-0.5vw; }
  .prj_name_eng { top:-0.7vw; }
  .prj_name h1 { font-size:8vw; line-height:95%; }
  .prj_name_eng h1 { font-size:11vw; line-height:80%; }
  .prj_name_sub { font-size:4vw; }
  .kakko_start { margin-left:-3vw; }
  .kakko_end { margin-right:-3vw; }

  .prj_ttl { width:45vw; padding:2vw 0; }
  .prj_ttl h3 { font-size:3vw; }
  .prj_info { width:25vw; padding:0 0 0 2vw; border-left:0.15vw solid #ccc; }
  .prj_scope { font-size:0.8vw; padding:0.3vw 0.6vw; border:0.15vw solid #000; border-radius:2vw; margin-right:0.4vw; margin-bottom:0.4vw; }
  .prj_credit ul { font-size:0.8vw; }
  .prj_credit li { margin-bottom:0.2vw; }
  .prj_txt p { font-size:1.2vw; }
  .prj_detail_ph, .prj_detail_video { margin-bottom:1.5vw; }

  #back_to_index { width:10vw; bottom:4vw; }
  #back_to_index p { font-size:0.8vw; padding-left:0.8vw; }
  .back_arw { width:1vw; height:1.7vw; }
  .back_arw::before { width:1vw; height:0.15vw; top:calc(50% - 0.1vw); }
  .back_arw::after { width:0.5vw; height:0.5vw; top:calc(50% - 0.35vw); border-top:solid 0.17vw #000; border-left:solid 0.17vw #000; }
  #back_to_index:hover p { padding-left:0.4vw;}
  #back_to_index:hover > .back_arw::before { width:0.8vw; }
  
  #concept h1 { font-size:6vw; }
  .concept_txt p { font-size:1.4vw; }
  #company_info h3, #member h3, #awards h3 { font-size:3.6vw; margin-bottom:1.3vw; }
  .company_info_detail dl { font-size:1vw; }
  .company_info_detail dt { width:7vw; }
  .company_info_detail dd { width:calc(100% - 7vw); }
  .company_info_detail dt, dd { margin-bottom:1vw; }

  .member_txt h5 { font-size:1.5vw; margin-bottom:0.2vw; }
  .member_txt h6 { font-size:0.6vw; }
  .member_ph { margin-top:0.4vw; }
  .member_txt { padding-left:2vw; margin-top:0.4vw; }
  .member_txt p { font-size:1vw; padding:1vw 0 2vw 0; }
  .member_history { font-size:0.8vw; }
  .member_history dt, .member_history dd, .member_history div { margin-bottom:0.3vw; }
  .award_list dl { margin:0; }
  .award_list dt, .award_list dd { margin-bottom:1.2vw; }
  .award_list dt { font-size:2.4vw; width:10vw; }
  .award_list dd { width:calc(100% - 10vw); font-size:1vw; padding-top:0.8vw; }
  .award_list dd > p { margin-bottom:1vw; }

  .news_index dl { font-size:1.2vw; padding:4vw 0 ; border-bottom:solid 0.1vw #ccc; }
  .news_index dl:first-child { border-top:solid 0.1vw #ccc; }
  .news_index dt { width:10vw; }
  .news_index dd { width:calc(100% - 10vw); }
  .news_list_arw { right:1vw; width:3vw; height:3vw; }
  .news_list_arw span { width:1.6vw; height:0.15vw; right:0.15vw; }
  .news_list_arw span::after { width:1vw; height:1vw; top:-0.5vw; border-top:solid 0.15vw #000; border-right:solid 0.15vw #000; }

  .pagination-container { margin-top:2vw; }
  .page-item { width:2vw; height:2vw; margin:0 0.4vw; }
  .pager-active a { font-size:0.8vw; padding:0.5vw 0; }

  .news_ttl { margin-bottom:2.5vw; }
  .news_ttl h6 { font-size:1.5vw; margin-bottom:1vw; }
  .news_ttl h3 { font-size:3vw; }
  .news_txt { padding-bottom:5vw; }
  .news_txt p { font-size:1.2vw; margin-bottom:1vw; }

  #recruit_comingsoon h3 { font-size:3vw; }

  .contact_input_ttl h3 { font-size:2.4vw; margin-bottom:2vw; }
  .contact_input_ttl p { font-size:1vw; }
  #contact_input form, #contact_confirm form  { padding-left:4vw; padding-bottom:4vw; }
  .form_input_name, .form_input_company, .form_input_mail, .form_input_tel, .form_input_inquiry, .form_input_agree { margin-bottom:1.2vw; }
  .form_input_name label, .form_input_company label, .form_input_mail label, .form_input_tel label, .form_input_inquiry label { font-size:1.2vw; width:10vw; padding-right:1vw; }
  .form_input_name input, .form_input_company input, .form_input_mail input, .form_input_tel input, .form_input_inquiry textarea { width:calc(100% - 10vw); height:4vw; padding:1vw; border:0.1vw solid #cdcdcd; }
  .form_input_inquiry textarea { min-height:12vw; }
  .form_input_inquiry { margin-bottom:2vw; }
  .form_input_agree { padding:1.5vw 0; border-top:0.1vw solid #cdcdcd; border-bottom:0.1vw solid #cdcdcd; }
  .form_input_agree input { width:2vw; height:2vw; }
  .form_input_agree label { width:calc(100% - 2vw); font-size:1.2vw; padding-left:2vw; }
  .form_input_agree_caption { font-size:0.8vw; padding-top:0.3vw; padding-left:4vw; }
  .form_input_submit { padding-top:2.5vw; }
  .form_input_submit button { width:18vw; height:5vw; border:0.1vw solid #000; border-radius:3vw; font-size:1.2vw; }
  .form_input_submit button:disabled { border:0.1vw solid #cdcdcd; }
  .form_input_submit button > span { width:1vw; height:0.15vw; top:calc(50% - 0.1vw);  right:1.2vw; }
  .form_input_submit button > span::after { width:0.5vw; height:0.5vw; top:-0.25vw; border-top:0.15vw solid #fff; border-right:0.15vw solid #fff; }
 
  .contact_confirm_list { padding:2vw 3vw; border:0.15vw solid #cdcdcd; }
  .contact_confirm_list dt { width:7vw; font-size:0.9vw; padding:2.3vw 0 2vw 0; }
  .contact_confirm_list dd { width:calc(100% - 7vw); font-size:1.2vw; padding:2vw 0; border-bottom:0.15vw solid #efefef; }
  .contact_confirm_btn_area { padding:2vw 0 4vw 4vw; }
  .contact_back_to_input, .contact_send { width:17vw; margin-bottom:0; }
  .contact_back_to_input { margin-right:0.5vw; }
  .contact_send { margin-left:0.5vw; }
  .contact_back_to_input button, .contact_send button { width:17vw; height:5vw; font-size:1vw; padding-left:1.5vw; border-radius:3vw; }
  .contact_back_to_input button > span { width:1vw; height:0.15vw; top:calc(50% - 0.1vw); left:1.2vw; }
  .contact_back_to_input button > span::after { width:0.4vw; height:0.4vw; top:-0.2vw; border-top:0.15vw solid #898989; border-left:0.15vw solid #898989;  }
  .contact_send button > span { top:calc(50% - 0.5vw); left:1.2vw; width:1.2vw; height:0.9vw; border:0.15vw solid #fff; border-radius:0.2vw; }
  .contact_send button > span::before, .contact_send button > span::after { top:calc(50% - 0.15vw); width:0.5vw; height:0.15vw; border-radius:0.15vw; }
  .contact_send button > span::before { left:0.2vw; }
  .contact_send button > span::after { right:0.2vw; }

  .contact_thanks_inner { padding-top:0; display:flex; flex-wrap:wrap; justify-content: space-between; }
  .contact_thanks_ttl { width:100%; margin-bottom:2vw; }
  .contact_thanks_ttl h1 { font-size:9vw; }
  .contact_thanks_txt { width:48%; padding-bottom:2vw; margin:0; }
  .contact_thanks_txt p { font-size:1.8vw; }
  .contact_thanks_note { width:48%; padding:2vw; border:0.1vw solid #cccccc; border-radius:1vw; }
  .contact_thanks_note p { font-size:0.8vw; margin-bottom:0.5vw; }

  .policy_ttl { margin-bottom:3vw; }
  .policy_ttl h1 { font-size:5vw; }
  .policy_lead { margin-bottom:4vw; padding-bottom:4vw; border-bottom:0.1vw solid #cccccc; }
  .policy_lead p { font-size:1.2vw; }
  .policy_txt { margin-bottom:3.5vw; }
  .policy_txt h3 { font-size:2vw; margin-bottom:1vw; }
  .policy_txt p { font-size:1.2vw; margin-bottom:1.2vw; }
  .policy_txt dl { font-size:1.2vw; padding-left:2vw;  }
  .policy_txt dt { width:2vw; margin-bottom:0.8vw; }
  .policy_txt dd { width:calc(100% - 2vw); margin-bottom:0.8vw; }
  .policy_note { padding:3vw; margin-top:1vw; border:0.1vw solid #cccccc; border-radius:1vw; }
  .policy_note h5 { font-size:1.3vw; margin-bottom:0.5vw; }
  .policy_note span { font-size:1vw; }

  footer { height:1vw; bottom:1vw; }
  footer span { font-size:0.6vw; }


}