@charset "utf-8";



/* --------------------------------------------------------------------------------
essential
-------------------------------------------------------------------------------- */

html.html {
	margin-top: 0px !important;
}
body {
	letter-spacing: 0em;
}



/* --------------------------------------------------------------------------------
misc
-------------------------------------------------------------------------------- */

br.large {
	display: none;
}
br.small {
	display: inline;
}
span.no-small {
	display: none;
}



/* --------------------------------------------------------------------------------
page
-------------------------------------------------------------------------------- */

div#page {
	padding-top: 60px;
}
div#page div#trigger {
	position: absolute;
	left: 0px;
	top: 75vh;
}
div#page h3.border {
	font-size: 1.375rem;
	margin-bottom: 20px;
}



/* --------------------------------------------------------------------------------
cover, background
-------------------------------------------------------------------------------- */

div#cover,
div#background {
	height: 320px;
}
div#cover {
	margin-bottom: 60px;
}
div#cover div.diagram {
	width: 360px;
	height: 225px;
	left: calc(50% - 180px);
	top: calc(50% - 90px);
}
div#cover h1 {
	top: 30px;
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 1.75rem;
}
div#cover p#button-health-productivity,
div#cover p#button-cancer {
	width: 100%;
	left: 0px;
	font-size: 0.75rem;
}
div#cover p#button-health-productivity a,
div#cover p#button-cancer a {
	border-radius: 0px;
}
div#cover p#button-health-productivity span,
div#cover p#button-cancer span {
	height: 30px;
}
div#cover p#button-health-productivity span:nth-child(1),
div#cover p#button-cancer span:nth-child(1) {
	width: calc(100% - 120px);
	padding-left: 10px;
}
div#cover p#button-health-productivity span:nth-child(2),
div#cover p#button-cancer span:nth-child(2) {
	width: 120px;
}
div#cover p#button-health-productivity {
	bottom: -30px;
}
div#cover p#button-cancer {
	bottom: -60px;
}
div#background {
	top: 60px;
}



/* --------------------------------------------------------------------------------
header
-------------------------------------------------------------------------------- */

