/*
Theme Name: ORIGINAL
*/

* {
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}



	ul, li{
	list-style:none;
	}

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

	::selection {
	background-color: #000;
	color:#fff;
	}

	a{
	text-decoration:none;
	color:#000;
	-webkit-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	-moz-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	-ms-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	-o-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	transition: .4s cubic-bezier(0.78, .18, .34, .98);
	}

	a:hover{
	-webkit-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	-moz-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	-ms-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	-o-transition: .4s cubic-bezier(0.78, .18, .34, .98);
	transition: .4s cubic-bezier(0.78, .18, .34, .98);
	}


	.text_border{
	text-decoration:underline;
	}

	.font_bold{
	font-weight:bold;
	}


	p{
	font-size:13px;
	text-align: justify;
	}



	body {
	color:#000;
	font-family: "neue-haas-grotesk-display", "source-han-sans-japanese", sans-serif;
	line-height: 150%;
	}

	/* 本文中の英数字（JSで自動的に囲む）だけ少し大きく */
	.en{
	font-size: 110%;
	}



	/* 共通ページ */

	.loading {
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	bottom: 0;
	z-index: 999999;
	opacity: 1;
	background: #fff;
	}


	.loader
	{
	position: absolute;
	display: inline-block;
	top:50%;
	left:50%;
	margin-left:-17px;
	margin-top:-30px;
	width: 30px;
	height: 30px;
	border-radius: 30px;
	border: 2px solid #000;
	border-right-color: transparent;
	-webkit-animation: spin 1s infinite linear;
	-moz-animation: spin 1s infinite linear;
	}


	@-webkit-keyframes spin
	{
		0% { -webkit-transform: rotate(0deg); opacity: 0.4; }
		50%  { -webkit-transform: rotate(180deg); opacity: 1; }
		100%   { -webkit-transform: rotate(360deg); opacity: 0.4; }
	}

	@-moz-keyframes spin
	{
		0% { -moz-transform: rotate(0deg); opacity: 0.4; }
		50%  { -moz-transform: rotate(180deg); opacity: 1; }
		100%   { -moz-transform: rotate(360deg); opacity: 0.4; }
	}




	.sp_img{
	display:none!important;
	}




/* ==========================================================
   TOPページ
   ========================================================== */

	:root{
	--navy: #001ea0;
	--line: #c5cbe6;
	--line_dark: #8a97cf;
	--footer_bg: #f3f4f3;
	--white: #fff;
	}

	body{
	color: var(--navy);
	background: var(--white);
	letter-spacing: .06em;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	}

	a{
	color: var(--navy);
	}

	.loader{
	border-color: var(--navy);
	border-right-color: transparent;
	}

	.sp_br{
	display: none;
	}

	button{
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	}


	/* ---------- Instagramボタン ---------- */

	.insta_btn{
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid currentColor;
	}

	.insta_btn svg{
	width: 60%;
	height: 60%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	}

	.insta_btn svg .dot{
	fill: currentColor;
	stroke: none;
	}

	.insta_btn:hover{
	opacity: .6;
	}



	/* ---------- ヘッダー ---------- */

	#header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	}

	.header_inner{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	padding: 0 18px;
	background: var(--navy);
	}

	.header_logo{
	position: absolute;
	top: 50%;
	left: 18px;
	width: 40px;
	transform: translateY(-50%);
	}

	.header_logo a:hover{
	opacity: .6;
	}

	.g_nav > ul{
	display: flex;
	gap: 0 44px;
	}

	.g_nav > ul > li > a{
	position: relative;
	display: block;
	color: var(--white);
	font-size: 12px;
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 56px;
	white-space: nowrap;
	}

	.g_nav > ul > li:not(.has_sub) > a:hover{
	opacity: .6;
	}


	/* サブメニュー */

	.has_sub > a::after,
	.g_nav .is_current > a::after{
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	margin-left: -7px;
	border: 7px solid transparent;
	border-top: 0;
	border-bottom: 7px solid var(--white);
	opacity: 0;
	transition: opacity .3s ease;
	}

	.sub_menu{
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	background: var(--white);
	border-bottom: 1px solid var(--line);
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
	}

	.sub_menu ul{
	display: flex;
	justify-content: center;
	gap: 0 50px;
	}

	.sub_menu a{
	display: block;
	font-size: 12px;
	letter-spacing: .1em;
	line-height: 60px;
	white-space: nowrap;
	font-weight:600;
	}

	.sub_menu a:hover{
	opacity: .6;
	}

	.g_nav .is_current > a::after,
	.has_sub:hover > a::after,
	.has_sub:focus-within > a::after,
	.has_sub:hover > .sub_menu,
	.has_sub:focus-within > .sub_menu{
	opacity: 1;
	visibility: visible;
	}

	.header_insta{
	position: absolute;
	top: 50%;
	right: 18px;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	color: var(--white);
	}

	.menu_btn{
	display: none;
	}



	/* ---------- ファーストビュー ---------- */

	#first_view{
	position: relative;
	width: 100%;
	height: 100vh;
	min-height: 520px;
	overflow: hidden;
	background: #dfe4ea;
	}

	.fv_slide{
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 2s ease;
	}

	.fv_slide.is_active{
	opacity: 1;
	}

	.fv_slide img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
	}

	.fv_copy{
	position: absolute;
	top: 48%;
	left: 28%;
	z-index: 2;
	width: 47%;
	max-width: 700px;
	transform: translateY(-50%);
	}

	.fv_scroll{
	display: none;
	}



	/* ---------- バナー ---------- */

	#top_banner{
	padding: 185px 20px 0;
	}

	.banner_list{
	display: flex;
	justify-content: center;
	gap: 35px;
	max-width: 1070px;
	margin: 0 auto;
	}

	/* 1枚でも2枚並びの時と同じ幅を保つ（中央に配置） */
	.banner_list li{
	flex: 0 1 calc((100% - 35px) / 2);
	}

	.banner_list a{
	display: block;
	overflow: hidden;
	}

	.banner_list img{
	transition: transform .6s ease, opacity .6s ease;
	}

	.banner_list a:hover img{
	transform: scale(1.03);
	opacity: .85;
	}



	/* ---------- セクション共通 ---------- */

	.top_sec{
	padding-top: 154px;
	}

	#top_news{
	padding-top: 185px;
	}

	.sec_title{
	padding-bottom: 22px;
	border-bottom: 1px solid var(--line);
	font-size: 28px;
	font-weight: bold;
	letter-spacing: .14em;
	line-height: 1.4;
	text-align: center;
	}

	.sec_title_en{
	letter-spacing: .12em;
	}

	.sec_inner{
	width: 100%;
	max-width: 840px;
	margin: 0 auto;
	padding: 0 20px;
	}


	/* ボタン */

	.more_btn{
	margin-top: 62px;
	text-align: center;
	}

	.more_btn a{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 322px;
	height: 60px;
	border: 1px solid var(--navy);
	border-radius: 30px;
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .1em;
	}

	.more_btn a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 36px;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	transition: right .4s ease;
	}

	.more_btn a:hover{
	background: var(--navy);
	color: var(--white);
	}

	.more_btn a:hover::after{
	right: 30px;
	}



	/* ---------- お知らせ ---------- */

	.news_list{
	margin-top: 62px;
	border-top: 1px solid var(--line);
	}

	.news_list li{
	border-bottom: 1px solid var(--line);
	}

	.news_list a{
	display: flex;
	align-items: baseline;
	padding: 30px 0;
	font-size: 14px;
	letter-spacing: .08em;
	line-height: 1.6;
	font-weight: 500;
	}
	
	.news_list time{
	font-size: 12px;
	flex-shrink: 0;
	width: 98px;
	font-weight: 500;
	}

	.news_ttl{
	position: relative;
	padding-right: 22px;
	font-feature-settings: "palt";
	}

	/* 外部リンクアイコン */
	.news_ttl::after{
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 10px;
	vertical-align: -4px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23001ea0' stroke-width='1'%3E%3Cpath d='M5 1.5H1.5v9h9V7'/%3E%3Cpath d='M7 .5h4.5V5M11.5.5 5.5 6.5'/%3E%3C/svg%3E") no-repeat center / contain;
	}

	.news_list a:hover{
	opacity: .6;
	}

	/* サイト内ページへのリンクは外部リンクアイコンを出さない */
	.news_list a:not([target="_blank"]) .news_ttl::after{
	display: none;
	}



	/* ---------- 製品情報 ---------- */

	.product_list{
	display: flex;
	flex-wrap: wrap;
	}

	.product_list li{
	width: 25%;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	}

	.product_list li:nth-child(4n){
	border-right: 0;
	}

	.product_list a{
	position: relative;
	display: block;
	overflow: hidden;
	}

	.product_name{
	position: absolute;
	top: 22px;
	left: 26px;
	z-index: 1;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1.5;
	}

	.product_list img{
	transition: transform .6s ease;
	}

	.product_list a:hover img{
	transform: scale(1.06);
	}

	#top_product .more_btn{
	margin-top: 64px;
	}



	/* ---------- BEE BRANDについて ---------- */

	.about_text{
	margin-top: 62px;
	font-size: 14px;
	letter-spacing: .08em;
	line-height: 2.45;
	font-weight: 500;
	}

	#top_about .more_btn{
	margin-top: 66px;
	}



	/* ---------- フッター ---------- */

	footer{
	margin-top: 300px;
	}

	.footer_nav{
	background: var(--footer_bg);
	}

	.footer_nav_pc{
	display: flex;
	padding: 32px 0 40px;
	}

	.footer_nav_sp{
	display: none;
	}

	.f_col{
	width: 25%;
	padding: 0 30px;
	}

	.f_ttl{
	position: relative;
	margin-bottom: 24px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .1em;
	}

	/* 見出し下の小さなライン */
	.footer_nav_pc .f_ttl::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: -11px;
	width: 4px;
	height: 1px;
	background: currentColor;
	}

	.footer_nav li{
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .08em;
	line-height: 2.25;
	}

	.footer_nav a:hover{
	opacity: .6;
	}

	/* 「一般のお客様向け」／「医療関係者向け」（新しいタブでTOPへ） */
	.visitor_switch{
	display: inline-block;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .08em;
	line-height: 1.6;
	}

	.visitor_switch::after{
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 6px;
	vertical-align: -1px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23001ea0' stroke-width='1'%3E%3Cpath d='M5 1.5H1.5v9h9V7'/%3E%3Cpath d='M7 .5h4.5V5M11.5.5 5.5 6.5'/%3E%3C/svg%3E") no-repeat center / contain;
	}

	.visitor_switch:hover{
	opacity: .6;
	}

	.f_switch{
	margin-top: 20px;
	}

	.footer_info{
	position: relative;
	display: flex;
	padding: 50px 30px 150px;
	background: var(--navy);
	color: var(--white);
	}

	.footer_info a{
	color: var(--white);
	}

	.footer_company{
	width: 50%;
	}

	.footer_logo{
	width: 383px;
	max-width: 100%;
	}

	.footer_logo a:hover{
	opacity: .7;
	}

	.footer_desc{
	margin-top: 22px;
	font-size: 12px;
	letter-spacing: .08em;
	line-height: 2.1;
	}

	.footer_insta{
	width: 30px;
	height: 30px;
	margin-top: 18px;
	}

	.footer_address{
	width: 50%;
	padding-left: 0;
	font-size: 12px;
	letter-spacing: .08em;
	line-height: 2.1;
	}

	.footer_address > div{
	display: flex;
	}

	.footer_address > div + div{
	margin-top: 22px;
	}

	.footer_address dt{
	flex-shrink: 0;
	width: 94px;
	}

	.copyright{
	position: absolute;
	left: 30px;
	bottom: 20px;
	font-size: 10px;
	letter-spacing: .06em;
	}
	
	.copyright small{
	font-size: 11px;
	}



	/* ---------- SPメニュー ---------- */

	.sp_menu{
	display: none;
	}

	body.is_menu_open{
	position: fixed;
	left: 0;
	width: 100%;
	overflow: hidden;
	}




