/* Recruitment page — Figma PC 1440 / SP 375 */
.recruit-page { --r-green:#0da44f; --r-light:#08c271; --r-ink:#161e29; --r-gray:#f8f8f8; }
.recruit-page .page { overflow:hidden; }
.recruit-page main { position:relative; }
.recruit-page .header { width:min(1440px,100%); }
.recruit-page .header__logo img { object-fit:contain; mix-blend-mode:normal; }
.recruit-page .footer { border-radius:40px 40px 0 0; }
.r-heading__en { color:var(--r-green); font-family:var(--font-en); font-size:90px; font-weight:500; line-height:.7; letter-spacing:-.035em; text-transform:uppercase; }
.r-heading h2 { color:var(--r-ink); font-size:28px; line-height:1.5; }
.r-heading h2 em { color:var(--r-green); font-size:32px; font-style:normal; }
.r-heading > p:last-child:not(.r-heading__en) { color:var(--r-ink); font-size:16px; font-weight:500; line-height:1.8; }
.r-heading--center { text-align:center; }
.r-heading--center .r-heading__en { margin-bottom:48px; }
.r-heading--center h2 { margin-bottom:40px; }
.r-heading--left .r-heading__en { margin-bottom:36px; }
.r-heading--left h2 { margin-bottom:28px; }
/* :not() 付きの .r-heading > p:last-child に負けないよう同じ詳細度にそろえる */
.r-heading--white .r-heading__en,.r-heading--white h2,.r-heading--white > p:last-child:not(.r-heading__en) { color:#fff; }
.r-pill { position:relative; display:flex; align-items:center; justify-content:center; width:200px; height:60px; border:0; border-radius:100px; background:var(--r-green); color:#fff; font-family:inherit; font-size:16px; font-weight:700; cursor:pointer; }
.r-pill span { position:absolute; right:13px; }
.r-pill:hover { opacity:.85; }
.r-pill--wide { width:auto; min-width:200px; padding:0 46px 0 26px; }
.r-ctas { display:flex; gap:12px; }
br.r-sp-only { display:none; }

/* HERO — desktop artwork extends below the main copy */
.r-hero { position:relative; height:972px; overflow:visible; background:#fff; }
.r-hero__blob { position:absolute; display:block; overflow:hidden; border-radius:50%; transform:rotate(42deg); }
.r-hero__blob img,
.r-hero__blob video { position:absolute; left:-40%; top:0; width:180%; max-width:none; height:100%; object-fit:cover; transform:rotate(-42deg); }
/* hero video: .r-hero__blob 側が42deg傾いた楕円マスク、動画は-42degで正立に戻す */
.r-hero__blob--video { display:block; }
.r-hero__video { pointer-events:none; }
.r-hero__blob--main img { top:18%; }
.r-hero__blob--main { left:max(660.166px,calc(50% - 59.834px)); top:-210.793px; width:971.215px; height:1228.151px; }
.r-hero__blob--sub { left:max(517px,calc(50% - 203px)); top:-21.957px; width:196.839px; height:248.913px; }
/* 元写真の左の社員を中心に、PC/SP共通の比率でトリミングする。 */
.r-hero__blob--sub img { left:50%; top:50%; width:360%; height:auto; transform-origin:0 0; transform:rotate(-42deg) translate(-35%,-55%); }
/* 丸写真と緑の楕円は MV の直下（右端）に置く。
   top はヒーローの大きな動画ブロブ（楕円）の輪郭を避けた値。
   1200〜1920pxのどの幅でも動画から45px以上離れる。 */
.r-hero__blob--small { z-index:2; left:min(max(1308.692px,calc(50% + 588.692px)),calc(100vw - 234.75px)); top:1000px; width:163.049px; height:206.184px; transform:rotate(41.13deg); }
.r-hero .r-overview__deco { left:1180px; top:1235px; }
.r-hero__blob--small img { transform:rotate(-41.13deg); }
.r-hero__copy { position:absolute; z-index:2; left:max(64px,calc(50% - 656px)); top:296px; width:540px; }
.r-hero h1 { margin-bottom:40px; color:var(--r-ink); font-size:60px; font-weight:700; line-height:1.05; letter-spacing:-.05em; }
.r-hero__lead { margin-bottom:32px; color:var(--r-green); font-size:20px; font-weight:700; }
.r-hero__text { width:480px; max-width:100%; margin-bottom:32px; color:var(--r-ink); font-size:16px; font-weight:500; line-height:1.5; }

/* MOVIE — hero と JOB OVERVIEW の間に置く紹介動画 */
/* 背景は塗らない（ヒーローから伸びる装飾の丸・楕円を隠さないため）。
   z-index:3 … 画面幅が狭くて丸写真・緑の楕円と重なるときは、動画が前面に来る。 */
.r-movie { position:relative; z-index:3; padding:120px 30px 0; background:transparent; }
.r-movie__frame { position:relative; width:min(969px,100%); margin:0 auto; aspect-ratio:16/9; overflow:hidden; border-radius:24px; background:#000; }
.r-movie__frame iframe { position:absolute; left:0; top:0; display:block; width:100%; height:100%; border:0; }

/* JOB OVERVIEW */
.r-overview { position:relative; height:1321px; padding-top:92px; }
.r-overview__deco { position:absolute; left:1180px; top:181px; width:192.61px; height:275.157px; transform:rotate(42deg); }
.r-overview > .r-heading { width:740px; margin:0 auto; }
.r-overview__panel { position:relative; width:min(1380px,calc(100% - 60px)); height:663px; margin:60px auto 0; overflow:hidden; border-radius:40px; padding-top:44px; background:linear-gradient(102.43deg,var(--r-green) 4.85%,var(--r-light) 96.44%); }
.r-overview__panel h3 { position:relative; z-index:2; margin-bottom:52px; color:#fff; font-size:28px; text-align:center; }
.r-overview__watermark { position:absolute; top:101px; left:19px; color:#fff; font-family:var(--font-en); font-size:115px; font-weight:500; line-height:1; opacity:.2; white-space:nowrap; }
.r-job-grid { position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,240px); gap:20px 40px; justify-content:center; }
.r-info-card { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; width:240px; height:240px; border:2px solid #fff; border-radius:40px; padding:46px 20px 20px; background:#fff; color:var(--r-ink); text-align:center; }
.r-info-card img { width:66px; height:66px; object-fit:contain; margin-bottom:12px; }
.r-info-card h4 { color:var(--r-green); font-size:18px; line-height:2; }
.r-info-card p { font-size:15px; font-weight:500; line-height:1.5; }
.r-info-card--dorm { justify-content:flex-start; padding-top:55px; }
.r-info-card--dorm img { width:66px; height:53px; margin-bottom:18px; }
.r-overview__after { margin-top:56px; text-align:center; }
.r-overview__after > p,.r-before__after > p { margin-bottom:24px; color:var(--r-green); font-size:16px; font-weight:700; }
.r-overview__after .r-ctas,.r-before__after .r-ctas { justify-content:center; }

/* ABOUT 2116—3480 */
.r-about { position:relative; height:1364px; padding-top:0; }
.r-about > .r-heading { width:740px; margin:0 auto; }
.r-about__layout { display:grid; grid-template-columns:544px 544px; gap:32px; width:1120px; margin:70px auto 0; }
.r-about__photos { position:relative; height:807px; }
.r-about__photo { position:absolute; border-radius:24px; object-fit:cover; }
.r-about__photo--main { left:0; top:0; width:544px; height:389px; }
.r-about__photo--sub { left:0; top:467px; width:291px; height:340px; }
.r-about__photo--mini { left:321px; top:420px; width:223px; height:265px; }
.r-about__graphic { display:none; position:absolute; right:-8px; bottom:-4px; width:111px; height:161px; }
.r-about__graphic-pc { position:absolute; left:325px; top:661px; width:188px; height:194px; object-fit:contain; }
.r-about__copy { width:544px; }
.r-about__copy > h3 { margin-bottom:28px; color:var(--r-green); font-size:28px; line-height:1.5; }
.r-about__copy > p { margin-bottom:28px; color:var(--r-ink); font-size:16px; font-weight:500; line-height:1.8; }
.r-methods { display:flex; flex-direction:column; gap:20px; }
.r-methods li { height:124px; border-radius:8px; padding:14px 24px 12px; background:var(--r-green); color:#fff; }
.r-methods h4 { display:flex; align-items:center; gap:12px; height:35px; border-bottom:1px solid rgba(255,255,255,.75); font-size:20px; }
.r-methods h4 span { font-family:var(--font-en); font-size:30px; font-weight:500; }
.r-methods strong,.r-methods small { display:block; padding-left:10px; white-space:nowrap; }
.r-methods strong { margin-top:8px; font-size:16px; line-height:1.5; white-space:normal; }
.r-methods small { margin-top:2px; color:#f8f8f8; font-size:14px; line-height:1.5; }

/* BEFORE AFTER */
.r-before { position:relative; height:972px; padding-top:0; }
.r-heading--before { position:relative; width:900px; margin:0 auto; text-align:center; }
.r-heading--before img { position:absolute; left:-200px; top:-44px; width:175px; height:157px; }
.r-heading--before .r-heading__en { margin-bottom:28px; white-space:nowrap; }
.r-heading--before h2 { margin-bottom:28px; }
.r-before__band { position:absolute; left:30px; right:30px; top:213px; height:374px; border-radius:40px; background:linear-gradient(102.43deg,var(--r-green),var(--r-light)); }
.r-before__cards { position:relative; display:grid; grid-template-columns:540px 540px; gap:40px; width:1120px; margin:75px 0 0 calc(50% - 572px); }
.r-compare > h3 { margin-bottom:24px; color:#fff; font-family:var(--font-en); font-size:40px; line-height:28px; text-align:center; }
.r-compare > div { position:relative; height:378px; border:1px solid #e2e6e3; border-radius:24px; padding:40px 42px; background:#fff; }
.r-compare img { position:absolute; right:24px; top:-26px; width:51px; height:139px; object-fit:contain; }
.r-compare h4 { margin-bottom:35px; color:#ff6b50; font-size:24px; text-align:center; }
.r-compare--after h4 { color:var(--r-green); }
.r-compare li { border-bottom:1px dotted #d9d9d9; padding:10px 0; color:#ff6b50; font-size:14px; font-weight:700; }
.r-compare--after li { color:var(--r-green); }
.r-compare li::before { content:"・"; }
.r-before__after { margin-top:64px; text-align:center; }

/* VOICE */
.r-voice { position:relative; min-height:1144px; padding-top:120px; padding-bottom:80px; background:var(--r-gray); }
.r-voice__deco { position:absolute; z-index:1; right:max(160px,calc(50% - 560px)); top:-18px; width:248px; height:234px; object-fit:contain; }
.r-voice__inner { width:1120px; margin:0 auto; }
.r-voice .r-heading { width:560px; }
.r-voice .r-heading__en { font-size:90px; }
.r-voice .r-heading h2 { font-size:28px; }
.r-voice__list { margin-top:48px; }
.r-voice-card { display:grid; grid-template-columns:520px 560px; gap:40px; align-items:center; margin-bottom:40px; }
.r-voice-card__meta { display:flex; align-items:center; gap:25px; margin-bottom:32px; }
.r-voice-card__meta strong { display:flex; align-items:center; justify-content:center; min-width:156px; height:50px; border-radius:100px; background:var(--r-green); color:#fff; font-size:18px; }
.r-voice-card__meta span { font-size:18px; font-weight:500; line-height:1.8; }
.r-voice-card blockquote { position:relative; padding:32px 0; color:var(--r-ink); font-size:16px; font-weight:500; line-height:1.8; }
.r-voice-card blockquote::before,.r-voice-card blockquote::after { position:absolute; color:#dadada; font-family:serif; font-size:56px; line-height:1; }
.r-voice-card blockquote::before { content:"“"; left:0; top:-6px; }
.r-voice-card blockquote::after { content:"”"; right:0; bottom:-15px; }
.r-voice-card > img { width:560px; height:320px; border-radius:24px; object-fit:cover; }
.r-voice-card__movie { position:relative; width:560px; height:320px; overflow:hidden; border-radius:24px; background:#000; }
.r-voice-card__movie iframe { position:absolute; left:0; top:0; display:block; width:100%; height:100%; border:0; }
.r-voice__ctas { justify-content:center; margin-top:8px; }

/* NUMBERS */
.r-numbers { position:relative; height:1805px; padding:120px 30px 0; background:#fff; }
.r-numbers::after { content:""; position:absolute; left:50%; top:1502px; transform:translateX(-50%); border-left:90px solid transparent; border-right:90px solid transparent; border-top:70px solid #0ab866; z-index:3; }
.r-numbers__deco { position:absolute; z-index:3; left:210px; top:39px; width:248px; height:234px; }
.r-numbers__inner { position:relative; height:1382px; border-radius:40px; padding:80px 130px; background:linear-gradient(102.43deg,var(--r-green),var(--r-light)); }
.r-numbers .r-heading__en { font-size:90px; }
.r-numbers .r-heading h2 { margin-bottom:28px; color:#fff; }
.r-number-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px 20px; margin-top:56px; }
.r-number-card { position:relative; height:260px; overflow:hidden; border-radius:24px; padding:24px 28px; background:#fff; color:var(--r-ink); }
.r-number-card > span { display:inline-flex; border:1px solid var(--r-green); border-radius:100px; padding:9px 12px; color:var(--r-green); font-size:13px; font-weight:700; }
.r-number-card > img { position:absolute; right:8px; top:8px; width:118px; height:130px; object-fit:contain; }
.r-number-card__value { position:relative; z-index:2; margin-top:22px; color:var(--r-green); font-family:var(--font-num); font-size:82px; font-weight:700; line-height:.9; letter-spacing:-.05em; }
.r-number-card__value small { margin-left:8px; font-size:32px; letter-spacing:0; }
.r-number-card__value--wide { font-size:62px; }
.r-number-card__value--text { font-family:"Noto Sans JP",sans-serif; font-size:56px; letter-spacing:-.05em; }
.r-number-card > p:last-child { position:absolute; left:28px; right:28px; bottom:24px; font-size:14px; font-weight:500; line-height:1.6; }
.r-numbers__message { margin-top:80px; color:#fff; text-align:center; }
.r-numbers__message h3 { font-size:32px; line-height:1.45; }
.r-numbers__message > p { margin:30px 0; font-size:16px; font-weight:700; line-height:1.8; }
.r-pill--white { margin:0 auto; background:#fff; color:var(--r-green); }

/* GROWTH 7640—9085 */
.r-growth { position:relative; height:1684px; padding-top:120px; background:linear-gradient(#f8f8f8 0 535px,#fff 535px); }
.r-growth__crane { position:absolute; z-index:2; left:max(160px,calc(50% - 560px)); top:-135px; width:210px; height:181px; object-fit:contain; }
.r-growth__inner { position:relative; width:1120px; margin:0 auto; }
.r-growth .r-heading { width:740px; }
.r-growth .r-heading h2 { margin-bottom:28px; font-size:28px; }
.r-growth__deco { position:absolute; z-index:1; right:128px; top:-76px; width:157px; height:238px; object-fit:contain; }
.r-growth__deco--sp { display:none; }
.r-first-month { margin-top:56px; text-align:center; }
.r-first-month h3 { margin:30px 0; color:var(--r-green); font-size:28px; }
.r-first-month > img { width:1120px; height:294px; object-fit:fill; }
.r-learn-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; margin-top:10px; text-align:left; }
.r-learn-columns article > strong { display:block; width:88px; margin:0 auto 20px; border-radius:100px; padding:8px; background:var(--r-green); color:#fff; text-align:center; }
.r-learn-columns li { border-bottom:1px dotted var(--r-green); padding:8px 12px; color:var(--r-green); font-size:14px; font-weight:700; }
.r-learn-columns li::before { content:"・"; }
.r-three-years { position:absolute; left:0; right:0; bottom:0; height:516px; padding-top:64px; background:linear-gradient(102.43deg,var(--r-green),var(--r-light)); color:#fff; text-align:center; }
.r-three-years > h3 { margin-bottom:12px; font-size:28px; }
.r-three-years__lead { margin-bottom:28px; font-size:15px; font-weight:700; line-height:1.6; }

@media (min-width: 769px) {
  /* 教育内容の末尾から「3年間の成長ステップ」までを120pxにそろえる */
  .r-growth { height:auto; }
  .r-three-years { position:relative; bottom:auto; margin-top:120px; }

  .r-number-card__value { margin-top:22px; font-family:var(--font-en); font-size:72px; font-weight:500; line-height:1; letter-spacing:0; white-space:nowrap; }
  .r-number-card__value small { margin-left:6px; font-family:"Noto Sans JP",sans-serif; font-size:28px; font-weight:700; }
  .r-number-card__value--wide { font-size:58px; letter-spacing:-3px; }
  .r-number-card__value--wide small { margin-left:0; }
  .r-number-card__value--text { font-family:"Noto Sans JP",sans-serif; font-size:52px; font-weight:700; line-height:1; letter-spacing:-.06em; }
  .r-number-card > p:last-child { font-size:16px; line-height:1.8; }
  .r-learn-columns li { padding:16px 12px; font-size:16px; line-height:1.8; }
}
.r-three-years__cards { display:grid; grid-template-columns:repeat(5,224px); width:1120px; margin:0 auto; overflow:hidden; border-radius:24px; background:#fff; color:var(--r-ink); }
.r-three-years__cards article { min-height:294px; border-right:1px solid #dadada; padding:32px 24px 20px; }
.r-three-years__cards article:last-child { border-right:0; }
.r-three-years__cards img { width:176px; height:115px; margin:0 auto 28px; object-fit:contain; }
.r-three-years__cards h4 { margin-bottom:28px; font-size:16px; }
.r-three-years__cards p { font-size:13px; font-weight:500; line-height:1.5; }

/* MENTOR 9085—10256 */
.r-mentor { height:1171px; padding-top:120px; background:#fff; }
.r-mentor__inner { width:1120px; margin:0 auto; }
.r-mentor__top { display:grid; grid-template-columns:451px 560px; justify-content:space-between; }
.r-mentor .r-heading__en { font-size:48px; line-height:.9; white-space:nowrap; }
.r-mentor .r-heading h2 { font-size:28px; }
.r-mentor .r-heading > p:last-child { font-size:16px; }
.r-mentor__top > img { width:560px; height:400px; border-radius:24px; object-fit:cover; }
.r-mentor-slider { width:1254px; margin-top:56px; overflow:hidden; }
.r-mentor__cards { display:flex; width:auto; margin:0; }
.r-mentor__cards article { position:relative; flex:0 0 300px; width:300px; height:431px; overflow:hidden; border:1px solid #dadada; border-radius:16px; background:#fff; }
.r-mentor__cards article > img { width:100%; height:280px; border-radius:16px 16px 0 0; object-fit:cover; }
.r-mentor__cards small { position:absolute; left:20px; top:242px; border:1px solid var(--r-green); border-radius:4px; padding:4px 8px; background:#fff; color:var(--r-green); font-size:12px; font-weight:500; }
.r-mentor__cards h3,.r-mentor__cards strong,.r-mentor__cards p { display:block; margin-left:20px; margin-right:20px; }
.r-mentor__cards h3 { margin-top:18px; color:var(--r-green); font-size:18px; }
.r-mentor__cards strong { margin-top:18px; font-size:16px; line-height:1.5; }
.r-mentor__cards p { margin-top:10px; font-size:14px; font-weight:500; line-height:1.5; }
.r-mentor__nav { display:flex; justify-content:flex-end; gap:12px; width:1120px; margin-top:44px; }
.r-mentor__nav-btn { display:block; width:80px; height:40px; border:0; padding:0; background:transparent; cursor:pointer; }
.r-mentor__nav-btn img { display:block; width:80px; height:40px; }
.r-mentor__nav-btn--prev img { transform:rotate(180deg); }
.r-mentor__nav-btn:hover { opacity:.85; }
.r-mentor__nav-btn:focus-visible { outline:2px solid var(--r-green); outline-offset:3px; border-radius:100px; }

/* BENEFITS 10256—11904 */
.r-benefits { padding:96px 0; background:var(--r-green); }
.r-benefits__inner { width:1122px; margin:0 auto; }
.r-benefits .r-heading__en { font-size:90px; }
.r-benefits .r-heading h2 { margin-bottom:0; color:#fff; font-size:18px; }
.r-benefit-grid { display:grid; grid-template-columns:repeat(4,240px); gap:20px 40px; justify-content:center; margin-top:40px; }
.r-benefit-grid article { display:flex; flex-direction:column; align-items:center; justify-content:center; height:240px; border-radius:40px; padding:24px; background:#fff; text-align:center; }
.r-benefit-grid img { width:90px; height:80px; margin-bottom:15px; object-fit:contain; }
.r-benefit-grid h3 { color:var(--r-green); font-size:18px; line-height:1.25; }
.r-benefit-grid p { margin-top:12px; font-size:15px; }
.r-dorm { display:grid; grid-template-columns:509px 408px; justify-content:space-between; height:476px; margin-top:40px; border-radius:40px; padding:58px 52px; background:#fff; }
.r-dorm h3 { color:var(--r-green); font-family:var(--font-en); font-size:50px; line-height:1; }
.r-dorm h4 { margin:30px 0; color:var(--r-ink); font-size:28px; line-height:1.5; }
.r-dorm ul { display:flex; flex-wrap:wrap; gap:12px 14px; }
.r-dorm li { border-radius:8px; padding:12px 18px; background:var(--r-green); color:#fff; font-size:14px; font-weight:700; }
.r-dorm > img { width:408px; height:353px; border-radius:40px; object-fit:cover; }

/* JOB 11904—13275 */
.r-work-package { display:flex; flex-direction:column; }
.r-job-details { height:auto; padding:120px 0; background:#fff; }
.r-job-details__inner { width:768px; margin:0 auto; }
.r-job-details__heading { width:660px; height:116px; margin:0 auto 80px; color:var(--r-green); text-align:center; }
.r-job-details__en { font-family:var(--font-en); font-size:90px; font-weight:500; line-height:.7; text-transform:uppercase; }
.r-job-details__heading h2 { margin-top:40px; font-size:18px; line-height:1.5; }
.r-job-details__list { display:flex; flex-direction:column; gap:30px; }
.r-job-details__row { display:grid; grid-template-columns:150px 1fr; min-height:33px; border-bottom:1px dashed var(--r-green); padding-bottom:24px; }
.r-job-details__row dt { color:var(--r-green); font-size:16px; font-weight:700; line-height:1.5; }
.r-job-details__row dd { width:542px; color:#111b2a; font-size:15px; font-weight:500; line-height:1.5; }
.r-job-details__salary-body { display:flex; flex-direction:column; gap:50px; padding-top:5px; }
.r-job-details__salaries { display:grid; grid-template-columns:116px 116px; column-gap:102px; width:334px; line-height:1.4; }
.r-job-tabs { display:flex; gap:16px; margin:0 0 48px; }
.r-job-tabs__button { flex:1; min-height:60px; border:2px solid var(--r-green); border-radius:100px; padding:14px 20px; background:#fff; color:var(--r-green); font:inherit; font-size:18px; font-weight:700; cursor:pointer; transition:background-color .2s,color .2s; }
.r-job-tabs__button[aria-selected="true"] { background:var(--r-green); color:#fff; }
.r-job-tabs__button[aria-selected="false"]:hover { background:#e6f6ee; }
.r-job-tabs__button:focus-visible,.r-job-panel:focus-visible { outline:3px solid var(--r-ink); outline-offset:5px; }
.r-job-panel[hidden] { display:none; }
.r-info-card a,.r-overview > .r-heading a { text-decoration:underline; text-underline-offset:3px; }

/* DAILY 13275—13965 */
.r-daily { position:relative; height:690px; padding-top:96px; background:linear-gradient(to bottom,#e7f6ed 0 493px,#fff 493px 100%); }
.r-daily .r-heading__en { margin-bottom:18px; font-size:90px; }
.r-daily .r-heading h2 { margin-bottom:12px; color:var(--r-green); font-size:22px; }
.r-daily .r-heading > p:last-child { color:var(--r-green); font-size:16px; font-weight:700; }
.r-daily__photos { position:absolute; left:50%; top:305px; transform:translateX(-50%); display:flex; gap:32px; width:1528px; }
.r-daily__photos img { width:280px; height:280px; border-radius:24px; object-fit:cover; }
.r-daily__photos img:nth-child(1){ margin-top:64px; }.r-daily__photos img:nth-child(2){ margin-top:0; }.r-daily__photos img:nth-child(3){ margin-top:44px; }.r-daily__photos img:nth-child(4){ margin-top:11px; }.r-daily__photos img:nth-child(5){ margin-top:105px; }

/* ENTRY 12594—13597 */
.r-entry { height:1003px; padding-top:120px; background:#fff; }
.r-entry__inner { display:grid; grid-template-columns:419px 464px; gap:45px; width:928px; margin:0 auto; }
.r-entry .r-heading__en { font-size:90px; }
.r-entry .r-heading h2 { font-size:28px; }
.r-entry .r-heading > p:last-child { font-size:16px; }
.r-line { width:328px; min-height:333px; margin-top:75px; border:1px solid #dfe3e1; border-radius:8px; padding:24px; text-align:center; }
.r-line h3 { color:var(--r-green); font-size:20px; }.r-line p { margin-top:18px; font-size:13px; line-height:1.7; }.r-line img { width:140px; height:140px; margin:20px auto; }.r-line small { color:#777; font-size:11px; line-height:1.5; }
.r-form { padding-top:88px; }
.r-form > h3 { margin-bottom:30px; color:var(--r-green); font-size:18px; }
.r-form label { display:block; margin-bottom:20px; color:var(--r-ink); font-size:15px; font-weight:700; }
.r-form em { display:inline-block; margin-left:10px; border-radius:3px; padding:4px 8px; background:var(--r-green); color:#fff; font-size:11px; font-style:normal; }
.r-form input,.r-form textarea { display:block; width:100%; margin-top:12px; border:1px solid #dce2de; border-radius:7px; padding:16px; font:inherit; font-size:14px; }
.r-form input { height:60px; }.r-form textarea { height:120px; resize:none; }
.r-form .r-pill { margin:24px auto 0; }
.recruit-footer { height:395px; min-height:395px; padding-top:54px; padding-bottom:26px; }
.recruit-footer .footer__inner { gap:40px; }

@media (max-width: 1100px) and (min-width: 769px) {
  .r-about__layout,.r-voice__inner,.r-growth__inner,.r-three-years__cards,.r-mentor__inner { transform:scale(.8); transform-origin:top center; }
}

/* SP source frame: 375x34851. The supplied frame contains the blank intervals below. */
@media (max-width: 768px) {
  .recruit-page .header,.recruit-page .mobile-menu,.recruit-page .footer { display:none !important; }
  .recruit-page main { width:100%; }
  .r-hero { height:4292px; overflow:hidden; }
  .r-hero__copy { display:none; }
  .r-hero__blob--main { left:152.334px; top:39.445px; width:293.007px; height:370.522px; transform:rotate(42deg); }
  .r-hero__blob--sub { display:block; left:153.087px; top:57.118px; width:58.773px; height:74.322px; transform:rotate(42deg); }
  /* 42deg回転で見た目の幅が77pxになるため、画面右端で見切れないよう内側へ寄せる */
  .r-hero__blob--small { display:block; left:min(339.13px, calc(100vw - 71px)); top:378.526px; width:48.684px; height:61.563px; transform:rotate(41.13deg); }
  .r-overview,.r-about { display:none; }

  .r-before { height:1694px; padding-top:28px; }
  .r-heading--before { width:343px; margin:0 auto; text-align:center; }
  .r-heading--before img { left:0; top:-28px; width:61px; height:55px; object-fit:contain; }
  .r-heading--before .r-heading__en { margin:0 0 29px; padding-top:0; font-size:48px; line-height:44px; letter-spacing:0; }
  .r-heading--before h2 { margin-bottom:40px; font-size:20px; line-height:15px; }
  .r-heading--before > p:last-child { font-size:16px; line-height:20.5px; }
  .r-before__band { left:0; right:0; top:334px; height:1280px; border-radius:40px 40px 0 0; background:linear-gradient(-88.2228deg,#08c271 4.8524%,#0da44f 96.441%); }
  .r-before__cards { position:absolute; display:block; left:16px; top:467px; width:344px; margin:0; }
  .r-compare { margin-bottom:40px; }
  .r-compare > h3 { height:22px; margin:0 0 24px; font-size:32px; line-height:22px; }
  .r-compare > div { height:494px; border-radius:22px; padding:40px 25px; }
  .r-compare h4 { margin-bottom:22px; font-size:24px; line-height:36px; text-align:center; }
  .r-compare img { right:22px; top:-8px; width:28px; height:76px; }
  .r-compare li { display:flex; align-items:center; height:77px; min-height:0; padding:12px 0; font-size:16px; line-height:1.5; }
  .r-compare li:nth-child(2) { height:48px; }
  .r-compare--after li:nth-child(2) { height:77px; }
  .r-compare--after li:nth-child(5) { height:48px; }
  .r-before__after { display:none; }

  .r-voice { position:relative; min-height:1681px; height:auto; padding-top:113.705px; padding-bottom:60px; background:linear-gradient(#fff 0 33.705px,var(--r-gray) 33.705px); }
  .r-voice__deco { display:none; }
  .r-voice::before { content:""; position:absolute; z-index:1; left:220px; top:0; width:100px; height:115px; background:url('../assets/recruit/voice-sp-deco.png') center/contain no-repeat; }
  .r-voice__inner { width:345px; margin:0 auto; }
  .r-voice .r-heading { width:345px; }
  .r-voice .r-heading__en { margin-bottom:32px; font-size:48px; line-height:34px; }
  .r-voice .r-heading h2 { margin-bottom:0; font-size:20px; line-height:22.5px; }
  .r-voice__list { margin-top:56px; }
  .r-voice-card { display:flex; flex-direction:column; gap:32px; width:345px; margin-bottom:40px; }
  .r-voice-card__copy { display:contents; }
  .r-voice-card__meta { order:1; width:100%; gap:25px; margin:0; }
  .r-voice-card__meta strong { min-width:156px; height:50px; font-size:18px; }
  .r-voice-card__meta span { font-size:18px; line-height:21px; }
  .r-voice-card > img { order:2; width:345px; height:200px; border-radius:24px; }
  .r-voice-card__movie { order:2; width:345px; height:200px; border-radius:24px; }
  .r-voice__ctas { flex-direction:column; align-items:center; gap:12px; margin-top:24px; }
  .r-voice-card blockquote { order:3; width:345px; padding:32px 0; font-size:16px; line-height:1.8; }

  .r-numbers { height:2340px; padding:0; background:#fff; }
  .r-numbers::after { top:auto; bottom:0; border-left-width:40px; border-right-width:40px; border-top-width:48px; }
  .r-numbers__deco { left:8px; top:0; width:118px; height:111px; }
  .r-numbers__inner { top:13px; height:2279px; border-radius:0; padding:80px 15px 60px; background:linear-gradient(-88.2228deg,#08c271 4.8524%,#0da44f 96.441%); }
  .r-numbers .r-heading__en { margin-bottom:32px; font-size:40px; line-height:28px; }
  .r-numbers .r-heading h2 { margin-bottom:40px; color:#fff; font-size:20px; line-height:15px; }
  .r-numbers .r-heading > p:last-child { color:#fff !important; font-size:16px; line-height:12px; }
  .r-number-grid { display:flex; flex-direction:column; gap:20px; margin-top:56px; }
  .r-number-card { width:345px; height:260px; padding:23px 20px; border-radius:24px; }
  .r-number-card > span { padding:8px 10px; font-size:14px; }
  .r-number-card > img { right:15.158px; top:11.463px; width:107.684px; height:136.073px; }
  .r-number-card:nth-child(2) > img { right:19.043px; top:11.179px; width:102.789px; height:109.642px; }
  .r-number-card:nth-child(3) > img { right:23.01px; top:10.963px; width:108.271px; height:108.073px; }
  .r-number-card:nth-child(4) > img { right:10.418px; top:5.853px; width:102.789px; height:79.295px; }
  .r-number-card:nth-child(5) > img { right:0; top:1.337px; width:137.052px; height:124.326px; }
  .r-number-card:nth-child(6) > img { right:20.138px; top:6.262px; width:92.932px; height:121.477px; }
  .r-number-card__value { margin-top:29px; font-size:68px; line-height:1; letter-spacing:0; }
  .r-number-card__value small { margin-left:5px; font-size:27px; }
  .r-number-card__value--wide { font-size:54px; letter-spacing:-3px; }
  .r-number-card__value--text { font-family:"Noto Sans JP",sans-serif; font-size:48px; font-weight:700; line-height:1; letter-spacing:-.06em; }
  .r-number-card > p:last-child { left:28px; right:28px; bottom:24px; font-size:16px; line-height:1.8; }
  .r-numbers__message { margin-top:40px; }
  .r-numbers__message h3 { font-size:24px; line-height:1.2; }
  .r-numbers__message > p { margin:40px 0 28px; font-size:16px; line-height:1.5; }
  .r-numbers__message .r-pill { width:200px; height:60px; }

  .r-growth { height:5361px; padding:0; background:#fff; }
  .r-growth__crane { display:none; }
  .r-growth__inner { display:none; }
  .r-three-years { top:3330px; bottom:auto; height:1951px; padding-top:80px; background:linear-gradient(-88.8336deg,#08c271 4.8524%,#0da44f 96.441%); }
  .r-three-years > h3 { margin-bottom:12px; font-size:20px; line-height:1.3; }
  .r-three-years__lead { width:300px; margin:0 auto 28px; font-size:12px; }
  .r-three-years__cards { display:flex; flex-direction:column; width:300px; border-radius:24px; }
  .r-three-years__cards article { width:300px; min-height:343px; border:0; border-bottom:1px solid #dadada; padding:32px 24px; }
  .r-three-years__cards img { width:252px; height:164px; margin-bottom:28px; }
  .r-three-years__cards h4 { margin-bottom:26px; font-size:15px; }
  .r-three-years__cards p { font-size:13px; }

  .r-mentor { height:19483px; padding-top:0; }
  .r-mentor__inner { width:345px; margin:0 auto; }
  .r-mentor__top { display:flex; flex-direction:column; gap:40px; }
  .r-mentor .r-heading { width:345px; }
  .r-mentor .r-heading__en { margin-bottom:32px; font-size:48px; line-height:.82; }
  .r-mentor .r-heading h2 { margin-bottom:40px; font-size:20px; line-height:15px; }
  .r-mentor .r-heading > p:last-child { font-size:16px; line-height:24.75px; }
  .r-mentor__top > img { width:345px; height:246px; border-radius:24px; }
  .r-mentor__cards { display:none; }
  .r-benefits,.r-daily,.r-entry { display:none; }
  br.r-sp-only { display:inline; }
}

@media (max-width: 374px) {
  .r-before,.r-voice,.r-numbers,.r-growth,.r-mentor { width:375px; transform-origin:top left; transform:scale(calc(100vw / 375)); }
}

.r-first-month__sp { display:none; }

/* Smartphone completion design — source: 採用-sp髙橋修正版.png / Figma 2335:2501 */
@media (max-width: 768px) {
  .recruit-page .page { min-height:34851px; background:#fff; }
  .recruit-page .header { display:flex !important; width:100%; padding:10px 15px 0; }
  .recruit-page .header__logo { width:112px; height:30px; }
  .recruit-page .header__burger { width:44px; height:44px; border-radius:7px; }
  .recruit-page .mobile-menu[hidden] { display:none !important; }
  .recruit-page .mobile-menu:not([hidden]) { display:flex !important; }
  .recruit-page main { width:100%; }

  .r-heading__en { font-size:40px; line-height:.82; letter-spacing:-.025em; }
  .r-heading h2 { font-size:16px; line-height:1.55; }
  .r-heading h2 em { font-size:17px; }
  .r-heading > p:last-child:not(.r-heading__en) { font-size:12px; line-height:1.8; }
  .r-heading--center .r-heading__en { margin-bottom:22px; }
  .r-heading--center h2 { margin-bottom:20px; }
  .r-pill { width:160px; height:44px; font-size:12px; }
  .r-pill--wide { width:auto; min-width:160px; padding:0 34px 0 18px; }
  .r-pill span { right:10px; }
  .r-ctas { gap:8px; justify-content:center; }

  /* Hero 0–795 */
  .r-hero { height:795px; overflow:hidden; }
  .r-hero__blob--main { left:152.334px; top:39.445px; width:293.007px; height:370.522px; object-fit:fill; transform:rotate(42deg); }
  .r-hero__blob--sub { display:block; left:153.087px; top:57.118px; width:58.773px; height:74.322px; transform:rotate(42deg); }
  /* 42deg回転で見た目の幅が77pxになるため、画面右端で見切れないよう内側へ寄せる */
  .r-hero__blob--small { display:block; left:min(339.13px, calc(100vw - 71px)); top:378.526px; width:48.684px; height:61.563px; transform:rotate(41.13deg); }
  .r-hero__copy { display:block; left:15px; top:112px; width:345px; height:860px; }
  .r-hero h1 { position:absolute; left:29px; top:0; height:280px; margin:0; color:var(--r-ink); font-size:28px; line-height:1.25; letter-spacing:.08em; writing-mode:vertical-rl; }
  .r-hero__lead { position:absolute; left:0; top:78px; height:245px; margin:0; font-size:12px; line-height:1.45; letter-spacing:.08em; writing-mode:vertical-rl; }
  .r-hero__text { position:absolute; left:0; top:386px; width:345px; margin:0; font-size:12px; font-weight:500; line-height:1.9; }
  .r-hero .r-ctas { position:absolute; left:0; top:594px; width:345px; }

  /* Movie */
  .r-movie { padding:40px 15px 0; }
  .r-movie__frame { width:100%; border-radius:16px; }

  /* Job overview 795–2116 */
  .r-overview { display:block; height:1321px; padding-top:48px; }
  .r-overview__deco { display:none; }
  .r-overview > .r-heading { width:345px; margin:0 auto; }
  .r-overview > .r-heading .r-heading__en { width:205px; margin-left:auto; margin-right:auto; font-size:42px; line-height:.92; }
  .r-overview__panel { width:375px; height:875px; margin:36px auto 0; border-radius:24px; padding-top:34px; }
  .r-overview__panel h3 { margin-bottom:24px; font-size:16px; }
  .r-overview__watermark { top:72px; left:8px; font-size:28px; }
  .r-job-grid { grid-template-columns:repeat(2,160px); gap:10px; }
  .r-info-card { width:160px; height:160px; border:0; border-radius:28px; padding:20px 10px 12px; }
  .r-info-card img { width:50px; height:46px; margin-bottom:8px; }
  .r-info-card h4 { font-size:13px; line-height:1.5; }
  .r-info-card p { font-size:10px; line-height:1.5; }
  .r-info-card--dorm { padding-top:52px; }
  .r-info-card--dorm img { width:50px; height:40px; margin-bottom:8px; }
  .r-overview__after { margin-top:30px; }
  .r-overview__after > p { margin-bottom:18px; font-size:12px; }

  /* About 2116–4292 */
  .r-about { display:block; height:2176px; padding-top:44px; }
  .r-about > .r-heading { width:345px; margin:0 auto; }
  .r-about > .r-heading .r-heading__en { width:225px; margin-left:auto; margin-right:auto; font-size:40px; line-height:.88; }
  .r-about__layout { display:flex; flex-direction:column; gap:20px; width:345px; margin:34px auto 0; }
  .r-about__photos { width:345px; height:520px; }
  .r-about__photo--main { left:0; top:0; width:345px; height:246px; }
  .r-about__photo--sub { left:0; top:270px; width:202px; height:234px; }
  .r-about__photo--mini { left:218px; top:270px; width:127px; height:183px; }
  .r-about__graphic { display:block; right:1px; bottom:2px; width:75px; height:93px; }
  .r-about__graphic-pc { display:none; }
  .r-about__copy { width:345px; }
  .r-about__copy > h3 { margin-bottom:14px; font-size:18px; line-height:1.5; }
  .r-about__copy > p { width:325px; margin-bottom:22px; font-size:13px; line-height:1.95; }
  .r-methods { gap:12px; margin-top:38px; }
  .r-methods li { height:180px; border-radius:6px; padding:12px 14px; }
  .r-methods h4 { gap:7px; height:31px; font-size:13px; }
  .r-methods h4 span { font-size:20px; }
  .r-methods strong,.r-methods small { padding-left:4px; white-space:normal; }
  .r-methods strong { margin-top:10px; font-size:11px; line-height:1.55; }
  .r-methods small { margin-top:6px; font-size:9px; line-height:1.55; }

  /* Existing Before / Voice / Numbers geometry remains tied to Figma. */
  .r-before,.r-voice,.r-numbers,.r-growth,.r-mentor { width:auto; transform:none; }

  /* Growth steps 10007–15368 */
  .r-growth { height:5361px; padding:0; background:#fff; }
  .r-growth__inner { display:block; width:375px; height:3330px; margin:0; padding:176px 15px 0; background:linear-gradient(#fff 0 620px,#f8f8f8 620px 1150px,#fff 1150px); }
  .r-growth .r-heading { display:none; }
  .r-growth__deco--pc { display:none; }
  .r-growth__deco--sp { display:block; right:65px; top:14px; width:75px; height:115px; }
  .r-first-month { margin:0; text-align:center; }
  .r-first-month > h3 { margin:0 0 22px; font-size:0; line-height:1; }
  .r-first-month > h3:first-child::before { content:'FIRST MONTH'; display:block; color:var(--r-green); font-family:var(--font-en); font-size:28px; font-weight:600; text-align:left; }
  .r-first-month > h3:first-child::after { content:'入社後最初の5日で教育体験'; display:block; margin-top:14px; color:var(--r-ink); font-size:12px; text-align:left; }
  .r-first-month > img { display:none; }
  .r-first-month__sp { display:flex; flex-direction:column; width:300px; margin:48px auto 32px; overflow:hidden; border:1px solid #e3e3e3; border-radius:4px; background:#fff; }
  .r-first-month__sp span { display:block; width:300px; height:430px; border-bottom:1px solid #e3e3e3; background-image:url('../assets/recruit/recruit-first-month-image-002.png'); background-repeat:no-repeat; background-size:1500px 394px; background-position-y:center; }
  .r-first-month__sp span:nth-child(1){background-position-x:0}.r-first-month__sp span:nth-child(2){background-position-x:-300px}.r-first-month__sp span:nth-child(3){background-position-x:-600px}.r-first-month__sp span:nth-child(4){background-position-x:-900px}.r-first-month__sp span:nth-child(5){background-position-x:-1200px}
  .r-first-month > h3:nth-of-type(2) { margin:0 0 18px; color:var(--r-green); font-size:18px; }
  .r-learn-columns { display:flex; flex-direction:column; gap:18px; width:345px; margin:0; }
  .r-learn-columns article { min-height:200px; }
  .r-learn-columns article > strong { width:76px; margin:0 auto 12px; padding:6px; font-size:11px; }
  .r-learn-columns li { min-height:40px; padding:10px 8px; font-size:10px; line-height:1.45; }
  .r-three-years { top:3330px; bottom:auto; height:1951px; padding-top:80px; }

  /* Mentor 15368–16598 */
  .r-mentor { height:1230px; padding-top:64px; overflow:hidden; }
  .r-mentor__inner { width:345px; margin:0 auto; }
  .r-mentor__top { gap:34px; }
  .r-mentor .r-heading__en { margin-bottom:22px; font-size:40px; line-height:.83; }
  .r-mentor .r-heading h2 { margin-bottom:22px; font-size:16px; }
  .r-mentor .r-heading > p:last-child { font-size:12px; line-height:1.75; }
  .r-mentor__top > img { width:345px; height:246px; border-radius:18px; }
  .r-mentor-slider { width:345px; margin-top:34px; overflow:hidden; }
  .r-mentor__cards { display:flex; width:auto; margin:0; }
  .r-mentor__cards article { flex:0 0 250px; width:250px; height:430px; }
  .r-mentor__cards article > img { height:210px; }
  .r-mentor__cards article:nth-child(1) > img { content:url('../assets/shared/support-mentor-planning.webp'); }
  .r-mentor__cards article:nth-child(2) > img { content:url('../assets/shared/support-site-supervision.webp'); }
  .r-mentor__cards article:nth-child(3) > img { content:url('../assets/shared/support-craftsman.webp'); }
  .r-mentor__cards article:nth-child(4) > img { content:url('../assets/shared/support-specialist-work.webp'); }
  .r-mentor__cards small { left:12px; top:188px; }
  .r-mentor__cards h3,.r-mentor__cards strong,.r-mentor__cards p { margin-left:14px; margin-right:14px; }
  .r-mentor__nav { display:none; }

  /* Benefits 16598–18783 */
  .r-benefits { display:block; height:2185px; padding-top:78px; }
  .r-benefits__inner { width:345px; margin:0 auto; }
  .r-benefits .r-heading__en { margin-bottom:22px; font-size:40px; }
  .r-benefits .r-heading h2 { font-size:13px; }
  .r-benefit-grid { grid-template-columns:repeat(2,168px); gap:9px; margin-top:34px; }
  .r-benefit-grid article { width:168px; height:156px; border-radius:28px; padding:12px 8px; }
  .r-benefit-grid img { width:54px; height:49px; margin-bottom:7px; }
  .r-benefit-grid article:nth-child(5) img { content:url('../assets/recruit/job-hours.svg'); }
  .r-benefit-grid article:nth-child(6) img { content:url('../assets/recruit/job-holiday.svg'); }
  .r-benefit-grid article:nth-child(7) img,.r-benefit-grid article:nth-child(9) img,.r-benefit-grid article:nth-child(11) img { content:url('../assets/recruit/job-condition.svg'); }
  .r-benefit-grid article:nth-child(8) img,.r-benefit-grid article:nth-child(12) img { content:url('../assets/recruit/benefit-dormitory.svg'); }
  .r-benefit-grid article:nth-child(10) img { content:url('../assets/recruit/job-holiday.svg'); }
  .r-benefit-grid h3 { font-size:12px; line-height:1.35; }
  .r-benefit-grid p { margin-top:6px; font-size:10px; }
  .r-dorm { position:relative; display:block; width:345px; height:720px; margin-top:34px; border-radius:24px; padding:30px 22px; }
  .r-dorm h3 { font-size:22px; line-height:1.2; }
  .r-dorm h3::before { content:'! '; }
  .r-dorm h4 { margin:18px 0; font-size:14px; line-height:1.6; }
  .r-dorm ul { position:absolute; left:22px; right:22px; top:378px; gap:8px; }
  .r-dorm li { width:max-content; max-width:100%; padding:9px 12px; font-size:10px; }
  .r-dorm > img { position:absolute; left:22px; top:142px; width:210px; height:190px; margin:0; border-radius:18px; object-fit:cover; }
  .r-dorm > div { display:block; }

  /* Daily scenes 18783–19251 */
  .r-daily { display:block; height:468px; padding-top:72px; overflow:hidden; }
  .r-daily::before { content:''; position:absolute; z-index:2; left:6px; top:-28px; width:92px; height:92px; background:url('../assets/recruit/recruit-before-after-crane.svg') center/contain no-repeat; }
  .r-daily .r-heading { width:345px; margin:0 auto; }
  .r-daily .r-heading__en { width:210px; margin:0 auto 20px; font-size:40px; line-height:.8; }
  .r-daily .r-heading > p:last-child { font-size:11px; line-height:1.65; }
  .r-daily__photos { left:50%; top:240px; gap:8px; width:520px; }
  .r-daily__photos img { width:96px; height:126px; border-radius:10px; }
  .r-daily__photos img:nth-child(1){margin-top:26px}.r-daily__photos img:nth-child(2){margin-top:0}.r-daily__photos img:nth-child(3){margin-top:18px}.r-daily__photos img:nth-child(4){margin-top:6px}.r-daily__photos img:nth-child(5){margin-top:38px}

  /* Entry 19251–20990 */
  .r-entry { display:block; height:1739px; padding-top:64px; }
  .r-entry__inner { display:flex; flex-direction:column; gap:0; width:345px; margin:0 auto; }
  .r-entry .r-heading__en { margin-bottom:22px; font-size:40px; }
  .r-entry .r-heading h2 { margin-bottom:20px; font-size:16px; }
  .r-entry .r-heading > p:last-child { font-size:11px; line-height:1.85; }
  .r-entry__copy { display:contents; }
  .r-form { order:2; padding-top:52px; }
  .r-form > h3 { margin-bottom:24px; font-size:14px; }
  .r-form label { margin-bottom:16px; font-size:11px; }
  .r-form em { margin-left:6px; padding:3px 6px; font-size:8px; }
  .r-form input,.r-form textarea { margin-top:8px; padding:12px; font-size:10px; }
  .r-form input { height:48px; }
  .r-form textarea { height:100px; }
  .r-form .r-pill { margin-top:20px; }
  .r-line { order:3; width:345px; min-height:650px; margin-top:22px; padding:44px 20px 20px; }
  .r-line h3 { font-size:15px; }.r-line p { margin-top:12px; font-size:10px; }.r-line img { width:116px; height:116px; margin:16px auto; }.r-line small { font-size:8px; }

  /* Footer 20990–21459。Figmaのフレームには下に空白があったが、実装では
     他ページのフッターと同じく中身なりの高さにする（固定469pxだと約174pxの
     グリーンの余白が残るため）。 */
  .recruit-page .footer.recruit-footer { display:block !important; height:auto; min-height:0; border-radius:24px 24px 0 0; padding:42px 20px 24px; }
  .recruit-footer .footer__inner { gap:28px; }
  .recruit-footer .footer__brand { width:100%; }
  .recruit-footer .footer__brand-main { width:100%; }
  .recruit-footer .footer__logo { width:300px; height:58px; }
  .recruit-footer .footer__tagline { margin-top:20px; font-size:10px; line-height:1.7; }
  .recruit-footer .footer__addr { margin-top:18px; font-size:10px; line-height:1.6; }
  .recruit-footer .footer__bottom { margin-top:0; padding-top:18px; }
  .recruit-footer .footer__copy { font-size:8px; text-align:center; }

  /* Smartphone section-flow corrections: Figma 2335:2501 */
  .recruit-page .page { min-height:0; }

  .r-about { height:auto; padding-bottom:80px; }
  .r-about__graphic {
    content:url('../assets/recruit/about-team-sp.png');
    left:219px;
    right:auto;
    top:415px;
    bottom:auto;
    width:90px;
    height:92px;
  }
  .r-methods { gap:16px; }
  .r-methods li { height:auto; min-height:0; padding:20px 24px; }
  .r-methods h4 { gap:11px; height:auto; min-height:44px; font-size:20px; line-height:1.5; }
  .r-methods h4 span { font-size:30px; line-height:1.5; }
  .r-methods strong { margin-top:15px; padding-left:10px; font-size:16px; line-height:1.5; }
  .r-methods small { margin-top:4px; padding-left:10px; font-size:14px; line-height:1.5; }

  .r-growth { height:auto; }
  .r-growth__inner {
    height:auto;
    padding:257px 15px 90px;
    background:linear-gradient(#fff 0 620px,#f8f8f8 620px 1150px,#fff 1150px);
  }
  .r-growth__deco--sp {
    content:url('../assets/recruit/growth-workers-sp.svg');
    right:13px;
    top:70px;
    width:105px;
    height:159.172px;
  }
  .r-first-month__sp {
    display:flex;
    gap:20px;
    width:300px;
    margin:48px auto 56px;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
  }
  .r-first-month__sp img { display:block; width:300px; height:auto; }
  .r-first-month__sp img:first-child {
    border-radius:24px 24px 0 0;
    clip-path:inset(0 round 24px 24px 0 0);
  }
  .r-first-month__sp img:last-child {
    border-radius:0 0 24px 24px;
    clip-path:inset(0 round 0 0 24px 24px);
  }
  .r-learn-columns { gap:32px; }
  .r-learn-columns article { min-height:0; }
  .r-learn-columns article > strong {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100px;
    min-height:40px;
    margin:0 auto 22px;
    padding:8px 12px;
    font-size:16px;
  }
  .r-learn-columns ul { display:flex; flex-direction:column; gap:6px; }
  .r-learn-columns li {
    min-height:44px;
    padding:8px 0;
    font-size:16px;
    line-height:1.5;
    white-space:normal;
  }

  .r-three-years {
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    height:auto;
    padding:80px 0;
  }
  .r-three-years__cards { overflow:hidden; }
  .r-three-years__cards article { height:auto; min-height:343px; }
  .r-three-years__cards h4 { margin-bottom:20px; }
  .r-three-years__cards p { line-height:1.2; }

  .r-mentor { height:auto; min-height:1230px; padding-bottom:80px; }

  /* Figma follow-up: mentor controls and exact SP card geometry. */
  .r-mentor-slider {
    width:347px;
    margin-left:13px;
  }
  .r-mentor__cards article {
    flex-basis:300px;
    width:300px;
    height:431px;
    border-radius:16px;
  }
  .r-mentor__cards article > img {
    width:300px;
    height:280px;
    border-radius:16px 16px 0 0;
  }
  .r-mentor__cards small { left:19px; top:242px; }
  .r-mentor__cards h3,.r-mentor__cards strong,.r-mentor__cards p {
    margin-left:20px;
    margin-right:20px;
  }
  .r-mentor__nav {
    display:flex;
    justify-content:flex-end;
    width:346px;
    margin:44px 0 0 13px;
  }

  /* JOB: mobile places the section before BENEFITS, matching the SP frame. */
  .r-job-details { order:-1; width:100%; height:auto; padding:102px 15px 80px; }
  .r-job-details__inner { width:min(345px,calc(100vw - 30px)); margin:0 auto; }
  .r-job-details__heading { width:100%; height:81px; margin:0 auto 48px; color:var(--r-green); }
  .r-job-tabs { gap:12px; margin-bottom:36px; }
  .r-job-tabs__button { min-height:52px; padding:12px 8px; font-size:16px; }
  .r-job-details__en { font-size:48px; line-height:.71; }
  .r-job-details__heading h2 { margin-top:32px; color:var(--r-ink); font-size:20px; line-height:1.5; }
  .r-job-details__list { gap:20px; }
  .r-job-details__row { display:flex; flex-direction:column; min-height:0; padding-bottom:0; }
  .r-job-details__row dt { width:150px; font-size:16px; line-height:1.5; }
  .r-job-details__row dd { width:100%; padding:20px 0; font-size:15px; line-height:1.5; }
  .r-job-details__salary-body { gap:30px; padding-top:20px; }
  .r-job-details__salaries { grid-template-columns:116px 116px; justify-content:space-between; column-gap:0; width:min(334px,100%); line-height:1.4; }

  /* Figma follow-up: restore the 167px benefits cards and remove fixed-height residue. */
  .r-benefits {
    height:auto;
    min-height:0;
    padding-top:96px;
    padding-bottom:80px;
  }
  .r-benefit-grid {
    grid-template-columns:repeat(2,167px);
    gap:11px;
    margin-top:40px;
  }
  .r-benefit-grid article { width:167px; height:167px; }
  .r-dorm {
    width:346px;
    height:600px;
    margin-top:40px;
  }
  .r-dorm > img {
    left:30px;
    top:180px;
    width:285px;
    height:155px;
  }

  /* Let the mobile entry content determine its own height. */
  .r-entry {
    height:auto;
    padding-bottom:80px;
  }
  .r-line {
    height:auto;
    min-height:0;
    padding:32px 20px;
  }

  /* Figma follow-up: exact DAILY crane and staggered 126px photo collage. */
  .r-daily {
    height:589px;
    padding-top:80px;
    overflow:visible;
    background:#e7f6ed;
  }
  .r-daily::before {
    left:19px;
    top:-50px;
    width:118px;
    height:102px;
    background-image:url('../assets/recruit/daily-scenes-deco-sp.png');
  }
  .r-daily .r-heading__en {
    width:210px;
    margin-bottom:20px;
    font-size:40px;
    line-height:.8;
  }
  .r-daily .r-heading h2 {
    margin-bottom:12px;
    font-size:14px;
  }
  .r-daily .r-heading > p:last-child {
    font-size:11px;
    line-height:1.65;
  }
  .r-daily__photos {
    display:block;
    left:0;
    top:0;
    width:100%;
    height:589px;
    transform:none;
  }
  .r-daily__photos img {
    position:absolute;
    width:126px;
    height:126px;
    margin:0 !important;
    border-radius:16px;
    object-fit:cover;
  }
  .r-daily__photos img:nth-child(1) {
    left:-4px;
    top:336px;
    content:url('../assets/recruit/recruit-daily-scene-new-05.jpeg');
  }
  .r-daily__photos img:nth-child(2) {
    left:136px;
    top:356px;
    content:url('../assets/recruit/recruit-daily-scene-new-02.jpeg');
  }
  .r-daily__photos img:nth-child(3) {
    left:277px;
    top:341px;
    content:url('../assets/recruit/recruit-daily-scene-new-03.jpeg');
  }
  .r-daily__photos img:nth-child(4) {
    left:52px;
    top:446px;
    content:url('../assets/recruit/recruit-daily-scene-new-04.jpeg');
  }
  .r-daily__photos img:nth-child(5) {
    left:231px;
    top:462px;
    content:url('../assets/recruit/recruit-daily-scene-new-01.jpeg');
  }
  br.r-sp-only { display:inline; }
}


/* ========================================
   社員寮 写真スライダー
======================================== */

.r-dorm__slider {
  width: 408px;
  height: 353px;
  min-width: 0;
  overflow: hidden;
  border-radius: 40px;
}

.r-dorm__slider .swiper-slide {
  width: 100%;
  height: 100%;
}

.r-dorm__slider .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.r-dorm__slider .swiper-pagination-bullet {
  background: #fff;
  opacity: 0.6;
}

.r-dorm__slider .swiper-pagination-bullet-active {
  opacity: 1;
}

/* スマートフォン */
@media (max-width: 768px) {
  .r-dorm__slider {
    position: absolute;
    left: 22px;
    top: 142px;
    width: 210px;
    height: 190px;
    margin: 0;
    border-radius: 18px;
  }
}