header {
 
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#logo {
    margin-top: 10px;
    margin-left: 9vw;
}
#logo img {
    width: 100%;
}
.menu {
    display: flex;
    gap: 6rem;
    align-items: center;
    font-size: 16px;
    text-decoration: none;
    font-weight: 600;
}
nav ul {
    list-style: none;
}
.LOGO{}
a {
    color: inherit;
    transition: 0.3s;
    text-decoration: none;
}
a:hover {
    opacity:0.5;
}
.btn {
    background: #dd4236;
    padding: 30px 50px;
}
.btn a {
    color: white;
}
.main{}
.main img {
    width: 100%;
}
.main_text {
    position: absolute;
    top: 50%;
    left: 9%;
    font-size: 102px;
    font-weight: bolder;
    text-shadow: #fff 2px 0px 4px, #fff -2px 0px 4px, #fff 0px -2px 4px, #fff -2px 0px 4px, #fff 2px 2px 4px, #fff -2px 2px 4px, #fff 2px -2px 4px, #fff -2px -2px 4px, #fff 1px 2px 4px, #fff -1px 2px 4px, #fff 1px -2px 4px, #fff -1px -2px 4px, #fff 2px 1px 4px, #fff -2px 1px 4px, #fff 2px -1px 4px, #fff -2px -1px 4px, #fff 1px 1px 4px, #fff -1px 1px 4px, #fff 1px -1px 4px, #fff -1px -1px 4px;

    font-feature-settings: "palt" 1;
}
.main_small {
    font-size: 73px;
}
.main_sp{}
.line {
  text-align: center; 
}
.line::after {
    content: "";
    display: block;
    width: 10%;
    height: 5px;
    background-color: #dd4236;
    margin: 10px auto 0;
}
.container {
    margin: 8em auto 5em;
    max-width: 1080px;
}
.movie_box {
    display: flex;
    justify-content: center;
    margin-top: 50px;
    gap: 20px;
}
.inst{    margin-top: 7em;}
.inst img {
    width: 170px;
}
.header {
  position: relative;
  overflow: visible;   /* はみ出し表示OK */
}

.header::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -380px;
    width: 240px;
    height: 100%;
    background-image: url(../images/eng.png);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
    opacity: 3.0;
    pointer-events: none;
    z-index: 0;
}
.header1::before {


  left: -380px;        /* ← 左に出す距離（ここ調整） */
 
}
.pro{position: relative;
    min-height: 800px;}
.prod_flex {
    display: flex;
    align-items: center;
    gap: 40px;
    justify-content: space-between;
}
.pro_back {
    background: #f4f2f3;
    padding: 30px 0 10px;
}
.pro_tex {
    font-size: 22px;
    text-align: left;
}
intro_pro {
    text-align: left;
}
.line2 {
    text-align: left;
}
.line2::after {
    width: 35%;
    margin: 0;
    position: relative;
    top: -5px;
}
.intro_pro {
    text-align: left;
    font-size: 22px;
    padding-top: 15px;
    letter-spacing: 0.15em;
}
.prod img {
    width: 80%;
}
.products_flex{display: flex;
    align-items: center;
    gap: 40px;
    justify-content: space-between;}
.products_flex img {
    width: 100%;
    margin: auto;
}
.list{margin-top: 5em;}
.box {
    background: black;
    padding: 20px 0;

    position: relative;
    top: -9px;
}
.box_flex {
    color: white;
    font-size: 26px;
    font-weight: 600;
    padding-right: 80px;
}
.tech_flex {
  
    margin-bottom: 9em;
}

.tech {
    margin: 0px 70px;
}
.line3::after {
    width: 20%;
    top: -15px;
}
.tech_tex {
    font-size: 23px;
    margin-top: 60px;
}
.tech_intro {
    padding-top: 10px;
}
.btn_tech {
    background: #dd4236;
    width: 40%;
    margin-top: 70px;
    padding: 15px 0;
}
.btn_text {
    color: white;
    font-size: 18px;
    text-align: center;
}
.box::after {
    content: "\f152";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    top: 50%;
    left: 85%;
    transform: translate(-50%, -50%);
    font-size: 25px;
    color: white;
    border-radius: 10px;
}
.TEXT{}
.achi_back {
    background: black;
    padding-top: 8em;
    padding-bottom: 1em;
position: relative;
overflow: visible;
}
.Con {
    max-width: 1080px;
    margin: auto;
}
.achi {
    margin: 0;
}
.achi img{}
.achi_flex {
    display: flex;
  
    justify-content: space-between;
}
.achi_text {
    color: white;
    font-size: 28px;
    text-align: right;
}
.text_c {
    color: white;
    font-size: 22px;
    text-align: left;
    font-weight: 600;
    margin-top: 20px;
}
.btn_achi {
    text-align: center;
    width: 20%;
    margin: 70px auto;
}
.achi_back::before {
  content: "";
  position: absolute;
  top: 0;
  width: 100vw;
  height: 100%;
  background: black;
}
.achieve_inner {
    max-width: 1080px;
    margin: 0 auto;
    padding: 60px 0;
    position: relative;
    z-index: 1;
}
.achi_back::before {
    left: 50%;
    transform: translateX(-100%);
    position: absolute;
    top: -18%;
}

