/* =========================================================
   Y CREST — Careers  /  採用サイト
   ---------------------------------------------------------
   ../style.css は「色・書体・地の文」のためだけに読む。
   セクションの組み方（.p-hero / .sec-x / .arch / .p-list /
   .closing）はコーポレートの型なので、ここでは使わない。

   ■ 文字の階層（ここを崩すと「抑揚がない」に戻る）
     L1 舞台コピー      clamp(21,2.35vw,31)  明朝500   ← 大きいのはここだけ
     L2 職種名          clamp(15,1.55vw,19)  明朝500
     L3 セクション見出し 19px                 明朝500
     L4 小見出し        15px                 明朝500
     L5 本文            13.5px               ゴシック300
     L6 補足・注記      11.5px
     ラベル（英字）      8〜9px  Jost 広字間
   隣り合う階層は必ず「1.3倍以上」離す。近い数字を並べない。

   ■ 一枚目は写真と文字を重ねない
     右に写真パネル、左と下は無地。スクリムで写真を濁らせないための構造。
========================================================= */

body{background:var(--offwhite);}

/* 日本語の改行は、文節の切れ目に置いた <wbr> でだけ起こす。
   style.css の word-break:auto-phrase は Chrome の新しい版にしか効かず、
   Safari などでは「次のご／縁」のように語の途中で折れるため。
   overflow-wrap:anywhere は、区切りの無い長い塊が枠からはみ出すときの保険。 */
p,h3,h4,dd,figcaption,small,.lede,.note{word-break:keep-all;overflow-wrap:anywhere;line-break:strict;}

/* =========================================================
   HERO — 全画面の写真スライド
   写真は4枚を6秒ずつクロスフェード。色は .tint でネイビーに寄せて
   1枚ごとの色温度差（夜景の電球色など）を消している。
========================================================= */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;
  overflow:hidden;background:var(--navy);isolation:isolate;}
.hero .slides{position:absolute;inset:0;}
.hero .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.8s var(--ease);}
.hero .sl.on{opacity:1;}
.hero .sl img{width:100%;height:100%;object-fit:cover;transform:scale(1.03);
  filter:saturate(.72) contrast(1.04);}
.hero .sl.on img{transform:scale(1.10);transition:transform 9.5s linear;}
/* 新オフィスの写真はベージュの大理石＝コーポレートのベージュそのもの。
   強くかけると冷たいグレーになるので、なじませる程度（.2）に留める。
   夜景など色温度がバラつく写真に替えるときは .4 前後まで上げる。 */
.hero .tint{position:absolute;inset:0;background:var(--navy-blue);
  mix-blend-mode:color;opacity:.2;pointer-events:none;}
.hero .scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,
    rgba(14,27,44,.50) 0%,
    rgba(14,27,44,.14) 28%,
    rgba(14,27,44,.58) 66%,
    rgba(14,27,44,.90) 100%);}

/* 上端：ロゴとエントリー */
.hero .top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;
  align-items:center;justify-content:space-between;gap:20px;
  padding:clamp(18px,3vh,30px) clamp(24px,4.6vw,80px);}
.hero .top .lt{display:flex;align-items:center;}
.hero .top .brand{display:block;width:116px;line-height:0;}
.hero .top .brand img{width:100%;height:auto;display:block;}
.hero .top .ent{font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.28em;
  text-transform:uppercase;font-size:9.5px;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:6px;
  transition:opacity .4s var(--ease);}
.hero .top .ent:hover{opacity:.55;}

.hero .inner{position:relative;z-index:2;width:100%;color:#fff;
  padding:0 clamp(24px,4.6vw,80px) clamp(58px,9vh,104px);}
