@charset "utf-8";
* {
    margin: 0;
    padding: 0;
    line-height: 100%;
    box-sizing: border-box;
}
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    visibility: hidden;
}
html.wf-active {
    visibility: visible;
}
body {
    font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
    background-color: #fff;
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
}
/* ステータスバー透過防止 */
.for-status-bars {
    position: fixed;
    top: 0;
    pointer-events: none;
    height: 5px;
    width: 100%;
    background-color: #000;
    mix-blend-mode: lighten;
}
/* タブバー透過防止 */
.for-tab-bars {
    position: fixed;
    bottom: 0;
    pointer-events: none;
    height: 4px;
    width: 100%;
    background-color: #000;
    mix-blend-mode: lighten;
}
h1, h2, h3, h4, h5, h6 {
    color: #222;
    font-feature-settings: "palt";
    letter-spacing: 0.06em;
}
p, li, th, td {
    color: #222;
    letter-spacing: 0.02em;
}
p, .default {
    font-size: 16px;
	line-height: 170%;
    text-align: justify;
}
.tight {
    line-height: 160%;
}
li, th, td {
    font-size: 16px;
    line-height: 150%;
}
@media screen and (min-width: 1000px){
p {
    font-size: 17px;
	line-height: 180%;
}
li, th, td {
    font-size: 17px;
    line-height: 160%;
}
}

.sml01 {
    font-size: 16px;
    line-height: 160%;
}
.sml02 {
    font-size: 15px;
    line-height: 150%;
}
.lrg01 {
    font-size: 18px;
}
table, ul, ol {
    width: 100%;
    text-align: left;
	list-style: none;
    border-collapse: collapse;
}
.palt {
	font-feature-settings: "palt";
}
.pkna {
	font-feature-settings: "pkna";
}
.bold {
    font-weight: bold;
}
.normal {
    font-weight: normal;
}
.justify {
    text-align: justify;
}
.left {
    text-align: left;
}
.right {
    text-align: right;
}
.center {
	text-align: center;
}
.block {
    display: block;
}
.inlineblock {
    display: inline-block;
}
.white {
    color: #fff;
}
.yellow {
    color: #ff0;
}
.mainclr {
    color: #00ac97;
}
.subclr {
    color: #ff6e8c;
}
.clear {
    opacity: 0;
}
.rectangle {
    color: #00ac97;
    display: inline-block;
    width: 16px;
    transform: scale(0.5, 1.1);
    transform-origin: top left;
    margin-right: -4px;
    vertical-align: 1px;
}
a {
	color: #222;
	text-decoration: none;
    transition: all 0.2s ease;
}
a.nav_now,
a.tit_now,
a.g_btn_now,
a[aria-current="page"],
a[aria-current="true"]{
  transition: none !important;
}
a img {
	border: none;
}
img {
    width: 100%;
	height: auto;
    display: block;
	object-fit: cover;
}
a:hover, a:active, a:focus {
	text-decoration: none;
}
.usa {
    text-indent: -1em;
    padding-left: 1em;
}
.serif_numbers {
    font-family: serif;
}
.breakable {
    word-break: break-word;
    overflow-wrap: break-word;
}
.no_link {
    pointer-events: none;
}
@media screen and (min-width: 1000px) {
.no_tel_link {
    pointer-events: none;
}
}



/* ulolまわり */
ul.rectangle_bkclr {
	list-style: url(../img/ul_rectangle_bkclr.svg);
	padding-left: 18px;
}
ul.rectangle_mainclr {
	list-style: url(../img/ul_rectangle_mainclr.svg);
	padding-left: 18px;
}
ul.rectangle_subclr {
	list-style: url(../img/ul_rectangle_subclr.svg);
	padding-left: 18px;
}
ul.square_mainclr {
	list-style: url(../img/ul_square_mainclr.svg);
	padding-left: 20px;
}
ul.square_subclr {
	list-style: url(../img/ul_square_subclr.svg);
	padding-left: 20px;
}
ul.circle_mainclr  {
	list-style: url(../img/ul_circle_mainclr.svg);
	padding-left: 22px;
}
ul.circle_subclr  {
	list-style: url(../img/ul_circle_subclr.svg);
	padding-left: 22px;
}
ul.donuts_mainclr {
	list-style: url(../img/ul_donuts_mainclr.svg);
	padding-left: 25px;
}
ul.donuts_subclr {
	list-style: url(../img/ul_donuts_subclr.svg);
	padding-left: 25px;
}
ul.dot_mainclr {
	list-style: url(../img/ul_dot_mainclr.svg);
	padding-left: 15px;
	text-indent: -2px;
}
ul.dot_bkclr {
	list-style: url(../img/ul_dot_bkclr.svg);
	padding-left: 15px;
	text-indent: -2px;
}
ul.checkbox_mainclr {
	list-style: url(../img/ul_checkbox_mainclr.svg);
	padding-left: 25px;
}
ul.checkbox_main_bk {
	list-style: url(../img/ul_checkbox_mainclr_x_bk.svg);
	padding-left: 25px;
}
ul.ul_list {
    display: flex;
    flex-direction: column;
}
ul.ul_inline_list { /* 方針・目標で使う */
    display: inline-flex;
    flex-direction: column;
    width: auto;
}
ul.ul_inline {
	display: flex;
	flex-wrap: wrap;
}
ul.ul_inline01 {
	display: flex;
	flex-wrap: wrap;
	gap: 5px 30px;
}
ul.ul_inline02 {
	display: flex;
	flex-wrap: wrap;
	gap: 0px;
}
ul.ul_inline03 {
	display: flex;
	flex-wrap: wrap;
	gap: 0 50px;
}
ul.ul_inline li, 
ul.ul_inline02 li {
	text-align: left;
}
ul.li_18 li,
ol.li_18 li {
	font-size: 18px;
}
ul.li_20 li,
ol.li_20 li {
	font-size: 20px;
}
ul.ul_palt li {
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
}
ul.ibauto, ol.ibauto {
	display: inline-block;
	width: auto;
}
ul.jus li, 
ol.jus li {
    text-align: justify;
}

