/*
Theme Name: Wada Calcium
*/


/* =========================================
   Reset CSS（軽量・実務用）
========================================= */

/* box-sizing */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* margin / padding リセット */
html, body,
h1, h2, h3, h4, h5, h6,
p,
ul, ol,
dl, dt, dd,
figure,
blockquote {
  margin: 0;
  padding: 0;
}

/* リスト */
ul, ol {
  list-style: none;
}

/* 画像 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  border: 0;
}

/* リンク */
a {
  text-decoration: none;
  color: inherit;
}

/* フォーム */
button,
input,
textarea,
select {
  font: inherit;
  border: none;
  outline: none;
  background: none;
}

/* テーブル */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* 見出し */
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

/* 強調 */
strong, b {
  font-weight: bold;
}

/* ボタン */
button {
  cursor: pointer;
}

/* テキスト調整 */
html {
  -webkit-text-size-adjust: 100%;
}


/* =========================
   Common
========================= */

html{
	color:#001352;
	scroll-behavior: smooth;
}


body {
  font-family:
    "M PLUS Rounded 1c",
    "Quicksand",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    sans-serif;
	font-weight:500;
}

main{
	overflow-x:clip;
}

a{
	color:#001352;
}

.container {
  width: min(1200px, calc(100% - 32px));
  margin: 0 auto;
}

.container--fullwidth--right {
	width:100vw;
	margin:0 calc(50% - 50vw) 0 0;
}

br.pc{
	display:inline;
}

br.sp{
	display:none;
}

@media screen and (max-width:980px){
	br.pc{
	display:none;
	}
	br.sp{
		display:inline;
	}
}


/* =========================
   Loading
========================= */
/* ローディング画面 */
#loading {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}

#loading.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loading__inner {
  text-align: center;
}

.loading__logo {
  font-size: 1.4rem;
  letter-spacing: 0.12em;
  color: #4A4642;
  margin-bottom: 18px;
  font-family: "Noto Serif JP", serif;
}

.loading__bar {
  width: 180px;
  height: 8px;
	border-radius:100vh;
  background: rgba(0, 147, 255, 0.15);
  overflow: hidden;
}

.loading__bar span {
  display: block;
  height: 100%;
  width: 0%;
  background: rgba(0, 147, 255, 1);
  transition: width 0.2s ease;
}
@keyframes loadingBar {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(260%);
  }
}

body.is-loading {
  overflow: hidden;
}


/* =========================
   Common - Sub Page
========================= */

/* ----------------------------------------
   Page Header
---------------------------------------- */
.page-header {
  position: relative;
  height: 450px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* 背景画像 */
.page-header__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.page-header__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 画像がない場合 */
.page-header__bg--fallback {
  background: #f8f6f2;
}

/* 内側 */
.page-header__inner {
  position: relative;
  z-index: 2;
}

@media screen and (max-width:980px){
	.page-header {
	  height: 240px;
	}
}

/* ----------------------------------------
   Page Intro
---------------------------------------- */
section#intro {
	padding:3rem 0 3rem;
}

section#intro .container--flex{
	display:flex;
	gap:1rem;
	flex-wrap:wrap;
}
section#intro .container--flex .flex--item{
	width:calc(50% - 0.5rem);
}


section#intro .section__title--en{
	font-family:Quicksand, sans-serif;
	font-weight:bold;
	font-size:4rem;
	color:#001352;
	display:block;
	letter-spacing:0.05em;
}

section#intro .section__title--jp{
	display:block;
	color:#0093FF;
	font-size:1.25rem;
	font-weight:600;
}

section#intro .intro__lead{
	color:#0093FF;
	font-size:1.25rem;
	font-weight:bold;
	margin:0 0 1rem;
	line-height:1.8;
}

section#intro .intro__description{
	font-size:1rem;
	line-height:2;
}

@media screen and (max-width:980px){
	section#intro{
		padding:1.5rem 0;
	}
	section#intro .container--flex{
		flex-direction:column;
		gap:2.5rem;
	}
	section#intro .container--flex .flex--item{
		width:100%!important;
	}
	section#intro .section__title--en{
		font-size:2.5rem;
	}

	section#intro .section__title--jp{
		font-size:1.25rem;	
	}
	section#intro .intro__lead{
		font-size:1.15rem;
	line-height:1.6;
	}
	section#intro .intro__description{
		line-height:1.8;
	}
}

/* =========================
   Header
========================= */
.site-header {
  position: fixed;
  margin:0;
	top:1.5rem;
  left: 0;
  width: 100%;
  z-index: 2000;
  transition:
    top 0.3s ease,
    padding 0.3s ease,
    transform 0.3s ease;
}

body.home .site-header{
	transform:translate(0, -200%);
}

body.home .site-header.is-scrolled{
	transform:translate(0, 0);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
	padding: 1rem 1.5rem;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid #fff;
  border-radius: 100vh;
  box-shadow: 0 6px 20px rgba(0, 19, 82, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition:
    padding 0.3s ease,
    border-radius 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
  pointer-events: auto;
	z-index:1202;
}

.site-header.is-scrolled {
/*  margin-top: 10px;*/
	top:0.75rem;
}

body.home .site-header__inner,
.site-header.is-scrolled .site-header__inner {
  padding: 0.75rem 0.75rem;
  box-shadow: 0 4px 14px rgba(0, 19, 82, 0.08);
  background: rgba(255, 255, 255, 0.9);
}


.site-header {
  position: fixed;
  left: 0;
  width: 100%;
  z-index: 2000;
}

.site-header__inner {
  position: relative;
  z-index: 1202;
}

.site-header__toggle {
  display: none;
  appearance: none;
  border: 0;
  background: transparent;
  width: 48px;
  height: 48px;
  padding: 0;
  margin: 0;
  cursor: pointer;
  position: absolute;
  right: 1rem;
  z-index: 1203;
}

@media (max-width: 980px) {
  .site-header__toggle {
    display: block;
  }

}
/* =========================
   Logo
========================= */
.site-header__logo {
  flex: 0 0 auto;
}

.site-header__title {
  margin: 0;
  line-height: 1;
}

.site-header__title a {
  display: inline-block;
}

.site-header__title img {
  display: block;
	width:140px;
	height:auto;
	padding:0 1rem;
  transition: height 0.3s ease;
}

.site-header.is-scrolled .site-header__title img {
/*  height: 2rem;*/
	width:120px;
}

/* =========================
   Global Nav
========================= */
.site-header__nav {
  flex: 1 1 auto;
  display: flex;
  justify-content: flex-end;
  min-width: 0;
	z-index:1200;
}

.nav-menu {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-menu > li {
  margin: 0;
  padding: 0;
}

.nav-menu > li > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height:2.25rem;
  padding: 0 0.75rem;
  border-radius: 100vh;
  color: #001352;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.04em;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease,
    opacity 0.3s ease;
}

.nav-menu > li > a:hover {
  background: rgba(0, 147, 255, 0.08);
  color: #001352;
}

.nav-menu > li.current-menu-item > a,
.nav-menu > li.current_page_item > a {

}


/* =========================
   Inquiry Button
========================= */
.nav-menu > li.inquiry > a {
  background: #0093FF;
  color: #fff;
  padding: 0 1.5rem;
  box-shadow: 0 6px 16px rgba(0, 147, 255, 0.2);
}

.nav-menu > li.inquiry > a:hover {
  background: #007fe0;
  color: #fff;
  transform: translateY(-1px);
}

/* =========================
   Toggle Button
========================= */
.site-header__toggle {
  display: none;
  appearance: none;
  border: 0;
  background: transparent;
  width: 48px;
  height: 48px;
  padding: 0;
  margin: 0;
  cursor: pointer;
  position: relative;
  z-index: 1102;
  flex: 0 0 auto;
	position:absolute;
	right:1rem;
}

.site-header__toggle span {
  position: absolute;
  left: 12px;
  width: 24px;
  height: 2px;
  border-radius: 999px;
  background: #001352;
  transition:
    transform 0.3s ease,
    opacity 0.3s ease,
    top 0.3s ease;
}

.site-header__toggle span:nth-child(1) {
  top: 16px;
}

.site-header__toggle span:nth-child(2) {
  top: 23px;
}

.site-header__toggle span:nth-child(3) {
  top: 30px;
}

.site-header.is-open .site-header__toggle span:nth-child(1) {
  top: 23px;
  transform: rotate(45deg);
}

.site-header.is-open .site-header__toggle span:nth-child(2) {
  opacity: 0;
}

.site-header.is-open .site-header__toggle span:nth-child(3) {
  top: 23px;
  transform: rotate(-45deg);
}

/* =========================
   Mobile Drawer
========================= */
@media (max-width: 980px) {

  .site-header .container {
    width:100%;
	  margin-right:0;
	  margin-left:0;
	  padding-right:1rem;
	  padding-left:1rem;
  }

  .site-header__inner {
    padding: 1rem 2.5rem;
    gap: 0.75rem;
  }

  .site-header__title img {
	max-width:120px;
  }
	

  .site-header.is-scrolled .site-header__title img {
    height: 30px;
  }

  .site-header__toggle {
    display: block;
  }

/*
  .site-header__nav::before {
    content: "";
    position: fixed;
    inset: 0;
    right: auto;
    width: calc(100vw - min(86vw, 360px));
    background: rgba(0, 19, 82, 0.28);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
  }
*/
  .site-header.is-open .site-header__nav::before {
    opacity: 1;
    pointer-events: auto;
  }

  .nav-menu {
    display: block;
  }

  .nav-menu > li + li {
    margin-top: 6px;
  }

  .nav-menu > li > a {
    display: flex;
    justify-content: flex-start;
    min-height: 56px;
    padding: 0 18px;
    border-radius: 100vh;
    background: #fff;
    border: 1px solid rgba(0, 19, 82, 0.08);
    box-shadow: 0 4px 12px rgba(0, 19, 82, 0.04);
    font-size: 15px;
  }

  .nav-menu > li.current-menu-item > a,
  .nav-menu > li.current_page_item > a {
    background: rgba(0, 147, 255, 0.06);
  }

  .nav-menu > li.inquiry {
    margin-top: 14px;
  }

  .nav-menu > li.inquiry > a {
    justify-content: center;
    min-height: 58px;
    border: 0;
  }
}




/* =========================
   Desktop only
========================= */
@media (min-width: 981px) {
  .site-header__nav::before {
    content: none;
  }
}

/* =========================
   Optional body state
========================= */
body.drawer-open {
  overflow: hidden;
}



/* 初期状態 */
#global-nav--header {
	display: block;
}

