/* reset ----------------------------------- */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, var, b, dl, dt, dd, ol, ul, li, i, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; outline:0; font-weight:400;  background:transparent; font-style:normal; list-style: none; }
body { line-height:1; }
article,aside,details,figcaption,figure, footer,header,hgroup,menu,nav,section { display:block; }
nav ul { list-style:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content:none; }
a { margin:0; padding:0; vertical-align:baseline; background:transparent; text-decoration: none; color: #171717; }
table { border-collapse:collapse; border-spacing:0; }
input, select { vertical-align:middle; }
* { box-sizing: border-box; }
img { vertical-align: bottom; }

/* basic ----------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: 150px; }
:root { --a_red: #a80005; --a_lgray: #f8f6f6; --a_grayt: #585e68; --a_graybdr: #e7e7e7; --a_grayt2: #acb7cb;  }
body { color: #343434; font-family: Roboto, "Noto Sans JP", sans-serif!important; font-size: 16px; line-height: 1.6; font-weight: 400; scroll-behavior: smooth; background-color: #fff; }
.sect_in { max-width: 1200px; width: 100%; margin: 0 auto; }
main { overflow: hidden; padding-top: 128px; }
.flex { display: flex; justify-content: space-between; flex-wrap: wrap; }
.box2 { width: 48%; }
.box2.column { display: flex; flex-direction: column; }
.box3 { width: 31.3%; transition: ease .7s; }
a.box3:hover { opacity: 0.7; }
.box37_3 { width: 30%; }
.box37_7 { width: 67%; }
p { margin-bottom: 32px; }
p:last-child { margin-bottom: 0; }
.lh20 { line-height: 2; }
.lh17 { line-height: 1.7; }
@media screen and (max-width:979px) {
	html { scroll-padding-top: 70px; }
	main { padding-top: 46px; }
	.flex { flex-direction: column; }
	.box2 { width: 100%; }
	.box3, .box37_3, .box37_7 { width: 100%; } }

/*header  */
#header { box-shadow: 0px 4px 8px 0px #00000014; }
#header-corporation .logo img { width: 310px; vertical-align: initial; }
.search .aghsearchinput { font-family: inherit; border: 1px var(--a_graybdr) solid; border-radius: 3px; }
input.aghsearchinput::placeholder { color: #b2b2b2; }
.search-submit { width: 16px; }
@media only screen and (min-width: 980px) {
	#header { border-bottom: 1px var(--a_graybdr) solid; position: fixed!important; }
	#header #header-corporation { height: 80px; }
	#header #header-corporation .inner { height: 80px; }
	#header #header-corporation .inner .functions .search li { border-left: none; position: relative; }
	#header #header-corporation .inner .functions .language-selector li { position: relative; line-height: 1.7; border-left: none; }
	#header #header-corporation .inner .functions .language-selector li:after { content: ""; width: 1px; height: 22px; dispolay: block; background-color: var(--a_graybdr); position: absolute; right: 0; top: calc(50% - 11px); }
	#header #header-corporation .inner .functions .language-selector li:first-child:before { content: ""; width: 1px; height: 22px; dispolay: block; background-color: var(--a_graybdr); position: absolute; left: 0; top: calc(50% - 11px); }
	#header #header-corporation .inner .functions .language-selector { border-right: none; }
	#header #header-corporation .inner .functions .language-selector .dropdown > a span { padding-right: 24px; background-size: 8px; }
	#header #header-corporation .inner .functions .language-selector li a { padding: 0 20px; }
	#header #header-corporation .inner .functions .language-selector .language-menu li:after { display: none; }
	#header #header-corporation .inner .functions .search li form.aghsearchform .search-submit { margin: 0 0 0 10px; }
	.gnavi-first-list > li { margin-right: 0; display: block; width: calc(100% / 6); border-right: 1px var(--a_graybdr) solid; }
	.gnavi-first-list > li:first-child { border-left: 1px var(--a_graybdr) solid; } }

.gnavi_main { display: flex; width: 100%; height: 100%; }
.gnavi_main > li { margin-right: 0; display: block; width: calc(100% / 6); border-right: 1px var(--a_graybdr) solid; }
.gnavi_main > li:first-child { border-left: 1px var(--a_graybdr) solid; }
a.globalnavi { display: block; height: 100%; text-align: center; padding: 12px 0; position: relative;}

a.globalnavi::after { position: absolute; left: 0; content: ''; width: 100%; height: 2px; background: var(--a_red); bottom: -0; transform: scale(0, 1); transform-origin: center top; transition: transform 0.3s; }
a.globalnavi:hover::after, a.globalnavi.active::after { transform: scale(1, 1); }
a.globalnavi:hover, a.globalnavi.active { text-decoration: none; color: var(--a_red); }

#mega_menus { position: fixed; top: 128.5px; left: 0; width: 100%; z-index: 70001; }
.mega_menu { display: none; background: #fff; opacity: 0; transition: opacity .3s ease;  }
.mega_menu::after {content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 50%; pointer-events: none; box-shadow: 0px 4px 8px 0px #00000014; z-index: 69999}
.mega_menu.fade_show { opacity: 1 !important; }
.mega_menu.fade_hide { opacity: 0 !important; }
.mega_in { display:block; width: 1240px; margin: 0 auto; border-left: 1px var(--a_graybdr) solid; border-right: 1px var(--a_graybdr) solid; }
.prod_header { padding: 24px; border-bottom:  1px var(--a_graybdr) solid; }
.prod_header a, .down_header a, .com_header a, .top_header a { display: inline-block; font-size: 22px; font-weight: 700; line-height: 1.2; padding-right: 40px; background: url(/images/arrow_sq.png) right center / 22px no-repeat; }
.prod_cols { display: flex; align-items: stretch; }

.mega_col { min-height: 280px; padding: 0 20px; }
.mega_col li { display: block; padding: 10px 0 10px 30px; }

.col_lv1 { width: 25%; border-right: 1px var(--a_graybdr) solid; padding: 15px 0; height: auto; }
.col_lv2 { width: 25%; border-right: 1px var(--a_graybdr) solid; padding: 15px 0; height: auto; }
.col_lv3 { width: 50%; padding: 15px 0; height: auto; font-size: 15px; }
.col_lv1 ul li { cursor: pointer; }

.active, .col_lv2 li.active > a, .col_lv3 li.active > a { font-weight: bold; color: var(--a_red); display: block; height: 100%; }
.col_lv1 li.active, .col_lv2 li.active { background-image: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 204, 204, 1)); position: relative; }
.col_lv1 li.active::after, .col_lv2 li.active::after { content: ""; display: block; width: 11px; height: 20px; position: absolute; top: 13px; right: -11px; background: url(/images/arrow_actv.png) center / cover no-repeat; }
.col_lv2 .lv2_list, .col_lv3 .lv3_list { display: none; opacity: 0; transition: opacity .25s ease; }
.col_lv3 #lv3_9.lv3_list { display: flex; flex-wrap: wrap; }
.col_lv3 #lv3_9.lv3_list li { width: 50%; }
.col_lv2 .lv2_list.fade_show, .col_lv3 .lv3_list.fade_show { opacity: 1 !important; }
.col_lv2 .lv2_list.fade_hide, .col_lv3 .lv3_list.fade_hide { opacity: 0 !important; }
.mega_col .lv3_list li { width: 50%; background: url(/images/arrow_lv3.png) left 28px top 20px / 5px no-repeat; padding: 10px 10px 10px 45px; }

#mega_download .mega_in, #mega_company .mega_in, #mega_topics .mega_in { display: flex; }
.down_header, .com_header, .top_header { width: 240px; border-right: 1px var(--a_graybdr) solid; padding: 36px 24px; min-height: 167px; }
.down_menu, .com_menu, .top_menu { width: calc(100% - 240px); display: flex; padding: 26px 36px; flex-wrap: wrap; }
.down_menu li, .com_menu li, .top_menu li { width: 33% ; background: url(/images/arrow_lv3.png) left top 20px / 5px no-repeat; padding: 10px 10px 10px 24px; }

.outlink { display: inline-block; padding-right: 20px; background: url(/images/outlink.png) right center / 10px no-repeat; }

@media screen and (max-width:979px) {
	.gnavi_main { flex-direction: column; }
	.gnavi_main li { width: 100%; }
	.gnavi_main li a { display: block; text-align: left; padding: 12px; border-bottom: 1px var(--a_graybdr) solid; background: url(/images/arrow_lv3.png) right 10px center / 7px no-repeat #f3f3f3; } }
/* footer */
.footer_head { width: 100%; border-top: var(--a_red) 4px solid; border-bottom: 1px var(--a_graybdr) solid; }
.footer_in { display:block; max-width: 1280px; width: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; }
.footer_in .logo img { width: 310px; vertical-align: text-bottom; }
.util_links { display: flex; }
.util_links li { margin-left: 30px; font-weight: 700; }
.footer_nav { display: flex; justify-content: space-between; gap: 30px; width: 100%; margin: 40px 0; }
.foot_box4 { width: 25%; }
.foot_box2 { width: 50%; }
.list_head { margin-bottom: 15px; font-weight: 700; }
ul + .list_head { margin-top: 30px; }
.sub_head { font-size: 15px; margin: 0 0 10px 7px; font-weight: 700; }
ul + .sub_head { margin-top: 15px; }
.footer_nav li { font-size: 15px; margin: 0 0 5px 15px; }
.footer-info_wrap { background-color: var(--a_lgray) }

@media only screen and (min-width: 980px) { .footer-info { padding: 40px 20px; } }

@media screen and (max-width:979px) {
	.footer_in .logo { width: 100%; text-align: center; padding-bottom: 10px; border-bottom: 1px var(--a_graybdr) solid; }
	.footer_in .logo img { width: 270px; vertical-align: middle;}
	.footer_head { border-bottom: 0; }
	.foot_box2, .foot_box4 { width: 100%; }
	.footer_in { width: 100%; flex-direction: column; margin: 0; padding: 0; }
	.footer_nav { flex-direction: column; gap: 0; margin: 0 0 30px 0; }
	.util_links { display: block; padding: 15px; text-align: left; width: 100%; border-bottom: 1px var(--a_graybdr) solid; }
	.util_links li { margin-left: 0; margin: 15px 0; }
	.foot_box4 ul, .foot_box2 ul { display: none; }
	.sub_head { display: none; }
	.list_head { margin: 0; padding: 10px 15px; border-bottom: 1px var(--a_graybdr) solid; background: url(/images/arrow_lv3.png) right 10px center / 7px no-repeat; }
	ul + .list_head { margin: 0; } }
@media only screen and (max-width: 979px) {  }

/* ----------------------------- page_template ------------------------------ */
#main_content_ctop { max-width: 1160px; width: 100%; padding: 0 20px; margin: 80px auto 150px; }
#main_content { max-width: 1160px; width: 100%; padding: 0 20px; margin: 50px auto 120px; }
.sec_header { display: flex; justify-content: space-between; margin-bottom: 40px; }
.lv2 { font-size: 26px; font-weight: 700; }
.lv2s { font-size: 22px; font-weight: 700; }
.lv2s_ul { font-size: 24px; font-weight: 700; padding-bottom: 24px; margin-bottom: 48px; position: relative; }
.lv2s_ul::before { content: ""; height: 1px; width: 100%; background-color: var(--a_graybdr); position: absolute; bottom: 0; left: 0;  }
.lv2s_ul::after { content: ""; height: 1px; width: 32px; background-color: var(--a_red); position: absolute; bottom: 0; left: 0;  }
.lv3 { font-size: 20px; font-weight: 700; margin-bottom: 20px; }
.lv3_vl { font-size: 20px; font-weight: 700; background-color: var(--a_lgray); padding: 12px 20px; border-left: var(--a_red) 3px solid; margin-bottom: 32px; }
.lv4 { font-size: 18px; font-weight: 700; margin-bottom: 16px; }
.lv4_sb { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.lv5 { font-size: 16px; font-weight: 700; margin-bottom: 5px; }
a.btn_arwsq { display: inline-block; font-weight: 700; padding: 10px 55px 10px 25px; background: url(/images/arrow_sq.png) right 20px center / 24px no-repeat; border-radius: 30px; box-shadow: 0px 4px 8px 0px #00000014; }
#corner_ttl { width: 100%; height: 180px; background: linear-gradient(135deg, #fdfeff 0%, #e2eaf7 100%); position: relative; }
#corner_ttl h1 { width: 100%; max-width: 1160px; margin: 30px auto 0 auto; font-size: 32px; font-weight: 700; line-height: 1.2; padding: 0 20px; position: relative; }
#corner_ttl h1.lv1_sld { margin: 20px auto 0 auto; }
#breadcrumb { display: block; max-width: 1280px; padding: 16px 20px; margin: 0 auto; width: 100%; line-height: 1; z-index: 9; position: relative;}
#breadcrumb li { display: inline-block; font-size: 12px; }
#breadcrumb li a { color: #6F6F6F; padding-right: 10px; margin-right: 20px; position: relative; }
#breadcrumb li a:after { content: ""; display: block; position: absolute; right: -10px; top: 50%; width: 8px; height: 1px; background-color: var(--a_red); }
.bdr_gray { border: 1px var(--a_graybdr) solid; padding: 35px 40px; }
.bg_gray { background-color: var(--a_lgray); padding: 20px 30px; }
section { margin-bottom: 60px; }
hr { display: block; height: 1px; width: 100%; border-top: 1px var(--a_graybdr) solid; margin: 48px 0; }
hr.m0 { display: block; height: 1px; width: 100%; border-top: 1px var(--a_graybdr) solid; margin: 0; }
a.pdflink { display: inline-block; padding-left: 24px; color: var(--a_red); background: url(/images/pdf.png) left center / 15px no-repeat; text-decoration: underline; }
#bs li span { color: #b2b2b2; }
.dgray { color: #343434; }
.bdr { border: 1px var(--a_graybdr) solid; }

@media screen and (max-width:979px) {
	#main_content { margin: 40px auto 80px; }
	.sec_header { margin-bottom: 24px; }
	#corner_ttl h1 { font-size: 20px; }
	.lv2 { font-size: 22px; }
	.lv2s { font-size: 18px; }
	.lv2s_ul { font-size: 18px; padding-bottom: 18px; margin-bottom: 32px; }
	.lv3_vl { font-size: 18px; }
	.lv4 { font-size: 16px; }
	a.btn_arwsq { font-size: 14px; }
	.bdr_gray { padding: 15px 20px; }
	hr { margin: 32px 0; } }

/* ----------------------------- top ------------------------------ */
#top_panels { display: flex; flex-wrap: wrap; }
#top_panels a.top_panel { display: block; width: 25%; position: relative; aspect-ratio: 1 / 1; padding: 20px; transition: ease 0.3s; }
#top_panels a.top_panel:hover { opacity: 0.7; text-decoration: none; }
#top_panels .top_pic { position: absolute; top: 0; left: 0; width: 100%; z-index: 1; }
#top_panels .top_panel:nth-child(-n+2) h2, .top_panel:nth-child(-n+2) .sub_toph2 { position: relative; color: var(--a_grayt); z-index: 5; }
#top_panels .top_panel:nth-child(n+3) h2, .top_panel:nth-child(n+3) .sub_toph2 { position: relative; color: #fff; z-index: 5; }
#top_panels .top_panel h2 { font-weight: 300; font-size: 30px; line-height: 1.2 }
#top_panels .top_panel .sub_toph2 { font-size: 14px; }
#top_panels .top_panel .panel_ttl { position: absolute; bottom: 20px; left: 20px; }
#top_panels .panel_btn { position: absolute; bottom: 10px; right: 10px; width: 24px; z-index: 5; }
#top_panels .top_panel:nth-child(n+3):after { content: ""; position: absolute; bottom: 0; left: 0; height: 200px; width: 100%; background-image: linear-gradient(0deg, rgba(0, 0, 0, 1), rgba(255, 255, 255, 0) 90%); z-index: 3; }

.news_list li { padding: 20px 0 20px 10px; border-bottom: 1px var(--a_graybdr) solid; }
.news_list li .list_date { display: inline-block; width: 120px; margin-right: 45px; }
.news_list li a { color: var(--a_red); display: inline; }
.volume { color: var(--a_grayt2); }
@media screen and (max-width:979px) {
	#top_panels a.top_panel { width: 50%; padding: 37% 15px 15px 15px;}
	#top_panels .top_panel h2 { font-size: 18px; }
	#top_panels .top_panel .sub_toph2 { font-size: 10px; }
	#top_panels .panel_btn { width: 16px; }
	.news_list li { padding: 16px 0; }
	.news_list li:first-child { padding: 0 0 16px 0; }
	.list_ttl { display: block; } }

/* ----------------------------- company ------------------------------ */
.promise3 { background-color: var(--a_lgray); padding: 30px 35px; margin: 0 auto; width: 65%; }
.promise3 ul { display: inline-block; margin: 0 auto; text-align: left; }

ul.a_list li { margin-bottom: 10px; padding-left: 25px; position: relative;}
ul.a_list li:before { content: "●"; font-size: 12px; padding-right: 10px; color: var(--a_red); position: absolute; top: 3px; left: 0; }

ul.a_list li:last-child { margin-bottom: 0; }
.panel_header { display: flex; justify-content: space-between; margin-bottom: 0; align-items: flex-start; }
.panel_btn { width: 24px; }

.normal { border-collapse: collapse; width: 100%; }
.normal th { border: 1px var(--a_graybdr) solid; background-color: var(--a_lgray); width: 20%; padding: 20px 25px; text-align: left; vertical-align: top; }
.normal td { border: 1px var(--a_graybdr) solid; background-color: #fff; padding: 20px 25px; }
.tx_link { padding-left: 16px; background: url(/images/arrow_lv3.png) left center / 7px no-repeat; text-decoration: underline; }
.line{ border: 1px solid #d3d3d3; }
.left-align { text-align: left; }

.history { border-collapse: collapse; width: 100%; }
.history th { font-size: 30px; font-weight: 300; color: var(--a_red); padding: 30px 20px 30px; border-right: 2px #d0d0d0 solid; vertical-align: top; line-height: 1; position: relative; }
.history th:after { content: ""; position: absolute; top: 32px; right: -12px; width: 24px; height: 24px; background: url(/images/history_circle.png) center / cover no-repeat; }
.history td.mon { padding: 30px 0 30px 35px; font-weight: 700;  vertical-align: top; }
.history td { padding: 30px 20px; vertical-align: top; }
.history tr:nth-child(even) { background-color: var(--a_lgray); }
.history tr:first-child th, .history tr:first-child td { padding-top: 0; }
.history tr:first-child th:after { top: 0; }

.envi_policy { display: inline-block; text-align: left; }
.envi_policy li { margin-bottom: 16px; padding-left: 35px; position: relative; line-height: 1.7; }
.envi_policy li:before { content: ""; position: absolute; top: 0; left: 0; width: 26px; height: 26px; background-size: cover; }
.envi_policy li:first-child:before { background-image: url(/images/policy01.png); }
.envi_policy li:nth-child(2):before { background-image: url(/images/policy02.png); }
.envi_policy li:nth-child(3):before { background-image: url(/images/policy03.png); }
.envi_policy li:nth-child(4):before { background-image: url(/images/policy04.png); }
.envi_policy li:nth-child(5):before { background-image: url(/images/policy05.png); }
.envi_policy li:nth-child(6):before { background-image: url(/images/policy06.png); }
.envi_policy li:last-child { margin-bottom: 0; }

.group_link { display: flex; justify-content: center; gap: 48px; }
.group_link a { display: block; text-align: center; width: 540px; border-radius: 72px; padding: 15px; box-shadow: 0px 4px 8px 0px #00000014; line-height: 1.2; background: url(/images/outlink_sq.png) right 20px center / 24px no-repeat; transition: ease 0.3s; }
.group_link a:hover { opacity: 0.7; text-decoration: none; }
.group_link a span { font-size: 12px; }

.pdf_reader { display: flex; align-items: flex-start; gap: 24px; }
.pdf_dl { width: 158px; }
#our_mind, #our_act { font-family: "Times New Roman", 'Yu Mincho', 'Hiragino Mincho ProN', 'MS Mincho', serif; }
#our_mind h3 { font-size: 24px; margin-bottom: 16px; font-weight: 900; }
#our_act h3 { font-size: 24px; margin-bottom: 24px; font-weight: 900; }
#our_mind p { font-size: 20px; line-height: 2; }
#our_act .envi_policy { font-family: Roboto, "Noto Sans JP", sans-serif; }

@media screen and (max-width:979px) {
	.normal th, .normal td { display: block; width: 100%; border-bottom: 0; padding: 10px 15px; }
	.normal tr:last-child td:last-child { border-bottom: 1px var(--a_graybdr) solid; }
	.history th { font-size: 24px; padding: 20px 20px 20px 10px;}
	.history th:after { top: 22px; }
	.history td { padding: 20px 10px 20px 0; }
	.history td.mon { padding: 20px 10px 20px 20px; white-space: nowrap; }
	.promise3 { width:100%; padding: 15px 20px;}
	.group_link { flex-direction: column; gap: 24px; }
	.group_link a { width: 100%; }
	.pdf_reader { flex-direction: column; gap: 16px; } }

/* ----------------------------- product ------------------------------ */
.page_link { display: flex; gap: 16px; margin-bottom: 80px; flex-wrap: wrap; }
a.anc { display: inline-block; text-align: center; border-radius: 72px; padding: 15px 60px 15px 25px; box-shadow: 0px 4px 8px 0px #00000014; line-height: 1.2; background: url(/images/arrow_sqd.png) right 20px center / 24px no-repeat; font-weight: 700; transition: ease 0.3s; }
section[id^="prd"] { margin-bottom: 80px; }

.under_link { display: flex; justify-content: center; gap: 48px; }
a.link_l { display: block; text-align: center; width: 480px; border-radius: 72px; padding: 20px; box-shadow: 0px 4px 8px 0px #00000014; line-height: 1.2; background: url(/images/arrow_sq.png) right 20px center / 24px no-repeat; transition: ease 0.3s; }
a.link_l:hover, a.anc:hover { opacity: 0.7; text-decoration: none; }
#corner_ttl h1 span { line-height: 1; display: block; font-size: 16px; color: var(--a_red); margin-bottom: 5px; }

.flex_2cols { display: flex; justify-content: space-between; }
.side_nav { width: 240px; }
.ctop_link { height: 60px; border-bottom: 1px var(--a_red) solid; margin-bottom: 25px; padding-top: 10px; }
.ctop_link a { font-size: 22px; font-weight: 700; line-height: 1.2; background: url(/images/arrow_sq.png) right center / 22px no-repeat; }
.nav_head { font-size: 18px; font-weight: bold; margin-bottom: 15px; }
.nav_lvl2 > li { margin-bottom: 10px; cursor: pointer; }
.lvl2_link { position: relative; display: block; font-size: 15px; color: #333; text-decoration: none; padding-left: 25px; }
.has_child > .lvl2_link::before { content: ""; position: absolute; left: 0; top: 7px; width: 12px; height: 12px; background: url(/images/arrow_lv3.png) center / 7px no-repeat; transition: ease 0.3s;}
.has_child.open > .lvl2_link::before { transform: rotate(90deg); }
.has_child.open_default ul.nav_lvl3 { display:block; }
.is_current { font-weight: bold; color: var(--a_red); }
.nav_lvl3 { display: none; padding-left: 40px; margin-top: 5px; }
.nav_lvl3 li a { display: block; padding: 10px 0 0 0; font-size: 14px; text-decoration: none; line-height: 20px; }
.nav_lvl3 li:last-child a { padding: 10px 0 10px 0; }
.nav_lvl3 li a:hover { color: var(--a_red); }
hr.side { display:block; height:1px; border:0; border-top:1px solid var(--a_graybdr); margin: 24px 0; padding:0; }
.main_r { width: 800px; }
.sub_link { margin-top: 5px; font-size: 13px; margin-bottom: 10px; }
.sub_link a { display: inline; white-space: nowrap; }
.h132 { height: 130px; display: block; margin: 0 auto; }

@media screen and (max-width:979px) {
	.page_link, .under_link { flex-direction: column; gap: 30px; }
	a.link_l { width: 100%; padding: 20px 50px 20px 20px;}
	.flex_2cols { flex-direction: column-reverse; }
	.main_r { width: 100%; margin-bottom: 60px; }
	.side_nav { width: 100%; } }

/* product -- Support for old Style */
.subtitle04 { font-size: 20px; font-weight: 700; background-color: var(--a_lgray); padding: 12px 20px; border-left: var(--a_red) 3px solid; margin-bottom: 32px; }
.clearfix { display: flex; justify-content: flex-start; }
.imgbox { float: left; width: 249px; margin-right: 16px; }
.imgbox img { border:1px solid var(--a_graybdr); margin-bottom: 15px; }

ul.listtext li { margin-bottom: 10px; padding-left: 20px; position: relative;}
ul.listtext li:before { content: "●"; font-size: 8px; padding-right: 10px; color: #747474; position: absolute; top: 6px; left: 0; }
ul.listtext li:last-child { margin-bottom: 0; }
.docbox { margin-top: 16px; }

.cad_btn02 { display: inline-block; padding: 11px 24px 11px 48px; border-radius: 48px; font-weight: 700; background: url(/images/arrow_lv3.png) center left 29px / 5px no-repeat; box-shadow: 0px 4px 8px 0px #00000014; transition: ease .3s; }
.cad_btn02:hover { opacity: .7; }
a:has(.cad_btn02) { display: inline-block!important; margin: 0 16px 16px 0;}
.subtitle03 { font-size: 18px; font-weight: 700; margin-bottom: 20px; }
.subtitle02 { font-size: 24px; font-weight: 700; padding-bottom: 24px; margin: 80px 0 48px 0; position: relative; }
.subtitle02::before { content: ""; height: 1px; width: 100%; background-color: var(--a_graybdr); position: absolute; bottom: 0; left: 0;  }
.subtitle02::after { content: ""; height: 1px; width: 32px; background-color: var(--a_red); position: absolute; bottom: 0; left: 0;  }

table.tab, table.tab03 { border-collapse: collapse; border-spacing: 0px; border-width: 0px; border: 1px solid var(--a_graybdr); font-size: 15px; width: 100%; }
table.tab03 { text-align: center; }
table.tab td, table.tab03 td { border: 1px solid var(--a_graybdr); padding: 12px; }
table.tab td:first-child, table.tab03 td:first-child { width: 150px; }
table.tab td.highlight { background-color: var(--a_lgray); }
.cellc td { text-align: center; vertical-align: middle; }
.force-left { text-align: left !important; }
.m10 { margin-bottom: 15px; }
.m20 { margin-bottom: 30px; }
.m30 { margin-bottom: 30px; }
.m50 { margin-bottom: 50px; }
.fs90 { font-size: 81.25%; line-height: 140%; }
.mt05em { margin-top: 0.75em; }
.att2 { padding-left: 2em; text-indent: -2em; }
p.fs90 { margin-bottom: 1em; }
.pr10 { padding: 10px; }
.txt_r { text-align: right; }
#products p { margin-bottom: 16px; }
#products p.fs90 { margin-bottom: 10px; }
#prod_detail a { display: inline; }
.caution { width: 15%; flex-shrink: 0;}
.cautions { width: 83%; margin-bottom: 15px; }
.cautions_bg { background: #ffe7ee; padding: 15px;}
.cautionol { padding-left:3em; }
.cautionol li { list-style-type:decimal; margin-bottom:0.5em; }
.cautionul { padding:0 0 0 1em; }
.cautionul li { list-style-type:disc; margin-bottom:0.5em; }
.cautionul li:last-child { margin-bottom:0; }

@media screen and (max-width:979px) {
	.subtitle04 { font-size: 18px; }
	.cad_btn02 { margin-bottom: 24px;  }
	.clearfix { flex-direction: column; }
	table.tab, table.tab03 { font-size: 13px; }
	table.tab td:first-child, table.tab03 td:first-child { width: auto; }
	.caution, .cautions { width: 100%; margin-bottom: 15px; }
 }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }


/* ----------------------------- download ------------------------------ */
.btn_ctg { display: flex; align-items: center; justify-content: center; text-align: center; width: 100%; height: 72px; border-radius: 72px; padding: 14px 60px 14px 25px; box-shadow: 0px 4px 8px 0px #00000014; line-height: 1.4; background: url(/images/arrow_sq.png) right 20px center / 24px no-repeat; font-weight: 700; transition: ease 0.3s; }
.btn_ctg:hover { opacity: .7; }
.bdr_gray_s { border: 1px var(--a_graybdr) solid; padding: 24px 32px 32px 32px; }
.down_box2 { width: calc( (100% - 24px) / 2 ); background-color: var(--a_lgray); padding: 24px 32px; }
.down_box2 ul.a_list li { margin-bottom: 5px; font-size: 14px; }
.prod_box2 { width: calc( (100% - 32px) / 2 ); border: 1px var(--a_graybdr) solid; padding: 24px 32px 32px 32px; margin-bottom: 32px; }
.prod_box2 h3 { margin-bottom: 8px; }
.from_prod li { background: url(/images/arrow_lv3.png) left 28px top 20px / 5px no-repeat; padding: 10px 10px 0 45px; }
.bdr_gray_s .from_prod li { width: 33%; }
.no_child .lvl2_link::before { content: ""; position: absolute; left: 0; top: 7px; width: 12px; height: 12px; background: url(/images/arrow_lv3.png) center / 7px no-repeat; transition: ease 0.3s;}
.around_h1 { width: 1160px; margin: 0 auto; position: relative; }
.head_link { position: absolute; right: 0; bottom: 0; width: 320px; height: 56px; }
.head_link .link_l { background-color: #fff; width: 100%; padding: 20px 45px 20px 15px; font-weight: 700; }


/* download -- Support for old Style */
.txt_c, td.txt_c, .txt_c td { text-align: center; }
.tab td a { color: var(--a_red); text-decoration: underline; }


/* ----------------------------- news ------------------------------ */
#news a { text-decoration: none; }
.year_nav { display: flex; margin-bottom: 45px; }
.year_nav .all { padding-right: 16px; margin-right: 16px; border-right: 1px var(--a_graybdr) solid; }
.news_link { display: inline-block; padding: 10px 24px; border: 1px var(--a_graybdr) solid; border-radius: 48px; text-align: center; white-space: nowrap; transition: ease .3s;}
.news_link:hover { border: 1px var(--a_red) solid; text-decoration: none; }
.yearly_achv { display: flex; gap: 10px; flex-wrap: wrap; }
.year_nav .current { border: 1px var(--a_red) solid; color: var(--a_red); }

.pagenation { display: flex; justify-content: center; flex-wrap: wrap; text-align: center; }
.pagenation .link_page { background-color: #fff; border: 1px var(--a_graybdr) solid; color: var(--r_black); line-height: 56px; width: 56px; height: 56px; }
.pagenation .current_page, .pagenation .link_page:hover, .link_next:hover, .link_prev:hover { border: 1px var(--a_red) solid; color: var(--a_red); line-height: 56px; width: 56px; height: 56px; text-decoration: none; }
.pagenation .current_page, .pagenation .link_page { display: block; border-radius: 6px; margin: 0 0.4rem 1rem 0.4rem; }
.link_next { border-radius: 56px; border: 1px var(--a_graybdr) solid; width: 56px; height: 56px; background: url(/images/arrow_lv3.png) center / 8px no-repeat; margin-left: 15px; }
.link_prev { border-radius: 56px; border: 1px var(--a_graybdr) solid; width: 56px; height: 56px; background: url(/images/arrow_lv3_r.png) center / 8px no-repeat; margin-right: 15px; }
.backto_list {  display: block; text-align: center; font-weight: 700; width: 480px; margin: 0 auto; border-radius: 72px; padding: 26px 15px; box-shadow: 0px 4px 8px 0px #00000014; line-height: 1.2; background: url(/images/arrow_sq_r.png) left 24px center / 24px no-repeat; transition: ease 0.3s; }
.backto_list:hover { text-decoration: none; opacity: .7; }
.news_date { font-size: 13px; margin-bottom: 10px; }

@media screen and (max-width:979px) {
	.year_nav { flex-direction: column; }
	.year_nav .all { padding-right: 0; padding-bottom: 16px; margin-right: 0; margin-bottom: 16px; border-right: 0; border-bottom: 1px var(--a_graybdr) solid; }
	.news_link { padding: 6px 15px; }
	.yearly_achv .news_link { width: calc(( 100% - 30px) / 4); } }
@media screen and (max-width:376px) {
	.yearly_achv .news_link { width: calc(( 100% - 30px) / 3); } }

/* ----------------------------- topic ------------------------------ */
#corner_ttl_h {
    width: 100%;
    height: 314px;
    background: linear-gradient(135deg, #fdfeff 0%, #e2eaf7 100%);
    position: relative;
}
.topic_top { display: flex; justify-content: space-between; width: 1160px; height: 314px; padding: 0 20px; margin: 0 auto; align-items: center; position: absolute; top: 0; left: 50%; transform: translateX(-50%); }
.topic_shldr { font-size: 60px; line-height: 1; font-weight: 300; margin-bottom: 12px; }
.topic_ttl { font-size: 24px; font-weight: 700; }
.topic_img { width: 220px; margin-right: 50px; }
.topic_nav { border-bottom: 1px var(--a_graybdr) solid; }
.topic_nav ul { display: flex; justify-content: center;}
.topic_nav ul li { display: flex; }

.topic_nav ul li a, .topic_nav ul li.current { justify-content: center; min-height: 80px; align-items: center; display: flex; border-left: 1px var(--a_graybdr) solid; border-bottom: 2px #fff solid; width: 224px; text-align: center; padding: 14px 0; }
.topic_nav ul li:last-child a { border-right: 1px var(--a_graybdr) solid; }
.topic_nav ul li a:hover, .topic_nav ul li.current { border-bottom: 2px var(--a_red) solid; text-decoration: none; transition: ease .3s; }
#tpc01 figure, #tpc02 figure { text-align: center; }
.tpcfig_01 { width: 600px; }
.tpcfig_02 { width: 350px; }
.tpc_subttl { font-size: 20px; font-weight: 700; background-color: var(--a_lgray); padding: 12px 20px; border-left: var(--a_red) 3px solid; margin-bottom: 32px; }
p + .tpc_subttl, figure + .tpc_subttl { margin-top: 48px; }
.inq_box { text-align: center; }
.topic_top02 { height: 314px; }

#corner_ttl_b3 { width: 100%; height: 314px; background: #000; position: relative; }
#corner_ttl_b3 .topic_shldr, #corner_ttl_b3 .topic_ttl { color: #fff; }
#corner_ttl_b3 .ttl_bg { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1200px; height: 314px; background: url(/images/tpc03_ttlbg.jpg) right center / contain no-repeat; }
#corner_ttl_b3 .ttl_bg2 { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1200px; height: 314px; background: url(/images/tpc04_ttlbg.jpg) right center / contain no-repeat; }
#corner_ttl_b3 #breadcrumb li:last-child { color: #fff; }

.cstm_flow { display: flex; flex-wrap: wrap; gap: 37px; justify-content: flex-start; width: 890px;margin: 0 auto;}
.flow_panel { width: 200px; }
.panel_in { width: 100%; }
.panel_in p { font-size: 14px; }
.panel_in img { margin-bottom: 5px; }
.arrow_flow { width: 32px; }
.arrow_sec { display: flex; align-items: center; }
.w800 { width: 800px; display: block; margin: 0 auto; }
.w600 { width: 600px; display: block; margin: 0 auto; }





/* はみ出し表組対応 */
.table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll > table { width: max-content; border-collapse: collapse; }


/* サイトマップ */

/*ul.sitemap li { margin-bottom: 12px; }*/
ul.sitemap li a { display: block; margin-bottom: 16px; padding-left: 28px; position: relative; }
ul.sitemap li a:before { content: ""; position: absolute; top: 4px; left: 0;width: 18px; height: 18px; background: url(/images/arrow_sq.png) center /18px no-repeat; }
ul.sitemap li ul.has_child { padding-left: 32px; }
ul.sitemap li ul.has_child li a{ display: inline-block; margin-bottom: 16px; padding-left: 20px; position: relative; }
ul.sitemap li ul.has_child li a:before { content: ""; position: absolute; top: 4px; left: 0;width: 18px; height: 18px; background: url(/images/arrow_lv3.png) center /6px no-repeat; }
ul.sitemap li ul.has_child:last-child li:last-child { margin-bottom: 24px; }
ul.sitemap li ul.has_child li ul { padding-left: 32px; /*margin-bottom: 24px;*/ }










/***************** module **********************/
.for_pc{ display:block!important; }
.for_sp{ display:none!important; }
@media screen and (max-width:979px){ 
	.for_sp { display:block!important; }
	.for_pc { display:none!important; } }
.img_full { width: 100%; }
.img_max { max-width: 100%; }
.img_max_h { max-height: 100%; }
.img_fit { width: 100%; height: 100%; object-fit: cover; }

.right { text-align: right; }
.center { text-align: center; }
.left { text-align: left; }
.center_left { text-align: center; }@media screen and (max-width:979px){ .center_left { text-align: left; }}
.b_center { margin-left: auto; margin-right: auto; }
.iblock { display: inline-block; }
.inline { display: inline; }
b, .b, strong { font-weight: 700; }
.g32 { gap: 32px; }
.column { flex-direction: column; }
.f_wrap { flex-wrap: wrap; }
.red { color: var(--a_red); }

.lh20 { line-height: 2; }
.lh18 { line-height: 1.8; }
.lh17 { line-height: 1.7; }
.lh16 { line-height: 1.6; }

.mt10 { margin-top: 10px; }

.pl24 { padding-left: 24px; }
.pv50 { padding-top: 50px; padding-bottom: 50px; }

.mb5 { margin-bottom: 5px; }
.mb10 { margin-bottom: 10px; }
.mb15 { margin-bottom: 15px; }
.mb20 { margin-bottom: 20px; }
.mb30 { margin-bottom: 30px; }
.mb40 { margin-bottom: 40px; }
.mb50 { margin-bottom: 50px; }
.mv50 { margin: 50px 0; }
.mb60 { margin-bottom: 60px; }
.mb75 { margin-bottom: 75px; }
.mb100 { margin-bottom: 100px; }
.mt60 { margin-top: 60px; }
.fs14 { font-size: 14px; }
.fs18 { font-size: 18px; }
.fs20 { font-size: 20px; }
.fs28 { font-size: 28px; }
.txt_left { text-align: left; }

.w65_100 { width: 65%; }@media screen and (max-width:979px){ .w65_100 { width: 100%; }}

/* ① ol側の設定：標準のリスト機能を完全に捨てて、カウンターを準備する */
ol.type_decimal {
  list-style: none !important; /* 標準のリスト機能をオフ */
  counter-reset: my-counter !important; /* 「my-counter」という名前のカウンターを0にセット */
  padding-left: 0 !important; /* 余計な余白をリセット */
  margin-left: 1.5em !important; /* ★リスト全体を右にどれくらいズラすか（ここで全体のインデントを調整） */
  margin-bottom: 1.5em !important;
}

/* ② li側の設定：数字を置くための基準位置を作り、テキストを字下げする */
ol.type_decimal li {
  list-style: none !important; /* 念のためliの標準機能もオフ */
  position: relative !important; /* 数字を絶対配置するための基準にする */
  padding-left: 1.5em !important; /* ★数字とテキストの隙間 兼 2行目以降のインデント幅 */
  margin-bottom: 0.4em !important;
}

/* ③ 数字の生成：liの先頭に強制的に数字を書き込む */
ol.type_decimal li::before {
  content: counter(my-counter) "." !important; /* 「1.」「2.」という文字を作る */
  counter-increment: my-counter !important; /* 数字を1ずつ増やす */
  position: absolute !important; /* テキストとは独立して配置 */
  left: 0 !important; /* liの一番左端に固定 */
  top: 0 !important; /* 上下にズレる場合は、ここの数値を 0.1em などにして微調整 */
}

/* リスト内のリンクが改行されるのを防ぎ、テキストの一部として扱う */
#main_content ol li a {
  display: inline !important;
}

/* リスト全体の基本設定 */
.custom-list {
  list-style: none !important; /* 標準のリスト機能をオフ */
  padding-left: 10px;
  margin-top: 10px;
  /* ここにマージンボトム30を設置 */
  margin-bottom: 30px; 
}

/* 各項目のマージン（従来の1/3） */
.custom-list li {
  margin-bottom: 4px; 
  line-height: 1.6;
}

/* ネストされた項目（＊印など） */
.sub-list {
  list-style: none !important; /* 標準のリスト機能をオフ */
  padding-left: 40px;
  margin-top: 5px;
  margin-bottom: 10px;
}

.type_disc {
  list-style: none;
  padding-left: 0;
}

.type_disc li {
  position: relative;
  padding-left: 40px; /* 左側に40px空ける */
}

.type_disc li::before {
  content: "●";       /* 黒丸を文字として表示 */
  position: absolute;
  left: 15px;         /* 40pxのスペースの中の好きな位置に配置 */
  font-size: 10px;    /* 大きさも自由自在 */
  top: 0.2em;         /* 高さの微調整 */
}

/* 注釈専用リストクラス */
.type_disc_s {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 30px 0 !important;
}

/* 各項目（テキスト部分） */
.type_disc_s li {
  position: relative !important;
  padding-left: 30px !important; /* 左側の余白 */
  font-size: 12px !important;
  line-height: 1.5 !important;   /* 行間を少し詰めると揃いやすくなります */
  color: #666 !important;
  margin-bottom: 5px !important;
  display: block !important;
}

/* 黒丸（disc）を「文字の高さの中央」に配置 */
.type_disc_s li::before {
  content: "" !important;
  position: absolute !important;
  
  /* 左からの位置を固定 */
  left: 15px !important; 
  
  /* 丸自体のサイズ */
  display: inline-block !important;
  width: 5px !important;
  height: 5px !important;
  background-color: #333 !important;
  border-radius: 50% !important;

  /* 【重要】文字の高さ（1行目）の中央に揃える設定 */
  top: calc(1.5em / 2) !important; /* line-height(1.5)の半分を上端にする */
  transform: translateY(-50%) !important; /* 自身の高さ半分だけ戻して完全中央 */
}