@charset "UTF-8";
/*
Theme Name: kariya-futaba-dc
Theme URI: 
Description: kariya-futaba-dc.jp 専用
Author: fu-mi.
Author URI: -
version: 1.0
*/

/*------------------------------------------------
	fonts styles
-------------------------------------------------*/
body { font-family: 'dnp-shuei-mgothic-std', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', helvetica, arial, clean, sans-serif;}
@media screen and (min-width: 0\0) and (min-resolution: +72dpi) {
	.selector {
			property: value;
	}
	body {
		font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', helvetica, arial, clean, sans-serif;
	}
}
/*------------------------------------------------
	reset styles
--------------------------------------------------*/
li {
	list-style: none;
}
h1, h2, h3, h4, h5 {
	font-weight: normal;
}
img {
	vertical-align: top;
}
table {
	table-layout: fixed;
	border-collapse: collapse;
	border-spacing: 0;
}
/*------------------------------------------------
	clear styles
--------------------------------------------------*/
.clear:after {
	content: "";
	display: block;
	clear: both;
}
/*------------------------------------------------
	base styles
--------------------------------------------------*/
:root {
	--txt-color: #113770;
	--txt-color2: #00aabb;
	--color-main-blu: #113770;
	--color-main-grn: #00aabb;
	--color-sub-blu: #f0f4f7;
	--color-sub-org: #f19b00;
}
html {
	font-family: 'dnp-shuei-mgothic-std', sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 62.5%;
	background-color: #fff;
}
html.wf-active {
}
html, body {
	min-height: 100%;
	height: auto;
	min-width: 1040px; /* 1040px未満は横スクロール */
}
body {
	-webkit-text-size-adjust: 100%;
	color: var(--txt-color);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: calc(27 / 15);
	letter-spacing: .1em;
	background-image: url(images/body-bg.svg);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 980px auto;
}
h1, h2, h3, h4, h5, p, dt, dd, li {
	font-feature-settings: "palt";
}
i svg {
	vertical-align: middle;
}
.preload {
	background-image: url(images/pagetop-on.png);
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.preload {
		background-image: url(images/pagetop-on-2x.png);
	}
}
.section {
	width: 100%;
	min-width: 1040px;
	padding-top: 100px;
	padding-bottom: 100px;
	position: relative;
}
.section-blu {
	background-color: var(--color-sub-blu);
}
.section-1st {
	padding-top: 120px;
}
.section-general-head {
	padding-bottom: 164px;
}
.section-wave {
	position: relative;
}
.section-wave::before {
	content: "";
	width: 100%;
	height: 45px;
	background-image: url(images/section-wave-top.svg);
	background-repeat: repeat-x;
	background-position: center bottom;
	background-size: 370px auto;
	position: absolute;
	top: -44px;
	left: 50%;
	transform: translateX(-50%);
}
.section-2nd {
	padding-top: 30px;
}
.content {
	width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
.div-section {
	width: 100%;
	min-width: 1040px;
}
.mds {
	text-align: center;
	position: relative;
	padding-bottom: 34px;
}
.mds > span {
	display: inline-block;
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 2.1rem;
	line-height: calc(30 / 21);
	border-bottom: 1px solid var(--color-sub-org);
}
.mds h2 {
	margin-top: 19px;
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
	padding-left: .13em;
	color: var(--txt-color2);
}
.mds::after {
	content: "";
	width: 152px;
	height: 18px;
	background-image: url(images/ico-mds.svg);
	background-size: cover;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
.mds2 {
	text-align: center;
	
}
.mds2 h2,
.mds2 h3 {
	display: inline-block;
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
	padding-left: .13em;
	border-bottom: 2px solid var(--color-sub-org);
}
.mds2 h2 span,
.mds2 h3 span {
	color: var(--txt-color2);
}
.mds3 h2,
.mds3 h3 {
	display: inline-block;
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 2.1rem;
	line-height: calc(30 / 21);
	border-bottom: 1px solid var(--color-sub-org);
}
.btn {
	width: 280px;
	height: 60px;
	background-color: var(--color-sub-org);
	border-radius: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.6rem;
	line-height: calc(16 / 16);
	letter-spacing: .15em;
	padding-left: .15em;
	background-image: url(images/ico-arrow-btn.svg);
	background-repeat: no-repeat;
	background-position: right 22px center;
	background-size: 14px auto;
	text-decoration: none;
	transition: opacity .3s;
}
.btn:hover {
	opacity: .7;
}
.btn2 {
	width: 240px;
	height: 40px;
	border-radius: 20px;
	background-position: right 15px center;
}






.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* 共通コンテナ：幅1000px固定＋左右20px余白確保 */
.l-container {
  width: min(1000px, 100% - 40px);
  margin: 0 auto;
}

/* ===== First View / Hero ===== */

.site-wrapper {
  min-height: 100vh;
}

.site-header {
	position: relative;
	height: 100vh;
	min-height: 860px;
}
.site-header-under {
	height: 600px;
	min-height: 600px;
}
.site-header__inner {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* --- Left overlay blocks (top curved BG + bottom schedule) --- */

.site-header__left {
  position: absolute;
  top: 0;
  left: 0;
  width: 260px;
  height: 100%;
  z-index: 2;
}


/* SNSアイコン（左上固定） */
.site-header__sns {
	width: auto;
	height: 78px;
	position: absolute;
	top: 0;
	left: 0;
	background-image: url(images/head-insta-bg.png);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 54px auto;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.site-header__sns {
		background-image: url(images/head-insta-bg-2x.png);
	}
}

.header-instagram {
	padding-left: 68px;
	padding-top: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: var(--txt-color);
}
.header-instagram > p {
	font-size: 1.4rem;
	line-height: calc(25 / 14);
	letter-spacing: 0;
	border-bottom: 1px solid var(--txt-color);
	margin-right: 14px;
}
.header-instagram:hover p {
	border-color: transparent;
	opacity: .8;
}
.header-instagram:hover i img {
	opacity: .7;
}
.vis-non {
	color: transparent;
	visibility: hidden;
}
/* ロゴ＋電話＆診療時間 */

.site-branding {
  position: absolute;
	width: 220px;
	top: 148px;
	left: 20px;
	text-align: center;
}

.site-branding__logo {
	display: block;
}
.site-branding__tel {
	margin-top: 30px;
}
.site-branding__tel-label {
	font-size: 1.4rem;
	line-height: calc(22 / 14);
	letter-spacing: -.05em;
	padding-left: 0;
	
}
.site-branding__tel-number {
	display: flex;
	align-items: center;
	justify-content: center;
}
.site-branding__tel-number i {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 5px;
}
.site-branding__tel-number img {
	vertical-align: baseline;
}
.site-branding__tel-number span {
	font-family: din-2014, sans-serif;
	font-weight: 600;
	font-style: italic;
	font-size: 2.2rem;
	line-height: calc(30 / 22);
	letter-spacing: .11em;
	padding-left: .11em;
}

.site-branding__tel-time {
	font-size: 1.3rem;
	line-height: calc(19 / 13);
	letter-spacing: .1em;
	padding-left: .1em;
	margin-top: 5px;
}

/* 下部ブロックに診療時間・住所をまとめて配置（左下吸着） */
.site-infotime {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 450px;
	height: 260px;
	background-color: rgba(255, 255, 255, .9);
	padding-left: 60px;
	padding-right: 40px;
	padding-top: 34px;
	padding-bottom: 28px;
}
.site-infotime::before {
	content: "";
	width: 10px;
	height: 100%;
	background-color: rgba(0, 170, 187, .9);
	position: absolute;
	top: 0;
	right: -10px;
}

.clinic-hours__table {
	width: 100%;
	border-collapse: collapse;
}
.clinic-hours__table,
.clinic-hours__table thead th {
	border-bottom: 1px solid var(--txt-color);
}
.clinic-hours__table thead th {
	font-size: 1.4rem;
	line-height: calc(16 / 14);
	padding-left: .1em;
	padding-bottom: 7px;
}
.clinic-hours__head-label,
.clinic-hours__table tbody th {
	width: calc((130 / 350) * 100%);
}
.clinic-hours__table th,
.clinic-hours__table td {
	text-align: center;
	vertical-align: middle;
}
.clinic-hours__table td {
	padding-top: 8px;
	padding-bottom: 8px;
}
.clinic-hours__table td.clinic-hours__mark {
	font-size: 1.4rem;
	line-height: calc(18 / 14);
	letter-spacing: 0;
	color: var(--txt-color2);
}
.clinic-hours__table td.clinic-hours__mark span {
	color: var(--txt-color);
}
.clinic-hours__time > div {
	display: flex;
	align-items: center;
	justify-content: center;
}
.clinic-hours__time span {
	width: 4.6rem;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	font-family: futura-100, sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 1.6rem;
	line-height: calc(24 / 16);
	letter-spacing: .02em;
}
.clinic-hours__time span > span {
	font-family: 'dnp-shuei-mgothic-std', sans-serif;
	font-weight: 400;
	font-style: normal;
	margin-left: 1px;
	margin-right: 1px;
}
.clinic-hours__time span.clinic-hours__icon {
	width: 2.0rem;
	justify-content: center;
	padding-top: 2px;
}
.clinic-hours__note-row--primary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 8px;
}
.clinic-hours__note-left {
	font-size: 1.4rem;
	line-height: calc(18 / 14);
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.clinic-hours__note-left > span.clr2 {
	color: var(--txt-color2);
}
.clinic-hours__note-left > span.dis-flex {
	display: flex;
	align-items: center;
	justify-content: center;
}
.clinic-hours__note-left > span.dis-flex span.ft-ftr {
	font-family: futura-100, sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 1.6rem;
	line-height: calc(20 / 16);
	letter-spacing: .02em;
	display: flex;
	align-items: center;
	justify-content: center;
}
.clinic-hours__note-left > span.dis-flex span.ft-ftr > span {
	font-family: 'dnp-shuei-mgothic-std', sans-serif;
	font-weight: 400;
	font-style: normal;
	margin-left: 1px;
	margin-right: 1px;
}
.clinic-hours__note-left > span.dis-flex span.clinic-hours__icon {
	width: 2.0rem;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 2px;
}
.clinic-hours__note-right {
	font-size: 1.4rem;
	line-height: calc(18 / 14);
	letter-spacing: .1em;
}
.clinic-hours__note-row--secondary {
	font-size: 1.3rem;
	line-height: calc(16 / 13);
	letter-spacing: .15em;
	margin-top: 12px;
}
.site-branding__address {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 20px;
}
.site-branding__address span {
	font-size: 1.4rem;
	line-height: calc(19 / 14);
	letter-spacing: .05em;
}

/* --- Right hero area (image + vertical copy) --- */

.site-header__center {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 260px; /* 左ブロック分空ける */
  z-index: 1;
}

.hero {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: stretch;
}

.hero__copy {
  width: 120px;
  min-width: 120px;
	position: absolute;
	top: 54px;
	left: 174px;
}

.hero__copy img {
  width: auto;
  max-height: 80vh;
}

.hero__image {
	flex: 1;
	border-top-left-radius: 590px 590px; /* 左上角丸は一定 */
	overflow: hidden;
}

.hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center right;
}
@media (min-height: 1280px) {
	.hero__image img {
		object-position: center right 30px;
	}
}

/* 画像下中央の白いライン（アニメーション） */

.hero__scroll-indicator {
	position: absolute;
	bottom: 0px;
	left: calc(50% - 110px);
	transform: translateX(-50%);
	width: 2px;
	height: 64px;
	background: rgba(255, 255, 255, 0.3);
	border-radius: 999px;
}
.hero__scroll-indicator::before {
	content: "";
	width: 12px;
	height: 12px;
	background-color: #fff;
	border-radius: 50%;
	position: absolute;
	bottom: 62px;
	left: 50%;
	transform: translateX(-50%);
}
.hero__scroll-line {
	display: block;
	width: 100%;
	height: 64px;
	background: #ffffff;
	border-radius: 999px;
	animation: heroScrollLine 1.8s ease-in-out infinite;
}

@keyframes heroScrollLine {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	51% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

/* --- Hamburger / Close buttons (背景画像100×100px) --- */

.site-header__right {
	position: fixed;
	top: 40px;
	right: 60px;
	z-index: 950;
}

/* 共通ボタン形状 */
.menu-toggle,
.global-nav__close {
	width: 100px;
	height: 100px;
	padding: 0;
	border: none;
	background-color: transparent;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	cursor: pointer;
	border-radius: 50%;
	position: relative;
	transition: opacity 0.35s ease;
	box-shadow : 0px 0px 5px rgba(0, 0, 0, 0.3);
}


/* メニューを開くボタン画像 */
.menu-toggle {
  background-image: url("images/menu-open.svg");
}

/* メニューを閉じるボタン画像 */
.global-nav__close {
  background-image: url("images/menu-close.svg");
}

/* 任意：ホバー・フォーカスのフィードバック */
.menu-toggle:hover,
.global-nav__close:hover {
	opacity: 0.7;
}

.menu-toggle:focus-visible,
.global-nav__close:focus-visible {
  outline: 2px solid #00a8b8;
  outline-offset: 3px;
}

/* ナビ開閉時は背面のスクロールを止める */
body.nav-open {
  overflow: hidden;
}

/* ===== Global Navigation Overlay ===== */

.global-nav {
	position: fixed;
	inset: 0;
	z-index: 900;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.35s ease, visibility 0.35s ease;
	font-size: clamp(14px, 1.5vw, 16px); /* 横幅に応じてフォント自動調整 */
	background-color: rgba(0,0,0,.6);
}

.global-nav.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.global-nav__overlay {
	width: clamp(600px, 50vw, 760px);
	height: 100%;
	overflow-y: auto;
	margin-left: auto;
	margin-right: 0;
	display: flex;
	justify-content:center;
	background: var(--txt-color2);
	padding-top: 172px;
	color: #FFF;
}


/* Close button の位置だけここで上書き（共通形状は上） */
.global-nav__close {
	position: absolute;
	top: 40px;
	right: 60px;
}

/* Menu lists */

.global-nav__content {
	display: flex;
	flex-direction: column;
	gap: 56px;
}

.global-nav__menu {
	display: flex;
	flex-wrap: wrap;
	gap: 80px;
}

.global-nav__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.global-nav__item + .global-nav__item {
	margin-top: 20px;
}

.global-nav__item a {
	display: flex;
	align-items: center;
	font-size: 1.8rem;
	line-height: calc(30 / 18);
	letter-spacing: .13em;
	color: #fff;
	text-decoration: none;
	transition: all .3s;
}
.global-nav__item a:hover {
	opacity: .7;
}

.global-nav__bullet {
	display: inline-block;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background-image: url(images/ico-gnv-arrow.svg);
	background-size: cover;
	margin-right: 12px;
}

.global-nav__text {
	white-space: nowrap;
}

.global-nav__footer {
}

.global-nav__clinic-name {
	font-size: 1.6rem;
	line-height: calc(28 / 16);
	letter-spacing: .03em;
}

.global-nav__clinic-tel {
	font-size: 1.6rem;
	line-height: calc(28 / 16);
	letter-spacing: .03em;
	margin-top: 20px;
}

.global-nav__clinic-time {
	font-size: 1.4rem;
	line-height: calc(28 / 14);
	letter-spacing: .03em;
}
.global-nav__clinic > div {
	display: flex;
	align-items: center;
	margin-top: 12px;
}
.global-nav__clinic-address {
	font-size: 1.6rem;
	line-height: calc(28 / 16);
	letter-spacing: .03em;
	margin-right: 20px;
}
.global-nav__icon-link {
	display: flex;
	align-items: center;
}
.global-nav__icon-link li + li {
	margin-left: 8px;
}
.global-nav__icon-link li a {
	transition: all .3s;
}
.global-nav__icon-link li a:hover {
	opacity: .7;
}


/* ナビオープン時はハンバーガーを隠す */
body.nav-open .site-header__right {
  opacity: 0;
  pointer-events: none;
}

/* ===== Section sample ===== */



/* ===== Safety responsive adjustments (PCテーマ想定・簡易) ===== */

@media (max-height: 720px) {
  .site-header__left::before {
    height: 360px;
  }
  .site-header__left::after {
    height: 230px;
  }
}
#footer {
	background-color: var(--color-sub-blu);
}
.footer-top {
	padding-top: 160px;
	padding-bottom: 280px;
	display: flex;
	justify-content: space-between;
}
.footer-top__left {
	width: 450px;
}
.footer-top__left > div {
	margin-top: 20px;
	display: flex;
	justify-content: space-between;
}
.footer-top__right {
	width: 460px;
}
.footer-top__tel-box {
	margin-top: 26px;
	text-align: center;
}
.footer-top__tel {
	font-size: 1.6rem;
	display: inline-block;
	line-height: calc(30 / 16);
	letter-spacing: .05em;
	padding-left: .05em;
	position: relative;
}
.footer-top__tel::after {
	content: "";
	width: 100%;
	height: 2px;
	background-color: var(--color-sub-org);
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
.footer-top__tel-number {
	margin-top: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.footer-top__tel-number i {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 5px;
}
.footer-top__tel-number img {
	vertical-align: baseline;
}
.footer-top__tel-number span {
	font-family: din-2014, sans-serif;
	font-weight: 600;
	font-style: italic;
	font-size: 3.8rem;
	line-height: calc(50 / 38);
	letter-spacing: .11em;
	padding-left: .11em;
}
.footer-top__tel-time {
	margin-top: 16px;
	font-size: 1.5rem;
	line-height: calc(25 / 15);
	letter-spacing: .1em;
	padding-left: .1em;
}
.footer-top__time-box {
	margin-top: 25px;
}
.footer-top__time-box {
	
}
.footer-top__time-box .clinic-hours__table thead th {
	font-size: 1.8rem;
	line-height: calc(20 / 18);
	padding-left: .1em;
	padding-bottom: 7px;
}
.footer-top__time-box .clinic-hours__table td {
	padding-top: 8px;
	padding-bottom: 8px;
}
.footer-top__time-box .clinic-hours__table td.clinic-hours__mark {
	font-size: 2.0rem;
	line-height: calc(30 / 20);
	letter-spacing: 0;
	color: var(--txt-color2);
}
.footer-top__time-box .clinic-hours__time span {
	width: 5.5rem;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	font-family: futura-100, sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.0rem;
	line-height: calc(30 / 20);
	letter-spacing: .02em;
}
.footer-top__time-box .clinic-hours__time span > span {
	font-family: 'dnp-shuei-mgothic-std', sans-serif;
	font-weight: 400;
	font-style: normal;
	margin-left: 2px;
	margin-right: 2px;
}
.footer-top__time-box .clinic-hours__time span.clinic-hours__icon {
	width: 3.0rem;
	justify-content: center;
	padding-top: 2px;
}
.footer-top__time-box .clinic-hours__note-row--primary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 8px;
}
.footer-top__time-box .clinic-hours__note-left {
	font-size: 1.7rem;
	line-height: calc(24 / 17);
	letter-spacing: .15em;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.footer-top__time-box .clinic-hours__note-left > span.dis-flex {
	margin-top: -3px;
}
.footer-top__time-box .clinic-hours__note-left > span.dis-flex span.ft-ftr {
	font-size: 2.0rem;
	line-height: calc(24 / 20);
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	justify-content: center;
}
.footer-top__time-box .clinic-hours__note-left > span.dis-flex span.clinic-hours__icon {
	width: 2.0rem;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: 2px;
}
.footer-top__time-box .clinic-hours__note-right {
	font-size: 1.7rem;
	line-height: calc(24 / 17);
	letter-spacing: .1em;
}
.footer-top__time-box .clinic-hours__note-row--secondary {
	font-size: 1.6rem;
	line-height: calc(24 / 16);
	letter-spacing: .15em;
	margin-top: 22px;
}
.footer-top__address-box {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 40px;
}
.footer-top__address-box span {
	font-size: 1.6rem;
	line-height: calc(28 / 16);
	letter-spacing: .05em;
}
.copyright {
	width: 100%;
	height: 190px;
	background-color: var(--txt-color);
	color: #fff;
	position: relative;
	padding-top: 72px;
}
.copyright::before {
	content: "";
	width: 100%;
	height: 30px;
	background-image: url(images/copy-bg-head.svg);
	background-repeat: repeat-x;
	background-position: center bottom;
	background-size: auto 30px;
	position: absolute;
	top: -30px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}
.copyright > figure {
	position: absolute;
	top: -186px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
}
.copyright > p {
	font-size: 1.2rem;
	line-height: calc(20 / 12);
	letter-spacing: .15em;
	padding-left: .15em;
	text-align: center;
}
.pageTop {
	width: 116px;
	height: 238px;
	background-image: url(images/pagetop.png);
	background-size: cover;
	position: fixed;
	right: 0px;
	bottom: 20px;
	z-index: 899;
}
.pageTop:hover {
	background-image: url(images/pagetop-on.png);
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.pageTop {
		background-image: url(images/pagetop-2x.png);
	}
	.pageTop:hover {
		background-image: url(images/pagetop-on-2x.png);
	}
}
.top01-box {
	display: flex;
	justify-content: space-between;
}
.top01-box > div:first-child {
	width: 640px;
}
.top01-box > div:first-child h2 {
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
}
.top01-box > div:first-child h2 span {
	color: var(--txt-color2);
}
.top01-box > div:first-child p {
	margin-top: 40px;
	font-size: 1.8rem;
	line-height: calc(39 / 18);
	letter-spacing: .15em;
}

.top06-corporate-box {
	display: flex;
	justify-content: space-between;
}
.top06-corporate-box-left {
	width: 550px;
}
.top06-corporate-box-left .mds2 {
	text-align: left;
}
.top06-corporate-box-left p {
	font-size: 1.8rem;
	line-height: calc(38 / 18);
	letter-spacing: .15em;
	margin-top: 46px;
}
.top06-corporate-box-left .btn {
	margin-top: 50px;
}
.top06-corporate-box figure img {
	border-radius: 20px;
}
.about__message-box + .btn {
	margin-top: 30px;
	margin-left: auto;
	margin-right: auto;
}
.insta-section {
	background-image: url(images/insta-section-bg.png);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: auto 430px;
	min-height: 600px;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.insta-section {
		background-image: url(images/insta-section-bg-2x.png);
	}
}
.insta-box {
	height: 430px;
	position: relative;
}
.insta-box > figure:first-child {
	position: absolute;
	top: 57px;
	left: 129px;
}
.insta-box > figure:nth-child(2) {
	position: absolute;
	top: 196px;
	right: 152px;
}
.top09-recruit-section {
	min-height: 520px;
	background-image: url(images/top09-recruit-bg.jpg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.top09-recruit-section {
		background-image: url(images/top09-recruit-bg-2x.jpg);
	}
}
.top09-recruit-photo-box {
	position: relative;
	padding-top: 1px;
	text-align: center;
}
.top09-recruit-photo-box > figure {
	display: flex;
	justify-content: center;
	margin-top: -60px;
}
.top09-recruit-photo-box > figure > img {
	border-radius: 17px;
	margin-left: 5px;
	margin-right: 5px;
}
.top09-recruit-photo-box > figure > img:nth-child(2) {
	margin-top: 29px;
}
.top09-recruit-photo-box > figure > img:nth-child(3) {
	margin-top: 9px;
}
.top09-recruit-photo-box > span {
	display: block;
	margin-top: -59px;
}
.top09-recruit-box {
	text-align: center;
	margin-top: 38px;
}
.top09-recruit-box h2 {
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
	padding-left: .13em;
}
.top09-recruit-box p {
	margin-top: 16px;
	text-align: left;
	display: inline-block;
	font-size: 1.8rem;
	line-height: calc(37 / 18);
}
.top09-recruit-box .btn {
	margin-top: 36px;
	margin-left: auto;
	margin-right: auto;
}



.eyecatch {
	width: calc(100% - 290px);
	height: 510px;
	margin-top: -510px;
	margin-left: auto;
	margin-right: 0;
}
.eyecatch-img-area {
	width: 100%;
	height: 100%;
	position: relative;
}
.eyecatch-img-area > figure {
	width: 100%;
	height: 490px;
}
.eyecatch-img-area > figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center left;
}
.eyecatch__title-box {
	position: absolute;
	bottom: 49px;
	left: 30px;
}
.eyecatch__page-title {
	
}
.eyecatch__page-title span {
	display: inline-block;
	background-color: #fff;
	font-size: 3.1rem;
	line-height: calc(60 / 31);
	letter-spacing: .13em;
	padding-left: calc(24px - .13em);
	padding-right: 24px;
}
.eyecatch__page-txt {
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 2.6rem;
	line-height: calc(31 / 26);
	letter-spacing: .15em;
	padding-left: 2px;
	min-height: 9.3rem;
	color: var(--txt-color);
	margin-top: 19px;
}
.eyecatch__page-txt.txt-white {
	color: #fff;
}
.top02-news-section {
	padding-bottom: 90px;
}
.top02-news-wrap {
	width: 880px;
	margin-top: -30px;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}
.top02-news-wrap > figure {
	position: absolute;
	top: -158px;
	right: 0;
}
.top02-news-wrap h2 {
	font-size: 2.0rem;
	line-height: calc(36 / 20);
	letter-spacing: .2em;
	color: var(--txt-color2);
}
.top02-news-wrap h2::before {
	content: "○";
	color: var(--color-sub-org);
}

.news-outer {
	margin-top: 16px;
}
.topics_list {
	border-top: 1px solid var(--txt-color2);
	padding-top: 16px;
	padding-bottom: 16px;
}
.topics_list:first-child {
	border-top: none;
}
.topics_head {
	padding: 0 55px 0 6px;
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}
.date {
	font-size: 1.5rem;
	line-height: calc(20 /15);
	letter-spacing: .15em;
	padding-right: 12px;
	padding-top: 12px;
	padding-bottom: 12px;
	border-right: 1px solid var(--txt-color2);
}
.topics_list h3 {
	font-size: 1.5rem;
	line-height: calc(20 /15);
	letter-spacing: .15em;
	padding-right: 12px;
	padding-top: 12px;
	padding-bottom: 12px;
	width: calc(100% - 130px);
}
.topics_head figure {
	width: 26px;
	height: 26px;
	display: block;
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	background-image: url(images/news-close.svg);
	background-size: 26px auto;
}
.topics_head.active figure {
	transform: translateY(-50%) rotate(180deg);
}
.topics_head:hover {
	cursor: pointer;
}
.topics_head:hover .date, .topics_head:hover h4, .topics_head:hover figure {
	opacity: 0.7;
}
.topics_content {
	padding: 14px 55px 14px 6px;
	display: none;
}
.topics_head.active + .topics_content {
	display:block;
}
.topics_content {
	margin-top: 0;
}
.topics_content p {
	margin-top: 1.65em;
}
.topics_content p:first-child {margin-top: 0;}
.topics_content p strong {
	font-weight: 500;
}
.topics_content p em { font-style: italic; }
.topics_content p a {
	text-decoration: underline;
}
.topics_content p a:hover {
	text-decoration: none;
}
.topics_content p img {
	max-width: 100%;
	height: auto;
}
.aligncenter {
	display: block;
	margin: 0 auto;
}
.alignright { float: right; }
.alignleft { float: left; }

.ajaxLoad {
	padding-top: 36px;
	position: relative;
	z-index: 1;
}
.ajaxLoad > a {
	width: 170px;
	height: 30px;
	border-radius: 15px;
	background-color: var(--color-sub-org);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	text-decoration: none;
	color: #fff;
	font-size: 1.5rem;
	letter-spacing: .15em;
	transition: all .3s;
	background-image: url(images/ico-plus.svg);
	background-repeat: no-repeat;
	background-position: left 15px center;
	background-size: 12px auto;
}
.ajaxLoad > a:hover {
	opacity: .8;
}
#loading {
	width: 100%;
	height: 90px;
	background-image: url(images/loading.svg);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 30px auto;
	display: none;
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
}
.yoyaku-box {
	width: 880px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 80px;
	background-color: #fff;
	text-align: center;
	position: relative;
	padding-top: 36px;
	padding-bottom: 36px;
}
.yoyaku-box h3 {
	display: inline-block;
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
	padding-left: .13em;
	color: var(--txt-color2);
	border-bottom: 2px solid var(--color-sub-org);
}
.yoyaku-box p {
	margin-top: 20px;
	font-size: 1.5rem;
	line-height: calc(32 / 15);
}
.yoyaku-box > figure {
	position: absolute;
	left: 40px;
	bottom: -90px;
}
.yoyaku-box .footer-top__tel-number {
	margin-top: 10px;
}

.top03-features-head {
	padding-top: 105px;
	margin-bottom: 90px;
	position: relative;
}
.top03-features-head-txt {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
}
.top03-features-head-txt > span {
	display: flex;
	flex-direction: column;
	text-align: center;
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
}
.top03-features-head-txt > span > span:first-child {
	
	font-size: 2.1rem;
	line-height: calc(31/ 21);
	letter-spacing: .1em;
	padding-left: .1em;
	text-align: center;
}
.top03-features-head-txt > span > span + span {
	font-size: 17.0rem;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	color: var(--txt-color2);
	margin-top: -.13em;
}
.top03-features-head-txt > p {
	margin-left: 40px;
	font-size: 2.0rem;
	line-height: calc(32 / 20);
	letter-spacing: .18em;
}
.top03-features-wrap {
	margin-top: 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	position: relative;
}
.top03-features-wrap::before {
	content: "";
	width: 2px;
	height: 83px;
	background-color: #fff;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
}
.top03-features-wrap > div {
	width: calc(50% - 1px);
	padding-top: 83px;
	padding-bottom: 43px;
	position: relative;
}
.top03-features-wrap > div::before {
	content: "";
	width: 100%;
	height: 2px;
	background-image: url(images/line-bg-grn.svg);
	background-repeat: repeat-x;
	background-position: left top;
	background-size: auto 2px;
	position: absolute;
	top: -2px;
	left: 0;
}
.top03-features-wrap > div:first-child::before,
.top03-features-wrap > div:nth-child(2)::before {
	display: none;
}
.top03-features-wrap > div:nth-child(2n + 1) {
	padding-right: 79px;
}
.top03-features-wrap > div:nth-child(2n) {
	padding-left: 79px;
}
.top03-features-wrap > div:nth-child(2n + 1)::after {
	content: "";
	width: 2px;
	height: 100%;
	background-image: url(images/line-bg-grn-ver.svg);
	background-repeat: repeat-y;
	background-position: center top;
	background-size: 2px auto;
	position: absolute;
	top: 0;
	right: -2px;
}
.top03-features-wrap > div:nth-child(2n)::after {
	content: "";
	width: 64px;
	height: 64px;
	background-color: #fff;
	position: absolute;
	left: -32px;
	bottom: -32px;
	z-index: 10;
}
.top03-features-wrap > div > span {
	position: absolute;
	top: 30px;
	left: 0;
	z-index: 3;
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 11.7rem;
	line-height: .9;
	letter-spacing: 0;
	color: var(--txt-color2);
}
.top03-features-wrap > div:nth-child(2n) > span {
	left: 79px;
}
.top03-features-wrap > div figure img {
	border-radius: 15px;
}
.top03-features-wrap > div h3 {
	font-size: 2.2rem;
	line-height: calc(36 / 22);
	letter-spacing: .05em;
	color: var(--txt-color2);
	margin-top: 22px;
}
.top03-features-wrap > div p {
	font-size: 1.5rem;
	line-height: calc(27 / 15);
	letter-spacing: .2em;
	margin-top: 15px;
}

.top04-hoiku-section {
	min-height: 540px;
	background-image: url(images/top05-hoiku.jpg);
	background-position: right center;
	background-size: cover;
	position: relative;
	z-index: 2;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.top04-hoiku-section {
		background-image: url(images/top05-hoiku-2x.jpg);
	}
}
.top04-hoiku-box {
	padding-top: 1px;
	color: #fff;
}
.top04-hoiku-box > figure {
	text-align: center;
	margin-top: -51px;
}
.top04-hoiku-box h2 {
	font-size: 3.3rem;
	line-height: calc(51 / 33);
	letter-spacing: .19em;
	margin-top: 36px;
}
.top04-hoiku-box p {
	font-size: 1.7rem;
	line-height: calc(34 / 17);
	letter-spacing: .15em;
	margin-top: 38px;
}

.top05-medical-wrap {
	margin-top: 100px;
	display: flex;
	flex-wrap: wrap;
	gap: 90px 50px;
}
.top05-medical-wrap > div {
	width: 300px;
	text-align: center;
	position: relative;
}
.top05-medical-wrap > div + div::before {
	content: "";
	width: 50px;
	height: 100%;
	position: absolute;
	top: 0;
	left: -50px;
	background-image: url(images/line-bg-grn-ver.svg);
	background-repeat: repeat-y;
	background-position: center top;
	background-size: 2px auto;
}
.top05-medical-wrap > div:nth-child(3) + div::before {
	display: none;
}
.top05-medical-wrap figure img {
	border-radius: 15px;
}
.top05-medical-wrap > div > span {
	width: 64px;
	height: 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background-image: url(images/top05-ico.svg);
	background-size: cover;
	margin-left: auto;
	margin-right: auto;
	margin-top: -28px;
	position: relative;
	z-index: 2;
	color: #fff;
}
.top05-medical-wrap > div > span > span:first-child {
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 1.0rem;
	line-height: 1;
	letter-spacing: .1em;
	padding-left: .1em;
}
.top05-medical-wrap > div > span > span + span {
	font-size: 2.2rem;
	line-height: 1;
	letter-spacing: 0;
	margin-top: 4px;
	padding-bottom: 5px;
}
.top05-medical-wrap > div p {
	font-size: 2.2rem;
	line-height: calc(36 / 22);
	letter-spacing: .1em;
	padding-left: .1em;
	height: calc((36em / 22) * 2);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--txt-color2);
	margin-top: 18px;
}

.top05-medical-wrap > div > .btn {
	margin-top: 24px;
	margin-left: auto;
	margin-right: auto;
}
.btn-pdf {
	width: 400px;
	height: 60px;
	border: 2px solid var(--color-main-grn);
	background-color: var(--color-sub-blu);
	border-radius: 10px;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--txt-color2);
	margin-top: 100px;
	margin-left: auto;
	margin-right: auto;
	background-image: url(images/ico-pdf.png);
	background-repeat: no-repeat;
	background-position: right 17px center;
	background-size: 30px auto;
	transition: all .3s;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
	.btn-pdf {
		background-image: url(images/ico-pdf-2x.png);
	}
}
.btn-pdf:hover {
	opacity: .7;
}

.about__message-box {
	display: flex;
	justify-content: space-between;
}
.about__message-box-left {
	width: 530px;
}
.about__message-box-left h3 {
	margin-top: 40px;
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
}
.about__message-box-left h3 span {
	color: var(--txt-color2);
}
.about__message-box-left p {
	margin-top: 40px;
	font-size: 1.8rem;
	line-height: calc(39 / 18);
	letter-spacing: .15em;
}
.about__message-box-right {
	width: 200px;
	padding-top: 510px;
	position: relative;
	text-align: right;
}
.about__message-box-right > figure {
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
}
.name-sign {
	display: inline-block;
	text-align: right;
}
.name-sign > span {
	display: block;
	text-align: left;
}
.name-sign > span > span {
	letter-spacing: 0;
}
.sign01 {
	font-size: 1.6rem;
	line-height: calc(29 / 16);
}
.sign02 {
	font-size: 2.8rem;
	line-height: calc(40 / 28);
	letter-spacing: .25em;
}
.sign03 {
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 1.8rem;
	line-height: calc(31 / 18);
	letter-spacing: .18em;
}
.about__profile--wrap {
	margin-top: 80px;
}
.about__profile--box {
	display: flex;
	justify-content: space-between;
}
.about__profile--box-right {
	width: 464px;
}
.about__profile--box-col1 {
	display: block;
	margin-top: 50px;
}
.about__profile--box h3 {
	font-size: 1.8rem;
	line-height: calc(18 / 18);
	letter-spacing: .1em;
	color: var(--txt-color2);
	background-image: url(images/line-bg-grn.svg);
	background-repeat: repeat-x;
	background-position: left bottom;
	background-size: auto 2px;
	padding-bottom: 14px;
}
.about__profile--box * + h3 {
	margin-top: 64px;
}
.about__profile--box h3 + * {
	margin-top: 24px;
}
.about__profile--box dl > div {
	display: flex;
	font-size: 1.5rem;
	line-height: calc(28 / 15);
	letter-spacing: .1em;
}
.about__profile--box dl > div > dt {
	width: 5.5em;
	color: var(--txt-color2);
}
.about__profile--box li {
	position: relative;
	padding-left: 1.1em;
}
.about__profile--box li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}
.about__staff-wrap {
	margin-top: 66px;
}
.about__staff-wrap > p {
	font-size: 1.8rem;
	line-height: calc(37 / 18);
	letter-spacing: .15em;
}
.about__staff-box {
	margin-top: 40px;
	display: flex;
	justify-content: space-between;
}
.about__staff-box-left {
	width: 440px;
}
.about__staff-box-left h3 {
	display: inline-block;
	font-size: 2.2rem;
	line-height: calc(26 / 22);
	color: var(--txt-color2);
	border-bottom: 1px solid var(--color-sub-org);
}
.about__staff-box-left .about__staff-doc-name,
.about__staff-box-left h3 + p {
	font-size: 2.2rem;
	line-height: calc(35/ 22);
	margin-top: 10px;
}
.about__staff-box-left h3 + p + ul {
	margin-top: 5px;
}
.about__staff-box-left h3 + p + ul li {
	font-size: 1.8rem;
	line-height: calc(28 / 18);
	position: relative;
	padding-left: 1.1em;
}
.about__staff-box-left h3 + p + ul li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}
.spacer {
	height: 2px;
	background-image: url(images/line-bg-grn.svg);
	background-repeat: repeat-x;
	background-position: left bottom;
	background-size: auto 2px;
	margin-top: 22px;
	margin-bottom: 22px;
}
.facility-mds {
	margin-top: 30px;
}
.facility-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 50px 60px;
	margin-top: 20px;
}
.modal-item {
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.modal-item figure {
	width: 470px;
	height: 310px;
	margin: 0;
	overflow: hidden;
}
.modal-item figure img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.modal-item:hover figure img {
	transform: scale(1.05);
}
.modal-item:hover {
	opacity: 0.9;
}
.facility-list .caption {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 10px;
}
.facility-list .caption h3 {
	font-size: 1.8rem;
	margin: 0;
}
.btn-zoom img {
	width: 34px;
	height: 34px;
	opacity: 0.8;
	transition: opacity 0.2s ease;
}
.modal-item:hover .btn-zoom img {
	opacity: 1;
}
#cboxContent {
	border-radius: 0!important;
}
#cboxCloseCustom {
	position: fixed;
	top: 60px;
	right: 60px;
	width: 80px;
	height: 80px;
	background: url("images/ico-gal-close.svg") no-repeat center center / contain;
	border: none;
	cursor: pointer;
	z-index: 100001;
	opacity: 0.8;
	transition: opacity 0.2s ease;
}
#cboxCloseCustom.is-show {
	opacity: 0.8;
}