#global-nav-drawer {
	display: none;
}

/* SPだけドロワーに切り替え */
@media (max-width: 980px) {

	#global-nav-header {
		display: none;
	}

	#global-nav-drawer {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: linear-gradient(#E3F7FF, #ffffff);
		z-index: 999;
		opacity:0;
		pointer-events:none;
		transition: all 0.3s ease;
		padding:7rem 1rem 2rem;
	}
	#global-nav-drawer .nav-menu{
		transform:translate(0, 1.5rem);
		transition:all 0.3s ease 0s;
		opacity:0;
	}

	body.drawer-open #global-nav-drawer {
		opacity:1;
		pointer-events:auto;
		transition: all 0.3s ease;
	}
	body.drawer-open #global-nav-drawer .nav-menu{
		transform:translate(0, 0);
		opacity:1;
		transition:all 0.3s ease 0.1s;

	}
}

/* ========================================
 * Footer
 * ======================================== */

footer{
	padding:3.5rem 0 1.5rem;
	background:#DBF5FF url(assets/images/common/footer__bg.svg?202605) 100% 100% / contain no-repeat;
}

footer .container--flex.top{
	display:flex;
	flex-wrap:wrap;
	gap:1.5rem;
	margin:0 0 3.5rem;
}


footer .container--flex.top .flex--item{
	width:calc(33.333333% - 1rem);

}
.footer__logo{
	width:240px;
	max-width:100%;
	margin:0 0 2rem;
}

.footer__name{
	font-size:1.1rem;
	margin:0 0 1.5rem;
	font-weight:600;
}

.footer__address{
	font-size:0.9rem;
}

.footer__map{
	font-family:Quicksand, sans-serif;
	font-weight:bold;
	margin:0 0 3rem;
}

.footer__map a{
	text-decoration:underline;
}

ul.footer__nav--social{
	display:flex;
	gap:1.5rem;
	flex-wrap:wrap;
}

ul.footer__nav li{
	margin:0 0 1rem;
}

ul.footer__nav li a{
	font-weight:600;
}

footer .container--flex.bottom{
	width:100%;
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:1.5rem;
	margin:0 0 0rem;
}


footer .container--flex.bottom .flex--item:nth-child(2){
	width:calc(50% - 1rem);
	display:flex;
	align-items:center;
}

.site-footer__copyright{
	font-family:Quicksand, sans-serif;
	text-align:center;
	font-weight:bold;
	font-size:0.85rem;
	text-transform:uppercase;
}

ul.footer__nav--rule{
	display:flex;
	gap:0;
	flex-wrap:wrap;
}

ul.footer__nav--rule li a{
	font-size:0.75rem;
	padding:0.15rem 0rem;
}

ul.footer__nav--rule li:first-child{
	border-right:1px solid rgba(0, 19, 82, 0.5);
	margin-right:0.5rem;
	padding-right:0.5rem;
}

.button--pagetop a{
	position:fixed;
	display:block;
	color:#0093FF;
	right:1rem;
	bottom:1rem;
	width:5rem;
	z-index:99;
}


.button--pagetop a img{
	max-width:100%;
	display:block;
	width:120px;
}

@media screen and (max-width:980px){
	footer{
		padding:3.5rem 0 7.5rem;
		background-size:60% auto;
		background-position:105% 105%;
	}

	footer .container--flex.top{
		gap:0;
		margin:0 0 1.5rem;
	}
	footer .container--flex.top .flex--item{
		width:100%;
	}
		footer .container--flex.top .flex--item:nth-child(2),
		footer .container--flex.top .flex--item:nth-child(3){
		width:50%;
	}
	footer .container--flex.top .flex--item:nth-child(1){
		
		margin:0 0 2.5rem;
	}
	.footer__logo{
		margin-right:auto;
		margin-left:auto;
		margin-bottom:3.5rem;
	}
	.footer__name{
		margin:0 0 0.75rem;
	}
	ul.footer__nav li a{
		font-size:0.9rem;
	}
	ul.footer__nav--social{
		
	}
	footer .container--flex.bottom .flex--item{
		width:100%!important;
		justify-content:center;
	}
	.button--pagetop a{
		right:auto;
		left:1rem;
	}
	footer .container--flex.bottom{
		flex-direction:column-reverse;
		align-items:flex-start;
		justify-content:flex-start;
	}
	footer .container--flex.bottom .flex--item{
		justify-content:flex-start;
	}
	.site-footer__copyright{
		text-align:left;
		font-size:0.55rem;
		line-height:1.7;
	}
	footer .container--flex.bottom{
		gap:0.75rem;
	}
}

/* =========================
   Footer 上部　共通コンテンツ
========================= */

section#bottom{
	padding:3.5rem 0;
}

.contact__container{
	background-color:#0093FF;
	border-radius:1.5rem;
	padding:2.0rem 4.5rem;
	margin:0 0 2.5rem;
}
.contact__container .section__title{
	font-family:"Quicksand", sans-serif;
	font-size:4rem;
	font-weight:600;
	letter-spacing:0.05em;
	color:#fff;
	margin:0 0 1rem;
}

.contact__container .container--flex.form{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	align-items:center;
	margin:0 0 0rem;
}

.contact__container .container--flex.form .flex--item:nth-child(1){
	width:calc(70% - 1.5rem);
	color:#fff;
}

.contact__container .container--flex.form .flex--item:nth-child(2){
	width:calc(30% - 1.5rem);
}

.contact__container .container--flex.form .flex--item:nth-child(2) a{
	background-color:#fff;
	padding:1rem 2rem;
	line-height:1;
	color:#0093FF;
	border-radius:100vh;
	display:block;
	text-align:center;
	font-size:1.25rem;
	position:relative;
}

.contact__container .container--flex.form .flex--item:nth-child(2) a:after{
	content:'';
	position:absolute;
	width:1rem;
	height:1rem;
	background-color:#0093FF;
	border-radius:100vh;
	display:block;
	top:1.125rem;
	right:1rem;
}


.contact__container .contact__phone--container{
	background-color:#DBF5FF;
	border-radius:100vh;
	padding:1.5rem 2.5rem;
}

.contact__container .contact__phone--container .container--flex.phone{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	justify-content:space-between;
	align-items:center;
}

.contact__container .contact__phone--container .container--flex.phone .flex--item:nth-child(1){
	font-size:1.5rem;
	color:#0093FF;
}


.contact__container .contact__phone--container .container--flex.phone .flex--item:nth-child(2){
	color:#0093FF;
}


/* リンクバナー  */

.link__container{
	margin:0 0 3.5rem;
}

.link__container .container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:2.4rem;
}

.link__container .container--flex .flex--item{
	width:calc(33.333333% - 1.6rem);
}

.link__container .container--flex .flex--item a{
	border-radius:1.25rem;
	border:2px solid #FF8B00;
	display:block;
	overflow:hidden;
}

