@charset "UTF-8";
body { position: relative;}
.head { margin-top: calc(var(--fixed-header-height) + 100px); margin-bottom: clamp(45px, 6vw, 100px); }
.head h1 img { margin-bottom: 15px; }
.head h1 span { font-size: clamp(14px, 3vw, 16px); font-weight: 700; display: block; }

/*-----------------------------------------------------
#Recruit
----------------------------------------------------- */
body#Recruit::after { content: ''; display: block; position: absolute; background: url("../img/recruit/pages_wave.svg")no-repeat; background-position: top left; background-size: cover; aspect-ratio: 1932 / 6972; width: 100%; top: -100px; z-index: -1; }
#Recruit main { overflow: hidden; }
#Recruit .head h1 img{width:clamp(200px,53vw,330px);}
#Recruit .contents{margin:0 auto clamp(60px,10vw,120px);}
#Recruit .r-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);align-items:start;gap:clamp(24px,4vw,60px);margin-right: calc(50% - 50vw);}
#Recruit .r-two-col--rev{grid-template-columns:minmax(0,1fr) minmax(0,560px);margin-right: initial;}
#Recruit .r-col--txt{max-width:720px;/*padding-left: 10%;*/}
#Recruit .r-sec-title{margin-bottom:clamp(30px,3vw,40px);}
#Recruit .r-sec-title__ja{display:block;font-weight:700;font-size:clamp(20px,2.2vw,35px);letter-spacing: .25em;margin-bottom:6px;}
#Recruit .r-sec-title__en{display:block;font-family:var(--font-en);color:var(--blue-color);font-size:clamp(12px, 2vw, 15px);letter-spacing:.1em;}
#Recruit .r-sec-title__ja svg { margin-right: 25px; }
/*#Recruit .r-dot{display:inline-block;width:9px;height:9px;background:var(--blue-color);border-radius:50%;vertical-align:2px;margin-right:8px;}*/
#Recruit .r-lead{color:var(--blue-color);font-weight:700;font-size:clamp(22px,2.2vw,32px);line-height:1.5;letter-spacing:-.02em;margin:0 0 clamp(18px,3vw,28px);}
#Recruit .r-message .r-photo img {border-radius:50px 0 0 50px;}
#Recruit .r-photo--mid{ padding-left: 15%;}
#Recruit .r-photo--mid img{width:clamp(210px,75vw,455px);border-radius:50px;}
#Recruit .r-photo--small img{width:clamp(180px,60vw,308px);border-radius:50px;}
#Recruit .r-figure{max-width:520px;margin:clamp(10px,2vw,20px) auto;}
#Recruit .r-cv-text{max-width: 520px;font-weight:700;font-size:20px;margin:clamp(25px,2vw,20px) auto 0; text-align: center; line-height: 1.5;}
#Recruit span.blue { color:var(--blue-color); }
#Recruit .r-two-col--rev .r-col--img { margin-top: clamp(20px,3vw,70px);display: flex; flex-direction: column; justify-content: space-between; gap: clamp(20px,3vw,50px); }

#Recruit .r-support { margin-bottom: 120px; background: #30AEE4; background: linear-gradient(90deg,rgba(48, 174, 228, 1) 0%, rgba(66, 96, 217, 0.5) 100%); width:100%; padding: 105px 5% 120px; box-sizing: border-box; border-radius: 50px; }

#Recruit .r-initiatives{margin:0 auto clamp(40px,8vw,120px);}
#Recruit .r-ini-table{display:flex;flex-direction:column;gap:clamp(28px,4vw,48px);}
#Recruit .r-ini-row{display:grid;grid-template-columns:260px 1px minmax(0,1fr);align-items:start;gap:clamp(18px,3vw,32px);}
#Recruit .r-ini-label{display:flex;flex-direction:column;gap:6px;}
#Recruit .r-ini-dot{width:10px;height:10px;border-radius:50%;background:var(--blue-color);display:inline-block;margin-bottom:6px;}
#Recruit .r-ini-label__ja{font-weight:700;font-size:clamp(18px,2vw,22px);letter-spacing:.02em;}
#Recruit .r-ini-label__en{font-family:var(--font-en);color:var(--blue-color);font-size:12px;letter-spacing:.12em;}
#Recruit .r-ini-row .r-ini-divider{width:1px;background:#B2B2B2;min-height:110px;align-self:stretch;}
#Recruit .r-ini-policy{font-weight:700;font-size:clamp(20px,2vw,25px);line-height:1.9;letter-spacing:.12em;}
#Recruit .r-ini-goals{display:flex;flex-direction:column;gap:clamp(0px,2.8vw,28px);}
#Recruit .r-ini-goal{max-width: 550px; display:grid;grid-template-columns:1fr auto;column-gap:clamp(25px,3vw,50px);/*row-gap:6px;align-items:end;padding:clamp(6px,1vw,10px) 0;*/}
#Recruit .r-ini-goal__name{font-weight:700;font-size:clamp(20px,2vw,25px);letter-spacing:.12em;}
#Recruit .r-ini-goal__note{grid-column:1/2;color:#666;font-size:clamp(13px,1.8vw,15px);}
#Recruit .r-ini-goal__value{grid-row:1/span 2;grid-column:2/3;display:flex;align-items:baseline;gap:6px;}
#Recruit .r-ini-goal__num{color:var(--blue-color);font-weight:700;font-size:clamp(65px,6vw,85px);line-height:1;}
#Recruit .r-ini-goal__unit{color:var(--blue-color);font-weight:700;font-size:clamp(20px,2vw,25px);}