/* ==========================================================
   お知らせ一覧（news.html）
   ========================================================== */

	.page_main{
	padding-top: 56px;
	}

	.page_head{
	padding-top: 108px;
	text-align: center;
	}

	.page_title{
	font-size: 28px;
	font-weight: bold;
	letter-spacing: .14em;
	line-height: 1.4;
	}

	.page_category{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 466px;
	max-width: 100%;
	height: 60px;
	margin-top: 89px;
	border-radius: 34px;
	background: var(--navy);
	color: var(--white);
	font-size: 26px;
	font-weight: bold;
	letter-spacing: .14em;
	line-height: 1.4;
	}


	/* 年の切り替え */

	.news_archive{
	margin-top: 46px;
	}

	.year_select{
	display: flex;
	justify-content: flex-end;
	}

	.year_select select{
	width: 115px;
	height: 32px;
	padding: 4px 0 0 0;
	border: 0;
	border-top: 1px solid var(--line_dark);
	border-radius: 0;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 7'%3E%3Cpath d='M0 0h10L5 7z' fill='%23001ea0'/%3E%3C/svg%3E") no-repeat 0 13px / 10px 7px;
	color: var(--navy);
	font-family: inherit;
	font-size: 13px;
	font-weight: bold;
	letter-spacing: .08em;
	text-align: right;
	text-align-last: right;
	cursor: pointer;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	}

	/* クリック時に枠線を出さない */
	.year_select select:focus,
	.year_select select:focus-visible{
	outline: none;
	box-shadow: none;
	}

	.news_archive .news_list{
	margin-top: 26px;
	border-top-color: var(--line);
	}

	.news_archive .news_list li{
	border-bottom-color: var(--line);
	}

	.news_archive .news_list a{
	padding: 28px 0;
	}


	/* ページ送り */

	.pager{
	display: flex;
	justify-content: center;
	gap: 0 24px;
	margin-top: 68px;
	}

	.pager a{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 135px;
	height: 62px;
	border: 1px solid var(--navy);
	border-radius: 31px;
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.pager svg{
	width: 40px;
	height: 10px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1;
	}

	

	.pager a:hover{
	background: var(--navy);
	color: var(--white);
	}

	.pager .is_disabled{
	opacity: .3;
	pointer-events: none;
	}

	#news_page footer{
	margin-top: 270px;
	}




/* ==========================================================
   会社概要（company.html）
   ========================================================== */

	.visually_hidden{
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	}

	.sp_only{
	display: none !important;
	}

	.company_mv img{
	width: 100%;
	}


	/* セクション共通：左に見出し、中央790pxに本文 */

	.company_sec{
	position: relative;
	padding: 97px 0 156px;
	border-top: 1px solid var(--line);
	}

	.company_label{
	position: absolute;
	top: 108px;
	left: 70px;
	font-size: 14px;
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 2;
	}

	.company_body{
	width: calc(100% - 360px);
	max-width: 720px;
	margin: 0 auto;
	}

	.company_text p,
	p.company_text{
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 2;
	font-feature-settings: "palt";
	}

	.company_text p + p{
	margin-top: 20px;
	}

	.company_img img{
	width: 100%;
	}


	/* 企業理念 */

	.company_philosophy{
	padding: 139px 0 190px;
	border-top: 0;
	}

	.company_philosophy .company_label{
	top: 86px;
	}

	.philosophy_inner{
	padding-left: 151px;
	}

	.philosophy_copy{
	width:60%;
	}

	.philosophy .en,
	.company_philosophy .en{
	letter-spacing: .12em;
	}

	.philosophy_text{
	margin-top: 57px;
	}

	.philosophy_text p{
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 35px;
	text-align: left;
	}

	.philosophy_text p + p{
	margin-top: 24px;
	}


	/* 代表挨拶 */

	.company_message{
	padding-top: 0;
	}

	.message_text{
	margin-top: 54px;
	}

	.company_text .message_sign{
	margin-top: 40px;
	text-align: right;
	}


	/* 会社概要 */

	.outline_figure{
	width: 688px;
	max-width: 100%;
	margin: 64px auto 0;
	}

	.outline_table{
	margin-top: 79px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 35px;
	}

	.outline_table > div,
	.office_list > div{
	display: flex;
	}

	.outline_table > div > dt{
	flex-shrink: 0;
	width: 126px;
	}

	.outline_table dd{
	flex: 1;
	}

	.office_list > div > dt{
	flex-shrink: 0;
	width: 110px;
	}

	.map_link{
	text-decoration: underline;
	}

	.map_link:hover{
	opacity: .6;
	}

	.company_outline .more_btn{
	margin-top: 79px;
	}

	.outline_img{
	margin-top: 102px;
	}


	/* 社名とロゴマーク */

	.company_logo{
	padding: 0 0 160px;
	}

	.logo_text{
	margin-top: 56px;
	}




/* ==========================================================
   ミッションステートメント（mission.html）
   ※ セクションの枠組みは会社概要ページの .company_sec を共用
   ========================================================== */

	.mission_sec{
	padding: 100px 0 160px;
	}

	.mission_sec .company_label{
	top: 105px;
	}

	.mission_intro{
	padding: 77px 0 152px;
	border-top: 0;
	}

	.mission_intro .company_label{
	top: 78px;
	}

	.mission_slogan{
	padding: 77px 0 150px;
	}

	.mission_slogan .company_label{
	top: 88px;
	}

	/* 画面幅が狭いと長い見出しが本文に重なるため、見出しを改行する */
	.mid_br{
	display: none;
	}

	@media screen and (min-width: 765px) and (max-width: 1300px) {
		.mid_br{
			display: inline;
		}

		/* 改行しても本文との間が詰まるため、本文の左右を少し広く空ける */
		.mission_intro .company_body{
			width: calc(100% - 420px);
		}

		/* 本文の決め打ちの改行は外して自然に折り返す（「に、」だけの行ができるのを防ぐ） */
		.mission_intro .company_text .pc_br{
			display: none;
		}
	}

	.slogan_text{
	font-size: 36px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 61px;
	text-align: left;
	}

	.vision_text p{
	font-size: 16px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 40px;
	text-align: left;
	font-feature-settings: "palt";
	}

	.vision_text p + p{
	margin-top: 26px;
	}

	.mission_principles{
	padding-bottom: 90px;
	}

	.principle_list li + li{
	margin-top: 37px;
	}

	.principle_list h3{
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 40px;
	}

	.principle_list p{
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 35px;
	text-align: left;
	}




/* ==========================================================
   製品情報（product.html）
   ========================================================== */

	.pc_only_cell{
	display: block;
	}

	/* カテゴリーへのアンカーリンク：固定ヘッダー分ずらしてスムーズに移動 */
	html:has(#product_page){
	scroll-behavior: smooth;
	}

	.item_cate{
	scroll-margin-top: 56px;
	}

	/* 一般のお客様向け製品：見出しの上に余白を残して止める */
	#general_products{
	scroll-margin-top: 146px;
	}

	/* 会社概要のセクションへのアンカーリンク */
	html:has(#company_page){
	scroll-behavior: smooth;
	}

	.company_sec{
	scroll-margin-top: 56px;
	}

	.sp_only_cell{
	display: none;
	}


	/* 「〜から探す」帯 */

	.search_ttl{
	position: relative;
	width: 700px;
	max-width: calc(100% - 40px);
	margin: 0 auto;
	background: #eef0f1;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .12em;
	line-height: 78px;
	text-align: center;
	}

	.search_ttl::after{
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -14px;
	border: 14px solid transparent;
	border-bottom: 0;
	border-top: 15px solid #eef0f1;
	}

	.product_cate{
	margin-top: 87px;
	}

	.product_cate .product_list{
	margin-top: 49px;
	border-top: 1px solid var(--line);
	}

	.product_items{
	margin-top: 153px;
	padding-bottom: 160px;
	}


	/* 医療関係者向け／一般のお客様向け */

	.item_group{
	margin-top: 40px;
	}

	.item_group + .item_group{
	margin-top: 130px;
	}

	.item_group_ttl{
	width: 461px;
	max-width: calc(100% - 40px);
	margin: 0 auto 28px;
	border-radius: 30px;
	background: var(--navy);
	color: var(--white);
	font-size: 23px;
	font-weight: bold;
	letter-spacing: .14em;
	line-height: 60px;
	text-align: center;
	}


	/* 商品グリッド：見出し＋商品を4列で */

	.item_grid{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--line);
	}

	.item_cate + .item_cate .item_grid{
	border-top: 0;
	}

	.item_grid > li{
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	}

	.item_grid > li:nth-child(4n){
	border-right: 0;
	}

	/* 最終行の空きマス：最後のセルから右端まで枠線を引く（商品数が変わっても空セル不要）
	   ::before = 空きマスの下線、::after = 空きマス同士の区切り線
	   ※ 疑似要素の % はセルの右枠線を除いた幅基準のため px で補正 */
	.item_grid > li,
	.faq_grid > li{
	position: relative;
	}

	.item_grid > li:last-child::before,
	.item_grid > li:last-child::after,
	.faq_grid > li:last-child::before,
	.faq_grid > li:last-child::after{
	content: "";
	position: absolute;
	pointer-events: none;
	}

	.item_grid > li:last-child::before,
	.faq_grid > li:last-child::before{
	bottom: -1px;
	left: 100%;
	height: 1px;
	background: var(--line);
	}

	.item_grid > li:last-child::after,
	.faq_grid > li:last-child::after{
	top: 0;
	bottom: -1px;
	left: calc(200% + 1px);
	box-sizing: border-box;
	}

	/* 1列目で終わる：空き3マス（区切り線2本） */
	.item_grid > li:last-child:nth-child(4n+1)::before,
	.faq_grid > li:last-child:nth-child(4n+1)::before{
	width: calc(300% + 4px);
	}

	.item_grid > li:last-child:nth-child(4n+1)::after,
	.faq_grid > li:last-child:nth-child(4n+1)::after{
	width: calc(100% + 2px);
	border-left: 1px solid var(--line);
	border-right: 1px solid var(--line);
	}

	/* 2列目で終わる：空き2マス（区切り線1本） */
	.item_grid > li:last-child:nth-child(4n+2)::before,
	.faq_grid > li:last-child:nth-child(4n+2)::before{
	width: calc(200% + 3px);
	}

	.item_grid > li:last-child:nth-child(4n+2)::after,
	.faq_grid > li:last-child:nth-child(4n+2)::after{
	width: 1px;
	background: var(--line);
	}

	/* 3列目で終わる：空き1マス */
	.item_grid > li:last-child:nth-child(4n+3)::before,
	.faq_grid > li:last-child:nth-child(4n+3)::before{
	width: calc(100% + 2px);
	}

	/* 4列目で終わる：空きなし */
	.item_grid > li:last-child:nth-child(4n)::before,
	.item_grid > li:last-child:nth-child(4n+3)::after,
	.item_grid > li:last-child:nth-child(4n)::after,
	.faq_grid > li:last-child:nth-child(4n)::before,
	.faq_grid > li:last-child:nth-child(4n+3)::after,
	.faq_grid > li:last-child:nth-child(4n)::after{
	display: none;
	}

	.item_head{
	background: var(--footer_bg);
	}

	.item_head a{
	position: relative;
	display: block;
	height: 100%;
	padding: 30px 30px;
	}

	.item_head_ttl{
	display: block;
	padding-right: 30px;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 1.6;
	}

	.item_head sup{
	margin-left: 2px;
	font-size: 11px;
	vertical-align: 7px;
	line-height: 1;
	}

	/* → 矢印 */
	.item_head a::after{
	content: "";
	position: absolute;
	top: 38px;
	right: 30px;
	width: 22px;
	height: 17px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10' fill='none' stroke='%23001ea0' stroke-width='1.2'%3E%3Cpath d='M0 5h15M10.5.5 15 5l-4.5 4.5'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform .4s ease;
	}

	.item_head a:hover::after{
	transform: translateX(4px);
	}

	/* 商品名は行内で下揃え（画像の下の余白を伸ばす） */
	.item{
	display: flex;
	flex-direction: column;
	}

	.item a{
	display: flex;
	flex-direction: column;
	flex: 1;
	padding-bottom: 22px;
	}

	.item_img{
	display: block;
	overflow: hidden;
	}

	.item_img img{
	aspect-ratio: 1 / 1;
	object-fit: contain;
	transition: transform .6s ease;
	}

	.item a:hover .item_img img{
	transform: scale(1.05);
	}

	/* リンク未設定（href なし）の商品・カテゴリーはクリック不可 */
	.item_grid a:not([href]){
	cursor: default;
	pointer-events: none;
	}

	/* min-heightの枠内でも下端に寄せる（商品名だけの場合も同じ位置に） */
	.item_txt{
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-top: auto;
	min-height: 46px;
	padding: 0 20px;
	letter-spacing: .06em;
	line-height: 2;
	}

	.item_cat,
	.item_name{
	display: block;
	}


	.item_cat{
	font-size: 12px;
	font-weight: 500;
	}

	.item_name{
	font-size: 14px;
	font-weight: 600;
	line-height:1.6;
	}