.hero .lab{font-family:"Shippori Mincho",serif;font-weight:500;letter-spacing:.22em;
  font-size:12.5px;color:#fff;}
.hero .lab i{display:block;font-style:normal;font-family:"Jost",sans-serif;font-weight:300;
  letter-spacing:.32em;text-transform:uppercase;font-size:8.5px;color:var(--gold-soft);margin-top:7px;}
.hero .cap{margin-top:20px;font-family:"Shippori Mincho",serif;font-weight:500;
  font-size:clamp(23px,2.7vw,36px);line-height:1.75;letter-spacing:.16em;color:#fff;
  text-shadow:0 1px 26px rgba(14,27,44,.5);}
.hero .sub{margin-top:20px;font-size:12.5px;line-height:2.0;letter-spacing:.05em;
  color:rgba(255,255,255,.78);max-width:30em;text-shadow:0 1px 20px rgba(14,27,44,.5);}

/* 右下：スライドの進行（数字ではなく細いバー） */
.hero .foot{position:absolute;right:clamp(24px,4.6vw,80px);bottom:clamp(58px,9vh,104px);
  z-index:2;display:flex;align-items:center;gap:22px;}
.hero .prog{display:flex;gap:7px;}
.hero .prog b{display:block;width:30px;height:1px;background:rgba(255,255,255,.26);
  position:relative;overflow:hidden;}
.hero .prog b::after{content:"";position:absolute;inset:0;background:var(--gold-soft);
  transform:scaleX(0);transform-origin:left;}
.hero .prog b.on::after{animation:progFill 6s linear forwards;}
@keyframes progFill{from{transform:scaleX(0);}to{transform:scaleX(1);}}
.hero .cue{display:flex;align-items:center;gap:11px;
  font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.3em;
  text-transform:uppercase;font-size:8px;color:rgba(255,255,255,.5);}
.hero .cue i{display:block;width:1px;height:26px;background:rgba(255,255,255,.28);
  position:relative;overflow:hidden;}
.hero .cue i::after{content:"";position:absolute;inset:0;background:var(--gold-soft);
  transform:translateY(-100%);animation:cueRun 2.8s var(--ease) infinite;}
@keyframes cueRun{0%{transform:translateY(-100%);}55%{transform:translateY(100%);}100%{transform:translateY(100%);}}

/* 入場 */
.hero .lab,.hero .cap,.hero .sub,.hero .foot{opacity:0;transform:translateY(15px);
  transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);}
.hero.lit .lab{opacity:1;transform:none;transition-delay:.25s;}
.hero.lit .cap{opacity:1;transform:none;transition-delay:.45s;}
.hero.lit .sub{opacity:1;transform:none;transition-delay:.62s;}
.hero.lit .foot{opacity:1;transform:none;transition-delay:.85s;}
@media(prefers-reduced-motion:reduce){
  .hero .lab,.hero .cap,.hero .sub,.hero .foot{opacity:1;transform:none;}
  .hero .cue i::after{animation:none;}
  .hero .prog b.on::after{animation:none;transform:scaleX(1);}
  .hero .sl.on img{transition:none;transform:scale(1.03);}
}

/* =========================================================
   OPENINGS — ベージュの地に黒文字
   強調は色の濃淡ではなく「大きさ」と「太さ」で付ける。
     職種名  明朝600・17〜21px   ← いちばん強い
     給与    Jost400・15px       ← 次に強い
     その他  11〜12px・細字
========================================================= */
.jobs{background:var(--paper);color:var(--charcoal);
  padding:clamp(60px,9vh,104px) 0 clamp(52px,8vh,92px);}
.jobs .in{max-width:1200px;margin:0 auto;padding:0 clamp(24px,4.6vw,80px);}
.jobs .hd{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  padding-bottom:14px;border-bottom:1px solid var(--charcoal);}
.jobs .hd .lt{display:flex;align-items:baseline;gap:14px;}
.jobs .hd .n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300;
  font-size:22px;line-height:1;color:var(--stone);}
.jobs .hd .t{font-family:"Shippori Mincho",serif;font-weight:600;font-size:21px;
  letter-spacing:.18em;color:var(--charcoal);}