#Recruit .r-support__wrap{position:relative; max-width: 1200px; margin: 0 auto; }
#Recruit .r-support__head{max-width:min(100% , 650px);}
#Recruit .r-support__title{margin-bottom:40px;}
#Recruit .r-support__title .ja{display:block;color:#fff;font-weight:700;font-size:clamp(24px,3vw,34px);line-height:1.5;letter-spacing:.25em;}
#Recruit .r-support__title .en{display:block;color:var(--blue-color);font-family:var(--font-en);font-size:clamp(12px, 2vw, 15px);letter-spacing:.12em;margin-top:15px;}
#Recruit .r-support__lead{color:#fff;font-size:clamp(14px,1.8vw,16px);}
#Recruit .r-support__illust{position:absolute;right:0;top:-150px;width:min(38%,520px);max-width:520px;}
#Recruit .r-support__cards{display:grid;grid-template-columns:1fr 1fr;margin-top:clamp(50px, 6vw, 75px);}
#Recruit .r-card{display:grid;grid-template-columns:150px 1fr;align-items:center;padding:40px 50px;gap: 35px;}
#Recruit .r-card:first-child { border:1px solid rgba(255,255,255,.5); }
#Recruit .r-card:nth-child(2) { border-top:1px solid rgba(255,255,255,.5); border-right:1px solid rgba(255,255,255,.5); border-bottom:1px solid rgba(255,255,255,.5); }
#Recruit .r-card:nth-child(3) { border-right:1px solid rgba(255,255,255,.5); border-bottom:1px solid rgba(255,255,255,.5); border-left:1px solid rgba(255,255,255,.5); }
#Recruit .r-card:nth-child(4) { border-right:1px solid rgba(255,255,255,.5); border-bottom:1px solid rgba(255,255,255,.5); }

#Recruit .r-card__icon img{min(100% , 168px);display:block;filter:brightness(0) invert(1);}
#Recruit .r-card__title{color:#fff;font-weight:700;letter-spacing:.08em;font-size:clamp(20px,2vw,25px);margin-bottom:10px;}
#Recruit .r-card__list{margin:0;padding:0;list-style:none;display:grid;gap:6px;}
#Recruit .r-card__list li{color:#fff;font-size:clamp(14px,1.8vw,16px);line-height:1.4;padding-left:1.6em;position:relative;opacity:.95;}
#Recruit .r-card__list li::before{content:"";position:absolute;left:0;top:.15em;width:18px;height:18px;background:url("../img/recruit/check.svg") no-repeat center/contain;}
#Recruit .r-steps{background:#fff;padding:60px;margin-top:clamp(30px, 6vw, 100px);}
#Recruit .r-steps__title{display:grid;grid-template-columns:14px 1fr;grid-auto-rows:auto;column-gap:10px;row-gap:6px;align-items:center;margin-bottom:16px;}
#Recruit .r-steps__title .dot{grid-column:1/2;width:14px;height:14px;border-radius:50%;background:var(--slide-grad);}
#Recruit .r-steps__title .ja{grid-column:2/3;font-weight:700;font-size:clamp(20px,2vw,22px);letter-spacing: .25em;}
#Recruit .r-steps__title .en{grid-column:2/3;font-family:var(--font-en);color:var(--blue-color);font-size:clamp(12px, 2vw, 15px);letter-spacing:.12em;}

#Recruit .r-sec-title--dot{display:grid;grid-template-columns:16px 1fr;column-gap:10px;row-gap:6px;align-items:center;margin-bottom:clamp(30px,2vw,50px);}
#Recruit .r-sec-title--dot .dot{grid-column:1/2;width:14px;height:14px;border-radius:50%;background:var(--slide-grad);}
#Recruit .r-sec-title--dot .r-sec-title__ja{font-weight:700;font-size:clamp(20px,2.2vw,28px);letter-spacing: .25em;}
#Recruit .r-sec-title--dot .r-sec-title__en{grid-column:2/3;font-family:var(--font-en);color:var(--blue-color);font-size:clamp(12px, 2vw, 15px);letter-spacing:.1em;}