/* ==========================================================
   会社沿革（history.html）
   ※ 見出し＋本文の枠組みは会社概要ページの .company_sec を共用
   ========================================================== */

	.history_mv img{
	aspect-ratio: 1500 / 450;
	object-fit: cover;
	object-position: 50% 45%;
	}

	.history_sec{
	padding-bottom: 70px;
	}


	/* タイムライン：本文カラムの左端に縦線 */

	.timeline{
	position: relative;
	margin-top: 120px;
	padding: 50px 0 100px;
	}

	.timeline::before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;
	background: var(--navy);
	}

	.tl_group{
	position: relative;
	}

	.tl_group + .tl_group,
	.tl_item + .tl_item{
	margin-top: 56px;
	}

	/* 年代（線の左側） */
	.tl_decade{
	position: absolute;
	top: -6px;
	right: calc(100% + 10px);
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 38px;
	font-weight: bold;
	line-height: 1;
	letter-spacing: 1.7px;
	}

	.tl_decade.is_before{
	top: -50px;
	}

	.tl_group:has(.tl_item.is_box:first-child) .tl_decade:not(.is_before){
	top: 22px;
	}

	/* 各年 */
	/* 年＋本文のまとまりと画像を上下中央で揃える */
	.tl_item{
	display: flex;
	align-items: center;
	margin-left: 84px;
	padding: 0 30px 0 10px;
	}

	.tl_main{
	position: relative;
	display: flex;
	align-items: flex-start;
	}

	/* 縦線から伸びる横線（年の行の高さに合わせる） */
	.tl_main::before{
	content: "";
	position: absolute;
	top: 13px;
	left: -94px;
	width: 84px;
	height: 1px;
	background: var(--navy);
	}

	.tl_item.is_box{
	padding-top: 22px;
	padding-bottom: 22px;
	background: var(--footer_bg);
	}

	/* 縦線と横線の交点の丸 */
	.tl_main::after{
	content: "";
	position: absolute;
	top: 9px;
	left: -98px;
	width: 7px;
	height: 7px;
	border: 1px solid var(--navy);
	border-radius: 50%;
	background: var(--white);
	}

	.tl_year{
	flex-shrink: 0;
	width: 83px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 21px;
	font-weight: bold;
	letter-spacing: .02em;
	line-height: 27px;
	text-align: left;
	}

	.tl_text{
	font-size: 13px;
	letter-spacing: .06em;
	font-weight: 500;
	line-height: 27px;
	text-align: left;
	font-feature-settings: "palt";
	}

	.tl_img{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	flex-shrink: 0;
	margin-left: 28px;
	}

	.tl_img img{
	width: auto;
	max-width: 100%;
	height: auto;
	}

	.tl_item.is_box .tl_img{
	margin-left: auto;
	padding-left: 28px;
	}

	/* ストーリーを読む */
	.story_btn{
	margin-top: 12px;
	}

	.story_btn a{
	position: relative;
	display: inline-flex;
	align-items: center;
	width: 170px;
	height: 32px;
	padding-left: 24px;
	border-radius: 16px;
	background: var(--navy);
	color: var(--white);
	font-size: 12px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.story_btn a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 5px;
	height: 5px;
	margin-top: -3px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	transition: right .4s ease;
	}

	.story_btn a:hover{
	opacity: .75;
	}

	.story_btn a:hover::after{
	right: 16px;
	}




/* ==========================================================
   医療関係者確認（intro.html）
   ========================================================== */

	body.is_gate_open{
	overflow: hidden;
	}

	/* 紺の額縁＋白いパネルで画面全体を覆う */
	/* 額縁は固定し、画面に収まらない場合は白いパネルの中だけをスクロール */
	.intro_gate{
	position: fixed;
	inset: 0;
	z-index: 500;
	padding: 82px 83px;
	overflow: hidden;
	background: var(--navy);
	transition: opacity .6s ease, visibility .6s ease;
	}

	.intro_gate.is_hidden{
	opacity: 0;
	visibility: hidden;
	}

	/* 中身は常に上下中央。高さが足りない時はJSで全体を縮小して収める */
	.intro_gate_inner{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 40px max(40px, calc(50% - 329px));
	overflow: hidden;
	background: var(--white);
	}

	.intro_gate_content{
	flex-shrink: 0;
	width: 100%;
	transform-origin: 50% 50%;
	}

	.intro_logo{
	width: 526px;
	max-width: 100%;
	}

	.intro_lead{
	margin-top: 78px;
	font-size: 19px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 36px;
	text-align: left;
	}

	.intro_note{
	margin-top: 22px;
	font-size: 15px;
	letter-spacing: .1em;
	line-height: 35px;
	font-weight: 500;
	}

	.intro_question{
	margin-top: 58px;
	font-size: 24px;
	font-weight: bold;
	letter-spacing: .1em;
	line-height: 1.5;
	text-align: center;
	}

	.intro_btns{
	display: flex;
	gap: 0 31px;
	margin-top: 34px;
	}

	.intro_btns li{
	flex: 1 1 0;
	min-width: 0;
	}

	.intro_yes,
	.intro_no{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 101px;
	border: 1.5px solid var(--navy);
	background: var(--white);
	color: var(--navy);
	font-family: inherit;
	font-size: 26px;
	font-weight: bold;
	letter-spacing: .14em;
	transition: background .4s ease, color .4s ease;
	}

	.intro_yes:hover,
	.intro_no:hover{
	background: var(--navy);
	color: var(--white);
	}

	.intro_no_note{
	margin-top: 16px;
	font-size: 13px;
	letter-spacing: .06em;
	text-align: center;
	font-weight: 500;
	}




/* ==========================================================
   会社沿革：ストーリー（ポップアップ）
   ========================================================== */

	body.is_modal_open{
	position: fixed;
	left: 0;
	width: 100%;
	overflow: hidden;
	}

	/* ヘッダー（z-index:100）は覆わない */
	.story_modal{
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 76px 20px 40px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s ease, visibility .4s ease;
	}

	.story_modal.is_open{
	opacity: 1;
	visibility: visible;
	}

	/* 背面をグレーに */
	.story_modal_bg{
	position: absolute;
	inset: 0;
	background: rgba(128, 128, 128, .5);
	cursor: pointer;
	}

	.story_modal_box{
	position: relative;
	width: 890px;
	max-width: 100%;
	max-height: 100%;
	padding: 60px 84px 80px;
	overflow-y: auto;
	overscroll-behavior: contain;
	border: 1px solid var(--line_dark);
	background: var(--white);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
	transform: translateY(16px);
	transition: transform .4s ease;
	}

	/* スクロールはできるまま、スクロールバーだけ非表示に */
	.story_modal_box{
	scrollbar-width: none;
	-ms-overflow-style: none;
	}

	.story_modal_box::-webkit-scrollbar{
	display: none;
	}

	.story_modal.is_open .story_modal_box{
	transform: none;
	}

	/* 右上の × */
	.story_close{
	position: absolute;
	top: 58px;
	right: 42px;
	width: 36px;
	height: 36px;
	}

	.story_close span{
	position: absolute;
	top: 50%;
	left: 1px;
	width: 34px;
	height: 1px;
	background: var(--navy);
	}

	.story_close span:nth-child(1){
	transform: rotate(45deg);
	}

	.story_close span:nth-child(2){
	transform: rotate(-45deg);
	}

	.story_close:hover{
	opacity: .6;
	}

	.story_img{
	display: flex;
	align-items: center;
	justify-content: center;
	height: 310px;
	}

	.story_img img{
	width: auto;
	max-width: 100%;
	max-height: 100%;
	}

	.story_head{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0 30px;
	margin-top: 26px;
	}

	.story_cat{
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 1.6;
	text-align: left;
	}

	.story_name{
	margin-top: 10px;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .04em;
	line-height: 1.5;
	}

	.story_year{
	margin-top: 4px;
	font-size: 16px;
	letter-spacing: .06em;
	line-height: 1.6;
	text-align: left;
	}

	.story_link{
	flex-shrink: 0;
	}

	.story_link a,
	.story_close_btn button{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 182px;
	height: 34px;
	padding-right: 14px;
	border: 1px solid var(--navy);
	border-radius: 17px;
	background: var(--navy);
	color: var(--white);
	font-family: inherit;
	font-size: 12px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.story_link a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	}

	.story_link a:hover{
	opacity: .75;
	}

	.story_text{
	margin-top: 32px;
	font-size: 15px;
	letter-spacing: .04em;
	line-height: 32px;
	}

	/* PCは × で閉じる（下の「閉じる」ボタンはSPのみ） */
	.story_close_btn{
	display: none;
	}