/* iosのための新しいol */
/* アラビア数字123 */
ol.num {
    display: flex;
    flex-direction: column;
	counter-reset: list-counter; /* カウンターをリセット */
}
ol.num > li {
	counter-increment: list-counter; /* カウンターを増やす */
	position: relative;
	padding-left: 25px;
}
ol.num > li::before {
	content: counter(list-counter) ".";
	position: absolute;
	left: 4px; /* 番号を左端に固定 */
}
/* ローマ数字ⅠⅡⅢ */
ol.roman_num {
    display: flex;
    flex-direction: column;
    counter-reset: roman-counter;
}
ol.roman_num > li {
    counter-increment: roman-counter;
    position: relative;
    padding-left: 25px; /* 数字が4を超えるときは調整 */
}
ol.roman_num > li::before {
    content: counter(roman-counter, upper-roman) ".";
    position: absolute;
    left: 4px;
}





.container {
	width: 100%;
	margin: 0 auto;
}

/* ヘッダー */
.header {
    background-color: #ffffffdd;
    width: 100%;
    height: 60px;
    z-index: 100;
    filter: drop-shadow(0px 0px 3px rgba(0,0,0,0.3));
}
.top_logobox a {
    height: 60px;
    padding: 0px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.top_logobox a img {
    width: auto; /* ← iOS Safari対策の要 */
    max-width: 100%;
    height: 60px;
    object-fit: contain;
}

@media screen and (min-width: 1000px){
.header  {
    height: 90px;
    position: fixed;
    top: 0;
    left: 0;
    filter: drop-shadow(0px 0px 3px rgba(0,0,0,0.4));
}
.header_box {
    display: flex;
    justify-content: center;
    align-items: center;
}
.header_in {
    width: 100%;
    max-width: 1200px;
    height: 90px;
    margin: 0 15px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.top_logobox a {
    height: auto;
    padding: 5px 0;
}
.top_logobox a img {
    height: clamp(5rem, 3.125rem + 3vw, 5.375rem);
    /* 80px - 86px */
    /* 1000px - 1200px */
    /* ロゴのかたちに合わせて変更 */
}
.top_box {
    height: 90px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-direction: column;
}
.top_box_links {
    height: 35px;
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.tbt_sns_icon {
	margin-right: 10px;
}
.tbt_sns_icon img {
    /* width: 20px; */ /* 多いときはこれくらい */
    width: 30px; /* 少ないときはこれくらい */
    object-fit: contain;
}
.tbt_sns_icon:hover {
    opacity: 0.8;
}
.g_btn {
    font-size: 15px;
    line-height: 100%;
    font-weight: 600;
    color: #fff;
    background-color: #00ac97;
    outline: solid 1px #00ac97;
    outline-offset: -1px;
    border-radius: 20px;
    height: 35px;
    padding: 0 20px 2px;
    white-space: nowrap;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}
.g_btn:hover {
	color: #00ac97;
    background-color: #fff;
}
.g_btn_now {
	color: #00ac97;
    background-color: #fff;
}
}
@media screen and (min-width: 1200px){
.top_logobox a {
    padding: 2px 0;
}
}


/* グランドナビゲーション */
#global_PCnav {
    width: 100%;
    height: 45px;
    display: flex;
    align-items: center;
    position: relative;
    z-index: 10;
}
.nav_list {
    max-width: 1200px;
    height: 45px;
    margin-right: 5px;
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    position: relative;
    z-index: 10;
}
a.mother {
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    height: 45px;
    color: #005547;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    cursor: pointer;
    transition: color 0.2s;
    z-index: 10;
}
a.mother:hover, .nav_item:hover > a.mother {
    color: #00ac97;
}
a.mother:hover::before, .nav_item:hover > a.mother::before {
    transform: scaleX(1);
    transform-origin: left;
}
a.mother.nav_now {
    color: #00ac97;
}
a.mother.nav_now::before {
    background: #00ac97;
    content: '';
    width: 100%;
    height: 2px;
    position: absolute;
    left: 0;
    bottom: 8px;
    transform: scaleX(1.0);
}

.nav_item_sub {
    width: 100%;
    position: absolute;
    top: 45px;
    right: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
    z-index: -1;
}
.nav_in {
    background-color: #ffffffdd;
    padding: 20px 20px 25px;
	border-radius: 0 0 10px 10px;
}
p.rb_title {
    font-size: 18px;
    font-weight: 600;
    text-align: left;
	color: #005547;
	border-bottom: solid 1px #005547;
    width: 100%;
    margin-bottom: 25px;
    padding-left: 10px;
    padding-bottom: 5px;
}
.rb_eng {
    font-size: 15px;
    line-height: 100%;
    font-family: "Mulish", serif;
    font-weight: 600;
    text-align: right;
    color: #00ac97;
    margin-left: 10px;
}
.nav_item:hover .nav_item_sub {
    opacity: 1;
    visibility: visible;
}

.nav_in ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 15px 20px;
    width: 100%;
}
.nav_in ul li {
    width: calc(50% - 10px);
}
.nav_in ul li a {
    font-size: 15px;
    line-height: 130%;
    font-weight: 400;
    color: #fff;
    background-color: #00ac97;
    border-radius: 5px;
    height: 50px;
    padding: 0 10px 2px;
    display: flex;
    align-items: center;
    gap: 7px;
}
.nav_in ul li a:hover {
    background-color: #009683;
}
.nav_in ul li a i {
    font-size: 15px;
    color: #ff0;
}
@media screen and (min-width: 1100px){
/* .top_logobox a img {
    height: 48px;
} */
a.mother {
    font-size: 16px;
}
.g_btn {
    font-size: 16px;
}
}
@media screen and (min-width: 1200px){
/* .top_logobox a img {
    height: 55px;
} */
}

/* トップメインスライド */
.mainimg {
	width: 100%;
    height: 65vh;
	margin-bottom: 50px;
    position: relative;
    z-index: 0;
}
.img-box {
    width: 100%;
    height: 65vh;
    overflow: hidden;
    position: relative;
}
.img-box div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 65vh;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: 0;
    transform: scale(1.0);
    opacity: 0;
    animation-name: fade;
    animation-duration: 16s;
    animation-duration: 12s;
    animation-iteration-count: infinite;
}
@keyframes fade {
0% {
    opacity: 0;
}
20% {
    opacity: 8;
}
80% {
    opacity: 0;
    transform: scale(1.1);
}
100% {
    z-index: -10;
    opacity: 0;
}
}