#Recruit .r-ini-label--dot{display:grid;grid-template-columns:16px 1fr;column-gap:10px;row-gap:4px;align-items:center;}
#Recruit .r-ini-label--dot .dot{grid-column:1/2;width:14px;height:14px;border-radius:50%;background:var(--slide-grad);}
#Recruit .r-ini-label--dot .r-ini-label__ja{grid-column:2/3;font-weight:700;font-size:clamp(20px,2vw,25px);letter-spacing: .25em;}
#Recruit .r-ini-label--dot .r-ini-label__en{grid-column:2/3;font-family:var(--font-en);color:var(--blue-color);font-size:clamp(12px, 2vw, 15px);letter-spacing:.12em;margin-top: 15px;}


#Recruit .r-require{position:relative}
#Recruit .r-require_inner { padding:120px 0; box-sizing: border-box; }
#Recruit .r-require::before{content: ''; position:absolute;border:1px solid rgba(66,96,217,.35);border-radius:0 50px 50px 0;/*padding:clamp(24px,4vw,40px) clamp(20px,5vw,48px);*/width: calc(100% - 5%);height: 100%;box-sizing: border-box; z-index: -1;}
#Recruit .r-require .r-sec-title--dot { display: block; }
#Recruit .r-benefits{display:flex;flex-direction:column;gap:clamp(12px,2vw,20px);margin:0 0 clamp(40px,4vw,90px);padding:0;list-style:none;}
#Recruit .r-benefits li{display:flex;flex-direction:column;align-items:flex-start;gap:4px;position:relative;padding-left:24px;}
#Recruit .r-benefits li::before{content:"";position:absolute;left:0;top:0.6em;width:18px;height:18px;background:url("../img/recruit/check_b.svg") no-repeat center/contain;}
#Recruit .r-benefits__ttl{font-weight:700;font-size:clamp(16px,2.2vw,20px);line-height:1.7;letter-spacing:.12em;}
#Recruit .r-benefits__txt{color:#4b4b4b;line-height:1.9; letter-spacing: .03em;}
#Recruit .r-jobs{display:flex;flex-direction:column;gap:clamp(50px,5vw,90px);margin-top:clamp(10px,2vw,20px);}
#Recruit .r-job__title{font-weight:700;font-size:clamp(16px,2vw,20px);letter-spacing:.12em;margin:0 0 28px;}
#Recruit .r-spec__row{display:grid;grid-template-columns:140px 1fr;}
#Recruit .r-spec__row dd{border-bottom:1px solid #B2B2B2;}
#Recruit .r-spec__row:first-child dt { border-top:1px solid var(--blue-color); }
#Recruit .r-spec__row dt{color:var(--blue-color);font-weight:700;padding:15px 0;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--blue-color);font-size:clamp(14px,1.8vw,16px);}
#Recruit .r-spec__row:first-child dd { border-top: 1px solid #B2B2B2; }
#Recruit .r-spec__row:last-child dd { border-bottom: 1px solid #B2B2B2; }
#Recruit .r-spec__row dd{line-height:1.9;padding:15px 20px;font-size:clamp(14px,1.8vw,16px);}
#Recruit .r-require .c-cta{position:relative;margin: 0 auto;display:flex;align-items:center;justify-content:center;gap:10px;width: 425px;height: 80px;border:1px solid var(--blue-color);color:var(--blue-color);font-weight:600;text-decoration:none;overflow:hidden;transition:color .45s; font-size: clamp(16px,1.8vw,21px);}
#Recruit .r-require .c-cta::before{content:"";position:absolute;inset:0;background:var(--blue-color);transform:translateX(-100%);transition:transform .45s cubic-bezier(.22,.61,.36,1);z-index:0;}
#Recruit .r-require .c-cta>*{position:relative;z-index:1;transition:color .45s; margin-left: initial;}
#Recruit .r-job:last-child { margin-bottom: clamp(40px, 6vw, 70px); }


/*-----------------------------------------------------
#About
----------------------------------------------------- */
body#About::after { content: ''; display: block; position: absolute; background: url("../img/about/pages_wave.svg")no-repeat; background-position: top left; background-size: cover; aspect-ratio: 785 / 1716; width: 70%; top: -50px; z-index: -1; left: -20%; }
#About main { overflow: hidden; }
#About .head h1 img{width:clamp(165px,40vw,330px);}
#About .contents { margin: 0 auto clamp(60px,10vw,120px); }
/*#About .a-message{margin:0 auto clamp(40px,8vw,100px);}*/
#About .a-message__grid{display:grid;/*grid-template-columns:minmax(0,1fr) min(42vw,400px);*/grid-template-columns:1fr;align-items:center;gap:clamp(24px,4vw,60px);}
#About .a-message__body{line-height:2;display:grid;gap:1em;}
#About .a-message__sign{text-align:right;margin-top:.5em;font-size: clamp(14px, 3vw, 16px);}
#About .a-message__photo img{width: clamp(210px,75vw,400px); border-radius:50px;}