/* ==========================================================
   製品詳細（product_single01.html）
   ========================================================== */

	/* パンくず */
	.breadcrumb{
	padding: 48px 27px 0;
	}

	.breadcrumb ol{
	display: flex;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 1.6;
	}

	.breadcrumb li{
	color: var(--navy);
	}

	.breadcrumb li + li::before{
	content: ">";
	margin: 0 10px;
	color: #8a8f99;
	}

	.breadcrumb a{
	color: #8a8f99;
	}

	.breadcrumb a:hover{
	color: var(--navy);
	}


	/* 左：画像／右：情報 の2カラム */
	.ps_detail{
	display: flex;
	margin-top: 70px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	}

	.ps_gallery{
	width: 50%;
	border-right: 1px solid var(--line);
	}

	.ps_info{
	width: 50%;
	padding-bottom: 60px;
	}


	/* フェードスライダー */
	.fade_slider{
	position: relative;
	padding: 70px 70px 60px;
	}

	.fade_slider_list{
	position: relative;
	max-width: 500px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
	}

	.fade_slider_list li{
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1s ease;
	}

	.fade_slider_list li.is_active{
	opacity: 1;
	}

	.fade_slider_list img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	}

	.fade_slider_arrow{
	position: absolute;
	top: calc(50% - 5px);
	width: 40px;
	height: 40px;
	margin-top: -20px;
	}

	.fade_slider_arrow::before{
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 14px;
	height: 14px;
	border-top: 1.5px solid var(--navy);
	border-left: 1.5px solid var(--navy);
	}

	.fade_slider_arrow.is_prev{
	left: 20px;
	}

	.fade_slider_arrow.is_prev::before{
	transform: translate(-25%, -50%) rotate(-45deg);
	}

	.fade_slider_arrow.is_next{
	right: 20px;
	}

	.fade_slider_arrow.is_next::before{
	transform: translate(-75%, -50%) rotate(135deg);
	}

	.fade_slider_arrow:hover{
	opacity: .6;
	}

	.fade_slider_dots{
	display: flex;
	justify-content: center;
	gap: 0 6px;
	margin-top: 40px;
	}

	.fade_slider_dots button{
	width: 9px;
	height: 9px;
	border: 1px solid var(--navy);
	border-radius: 50%;
	background: var(--white);
	}

	.fade_slider_dots button.is_active{
	background: var(--navy);
	}


	/* 製品情報 */
	.ps_summary{
	padding: 74px 50px 43px 51px;
	border-bottom: 1px solid var(--line);
	}

	.ps_type{
	font-size: 14px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 1.6;
	text-align: left;
	}

	.ps_name{
	margin-top: 16px;
	font-size: 17px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 28px;
	}

	.ps_text{
	margin-top: 44px;
	}

	.ps_text p{
	font-size: 11px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 24px;
	}

	.ps_story_btn{
	margin-top: 30px;
	}

	.ps_story_btn a{
	position: relative;
	display: inline-flex;
	align-items: center;
	width: 138px;
	height: 32px;
	padding-left: 20px;
	border: 1px solid var(--navy);
	border-radius: 16px;
	font-size: 11px;
	font-weight: bold;
	letter-spacing: .06em;
	}

	.ps_story_btn a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	}

	.ps_story_btn a:hover{
	background: var(--navy);
	color: var(--white);
	}

	/* 組成など */
	.ps_spec{
	padding: 38px 50px 40px 51px;
	border-bottom: 1px solid var(--line);
	font-size: 13px;
	letter-spacing: .06em;
	line-height: 26px;
	}

	.ps_spec > div{
	display: flex;
	}

	.ps_spec dt{
	flex-shrink: 0;
	min-width: 170px;
	padding-right: 16px;
	font-weight: bold;
	white-space: nowrap;
	}

	/* FAQ・製品資料・製品コード */
	.ps_menu > li{
	border-bottom: 1px solid var(--line);
	}

	.ps_menu_ttl{
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 52px;
	padding: 0 80px 0 51px;
	color: var(--navy);
	font-family: inherit;
	font-size: 13px;
	font-weight: bold;
	letter-spacing: .06em;
	text-align: left;
	}

	.ps_menu_ttl:hover{
	opacity: .6;
	}

	/* リンクは右向き、アコーディオンは下向き（開くと上向き） */
	.ps_menu_ttl.is_link::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 50px;
	width: 10px;
	height: 10px;
	border-top: 1.5px solid var(--navy);
	border-right: 1.5px solid var(--navy);
	transform: translateY(-50%) rotate(45deg);
	transition: transform .3s ease;
	margin-right: 4px;
	}

	button.ps_menu_ttl::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 50px;
	width: 10px;
	height: 10px;
	border-top: 1.5px solid var(--navy);
	border-right: 1.5px solid var(--navy);
	transform: translateY(-75%) rotate(135deg);
	transition: transform .3s ease;
	}

	button.ps_menu_ttl[aria-expanded="true"]::after{
	transform: translateY(-25%) rotate(-45deg);
	}

	.ps_acc_body{
	padding: 0 50px 24px 51px;
	}

	.ps_doc_list li{
	font-size: 13px;
	letter-spacing: .06em;
	line-height: 2.2;
	}

	.ps_doc_list a{
	text-decoration: underline;
	}

	.ps_doc_list a:hover{
	opacity: .6;
	}

	.ps_code{
	font-size: 13px;
	letter-spacing: .06em;
	line-height: 2.2;
	}

	.ps_code > div{
	display: flex;
	}

	.ps_code dt{
	flex-shrink: 0;
	width: 142px;
	}

	/* 旧サイトの製品詳細（/product/single.php） */
	.op_title,
	.op_detail,
	.op_related{
	width: 1000px;
	max-width: calc(100% - 54px);
	margin: 0 auto;
	}

	.op_title{
	margin-top: 50px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
	}

	.op_cat{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	font-size: 13px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.op_tag{
	padding: 2px 10px;
	border: 1px solid var(--navy);
	font-size: 11px;
	line-height: 1.6;
	}

	.op_summary{
	margin-top: 14px;
	font-size: 14px;
	letter-spacing: .06em;
	}

	.op_name{
	margin-top: 4px;
	font-size: 24px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 1.5;
	}

	.op_detail{
	margin-top: 50px;
	}

	/* 画像と成分を横並び */
	.op_use{
	display: flex;
	align-items: flex-start;
	gap: 50px;
	}

	.op_gallery{
	width: 55%;
	}

	.op_photo img{
	aspect-ratio: 4 / 3;
	object-fit: contain;
	}

	.op_thumbs{
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
	}

	.op_thumbs button{
	width: 80px;
	padding: 4px;
	border: 1px solid var(--line);
	background: var(--white);
	}

	.op_thumbs button.is_active,
	.op_thumbs button:hover{
	border-color: var(--navy);
	}

	.op_thumbs img{
	aspect-ratio: 1 / 1;
	object-fit: contain;
	}

	.op_spec{
	flex: 1;
	padding: 24px 28px;
	background: #f0f4fb;
	font-size: 14px;
	letter-spacing: .06em;
	line-height: 1.9;
	}

	.op_spec p + p{
	margin-top: 1em;
	}

	.op_text{
	margin-top: 40px;
	font-size: 14px;
	letter-spacing: .06em;
	line-height: 2;
	}

	.op_text p + p{
	margin-top: 1em;
	}

	.op_text .op_lead{
	color: #4cb894;
	font-size: 17px;
	font-weight: bold;
	}

	.op_btn{
	margin-top: 40px;
	text-align: center;
	}

	.op_btn a{
	position: relative;
	display: inline-flex;
	align-items: center;
	min-width: 320px;
	height: 56px;
	padding: 0 50px 0 28px;
	background: var(--navy);
	color: var(--white);
	font-size: 14px;
	font-weight: bold;
	letter-spacing: .06em;
	}

	.op_btn a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	}

	.op_btn a:hover{
	opacity: .7;
	}

	/* 本文中のボタン（旧サイトの m-bt：洗浄マニュアルなど）はFAQボタンと同じ見た目で中央に */
	.op_detail .m-bt{
	margin-top: 40px;
	text-align: center;
	}

	.op_detail .m-bt i{
	display: none;
	}

	.op_detail .m-bt a{
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 320px;
	height: 56px;
	padding: 0 50px 0 28px;
	background: var(--navy);
	color: var(--white);
	font-size: 14px;
	font-weight: bold;
	letter-spacing: .06em;
	text-decoration: none;
	}

	.op_detail .m-bt a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	}

	.op_detail .m-bt a:hover{
	opacity: .7;
	}

	.op_block{
	margin-top: 70px;
	}

	.op_ttl{
	padding-bottom: 12px;
	border-bottom: 2px solid var(--navy);
	font-size: 18px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.op_block .op_text{
	margin-top: 20px;
	}

	.op_note{
	margin-top: 50px;
	font-size: 14px;
	letter-spacing: .06em;
	line-height: 2;
	}

	.op_note p + p{
	margin-top: 1.5em;
	}

	.op_text img,
	.op_note img{
	width: auto;
	max-width: 100%;
	height: auto;
	}

	/* 説明文とFAQボタンより下は幅を狭めて中央に（本文中の画像・表も中央に） */
	.op_lower,
	.op_detail > .op_text{
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	}

	.op_lower img,
	.op_detail > .op_text img{
	margin-left: auto;
	margin-right: auto;
	}

	.op_lower .op_text table,
	.op_lower .op_note table{
	margin-left: auto;
	margin-right: auto;
	}

	.op_text video,
	.op_text iframe,
	.op_note video,
	.op_note iframe{
	width: 100%;
	max-width: 800px;
	}

	.op_text .aligncenter,
	.op_note .aligncenter{
	display: block;
	margin: 0 auto;
	}

	.op_text table{
	margin: 1em 0;
	border-collapse: collapse;
	}

	.op_text table th,
	.op_text table td{
	padding: 6px 12px;
	border: 1px solid var(--line);
	}

	.op_note_center{
	text-align: center;
	}

	.op_note a:hover{
	opacity: .7;
	}

	/* 表 */
	.op_table{
	width: 100%;
	margin-top: 20px;
	border-collapse: collapse;
	font-size: 14px;
	letter-spacing: .06em;
	line-height: 1.7;
	}

	.op_table th,
	.op_table td{
	padding: 12px 18px;
	border: 1px solid var(--line);
	vertical-align: middle;
	}

	.op_table th{
	background: #f0f4fb;
	font-weight: bold;
	}

	.op_doc th,
	.op_doc td{
	text-align: center;
	}

	.op_doc td:first-child{
	text-align: left;
	}

	.op_doc a{
	text-decoration: underline;
	}

	.op_doc a:hover{
	opacity: .6;
	}

	.op_code th{
	width: 50%;
	text-align: left;
	}

	/* 製品コード：パッケージ・製品ごとの見出し */
	.op_code_name{
	margin-top: 30px;
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.op_code_name + .op_table{
	margin-top: 12px;
	}

	/* 関連製品（FAQボタンより下と同じ幅） */
	.op_related{
	width: 800px;
	margin-top: 100px;
	padding-bottom: 140px;
	}

	.op_related_list{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px 24px;
	margin-top: 30px;
	}

	.op_related_list a{
	display: block;
	}

	.op_related_img{
	display: block;
	border: 1px solid var(--line);
	}

	.op_related_img img{
	aspect-ratio: 4 / 3;
	object-fit: contain;
	}

	.op_related_name{
	display: block;
	margin-top: 10px;
	font-size: 13px;
	font-weight: bold;
	letter-spacing: .04em;
	line-height: 1.6;
	}

	.op_related_list a:hover{
	opacity: .7;
	}




/* ==========================================================
   文章ページ共通（policy / terms / cautions / guideline / sustainability など）
   ========================================================== */

	.doc_body{
	margin-top: 80px;
	}

	.doc_body h2{
	margin-top: 64px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
	font-size: 18px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 1.6;
	}

	.doc_body h2:first-child{
	margin-top: 0;
	}

	.doc_body h3{
	margin-top: 40px;
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 1.7;
	}

	.doc_txt,
	.doc_body > .sec_inner > p{
	margin-top: 24px;
	font-size: 14px;
	letter-spacing: .06em;
	line-height: 2;
	font-weight: 500;
	}

	.doc_txt:first-child{
	margin-top: 0;
	}

	.doc_txt p,
	.doc_body > .sec_inner > p{
	font-size: 14px;
	line-height: 2;
	}

	.doc_txt p + p{
	margin-top: 1em;
	}

	.doc_txt ul{
	margin: 8px 0;
	padding-left: 1.4em;
	}

	.doc_txt ul li{
	list-style: disc;
	}

	.doc_txt ul ul li{
	list-style: circle;
	}

	/* ①②…のように番号が本文に入っているリストは点なし */
	.doc_txt ul.no_mark{
	padding-left: 0;
	}

	.doc_txt ul.no_mark > li{
	list-style: none;
	}

	.doc_txt li + li{
	margin-top: 4px;
	}

	.doc_body a{
	text-decoration: underline;
	word-break: break-all;
	}

	.doc_body a:hover{
	opacity: .6;
	}

	.doc_txt table{
	width: 100%;
	border-collapse: collapse;
	border-top: 1px solid var(--line);
	}

	.doc_txt th,
	.doc_txt td{
	padding: 16px 20px;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
	line-height: 1.8;
	text-align: left;
	vertical-align: top;
	}

	.doc_txt th{
	width: 180px;
	background: var(--footer_bg);
	font-weight: bold;
	}

	.doc_link_box{
	margin-top: 24px;
	}

	.doc_body .doc_link_box a{
	display: inline-block;
	padding: 18px 28px;
	border: 1px solid var(--navy);
	font-size: 14px;
	font-weight: bold;
	text-decoration: none;
	}

	.doc_body .doc_link_box a:hover{
	background: var(--navy);
	color: var(--white);
	opacity: 1;
	}

	.doc_sign{
	margin-top: 48px;
	text-align: right;
	}

	.doc_sign p{
	font-size: 14px;
	font-weight: 500;
	line-height: 2;
	text-align: right;
	}


	/* ---------- 後発品の安定供給 ---------- */

	.gs_item + .gs_item{
	margin-top: 30px;
	}

	.gs_item dl{
	border-top: 1px solid var(--line);
	font-size: 14px;
	letter-spacing: .04em;
	line-height: 1.9;
	}

	.gs_item dl > div{
	display: flex;
	border-bottom: 1px solid var(--line);
	}

	.gs_item dt{
	flex-shrink: 0;
	width: 120px;
	padding: 16px 20px;
	background: var(--footer_bg);
	font-weight: bold;
	}

	.gs_item dd{
	flex: 1;
	min-width: 0;
	padding: 16px 20px;
	}

	.gs_links li + li{
	margin-top: 8px;
	}

	.gs_date{
	display: block;
	font-weight: bold;
	}


	/* ---------- お問い合わせ窓口 ---------- */

	.contact_menu{
	display: flex;
	gap: 0 30px;
	}

	.contact_menu li{
	flex: 1;
	}

	.doc_body .contact_menu a{
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
	min-height: 150px;
	padding: 28px 60px 28px 32px;
	border: 1px solid var(--navy);
	text-decoration: none;
	}

	.doc_body .contact_menu a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	width: 9px;
	height: 9px;
	margin-top: -5px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: rotate(45deg);
	}

	/* 外部リンクは右上向きの矢印 */
	.doc_body .contact_menu a.is_external::after{
	width: 14px;
	height: 14px;
	margin-top: -7px;
	border: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23001ea0' stroke-width='1'%3E%3Cpath d='M5 1.5H1.5v9h9V7'/%3E%3Cpath d='M7 .5h4.5V5M11.5.5 5.5 6.5'/%3E%3C/svg%3E") no-repeat center / contain;
	transform: none;
	}

	.doc_body .contact_menu a:hover{
	background: var(--navy);
	color: var(--white);
	opacity: 1;
	}

	.doc_body .contact_menu a.is_external:hover::after{
	filter: brightness(0) invert(1);
	}

	.contact_menu_sub{
	font-size: 12px;
	letter-spacing: .06em;
	line-height: 1.6;
	}

	.contact_menu_ttl{
	margin-top: 8px;
	font-size: 16px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 1.6;
	}

	/* 電話・FAX番号 */
	.contact_num{
	display: flex;
	align-items: baseline;
	gap: 0 5px;
	margin-top: 24px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 30px;
	font-weight: bold;
	letter-spacing: .04em;
	line-height: 1.3;
	}

	.contact_num span{
	font-size: 15px;
	}

	/* 本文の p の文字サイズ指定（.doc_body > .sec_inner > p）より優先させる */
	.doc_body > .sec_inner > .contact_num{
	font-size: 30px;
	}

	.doc_body .contact_num a,
	.faq_contact .contact_num a{
	text-decoration: none;
	}

	.contact_time{
	margin-top: 12px;
	font-size: 15px;
	letter-spacing: .06em;
	}


	/* ---------- お問い合わせフォーム ---------- */

	.form_body h3{
	margin-top: 36px;
	}

	.contact_form{
	margin-top: 20px;
	}

	.req{
	margin-left: 4px;
	color: #d6203e;
	}

	.form_policy{
	padding: 24px 28px;
	background: var(--footer_bg);
	}

	.form_policy p{
	font-size: 14px;
	line-height: 1.9;
	}

	.form_policy .form_check{
	margin-top: 10px;
	}

	.form_check{
	display: inline-flex;
	align-items: center;
	gap: 0 8px;
	font-size: 14px;
	line-height: 1.6;
	cursor: pointer;
	}

	.form_check input{
	width: 18px;
	height: 18px;
	accent-color: var(--navy);
	}

	.form_checks{
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	padding-top: 4px;
	}

	.form_table{
	width: 100%;
	margin-top: 30px;
	border-collapse: collapse;
	border-top: 1px solid var(--line);
	}

	.form_table th,
	.form_table td{
	padding: 18px 20px;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
	line-height: 1.6;
	text-align: left;
	vertical-align: middle;
	}

	.form_table th{
	width: 240px;
	font-weight: bold;
	}

	.form_table th.is_top{
	vertical-align: top;
	padding-top: 22px;
	}

	.form_table input[type="text"],
	.form_table input[type="tel"],
	.form_table input[type="email"],
	.form_table select,
	.form_table textarea{
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--line_dark);
	border-radius: 0;
	background: var(--white);
	color: var(--navy);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.6;
	}

	.form_table input.is_short{
	max-width: 200px;
	}

	.form_table textarea{
	resize: vertical;
	}

	.form_table input:focus,
	.form_table select:focus,
	.form_table textarea:focus{
	outline: none;
	border-color: var(--navy);
	box-shadow: 0 0 0 2px rgba(0, 30, 160, .12);
	}

	.form_submit{
	margin-top: 40px;
	text-align: center;
	}

	.form_submit button{
	width: 322px;
	max-width: 100%;
	height: 60px;
	border-radius: 30px;
	background: var(--navy);
	color: var(--white);
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .14em;
	transition: opacity .4s ease;
	}

	.form_submit button:hover{
	opacity: .75;
	}


	/* ---------- よくあるご質問 ---------- */

	.faq_index{
	margin-top: 80px;
	}

	.faq_grid{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--line);
	}

	.faq_grid > li{
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	}

	.faq_grid > li:nth-child(4n){
	border-right: 0;
	}

	/* テーマの画像（余白がない）は、ほかの商品画像と大きさをそろえるため周りを空ける */
	.faq_theme_img{
	box-sizing: border-box;
	padding: 18%;
	}

	.faq_noimg{
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	color: var(--line_dark);
	font-size: 12px;
	letter-spacing: .1em;
	}

	.faq_product{
	font-size: 22px;
	font-weight: bold;
	letter-spacing: .06em;
	line-height: 1.6;
	text-align: left;
	}

	.faq_product_cat{
	display: block;
	margin-bottom: 4px;
	font-size: 13px;
	}

	.faq_sec{
	margin-top: 60px;
	}

	.faq_sec h2{
	margin-top: 0;
	}

	.qa{
	padding: 24px 0;
	border-bottom: 1px solid var(--line);
	}

	.qa dt,
	.qa dd{
	display: flex;
	gap: 0 16px;
	}

	.qa dd{
	margin-top: 14px;
	}

	.qa_mark{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	border: 1px solid var(--navy);
	border-radius: 50%;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: bold;
	line-height: 1;
	}

	.qa dt .qa_mark{
	background: var(--navy);
	color: var(--white);
	}

	.qa_txt{
	flex: 1;
	min-width: 0;
	padding-top: 3px;
	font-size: 14px;
	letter-spacing: .04em;
	line-height: 1.8;
	font-weight: 500;
	}

	.qa dt .qa_txt{
	font-weight: bold;
	}

	/* 回答（ACFのWYSIWYG）の段落 */
	.qa dd .qa_txt p + p{
	margin-top: 1em;
	}

	.faq_back{
	margin-top: 70px;
	}

	.doc_body .more_btn a{
	text-decoration: none;
	}

	.faq_contact{
	margin-top: 100px;
	padding: 70px 0 0;
	text-align: center;
	}

	.faq_contact_lead{
	font-size: 18px;
	font-weight: bold;
	letter-spacing: .08em;
	text-align: center;
	}

	.faq_contact .more_btn{
	margin-top: 30px;
	}

	.faq_contact_nums{
	display: flex;
	justify-content: center;
	gap: 0 40px;
	margin-top: 16px;
	}

	.faq_contact .contact_time{
	text-align: center;
	}


	/* ---------- サイトマップ ---------- */

	.sitemap{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 50px 40px;
	}

	.sitemap_box h2{
	margin-top: 0;
	font-size: 15px;
	}

	.sitemap_box ul{
	margin-top: 14px;
	}

	/* 見出しのないボックスは、他の列のリストの位置に揃える */
	.sitemap_box:not(:has(h2)){
	padding-top: 53px;
	}

	.sitemap_box:not(:has(h2)) ul{
	margin-top: 0;
	}

	.sitemap_box li{
	font-size: 14px;
	letter-spacing: .06em;
	line-height: 2.4;
	}

	.doc_body .sitemap_box a{
	text-decoration: none;
	}

	.sitemap_box a::before{
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin: 0 10px 2px 0;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
	}