header#header {
	position: relative;
	width: auto;
	height: auto;
	left: auto;
	top: auto;
	color: #000000;
	background-color: transparent;
	transform: none;
}
body.admin-bar header#header {
	transform: none;
}
div.scroll-header header#header {
	position: relative;
}
header#header h1,
header#header p#button-menu,
header#header p.tel-alternate {
	position: fixed;
	transition: 0.25s transform ease;
}
div.scroll header#header h1,
div.scroll header#header p#button-menu,
div.scroll header#header p.tel-alternate {
	transform: translateY(-60px);
}
div.scroll header#header.menu h1,
div.scroll header#header.menu p#button-menu,
div.scroll header#header.menu p.tel-alternate,
div.scroll-up header#header h1,
div.scroll-up header#header p#button-menu,
div.scroll-up header#header p.tel-alternate {
	transform: translateY(0px);
}
header#header h1 {
	width: 100%;
	height: 60px;
	left: 0px;
	top: 0px;
	z-index: 20;
	padding: 12px 0px 0px 20px;
	background-color: #01883b;
}
header#header h1 img {
	width: auto;
	height: 36px;
}
header#header p#button-menu {
	width: 60px;
	height: 60px;
	right: 0px;
	top: 0px;
	cursor: pointer;
	z-index: 40;
	color: #ffffff;
}
header#header p#button-menu::before {
	position: absolute;
	width: 100%;
	left: 0px;
	bottom: 10px;
	text-align: center;
	font-size: 0.5rem;
	font-weight: 700;
	line-height: 1rem;
	content: "MENU";
}
header#header p#button-menu i {
	display: block;
	position: absolute;
	background-color: #ffffff;
	width: 24px;
	height: 2px;
	left: 18px;
	top: 25px;
	transform-origin: 50% 50%;
}
header#header p#button-menu i:nth-child(1) {
	transform: translateY(-6px) rotate(0deg);
}
header#header p#button-menu i:nth-child(2) {
	transform: translateY(0px) rotate(0deg);
}
header#header p#button-menu i:nth-child(3) {
	transform: translateY(6px) rotate(0deg);
}
header#header.menu p#button-menu i:nth-child(1) {
	animation: button-menu-row-01 0.25s 1 forwards;
}
header#header.close p#button-menu i:nth-child(1) {
	animation: button-menu-row-01-close 0.25s 1 forwards;
}
header#header.menu p#button-menu i:nth-child(2) {
	animation: button-menu-row-02 0.25s 1 forwards;
}
header#header.close p#button-menu i:nth-child(2) {
	animation: button-menu-row-02-close 0.25s 1 forwards;
}
header#header.menu p#button-menu i:nth-child(3) {
	animation: button-menu-row-03 0.25s 1 forwards;
}
header#header.close p#button-menu i:nth-child(3) {
	animation: button-menu-row-03-close 0.25s 1 forwards;
}
@keyframes button-menu-row-01 {
	0% { transform: translateY(-6px) rotate(0deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(0px) rotate(-45deg); }
}
@keyframes button-menu-row-01-close {
	0% { transform: translateY(0px) rotate(-45deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(-6px) rotate(0deg); }
}
@keyframes button-menu-row-02 {
	0% { opacity: 1; }
	100% { opacity: 0; }
}
@keyframes button-menu-row-02-close {
	0% { opacity: 0; }
	100% { opacity: 1; }
}
@keyframes button-menu-row-03 {
	0% { transform: translateY(6px) rotate(0deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(0px) rotate(45deg); }
}
@keyframes button-menu-row-03-close {
	0% { transform: translateY(0px) rotate(45deg); }
	50% { transform: translateY(0px) rotate(0deg); }
	100% { transform: translateY(6px) rotate(0deg); }
}
header#header p.tel-alternate {
	width: 30px;
	height: 30px;
	right: 60px;
	top: 15px;
	z-index: 40;
}
header#header p.tel-alternate a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 100%;
	border: 1px solid #ffffff;
	background-color: #01642a;
	border-radius: 2.5px;
}
header#header p.tel-alternate a::before {
	width: 16px;
	height: 16px;
	background: url(../images/icon-tel.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
}
header#header p.tel,
header#header div.misc {
	top: auto;
}
header#header p.tel {
	display: none;
}
header#header div#menu {
	position: fixed;
	width: 100%;
	height: 100%;
	right: 0px;
	top: 0px;
	overflow: auto;
	z-index: 10;
	background-color: #ffffff;
	transform: translateX(100%);
	transition: 0.25s transform ease;
	-webkit-overflow-scrolling: touch;
}
header#header.menu div#menu {
	transform: translateX(0%);
}
header#header div#menu div.inner-menu {
	padding: 80px 20px 20px 20px;
}
header#header nav#navi,
header#header div.misc {
	position: static;
	right: auto;
}
header#header nav#navi {
	bottom: auto;
	margin-bottom: 40px;
}
header#header nav#navi ul {
	display: block;
}
header#header nav#navi ul li {
	text-align: center;
	border-right: none;
	border-bottom: 2px dotted #cccccc;
}
header#header nav#navi ul li:first {
	border-left: none;
	border-top: 2px dotted #cccccc;
}
header#header nav#navi ul li a {
	display: block;
	width: auto;
	height: auto;
	padding: 20px;
	transition: 0.25s color ease;
}
header#header nav#navi ul li a:hover,
body.special header#header nav#navi ul li.special a,
body.consultation header#header nav#navi ul li.consultation a,
body.blog header#header nav#navi ul li.blog a,
body.staff header#header nav#navi ul li.staff a,
body.online header#header nav#navi ul li.online a {
	color: #01883b;
}
header#header nav#navi ul li a::before {
	display: none;
}
header#header div.misc ul {
	display: block;
}
header#header div.misc ul li {
	font-size: 0.875rem;
}
header#header div.misc ul li:not(:last-child) {
	margin: 0px 0px 10px 0px;
}
header#header div.misc ul li a {
	width: 220px;
	height: 40px;
	border-color: #01883b;
	margin: auto;
}
header#header div.misc ul li.contact a {
	border-color: #ea5514;
}



/* --------------------------------------------------------------------------------
content
-------------------------------------------------------------------------------- */

div#content {
	padding: 40px 0px 60px 0px;
}
div#content::before {
	height: calc(100% - 320px);
}
div#content h2.headline {
	font-size: 1.375rem;
	line-height: 2rem;
}
div#content section div.inner-section {
	width: auto;
	padding: 0px 20px;
}
div#content section header {
	margin-bottom: 50px;
}
div#content section header h1,
div#content section header h2 {
	line-height: 2.25rem;
}
div#content section header h1 {
	font-size: 1.875rem;
}
div#content section header h1 span {
	font-size: 1.5rem;
	margin-right: 10px;
	transform: translateY(-1px);
}
div#content section header h2 {
	font-size: 1.375rem;
}
div#content div.frame {
	padding: 20px;
}
div#content div.frame::before {
	height: 30px;
	top: -29px;
}