#About .r-ini-divider{width:1px;background:#B2B2B2;min-height:110px;align-self:stretch;}
#About .r-sec-title--dot{display:grid;grid-template-columns:16px 1fr;column-gap:10px;row-gap:6px;align-items:center;margin-bottom:clamp(30px,2vw,50px);}
#About .r-sec-title--dot .dot{grid-column:1/2;width:14px;height:14px;border-radius:50%;background:var(--slide-grad);}
#About .r-sec-title--dot .r-sec-title__ja{font-weight:700;font-size:clamp(20px,2.2vw,28px);letter-spacing: .25em;}
#About .r-sec-title--dot .r-sec-title__en{grid-column:2/3;font-family:var(--font-en);color:var(--blue-color);font-size:clamp(12px, 1.8vw, 15px);letter-spacing:.1em;}
/*#About .a-company{margin:0 auto clamp(60px,8vw,120px);}*/
#About .a-company__grid{display:grid;grid-template-columns:260px 1px minmax(0,1fr);gap:60px;align-items:start;}
#About .a-company__head{position:relative;padding-right:20px;}
#About .a-sec-title--dot{display:grid;grid-template-columns:16px 1fr;column-gap:10px;row-gap:6px;align-items:baseline;margin-bottom: clamp(30px, 6vw, 50px);}
#About .a-sec-title--dot .dot{grid-row:1/3;width:14px;height:14px;border-radius:50%;background:var(--slide-grad);}
#About .a-sec-title--dot .a-sec-title__ja{font-weight:700;font-size:clamp(20px,2.6vw,30px);letter-spacing:.08em;}
#About .a-sec-title--dot .a-sec-title__en{font-family:var(--font-en);color:var(--blue-color);font-size:clamp(12px, 1.8vw, 15px);letter-spacing:.12em;}
#About .a-company__body{ position: relative; min-width:0;}
#About .r-spec__row{display:grid;grid-template-columns:140px 1fr;}
#About .r-spec__row dd{border-bottom:1px solid #B2B2B2;}
#About .r-spec__row:first-child dt{border-top:1px solid var(--blue-color);}
#About .r-spec__row dt{color:var(--blue-color);font-weight:700;padding:15px 0;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--blue-color);font-size:clamp(14px,1.8vw,16px);}
#About .r-spec__row:first-child dd{border-top:1px solid #B2B2B2;}
#About .r-spec__row:last-child dd{border-bottom:1px solid #B2B2B2;}
#About .r-spec__row dd{line-height:1.9;padding:15px 20px;font-size:clamp(14px,1.8vw,16px);}

#About .r-history__grid{display:grid;grid-template-columns:260px 1px minmax(0,1fr);gap:60px;align-items:start;}
#About .r-history__grid .r-history__wrap { padding-left: 50px; }
#About .r-history { position: relative; }
#About .r-history__list { list-style: none; margin: 0; padding: 0; border-left: 15px solid #E0E0E0; position: relative; }
#About .r-history__list li { position: relative; padding: 0 0 clamp(30px, 5vw, 70px) clamp(20px, 3vw, 40px); }
#About .r-history__list li:last-child { padding-bottom: 0; }
#About .r-history__list li::before { content: ""; position: absolute; left: -20px; top: -5px; width: 24px; height: 24px; border-radius: 50%; border: 4px solid var(--blue-color); background: #fff; box-sizing: border-box; }
#About .r-history__year { font-family: var(--font-en); color: var(--blue-color); font-weight: 700; letter-spacing: 0.1em; margin-bottom: 8px; font-size: clamp(16px, 2vw, 18px); }
#About .r-history__title { font-weight: 700; font-size: clamp(16px, 2vw, 20px); margin-bottom: 6px; letter-spacing: .2em; }
#About .r-history__text { font-size: clamp(14px, 1.8vw, 16px); color: #333; line-height: 1.8; }


/*-----------------------------------------------------
#Contact
----------------------------------------------------- */
body#Contact::after { content: ''; display: block; position: absolute; background: url("../img/contact/pages_wave.svg")no-repeat; background-position: top left; background-size: cover; aspect-ratio: 753 / 1386; width: 40%; z-index: -1; right: 0; bottom: 10%; }
#Contact .head h1 img , #Thanks .head h1 img{width:clamp(242px,40vw,380px);}
#Contact .c-contact-call { text-align: center; }
#Contact .c-contact-call .c-contact-call_head img{ width: 56px; height: 59px; display: block; margin: 0 auto; margin-bottom: clamp(15px, 3vw, 25px); }
#Contact .c-contact-call svg { display: block; fill: currentColor; margin: 0 auto; }
#Contact .c-contact-call__title { font-weight: 700; font-size: clamp(20px, 2.2vw, 28px); letter-spacing: .08em; margin-bottom: 12px; }
#Contact .c-contact-call__lead { margin-bottom: clamp(25px, 3vw, 28px); }
#Contact .c-contact-call .c-cta{position:relative;margin: 0 auto;display:flex;align-items:center;justify-content:center;gap:10px;max-width: 425px;width: 100%;height: 80px;border:1px solid var(--blue-color);color:var(--blue-color);font-weight:600;text-decoration:none;overflow:hidden;transition:color .45s; font-size: clamp(20px, 3vw, 26px);box-sizing: border-box;}
#Contact .c-contact-call .c-cta::before{content:"";position:absolute;inset:0;background:var(--blue-color);transform:translateX(-100%);transition:transform .45s cubic-bezier(.22,.61,.36,1);z-index:0;}
#Contact .c-contact-call .c-cta>*{position:relative;z-index:1;transition:color .45s; margin-left: initial;}