/* ==========================================================
   タブレット（PCレイアウトの調整）
   ========================================================== */

	@media screen and (min-width: 765px) and (max-width: 1100px) {

	.g_nav > ul{
		gap: 0 22px;
	}

	.g_nav > ul > li > a{
		font-size: 11px;
		letter-spacing: .04em;
	}

	.sub_menu ul{
		gap: 0 28px;
	}

	.sub_menu a{
		font-size: 11px;
		letter-spacing: .04em;
	}

	.product_name{
		top: 18px;
		left: 18px;
		font-size: 13px;
	}

	.f_col{
		padding: 0 20px;
	}

	.footer_info{
		padding-left: 20px;
		padding-right: 20px;
	}

	.copyright{
		left: 20px;
	}

	}









/* ==========================================================
   スマートフォン
   ========================================================== */

	@media screen and (max-width: 764px) {




	img{
		width:100%;
		height:auto;
	}



	.sp_img{
		display:block!important;
	}

	.pc_img{
		display:none!important;
	}



	.sp_br{
		display: inline;
	}



	/* ---------- ヘッダー ---------- */

	.header_inner{
		height: 0;
		padding: 0;
		background: none;
	}

	.header_logo,
	.g_nav,
	.header_insta{
		display: none;
	}

	.menu_btn{
		position: fixed;
		top: 12px;
		right: 12px;
		display: block;
		width: 44px;
		height: 44px;
		color: var(--navy);
		transition: color .4s ease;
	}

	.menu_btn span{
		position: absolute;
		left: 6px;
		width: 32px;
		height: 1.5px;
		background: currentColor;
	}

	/* 2本線をボタンの上下中央に */
	.menu_btn span:nth-child(1){
		top: 18px;
	}

	.menu_btn span:nth-child(2){
		top: 25px;
	}

	/* ファーストビュー・白背景の上は紺、紺色のフッターの上だけ白 */
	#header.is_on_footer .menu_btn{
		color: var(--white);
	}



	/* ---------- ファーストビュー ---------- */

	#first_view{
		min-height: 0;
	}

	.fv_slide img{
		object-position: 63% 50%;
	}

	.fv_copy{
		top: 46%;
		left: 8.6%;
		width: 82%;
		max-width: 420px;
	}

	.fv_scroll{
		position: absolute;
		left: 50%;
		bottom: 36px;
		z-index: 2;
		display: block;
		width: 1px;
		height: 52px;
		background: var(--navy);
	}

	/* 矢じり：先端を起点に左右へ細い線を傾けて鋭角に */
	.fv_scroll::before,
	.fv_scroll::after{
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 1px;
		height: 12px;
		background: var(--navy);
		transform-origin: 50% 100%;
	}

	.fv_scroll::before{
		transform: rotate(28deg);
	}

	.fv_scroll::after{
		transform: rotate(-28deg);
	}



	/* ---------- バナー（SPデザインでは非表示） ---------- */

	#top_banner{
		display: none;
	}



	/* ---------- セクション共通 ---------- */

	.top_sec,
	#top_news{
		padding-top: 60px;
	}
	
	#top_product{
		padding-top: 35px;
		padding-bottom: 80px;
		border-top: 1px solid var(--navy);
	}
	
		
	#top_about{
		padding-top: 40px;
		border-top: 1px solid var(--navy);
	}
	
	.sec_title{
		padding-bottom: 32px;
		font-size: 17px;
		letter-spacing: .12em;
	}
	
	.sec_inner{
		max-width: none;
		padding: 0 27px;
	}
	
	.more_btn{
		margin-top: 32px;
	}
	
	.more_btn a{
		width: 180px;
		height: 38px;
		font-size: 11px;
		letter-spacing: .06em;
	}

	.more_btn a::after{
		right: 18px;
		width: 6px;
		height: 6px;
		margin-top: -3px;
	}

	.more_btn a:hover::after{
		right: 18px;
	}



	/* ---------- お知らせ ---------- */

	#top_news{
		padding-bottom: 80px;
	}

	#top_news .sec_title{
		border-bottom: 0;
	}

	.news_list{
		margin-top: 0;
		border-top-color: var(--line);
	}

	.news_list li{
		border-bottom-color: var(--line);
	}

	.news_list a{
		display: block;
		padding: 13px 0 14px;
		font-size: 12px;
		line-height: 1.8;
	}

	.news_list time{
		display: block;
		width: auto;
	}

	.news_ttl{
		padding-right: 0;
	}

	.news_ttl::after{
		width: 11px;
		height: 11px;
		margin-left: 6px;
	}



	/* ---------- 製品情報 ---------- */

	.product_list li{
		width: 50%;
	}

	.product_list li:nth-child(4n){
		border-right: 1px solid var(--line);
	}

	.product_list li:nth-child(2n){
		border-right: 0;
	}

	.product_list a{
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 75px;
		padding-left: 14px;
	}

	.product_name{
		position: static;
		font-size: 12px;
		letter-spacing: .06em;
		line-height: 1.6;
	}

	.product_list img{
		flex-shrink: 0;
		width: 80px;
	}

	#top_product .more_btn{
		margin-top: 32px;
	}



	/* ---------- BEE BRANDについて ---------- */

	#top_about .sec_title{
		padding-bottom: 32px;
		border-bottom: none;
	}

	.about_text{
		margin-top: 0;
		font-size: 12px;
		letter-spacing: .06em;
		line-height: 2.05;
	}

	#top_about .more_btn{
		margin-top: 28px;
	}



	/* ---------- フッター ---------- */

	footer{
		margin-top: 100px;
	}

	.footer_nav_pc{
		display: none;
	}

	.footer_nav_sp{
		display: block;
		padding: 36px 27px 40px;
	}

	.f_group{
		padding: 0px 0 18px;
		border-top: 1px solid var(--line_dark);
	}

	.f_group:last-child{
		padding-top: 15px;
	}

	.f_group:last-child{
		border-bottom: 0;
	}

	.f_ttl{
		margin-bottom: 10px;
		font-size: 11px;
	}

	.f_cols{
		display: flex;
	}

	.f_cols ul{
		width: 50%;
	}

	.footer_nav li{
		font-size: 11px;
		letter-spacing: .02em;
		line-height: 2;
	}

	.footer_nav .f_switch{
		margin-top: 24px;
	}

	.footer_nav .visitor_switch{
		font-size: 11px;
		letter-spacing: .02em;
	}

	.visitor_switch::after{
		width: 11px;
		height: 11px;
		margin-left: 8px;
	}

	.footer_info{
		display: block;
		padding: 40px 27px 40px;
	}

	.footer_company{
		width: auto;
	}

	.footer_logo{
		width: 198px;
	}

	.footer_desc{
		margin-top: 14px;
		font-size: 11px;
		line-height: 1.9;
	}

	.footer_insta{
		position: absolute;
		right: 27px;
		bottom: 32px;
		width: 34px;
		height: 34px;
		margin-top: 0;
	}

	.footer_address{
		width: auto;
		margin-top: 40px;
		font-size: 10px;
		line-height: 1.8;
	}

	.footer_address > div + div{
		margin-top: 14px;
	}

	.footer_address dt{
		width: 72px;
	}

	.copyright{
		position: static;
		margin-top: 40px;
		font-size: 10px;
	}



	/* ---------- SPメニュー ---------- */

	.sp_menu{
		position: fixed;
		inset: 0;
		z-index: 200;
		display: block;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		background: var(--white);
		opacity: 0;
		visibility: hidden;
		transition: opacity .4s ease, visibility .4s ease;
	}

	.sp_menu.is_open{
		opacity: 1;
		visibility: visible;
	}

	.menu_close{
		position: absolute;
		top: 12px;
		right: 12px;
		width: 44px;
		height: 44px;
		color: var(--navy);
	}

	/* ハンバーガーの線と同じ太さ・幅で、同じ位置の中央に */
	.menu_close span{
		position: absolute;
		top: 50%;
		left: 6px;
		width: 32px;
		height: 1.5px;
		margin-top: -.75px;
		background: currentColor;
	}

	.menu_close span:nth-child(1){
		transform: rotate(18deg);
	}

	.menu_close span:nth-child(2){
		transform: rotate(-18deg);
	}

	.sp_menu_inner{
		padding: 92px 36px 50px;
	}

	.sp_menu_logo{
		width: 92%;
		max-width: 360px;
	}

	.sp_menu_logo svg{
		display: block;
		width: 100%;
		height: auto;
	}

	.sp_menu_list{
		margin-top: 92px;
		border-top: 1px solid var(--navy);
	}

	.sp_menu_list li{
		border-bottom: 1px solid var(--navy);
	}

	.sp_menu_list a{
		display: block;
		padding: 0 2px;
		font-size: 15px;
		font-weight: bold;
		letter-spacing: .16em;
		line-height: 47px;
	}

	/* サブメニュー：項目を押すと下に開閉（右の＋が－に） */
	.sp_sub_btn{
		position: relative;
		display: block;
		width: 100%;
		padding: 0 50px 0 2px;
		color: var(--navy);
		font-family: inherit;
		font-size: 15px;
		font-weight: bold;
		letter-spacing: .16em;
		line-height: 47px;
		text-align: left;
	}

	.sp_sub_btn::before,
	.sp_sub_btn::after{
		content: "";
		position: absolute;
		top: 50%;
		right: 0;
		width: 12px;
		height: 1.5px;
		margin-top: -1px;
		background: currentColor;
		transition: transform .3s ease;
	}

	.sp_sub_btn::after{
		transform: rotate(90deg);
	}

	.sp_sub_btn[aria-expanded="true"]::after{
		transform: rotate(0);
	}

	.sp_sub_menu{
		padding: 0 0 12px 16px;
	}

	.sp_menu_list .sp_sub_menu li{
		border-bottom: 0;
	}

	.sp_menu_list .sp_sub_menu a{
		font-size: 13px;
		font-weight: 500;
		letter-spacing: .1em;
		line-height: 38px;
	}

	.sp_menu_switch{
		margin-top: 28px;
		padding: 0 2px;
	}

	.sp_menu_switch .visitor_switch{
		font-size: 12px;
		letter-spacing: .08em;
	}

	.sp_menu_insta{
		width: 42px;
		height: 42px;
		margin: 80px auto 0;
		color: var(--navy);
	}

	.sp_menu_insta svg{
		width: 48%;
		height: 48%;
	}



	/* ---------- お知らせ一覧（news.html） ---------- */

	.page_main{
		padding-top: 0;
	}

	.page_head{
		padding: 80px 27px 0;
	}

	.page_title{
		font-size: 20px;
		letter-spacing: .12em;
	}

	.page_category{
		width: 100%;
		max-width: 320px;
		height: 50px;
		margin-top: 36px;
		font-size: 17px;
		letter-spacing: .1em;
	}

	.news_archive{
		margin-top: 36px;
	}

	.year_select select{
		width: 96px;
		font-size: 12px;
	}

	.news_archive .news_list{
		margin-top: 18px;
	}

	.news_archive .news_list a{
		padding: 14px 0 15px;
	}

	.pager{
		gap: 0 12px;
		margin-top: 40px;
	}

	.pager a{
		width: 96px;
		height: 38px;
		font-size: 12px;
	}

	.pager svg{
		width: 30px;
	}

	.pager .pager_top::after{
		width: 6px;
		height: 6px;
	}

	#news_page footer{
		margin-top: 100px;
	}



	/* ---------- 会社概要（company.html） ---------- */

	.pc_only{
		display: none !important;
	}

	.sp_only{
		display: block !important;
	}

	.pc_br{
		display: none;
	}

	.company_mv img{
		height: 195px;
		object-fit: cover;
		object-position: 40% 50%;
	}

	.company_sec,
	.company_philosophy,
	.company_message,
	.company_logo{
		padding: 12px 24px 72px;
	}

	.company_philosophy{
		border-top: 0;
	}

	.company_label{
		position: static;
		font-size: 12px;
		text-align: center;
	}

	.company_body{
		width: auto;
		max-width: none;
	}

	.company_text p,
	p.company_text{
		font-size: 12px;
		letter-spacing: .04em;
		line-height: 25px;
	}

	.company_text p + p{
		margin-top: 14px;
	}


	/* 企業理念 */

	.philosophy_inner{
		margin-top: 52px;
		padding-left: 0;
	}

	.philosophy_copy{
		font-size: 19px;
		line-height: 1.65;
	}

	.philosophy_text{
		margin-top: 40px;
	}

	.philosophy_text p{
		font-size: 11px;
		line-height: 24px;
	}

	.philosophy_text p + p{
		margin-top: 12px;
	}


	/* 代表挨拶：SPは本文→写真の順 */

	.company_message .company_body{
		display: flex;
		flex-direction: column;
	}

	.message_img{
		order: 2;
		margin-top: 32px;
	}

	.message_text{
		margin-top: 38px;
	}

	.company_text .message_sign{
		margin-top: 22px;
	}


	/* 会社概要 */

	.outline_lead{
		margin-top: 38px;
	}

	.outline_figure{
		width: 100%;
		margin-top: 30px;
	}

	.outline_figure_sp{
		display: flex !important;
		align-items: center;
		justify-content: space-between;
	}

	.fig_box{
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36%;
		height: 61px;
		border: 1px solid var(--line_dark);
		background: #fffffc;
		font-size: 11px;
		font-weight: bold;
		letter-spacing: .06em;
		line-height: 1.7;
		text-align: center;
	}

	/* 枠と円をつなぐ線と点 */
	.fig_box::after{
		content: "";
		position: absolute;
		z-index: 99;
		top: 51%;
		width: 4px;
		height: 4px;
		margin-top: -2px;
		border-radius: 50%;
		background: var(--navy);
	}

	.fig_box:first-child::after{
		right: -2.5px;
	}

	.fig_box:last-child::after{
		left: -2.5px;
	}

	.fig_mark{
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		flex: 1;
		height: 48px;
	}

	.fig_mark::before{
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		height: 1px;
		background: var(--line_dark);
	}

	.fig_mark::after{
		content: "";
		position: absolute;
		top: 0;
		left: 50%;
		width: 48px;
		height: 48px;
		margin-left: -24px;
		border-radius: 50%;
		background: var(--navy);
	}

	.fig_mark img{
		position: relative;
		z-index: 1;
		width: 22px;
	}

	.outline_table{
		margin-top: 30px;
		font-size: 10px;
		letter-spacing: .02em;
		line-height: 20px;
	}

	.outline_table > div > dt{
		width: 68px;
	}

	.office_list > div{
		display: block;
	}

	.office_list > div > dt{
		width: auto;
	}

	.company_outline .more_btn{
		margin-top: 28px;
	}


	/* 社名とロゴマーク */

	.logo_img{
		margin-top: 20px;
	}

	.logo_text{
		margin-top: 30px;
	}



	/* ---------- ミッションステートメント（mission.html） ---------- */

	.mission_sec,
	.mission_intro,
	.mission_slogan,
	.mission_principles{
		padding: 12px 24px 76px;
	}

	.mission_sec .company_body{
		margin-top: 44px;
	}

	.mission_principles{
		padding-bottom: 115px;
	}

	.mission_intro .company_text{
		line-height: 26px;
	}

	.slogan_text{
		font-size: 20px;
		letter-spacing: .06em;
		line-height: 31px;
	}

	.vision_text p{
		font-size: 12px;
		font-weight: normal;
		letter-spacing: .04em;
		line-height: 25px;
		text-align: justify;
	}

	.vision_text p + p{
		margin-top: 14px;
	}

	.principle_list li + li{
		margin-top: 24px;
	}

	.principle_list h3{
		font-size: 13px;
		line-height: 26px;
	}

	.principle_list p{
		margin-top: 6px;
		font-size: 12px;
		letter-spacing: .04em;
		line-height: 25px;
		text-align: justify;
	}



	/* ---------- 製品情報（product.html） ---------- */

	.pc_only_cell{
		display: none;
	}

	.item_cate{
		scroll-margin-top: 0;
	}

	#general_products{
		scroll-margin-top: 30px;
	}

	.company_sec{
		scroll-margin-top: 0;
	}

	.sp_only_cell{
		display: block;
	}

	.search_ttl{
		max-width: calc(100% - 50px);
		font-size: 11px;
		line-height: 35px;
	}

	.search_ttl::after{
		margin-left: -6px;
		border-width: 6px;
		border-bottom: 0;
		border-top-width: 7px;
	}

	.product_cate{
		margin-top: 33px;
	}

	.product_cate .product_list{
		margin-top: 20px;
	}

	/* SPのカテゴリーは小さい画像に差し替え */
	.product_cate .product_list img{
		width: 62px;
		margin-right: 16px;
	}

	.product_items{
		margin-top: 62px;
		padding-bottom: 60px;
	}

	.item_group{
		margin-top: 22px;
	}

	.item_group + .item_group{
		margin-top: 70px;
	}

	.item_group_ttl{
		width: 188px;
		margin-bottom: 16px;
		font-size: 11px;
		letter-spacing: .1em;
		line-height: 28px;
	}

	/* SP：見出しは横いっぱいの帯、商品は2列 */
	.item_grid{
		grid-template-columns: repeat(2, 1fr);
	}

	.item_cate + .item_cate .item_grid{
		border-top: 0;
	}

	.item_grid > li:nth-child(4n){
		border-right: 1px solid var(--line);
	}

	.item_grid > li:nth-child(2n+1){
		border-right: 0;
	}

	/* SP：2列なので、左列で終わった時だけ空き1マス（区切り線なし） */
	.item_grid > li:last-child:nth-child(n)::before,
	.item_grid > li:last-child:nth-child(n)::after,
	.faq_grid > li:last-child:nth-child(n)::before,
	.faq_grid > li:last-child:nth-child(n)::after{
		display: none;
	}

	/* FAQは見出しがないので左列＝奇数番目 */
	.faq_grid > li:last-child:nth-child(2n+1)::before{
		display: block;
		width: calc(100% + 2px);
	}

	.item_grid > .item:last-child:nth-child(2n)::before{
		display: block;
		width: calc(100% + 2px);
	}

	.item_grid > .item_head{
		grid-column: 1 / -1;
		border-right: 0;
		background: none;
	}

	.item_head a{
		padding: 8px 0;
	}

	.item_head_ttl{
		padding-right: 0;
		font-size: 11px;
		text-align: center;
	}

	.item_head sup{
		font-size: 7px;
		vertical-align: 4px;
	}

	.item_head a::after{
		display: none;
	}

	.item a{
		padding-bottom: 14px;
	}

	.item_txt{
		min-height: 36px;
		padding: 0 12px;
		font-size: 9px;
		letter-spacing: .02em;
		line-height: 1.9;
	}



	/* ---------- 会社沿革（history.html） ---------- */

	.history_mv img{
		aspect-ratio: auto;
	}

	.history_sec{
		padding-bottom: 60px;
	}

	.history_lead{
		margin-top: 38px;
	}

	.timeline{
		margin-top: 40px;
		padding: 0;
	}

	.timeline::before,
	.tl_main::before,
	.tl_main::after{
		display: none;
	}

	.tl_group + .tl_group{
		margin-top: 50px;
	}

	.tl_item + .tl_item{
		margin-top: 30px;
	}

	/* 年代は横いっぱいの帯 */
	.tl_decade,
	.tl_decade.is_before,
	.tl_group:has(.tl_item.is_box:first-child) .tl_decade:not(.is_before){
		position: static;
		margin: 0 -24px 46px;
		background: var(--footer_bg);
		font-size: 34px;
		line-height: 30px;
		text-align: center;
	}

	.tl_item,
	.tl_item.is_box{
		display: block;
		margin-left: 0;
		padding: 0;
		background: none;
	}

	/* 年＋右へ伸びる線 */
	.tl_year{
		display: flex;
		align-items: center;
		gap: 0 8px;
		width: auto;
		font-size: 16px;
		line-height: 22px;
	}

	.tl_year::after{
		content: "";
		flex: 1;
		height: 1px;
		background: var(--line);
	}

	.tl_text{
		margin-top: 4px;
		font-size: 12px;
		letter-spacing: .02em;
		line-height: 20px;
	}

	.tl_img,
	.tl_item.is_box .tl_img{
		flex-direction: column;
		align-items: center;
		max-width: none;
		margin: 20px auto 0;
		padding-left: 0;
	}

	.tl_body{
		display: flex;
		flex-direction: column;
	}

	/* SPはボタンを画像の下・中央に */
	.tl_item.is_box{
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.tl_main{
		display: block;
	}

	.tl_item.is_box .tl_main,
	.tl_item.is_box .tl_body{
		display: contents;
	}

	.tl_item.is_box .tl_img{
		order: 3;
	}

	.story_btn{
		order: 4;
		margin-top: 20px;
		text-align: center;
	}

	.story_btn a{
		width: 146px;
		height: 36px;
		padding-left: 18px;
		border-radius: 33px;
		font-size: 11px;
	}

	.story_btn a::after{
		right: 16px;
	}



	/* ---------- 医療関係者確認（intro.html） ---------- */

	.intro_gate{
		padding: 17px;
	}

	.intro_gate_inner{
		padding: 30px 33px;
	}

	.intro_logo{
		width: 276px;
	}

	.intro_lead{
		margin-top: 68px;
		font-size: 14px;
		letter-spacing: .04em;
		line-height: 25.5px;
	}

	.intro_note{
		margin-top: 24px;
		font-size: 12px;
		letter-spacing: .08em;
		line-height: 23px;
	}

	.intro_question{
		margin-top: 52px;
		font-size: 14px;
		letter-spacing: .06em;
	}

	.intro_btns{
		gap: 0 9px;
		margin-top: 16px;
	}

	.intro_yes,
	.intro_no{
		height: 48px;
		border-width: 1px;
		font-size: 16px;
		letter-spacing: .1em;
	}

	.intro_no_note{
		margin: 8px 0px 0 -15px;
		font-size: 10px;
		letter-spacing: .02em;
		text-align: right;
		white-space: nowrap;
	}



	/* ---------- 会社沿革：ストーリー（ポップアップ） ---------- */

	.story_modal{
		padding: 60px 21px 40px;
	}

	/* SPは 画像→タイトル→本文→ボタン の順 */
	.story_modal_box{
		display: flex;
		flex-direction: column;
		padding: 32px 31px 40px;
	}

	.story_img{
		flex-shrink: 0;
	}

	.story_text{
		order: 2;
	}

	.story_link{
		order: 3;
	}

	.story_close_btn{
		order: 4;
	}

	/* SPは下の「閉じる」ボタンで閉じる */
	.story_close{
		display: none;
	}

	.story_img{
		height: 160px;
	}

	.story_head{
		display: contents;
	}

	.story_ttl{
		margin-top: 30px;
	}

	.story_cat{
		font-size: 12px;
	}

	.story_name{
		margin-top: 2px;
		font-size: 12.5px;
		letter-spacing: 0;
		line-height: 1.6;
	}

	.story_year{
		margin-top: 0;
		font-size: 13px;
		font-weight: bold;
	}

	.story_text{
		margin-top: 22px;
		font-size: 13px;
		line-height: 23.5px;
		text-align: justify;
	}

	.story_link{
		margin-top: 26px;
		text-align: center;
	}

	.story_link a,
	.story_close_btn button{
		width: 188px;
		height: 35px;
		padding-right: 0;
		font-size: 11px;
	}

	.story_close_btn{
		display: block;
		margin-top: 8px;
		text-align: center;
	}

	.story_close_btn button{
		background: var(--white);
		color: var(--navy);
		font-weight: normal;
	}



	/* ---------- 製品詳細（product_single01.html） ---------- */

	.breadcrumb{
		padding: 76px 24px 0;
	}

	.breadcrumb ol{
		font-size: 11px;
	}

	.breadcrumb li + li::before{
		margin: 0 6px;
	}

	.ps_detail{
		display: block;
		margin-top: 30px;
	}

	.ps_gallery,
	.ps_info{
		width: auto;
	}

	.ps_gallery{
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}

	.fade_slider{
		padding: 30px 50px 28px;
	}

	.fade_slider_arrow.is_prev{
		left: 6px;
	}

	.fade_slider_arrow.is_next{
		right: 6px;
	}

	.fade_slider_arrow::before{
		width: 11px;
		height: 11px;
	}

	.fade_slider_dots{
		margin-top: 20px;
	}

	.ps_info{
		padding-bottom: 20px;
	}

	.ps_summary{
		padding: 36px 24px 36px;
	}

	.ps_type{
		font-size: 12px;
	}

	.ps_name{
		margin-top: 10px;
		font-size: 15px;
		letter-spacing: .02em;
		line-height: 1.7;
	}

	.ps_text{
		margin-top: 24px;
	}

	.ps_text p{
		font-size: 12px;
		font-weight: normal;
		letter-spacing: .04em;
		line-height: 23px;
	}

	.ps_story_btn{
		margin-top: 26px;
		text-align: center;
	}

	.ps_spec{
		padding: 28px 24px;
		font-size: 12px;
	}

	/* SPは一番長い項目名に合わせて2列に */
	.ps_spec{
		display: grid;
		grid-template-columns: max-content 1fr;
		column-gap: 14px;
	}

	.ps_spec > div{
		display: contents;
	}

	.ps_spec dt{
		min-width: 0;
		padding-right: 0;
	}

	.ps_menu_ttl{
		height: 50px;
		padding: 0 56px 0 24px;
		font-size: 12px;
	}

	.ps_menu_ttl.is_link::after,
	button.ps_menu_ttl::after{
		right: 26px;
		width: 8px;
		height: 8px;
	}

	.ps_acc_body{
		padding: 0 24px 20px;
	}

	.ps_doc_list li,
	.ps_code{
		font-size: 12px;
	}

	.ps_code dt{
		width: 100px;
	}

	.op_title,
	.op_detail,
	.op_related{
		max-width: calc(100% - 48px);
	}

	.op_title{
		margin-top: 30px;
		padding-bottom: 18px;
	}

	.op_name{
		font-size: 19px;
	}

	.op_detail{
		margin-top: 30px;
	}

	.op_use{
		display: block;
	}

	.op_gallery{
		width: auto;
	}

	.op_thumbs button{
		width: 64px;
	}

	.op_spec{
		margin-top: 24px;
		padding: 18px 20px;
		font-size: 13px;
	}

	.op_text,
	.op_note,
	.op_table{
		font-size: 13px;
	}

	.op_text .op_lead{
		font-size: 15px;
	}

	.op_btn{
		text-align: center;
	}

	.op_btn a{
		min-width: 0;
		width: 100%;
	}

	.op_detail .m-bt a{
		min-width: 0;
		width: 100%;
	}

	.op_block{
		margin-top: 50px;
	}

	.op_ttl{
		font-size: 16px;
	}

	.op_code_name{
		margin-top: 24px;
		font-size: 14px;
	}

	.op_code_name + .op_table{
		margin-top: 10px;
	}

	.op_table th,
	.op_table td{
		padding: 10px 12px;
	}

	.op_related{
		margin-top: 60px;
		padding-bottom: 80px;
	}

	.op_related_list{
		grid-template-columns: repeat(2, 1fr);
		gap: 24px 16px;
	}



	/* ---------- 文章ページ共通 ---------- */

	.doc_body{
		margin-top: 40px;
	}

	.doc_body h2{
		margin-top: 44px;
		padding-bottom: 10px;
		font-size: 15px;
	}

	.doc_body h3{
		margin-top: 28px;
		font-size: 13px;
	}

	.doc_txt,
	.doc_txt p,
	.doc_body > .sec_inner > p{
		margin-top: 16px;
		font-size: 12px;
		line-height: 1.9;
	}

	.doc_txt p{
		margin-top: 0;
	}

	.doc_txt th,
	.doc_txt td{
		display: block;
		width: 100%;
		padding: 10px 14px;
		font-size: 12px;
	}

	.doc_txt th{
		border-bottom: 0;
	}

	.doc_body .doc_link_box a{
		padding: 14px 18px;
		font-size: 12px;
	}

	.doc_sign p{
		font-size: 12px;
	}

	.gs_item dl{
		font-size: 12px;
	}

	.gs_item dl > div{
		display: block;
	}

	.gs_item dt{
		width: auto;
		padding: 8px 14px;
	}

	.gs_item dd{
		padding: 12px 14px;
	}

	.contact_menu{
		flex-direction: column;
		gap: 16px 0;
	}

	.doc_body .contact_menu a{
		min-height: 110px;
		padding: 20px 50px 20px 20px;
	}

	.doc_body .contact_menu a::after{
		right: 20px;
	}

	.contact_menu_ttl{
		font-size: 14px;
	}

	.contact_num,
	.doc_body > .sec_inner > .contact_num{
		font-size: 24px;
	}

	.contact_num span{
		font-size: 12px;
	}

	.contact_time{
		font-size: 11px;
	}

	.form_policy{
		padding: 18px 16px;
	}

	.form_policy p,
	.form_check{
		font-size: 12px;
	}

	.form_table th,
	.form_table td{
		display: block;
		width: 100%;
		padding: 0;
		border-bottom: 0;
		font-size: 12px;
	}

	.form_table tr{
		display: block;
		padding: 16px 0;
		border-bottom: 1px solid var(--line);
	}

	.form_table th,
	.form_table th.is_top{
		padding: 0 0 8px;
	}

	.form_table input[type="text"],
	.form_table input[type="tel"],
	.form_table input[type="email"],
	.form_table select,
	.form_table textarea{
		font-size: 16px;
	}

	.form_checks{
		gap: 8px 20px;
	}

	.form_submit button{
		width: 240px;
		height: 48px;
		font-size: 13px;
	}

	.faq_index{
		margin-top: 40px;
	}

	.faq_grid{
		grid-template-columns: repeat(2, 1fr);
	}

	.faq_grid > li:nth-child(4n){
		border-right: 1px solid var(--line);
	}

	.faq_grid > li:nth-child(2n){
		border-right: 0;
	}

	.faq_grid .item a{
		display: flex;
		flex-direction: column;
		height: 100%;
		padding: 0 0 14px;
	}

	.faq_grid .item_img img{
		width: 100%;
		margin: 0;
	}

	.faq_product{
		font-size: 16px;
	}

	.faq_product_cat{
		font-size: 11px;
	}

	.faq_sec{
		margin-top: 40px;
	}

	.qa{
		padding: 18px 0;
	}

	.qa dt,
	.qa dd{
		gap: 0 12px;
	}

	.qa_mark{
		width: 24px;
		height: 24px;
		font-size: 12px;
	}

	.qa_txt{
		padding-top: 1px;
		font-size: 12px;
	}

	.faq_back{
		margin-top: 44px;
	}

	.faq_contact{
		margin-top: 60px;
		padding-top: 44px;
	}

	.faq_contact_lead{
		font-size: 13px;
	}

	.faq_contact_nums{
		flex-direction: column;
		align-items: center;
		gap: 0;
		margin-top: 6px;
	}

	.faq_contact .contact_num{
		margin-top: 14px;
	}

	.sitemap{
		grid-template-columns: 1fr;
		gap: 34px 0;
	}

	.sitemap_box:not(:has(h2)){
		padding-top: 0;
	}

	.sitemap_box li{
		font-size: 12px;
		line-height: 2.3;
	}



}



