/* ============================================================
   sub.css｜下層ページ共通（ヒーロー・セクション・パーツ）
   ※ここを変更すると全ての下層ページに反映されます（WP: assets/css/sub.css）
   ============================================================ */

/* ===== 下層ヒーロー ===== */
.page-hero{position:relative;height:clamp(520px,72vh,760px);padding:0;border:none;overflow:hidden;color:#fff;}
.page-hero .ph-img{position:absolute;inset:0;}
.page-hero .ph-img img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block;}
.page-hero .ph-img::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.85) 0,rgba(255,255,255,0) 22%),linear-gradient(90deg,rgba(10,40,90,.55) 0,rgba(10,40,90,.15) 60%,rgba(10,40,90,0) 100%);}
.page-hero .ph-in{position:absolute;z-index:2;left:clamp(24px,9vw,170px);bottom:clamp(150px,16vw,230px);}
.page-hero .ph-ja{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:clamp(15px,1.4vw,20px);font-weight:700;letter-spacing:.12em;}
.page-hero .ph-ja::before{content:"";width:10px;height:10px;border-radius:50%;background:#FFE14D;}
.page-hero .ph-en{margin:0;font-family:"Poppins",sans-serif;font-weight:700;font-size:clamp(56px,9.6vw,150px);line-height:.95;letter-spacing:-.01em;}
.page-hero .ph-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:3;height:clamp(70px,9vw,130px);overflow:hidden;pointer-events:none;}
.page-hero .ph-wave svg{position:absolute;left:0;bottom:0;width:200%;height:100%;display:block;animation:phWave 16s linear infinite;}
.page-hero .ph-wave svg.w2{animation-duration:24s;animation-direction:reverse;}
@keyframes phWave{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.page-hero .ph-wave svg{animation:none;}}

