@charset "utf-8" ;

/**
debug
**/
/**セクションごとの区切りを入れる用**/
.testmode hr {
  display: block;;
  border-top: 10px dashed darkorange;
  height: 10px;
  background: #000;
  margin: 0;
  width: 99vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.testmode div {
  outline: 2px dashed deeppink;
}
.testmode img {
  outline: 1px dashed blue;
}


/**default**/
*, ::before, ::after {
    box-sizing: border-box;
}
body {
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%; /* Safari */
}
/**@acab/reset.cssのダークモード不具合対策**/
html {
    color-scheme: unset; /* リセット相当の無効化 */
    scroll-behavior: smooth;
}
:where(:focus-visible, :target) {
    scroll-margin-block: unset;
}
body {
    background-color: white;
    color: #333;
}


img {
    max-width:100%;
    vertical-align: top;
}
table {
    width:100%;
}
a:link, a:active, a:visited {
    text-decoration: none;
    color: inherit;
}
a,a:hover {
    -webkit-transition: 0.7s;
    -moz-transition: 0.7s;
    -o-transition: 0.7s;
    transition: 0.7s;
}
a:hover {
    opacity: 0.8;
}
a, picture, img {
    display: block;
}
/**20251003off（調整必要）
main .inner1000 :last-child {
    margin-bottom: 0!important;
}
main .inner1000 dt:last-of-type {
    margin-bottom: 0!important;
}
**/

/* main .inner1000 dd:last-child(:has(~ dt)) {
    margin-bottom: 0!important;
    color: red;
} */

/**Google Font用のスタイル**/
.f_noto_sans {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
}
.f_noto_serif {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: normal;
  font-style: normal;
}


/**共通**/
.mb10per {
    margin-bottom: 10%;
}
.mb0 {
    margin-bottom: 0!important;
}
.no-absolute {
    position: unset!important;
}
.triangle_right::before {
    content: "";
    width: 10px;
    height: 10px;
    background: #fff;
    display: inline-block;
    clip-path: polygon(0 0, 0% 100%, 90% 50%);
    margin-right: 0.5rem;
}
.triangle_up::before {
    content: "";
    width: 10px;
    height: 10px;
    background: #fff;
    display: inline-block;
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    margin-right: 0.5rem;
}
.flexbox {
    display: flex;
    justify-content: space-between;
}
.i_b_center_x {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

/**base**/
/**
フォント設定
ベースフォント（ゴシック）："Noto Sans JP", sans-serif;
タイトルなど（明朝体）："Noto Serif JP", serif;
**/
/**Safari14.1 ok**/
::-webkit-scrollbar{
    width: 15px;
    height: 10px;
    box-sizing: border-box;
    position: fixed;
}
::-webkit-scrollbar-track{
    background-color: #cccccc;
    box-sizing: border-box;
}
::-webkit-scrollbar-thumb{
    background-color: #333333;
    box-sizing: border-box;
}

html {
    font-size: 10px;
}
body {
    font-size: 1.3rem;
    font-size: 1.4rem;
    font-size: 1.5rem; /**20251007**/
    line-height: 1.5;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: normal;
    font-style: normal;
}
/**トップページ用**/


/**サブページ用**/
.wrap_page {
    width: 100%;
    /* background-color: #fef9f4; */
    /* background-color: #fcecdb; */
    background-color: #fef9f4;
    overflow: hidden;
}
.wrap_page img {
    max-width: 100%;
}
.wrap_page img, .wrap_page a {
    display: inline-block;
}
.wrap_page .inner1000 {
    max-width: 1000px;
    margin: 0 auto;

}
.wrap_page .inner1920 {
    max-width: 1920px;
    margin: 0 auto;
}
.wrap_page .inner860 {
    max-width: 860px;
    margin: 0 auto;
}

.pcnone {
    display: none!important;
}
.spnone {
    display: inline-block!important;
}


/*
サブページ共通
******************************/

/**
ベースカラー
ベージュ：#fef9f4
緑：#009192
グラデ右端の緑：#9cf2f2
グラデ左端の黄：#？？
**/

body {
    background: #fef9f5;
}
/*ヘッダー**********/
header {
    background: #009192;
    color: #fff;
    position: relative;
    /* overflow: hidden; */
}
header::after {
    content: "";
    background: url(../img/common/header_bg.png) no-repeat;
    background-color: transparent;
    width: 100%;
    height: 127px;
    display: block;
    position: absolute;
    bottom: 0;
    opacity: 0.3;
    background-position-x: 40vw;
}
header .inner1000 {
    padding: 1% 1% 0;
    overflow: hidden;
}
header .header_logo {
    width: 23%;
    float: left;
    margin-bottom: 8%;
}
header .gmenu {
    font-size: 1.3rem;
    font-size: 1.4rem;
    float: right;
    /* display: flex; */
    width: 70%;
    text-align: right;
    font-family: "Noto Serif JP", serif;
}
header .gmenu li {
    margin: 0 1.5%;
    display: inline-block;
}
header .gmenu li a {
    padding: 0.5em 0em;
    /* white-space: nowrap; */
    display: inline-block;
}
header .gmenu li.link_contact a {
    padding: 0.5em 2em;
    background-color: #f08c1d;
    border-radius: 99px;

}
header .gmenu li.link_contact {
    margin-right: 0;
}
header .pagetitle {
    clear: both;
    line-height: 1.3;
    line-height: 1.1;
    font-weight: bold;
    font-size: 5.5rem;
    margin-bottom: 8%;
    white-space: nowrap;
}
header .pagetitle small {
    font-weight: normal;
    font-size: 1.7rem;
    display: block;
    margin-top: 1%;
}

/*HM**********/
/**20251007.topと共通としたいためPC部に記述（PCソースへspnoneで表示切り替え）**/
.hm {
    float: right;
}
.hm ul {
    position: absolute;
    right: -25vw;
    height: 98vh;
    height: 100vh;
    z-index: 20;
    top: 0;
    background-color: rgb(0 145 145 / 0.85);
    color: #fff;
    font-size: 20px;
    text-align: center;
    display: inline-flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 30vh 0;
    width: 25vw;
    transition: all 0.6s;
    overflow: hidden;
}
    .hm ul li a {
    /* padding: 10% 0; */
    display: inline-block;
    text-decoration: none;
    width: 100%;
    white-space: nowrap;
    }
.hm .wrap_icon {
    background-color: #fff;
    position: relative;
    width: 30px;
    height: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 30;
    cursor: pointer;
}
.hm .wrap_icon span,
.hm .wrap_icon span::before,
.hm .wrap_icon span::after {
    background-color: #009192;
    width: 24px;
    height: 2px;
    display: block;
    position: absolute;
    transition: all 0.5s;
}
/**トップページ,佐々木賞ページは色を反転**/
.pg_top .hm .wrap_icon,
.pg_award .hm .wrap_icon {
    background-color: #009192;
}
.pg_top .hm .wrap_icon span,
.pg_top .hm .wrap_icon span::before,
.pg_top .hm .wrap_icon span::after,
.pg_award .hm .wrap_icon span,
.pg_award .hm .wrap_icon span::before,
.pg_award .hm .wrap_icon span::after {
    background-color: #fff;
}

.hm .wrap_icon span::before {
    content: "";
    bottom: 6px;
}
.hm .wrap_icon span::after {
    content: "";
    top: 6px;
}

.open.hm ul {
    right: 0;
}

/**真ん中を隠す色**/
.open.hm .wrap_icon span {
    background-color: #fff;
}
.pg_top .open.hm .wrap_icon span,
.pg_award .open.hm .wrap_icon span {
    /* height: 0; */
    background-color: #009192;
}

.open.hm .wrap_icon span::before {
    bottom: 0;
    transform: rotate(45deg) translateY(0px);
    height: 2px;
}
.open.hm .wrap_icon span::after {
    top: 0;
    transform: rotate(-45deg) translateY(-0px);
    height: 2px;
}


/*コンテンツ**********/
main {
    padding: 10% 0 5%;
}
main section {
    margin-bottom: 12%;
}
main .wrap_sectitle {
    position: relative;
    z-index: 10;
}
/**0908
main .wrap_sectitle::before {
    content: "";
    background: url(https://placehold.jp/1240x400.png) no-repeat;
    background-color: transparent;
    width: 100%;
    height: 400px;
    height: 427%;
    display: block;
    position: absolute;
    top: 0;
    z-index: -1;
}
main .wrap_sectitle.bg_right::before {
background-position-x: calc(50vw - 300px);
}
main .wrap_sectitle.bg_left::before {
background-position-x: calc(0);
background-size: calc(50vw + 300px);
}
**/

/**セクション背景処理1：前面（パターン共通設定）**/
main .wrap_sectitle.bg_right::after,
main .wrap_sectitle.bg_left::after,
main .wrap_sectitle.bg_center::after {
    content: "";
    /* background: url(../img/common/common_bg_w1920_R_ptn1.png) no-repeat; */
    background-repeat: no-repeat;
    background-color: transparent;
    width: 100%;
    height: 400px; /**実値**/
    height: 427%;
    display: block;
    position: absolute;
    top: 0;
    z-index: -1;
    background-size: contain;
    background-position: center top;
    background-position: center 4rem;
    background-position: center 3rem; /**20251010**/
    max-height: 400px;
}

/**セクション背景処理2：背面（共通設定）**/
main .wrap_sectitle.bg_right::before,
main .wrap_sectitle.bg_left::before,
main .wrap_sectitle.bg_center::before {
    content: "";
    /* background: url(../img/common/common_bg_w10_R_repeat_test.png) no-repeat; */
    background-repeat: no-repeat;
    background-repeat: repeat-x;
    background-color: transparent;
    /* width: 50%;★ */
    height: 400px; /**実値**/
    height: 427%;
    display: block;
    position: absolute;
    top: 0;
    z-index: -1;
    background-size: contain;
    /* left: 50%;★ */
    max-height: 400px;
    background-position: center 4rem;
    background-position: center 3rem; /**20251010**/
}
/**セクション背景処理2：背面（個別設定）**/
main .wrap_sectitle.bg_right::before {
    width: 50%;
    left: 50%;
}
main .wrap_sectitle.bg_left::before {
    width: 50%;
    left: 0%;
}
main .wrap_sectitle.bg_center::before {
    width: 100%;
    left: 0%;
}


/**セクション背景処理（パターンごとの画像設定）**/
/**
以下のパターンにそれぞれL、R、O（全幅）がある。
画像は1920x400で全幅を書き出しない部分は透過。
ptn0:パターンなし
ptn1:波パターン
ptn2:丸パターン
**/
/**共通リピート **/
main .wrap_sectitle::before {
    background-image: url(../img/common/common_bg_w10_L_repeat.png) ;
}

/**ptn0 R**/
main .wrap_sectitle.bg_R_ptn0::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn0.png) ;
}
/**★PCここがない**/