#Contact .c-contact-form { margin-top: clamp(60px, 8vw, 120px); text-align: center; margin-bottom: clamp(80px, 10vw, 150px) }
#Contact .c-contact-form__icon { margin: 0 auto ; margin-bottom: clamp(15px, 3vw, 25px); width: 62px; }
#Contact .c-contact-form__title { font-weight: 700; font-size: clamp(20px, 2.2vw, 28px); letter-spacing: .08em; margin-bottom:clamp(25px, 3vw, 45px); }

/* タブ */
#Contact .c-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 2vw, 30px); justify-content: center;margin: 0 auto clamp(35px, 12vw, 80px); }
#Contact .c-tab { display: flex; align-items: center; justify-content: center; gap: 10px; height: 80px; max-width: 425px; width: 100%; border: 1px solid var(--blue-color); color: var(--blue-color); background: #fff; font-weight: 700; letter-spacing: .02em; transition: .35s; font-size: clamp(16px, 2.2vw, 21px); line-height: 1.3; }
#Contact .c-tab .c-tab__arrow svg { fill: #fff; }
#Contact .c-tab.is-active,
#Contact .c-tab:hover,
#Contact .c-tab:focus-visible { color: #fff; background: var(--blue-color); }
#Contact .c-tab:not(.is-active) .c-tab__arrow svg { fill: var(--blue-color); }

/* タブパネル */
#Contact .c-tabpanel { text-align: left; }
#Contact .c-tabpanel.is-active { display: block; }

/* ==== /contact フォーム：境界バーをグリッド2行目に配置 ==== */
#Contact .c-form__row { display: grid; grid-template-columns: 160px 60px 1fr; align-items: center; gap: 20px; padding: 18px 0; border-top: 1px solid #D8D8DE; }
#Contact .c-form__label { grid-column: 1; font-weight: 700; font-size: clamp(14px, 1.8vw, 16px); }
#Contact .c-form__req { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; justify-content: center; min-width: 35px; height: 20px; padding: 0 8px; background:var(--slide-grad); color: #fff; font-size: 12px; font-weight: 700; line-height: 1; }
#Contact .c-form__input__radio {  }
#Contact .c-form__input, #Contact .c-form__textarea { grid-column: 3; width: 100%; background: #F5F5F5; border:none; padding: 14px 16px; font-size: clamp(14px, 1.8vw, 16px); box-sizing: border-box; }
#Contact .c-form__textarea { min-height: 200px; resize: vertical; line-height: 1.5;color: #333333; }

/* ==== Contact: フォーム周辺（同意・注意・送信ボタン・チェックボックス） ==== */
#Contact .c-form__agree{max-width:900px;margin:22px auto 10px;text-align: center;line-height: 1.5;font-size: clamp(14px, 3vw, 16px);}
#Contact .c-form__note{max-width:900px;margin:0 auto 24px;font-size:clamp(12px, 3vw, 14px);line-height:1.9;letter-spacing:.02em;}
#Contact .c-form__submit {max-width:900px;margin:0 auto;text-align: center;justify-content: center; }
#Contact .c-form__submit .c-cta{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; min-width:min(100%,360px); height:80px; padding:0 28px; box-sizing:border-box; border:1px solid var(--blue-color);background:#fff; font-weight:700; letter-spacing:.02em; text-decoration:none; transition:.35s; font-size: clamp(16px, 3vw, 21px); cursor: pointer;}
#Contact .c-form__submit .c-cta[disabled] { opacity: .5; cursor: not-allowed; }
#Contact .c-cta__arrow { margin-left: initial; }
#Contact .c-cta__arrow svg { width: 19px; height: 16px; }

#Contact .c-form__agree a { color: var(--blue-color); text-decoration: underline; }
#Contact .c-form__radios { grid-column: 3; display: grid; gap: 8px; }
#Contact .c-radio { display: flex; align-items: center;gap: 10px; font-size: clamp(14px, 1.8vw, 16px); }
#Contact .c-radio input[type="radio"] { inline-size: 14px; block-size: 14px; margin-top: 2px; }
#Contact .c-file { grid-column: 3; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px 16px; }
#Contact .c-file__input { position: absolute; inline-size: 1px; block-size: 1px; margin: -1px; padding: 0; border: 0; clip: rect(0 0 0 0); overflow: hidden; }
#Contact .c-file__button { display: inline-flex; align-items: center; justify-content: center; padding: 6px 10px; border: 1px solid #c1c1c1; border-radius: 5px; background: #eee; cursor: pointer; font-size: clamp(14px, 1.8vw, 16px); }
#Contact .c-form__help { grid-column: 1 / -1; color: #666; font-size: 12px; line-height: 1.8; }