@media screen and (max-width:980px){
	.contact__container{
		padding:1.75rem;
	}
	.contact__container .section__title{
		text-align:center;
		font-size:2.5rem;
		margin:0 0 1rem;
	}
	.contact__container .container--flex.form{
		flex-direction:column;
		gap:1.5rem;
	}
	.contact__container .container--flex.form .flex--item{
		width:100%!important;
	}
	.link__container .container--flex{
		flex-direction:column;
		gap:1.5rem;
	}
	.link__container .container--flex .flex--item{
		width:66%;
		margin:0 auto;
	}
}

/* =========================
   Home - 共通
========================= */

section.home .container--flex.heading{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	margin:0 0 3.5rem;
}

section.home .container--flex.heading .flex--item{
	width:calc(50% - 1.5rem);
}



section.home .section__title{
	margin:0 0 2.5rem;
}

section.home .section__title--en{
	font-family:Quicksand, sans-serif;
	font-weight:bold;
	font-size:4rem;
	color:#001352;
	display:block;
	letter-spacing:0.05em;
}

section.home .section__title--jp{
	display:block;
	color:#0093FF;
	font-size:1.5rem;
	font-weight:600;
	letter-spacing:0.05em;
}

section.home h3 .section__title--en{
	font-size:2.5rem;
}

section.home h3 .section__title--jp{
	font-size:1rem;
}


.home__section--button{
	color:#fff;
	text-align:center;
	font-size:1.25rem;
	padding:1rem 4.5rem;
	background-color:#FF8B00;
	border-radius:100vh;
	border:2px solid #FF8B00;
	position:relative;
	transition:all 0.3s ease;
	display:inline-block;
	line-height:1;
}

.home__section--button:after{
	position:absolute;
	content:'';
	width:1rem;
	height:1rem;
	background-color:#FF8B00;
	border-radius:100vh;
	display:block;
	right:1.5rem;
	top:1.125rem;
}

.home__section--button:hover{
	background-color:transparent;
	color:#FF8B00;
}

@media screen and (max-width:980px){
	section.home .section__title{
		margin:0 0 1.75rem;
	}
	section.home .container--flex.heading .flex--item{
		width:100%;
	}
	section.home .section__title--en{
		font-size:2.5rem;
	}

	section.home .section__title--jp{
		font-size:1.25rem;
	}
	.home__section--button{
		font-size:1rem;
		padding:0.75rem 3.5rem;
	}
	.home__section--button:after{
		top:0.75rem;
		right:0.75rem;
	}

}

/* =========================
   Home - Hero
========================= */

section.home#hero {
	padding:7.5rem 0 1.5rem 0;
	background-color:#0093ff;
	min-height:100vh;
	position:relative;
	display:flex;
	flex-direction:column;
	
}
/*
section.home#hero .hero__image{

	position:absolute;
	left:50%;
	bottom:0;
	transform:translate(-50%, 0);
	z-index:0;
}
*/
section.home#hero .hero__image {

}

section.home#hero .container{
	height:100%;
	flex:1;
	display:flex;
	align-items:center;
}

section.home#hero .container--flex{
	position:relative;
	z-index:1;
	display:flex;
	justify-content:flex-end;
	align-items:center;
	height:100%;
}

section.home#hero .container--flex .flex--item{
	width:35%;
	display:flex;
	align-items:center;
}

section.home#hero .container--flex .flex--item .hero__copy{
	padding:0 0 12.5rem;
}

section.home#hero .hero__bottom--container{
	position:absolute;
	z-index:2;
	bottom:3rem;
	left:50%;
	transform:translate(-50%, 0);
	display:flex;
	align-items:center;
	flex-direction:column;
	gap:1.75rem;
}

.hero__scroll {
  animation: heroScrollFade 2s ease-in-out infinite;
}

@keyframes heroScrollFade {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
  100% {
    opacity: 1;
  }
}

@media screen and (max-width:980px){
	section.home#hero .hero__image{
	height:65vh;
	bottom:20vh;
	}
	section.home#hero .hero__bottom--container{
		bottom:15%;
	}
	section.home#hero .container--flex{
		justify-content:center;
	}
	section.home#hero .container--flex .flex--item{
		width:66%;
	}
}
.hero__object--container{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	z-index:0;
	display:block;
	height:170vh;
	max-width:none;
	aspect-ratio: 1920 / 1080;
	overflow:hidden;
}

.hero__object--container video{
	position:relative;
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;

	/* SVGマスク */
	-webkit-mask: url("/wp-content/themes/wadacal/assets/images/home/hero__overlay--clip.svg") center / contain no-repeat;
	mask: url("/wp-content/themes/wadacal/assets/images/home/hero__overlay--clip.svg") center / contain no-repeat;
}

/* 既存のoverlay画像は使わない */
.hero__object--container img{
	display:none;
}
/* =========================
   Home - コンセプト
========================= */

section.home#concept {
	padding:65vh 0 1.5rem 0;
	background-image:url(assets/images/home/concept__bg.webp);
	background-size:100% 100%;
	background-repeat:no-repeat ;
	background-position:0% 0%;
	margin:0 0 -4rem;
	min-height:100vh;
	display:flex;
	flex-direction:column;
	justify-content:center;
	
}

section.home#concept .container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	margin:0 0 9.5rem;
	position:relative;
	z-index:1;
}

section.home#concept .container--flex .flex--item{
	width:calc(50% - 1.5rem);
	color:#fff;
}

section.home#concept .container--flex .flex--item:nth-child(1){
	display:flex;
	align-items:center;
}

section.home#concept .container--flex .flex--item .concept__heading{
	font-size:4rem;
	line-height:1.8;

}

section.home#concept .container--flex .flex--item .concept__description{
	font-size:1.25rem;
	line-height:2.8;
}

@media screen and (max-width:980px){
	section.home#concept {
	padding:5vh 0 1.5rem 0;
	}
	section.home#concept .container--flex .flex--item{
		width:100%;
	}
	section.home#concept .container--flex .flex--item .concept__heading{
		font-size:3rem;
		line-height:1.4;
	}
	section.home#concept .container--flex .flex--item .concept__description{
		line-height:2;
		font-size:1rem;
	}
}


/* =========================
   Home - 商品・サービス
========================= */

section.home#products {
	border-radius:4.5rem;
	padding:4.5rem 0;
	background-color:#F7F8F8;
	background: linear-gradient(#E3F7FF, #ffffff);
	position:relative;
	z-index:1;
}

section.home#products section.home .section__title{
	margin:0;
}

section.home#products .container--flex.heading .flex--item:nth-child(2){
	display:flex;
	align-items:flex-end;
	justify-content:flex-end;
}

section.home#products .section__description{
	line-height:1.9;
	width:calc(100% - 4.5rem);
	margin:0 0 3rem;
}

section.home#products .container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:1rem 5rem;
}

section.home#products .container--flex .flex--item{
	width:calc(50% - 2.5rem);
}

section.home#products .container--flex .flex--item figure {
	border-radius:1.75rem;
}

section.home#products .container--flex .flex--item figure img{
	border-radius:1.75rem;
}

section.home#products .container--flex .flex--item figure figcaption{
	color:#0093FF;
	text-align:center;
	margin:1rem 0 0 0;
	font-size:1.5rem;
	font-weight:600;
}

	section.home#products .container--flex.heading .home__section--button.pc{
		display:inline-block;
	}
	section.home#products .container--flex.heading .home__section--button.sp{
		display:none;
		width:14rem;
		margin:1rem auto 0 auto;
	}

@media screen and (max-width:980px){
	section.home#products{
		border-radius:3rem;
		padding:3rem 0;
	}
	section.home#products .container--flex{
		gap:1rem;
	}
	section.home#products .container--flex .flex--item{
		width:100%;
	}
	section.home#products .container--flex.heading .flex--item:nth-child(2){
		justify-content:center;
		align-items:center;

	}
	section.home#products .container--flex.heading .home__section--button.pc{
		display:none;
	}
	section.home#products .container--flex.heading .home__section--button.sp{
		display:block;
	}
	section.home#products .section__description{
		width:100%;
	}
}


/* =========================
   Home - business　container
========================= */

.home__business--wrapper{
	background-image:url(assets/images/home/business__bg.webp);
	background-position:50% 25%;
	background-size:120% auto;
	background-repeat:no-repeat;
}

@media screen and (max-width:980px){
	.home__business--wrapper{
		background-position:50% -10%;
		background-size:auto 90%;
	}
}

/* =========================
   Home - わたしたちの事業
========================= */

section.home#business {
	padding:4.5rem 0;
	
}

section.home#business .container--flex.heading{
	margin:0 0 6rem;
	gap:6rem;
}


section.home#business .container--fullwidth--right .container--flex.heading .flex--item:nth-child(1){
	width:calc(600px - 3rem);
	display:flex;
	flex-direction:column;
	justify-content:center;
}
section.home#business .container--fullwidth--right .container--flex.heading .flex--item:nth-child(2){
	display:flex;
	flex:1;
}