/* ==========================================================
   お知らせ詳細（single-news.php）
   ========================================================== */

	/* リンクなしのお知らせ */
	.news_list a:not([href]){
	cursor: default;
	}

	.news_list a:not([href]):hover{
	opacity: 1;
	}

	.news_detail{
	margin-top: 108px;
	}

	.news_detail_head{
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
	}

	.news_detail_head time{
	display: block;
	font-size: 12px;
	font-weight: bold;
	letter-spacing: .08em;
	}

	.news_detail_ttl{
	margin-top: 12px;
	font-size: 20px;
	font-weight: bold;
	letter-spacing: .08em;
	line-height: 1.6;
	}

	.news_detail_txt{
	margin-top: 40px;
	}

	.news_detail_txt img{
	max-width: 100%;
	height: auto;
	}

	.news_back{
	margin-top: 80px;
	}

	.news_back a{
	text-decoration: none;
	}


	@media screen and (max-width: 764px) {

	.news_detail{
		margin-top: 80px;
	}

	.news_detail_head{
		padding-bottom: 16px;
	}

	.news_detail_head time{
		font-size: 11px;
	}

	.news_detail_ttl{
		margin-top: 8px;
		font-size: 16px;
	}

	.news_detail_txt{
		margin-top: 24px;
	}

	.news_back{
		margin-top: 50px;
	}

	}