.con_back {
    background: #dd4236;
    padding: 9em 0 6em;
}
.line4 {
    text-align: center;
}
.line4::after {
    background-color: white;
    left: 44%;
    width: 12%;
}
.con_text {
    text-align: center;
    font-size: 22px;
    color: white;
    font-weight: 600;
}
.con_text{}
.cont_box {
    background: white;
    width: 880px;
    margin: 40px auto;
    padding: 20px 0;
}
.con_tex {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 40px;
    margin-top: 10px;
}
.CON_flex {
    display: flex;
    justify-content: space-around;
    padding-bottom: 15px;
    align-items: center;
}
.mail_box {
    background: #dd4236;
    padding: 10px 0;
    width: 270px;
}
.tel {
    font-size: 42px;
    font-weight: bolder;
font-feature-settings: "palt" 1;
}
.mail {
    color: white;
  
    font-size: 21px;
}
.tel::before {
    content: "\f879";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    display: inline-block;
    transform: scaleX(-1);
    font-size: 35px;
    padding-left: 10px;
}
.mail::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("../images/mail.png");
  background-size: contain;
  background-repeat: no-repeat;

  vertical-align: middle;
}
.Menu {
  
    justify-content: center;
}

.Menu {
    justify-content: center;
    font-size: 15px;
    gap: 2.5rem;
    font-weight: lighter;
}
.icon {
    margin-top: 45px;
}
.logo_footer {
    margin-top: 45px;
}
.logo_footer img {
    width: 17%;
}
.add {
    font-size: 15px;
    margin-top: 30px;
    margin-bottom: 30px;
}
.MENU_footer {
    margin-top: 45px;
}
.menu_footer{}
footer {
 
}
.com_footer{   background: black;
    color: white;
    padding: 15px 0;
    font-size: 12px;
    border-top: 5px solid #dd4236;}

* {
	margin : 0 ;
	padding : 0 ;
	font-size : 100% ;
}

body {
	font-size : 75% ;
	text-align : center ;
	font-family:"ＭＳ Ｐゴシック", Osaka, "ヒラギノ角ゴ Pro W3" ;
	line-height : 1.4 ;
}



.container .header a {
  text-indent: 0;
  width: auto;
  height: auto;
  overflow: visible;
}


.container dl#contents {
	height : 108px ;
	margin-bottom : 8px ;
	background : url(default_page.png?date=210428) left bottom no-repeat ;
}

dl#contents dt {
	width : 540px ;
	text-align : center ;
	line-height : 30px ;
	height : 30px ;
	font-weight : bold ;
	font-size : 115% ;
}

dl#contents dd {
	text-align : left ;
	padding : 8px 12px ;
	position : relative ;
}

dl#contents dd #message {
	position : absolute ;
	top : 50px ;
	left : 30px ;
}

address {
	font-style : normal ;
}
.menu li {
  position: relative;
}

/* ドロップダウン本体 */
.submenu {
  position: absolute;
  top: 100%;
  left: 0;
  background: white;
  padding: 10px 0;
  min-width: 180px;
  list-style: none;

  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: 0.25s;
}

/* 表示 */
.dropdown:hover .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* サブメニューの見た目 */
.submenu li {
    padding: 7px;
    white-space: nowrap;
}





.submenu {
  position: absolute;
  top: 100%;
  left: 0;

  background: white;
  padding: 15px 0;
  min-width: 220px;

  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
  border-radius: 6px;

  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: 0.25s;
  z-index: 100;
}




.dropdown {
  position: relative;
}

.submenu {
    position: absolute;
    top: 100%;
    left: 0%;
    transform: translateX(-50%) translateY(10px);
    background: white;
    padding: 15px 10px;
    min-width: 130px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    border-top: 4px solid #dd4236;
    border-radius: 6px;
    opacity: 0;
    visibility: hidden;
    transition: 0.25s;
    z-index: 100;

}



.dropdown:hover .submenu {
  opacity: 1;
  visibility: visible;

}
.sh_br {
    display: block; 
  }
.sp_br {
  display: none; 
}

.hamburger {
    display: none;
    width: 30px;
    height: 30px;
    background: none;
    border: none;
    cursor: pointer;
    position: absolute;
    left: 20px;
    top: 20px;
    z-index: 200;
}
.hamburger span {
    display: block;
    width: 100%;
    height: 3px;
    background: #dd4236;
    margin: 6px 0;
    transition: 0.3s;
}

.overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 200;
}

.overlay.active {
  opacity: 1;
  visibility: visible;
}

.nav {
  display: flex;
}

.hamburger {
  display: none;
}

.drawer-menu {
  display: none;
}

.box:hover::after{opacity:0.5;}
.line5::after {
    width: 18%;
    top: 0;
    background-color: #dd4236;
    left: 0;
}
.line5 {
    text-align: left;
}
.line5 img{width: 90%
;}
.com_pro_flex{}
.profile_back {
    background: url(../images/background.png) no-repeat center top / cover;
    padding: 15px 0 10px;
}

.com_pro {
    letter-spacing: 0;
}
.ICON{}
.line6{}
.com_rinen {
    position: relative;
    display: inline-block;
    padding-top: 20px;
    font-size: 36px;
    font-weight: 600;
    letter-spacing: 0;
}
.com_rinen::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 60%;
    height: 4px;
    background: #dd4236;
}
.line6::after {
    content:none;
}
.com_tex {
    font-size: 45px;
    font-weight: 600;
    letter-spacing: 5px;
}
.mar {
    margin-top: 10em !important;
    margin-bottom: 13em !important;
}
.com_gaiyo {
    background: #f4f2f3;
    padding: 8em 0;
}
.company_wrap {
    max-width: 1080px;
    margin: 0 auto;
    text-align: left;
    display: flex;
    
}