.jobs .hd .note{font-family:"Shippori Mincho",serif;font-size:11px;letter-spacing:.12em;
  color:var(--txt-soft);}

.op{border-bottom:1px solid var(--line);}
.op .hdr{width:100%;background:none;border:0;cursor:pointer;text-align:left;color:inherit;
  font-family:inherit;display:grid;grid-template-columns:32px 1fr 84px 200px 14px;
  gap:16px;align-items:baseline;padding:clamp(14px,1.9vh,20px) 0;
  transition:padding-left .6s var(--ease);}
.op .hdr .n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:400;
  font-size:16px;color:var(--stone);line-height:1;}
.op .hdr .nm{font-family:"Shippori Mincho",serif;font-weight:600;
  font-size:clamp(17px,1.75vw,21px);letter-spacing:.12em;line-height:1.5;color:var(--charcoal);}
.op .hdr .nm span{display:block;font-family:"Jost",sans-serif;font-weight:400;letter-spacing:.26em;
  text-transform:uppercase;font-size:8.5px;color:var(--stone);margin-top:6px;}
.op .hdr .ty{font-size:11.5px;letter-spacing:.08em;color:var(--txt-soft);}
.op .hdr .py{font-family:"Jost",sans-serif;font-weight:400;font-size:15px;letter-spacing:.02em;
  color:var(--charcoal);font-variant-numeric:lining-nums tabular-nums;}
.op .hdr .py em{font-style:normal;font-family:"Shippori Mincho",serif;font-size:10.5px;
  letter-spacing:.1em;margin-right:8px;color:var(--txt-soft);}
/* ＋／− の開閉サイン（クラス名は .sign を使わない：style.css と衝突する） */
.op .hdr .pm{position:relative;width:12px;height:12px;justify-self:end;align-self:center;}
.op .hdr .pm::before,.op .hdr .pm::after{content:"";position:absolute;
  background:var(--charcoal);transition:transform .45s var(--ease);}
.op .hdr .pm::before{left:0;top:5.5px;width:12px;height:1px;}
.op .hdr .pm::after{left:5.5px;top:0;width:1px;height:12px;}
.op.open .hdr .pm::after{transform:scaleY(0);}
.op .hdr:hover,.op.open .hdr{padding-left:14px;}

/* 開いたときの要項 */
.op .body{max-height:0;overflow:hidden;opacity:0;
  transition:max-height .75s var(--ease),opacity .5s var(--ease);}
.op.open .body{max-height:900px;opacity:1;}
.op .body dl{padding:6px 0 2px 48px;max-width:900px;}
.op .body .r{display:grid;grid-template-columns:104px 1fr;gap:20px;padding:11px 0;
  border-top:1px solid var(--line);}
.op .body dt{font-family:"Shippori Mincho",serif;font-weight:500;font-size:12px;
  letter-spacing:.14em;color:var(--txt-soft);padding-top:3px;}
.op .body dd{font-size:13.5px;font-weight:400;line-height:1.95;color:var(--charcoal);letter-spacing:.03em;}
.op .body dd small{display:block;font-size:11.5px;font-weight:300;color:var(--txt-soft);
  margin-top:5px;line-height:1.85;}
/* 給与の行だけ一段強く（大きく・太く） */
.op .body .r.pay dd{font-size:15.5px;font-weight:500;}
.op .body .r.pay dd small{font-size:11.5px;font-weight:300;}
.op .body .act{padding:18px 0 26px 48px;}
.op .body .act .link-underline{color:var(--charcoal);}

/* =========================================================
   DOCUMENT — 左レール ＋ 本文
========================================================= */
.doc{display:grid;grid-template-columns:238px 1fr;align-items:start;}