/*php工房確認画面*/
#Contact.confirmation tr:has:input[name="プライバシーポリシー"] { display: none!important; }
#Contact.confirmation td { width: calc(100% - 30em); }
#Contact.confirmation h2.ttl { max-width: inherit; text-align: center; font-size:clamp(1.375rem, 1.158rem + 0.92vw, 1.75rem); font-weight: 500; margin-bottom: 30px; }
#Contact.confirmation p.error_ttl { position: relative; max-width: inherit; text-align: center; font-size:clamp(1.063rem, 0.99rem + 0.31vw, 1.188rem); line-height: 1.5; font-weight: 500; margin-bottom: 30px; }
#Contact.confirmation table.formTable { width: 100%; margin: clamp(30px, 3vw, 60px) auto; border-collapse: collapse; font-size: clamp(14px, 1.8vw, 16px); line-height: 3.5rem;}
#Contact.confirmation table.formTable th { width: 30%; padding: 10px 0; border-top: 1px solid #D8D8DE; font-weight: 700; }
#Contact.confirmation table.formTable td { padding: 3% 0; border-top: 1px solid #D8D8DE; line-height: 1.5; background: #fff; padding-left: 20px; padding-right: 20px; text-align: left; }
#Contact.confirmation table.formTable th:last-of-type, table.formTable td:last-of-type { border-bottom: 1px solid #D8D8DE; background: #f5f5f5; padding-left: 20px; padding-right: 20px; box-sizing: border-box; }
#Contact.confirmation table.formTable tr { font-size: clamp(14px, 1.8vw, 16px); }
#Contact.confirmation .btn_flex { display: flex; justify-content: space-around; }
#Contact.confirmation input[type="button"] { position: relative;display: inline-flex;align-items: center;justify-content: center;gap: 10px; min-width: min(100%, 360px); width: 100%; height: 80px; padding: 0 28px; box-sizing: border-box; border: 1px solid #666666; background: #666666; color: #fff; font-weight: 700; letter-spacing: .02em; text-decoration: none; transition: .35s; font-size: clamp(16px, 3vw, 21px); }
#Contact.confirmation input[type="submit"] { position: relative;display: inline-flex;align-items: center;justify-content: center;gap: 10px; min-width: min(100%, 360px); width: 100%; height: 80px; padding: 0 28px; box-sizing: border-box; border: 1px solid var(--blue-color); background: #fff; color: var(--blue-color); font-weight: 700; letter-spacing: .02em; text-decoration: none; transition: .35s; font-size: clamp(16px, 3vw, 21px); }
#Contact.confirmation input[type="button"]:hover { background: #898585; }
#Contact.confirmation input[type="submit"]:hover { background: var(--blue-color); color: #fff; }
#Contact.confirmation .check_area { display: flex; justify-content: center; margin-bottom: clamp(80px, 14vw, 160px); gap: 20px; }
#Contact.confirmation .error_wrap { margin-bottom: 30px; }
#Contact.confirmation .error_messe { color: #da2727; background: #f5f5bb; display: inline-block; font-size: clamp(14px, 3vw, 16px); font-weight: 700;}

#Thanks .tks { text-align: center; margin: clamp(60px, 8vw, 140px) auto clamp(80px, 12vw, 160px); }
#Thanks .tks__icon { width: 62px; margin: 0 auto clamp(28px, 4vw, 40px); }
#Thanks .tks__icon img { width: 62px; height: auto; display: block; margin: 0 auto; }
#Thanks .tks__title { font-weight: 700; font-size: clamp(22px, 3vw, 32px); letter-spacing: .12em; margin-bottom: clamp(24px, 4vw, 36px); }
#Thanks .tks__lead { color: #333; font-size: clamp(14px, 2.5vw, 16px); line-height: 2; letter-spacing: .02em; display: grid; gap: clamp(12px, 2.5vw, 20px); max-width: 780px; margin: 0 auto clamp(50px, 8vw, 90px); text-align: justify; text-align-last: center; }
#Thanks .tks__cta { text-align: center; margin: clamp(30px, 6vw, 70px) auto 0; }
#Thanks .tks__cta .c-cta { margin: 0 auto; justify-content: center; width: min(100%, 420px); font-size: clamp(14px, 2.5vw, 21px); }
#Thanks .tks__cta--sub { margin-top: 16px; }
#Thanks .c-cta__arrow { margin-left: initial; }

/*-----------------------------------------------------
#Policy
----------------------------------------------------- */
body#Policy::after { content: ''; display: block; position: absolute; background: url("../img/policy/pages_wave.svg")no-repeat; background-position: top right; background-size:contain; aspect-ratio: 590 / 847; width: 60%; top: -220px; right: 0; z-index: -1;}