.img-box div:first-of-type {
    background-image: url(../img/top_main01_1714_SP.avif);
}
.img-box div:nth-of-type(2) {
    background-image: url(../img/top_main02_0555_SP.avif);
    animation-delay: 4s;
}
.img-box div:nth-of-type(3) {
    background-image: url(../img/top_main03_0036_SP.avif);
    animation-delay: 8s;
}

@media screen and (min-width: 768px){
.mainimg {
    height: 75vh;
}
.img-box {
    width: 90%;
    height: 75vh;
    margin: 0 0 0 auto;
    border-radius: 0 0 0 100px;
}
.img-box div {
    height: 75vh;
}
}
@media screen and (min-width: 1000px){
.mainimg {
    height: 90vh;
	margin-bottom: 80px;
}
.img-box {
    width: 85%;
    height: 90vh;
    margin: 0 0 0 auto;
    border-radius: 0 0 0 100px;
}
.img-box div {
    height: 90vh;
}
.img-box div:first-of-type {
    background-image: url(../img/top_main01_1714_PC.avif);
}
.img-box div:nth-of-type(2) {
    background-image: url(../img/top_main02_0555_PC.avif);
}
.img-box div:nth-of-type(3) {
    background-image: url(../img/top_main03_0036_PC.avif);
}
}


/* メインキャッチ */
.maintext {
    width: 100%;
	position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
}
.maintext_box {
    display: flex;
    justify-content: center;
    align-items: center;
}
h2.main_catch {
    overflow: hidden;
    display: inline-block;
}
h2.main_catch span {
    line-height: 130%;
    font-weight: 600;
    text-align: center;
	color: #fff;
    display: block;
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
    clip-path: inset(100% 0 0 0); 
    transition: clip-path 1s cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: scale(0.97, 1);
    transform-origin: top center;
    filter: drop-shadow(1px 1px 2px rgba(0,0,0,0.5))
            drop-shadow(1px 1px 2px rgba(0,0,0,0.5));
}
h2.main_catch span.mc_main {
    font-size: 21px;
    margin-bottom: 5px;
}
h2.main_catch span.mc_sub {
    font-size: 18px;
}
h2.main_catch.-visible span {
    clip-path: inset(0 0 0 0);
}
h2.main_catch.-visible span.mc_main {
    transition-delay: 0.4s; /* 先に出す */
}
h2.main_catch.-visible span.mc_sub {
    transition-delay: 1.6s; /* 少し遅れて出す */
}
@media screen and (min-width: 768px){
.maintext {
    max-width: 600px;
    bottom: 60px;
    left: -2%;
    transform: translateX(0%);
}
h2.main_catch span {
    text-align: left;
}
h2.main_catch span.mc_main {
    font-size: 28px;
    margin-bottom: 10px;
}
h2.main_catch span.mc_sub {
    font-size: 22px;
}
}
@media screen and (min-width: 1000px){
.maintext {
	bottom: 80px;
    left: 0;
}
h2.main_catch span.mc_main {
    font-size: 30px;
}
}  
@media screen and (min-width: 1200px){
.maintext {
    max-width: 800px;
	bottom: 100px;
}
h2.main_catch span.mc_main {
    font-size: 36px;
    margin-bottom: 15px;
}
h2.main_catch span.mc_sub {
    font-size: 28px;
}
}  


