@charset "utf-8";

/* =========================================================
   Veast — TALENT AUDITION 特設ページ
   style.css のトークン・ベース・ボタン・フッターを継承
   ========================================================= */

.lp{background:var(--deep);color:#fff;}

/* ---------- hero ---------- */
.lp-hero{position:relative;overflow:hidden;background:var(--deep);}
.lp-hero__bg{position:absolute;inset:0;}
.lp-hero__bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 32%;
  transform:scale(1.1);filter:blur(7px) saturate(1.08);
}
.lp-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(23,27,46,.78) 0%,rgba(23,27,46,.58) 42%,rgba(23,27,46,.95) 100%);
}
.lp-hero__inner{
  position:relative;z-index:2;max-width:1060px;margin:0 auto;text-align:center;
  padding:calc(var(--header-h) + env(safe-area-inset-top,0px) + clamp(60px,9vw,110px)) var(--pad) clamp(60px,8vw,100px);
}
.lp-hero__eyebrow{
  font-family:var(--ff-en);font-weight:700;font-size:12px;letter-spacing:.34em;
  color:var(--accent-soft);margin-bottom:22px;
}
.lp-hero__title{
  font-family:var(--ff-en);font-weight:800;line-height:1.04;letter-spacing:.02em;
  font-size:clamp(38px,8.4vw,92px);
}
.lp-hero__title span{display:block;color:var(--accent-soft);font-size:.46em;letter-spacing:.14em;margin-top:14px;}
.lp-hero__catch{
  font-size:clamp(17px,2.6vw,26px);font-weight:900;line-height:1.85;margin-top:clamp(28px,3.6vw,40px);
}
.lp-hero__catch em{font-style:normal;color:var(--accent-soft);}
.lp-hero__term{
  display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px;
  margin-top:clamp(26px,3.4vw,38px);padding:14px clamp(20px,3vw,34px);
  border:1px solid var(--line-dark);border-radius:var(--squircle-sm);
  background:rgba(255,255,255,.05);
}
.lp-hero__term dt{font-family:var(--ff-en);font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--accent-soft);}
.lp-hero__term dd{margin:0;font-family:var(--ff-en);font-weight:700;font-size:clamp(15px,2.2vw,20px);letter-spacing:.04em;}
.lp-hero__cta{display:flex;justify-content:center;margin-top:clamp(30px,3.8vw,42px);}

/* ---------- section ---------- */
.lp .sec--deep{background:var(--deep);}
.lp .sec--deep2{background:var(--deep-2);color:#fff;}
.lp .sec--deep2 .sec-head__ja{color:var(--on-deep-dim);}

/* ---------- message ---------- */
.msg{max-width:720px;margin:0 auto;text-align:center;}
.msg__catch{font-size:clamp(20px,3.2vw,32px);font-weight:900;line-height:1.85;margin-bottom:28px;}
.msg__catch em{font-style:normal;color:var(--accent-soft);}
.msg p{color:var(--on-deep);margin-bottom:1.3em;}
.msg p:last-child{margin-bottom:0;}

/* ---------- wanted ---------- */
.wanted{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,2.2vw,22px);}
.wanted li{
  display:flex;gap:18px;align-items:flex-start;
  border:1px solid var(--line-dark);border-radius:var(--squircle-sm);
  padding:clamp(22px,2.8vw,30px);background:rgba(255,255,255,.04);
}
.wanted__mark{
  flex:none;width:30px;height:30px;border-radius:9px 9px 16px 9px;transform:rotate(45deg);
  border:2px solid var(--accent);margin-top:6px;
}
.wanted h3{font-size:16.5px;font-weight:900;margin-bottom:6px;line-height:1.7;}
.wanted p{font-size:13.5px;line-height:2.05;color:var(--on-deep-dim);}

/* ---------- support ---------- */
.sup{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,20px);}
.sup li{
  border:1px solid var(--line-dark);border-radius:var(--squircle-sm);
  padding:clamp(22px,2.6vw,28px);background:rgba(255,255,255,.04);text-align:center;
}
.sup__icon{width:40px;height:40px;margin:0 auto 16px;color:var(--accent-soft);}
.sup__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.sup h3{font-size:15px;font-weight:900;margin-bottom:8px;}
.sup p{font-size:12.5px;line-height:2;color:var(--on-deep-dim);}