#Policy .head h1 img { width: clamp(210px, 50vw, 640px);}
#Policy .contents{max-width:800px;margin:0 auto clamp(80px, 10vw, 200px);color:#222;font-size:16px;line-height:1.9;}
#Policy .contents article+article{margin-top:2.2em;}
#Policy .contents{counter-reset:h2;}
#Policy .contents h2{counter-increment:h2;position:relative;margin-bottom: 15px;padding-left:2.2em;letter-spacing: .2em;font-weight:700;font-size:clamp(18px,2.2vw,22px);line-height:1.4;}
#Policy .contents h2::before{content:counter(h2) "．";position:absolute;left:0;top:0;font-weight:700;letter-spacing:.02em;font-feature-settings:"fwid" 1;}
#Policy .contents ul.list{list-style:none;margin:.5em 0 0;padding:0;}
#Policy .contents ul.list li{position:relative;padding-left:1.2em;font-size: clamp(14px, 3vw, 16px); line-height: 1.6; }
#Policy .contents ul.list li::before{content:"・";position:absolute;left:0;top:0;font-weight:700;color:currentColor;}
#Policy .contents a{color:var(--blue-color);text-underline-offset:.2em;}
#Policy .contents img{max-width:100%;height:auto;display:block;}

#Policy .end_txt { text-align: right; }

@media (prefers-reduced-motion: reduce) {
}

@media (hover: hover) and (pointer: fine) {
#Recruit .r-require .c-cta:hover::before,#Recruit .r-require .c-cta:focus-visible::before { transform: translateX(0); z-index: -1;}
#Recruit .r-require .c-cta:hover,#Recruit .r-require .c-cta:focus-visible { color: #fff; }
#Contact .c-tab:not(.is-active):hover .c-tab__arrow svg { fill: #fff; }
#Contact .c-contact-call .c-cta:hover,#Contact .c-contact-call .c-cta:focus-visible,#Contact .c-form__submit .c-cta:not([disabled]):hover,#Contact .c-form__submit .c-cta:not([disabled]):focus-visible { background: var(--blue-color); color: #fff; }
#Contact .c-form__submit .c-cta[disabled]:hover,#Contact .c-form__submit .c-cta[disabled]:focus-visible { background: none; color: var(--blue-color); }
#Thanks .tks__cta .c-cta:hover, #Thanks .tks__cta .c-cta:focus-visible { background: var(--blue-color); color: #fff !important; }
#Thanks .tks__cta .c-cta:hover *, #Thanks .tks__cta .c-cta:focus-visible * { color: #fff !important; fill: currentColor !important; }
}

@media only screen and (max-width: 1024px){
  #Recruit .r-two-col{grid-template-columns:1fr;}
  #Recruit .r-ini-row{grid-template-columns:200px 1px minmax(0,1fr);}
  #Recruit .r-support__illust{position:static;width:min(60%,520px);margin:10px 0 0 auto;}
  #Recruit .r-support__cards{grid-template-columns:1fr;}
}

@media only screen and (max-width: 980px){
  #Recruit .r-benefits li{grid-template-columns:22px 1fr;row-gap:6px;}
  #Recruit .r-benefits__ttl{grid-column:2/3;}
  #Recruit .r-benefits__txt{grid-column:2/3;}
  #Recruit .r-spec__row{grid-template-columns:110px 1fr;}
  #Recruit .r-support__head { max-width: 100%; } 
  #Recruit .r-card:nth-child(2) { border-top:none; border-left: 1px solid rgba(255, 255, 255, .5); }
  #Recruit .r-card:nth-child(4) { border-left: 1px solid rgba(255, 255, 255, .5);}
  #About .a-company__grid{grid-template-columns:1fr; gap:0;}
  #About .a-company__head{padding-right:0;}#About .a-company__head::after{display:none;}
  #About .a-spec__row{grid-template-columns:1fr;align-items:start;}
  #About .a-spec__row dt{text-align:left;border-right:none;padding:12px 0 4px;color:#1d1d1f;}
  #About .a-spec__row dd{padding:0 0 16px;}
  #About .r-history__grid { flex-direction: column; display: flex ; gap:0; }
  #About .r-history__grid .r-history__wrap { padding-left: 0; }
  #About .r-ini-divider { display: none; }
  
	#Contact.confirmation table.formTable th , #Contact.confirmation table.formTable td { width: 100%; }
	#Contact.confirmation input[type="button"] , #Contact.confirmation input[type="submit"] { font-size: 14px!important; }
	#Contact.thanks p { text-align: left; }
	#Contact.confirmation table.formTable th:last-of-type, table.formTable td:last-of-type { display: block; border-bottom: none; line-height: 1.5; }
	#Contact .policy_box { padding: 7%; }
}