/**ptn0 L**/
main .wrap_sectitle.bg_R_ptn0::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn0.png) ;
}

/**ptn1 R**/
main .wrap_sectitle.bg_R_ptn1::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn1.png) ;
}
/**ptn1 L**/
main .wrap_sectitle.bg_left.bg_L_ptn1::after {
    background-image: url(../img/common/common_bg_w1920_L_ptn1.png) ;
}

/**ptn2 R**/
/* main .wrap_sectitle.bg_left.bg_R_ptn2::after { */
main .wrap_sectitle.bg_R_ptn2::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn2.png) ;
}

/**ptn2 L**/
main .wrap_sectitle.bg_left.bg_L_ptn2::after {
    background-image: url(../img/common/common_bg_w1920_L_ptn2.png) ;
}

/**ptn1 O**/
main .wrap_sectitle.bg_center.bg_O_ptn1::after {
    background-image: url(../img/common/common_bg_w1920_O_ptn1.png) ;
}

main .btn_link {
    color: #009192;
    font-family: "Noto Serif JP", serif;
    font-size: 1.6rem;
    font-weight: bold;
    border: 2px solid #009192;
    background-color: #fff;
    padding: 0.8% 2.5%;
    border-radius: 99px;
}
main .btn_link_box {
    text-align: right;
    padding: 3% 3% 0 0
}