section.home#business .container--fullwidth--right .container--flex.heading .flex--item:nth-child(2) img{
	aspect-ratio:16 / 6;
	object-fit:cover;
}


section.home#business .container--flex.heading .flex--item img{
	border-top-left-radius:1.5rem;
	border-bottom-left-radius:1.5rem;
}



section.home#business .section__description{
	line-height:1.9;
	margin:0 0 1.5rem;
}


.business__slogan--item{
	width:100%;
	aspect-ratio:1 / 1;
	border-radius:100vh;
	background-color:rgba(255,255,255,0.5);
}




section.home#business .container--flex.slogan{
	display:flex;
	flex-wrap:wrap;
	gap:6rem;
}

section.home#business .container--flex.slogan .flex--item{
	width:calc(33.33333% - 4rem);
}

section.home#business .container--flex .flex--item .business__slogan--item{
	display:flex;
	justify-content:flex-start;
	align-items:center;
	flex-direction:column;	
}

section.home#business .container--flex .flex--item .business__slogan--item .slogan__heading{
	padding-top:25%;
	padding-bottom:0.75rem;
	letter-spacing:0.1em;
	margin:0 0 0rem;
	font-family:"Quicksand", sans-serif;
	font-size:2.0rem;
	font-weight:bold;
	color:#0093FF;
}

section.home#business .container--flex .flex--item .business__slogan--item .slogan__description{
	text-align:center;
	line-height:1.8;
	font-size:1.25rem;
	font-weight:500;
	height:8.4rem;
	display:flex;
	align-items:center;
	padding:0 0 0 1em;
}

@media screen and (max-width:1200px){
	section.home#business .container--fullwidth--right .container--flex.heading .flex--item:nth-child(1) {
		width:calc(50% - 1.5rem);
	}

}

@media screen and (max-width:980px){
	section.home#business{
		padding:3rem 0;
	}
	section.home#business .container--flex.heading{
		flex-direction:column;
		gap:0rem;
		margin:0 0 3.5rem;
	}
	section.home#business .container--flex.heading .flex--item{
		width:100%;
	}
	section.home#business .container--fullwidth--right{
		max-width:100%;
		margin:0 auto;
	}
	section.home#business .container--fullwidth--right .container--flex.heading .flex--item{
		width:100%!important;

	}
	section.home#business .container--fullwidth--right .container--flex.heading .flex--item:nth-child(2) {
		transform:translate(1rem, 0);
		width:100vw;
		margin-left:-1rem;
	}
	section.home#business .container--flex.slogan{
		flex-direction:column;
		align-items:center;
		gap:1.5rem;
	}
	section.home#business .container--flex.slogan .flex--item{
		width:75%;
	}
	section.home#business .container--flex .flex--item .business__slogan--item{
/*		box-shadow:2px 2px 8px rgba(0,0,0,0.15);*/
	}
	section.home#business .container--flex .flex--item .business__slogan--item .slogan__heading{
		padding-top:22%;
		padding-bottom:0.0rem;
		margin:0 0 0.75rem;
		font-size:1.75rem;
	}
	section.home#business .container--flex .flex--item .business__slogan--item .slogan__description{
		font-size:1.1rem;
		height:6.5rem;
		font-weight:600;
	}
	section.home#business .container--flex .flex--item .business__slogan--item .slogan__description{

	}
}


/* =========================
   Business - Message
========================= */

section.home#message {
	padding:4.5rem 0 2.5rem;
}

section.home#message .section__title{
	margin:0 0 3.5rem;
}

section.home#message .container--flex.heading {
	gap:6rem;
}

section.home#message .container--flex.heading .flex--item:nth-child(1){
	width:calc(60% - 3rem);
}

section.home#message .container--flex.heading .flex--item:nth-child(2){
	width:calc(40% - 3rem);
}

section.home#message figure{
}

section.home#message figure img{
	border-radius:1.75rem;
}

section.home#message .message__heading.pc{
	color:#0093FF;
	font-weight:bold;
	font-size:2.0rem;
	margin:0 0 1.75rem;
}
section.home#message .message__heading.sp{
	display:none;
	color:#0093FF;
	font-weight:bold;
	font-size:1.5rem;
	margin:0 0 1.75rem;
}

section.home#message .message__description{
	line-height:1.95;
	margin:0 0 2.5rem;
}

section.home#message .message__signature{
	font-size:1.5rem;
	font-weight:500;
	text-align:center;
	margin-top:2.5rem;
}

section.home#message .message__signature span{
	font-size:0.9rem;
	display:inline-block;
	margin:0 1rem 0 0 ;
}

section.home#message .message__signature.sp{
	display:none;
}




@media screen and (max-width:980px){
	section.home#message .message__heading.pc{
		display:none;
	}
	section.home#message .message__heading.sp{
		display:block;
		margin:0 0 0 0;
	}
	section.home#message .container--flex.heading{
		gap:1.5rem;
		flex-direction:column-reverse;

	}
	section.home#message .container--flex.heading .flex--item{
		width:100%!important;
	}
	section.home#message figure{
		margin:0 0 1.5rem;
	}
	section.home#message figure figcaption{
		display:none;
	}
	section.home#message .message__signature.pc{
		margin-top:1rem;
		display:none;
	}
	section.home#message .message__signature.sp{
		font-size:1.25rem;
		display:block;
		text-align:left;;
		font-weight:500;
	}
		section.home#message .message__signature.sp span{
			font-size:0.85rem;
	}
	section.home#message .message__description{
		font-size:0.9rem;
		line-height:1.7;
	}
}
/* =========================
   Business - History
========================= */

section.home#history {
	padding:4.5rem 0;
}

section.home#history figure{
	width:60%;
	margin-right:auto;
	margin-left:auto;
}

section.home#history figure img{
	border-radius:1.75rem;
}


section.home#history .history__description{
	line-height:1.95;
	margin:0 0 2rem;
	width:80%;
}

section.home#history .history__link.pc{
	display:block;
}

section.home#history .history__link.sp{
	display:none;
}

@media screen and (max-width:980px){
	section.home#history .history__description{
		width:100%;
	}
	section.home#history .history__link.pc{
		display:none;
	}
	section.home#history .history__link.sp{
		display:block;
		text-align:center;
		margin:2.5rem 0 0 ;
	}
}

/* =========================
   Business - People
========================= */

section.home#people {
	padding:4.5rem 0;
}

section.home#people .section__title{
	margin:0;
}

section.home#people .container--flex.heading .flex--item:nth-child(2){
	display:flex;
	align-items:flex-end;
	justify-content:flex-end;
}

section.home#people .container--flex.main{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	margin:0 0 7.5rem;
}

section.home#people .container--flex.main .flex--item{
	width:calc(33.333333% - 2rem);
	
}

section.home#people .swiper-people{
	overflow:hidden;
	padding:1rem 0 6rem;
}

section.home#people .swiper-slide figure img{
	display:block;
	border-radius:1.5rem;
	margin:0 0 1rem;
}

section.home#people .swiper-slide figure figcaption span{
	display:block;
	font-size:0.85rem;
}

section.home#people .swiper-slide figure figcaption{
	position:relative;
}

section.home#people .swiper-slide figure figcaption:after,
section.home#people .swiper-slide figure figcaption:before{
	position:absolute;
	right:0;
	top:0;
	content:'';
	width:3.5rem;
	height:3.5rem;
	display:block;
	background-image:url(assets/images/home/people__icon--arrow.svg);
	background-repeat:no-repeat;
	background-size:contain;
	background-position:50% 50%;
	opacity:1;
	transition:all 0.3s ease;
}

section.home#people .swiper-slide figure figcaption:before{
	background-image:url(assets/images/home/people__icon--arrow-hover.svg);
	opacity:0;
}

section.home#people .swiper-slide:hover figure figcaption:after{
	opacity:0;
}

section.home#people .swiper-slide:hover figure figcaption:before{
	opacity:1;
}

section.home#people .swiper-slide  {
  counter-increment: item;
	color:#FF8B00;
	position:relative;
}

section.home#people .swiper-slide::before {
  content: "#" counter(item) " ";
	position:absolute;
	font-size:3.0rem;
	left:0;
	top:-1.5rem;
	line-height:1;
	font-family:Quicksand, sans-serif;
	font-weight:500;
	letter-spacing:0.05em;
}

section.home#people .swiper-slide:nth-child(2){
	transform:translate(0, 2.5rem);
}

section.home#people .swiper-slide:nth-child(3){
	transform:translate(0, 5rem);
}

section.home#people .home__section--button.pc{
	display:inline-block;
}
section.home#people .home__section--button.sp{
	display:none;
	margin:1rem auto 0 auto;
	width:14rem;
}