/* ==========================================================
   製品資料・その他ツール（page-download.php）
   ========================================================== */

	.download_body .dl_item{
	margin-top: 32px;
	}

	.download_body .dl_item h3{
	margin-top: 0;
	}

	.dl_list{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin-top: 14px;
	}

	.doc_body .dl_list a{
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
	min-height: 54px;
	padding: 12px 44px 12px 18px;
	border: 1px solid var(--navy);
	font-size: 13px;
	font-weight: bold;
	letter-spacing: .04em;
	line-height: 1.5;
	text-decoration: none;
	}

	/* 外部リンクアイコン */
	.doc_body .dl_list a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 18px;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23001ea0' stroke-width='1'%3E%3Cpath d='M5 1.5H1.5v9h9V7'/%3E%3Cpath d='M7 .5h4.5V5M11.5.5 5.5 6.5'/%3E%3C/svg%3E") no-repeat center / contain;
	}

	.doc_body .dl_list a:hover{
	background: var(--navy);
	color: var(--white);
	opacity: 1;
	}

	.doc_body .dl_list a:hover::after{
	filter: brightness(0) invert(1);
	}


	@media screen and (max-width: 764px) {

	.download_body .dl_item{
		margin-top: 24px;
	}

	.dl_list{
		grid-template-columns: 1fr;
		gap: 8px;
		margin-top: 10px;
	}

	.doc_body .dl_list a{
		min-height: 46px;
		padding: 10px 40px 10px 16px;
		font-size: 12px;
	}

	}