/* home
-------------------------------------------------------------------------------- */

body.home div#content {
	padding: 40px 0px 90px 0px;
}
div#content section#home-blog p.button-contact {
	display: flex;
	margin-bottom: 50px;
}
div#content section#home-blog div.list article {
	display: block;
	line-height: 1.5rem;
	padding: 20px 0px;
}
div#content section#home-blog div.list article p.created {
	width: auto;
}
div#content section#home-blog div.list article h3 {
	width: auto;
	font-size: 1rem;
}
div#content section#home-blog div.list article h3 a {
	padding-right: 0px;
}
div#content section#home-blog div.list article h3 a::before {
	display: none;
}
div#content section#home-blog p.more {
	padding-right: 0px;
}
div#content section#home-misc div.inner-section {
	padding-top: 20px;
}
div#content section#home-misc div.sdgs {
	margin-bottom: 20px;
}
div#content section#home-misc div.sdgs a {
	padding: 20px 20px 15px 20px;
}
div#content section#home-misc div.sdgs p.logo {
	margin-bottom: 10px;
}
div#content section#home-misc div.sdgs p.logo img {
	height: 38px;
}
div#content section#home-misc div.sdgs h3 {
	font-size: 1.125rem;
	line-height: 1.625rem;
}
div#content section#home-misc div.sdgs p.sub span {
	font-size: 0.875rem;
}

/* special
-------------------------------------------------------------------------------- */

div#content section#special div.inner-section {
	padding-bottom: 60px;
}
div#content section#special div.list div.row {
	text-align: justify;
}
div#content section#special div.list div.row:not(:last-child) {
	margin-bottom: 20px;
	padding-bottom: 20px;
}
div#content section#special div.list div.row h2 {
	text-align: center;
	font-size: 1.375rem;
	line-height: 2rem;
}
div#content section#special div.list div.row ul {
	padding-left: 0px;
}
div#content section#special div.list div.row p.strong {
	font-size: 1rem;
}
div#content section#company div.inner-section {
	padding-top: 60px;
}
div#content section#company div#outline {
	margin-bottom: 60px;
}
div#content section#company div#map {
	margin-bottom: 60px;
}
div#content section#company div#outline {
	padding: 0px;
}
div#content section#company div#outline table th,
div#content section#company div#outline table td {
	display: block;
	padding: 0px;
}
div#content section#company div#outline table th {
	width: 100%;
	border-bottom: none;
	padding-bottom: 5px;
}
div#content section#company div#outline table tr:not(:first-child) th {
	padding-top: 20px;
}
div#content section#company div#outline table td {
	width: 100%;
	padding-bottom: 20px;
}
div#content section#company div#map iframe {
	height: 320px;
}
div#content section#company div#health-productivity,
div#content section#company div#cancer {
	border: 1px solid #cccccc;
	padding: 20px;
}
div#content section#company div#health-productivity div.image-text,
div#content section#company div#cancer div.image-text {
	display: block;
}
div#content section#company div#health-productivity div.image-text p.image,
div#content section#company div#cancer div.image-text p.image {
	width: auto;
	margin-bottom: 20px;
}
div#content section#company div#health-productivity div.image-text p.image img,
div#content section#company div#cancer div.image-text p.image img {
	width: auto;
	height: 160px;
	margin: auto;
}
div#content section#company div#health-productivity div.image-text div.text,
div#content section#company div#cancer div.image-text div.text {
	width: auto;
}
div#content section#company div#health-productivity div.image-text div.text h3 {
	text-align: center;
	font-size: 1.875rem;
	line-height: 2.25rem;
	margin: 0px -10px 10px -10px;
}
div#content section#company div#cancer {
	margin-bottom: 60px;
}
div#content section#company div#group ul {
	display: block;
	margin: 0px;
}
div#content section#company div#group ul li {
	width: auto;
	margin: 0px 0px 10px 0px;
}

/* consultation
-------------------------------------------------------------------------------- */

div#content section#consultation div.list div.row:not(:last-child) {
	margin-bottom: 20px;
	padding-bottom: 20px;
}
div#content section#consultation div.list div.row div.image-text {
	display: block;
}
div#content section#consultation div.list div.row div.image-text p.image {
	width: 100px;
	height: 100px;
	margin: 0px auto 10px auto;
}
div#content section#consultation div.list div.row div.image-text div.text {
	width: auto;
}
div#content section#consultation div.list div.row div.image-text div.text h2 {
	text-align: center;
}

/* blog
-------------------------------------------------------------------------------- */