@media screen and (max-width:980px){
	section.home#people{
		padding:3rem 0;
	}
	section.home .container--flex.heading{
		gap:1.5rem;
		margin:0;
	}
	section.home#people .container--flex.heading .flex--item:nth-child(2){
		display:none;
	}
	section.home#people .swiper-people{
		overflow-y:hidden;
		padding:3rem 0 0rem;
	}
	section.home#people .swiper-slide{
		transform:translate(0, 0)!important;
	}
	section.home#people .container-swiper{
		width:100vw;
		margin:0 calc(50% - 50vw) 0 0;
	}
	section.home#people .swiper-people{
		padding-left:16px;
		padding-right:16px;
	}
	section.home#people .swiper-slide figure figcaption:after,
	section.home#people .swiper-slide figure figcaption:before{
		content:none;
	}

	section.home#people .home__section--button.pc{
		display:none;
	}
	section.home#people .home__section--button.sp{
		display:block;
	}

}



/* =========================
  Home Company
========================= */

section.home#company{
	padding:4.5rem 0;
}

section.home#company .container--flex.main{
	display:flex;
	flex-wrap:wrap;
	gap:6rem;
}


section.home#company .container--flex.main .flex--item{
	width:calc(50% - 3rem);
}

dl.dl-company {
display: grid;
  grid-template-columns: 8rem 1fr;
	align-items: stretch;
	height:100%;
	width:100%;
}

dl.dl-company dt,
dl.dl-company dd{
  border-bottom: 1px solid #0093FF;
	padding:2.5rem 0;
 display: flex;
align-items:center;
}

dl.dl-company dt {
  font-weight: 700;
	color:#0093FF;
}

dl.dl-company dd {
  margin: 0;
}

@media screen and (max-width:980px){
	section.home#company{
		padding:3rem 0;
	}
	section.home#company .container--flex.main{
		gap:0;
	}
	section.home#company .container--flex.main .flex--item{
	width:100%;
	}
	dl.dl-company dt, dl.dl-company dd{
		padding:1.25rem 0;
	}
}


/* =========================
  Home Access
========================= */

section.home#access{
	padding:4.5rem 0;
}

section.home#access .access__heading{
	font-weight:bold;
	font-size:1.5rem;
	margin:0 0 1rem;
}

section.home#access .access__map{
	border-radius:1.5rem;
	overflow:hidden;
}

/* =========================
  Home 健康経営
========================= */

section.home.health{
	padding:0 0 4.5rem 0;
}

section.home.health .container--inner{
	display:block;
	background-color:#fff;
	border-radius:2rem;
	padding:1.5rem;
	box-shadow:10px 10px 25px rgba(42, 128, 167, 0.16);
}


section.home.health .container--flex.heading{
	margin:0;
}

section.home.health .container--flex.heading .flex--item:nth-child(1){
	width:calc(60% - 1.5rem);
}

section.home.health .container--flex.heading .flex--item:nth-child(2){
	width:calc(40% - 1.5rem);
}

section.home.health figure{
	position:relative;
	line-height:0;
}

section.home.health figure img{
	line-height:0;
}

section.home.health figure:after{
	position:absolute;
	right:1rem;
	bottom:1rem;
	content:'';
	width:3.5rem;
	height:3.5rem;
	display:block;
	background-image:url(assets/images/home/health__icon--arrow.svg);
	background-repeat:no-repeat;
	background-size:contain;
	background-position:50% 50%;
}


section.home.health img{
	border-radius:1.5rem;
}

section.home.health .health__desctiption{
	line-height:1.9;
}


section.home.health .section__title--jp{
	font-size:2rem;
	margin:0 0 1.5rem;
}

section.home.health .section__title--en{
	font-size:1rem;
}

@media screen and (max-width:980px){
	section.home.health .container--flex.heading{
		flex-direction:column;
	}
	section.home.health .container--flex.heading .flex--item{
		width:100%!important;
	}
	section.home.health .section__title--jp{
		margin:0 0 0.5rem;
	}
	section.home.health#health01 figure:after{
		position:relative;
		right:auto;
		left:calc(100% - 3.5rem);
		bottom:auto;
		top:0;
		width:2.5rem;
		height:2.5rem;
	}
	section.home.health#health02 figure:after{
		width:2.5rem;
		height:2.5rem;

	}
}


/* ===============================
  Home News
=============================== */

.news-tabs {
  --color-main: #2A80A7;
  --color-border: rgba(42, 128, 167, 0.18);
  --color-text: #4A4642;
  --color-muted: #777;

  width: 100%;
}

.news-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
	justify-content:space-around;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}

.news-tabs__button {
  appearance: none;
opacity:0.4;
  padding: 1rem 0;
font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: all 0.3s ease;
}

.news-tabs__button:hover {
  border-color: var(--color-main);
  color: var(--color-main);
}

.news-tabs__button.is-active {
opacity:1;
}


.news-tabs__panel {
  display: none;
}

.news-tabs__panel.is-active {
  display: block;
}

/* JS用 */
.news-tabs__panel[hidden] {
  display: none;
}


.news-tabs__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-tabs__item {
  border-bottom: 1px solid #0056E0;
}


.news-tabs__link {
  display:flex;
	flex-wrap:wrap;
align-items:center;
  padding: 16px 0;
  text-decoration: none;
  color: inherit;
gap:1rem;
  transition: opacity 0.25s ease;
}

.news-tabs__link:hover {
  opacity: 0.7;
}


.news-tabs__date {
  font-size: 1rem;
  white-space: nowrap;
	display:inline-block;
	margin:0;
}

.news-tabs__category {
  font-size: 0.85rem;
  font-weight: 700;
color:#fff;
	background-color:#77D8FF;
	border-radius:100vh;
	padding:0.5rem 1rem;
	line-height:1;
	width:6rem;
	text-align:center;
	display:inline-block;
	  white-space: nowrap;
}

.news-tabs__title {
  font-size: 1.25rem;
	font-weight:bold;
  line-height: 1.6;
width:100%;
}



.news-tabs__empty {
  padding: 20px 0;
  margin: 0;
  color: var(--color-muted);
  font-size: 14px;
}


@media (max-width: 980px) {

  .news-tabs__nav {
    gap: 8px;
    margin-bottom: 20px;
  }

  .news-tabs__button {
    padding: 0.5rem 0.5rem;
    font-size: 0.8rem;
  }

  .news-tabs__link {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 14px 0;
  }

  .news-tabs__date,
  .news-tabs__category {
    font-size: 12px;
  }

  .news-tabs__title {
    font-size: 14px;
  }
}


/* =========================
   Page - Products 商品一覧
========================= */
.home__content--wrapper{
	border-top-left-radius:4.5rem;
	border-top-right-radius:4.5rem;
	background: linear-gradient(to bottom, #E3F7FF 0%, #ffffff 70%);
}

section.products{
	margin:0 0 4.5rem;
}


/* --------------------
 * ページ内ナビ
 * -------------------- */

section.products#nav{
	padding:1.5rem 0 4.5rem;
}

section.products#nav .container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:6rem;
}

section.products#nav .container--flex .flex--item{
	width:calc(33.3333% - 4rem);
}

section.products#nav .container--flex .flex--item a{
	display:block;
	width:100%;
	text-align:center;
	padding:1.5rem 3rem;
	border-radius:100vh;
	border:2px solid #0093FF;
	color:#0093FF;
	line-height:1;
	background-color:transparent;
	transition:all 0.3s ease;
}

section.products#nav .container--flex .flex--item a span{
	font-size:2rem;
	display:block;
	margin:0 0 0.5rem;
}

section.products#nav .container--flex .flex--item a small{
	font-size:1.5rem;
	display:block;
}


section.products#nav .container--flex .flex--item a:hover{
	color:#fff;
	background-color:#0093FF;
}

section.products#medicine{
	background-color:#F7F8F8;
	border-radius:7.5rem;
	padding-top:6.5rem;
	padding-bottom:6.5rem;
	margin:0 0 4.5rem;
}

section.products h3.section__title{
	text-align:center;
	font-size:2rem;
	font-weight:bold;
	color:#0093FF;
	display:flex;
	justify-content:center;
	align-items:center;
	margin:0 0 2.5rem;
}

section.products h3.section__title span{
	display:inline-block;
	background-color:#0093FF;
	font-weight:400;
	color:#fff;
	font-size:1rem;
	height:2rem;
	line-height:1;
	padding:0.5rem 1.0rem;
	margin-left:0.5rem;
	
}

section.products .section__description{
	width:600px;
	max-width:100%;
	line-height:2.25rem;
	margin:0 auto 3.5rem;
}


section.products#medicine .item__container{
	background-color:#fff;
	padding:2.5rem;
	border-radius:2.5rem;
	box-shadow:0.5rem 0.5rem 2.5rem rgba(42, 128, 167, 0.16);
	margin:0 0 5rem;
}

