@charset "utf-8";
/*------------------
初期設定
--------------------*/
html,body {
    margin: 0 auto;
    padding: 0 auto;
    max-width:1024px;
    height: 100%;
}
html,body,h1,h2,h3,main,ol,ul,li,section,div,dl,dt,dd,table,tbody,tr,th,td,p,footer {
    line-height: 2;
    /*font-family: 'Montserrat', sans-serif,system-ui;*/
    font-family: 'Helvetica','ヒラギノ角ゴ ProN W3','Arial','メイリオ',sans-serif,system-ui;
    font-size: 16px;
    color: #252525;
}
/*html,body,h1,h2,h3,main,ol,ul,li,section,div,dl,dt,dd,p,footer {
    margin:0 auto;
    padding: 0 auto;
    max-width:1024px;*/
    /*height: 100%;*/
    /*line-height: 1.5;*/
    /*font-family: 'Montserrat', sans-serif,system-ui; */
    /*font-family: 'Helvetica','ヒラギノ角ゴ ProN W3','Arial','メイリオ',sans-serif,system-ui;
    color: #252525;
}*/
a {
    text-decoration: none;
}
ul,li {
    list-style:  none;
    margin:  0;
    padding: 0;
}
img {
    width:100%;
}
/*------------------
基本設定
--------------------*/
/* パンくずリスト */
.pankuzu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    font-size: 0.9em;
}
.pankuzu li {
    margin-right: 10px;
    position: relative;
}
.pankuzu li::after {
    content: ">";
    position: absolute;
    /*right: -15px;*/
    top: 0;
}
.pankuzu li:last-child::after {
    content: "";
}
.pankuzu a {
    text-decoration: none;
    color: #333;
}
.pankuzu a:hover {
    color: #007BFF;
}
.wrapper {
    margin: 0 auto;
    padding: 0 8px 0 8px;
    min-height: 100%;
    display: flex;
    flex-direction: column;
}
.main {
    flex: 1;
}
/* section */
.section {
    width:100%;
    margin:0 0 50px 0;
    padding: 0 auto;
}
.section_title {
    margin:0 0 50px 0;
    width:100%;
    font-size: 24px;
    text-align: center;
}
/* フッター */
.footer {
    height: 60px;
    top:100vh;
    display: flex;
    background-color: #666;
    position: sticky;
    justify-content: center;
    align-items: center;
}
.footer_font {
    color: #fff;
    font-size: 12px;
}

/*------------------
個別設定
--------------------*/
/* ヘッダー */
.header {
    margin-bottom:30px;
    padding: 0 auto;
    width:100%;
}
.h1_header {
    margin: 0 auto;
    padding: 20px 0 20px 0;
    width:100%;
    line-height: 0.8;
    font-size: 32px;
    text-align: center;
}
#h1_subtitle {
    font-size: 18px;
}
/* お知らせ欄 */
.notification {
    margin: 0 auto;
    padding: 0 auto;
    width:100%;
    display: table;
    vertical-align: middle;
    box-sizing:border-box;
    border: 1px solid #252525;
    line-height:1.5 ;
}
.notification_title {
    width:100%;
    display: table-caption;
}
.notification_item {
    margin-bottom:50px;
}
.notification dl {
    margin: 0 auto;
    padding: 0 auto;
    display: table-row;
}
.notification dt {
    width: 35%;
    border-right: 1px solid #252525;
}
.notification dd {
    width: 65%;
}
.notification dt,
.notification dd {
    padding: 10px 10px 10px 30px;
    display: table-cell;
    text-align: center;
}
table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
th {
    width: 35%;
}
td {
    width: 65%;
}
th, td {
    padding: 12px 0 12px 0;
    border: 1px solid #ddd;
    /*border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    border-right: none !important;
    border-left: none !important;*/
    text-align: center;
}
tr:nth-child(even) {
    background-color: #f9f9f9;
}
/*tr:hover {
    background-color: #ddd;
}*/

/* Twitter 
.twitter-tweet,
.twitter-timeline {
    margin: 0 auto;
    padding: 0 auto;
    max-width: 480px;
}*/

/* Profile */
.profile_display_none {
    display: none;
}
.profile_list {
    width: fit-content;
    margin: auto;
}
.profile_list_qualifications ul,
.profile_list_qualifications li {
    list-style:  none;
    margin:  0;
    padding: 0 0 0 20px;
}
.annotation {
    padding: 0 0 0 20px;
}

/* お問い合わせ */
.btn-contact {
    margin: 0 auto;
    padding:10px;
    /*width:100%;*/
    width:215px;
    display: block;
    border:1px solid #929191;
    text-decoration: none;
    text-align: center;
    color:#252525;
}
.arrow {
    position: relative;
}
.arrow:before {
    width: 20px;
    height: 2px;
    background: #b9b9b9;
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transition: all 0.3s; -webkit-transition: all 0.3s; 
}
.arrow:after {
    margin-top: -5px;
    width: 10px;
    height: 10px;
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    border-top: 2px solid #b9b9b9;
    border-right: 2px solid #b9b9b9;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transition: all 0.3s; -webkit-transition: all 0.3s;
}
.p_text {
    margin:10px 0 0 0;
    padding: 0 auto;
    width:100%;
    text-align: center;
}