main .wrap_sectitle + .inner1000 {
/* position: relative; */
/* z-index: 10; */
}
main .sectitle {
    clear: both;
    line-height: 1.3;
    font-weight: bold;
    font-size: 5.5rem;
    margin-bottom: 8%;
    margin-bottom: 4%;
    text-align: center;
}
main .sectitle small {
    font-weight: normal;
    font-size: 1.8rem;
    display: block;
    font-family: "Noto Serif JP", serif;
}


/*フッター**********/

/**フッター下部固定**/
html {
    height: 100%;
}
body {
    height: 100%;
}
.wrap_page {
    min-height: 100%;
}
footer {
    position: sticky;
    top: 100%;
}

footer {
    background: #009192;
    color: #fff;
    font-family: "Noto Serif JP", serif;
    position: relative;
}
footer::before {
    content: "";
    background: url(../img/common/footer_bg.png) repeat-x;
    background-color: #fef9f4;
    width: 100%;
    height: 164px;
    height: 30vw;
    height: 37vw;
    max-height: 164px;
    display: block;
    background-size: contain;
    background-position: 0 bottom;
}
footer .btn_contact {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    top: -11%;
    color: #333;
    font-size: 2.5rem;
    font-size: 2.2rem;
    font-weight: bold;
    width: 30%;
    width: 18em;
    text-align: center;
    background: #fff;
    border: 2px solid #009192;
    padding: 1.5% 0%;
    padding: 2.0% 0%;
    border-radius: 99px;
    white-space: nowrap;
    line-height: 1;
}