section.products#medicine h4.section__title{
		text-align:center;
	font-size:2rem;
	font-weight:bold;
	color:#0093FF;
	display:flex;
	justify-content:center;
	align-items:center;
	margin:0 0 2.5rem;
}

section.products#medicine h5.section__title{
	color:#0093FF;
	position:relative;
	line-height:1;
	display:flex;
	align-items:center;
	font-size:1.25rem;
	margin:0 0 1.25rem;
	flex-wrap:wrap;
	gap:0.75rem;
}
	
section.products#medicine h5.section__title:before{
	position:relative;
	content:'';
	background-color:#77D8FF;
	width:1rem;
	height:1rem;
	display:inline-block;
	border-radius:100vh;
	left:0;
	margin:0 0rem 0 0 ;
	line-height:0;
}

section.products#medicine h5.section__title span{
	font-size:0.875rem;
	color:#001352;
	display:inline-block;
	margin:0 0 0 1rem;
}


section.products#medicine .item__feature--description{
	margin:0 0 2.5rem;
}

section.products#medicine .container--flex.top{
	display:flex;
	flex-wrap:wrap;
	gap:0rem;
	margin:0 0 1.5rem;
}

section.products#medicine .container--flex.top .flex--item{
	width:50%;
}


section.products#medicine .container--flex.efficacy{
	display:flex;
	flex-wrap:wrap;
	gap:1.2rem;
}

section.products#medicine .container--flex.efficacy .flex--item{
	width:calc(25% - 0.9rem);
	border:2px solid #0089FF;
	border-radius:1rem;
	display:flex;
	justify-content:center;
	align-items:center;
	padding:1rem 0.5rem;
	
}

section.products#medicine .container--flex.efficacy .flex--item figcaption{
	text-align:center;
	color: #0089FF;
	margin:0.75rem 0 0 0;
}

	
section.products#medicine table{
	border:1px solid #0089FF;
	border-collapse:collapse;
	width:100%;
	margin:0 0 0.75rem;
	
}

section.products#medicine table th,
section.products#medicine table td{
	border:1px solid #0089FF;
	padding:0.5rem;
	line-height:1.3;
	font-weight:normal;
	text-align:left;
}

section.products#medicine table th{
	background-color:rgba(0, 147, 255, 0.2);
}

section.products#medicine .container--flex.bottom{
	display:flex;
	flex-wrap:wrap;
	gap:4.5rem;
}

section.products#medicine .container--flex.bottom .flex--item:nth-child(1){
	width:calc(44% - 2.25rem);
}
section.products#medicine .container--flex.bottom .flex--item:nth-child(2){
	width:calc(56% - 2.25rem);
}

.ol--notes {
  margin: 1.5em 0;
  padding: 0;
  list-style: none;
  counter-reset: note;
}

section.products#medicine .ol--notes li {
  position: relative;
  margin-bottom: 0.25rem;
  padding-left: 1.85rem;
  line-height: 1.3;
  counter-increment: note;
	font-size:0.85rem;
}

section.products#medicine .ol--notes li::before {
  content: "(" counter(note) ")";
  position: absolute;
  left: 0;
  top: 0;
  color: #001352;
}

section.products#medicine .notes{
	font-size:0.85rem;
}

section.products#medicine .button__container--products{
	text-align:center;
	margin:2.5rem 0;
}

section.products#medicine .button__container--products a{
	color:#fff;
	text-align:center;
	font-size:1.25rem;
	padding:1rem 4.5rem;
	background-color:#0093FF;
	border-radius:100vh;
	position:relative;
	transition:all 0.3s ease;
	display:inline-block;
}

section.products#medicine .button__container--products a:after{
	position:absolute;
	content:'';
	width:2rem;
	height:2rem;
	background:url(assets/images/products/button__icon--pdf.svg) 50% 50% / contain no-repeat;
	display:block;
	right:2.25rem;
	top:0.75rem;
}

section.products#medicine .button__container--products a:hover{
	background-color:rgba(0, 147, 255, 0.75);
}

section.products#supplement01 h3.section__title span{
	background-color:#FF7B98;
}

section.products.supplement .supplement__container{
	display:flex;
	flex-wrap:wrap;
	gap:3rem;
	
}

section.products.supplement .supplement__container .supplement__item{
	width:calc(33.33333% - 2rem);
	border-radius:1.5rem;
	background-color:#fff;
	box-shadow:0 0 15px #D0D7DD;
	padding:2rem 1.5rem 3.5rem;
	position:relative;
	margin:0 0 3.5rem;
}

section.products.supplement .supplement__container .supplement__item img{
	display:block;
	margin:0 0 1rem;
}

section.products.supplement .supplement__container .supplement__item .supplement__name{
	color:#0093FF;
	display:flex;
	height:5.5rem;
	justify-content:center;
	align-items:center;
	font-size:1.5rem;
	line-height:1.4;
	text-align:center;
}


section.products.supplement .supplement__container .supplement__item .supplement__description{
	
}

section.products.supplement .supplement__container .supplement__item .supplement__link{
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	text-align:center;
	transform:translate(0, 50%);
}

section.products.supplement .supplement__container .supplement__item .supplement__link a{
	background-color:#0093FF;
	color:#fff;
	border-radius:100vh;
	padding:1rem 2rem;
	width:calc(100% - 5rem);
	display:block;
	margin:0 auto;
	font-size:1.45rem;
	line-height:1;
	position:relative;
}
section.products.supplement .supplement__container .supplement__item .supplement__link a:after{
	content:'';
	position:absolute;
	width:1rem;
	height:1rem;
	background-color:#fff;
	border-radius:100vh;
	display:block;
	right:1.5rem;
	top:1.25rem;
}


/* 健康食品（生協共同購入）*/

section.products#supplement02{
	background-color:#F7F8F8;
	border-radius:3.5rem;
	padding-top:6.5rem;
	padding-bottom:6.5rem;
	margin:0 0 4.5rem;
}

section.products#supplement02 h3.section__title span{
	background-color:#FF7B98;
}


@media screen and (max-width:980px){
	.home__content--wrapper{
		border-top-right-radius:3rem;
		border-top-left-radius:3rem;
	}
	section.products{
		margin:0 0 2.5rem;
	}
	section.products#nav{
		padding:0.5rem 0;
	}
	section.products#nav .container--flex{
		flex-direction:column;
		gap:1rem;
	}
	section.products#nav .container--flex .flex--item{
		width:100%!important;
	}
	section.products#nav .container--flex .flex--item a{
		padding:0.75rem 1rem;
	}
	section.products#nav .container--flex .flex--item a span{
		font-size:1.25rem;
	}
	section.products#nav .container--flex .flex--item a small{
		font-size:1rem;
	}
	section.products#medicine{
		border-radius:3.5rem;
		padding-top:3.5rem;
		padding-bottom:1.5rem;
	}
	section.products#medicine .item__container{
		padding:1.5rem;
		margin:0 0 2.5rem;
	}
	section.products#medicine .container--flex.top{
	}
	section.products#medicine .container--flex.top .flex--item{
		width:100%!important;
	}
	section.products#medicine .container--flex.efficacy .flex--item{
		width:calc(50% - 0.6rem)!important;
	}
	section.products#medicine .container--flex.bottom{
		gap:2rem;
	}
	section.products#medicine .container--flex.bottom .flex--item{
		width:100%!important;
	}
	section.products#medicine .button__container--products a{
		font-size:0.9rem;
		padding:0.75rem 1rem;
		width:100%;
		white-space:nowrap;
		line-height:1.3;
	}
	section.products#medicine .button__container--products a:after{
		width:1.5rem;
		height:1.5rem;
		right:1rem;
		top:1.0rem;
	}
	section.products.supplement .supplement__container{
		gap:.5rem;
	}
	section.products.supplement .supplement__container .supplement__item{
		width:calc(50% - 0.25rem);
		padding:1rem 1rem 2.5rem;
		margin:0 0 1.5rem;
		display:flex;
		flex-direction:column;
		
	}
	section.products.supplement .supplement__container .supplement__item img{
		margin:0;
	}
	section.products.supplement .supplement__container .supplement__item .supplement__name{
		font-size:1rem;
		line-height:1.25;
	}
	section.products.supplement .supplement__container .supplement__item .supplement__description{
		font-size:0.9rem;
	}
	section.products.supplement .supplement__container .supplement__item .supplement__link a{
		font-size:0.85rem;
/*		width:calc(100% - 2rem);*/
		width:100%;
		padding:0.5rem 0.5rem;
		white-space:nowrap;
	}
	section.products.supplement .supplement__container .supplement__item .supplement__link a:after{
		right:0.5rem;
		top:0.625rem;
		width:0.5rem;
		height:0.5rem;
	}
	section.products#supplement02{
		border-radius:3.5rem;
		padding-top:3.5rem;
		padding-bottom:3.5rem;
	}
	section.products.supplement .supplement__container .supplement__item .supplement__link{
		bottom:auto;
		margin-top:auto;
		position:relative;
	}
	section.products .section__description{
		line-height:1.8;
		margin-bottom:2.0rem;
	}
}



