@charset "UTF-8";
/* transition */
body { font-family: 'Noto Sans JP', "YuGothic", "游ゴシック", "游ゴシック体", 'Hiragino Kaku Gothic ProN', "ヒラギノ角ゴ ProN W3", 'YuGothic', "游ゴシック", 'Meiryo', "メイリオ", 'MS PGothic', "ＭＳ Ｐゴシック", sans-serif; font-size: 16px; line-height: 1.6; color: #fff; background: linear-gradient(to right, #E71417, #AA1E24); }

* { box-sizing: border-box; }

:root { scroll-behavior: auto; }

img { max-width: 100%; vertical-align: bottom; }

a, a:hover, a:focus { text-decoration: none; color: inherit; }

a { color: #fff; transition: all .2s ease-out; -webkit-backface-visibility: hidden; backface-visibility: hidden; }

a:focus { color: #fff; }

a:hover { color: #C8BB9B; }

a:hover > img { filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50); opacity: 0.5; }

a > img { -webkit-transition: 0.3s; -moz-transition: 0.3s; transition: 0.3s; }

a:not([href]) { pointer-events: none; }

a:not([href]):after { content: none !important; }

.font-oswald { font-family: "Oswald", sans-serif; letter-spacing: -0.02em; }

.font-zenold-mincho { font-family: "Zen Old Mincho", serif; }

h1, h2, h3, h4, .h4, h5, .h5, h6, .h6, p, ul, li, dl, dt, dd, th { font-weight: normal; margin: 0; padding: 0; line-height: inherit; font-size: inherit; }

ul, li { list-style: none; }

p, li { line-height: 1.8; }

button { margin: 0; padding: 0; background: none; border: none; border-radius: 0; outline: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; }

.fade { opacity: 0; transition: opacity 0.5s cubic-bezier(0.37, 0, 0.63, 1); }

.fade.fade_in { opacity: 1; }

.fade_slide { clip-path: inset(0 100% 0 0); transition: clip-path 0.5s cubic-bezier(0.37, 0, 0.63, 1); }

.fade.fade_in .fade_slide { clip-path: inset(0); }

.flex-img { flex-shrink: 1; }

.object-fit-cover { object-fit: cover; }

.content_link { display: inline-block; width: 310px; font-family: "Oswald", sans-serif; font-size: 28px; text-align: center; background: linear-gradient(65deg, #303030 0%, #4c4c4c 50%, #303030 100%); background-size: 200% 100%; border-radius: 30px; padding: 1px; box-shadow: -3px 8px 10px rgba(35, 24, 21, 0.6); }
.content_link > span { display: block; background: linear-gradient(65deg, #4c4c4c 0%, #303030 50%, #4c4c4c 100%); background-size: 200% 100%; border-radius: 30px; padding: 5px 0; transition: all .2s ease-out; }
.content_link > span span { position: relative; padding-right: 70px; }
.content_link > span span:before, .content_link > span span:after { content: ""; position: absolute; top: 56%; right: 0; height: 2px; background-color: #fff; }
.content_link > span span:before { /* 横線本体 */ width: 58px; }
.content_link > span span:after { width: 15px; rotate: 45deg; translate: 0 -5px; right: -3px; }
.content_link:hover { color: #fff; background-position: 100% 0; }
.content_link:hover span { background-position: 100% 0; }
.content_link.content_link--jp { font-size: 24px; letter-spacing: 0.1em; }

/*======================
	parts
======================*/
.scroll-to-top { display: none; position: fixed; right: 30px; bottom: 30px; cursor: pointer; z-index: 8; /*width: 120px;*/ width: 100px; }

.text_indent { text-indent: -1em; padding-left: 1em; }

.text_w { color: #fff; }

.text_ylw { color: #C8BB9B; }

/*======================
	header
======================*/
#header { position: fixed; transition: 0.2s; width: 100%; height: 120px; padding: 60px 30px 0; z-index: 100; background: linear-gradient(to right, #4C4C4C, #303030); }
#header.scrolled { height: 100px; padding: 40px 30px 0; }
#header .logo { font-size: 32px; }

#menu-mainmenu { display: flex; align-items: center; }
#menu-mainmenu a { display: inline-block; margin: 0  1em; }
#menu-mainmenu .nav_contact { margin: 0  1em; text-align: center; }
#menu-mainmenu .nav_contact a { margin: 0; padding: .2em 1em; width: 146px; color: #000; background: #fff; border-radius: 30px; }
#menu-mainmenu .nav_contact a:hover { background: #C8BB9B; }

/*======================
	home
======================*/
.home_kv { display: flex; align-items: center; justify-content: center; height: calc(100vh - 120px); min-height: 720px; background: url(../../images/mv.jpg) center no-repeat; background-size: cover; background-color: #000; }
.home_kv h1 { font-size: 55px; }

.home_kv.triangle-top:before, .home_cont.triangle-top:before { top: 0; }

.home_kv_text { margin-top: -80px; }

.home_catch { font-size: 115px; }
.home_catch span { letter-spacing: -.4em; }

.home_cont h2 { font-size: 95px; }
.home_cont h2 + p { color: #231815; font-size: 26px; letter-spacing: .4em; }

.home_text { font-size: 20px; }

/*======================
	main
======================*/
main { padding-top: 120px; padding-bottom: 100px; overflow: hidden; }

section { padding-top: 100px; position: relative; z-index: 2; }

.triangle-top, .triangle-bottom { position: relative; }

.triangle-top:before, .triangle-bottom:after { content: ""; display: block; width: 220px; height: 220px; background: linear-gradient(to right, #E71417, #AA1E24); }

.triangle-top:before { clip-path: polygon(0% 0%, 100% 0%, 0% 100%); position: absolute; top: 120px; left: 0; }

.triangle-bottom:after { clip-path: polygon(100% 100%, 0% 100%, 100% 0%); position: absolute; bottom: 0; right: 0; }

.page_bg { background-position: top center; background-repeat: no-repeat; background-size: 100% auto; background-blend-mode: multiply; padding-top: clamp(50px, 12vw, 160px); }

.page_ttl h1 { font-size: 64px; line-height: 1; margin-right: 40px; }
.page_ttl p { color: #231815; letter-spacing: .4em; margin-top: .5em; }

/*======================
	footer
======================*/
footer { padding: 40px 0; background: url(../../images/foot_bg.jpg) center no-repeat; background-size: cover; }

.foot_logo { font-size: 50px; }
.foot_logo + p { font-size: 24px; }

.foot_contact { font-size: 46px; }

.foot_tel { background: url(../../images/ico_tel.svg) left center no-repeat; padding-right: 30px; }

.foot_mail { background: url(../../images/ico_mail.svg) left center no-repeat; }

.foot_tel, .foot_mail { background-size: 46px; padding-left: 56px; }

#menu-footmenu .sub-menu { padding-left: 1em; margin-bottom: 1em; }
#menu-footmenu .sub-menu li:before { content: "ー"; }

.foot_copy { font-size: 14px; }

/*======================
	about
======================*/
.page_about { background-image: linear-gradient(to right, #E71417, #AA1E24), url(../../images/bg_about.jpg); }
.page_about h2 { font-size: 100px; }
.page_about h2 span { letter-spacing: -.4em; }
.page_about h3 { font-size: 49px; }

.about_catch { font-size: 18px; line-height: 2.6; }

.company_prof > div { display: flex; background: #fff; margin-bottom: 10px; }
.company_prof dt, .company_prof dd { color: #000; font-size: 18px; padding: 10px 0; }
.company_prof dt span, .company_prof dd span { display: block; padding: 8px 1.5em; }
.company_prof dt { width: 180px; }
.company_prof dt span { border-right: 1px solid #000; height: 100%; }
.company_prof dd { width: calc(100% - 180px); }
.company_prof dd a { color: #000; text-decoration: underline; }
.company_prof dd a:hover { color: #C8BB9B; }

.gmap iframe { width: 100%; height: 550px; }

/*======================
	service
======================*/
.page_service { background-image: linear-gradient(to right, #E71417, #AA1E24), url(../../images/bg_service.jpg); }
.page_service h2 { font-size: 40px; }

.img_over { display: flex; flex-wrap: wrap; align-items: center; }
.img_over > div { width: 45%; }
.img_over img { max-height: 580px; width: 100%; max-width: 800px; object-fit: cover; }
.img_over .img_over_right { flex: 1; margin-right: calc(50% - 50vw); margin-left: 30px; }
.img_over .img_over_left { flex: 1; margin-left: calc(50% - 50vw); margin-right: 30px; text-align: right; }

.service_ttl { font-size: 32px; }

.service_data { width: 180px; }
.service_data .service_ttl { border-bottom: 1px solid #fff; margin-bottom: .5em; padding-bottom: 8px; }

.service_datattl { font-size: 18px; }

/*======================
	works
======================*/
.page_works { background-image: linear-gradient(to right, #E71417, #AA1E24), url(../../images/bg_works.jpg); }
.page_works h2 { font-size: 40px; }

/*======================
	contact
======================*/
.page_contact { background-image: linear-gradient(to right, #E71417, #AA1E24), url(../../images/bg_contact.jpg); }

.contact_catch p { font-size: 26px; }
.contact_catch .foot_tel { font-size: 88px; background-size: 87px; padding-left: 98px; }

.contact_form { margin-top: 50px; }
.contact_form h2 { font-size: 20px; }

.contact_form table { width: 100%; }

.contact_form input, .contact_form textarea, .contact_form select { width: 100%; border: 0; padding: .6em; margin: .2em 0; }

.contact_form input.wpcf7-not-valid, .contact_form textarea.wpcf7-not-valid, .contact_form select.wpcf7-not-valid { background: #fef2f8; }

.contact_form input.form-short, .contact_form textarea.form-short, .contact_form select.form-short { width: 150px; }

.contact_form input.form_m, .contact_form textarea.form_m, .contact_form select.form_m { width: 350px; margin: 0 1.5em 0 1em; }

.contact_form textarea { height: 200px; }

.contact_form input[type=radio], .contact_form input[type=checkbox] { width: auto; margin: 0.5em 0; }

.contact_form .wpcf7-radio .wpcf7-list-item label { cursor: pointer; }

.contact_form input[type=radio] { margin: 1.2em 0; accent-color: #222426; }

.contact_form input[type=file] { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; }

.contact_form select { background: #fff; width: 280px; }

.contact_form .wpcf7-list-item { margin-left: 0; margin-right: 2em; }

.contact_form .content_link { position: relative; }

.contact_form input[type=submit] { color: #fff; margin: 0; padding: 0; border: 0; background: transparent; color: transparent; position: absolute; width: 100%; height: 100%; top: 0; left: 0; }

.contact_form .wpcf7-spinner { display: none; }

.contact_form th, .contact_form td { padding: 1em 0; }
.contact_form th .text_small, .contact_form td .text_small { font-size: .8em; }

.contact_form th { vertical-align: top; width: 300px; font-size: 20px; line-height: 1.4; padding-top: 1.3em; padding-right: 30px; }

.contact_form td { vertical-align: top; }

.contact_form td a { text-decoration: underline; }

.contact_form .req { display: inline-block; font-size: 14px; line-height: 1; margin-top: -.1em; margin-left: .5em; padding: .3em .6em; border: 1px solid #fff; }

.contact_form .optional { font-size: 12px; background: #DBDBDB; font-weight: bold; padding: .6em 1.2em; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }

.contact_form span.wpcf7-not-valid-tip { color: #E4BE51; font-size: .9rem; }

.contact_form div.wpcf7-validation-errors, .contact_form div.wpcf7-acceptance-missing { border: 0; color: #E4BE51; font-weight: bold; }

.contact_form div.wpcf7-response-output { text-align: center; padding: 0; margin: 1.5em 0 0; }

.page_thanks { background-image: linear-gradient(to right, #E71417, #AA1E24), url(../../images/bg_thanks.jpg); }
.page_thanks h2 { font-size: 30px; }
.page_thanks p { font-size: 18px; line-height: 2.6; }

.privacy_text { height: 260px; width: 100%; overflow-x: auto; border: 1px solid #9A9A9A; padding: 1em; line-height: 1.4; }

.privacy_text dt { text-indent: -1em; padding-left: 1em; }

.privacy_text dd { padding-left: 1em; }
