@charset "UTF-8";

/* 
Theme Name: ToTeTu - ver01
Description: とてつのサイトのテーマです。
Version:1.0
Author: Y.Miyazaki 
*/


/* 各ページ共通　*/

html {

    scroll-behavior: smooth;

}

#body {

    font-family: "Noto Sans", sans-serif;
    font-weight: 400;
    font-style: normal;
    margin: 0;
    padding: 0;
    overflow-x: hidden;

}

:root {

    --text-gray: #4c5565;
    --border-gray: #4c5565;
    --background-gray: #4c5565;

}

.gray {

    color: var( --text-gray );

}

/* パソコン　*/

/* ページトップボタン（既存） */
#page_top {

    width: 106px;
    height: 106px;
    position: fixed;
    right: 80px;
    bottom: 32%;
    background: #ffffff;
    z-index: 9999;
    font-size: 20px;
    text-decoration: none;
    color: var(--text-gray);
    border: 2px solid var(--text-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0;
    border-radius: 50%;

}


/* index pc */

/* --------------------
   ヘッダー全体
   -------------------- */
header {

   position: relative;   /* absolute の基準 */
   width: 100%;
   padding-top: 56px;

}

/* メニュー */
.menu {

    transition: none !important;  /* ← PC時はアニメーション無効 */
    width: calc(100% - 30px);
    display: flex;
    justify-content: flex-end;
    position: relative;
    z-index: 8000;
    margin: 0 30px 0 0;

}

.hamburger {

    display: none;

}

/* --------------------
   ナビゲーション
   -------------------- */

nav {

    width: auto;
    max-width: none;
    height: 38px;

}

nav ul {

    display: flex;
    flex-wrap: nowrap; /* ← これで折り返しを防ぐ */
    gap: 15px;
    padding: 0;
    margin: 0;
    list-style: none;
    text-align: center;

}

nav ul li{

    display: flex;
    justify-content: center;
    align-items: center;

}

nav ul li a {

    color: #ffffff;
    text-decoration: none;
    font-size: 22px;
    font-weight: bold;

}

nav ul li a:hover {

    text-decoration: none;

}

.navi {

    width: 140px;
    height: 38px;
    white-space: nowrap;
    background-color: var( --background-gray );
    border-radius: 19px;
    flex-shrink: 0; /* ← 圧縮されないように追加 */

}

/* --------------------
   画像類
   -------------------- */
.top-page .top-image-sp {

    display: none;

}

.top-page .top-image-tab {

    display: none;

}

/* PC用画像 */
.top-page .top-image-pc {
    
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;          /* 親の幅に追従 */
    max-width: min( 50%, 789px );
    height: auto;
    display: block;
    z-index: -10;

}

/* --------------------
   ロゴ
   -------------------- */
.top-page .top-logo {

    width: min( 80%, 411px );
    margin: 20% 0 0 55%;

}

.top-page .top-logo-svg {

    width: min( 80%, 411px );
    display: block;

}

header .information-box-wrap{

    display: flex;
    justify-content: flex-end;

}

header .information-box {

    width: 100%;
    max-width: 486px;
    border: 1px solid var(--border-gray);
    border-radius: 20px;
    text-align: left;

    margin-top: 10%;
    margin-right: 20%;
    
    position: relative;
    z-index: 1000;

}

header .information-box-inner{

    padding: 17px 30px 35px 30px;

}

header .new-info {

    margin-top: 29px;
    margin-left: 30px;
    font-size: 30px;
    color: var( --text-gray );

}

header .date-mark-box {

    display: flex;
    align-items: center;
    margin-top: 21px;
    
}

header .new-info-date {

    font-size: 16px;
    color: var( --text-gray );

}

header .info-mark {

    background-color: var( --background-gray );
    color: #ffffff;
    font-size: 16px;
    margin-left: 11px;
    padding: 3px 18px 3px 10px;

}
  
header .info-text {

    width: 100%;
    max-width: 427px;
    margin-top: 7px;
    border-bottom: 2px dotted #707070;
    font-size: 20px;
    color: var( --text-gray );

}