/* 表全体 */
.company_table {
    width: 60%;
    border-collapse: collapse;
    font-size: 16px;
    margin-left: 17%;
}


/* 行の下線 */
.company_table tr {
    border-bottom: 1px solid #999;
    width: 100%

;
}

/* 左の項目 */
.company_table th {
    width: 150px;
    padding: 10px;
    text-align: left;
    font-weight: normal;
}

/* 右の内容 */
.company_table td {
  padding:  10px;
}
.shamei {
    letter-spacing: 1em;
}
.timeline {
    list-style: none;
    max-width: 800px;
    margin: auto;
    padding-left: 120px;
    position: relative;
}

/* 縦の赤い線 */
.timeline::before {
    content: "";
    position: absolute;
    left: 120px;
    top: 0;
    width: 4px;
    height: 100%;
    background: #dd4236;
}

/* 各行 */
.timeline_item {
  position: relative;
  margin-bottom: 40px;
}

/* 赤丸 */
.timeline_item::before {
    content: "";
    position: absolute;
    left: -5px;
    top: 6px;
    width: 14px;
    height: 14px;
    background: #dd4236;
    border-radius: 50%;
}

/* 年月 */
.timeline_date {
    position: absolute;
    left: -120px;
   
    font-size: 16px;
}

/* 内容 */
.timeline_content {
    font-size: 16px;
    text-align: left;
    margin-left: 40px;
}
.enkaku{align-items: baseline;}
.ENKAKU:before {

    width: 100%;
}
.rinen {
    align-items: baseline;
}
.asc {
    align-items: flex-start;
}
.MAR {
    margin: 0 auto !important;
}
.AC {
    text-align: left;
    font-size: 16px;
    margin-top: 25px;
}
.map iframe {
    width: 700px;
}
.tech_TEXT {
    font-size: 25px;
    text-align: left;
    margin-bottom: 2em;
}
.sharyou {
    display: block;
}
.sharyou::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 10%;
    height: 4px;
    background: #dd4236;
}
.acse {
    color: #dd4236;
    font-size: 25px;
    text-align: left;
    margin-bottom: 10px;
}
.shryou_list img {
    width: 100%;
    height: 75%;
}
.sharyou_flex {
    gap: 40px;
    margin-top: 40px;
}
.asce_text {
    text-align: left;
    font-size: 16px;
}
.tokkyo_flex {
    
    gap: 0;
    align-items: center;
    justify-content: space-between;
}
.tokkyo {
    font-size: 28px;
    padding: 1em;
}
.Tokkyo_list {
    background: #f4f2f3;
    width: 65%;
    margin-left: 100px;
}
.tokkyo_list img
 {
    height: 100%;
}
.car_flex {
    justify-content: space-between;
    padding-bottom: 5em;
}
.Asce_text {
    font-size: 23px;
    color: #dd4236;
    font-weight: 700;
    margin-top: 10px;
}
.land_list img {
    height: auto;
}
.ori {
    margin-top: 4em;
}
.ori_flex {
    gap: 10px;
}
.ORI_FLEX {
    margin-bottom: 4em;
}
.rei_flex {
    justify-content: unset;
}
.rei_list {
    width: 33%;
}
.rei_list img{}
#pageTop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;

  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 999;
}

#pageTop img {
    width: 100%;
    height: auto;
    display: block;
}

#pageTop.show {
  opacity: 1;
  visibility: visible;
}
.JIGU {
    align-items: flex-start;
}
.news_ttl {
    text-align: left;
    font-size: 25px;
    margin-bottom: 15px;
    margin-top: 20px;
}
.FLEX {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10em;
}
.JIGU_text {
    text-align: left;
    font-size: 16px;
}
.waku {
    background: #f1ebcf;
    border-radius: 15px;
    padding: 20px 30px;
}

.btn-more {
    background: #dd4236;
    padding: 10px 25px;
    color: white;
    font-size: 16px;
}

.chokka::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);

  width: 8px;      /* 四角の幅 */
  height: 28px;    /* 四角の高さ */
    background: #dd4236;
}
.clear {
    clear: both;
}
.JUGU_FLEX {
    display: flex;
    justify-content: space-between;
    margin-top: 3em;
    margin-bottom: 3em;
    align-items: center;
    border-top: 1px solid;
    padding-top: 20px;
}
.chokka {
    font-size: 20px;
    padding-top: 0;
    position: relative;
    padding-left: 20px;
}
.tb_gaiyou {
    text-align: left;
    font-size: 16px;
}
.team{}
.team1 {
    width: 23%;
    padding-bottom: 10px;
}
.team2 {
    padding-bottom: 10px;
}
.melt {
    vertical-align: top;
    padding: 10px 0;
}
.team3 {
    width: 23%;
}
.tb_gaiyou ul {
    margin-left: 10px;
}
.team4 {
    width: 23%;
}
.team5 {
    width: 23%;
}
.team6 {
    width: 23%;
}
.team7 {
 width: 23%;
}
.tb_gaiyou th {
    font-weight: normal;
    border-bottom: 1px dotted;
}
.tb_gaiyou td {
    border-bottom: 1px dotted;
    padding: 10px 0;
}
.mitumori:before {
  
    background:  rgba(17, 188, 173, 1.00);
}
.MITUMORI {
    text-align: left;
    font-size: 16px;
    list-style: none;
}
.mitumori_red {
    color: #dd4236;
    font-weight: bold;
}
.mitumori_red a:hover {
    color: #25b7c0;
    opacity: unset;
}
.BTN-MORE {
    width: 10%;
    margin-top: 20px;

}