/* =========================
   歴史
========================= */

section.history .section__title{
	text-align:center;
	color:#0093FF;
	font-size:2rem;
	font-weight:bold;
	margin:0 0 3.5rem;
}


section.history .history__container{
	border-top-left-radius:4.5rem;
	border-top-right-radius:4.5rem;
	padding:4.5rem 0;
	background: linear-gradient(to bottom, #E3F7FF 0%, #ffffff 100%);
}


.history {
  --history-image-width: 160px;
  --history-gap: 80px;
  --history-line-width: 2px;
  --history-line-color: #d0d0d0;
  --history-marker-size: 20px;
  --history-marker-border: 4px;
  --history-marker-color: #2a80a7;

  position: relative;
}

/* 各セット */
.history__item {
  position: relative;
  display: grid;
  grid-template-columns: var(--history-image-width) 1fr;
  column-gap: var(--history-gap);
  align-items: center;
  padding: 56px 0;
}

/* 縦線
   画像の右端 + gapの中央 に配置 */
.history__item::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(
    var(--history-image-width) + (var(--history-gap) / 2)
  );
  width: var(--history-line-width);
  background: #77D8FF;
  transform: translateX(-50%);
}

/* 丸：各セットの上下中央 */
.history__marker {
  position: absolute;
  top: 50%;
  left: calc(
    var(--history-image-width) + (var(--history-gap) / 2)
  );
  transform: translate(-50%, -50%);
  width: var(--history-marker-size);
  height: var(--history-marker-size);
  border-radius: 50%;
  background: #0093FF;
  box-sizing: border-box;
  z-index: 2;
}

/* 左：画像 */
.history__image {
  width: var(--history-image-width);
}

.history__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* 右：本文 */
.history__content {
  min-width: 0;
}

.history__title {
	margin:0 0 0.75rem;
  font-size: 1.5rem;
  line-height: 1.4;
  font-weight: 700;
  color: #0093FF;
}

.history__text {
  font-size: 1rem;
  line-height: 1.9;
}

.history__text p {
  margin: 0;
}

/* 最初と最後の見た目を少し整えるなら任意 */
.history__item:first-child::before {
  top: 0;
}

.history__item:last-child::before {
  bottom: 0;
}

@media (max-width: 980px) {
  .history {
    --history-image-width: 100%;
    --history-gap: 20px;
    --history-marker-size: 16px;
    --history-marker-border: 3px;
  }

  .history__item {
    display: block;
    padding: 36px 0 36px 52px;
  }

  .history__item::before {
    left: 20px;
    top: 0;
    bottom: 0;
    transform: none;
  }

  .history__marker {
    left: 20px;
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .history__image {
    width: 100%;
    margin-bottom: 18px;
  }

  .history__image img {
    width: 100%;
    max-width: 160px;
    border-radius: 8px;
  }

  .history__title {
    margin-bottom: 10px;
    font-size: 20px;
  }

  .history__text {
    font-size: 15px;
    line-height: 1.6;
  }
}


/* 沿革  */
section.history#company .container--flex{
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-wrap:wrap;
	gap:2rem;
	margin:0 0 3.5rem;
}

section.history#company .container--flex .section__title{
	margin:0;
}

section.history#company .container--flex .company-history__description{
	
}

.history-slider__nav{
	display:flex;
	gap:1rem;
}

.history-slider__prev,
.history-slider__next{
	cursor:pointer;
	transition:all 0.3s ease;
}

.history-slider__prev:hover,
.history-slider__next:hover{
	opacity:0.4;
}


.history-slider-wrap {
  position: relative;
  overflow: visible;
}

/* ここがポイント
   初期位置はcontainer内にあるまま、
   右側だけ画面端まで広げる */
.history-slider {
  --history-line-y: 3rem;

  position: relative;
  width: calc(100vw - ((100vw - 100%) / 2));
  overflow: visible!important;
  padding-top: 0px;
}

/* 横線 */
.history-slider::before {
  content: "";
  position: absolute;
  left: -100vw;
  right: 0;
	width:200vw;
  top: var(--history-line-y);
  height: 2px;
  background: #77D8FF;
  z-index: 0;
}

.history-slider .swiper-wrapper {
  align-items: flex-start;
}

.history-slider__slide {
  position: relative;
  box-sizing: border-box;
  overflow: visible;
}

.history-slider__year {
  margin: 0 0 40px;
  font-size: 24px;
  line-height: 1.2;
  font-weight: 700;
}

.history-slider__dot {
  position: absolute;
  top: var(--history-line-y);
  left: 2rem;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #0093FF;
  box-sizing: border-box;
  transform: translate(0, calc(-50% + 1px));
  z-index: 2;
}

.history-slider__text {
  margin-top: 40px;
  font-size: 15px;
  line-height: 1.8;
}

.history-slider__text img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-top: 12px;
}

.history-slider__next img,
.history-slider__prev img{
	display:block;
}

/*
@media (max-width: 767px) {
  .history-slider {
    --history-line-y: 62px;
    width: 100%;
  }

  .history-slider__year {
    margin-bottom: 34px;
    font-size: 20px;
  }

  .history-slider__dot {
    width: 16px;
    height: 16px;
    border-width: 3px;
  }

  .history-slider__text {
    margin-top: 34px;
    font-size: 14px;
  }
}
*/

.container-scrollbar{
	display:flex;
	justify-content:center;
	width:100%;
	max-width:100vw;
}

/* スクロールバー全体 */
.history-slider__scrollbar {
  position: relative!important;
	width: 400px!important;
  height: 5px;
	left:0!important;
	margin-top: 2.5rem;
  background: #d9d9d9;
}

/* ドラッグ部分 */
.history-slider__scrollbar .swiper-scrollbar-drag {
  background-color: #0093FF;
	width:3.0rem!important;
	height:3.0rem!important;
  border-radius: 999px;
  cursor: grab;
	top:calc(-1.5rem + 3px);
	margin-left:-0.75rem;
	background-image:url(assets/images/history/company__arrow--drag.svg);
	background-position:50% 50%;
	background-size:contain;
	background-repeat:no-repeat;
}


@media screen and (max-width:980px){
	.history-slider__text{
		line-height:1.45;
	}
  .history-slider__scrollbar {
    width: 66vw!important;
		margin-top: 2.5rem;
  }
	section.history#company .container--flex{
		justify-content:center;
		gap:1rem;
		margin:0 0 1.5rem;
	}
}


/* =========================
  People 社員紹介
========================= */

section.people{
	margin:0 0 3.5rem;
}

section.people#nav .container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:6rem;
}

section.people#nav .container--flex .flex--item{
	width:calc(33.33333% - 4rem);	
}

section.people#nav .swiper-slide a{
	display:block;
	border-radius:1.75rem;
	overflow:clip;
}
section.people#nav .swiper-slide {
  counter-increment: item;
	color:#FF8B00;
	position:relative;
}

section.people#nav .swiper-slide::before {
  content: "#" counter(item) " ";
	position:absolute;
	font-size:3.5rem;
	left:-1.5rem;
	top:1.5rem;
	line-height:1;
	font-family:Quicksand, sans-serif;
	font-weight:500;
	letter-spacing:0.05em;
	z-index:1;
}


section.people#nav figure{
	position:relative;
}

section.people#nav figure figcaption{
	position:absolute;
	left:0;
	bottom:0;
	width:100%;
	padding:1.0rem 0.5rem;
	background-color:rgba(0, 147, 255, 0.95);
	color:#fff;
	font-weight:bold;
	
}

section.people#nav figure figcaption span{
	display:block;
	text-align:center;
	line-height:1;
}

section.people#nav figure figcaption span:nth-child(1),
section.people#nav figure figcaption span:nth-child(2){
	font-size:1.35rem;
	margin:0 0 0.75rem;
}

section.people.interview{
	margin:0 0 3.5rem;
	padding:5rem 0 0 0;
}

section.people.interview .container--flex{
	display:flex;
	flex-wrap:wrap;
	gap:0rem;
	margin:0 0 7.5rem;
}

section.people.interview .container--flex .flex--item{
	width:50%;
}

section.people.interview .interview__header{
	color:#0093FF;
	border-bottom:2px solid #0093FF;
	font-weight:bold;
	padding:0 0 1rem;
	margin:0 0 4.5rem;
	display:inline-block;
}

section.people.interview .interview__header span:nth-child(1){
	font-size:1.25rem;
	display:block:
}

section.people.interview .interview__header span:nth-child(2){
	font-size:1.0rem;
	display:block;
}