.rail{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;
  padding:clamp(26px,3.4vh,40px) clamp(20px,1.8vw,30px) clamp(24px,3.2vh,38px) clamp(24px,2.6vw,44px);
  border-right:1px solid var(--line);}
.rail .brand{display:block;width:104px;line-height:0;}
.rail .brand img{width:100%;height:auto;display:block;}

.rail .ix{margin:auto 0;display:flex;flex-direction:column;gap:2px;}
.rail .ix a{position:relative;display:flex;align-items:baseline;gap:12px;padding:9px 0;}
.rail .ix a .n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300;
  font-size:13px;color:var(--stone);opacity:.65;transition:opacity .5s var(--ease),color .5s var(--ease);}
.rail .ix a .t{font-family:"Shippori Mincho",serif;font-size:12.5px;letter-spacing:.15em;
  color:var(--txt-soft);transition:color .5s var(--ease);}
.rail .ix a::before{content:"";position:absolute;left:-14px;top:50%;width:0;height:1px;
  background:var(--navy-blue);transition:width .5s var(--ease);}
.rail .ix a:hover .t{color:var(--charcoal);}
.rail .ix a.on .t{color:var(--charcoal);}
.rail .ix a.on .n{opacity:1;color:var(--navy-blue);}
.rail .ix a.on::before{width:8px;}

.rail .foot{display:flex;flex-direction:column;gap:10px;}
.rail .foot .go{font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.28em;
  text-transform:uppercase;font-size:9.5px;color:var(--charcoal);
  border-bottom:1px solid var(--charcoal);padding-bottom:7px;align-self:flex-start;
  transition:opacity .4s var(--ease);}
.rail .foot .go:hover{opacity:.5;}
.rail .foot .tel{font-family:"Jost",sans-serif;font-weight:300;font-size:13.5px;letter-spacing:.06em;
  color:var(--txt-soft);font-variant-numeric:lining-nums tabular-nums;}
.rail .foot .back{font-size:11px;letter-spacing:.08em;color:var(--grey);
  transition:color .4s var(--ease);}
.rail .foot .back:hover{color:var(--charcoal);}

.main{min-width:0;overflow:hidden;}
/* 本文は左端に貼りつけず、レールを除いた領域の中央に置く */
.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(24px,4.6vw,88px);}

.blk{padding:clamp(66px,10vh,118px) 0;}
.blk + .blk{border-top:1px solid var(--line);}
/* 白一色にせず、1ブロックだけ地を変えて調子を替える */
.blk.tone{background:var(--paper);border-top:0;
  margin-left:-1000px;margin-right:-1000px;padding-left:1000px;padding-right:1000px;}

/* 見出しは本文の1.4倍。番号はさらに大きく置いて、行の重心をつくる */
.blk-head{display:flex;align-items:baseline;gap:17px;margin-bottom:clamp(30px,5vh,54px);}
.blk-head .n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300;
  font-size:22px;line-height:1;color:var(--stone);}
.blk-head h2{font-family:"Shippori Mincho",serif;font-weight:500;font-size:19px;
  letter-spacing:.2em;color:var(--charcoal);line-height:1.5;}
.blk-head .en{margin-left:auto;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.3em;
  text-transform:uppercase;font-size:8.5px;color:var(--stone);white-space:nowrap;}

.note{margin-top:clamp(24px,3.6vh,38px);font-size:11.5px;line-height:1.95;color:var(--grey);max-width:50em;}
.lede{font-size:13.5px;line-height:2.0;color:var(--txt);max-width:33em;letter-spacing:.03em;}
.lede + .lede{margin-top:1.5em;}
.lede strong{font-weight:400;color:var(--charcoal);}

.facts{display:flex;flex-wrap:wrap;gap:0 clamp(28px,4vw,60px);
  border-bottom:1px solid var(--line);padding:18px 0;}
.facts div{display:flex;align-items:baseline;gap:12px;}
.facts dt{font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.28em;text-transform:uppercase;
  font-size:8px;color:var(--stone);}