table{
  width: 100%;
  border-collapse: collapse;
}

tr{
  border-bottom: 1px dotted #333;
}
.pdf_img{
width:180px;
 height:261px;
}
.pdf_img img{
width:180px;
 height:261px;
}
.SEIHIN_JOUHOU {
    font-size: 40px;
}
.line7::after {
    width: 70%;
  
}
.Background {
    padding: 30px 0;
}
.JUGU_FLEX1 {
    border-top: none;
    display: block;
    text-align: left;
    padding-top: 0;
}
.CHO{font-size: 30px;}
.CHOL img {
    width: 100%;
    margin: auto;
}
.FLEX_JIGU {
    display: flex;
    gap: 20px;
    margin-bottom: 5em;
}
.koushi img {
    width: 100%;
}
.Koushi {
    width: 49%;
}
.FLEX_jigu {
    margin-bottom: 2em;
}

/* 基準 */
.has-child {
  position: relative;
}

  /* PCではopen無効 */
  .has-child.open .submenu-child {
    display: none;
  }

  /* 鉄骨に触れた時だけ出る */
  .has-child:hover > .submenu-child {
    display: grid;
  }

.submenu-child {
    position: absolute;
    top: 0;
    left: 100%;
    background: #fff;
    padding: 10px 5px;
    min-width: 170px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    border-radius: 10px;
    gap: 10px 24px;
    display: none;
    z-index: 1000;
font-size:14px;
}
  /* PCでは＋ボタン使わない */
  .child-toggle {
    display: none;
  }
.ORIG {
    margin-top: 2em;
}
.ORIG_flex {
    margin-bottom: 13em;
}
.Header:before {
   
    left: -380px;
 
}
.TECH{}

.TEch {
    display: flex;
    align-items: center;
    gap: 5px;
}


.tech-title {
    margin: 0;
}



.tech-image img {
 
    height: auto;
    width: 100%;
}
.tech-image {
    width: 44%;
}
.tech-text {
    margin-left: calc((100% - 1080px) / 2);
}
.PO_text {
    font-size: 16px;
    text-align: left;
}
.po_text {
    margin: 40px 0 20px;
}
.number {
    margin: 10px 20px;
}
ol li::marker {
    color: #dd4236;
    font-weight: 600;
}
.number li {
    margin: 10px 0;
}
.sp-only {
  display: none;
}
.must {
    display: block;
    background-color: #C00;
    border: solid 2px #C00;
    text-shadow: 0px 1px 2px #933;
    padding: 2px 5px;
    font-size: 10px;
    color: #FFF;
    float: left;
    margin: 0px 5px;
    border-radius: 4px;
    box-shadow: 0px 0px 5px #CCC;
    background-image: url(_images/mfp_header.png);
    background-size: 100% 100%;
}
.contact_TXT {
    text-align: left;
    font-size: 16px;
}
.mfp {
    padding-top: 10px;
}
.mfp_rows {
    display: flex;
 

}
.mfp_col5 {
    width: 50%;
}
form#mailformpro, form#mailformpro * {
    box-sizing: border-box;
}
.MFP_ROWS{display: block;}
input[type="text"] {
  width: 100%;
  max-width: 400px; /* 好きな最大幅 */
  box-sizing: border-box;
}
input[type="email"] {
    width: 100%;
    max-width: 400px;
    box-sizing: border-box;
}
.mfp_C0L10 {
    padding-top: 10px;
}
input[type="tel"] {
    width: 100%;
    max-width: 400px;
    box-sizing: border-box;
}
.form-textarea {
  width: 100%;
  min-height: 180px;   /* 高さの基準 */
  padding: 12px;
  font-size: 16px;
  resize: vertical;    /* 縦だけユーザーが拡大可 */
  box-sizing: border-box;
}
.form-input {
    width: 100% !important;
    max-width: 600px !important;
    padding: 0 12px;
    font-size: 16px;
    box-sizing: border-box;
}
.mfp_rows,
.mfp_col10 {
  width: 100%;
}

select.form-input {
  display: block;
}
.FORM{}
.mfp_buttons {
    text-align: center;
    margin: 10px auto;
}
.submit_button {
    width: 50%;
    background: #dd4236;
    border: none;
    color: white;
    padding: 5px 0;
}
.land_bouhan {
    text-align: left;
    margin-top: 10px;
    font-size: 25px;
}
.tech img {
    width: 65%;
}
.LINE1::after {
    width: 32%;
  
}
.form-fieldset {
    margin-bottom: 2rem;
}
legend {
        font-size: 1.5rem;
    }