main .top-about-title{

    width: 85%;
    display: flex;
    justify-content: center;
    margin: 8rem auto 0 auto; /* 　暫定値８rem　*/
    padding: 34px 0;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .top-about-title-inner {

    display: flex;

}

main .top-about-title-logo {

    width: 216px;

}

main .top-about-title-let{
    
    display: flex;
    align-items: center;
    font-size: 50px;
    font-weight: bold;
    margin-left: 18px;
    color: var( --text-gray );

}

main .top-about-text {

    width: 85%;
    margin: 59px auto 86px auto; 

}

main .top-about-text p{

    font-size: 28px;              
    color: var( --text-gray );
    line-height: 1.5;

}

main .top-about-text_2nd {

    margin-top: 40px;       /* デザインカンプから余白を測れなかったので暫定値　*/
    margin-bottom: 40px;    /* デザインカンプから余白を測れなかったので暫定値　*/

}

main .top-support {

    width: 80%;
    margin: 0 auto;

}

main .support-title {

    width: 100%;
    min-height: 63px; 
    display: flex;
    justify-content: left;
    align-items: center;
    border-radius: 100px;
    background-color: var( --background-gray );

}

main .support-title p{

    font-size: 30px;
    color: #ffffff;
    margin-left: 41px;

}

main p.support-title-p2 {

    margin-left: 26px;

}


main p.support-title-p2_l2 {

    font-size: 24px;
    color: #ffffff;
    margin-left: 26px;

}


main .support-text {

    width: 92%;
    margin: 26px auto 46px auto;

}

main .support-text p {

    font-size: 20px;
    color: var( --text-gray );
    line-height: 1.5;

}

main .support-photo {

    width: 385px;
    margin: 46px auto 67px auto;

}

main .support-photo-jpg {

    width: 385px;

}

main .top-flow-title {

    width: 85%;
    height: 102px;
    margin: 107px auto 42px auto; /* 42px はカンプから読み取れなかったので暫定値を指定してある　*/
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .top-flow-title p {

    font-size: 50px;
    color: var( --text-gray );
    font-weight: bold;

}

main .top-flow-box {

    width: 74%;
    margin: 0 auto;
    display: flex;

}

main .top-flow-text {

    width: 70%;
    display: block;
    margin-top: 13px;

}

main .top-flow-subtitle {

    width: 100%;
    border-bottom: 1px solid var(--border-gray);
    font-size: 32px;
    color: var( --text-gray );
    font-weight: bold;

}

main .top-flow-subtitle2 {

    width: 100%;
    border-bottom: 1px solid var(--border-gray);
    font-size: 32px;
    color: var( --text-gray );
    font-weight: bold;

}

main .SP-enabled {

    display: none;

}

main .TB_PC-disabled {

    display: none;

}

main .top-flow-comment {

    margin-top: 21px;
    font-size: 20px;
    color: var( --text-gray );
    line-height: 1.5;

}

main .top-flow-photo {

    width: 26%;
    margin-left: 37px;

}

main .flow-photo-jpg {

    width: 100%;
    object-fit: cover;  /* 枠いっぱいに拡大し、はみ出た部分をトリミング */
    object-position: center center; /* 左右中央で切り抜く */

}

main .triangle-down {

    width: 0;
    height: 0;
    border-left: 32px solid transparent;  /* 横幅の半分：64px / 2 */
    border-right: 32px solid transparent; /* 横幅の半分 */
    border-top: 34px solid #C0CAD0;          /* 高さ34px + 色指定 */
    margin: 80px auto 70px auto;

}


main .consultation-title {

    width: 85%;
    height: 90px; 
    margin: 107px auto 47px auto;
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);
    white-space: nowrap;

}

main .consultation-title p {

    font-size: 50px;
    color: var( --text-gray );
    font-weight: bold;

}

main .consultation-msg {

    width: 85%;
    margin: 47px auto 38px auto;
    color: var( --text-gray );
    font-size: 25px;
    font-weight: bold;
    line-height: 1.6;
    text-align: center;

}

main .phone-wrap {

/*    width: 399px; */

    width: auto;
    height: 30px;

/*    margin: 0 auto; */
    
    display: flex;
    justify-content: center;

}

main .phone-svg {

    width: 27px;
    height: 30px;

}

main .phone-text {

/*    width: 382px; */
    width: auto;
    height: 30px;
    margin-left: 6px;
    font-size: 18px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

main .mail-wrap {

    width: 399px;
    height: 22px;
    margin: 8px auto 0 auto;
    display: flex;

}

main .mail-svg {

    width: 27px;
    height: 30px;

}

main .mail-text {

    width: 382px;
    height: 30px;
    margin-left: 6px;
    font-size: 18px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

main .address {

    width: 426px;
    height: 53px;
    margin: 29px auto 0 auto;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.6;
    color: var( --text-gray );

}

main .inquiry-button {

    width: 321px;
    height: 43px;
    margin: 38px auto 75px auto;
    background-color: var( --background-gray );
    color: #ffffff;
    font-size: 17px;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 30px;
    text-decoration: none;

}


/* not_top-contact 共通　PC版　*/

/* --------------------
   画像類
   -------------------- */
.not_top-contact .top-image-sp {

    display: none;

}

.not_top-contact .top-image-tab {

    display: none;

}

.not_top-contact .top-image-pc {

    position: absolute;
    top: 0;
    left: 0;

    width: 100%;          /* 親の幅に追従 */
    max-width: min( 40%, 358px );
    height: auto;

    display: block;

    z-index: 10;

}

.not_top-contact .top-logo {

    width: min( 80%, 411px );
    margin: 140px 0 0 40%;

}


.not_top-contact .top-logo-svg {

    width: min( 80%, 411px );
    display: block;
    
}


/* infomation PC */

main .info-new_info_title {

    width: 85%;
    height: 102px;
    margin: 12rem auto 40px auto;
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    font-size: 35px;
    font-weight: bold;
    color: var( --text-gray );
    display: flex;
    justify-content: center;
    align-items: center;

}

main .info-new_info a {

    text-decoration: none;

}

main .info-new_info_box-wrap {

    width: 85%;
    margin: 60px auto 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 45px 42px;

    justify-content: center;

}

main .info-new_info_box {

    width: 30%;
    height: 500px;
    border: 1px solid #707070;
    border-radius: 20px;
    display: flex;
    flex-direction: column;

    overflow: hidden;

}

main .info-gray_box {

    width: 30%;
    height: 500px;
    border: 1px solid var( --border-gray );
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #D5D5D5;

}

main .info-gray_box img {

    width: 50%;
    height: auto;

}

main .info-image {

    position: relative;

}

main .info-image-jpg {

    width: 100%;
    border-radius: 20px 20px 0 0;

}

main .info-new_mark {

    width: 89px;
    height: 25px;
    position: absolute;
    top: 18px;
    left: 1px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #FF000F;
    color: #ffffff;
    font-size: 18px;

}

main .date_notice-text-wrap {

    display: flex;
    flex-direction: column;
    margin-top: 10px;
    margin-left: 11px;
    margin-right: 11px;

}

main .date_notice-wrap {

    display: flex;
    justify-content: space-between;

}

main .info-date {

    width: 60%;      /* デザインカンプから読み取れなかったので暫定値　*/
    height: auto;
    font-size: 17px;
    color: var(--text-gray);

}

main .info-notice {

    width: 40%;   /* デザインカンプから読み取れなかったので暫定値　*/
    height: auto;
    margin-right: 16px; /* デザインカンプから読み取れなかったので暫定値　*/
    padding-top: 5px;
    padding-bottom: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--background-gray);
    font-size: 17px;
    color: #ffffff;

}

main .info-new_information {

    width: auto;
    height: auto;
    margin-top: 16px; /* デザインカンプから読み取れなかったので暫定値　*/
    font-size: 18px;
    color: var( --text-gray );

/*    
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;  
*/

    overflow: hidden;

}

main .info-link {
    display: flex;
    flex-direction: column;
    height: 100%; /* 親の .info-new_info_box に合わせる */
    width: 100%;  /* 念のため */
    text-decoration: none;
}

main .prev_next-wrap {

    width: 50%;
    height: 50px;
    margin: 64px auto 128px auto;
    display: flex;
    justify-content: space-between;

}

main .prev ,.next {

    width: 45%;
    max-width: 427px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 25px;
    border: 2px solid var( --border-gray );
    border-radius: 50px;
    position: relative;
    text-decoration: none;    /* 下線を消す */
    color: inherit;           /* 文字色は継承 */

}

main .arrow_left {

    position: absolute;
    left: 15px;

}

main .arrow_right {

    position: absolute;
    right: 15px;

}

/* ▼ ボックス全体に hover を適用 */
main .prev:hover,
main .next:hover {

    background-color: #D5D5D5;

}

/* info-detail PC */

main .info-detail_box {

    width: 59%;
    height: auto;
    margin: 12rem auto 0 auto;
    border: 1px solid var( --border-gray );
    border-radius: 20px;

}

main .info-detail_photo {

    width: 86%;
    height: auto;
    margin: 52px auto;

}

main .info-detail_photo_jpg {

    width: 100%;
    height: auto;

}

main .info-detail_text_wrap {

    width: 90%;
    height: auto;
    margin: 0 auto;

    padding-bottom: 1rem;

}

main .info-detail_date_notice {

    margin-top: 10px;
    display: flex;
    align-items: center; 
    gap: 25px;

}

main .info-detail_date {

    width: 160px;  /* カンプにある数値では収まらない　*/
    height: 22px;
    font-size: 20px;
    text-align: left;
    letter-spacing: 0;

}

main .info-detail_text {

    width: 132px;
    height: 31px;
    font-size: 22px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
    background-color: #079B1C;

}

main .info-detail_title {

    margin-top: 43px;
    font-size: 30px;
    color: var( --text-gray );

}

main .info-detail_contents {

    margin-top: 10px;
    font-size: 20px;
    color: var( --text-gray );
    line-height: 1.75;

}


/* introduction PC */

main .introduction-title {

    width: 85%;
    margin: 12rem auto 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 50px;
    font-weight: bold;
    color: var( --text-gray );
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray);

}

main .introduction-title_p1 {

    margin-top: 25px;

}

main .introduction-title_p2 {

    margin-bottom: 25px;

}

main .introduction-box {

    width: 85%;
    margin: 50px auto 0 auto;  /* カンプから読み取れなかったので暫定値　*/
    display: flex;
    color: var( --text-gray );

}

main .introduction-box-left {

    width: 200px;
    height: 200px;

}

main .introduction-box-left img {

    width: 200px;
    height: 200px;

}

main .introduction-box-right {

    flex: 1;
    width: auto;
    margin-top: 40px;   /*　カンプから読み取れなかったため暫定値を指定 */
    margin-left: 24px;
    display: flex;
    flex-direction: column;

}

main .introduction-box-right-top {

    width: 100%;  
    height: 43px;         /* カンプから読み取れなかったため暫定値を指定　*/
    font-size: 30px;
    text-align: left;
    border-bottom: 1px solid var( --border-gray);

}

main .introduction-box-right-top p{

    white-space: nowrap;

}

main .introduction-box-right-bottom {

    font-size: 20px;
    text-align: left;

}

main .introduction-box-right-bottom p{

    margin-top: 10px;
    line-height: 1.5;

}


/* access pc */

main .access-title{

    width: 85%;
    height: 90px; /* カンプから読み取れなかったので暫定値　*/
    margin: 12rem auto 63px auto; 
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-size: 50px;
    font-weight: bold;
    color: var( --text-gray );

}

main .access-large {

    width: 85%;
    margin: 0 auto;
    font-size: 40px;

}

main .access-detail {

    width: 85%;
    margin: 11px auto 0 auto;
    line-height: 1.4;
    font-size: 25px;
    word-wrap: break-word;

}

main .holiday-font {

    font-size: 20px;

}

main .access-data_wrap{

    width: 85%;
    margin: 0 auto;
    display: flex;
    justify-content: flex-start;

}

main .access-tab_pc2 {

    width: 100%;
    max-width: 972px;
    margin: 0px 0 60px 0;
    display: flex;

}

main .access-tab_pc1 {

    width: 100%;
    max-width: 522px;

}

main .access-address {

    width: 100%;
    margin: 30px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-2l {

    width: 100%;
    margin: 20px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-holiday {

    width: 100%; 
    margin: 20px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-map {

    max-width: 88%;
    max-height: 698px;
    margin: 0 auto;

}

main .access-map iframe {

    display: block;
    width: 100%;
    height: 698px;

}

main .access-map-text {

    width: 88%;
    height: 18px;
    margin: 10px auto 0 auto;
    text-align: right;
    font-size: 18px;
    color: #595858;

}


/* company PC */

main .company-title{

    width: 85%;
    height: 90px; /* カンプから読み取れなかったので暫定値　*/
    margin: 12rem auto 80px auto; /* デザインカンプから会社概要のタイトルと表の間の距離を読み取れなかったので暫定的に８０ｐｘで指定した　*/
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-size: 50px;
    font-weight: bold;
    color: var( --text-gray );

}

main .company-row {

    width: 63%;
    margin: 0 auto;
    display: flex;
    border-top: 1px solid var(--border-gray);
    border-left: 1px solid var(--border-gray);
    border-right: 1px solid var(--border-gray);
    font-size: 30px;

}

main .company-row-last {

    width: 63%;
    margin: 0 auto;
    display: flex;
    border: 1px solid var(--border-gray);
    font-size: 30px;

}

main .company-left {

    width: 23%;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #9ca4b2;
    color: #ffffff;
    
}

main .company-right {

    width: 77%;
    height: 80px;
    display: flex;
    justify-content: left;
    align-items: center;
    border-left: 1px solid var(--border-gray);
    color: var( --text-gray );

}

main .company-right-text {

    margin-left: 18px;

}


/* contactクラス共通  PC*/

.contact header {

    width: 100%;
/*    height: 145px; */ 
/*    padding-top: 37px; */

    padding-top: 0;

    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;

}

.contact .top-logo {

    width: 206px;
    height: auto;
    margin: 0 0 0 32px;

    grid-column: 1;
    grid-row: 1;
    z-index: 1;

}

.contact .top-logo-svg {

    width: 206px;
    height: auto;

}

.contact .menu {

    transition: none !important;  /* ← PC時はアニメーション無効 */

    margin-right: 30px;
    padding-top: 160px;

    grid-column: 1 / -1;
    grid-row: 1;
    display: flex;
    justify-content: flex-end;
    z-index: 8000; /* top-logo より上 */

}


/* contact PC */

main .contact-title {

    margin-top: 79px;
    text-align: center;
    font-size: 50px;
    font-weight: bold;
    color: var(--text-gray);

}

main .form-wrap {

    width: 85%;
    max-width: 1080px;
    margin: 42px auto 90px auto;

}

main .form-area dt {

    width: 100%;
    padding-bottom: 15px;
    font-size: 35px;
    color: var( --text-gray );

}

main .form-area dd {

    width: 100%;
    padding-bottom: 38px;

}

main .form-area dd:last-child {

    width: 100%;
    padding-bottom: 0;

}

main .input-text {

    width: 100%;
    height: 60px;
    border: 1px solid #707070;
    border-radius: 5px;
    font-size: 30px;

}

main .message{

    width: 100%;
    height: 290px;
    border: 1px solid #707070;;
    border-radius: 5px;
    font-size: 30px;
    line-height: 1.4;

}

main .submit-button {

    width: 386px;
    height: 60px;
    margin: 55px auto 90px auto;
    background-color: var(--background-gray);
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 30px;
    color: #ffffff;

}


/* confirmation PC */

main .confirmation-title {

    margin-top: 84px;
    text-align: center;
    font-size: 50px;
    font-weight: bold;
    color: var(--text-gray);

}

main .confirmation-title2 {

    margin-top: 2px;
    text-align: center;
    font-size: 23px;
    font-weight: bold;
    color: var(--text-gray);

}


main .confirmation-text_wrap {

    width: 90%;
    margin: 54px auto 93px auto;
    color: var( --text-gray );

}

main .confirmation-name_display {

    font-size: 35px;
    font-weight: bold;

}

main .confirmation-name_DB {

    margin-top: 24px;
    font-size: 30px;

}

main .confirmation-mail_display {

    margin-top: 49px;
    font-size: 35px;
    font-weight: bold;

}

main .confirmation-mail_DB {

    margin-top: 24px;
    font-size: 30px;

}

main .confirmation-title_display {

    margin-top: 49px;
    font-size: 35px;
    font-weight: bold;

}

main .confirmation-title_DB {

    margin-top: 18px;
    font-size: 30px;

}

main .confirmation-message_display {

    margin-top: 49px;
    font-size: 35px;
    font-weight: bold;

}

main .confirmation-message_DB {

    margin-top: 24px;
    font-size: 30px;
    line-height: 1.4;
 
}

main .confirm-button {

    width: 583px;
    height: 60px;
    margin:  132px auto 90px auto;
    display: flex;
    gap: 103px;

}

main .return-button,main .send-button {

    width: 240px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 3px solid var( --text-gray );
    border-radius: 100px;
    text-decoration: none;
    font-size: 30px;
    color: var( --text-gray );

}

main .return-button:hover ,main .send-button:hover {

   background-color: var( --background-gray );
   color: #ffffff;

}


/* thanks PC */

main .thanks-message {

    width: 582px; /* カンプにある432ｐｘでは収まらないため暫定的に指定　*/
    margin: 530px auto 0 auto; /* カンプにある６１１ｐｘでは文字が下すぎて、TOPへ戻るボタンが画面に映らないので暫定的に指定　*/
    text-align: center;
    font-size: 50px;
    font-weight: bold;
    color: var( --text-gray );
    line-height: 1.6;

}

main .return_top-button {

    width: 319px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 72px auto 480px auto;
    border: 2px solid var( --border-gray ) ;
    border-radius: 100px;
    font-size: 30px;
    color: var( --text-gray );
    text-decoration: none;

}

main .return_top-button:hover {

    background-color: var( --background-gray );
    color: #ffffff;

}


/* footer PC*/

footer {

    width: 100%;
    height: 360px;
    background-color: #E0E5E8;
    position: relative;
    z-index: 0;
    
}

footer .footer-button-wrap {

    width: 100%;
    max-width: 910px;
    display: flex;
    gap: 20px;
    padding-top: 43px;
    margin: 0 auto;

}

footer .footer-button-top {

    height: 38px;
    display: flex;
    gap: 20px;

}

footer .footer-button-bottom {

    height: 38px;
    display: flex;
    gap: 20px;

}

footer .footer-button {

    width: 166px;
    height: 38px;
    background-color: var( --background-gray );
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    font-size: 15px;
    font-weight: bold;
    color: #ffffff;

}

footer .footer-button:hover {

    background-color: #9ca4b2;;

}

footer .logo_address-box {

    width: 773px;
    height: 85px;
    margin: 37px auto 0 auto;
    display: flex;    

}

footer .footer-logo {

    width: 215px;
    height: 78px;

}

footer .phone_mail-wrap {

    margin-left: 35px;
    display: flex;
    flex-direction: column;
    gap: 13px;

}

footer .phone-wrap {

/*    width: 515px; */

    width: auto;
    height: 39px;
   
/*    margin: 0 auto; */

    display: flex;
    justify-content: left;

}

footer .phone-svg {

    width: 35px;
    height: 39px;

}

footer .phone-text {

/*    width: 480px; */

    width: auto;
    height: 38px;
    margin-left: 8px;
    font-size: 28px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

footer .time {

    display: block;
    font-size: 20px;
    font-weight: bold;
    color: var(--text-gray);

}


footer .mail-wrap {

    width: 419px;
    height: 38px;
    display: flex;  

}

footer .mail-svg {

    width: 38px;
    height: 28px;

}

footer .mail-text {

    width: 381px;
    height: 38px;
    margin-left: 7px;
    font-size: 28px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

footer .address-box {

    width: 598px; /* カンプでは562pxとあるが、２行になってしまうため、この数値で指定した　*/
    height: 58px;
    margin: 18px auto 0 auto;

}

footer .address-box p {
    
    text-align: center;
    font-size: 20px;
    font-weight: bold; /* カンプではsemiboldとあるがエディターでエラーとなるためboldで指定した　*/
    line-height: 1.5;
    color: var(--text-gray);

}

footer .copyright {

    width: 250px;
    height: 20px;
    margin: 32px auto 0 auto;

}

footer .copyright p {

    font-size: 15px;
    color: var( --text-gray );

/*    font-weight: medium; */ /* これではエラーとなる　*/

}


/* タブレット　*/

@media (min-width:451px) and (max-width:768px) {

#page_top {
    
    width: 64px;
    height: 64px;
    position: fixed;
    right: 48px;
    bottom: 20%;
    background: #ffffff;
    z-index: 9999;
    font-size: 11px;
    text-decoration: none;
    color: var(--text-gray);
    border: 2px solid var(--text-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center; /* 中央配置 */
    position: fixed;
    text-align: center;
    padding: 0;
    border-radius: 50%;

}

main a {

    text-decoration: none;
    display: inline-block;

}

header {

    width: 100%;
    display: block;
    position: relative;

}

/* ボタンのスタイル */
.hamburger {

    display: block;
    position: fixed;
    top: 40px;
    right: 40px;
    width: 49px;      /* ← 横幅を 49px に固定 */
    height: 36px;     /* ← 全体の縦サイズを 36px に */
    cursor: pointer;
    z-index: 10001; /* menuより前面に出す */
    transition: opacity 0.3s ease;

}

.hamburger span {

  position: absolute;
  left: 0;
  width: 100%;
  height: 5px;                 /* 線の太さ */
  background-color: var(--background-gray);
  transition: 0.4s;

}

/* --- 3本の線を36px内に配置 --- */
.hamburger span:nth-child(1) {

  top: 0;

}

.hamburger span:nth-child(2) {

    top: 50%;
    transform: translateY(-50%);

}

.hamburger span:nth-child(3) {

    bottom: 0;

}

/* --- ☓マーク（長さが変わらないタイプ） --- */
.hamburger.active span:nth-child(1) {

    top: 50%;
    transform: translateY(-50%) rotate(45deg);

}

.hamburger.active span:nth-child(2) {

    opacity: 0;

}

.hamburger.active span:nth-child(3) {
  
    bottom: auto;
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);

}

.menu {

    margin: 0 !important;   /* 上右の余白を消す */

    display: block !important;   /* PCの display:flex を上書き */
    position: fixed !important;  /* PC の absolute を上書き */
    left: auto !important;           /* left:0 を潰す（これが超重要） */
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    color: var( --text-gray );
    transition: right 0.3s ease;
    box-sizing: border-box;
    z-index: 10000;
    overflow-y: auto; /* ← スクロールを有効にする */
    background-color: #D5D5D5;

}

/* メニューが開いているとき */
.menu.open {

    right: 0;
    -ms-overflow-style: none;  /* IE */
    scrollbar-width: none;     /* Firefox */
    overflow-y: auto;          /* 明示する */

}

.menu.open::-webkit-scrollbar{

    display:none;

}

.menu ul {

    width: 90%;
    max-width: 588px;
    margin: 100px auto 0 auto;  /* 中央寄せ */
    display: flex;
    flex-direction: column;
    gap: 37px;
    padding: 0;
    align-items: center;   /* ul自体は中央寄せ */

}

.menu ul li {

    width: 100%;           /* li の幅を親 ul に合わせる */

}

.menu ul li:last-child {

    margin-right: 0;

}

.menu ul li a {

    display: block;        /* リンクをブロック化 */
    width: 100%;           /* li の幅いっぱい */
    text-align: left;      /* テキストだけ左寄せ */
    color: var(--text-gray);
    text-decoration: none;
    font-size: 40px;
    font-weight: bold;

}

.navi {

    width: 100%;
    height: 50px; /* カンプから読み取れなかったので暫定値を指定　*/
    line-height: 50px; 
    white-space: nowrap;
    background-color: #D5D5D5;
    border-bottom: 2px solid var(--text-gray);
    border-radius: 0;

}


/* index TB */

.top-page .top-image-sp {

    display: none;

}

.top-page .top-image-pc {

    display: none;

}

.top-page .top-image-tab {

    position: absolute;
    top: 0;
    left: 0;

    width: 100%;          /* 親の幅に追従 */
    max-width: min( 50%, 365px );
    height: auto;

    display: block;

    z-index: 10;

}

.top-page .top-logo-wrap {

    display: flex;
    justify-content: flex-end;

    margin-top: 5%;
    margin-right: 100px;

}

.top-page .top-logo {

    width: min(100%,298px);
    
    position: relative;
    z-index: 1000;

}

.top-page .top-logo-svg {

    width: min(100%,298px); 

    display: block;
    position: static;

}

header .information-box {

    width: 426px;
    border: 1px solid var(--border-gray);
    border-radius: 20px;
    text-align: left;

    margin: 22% auto 0 auto;

}

header .information-box-inner{

    padding: 18px 25px 25px 18px;

}

header .new-info {

    margin-top: 29px;
    margin-left: 31px;
    font-size: 30px;
    color: var( --text-gray );

}

header .date-mark-box {

    display: flex;
    align-items: center;
    margin-top: 21px;
    
}

header .new-info-date {

    font-size: 16px;
    color: var( --text-gray );

}

header .info-mark {

    background-color: var( --background-gray );
    color: #ffffff;
    font-size: 16px;
    margin-left: 11px;
    padding: 3px 18px 3px 10px;

}
  
header .info-text {

    width: 386px;
    margin-top: 11px;
    border-bottom: 2px dotted #707070;
    font-size: 20px;
    color: var( --text-gray );

}

main .top-about-title{

    width: 85%;
    display: flex;
    justify-content: center;
    margin: 4rem auto 0 auto; /* 暫定値　*/
    padding: 1rem 0;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .top-about-title-inner {

    display: flex;

}

main .top-about-title-logo {

    width: 130px;

}

main .top-about-title-let{
    
    display: flex;
    align-items: center;
    font-size: 35px;
    font-weight: bold;
    margin-left: 10px;
    color: var( --text-gray );

}

main .top-about-text {

    width: 85%;
    margin: 93px auto 93px auto; /* 上のマージンをデザインカンプから測れなかったので下部と同じマージンを指定した　*/

}

main .top-about-text p{

    font-size: 20px;              
    color: var( --text-gray );
    line-height: 1.5;

}

main .top-about-text_2nd {

    margin-top: 40px;       /* デザインカンプから余白を測れなかったので暫定値　*/
    margin-bottom: 40px;    /* デザインカンプから余白を測れなかったので暫定値　*/

}

main .top-support {

    width: 84%;
    margin: 0 auto;

}

main .support-title {

    width: 100%;
    height: 63px;
    display: flex;
    justify-content: left;
    align-items: center;
    border-radius: 100px;
    background-color: var( --background-gray );

}

main .support-title p{

    font-size: 23px;
    color: #ffffff;
    margin-left: 32px;

}

main p.support-title-p2 {

    margin-left: 25px;

}

main p.support-title-p2_l2 {

    font-size: 18px;
    color: #ffffff;
    margin-left: 25px;

}

main .support-text {

    width: 92%;
    margin: 20px auto 51px auto;

}

main .support-text p {

    font-size: 16px;
    color: var( --text-gray );
    line-height: 1.5; /* 暫定値で指定した　*/

}

main .support-photo {

    width: 291px;
    margin: 51px auto 40px auto;

}

main .support-photo-jpg {

    width: 291px;

}

main .top-flow-title {

    width: 85%;
    height: 66px;
    margin: 52px auto 42px auto;
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .top-flow-title p {

    font-size: 35px;
    color: var( --text-gray );
    font-weight: bold;

}

/* ステップ全体の枠 */
main .flow-step {

    width: 85%;
    margin: 20px auto;  /* 下の余白は triangle-down で調整 */

}

/* ボックス横並び */
main .top-flow-box {

    width: 100%;
    display: flex;
    flex-wrap: nowrap;       /* ← これで必ず横並び */
    gap: 14px;
    align-items: flex-start; /* 高さが違っても上揃え */

}

/* テキスト */
main .top-flow-text {

    width: 69%;

}

main .top-flow-subtitle,
main .top-flow-subtitle2 {

    border-bottom: 1px solid var(--border-gray);
    font-size: 26px;
    color: var(--text-gray);
    font-weight: bold;

}

main .top-flow-comment {

    margin-top: 13px;
    font-size: 2.3vw;
    color: var(--text-gray);
    line-height: 1.6;

}

/* 写真 */
main .top-flow-photo {

    width: 31%;
    flex-shrink: 0;          /* 幅を固定 */
    margin-left: 0;

}

main .flow-photo-jpg {
    
    width: 100%;
    height: 135px;
    object-fit: cover;
    object-position: center center;

}

/* 三角形 */
main .triangle-down {

    width: 0;
    height: 0;
    border-left: 27px solid transparent;
    border-right: 27px solid transparent;
    border-top: 29px solid #C0CAD0;
    margin: 20px auto 0 auto;  /* ボックスの下に余白 */

}

main .SP-enabled {

    display: none;

}

main .TB_PC-disabled {

    display: none;

}

main .consultation-title {

    width: 85%;
    height: auto;
    margin: 60px auto 2rem auto; /* まずはお気軽にご相談を！　と　下の文字までの距離が不明なため　暫定値２rem　とした*/
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);
    white-space: normal;

}

main .consultation-title p {

    font-size: 35px;
    color: var( --text-gray );
    font-weight: bold;
    
    margin-top: 15px;
    margin-bottom: 15px;

}

main .consultation-msg {

    width: 85%;
    margin: 1rem auto 38px auto;  /*　まずはお気軽にご相談を！　の下の線と　就労に関するお悩みや・・・　の間の距離が読み取れないため暫定的に1remで指定した　*/
    text-align: center;
    color: var( --text-gray );
    font-size: 18px;
    font-weight: bold;
    line-height: 1.6;

}

main .phone-wrap {

/*    width: 399px; */

    width: auto;
    height: 30px;

/*    margin: 0 auto; */
    
    display: flex;
    justify-content: center;

}

main .phone-svg {

    width: 27px;
    height: 30px;

}

main .phone-text {

/*    width: 382px; */

    width: auto;
    height: 30px;
    margin-left: 6px;
    font-size: 18px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

main .mail-wrap {

    width: 399px;
    height: 22px;
    margin: 8px auto 0 auto;
    display: flex;

}

main .mail-svg {

    width: 27px;
    height: 30px;

}

main .mail-text {

    width: 382px;
    height: 30px;
    margin-left: 6px;
    font-size: 18px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

main .address {

/*    width: 390px; */ /* カンプにある３９０ｐｘでは収まらない　*/

    width: 426px;
    height: 53px;
    margin: 29px auto 0 auto;
    text-align: center;
    font-size: 18px;
    line-height: 1.6;
    color: var( --text-gray );

}

main .inquiry-button {

    width: 321px;
    height: 43px;
    margin: 38px auto 75px auto;
    background-color: var( --background-gray );
    color: #ffffff;
    font-size: 17px;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 18px;

}


/* infomation TB */

.not_top-contact header {

    width: 100%;
    position: relative;

}

.not_top-contact .top-image-sp {

    display: none;

}

.not_top-contact .top-image-pc {

    display: none;

}

.not_top-contact .top-image-tab {

    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    max-width: min( 40% , 251px );
    height: auto;     /* ← 縦横比が絶対に崩れない */
/*    flex-shrink: 0;  */ /* ← flex でつぶされない */
    display: block;
    
    z-index: 10;

}

.not_top-contact .top-logo {

    width: min( 100%, 298px );
    
    position: relative;
    z-index: 1000;

    margin: 100px 0 0 40%;

}

.not_top-contact .top-logo-svg {

    width: min( 70%, 298px ); 

    display: block;
    position: static;

}


main .info-new_info_title {

    width: 85%;
    height: 72px;
    margin: 10rem auto 40px auto;
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    font-size: 35px;
    font-weight: bold;
    color: var( --text-gray );
    display: flex;
    justify-content: center;
    align-items: center;

}

main .info-new_info a {

    text-decoration: none;

}

main .info-new_info_box-wrap {

    width: 85%;
    margin: 40px auto 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 45px 42px;

    justify-content: center;

}

main .info-new_info_box {

    width: 45%;
    height: 379px;
    border: 1px solid #707070;
    border-radius: 20px;
    display: flex;
    flex-direction: column;

}

main .info-gray_box {

    width: 45%;
    height: 379px;
    border: 1px solid var( --border-gray );
    border-radius: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #D5D5D5;

}

main .info-gray_box img {

    width: 50%;
    height: auto;

}

main .info-image {

    position: relative;

}

main .info-image-jpg {

    width: 100%;
    border-radius: 20px 20px 0 0;

}

main .info-new_mark {

    width: 89px;
    height: 25px;
    position: absolute;
    top: 18px;
    left: 1px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #FF000F;
    color: #ffffff;
    font-size: 18px;

}

main .date_notice-text-wrap {

    display: flex;
    flex-direction: column;
    margin-top: 10px;
    margin-left: 11px;
    margin-right: 11px;

}

main .date_notice-wrap {

    display: flex;
    justify-content: space-between;

}

main .info-date {

    width: 50%;      /* デザインカンプから読み取れなかったので暫定値　*/
    height: auto;
    font-size: 17px;
    color: var(--text-gray);

}

main .info-notice {

    width: 40%;   /* デザインカンプから読み取れなかったので暫定値　*/
    height: auto; /* デザインカンプから読み取れなかったので暫定値　*/
    margin-right: 16px; /* デザインカンプから読み取れなかったので暫定値　*/
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--background-gray);
    font-size: 17px;
    color: #ffffff;

}

main .info-new_information {

    width: auto;
    height: auto;
    margin-top: 16px; /* デザインカンプから読み取れなかったので暫定値　*/
    font-size: 18px;
    color: var( --text-gray );

    overflow: hidden;

}

main .info-link {
    display: flex;
    flex-direction: column;
    height: 100%; /* 親の .info-new_info_box に合わせる */
    width: 100%;  /* 念のため */
    text-decoration: none;
}


main .prev_next-wrap {

    width: 85%;
    height: 50px;
    margin: 29px auto 50px auto;
    display: flex;
    justify-content: space-between;

}

main .prev ,.next {

    width: 45%;
    max-width: 290px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 25px;
    border: 2px solid var( --border-gray );
    border-radius: 50px;
    position: relative;
    text-decoration: none;    /* 下線を消す */
    color: inherit;           /* 文字色は継承 */

}

main .arrow_left {

    position: absolute;
    left: 15px;

}

main .arrow_right {

    position: absolute;
    right: 15px;

}

/* ▼ ボックス全体に hover を適用 */
main .prev:hover,
main .next:hover {

    background-color: #D5D5D5;

}


/* info-detail TB */

main .info-detail_box {

    width: 84%;
    height: auto;
    margin: 10rem auto 0 auto;
    border: 1px solid var( --border-gray );
    border-radius: 20px;

}

main .info-detail_photo {

    width: 88%;
    height: auto;
    margin: 30px auto;

}

main .info-detail_photo_jpg {

    width: 100%;
    height: auto;

}

main .info-detail_text_wrap {

    width: 88%;
    height: auto;
    margin: 0 auto;

}

main .info-detail_date_notice {

    margin-top: 10px;
    display: flex;
    align-items: center; 
    gap: 25px;

}

main .info-detail_date {

    width: 140px;  /* デザインカンプにある124pxでは文字が収まらない　*/
    height: 22px;
    font-size: 17px;
    text-align: left;
    letter-spacing: 0;

}

main .info-detail_text {

    width: 114px;
    height: 27px;
    font-size: 19px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
    background-color: #079B1C;

}

main .info-detail_title {

    margin-top: 27px;
    font-size: 25px;
    color: var( --text-gray );

}

main .info-detail_contents {

    margin-top: 10px;
    font-size: 15px;
    color: var( --text-gray );
    line-height: 2.0; /* デザインカンプから読み取れなかったので暫定値を指定　*/

}


/* introduction TB */

main .introduction-title {

    width: 85%;
    margin: 9rem auto 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 35px;
    font-weight: bold;
    color: var( --text-gray );
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray);

}

main .introduction-title_p1 {

    margin-top: 25px;

}

main .introduction-title_p2 {

    margin-bottom: 25px;

}

main .introduction-box {

    width: 85%;
    margin: 34px auto 0 auto;
    display: flex;
    color: var( --text-gray );

}

main .introduction-box-left {

    width: 140px;
    height: 140px;

}

main .introduction-box-left img {

    width: 140px; 
    height: 140px; 

}

main .introduction-box-right {

    flex: 1;
    width: auto;
    margin-top: 0;
    margin-left: 23px;
    display: flex;
    flex-direction: column;

}

main .introduction-box-right-top {

    width: 100%;
    max-width: 485px; 
    height: auto;

    font-size: 30px;
    text-align: left;
    border-bottom: 1px solid var( --border-gray);

    padding-bottom: 10px;

}


main .introduction-box-right-top p{

    white-space: normal;

}


main .introduction-box-right-bottom {

    font-size: 20px;
    text-align: left;

}

main .introduction-box-right-bottom p{

    margin-top: 10px;
    line-height: 1.5;

}


/* access TB */

main .access-title{

    width: 85%;
    height: 90px; /* カンプから読み取れなかったので暫定値　*/
    margin: 9rem auto 63px auto; 
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-size: 50px;
    font-weight: bold;
    color: var( --text-gray );

}

main .access-large {

    width: 85%;
    margin: 0 auto;
    font-size: 30px;

}

main .access-detail {

    width: 85%;
    margin: 11px auto 0 auto;
    line-height: 1.4;
    font-size: 18px;
    word-wrap: break-word;

}

main .holiday-font {

    font-size: 12px;

}

main .access-data_wrap{

    width: 85%;
    margin: 0 auto;
    display: flex;
    justify-content: flex-start;

}

main .access-tab_pc2 {

    width: 100%;
    max-width: 972px;
    margin: 0px 0 60px 0;
    display: flex;

}

main .access-tab_pc1 {

    width: 100%;
    max-width: 522px;

}

main .access-address {

    width: 100%;
    margin: 30px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-2l {

    width: 100%;
    margin: 20px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-holiday {

    width: 100%; 
    margin: 20px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}


main .access-map {

    width: 84%;
    height: 453px;
    margin: 0 auto;

}

main .access-map iframe {

    display: block;
    width: 100%;
    height: 453px;

}

main .access-map-text {

    width: 84%;
    height: 18px;
    margin: 10px auto 0 auto;
    text-align: right;
    font-size: 18px;
    color: #595858;

}


/* company TB */

main .company-title{

    width: 85%;
    height: 69px;
    margin: 9rem auto 40px auto; /* デザインカンプから会社概要のタイトルと表の間の距離を読み取れなかったので暫定的に４０ｐｘで指定した　*/
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    display: flex; 
    justify-content: center; 
    align-items: center; 
    font-size: 28px;
    font-weight: bold;
    color: var( --text-gray );

}

main .company-row {

    width: 59%;
    margin: 0 auto;
    display: flex;
    border-top: 1px solid var(--border-gray);
    border-left: 1px solid var(--border-gray);
    border-right: 1px solid var(--border-gray);
    font-size: 21px;

}

main .company-row-last {

    width: 59%;
    margin: 0 auto;
    display: flex;
    border: 1px solid var(--border-gray);
    font-size: 21px;

}

main .company-left {

    width: 34%;
    height: 47px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #9ca4b2;
    color: #ffffff;
    
}

main .company-right {

    width: 66%;
    height: 47px;
    display: flex;
    justify-content: left;
    align-items: center;
    border-left: 1px solid var(--border-gray);
    color: var( --text-gray );

}

main .company-right-text {

    margin-left: 10px;

}


/* contact TB */

.contact header {

    width: 100%;
    height: 109px;

}

.contact .top-image-tab {

    display: none;

}

.contact .top-logo {

    width: 159px;
    height: auto;
    margin: 0 0 0 50px;

}

.contact .top-logo-svg {

    width: 159px;
    height: auto;

}

.contact .menu {

    display: block !important;   /* PCの display:flex を上書き */
    position: fixed !important;  /* PC の absolute を上書き */
    left: auto !important;           /* left:0 を潰す（これが超重要） */
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    color: var( --text-gray );
    transition: right 0.3s ease;
    box-sizing: border-box;
    z-index: 10;
    overflow-y: auto; /* ← スクロールを有効にする */
    background-color: #D5D5D5;

}

.contact .menu.open {

    right: 0;

}

main .contact-title {

    margin-top: 98px;
    text-align: center;
    font-size: 35px;
    font-weight: bold;
    color: var(--text-gray);

}

main .form-wrap {

    width: 85%;
    margin: 62px auto 40px auto;

}

main .form-area dt {

    width: 100%;
    padding-bottom: 11px;
    font-size: 24px;
    color: var( --text-gray );

}

main .form-area dd {

    width: 100%;
    padding-bottom: 26px;
    font-size: 20px;

}

main .form-area dd:last-child {

    width: 100%;
    padding-bottom: 0;

}

main .input-text {

    width: 100%;
    height: 40px;
    border: 1px solid #707070;
    border-radius: 5px;
    font-size: 20px;

}

main .message{

    width: 100%;
    height: 198px;
    border: 1px solid #707070;
    border-radius: 5px;
    font-size: 20px;
    line-height: 1.4;

}

main .submit-button {

    width: 202px;
    height: 40px;
    margin: 40px auto 92px auto;
    background-color: var(--background-gray);
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
    font-size: 18px;

}


/* confirmation TB */

main .confirmation-title {

    margin-top: 84px;
    text-align: center;
    font-size: 35px;
    color: var(--text-gray);

}

main .confirmation-title2 {

    margin-top: 2px;
    text-align: center;
    font-size: 17px;
    font-weight: bold;
    color: var(--text-gray);

}

main .confirmation-text_wrap {

    width: 90%;
    margin: 54px auto 93px auto;
    color: var( --text-gray );

}

main .confirmation-name_display {

    font-size: 24px;
    font-weight: bold;

}

main .confirmation-name_DB {

    margin-top: 17px;
    font-size: 20px;

}

main .confirmation-mail_display {

    margin-top: 33px;
    font-size: 24px;
    font-weight: bold;

}

main .confirmation-mail_DB {

    margin-top: 17px;
    font-size: 20px;

}

main .confirmation-title_display {

    margin-top: 33px;
    font-size: 24px;
    font-weight: bold;

}

main .confirmation-title_DB {

    margin-top: 18px;
    font-size: 20px;

}

main .confirmation-message_display {

    margin-top: 33px;
    font-size: 24px;
    font-weight: bold;

}

main .confirmation-message_DB {

    margin-top: 18px;
    font-size: 20px;
    line-height: 1.4;
 
}

main .confirm-button {

    width: 387px;
    height: 33px;
    margin:  67px auto 50px auto;
    display: flex;
    gap: 69px;

}

main .return-button,main .send-button {

    width: 159px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 3px solid var( --text-gray );
    border-radius: 100px;
    text-decoration: none;
    font-size: 18px;
    color: var( --text-gray );

}

main .return-button:hover ,main .send-button:hover {

    background-color: var( --background-gray );
    color: #ffffff;

}


/* thanks TB */

.thnaks header {

    width: 100%;
    height: 109px;

}

.thanks .top-image-tab {

    display: none;

}

.thanks .top-logo {

    width: 159px;
    height: auto;
    margin: 51px 0 0 50px;

}

.thanks .top-logo-svg {

    width: 159px;
    height: auto;

}

main .thanks-message {

    width: 398px; /* カンプにある３１０ｐｘでは文字が収まらないため暫定的に指定した　*/
    margin: 365px auto 0 auto;
    text-align: center;
    font-size: 36px;
    font-weight: bold;
    color: var( --text-gray );
    line-height: 1.6;

}

main .return_top-button {

    width: 211px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 54px auto 383px auto;
    border: 2px solid var( --border-gray ) ;
    border-radius: 100px;
    font-size: 18px;
    color: var( --text-gray );
    text-decoration: none;

}

main .return_top-button:hover {

    background-color: var( --background-gray );
    color: #ffffff;

}


/* footer TB */

footer {

    width: 100%;
    height: 217px;
    background-color: #E0E5E8;
    position: relative;
    z-index: 0;
    
}

footer .footer-button-wrap {

    width: 100%;
    max-width: 548px;
    display: flex;
    gap: 12px;
    padding-top: 26px;
    margin: 0 auto;

}

footer .footer-button-top {

    height: 23px;
    display: flex;
    gap: 12px;

}

footer .footer-button-bottom {

    height: 23px;
    display: flex;
    gap: 12px;

}

footer .footer-button {

    width: 100px;
    height: 23px;
    background-color: var( --background-gray );
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    font-size: 15px;
    font-weight: bold;
    color: #ffffff;

}

footer .footer-button:hover {

    background-color: #9ca4b2;;

}

footer .logo_address-box {

    width: 393px;
    height: 50px;
    margin: 29px auto 0 auto;
    display: flex;    

}

footer .footer-logo {

    width: 128px;
    height: 47px;

}

footer .phone_mail-wrap {

    margin-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 5px; /* カンプでは　６．６３ｐｘだが６ｐｘとすると　ToTeTuのロゴの下にメアドの文字がはみ出る　*/

}

footer .phone-wrap {

/*    width: 215px; */

    width: auto;
    height: 21px;

/*    margin: 0 auto; */
    
    display: flex;
    justify-content: left;

}

footer .phone-svg {

    width: 19px;
    height: 21px;

}

footer .phone-text {

/*    width: 191px; */

    width: auto;
    height: 19px;
    margin-left: 5px;
    font-size: 14px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

footer .time {

    display: none;

}

footer .mail-wrap {

    width: 215px;
    height: 21px;
    display: flex;  

}

footer .mail-svg {

    width: 19px;
    height: 15px;

}

footer .mail-text {

    width: 191px;
    height: 19px;
    margin-left: 5px;
    font-size: 14px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

footer .address-box {

    width: 330px; /* デザインカンプにある３１０ｐｘでは２行になってしまうため３２４ｐｘで指定した　*/
    height: 30px;
    margin: 12px auto 0 auto;
    font-size: 11px;

}

footer .address-box p {
    
    text-align: center;
    font-size: 11px;
    font-weight: bold;
    line-height: 1.4;
    color: var(--text-gray);

}

footer .copyright {

    width: 140px;
    height: 11px;
    margin: 26px auto 0 auto;

}

footer .copyright p {

    font-size: 8px;
    color: var( --text-gray );
    font-weight: medium;

}

}    


/* スマートフォン　*/

@media( max-width:450px ){

#page_top {

    width: 64px;
    height: 64px;
    position: fixed;
    right: 40px;
    bottom: 25%;
    background: #ffffff;
    z-index: 9999;
    font-size: 11px;
    text-decoration: none;
    color: var(--text-gray);
    border: 2px solid var(--text-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center; /* 中央配置 */
    position: fixed;
    text-align: center;
    padding: 0;
    border-radius: 50%;

}

header {

    width: 100%;
    display: block;
    position: static;

}

/* ボタンのスタイル */
.hamburger {

    display: block;
    position: fixed;
    top: 40px;
    right: 40px;
    width: 31px;
    cursor: pointer;
    z-index: 10001; /* menuより前面に出す */
    transition: opacity 0.3s ease;

}

.hamburger span {

    display: block;
    height: 3px;
    width: 100%;
    background-color: var(--background-gray);
    margin: 5px 0;
    transition: 0.4s;

}

/* バツ印に変化するスタイル */
.hamburger.active span:nth-child(1) {

    transform: rotate(45deg) translate(5px, 5px);

}

.hamburger.active span:nth-child(2) {

    opacity: 0;

}

.hamburger.active span:nth-child(3) {

    transform: rotate(-45deg) translate(6px, -6px);

}

.menu {

    margin: 0 !important;   /* 上右の余白を消す */
    display: block !important;   /* PCの display:flex を上書き */
    position: fixed !important;  /* PC の absolute を上書き */
    left: auto !important;           /* left:0 を潰す（これが超重要） */
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    color: var( --text-gray );
    transition: right 0.3s ease;
    box-sizing: border-box;
    z-index: 10000;
    overflow-y: auto; /* ← スクロールを有効にする */
    background-color: #D5D5D5;

}

/* メニューが開いているとき */
.menu.open {

    right: 0;
    -ms-overflow-style: none;  /* IE */
    scrollbar-width: none;     /* Firefox */
    overflow-y: auto;          /* 明示する */

}

.menu.open::-webkit-scrollbar{

    display:none;

}

.menu ul {

    width: 90%;
    max-width: 370px;          /* 固定幅 or max-width で中央寄せ */
    margin: 100px auto 0 auto;  /* 中央寄せ */
    display: flex;
    flex-direction: column;
    gap: 37px;
    padding: 0;
    align-items: center;   /* ul自体は中央寄せ */

}

.menu ul li {

    width: 100%;           /* li の幅を親 ul に合わせる */

}

.menu ul li:last-child {

    margin-right: 0;

}

.menu ul li a {
    
    display: block;        /* リンクをブロック化 */
    width: 100%;           /* li の幅いっぱい */
    text-align: left;      /* テキストだけ左寄せ */
    color: var(--text-gray);
    text-decoration: none;
    font-size: 25px;
    font-weight: bold;

}

.navi {

    width: 370px;
    height: 50px; /* カンプから読み取れなかったので暫定値を指定　*/
    line-height: 50px; 
    white-space: nowrap;
    background-color: #D5D5D5;
    border-bottom: 1px solid var(--text-gray);
    border-radius: 0;

}

.top-page .top-image-sp {

    width: 100%;
    max-width: 127px;
    height: auto;     /* ← 縦横比が絶対に崩れない */
    flex-shrink: 0;   /* ← flex でつぶされない */
    display: block;

    position: absolute;
    top: 0;
    left: 0;

}

.top-page .top-image-pc {

    display: none;

}

.top-page .top-image-tab {

    display: none;

}

.top-page .top-logo {

    width: min( 100%, 143px );
    margin: 15px 0 0 35%;  

}

.top-page .top-logo-svg {

    width: min( 100%, 143px ); 
    display: block;

}


/* index SP */

header .information-box {
    
    width: 370px;                  
    border: 1px solid var(--border-gray);
    border-radius: 20px;
    text-align: left;

    margin: 15% auto 0 auto;

}

header .information-box-inner {
 
    width: 90%;                  /* 内部パディングで調整 */
    margin: 0 auto;
    padding: 18px 0 25px 0;

}

header .new-info {

    margin-top: 29px;
    margin-left: 31px;
    font-size: 20px;
    color: var( --text-gray );

}

header .date-mark-box {

    display: flex;
    margin-top: 21px;
    
}

header .new-info-date {

    font-size: 13px;
    color: var( --text-gray );

}

header .info-mark {

    background-color: var( --background-gray );
    color: #ffffff;
    font-size: 13px;
    margin-left: 11px;
    padding: 1px 18px 3px 10px;

}
  
header .info-text {

    width: 319px;
    margin-top: 11px;
    border-bottom: 2px dotted #707070;
    font-size: 16px;
    color: var( --text-gray );

}

main .top-about-title{

    width: 85%;
    display: flex;
    justify-content: center;
    margin: 4rem auto 0 auto; /* デザインカンプから余白を測れなかったので暫定値　*/
    padding: 1rem 0;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .top-about-title-inner {

    display: flex;

}

main .top-about-title-logo {

    width: 102px;

}

main .top-about-title-let{
    
    display: flex;
    align-items: center;
    margin-left: 8px;
    font-size: 28px;
    font-weight: bold;
    color: var( --text-gray );

}

main .top-about-text {

    width: 85%;
    margin: 1rem auto 3rem auto; /* デザインカンプから余白を測れなかったので暫定値　*/

}

main .top-about-text p{

    font-size: 13px;               /* デザインカンプから読み取れなかったので、暫定値で指定　*/
    color: var( --text-gray );      /* デザインカンプから読み取れなかったので、暫定値で指定　*/
    line-height: 1.8; /* デザインカンプから読み取れなかったので、暫定値で指定　*/

}

main .top-about-text_2nd {

    margin-top: 2rem;       /* デザインカンプから余白を測れなかったので暫定値　*/
    margin-bottom: 2rem;    /* デザインカンプから余白を測れなかったので暫定値　*/

}

main .top-support {

    width: 82%;
    margin: 0 auto;

}

main .support-title {

    width: 100%;
    height: 45px;
    display: flex;
    justify-content: left;
    align-items: center;
    border-radius: 23px;
    background-color: var( --background-gray );

}

main .support-title p{

    font-size: 14px;
    color: #ffffff;
    margin-left: 18px;

}

main p.support-title-p2 {

    margin-left: 16px;

}

main p.support-title-p2_l2 {

    font-size: 14px;
    color: #ffffff;
    margin-left: 16px;

}


main .support-text {

    width: 92%;
    margin: 15px auto 16px auto;

}

main .support-text p {

    font-size: 13px;
    color: var( --text-gray );
    line-height: 1.8;

}

main .support-photo {

    width: 281px;
    margin: 16px auto 32px auto;

}

main .support-photo-jpg {

    width: 281px;

}

main .top-flow-title {

    width: 85%;
    height: 54px;
    margin: 52px auto 2rem auto; /* ご利用までの流れ　と　下の写真までの距離が不明なため　暫定値2rem　とした*/
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .top-flow-title p {

    font-size: 26px;
    color: var( --text-gray );
    font-weight: bold;

}

main .top-flow-box {

    width: 370px;
    margin: 0 auto;
    display: flex;

}

main .top-flow-text {

    width: 221px;
    height: 128px;
    display: block;
    margin-top: 0;

}

main .top-flow-subtitle {

    width: 221px;
    height: 33px;
    border-bottom: 1px solid var(--border-gray);
    font-size: 20px;
    color: var( --text-gray );
    font-weight: bold;
    line-height: 1.5;

}

main .top-flow-subtitle2 {

    width: 221px;
    height: 58px;
    border-bottom: 1px solid var(--border-gray);
    font-size: 20px;
    color: var( --text-gray );
    font-weight: bold;

}

main .SP-enabled {

    display: block;

}

main .top-flow-comment {

    margin-top: 6.5px;
    font-size: 13px;
    color: var( --text-gray );
    line-height: 1.8;

}

main .top-flow-photo {

    width: 140px;
    height: 132px;
    margin-left: 9px;

}

main .flow-photo-jpg {

    width: 140px;
    height: 128px;
    object-fit: cover;  /* 枠いっぱいに拡大し、はみ出た部分をトリミング */
    object-position: center center; /* 左右中央で切り抜く */

}

main .triangle-down {
  
    width: 0;
    height: 0;
    border-left: 21px solid transparent;  /* 横幅の半分：42px / 2 */
    border-right: 21px solid transparent; /* 横幅の半分 */
    border-top: 22px solid #C0CAD0;          /* 高さ22px + 色指定 */
    margin: 38px auto 38px auto;

}

main .consultation-title {

    width: 85%;
    height: auto;
    margin: 60px auto 2rem auto; /* まずはお気軽にご相談を！　と　下の文字までの距離が不明なため　暫定値２rem　とした*/
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid var(--border-gray);
    border-bottom: 1px solid var(--border-gray);

}

main .consultation-title p {

    font-size: 26px;
    color: var( --text-gray );
    font-weight: bold;

    margin-top: 10px;
    margin-bottom: 10px;

}

main .consultation-msg {

    width: 370px;
    height: 86px;
    margin: 2rem auto 28px auto;  /*　まずはお気軽にご相談を！　の下の線と　就労に関するお悩みや・・・　の間の距離が読み取れないため暫定的に2remで指定した　*/
    text-align: center;
    color: var( --text-gray );
    font-size: 13px;
    font-weight: bold;
    line-height: 1.8;

}

main .phone-wrap {

/*    width: 301px; */

    width: auto;
    height: 21x;

/*    margin: 0 auto; */
  
    display: flex;
    justify-content: center;

}

main .phone-svg {

    width: 19px;
    height: 21px;

}

main .phone-text {

/*    width: 270px; */

    width: auto;
    height: 22px;
    margin-left: 6px;
    font-size: 13px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

main .mail-wrap {

    width: 301px;
    height: 22px;
    margin: 8px auto 0 auto;
    display: flex;

}

main .mail-svg {

    width: 19px;
    height: 21px;

}

main .mail-text {

    width: 270px;
    height: 22px;
    margin-left: 6px;
    font-size: 13px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

main .address {

/*    width: 282px; */ /* 282px では２行目が１行に収まらない　*/

    width: 301px;
    height: 41px;
    margin: 29px auto 0 auto;
    text-align: center;
    font-size: 13px;
    color: var( --text-gray );
    line-height: 1.8;

}

main .inquiry-button {

    width: 210px;
    height: 30px;
    margin: 33px auto 50px auto;
    background-color: var( --background-gray );
    color: #ffffff;
    font-size: 13px;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 18px;
    text-decoration: none;

}


/* infomation SP */

.not_top-contact .top-image-sp {

    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    max-width: min( 30% , 127px );
    height: auto;     /* ← 縦横比が絶対に崩れない */
/*    flex-shrink: 0;  */ /* ← flex でつぶされない */
    display: block;
    
    z-index: 10;

}

.not_top-contact .top-image-tab {
    
   display: none;

}

.not_top-contact .top-image-pc {
    
   display: none;

}

.not_top-contact .top-logo {

    width: 143px;
    height: auto;

    margin: 10px 0 0 35%;

}

.not_top-contact .top-logo-svg {

    width: 143px;
    height: auto;
    
}

main .info-new_info_title {

    width: 85%;
    height: 63px;
    margin: 4rem auto 0 auto;
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    font-size: 28px;
    font-weight: bold;
    color: var( --text-gray );
    display: flex;
    justify-content: center;
    align-items: center;

}

/* 全体ラップ */
main .info-new_info_box-wrap {

    width: 85%;
    margin: 33px auto 29px auto;
    display: flex;
    flex-direction: column;
    gap: 15px 0;

}

/* info-box 内のリンク */
main .info-link {

    display: flex;

    flex-direction: row;   
    align-items: flex-start;

    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;

}

/* info-box */
main .info-new_info_box {

    width: 100%;
    height: 81px;
    display: flex;
    
    border: 1px solid var(--border-gray);
    border-radius: 10px;
    align-items: flex-start; /* 上詰め */

}

/* グレーのボックス */
main .info-gray_box {

    width: 100%;
    height: 81px;
    border: 1px solid var(--border-gray);
    border-radius: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #D5D5D5;

}

main .info-gray_box img {

    width: 30%;
    height: auto;

}


/* 画像 */
main .info-image {

    width: 80px;
    height: 80px;
    position: relative;
    flex-shrink: 0;

}

main .info-image-jpg {

    width: 80px;
    height: 80px;
    border-radius: 10px 0 0 10px;
    object-fit: cover;

}

/* NEWマーク */
main .info-new_mark {

    width: 42px;
    height: 17px;
    position: absolute;
    top: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #FF000F;
    color: #ffffff;
    font-size: 12px;

}

/* 文字部分全体 */
main .date_notice-text-wrap {

    flex: 1;          /* 残り幅を全部使う */
    display: flex;
    flex-direction: column;
    margin-left: 10px;
    margin-right: 10px;
    height: auto;

}

/* 日付＋お知らせラップ */
main .date_notice-wrap {

    display: flex;
    gap: 10px;
    width: 100%;
    height: 18px;
    justify-content: flex-start;

}

/* 日付 */
main .info-date {

    width: 104px;
    height: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--text-gray);

}

main .info-date p {

    font-size: 13px;
    margin: 0;

}

/* お知らせ */
main .info-notice {

    width: 81px;
    height: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--background-gray);
    color: #ffffff;

}

main .info-notice p {

    font-size: 13px;
    margin: 0;

}

/* お知らせ本文 */
main .info-new_information {

    width: 100%;
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

main .info-new_info .prev_next-wrap {

    width: 90%;
    height: 35px;
    margin: 29px auto 50px auto;
    display: flex;
    justify-content: space-between;

}

main .info-new_info .prev ,.info-new_info .next {

    width: 37%;
    height: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 15px;
    border: 2px solid var( --border-gray );
    border-radius: 50px;
    position: relative;
    text-decoration: none;    /* 下線を消す */
    color: inherit;           /* 文字色は継承 */

}

main .arrow_left {

    position: absolute;
    left: 15px;

}

main .arrow_right {

    position: absolute;
    right: 15px;

}

/* ▼ ボックス全体に hover を適用 */
main .prev:hover,
main .next:hover {

    background-color: #D5D5D5;

}


/* info-detail SP */

main .info-detail_box {

    width: 82%;
    height: auto;
    margin: 5rem auto 0 auto;
    border: 1px solid var( --border-gray );
    border-radius: 20px;

}

main .info-detail_photo {

    width: 87%;
    height: auto;
    margin: 29px auto 0 auto;

}

main .info-detail_photo_jpg {

    width: 100%;
    height: auto;

}

main .info-detail_text_wrap {

    width: 87%;
    height: auto;
    margin: 0 auto;

}

main .info-detail_date_notice {

    margin-top: 10px;
    display: flex;
    align-items: center; 
    gap: 25px;

}

main .info-detail_date {

    width: 110px;     /* デザインカンプにある102pxでは文字が収まらないため　*/
    height: 19px;
    font-size: 14px;
    text-align: left;
    letter-spacing: 0;

}

main .info-detail_text {

    width: 96px;
    height: 23px;
    font-size: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #ffffff;
    background-color: #079B1C;

}

main .info-detail_title {

    margin-top: 27px;
    font-size: 20px;
    color: var( --text-gray );

}

main .info-detail_contents {

    margin-top: 6px;
    font-size: 12px;
    color: var( --text-gray );
    line-height: 1.8;

}

main .prev_next-wrap {

    width: 82%;
    height: 35px;
    margin: 29px auto 50px auto;
    display: flex;
    justify-content: space-between;

}

main .prev ,.next {

    width: 37%;
    height: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 15px;
    border: 2px solid var( --border-gray );
    border-radius: 50px;
    position: relative;
    text-decoration: none;    /* 下線を消す */
    color: inherit;           /* 文字色は継承 */

}

main .arrow_left {

    position: absolute;
    left: 15px;

}

main .arrow_right {

    position: absolute;
    right: 15px;

}

/* ▼ ボックス全体に hover を適用 */
main .prev:hover,
main .next:hover {

    background-color: #D5D5D5;

}


/* introduction SP */

main .introduction-title {

    width: 85%;
    margin: 4rem auto 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    color: var( --text-gray );
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray);

}

main .introduction-title_p1 {

    margin-top: 20px;

}

main .introduction-title_p2 {

    margin-bottom: 20px;

}


main .introduction-box {

    width: 85%;
    margin: 25px auto 0 auto;
    display: flex;
    color: var( --text-gray );

}

main .introduction-box-left {

    width: 100%;
    max-width: 101px;
    height: auto;

    flex: 0 0 101px;

}

main .introduction-box-left img {

    width: 100%;
    max-width: 101px;
    height: auto;

}

main .introduction-box-right {

    width: 100%;
    margin-top: 0;
    margin-left: 17px;
    display: flex;
    flex-direction: column;

    flex: 1;
    min-width: 0;

}

main .introduction-box-right-top {

    width: 100%;
    height: auto;         
    font-size: 20px;
    text-align: left;
    border-bottom: 1px solid var( --border-gray);

    padding-bottom: 10px;

}

main .introduction-box-right-top p{

    white-space: normal;

}

main .introduction-box-right-bottom {

    font-size: 13px;
    text-align: left;

}

main .introduction-box-right-bottom p{

    margin-top: 10px;
    line-height: 1.5;

}


/* access SP */

main .access-title{

    width: 85%;
    height: 63px;
    margin: 4rem auto 0 auto;
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 28px;
    font-weight: bold;
    color: var( --text-gray );

}

main .access-tab_pc2{

    display: block;

}

main .access-large {

    margin-left: 20px;
    font-size: 25px;

}

main .access-detail {

    margin-top: 7px;
    margin-left: 20px;
    line-height: 1.5;
    font-size: 15px;
    word-wrap: break-word;

}

main .holiday-font {

    font-size: 13px;

} 

main .access-address {

    width: 370px;
    height: 104px;
    margin: 30px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-2l {

    width: 370px;
    height: 60px;
    margin: 20px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-holiday {

    width: 370px;
    height: 104px;
    margin: 20px auto 0 auto;
    border-left: 2px solid var( --border-gray );
    color: var( --text-gray );

}

main .access-map {

    width: 82%;
    height: 453px;
    margin: 36px auto 0 auto;

}

main .access-map iframe {

    display: block;
    width: 100%;
    height: 453px;

}

main .access-map-text {

    width: 82%;
    height: 18px;
    margin: 10px auto 0 auto;
    text-align: right;
    font-size: 13px;
    color: #595858;

}


/* company SP */

main .company-title{

    width: 82%;
    height: 63px;
    margin: 4rem auto 40px auto; /* デザインカンプから会社概要のタイトルと表の間の距離を読み取れなかったので暫定的に４０ｐｘで指定した　*/
    border-top: 1px solid var( --border-gray );
    border-bottom: 1px solid var( --border-gray );
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 28px;
    font-weight: bold;
    color: var( --text-gray );

}

main .company-row {

    width: 82%;
    margin: 0 auto;
    display: flex;
    border-top: 1px solid var(--border-gray);
    border-left: 1px solid var(--border-gray);
    border-right: 1px solid var(--border-gray);
    font-size: 17px;

}

main .company-row-last {

    width: 82%;
    margin: 0 auto;
    display: flex;
    border: 1px solid var(--border-gray);
    font-size: 17px;

}

main .company-left {

    width: 111px;
    height: 47px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #9ca4b2;
    color: #ffffff;
    
}

main .company-right {

    width: 259px;
    height: 47px;
    display: flex;
    justify-content: left;
    align-items: center;
    border-left: 1px solid var(--border-gray);
    color: var(--text-gray);

}

main .company-right-text {

    margin-left: 10px;

}


/* contact SP */

.contact header {

    width: 100%;
    height: 85px;

}

.contact .top-image-sp {

    display: none;

}

.contact .top-logo {

    width: 116px;
    height: auto;
    margin: 0 0 0 32px; /* カンプから読み取れなかったので暫定値を指定した　*/

}

.contact .top-logo-svg {

    width: 116px;
    height: auto;

}

.contact .menu {

    display: block !important;   /* PCの display:flex を上書き */
    position: fixed !important;  /* PC の absolute を上書き */
    left: auto !important;           /* left:0 を潰す（これが超重要） */
    top: 0;
    right: -100%;
    width: 100%;
    height: 100%;
    color: var( --text-gray );
    transition: right 0.3s ease;
    box-sizing: border-box;
    z-index: 10;
    overflow-y: auto; /* ← スクロールを有効にする */
    background-color: #D5D5D5;

}

.contact .menu.open {

    right: 0;

}

main .contact-title {

    margin-top: 41px;
    text-align: center;
    font-size: 28px;
    font-weight: bold;
    color: var(--text-gray);

}

main .form-wrap {

    width: 85%;
    margin: 35px auto 51px auto;

}

main .form-area dt {

    width: 100%;
    padding-bottom: 10px;
    font-size: 16px;
    color: var( --text-gray );

}

main .form-area dd {

    width: 100%;
    padding-bottom: 18px;

}

main .form-area dd:last-child {

    width: 100%;
    padding-bottom: 0;

}

main .input-text {

    width: 100%;
    height: 28px;
    border: 1px solid #707070;
    border-radius: 5px;
    font-size: 13px;

}

main .message{

    width: 100%;
    height: 135px;
    border: 1px solid #707070;
    border-radius: 5px;
    font-size: 13px;
    line-height: 1.4;

}

main .submit-button {

    width: 171px;
    height: 34px;
    margin: 25px auto 51px auto;
    background-color: var(--background-gray);
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 13px;
    color: #ffffff;

}


/* confirmation SP */

main .confirmation-title {

    margin-top: 41px;
    text-align: center;
    font-size: 28px;
    font-weight: bold;
    color: var(--text-gray);

}

main .confirmation-title2 {

    margin-top: 2px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    color: var(--text-gray);

}


main .confirmation-text_wrap {

    width: 85%;
    margin: 35px auto 67px auto;
    color: var( --text-gray );

}

main .confirmation-name_display {

    font-size: 16px;
    font-weight: bold;

}

main .confirmation-name_DB {

    margin-top: 12px;
    font-size: 13px;

}

main .confirmation-mail_display {

    margin-top: 25px;
    font-size: 16px;
    font-weight: bold;

}

main .confirmation-mail_DB {

    margin-top: 13px;
    font-size: 13px;

}

main .confirmation-title_display {

    margin-top: 25px;
    font-size: 16px;
    font-weight: bold;

}

main .confirmation-title_DB {

    margin-top: 12px;
    font-size: 13px;

}

main .confirmation-message_display {

    margin-top: 24px;
    font-size: 16px;
    font-weight: bold;

}

main .confirmation-message_DB {

    margin-top: 13px;
    font-size: 13px;
    line-height: 1.9;
 
}

main .confirm-button {

    width: 301px;
    height: 33px;
    margin:  67px auto 50px auto;
    display: flex;
    gap: 37px;

}

main .return-button,main .send-button {

    width: 132px;
    height: 33px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 2px solid var( --text-gray );
    border-radius: 100px;
    text-decoration: none;
    font-size: 13px;
    color: var( --text-gray );

}

main .return-button:hover ,main .send-button:hover {

   background-color: var( --background-gray );
   color: #ffffff;

}


/* thanks SP */

main .thanks-message {

    width: 256px;
    margin: 237px auto 0 auto;
    text-align: center;
    font-size: 23px;
    font-weight: bold;
    color: var( --text-gray );
    line-height: 1.6;

}

main .return_top-button {

    width: 177px;
    height: 33px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 38px auto 237px auto;
    border: 2px solid var( --border-gray ) ;
    border-radius: 100px;
    font-size: 16px;
    color: var( --text-gray );
    text-decoration: none;

}

main .return_top-button:hover {

    background-color: var( --background-gray );
    color: #ffffff;

}


/* footer SP */

footer {

    width: 100%;
    height: 270px; /* デザインカンプにある257pxでは、フッター最下部に背景色が反映されないため　*/
    background-color: #E0E5E8;
    position: relative;
    z-index: 0;
    
}

footer .footer-button-wrap {

    width: 100%;
    display: flex;
    flex-direction: column;
    padding-top: 31px;

}

footer .footer-button-top {

    width: 302px;
    height: 20px;
    margin: 0 auto;
    display: flex;

}

footer .footer-button-bottom {

    width: 198px;
    height: 20px;
    margin: 0 auto;
    display: flex;

}

footer .footer-button {
    
    width: 94px;
    height: 20px;
    margin-right: 10px;
    background-color: var( --background-gray );
    border-radius: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    font-size: 11px;
    font-weight: bold;
    color: #ffffff;

}

footer .footer-button:hover {

    background-color: #9ca4b2;;

}

footer .logo_address-box {

    width: 346px;
    height: 43px;
    margin: 29px auto 0 auto;
    display: flex;
    
}

footer .footer-logo {

    width: 117px;
    height: 43px;

}

footer .phone_mail-wrap {

    margin-left: 14px;
    display: flex;
    flex-direction: column;
    gap: 5px; /* カンプでは　６．６３ｐｘだが６ｐｘとすると　ToTeTuのロゴの下にメアドの文字がはみ出る　*/

}

footer .phone-wrap {

/*    width: 215px; */

    width: auto;
    height: 21px;

/*    margin: 0 auto; */

    display: flex;
    justify-content: left;

}

footer .phone-svg {

    width: 19px;
    height: 21px;

}

footer .phone-text {

/*    width: 191px; */

    width: auto;
    height: 19px;
    margin-left: 5px;
    font-size: 14px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

footer .time {

    display: none;

}

footer .mail-wrap {

    width: 215px;
    height: 21px;
    display: flex;  

}

footer .mail-svg {

    width: 19px;
    height: 15px;

}

footer .mail-text {

    width: 191px;
    height: 19px;
    margin-left: 5px;
    font-size: 14px;
    font-weight: bold;
    color: var(--text-gray);
    display: flex;
    align-items: center;

}

footer .address-box {

    width: 302px;
    height: 28px;
    margin: 16px auto 0 auto;

}

footer .address-box p {
    
    text-align: center;
    font-size: 10px;
    font-weight: bold;
    line-height: 1.4;
    color: var(--text-gray);

}

footer .copyright {

    width: 140px;
    height: 11px;
    margin: 27px auto 0 auto;

}

footer .copyright p {

    font-size: 8px;
    color: var( --text-gray );
    font-weight: medium;

}

}