/* ======================================================
   PP RECRUIT
   本体固定ページ用 / 白・黒・ゴールド / 角丸なし
   ====================================================== */

:root{
  --pp-r-black:#111;
  --pp-r-white:#fff;
  --pp-r-gold:#a98a4a;
  --pp-r-line:#d9d9d4;
  --pp-r-muted:#666;
  --pp-r-max:1180px;
}

html{scroll-behavior:smooth;}
body.page-recruit-main{overflow-x:hidden;}

.pp-recruit,
.pp-recruit *{box-sizing:border-box;}

.pp-recruit{
  background:var(--pp-r-white);
  color:var(--pp-r-black);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  line-height:1.85;
}

.pp-recruit img{
  display:block;
  width:100%;
  height:auto;
}

.pp-recruit a{
  color:inherit;
  text-decoration:none;
}

.pp-recruit-wrap{
  width:min(var(--pp-r-max),calc(100% - 64px));
  margin:0 auto;
}

/* ------------------------------
   共通見出し
------------------------------ */
.pp-recruit-kicker,
.pp-recruit-section-no,
.pp-recruit-job__number,
.pp-recruit-know__en{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.pp-recruit-section-no,
.pp-recruit-job__number{
  color:var(--pp-r-gold);
  font-size:12px;
  font-weight:700;
}

.pp-recruit-heading{
  max-width:760px;
  margin-bottom:54px;
}

.pp-recruit-heading h2,
.pp-recruit-intro h2,
.pp-recruit-contact h2{
  margin:10px 0 16px;
  font-size:clamp(30px,3vw,46px);
  line-height:1.35;
  letter-spacing:.02em;
  font-weight:600;
}

.pp-recruit-heading > p:last-child,
.pp-recruit-contact p{
  margin:0;
  color:var(--pp-r-muted);
  font-size:16px;
}

/* ------------------------------
   ボタン
------------------------------ */
.pp-recruit-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:220px;
  min-height:52px;
  padding:12px 24px;
  border:1px solid var(--pp-r-black);
  background:var(--pp-r-black);
  color:#fff !important;
  font-size:14px;
  font-weight:600;
  letter-spacing:.05em;
  transition:background .25s ease,color .25s ease;
}

.pp-recruit-btn:hover,
.pp-recruit-btn:focus-visible{
  background:transparent;
  color:var(--pp-r-black) !important;
}

/* ------------------------------
   01 ヒーロー
------------------------------ */
.pp-recruit-hero{
  padding:72px 0 84px;
  border-bottom:1px solid var(--pp-r-line);
}

.pp-recruit-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:72px;
  align-items:center;
}

.pp-recruit-kicker{
  color:var(--pp-r-gold);
  font-size:12px;
  font-weight:700;
}

.pp-recruit-hero h1{
  margin:18px 0 26px;
  font-size:clamp(38px,4.2vw,62px);
  line-height:1.28;
  letter-spacing:.01em;
  font-weight:600;
}

.pp-recruit-hero__lead{
  max-width:620px;
  margin:0 0 34px;
  font-size:16px;
  line-height:2;
}

.pp-recruit-hero__image{
  aspect-ratio:3/2;
  overflow:hidden;
}

.pp-recruit-hero__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

/* ------------------------------
   02 ABOUT
------------------------------ */
.pp-recruit-intro{
  padding:92px 0;
}

.pp-recruit-intro__grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:90px;
  align-items:start;
}

.pp-recruit-intro h2{
  font-size:clamp(28px,2.7vw,42px);
}

.pp-recruit-intro__body p{
  margin:0 0 20px;
  font-size:16px;
}

.pp-recruit-links{
  display:flex;
  flex-wrap:wrap;
  gap:14px 30px;
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid var(--pp-r-line);
}

.pp-recruit-links a{
  position:relative;
  display:inline-flex;
  gap:16px;
  align-items:center;
  font-weight:600;
}

.pp-recruit-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:0;
  height:1px;
  background:var(--pp-r-gold);
  transition:width .25s ease;
}

.pp-recruit-links a:hover::after{width:100%;}

/* ------------------------------
   03 募集職種
------------------------------ */
.pp-recruit-positions{
  padding:94px 0 30px;
  border-top:1px solid var(--pp-r-black);
}

.pp-recruit-job{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:64px;
  align-items:start;
  padding:56px 0 70px;
  border-top:1px solid var(--pp-r-line);
}

.pp-recruit-job:first-of-type{border-top:1px solid var(--pp-r-black);}

.pp-recruit-job--reverse .pp-recruit-job__image{order:2;}
.pp-recruit-job--reverse .pp-recruit-job__content{order:1;}

.pp-recruit-job__image{
  aspect-ratio:3/2;
  overflow:hidden;
}

.pp-recruit-job__image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.pp-recruit-job__content h3{
  margin:8px 0 2px;
  font-size:clamp(25px,2.3vw,34px);
  line-height:1.45;
  font-weight:600;
}

.pp-recruit-job__sub{
  margin:0 0 32px;
  color:var(--pp-r-muted);
  font-size:14px;
}

.pp-recruit-job__detail{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid var(--pp-r-line);
}

.pp-recruit-job__detail h4{
  margin:0 0 12px;
  font-size:15px;
  font-weight:700;
}

.pp-recruit-job__detail p{
  margin:0;
  font-size:15px;
}

.pp-recruit-job__detail dl{margin:0;}
.pp-recruit-job__detail dl > div{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:18px;
  padding:9px 0;
}
.pp-recruit-job__detail dt{
  font-size:13px;
  font-weight:700;
  color:var(--pp-r-muted);
}
.pp-recruit-job__detail dd{
  margin:0;
  font-size:15px;
}