.form-fieldset > legend {
    color: #424242;
    font-size: 1rem;
    font-weight: bold;
    word-break: break-word;
}
legend {
    float: left;
    width: 100%;
    padding: 0;
    margin-bottom: 0.5rem;
    font-size: calc(1.275rem + 0.3vw);
    line-height: inherit;
}
.form-fieldset.required > legend:after {
    content: "必須";
    background: #f44336;
    color: #ffffff;
    padding: 0.25rem 0.4rem;
    border-radius: 0.4rem;
    font-size: 0.65rem;
    margin-left: 0.5rem;
    vertical-align: text-bottom;
    white-space: nowrap;
}
legend + * {
    clear: left;
}
.d-flex {
    display: flex !important;
}
.me-2 {
    margin-right: 0.5rem !important;
}
.visually-hidden, .visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
input, button, select, optgroup, textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}
.form-control {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #212121;
    background-color: #ffffff;
    background-clip: padding-box;
    border: 1px solid #bdbdbd;
    appearance: none;
    border-radius: 0.5rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.form-fieldset input.form-control[type=text], .form-fieldset input.form-control[type=url], .form-fieldset input.form-control[type=email], .form-fieldset input.form-control[type=tel], .form-fieldset input.form-control[type=file], .form-fieldset input.form-control[type=date], .form-fieldset input.form-control[type=month], .form-fieldset textarea.form-control, .form-fieldset select.form-select, .form-fieldset .form-label-radio-checkbox:not(.form-matrix-option), .form-fieldset .form-label-radio-checkbox:not(.form-matrix-option) .form-check-input {
}
input.form-control.form-name-sei, input.form-control.form-name-mei {
    width: 100%
 !important;
}

.mailform input,
.mailform select,
.mailform textarea {
  width: 100%;
  padding: 14px 16px;
  border-radius: 8px;
  border: 1px solid #ddd;
  background: #fafafa;
  font-size: 15px;
}

.mailform input:focus,
.mailform textarea:focus,
.mailform select:focus {
  outline: none;
  border-color: #d33;
  background: #fff;
}
.must {
  background: #e74c3c;
  color: #fff;
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 6px;
  margin-right: 8px;
}
.mailform dt {
  margin-top: 24px;
  font-weight: 600;
}

.mailform dd {
  margin-top: 8px;
}
.mfp_buttons {
  text-align: center;
}
.mfp_buttons button {
width: 260px;        /* 好みで220〜300px */
  padding: 14px 0;
  border-radius: 10px;
  border: none;
  background: #d33;
  color: white;
  font-size: 15px;
  font-weight: bold;
  transition: 0.3s;
}

.mfp_buttons button:hover {
  background: #b92b2b;
  transform: translateY(-2px);
}
.privacy-box {
    margin: 30px 0 20px;
    padding: 16px;
 
    border-radius: 10px;
    text-align: center;
    font-size: 14px;
   
}

.privacy-box a {
  color: #d33;
  font-weight: 600;
  text-decoration: underline;
}
.top_in {
    color: #d33;
    font-weight: 600;
    text-decoration: underline;
    font-size: 20px;
    margin-top: 30px;
    margin-bottom: 3em;
}
.thanks {
    font-size: 25px;
    margin-top: 2em;
}
.thanks1 {
    margin-top: 20px;
}
.C_A {
    text-align: left;
    font-size: 23px;
    padding-top: 20px;
}
.movie_BOX {
  display: flex;
  justify-content: space-between;
  gap: 20px;           /* 画像の間隔 */
}

.movie_BOX a {
  flex: 1;
}

.movie_BOX img {
  width: 100%;
  height: auto;
  border-radius: 10px; /* 角丸（任意） */
}
.P_T {
    text-align: left;
    margin-top: 35px;
    font-size: 20px;
}
.ss_br {
    display: none;
}
.product-photo{
  display:flex;
  gap:20px;
}

.product-photo img{
  width:33%;
}
@media (max-width: 820px) {
.ss_br {
    display: block;
}
.main_text {
 
    top: 30%;
 
    font-size: 60px;
   
}
.main_small {
    font-size: 50px;
}
.movie_box img {
        width: 100%;
        margin: auto;
    }
.cont_box {
  
    width: 95%;
   

}
.movie_box {
        gap: 20px;
        width: 95%;
        margin: 60px auto;
    }

.products_flex {
   
    gap: 20px;
  
    width: 95%;
    margin: auto;
}
.box_flex {
    
    font-size: 18px;
   
    padding-right: 70px;
}

.pro_tex {
    font-size: 19px;
    text-align: left;
}
.tech {
        margin: 25px;
    }
    .tech1 img {
        width: 100%;
    }
.tech1  {
       
      
    }
    .prod_flex {
        width: 95%;
        margin: 8em auto 0;
    }
.achi_back::before {
    
    top: -10%;
}
.achieve_inner {
    
    margin: 0 auto;
    
    width: 95%;
    
}
.achi {
    margin: 0;
}
    .achi img {
        width: 90%;
    }
.achi_text {
        font-size: 26px;
        width: 80%;
    }
.tech_flex {
   width: 100%;
        margin: 8em 0 12em;
}
.container {
    margin: 7em auto 0;
    
}
.pro {
   
    min-height: 700px;
}
.list {
    margin-top: 3em;
}
.header {
    position: relative;
    min-height: 700px;
}
.line3::after {
    width: 20%;
    top: -5px;
}
#logo {
       
        margin-left: 3vw;
        width: 33%;
    }
.btn {
  
    padding: 30px 30px;
}
.menu {
     
        gap: 4rem;
    }
.com_tex {
        width: 60%;
        font-size: 32px;
    }
.company_wrap {
 
    width: 95%;
    
}
    .map {
        width: 73%;
        margin: auto;
    }
.map iframe {
    width: 100%;
    margin: auto;
}
.company_table th {
    width: 130px;
 
}
    .com_pro_flex {
        margin: 0 auto 5em;
    }
.tech_TEXT {

    width: 95%;
    margin: 0 auto 2em;
}
.sharyou {
    display: block;
    width: 95%;
    margin: auto;
}
.Asce_text {
    font-size: 19px;
   
}
.Asce__text {
        font-size: 17px;
    }
    .ORI_FLEX {
        margin-bottom: 4em;
    }
.ori_flex {
   
}
.sharyou_flex {
        margin-bottom: 60px;
    }
.JUGU_FLEX1 {

    margin: 20px auto;
    width: 95%;
}
.FLEX_JIGU {
  
    width: 95%;
    margin: 0 auto 5em;
}
    .koushi {
        width: 95%;
        margin: auto;
    }
.line7::after {
    width: 70%;
}
.SEIHIN_JOUHOU {
    
    padding-bottom: 20px;
}
.news_ttl {

    width: 95%;
    margin: 2px auto 30px;
}
    .FLEX {
        width: 95%;
        margin: auto;
        gap: 10px;
    }
.JUGU_FLEX {
 
    width: 95%;
    margin: 3em auto;
}
.tb_gaiyou {

    width: 95%;
    margin: auto;
}
.MITUMORI {

    width: 95%;
    margin: auto;
}
.BTN-MORE {
    width: 20%;
    margin-top: 20px;
    margin: 20px auto;
}
.Koushi {
        width: 49%;
        margin: 0;
    }
.FLEX_jigu {
    margin-bottom: 2em;
}
.mar {
        margin-top: 6em !important;
        margin-bottom: 10em!important;
    }
        min-width: 110px;
        font-size: 14px;
.submenu-child {

    padding: 15px 0;
    min-width: 190px;

    border-radius: 10px;
    font-size: 14px;
}
.com_rinen {
    position: relative;
    display: inline-block;
    padding-top: 20px;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: 0;
}
.tech-text {
    margin-left: 0em;

}
    .PO_text {
        font-size: 16px;
        text-align: left;
        width: 95%;
        margin-bottom: 5em;
margin-top: 5em;
    }
.po_text {
  
    padding-top: 0;
}
.contact_TXT {
   
    width: 95%;
    margin: auto;
}
.C_A {
 
    width: 95%;
    margin: auto;
}
.submenu {
        padding: 10px 5px;
  
    }
.submenu-child {
        position: absolute;
        top: 0;
        left: 100%;
        background: #fff;
        padding: 10px 0;
        min-width: 145px;
    }
    .land {
        padding-top: 20px;
    }
.CHOKKA {
        padding-top: 0;
    }
.line4::after {
          left: 40%

;
}
.con_text {
 
    padding-top: 20px;
}
.submenu {
        min-width: 110px;
    }
}
@media (max-width: 480px) {
.nav {
    display: none;
  }

  .hamburger {
    display: flex;
  }

  .drawer-menu {
    display: block;
  }
/* ハンバーガー表示 */
  .hamburger {
    display: block;
  }

  /* ナビ全体を固定配置 */
  #menubar {
    position: fixed;
    top: 0;
  
    width: 70%;
    height: 100vh;
    background: white;
    transition: 0.3s;
    z-index: 250;
  }

  #menubar.active {
    left: 0;
  }

  /* 横並びを縦に */
  .menu {
    flex-direction: column;
    justify-content: center;
    gap: 30px;
    height: 100%;
  }
