@charset "UTF-8";

/* ============================================================
   アイドラッグ求人 ｜ マーブル背景デザイン見本
   メッシュグラデーション（画像ゼロ・軽量）
   ============================================================ */

:root{
  --pink:    255,150,180;  /* 桜ピンク */
  --apricot: 255,206,140;  /* やさしい橙 */
  --blue:    160,200,255;  /* 水色      */
  --mint:    175,240,200;  /* 若葉      */
  --rose:    255,170,200;  /* 薄紅      */
  --text:    #5b4953;       /* 文字（ピンク寄りのこげ茶） */
}

*{ box-sizing:border-box; margin:0; padding:0; }

/* img に width/height 属性を付けると、その値がCSSの実寸として効いてしまう。
   height:auto を1行入れておかないと、width:100% だけ指定した画像が縦に伸びたり
   aspect-ratio が無視されたりする（属性はレイアウトずれ防止に必要なので消さない）。 */
img{ height:auto; }

html{
  background:#fff;
  scroll-behavior:smooth;
  /* ヘッダーが固定なので、#リンクで飛んだとき見出しが隠れないよう余白をとる */
  scroll-padding-top:110px;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

body{
  font-family:"Noto Sans JP", sans-serif;
  color:var(--text);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}

.site-header,
.hero,
.section,
.site-footer{ position:relative; z-index:1; }

/* 固定背景（ヒーローのパララックス）が透けないよう、後続セクションは白を明示 */
.message,
.news,
.gallery,
.reason{ background:#fff; }

/* ============================================================
   共通レイアウト
   ============================================================ */
.container{
  width:min(1080px, 88%);
  margin-inline:auto;
}

/* ヘッダー */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px clamp(20px,5vw,48px);
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  /* 最初は隠す → スクロールで出す */
  transform:translateY(-100%);
  opacity:0;
  transition:transform .45s cubic-bezier(.16,.84,.27,1), opacity .45s ease;
}
.site-header.is-visible{
  transform:translateY(0);
  opacity:1;
}
.site-header__logo{
  display:inline-flex; align-items:center;
  line-height:0;
}
.site-header__logo img{
  height:clamp(34px,4.5vw,50px);
  width:auto; display:block;
}
/* ===== PC用ナビ ===== */
.site-nav{
  display:flex; align-items:center; gap:clamp(20px,2.6vw,44px);
}
.site-nav a{
  text-decoration:none; color:#1a1a1a; font-weight:500; font-size:16px;
  position:relative; white-space:nowrap;
}
.site-nav a:not(.site-nav__entry)::after{
  content:""; position:absolute; left:0; bottom:-5px; width:0; height:2px;
  background:#8dc21f; transition:width .3s;
}
.site-nav a:not(.site-nav__entry):hover::after{ width:100%; }
.site-nav a.site-nav__entry{
  padding:13px 28px; border-radius:999px;
  background:#8dc21f; color:#fff; font-weight:700; font-size:16px;
  transition:transform .25s, box-shadow .25s;
  /* 見学ボタンとはセット扱い＝間隔を10pxに詰める（gapとの差分を打ち消す） */
  margin-left:calc(10px - clamp(20px,2.6vw,44px));
}
.site-nav a.site-nav__entry:hover{ transform:translateY(-2px); }
/* 見学・インターンの白抜きボタン（緑ボタンの隣に並べる） */
.site-nav a.site-nav__intern{
  padding:11px 20px; border-radius:999px;
  border:2px solid #8dc21f;
  background:#fff; color:#6a9316; font-weight:700; font-size:15px;
  transition:background .25s, transform .25s;
}
.site-nav a.site-nav__intern::after{ content:none; }
.site-nav a.site-nav__intern:hover{ background:#f2f8e3; transform:translateY(-2px); }

/* ===== 右上ハンバーガー（スマホ用） ===== */
.hamburger{
  position:fixed; top:14px; right:clamp(14px,4vw,40px); z-index:60;
  width:54px; height:54px; border:0; cursor:pointer;
  display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px;
  background:rgba(255,255,255,.6);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border-radius:50%;
  box-shadow:0 6px 18px rgba(0,0,0,.10);
  transition:background .3s;
}
.hamburger span{
  display:block; width:24px; height:2px; background:#1a1a1a;
  transition:transform .35s ease, opacity .25s ease, background .3s;
}
/* 開いたとき：×印に変形・線を白に・背景を透明に */
.hamburger.is-open{ background:transparent; box-shadow:none; }
.hamburger.is-open span{ background:#fff; }
.hamburger.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.hamburger.is-open span:nth-child(2){ opacity:0; }
.hamburger.is-open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ===== 全画面メニュー ===== */
.nav-overlay{
  position:fixed; inset:0; z-index:50;
  background:rgba(18,18,20,.96);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility .4s;
}
.nav-overlay.is-open{ opacity:1; visibility:visible; }
.nav-overlay__list{ list-style:none; text-align:center; }
.nav-overlay__list li{
  margin:clamp(18px,3.5vh,30px) 0;
  opacity:0; transform:translateY(18px);
  transition:opacity .5s ease, transform .5s ease;
}
.nav-overlay.is-open .nav-overlay__list li{ opacity:1; transform:none; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(1){ transition-delay:.12s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(2){ transition-delay:.20s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(3){ transition-delay:.28s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(4){ transition-delay:.36s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(5){ transition-delay:.44s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(6){ transition-delay:.52s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(7){ transition-delay:.60s; }
.nav-overlay.is-open .nav-overlay__list li:nth-child(8){ transition-delay:.68s; }
.nav-overlay__list a{
  display:inline-flex; align-items:baseline; gap:14px;
  color:#fff; text-decoration:none;
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(22px,4vw,34px); letter-spacing:.04em;
  transition:opacity .25s;
}
.nav-overlay__list a span{
  font-weight:400; font-size:clamp(12px,1.7vw,14px);
  letter-spacing:.2em; color:#8dc21f;
}
.nav-overlay__list a:hover{ opacity:.6; }
/* 幅の狭い端末で、右側の英字が画面の端に貼りつかないよう余白をとる */
@media (max-width:430px){ .nav-overlay__list{ padding-inline:16px; } }

/* ===== PC：メニューは横並び表示（ヘッダー自体はヒーロー後に出現） ===== */
@media (min-width:1240px){
  .site-header{
    padding-right:clamp(86px,9vw,120px);        /* 右端ハンバーガーぶんの余白 */
  }
}
/* 1240〜1439px：2ボタン＋リンクが収まるようコンパクト表示 */
@media (min-width:1240px) and (max-width:1439px){
  .site-header{ padding-left:20px; }
  .site-nav{ gap:17px; }
  .site-nav a{ font-size:14.5px; }
  .site-nav a.site-nav__intern{ font-size:13.5px; padding:10px 14px; }
  .site-nav a.site-nav__entry{ font-size:14.5px; padding:11px 18px; margin-left:-7px; }  /* 17px gap→ボタン間10px */
}
/* ===== タブレット以下：PCナビを隠してハンバーガーのみ ===== */
@media (max-width:1239px){
  .site-nav{ display:none; }
}

/* ============================================================
   ヒーロー（モノクロ写真の上にコピーを重ねる）
   写真は images/hero-bg.jpg（同名で差し替え可能）
   ============================================================ */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  overflow:hidden;
  display:grid; place-items:center;
  padding:80px 20px;
  text-align:center;
  background:#0c0c0e;               /* 画像読み込み中の下地 */
}
/* パララックス：背景写真を画面に固定し、下のセクションが上に被さっていく */
.hero__bg{
  position:fixed; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  z-index:0;
  opacity:0;
  transition:opacity .7s ease;
}
/* 読み込み完了でフェードイン＋ゆっくり寄るズーム */
.hero__bg.is-loaded{
  opacity:1;
  animation:heroZoom 2.8s ease-out both;
}
@keyframes heroZoom{
  from{ transform:scale(1.07); }
  to  { transform:scale(1); }
}
/* 周辺を落とすビネットと上部の薄い影（文字を引き立てる） */
.hero::after{
  content:"";
  position:absolute; inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.26), transparent 26%),
    radial-gradient(120% 95% at 50% 42%, transparent 52%, rgba(0,0,0,.44) 100%);
}
@media (prefers-reduced-motion: reduce){
  .hero__bg{ position:absolute; opacity:1; transition:none; }
  .hero__bg.is-loaded{ animation:none; }
}
.hero__inner{
  position:relative;
  z-index:1;
  max-width:900px;
}

/* 下スクロールの案内（SCROLL＋流れるライン） */
.hero__scroll{
  position:absolute; left:50%; bottom:0;
  transform:translateX(-50%);
  z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:#fff; text-decoration:none;
}
.hero__scroll-txt{
  font-size:11px; font-weight:500;
  letter-spacing:.32em; text-indent:.32em;
}
.hero__scroll-line{
  width:1px; height:58px;
  position:relative; overflow:hidden;
  background:rgba(255,255,255,.25);
}
.hero__scroll-line::after{
  content:"";
  position:absolute; left:0; top:-100%;
  width:100%; height:100%;
  background:#fff;
  animation:scrollLine 1.9s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes scrollLine{
  0%  { top:-100%; }
  55% { top:0; }
  100%{ top:100%; }
}
@media (prefers-reduced-motion: reduce){
  .hero__scroll-line::after{ animation:none; top:0; }
}

.hero__title{
  font-family:"Noto Sans JP", sans-serif;
  line-height:1.34;
  margin-bottom:clamp(20px,3.5vw,34px);
}
/* 1行ずつマスクの中から迫り上がって登場 */
.hero__title .line{
  display:block;
  overflow:hidden;
  padding:0 .12em;            /* はみ出す字面を切らないための余白 */
}
.hero__title .line > i{
  display:block;
  font-style:normal;
  transform:translateY(116%);
  animation:riseUp 1s cubic-bezier(.16,.84,.27,1) forwards;
}
.hero__title .line:nth-child(1) > i{ animation-delay:.15s; }
.hero__title .line:nth-child(2) > i{ animation-delay:.32s; }

/* 2行とも同じ大きさ・同じ太さ */
.hero__title .line > i{
  font-weight:900;
  font-size:clamp(44px,12vw,116px);
}
/* 1行目：グリーン・字間広め */
.hero__title .line--accent > i{
  color:#8dc21f;
  letter-spacing:.22em;
  margin-right:-.22em;        /* 末尾の字間ぶん中央補正 */
}
/* 2行目：白 */
.hero__title .line--main > i{
  color:#fff;
  letter-spacing:.05em;
  margin-right:-.05em;
  text-shadow:0 0 10px rgba(0,0,0,.35), 0 3px 28px rgba(0,0,0,.4);  /* 明るい手元に重なっても読めるように */
}

@keyframes riseUp{ to{ transform:translateY(0); } }

/* サブ文：白の欧文・遅れてフェードイン */
.hero__tagline{
  font-family:"Noto Sans JP", sans-serif; font-weight:500;
  color:#fff;
  font-size:clamp(12px,1.8vw,16px);
  letter-spacing:.34em; text-indent:.34em;   /* 字間ぶん中央補正 */
  text-shadow:0 0 6px rgba(0,0,0,.55), 0 1px 18px rgba(0,0,0,.45);  /* 明るい手元に重なっても読めるように */
  opacity:0;
  animation:fadeUp 1.1s ease forwards .68s;
}

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(14px); }
  to  { opacity:1; transform:translateY(0); }
}

/* 動きを減らす設定では最初から表示 */
@media (prefers-reduced-motion: reduce){
  .hero__title .line > i{ transform:none; animation:none; }
  .hero__tagline{ opacity:1; animation:none; }
}

/* ============================================================
   メッセージ（特大見出し＋左テキスト・右下写真のアシンメトリー）
   写真は images/message/message-main.jpg（同名で差し替え可能）
   ============================================================ */
.message{
  position:relative; z-index:1;
  background:#fff;
  padding:clamp(90px,11vw,150px) 0 clamp(30px,4vw,56px);
  overflow:hidden;   /* 右端まで伸ばした写真のはみ出しを整える */
}
.message__inner{
  position:relative; z-index:1;
  width:min(1240px, 92%);
  margin-inline:auto;
}
/* 小ラベル（緑の四角＋テキスト） */
.message__label{
  display:flex; align-items:center; gap:10px;
  font-size:14px; font-weight:700; letter-spacing:.08em;
  color:#1a1a1a;
}
.message__label span{
  display:inline-block;
  width:11px; height:11px;
  background:#8dc21f;
}
/* 見出し（他セクションと同サイズ） */
.message__en{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(48px,9vw,104px);
  line-height:1; letter-spacing:.02em;
  color:#1a1a1a;
  margin:12px 0 clamp(36px,5vw,70px);
}

/* 左：テキスト（中央寄りに寄せる）／右：写真（少し下げる） */
.message__grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:clamp(30px,5vw,70px);
  align-items:start;
}
.message__body{ padding-left:clamp(0px,4vw,56px); }

.message__quotes p{
  font-weight:700; color:#1a1a1a;
  font-size:clamp(16.5px,1.9vw,20px);
  line-height:2.1;
}
.message__key{
  margin-top:clamp(24px,3vw,40px);
  font-weight:700; color:#1a1a1a;
  font-size:clamp(20px,2.4vw,32px);
  line-height:1.8;
}

/* 角ばったボタン（ラベル＋矢印を両端に） */
.message__btn{
  display:inline-flex; align-items:center; justify-content:space-between;
  gap:26px;
  min-width:min(340px, 100%);
  margin-top:clamp(30px,4vw,50px);
  padding:20px 26px;
  background:#8dc21f; color:#fff;
  font-weight:700; font-size:15.5px; letter-spacing:.06em;
  text-decoration:none;
  transition:background .25s, transform .25s;
}
.message__btn span{ transition:transform .25s; }
.message__btn:hover{
  background:#76a80f;
  transform:translateY(-2px);
}
.message__btn:hover span{ transform:translateX(6px); }

/* 写真は画面の右端まで伸ばす */
.message__photo{
  margin:clamp(20px,6vw,90px) calc((min(1240px, 92vw) - 100vw) / 2) 0 0;
  overflow:hidden;
  border-radius:8px 0 0 8px;
}
.message__photo img{
  width:100%; aspect-ratio:16 / 10;
  object-fit:cover; display:block;
}

@media (max-width:820px){
  .message__grid{ grid-template-columns:1fr; }
  .message__body{ padding-left:0; }
  .message__photo{ margin-top:14px; }
}

/* 画面に入ったらふわっと表示 */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 1s ease, transform 1s cubic-bezier(.16,.84,.27,1);
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ============================================================
   写真ギャラリー（横スクロール・擬似3D）
   perspective + translateZ で「手前=大きく速い／奥=小さく遅い」
   幅・縦位置・間隔もバラして奥行きとランダム感を出す
   ============================================================ */
.gallery{
  position:relative; z-index:1;
  overflow:hidden;
  /* 上は写真の浮き上がりぶんだけ・下は落ち込みぶんを確保 */
  padding:clamp(75px,8vw,100px) 0 clamp(110px,11vw,135px);
  perspective:1100px;            /* 遠近法の効き */
  perspective-origin:50% 50%;
}
/* 淡緑の背景を斜めに敷く（右上がり） */
.gallery::before{
  content:"";
  position:absolute; inset:0;
  background:#f4f6ec;
  clip-path:polygon(0 clamp(40px,6vw,110px), 100% 0, 100% calc(100% - clamp(40px,6vw,110px)), 0 100%);
}
.gallery__track{ position:relative; z-index:1; }

.gallery__track{
  display:flex;
  width:max-content;
  gap:0;
  align-items:center;
  transform-style:preserve-3d;   /* 子のtranslateZを3Dとして扱う */
  animation:gallerySlide 90s linear infinite;   /* 1周の時間。大きいほどゆっくり */
}
/* 写真は <img> で敷く。CSSのbackground-imageだと、同じファイル名で差し替えても
   ブラウザのキャッシュが効いて古い写真のまま表示されてしまうため。 */
.gallery__item > img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.gallery__item{
  flex:0 0 auto;
  aspect-ratio:4 / 3;
  margin:0;
  overflow:hidden;
  background:#fff;                           /* 画像未設置のときは白枠 */
  border-radius:4px;
  box-shadow:0 8px 18px rgba(0,0,0,.10);
}

/* 7枚ごとに 幅 / 奥行き(Z) / 縦位置(Y) / 間隔(margin) をバラバラに。
   Zが手前(+)ほど大きく＆速く、奥(-)ほど小さく＆遅く見える */
.gallery__item:nth-child(7n+1){
  width:25vw; margin-left:30px;
  transform:translate3d(0,-38px, 180px);   /* 手前・大きい・速い */
}
.gallery__item:nth-child(7n+2){
  width:22vw; margin-left:90px;
  transform:translate3d(0, 44px,-150px);    /* 奥・遅い */
}
.gallery__item:nth-child(7n+3){
  width:24vw; margin-left:48px;
  transform:translate3d(0,-10px, -40px);
}
.gallery__item:nth-child(7n+4){
  width:27vw; margin-left:110px;
  transform:translate3d(0, 46px, 180px);    /* いちばん手前（大きすぎたので幅と手前度を控えめに） */
}
.gallery__item:nth-child(7n+5){
  width:22vw; margin-left:66px;
  transform:translate3d(0, 18px,-90px);
}
.gallery__item:nth-child(7n+6){
  width:26vw; margin-left:80px;
  transform:translate3d(0,-30px, 120px);
}
.gallery__item:nth-child(7n+7){
  width:23vw; margin-left:70px;
  transform:translate3d(0, 30px,-60px);
}

/* 均一サイズ版（.gallery--flat）：全カット同じ大きさ・同じ高さで流す */
.gallery--flat{
  perspective:none;
  padding:clamp(60px,7vw,90px) 0;
}
.gallery--flat .gallery__item:nth-child(n){
  width:clamp(220px,24vw,340px);
  margin-left:clamp(16px,2vw,28px);
  transform:none;
}

@keyframes gallerySlide{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }   /* 複製1セットぶん動いて途切れずループ */
}

@media (prefers-reduced-motion: reduce){
  .gallery__track{ animation:none; }
}

/* ============================================================
   お知らせ（日付／カテゴリ／タイトルのリスト）
   ============================================================ */
.news{
  position:relative; z-index:1;
  padding:clamp(60px,10vw,110px) 0;
}
.news__inner{
  width:min(1200px, 90%);
  margin-inline:auto;
}
.news__en{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(44px,8.5vw,92px);
  letter-spacing:.02em; line-height:1;
  color:#1a1a1a;
}
.news__title{
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(18px,3vw,26px);
  color:#1a1a1a;
  margin:14px 0 0;
}
/* カード型（3列） */
.news__list{
  list-style:none;
  margin-top:clamp(28px,4vw,44px);
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(20px,3vw,36px);
}
.news__item a{
  display:block; height:100%;
  background:#fff;
  border:1px solid #ececec;
  border-radius:10px;
  overflow:hidden;
  text-decoration:none; color:#1a1a1a;
  box-shadow:0 10px 28px rgba(0,0,0,.05);
  transition:transform .3s, box-shadow .3s;
}
.news__item a:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 44px rgba(60,70,30,.13);
}
/* サムネイル（images/news/ 同名で差し替え可能） */
.news__thumb{
  position:relative;
  aspect-ratio:16 / 10;
  margin:0; overflow:hidden;
  background:#eee;
}
.news__thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .45s;
}
.news__item a:hover .news__thumb img{ transform:scale(1.06); }
/* カテゴリチップは写真に重ねる */
.news__cat{
  position:absolute; top:12px; left:12px;
  font-size:11.5px; font-weight:700; letter-spacing:.06em;
  color:#fff;
  background:#8dc21f;
  border-radius:999px;
  padding:5px 15px;
}
.news__info{
  display:flex; flex-direction:column; gap:8px;
  padding:18px 20px 20px;
}
.news__date{
  font-size:13px; letter-spacing:.1em; color:#999;
  font-variant-numeric:tabular-nums;
}
.news__text{
  font-size:clamp(15.5px,1.8vw,17px); font-weight:700;
  line-height:1.7;
  transition:color .25s;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.news__item a:hover .news__text{ color:#6a9316; }
/* 右下の矢印サークル */
.news__arrow{
  align-self:flex-end;
  display:grid; place-items:center;
  width:36px; height:36px;
  border:1px solid #8dc21f; border-radius:50%;
  color:#6a9316; font-size:15px; font-weight:700;
  transition:background .25s, color .25s, transform .25s;
}
.news__item a:hover .news__arrow{
  background:#8dc21f; color:#fff;
  transform:translateX(4px);
}
/* 見出し行：右に一覧リンク */
.news__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
}
.news__all{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 26px;
  border:1px solid #8dc21f; border-radius:999px;
  color:#6a9316; text-decoration:none;
  font-weight:700; font-size:14px; letter-spacing:.04em;
  transition:background .25s, color .25s;
}
.news__all span{ transition:transform .25s; }
.news__all:hover{ background:#8dc21f; color:#fff; }
.news__all:hover span{ transform:translateX(4px); }
@media (max-width:820px){
  .news__list{ grid-template-columns:1fr; }
}

/* ============================================================
   選ばれる理由・働く魅力（白カード）
   写真は images/reason/ 内（同名で差し替え可能）
   ============================================================ */
.reason{
  position:relative; z-index:1;
  padding:clamp(90px,13vw,150px) 0 clamp(100px,14vw,170px);
}
/* 淡緑の背景を斜めに敷く（左上がり） */
.reason::before{
  content:"";
  position:absolute; inset:0;
  background:#f4f6ec;
  clip-path:polygon(0 0, 100% clamp(60px,9vw,160px), 100% 100%, 0 calc(100% - clamp(60px,9vw,160px)));
}
.reason__head,
.reason__list{ position:relative; z-index:1; }
.reason__head{
  width:min(1200px, 90%);
  margin-inline:auto;
  color:#1a1a1a;
}
.reason__en{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(44px,8.5vw,92px);
  letter-spacing:.02em; line-height:1;
}
.reason__title{
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(18px,3vw,26px);
  margin:14px 0 28px;
}
.reason__lead{
  font-size:clamp(15px,1.9vw,17px); line-height:1.95; color:#333;
}

.reason__grid{
  width:min(1200px, 90%);
  margin:clamp(40px,6vw,70px) auto 0;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(20px,3vw,36px);
}
@media (max-width:960px){ .reason__grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .reason__grid{ grid-template-columns:1fr; } }

/* 白カード */
.rcard{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(0,0,0,.08);
}
.rcard__photo{
  aspect-ratio:3 / 2;
  overflow:hidden;
  background:#e9e9ec;    /* 写真未設置のときはグレー枠 */
}
.rcard__photo img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.rcard__body{
  padding:20px 24px 28px;
}
.rcard__num{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(26px,3vw,34px); line-height:1;
  color:#8dc21f; letter-spacing:.02em;
}
.rcard__title{
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(17px,2vw,20px); line-height:1.5;
  color:#1a1a1a;
  margin:10px 0;
}
.rcard__desc{
  font-size:15px; line-height:1.9; color:#444;
}

/* ============================================================
   数字で見るアイドラッグ（淡いグリーン×ベントーグリッド）
   ============================================================ */
.numbers{
  position:relative; z-index:1;
  background:#f4f6ec;
  color:#1a1a1a;
  padding:clamp(70px,12vw,130px) 0;
}
.numbers__head{
  width:min(1200px, 90%);
  margin-inline:auto;
}
/* 中項目見出し：英字は小さなアクセント、日本語を主役に */
.numbers__en{
  display:flex; align-items:center; gap:12px;
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:14px; letter-spacing:.2em; line-height:1;
  color:#8dc21f;
}
.numbers__en::before{
  content:""; display:inline-block;
  width:26px; height:2px; background:#8dc21f;
}
.numbers__title{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(27px,4.4vw,42px);
  line-height:1.4; letter-spacing:.01em;
  margin:14px 0 28px;
}
.numbers__lead{
  font-size:clamp(15px,1.9vw,17px); line-height:1.95; color:#555;
}

.numbers__grid{
  width:min(1200px, 90%);
  margin:clamp(40px,6vw,70px) auto 0;
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:clamp(14px,1.8vw,22px);
}

/* 基本タイル（4/12幅）と大タイル（6/12幅） */
.ncard{
  grid-column:span 4;
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  padding:clamp(24px,3vw,36px) clamp(20px,2.4vw,32px);
  box-shadow:0 10px 28px rgba(60,70,30,.06);
}
.ncard--wide{ grid-column:span 6; }

/* アイコンチップ＋ラベルの行 */
.ncard__head{
  display:flex; align-items:center; gap:12px;
  margin-bottom:6px;
}
.ncard__icon{
  flex:0 0 auto;
  display:grid; place-items:center;
  width:44px; height:44px;
  border-radius:12px;
  background:#eef5da;
  color:#76a51a;
}
.ncard__icon svg{ width:24px; height:24px; display:block; }
.ncard--green .ncard__icon{
  background:rgba(255,255,255,.30);
  color:#fff;
}
.ncard__label{
  font-size:15px; font-weight:700;
  letter-spacing:.08em;
  color:#6a7355;
}
.ncard__value{
  display:flex; align-items:baseline; flex-wrap:wrap;
  margin:8px 0 6px;
  line-height:1;
}
.ncard__num{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(44px,4.6vw,66px);
  color:#8dc21f;
  letter-spacing:.01em;
}
.ncard--wide .ncard__num{ font-size:clamp(52px,6vw,86px); }
.ncard__unit{
  font-weight:700; font-size:clamp(16px,1.5vw,20px);
  color:#8dc21f; margin-left:6px;
}
.ncard__note{ font-size:13px; color:#999; margin-left:10px; }
.ncard__desc{
  font-size:14.5px; line-height:1.8; color:#666; margin-top:8px;
}

/* アクセント：年間休日はグリーン塗りタイル */
.ncard--green{
  background:#8dc21f;
  border-color:#8dc21f;
}
.ncard--green .ncard__label,
.ncard--green .ncard__desc{ color:rgba(20,30,5,.78); }
.ncard--green .ncard__num,
.ncard--green .ncard__unit{ color:#fff; }

@media (max-width:900px){
  .ncard,
  .ncard--wide{ grid-column:span 6; }
}
@media (max-width:600px){
  .ncard,
  .ncard--wide{ grid-column:span 12; }
}

/* ============================================================
   先輩社員の声（ここから白背景）
   ============================================================ */
.member{
  position:relative; z-index:1;
  background:#fff;                       /* マーブルを隠して白背景に */
  color:#1a1a1a;
  padding:clamp(70px,12vw,130px) 0 clamp(60px,9vw,100px);
}
.member__head,
.member__foot{
  width:min(1200px, 90%);
  margin-inline:auto;
}
.member__en{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(44px,8.5vw,92px);
  letter-spacing:.02em; line-height:1;
}
.member__title{
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(18px,3vw,26px);
  margin:14px 0 28px;
}
.member__lead{
  font-size:clamp(15px,1.9vw,17px); line-height:1.95; color:#444;
}

/* 横スクロールのカード列 */
.member__track{
  display:flex;
  gap:clamp(20px,3vw,40px);
  margin-top:clamp(40px,6vw,70px);
  padding:0 max(calc((100% - min(1200px,90%)) / 2), 5vw) 10px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;                  /* スクロールバー非表示(Firefox) */
}
.member__track::-webkit-scrollbar{ display:none; }  /* 同(WebKit) */

.mcard{
  flex:0 0 auto;
  width:clamp(280px,30vw,370px);
  scroll-snap-align:start;
  display:block;
  text-decoration:none; color:#1a1a1a;
}
.mcard__photowrap{ position:relative; }
.mcard__photo{
  position:relative;
  aspect-ratio:3 / 4;
  border-radius:8px;
  overflow:hidden;
  background:#e9e9ec;    /* 写真未設置のときはグレー枠 */
}
.mcard__photo img{
  width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform .5s;
}
.mcard:hover .mcard__photo img{ transform:scale(1.05); }
/* 番号チップ */
.mcard__num{
  position:absolute; top:14px; left:14px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:14px; letter-spacing:.08em;
  color:#fff;
  background:#8dc21f;
  padding:6px 14px;
  border-radius:999px;
}
/* 写真の上に重なる白い情報ボックス（緑のアクセント付き） */
.mcard__info{
  position:absolute;
  right:14px; bottom:-26px;
  background:#fff;
  border-left:3px solid #8dc21f;
  padding:14px 22px 14px 18px;
  box-shadow:0 14px 34px rgba(0,0,0,.14);
  border-radius:4px;
  min-width:56%;
}
.mcard__name{
  font-weight:700; font-size:18px; margin-bottom:4px;
}
.mcard__name span{ font-size:13px; font-weight:500; margin-left:2px; }
.mcard__meta{ font-size:12.5px; color:#666; line-height:1.6; }

.mcard__copy{
  margin-top:44px;                       /* 情報ボックスのはみ出しぶんを空ける */
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(17px,2.2vw,20px);
  line-height:1.7;
}
/* 誘導リンク（ホバーで矢印がスライド） */
.mcard__more{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:10px;
  font-weight:700; font-size:13.5px; letter-spacing:.04em;
  color:#6a9316;
}
.mcard__more span{ transition:transform .25s; }
.mcard:hover .mcard__more span{ transform:translateX(5px); }
/* 1枚ずつ時間差でふわっと */
.member__track .mcard:nth-child(2){ transition-delay:.08s; }
.member__track .mcard:nth-child(3){ transition-delay:.16s; }
.member__track .mcard:nth-child(4){ transition-delay:.24s; }
.member__track .mcard:nth-child(5){ transition-delay:.32s; }

/* 下部：前へ／次へ（左） ＋ もっと見る（中央） */
.member__foot{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  margin-top:clamp(36px,5vw,56px);
}
.member__arrows{
  position:absolute; left:0; top:50%; transform:translateY(-50%);
  display:flex; gap:22px;
}
.arrow{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.arrow__btn{
  width:52px; height:52px; border-radius:50%;
  border:1px solid #8dc21f; background:transparent;
  font-size:20px; line-height:1; color:#6a9316;
  cursor:pointer;
  transition:background .25s, color .25s;
}
.arrow__btn:hover{ background:#8dc21f; color:#fff; }
.arrow__label{ font-size:12px; color:#444; }

.pill-btn{
  display:inline-flex; align-items:center; gap:18px;
  padding:22px 56px; border-radius:999px;
  background:#8dc21f; color:#fff;
  font-weight:700; letter-spacing:.12em; text-decoration:none;
  transition:transform .25s;
}
.pill-btn:hover{ transform:translateY(-3px); }

/* ============================================================
   仕事を知る／働く環境を知る＋エントリー（淡いグリーン）
   ============================================================ */
.explore{
  position:relative; z-index:1;
  background:#fff;
  padding:clamp(90px,12vw,150px) 0 clamp(100px,13vw,160px);
}
/* 淡緑の背景を斜めに敷く（左上がり＝メッセージと逆向き） */
.explore::before{
  content:"";
  position:absolute; inset:0;
  background:#f4f6ec;
  clip-path:polygon(0 0, 100% clamp(60px,9vw,160px), 100% 100%, 0 calc(100% - clamp(60px,9vw,160px)));
}
.explore__inner,
.explore .entry{ position:relative; z-index:1; }
.explore__inner{
  width:min(1200px, 90%);
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(20px,3vw,36px);
}
.xcard{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:10px;
  aspect-ratio:4 / 5;
  text-decoration:none;
  transition:transform .3s, box-shadow .3s;
  box-shadow:0 14px 34px rgba(30,40,10,.12);
}
.xcard:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 50px rgba(30,40,10,.20);
}
/* 背景写真＋下部グラデーション */
.xcard__bg{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform .6s;
}
.xcard:hover .xcard__bg{ transform:scale(1.06); }
.xcard::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(10,14,4,.42), rgba(10,14,4,0) 26%),
    linear-gradient(to top,
    rgba(10,14,4,.82) 0%,
    rgba(10,14,4,.34) 45%,
    rgba(10,14,4,.04) 72%);
}
.xcard__en{
  position:absolute; top:18px; left:20px; z-index:1;
  font-size:11.5px; font-weight:700; letter-spacing:.22em;
  color:rgba(255,255,255,.92);
}
.xcard__body{
  position:absolute; left:0; right:0; bottom:0; z-index:1;
  padding:0 clamp(76px,7vw,90px) clamp(22px,2.4vw,28px) clamp(20px,2.4vw,26px);
  color:#fff;
}
.xcard__title{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(22px,2.4vw,28px);
  line-height:1.4;
}
.xcard__title::after{
  content:"";
  display:block;
  width:36px; height:3px;
  margin-top:10px;
  background:#8dc21f;
  transition:width .3s;
}
.xcard:hover .xcard__title::after{ width:56px; }
.xcard__desc{
  margin-top:10px;
  font-size:14px; line-height:1.8;
  color:rgba(255,255,255,.88);
}
.xcard__arrow{
  position:absolute; right:20px; bottom:20px; z-index:1;
  display:grid; place-items:center;
  width:48px; height:48px; border-radius:50%;
  background:#8dc21f; color:#fff;
  font-size:19px; font-weight:700;
  transition:transform .3s;
}
.xcard:hover .xcard__arrow{ transform:translateX(5px); }
@media (max-width:1000px){
  .xcard{ aspect-ratio:16 / 9; }
}

/* エントリーバナー */
.entry{
  width:min(1200px, 90%);
  margin:clamp(50px,7vw,80px) auto 0;
  display:grid;
  grid-template-columns:1fr;
}
.entry__banner{
  position:relative;
  display:block;
  overflow:hidden;
  min-height:clamp(210px,26vw,300px);
  border-radius:10px;
  padding:clamp(28px,4.5vw,52px) clamp(24px,4.5vw,60px);
  background:linear-gradient(105deg, #4f7a0a 0%, #79ad14 45%, #8dc21f 70%, #a8d54a 100%);
  background-size:160% 100%;
  background-position:0% 50%;
  color:#fff; text-decoration:none;
  transition:background-position .6s ease, transform .3s;
}
.entry__banner:hover{
  background-position:100% 50%;
  transform:translateY(-4px);
}
/* 背景のアウトライン文字 */
.entry__ghost{
  position:absolute; right:-1%; bottom:-9%;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(80px,13vw,180px);
  line-height:1; letter-spacing:.02em;
  color:transparent;
  -webkit-text-stroke:2px rgba(255,255,255,.32);
  white-space:nowrap;
  pointer-events:none;
  transition:transform .6s ease;
}
.entry__banner:hover .entry__ghost{ transform:translateX(-18px); }
.entry__body{ position:relative; display:block; }
.entry__en{
  font-size:12px; font-weight:700; letter-spacing:.24em;
  color:rgba(255,255,255,.9);
}
.entry__copy{
  margin-top:14px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(24px,3.4vw,42px);
  letter-spacing:.08em; line-height:1.5;
  text-shadow:0 2px 16px rgba(0,0,0,.15);
}
/* ピル型のボタンラベル（ホバーで白反転） */
.entry__label{
  display:inline-flex; align-items:center; gap:12px;
  margin-top:clamp(18px,2.6vw,30px);
  padding:13px 30px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:999px;
  font-weight:700; font-size:15px; letter-spacing:.08em;
  transition:background .3s, color .3s;
}
.entry__banner:hover .entry__label{ background:#fff; color:#61900d; }
/* 円形矢印 */
.entry__arrow{
  position:absolute; right:clamp(20px,3.5vw,44px); top:50%;
  transform:translateY(-50%);
  display:grid; place-items:center;
  width:clamp(52px,5.5vw,68px); height:clamp(52px,5.5vw,68px);
  border-radius:50%;
  background:#fff; color:#61900d;
  font-size:22px; font-weight:700;
  transition:transform .3s;
}
.entry__banner:hover .entry__arrow{ transform:translateY(-50%) translateX(8px); }

@media (max-width:1000px){
  .explore__inner{ grid-template-columns:1fr; }
}

/* ============================================================
   フッター（ブランド／ナビ／エントリーの3カラム＋下部バー）
   ============================================================ */
.site-footer{
  background:#fff;
  color:#1a1a1a;
  padding:clamp(60px,8vw,100px) 0 34px;
}
.footer__inner{
  width:min(1200px, 90%);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1.2fr 1fr auto;
  gap:clamp(36px,5vw,70px);
  align-items:start;
}
.footer__logo{
  height:clamp(40px,5vw,52px);
  width:auto; display:block;
}
.footer__tag{
  margin-top:12px;
  font-size:12px; letter-spacing:.26em; color:#999;
}
.footer__lead{
  margin-top:18px;
  font-size:15px; line-height:2; color:#555;
}
.footer__nav{
  display:grid;
  grid-template-columns:repeat(2, auto);
  gap:18px 48px;
  justify-content:start;
}
.footer__nav a{
  color:#1a1a1a; text-decoration:none;
  font-size:16px; font-weight:600;
  white-space:nowrap;
  transition:opacity .25s;
}
.footer__nav a:hover{ opacity:.55; }
/* 右端のエントリーボタン */
.footer__entry{
  display:inline-flex; align-items:center; justify-content:space-between;
  gap:24px;
  min-width:280px;
  padding:20px 26px;
  background:#8dc21f; color:#fff;
  font-weight:700; font-size:15.5px; letter-spacing:.05em;
  text-decoration:none;
  transition:transform .25s;
}
.footer__entry:hover{ transform:translateY(-2px); }
/* 下部バー：コピーライト＋ページトップ */
.footer__bottom{
  width:min(1200px, 90%);
  margin:clamp(46px,6vw,70px) auto 0;
  padding-top:24px;
  border-top:1px solid #e8e8e8;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
}
.footer__copy{
  font-size:13px; letter-spacing:.08em; color:#999;
}
.footer__top{
  font-size:12.5px; font-weight:700; letter-spacing:.18em;
  color:#1a1a1a; text-decoration:none;
  transition:opacity .25s;
}
.footer__top:hover{ opacity:.55; }

/* フッターは「ブランド／ナビ／エントリーボタン」の3カラム。
   ボタン(280px)＋折り返さないナビが入りきらず、1100px以下で横スクロールが出ていたため
   早めに縦積みへ切り替える。 */
@media (max-width:1100px){
  .footer__inner{ grid-template-columns:1fr; }
  .footer__entry{ width:100%; }
}

/* ============================================================
   下層ページ共通
   ============================================================ */
/* ページ見出し（固定ヘッダーの下に淡緑の帯） */
.page-hero{
  position:relative; z-index:1;
  background:#f4f6ec;
  padding:clamp(140px,16vw,210px) 0 clamp(50px,7vw,90px);
}
.page-hero__inner{
  width:min(1200px, 90%);
  margin-inline:auto;
}
.page-hero__label{
  display:flex; align-items:center; gap:10px;
  font-size:14px; font-weight:700; letter-spacing:.08em;
  color:#1a1a1a;
}
.page-hero__label span{
  display:inline-block;
  width:11px; height:11px;
  background:#8dc21f;
}
.page-hero__en{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(48px,9vw,104px);
  line-height:1; letter-spacing:.02em;
  color:#1a1a1a;
  margin-top:12px;
}
.page-hero__ttl{
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:clamp(18px,3vw,26px);
  color:#1a1a1a;
  margin-top:14px;
}
.page-hero__lead{
  margin-top:18px;
  font-size:clamp(15px,1.9vw,17px); line-height:2; color:#555;
}

/* 汎用セクション */
.psec{
  position:relative; z-index:1;
  background:#fff;
  padding:clamp(70px,10vw,120px) 0;
}
.psec--tint{ background:#f4f6ec; }
.psec__inner{
  width:min(1200px, 90%);
  margin-inline:auto;
}
/* 中項目見出し：英字は小さなアクセント、日本語を主役に */
.psec__en{
  display:flex; align-items:center; gap:12px;
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:14px; letter-spacing:.2em; line-height:1;
  color:#8dc21f;
}
.psec__en::before{
  content:""; display:inline-block;
  width:26px; height:2px; background:#8dc21f;
}
.psec__ttl{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(27px,4.4vw,42px);
  line-height:1.4; letter-spacing:.01em;
  color:#1a1a1a;
  margin:14px 0 26px;
}
.psec__lead{
  font-size:clamp(15px,1.9vw,17px); line-height:2; color:#555;
  margin-bottom:clamp(30px,4vw,50px);
}
.psec__body p{
  color:#333; font-weight:500;
  font-size:clamp(15px,1.7vw,16.5px);
  line-height:2.2;
  margin-bottom:24px;
}

/* 概要・募集要項のテーブル（dl） */
.spec{
  width:min(920px, 100%);
  border-top:1px solid #e3e3e3;
}
.spec > div{
  display:grid;
  grid-template-columns:clamp(120px,20vw,200px) 1fr;
  gap:10px 24px;
  padding:22px 8px;
  border-bottom:1px solid #e3e3e3;
}
.spec dt{ font-weight:700; color:#1a1a1a; font-size:15.5px; }
.spec dd{ color:#444; line-height:2; font-size:15px; }

/* 福利厚生などの項目カード */
.benefits{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(14px,2vw,24px);
}
.benefit{
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  padding:22px 24px;
}
.psec--tint .benefit{ box-shadow:0 10px 28px rgba(60,70,30,.05); border-color:#e9ecdd; }
.benefit__ttl{
  display:flex; align-items:center; gap:10px;
  font-weight:700; font-size:16px; color:#1a1a1a;
}
.benefit__ttl::before{
  content:"";
  flex:0 0 auto;
  width:10px; height:10px;
  background:#8dc21f;
}
.benefit__desc{
  margin-top:8px;
  font-size:14.5px; line-height:1.9; color:#666;
}
@media (max-width:960px){ .benefits{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .benefits{ grid-template-columns:1fr; } }

/* 選考フロー */
.flow{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(14px,2vw,24px);
}
.flow li{
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  padding:28px 18px;
  text-align:center;
}
.flow__num{
  font-weight:900; font-size:22px; line-height:1;
  color:#8dc21f; letter-spacing:.04em;
}
.flow__ttl{ margin-top:10px; font-weight:700; font-size:16.5px; color:#1a1a1a; }
.flow__desc{ margin-top:8px; font-size:13.5px; line-height:1.8; color:#666; }
@media (max-width:820px){ .flow{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .flow{ grid-template-columns:1fr; } }

/* よくある質問 */
.faq{ width:100%; border-top:1px solid #e3e3e3; }
.faq details{ border-bottom:1px solid #e3e3e3; }
.faq summary{
  display:flex; align-items:baseline; gap:14px;
  padding:22px 8px;
  font-weight:700; font-size:16px; color:#1a1a1a;
  cursor:pointer;
  list-style:none;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::before{
  content:"Q"; color:#8dc21f; font-weight:900; font-size:18px;
}
.faq details p{
  display:flex; gap:14px;
  padding:0 8px 24px;
  font-size:15px; line-height:2; color:#444;
}
.faq details p::before{
  content:"A"; color:#f0a0a0; font-weight:900; font-size:18px; line-height:1.6;
}

/* 下層ページ末尾のエントリーCTA */
.cta-sec{
  position:relative; z-index:1;
  background:#fff;
  padding:clamp(20px,3vw,30px) 0 clamp(80px,11vw,140px);
}

/* ============================================================
   会社を知る：写真まわり
   ============================================================ */
/* 想い：テキスト×右端まで伸ばした写真、下に3事業の写真列 */
.psec--clip{ overflow:hidden; }
.phil__grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:clamp(36px,5vw,80px);
  align-items:center;
}
/* 大きな写真（画面の右端まで伸ばす） */
.phil__photo-main{
  margin:0 calc((min(1200px, 90vw) - 100vw) / 2) 0 0;
  overflow:hidden;
  border-radius:8px 0 0 8px;
}
.phil__photo-main img{
  width:100%; aspect-ratio:4 / 3;
  object-fit:cover; display:block;
}
/* 3事業（調剤・在宅・介護）のラベル付き写真 */
.phil__row{
  margin-top:clamp(24px,3.5vw,48px);
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(14px,2vw,24px);
}
.phil__item{
  position:relative;
  margin:0; overflow:hidden;
  border-radius:8px;
}
.phil__item img{
  width:100%; aspect-ratio:16 / 10;
  object-fit:cover; display:block;
}
.phil__item figcaption{
  position:absolute; left:0; bottom:0;
  background:#fff; color:#1a1a1a;
  font-size:13px; font-weight:700; letter-spacing:.06em;
  padding:8px 18px;
  border-radius:0 8px 0 0;
}
@media (max-width:820px){
  .phil__grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .phil__row{ grid-template-columns:1fr; }
}

/* キーコピーを重ねた全幅フォトバンド */
.photoband{
  position:relative; z-index:2;   /* 次のセクションに重ねる */
  overflow:hidden;
  /* 下辺を斜めにトリミングして、次セクションの緑の斜めとぴったり噛み合わせる */
  margin-bottom:calc(clamp(50px,7vw,120px) * -1);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - clamp(50px,7vw,120px)), 0 100%);
}
.photoband__img{
  width:100%;
  height:clamp(320px,42vw,560px);
  object-fit:cover; display:block;
}
.photoband__quote{
  position:absolute; inset:0;
  display:grid; place-items:center;
  background:rgba(10,14,4,.38);
  color:#fff;
  font-weight:700;
  font-size:clamp(20px,3vw,34px);
  letter-spacing:.08em;
  line-height:2;
  text-align:center;
  padding:20px;
  text-shadow:0 2px 20px rgba(0,0,0,.35);
}

/* 会社概要：テーブル×縦写真 */
.profile__grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:clamp(36px,5vw,80px);
  align-items:start;
}
.profile__photo{
  margin:0; overflow:hidden; border-radius:8px;
}
.profile__photo img{
  width:100%; aspect-ratio:4 / 5;
  object-fit:cover; display:block;
}
@media (max-width:820px){
  .profile__grid{ grid-template-columns:1fr; }
  .profile__photo img{ aspect-ratio:16 / 10; }
}

/* ============================================================
   REASON（トップ）：左右交互のフルワイド行
   ============================================================ */
.reason{ overflow:hidden; }   /* 端まで伸ばした写真のはみ出しを整える */
.reason__list{
  margin-top:clamp(40px,6vw,80px);
  display:flex; flex-direction:column;
  gap:clamp(60px,9vw,120px);
}
.rrow{
  width:min(1200px, 90%);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:clamp(28px,4.5vw,70px);
  align-items:center;
}
/* 写真（奇数行：画面の左端まで伸ばす） */
.rrow__photo{
  margin:0 0 0 calc((min(1200px, 90vw) - 100vw) / 2);
  overflow:hidden;
  border-radius:0 8px 8px 0;
}
.rrow__photo img{
  width:100%; aspect-ratio:3 / 2;
  object-fit:cover; display:block;
}
/* 偶数行：写真を右側・画面の右端まで */
.rrow:nth-child(even){ grid-template-columns:1fr 1.15fr; }
.rrow:nth-child(even) .rrow__photo{
  order:2;
  margin:0 calc((min(1200px, 90vw) - 100vw) / 2) 0 0;
  border-radius:8px 0 0 8px;
}
.rrow:nth-child(even) .rrow__body{ order:1; }

/* アウトラインの大きな番号 */
.rrow__num{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(64px,8vw,110px);
  line-height:1; letter-spacing:.02em;
  color:transparent;
  -webkit-text-stroke:2px #8dc21f;
}
.rrow__title{
  margin-top:16px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(22px,2.6vw,30px);
  line-height:1.6; color:#1a1a1a;
}
.rrow__desc{
  margin-top:14px;
  font-size:15.5px; line-height:2.1; color:#444;
}

@media (max-width:820px){
  .rrow,
  .rrow:nth-child(even){ grid-template-columns:1fr; }
  .rrow:nth-child(even) .rrow__photo{ order:0; }
  .rrow:nth-child(even) .rrow__body{ order:1; }
  /* スマホは写真を左右いっぱいに */
  .rrow__photo,
  .rrow:nth-child(even) .rrow__photo{
    margin:0 calc((min(1200px, 90vw) - 100vw) / 2);
    border-radius:0;
  }
}

/* ============================================================
   先輩を知る：縦並びインタビュー（読み物型）
   ============================================================ */
.ivsec{
  position:relative; z-index:1;
  background:#fff;
  padding:clamp(70px,10vw,120px) 0 clamp(80px,11vw,140px);
}
.ivsec__inner{
  width:min(1200px, 90%);
  margin-inline:auto;
}
.ivsec__lead{
  font-size:clamp(15px,1.9vw,17px); line-height:2; color:#555;
  margin-bottom:clamp(50px,7vw,90px);
}
.ivsec__list{
  display:flex; flex-direction:column;
  gap:clamp(80px,11vw,150px);
}
.ivrow{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(30px,5vw,80px);
  align-items:start;
}
/* 偶数は写真を右に。
   order だけ入れ替えても列幅（.9fr / 1.1fr）は入れ替わらないため、
   写真が広いほうの列に入って偶数行だけ大きく表示されてしまう。
   列幅も左右反転させて、写真の幅を全行そろえる。 */
.ivrow:nth-child(even){ grid-template-columns:1.1fr .9fr; }
.ivrow:nth-child(even) .ivrow__photowrap{ order:2; }
.ivrow:nth-child(even) .ivrow__body{ order:1; }

/* 写真：緑の色面を背にしたポートレート（PCはスクロール追従） */
.ivrow__photowrap{ position:relative; }
@media (min-width:821px){
  .ivrow__photowrap{ position:sticky; top:110px; }
}
.ivrow__photo{ position:relative; margin:0 16px 16px 0; }
.ivrow__photo::before{
  content:"";
  position:absolute; inset:0;
  transform:translate(16px,16px);
  background:#e9f2d2;
  border-radius:8px;
}
.ivrow__photo img{
  position:relative;
  /* 元写真が3:2の横長なので、枠も3:2にして切り抜かずに全体を見せる
     （縦長の枠に入れると顔が大きく寄って見えてしまう） */
  width:100%; aspect-ratio:3 / 2;
  object-fit:cover; object-position:50% 40%; display:block;
  border-radius:8px;
}

/* 写真に重ねるネームカード */
.ivrow__card{
  position:absolute; left:-14px; bottom:-18px; z-index:2;
  background:#fff;
  border-radius:8px;
  border-left:4px solid #8dc21f;
  padding:12px 20px 13px 16px;
  box-shadow:0 12px 28px rgba(40,50,20,.14);
}
.ivrow__card-role{
  font-size:11.5px; letter-spacing:.05em; color:#666;
  line-height:1.4;
}
.ivrow__card-name{
  margin-top:3px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:21px; line-height:1.2; color:#1a1a1a;
  letter-spacing:.03em;
}
.ivrow__card-name span{
  font-size:12.5px; font-weight:700; color:#666;
  margin-left:5px; letter-spacing:.02em;
}

/* 見出しまわり */
.ivrow__num{
  display:flex; align-items:center; gap:12px;
  font-family:"Noto Sans JP", sans-serif; font-weight:700;
  font-size:13px; letter-spacing:.22em; line-height:1;
  color:#8dc21f;
}
.ivrow__num::before{
  content:""; display:inline-block;
  width:26px; height:2px; background:#8dc21f;
}
.ivrow__copy{
  position:relative; z-index:0;
  margin-top:18px;
  padding-top:34px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(23px,3vw,34px);
  line-height:1.65; color:#1a1a1a;
}
.ivrow__copy::before{
  content:"“";
  position:absolute; top:-6px; left:-6px; z-index:-1;
  font-family:Georgia, "Times New Roman", serif;
  font-size:92px; line-height:1;
  color:#dcecb4;
  pointer-events:none;
}

/* Q&A（対話形式） */
.ivrow__qa{ margin-top:clamp(10px,1.6vw,18px); }
.ivrow__qa dt{
  display:flex; gap:12px; align-items:flex-start;
  margin-top:clamp(26px,3.6vw,38px);
  padding-top:clamp(26px,3.6vw,38px);
  border-top:1px solid #eef1e4;
  font-weight:700;
  font-size:clamp(16px,1.8vw,17.5px);
  line-height:1.7; color:#1a1a1a;
}
.ivrow__qa dt:first-of-type{
  border-top:none; padding-top:0;
  margin-top:clamp(22px,3vw,30px);
}
.ivrow__qa dt::before{
  content:"Q";
  flex:0 0 auto;
  display:grid; place-items:center;
  width:28px; height:28px;
  border-radius:50%;
  background:#8dc21f; color:#fff;
  font-weight:900; font-size:13.5px;
  margin-top:1px;
}
.ivrow__qa dd{
  position:relative;
  margin-top:12px;
  padding-left:40px;
  font-size:15px; line-height:2.1; color:#444;
}
.ivrow__qa dd::before{
  content:"A";
  position:absolute; left:0; top:2px;
  display:grid; place-items:center;
  width:28px; height:28px;
  border-radius:50%;
  background:#fff;
  border:2px solid #cfe39a;
  color:#8dc21f;
  font-weight:900; font-size:13.5px;
}

@media (max-width:820px){
  /* 偶数行の :nth-child ルールのほうが詳細度が高いので、ここでも明示的に打ち消す */
  .ivrow,
  .ivrow:nth-child(even){ grid-template-columns:1fr; }
  .ivrow:nth-child(even) .ivrow__photowrap{ order:0; }
  .ivrow:nth-child(even) .ivrow__body{ order:1; }
  .ivrow__photo img{ aspect-ratio:3 / 2; }   /* スマホでも元写真と同じ3:2で切り抜かない */
  .ivrow__photowrap{ margin-bottom:10px; }
  .ivrow__card{ left:-8px; bottom:-14px; padding:10px 16px 11px 14px; }
  .ivrow__card-name{ font-size:18px; }
  .ivrow__copy{ padding-top:28px; }
  .ivrow__copy::before{ font-size:76px; }
}


/* ============================================================
   画像のゆるやかなパララックス（JSがtransformを更新）
   ============================================================ */
.prlx{ will-change:transform; }
.ivrow__clip{
  display:block; position:relative;
  overflow:hidden; border-radius:8px;
}

/* ============================================================
   働く環境：3つの強み（大きな番号×ステートメント）
   ============================================================ */
.str__list{
  margin-top:clamp(30px,4vw,50px);
  border-top:1px solid #e5e5e5;
}
.str{
  display:grid;
  grid-template-columns:clamp(110px,16vw,220px) 1fr;
  gap:clamp(20px,4vw,60px);
  align-items:start;
  padding:clamp(32px,4.5vw,56px) 0;
  border-bottom:1px solid #e5e5e5;
}
.str__num{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(56px,7vw,96px);
  line-height:1; letter-spacing:.02em;
  color:transparent;
  -webkit-text-stroke:2px #8dc21f;
}
.str__ttl{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(20px,2.4vw,28px);
  line-height:1.6; color:#1a1a1a;
}
/* 大きな実績数字 */
.str__stat{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:0 12px;
  margin-top:12px;
}
.str__value{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(56px,7vw,92px);
  line-height:1; color:#8dc21f;
}
.str__unit{
  font-weight:700; font-size:clamp(20px,2.4vw,28px);
  color:#8dc21f;
}
.str__note{ font-size:13px; color:#888; }
.str__desc{
  margin-top:14px;
  font-size:15.5px; line-height:2.05; color:#444;
}
@media (max-width:640px){
  .str{ grid-template-columns:1fr; gap:10px; }
}

/* ============================================================
   働く環境：5つの事業フィールド（ベントーグリッド）
   ============================================================ */
.field{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:clamp(14px,2vw,24px);
}
.fcard{
  grid-column:span 3;
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  padding:clamp(20px,2.6vw,28px);
  box-shadow:0 10px 28px rgba(60,70,30,.05);
}
.fcard--lg{
  grid-column:span 3;
  padding:0;
  overflow:hidden;
}
.fcard__photo{
  margin:0; overflow:hidden;
  aspect-ratio:16 / 8;
  background:#e9e9ec;
}
.fcard__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.fcard--lg .fcard__body{ padding:clamp(20px,2.6vw,28px); }
.fcard__ttl{
  display:flex; align-items:center; gap:10px;
  font-weight:700; font-size:clamp(17px,1.9vw,20px);
  color:#1a1a1a;
}
.fcard__ttl::before{
  content:"";
  flex:0 0 auto;
  width:10px; height:10px;
  background:#8dc21f;
}
.fcard__desc{
  margin-top:10px;
  font-size:14.5px; line-height:1.95; color:#555;
}
@media (max-width:960px){
  .fcard, .fcard--lg{ grid-column:span 6; }
}

/* 強みの行に写真を追加（番号｜テキスト｜写真） */
.str{
  grid-template-columns:clamp(90px,12vw,170px) 1fr clamp(200px,24vw,330px);
}
.str__photo{
  margin:0; overflow:hidden;
  border-radius:8px;
}
.str__photo img{
  width:100%; aspect-ratio:4 / 3;
  object-fit:cover; display:block;
}
@media (max-width:960px){
  .str{ grid-template-columns:clamp(80px,10vw,140px) 1fr; }
  .str__photo{ grid-column:1 / -1; }
}
@media (max-width:640px){
  .str{ grid-template-columns:1fr; }
}

/* ============================================================
   募集職種：一覧カード
   ============================================================ */
.jobs{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:clamp(20px,3vw,36px);
}
.jobcard{
  display:block;
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  overflow:hidden;
  text-decoration:none; color:#1a1a1a;
  box-shadow:0 10px 28px rgba(60,70,30,.05);
  transition:transform .3s;
}
.jobcard:hover{ transform:translateY(-4px); }
.jobcard__photo{
  margin:0; overflow:hidden;
  aspect-ratio:16 / 8;
  background:#e9e9ec;
}
.jobcard__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s;
}
.jobcard:hover .jobcard__photo img{ transform:scale(1.05); }
.jobcard__body{ padding:22px 26px 26px; }
.jobcard__tags{ display:flex; flex-wrap:wrap; gap:8px; }
.tag{
  font-size:11.5px; font-weight:700; letter-spacing:.04em;
  color:#6a9316;
  border:1px solid #8dc21f; border-radius:999px;
  padding:3px 12px;
}
.jobcard__ttl{
  margin-top:12px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(19px,2.2vw,24px);
}
.jobcard__desc{
  margin-top:8px;
  font-size:14.5px; line-height:1.95; color:#555;
}
.jobcard__more{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:16px;
  font-weight:700; font-size:14px; color:#6a9316;
}
.jobcard__more span{ transition:transform .25s; }
.jobcard:hover .jobcard__more span{ transform:translateX(5px); }
@media (max-width:760px){
  .jobs{ grid-template-columns:1fr; }
}

/* ============================================================
   募集職種：詳細ページ
   ============================================================ */
.jd-back{
  display:inline-flex; align-items:center; gap:8px;
  margin-bottom:clamp(24px,3vw,40px);
  font-size:14px; font-weight:700;
  color:#6a9316; text-decoration:none;
  transition:opacity .25s;
}
.jd-back:hover{ opacity:.6; }
.jd-intro{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:clamp(30px,5vw,70px);
  align-items:center;
}
.jd-intro__photo{
  margin:0; overflow:hidden;
  border-radius:8px;
}
.jd-intro__photo img{
  width:100%; aspect-ratio:16 / 10;
  object-fit:cover; display:block;
}
.jd-copy{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(22px,2.8vw,32px);
  line-height:1.7; color:#1a1a1a;
}
.jd-lead{
  margin-top:16px;
  font-size:15.5px; line-height:2.05; color:#444;
}
.jd-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
/* 仕事内容リスト */
.duty{
  list-style:none;
  width:min(920px, 100%);
  border-top:1px solid #e5e5e5;
}
.duty li{
  display:flex; align-items:center; gap:14px;
  padding:18px 6px;
  border-bottom:1px solid #e5e5e5;
  font-size:15.5px; font-weight:500; line-height:1.9; color:#333;
}
.duty li::before{
  content:"";
  flex:0 0 auto;
  width:10px; height:10px;
  background:#8dc21f;
}
/* 歓迎する人物像（大きめチップ） */
.welcome{
  list-style:none;
  display:flex; flex-wrap:wrap; gap:12px;
}
.welcome li{
  font-size:14.5px; font-weight:700;
  color:#1a1a1a;
  background:#fff;
  border:1px solid #8dc21f; border-radius:999px;
  padding:12px 24px;
}
@media (max-width:820px){
  .jd-intro{ grid-template-columns:1fr; }
}

/* ============================================================
   学びと成長：右肩上がりのステップカード
   ============================================================ */
.growth{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(24px,3.5vw,48px);
  margin-top:clamp(50px,6vw,80px);   /* 重ねたSTEP番号のぶん */
}
.gstep{
  position:relative;
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  box-shadow:0 10px 28px rgba(60,70,30,.06);
}
/* 左から右へせり上がる */
.gstep:nth-child(1){ margin-top:clamp(50px,7vw,120px); }
.gstep:nth-child(2){ margin-top:clamp(25px,3.5vw,60px); }
/* カード間をつなぐ破線 */
.gstep:not(:first-child)::before{
  content:"";
  position:absolute;
  top:50%;
  left:calc(clamp(24px,3.5vw,48px) * -1);
  width:clamp(24px,3.5vw,48px);
  border-top:2px dashed #bcd98a;
}
/* カードに重なるアウトラインのSTEP番号 */
.gstep__num{
  position:absolute; top:-30px; left:16px; z-index:2;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(46px,5vw,64px);
  line-height:1; letter-spacing:.02em;
  color:transparent;
  -webkit-text-stroke:2px #8dc21f;
}
.gstep__photo{
  margin:0; overflow:hidden;
  border-radius:8px 8px 0 0;
  aspect-ratio:16 / 10;
  background:#e9e9ec;
}
.gstep__photo img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.gstep__body{ padding:20px 24px 26px; }
.gstep__label{
  font-size:11.5px; font-weight:700; letter-spacing:.22em;
  color:#6a9316;
}
.gstep__ttl{
  margin-top:8px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(18px,2vw,21px);
  color:#1a1a1a;
}
.gstep__desc{
  margin-top:10px;
  font-size:14.5px; line-height:1.95; color:#555;
}
@media (max-width:820px){
  .growth{ grid-template-columns:1fr; margin-top:56px; }
  .gstep:nth-child(1),
  .gstep:nth-child(2){ margin-top:0; }
  .gstep{ margin-top:0; }
  .gstep + .gstep{ margin-top:56px; }
  /* 縦並びでは下から上ではなく順につなぐ縦の破線 */
  .gstep:not(:first-child)::before{
    top:-58px; left:50%;
    width:0; height:56px;
    border-top:none;
    border-left:2px dashed #bcd98a;
  }
}

/* ============================================================
   選考フロー：ノード＋ラインのタイムライン
   ============================================================ */
.flow2{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(16px,2.4vw,32px);
  margin-top:clamp(40px,5vw,64px);
}
.fstep{
  position:relative;
  padding-top:36px;
}
/* ノード（緑の丸） */
.fstep__node{
  position:absolute; top:0; left:2px;
  width:14px; height:14px;
  border-radius:50%;
  background:#8dc21f;
}
.fstep__node::after{
  content:"";
  position:absolute; inset:-5px;
  border-radius:50%;
  border:2px solid rgba(141,194,31,.35);
}
/* ノード間をつなぐライン */
.fstep:not(:last-child)::before{
  content:"";
  position:absolute;
  top:8px; left:26px;
  right:calc(clamp(16px,2.4vw,32px) * -1 + 6px);
  height:2px;
  background:linear-gradient(to right, #8dc21f, #dfe9c6);
}
.fstep__num{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(40px,4.6vw,58px);
  line-height:1; letter-spacing:.02em;
  color:transparent;
  -webkit-text-stroke:2px #8dc21f;
}
.fstep__ttl{
  margin-top:12px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(17px,1.9vw,20px);
  color:#1a1a1a;
}
.fstep__desc{
  margin-top:8px;
  font-size:14px; line-height:1.9; color:#666;
}
@media (max-width:700px){
  .flow2{ grid-template-columns:1fr; gap:38px; }
  .fstep{ padding:0 0 0 40px; }
  .fstep__node{ top:6px; left:0; }
  .fstep:not(:last-child)::before{
    top:28px; left:6px; right:auto; bottom:-44px;
    width:2px; height:auto;
    background:linear-gradient(to bottom, #8dc21f, #dfe9c6);
  }
}

/* ============================================================
   1日の流れ（職種タブ×タイムライン）
   ============================================================ */
.od-tabs{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-bottom:clamp(34px,4.5vw,54px);
}
.od-tab{
  padding:12px 28px;
  border:1px solid #8dc21f; border-radius:999px;
  background:#fff; color:#6a9316;
  font-family:"Noto Sans JP", sans-serif;
  font-weight:700; font-size:14.5px; letter-spacing:.04em;
  cursor:pointer;
  transition:background .25s, color .25s;
}
.od-tab:hover{ background:#f0f6e0; }
.od-tab.is-active{ background:#8dc21f; color:#fff; }

.od-panel{ display:none; }
.od-panel.is-active{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(30px,5vw,80px);
  align-items:start;
}
@media (max-width:820px){
  .od-panel.is-active{ grid-template-columns:1fr; }
}
.od-photo{
  margin:0; overflow:hidden;
  border-radius:8px;
}
.od-photo img{
  width:100%; aspect-ratio:4 / 3;
  object-fit:cover; display:block;
}
@media (min-width:821px){
  .od-photo{ position:sticky; top:110px; }
}

/* タイムライン */
.tl{ list-style:none; position:relative; }
.tl::before{
  content:"";
  position:absolute;
  left:calc(clamp(56px,7vw,72px) + 9px);
  top:8px; bottom:14px;
  width:2px;
  background:#dde7c4;
}
.tl li{
  position:relative;
  display:grid;
  grid-template-columns:clamp(56px,7vw,72px) 1fr;
  gap:0 30px;
  padding-bottom:clamp(24px,3.2vw,36px);
}
.tl li:last-child{ padding-bottom:0; }
.tl li::before{
  content:"";
  position:absolute;
  left:calc(clamp(56px,7vw,72px) + 4px);
  top:6px;
  width:12px; height:12px;
  border-radius:50%;
  background:#8dc21f;
}
.tl__time{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(15px,1.7vw,17px);
  letter-spacing:.04em;
  color:#8dc21f;
}
.tl__ttl{
  font-weight:700; font-size:clamp(15.5px,1.8vw,17px);
  color:#1a1a1a; line-height:1.7;
}
.tl__desc{
  margin-top:4px;
  font-size:14px; line-height:1.9; color:#666;
}
.od-note{
  margin-top:clamp(24px,3vw,36px);
  font-size:12.5px; color:#999;
}
@media (max-width:820px){
  .od-panel.is-active{ grid-template-columns:1fr; }
}

/* ============================================================
   下層ページ：淡緑背景を斜めに
   ============================================================ */
/* ページ見出しの帯：下辺を斜めに */
.page-hero{ background:#fff; }
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background:#f4f6ec;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - clamp(40px,6vw,100px)), 0 100%);
}
.page-hero__inner{ position:relative; z-index:1; }

/* 淡緑セクション：上下を斜めに（右上がり） */
.psec--tint{
  background:#fff;
  padding:clamp(90px,11vw,145px) 0;
}
.psec--tint::before{
  content:"";
  position:absolute; inset:0;
  background:#f4f6ec;
  clip-path:polygon(0 clamp(50px,7vw,120px), 100% 0, 100% calc(100% - clamp(50px,7vw,120px)), 0 100%);
}
.psec--tint > *{ position:relative; z-index:1; }

/* 会社を知る：数字で見るセクションも斜めに（左上がり） */
.numbers{ background:#fff; }
.numbers::before{
  content:"";
  position:absolute; inset:0;
  background:#f4f6ec;
  clip-path:polygon(0 clamp(50px,7vw,120px), 100% 0, 100% calc(100% - clamp(50px,7vw,120px)), 0 100%);
}
.numbers__head,
.numbers__grid{ position:relative; z-index:1; }
/* 上の写真（斜めに重なる）と見出しが近すぎるので余白を足す */
.numbers__head{ margin-top:clamp(56px,8vw,110px); }
/* 写真帯のコピーは「この街で、」で折り返す（「に。」だけが次の行に落ちないように） */
.photoband__text span{ display:inline-block; }

/* ============================================================
   NUMBERS：ミニインフォグラフィック
   ============================================================ */
.ncard{ position:relative; }
.ncard__num{ font-variant-numeric:tabular-nums; }
.ncard__viz{ margin-top:16px; }
/* ワイドカードでは右側に配置 */
/* 図を右端に逃がすのは横長カードのときだけ。
   標準幅のカードでは文章の下に置く（右に出すと窮屈になるため） */
.ncard--wide .viz-abs{
  position:absolute; right:clamp(20px,2.6vw,36px); top:50%;
  transform:translateY(-50%);
  margin-top:0;
}
.ncard--wide.has-viz{ padding-right:clamp(150px,16vw,220px); }

/* 従業員数：人型ピクトグラム */
.viz-people svg{
  width:min(200px,100%); height:auto;
  color:#8dc21f; display:block;
}
/* 拠点数：1マス＝1拠点のドット */
.viz-dots{ display:grid; grid-template-columns:repeat(12, 12px); gap:5px; }
.viz-dots span{
  width:12px; height:12px; border-radius:3px;
  background:#8dc21f;
}
.viz-dots span:nth-child(even){ background:#b9dd66; }
/* 平均年齢：スケールバー（20歳〜50歳） */
.viz-scale{
  position:relative;
  width:min(230px,100%); height:6px; border-radius:3px;
  background:linear-gradient(to right, #e9edda, #bcd98a, #8dc21f);
}
.viz-scale i{
  position:absolute; top:50%; transform:translate(-50%,-50%);
  width:16px; height:16px; border-radius:50%;
  background:#fff; border:3px solid #76a51a;
}
/* 年間休日：ミニカレンダー（白＝休日） */
.viz-cal{ display:grid; grid-template-columns:repeat(7, 11px); gap:4px; }
.viz-cal span{
  width:11px; height:11px; border-radius:2.5px;
  background:rgba(255,255,255,.28);
}
.viz-cal .on{ background:#fff; }
/* 平均残業時間：控えめな量を表すバー */
.viz-fill{
  position:relative;
  width:min(280px,100%); height:8px; border-radius:4px;
  background:#edf1de; overflow:hidden;
}
.viz-fill i{
  position:absolute; inset:0 auto 0 0;
  width:30%; border-radius:4px;
  background:linear-gradient(to right, #8dc21f, #a8d54a);
}
/* 売上成長率：表示時に伸びる棒グラフ */
.viz-bars{
  display:flex; align-items:flex-end; gap:8px;
  height:64px; width:clamp(110px,12vw,150px);
}
.viz-bars i{
  flex:1; height:var(--h);
  border-radius:4px 4px 0 0;
  background:#dfe7c8;
  transition:height .9s cubic-bezier(.16,.84,.27,1);
}
.viz-bars i.hi{ background:linear-gradient(#a8d54a, #8dc21f); }
.ncard.reveal:not(.is-visible) .viz-bars i{ height:6px; }
/* お客様満足度：ドーナツグラフ（96.3%） */
.viz-donut{
  width:74px; height:74px; border-radius:50%;
  background:conic-gradient(#8dc21f 0 346.7deg, #e9edda 0);
  display:grid; place-items:center;
}
.viz-donut span{
  width:46px; height:46px; border-radius:50%;
  background:#fff;
}
@media (max-width:560px){
  .ncard--wide.has-viz{ padding-right:clamp(20px,2.6vw,36px); }
  .viz-abs{ position:static; transform:none; margin-top:16px; }
}

/* ============================================================
   エントリーフォーム
   ============================================================ */
.form{
  width:min(920px, 100%);
  border-top:1px solid #e8e8e8;
}
.form__row{
  display:grid;
  grid-template-columns:clamp(170px,24vw,250px) 1fr;
  gap:8px 30px;
  align-items:start;
  padding:clamp(20px,2.6vw,28px) 6px;
  border-bottom:1px solid #e8e8e8;
}
.form__label{
  display:flex; align-items:center; gap:10px;
  padding-top:12px;
  font-weight:700; font-size:15.5px; color:#1a1a1a;
}
.badge-req,
.badge-opt{
  flex:0 0 auto;
  font-size:11px; font-weight:700; letter-spacing:.06em;
  border-radius:4px;
  padding:3px 9px;
}
.badge-req{ background:#8dc21f; color:#fff; }
.badge-opt{ background:#f0f0ee; color:#888; }

.form input[type="text"],
.form input[type="tel"],
.form input[type="email"],
.form select,
.form textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid #ddd;
  border-radius:6px;
  background:#fff;
  font-family:inherit;
  font-size:15px;
  color:#1a1a1a;
  transition:border-color .25s, box-shadow .25s;
}
.form textarea{ min-height:160px; resize:vertical; }
.form select{ appearance:auto; }
.form input:focus,
.form select:focus,
.form textarea:focus{
  outline:none;
  border-color:#8dc21f;
  box-shadow:0 0 0 3px rgba(141,194,31,.18);
}
.form ::placeholder{ color:#bbb; }

/* ラジオ・チェック */
.form__choices{
  display:flex; flex-wrap:wrap; gap:12px 26px;
  padding-top:12px;
}
.form__choices label{
  display:inline-flex; align-items:center; gap:8px;
  font-size:15px; font-weight:500; color:#333;
  cursor:pointer;
}
.form input[type="radio"],
.form input[type="checkbox"]{
  width:18px; height:18px;
  accent-color:#8dc21f;
}

/* 同意と送信 */
.form__agree{
  display:flex; justify-content:center;
  margin-top:clamp(30px,4vw,44px);
}
.form__agree label{
  display:inline-flex; align-items:center; gap:10px;
  font-size:15px; font-weight:500; color:#333;
  cursor:pointer;
}
.form__agree a{ color:#6a9316; font-weight:700; }
.form__submit-wrap{
  display:flex; justify-content:center;
  margin-top:clamp(24px,3vw,36px);
}
.form__submit{
  display:inline-flex; align-items:center; justify-content:space-between;
  gap:26px;
  min-width:min(380px, 100%);
  padding:22px 32px;
  border:0; border-radius:999px;
  background:#8dc21f; color:#fff;
  font-family:inherit;
  font-weight:700; font-size:16.5px; letter-spacing:.08em;
  cursor:pointer;
  transition:background .25s, transform .25s;
}
.form__submit span{ transition:transform .25s; }
.form__submit:hover{
  background:#76a80f;
  transform:translateY(-2px);
}
.form__submit:hover span{ transform:translateX(6px); }
.form__note{
  margin-top:clamp(24px,3vw,36px);
  font-size:12.5px; line-height:1.9; color:#999;
  text-align:center;
}
@media (max-width:700px){
  .form__row{ grid-template-columns:1fr; gap:4px; }
  .form__label{ padding-top:0; }
}

/* ============================================================
   インターンシップ・職場見学（横型カード）
   ============================================================ */
.intern{
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:clamp(24px,3.5vw,50px);
  align-items:center;
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 14px 36px rgba(60,70,30,.08);
}
.intern__photo{
  margin:0; height:100%;
  overflow:hidden;
}
.intern__photo img{
  width:100%; height:100%;
  min-height:280px;
  object-fit:cover; display:block;
}
.intern__body{
  padding:clamp(26px,3.4vw,46px) clamp(24px,3.4vw,48px) clamp(26px,3.4vw,46px) 0;
}
.intern__en{
  font-size:12px; font-weight:700; letter-spacing:.22em;
  color:#6a9316;
}
.intern__ttl{
  margin-top:10px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(22px,2.6vw,30px);
  color:#1a1a1a;
}
.intern__desc{
  margin-top:12px;
  font-size:15px; line-height:2; color:#555;
}
@media (max-width:820px){
  .intern{ grid-template-columns:1fr; }
  .intern__photo img{ min-height:0; aspect-ratio:16 / 9; }
  .intern__body{ padding:24px 24px 30px; }
}

/* ============================================================
   募集職種：新卒/中途のカテゴリ見出し
   ============================================================ */
.jobs-cat{ margin-bottom:clamp(22px,3vw,32px); }
.jobs-cat--second{
  margin-top:clamp(64px,9vw,110px);
  padding-top:clamp(40px,6vw,64px);
  border-top:1px solid #dfe3d2;
}
.jobs-cat__ttl{
  display:flex; align-items:center; gap:16px;
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(24px,3vw,34px); letter-spacing:.05em; color:#1a1a1a;
}
.jobs-cat__ttl::before{
  content:""; flex:0 0 auto;
  width:14px; height:14px; background:#8dc21f;
}
.jobs-cat__en{
  font-size:clamp(11px,1.3vw,13px); font-weight:700;
  letter-spacing:.24em; color:#6a9316;
}
.jobs-cat__lead{
  margin-top:10px; padding-left:30px;
  font-size:clamp(13px,1.5vw,15px); line-height:1.9; color:#666;
}

/* ============================================================
   インターンシップ・職場見学ページ（internship.html）
   ============================================================ */
.visit-intro{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:clamp(30px,5vw,70px);
  align-items:center;
}
.visit-quotes p{
  font-weight:700;
  font-size:clamp(17px,2.2vw,21px);
  color:#1a1a1a;
  line-height:2;
}
.visit-key{
  margin-top:clamp(22px,3vw,34px);
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(22px,3vw,32px);
  line-height:1.8; color:#1a1a1a;
}
.visit-key em{
  font-style:normal; color:#6a9316;
}
.visit-intro__photo{
  margin:0; position:relative;
}
.visit-intro__photo::before{
  content:"";
  position:absolute; inset:0;
  transform:translate(16px,16px);
  background:#e9f2d2;
  border-radius:8px;
}
.visit-intro__photo img{
  position:relative;
  width:100%; aspect-ratio:4 / 3;
  object-fit:cover; display:block;
  border-radius:8px;
}

/* 3つのポイントカード */
.visit-points{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,2vw,24px);
}
.vp-card{
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  padding:clamp(24px,3vw,34px) clamp(20px,2.6vw,28px);
  box-shadow:0 10px 28px rgba(60,70,30,.05);
  text-align:center;
}
.vp-card__num{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(34px,4vw,44px); line-height:1;
  color:transparent;
  -webkit-text-stroke:1.5px #8dc21f;
}
.vp-card__ttl{
  margin-top:14px;
  font-weight:900; font-size:clamp(16.5px,1.9vw,19px);
  line-height:1.7; color:#1a1a1a;
}
.vp-card__desc{
  margin-top:10px;
  font-size:14.5px; line-height:1.95; color:#555;
  text-align:left;
}

/* 締めのお誘い */
.visit-close{ text-align:center; }
.visit-close__copy{
  font-family:"Noto Sans JP", sans-serif; font-weight:900;
  font-size:clamp(22px,3vw,32px);
  line-height:1.8; color:#1a1a1a;
}
.visit-close__desc{
  margin-top:16px;
  font-size:clamp(15px,1.9vw,17px); line-height:2; color:#555;
}
.visit-close .message__btn{ margin-top:30px; }
.visit-close__note{
  margin-top:14px;
  font-size:13px; color:#888;
}

@media (max-width:820px){
  .visit-intro{ grid-template-columns:1fr; }
  .visit-points{ grid-template-columns:1fr; }
  .vp-card__desc{ text-align:center; }
}

/* ============================================================
   システム化で追加した部品
   （エントリーフォームのエラー表示・お知らせ詳細・完了ページ など）
   ============================================================ */

/* --- 入力エラーの表示 --- */
.form__alert{
  background:#fff4f2; border:1px solid #f0c3ba; border-left:5px solid #d9584a;
  border-radius:6px; padding:18px 22px; margin-bottom:36px; color:#a8382b;
}
.form__alert p{ font-weight:700; margin-bottom:6px; }
.form__alert ul{ margin:0; padding-left:1.2em; font-size:14.5px; }
.form__alert li{ list-style:disc; }
.form__error{
  margin-top:8px; color:#c0392b; font-size:13.5px; font-weight:500;
}
.form input[aria-invalid="true"],
.form select[aria-invalid="true"],
.form textarea[aria-invalid="true"]{
  border-color:#d9584a; background:#fffaf9;
}
/* ボットよけの入力欄（人には見せない） */
.form__hp{
  position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;
}
.form__submit:disabled{ opacity:.6; cursor:default; }

/* --- 白抜きボタン --- */
.message__btn--ghost{
  background:#fff; color:#6a9316;
  border:2px solid #8dc21f;
}
.message__btn--ghost:hover{ background:#f4faea; color:#5f870f; }

/* --- 読み物系の狭い本文幅 --- */
.psec__inner--narrow{ width:min(760px, 90%); }

/* --- お知らせ詳細 --- */
.post__meta{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  margin:clamp(20px,3vw,32px) 0 18px;
}
.news__cat--static{ position:static; }
.post__hero{
  margin:0 0 clamp(24px,4vw,40px);
  border-radius:8px; overflow:hidden;
}
.post__hero img{
  width:100%; aspect-ratio:16 / 9; object-fit:cover; display:block;
}
.post__body{ font-size:16px; line-height:2.1; }
.post__body p{ margin-bottom:1.6em; }
.post__body h2{
  font-size:clamp(18px,2.2vw,21px); font-weight:700; color:#4a5a3a;
  margin:2.2em 0 .8em; padding-left:14px; border-left:4px solid #8dc21f;
  line-height:1.6;
}
.post__body ul{ margin:0 0 1.6em; padding-left:1.4em; }
.post__body li{ list-style:disc; margin-bottom:.4em; }
.post__body a{ color:#6a9316; text-underline-offset:3px; }

/* --- 送信完了・404 --- */
.thanks__lead{
  font-size:clamp(17px,2.2vw,20px); font-weight:700; line-height:1.9;
  margin-bottom:20px;
}
.thanks__body{ font-size:15.5px; line-height:2.1; }
.thanks__actions{
  display:flex; gap:18px; flex-wrap:wrap; align-items:stretch;
  margin-top:clamp(30px,4vw,50px);
}
.thanks__actions .message__btn{ margin-top:0; }

/* --- お知らせ一覧のページ送り --- */
.pager{
  display:flex; gap:10px; flex-wrap:wrap; justify-content:center;
  margin-top:clamp(36px,5vw,60px);
}
.pager__link,
.pager__cur{
  min-width:44px; padding:10px 14px; text-align:center;
  font-weight:700; font-size:14px; text-decoration:none;
  border:1px solid #dce4cf; border-radius:6px;
}
.pager__link{ color:#6a9316; background:#fff; }
.pager__link:hover{ background:#f4faea; }
.pager__cur{ color:#fff; background:#8dc21f; border-color:#8dc21f; }

/* --- 現在地のナビを少し強調 ---
   ボタン型の2つ（エントリー・インターンシップ）は自前の配色があるので対象外。
   含めると緑ボタンの上に緑文字が乗って読めなくなる。 */
.site-nav a[aria-current="page"]:not(.site-nav__entry):not(.site-nav__intern){ color:#6a9316; }


/* --- 会社ページ 数字グラフの値 --- */
.viz-pos62{ left:62%; }
.viz-h36{ --h:36%; }
.viz-h54{ --h:54%; }
.viz-h72{ --h:72%; }
.viz-h100{ --h:100%; }

/* フッターのリンクは狭い画面では1列に（項目が増えても横スクロールが出ないように） */
@media (max-width:560px){
  .footer__nav{ grid-template-columns:1fr; gap:14px; }
}

/* --- 先輩インタビューの「もっと読む」 --- */
.ivrow__more{
  margin-top:clamp(22px,3vw,30px);
  border-top:1px solid #e6ecdb;
  padding-top:clamp(18px,2.5vw,24px);
}
.ivrow__more > summary{
  display:inline-flex; align-items:center; gap:10px;
  cursor:pointer; list-style:none;
  font-size:14.5px; font-weight:700; color:#6a9316;
  padding:11px 22px;
  border:2px solid #8dc21f; border-radius:999px;
  background:#fff;
  transition:background .25s, transform .25s;
}
.ivrow__more > summary::-webkit-details-marker{ display:none; }
.ivrow__more > summary::after{
  content:"＋"; font-size:13px; font-weight:700; line-height:1;
  transition:transform .25s;
}
.ivrow__more[open] > summary::after{ content:"−"; }
.ivrow__more > summary:hover{ background:#f2f8e3; transform:translateY(-2px); }
.ivrow__more > summary:focus-visible{ outline:3px solid #8dc21f; outline-offset:3px; }
.ivrow__more .ivrow__qa{ margin-top:clamp(18px,2.5vw,26px); }

/* 縦位置の写真は上寄りだと天井ばかりになるので、やや中央寄せで見せる */
.fcard__photo img{ object-position:50% 45%; }

/* ============================================================
   会社を知る：事業紹介
   ============================================================ */
.bizlist{
  margin-top:clamp(30px,4vw,48px);
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(280px,100%), 1fr));
  gap:clamp(20px,2.6vw,32px);
}
.bizcard{
  background:#fff;
  border:1px solid #e3e7d6;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(60,70,30,.05);
}
.bizcard__photo{
  margin:0; overflow:hidden;
  aspect-ratio:16 / 10;
  background:#e9e9ec;
}
.bizcard__photo img{
  width:100%; height:100%; object-fit:cover; object-position:50% 45%; display:block;
}
.bizcard__body{ padding:clamp(18px,2.2vw,24px); }
.bizcard__ttl{
  font-size:clamp(16px,1.9vw,18px); font-weight:700; color:#1a1a1a;
  line-height:1.6; margin-bottom:10px;
}
.bizcard__desc{ font-size:14.5px; line-height:1.95; color:#555; }

/* ============================================================
   ヒーロー：2枚のうち指定した写真のときだけコピーを大きく
   （どちらを大きくするかは index.php の data-big で切り替え）
   ============================================================ */
.hero--big .hero__title .line > i{
  font-size:clamp(48px,13.5vw,142px);
}
.hero--big .hero__tagline{
  font-size:clamp(12px,1.5vw,17px);
  letter-spacing:.3em;
}

/* スマホはヘッダーが低いので、#リンクの余白も小さくする */
@media (max-width:820px){ html{scroll-padding-top:88px} }

/* スマホ幅では ENVIRONMENT（最長11文字）が枠に収まらず横スクロールが出るため、
   page-hero__en は最長の語に合わせて画面幅に比例させる（430pxで従来の48pxとほぼ同値）*/
@media (max-width:430px){
  .page-hero__en{ font-size:11vw; }
}

/* ============================================================
   奨学金返還サポート制度（/scholarship/）
   ============================================================ */
/* 制度の要点を一文で置く帯 */
.schol-hl{
  background:#f1f7e2;
  border:1px solid #dfeac2;
  border-radius:12px;
  padding:clamp(18px,2.4vw,26px) clamp(20px,3vw,32px);
  margin-bottom:clamp(28px,4vw,44px);
  font-size:clamp(16px,2.1vw,20px);
  font-weight:700; line-height:1.9; color:#44580f;
}
.schol-main{
  display:grid; grid-template-columns:1.1fr .9fr;
  gap:clamp(24px,3.6vw,48px); align-items:start;
  margin-bottom:clamp(34px,4.6vw,56px);
}
.schol-main--notext{ grid-template-columns:1fr; }
.schol-main .psec__body p:last-child{ margin-bottom:0; }
.schol-photo{
  margin:0; border-radius:12px; overflow:hidden;
  aspect-ratio:3 / 2; background:#e9e9ec;
}
.schol-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:860px){
  .schol-main{ grid-template-columns:1fr; }
}

/* 数字のタイル */
.stats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(240px,100%), 1fr));
  gap:clamp(14px,2vw,22px);
}
.stat{
  background:#fff; border:1px solid #e3e7d6; border-radius:12px;
  padding:clamp(22px,2.6vw,30px) clamp(16px,2.4vw,26px);
  display:flex; flex-direction:column; justify-content:center;
  text-align:center;
  box-shadow:0 10px 28px rgba(60,70,30,.05);
}
.stat__label{ font-size:13.5px; font-weight:700; color:#5d6b3f; letter-spacing:.03em; line-height:1.7; }
.stat__value{
  font-weight:900;
  font-size:clamp(28px,4.2vw,42px); line-height:1.25; color:#1a1a1a;
  margin:10px 0 8px;
}
.stat__unit{ font-size:.5em; font-weight:700; margin-left:6px; color:#444; }
.stat__note{ font-size:13.5px; line-height:1.85; color:#666; }
.stat--accent{ background:#8dc21f; border-color:#8dc21f; }
.stat--accent .stat__label,
.stat--accent .stat__value{ color:#fff; }
.stat--accent .stat__unit{ color:#f2f8e4; }
.stat--accent .stat__note{ color:#f5fae9; }

/* 大手チェーンとの見比べ */
.cmp{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(320px,100%), 1fr));
  gap:clamp(16px,2.2vw,24px);
}
.cmp__card{
  background:#fff; border:1px solid #e3e7d6; border-radius:12px;
  padding:clamp(22px,2.8vw,32px);
}
.cmp__card--accent{ background:#f1f7e2; border-color:#cfe39a; }
.cmp__ttl{
  font-size:clamp(16px,2vw,19px); font-weight:800; color:#1a1a1a;
  line-height:1.6; margin-bottom:14px;
}
.cmp__card--accent .cmp__ttl{ color:#44580f; }
.cmp__list{ list-style:none; display:grid; gap:12px; }
.cmp__list li{
  position:relative; padding-left:22px;
  font-size:15px; line-height:1.95; color:#555;
}
.cmp__list li::before{
  content:""; position:absolute; left:3px; top:12px;
  width:8px; height:8px; border-radius:50%; background:#c9d4ad;
}
.cmp__card--accent .cmp__list li{ color:#46543c; }
.cmp__card--accent .cmp__list li::before{ background:#8dc21f; }

/* 申請から支給開始までの流れ */
.sflow{ list-style:none; display:grid; gap:clamp(12px,1.8vw,18px); }
.sflow__item{
  display:grid; grid-template-columns:auto 1fr;
  gap:clamp(16px,2.4vw,28px); align-items:start;
  background:#fff; border:1px solid #e3e7d6; border-radius:12px;
  padding:clamp(20px,2.6vw,28px);
}
.sflow__no{
  font-weight:800; font-size:12.5px; letter-spacing:.1em; color:#fff;
  background:#8dc21f; border-radius:999px; padding:7px 16px; white-space:nowrap;
}
.sflow__ttl{
  font-size:clamp(16px,2vw,18.5px); font-weight:800; color:#1a1a1a;
  line-height:1.6; margin-bottom:8px;
}
.sflow__desc{ font-size:15px; line-height:1.95; color:#555; }
@media (max-width:560px){
  .sflow__item{ grid-template-columns:1fr; gap:12px; }
  .sflow__no{ justify-self:start; }
}

/* よくあるご質問 */
.sfaq{ display:grid; gap:clamp(12px,1.8vw,16px); }
.sfaq__item{
  background:#fff; border:1px solid #e9ecdd; border-radius:12px;
  padding:clamp(20px,2.6vw,28px);
}
.sfaq__q{
  font-size:clamp(15.5px,1.9vw,17px); font-weight:800; color:#1a1a1a;
  line-height:1.7; margin-bottom:10px;
}
.sfaq__q::before{ content:"Q."; color:#8dc21f; font-weight:900; margin-right:8px; }
.sfaq__a{ font-size:15px; line-height:2; color:#555; }
.sfaq__a::before{ content:"A."; color:#b9c89a; font-weight:900; margin-right:8px; }

/* 相談・資料 */
.scontact{
  background:#f4f6ec; border-radius:16px;
  padding:clamp(28px,4vw,48px); text-align:center;
}
.scontact__ttl{ font-size:clamp(19px,2.6vw,25px); font-weight:900; color:#1a1a1a; margin-bottom:14px; }
.scontact__txt{ font-size:15px; line-height:2; color:#555; margin-bottom:26px; }
.scontact__btns{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.scontact .pill-btn{ padding:18px 34px; font-size:15px; }
.pill-btn--ghost{ background:#fff; color:#4c5a2d; border:1px solid #cfe39a; }
.scontact__pdf{ margin-top:20px; font-size:14px; }
.scontact__pdf a{ color:#5d7a16; }
@media (max-width:560px){
  .scontact__btns{ flex-direction:column; }
  .scontact .pill-btn{ width:100%; justify-content:center; gap:10px; padding:16px 20px; }
}

/* 各ページに出す案内カード（トップ・働く環境・薬剤師の募集要項） */
.scholbox{
  display:block; text-decoration:none;
  background:#f1f7e2; border:1px solid #d8e7b4; border-radius:14px;
  padding:clamp(22px,3vw,34px) clamp(20px,3vw,38px);
  transition:transform .25s, box-shadow .25s;
}
.scholbox:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(90,110,40,.12); }
.scholbox__tag{
  display:inline-block; background:#8dc21f; color:#fff;
  font-size:12px; font-weight:700; letter-spacing:.08em;
  border-radius:999px; padding:5px 14px; margin-bottom:12px;
}
.scholbox__ttl{
  display:block; font-size:clamp(19px,2.6vw,26px); font-weight:900;
  color:#1a1a1a; line-height:1.5; margin-bottom:8px;
}
.scholbox__txt{ display:block; font-size:15px; line-height:1.95; color:#50603a; }
.scholbox__more{
  display:inline-flex; align-items:center; gap:10px; margin-top:16px;
  font-size:14px; font-weight:700; color:#5d7a16;
}
/* ページ内に単体で置くときの余白 */
.scholsec{
  position:relative; z-index:1;   /* 固定のヒーロー写真より前に出す（透け・クリック不可の防止） */
  background:#fff; padding:clamp(56px,7vw,90px) 0;
}
.scholsec--tint{ background:#f4f6ec; }
.scholsec__inner{ width:min(1200px, 90%); margin-inline:auto; }
.psec .scholbox{ margin-top:clamp(30px,4vw,48px); }