/* ------------------------------
   04 勤務・待遇
------------------------------ */
.pp-recruit-conditions{
  padding:96px 0;
  background:#f6f6f3;
  border-top:1px solid var(--pp-r-black);
}

.pp-recruit-heading--conditions{margin-bottom:42px;}

.pp-recruit-table-wrap{
  width:100%;
  overflow-x:auto;
  background:#fff;
}

.pp-recruit-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}

.pp-recruit-table th,
.pp-recruit-table td{
  padding:20px 22px;
  border-top:1px solid var(--pp-r-line);
  vertical-align:top;
  text-align:left;
  font-size:15px;
}

.pp-recruit-table tr:first-child th,
.pp-recruit-table tr:first-child td{border-top:1px solid var(--pp-r-black);}

.pp-recruit-table th{
  width:220px;
  font-weight:700;
  background:#fff;
}

.pp-recruit-table td{line-height:1.9;}

/* ------------------------------
   05 PPを知る
------------------------------ */
.pp-recruit-know{
  padding:96px 0;
  border-top:1px solid var(--pp-r-black);
}

.pp-recruit-know__links{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--pp-r-black);
  border-bottom:1px solid var(--pp-r-black);
}

.pp-recruit-know__links a{
  position:relative;
  min-height:180px;
  padding:28px 26px 58px;
  border-left:1px solid var(--pp-r-line);
  transition:background .25s ease,color .25s ease;
}

.pp-recruit-know__links a:first-child{border-left:0;}
.pp-recruit-know__links a:hover{background:var(--pp-r-black);color:#fff;}

.pp-recruit-know__en{
  display:block;
  margin-bottom:34px;
  color:var(--pp-r-gold);
  font-size:11px;
  font-weight:700;
}

.pp-recruit-know__links strong{
  display:block;
  font-size:20px;
  font-weight:600;
}

.pp-recruit-know__arrow{
  position:absolute;
  right:24px;
  bottom:22px;
  font-size:24px;
  line-height:1;
}

/* ------------------------------
   06 お問い合わせ
------------------------------ */
.pp-recruit-contact{
  padding:88px 0 104px;
  border-top:1px solid var(--pp-r-line);
}

.pp-recruit-contact__inner{text-align:center;}
.pp-recruit-contact h2{font-size:clamp(28px,2.8vw,40px);}
.pp-recruit-contact p{margin:0 auto 30px;max-width:680px;}

/* ------------------------------
   Tablet / SP
------------------------------ */
@media(max-width:900px){
  .pp-recruit-wrap{width:min(var(--pp-r-max),calc(100% - 40px));}

  .pp-recruit-hero{padding:46px 0 64px;}
  .pp-recruit-hero__grid{grid-template-columns:1fr;gap:36px;}
  .pp-recruit-hero__image{order:-1;}
  .pp-recruit-hero h1{font-size:42px;}

  .pp-recruit-intro{padding:68px 0;}
  .pp-recruit-intro__grid{grid-template-columns:1fr;gap:30px;}

  .pp-recruit-job,
  .pp-recruit-job--reverse{
    grid-template-columns:1fr;
    gap:30px;
  }
  .pp-recruit-job--reverse .pp-recruit-job__image,
  .pp-recruit-job--reverse .pp-recruit-job__content{order:initial;}

  .pp-recruit-know__links{grid-template-columns:1fr;}
  .pp-recruit-know__links a{
    min-height:128px;
    border-left:0;
    border-top:1px solid var(--pp-r-line);
  }
  .pp-recruit-know__links a:first-child{border-top:0;}
}

@media(max-width:600px){
  .pp-recruit-wrap{width:calc(100% - 30px);}

  .pp-recruit-hero{padding:28px 0 52px;}
  .pp-recruit-hero__grid{gap:26px;}
  .pp-recruit-hero h1{
    margin:12px 0 20px;
    font-size:31px;
    line-height:1.42;
  }
  .pp-recruit-hero__lead{font-size:15px;line-height:1.85;}
  .pp-recruit-btn{width:100%;min-width:0;min-height:50px;}

  .pp-recruit-heading h2,
  .pp-recruit-intro h2,
  .pp-recruit-contact h2{
    font-size:25px;
    line-height:1.45;
  }

  .pp-recruit-intro,
  .pp-recruit-conditions,
  .pp-recruit-know{padding:62px 0;}
  .pp-recruit-positions{padding:62px 0 10px;}

  .pp-recruit-heading{margin-bottom:34px;}

  .pp-recruit-job{padding:38px 0 50px;}
  .pp-recruit-job__content h3{font-size:23px;}
  .pp-recruit-job__sub{margin-bottom:22px;}
  .pp-recruit-job__detail{margin-top:22px;padding-top:18px;}

  .pp-recruit-job__detail dl > div{
    grid-template-columns:1fr;
    gap:2px;
    padding:9px 0 12px;
  }

  .pp-recruit-table{table-layout:auto;}
  .pp-recruit-table th,
  .pp-recruit-table td{padding:15px 13px;font-size:14px;}
  .pp-recruit-table th{width:98px;}

  .pp-recruit-know__en{margin-bottom:20px;}
  .pp-recruit-know__links a{min-height:112px;padding:22px 18px 48px;}
  .pp-recruit-know__arrow{right:18px;bottom:18px;}

  .pp-recruit-contact{padding:58px 0 74px;}
}