.submenu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        padding: 5px;
    }

#menubar{
  position: fixed;
  top: 0;
  left: 0;

  width: 80%;          /* メニュー幅 */
  height: 100vh;

  background: white;
  z-index: 250;

  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

/* 開いた時 */
#menubar.active{
  transform: translateX(0);
}

.hamburger{
    display:block;
  }

  #menubar{
    position: fixed;
    top: 0;
    left: 0;
    width: 80%;
    height: 100vh;
    background: white;
    z-index: 250;

    transform: translateX(-100%);
    transition: transform 0.3s ease;
  }

  #menubar.active{
    transform: translateX(0);
  }

  /* ←ここ重要 */
  .menu{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
    height: 100%;
  }

.sh_br {
  display: none; 
}
.sp_br {
    display: block; 
  }

    .main_text {
        top: 21%;
        left: 5%;
        font-size: 30px;
    }
.main_small {
    font-size: 20px;
}
.movie_box {
    display: block;
    justify-content: center;
    margin-top: 50px;
    gap: 20px;
}
    .movie_box img {
        width: 100%;
        margin: 0 auto;
    }
.container {
    margin: 4em auto 4em;
    max-width: 1080px;
}
.line img {
        width: 40%;
        margin: auto;
    }
.line2 img {
        width: 55%;
        margin: auto;
    }
.line3 img {
        width: 65%;
        margin: auto;
    }
.line4 img {
        width: 70%;
        margin: auto;
    }
.line::after {

    margin: 0 auto ;

}
inst {
    margin-top: 3em;
}
    .prod_flex {
        display: block;
        width: 95%;
        margin: 2em auto 5em;
    }
    .pro_tex {
        font-size: 20px;
        text-align: left;
        margin-top: 10px;
    }
.line2::after {
        width: 20%;
        left: 0%;
    }
.intro_pro {
        font-size: 25px;
        padding-top: 10px;
        text-align: center;
    }
.products_flex {
    display: block;

}
.products_flex img {
        width: 100%;
        margin: auto;
    }
.box {
        top: -9px;
        width: 100%;
        margin: auto;
        padding: 20px 0;
    }
.box_flex {

    font-size: 20px;

}
.box::after {

    font-size: 20px;

}
.list {
    margin-top: 3em;
}
    .tech {
        margin: 4em auto 5em;
    }
