/* サブページトップ・タイトル */
.sub_top {
    width: 100%;
    height: 150px;
    background: linear-gradient(45deg, #daf4ef99, #fdeaefee), 
    url(../img/sub_bg_head_4545.avif);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    display: flex;
    justify-content: center;
    align-items: center;
}
h2.h2_sub {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
}
h2 .h2_sub_cat {
    font-size: 18px;
    line-height: 100%;
    color: #009683;
    border-bottom: solid 1px #009683;
    padding: 0 2px 5px;
    margin-bottom: 15px;
    display: inline-block;
    z-index: 1;
}
h2 .h2_sub_title {
    font-size: 26px;
    text-align: center;
    line-height: 130%;
    z-index: 1;
}
h2 .h2_sub_eng {
    font-size: clamp(2.813rem, -0.17rem + 6.36vw, 5rem);
    /* 45px - 80px */
    /* 750px - 1300px */
    line-height: 100%;
    font-family: "Jost", serif;
    font-weight: 600;
    text-align: center;
    color: #00ac9722;
    position: absolute;
    letter-spacing: 0.01em;
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    max-width: 100%; 
}
@media screen and (min-width: 768px) {
h2 .h2_sub_cat {
    font-size: 20px;
}
}
@media screen and (min-width: 1000px) {
.sub_top {
    height: 250px;
    margin-top: 90px;
}
h2 .h2_sub_cat {
    font-size: 22px;
    padding: 0 4px 7px;
    margin-bottom: 20px;
}
h2 .h2_sub_title {
    font-size: 28px;
}
}


/* 2カラム */
.clm_box {
    width: 100%;
    display: flex;
    flex-direction: column-reverse;
}
.clm_boxL {
    margin-top: 80px;
}
@media screen and (min-width: 1000px) {
.clm_box {
    justify-content: space-between;
    flex-direction: row;
}
.clm_boxL {
    width: 240px;
    margin-top: 0;
}
.clm_boxR {
    width: calc(100% - 240px - 50px);
    margin-left: 50px;
}
.stick {
    position: sticky;
    top: 150px;
}
}


/* 左カラム */
/* メニューリスト */
.stick_in {
    background: #fff;
    border: 1px solid #00ac97;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    position: relative;
}
.stick_in::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 5px;
    background: linear-gradient(30deg, #00ac97, #00a18d);
}
.visually_hidden { /* スクリーンリーダー用 */
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    white-space: nowrap;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
}
.clm_article {
    font-size: 17px;
    line-height: 130%;
    font-weight: bold;
    text-align: center;
    color: #fff;
    background: linear-gradient(30deg, #00ac97, #00a18d);
    padding: 10px 15px;
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
}
ul.clm_list li {
    margin: 0;
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
}
a.clm_title {
    font-size: 18px;
    line-height: 130%;
    border-bottom: solid 1px #00ac97;
    background-color: #fff;
    padding: 15px;
    display: block;
    position: relative;
}
a.clm_title i {
    color: #00a18d;
    position: absolute;
    right: 15px;
    top: calc(50% - 9px);
}
ul.clm_list li:last-of-type {
    margin-bottom: 0;
}
ul li:last-of-type a.clm_title {
    border-bottom: 0;
    margin-bottom: 0;
}
a.clm_title.tit_now {
    background-color: #dff7f1;
}
@media screen and (min-width: 1000px){
.clm_article {
    font-size: 18px;
}
a.clm_title {
    padding: 17px 10px;
    /* 内容によって調整する。デフォは17px 15px; */
}
a.clm_title:hover {
    background-color: #dff7f1;
}
a.clm_title i {
    right: 10px;
    /* 内容によって調整する。デフォは15px; */
}
.clm_box.yesPC1000 .clm_list a.active {
    background-color: #dff7f1;
}
}


/* サブページタイトル */
.h2_cat01 {
    font-size: 18px;
    line-height: 140%;
    font-weight: normal;
    text-align: left;
    color: #fff;
    background-color: #00ac97;
    width: fit-content;   
    max-width: 100%; 
    padding: 5px 10px;
    margin-bottom: 15px;
}
.h2_cat02 {
    font-size: 18px;
    line-height: 140%;
    font-weight: normal;
    text-align: left;
    color: #fff;
    background-color: #ff6e8c;
    width: fit-content;   
    max-width: 100%; 
    padding: 5px 10px;
    margin-bottom: 15px;
}
h2.h2_title01 {
    font-size: 24px;
    line-height: 140%;
    font-weight: normal;
    text-align: left;
    color: #00ac97;
    display: block;
    border-bottom: solid 1px #00ac97;
    margin: 0 0 20px;
    padding-bottom: 10px;
}
h2.h2_title02 {
    font-size: 24px;
    line-height: 140%;
    font-weight: normal;
    text-align: left;
    color: #ff6e8c;
    display: block;
    border-bottom: solid 1px #ff6e8c;
    margin: 0 0 20px;
    padding-bottom: 10px;
}
h3.h3_philo01 {
    font-size: 20px;
    line-height: 180%;
    font-weight: normal;
    color: #00ac97;
}
h3.h3_philo02 {
    font-size: 20px;
    line-height: 180%;
    font-weight: normal;
    color: #ff6e8c;
}
.sub_title00 {
    font-size: 17px;
    line-height: 160%;
    font-weight: 600;
    color: #00ac97;
}
p.sub_title01 {
    font-size: 19px;
    line-height: 180%;
    font-weight: 600;
    color: #00ac97;
}
p.sub_title02 {
    font-size: 19px;
    line-height: 180%;
    font-weight: 600;
    color: #ff6e8c;
}
@media screen and (min-width: 1000px) {
h2.h2_title01, h2.h2_title02 {
    font-size: 26px;
    margin: 0 0 20px;
}
h3.h3_philo01, 
h3.h3_philo02 {
    font-size: 22px;
    line-height: 160%;
}
p.sub_title01, p.sub_title02 {
    font-size: 20px;
    list-style: 200%;
}
}


/* サブページボックス */
.subbox {
    padding: 50px 0;
    background-color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}
@media screen and (min-width: 1000px) {
.subbox {
    padding: 80px 0;
}
.subbox:first-of-type {
    padding-bottom: 0;
}
}

/* 右カラム */
.s01 {
    text-align: center;
    margin-bottom: 50px;
}
.s01:last-of-type {
    margin-bottom: 0;
}
.s01_subclr {
    padding: 25px 15px;
    background: linear-gradient(90deg, #fdeaef, #fbe0e7);
}
@media screen and (min-width: 768px) {
.s01_subclr {
    padding: 30px;
}
}
@media screen and (min-width: 1000px) {
.s01 {
    margin-bottom: 100px;
}
}
@media screen and (min-width: 1000px) {
.s01_subclr {
    padding: 50px;
}
}


/* フレックスボックス */
/* sub_flex01 */
.sub_flex01 {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 20px;
}
.sf01 {
    width: calc(50% - 10px);
}
@media screen and (min-width: 768px){
.sub_flex01 {
    gap: 30px;
}
.sf01 {
    width: calc(50% - 15px);
}
}
@media screen and (min-width: 1100px){
.sf01 {
    width: calc(25% - 90px / 4);
}
}

/* sub_flex02 */
.sub_flex02 {
    display: flex;
    flex-direction: column;
    gap: 50px;
}
.sub_flex02c {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media screen and (min-width: 768px){
.sub_flex02 {
    justify-content: space-between;
    align-items: stretch;
    flex-direction: row;
    gap: 40px;
}
.sub_flex02c {
    align-items: center;
    flex-direction: row;
    gap: 0;
}
.sf02 {
    width: calc(50% - 20px);
}
}

/* sub_flex03 */
.sub_flex03 {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
@media screen and (min-width: 768px){
.sub_flex03 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 30px;
}
.sf03_2, .sf03_3 {
    width: calc(50% - 15px);
}
}
@media screen and (min-width: 1300px){
.sf03_3 {
    width: calc(100% / 3 - 20px);
}
}

/* sub_flex11 */
.sub_flex11 {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media screen and (min-width: 1100px){
.sub_flex11 {
    justify-content: space-between;
    flex-direction: row;
    gap: 40px;
}
.sf11_L, .sf11_R {
    width: calc(50% - 20px);
}
}



/* 看護部長メッセージ*/
.sub_flex_boss {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media screen and (min-width: 1100px){
.sub_flex_boss {
    justify-content: space-between;
    flex-direction: row;
    gap: 50px;
}
.sf_boss_L {
    width: calc(100% - 250px);
}
.sf_boss_R {
    width: 200px;
}
.sf_boss_R img {
    width: 200px;
    height: auto;
}
}
@media screen and (min-width: 1200px){
.sf_boss_L {
    margin-bottom: 0;
    width: calc(100% - 300px);
}
.sf_boss_R {
    width: 250px;
}
.sf_boss_R img {
    width: 250px;
}
}

h2.bossmsg_txt {
    font-size: 23px;
    line-height: 150%;
    text-align: center;
    color: #00ac97;
    margin-bottom: 25px;
    display: inline-block;
    position: relative;
}
h2.bossmsg_txt:before,
h2.bossmsg_txt:after {
    font-size: 160px;
    line-height: 100%;
    font-family: "Liter", sans-serif;
    color: #dff7f1;
    position: absolute;
    z-index: -1;
}
h2.bossmsg_txt:before {
    content: "“";
    top: -20px;
    left: -40px;
}
h2.bossmsg_txt:after {
    content: "”";
    bottom: -115px;
    right: -40px;
}
p.boss_name {
    font-size: 17px;
    text-align: right;
    margin-top: 5px;
}
@media screen and (min-width: 768px) {
h2.bossmsg_txt {
    font-size: 25px;
    margin-bottom: 40px;
}
h2.bossmsg_txt:before,
h2.bossmsg_txt:after {
    font-size: 170px;
}
h2.bossmsg_txt:before {
    top: -30px;
    left: -40px;
}
h2.bossmsg_txt:after {
    bottom: -135px;
    right: -40px;
}
}
@media screen and (min-width: 1000px) {
h2.bossmsg_txt {
    font-size: 26px;
}
p.boss_name {
    font-size: 18px;
}
}
@media screen and (min-width: 1100px) {
h2.bossmsg_txt {
    text-align: left;
    margin-bottom: 35px;
}
h2.bossmsg_txt:before,
h2.bossmsg_txt:after {
    font-size: 180px;
}
h2.bossmsg_txt:before {
    top: -35px;
    left: -30px;
}
h2.bossmsg_txt:after {
    bottom: -140px;
    right: -30px;
}
}


/* 数字で見る */
.sub_records_box {
    text-align: center;
	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));
}
.srb_01 {
    background: linear-gradient(135deg, #e9fdf5, #e4faf3);
}
.srb_02 {
    background: linear-gradient(135deg, #feeff3, #fdeaef);
}
.sub_records_tri {
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.srtri_01 {
    background-color: #00ac97;
}
.srtri_02 {
    background-color: #ff6e8c;
}
p.sub_records_title {
    font-size: 18px;
    line-height: 140%;
    font-weight: 600;
    text-align: center;
    padding: 15px 5px 20px;
    position: relative;
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
}
p.srt_01 {
    color: #005547;
}
p.srt_02 {
    color: #a02841;
}
p.sub_records_title:after {
	width: 40px;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}
p.srt_01:after {
    border-bottom: 5px solid #00ac97;
}
p.srt_02:after {
    border-bottom: 5px solid #ff6e8c;
}
.sub_records_box_in01, 
.sub_records_box_in02 {
    padding: 20px 5px 20px;
	flex: 1; /* タイトル以外のエリアを自然に伸ばす */
	display: flex;
	align-items: center;
	justify-content: center;
    flex-direction: column;
}
.sub_records_box_in01 i {
    font-size: 35px;
    color: #00ac97;
    margin-bottom: 10px;
}
.sub_records_box_in02 i {
    font-size: 35px;
    color: #ff6e8c;
    margin-bottom: 10px;
}
/* カウントアップ */
.countup_num {
	font-size: 20px;
	line-height: 100%;
	font-weight: 600;
}
.cn_01 {
    color: #00ac97;
}
.cn_02 {
    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: 1100px){
p.sub_records_title {
    padding: 20px 5px 20px;
}
.sub_records_box_in01, 
.sub_records_box_in02 {
    padding: 20px 15px;
}
.sub_records_box_in01 i, 
.sub_records_box_in02 i {
    margin-bottom: 10px;
}
.countup_num .num {
	font-size: 40px;
}
}

/* どーなつ */
.donut_box {
    margin-top: 30px;
}
.donut {
    display: block;
    --dur: 1000ms;
    margin: 0 auto 20px;
}
.sweep {
    stroke-dasharray: 0 var(--C);
}
svg.start .sweep {
    animation: sweep var(--dur) linear forwards;
}
@keyframes sweep {
  to {
    stroke-dasharray: var(--C) 0;
}
}
.legend {
    width: auto;
    margin: 0 auto;
    display: inline-block;
}
.legend span {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 2px;
    vertical-align: -1px;
}
/* 円グラフが2個のときのみ記述 */
@media screen and (min-width: 768px){
.legend {
    margin: 30px auto 0 0;
}
}
/* 円グラフが2個のときのみ記述ここまで */


/* アクセス */
.accsmap iframe {
    width: 100%;
    height: 300px;
    border: 0;
}
@media screen and (min-width: 768px){
.accsmap iframe {
    height: 400px;
}
}
@media screen and (min-width: 1000px){
.accsmap iframe {
    height: 500px;
}
}

/* アクセス近隣情報 */
.accs_whereis {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.accs_whereis_box {
    background: linear-gradient(135deg, #f9f7ec, #f5f3e8);
    max-width: 100%;    
    display: flex;
    flex-direction: column;
    flex: 1 1 100%;
    box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.awb_text {
    height: 100%;
    padding: 15px 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
.accs_whereis_box img {
    max-height: 250px;
}
p.station {
    font-size: 23px;
    line-height: 140%;
    font-weight: 600;
    text-align: center;
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
}
.time {
    font-size: 19px;
    text-align: center;
}
.time_num {
    font-size: 38px;
    font-family: "Jost", serif;
    font-weight: 600;
    color: #c84b19;
    margin: 0 1px;
    vertical-align: -3px;
}
.time_min {
    font-size: 22px;
    font-weight: bold;
    color: #c84b19;
    vertical-align: -1px;
}
/* タブレット：2列 */
@media screen and (min-width: 599px) {
.accs_whereis_box {
    flex: 0 0 calc(50% - 10px);
}
}
/* PC：3列 */
@media screen and (min-width: 1200px) {
.accs_whereis_box {
    flex: 0 0 calc(100% / 3 - 40px / 3);
}
}


/* 1日のスケジュールページ */
.schedule_box {
    position: relative;
}
.schedule_box::before {
    content: "";
    position: absolute;
    top: 35px;
    left: calc(30px - 2px);
    width: 4px;
    height: calc(100% - 35px);
    z-index: 0;
}
.sche01::before {
    background: linear-gradient(#ff8296, #ff5a82);
}
.sche02::before {
    background: linear-gradient(#00c2ab, #009683);
}
.sche_step {
    display: flex;
    align-items: flex-start;
    position: relative;
    padding-bottom: 40px;
}
.sche_step:last-child {
    padding-bottom: 0;
}
.sche_time {
    font-size: 13px;
    line-height: 130%;
    font-weight: bold;
    text-align: center;
    color: #fff;
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1; /* 縦線より前に出す */
    font-feature-settings: "palt";
}
.sche01 p.sche_time {
    background: linear-gradient(135deg, #ff7891, #ff6487);
}
.sche02 p.sche_time {
    background: linear-gradient(135deg, #00b7a1, #00a18d);
}
.sche_content {
    text-align: left;
    margin-left: 15px;
    flex: 1;
}
.sche_content h3 {
    font-size: 19px;
    line-height: 140%;
    font-weight: bold;
    text-align: left;
    margin-top: 15px;
    margin-bottom: 10px;
}
.sche_txt01 {
    margin-bottom: 20px;
}
.sche01 .sche_content h3 {
    color: #ff6e8c;
}
.sche02 .sche_content h3 {
    color: #00ac97;
}
.sche_pic01 img {
    max-width: 400px;
    border: solid 6px #fff;
    box-shadow: 0 0 8px rgba(0,0,0,0.1);
}
@media screen and (min-width: 768px) {
.sche_step {
    padding-bottom: 50px;
} 
.sche_flex01 {
    display: flex;
    justify-content: space-between;
}
.sche_txt01 {
    margin-bottom: 0;
    margin-right: 40px;
}
.sche_pic01 img {
    width: 240px;
    height: 180px;
    border: solid 7px #fff;
}
}
@media screen and (min-width: 1000px) {
.schedule_box::before {
    top: 45px;
    left: calc(50px - 2px);
    height: calc(100% - 50px);
}
p.sche_time {
    font-size: 18px;
    width: 100px;
    height: 100px;
}
p.sche_time span {
    font-size: 15px;
    font-weight: 500;
}
.sche_content h3 {
    margin-top: 25px;
}
.sche_pic01 img {
    width: 200px;
    height: 160px;
}
}
@media screen and (min-width: 1200px) {
.sche_step {
    padding-bottom: 60px;
}    
.sche_pic01 img {
    width: 260px;
    height: 200px;
    border: solid 8px #fff;
}
}


/* シフト例 */
.tbl_shift {
	border: solid 1px #ddd;
}
.tbl_shift th, .tbl_shift td {
    padding: 5px;
    border-bottom: solid 1px #ddd;
    font-feature-settings: "palt";
}
.tbl_shift tr:last-of-type th, 
.tbl_shift tr:last-of-type td {
    border-bottom: 0;
}
.tbl_shift th {
    font-weight: 700;
    text-align: center;
    border-right: solid 1px #ddd;
    white-space: nowrap;
}
.tbl_shift th.th01 {
    color: #00ac97;
    background-color: #dff7f1;
}
.tbl_shift th.th02 {
    color: #ff6e8c;
    background-color: #fce5eb;
}
.tbl_shift td {
    line-height: 140%;
    font-size: 14px;
    font-weight: bold;
    text-align: justify;
    border-right: solid 1px #ddd;
}

.td_date01 p { /*日勤*/
    background-color: #fe9f31;   
}
.td_date02 p { /*夜勤*/
    background-color: #33d3fe;
}
.td_date03 p { /*休み*/
    background-color: #ff8296;
}
.td_date04 p { /*明け*/
    background-color: #33d3fe;
}
.td_date05 p { /*有休*/
    background-color: #ff3333;
}
.td_date06 p { /*早番*/
    background-color: #2BA150;
}
.td_date07 p { /*遅番*/
    background-color: #9B59B6;
}
.tbl_shift td p {
    font-size: 14px;
    font-weight: lighter; 
    text-align: center;
    color: #fff;
    border-radius: 5px;
    margin-top: 8px;
}
@media screen and (min-width: 768px) {
.tbl_shift th {
    padding: 8px;
    font-size: 18px;
}
.tbl_shift td {
    font-size: 18px; 
    padding: 5px 15px 15px 15px; 
}
.tbl_shift td p {
    font-size: 18px;
    margin-top: 15px;
}
}
@media screen and (min-width: 1000px) {
 .tbl_shift th {
    padding: 6px;
}
.tbl_shift td {
    padding: 3px 10px 10px 10px; 
}
.tbl_shift td p { 
    margin-top: 20px;
}
}
@media screen and (min-width: 1200px) {
 .tbl_shift th {
    font-size: 19px;
}
.tbl_shift td {
    font-size: 19px;
    padding: 3px 18px 10px 18px; 
}
.tbl_shift td p{
    font-size: 19px;
    margin-top: 25px;   
}
}


/* 看護部長・教育担当インタビューボタン */
.intv {
    max-width: 500px;
    height: 80px;
    background: linear-gradient(90deg, #ff7891, #ff6487);
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
}
.intv p {
    font-size: 15px;
    line-height: 140%;
    text-align: center;
    color: #fff;
    width: calc(100% - 150px);
}
.intv p i {
    margin-left: 10px;
}
.intv img {
    width: 150px;
    height: 80px;
    object-fit: cover;
    clip-path: polygon(9% 0%, 100% 0%, 100% 100%, 0% 100%);
}
@media screen and (min-width: 768px) {
.intv {
    height: 100px;
}
.intv p {
    font-size: 16px;
    line-height: 150%;
}
.intv img {
    height: 100px;
}
}
@media screen and (min-width: 1000px) {
.intv {
    height: 120px;
    transition: all 0.2s ease;
}
.intv:hover {
    opacity: 0.8;
}
.intv p {
    width: 400px;
}
.intv img {
    width: 200px;
    height: 120px;
}
}


/* 先輩の声 角版と切り抜きバージョン */
.sv_box01, .sv_box02 {
    position: relative;
}
.sv_catchbox01, 
.sv_catchbox02 {
    display: flex;
    flex-direction: column;
}
h2.sv_catch {
    height: 120px;
    padding: 15px 20px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    z-index: -2;
}
.sv_box01 h2.sv_catch {
    background-color: #00ac97;
}
.sv_box02 h2.sv_catch {
    background-color: #ff6e8c;
}
h2.sv_catch span {
    font-size: 22px;
	line-height: 160%;
    font-weight: 300;
    text-align: center;
    color: #fff;
    display: inline;
    position: relative;
}
h2.sv_catch span.sv_w_quotes:before, 
h2.sv_catch span.sv_w_quotes:after { 
    font-size: 140px;
    line-height: 100%;
    font-family: "Liter", sans-serif;
    position: absolute;
    z-index: -1;
}
.sv_box01 h2.sv_catch span.sv_w_quotes:before, 
.sv_box01 h2.sv_catch span.sv_w_quotes:after {
    color: #00c2ab;
}
.sv_box02 h2.sv_catch span.sv_w_quotes:before, 
.sv_box02 h2.sv_catch span.sv_w_quotes:after {
    color: #ff8296;
}
h2.sv_catch span.sv_w_quotes:before {
    content: "“";
    top: -25px;
    left: -20px;
}
h2.sv_catch span.sv_w_quotes:after {
    content: "”";
    bottom: -110px;
    right: -20px;
}
.sv_catchpic {
    position: relative;
}
@media screen and (min-width: 768px){
h2.sv_catch {
    height: 150px;
}
h2.sv_catch span {
    font-size: 24px;
}
h2.sv_catch span:before {
    top: -30px;
}
h2.sv_catch span:after {
    bottom: -115px;
}
}
@media screen and (min-width: 1000px){
.sv_catchbox01 {
    flex-direction: row;
}
.sv_catchbox02 {
    flex-direction: row-reverse;
    justify-content: flex-end;
}
h2.sv_catch {
    width: 50%;
    height: 300px;
    padding: 26px 30px;
}
.sv_catchpic {
    width: 45%;
}
.sv_catchpic img {
    height: 300px;
}
}

/* nametag */
.nametag01, 
.nametag02 {
    font-size: 15px;
    line-height: 140%;
    padding: 8px 10px;
    position: absolute;
    bottom: 15px;
    right: 0;
}
.nametag01 {
    color: #00ac97;
    background-color: #dff7f1;
    border-left: solid 10px #00ac97;
}
.nametag02 {
    color: #ff6e8c;
    background-color: #fce5eb;
    border-left: solid 10px #ff6e8c;
}
.nametag01 span, 
.nametag02 span {
    font-weight: 700;
}
@media screen and (min-width: 768px){
.nametag01, .nametag02 {
    font-size: 16px;
    padding: 10px 15px;
}
}

/* Q&A */
.sv_qa01 {
    background-color: #dff7f1;
    padding: 20px 15px;
}
.sv_qa02 {
    background-color: #fce5eb;
    padding: 20px 15px;
}
.qa_flex {
    display: flex;
}
.q_circle, .a_circle {
    font-family: "Jost", serif;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    color: #fff;
    margin-right: 7px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.q_circle {
    background: #ff6e8c;
    margin-top: 2px;
}
.a_circle {
    background: #00ac97;
    margin-top: 2px;
}
p.q_txt {
    line-height: 150%;
    font-weight: 700;
    color: #ff6e8c;
    width: calc(100% - 30px);
    margin-bottom: 10px;
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
}
p.a_txt {
    width: calc(100% - 30px);
    margin-bottom: 20px;
}
.qa_downer .qa_flex:last-child .a_txt {
    margin-bottom: 0;
}
.qa_bdb_mainclr {
    border-bottom: solid 1px #00ac97;
}
.qa_bdb_subclr {
    border-bottom: solid 1px #ff6e8c;
}
.qa_bdb_mainclr, .qa_bdb_subclr {
    margin-bottom: 20px;
}
@media screen and (min-width: 600px) {
.sv_qa01, .sv_qa02 {
    padding: 30px 40px;
}
}
@media screen and (min-width: 768px) {
.sv_qa01, .sv_qa02 {
    padding: 40px;
}
.q_circle,
.a_circle {
    width: 25px;
    height: 25px;
    margin-right: 10px;
}
.q_circle {
    margin-top: 1px;
}
.a_circle {
    margin-top: 2px;
}
p.q_txt {
    width: calc(100% - 35px);
    margin-bottom: 12px;
}
p.a_txt {
    width: calc(100% - 35px);
    margin-bottom: 30px;
}
.qa_bdb_mainclr, .qa_bdb_subclr {
    margin-bottom: 30px;
}
}
@media screen and (min-width: 1000px) {
.sv_qa01, .sv_qa02 {
    width: 95%;
}
p.q_txt {
    margin-bottom: 15px;
}
p.a_txt {
    margin-bottom: 35px;
}
.qa_bdb_mainclr, .qa_bdb_subclr {
    margin-bottom: 40px;
}
}
@media screen and (min-width: 1200px) {
.sv_qa01, .sv_qa02 {
    padding: 50px;
}
}

/* 切り抜き写真関係 */
@media screen and (min-width: 1000px){
.qa_downer {
    padding-right: calc(250px - 5% - 40px - 10px);
    /* (sv_cutpicのwidth - sv_qa01のwidthの足りない分 - sv_qa01のpadding-left - おまけの10px) */
}
.sv_cutpic {
    position: absolute;
    bottom: 0;
    right: -6%;
    width: 250px;
}
}
@media screen and (min-width: 1200px){
.qa_downer {
    padding-right: calc(250px - 5% - 50px - 20px);
}
.sv_cutpic {
    right: -5%;
}
}



/* マーカー */
.marker, .marker_mainclr, .marker_subclr {
    background-repeat: no-repeat;
    background-size: 0% 100%;
    display: inline;
    padding: 0 1px 5px;
    transition: background-size 1.5s;
    transition-delay: 0.75s;
}
.marker {
    background-image: linear-gradient(transparent 60%, #00000017 60%);
}
.marker_mainclr {
    background-image: linear-gradient(transparent 60%, #00554733 60%);
}
.marker_subclr {
    background-image: linear-gradient(transparent 60%, #a0284133 60%);
}
.marker.on, .marker_mainclr.on, .marker_subclr.on {
    background-size: 100% 100%;
}


/* 教育 */
.mstr_box {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.gnrl_box, .mngm_box, .spcl_box {
    width: 100%;
}
.mstr_box p {
    line-height: 100%;
    font-weight: bold;
    color: #00ac97;
    margin-left: 15px;
    font-feature-settings: "palt";
    letter-spacing: 0.05em;
}
.mstr_box p span {
    font-weight: normal;
    color: #222;
    margin: 5px 0;
    display: block;
}
.gnrl_box, .mngm_box, .spcl_box {
    background-color: #dff7f1;
    border: solid 1px #00ac97;
    border-left: solid 10px #00ac97;
    padding: 15px 0;
}
@media screen and (min-width: 599px){
.mstr_box {
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    gap: 15px;
}
.mstr_box p {
    text-align: center;
    margin-left: 0;
}
.mstr_box p span {
    margin: 10px 0 5px;
}
}
@media screen and (min-width: 1000px){
.mstr_box {
    gap: 20px;
}
}

/* 入職後のサポート制度 */
.support_box {
    position: relative;
}
.support_box::before {
    content: "";
    position: absolute;
    top: 35px;
    left: calc(30px - 2px);
    width: 4px;
    height: calc(100% - 35px);
    background: linear-gradient(#00c2ab, #009683);
    z-index: 0;
}
.supp_step {
    display: flex;
    align-items: flex-start;
    position: relative;
    padding-bottom: 40px;
}
.supp_step:last-child {
    padding-bottom: 0;
}
.supp_time {
    font-size: 10px;
    /* 内容によって調整する。デフォは13px; */
    line-height: 130%;
    font-weight: bold;
    text-align: center;
    color: #fff;
    border-radius: 50%;
    width: 65px;
    height: 65px;
    /* 内容によって調整する。デフォは60px */
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1; /* 縦線より前に出す */
    font-feature-settings: "palt";
}
p.supp_time span {
    font-size: 9px;
    /* 内容によって調整する。デフォは未設定 。*/
    margin-top: 3px;
}
p.supp_time {
    background: linear-gradient(135deg, #00b7a1, #00a18d);
}
.supp_content {
    text-align: left;
    margin-left: 15px;
    flex: 1;
}
.supp_content h3 {
    font-size: 19px;
    line-height: 140%;
    font-weight: bold;
    text-align: left;
    color: #00ac97;
    margin-top: 20px;
    /* 内容によって調整する。デフォは15px */
    margin-bottom: 10px;
}
@media screen and (min-width: 768px) {
.supp_step {
    padding-bottom: 50px;
} 
}
@media screen and (min-width: 1000px) {
.support_box::before {
    top: 45px;
    left: calc(50px - 2px);
    height: calc(100% - 50px);
}
p.supp_time {
    font-size: 15px;
    /* 内容によって調整する。デフォは18px; */
    width: 100px;
    height: 100px;
}
p.supp_time span {
    font-size: 13px;
    /* 内容によって調整する。デフォは未設定 */
    font-weight: 500;
}
.supp_content h3 {
    margin-top: 25px;
}
}
@media screen and (min-width: 1200px) {
.supp_step {
    padding-bottom: 60px;
}    
}


/* よくある質問 */
ul.faq_accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.faq_accordion .faq_box {
	border: solid 1px #ddd;
}
.faq_question {
    position: relative;
    cursor: pointer;
    padding: 20px 45px 20px 10px;
    display: flex;
    transition: all 0.5s ease;
}
p.mark_Q, p.mark_A {
    font-family: "Jost", serif;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}
p.mark_Q {
    background-color: #00ac97;
}
p.mark_A {
    background-color: #ff6e8c;
}
.faq_txt {
    width: calc(100% - 40px);
    margin-top: 1.5px;
    margin-left: 10px;
}
.faq_question::before,
.faq_question::after {
    position: absolute;
    content:'';
    width: 15px;
    height: 2px;
    background-color: #ff6e8c;
    transition: all 0.5s ease;
}
.faq_question::before{
    top: 48%;
    right: 15px;
    transform: rotate(0deg);
}
.faq_question::after{    
    top: 48%;
    right: 15px;
    transform: rotate(90deg);
}
.faq_question.close::before{
	transform: rotate(45deg);
}
.faq_question.close::after{
	transform: rotate(-45deg);
}
.faq_answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: #fce5eb;
    padding: 0 15px 0 10px
}
.faq_answer_in {
    padding: 15px 0;
    display: flex;
}
@media screen and (min-width: 1000px){
ul.faq_accordion {
    gap: 25px;
}
.faq_txt {
    margin-top: 0;
}
.faq_question {
    padding: 25px 50px 25px 20px;
}
.faq_question::before{
    right: 20px;
}
.faq_question::after{    
    right: 20px;
}
.faq_answer {
    padding: 0 20px;
}
.faq_answer_in {
    padding: 25px 0;
}
}



/* table01一生横並び */
.tbl01 {
	border: solid 1px #00ac97;
}
.tbl01_subclr {
    border: solid 1px #ff6e8c;
}
.tbl01 th, .tbl01 td {
    padding: 10px;
    border-bottom: solid 1px #00ac97;
    font-feature-settings: "palt";
}
.tbl01_subclr th, .tbl01_subclr td {
    border-bottom: solid 1px #ff6e8c;
} 
.tbl01 tr:last-of-type th, 
.tbl01 tr:last-of-type td {
    border-bottom: 0;
}
.tbl01 th {
    font-weight: 700;
    text-align: center;
    color: #00ac97;
    background-color: #dff7f1;
    border-right: solid 1px #00ac97;
    white-space: nowrap;
}
.tbl01_subclr th {
    color: #ff6e8c;
    background-color: #fce5eb;
    border-right: solid 1px #ff6e8c;
}
.tbl01 th.th01 {
    font-weight: 500;
    padding: 7px 10px;
    color: #fff;
    background-color: #00ac97;
    border-right: solid 1px #dff7f1;
    border-bottom: solid 1px #00ac97;
}
.tbl01 th.th01:last-of-type {
    border-right: solid 1px #00ac97;
}
.tbl01 th.th02 {
    color: #fff;
    background-color: #00ac97;
    border-right: solid 1px #00ac97;
    border-bottom: solid 1px #00ac97;
}
.tbl01 th.th03 {
    font-size: 15px;
    line-height: 140%;
    background-color: #d5f1ed;
    width: 15%;
    padding: 10px 5px;
}
.tbl01 th.th04 {
    padding: 10px 5px;
}
.tbl01 td {
    line-height: 140%;
    text-align: justify;
    background-color: #fff;
}
.tbl01 td.td01 {
    text-align: center;
    color: #00ac97;
    background-color: #dff7f1;
    border-right: solid 1px #00ac97;
    border-bottom: solid 1px #00ac97;
}
.tbl01 td.td02 {
    text-align: center;
    border-right: solid 1px #00ac97;
}
.tbl01 td.td03 {
    font-size: 15px;
    line-height: 140%;
    text-align: center;
    background-color: #dff7f1;
    border-right: solid 1px #00ac97;
    width: 15%;
    padding: 10px 5px;
}
a.tbl_tel {
	font-size: 28px;
    line-height: 100%;
	font-family: "Outfit", sans-serif;
    font-weight: 500;
    color: #00ac97;
    letter-spacing: 0.03em;
}
@media screen and (min-width: 768px) {
.tbl01 th, .tbl01 td {
    padding: 15px;
}
.tbl01 th.th03 {
    font-size: 16px;
}
.tbl01 td.td03 {
    font-size: 16px;
}
}
@media screen and (min-width: 1000px) {
.tbl01 th.th03 {
    font-size: 17px;
}
.tbl01 td.td03 {
    font-size: 17px;
}
}


/* table02 */
.tbl02 tr {
    border: solid 1px #00ac97;
}
.tbl02 th {
    text-align: center;
    background-color: #ebf5e6;
    display: block;
    padding: 10px;
    white-space: nowrap;
}
.tbl02 th.th02 {
    font-size: 15px;
    line-height: 140%;
    font-weight: 700;
    text-align: left;
    padding: 5px 10px;
}
.tbl02 td {
    font-size: 16px;
    line-height: 150%;
    text-align: justify;
    background-color: #fff;
    display: block;
    padding: 10px;
}
.tbl02 td.td02 {
    font-size: 16px;
    padding: 5px 10px 10px;
}
@media screen and (min-width: 768px) {
.tbl02 th {
    border-right: solid 1px #bbb;
    display: table-cell;
}
.tbl02 th.th02 {
    text-align: center;
    width: 170px;
    padding: 10px;
}
.tbl02 td {
    display: table-cell;
}
.tbl02 td.td02 {
    padding: 10px;
}
}


/* table03 */
.tbl03 tr {
    border: solid 1px #00ac97;
}
.tbl03 th {
    color: #00ac97;
    background-color: #dff7f1;
    border-bottom: solid 1px #00ac97;
    display: block;
    padding: 10px;
    white-space: nowrap;
}
.tbl03 td {
    font-size: 16px;
    line-height: 150%;
    text-align: justify;
    background-color: #fff;
    display: block;
    padding: 10px;
}
.tbl03 td p.scl {
    line-height: 160%;
    font-weight: bold;
    color: #00ac97;
    margin-bottom: 5px;
}
.tbl03 td p.scl_wide {
    line-height: 160%;
    font-weight: bold;
    color: #00ac97;
    padding-bottom: 1px;
}
@media screen and (min-width: 768px) {
.tbl03 th {
    padding: 10px 15px;
}
.tbl03 td {
    padding: 15px;
}
.tbl03 th.th02 {
    text-align: center;
    width: 170px;
    padding: 10px;
}
.tbl03 td.td02 {
    padding: 10px;
}
}


/* 背景bgと理念系背景三角 */
.sb_bg_main {
    background: linear-gradient(135deg, #e4faf3, #daf4ef);
    padding: 20px 15px;
}
.sb_bg_sub {
    background: linear-gradient(135deg, #fdeaef, #fbe0e7);
    padding: 20px 15px;
}
.sb_bg01, .sb_bg01_wide, .sb_bg02 {
    padding: 30px 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
}
.sb_bg01 {
    background: linear-gradient(135deg, #e4faf3, #daf4ef);
}
.sb_bg02 {
    background: linear-gradient(135deg, #fdeaef, #fbe0e7);
}
.sb_bg01_wide, 
.sb_bg01_narrow {
    padding: 40px 20px;
}
.philo_tri_a {
    position: absolute;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.philo_tri_b {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 30px;
    height: 30px;
    clip-path: polygon(100% 0, 0% 100%, 100% 100%);
}
.ptri_01 {
    background-color: #00ac97;
    
}
.ptri_02 {
    background-color: #ff6e8c;
    
}
@media screen and (min-width: 499px) {
.sb_bg01,
.sb_bg02 {
    padding: 30px 40px;
}
.sb_bg01_wide, 
.sb_bg01_narrow {
    padding: 60px 40px;
}
}
@media screen and (min-width: 768px) {
.sb_bg_main, 
.sb_bg_sub {
    padding: 30px 20px;
}
}
@media screen and (min-width: 1100px) {
.sb_bg01 {
    padding: 50px 100px;
    margin-bottom: 50px;
}
.sb_bg02 {
    padding: 50px 140px;
    margin-bottom: 50px;
}
.sb_bg01_wide {
    padding: 80px 100px;
}
.sb_bg01_narrow {
    padding: 80px 40px;
}
}


/* 見学・説明会・インターンシップ */
/* プログラム化する */
.int_s01, .int_s02 {
    padding-bottom: 50px;
}
.int_s01 h2.h2_int_title {
    font-size: 24px;
    line-height: 140%;
    font-weight: normal;
    text-align: left;
    color: #00ac97;
    display: block;
    border-bottom: solid 1px #00ac97;
    margin: 0 0 20px;
    padding-bottom: 10px;
}
.int_s02 h2.h2_int_title {
    font-size: 24px;
    line-height: 140%;
    font-weight: normal;
    text-align: left;
    color: #ff6e8c;
    display: block;
    border-bottom: solid 1px #ff6e8c;
    margin: 0 0 20px;
    padding-bottom: 10px;
}
.int_box {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.int_box_txt {
    text-align: left;
}
.int_box_assets {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.int_link {
    font-size: 16px;
    line-height: 140%;
    font-weight: 600;
    padding: 15px 35px 15px 20px;
    border-radius: 999px;
    width: 100%;
    max-width: 320px;
    display: inline-flex;
    align-items: center;
    position: relative;
}
.int_s01 .int_link {
    color: #00ac97;
    background-color: #e4faf3;
    border: solid 1px #00ac97;
}
.int_s02 .int_link {
    color: #ff6e8c;
    background-color: #fdeaef;
    border: solid 1px #ff6e8c;
}
.int_link i {
    position: absolute;
    top: calc(50% - 8px);
    right: 15px;
}
@media screen and (min-width: 701px) {
.int_s01, .int_s02 {
    padding-bottom: 100px;
}
.int_box {
    gap: 30px;
}
.int_s01 .int_link:hover {
     background-color: #d5f1ed;
}
.int_s02 .int_link:hover {
     background-color: #fbe0e7;
}
}

/* エントリーボタン */
.int_btn01 {
    color: #fff;
    background-color: #00ac97;
    border-radius: 30px;
    width: 100%;
    max-width: 320px;
    height: 60px;
    padding: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.int_btn01 i {
	margin: 0 10px 0 0;
}
.int_btn02 {
    color: #fff;
    background-color: #ff6e8c;
    border-radius: 30px;
    width: 100%;
    max-width: 320px;
    height: 60px;
    padding: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.int_btn02 i {
	margin: 0 10px 0 0;
}
@media screen and (min-width: 610px){
.int_btn01:hover {
	background-color: #009683;
}
.int_btn02:hover {
	background-color: #ff5a82;
}
}