/* お問い合わせフォーム */
.complete-message{
    margin: 0 auto;
    max-width: 800px; /* 幅は最大1000pxまでしか広げない */
    width: 98%; /* 幅は親要素の80% */
}
.warning{
    box-sizing: border-box;
    border: 1px solid #f00;
    color: #f00;
    margin-top: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
    padding-left: 10px;
    padding-right: 10px;
}
.required{
    background-color: red;
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    min-width: 10px;
    padding: 3px 7px;
    margin: 0px 5px;
    line-height: 1;
    vertical-align: middle;
    white-space: nowrap;
    text-align: center;
    border-radius: 10px;
    display: inline-block;
}
.txt{
    display: inline-block;
    width: 100%;
    padding: 0.5em;
    border: 1px solid #999;
    box-sizing: border-box;
    background: #f2f2f2;
    margin: 0.5em 0;
}
li.error{
    color: red;
    font-weight: bold;
}
.txtarea{
    display: inline-block;
    width: 100%;
    padding: 10px;
    border: 1px solid #999;
    box-sizing: border-box;
    background: #f2f2f2;
    margin: 0.5em 0;
    line-height: 1.5;
    height: 15em;
}
.btn_confilm,.btn_back_to_top{
    border: none;
    /*border-radius: 3px;*/
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 5px auto;
    /*max-width: 220px;*/
    width: 150px;
    padding: 10px 25px;
    color: #FFF;
    transition: 0.3s ease-in-out;
    font-weight: 600;
    background: rgb(149,202,252);
    background: linear-gradient(270deg, rgba(149,202,252,1) 0%, rgba(107,182,255,1) 100%);
}
.btn_confilm,.btn_back_to_top:hover{
    background: rgb(117,188,255);
    background: linear-gradient(270deg, rgba(117,188,255,1) 0%, rgba(62,159,252,1) 100%);
}
.btn_back{
    border: none;
    /*border-radius: 3px;*/
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 5px auto;
    /*max-width: 220px;*/
    width: 150px;
    padding: 10px 25px;
    color: #FFF;
    transition: 0.3s ease-in-out;
    font-weight: 600;
    background: rgb(192,192,192);
    background: linear-gradient(270deg, rgba(192,192,192,1) 0%, rgba(192,192,192,1) 100%);
}
.btn_back:hover{
    background: rgb(179,179,179);
    background: linear-gradient(270deg, rgb(179,179,179) 0%, rgba(179,179,179,1) 100%);
}

/*------------------
レスポンシブ対応
--------------------*/
@media screen and (min-width: 768px) {
    .header h1 {
        font-size: 40px;
    }

    .section_title {
        font-size: 32px;
    }

    .footer_font {
        font-size: small;
    }

    .notification dt,
    .notification dd {
        padding: 10px 10px 10px 10px;
    }

    .btn-contact{
        /*margin-top:100px;*/
        width:450px;
    }

    .arrow:hover{
        background: #e8e8e8;
        color:#252525;
    }

    .arrow:hover:before{
        background: #252525;
        right: 10px;
    }
    
    .arrow:hover:after{
        border-top: 2px solid #252525;
        border-right: 2px solid #252525;
        right: 10px;
    }
}

/*.main h2 ,
.notification_title h2 {
    font-size: 36px;
}

.footer {
    height: 60px;
    top:100vh;
    display: flex;
    background-color: #666;
    color: #fff;
    position: sticky;
    justify-content: center;
    align-items: center;
    font-size: 12px;
}

.notification {
    width: 100%;
    margin-top: 40px;
    padding: 1px;
    display: table;
    vertical-align: middle;
    box-sizing:border-box;
    border: 1px solid #252525;
    line-height:1.5 ;
}

.notification_title {
    margin-bottom: 40px;
    display: table-caption; 
    text-align: center;
}

.notification dl {
    margin: 0 auto;
    padding: 0 auto;
    display: table-row;
}

.notification dt {
    width: 35%;
    border-right: 1px solid #252525;
}

.notification dd {
    width: 65%;
}

.notification dt, .notification dd {
    padding: 10px 10px 10px 30px;
    display: table-cell;
    text-align: center;
}

.twitter-tweet {
    margin: 0 auto;
    padding: 0 auto;
}

a.btn-contact{
    width:215px;
    margin-top: 12%;
    margin-left: auto;
    margin-right:auto;
    margin-bottom:50px;
    padding:13px;
    display: block;
    border:1px solid #929191;
    text-decoration: none;
    text-align: center;
    color:#252525;
}

.arrow{
    position: relative;
}

.arrow:before{
    width: 20px;
    height: 2px;
    background: #b9b9b9;
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    transition: all 0.3s; -webkit-transition: all 0.3s; 
}

.arrow:after{
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 10px;
    height: 10px;
    margin-top: -5px;
    border-top: 2px solid #b9b9b9;
    border-right: 2px solid #b9b9b9;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transition: all 0.3s; -webkit-transition: all 0.3s;
}

/* レスポンシブ対応 */
/*@media screen and (min-width: 768px) {
    .main h1{
        padding: 10px;
        font-size: 24px;
    }

    .main h2 ,
    .notification_title h2 {
        font-size: 16px;
    }

    .footer {
        font-size: small;
    }

    .notification dt, .notification dd {
        padding: 10px 10px 10px 10px;
    }

    a.btn-contact{
        margin-top:100px;
        width:450px;
    }

    .arrow:hover{
        background: #e8e8e8;
        color:#252525;
    }

    .arrow:hover:before{
        background: #252525;
        right: 10px;
    }
    
    .arrow:hover:after{
        border-top: 2px solid #252525;
        border-right: 2px solid #252525;
        right: 10px;
    }
}*/