.line3::after {

    top: 0px;
}
.btn_tech {
  
    margin: 35px auto 0;
}
.line2 {
    text-align: center;
}
.btn_tech {
 
    width: 70%;

 
}

    .tech1 {
       
        margin: auto;
    }
    .tech1 img {
        width: 100%;
        margin: auto;
    }
.achi_back::before {

    top: 0;
}
.achi_flex {
    display: block;
 
}
.cont_box {

    width: 90%;
    margin: 40px auto;
  
}
.con_tex {
        font-size: 18px;
     
        width: 90%;
        margin: 20px auto;
    }
.CON_flex {
    display: block;

}
.tel {
    font-size: 26px;
  
}
.tel::before {
 
    transform: scaleX(-1);

}
.mail_box {

    width: 80%;
    margin: 20px auto 0;
}

.achi_back {

    padding-top: 0em;

}
.text_c {

    font-size: 20px;
    text-align: center;

}
.achi_text {
        text-align: left;
        width: 70%;
        margin: auto;
        font-size: 16px;
    }
.logo_footer img {
    width: 70%;
}
.line4::after {
        top: -10%;
    }
.inst img {
    width: 40%;
    margin: auto;
}
.inst {
    margin-top: 2em;
}
.con_back {
  
    padding: 5em 0 4em;
}
    .line4::after {
        margin-bottom: 5px;
        margin-top: 10px;
    }
#logo {
        margin: 30px auto 20px;
        width: 65%;
    }
.menu {
    display: block;

}
.menu li {
    position: relative;
   
}
.hamburger.active span:nth-child(1){
  transform: translateY(9px) rotate(45deg);
}
.hamburger.active span:nth-child(2){
  opacity: 0;
}
.hamburger.active span:nth-child(3){
  transform: translateY(-9px) rotate(-45deg);
}
.hamburger {
        position: fixed;
        left: 20px;
        top: 20px;
        z-index: 300;
        background: white;
    }
.submenu {
  max-height: 0;
  overflow: hidden;
  transition: 0.3s;
}

/* 開いた状態 */
.dropdown.open .submenu {
  max-height: 300px;
}
.menu-toggle::after {
  content: "＋";
  margin-left: 10px;
  font-weight: bold;
}

.dropdown.open .menu-toggle::after {
  content: "－";
}
 .dropdown {
    position: relative;
  }

  .submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: white;
  }

  .dropdown.open .submenu {
    max-height: 300px;
  }
    .M1 {
        padding-top: 45px;
        padding-bottom: 30px;
    }
.M2 {
        padding-top: 20px !important;
    }
    .M3 {
        padding-top: 20px;
        padding-bottom: 30px;
    }
.M4 {
        padding-top: 10px;
        padding-bottom: 30px;
    }
.btn {
 
    padding: 20px 0;
    width: 80%;
    margin: auto;
}
.MENU_footer {
  
    display: none;
}
.map iframe {
    width: 100%;
}
.company_wrap {
  
    display: block;
    width: 90%;
  
}
.company_table {
    width: 100%;
    
    font-size: 16px;
    margin-left: 0;
}
    .company_table th {
        display: block;
        padding: 5px 10px;
    }
.company_table td {
    
    display: block;

padding: 0 10px 10px;
}
.timeline {
    padding-left: 40px;
  }

  .timeline::before {
    left: 15px;
  }

 .timeline_item::before {
        left: -30px;
    }

    .timeline_date {
        position: unset;
  
        left: -111px;
        text-align: justify;
    }
.timeline_item {
  
    margin-bottom: 25px;
}
 .timeline_content {
        font-size: 16px;
        margin-left: 0;
    }
    .com_rinen {
        display: block;
        margin-bottom: 30px;
        padding-top: 15px;
    }
.com_rinen::before {
  
    left: 40%;
        width: 20%;

}
.pro_tex {
        width: 95%;
        margin: 40px auto 0;
        letter-spacing: 3px;
    }
.ICON {
    margin-top: 50px;
}
.timeline_date1 {
        left: -125px;
    }
.mar {
    margin-top: 5em !important;
    margin-bottom: 5em!important;
}
.com_gaiyo {

    padding: 5em 0;
}
.tech_TEXT {
        font-size: 20px;
        width: 90%;
        margin: 0 auto 60px;
    }
.tokkyo_list{}
    .tokkyo_list img {
       
 !important;
    }
    .Tokkyo_list {
        width: 100%;
        margin: auto;
    }
.tokkyo {
    font-size: 23px;
  
    padding: 20px;

}
.Tokkyo_List img {
        width: 95% !important;
    }
.acse {
 
    font-size: 25px;

}
    .asce_text {
        margin-bottom: 3em;
    }
.sharyou {
        font-size: 35px;
        padding-top: 20px;
    }
.land {
        font-size: 30px;
        padding-top: 20px;
    }
    .land_list img {
        width: 100%;
        margin: 0 auto 1px;
    }
.sharyou_flex {
        margin: 30px auto;
    }
.Asce_text {
        margin-bottom: 20px;
font-size: 20px;
    }
.rei_list {
    width: 100%;
}
.rei {
        font-size: 28px;
    }
.ORIG {
        margin-top: 2em;
        padding-top: 20px;
    }
    .tokkyo_flex {
        display: flex;
        gap: 0;
        padding-top: 25px;
    }
    .TOKKYO_LIST {
        width: 40%;
    }
.ASCE__text{font-size: 18px;}
.news_ttl {
text-align: center;
    width: 95%;
    margin: 0px auto 30px;
}
.JIGU_text {
      
        width: 95%;
        margin: 0 auto 40px;
    }