/* ==========================================================
   医療関係者確認：「いいえ」選択時は一般向けメニュー
   ========================================================== */

	html.is_general .medical_only{
	display: none !important;
	}

	html:not(.is_general) .general_only{
	display: none !important;
	}

	/* 「いいえ」の時は製品情報のサブメニューなし（他の単独メニューと同じ挙動） */
	html.is_general .product_nav > .sub_menu{
	display: none;
	}

	html.is_general .product_nav:not(.is_current):hover > a::after,
	html.is_general .product_nav:not(.is_current):focus-within > a::after{
	opacity: 0;
	}

	html.is_general .product_nav > a:hover{
	opacity: .6;
	}




/* ==========================================================
   お問い合わせフォーム（Contact Form 7）
   ========================================================== */

	.contact_form .wpcf7-form-control-wrap{
	display: block;
	}

	.form_policy .wpcf7-form-control-wrap{
	margin-top: 10px;
	}

	.contact_form .wpcf7-checkbox{
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	padding-top: 4px;
	}

	.contact_form .wpcf7-list-item{
	margin: 0;
	}

	.contact_form .wpcf7-list-item label{
	display: inline-flex;
	align-items: center;
	gap: 0 8px;
	font-size: 14px;
	line-height: 1.6;
	cursor: pointer;
	}

	.contact_form .wpcf7-list-item input{
	width: 18px;
	height: 18px;
	accent-color: var(--navy);
	}

	.form_submit .wpcf7-submit{
	width: 322px;
	max-width: 100%;
	height: 60px;
	border: 0;
	border-radius: 30px;
	background: var(--navy);
	color: var(--white);
	font-family: inherit;
	font-size: 15px;
	font-weight: bold;
	letter-spacing: .14em;
	cursor: pointer;
	transition: opacity .4s ease;
	-webkit-appearance: none;
	}

	.form_submit .wpcf7-submit:hover{
	opacity: .75;
	}

	/* 同意にチェックするまで送信不可 */
	.form_submit .wpcf7-submit:disabled{
	opacity: .3;
	cursor: default;
	}

	.form_submit .wpcf7-spinner{
	display: block;
	margin: 12px auto 0;
	}

	.contact_form .wpcf7-not-valid-tip{
	display: block;
	margin-top: 6px;
	color: #d6203e;
	font-size: 12px;
	}

	.contact_form .wpcf7 form .wpcf7-response-output{
	margin: 24px 0 0;
	padding: 14px 18px;
	font-size: 13px;
	line-height: 1.7;
	text-align: center;
	}



/* ==========================================================
   お問い合わせ完了（page-thanks.php）
   ========================================================== */

	.thanks_body .doc_txt,
	.thanks_body .doc_txt p{
	text-align: left;
	}

	.thanks_body .doc_txt p + p{
	margin-top: 1.6em;
	}

	.thanks_box{
	margin-top: 32px;
	padding: 24px 28px;
	border: 1px solid var(--line_dark);
	}

	.thanks_box p{
	font-size: 14px;
	line-height: 2;
	}

	.thanks_back{
	margin-top: 60px;
	text-align: center;
	}


	@media screen and (max-width: 764px) {

	.contact_form .wpcf7-checkbox{
		gap: 8px 20px;
	}

	.contact_form .wpcf7-list-item label{
		font-size: 12px;
	}

	.form_submit .wpcf7-submit{
		width: 240px;
		height: 48px;
		font-size: 13px;
	}

	.thanks_box{
		margin-top: 24px;
		padding: 18px 16px;
	}

	.thanks_box p{
		font-size: 12px;
	}

	.thanks_back{
		margin-top: 40px;
	}

	}