#cboxCloseCustom:hover {
	opacity: 1;
}
#colorbox img:focus,
#colorbox:focus,
#cboxLoadedContent:focus {
	outline: none !important;
}
.about__facility-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
	margin-top: 58px;
}
.about__facility-wrap > div {
	width: 300px;
	text-align: center;
}
.about__facility-wrap figure img {
	border-radius: 15px;
}
.about__facility-wrap p {
	font-size: 1.8rem;
	line-height: calc(26 / 18);
	letter-spacing: .05em;
	padding-left: .05em;
	color: var(--txt-color2);
	margin-top: 20px;
}


.general__1st-box {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
}
.general__1st-right {
	width: 540px;
}
.general__1st-mds {
	font-size: 2.8rem;
	line-height: calc(45 / 28);
	letter-spacing: .13em;
	margin-top: -.15em;
}
.general__1st-mds span {
	color: var(--txt-color2);
}
.general__1st-txt {
	font-size: 1.8rem;
	line-height: calc(37 / 18);
	letter-spacing: .2em;
	margin-top: 18px;
}
.soudan-box {
	background-color: #fff;
	margin-top: 68px;
	border-radius: 7px;
	position: relative;
}
.soudan-box > div {
	display: flex;
	justify-content: center;
	padding-top: 30px;
	padding-bottom: 30px;
}
.soudan-box > div ul:first-child {
	min-width: 300px
}
.soudan-box > div ul.kinto {
	min-width: 400px;
}
.soudan-box > div ul + ul {
	margin-left: 30px;
}
.soudan-box > div ul li {
	font-size: 1.8rem;
	line-height: calc(52 / 18);
	letter-spacing: .09em;
	position: relative;
	padding-left: 28px;
}
.soudan-box > div ul li::before {
	content: "";
	width: 18px;
	height: 52px;
	background-image: url(images/ico-check-general.svg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: 18px auto;
	position: absolute;
	top: 0;
	left: 0;
}
.soudan-box > figure {
	position: absolute;
	top: -159px;
	left: 100px;
}
.osusume-wrap .soudan-box > figure {
	left: 120px;
}
.kids03-wrap .soudan-box {
	background-color: var(--color-sub-blu);
}
.kids03-wrap .soudan-box > figure {
	position: absolute;
	top: -159px;
	left: auto;
	right: 64px;
}

.kids02-btm {
	margin-top: 100px;
}
.kids02-list {
	margin-top: 30px;
	display: flex;
	flex-wrap: wrap;
	gap: 20px 40px;
}
.kids02-list li {
	width: 480px;
	min-height: 80px;
	border-radius: 7px;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.0rem;
	line-height: calc(27 / 20);
	letter-spacing: .15em;
	padding-left: .15em;
	text-align: center;
}
.kids03-btm {
	margin-top: 100px;
	text-align: center;
}
.kids03-btm > p {
	margin-top: 36px;
	text-align: left;
	font-size: 1.5rem;
	line-height: calc(38 / 15);
	letter-spacing: .15em;
}
.kids03-btm table {
	text-align: left;
}

.col2-photo {
	margin-top: 64px;
	display: flex;
	justify-content: space-between;
}
.caution-box {
	margin-top: 140px;
	background-color: #fff;
	border: 1px solid var(--txt-color2);
	border-radius: 7px;
	padding-top: 52px;
	padding-bottom: 59px;
	padding-left: 54px;
	padding-right: 54px;
}
.caution-box-mds {
	text-align: center;
}
.caution-box-mds h2,
.caution-box-mds h3 {
	display: inline-block;
	background-color: var(--txt-color2);
	border-radius: 25px;
	color: #fff;
	font-size: 2.0rem;
	line-height: calc(24 / 20);
	letter-spacing: .18em;
	padding-left: calc(48px + .18em);
	padding-right: 48px;
	padding-top: 13px;
	padding-bottom: 13px;
}
.caution-box-ul {
	margin-top: 30px;
}
.caution-box-ul li {
	position: relative;
	padding-left: 1.5em;
	line-height: calc(32 / 15);
	letter-spacing: .15em;
}
.caution-box-ul li::before {
	content: "●";
	position: absolute;
	top: 0;
	left: 0;
}
.caution-box p.cau {
	margin-top: 20px;
	position: relative;
	padding-left: 1.5em;
}
.caution-box p.cau::before {
	content: "※";
	position: absolute;
	top: 0;
	left: 0;
}

.kids-head-box {
	margin-top: 90px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.kids-head-box > div {
	width: 540px;
}
.kids-head-box > div p {
	font-size: 1.8rem;
	line-height: calc(37 / 18);
	letter-spacing: .15em;
}
.kids-head-box > div p + p {
	margin-top: 37px;
}
.kids02-wrap .soudan-wrap {
	margin-top: 154px;
}
.details-list-wrap {
	margin-top: 58px;
}
.details-list + .details-list {
	margin-top: 40px;
}
.details-list {
	padding-top: 35px;
	padding-bottom: 49px;
	padding-left: 59px;
	padding-right: 59px;
	border-radius: 7px;
}
.details-list .mds2 {
	text-align: left;
}
.details-list .mds2 h3 {
	font-size: 2.2rem;
	border-width: 1px;
}
.details-list p {
	margin-top: 20px;
	letter-spacing: .15em;
}
.details-list:nth-child(2n + 1) {
	border: 1px solid #b0dadd;
	background-color: #fff;
}
.details-list:nth-child(2n) {
	border: 1px solid var(--color-sub-blu);
	background-color: var(--color-sub-blu);
}
.self-check-wrap {
	margin-top: 120px;
	display: flex;
	justify-content: space-between;
}
.self-check-wrap > div {
	width: 520px;
}
.self-check-wrap h2 {
	display: inline-block;
	padding-top: 42px;
	background-image: url(images/self-check-mds.svg);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: 130px auto;
	font-size: 2.6rem;
	line-height: calc(45 / 26);
	letter-spacing: .18em;
	position: relative;
}
.self-check-wrap h2 span {
	color: var(--txt-color2);
}
.self-check-wrap h2::after {
	content: "";
	width: 100%;
	height: 3px;
	background-image: url(images/line-org.svg);
	background-repeat: repeat-x;
	background-position: left center;
	background-size: auto 3px;
	position: absolute;
	bottom: -2px;
	left: 0;
}
.self-check-wrap p {
	margin-top: 33px;
}
.self-check-list-box {
	margin-top: 50px;
	background-color: var(--color-sub-blu);
	border-radius: 7px;
	padding-top: 50px;
	padding-bottom: 60px;
	padding-left: 75px;
	position: relative;
}
.self-check-list-box li {
	font-size: 2.0rem;
	line-height: calc(42 / 20);
	letter-spacing: .15em;
	padding-left: 40px;
	position: relative;
}
.self-check-list-box li::before {
	content: "";
	width: 24px;
	height: 42px;
	background-image: url(images/ico-self-check.svg);
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 24px auto;
	position: absolute;
	top: 0;
	left: 0;
}
.self-check-list-box > figure {
	position: absolute;
	right: 90px;
	bottom: 0;
}
.whitening02-wrap * + .mds,
.whitening02-wrap * + .mds2,
.whitening02-wrap .pay-wrap {
	margin-top: 170px;
}
.implant03-wrap * + .mds,
.implant03-wrap * + .mds2,
.implant03-wrap .pay-wrap {
	margin-top: 170px;
}
/* テーブル全体のスタイル */
.whitening-table {
	width: 1000px;
	margin-top: 50px;
	border-collapse: collapse;
	background-color: #fff;
}

/* 全セルの共通設定 */
.whitening-table th, 
.whitening-table td {
	border: 1px solid #b0dadd;
	text-align: center;
	vertical-align: middle;
	padding: 3.0rem 1rem;
	box-sizing: border-box;
	font-weight: 400;
}

/* 左側の青い列（見出し列） */
.whitening-table th.row-header {
	background-color: #00aabb;
	color: #fff;
	font-size: 1.6rem;
	width: 30%;
}

/* 最上部のヘッダー行 */
.whitening-table thead th {
	padding: 2rem 1rem;
	color: #113770;
	font-size: 1.6rem;
	background-color: #eff6f8;
}

/* 左上の角（青い空白部分） */
.whitening-table thead th.corner {
	background-color: #00aabb;
	border-color: #b0dadd;
}

/* データセルの中身（フレックスボックスで配置） */
.cell-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
}

/* 記号（○×△） */
.symbol {
	font-size: 3.0rem;
	color: #00aabb;
	line-height: 1;
}

/* 説明テキスト */
.description {
	font-size: 1.6rem;
	color: #113770;
}

/* 料金表のスタイル */
.price-table {
	width: 1000px;
	border-collapse: collapse;
	margin-top: 50px;
	background-color: #eff6f8; /* 行の背景色（薄いグレー/青） */
}

/* 全セルの共通設定 */
.price-table th,
.price-table td {
	border: 1px solid #b0dadd;
	padding: 2rem 1rem;
	text-align: center;
	color: #113770;
	box-sizing: border-box;
	font-size: 1.6rem;
	line-height: 1.5;
}

/* ヘッダー（青背景部分） */
.price-table thead th {
	background-color: #00aabb;
	font-weight: 400;
	color: #fff;
	width: 50%; /* 2列を均等幅に設定 */
}

/* 金額の文字サイズ変更 */
.price-table .price {
	font-size: 1.9rem;
	background-color: #fff;
}

.pay-wrap {
	text-align: center;
}
.pay-wrap .mds2 {
	position: relative;
}
.pay-wrap .mds2 figure {
	position: absolute;
	top: 3px;
	right: 1px;
}
.pay-wrap p {
	margin-top: 44px;
}
.pay-box {
	margin-top: 50px;
	border: 1px solid var(--txt-color2);
	border-radius: 7px;
	width: 100%;
	height: 360px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.corporate02-section {
	padding-bottom: 220px;
}
.corporate02-section .yoyaku-box {
	margin-top: 180px;
	width: 100%;
	background-color: var(--color-sub-blu);
}
.corporate02-section .yoyaku-box > figure {
	left: 170px;
}

.implant-features-box {
	margin-top: 100px;
	padding-bottom: 54px;
	display: flex;
	justify-content: space-between;
}
.implant-features-box + .implant-features-box {
	margin-top: 1px;
	padding-top: 54px;
	position: relative;
}
.implant-features-box + .implant-features-box::before {
	content: "";
	width: 100%;
	height: 1px;
	background-color: var(--txt-color2);
	position: absolute;
	top: -1px;
	left: 0;
}
.implant-features-box > span {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
}
.implant-features-box > span > span:first-child {
	font-size: 1.5rem;
	line-height: calc(15/ 15);
	letter-spacing: .1em;
	padding-left: .1em;
	color: var(--txt-color2);
	text-align: center;
}
.implant-features-box > span > span + span {
	font-size: 11.7rem;
	line-height: 1;
	letter-spacing: 0;
	color: var(--color-sub-org);
	margin-top: 10px;
}
.implant-features-box > div {
	width: 500px;
}
.implant-features-box h3 {
	font-size: 2.2rem;
	line-height: calc(35 / 22);
	letter-spacing: .18em;
	color: var(--txt-color2);
}
.implant-features-box p {
	margin-top: 20px;
	letter-spacing: .15em;
}



.flow-wrap {
	margin-top: 50px;
}
.flow-box {
	background-color: var(--color-sub-blu);
	border-radius: 7px;
	display: flex;
	align-items: center;
	padding-top: 25px;
	padding-bottom: 22px;
	position: relative;
	padding-left: 59px;
}
.flow-box::after {
	content: "";
	width: 34px;
	height: 60px;
	background-image: url(images/arrow-step.svg);
	background-size: cover;
	position: absolute;
	bottom: -69px;
	left: 66px;
}
.flow-box:last-of-type::after {
	display: none;
}
.flow-box + .flow-box {
	margin-top: 80px;
}
.flow-box > span {
	width: 50px;
	height: 112px;
	background-image: url(images/ico-step.svg);
	background-size: cover;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.flow-box > span > span:first-child {
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 1.1rem;
	line-height: calc(11/ 11);
	letter-spacing: .1em;
	padding-left: .1em;
	text-align: center;
	padding-top: 28px;
}
.flow-box > span > span + span {
	font-size: 3.0rem;
	line-height: 1;
	letter-spacing: 0;
	color: var(--txt-color2);
	margin-top: 5px;
}
.flow-box > h3 {
	width: 218px;
	text-align: center;
	font-size: 2.2rem;
	letter-spacing: .18em;
	padding-left: .18em;
	color: var(--txt-color2);
}
.implant03-wrap .flow-box > h3 {
	width: 250px;
}
.flow-box > p {
	width: 580px;
}
.implant-last-head {
	margin-top: 40px;
	position: relative;
	display: flex;
	justify-content: space-between;
}
.implant-last-head p {
	font-size: 1.8rem;
	line-height: calc(37 /18);
	letter-spacing: .15em;
	width: 730px;
}
.implant-last-wrap {
	background-color: var(--color-sub-blu);
	padding-top: 60px;
	padding-bottom: 70px;
	padding-left: 60px;
	padding-right: 60px;
}
.implant-last-wrap + .implant-last-wrap {
	margin-top: 60px;
}
.implant-last-box {
	display: flex;
	justify-content: space-between;
}
.implant-last-box > div {
	text-align: left;
	width: 520px;
}
.implant-last-box > div .mds2 {
	text-align: left;
}
.implant-last-box > div .mds2 h3 {
	font-size: 2.3rem;
	line-height: calc(32 / 23);
}
.implant-last-box > div p {
	line-height: calc(32 / 15);
	margin-top: 20px;
}
.implant-last-tbl + * {
	margin-top: 45px;
}
.implant-last-tbl {
	margin-top: 40px;
	width: 100%;
	border-collapse: collapse;
	background-color: #fff;;
}

/* 全セルの共通設定 */
.implant-last-tbl th,
.implant-last-tbl td {
	border: 1px solid #b0dadd;
	padding: 2rem 1rem;
	text-align: center;
	color: #113770;
	box-sizing: border-box;
	font-size: 1.6rem;
	line-height: 1.5;
}

.implant-last-tbl thead th {
	background-color: #00aabb;
	font-weight: 400;
	color: #fff;
	width: 50%;
}

.implant-last-tbl .price {
	font-size: 1.9rem;
}

.access01-wrap {
	width: 880px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.gmap {
	margin-top: 60px;
}
.access01-wrap > p {
	margin-top: 40px;
	font-size: 1.6rem;
	line-height: calc(27 /16);
	letter-spacing: .03em;
	padding-left: .03em;
}
.access01-wrap .btn {
	margin-top: 40px;
	margin-left: auto;
	margin-right: auto;
}
.access02-wrap {
	margin-top: 160px;
	display: flex;
	justify-content: space-between;
}
.access02-wrap > div {
	width: 480px;
}
.access02-wrap .mds2 {
	text-align: left;
}
.access02-wrap figure {
	margin-top: 20px;
}
.access02-wrap p {
	margin-top: 20px;
	font-size: 1.5rem;
	line-height: calc(32 / 15);
}


.recruit02-wrap {
	position: relative;
}
.recruit02-wrap > figure {
	position: absolute;
	top: -70px;
	right: 140px;
}
.recruit02-box {
	display: flex;
	justify-content: space-between;
	margin-top: 100px;
}
.recruit02-box + .recruit02-box {
	margin-top: 50px;
	padding-top: 50px;
	border-top: 1px solid var(--txt-color2);
}
.recruit02-box > div {
	width: 640px;
}
.recruit02-box > div > span {
	width: 64px;
	height: 60px;
	background-image: url(images/recruit02-ico.svg);
	background-size: cover;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-align: center;
}
.recruit02-box > div > span > span:first-child {
	font-family: din-2014, sans-serif;
	font-weight: 200;
	font-style: normal;
	font-size: 1.0rem;
	line-height: 1;
	letter-spacing: .1em;
	padding-left: .1em;
}
.recruit02-box > div > span > span + span {
	font-size: 2.2rem;
	line-height: 1;
	letter-spacing: 0;
	margin-top: 0px;
	padding-bottom: 4px;
}
.recruit02-box > div h3 {
	font-size: 2.2rem;
	line-height: calc(30 / 22);
	letter-spacing: .18em;
	color: var(--txt-color2);
	margin-top: 14px;
}
.recruit02-box > div p {
	margin-top: 16px;
	font-size: 1.5rem;
	line-height: calc(27 / 15);
}

.recruit-tbl {
	width: 100%;
	margin-top: 70px;
}
.recruit-tbl th,
.recruit-tbl td {
	border:1px solid var(--txt-color2);
	font-feature-settings: normal;
}
.recruit-tbl th {
	width: 17%;
	background-color: var(--color-sub-blu);
	text-align: center;
	font-size: 1.8rem;
	line-height: calc(30 / 18);
	letter-spacing: .13em;
	padding-left: .13em;
	color: var(--txt-color2);
	padding-top: 30px;
	padding-bottom: 29px;
}
.recruit-tbl th span {
	margin-right: 2.26em;
}
.recruit-tbl td {
	font-size: 1.6rem;
	line-height: calc(30 / 16);
	letter-spacing: .13em;
	padding-left: 28px;
	padding-top: 30px;
	padding-bottom: 29px;
}
.corporate-tbl th span.moji1 {
	margin-right: 1.13em;
}
.corporate-tbl td li {
	position: relative;
	padding-left: 1em;
}
.corporate-tbl td li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}
.corporate-tbl td p.cau {
	position: relative;
	padding-left: 1em;
}
.corporate-tbl td p.cau::before {
	content: "※";
	position: absolute;
	top: 0;
	left: 0;
}
.recruit04-wrap {
	margin-top: 50px;
	text-align: center;
}
/* =====================================================
   Contact Form 7 応募フォーム（PC専用）
   ===================================================== */
/* ---------- 全体 ---------- */
.entry-form {
  max-width: 1000px;
  margin: 50px auto 0;
  padding: 40px 0 70px;
  background: var(--color-sub-blu);
  box-sizing: border-box;
}
/* ---------- 各項目 ---------- */
.form-row {
  margin-bottom: 30px;
}
/* ---------- ラベル行（左：項目名 / 右：必須） ---------- */
.form-head {
  max-width: 640px;
  margin: 0 auto 16px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
}
.form-head .label {
  color: var(--txt-color2);
  font-size: 1.6rem;
	line-height: calc(26 / 16);
}
.form-head .required {
  background: #e60012;
  color: #fff;
  font-size: 1.3rem;
	line-height: calc(14 / 13);
  padding: 6px 10px;
  border-radius: 13px;
  white-space: nowrap;
}
/* ---------- 入力エリア ---------- */
.form-body {
  max-width: 640px;
  margin: 0 auto;
}
/* テキスト・メール・TEL・textarea */
.form-body input[type="text"],
.form-body input[type="email"],
.form-body input[type="tel"],
.form-body textarea {
  width: 100%;
  padding: 14px 16px;
  background-color: #fff;          /* ★ 白を明示 */
  border: none;
  border-radius: 4px;
  box-sizing: border-box;
  font-size: 15px;
  line-height: 1.6;
}
/* textarea 高さ */
.form-body textarea {
  min-height: 160px;
  resize: vertical;
}
/* ---------- ラジオボタン ---------- */
.form-body .wpcf7-radio {
  background-color: #fff;          /* ★ 白背景 */
  padding: 16px 20px;
  border-radius: 4px;
  box-sizing: border-box;
  display: flex;
  gap: 30px;
}
.form-body .wpcf7-list-item {
  margin: 0;
}
.form-body .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 15px;
}
/* ---------- 個人情報の取り扱い ---------- */
.privacy-box {
  background: #fff;
  padding: 28px 30px;
  box-sizing: border-box;
  font-size: 1.5rem;
  line-height: calc(27 / 15);
}
.privacy-box p {
  margin: 0;
}
.privacy-box p strong {
	font-weight: 400;
}
.privacy-box ol {
  margin: 0 0 0 22px;
  padding: 0;
}
.privacy-box li {
  margin-bottom: 0;
}
/* ---------- 同意チェック ---------- */
.form-row.agree {
  max-width: 640px;
  margin: 40px auto 0;
  font-size: 14px;
}
.form-row.agree label {
  cursor: pointer;
}
.form-row.agree .wpcf7-list-item-label {
	font-size: 1.7rem;
	line-height: calc(27 / 17);
	padding-left: 5px;
}
/* ---------- 送信ボタン ---------- */
.form-submit {
  text-align: center;
  margin-top: 80px;
}
.form-submit input[type="submit"] {
  width: 280px;
	height: 60px;
	background-color: var(--color-sub-org);
	border-radius: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.6rem;
	line-height: calc(16 / 16);
	letter-spacing: .15em;
	padding-left: .15em;
	background-image: url(images/ico-arrow-btn.svg);
	background-repeat: no-repeat;
	background-position: right 22px center;
	background-size: 14px auto;
	text-decoration: none;
	transition: opacity .3s;
	margin-left: auto;
	margin-right: auto;
}
.form-submit input[type="submit"]:hover {
	opacity: .7;
}
.wpcf7-not-valid-tip {
	text-align: left;
}
/* 見出しを左寄せに固定（中寄せを打ち消す） */
.entry-form .form-head .label {
  text-align: left !important;
  justify-self: start;
}
/* form-head 自体がセンター寄せになっても、文字は左に */
.entry-form .form-head {
  text-align: left !important;
}
/* ラジオを縦並びに固定（横並びを打ち消す） */
.entry-form .form-body .wpcf7-radio {
  display: block !important; /* flexを無効化 */
}

.entry-form .form-body .wpcf7-list-item {
  display: block;
  margin: 0 0 10px 0;
}
.entry-form .form-body .wpcf7-list-item.last {
	margin-bottom: 0;
}
.entry-form .privacy-box {
  text-align: left !important;
}
.entry-form .privacy-box p,
.entry-form .privacy-box ol,
.entry-form .privacy-box li {
  text-align: left !important;
}
.entry-form .privacy-box ol li {
	list-style: decimal;
}
.entry-form .form-row.agree {
  text-align: left !important;
}
/* label・テキストを左寄せに固定 */
.entry-form .form-row.agree label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
}