/* ===== セクション共通 ===== */
.ab-sec{position:relative;border-top:none;padding:clamp(120px,14vw,220px) 0 clamp(90px,10vw,150px);}
.ab-sec.first{padding-top:clamp(56px,6vw,90px);}
.ab-sec > .wrap{position:relative;z-index:1;}
.ab-sec .sh{flex-wrap:nowrap;}
.ab-sec .sh::before{flex:none;height:5px;width:100%;}
.bg-white{background:#fff;}
.bg-gray{background:#f2f2f2;}
.bg-grad{background:linear-gradient(90deg,#fff 55%,#dcebff 100%);}
.bg-blue{background:linear-gradient(180deg,#5CC8F5 0%,#1BB9F3 34%,#0E8FE6 68%,#1461D2 100%);color:#fff;}
.bg-blue .sh-en,.bg-blue .sh-ja{background:none;color:#fff;}
.bg-blue .sh::before{background:linear-gradient(90deg,#fff 0 50%,#9fe9ff 50% 100%) left top/96px 100% no-repeat;}
.bg-blue .ab-lead,.bg-blue .ab-text p,.bg-blue .h3-lg,.bg-blue .catch-sm,.bg-blue .big-quote{color:#fff;}
[id]{scroll-margin-top:110px;}

/* ===== テキスト ===== */
.ab-lead{margin:0 0 28px;font-size:clamp(24px,2.6vw,38px);font-weight:700;line-height:1.6;letter-spacing:.06em;color:#1a2433;}
.ab-text p{margin:0 0 14px;font-size:16px;line-height:2.1;letter-spacing:.04em;color:#1a2433;}
.ab-text strong{color:#1461D2;}
.bg-blue .ab-text strong{color:#FFE14D;}
.sub-catch{margin:0 0 36px;font-size:clamp(30px,3.8vw,56px);font-weight:700;line-height:1.5;letter-spacing:.06em;color:#1461D2;}
.h3-lg{margin:0 0 20px;font-size:clamp(22px,2.3vw,34px);font-weight:700;line-height:1.55;letter-spacing:.06em;color:#1a2433;}
.catch-sm{margin:0 0 16px;font-size:17px;font-weight:700;line-height:1.8;color:#1461D2;}
.tag-en{display:block;margin:0 0 12px;font-family:"Poppins",sans-serif;font-size:13px;font-weight:600;letter-spacing:.2em;color:#1BB9F3;}
.bg-blue .tag-en{color:#bff3ff;}
.center-block{max-width:820px;margin:0 auto;text-align:center;}
.big-quote{margin:0 0 40px;font-size:clamp(30px,4.2vw,62px);font-weight:700;line-height:1.5;letter-spacing:.06em;color:#1461D2;}
.sign{margin-top:36px;text-align:right;font-size:15px;line-height:1.8;color:#1a2433;}
.sign b{display:block;font-size:22px;letter-spacing:.12em;}
.bg-blue .sign{color:#fff;}
.hand-note{display:inline-block;margin-top:24px;font-family:"Yomogi",cursive;font-size:clamp(22px,2.2vw,30px);line-height:1.6;color:#1461D2;transform:rotate(-4deg);}

/* ===== 2カラム（写真＋テキスト） ===== */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,90px);align-items:center;}
.split.rev .split-media{order:2;}
.split + .split{margin-top:clamp(80px,9vw,140px);}
.split-media{aspect-ratio:4/3;border-radius:36px;overflow:hidden;}
.split-media.tall{aspect-ratio:4/5;}
.split-media img{width:100%;height:100%;object-fit:cover;display:block;}
.split-media .ph{height:100%;border:none;}

/* ===== タグ ===== */
.chips-label{margin:26px 0 0;font-size:13px;font-weight:700;letter-spacing:.08em;color:#7a8794;}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.chips span{padding:8px 16px;border-radius:999px;background:#eaf6fd;color:#1461D2;font-size:13px;font-weight:700;}
.bg-blue .chips span{background:rgba(255,255,255,.18);color:#fff;}

/* ===== ページ内リンク ===== */
.anchor-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px;}
.anchor-nav a{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px;border-radius:999px;border:1.5px solid #cfd8e3;background:#fff;color:#1a2433;font-size:14px;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s;}
.anchor-nav a::after{content:"↓";color:#1BB9F3;}
.anchor-nav a:hover{border-color:#1461D2;color:#1461D2;}

/* ===== カード ===== */
.card-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:24px;margin-top:48px;}
.card{display:flex;flex-direction:column;border-radius:28px;background:#fff;padding:34px 30px;color:#1a2433;text-decoration:none;overflow:hidden;}
.bg-white .card,.bg-grad .card{background:#f2f7fc;}
.card .no{font-family:"Poppins",sans-serif;font-size:40px;font-weight:600;line-height:1;color:#1BB9F3;}
.card h3{margin:14px 0 12px;font-size:20px;font-weight:700;line-height:1.5;letter-spacing:.06em;color:#1461D2;}
.card p{margin:0;font-size:14px;line-height:1.9;}
.card .photo{margin:-34px -30px 24px;aspect-ratio:4/3;overflow:hidden;}
.card .photo img{width:100%;height:100%;object-fit:cover;display:block;}
.card .photo .ph{height:100%;border:none;border-radius:0 !important;}
.card .more{margin-top:auto;padding-top:20px;font-size:13px;font-weight:700;color:#1461D2;}
.icon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px;}
.icon-grid div{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 10px;border-radius:20px;background:#f2f7fc;text-align:center;font-size:14px;font-weight:700;color:#1a2433;}
.icon-grid i{font-size:26px;color:#1BB9F3;}

/* ===== ステップ ===== */
.steps{display:grid;grid-template-columns:repeat(var(--steps,4),minmax(0,1fr));gap:28px;margin-top:48px;}
.step{position:relative;border-radius:24px;background:#fff;padding:30px 24px;color:#1a2433;}
.bg-white .step,.bg-grad .step{background:#f2f7fc;}
.step:not(:last-child)::after{content:"→";position:absolute;right:-22px;top:50%;transform:translateY(-50%);font-size:18px;color:#1BB9F3;}
.bg-blue .step:not(:last-child)::after{color:#fff;}
.step .no{font-family:"Poppins",sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;color:#1BB9F3;}
.step .en{display:block;margin-top:6px;font-family:"Poppins",sans-serif;font-size:13px;font-weight:600;letter-spacing:.08em;color:#7a8794;}
.step h3{margin:10px 0 10px;font-size:19px;font-weight:700;letter-spacing:.06em;color:#1461D2;}
.step p{margin:0;font-size:14px;line-height:1.9;}
.welcome{margin-top:56px;text-align:center;}
.welcome b{display:block;font-family:"Poppins",sans-serif;font-size:clamp(40px,5vw,72px);font-weight:700;line-height:1;color:#1461D2;}
.welcome p{margin:14px 0 0;font-size:17px;font-weight:700;color:#1a2433;}

/* ===== 表 ===== */
.pf{margin:40px 0 0;border-top:1px solid #cfd8e3;}
.pf-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;padding:26px 8px;border-bottom:1px solid #cfd8e3;}
.pf-row dt{font-weight:700;color:#1461D2;letter-spacing:.08em;}
.pf-row dd{margin:0;line-height:1.9;color:#1a2433;}
.bg-blue .pf{border-color:rgba(255,255,255,.4);}
.bg-blue .pf-row{border-color:rgba(255,255,255,.4);}
.bg-blue .pf-row dt,.bg-blue .pf-row dd{color:#fff;}

/* ===== タブ ===== */
.tabs{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px;}
.tab{height:56px;padding:0 36px;border-radius:999px;border:2px solid #1461D2;background:#fff;color:#1461D2;font:inherit;font-weight:700;letter-spacing:.08em;cursor:pointer;}
.tab.is-active{background:#1461D2;color:#fff;}
.tab-panel{display:none;margin-top:40px;}
.tab-panel.is-active{display:block;animation:faqIn .35s ease;}

/* ===== 写真の並び ===== */
.photo-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px;}
.photo-row figure{margin:0;}
.photo-row .ph{aspect-ratio:1/1;height:auto;border:none;}
.photo-row figcaption{margin-top:12px;font-size:14px;line-height:1.7;color:#1a2433;}
.photo-row figcaption b{display:block;color:#1461D2;}

/* ===== ボタン ===== */
.btn-row-c{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:48px;}
.btn-row-c .btn-link{margin:0;}
.bg-gray .btn-link,.bg-blue .btn-link{background:#fff;}

/* ===== FAQ（下層） ===== */
.faq-a .link{display:inline-block;margin-top:8px;color:#1461D2;font-weight:700;}

/* ===== CTA（ENTRYパネルを流用） ===== */
.ab-cta .entry-en{font-size:clamp(40px,4.8vw,76px);line-height:1.05;}
.ab-cta .entry-btn{min-width:min(300px,100%);height:88px;}
.ab-cta .entry-btn .tag{order:-1;}
.ab-cta .entry-text .lines p{margin:0;font-weight:700;}

/* ===== responsive ===== */
@media (max-width:1100px){
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));}
  .step::after{display:none;}
}
@media (max-width:920px){
  .split{grid-template-columns:1fr;}
  .split.rev .split-media{order:0;}
  .pf-row{grid-template-columns:1fr;gap:6px;}
  .icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .page-hero .ph-en{font-size:48px;}
  .ab-text p br{display:none;}
  .card-grid,.steps,.photo-row{grid-template-columns:1fr;}
}

/* ===== 募集要項 ===== */
.jd-lead{text-align:center;line-height:2;margin:0 auto 44px;}
.jd-lead p{margin:0 0 12px;}
.jd-lead b{font-size:clamp(18px,2vw,22px);color:#1461D2;}
.jd-tabs .tabs{flex-wrap:wrap;}
.jd-ttl{font-size:clamp(18px,2vw,24px);font-weight:700;line-height:1.6;margin:10px 0 18px;}
.jd-feat{list-style:none;margin:0 0 32px;padding:22px 26px;background:#eaf6fd;border-radius:20px;display:flex;flex-direction:column;gap:8px;line-height:1.9;font-size:15px;}
.jd-feat li{position:relative;padding-left:1.2em;}
.jd-feat li::before{content:"";position:absolute;left:0;top:.8em;width:7px;height:7px;border-radius:50%;background:#1BB9F3;}
#jobs-detail .tab-panel{background:#fff;border-radius:36px;padding:clamp(28px,4vw,56px);}
#jobs-detail .tab-panel .btn-row-c{margin-top:40px;}

/* ===== 職種ごとの枠 ===== */
.split.job-box{background:#fff;border:none;border-radius:40px;padding:clamp(28px,4vw,56px);gap:clamp(32px,4.5vw,64px);scroll-margin-top:120px;}
.split.job-box + .split.job-box{margin-top:clamp(32px,4vw,48px);}
.split.job-box .split-media{border-radius:28px;}
@media (max-width:920px){.split.job-box{border-radius:28px;padding:24px;}}

/* ===== 求人エントリーフォーム ===== */
.ef-sec{background:#fff;}
.ef-lead{max-width:880px;margin:0 auto 40px;text-align:center;line-height:2;}
.ef-lead p{margin:0;}
.ef-tel{margin-top:14px !important;font-weight:700;}
.ef-tel a{color:#1461D2;text-decoration:none;}
.ef{max-width:880px;margin:0 auto;border-top:1px solid #d9e2ec;}
.ef-row{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:center;padding:22px 0;border-bottom:1px solid #d9e2ec;}
.ef-row.top{align-items:start;}
.ef-lbl{font-weight:700;font-size:15px;line-height:1.6;}
.ef input[type=text],.ef input[type=tel],.ef input[type=email],.ef input[type=number],.ef textarea{width:100%;box-sizing:border-box;padding:14px 16px;border:1px solid #cfd8e3;border-radius:10px;background:#f7f9fb;font:inherit;font-size:15px;color:#1a2433;}
.ef input:focus,.ef textarea:focus{outline:none;border-color:#1461D2;background:#fff;}
.ef-opts{display:flex;flex-wrap:wrap;gap:12px 28px;}
.ef-opts.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;}
.ef-opts label,.ef-agree{display:inline-flex;align-items:center;gap:8px;font-size:15px;cursor:pointer;}
.ef input[type=radio],.ef input[type=checkbox]{width:18px;height:18px;accent-color:#1461D2;margin:0;}
.ef-age{display:flex;align-items:center;gap:10px;}
.ef-age input{max-width:120px;}
.ef-file{font:inherit;font-size:14px;}
.ef-policy{display:inline-block;margin-left:18px;font-size:14px;color:#1461D2;}
.ef-submit{display:flex;justify-content:center;padding-top:48px;}
.ef-submit .btn-link{border:none;cursor:pointer;font:inherit;}
@media (max-width:720px){.ef-row{grid-template-columns:1fr;gap:10px;}.ef-opts.grid{grid-template-columns:1fr;}.ef-policy{display:block;margin:8px 0 0;}}

/* 働く環境：制度ごとの濃色ボックス */
.split[id^="env-"]{background:#1461D2;border-radius:40px;padding:clamp(28px,4vw,56px);gap:clamp(32px,4.5vw,64px);scroll-margin-top:120px;}
.split[id^="env-"] + .split[id^="env-"]{margin-top:clamp(32px,4vw,48px);}
.split[id^="env-"] .split-media{border-radius:28px;}
.split[id^="env-"] .tag-en{color:#FFE14D;}
.split[id^="env-"] .h3-lg,.split[id^="env-"] .ab-text p,.split[id^="env-"] .chips-label{color:#fff;}
.split[id^="env-"] .ab-text strong{color:#FFE14D;}
.split[id^="env-"] .chips span{background:#fff;color:#1461D2;border-color:#fff;}
@media (max-width:920px){.split[id^="env-"]{border-radius:28px;padding:24px;}}
.split[id^="env-"] .tag-en{font-family:"Noto Sans JP",sans-serif;font-size:clamp(24px,2.6vw,36px);font-weight:700;letter-spacing:.08em;line-height:1.4;margin:0 0 16px;}
.split[id^="env-"] .h3-lg{font-size:clamp(17px,1.6vw,21px);line-height:1.7;}
.icon-grid div{flex-direction:row;justify-content:center;gap:10px;padding:14px 12px;min-height:64px;border-radius:16px;white-space:nowrap;}
.icon-grid i{font-size:20px;flex:0 0 auto;}
.split[id^="env-"] .icon-grid div{background:rgba(255,255,255,.14);color:#fff;}
.split[id^="env-"] .icon-grid i{color:#FFE14D;}
@media (max-width:1100px){.icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
#jobs-detail .tab-panel .btn-link{background:linear-gradient(90deg,#5CC8F5 0%,#1BB9F3 34%,#0E8FE6 68%,#1461D2 100%);color:#fff;}
#jobs-detail .tab-panel .btn-link::after{background:#fff;color:#1461D2;}

/* 選考フロー：縦タイムライン */
.steps.steps-v{display:flex;flex-direction:column;gap:18px;max-width:960px;margin:56px auto 0;position:relative;}
.steps.steps-v::before{content:"";position:absolute;left:44px;top:40px;bottom:40px;width:2px;background:rgba(255,255,255,.7);}
.steps-v .step{display:grid;grid-template-columns:88px minmax(0,220px) minmax(0,1fr);align-items:center;gap:28px;padding:22px 32px 22px 22px;border-radius:999px;background:#fff;}
.steps-v .step::after{display:none;}
.steps-v .st-no{position:relative;z-index:1;width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#5CC8F5,#1461D2);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:"Poppins",sans-serif;font-size:30px;font-weight:600;line-height:1;}
.steps-v .st-no small{font-size:11px;letter-spacing:.2em;margin-bottom:4px;}
.steps-v .st-head h3{margin:0;font-size:22px;}
.steps-v .st-head .en{margin-top:6px;font-size:11px;}
.steps-v .step p{font-size:15px;}
@media (max-width:760px){
  .steps.steps-v::before{left:34px;}
  .steps-v .step{grid-template-columns:68px minmax(0,1fr);gap:8px 18px;border-radius:28px;padding:18px 20px 18px 16px;}
  .steps-v .st-no{width:68px;height:68px;font-size:24px;grid-row:span 2;}
  .steps-v .step p{grid-column:2;}
}
.ab-sec{padding-top:clamp(140px,18vw,290px);padding-bottom:clamp(36px,4vw,64px);}
.ab-sec.first{padding-top:clamp(56px,6vw,90px);padding-bottom:clamp(36px,4vw,64px);}
.bg-blue .sh::before{background:linear-gradient(90deg,#1461D2 0 50%,#FFE14D 50% 100%) left top/96px 100% no-repeat;}
.icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.icon-grid div{white-space:normal;flex-wrap:nowrap;justify-content:flex-start;padding:14px 16px;min-width:0;font-size:14px;line-height:1.4;text-align:left;}
.icon-grid i{width:22px;text-align:center;}
.event-photo{grid-column:1/-1;margin-top:clamp(24px,3vw,40px);aspect-ratio:16/9;}

/* 代表メッセージ：見出しを行ごとに折り返さない（列の幅に合わせて文字サイズを調整） */
.split > div:has(> .msg-catch){container-type:inline-size;}
.msg-catch{font-size:min(clamp(22px,2.3vw,34px),calc(100cqw / 15));}
.msg-catch span{white-space:nowrap;}

/* 働く環境：見出しの列を基準に文字サイズを調整できるようにする */
.split[id^="env-"] > div:not(.split-media){container-type:inline-size;}

/* 働く環境：各見出しを途中で折り返さない（列の幅に合わせて文字サイズを調整） */
.split[id^="env-"] .h3-lg{white-space:nowrap;font-size:min(clamp(17px,1.6vw,21px),calc(100cqw / 21));}

/* ステップ：番号の数字を大きく */
.step .no{display:flex;align-items:baseline;gap:8px;}
.step .no b{font-size:clamp(34px,3vw,44px);font-weight:600;line-height:1;letter-spacing:0;}

/* 仕事を知る：「8つの職種」見出しの下のページ内リンク */
.anchor-nav.job-nav{margin:0 0 clamp(48px,5vw,72px);}
.anchor-nav.job-nav a{border-color:#fff;}

/* ステップ：「STEP」も少し大きく、数字と上下中央でそろえる */
.step .no{align-items:center;font-size:clamp(14px,1.1vw,16px);line-height:1;}
.step .no b{display:block;}

/* 大きな引用：行ごとに折り返さない（幅に合わせて文字サイズを調整） */
.center-block:has(> .bq-fit){container-type:inline-size;}
.big-quote.bq-fit{font-size:min(clamp(30px,4.2vw,62px),calc(100cqw / 17.2));}
.big-quote.bq-fit span{white-space:nowrap;}

/* 選考フロー：ステップの間に下向き矢印 */
.steps.steps-v{gap:40px;}
.steps-v .step:not(:last-child)::after{content:"";display:block;position:absolute;right:auto;left:50%;top:calc(100% + 13px);transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:14px solid #fff;font-size:0;}
.steps-v .step:not(:last-child)::after{border-top-color:#1BB9F3;}
.bg-blue .steps-v .step:not(:last-child)::after{border-top-color:#fff;}

/* 選考フロー：各ステップに枠線 */
.steps-v .step{border:1.5px solid #cfe3f7;}

/* 選考フロー：最後（内定）の下にも矢印 → WELCOME! */
.steps-v .step:last-child::after{content:"";display:block;position:absolute;right:auto;left:50%;top:calc(100% + 13px);transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:14px solid #1BB9F3;font-size:0;}
.steps.steps-v + .welcome{margin-top:72px;}

/* 選考フロー：矢印を大きく・枠線を太く */
.steps.steps-v{gap:56px;}
.steps-v .step{border-width:2.5px;}
.steps-v .step::after,.steps-v .step:not(:last-child)::after,.steps-v .step:last-child::after{top:calc(100% + 16px);border-left-width:18px;border-right-width:18px;border-top-width:22px;}
.steps.steps-v + .welcome{margin-top:88px;}

/* 選考フロー：PCはコンテナ幅いっぱいに */
@media (min-width:768px){.steps.steps-v{max-width:none;}}

/* 選考フロー：説明文を大きく */
.steps-v .step p{font-size:clamp(16px,1.3vw,18px);line-height:1.8;}

/* 選考フロー：説明文の開始位置を左へ・文節の途中で改行しない */
@media (min-width:761px){.steps-v .step{grid-template-columns:88px 140px minmax(0,1fr);gap:24px;}}
.steps-v .step p{word-break:auto-phrase;text-wrap:pretty;line-break:strict;}

/* エントリーフォーム：冒頭の案内文を大きく */
.ef-lead{font-size:clamp(16px,1.35vw,19px);}