.facts dd{font-size:13px;letter-spacing:.05em;color:var(--charcoal);
  font-variant-numeric:lining-nums tabular-nums;}

/* =========================================================
   MESSAGE — 想い
========================================================= */
/* ⚠️ クラス名は .msg / .sign を使わない。コーポレートの style.css に
   同名の部品（12カラムのグリッド・署名）があり、親なしで効いてしまうため。 */
.words{max-width:36em;}
.words h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:19px;
  letter-spacing:.16em;color:var(--charcoal);line-height:1.85;margin-bottom:26px;}
/* 改行は <wbr> を置いた文節の切れ目だけで起こす。
   style.css の word-break:auto-phrase は Chrome の新しい版にしか効かず、
   Safari などでは「次のご／縁」のように語の途中で折れてしまうため。
   overflow-wrap:anywhere は、区切りのない長い塊がはみ出すときの保険。 */
.words p{font-size:13.5px;line-height:2.05;color:var(--txt);letter-spacing:.03em;}
.words p + p{margin-top:1.5em;}
/* 強調フレーズは途中で折らない。行に収まらなければ丸ごと次の行に送る */
.words p strong{font-weight:500;font-size:14.5px;color:var(--charcoal);background:none;
  white-space:nowrap;display:inline-block;}
.words .by{margin-top:34px;padding-top:16px;border-top:1px solid var(--line);
  font-family:"Shippori Mincho",serif;font-size:12.5px;letter-spacing:.12em;color:var(--charcoal);}
.words .by small{display:block;margin-top:7px;font-family:"Shippori Mincho",serif;
  font-size:12px;color:var(--txt-soft);letter-spacing:.1em;}

/* =========================================================
   02 WORK
========================================================= */
.fields{margin-top:clamp(32px,5vh,54px);display:grid;gap:clamp(24px,3.6vh,38px);}
.fld{display:grid;grid-template-columns:158px 1fr;gap:clamp(18px,2.4vw,36px);align-items:baseline;}
.fld h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:15px;
  letter-spacing:.15em;color:var(--charcoal);line-height:1.75;}
.fld h3 span{display:block;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.28em;
  text-transform:uppercase;font-size:8px;color:var(--stone);margin-top:7px;}
.fld p{font-size:13.5px;line-height:2.0;color:var(--txt-soft);max-width:36em;letter-spacing:.03em;}


/* =========================================================
   02 PEOPLE
========================================================= */
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(30px,5vh,48px) clamp(34px,5vw,80px);}
.pp .n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300;
  font-size:17px;color:var(--stone);line-height:1;}
.pp h3{margin-top:12px;font-family:"Shippori Mincho",serif;font-weight:500;font-size:15px;
  letter-spacing:.14em;color:var(--charcoal);line-height:1.85;}
.pp p{margin-top:14px;font-size:13px;line-height:2.0;color:var(--txt-soft);letter-spacing:.03em;}

/* =========================================================
   03 CONDITIONS — 用語集の体裁（罫線を引かない）
========================================================= */
.gloss{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(26px,4.2vh,40px) clamp(34px,5vw,80px);}
.gl h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:15px;letter-spacing:.14em;
  color:var(--charcoal);line-height:1.8;}
.gl h3 span{display:block;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.28em;
  text-transform:uppercase;font-size:8px;color:var(--stone);margin-top:7px;}
.gl p{margin-top:12px;font-size:13px;line-height:2.0;color:var(--txt-soft);letter-spacing:.03em;}

.qa{margin-top:clamp(38px,6vh,64px);border-top:1px solid var(--line);}
.qa .q{padding:clamp(16px,2.4vh,22px) 0;border-bottom:1px solid var(--line);}
.qa .q h4{font-family:"Shippori Mincho",serif;font-weight:500;font-size:14px;letter-spacing:.08em;
  color:var(--charcoal);line-height:1.8;}