footer .inner1000 {
    padding: 4% 3% 8%;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
}
footer .footer_left {
    width: 45%;
    width: 37%;
}
footer .footer_logo {
    width: 57%;
    margin-bottom: 4%;
}
footer .address {
    white-space: pre;
    font-style: normal;
    line-height: 1.7;
    font-size: 1.1rem;
    font-size: 1.2rem;
}
footer .cr {
    padding: 1.5% 0;
    font-size: 1.2rem;
    border-top: 1px solid #fff;
    text-align: center;
}

footer .footer_right {
    /* width: 50%; */
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    justify-content: space-between;
    padding-top: 2%;
}
footer .grp_list {
    font-size: 1.2rem;
    font-size: 1.3rem;
    font-size: 1.2rem;
    font-weight: normal;
}
footer .grp_list .ttl {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}
footer .grp_list li {
    margin-bottom: 0.3rem;
}
footer .grp_list li::before {
    content: "－";
    padding-right: 0.5rem;
}



/**最大エッジ幅以下**/
@media screen and (max-width: 1920px) {
    /**セクション背景処理**/
    main .wrap_sectitle::before {
        height: 0%!important;
    }

}/**@end**/



@media screen and (max-width: 1000px) {
    html {
        font-size: 1vw;
    }
/**0908
    main .wrap_sectitle::before {
    background-position-x: calc(30vw);
    }
    main .wrap_sectitle.bg_left::before {
    background-position-x: calc(0);
    background-size: calc(50vw + 30%);
    }
**/

}/**@end**/