div#content section#blog div.created-category {
	display: block;
}
div#content section#blog div.created-category p.created {
	margin: 0px 0px 10px 0px;
}
div#content section#blog div.list article {
	padding-left: 0px;
	padding-right: 0px;
}
div#content section#blog div.list article:not(:last-child) {
	margin-bottom: 20px;
	padding-bottom: 20px;
}
div#content section#blog div.list article div.image-text p.image {
	width: 100px;
	height: 100px;
}
div#content section#blog div.list article div.image-text:has(.image) div.text {
	width: calc(100% - 120px);
}
div#content section#blog div.list article div.image-text div.text h3 {
	font-size: 1rem;
	line-height: 1.625rem;
}
div#content article.blog div.header {
	margin-bottom: 20px;
	padding: 0px;
}
div#content article.blog div.header div.image-text p.image {
	width: 60px;
	height: 60px;
}
div#content article.blog div.header div.image-text:has(.image) div.text {
	width: calc(100% - 80px);
	padding-top: 5px;
}
div#content article.blog div.header div.image-text div.text h1.title {
	font-size: 1.25rem;
	line-height: 1.875rem;
	margin-right: -80px;
}
div#content article.blog div.body {
	padding: 20px 0px;
}
div#content div.category-archive {
	display: block;
	width: auto;
}
div#content div.category-archive div.category,
div#content div.category-archive div.archive {
	width: auto;
}
div#content div.category-archive div.category {
	margin-bottom: 20px;
}

/* staff
-------------------------------------------------------------------------------- */

div#content section#staff h2 {
	font-size: 1.25rem;
	line-height: 1.875rem;
	margin-bottom: 40px;
}
div#content section#staff div.list {
	display: block;
	margin-bottom: 0px;
}
div#content section#staff div.list div.row {
	width: auto;
	margin-bottom: 0px;
}
div#content section#staff div.list div.row:not(:last-child) {
	border-bottom: 1px solid #cccccc;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
div#content section#staff div.list div.row::before {
	display: none;
}
div#content section#staff div.list div.row:nth-child(2n+1)::after {
	display: none;
}
div#content section#staff div.list div.row div.image-text {
	margin-bottom: 10px;
}
div#content section#staff div.list div.row div.image-text p.image {
	width: 100px;
}
div#content section#staff div.list div.row div.image-text:has(.image) div.text {
	width: calc(100% - 120px);
}
div#content section#staff div.list div.row div.image-text div.text h3 {
	font-size: 1.375rem;
	line-height: 1.875rem;
}

/* online
-------------------------------------------------------------------------------- */

div#content section#online p.description {
	text-align: justify;
}
div#content section#online div.segment:not(:last-child) {
	margin-bottom: 40px;
}
div#content section#online ul {
	margin-right: -30px;
}
div#content section#online ul li {
	width: calc(50% - 30px);
	margin: 0px 30px 20px 0px;
}
div#content section#online ul.wide {
	display: block;
	margin-right: 0px;
}
div#content section#online ul.wide li {
	width: calc(87.5% - 30px);
	margin-left: auto;
	margin-right: auto;
}
div#content section#online ul li span.note {
	font-size: 0.625rem;
}
div#content section#online ul li span.button {
	font-size: 0.75rem;
}

/* qa
-------------------------------------------------------------------------------- */

div#content section#qa div.list div.row:not(:last-child) {
	margin-bottom: 20px;
	padding-bottom: 20px;
}
div#content section#qa div.list div.row div.question {
	padding: 0px 20px 0px 40px;
}
div#content section#qa div.list div.row div.question p.number {
	width: 30px;
	height: 30px;
	font-size: 1rem;
}
div#content section#qa div.list div.row div.question h2 {
	font-size: 1rem;
}
div#content section#qa div.list div.row div.question p.button {
	top: 7px;
}
div#content section#qa div.list div.row div.answer div.inner-answer {
	padding-left: 40px;
}

/* contact
-------------------------------------------------------------------------------- */

div#content section#contact div.header {
	margin-bottom: 60px;
}
div#content section#contact div.component {
	display: block;
	margin-bottom: 20px;
	padding: 0px 0px 20px 0px;
}
div#content section#contact div.component p.label {
	width: auto;
	height: auto;
	margin-bottom: 10px;
}
div#content section#contact div.component div.body {
	width: auto;
}
div#content section#contact div.action {
	display: block;
}
div#content section#contact div.action input[type=submit] {
	margin: auto;
}
div#content section#contact div.action input[type=submit]:not(:last-child) {
	margin-right: auto;
	margin-bottom: 20px;
}

/* related-01, related-02
-------------------------------------------------------------------------------- */