.qa .q h4::before{content:"Q";font-family:"Cormorant Garamond",serif;font-style:italic;
  font-size:17px;color:var(--stone);margin-right:12px;}
.qa .q p{margin-top:10px;font-size:13px;line-height:2.0;color:var(--txt-soft);padding-left:29px;}

/* =========================================================
   05 PROCESS — 1本の線の上に点を打つ
========================================================= */
.flow{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:0 clamp(10px,1.4vw,20px);}
.flow::before{content:"";position:absolute;left:3px;right:0;top:3.5px;height:1px;background:var(--line);}
.flow .s{position:relative;padding:24px clamp(10px,1.4vw,18px) 0 0;}
.flow .s::before{content:"";position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%;
  background:var(--offwhite);border:1px solid var(--navy-blue);}
.flow .s .en{font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.26em;
  text-transform:uppercase;font-size:8px;color:var(--stone);}
.flow .s h3{margin-top:9px;font-family:"Shippori Mincho",serif;font-weight:500;font-size:14px;
  letter-spacing:.12em;color:var(--charcoal);line-height:1.7;}
.flow .s p{margin-top:11px;font-size:11.5px;line-height:1.95;color:var(--txt-soft);}

/* =========================================================
   06 ENTRY — 冒頭の暗さに呼応して、最後も落とす
========================================================= */
.close{position:relative;background:var(--navy);color:#fff;overflow:hidden;
  padding:clamp(76px,13vh,140px) 0 clamp(58px,9vh,100px);}
.close .bg{position:absolute;inset:0;}
.close .bg img{width:100%;height:100%;object-fit:cover;opacity:.34;}
.close .veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,27,44,.82),rgba(10,19,31,.95));}
.close .in{position:relative;z-index:2;padding:0 clamp(24px,4.6vw,88px);max-width:1120px;margin:0 auto;}
.close .hd{display:flex;align-items:baseline;gap:17px;
  border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:17px;
  margin-bottom:clamp(30px,5vh,54px);}
.close .hd .n{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:300;
  font-size:22px;color:var(--gold-soft);line-height:1;}
.close .hd h2{font-family:"Shippori Mincho",serif;font-weight:500;font-size:19px;
  letter-spacing:.2em;color:#fff;}
.close .hd .en{margin-left:auto;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.3em;
  text-transform:uppercase;font-size:8.5px;color:var(--gold-soft);}

/* ---------- 応募フォーム（枠線ではなく罫線だけ。暗い地に白） ---------- */
.ef-wrap{display:grid;grid-template-columns:1.45fr .75fr;gap:clamp(36px,6vw,96px);align-items:start;}
.ef{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.4vh,34px) clamp(26px,3.6vw,48px);}
.ef .full{grid-column:1/-1;}
.ef .hp{display:none;}
.ef label,.ef legend{display:block;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.3em;
  text-transform:uppercase;font-size:8.5px;color:var(--gold-soft);margin-bottom:10px;}
.ef label b,.ef legend b{display:block;margin-top:6px;font-family:"Shippori Mincho",serif;font-weight:500;
  letter-spacing:.14em;text-transform:none;font-size:13px;color:#fff;}
.ef .req{font-style:normal;font-family:"Shippori Mincho",serif;font-size:9.5px;letter-spacing:.14em;
  color:var(--gold-soft);margin-left:10px;font-weight:400;}
.ef input[type=text],.ef input[type=email],.ef input[type=tel],.ef select,.ef textarea{
  width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.32);background:transparent;
  padding:11px 2px;font-family:inherit;font-weight:300;font-size:14px;color:#fff;letter-spacing:.04em;
  border-radius:0;-webkit-appearance:none;appearance:none;transition:border-color .5s var(--ease);}