.FLEX {
    display: block;
  
    margin-bottom: 5em;
}
.pdf_img img {
    width: 100%;
    height: 100%;
}
.pdf_img {
    width: 50%;
    height: 50%;
    margin: auto;
}
.waku {

    width: 80%;
    margin: auto;
}
.chokka::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 28px;
    background: #dd4236;
}
.chokka {
    font-size: 18px;
    padding-top: 0;
    position: relative;
    padding-left: 20px;
}
.JUGU_FLEX {
 
    align-items: flex-start;

}
.Prod{        margin: auto;}
.PRod {
        width: 67%;
    }
.submenu{
  display: none;
}

.dropdown.open .submenu{
  display: block;
}

/* 横並びにする */
.dropdown{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.menu {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        font-size: 16px;
    }

/* 親 */
.dropdown {
  position: relative;
}

  

/* 開いてる時は − */


/* サブメニュー（製品情報の下に出る） */
.submenu {
  display: none;
  padding-top: 10px;
}

/* 開いたら表示 */
.dropdown.open .submenu {
  display: block;
}
.submenu li {
  padding: 10px 0;
}
.dropdown {
  display: block;   /* ← 横並び解除 */
  width: 100%;
}



.dropdown.open .submenu {
  display: block;
}
.menu {
    flex-direction: column;
  }
.submenu {
  width: 100%;
  box-sizing: border-box;
}
.dropdown {
  width: 100%;
}
.menu-head {
        margin-top: 20px;
        margin-bottom: 20px;
    }

.menu-link {
  flex: 1;
}

/* サブメニュー */
.submenu {
        display: none;
        width: 100%;
        padding: 0;
    }

.dropdown.open .submenu {
        display: block;
       
    }
.tb_gaiyou {
 
    width: 95%;
    margin: auto;
}
.btn-more {

    margin: 0 auto;
}
.CHOKKA{text-align: left;}
.mitumori:before {
    background: rgba(17, 188, 173, 1.00);
}
.MITSUMORI {
        margin: 0 10px;
    }
.MITUMORI {

    width: 95%;
    margin: auto;
}
.BTN-MORE {
    width: 30%;
    margin-top: 20px;
}
.mitumori {
        margin-bottom: 0;
    }
    .SEIHIN_JOUHOU {
        font-size: 35px;
        padding-bottom: 9px;
    }
.line7::after {
        margin-bottom: 0;
    }
    .JUGU_FLEX {
        width: 95%;
        margin: 30px auto;
    }
.CHOL {
    width: 95%;
    margin: auto;
}
.CHOL img {
        width: 100%;
       
    }
.CHO {
        font-size: 25px;
padding-left: 0px;
    }
.KOUSHI {
        text-align: left;
        padding-left: 20px;
    }
.FLEX_JIGU {
    display: block;
  
}
.koushi {
     
        margin-bottom: 30px;
    }
.FLEX_JIGU {
        width: 100%;
        margin: 0 auto 3em;
    }
.menu-head {
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }


.child-head {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding-bottom: 15px;
    }

.child-link {
  text-decoration: none;
  color: #000;
}
 .submenu-child {
    position: static;
    width: 100%;
    padding: 10px 0 0 16px;
    box-shadow: none;
  }

  /* スマホではhover禁止 */
  .has-child:hover .submenu-child {
    display: none;
  }

  .child-toggle {
    display: inline-block;
    cursor: pointer;
    margin-left: 8px;
    font-weight: bold;
background: none;
  border: none;
  }
  /* ＋ → − */
  .child-toggle::after {
    content: "＋";
  }

  .has-child.open .child-toggle::after {
    content: "－";
  }
.submenu-child {
        position: static;
        display: none;
        width: 95%;
        padding: 10px 0;
        box-shadow: none;
        max-height: 8vh;
        overflow-y: auto;
        overflow-x: hidden;
        font-size: 16px;
        margin: auto;
        border-top: 1px dotted;
        border-bottom: 1px dotted;
    }

  .has-child.open .submenu-child {
    display: block;
  }

  .child-toggle {
    display: inline-block;
  }
.has-child {
   
}
.tech-text {
        margin-left: 0;
        width: 100%;
        margin: auto;
    }
.map {
        width: 95%;
        margin: auto;
    }
    .ENKAKU:before {
        width: 10%;
        left: 45%;
    }
.car_flex {
        padding: 10px 0 30px;
    }
.CONTAINER img {
        width: 50%;
    }
    .CONTAINER {
        margin-top: 2em;
    }
.PO_text {
  
    width: 95%;
}
.po_text {
        text-align: left;
        font-size: 20px;
        margin: 20px 0;
    }
.number li {
    margin: 20px 0;
}
.PO_TEXT{margin-bottom: 40px;}
.sp-only {
        display: block;
        margin-top: 15px;
    }
.tech-image {
    width: 100%;
 
}
.contact_TXT {

    width: 90%;
    margin: auto;
}
    .LINE1 img

 {
        width: 60%;
    }
.thanks {
        font-size: 25px;
        width: 90%;
        margin: 2em auto 0;
    }
.thanks1 {
    margin-top: 20px;
}
.C_A {

    font-size: 20px;
    padding-top: 10px;
    width: 90%;
    margin: auto;
}
.P_T {

    width: 95%;
    margin: auto;
}
.land_bouhan {

    
    width: 95%;
    margin: auto;
}
.ss_br {
    display: none;
}
}