/*　600pxからレスポンシブ*/
@media only screen and (max-width: 600px){
  .head { margin-top: calc(var(--fixed-header-height) + 60px); }
  body#Policy::after { content: ''; background: url("../img/policy/pages_wave_sp.svg")no-repeat; background-position: top right; background-size:contain; aspect-ratio: 230 / 390; width: 100%; top: -180px; }
  body#Recruit::after { content: ''; background: url("../img/recruit/pages_wave_sp.svg")no-repeat; background-position: top left; background-size: cover; aspect-ratio: 533 / 2190; width: 100%; top: 260px; }
  body#About::after { content: ''; background: url("../img/about/pages_wave_sp.svg")no-repeat; background-position: top left; background-size: cover; aspect-ratio: 396 / 992; width: 100%; top: 0; }
  body#Contact::after { content: ''; background: url("../img/contact/pages_wave_sp.svg")no-repeat; background-position: top left; background-size: cover; aspect-ratio: 346 / 690; width: 80%; bottom: 10%; }


  #Policy .contents h2{padding-left:1.5em;}
  #Recruit .head{margin-top:calc(var(--fixed-header-height) + 60px);}
  #Recruit .contents{margin:0 auto clamp(40px,10vw,80px);}
  #Recruit .r-photo{border-radius:18px; margin-right: calc(50% - 50vw); }
  #Recruit .r-figure{max-width:100%;}
  #Recruit .r-two-col--rev .r-col--img{order:2;}
  #Recruit .r-two-col--rev .r-col--txt{order:1;}
  #Recruit .r-ini-row{grid-template-columns:1fr;gap:18px;}
  #Recruit .r-ini-divider{display:none;}
  #Recruit .r-ini-label{flex-direction:row;align-items: baseline; display: flex; gap:10px; border-bottom: 1px solid #B2B2B2; padding-bottom: 15px; }
  #Recruit .r-ini-label__en{font-size:11px;}
  Recruit .r-ini-goal{grid-template-columns:1fr auto;}
  #Recruit .r-ini-goal__note{font-size:clamp(13px,3vw,12px);padding: 0;}
  
  #Recruit .r-support{padding:60px 5% 70px 5%;border-radius:30px;}
  #Recruit .r-support__cards{ margin-bottom: 40px;}
  #Recruit .r-card {grid-template-columns: 80px 1fr; padding: 14px 16px;gap: 15px;}
  #Recruit .r-steps{padding: 10% 5%; margin: 0 calc(50% - 50vw); width: 100vw; box-sizing: border-box;}
  
  #Recruit .r-require{border-radius:20px;}
  #Recruit .r-require .c-cta { width: 100%; height: 60px; }
  
  #Recruit .r-two-col { margin-right: initial; }
  #Recruit .r-support__illust { width: min(80%, 520px); margin: 20px auto 0; }
  #Recruit .r-ini-label--dot .r-ini-label__en { margin-top: 0; }
  #Recruit .r-require_inner { padding: 50px 30px 50px 0; }
  #Recruit .r-benefits li::before { top: 0.45em; width: 15px; height: 15px; }
  #Recruit .r-spec__row { grid-template-columns: 80px 1fr; }
  #Recruit .r-photo--mid img , #Recruit .r-photo--small img { border-radius: 30px; }
  #Recruit .r-sec-title--dot { row-gap: 0; }
  #Recruit .r-card__list li::before { top: .18em; width: 15px; height: 15px; }
  #About .a-message__grid{grid-template-columns:1fr;}
  #About .r-spec__row { grid-template-columns: 80px 1fr; }
  #About .r-sec-title--dot { display: flex; }
  #About .r-sec-title--dot .r-sec-title__en { padding-top: 7px; }
  
  #About .r-history__list li::before { width: 21px; height: 21px; top: -3px; left: -15px; }
  #About .r-history__list { border-left: 10px solid #E0E0E0; }
  #About .a-message__photo img { display: block; margin: 0 auto;}
  
  #Contact .c-form__agree{text-align: left;} 
  #Contact .c-contact-call .c-cta , #Contact .c-tab { height: 60px; }
  #Contact .c-tabs { grid-template-columns: 1fr; }
  #Contact .c-form__row { display: grid; grid-template-columns: auto 60px; grid-template-rows: auto auto; gap: 8px 10px; padding: 16px 0; }
  #Contact .c-form__label { grid-column: 1; grid-row: 1; align-self: center; }
  #Contact .c-form__req { grid-column: 2; grid-row: 1; justify-self: end; align-self: center; }
  #Contact .c-form__input, #Contact .c-form__textarea { grid-column: 1 / span 2; grid-row: 2; width: 100%; }
  #Contact .c-form__submit .c-cta{min-width:100%;height:58px;}
  #Contact .c-form__radios { grid-column: 1 / span 2; }
  #Contact .c-file { grid-column: 1 / span 2; grid-template-columns: auto 1fr; }
  #Contact.confirmation .check_area { flex-direction: column; gap: 10px; }
  #Contact.confirmation input[type="button"] , #Contact.confirmation input[type="submit"] { height: 60px; }
  #Contact .c-contact-call .c-contact-call_head img { width: 46px; height: 39px; }
  #Contact .c-contact-form__icon { width: 42px; }
}