/* セクションヘッダー */
.box_news_in {
	background-color: #dff7f1;
	padding: 20px 15px 30px;
}
.section_header01 {
	width: 100%;
    background: linear-gradient(90deg, #e4faf3, #daf4ef);
    padding: 20px 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.section_header02 {
	width: 100%;
    background-color: #dff7f1;
    padding: 20px 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.section_header03 {
	width: 100%;
    background-color: #fff;
    padding: 20px 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.section_header04 {
	width: 100%;
    background: linear-gradient(90deg, #fdeaef, #fbe0e7);
    padding: 20px 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.section_header05 {
	width: 100%;
    background-color: #dff7f1;
    padding: 0 0 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}
@media screen and (min-width: 768px) {
.box_news_in {
	padding: 30px 20px;
}
.section_header01 {
    padding: 40px 0;
}
.section_header02 {
    padding: 40px 0;
}
.section_header03 {
    padding: 40px 0;
}
.section_header04 {
    padding: 40px 0;
}
.section_header05 {
	width: 150px;
    background-color: #dff7f1;
    padding: 0;
    display: flex;
    justify-content: flex-end;
}
}
@media screen and (min-width: 1000px) {
.box_news_in {
	padding: 60px 40px;
}
.section_header01 {
	padding: 60px 0;
}
.section_header02 {
	padding: 60px 0;
}
.section_header03 {
	padding: 60px 0;
}
.section_header04 {
	padding: 60px 0;
}
.section_header05 {
    width: 200px;
}
}


/* ブロック名 */
.greeting {
	background-color: #fff;
}
.contents {
	background-color: #dff7f1;
}
.voice {
	padding: 30px 0 0;
}
.numbers {
	background: linear-gradient(90deg, #fdeaef, #fbe0e7);
}
.news {
	background: #fff;
}
.contact {
	background-color: #fff;
}


/* box */
.box {
	padding: 30px 0 50px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.box_bg {
	padding: 10px 0 50px;
}
.box_news {
	padding: 30px 0 30px;
}
@media screen and (min-width: 768px) {
.box_voi {
    padding: 10px 0 50px;
}
}
@media screen and (min-width: 1000px) {
.box {
	padding: 50px 0 100px;
}
.box_pic {
	padding: 60px 0 100px;
}
.box_bg {
	padding: 0 0 100px;
}
.box_voi {
    padding: 0 0 100px;
}
.box_news {
	padding: 100px 0;
}
}


/* inner */
.s_inner, .m_inner, .l_inner {
	width: 100%;
	max-width: 700px;
	margin: 0 20px;
}
@media screen and (min-width: 1000px) {
.s_inner, .m_inner, .l_inner {
    margin: 0 50px;
}
.m_inner {
	max-width: 1000px;
}
.l_inner {
	max-width: 1200px;
}
}


/* タイトル */
h2.top_title {
	font-size: 18px;
    line-height: 100%;
	font-weight: 400;
	text-align: left;
	color: #005547;
}
h2.top_title02 {
	font-size: 18px;
    line-height: 100%;
	font-weight: 400;
	text-align: center;
	color: #005547;
}
h2.top_title .eng, 
h2.top_title02 .eng {
	font-size: 30px;
    line-height: 100%;
    font-family: "Jost", serif;
	font-weight: 600;
	color: #00ac97;
    margin-bottom: 5px;
    display: block;
}
h2.top_title03 {
	font-size: 18px;
    line-height: 130%;
	font-weight: 400;
	text-align: left;
	color: #a02841;
    letter-spacing: 0.05em;
    /* 内容によって調整する。デフォは入れない。 */
}
h2.top_title03 .eng {
	font-size: 30px;
    line-height: 100%;
    font-family: "Jost", serif;
	font-weight: 600;
	color: #ff6e8c;
    margin-bottom: 5px;
    display: block;
    letter-spacing: 0.06em;
    /* 上のh2.top_title03でletter-spacingを再設定したときのみ再度入れる。 */
}
h3.top_catch {
	font-size: 22px;
    line-height: 140%;
	font-weight: 600;
    color: #00ac97;
    margin-bottom: 15px;
}
h3.top_voi {
	font-size: 20px;
    line-height: 140%;
	font-weight: 600;
    color: #00ac97;
    margin-bottom: 15px;
}
@media screen and (min-width: 500px){
h2.top_title03 {
    letter-spacing: 0.06em;
    /* 上でletter-spacingを再設定してたら戻す。デフォは入れない。 */
}
}
@media screen and (min-width: 1000px){
h2.top_title, 
h2.top_title02, 
h2.top_title03 {
	font-size: 20px;
}
h2.top_title .eng, 
h2.top_title02 .eng, 
h2.top_title03 .eng {
	font-size: 45px;
    margin-bottom: 10px;
}
h3.top_catch {
	font-size: 24px;
}
h3.top_voi {
	font-size: 22px;
}
}


/* テキスト */
p.txt01 {
	line-height: 180%;
	text-align: justify;

}
@media screen and (min-width: 1000px) {
p.txt01 {
	line-height: 200%;
}
}


/* 背景固定 */
.back_img_a {
	display: block;
	position: sticky;
	top: 0;
	height: 0;
	max-height: 0;
	overflow: visible;
	z-index: -1;
}
.back_img_a::after {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.back_img_a::after {
	background-image: linear-gradient(-45deg, #ffe4e9dd, #ffffffb3), url(../img/top_bg_1726.avif);
}


/* ボタン */
.a_btn_box01, .a_btn_box02 {
    display: flex;
    flex-wrap: wrap;
}
.a_btn_box03 {
	display: flex;
    justify-content: center;
    align-items: center;
}
.a_btn {
    color: #fff;
    border-radius: 30px;
    width: 100%;
    max-width: 500px;
    height: 60px;
    padding: 10px;
    margin: 0 auto; 
    display: flex;
    justify-content: center;
    align-items: center;
}
.a_btn_box01 .a_btn {
	background-color: #00ac97;
    margin-bottom: 20px;
}
.a_btn_box01 .a_btn:last-of-type {
	margin-bottom: 0;
}
.a_btn_box02 .a_btn {
	background-color: #00ac97;
}
.a_btn_box03 .a_btn {
	background-color: #ff6e8c;
}
.a_btn i {
    margin: 2px 0 0 5px;
}
@media screen and (min-width: 768px){
.a_btn {
    max-width: 400px;
}
.a_btn_box01 .a_btn {
    width: calc(100% / 3 - 40px / 3);
    margin: 0 20px 0 0;
}
.a_btn_box01 .a_btn:last-of-type {
    margin-right: 0;
}
}
@media screen and (min-width: 1000px){
.a_btn_box01 .a_btn:hover {
	background-color: #009683;
}
.a_btn_box02 .a_btn:hover {
	background-color: #009683;
}
.a_btn_box03 .a_btn:hover {
	background-color: #ff5a82;
}
}


/* flexbox */
/* top_flex01 メッセージ */
.top_flex01 {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-bottom: 30px;
}
@media screen and (min-width: 1000px){
.top_flex01 {
    flex-direction: row;
    gap: 50px;
	margin-bottom: 70px;
}
.tf_L01 {
    width: calc(100% - 400px);
    margin-bottom: 0;
}
.tf_R01 {
    width: 350px;
	margin-bottom: -100px;
    position: relative;
    top: -100px;
}
}

/* top_flex02 看護部紹介 */
.top_flex02 {
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media screen and (min-width: 768px){
.top_flex02 {
    justify-content: space-between;
    flex-direction: row;
    flex-wrap: wrap;
}
}
@media screen and (min-width: 1000px){
.top_flex02 {
	gap: 40px;
}
}

/* top_flex03 数字で見る */
.top_flex03 {
    display: flex;
    justify-content: space-between;
	align-items: stretch;
    flex-wrap: wrap;
    gap: 20px;
	margin-bottom: 40px;
}
.tf_03 {
    width: calc(50% - 10px);
}
@media screen and (min-width: 768px){
.top_flex03 {
    gap: 30px;
}
.tf_03 {
    width: calc(50% - 15px);
}
}
@media screen and (min-width: 1000px){
.top_flex03 {
	margin-bottom: 60px;
}
.tf_03 {
    width: calc(25% - 90px / 4);
}
}

/* top_flex04 ボイス */
.top_flex04 {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media screen and (min-width: 1000px){
.top_flex04 {
    justify-content: center;
    flex-direction: row;
    gap: 50px;
}
.tf_L04, .tf_R04 {
    width: calc(50% - 25px);
}
}

/* top_flex06 おしらせ */
@media screen and (min-width: 768px){
.top_flex05 {
    display: flex;
    justify-content: space-between;
	align-items: flex-start;
}
}

/* top_flex06 お問い合わせ */
@media screen and (min-width: 1000px){
.top_flex06 {
    display: flex;
    justify-content: space-between;
	gap: 20px;
}
}


/* 看護部紹介 */
.tf_02 {
    background-color: #fff;
    width: 100%;
    max-width: 500px;
    height: 240px;
    margin: 0 auto;
    position: relative;
	overflow: hidden;
}
.pic_zoom {
    color: #192f60;
}
.con_box {
    width: 60%;
	height: 46px;
    background: #dff7f1;
    border-radius: 15px 0 0 0;
    padding: 0 20px;
	display: flex;
	align-items: center;
    position: absolute;
    bottom: -1px; /* ハミ予防で一応 */
    right: 0;
    pointer-events: none;
	z-index: 1000;
}
h3.top_con {
	font-size: 19px;
    line-height: 100%;
    font-weight: 700;
    margin-top: 5px;
}
.con_box i {
    font-size: 22px;
    line-height: 100%;
    color: #00ac97;
    position: absolute;
    top: calc(50% - 7px);
    right: 10px;
    transition: all 0.4s ease;
}
.con_box_bg {
	position: absolute;
	width: 100%;
	height: 240px;
	background-size: cover;
	transition: all 0.4s ease-in-out;
    opacity: 1.0;
}
/* 各リンクボタンの画像 */
.tf_02a .con_box_bg {
	background: url(../img/sub_edu_1366_PC.avif) 
		no-repeat center center;
    background-size: cover;
}
.tf_02b .con_box_bg {
	background: url(../img/sub_edu_0904_PC.avif) 
		no-repeat center center;
    background-size: cover;
}
.tf_02c .con_box_bg {
	background: url(../img/sub_wel_1562_PC.avif) 
		no-repeat center center;
    background-size: cover;
}
.tf_02d .con_box_bg {
	background: url(../img/sub_fea_1714_PC.avif) 
		no-repeat center center;
    background-size: cover;
}
.tf_02e .con_box_bg {
	background: url(../img/sub_wards_3a_4741_PC.avif) 
		no-repeat center center;
    background-size: cover;
}
.tf_02f .con_box_bg {
	background: url(../img/top_con06_8746.avif) 
		no-repeat center center;
    background-size: cover;
}
@media screen and (min-width: 768px){
.tf_02 {
    width: calc(50% - 15px);
}
}
@media screen and (min-width: 1000px){
.tf_02 {
    width: calc(50% - 20px);
    height: 280px;
}
.con_box {
    width: 55%;
	height: 51px;
    transition: all 0.2s ease;
}
h3.top_con {
	font-size: 22px;
}
.con_box_bg {
    height: 280px;
    transform: scale(1);
	will-change: transform;
    transition: all 0.4s ease;
}
.con_box_bg:hover {
	transform: scale(1.05);
    opacity: 0.8;
}    
.con_box i {
    font-size: 24px;
    top: calc(50% - 8px);
    right: 15px;
}
.pic_zoom:hover i {
    right: 10px;
}
}


/* 数字で見る */
.rh_records_box {
    text-align: center;
    background: linear-gradient(135deg, #feeff3, #fdeaef);
	height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
	filter: drop-shadow(0px 0px 3px rgba(0,0,0,0.3));
}
.rh_records_tri {
    background-color: #ff6e8c;
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.rh_records_title {
    font-size: 18px;
    line-height: 140%;
    font-weight: 600;
    text-align: center;
    color: #a02841;
    padding: 20px 5px;
    position: relative;
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
}
.rh_records_title:after {
    border-bottom: 5px solid #ff6e8c;
	width: 40px;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}
.rh_records_box_in {
    padding: 20px 5px;
	flex: 1; /* タイトル以外のエリアを自然に伸ばす */
	display: flex;
	align-items: center;
	justify-content: center;
    flex-direction: column;
}
.rh_records_box_in i {
    font-size: 35px;
    color: #ff6e8c;
    margin-bottom: 10px;
}
/* カウントアップ */
.countup_num {
	font-size: 20px;
	line-height: 100%;
	font-weight: 600;
    color: #ff6e8c;
}
.countup_num .num {
	font-size: 35px;
	display: inline-block;
	margin-right: 2px;
	margin-left: 2px;
	vertical-align: -2px;
}
@media screen and (min-width: 768px){
.rh_records_box_in {
    padding: 20px 15px;
}
}
@media screen and (min-width: 1000px){
.rh_records_title {
    font-size: 19px;
    line-height: 100%;
	padding: 25px 5px;
}
.rh_records_box_in {
    padding: 30px 15px 25px;
}
.rh_records_box_in i {
    font-size: 40px;
    margin-bottom: 15px;
}
.countup_num {
	font-size: 22px;
}
.countup_num .num {
	font-size: 40px;
}
}


/* おしらせ */
.table_information th {
	font-size: 15px;
	line-height: 140%;
	font-weight: bold;
	text-align: left;
	color: #00ac97;
	display: block;
	padding: 15px 15px 5px;
}
.table_information td {
	font-size: 16px;
	line-height: 160%;
	text-align: left;
	color: #222;
	display: block;
	border-bottom: solid 1px #ccc;
	padding: 0 15px 15px;
}
.table_information tr:first-child th {
	border-top: solid 1px #ccc;
}
.table_information td a.ti_link {
	color: #00ac97;
    border-bottom: solid 1px #00ac97;
    padding: 0 2px;
}
/* 下記1000px以上いるか確認 */
@media screen and (min-width: 1000px) {
.table_information th,
.table_information td {
	display: table-cell;
	text-align: left;
	border-bottom: solid 1px #ccc;
}
.table_information th {
	padding: 20px 10px 20px 20px;
}
.table_information td {
	padding: 20px 20px 20px 10px;
}
.table_information tr:first-child {
	border-top: solid 1px #ccc;
}
.table_information td a.ti_link:hover {
    color: #009683;
    border-bottom: solid 1px #009683;
}
}

/* おしらせ一覧ボタン */
.go_list {
    font-size: 17px;
    line-height: 20px;
    color: #00ac97;
    width: fit-content;
    margin: 20px 15px 0 auto;
    display: block;
}
.go_list i {
    margin-left: 5px;    
}
 @media screen and (min-width: 768px) {
.go_list {
    margin-top: 30px;
}
}
@media screen and (min-width: 1000px) {
.go_list {
    margin: 40px 20px 0 auto;
}
.go_list:hover {
    color: #009683;
}
}


/* お問い合わせ */
.con_btn {
	color: #00ac97;
	background-color: #fff;
	border: solid 1px #00ac97;
    width: 100%;
    max-width: 500px;
    height: 60px;
    padding: 10px;
    margin: 0 auto 20px;
    display: flex;
    justify-content: center;
    align-items: center;
	border-radius: 0;
}
.con_btn i {
	margin: 0 10px 0 0;
}
.con_btn:last-of-type {
	margin-bottom: 0;
}
@media screen and (min-width: 1000px){
.con_btn:hover {
	color: #fff;
	background-color: #00ac97;
}
}


/*フッター*/
footer {
	padding: 50px 0 30px;
	display: flex;
	justify-content: center;
	align-items: center;
    text-align: center;
}
.f_logo {
	max-width: 400px;
	margin: 0 auto 30px;
}
.f_ad_box {
	margin-bottom: 40px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}
.f_ad {
	margin-bottom: 10px;
}
.f_tel {
    font-size: 17px;
}
.f_link {
	font-size: 15px;
    line-height: 140%;
	background-color: #fff;
	width: 100%;
	max-width: 360px; /* f_logoの幅と合わせるといいかも、合わせなくてもいいかも */
	padding: 10px 15px;
	margin-bottom: 50px;
	border: solid 1px #222;
	display: inline-block;
}
.f_link i {
	margin-left: 5px;
}
.f_sns_box {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;
    margin-bottom: 40px;
}
.f_sns_icon img {
    /* width: 20px; */ /* 多いときはこれくらい */
    width: 30px; /* 少ないときはこれくらい */
    display: inline-block;
}
p.copyright {
	font-size: 11px;
	line-height: 150%;
	text-align: center;
}
@media screen and (min-width: 1000px){
footer {
	padding: 80px 0 30px;
}
.f_ad_box {
	flex-direction: row;
}
.f_ad {
	margin: 0;
}
.f_line {
    font-size: 17px;
	margin: 0 20px;
}
.f_link {
    margin-bottom: 80px;
}
.f_link:hover {
	color: #fff;
	background-color: #00ac97;
}
.f_sns_box {
    gap: 30px;
}
.f_sns_icon img {
    width: 25px;
}
.f_sns_box a:hover {
    opacity: 0.8;
}
}


/*ページトップへGOボタン*/
/* PC固定フッター */
#page_top_PC {
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 1000;
    filter: drop-shadow(0px 0px 3px rgba(0,0,0,0.3));
}
.ptbox {
    display: flex;
    background: #fff;
}
.ptbox a {
    font-size: 15px;
    line-height: 140%;
    text-align: center;
    color: #fff;
	background: linear-gradient(#ff7891, #ff6487);
    height: 60px;
	display: flex;
    align-items: center; 
    padding: 0 20px;
    letter-spacing: 0.08em;
    font-feature-settings: "palt";
    opacity: 0.9;
	transition: all 0.2s ease-in-out;	
}
.pt_01 a {
    border-right: 1px solid #fff;
}
.pt_02 a {
    border-right: 1px solid #fff;
} 
.pt_03 a {
    border-right: 1px solid #fff;
}
.ptbox a:hover {
	opacity: 1;
}
.pt_01 i {
    font-size: 18px;
    margin-right: 10px;
}
.pt_02 i {
    font-size: 18px;
    margin-right: 10px;
}
.pt_03 i {
    font-size: 18px;
    margin-right: 10px;
}
.pc_top i {
	font-size: 20px;
}

/* SPトップへボタン */
.page_top_SP {
    position: fixed;
    bottom: 10px;
    left: 10px;
    background: linear-gradient(#fff, #ddd);
    z-index: 100;
    filter: drop-shadow(0px 0px 3px rgba(0,0,0,0.3));
}
.page_top_SP a {
	width: 50px;
	height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
	transition: all 0.2s ease;
}
.page_top_SP i {
	font-size: 22px;
    color: #222;
}


/* SPメニュー */
body.active {
    height: 100%;
    overflow: hidden;
}
.header__trigger {
	width: 50px;
	height: 50px;
	position: fixed;
	bottom: 10px;
	right: 10px;
	background-color: #00ac97;
    border: 0;
    z-index: 9999;
	filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.4));
}
.header__trigger span {
	display: block;
	position: absolute;
	left: 50%;
	width: 20px;
	height: 2px;
	border-radius: 1px;
	background-color: #fff;
	transform: translateX(-50%);
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.header__trigger span:first-child {
	top: 15px;
}
.header__trigger span:nth-child(2) {
	top: 50%;
	transform: translate(-50%, -50%);
}
.header__trigger span:last-child {
	bottom: 15px;
}
.header__trigger.active span:first-child {
	transform: translate(-50%, 10px) rotate(-45deg);
}
.header__trigger.active span:nth-child(2) {
	opacity: 0;
}
.header__trigger.active span:last-child {
	transform: translate(-50%, -8px) rotate(45deg);
}

/* ハンバーガー中身 */
.global-SPnav {
    width: 100%;
    height: 100vh;
    text-align: center;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0;
    background: linear-gradient(135deg, #dff7f1, #fce5eb);
    transition: all 0.2s ease-in-out;
    overflow: auto;
    pointer-events: none;
    z-index: 1000;
}
.global-SPnav.active {
    left: 0;
    opacity: 1;
    pointer-events: auto;
}
.global-SPnav_in {
    max-width: 500px;
    margin: 0 auto 80px;
    padding: 15px;
}
.global-SPnav_box {
    background-color: #ffffffaa;
    border-radius: 5px;
    padding: 25px 15px;
    margin-bottom: 30px;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}
.gm_logo img {
    max-width: 340px;
	margin: 0 auto 25px;
}
@media screen and (min-width: 768px){
.global-SPnav_in {
    max-width: 650px;
    padding: 30px 15px;
}
.global-SPnav_box {
    padding: 30px 80px 40px;
}
}

.SPnav_mother {
    border-top: solid 1px #ddd;
    margin: 0;
}
.SPnav_mother:last-of-type {
    border-bottom: solid 1px #ddd;
}
.SPnav_mother a {
    font-size: 16px;
    line-height: 50px;
    font-weight: 500;
    padding: 0 0 0 5px;
    /* 病院名によって調整する。デフォは15px */
    display: block;
}
a.SPnav_child {
    line-height: 40px;
}
.child_menu li:last-of-type .SPnav_child {
    padding-bottom: 15px;
}
.SPnav_mother a {
    position: relative;
}
.SPnav_mother span.p_m {
    display: block;
    position: absolute;
    top: 25px;
    right: 5px;
    /* 病院名によって調整する。デフォは15px */
    width: 14px;
    height: 2px;
    background-color: #00ac97;
    border-radius: 1px;
}
.SPnav_mother span.p_m:last-child {
    transform: rotate(90deg);
    transition: transform 0.3s;
}
.SPnav_mother.active span.p_m:last-child {
    transform: rotate(0deg);
}
.child_menu li i {
    color: #00ac97;
    margin-right: 5px;
}

/*下の階層を持っているulの指定*/
.global-SPnav li.has-child ul {
    z-index: 4;
    width: 100%;
    visibility: hidden;
    opacity: 0;
    transition: all 0.2s;
}
/*hoverしたら表示*/
.global-SPnav li.has-child:hover > ul,
.global-SPnav li.has-child ul li:hover > ul,
.global-SPnav li.has-child:active > ul,
.global-SPnav li.has-child ul li:active > ul{
    visibility: visible;
    opacity: 1;
}
.global-SPnav li.has-child ul {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    visibility: visible;
    opacity: 1;
    display: none;
    transition: none;
}
.global-SPnav li.has-child ul li {
    padding-left: 5px;
    /* 病院名によって調整する。デフォは10px */
    margin: 0;
}

/* 病院名が長いときに1行で入れるためのclass */
ul.child_menu li.SPnav_longname {
    font-feature-settings: "palt";
    letter-spacing: clamp(-0.03em, -0.99em + 4.27vw, 0.05em);
    /* -0.03em - 0.05em */
    /* 360px - 390px */
    /* 病院名によって調整する */
}

.r_box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 30px 0 50px;
    gap: 20px;
}
a.r_in {
    font-size: 16px;
    line-height: 140%;
    text-align: center;
    color: #fff;
    height: 55px;
    border-radius: 999px;
    display: flex;
    justify-content: center;
    align-items: center;
    filter: drop-shadow(0px 0px 3px rgba(0,0,0,0.3));
}
.r100 {
    width: 100%;
    background: linear-gradient(135deg,  #ff7891, #ff6487);
}
.r50 {
    width: calc(50% - 10px);
    background: linear-gradient(135deg,  #00b7a1, #00a18d);
}