/* ---------- requirements ---------- */
.req{max-width:820px;margin:0 auto;border-top:1px solid var(--line-dark);}
.req__row{display:grid;grid-template-columns:200px 1fr;gap:clamp(16px,3vw,32px);padding:22px 8px;border-bottom:1px solid var(--line-dark);}
.req__row dt{font-size:13.5px;font-weight:900;color:var(--accent-soft);}
.req__row dd{margin:0;font-size:14px;line-height:2.05;color:var(--on-deep);}
.req__row dd small{display:block;font-size:12px;color:var(--on-deep-dim);margin-top:4px;}

/* ---------- flow ---------- */
.flow{counter-reset:step;display:grid;gap:clamp(12px,1.8vw,18px);max-width:860px;margin:0 auto;}
.flow li{
  position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,2.6vw,28px);align-items:center;
  border:1px solid var(--line-dark);border-radius:var(--squircle-sm);
  padding:clamp(20px,2.4vw,26px) clamp(22px,2.8vw,30px);background:rgba(255,255,255,.04);
}
.flow li::after{
  content:"";position:absolute;left:calc(clamp(22px,2.8vw,30px) + 27px);bottom:calc(-1 * clamp(12px,1.8vw,18px) - 1px);
  width:2px;height:clamp(12px,1.8vw,18px);background:var(--line-dark);
}
.flow li:last-child::after{display:none;}
.flow__no{
  flex:none;width:54px;height:54px;border-radius:16px 16px 28px 16px;transform:rotate(45deg);
  background:var(--accent);display:grid;place-items:center;
}
.flow__no span{transform:rotate(-45deg);font-family:var(--ff-en);font-weight:800;font-size:19px;color:#fff;}
.flow h3{font-size:16px;font-weight:900;margin-bottom:4px;}
.flow p{font-size:13.5px;line-height:2.05;color:var(--on-deep-dim);}

/* ---------- faq ---------- */
.faq{max-width:820px;margin:0 auto;display:grid;gap:12px;}
.faq details{
  border:1px solid var(--line-dark);border-radius:var(--squircle-sm);
  background:rgba(255,255,255,.04);overflow:hidden;
}
.faq summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
  padding:20px clamp(20px,2.6vw,26px);font-size:15px;font-weight:900;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q";font-family:var(--ff-en);font-weight:800;color:var(--accent);font-size:17px;}
.faq summary::after{
  content:"";width:13px;height:13px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);
  transform:rotate(45deg) translateY(-3px);transition:transform .3s var(--ease);
}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-3px);}
.faq__a{
  display:grid;grid-template-columns:auto 1fr;gap:16px;
  padding:0 clamp(20px,2.6vw,26px) 22px;font-size:13.5px;line-height:2.1;color:var(--on-deep-dim);
}
.faq__a::before{content:"A";font-family:var(--ff-en);font-weight:800;color:var(--on-deep-dim);font-size:17px;}

/* ---------- entry cta ---------- */
.entry{
  position:relative;overflow:hidden;text-align:center;
  background:var(--deep);color:#fff;
}
.entry__catch{font-size:clamp(22px,3.6vw,36px);font-weight:900;line-height:1.7;margin-bottom:18px;}
.entry p{max-width:560px;margin:0 auto 32px;color:var(--on-deep);}
.entry__float{position:absolute;width:min(34vw,300px);right:-80px;top:-70px;transform:rotate(14deg);opacity:.07;color:#fff;pointer-events:none;}
.entry__float svg{width:100%;height:auto;}
.entry__note{margin-top:26px;color:var(--on-deep-dim);font-size:12.5px;}

/* ---------- back link ---------- */
.lp-back{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--ff-en);font-weight:700;font-size:12px;letter-spacing:.14em;color:var(--on-deep-dim);
}
.lp-back:hover{color:#fff;}
.lp-back svg{width:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.lp-backwrap{display:flex;justify-content:center;padding:0 var(--pad) clamp(50px,6vw,70px);background:var(--deep);}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .sup{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .wanted{grid-template-columns:1fr;}
  .req__row{grid-template-columns:1fr;gap:6px;}
  .req__row dt{font-size:12.5px;}
}
@media (max-width:640px){
  .sup{grid-template-columns:1fr;}
  .flow li{grid-template-columns:auto 1fr;gap:16px;}
  .flow__no{width:46px;height:46px;}
  .flow__no span{font-size:16px;}
  .flow li::after{left:calc(clamp(22px,2.8vw,30px) + 23px);}
  .lp-hero__term{flex-direction:column;align-items:flex-start;}
}