div#content section.related div.segment div.image-text {
	display: block;
}
div#content section.related div.segment div.image-text p.image {
	width: 142px;
	margin: 0px auto 20px auto;
}
div#content section.related div.segment div.image-text div.text {
	width: auto;
}
div#content section.related div.segment h2 {
	font-size: 1.25rem;
	padding: 10px;
}

/* sitemap
-------------------------------------------------------------------------------- */

div#content section#sitemap div.column {
	display: block;
}
div#content section#sitemap div.column div.row {
	width: auto;
}
div#content section#sitemap div.column div.row:not(:first-child) ul li:first-child {
	border-top: none;
}
div#content section#sitemap div.column div.row ul li a {
	padding: 20px 0px;
}
div#content section#sitemap div.column div.row ul li a::before {
	right: 0px;
}



/* --------------------------------------------------------------------------------
footer
-------------------------------------------------------------------------------- */

footer#footer {
	padding: 60px 20px 0px 20px;
}
footer#footer div.sdgs-video {
	display: block;
	width: auto;
	margin-bottom: 60px;
}
footer#footer div.sdgs-video div.sdgs,
footer#footer div.sdgs-video div.video {
	width: auto;
}
footer#footer div.sdgs-video div.sdgs {
	margin-bottom: 20px;
}
footer#footer div.sdgs-video div.sdgs a {
	padding: 20px 20px 15px 20px;
}
footer#footer div.sdgs-video div.sdgs p.logo {
	margin-bottom: 10px;
}
footer#footer div.sdgs-video-alternate {
	width: auto;
	margin-bottom: 60px;
}
footer#footer div.sdgs-video-alternate div.sdgs:not(:last-child) {
	margin-bottom: 20px;
}
footer#footer div.sdgs-video-alternate div.sdgs a {
	padding: 20px 20px 15px 20px;
}
footer#footer div.sdgs-video-alternate div.sdgs p.logo {
	margin-bottom: 10px;
}
footer#footer div.sdgs-video-alternate div.sdgs p.logo img {
	height: 38px;
}
footer#footer div.sdgs-video-alternate div.sdgs h3 {
	font-size: 1.125rem;
	line-height: 1.625rem;
}
footer#footer div.sdgs-video-alternate div.sdgs p.sub span {
	font-size: 0.875rem;
}
footer#footer div.partner {
	width: auto;
	margin-bottom: 60px;
}
footer#footer div.partner div.segment:not(:last-child) {
	margin-bottom: 60px;
}
footer#footer div.partner div.segment ul {
	display: flex;
}
footer#footer hr {
	width: auto;
	margin-bottom: 60px;
}
footer#footer div.information {
	display: block;
	width: auto;
	text-align: center;
}
footer#footer div.information p.logo-godo {
	margin: 0px 0px 20px 0px;
}
footer#footer div.information p.logo-godo img {
	height: 40px;
	margin: auto;
}
footer#footer div.information h3 {
	margin: 0px 0px 20px 0px;
}
footer#footer div.information h3 img {
	height: 50px;
	margin: auto;
}
footer#footer div.information div.text p.address,
footer#footer div.information div.text p.tel-fax {
	margin-bottom: 10px;
}
footer#footer div.information div.text p.tel-fax {
	font-size: 1.25rem;
	line-height: 1.875rem;
}
footer#footer div.information div.text p.tel-fax span {
	display: block;
}
footer#footer div.information div.text p.tel-fax span:not(:last-child) {
	margin-right: 0px;
}
footer#footer div.information div.text p.time-close span {
	display: block;
}
footer#footer div.information div.text p.time-close span:not(:last-child) {
	margin-right: 0px;
}
footer#footer div.related {
	margin-bottom: 40px;
}
footer#footer div.related ul {
	display: block;
}
footer#footer div.related ul li:not(:last-child) {
	margin: 0px 0px 10px 0px;
}
footer#footer div.related ul li a {
	width: auto;
}
footer#footer div.misc {
	margin: 0px -20px;
	padding: 10px 20px;
}
footer#footer div.misc ul {
	display: block;
}
footer#footer div.misc ul li {
	text-align: center;
	line-height: 1.75rem;
	border-right: none;
}
footer#footer div.misc ul li:first-child {
	border-left: none;
}
footer#footer div.misc ul li a {
	width: auto;
}

/* home
-------------------------------------------------------------------------------- */

body.home footer#footer {
	padding-top: 90px;
}
body.home footer#footer p#banner-line {
	width: 240px;
	left: calc(50% - 120px);
	top: -30px;
}