.ef select{cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239FB7C1' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;padding-right:24px;}
.ef select option{color:var(--charcoal);background:#fff;}
.ef input::placeholder,.ef textarea::placeholder{color:rgba(255,255,255,.32);}
.ef input:focus,.ef select:focus,.ef textarea:focus{outline:none;border-bottom-color:var(--gold-soft);}
.ef textarea{min-height:120px;resize:vertical;line-height:1.9;}

.ef fieldset{border:0;padding:0;margin:0;min-width:0;}
.ef .radios{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:4px;}
.ef .radios label{position:relative;margin:0;cursor:pointer;padding:14px 16px 13px;
  border:1px solid rgba(255,255,255,.22);text-transform:none;letter-spacing:0;
  transition:border-color .4s var(--ease),background .4s var(--ease);}
.ef .radios input{position:absolute;opacity:0;width:0;height:0;}
.ef .radios span{display:block;font-family:"Shippori Mincho",serif;font-weight:500;font-size:14px;
  letter-spacing:.12em;color:rgba(255,255,255,.72);transition:color .4s var(--ease);}
.ef .radios small{display:block;margin-top:5px;font-size:10.5px;letter-spacing:.05em;color:rgba(255,255,255,.42);}
.ef .radios label:hover{border-color:rgba(255,255,255,.5);}
.ef .radios input:checked + span{color:#fff;}
.ef .radios label:has(input:checked){border-color:#fff;background:rgba(255,255,255,.06);}
.ef .radios input:focus-visible + span{text-decoration:underline;}

.ef .agree label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;
  text-transform:none;letter-spacing:.04em;font-family:inherit;font-size:12px;color:rgba(255,255,255,.72);margin:0;}
.ef .agree input{margin-top:5px;accent-color:var(--gold-soft);flex:0 0 auto;}
.ef .agree span{line-height:1.9;}

.ef .act{display:flex;align-items:baseline;gap:26px;flex-wrap:wrap;}
.ef button{background:none;border:0;border-bottom:1px solid #fff;cursor:pointer;padding:0 0 9px;
  font-family:"Shippori Mincho",serif;font-weight:500;letter-spacing:.24em;font-size:14px;color:#fff;
  transition:opacity .4s var(--ease);}
.ef button:hover{opacity:.55;}
.ef .act .note{margin:0;font-size:11.5px;color:rgba(255,255,255,.5);}

.ef-sent{padding:clamp(20px,4vh,40px) 0;}
.ef-sent h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:19px;letter-spacing:.16em;color:#fff;}
.ef-sent h3 span{display:block;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.3em;
  text-transform:uppercase;font-size:8.5px;color:var(--gold-soft);margin-bottom:12px;}
.ef-sent p{margin-top:16px;font-size:13.5px;line-height:2;color:rgba(255,255,255,.75);}

/* 右側：電話と、新卒／中途への一言 */
.ef-side .blkx{border-top:1px solid rgba(255,255,255,.18);padding:clamp(18px,2.6vh,26px) 0;}
.ef-side .blkx:last-child{border-bottom:1px solid rgba(255,255,255,.18);}
.ef-side h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:14px;letter-spacing:.14em;color:#fff;}
.ef-side h3 span{display:block;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.28em;
  text-transform:uppercase;font-size:8px;color:var(--gold-soft);margin-bottom:9px;}
.ef-side p{margin-top:10px;font-size:12.5px;line-height:1.95;color:rgba(255,255,255,.7);}
.ef-side .tel{display:block;margin-top:10px;font-family:"Jost",sans-serif;font-weight:300;
  font-size:clamp(20px,1.85vw,26px);letter-spacing:.05em;color:#fff;line-height:1.25;white-space:nowrap;
  font-variant-numeric:lining-nums tabular-nums;}
.ef-side .tel small{display:block;font-size:8.5px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold-soft);margin-top:9px;}

.close .fine{margin-top:clamp(34px,5vh,56px);padding-top:17px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;justify-content:space-between;align-items:flex-end;gap:22px;flex-wrap:wrap;}
.close .fine .addr{font-size:11.5px;line-height:1.95;color:rgba(255,255,255,.5);letter-spacing:.04em;}
.close .fine .lnk{display:flex;gap:20px;flex-wrap:wrap;}
.close .fine .lnk a{font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.24em;
  text-transform:uppercase;font-size:8.5px;color:rgba(255,255,255,.62);transition:color .4s var(--ease);}
.close .fine .lnk a:hover{color:#fff;}
.close .cr{margin-top:20px;font-family:"Jost",sans-serif;font-weight:300;letter-spacing:.2em;
  text-transform:uppercase;font-size:8.5px;color:rgba(255,255,255,.3);}

/* =========================================================
   モバイル
========================================================= */
.m-bar{display:none;}

@media(max-width:1080px){
  .doc{display:block;}
  .rail{position:sticky;top:0;height:auto;flex-direction:row;align-items:center;
    justify-content:space-between;gap:16px;border-right:0;border-bottom:1px solid var(--line);
    background:rgba(244,242,238,.94);backdrop-filter:blur(10px);z-index:50;
    padding:11px clamp(18px,5vw,30px);}
  .rail .brand{width:96px;}
    .rail .ix{display:none;}
  .rail .foot{flex-direction:row;align-items:center;gap:16px;}
  .rail .foot .tel,.rail .foot .back{display:none;}
  .rail .foot .go{padding-bottom:5px;font-size:9px;}

  .flow{grid-template-columns:repeat(3,1fr);gap:26px clamp(10px,2vw,20px);}
  .flow::before{display:none;}
  .flow .s{padding-top:20px;}

  .m-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:52;
    background:rgba(244,242,238,.95);backdrop-filter:blur(10px);
    border-top:1px solid var(--line);}
  .m-bar a{flex:1;text-align:center;padding:14px 8px;
    font-family:"Shippori Mincho",serif;font-size:12.5px;letter-spacing:.14em;color:var(--charcoal);}
  .m-bar a + a{border-left:1px solid var(--line);}
  body{padding-bottom:47px;}
}

@media(max-width:860px){
  .hero .top{padding:clamp(14px,2.6vh,22px) clamp(22px,6vw,34px);}
  .hero .top .brand{width:100px;}
  /* 画面下の細い導線（.m-bar 47px）と重ならない位置に置く */
  .hero .inner{padding:0 clamp(22px,6vw,34px) clamp(108px,16vh,148px);}
  .hero .foot{left:clamp(22px,6vw,34px);right:clamp(22px,6vw,34px);
    bottom:64px;justify-content:space-between;}
  .jobs .in{padding:0 clamp(22px,6vw,34px);}
  .jobs .hd{flex-direction:column;align-items:flex-start;gap:8px;}
  .jobs .hd .note{display:none;}
  .op .hdr{grid-template-columns:24px 1fr 14px;gap:5px 12px;padding:13px 0;}
  .op .hdr .ty{grid-column:2;font-size:10.5px;}
  .op .hdr .py{grid-column:2;font-size:12.5px;}
  .op .hdr .pm{grid-column:3;grid-row:1;}
  .op .body dl,.op .body .act{padding-left:0;}
  .op .body .r{grid-template-columns:1fr;gap:4px;}
  /* 縦積みで背が伸びるぶん、開いたときの上限も上げる */
  .op.open .body{max-height:1800px;}
}

@media(max-width:760px){
  .facts{gap:0 clamp(20px,5vw,40px);}
  .fld{grid-template-columns:1fr;gap:9px;}
  .people,.gloss,.ef-wrap{grid-template-columns:1fr;}
  .ef{grid-template-columns:1fr;}
  .ef .radios{grid-template-columns:1fr;}
  .flow{grid-template-columns:1fr;gap:20px;}
  .close .fine{flex-direction:column;align-items:flex-start;}
}