section.people.interview .interview__heading{
	color:#0093FF;
	font-weight:bold;
	font-size:2rem;
	margin:0 0 2.5rem;
}

section.people.interview .interview__description{
	font-size:0.85rem;
	line-height:1.9;
}


section.people.interview figure img{
	display:block;
	border-radius:2.0rem;
}

section.people.interview figure{
	position:relative;
	z-index:1;
}

section.people.interview figure figcaption{
	position:absolute;
	display:block;
	font-size:5.5rem;
	color:#FF8B00;
	right:-3rem;
	top:1rem;
	z-index:1;
	font-family:Quicksand, sans-serif;
	font-weight:600;
}

section.people.interview .container--flex .flex--item figure:before{
	width:100%;
	height:100%;
	content:'';
	display:block;
	background-image:url(assets/images/people/interview__bg--0101.webp);
	background-repeat:no-repeat;
	background-position:50% 50%;
	background-size:contain;
	position:absolute;
	left:0;
	bottom:0;
	z-index:-1;
	transform:translate(-35%, 35%);
}

section.people.interview .container--flex .flex--item:nth-child(2) figure:before{
	background-image:url(assets/images/people/interview__bg--0102.webp);
	left:auto;
	right:0;
	bottom:0;
	transform:translate(35%, 35%);
	height:200%;
}

section.people.interview .container--flex .flex--item.item--content{
	padding:0 0 0 7.5rem;
}

section.people.interview .container--flex:nth-child(2) .flex--item.item--content{
	padding:0 7.5rem 0 0;
}

section.people.interview#people02{
	border-top-left-radius:4.5rem;
	border-top-right-radius:4.5rem;
	padding:4.5rem 0;
	background: linear-gradient(to bottom, #E3F7FF 0%, #ffffff 100%);
}

section.people.interview#people02 .container--flex{
	flex-direction:row-reverse;
}

section.people.interview#people02 .container--flex .flex--item.item--content{
	padding:0 7.5rem 0 0;
}

section.people.interview#people02 .container--flex:nth-child(2) .flex--item.item--content{
	padding:0 0 0 7.5rem;
}


section.people.interview#people02 figure figcaption{
	right:auto;
	left:-3rem;
}
section.people.interview#people02 .container--flex .flex--item:nth-child(1) figure:before{
	background-image:url(assets/images/people/interview__bg--0201.webp);
	left:0;
	right:auto;
	transform:translate(35%, 35%);
}

section.people.interview#people02 .container--flex .flex--item:nth-child(2) figure:before{
	background-image:url(assets/images/people/interview__bg--0202.webp);
	right:0;
	left:auto;
	transform:translate(-35%, 35%) scale(1.3);
}

section.people.interview#people03 .container--flex .flex--item:nth-child(1) figure:before{
	background-image:url(assets/images/people/interview__bg--0301.webp);
	left:0;
	right:auto;
	transform:translate(35%, 35%);
}

section.people.interview#people03 .container--flex .flex--item:nth-child(2) figure:before{
	background-image:url(assets/images/people/interview__bg--0302.webp);
	right:0;
	left:auto;
	transform:translate(-35%, 35%) scale(1.3);
}


@media screen and (max-width:980px){
	section.people{
		margin:0 0 2rem;
	}
	section.people#nav .swiper-slide::before {
		left:0.5rem;
		top:0.5rem;
		font-size:2.75rem;
	}
	section.people#nav .container--flex{
		gap:0.5rem;
	}
	section.people#nav .container--flex .flex--item{
		width:calc(50% - 0.25rem);
	}
	section.people#nav .container--flex .flex--item a{
		border-radius:1rem;
	}
	section.people#nav figure figcaption span:nth-child(1), section.people#nav figure figcaption span:nth-child(2){
		font-size:1rem;
		margin:0 0 0.25rem;
	}
	section.people#nav .container--flex .flex--item::before{
		left:0.5rem;
		top:0.5rem;
		font-size:2.5rem;
	}
	section.people.interview .container--flex{
		gap:1.5rem;
		margin:0 0 2.5rem;
	}
	section.people.interview .container--flex .flex--item{
		width:100%;
	}
	
	section.people.interview .container--flex:nth-child(2) {
		flex-direction:column-reverse;
	}
	section.people.interview#people02 .container--flex:nth-child(2) {
		flex-direction:column-reverse;
	}
	section.people.interview .container--flex .flex--item.item--content{
		padding-right:0!important;
		padding-left:0!important;
	}
	section.people.interview figure figcaption{
		right:0;
		top:-3rem;
	}
	section.people.interview#people02 figure figcaption{
		left:0;
		top:-2.5rem;
	}
	section.people.interview{
		padding:2.5rem 0 0 0;
		margin:0 0 1.5rem;
	}
	section.people.interview#people02{
		border-top-left-radius:2.5rem;
		border-top-right-radius:2.5rem;
		padding:4.5rem 0 0;
	}
	section.people.interview .interview__header{
		margin:0 0 2.0rem;
	}
	section.people.interview .interview__heading{
		margin:0 0 1.25rem;
		font-size:1.85rem;
		line-height:1.35;
	}
	section.people.interview figure figcaption{
		font-size:3.5rem;
		top:-2.5rem;
	}
	section.people.interview .container--flex .flex--item figure:before{
		bottom:2.5rem;
	}
	section.people.interview#people02 .container--flex .flex--item:nth-child(2) figure:before{
		bottom:2rem;
	}
}


/* ========================================
   Single Post
======================================== */

.single-content {
  position: relative;
  padding: 8rem 0;
  background: #fff;
  color: #4A4642;
}

.single-content__inner {
  width: min(100% - 40px, 960px);
  margin: 0 auto;
}

.single-content__header {
  margin-bottom: 4rem;
}

.single-content__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  color: #777;
}

.single-content__meta time {
  font-family: "M PLUS Rounded 1c", sans-serif;
}

.single-content__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-content__categories a {
  display: inline-block;
  padding: 0.35em 0.9em;
  background-color: #77D8FF;
  border-radius: 999px;
  color: #fff;
  font-size: 0.8rem;
  line-height: 1;
  text-decoration: none;
}

.single-content__title {
  margin: 0;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #4A4642;
}

.single-content__body {
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.04em;
}

.single-content__body > *:first-child {
  margin-top: 0;
}

.single-content__body > *:last-child {
  margin-bottom: 0;
}

.single-content__body p {
  margin: 0 0 1.8em;
}

.single-content__body h2 {
  position: relative;
  margin: 4rem 0 1.8rem;
  padding-bottom: 1rem;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #4A4642;
}

.single-content__body h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 72px;
  height: 1px;
  background: linear-gradient(90deg, #b4926a, rgba(180, 146, 106, 0));
}

.single-content__body h3 {
  margin: 3rem 0 1.4rem;
  padding-left: 1rem;
  border-left: 3px solid #b4926a;
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  font-weight: 500;
  line-height: 1.6;
  color: #4A4642;
}

.single-content__body h4 {
  margin: 2.5rem 0 1rem;
  font-size: 1.15rem;
  font-weight: 600;
  color: #4A4642;
}

.single-content__body ul,
.single-content__body ol {
  margin: 0 0 2rem;
  padding-left: 1.5em;
}

.single-content__body li {
  margin-bottom: 0.6em;
}

.single-content__body a {
  color: #b4926a;
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.single-content__body img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 2.5rem auto;
}

.single-content__body figure {
  margin: 2.5rem 0;
}

.single-content__body figcaption {
  margin-top: 0.8rem;
  font-size: 0.85rem;
  line-height: 1.6;
  color: #777;
  text-align: center;
}

.single-content__body blockquote {
  margin: 2.5rem 0;
  padding: 1.5rem 2rem;
  background: #f8f6f2;
  border-left: 4px solid #b4926a;
}

.single-content__body table {
  width: 100%;
  border-collapse: collapse;
  margin: 2.5rem 0;
}

.single-content__body th,
.single-content__body td {
  border: 1px solid #ddd;
  padding: 1rem;
  text-align: left;
}

.single-content__body th {
  background: #f8f6f2;
  font-weight: 600;
}


/* ========================================
   Responsive
======================================== */

@media (max-width: 768px) {
  .single-content {
    padding: 5rem 0;
  }

  .single-content__inner {
    width: min(100% - 30px, 960px);
  }

  .single-content__header {
    margin-bottom: 3rem;
  }

  .single-content__meta {
    gap: 0.8rem 1rem;
  }

  .single-content__body {
    font-size: 0.95rem;
    line-height: 1.9;
  }

  .single-content__body h2 {
    margin-top: 3rem;
  }

  .single-content__body h3 {
    margin-top: 2.5rem;
  }

  .single-content__body blockquote {
    padding: 1.2rem 1.4rem;
  }

  .single-content__body table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}