/* sp.css｜スマホ最適化（375px基準）全ページ共通・最後に読み込む */
html,body{overflow-x:hidden;}
img,video,iframe{max-width:100%;}
@media (max-width:767px){
  body{font-size:15px;}
  .wrap{padding-left:20px;padding-right:20px;}
  /* 見出し */
  .sh{margin-bottom:32px;}
  .sh-en{font-size:clamp(40px,12vw,56px);}
  .sh-ja{font-size:15px;}
  .h3-lg{font-size:20px;line-height:1.6;}
  .ab-text p{font-size:15px;line-height:1.95;}
  .ab-text p br,.h3-lg br{display:none;}
  /* セクション余白 */
  #about,#job,#environment,#philosophy,#news,#instagram,#faq,#people,#entry,.ab-sec{padding-top:110px;padding-bottom:32px;}
  .ab-sec.first{padding-top:40px;}
  .sec-curve{height:70px;}
  /* 下層ヒーロー */
  .page-hero .ph-en{font-size:clamp(44px,13vw,64px);}
  .page-hero .ph-ja{font-size:13px;}
  /* レイアウト 1カラム化 */
  .split,.split.rev{grid-template-columns:1fr !important;gap:24px;}
  .split.rev .split-media{order:0;}
  .split[id^="env-"],.split.job-box{padding:20px;border-radius:24px;}
  .card-grid{grid-template-columns:1fr !important;}
  .pf-row{grid-template-columns:1fr !important;gap:4px;}
  .icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .tabs::-webkit-scrollbar{display:none;}
  .tabs .tab{flex:0 0 auto;}
  #jobs-detail .tab-panel{padding:24px 18px;border-radius:24px;}
  .jd-feat{padding:18px;}
  /* ボタン */
  .btn-link{min-height:56px;padding:0 64px 0 26px;font-size:15px;max-width:100%;}
  .btn-link::after{width:40px;height:40px;}
  /* TOP */
  .fv-catch{font-size:clamp(40px,12vw,58px) !important;left:20px !important;}
  .msg-lines p{font-size:16px;}
  .people-head{gap:16px;}
  .pcard{flex:0 0 78vw !important;}
  .pc-cat{font-size:13px;padding:6px 12px;}
  .pc-cap{font-size:14px;}
  .job-grid{grid-template-columns:1fr !important;}
  .job-card,.job-card.wide{grid-column:auto !important;}
  .env-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:14px;}
  .news-layout{grid-template-columns:1fr !important;}
  .news-card{flex:0 0 76vw !important;}
  .news-card .ph{height:180px;}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px;}
  /* エントリー */
  .entry-card{margin:0 12px;border-radius:28px;}
  .entry-body{grid-template-columns:1fr !important;padding:64px 20px 48px;gap:28px;}
  .entry-en{font-size:clamp(56px,17vw,80px);}
  .entry-ttl{font-size:24px;}
  .entry-btns{flex-direction:column;}
  .entry-btn{width:100%;}
  /* フッター */
  .ft-cols{grid-template-columns:1fr !important;gap:28px;}
  .ft-band{margin-left:12px;border-radius:64px 0 0 0;}
  .ft-band .in{padding:48px 20px 48px 32px;}
  /* インタビュー */
  .iv-grid{grid-template-columns:1fr !important;}
  .iv-photo,.iv-photo-2 .ph{border-radius:24px;}
  /* 表・フォーム */
  table{display:block;overflow-x:auto;}
  input,select,textarea{max-width:100%;font-size:16px;}
  /* ヘッダー：375pxに収める */
  header.site .wrap{gap:10px;padding-left:16px;padding-right:16px;}
  .brand{flex:0 1 auto;min-width:0;gap:10px;}
  .brand .logo-img{height:auto;width:118px;max-width:100%;}
  .brand .brand-sep,.brand .recruit{display:none;}
  .hdr-right{gap:8px;flex:0 0 auto;}
  .hdr-entry{height:40px;padding:0 12px;font-size:13px;}
  .hdr-entry .arw{display:none;}
  /* TOP FV：写真を上に大きく、キャッチを下に。写真は横スワイプ可 */
  .hero{height:auto !important;min-height:0 !important;padding:72px 0 0 !important;overflow:hidden;}
  .fv-marquee{position:relative !important;top:auto !important;bottom:auto !important;left:auto !important;right:auto !important;height:68vh !important;min-height:440px;max-height:600px;margin-left:16px !important;border-radius:24px 0 0 24px !important;overflow-x:auto !important;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .fv-marquee::-webkit-scrollbar{display:none;}
  .fv-track{animation:none !important;gap:12px !important;padding-right:16px;}
  .fv-card{scroll-snap-align:start;border-radius:24px !important;}
  .fv-card.w-l,.fv-card.w-m,.fv-card.w-s,.fv-card.w-sm{width:84vw !important;}
  .fv-card[aria-hidden="true"]{display:none;}
  .fv-wave{top:auto !important;bottom:auto !important;position:relative !important;height:56px !important;margin-top:-40px;}
  .fv-catch{position:relative !important;left:auto !important;top:auto !important;transform:none !important;margin:8px 20px 0 !important;padding-bottom:64px;font-size:clamp(48px,14vw,64px) !important;}
  .fv-catch .fv-script{left:62%;font-size:.78em;}
  .fv-catch .fv-sub{margin-top:1.1em;font-size:15px;letter-spacing:.1em;}
  .fv-topwave{display:none;}
  /* TOP 働く環境：英字を横書きに */
  .env-item{padding-left:0;}
  .env-en{position:static;writing-mode:horizontal-tb;display:flex;align-items:center;gap:6px;padding:0;margin-bottom:8px;font-size:12px;}
  .env-en::before{position:static;margin:0;width:8px;height:8px;border-radius:8px 0 0 0;flex:0 0 auto;}
  .env-item .label{margin-top:12px;font-size:15px;gap:8px;}
  /* TOP FV：キャッチを写真の上・下部に重ねる */
  .fv-marquee{height:clamp(440px,68vh,600px) !important;min-height:0;max-height:none;}
  .fv-catch{position:absolute !important;z-index:3;top:72px !important;left:16px !important;right:0 !important;height:clamp(440px,68vh,600px);margin:0 !important;padding:0 20px 26px !important;justify-content:flex-end;border-radius:24px 0 0 24px;background:linear-gradient(180deg,rgba(0,40,80,0) 45%,rgba(0,40,80,.45) 100%);pointer-events:none;font-size:clamp(44px,13vw,58px) !important;}
  .fv-catch .fv-sub{margin-top:.9em;font-size:14px;}
  .hero{padding-bottom:36px !important;}
  /* 下層ヒーロー：波線を横幅いっぱいに／英字の見切れ防止 */
  .ph-wave svg{max-width:none !important;width:200% !important;}
  .ph-in{left:20px !important;right:20px !important;}
  .ph-en{font-size:clamp(34px,10.4vw,48px) !important;overflow-wrap:anywhere;}
  /* 波線の幅制限を解除（TOP FV・メニュー） */
  .fv-wave svg,.gm-wave svg{max-width:none !important;width:200% !important;}
  /* TOP FV波線：半透明の1枚が写真に重なって色がずれるため、単色の1枚だけにする */
  .fv-wave .w1{display:none !important;}
  .fv-wave{margin-top:-44px;height:48px !important;}
  /* 波線が濃く見える原因：キャッチの紺グラデが波線の上に重なっていた → グラデを波線の手前で止め、波線を最前面に */
  .fv-catch{height:calc(clamp(440px,68vh,600px) - 40px) !important;padding-bottom:14px !important;border-radius:24px 0 0 0;}
  .fv-wave{z-index:4 !important;}
  /* TOP FVキャッチ：英字の行間を詰める */
  .fv-catch{line-height:.8 !important;}
  .fv-catch .fv-script{bottom:-.42em;}
  /* 紺グラデを写真の下端まで伸ばし、波線（z-index:4）の下に敷く */
  .fv-catch{height:clamp(440px,68vh,600px) !important;padding-bottom:54px !important;border-radius:24px 0 0 24px;z-index:3 !important;}
  /* TOP 働く環境：英字を写真の下、日本語の真上にまとめる */
  .env-item{display:flex !important;flex-direction:column;}
  .env-item .env-photo{order:1;}
  .env-item .env-en{order:2;margin:14px 0 0 !important;}
  .env-item .label{order:3;margin-top:4px !important;}
  /* TOP PHILOSOPHY：見出しを社長写真の上に */
  .philosophy .phil-text{display:contents;}
  .philosophy .phil-text .sh{order:0;margin-bottom:-8px;}
  .philosophy .phil-photo{order:1;}
  .philosophy .phil-text .big{order:2;}
  .philosophy .phil-text .btn-link{order:3;justify-self:start;}
  /* TOP ENTRY本文：左揃え・改行なし */
  .entry-text,.entry-text p{text-align:left !important;}
  .entry-text p br{display:none;}
  /* フッター：PAGE TOP・コピーライトに左右の余白 */
  footer.site .ft-side{padding-left:20px !important;padding-right:20px !important;box-sizing:border-box;}
  /* TOP MESSAGE：スマホでも写真5枚を表示（上に2枚・下に3枚、本文には重ねない） */
  .message{padding-top:230px !important;padding-bottom:250px !important;}
  .message .mp1,.message .mp2,.message .mp3,.message .mp4,.message .mp5{display:block !important;aspect-ratio:1;bottom:auto;top:auto;left:auto;right:auto;}
  .message .mp1{width:34vw !important;top:70px !important;left:-14px !important;}
  .message .mp2{width:42vw !important;top:40px !important;right:-18px !important;left:auto !important;}
  .message .mp3{width:38vw !important;bottom:70px !important;top:auto !important;left:-18px !important;border-radius:0 6px 6px 0;}
  .message .mp4{width:30vw !important;bottom:118px !important;top:auto !important;right:-14px !important;left:auto !important;}
  .message .mp5{width:34vw !important;bottom:24px !important;top:auto !important;left:38vw !important;}
  .sp-br{display:inline;}
  #environment .env-foot{font-size:18px;line-height:1.75;}
  /* TOP PHILOSOPHY本文：スマホで読みやすいサイズと改行に */
  .philosophy .big{font-size:16px !important;line-height:2 !important;letter-spacing:.02em;}
  /* TOP ENTRYボタン：「直接応募歓迎」を1行に */
  .entry-btn{font-size:16px !important;gap:10px !important;padding-left:22px !important;padding-right:22px !important;}
  .entry-btn .tag{white-space:nowrap;flex:0 0 auto;font-size:11px !important;padding:4px 10px !important;line-height:1.3;}
  .entry-btn .arw{flex:0 0 auto;}
  /* ENTRYボタン2つの矢印を右端にそろえる */
  .entry-btn{justify-content:flex-start !important;}
  .entry-btn .arw{margin-left:auto !important;}
  /* 中央寄せブロックは意図した改行を生かす（途中で折り返さないように） */
  .center-block .ab-text p br,.center-block .h3-lg br{display:inline;}
  .center-block .h3-lg{font-size:19px;line-height:1.7;}
  .center-block .ab-text p{font-size:14.5px;}
  /* 本文はすべて左揃え（見出し・ボタン・バッジは除く） */
  .center-block,.center-block p,.ab-text,.ab-text p,.h3-lg,.big-quote,.lead,.msg-lines,.msg-lines p,.env-foot,.about-foot,.philosophy .big,.card p,.card h3,section p:not(.sh-en):not(.sh-ja):not(.fv-sub):not(.ft-copy){text-align:left !important;}
  .center-block{margin-left:0 !important;margin-right:0 !important;}
  /* ENTRY本文：「応募前の会社見学やご相談も歓迎しています。」を1行に収める */
  .entry-text p{font-size:14px !important;letter-spacing:0 !important;}
  /* 下層のキャッチ文：意図した2行に収める */
  .sub-catch{font-size:23px !important;line-height:1.6 !important;letter-spacing:.02em !important;}
  .sub-catch br{display:inline !important;}
  /* フッター：サイトマップのリンク一覧はスマホでは非表示（メニューから遷移） */
  footer.site .ft-cols{display:none !important;}
  /* フッター：リンク一覧を消した分、余白を詰める */
  footer.site .ft-main{padding:48px 0 40px !important;}
  footer.site .ft-brand{margin-bottom:0 !important;}
  footer.site .ft-social{margin-top:24px !important;}
  footer.site .ft-side{margin-top:28px !important;}
  footer.site .ft-copy{margin-top:16px !important;}
  /* フッター：SNSアイコンの間隔を詰める */
  footer.site .ft-social{gap:6px !important;justify-content:flex-start;}
  footer.site .ft-social a{width:40px !important;height:40px !important;margin:0 !important;}
  /* 仕事を知る：職種へのページ内リンク（アンカーナビ）はスマホでは非表示 */
  .anchor-nav{display:none !important;}
  /* ヘッダーENTRYボタン：左右に余白 */
  .hdr-entry{padding:0 20px !important;}
  /* FVキャッチ：「with you.」をFUTUREの後半に重ねる */
  .fv-catch .fv-script{left:2.55em !important;bottom:-.5em !important;}
  /* TOP FV：上部は白背景（白い波線で水色へ切り替え）。写真はその上に重ねる */
  .fv-topwave{display:block !important;position:absolute !important;top:0 !important;left:0 !important;right:auto !important;width:100% !important;max-width:none !important;height:clamp(300px,48vh,420px) !important;z-index:0 !important;}
  .hero > .fv-marquee{z-index:1;}
  /* 働く環境：キャプションが上の写真に属すと分かるよう、写真との間は詰め、次の項目との間は広げる */
  #environment .env-grid{row-gap:44px !important;}
  .env-item .env-en{margin-top:10px !important;}
  .env-item .label{margin-top:2px !important;}
}