/** SP **/
/**@media screen and (max-width: 480px){ **/
@media screen and (max-width: 767px) {
    /**base**/
    html {
        font-size: 0.5rem;
        font-size: 2vw;
    }
    .wrap_page {
        max-width: 100%;
    }
    .wrap_page {
        margin-top: -0.1%;
    }

.spnone {
    display: none!important;
}
.pcnone {
    display: inline-block!important;
}

.hm ul {
    width: 100vw;
    height: 100dvh;
    right: -100vw;
}

header .pagetitle {
    font-size: 4rem;
}
header .pagetitle small {
    margin-top: 1%;
}
header .header_logo {
    width: 40%;
}
header .inner1000 {
    padding: 3% 3% 0;
}
header .gmenu {
    display: none;
}

main {
    padding: 10% 0 16%;
}
main .btn_link {
    padding: 0.8% 6%;
}
main .btn_link_box {
    padding: 5% 5% 0 0
}
main .sectitle {
    font-size: 4rem;
}

footer .btn_contact {
    top: -1%;
    width: 16em;
    padding: 4% 0;
}

/**セクション背景処理1：前面（パターン共通設定）**/
main .wrap_sectitle.bg_right::after,
main .wrap_sectitle.bg_left::after,
main .wrap_sectitle.bg_center::after {
    background-position: center 3rem;
}

/**セクション背景処理2：背面（共通設定）→SP非表示**/
main .wrap_sectitle.bg_right::before,
main .wrap_sectitle.bg_left::before,
main .wrap_sectitle.bg_center::before {
    display: none;
}
/**セクション背景処理2：背面（個別設定）→SP特になし**/
main .wrap_sectitle.bg_right::before {

}
main .wrap_sectitle.bg_left::before {

}
main .wrap_sectitle.bg_center::before {

}

/**セクション背景処理（パターンごとの画像設定）**/
/**
以下のパターンにそれぞれL、R、O（全幅）がある。
画像は1920x400で全幅を書き出しない部分は透過。
ptn0:パターンなし
ptn1:波パターン
ptn2:丸パターン
**/
/**共通リピート **/
main .wrap_sectitle::before {
    background-image: none;
}

/**ptn0 R**/
main .wrap_sectitle.bg_R_ptn0::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn0_sp.png) ;
}
/**★PCここがない**/

/**ptn0 L**/
main .wrap_sectitle.bg_L_ptn0::after {
    background-image: url(../img/common/common_bg_w1920_L_ptn0_sp.png) ;
}

/**ptn1 R**/
main .wrap_sectitle.bg_R_ptn1::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn1_sp.png) ;
}
/**ptn1 L**/
main .wrap_sectitle.bg_left.bg_L_ptn1::after {
    background-image: url(../img/common/common_bg_w1920_L_ptn1_sp.png) ;
}

/**ptn2 R**/
main .wrap_sectitle.bg_right.bg_R_ptn2::after {
    background-image: url(../img/common/common_bg_w1920_R_ptn2_sp.png) ;
}

/**ptn2 L**/
main .wrap_sectitle.bg_left.bg_L_ptn2::after {
    background-image: url(../img/common/common_bg_w1920_L_ptn2_sp.png) ;
}

/**ptn1 O**/
main .wrap_sectitle.bg_center.bg_O_ptn1::after {
    background-image: url(../img/common/common_bg_w1920_O_ptn1_sp.png) ;
}

/**フッター**/
footer::before {
    background-size: 150%;
}
footer .inner1000 {
    flex-direction: column;
    padding: 10% 8% 2%;
}
footer .address {
    font-size: 1.3rem;
    margin-bottom: 8%;
}
footer .footer_left {
    width: 100%;
}
footer .footer_logo {
    
}
footer .footer_right {
    flex-wrap: wrap;
}
footer .grp_list {
    width: 40%;
    width: 49%;
    font-size: 1.5rem;
    margin-bottom: 8%;
}


}/**@end**/

/** SP2 **/
@media screen and (max-width: 480px){

}/**@end**/

/**SP tel**/
@media (min-width: 767px) {
a[href^="tel:"] {
    pointer-events: none;
    cursor: default;
}
}/**@end**/
