/* =========================================================
   jpskill.com トップ — premium editorial
   ink / near-white / emerald accent (450LP v3 と同じ言語)
   ========================================================= */
:root{
  --tp-ink:#0d0d0f;
  --tp-ink2:#3a3a40;
  --tp-ink3:#76767e;
  --tp-paper:#fafaf9;
  --tp-surface:#ffffff;
  --tp-line:#e6e6e3;
  --tp-accent:#0f7a5a;
  --tp-accent-deep:#0a5c43;
  --tp-accent-tint:#eef6f3;
  --tp-accent-soft:#8fe3c4;
  --tp-r:4px;
  --tp-shadow:0 24px 60px -32px rgba(13,13,15,.4);
  --tp-font:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{color-scheme:light;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--tp-paper);color:var(--tp-ink);font-family:var(--tp-font);
  font-size:17px;line-height:1.9;font-weight:500;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
strong{font-weight:700}
h1,h2,h3,h4{margin:0;line-height:1.3;letter-spacing:-.013em;font-weight:900}
p{margin:0}
.tp-wrap{max-width:1180px;margin:0 auto;padding:0 28px}

/* ---------- Nav ---------- */
.tp-nav{position:absolute;top:0;left:0;right:0;z-index:20;padding:24px 0}
.tp-nav-in{max-width:1180px;margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.tp-logo{font-weight:900;font-size:19px;letter-spacing:.01em;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.tp-logo span{color:var(--tp-accent-soft)}
.tp-nav-links{display:flex;gap:22px;align-items:center}
@media(max-width:640px){.tp-nav-links a:not(:last-child){display:none}}
.tp-nav-links a{font-size:13px;font-weight:700;color:rgba(255,255,255,.84);text-shadow:0 1px 10px rgba(0,0,0,.5);white-space:nowrap}
.tp-nav-links a:hover{color:#fff}

/* ---------- Hero ---------- */
.tp-hero{position:relative;min-height:94vh;display:flex;align-items:center;overflow:hidden;background:#0d0d0f}
.tp-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:74% 50%}
.tp-hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,
  rgba(9,9,11,.95) 0%, rgba(9,9,11,.82) 34%, rgba(9,9,11,.32) 62%, rgba(9,9,11,.06) 100%)}
.tp-hero-in{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:140px 28px 76px;width:100%}
.tp-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:900;letter-spacing:.2em;
  color:var(--tp-accent-soft);margin-bottom:28px}
.tp-eyebrow::before{content:"";width:30px;height:1.5px;background:var(--tp-accent-soft)}
.tp-hero h1{font-size:clamp(2.3rem,5.8vw,4.2rem);color:#fff;line-height:1.18;max-width:15ch}
.tp-hero h1 .em{color:var(--tp-accent-soft)}
.tp-hero-lead{margin-top:30px;color:rgba(255,255,255,.84);font-size:1.06rem;max-width:46ch;line-height:1.95}
.tp-hero-cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:14px}
.tp-hero-note{margin-top:20px;font-size:12.5px;color:rgba(255,255,255,.56);font-weight:600}

/* ---------- Buttons ---------- */
.tp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;white-space:nowrap;
  padding:18px 36px;border-radius:var(--tp-r);font-weight:900;font-size:1.02rem;
  transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s ease,box-shadow .2s ease}
.tp-btn-main{background:var(--tp-accent);color:#fff;box-shadow:0 18px 38px -14px rgba(15,122,90,.72)}
.tp-btn-main:hover{background:var(--tp-accent-deep);transform:translateY(-2px)}
.tp-btn-ghost{border:1.5px solid rgba(255,255,255,.45);color:#fff}
.tp-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.tp-btn-quiet{border:1.5px solid var(--tp-line);color:var(--tp-ink);background:#fff}
.tp-btn-quiet:hover{border-color:var(--tp-accent);color:var(--tp-accent-deep)}
.tp-btn:focus-visible{outline:3px solid var(--tp-accent-soft);outline-offset:3px}

/* ---------- Stats ---------- */
.tp-stats{background:var(--tp-ink);border-top:1px solid rgba(255,255,255,.09)}
.tp-stats-in{max-width:1180px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:repeat(4,1fr)}
@media(max-width:680px){.tp-stats-in{grid-template-columns:repeat(2,1fr)}}
.tp-stat{padding:40px 12px;text-align:center;border-right:1px solid rgba(255,255,255,.09)}
.tp-stat:last-child{border-right:0}
@media(max-width:680px){.tp-stat:nth-child(2){border-right:0}.tp-stat:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.09)}}
.tp-stat-num{font-size:clamp(1.8rem,3.8vw,2.8rem);font-weight:900;color:#fff;line-height:1;letter-spacing:-.02em}
.tp-stat-num .u{font-size:.42em;color:var(--tp-accent-soft);margin-left:3px}
.tp-stat-label{margin-top:10px;font-size:11.5px;color:rgba(255,255,255,.55);font-weight:700;letter-spacing:.1em}

/* ---------- Sections ---------- */
.tp-sec{padding:104px 0}
.tp-sec-tight{padding:68px 0}
.tp-sec-alt{background:#f3f4f2}
.tp-sec-dark{background:var(--tp-ink);color:#fff}
.tp-kicker{font-size:11.5px;font-weight:900;letter-spacing:.22em;color:var(--tp-accent);margin-bottom:18px}
.tp-sec-dark .tp-kicker{color:var(--tp-accent-soft)}
.tp-title{font-size:clamp(1.6rem,3.6vw,2.5rem);font-weight:900;max-width:22ch}
.tp-sec-dark .tp-title{color:#fff}
.tp-lead{margin-top:22px;color:var(--tp-ink2);font-size:1.05rem;max-width:62ch}
.tp-sec-dark .tp-lead{color:rgba(255,255,255,.76)}

/* ---------- Section hub (写真付き大型カード) ---------- */
.tp-hub{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
@media(max-width:980px){.tp-hub{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.tp-hub{grid-template-columns:1fr}}
.tp-hub-card{position:relative;display:block;background:#fff;border:1px solid var(--tp-line);border-radius:6px;
  overflow:hidden;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s ease,border-color .22s ease}
.tp-hub-card:hover{transform:translateY(-5px);box-shadow:0 30px 60px -30px rgba(13,13,15,.5);border-color:var(--tp-accent)}
.tp-hub-media{aspect-ratio:16/10;overflow:hidden;background:#e6e8e5;position:relative}
.tp-hub-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.tp-hub-card:hover .tp-hub-media img{transform:scale(1.05)}
.tp-hub-count{position:absolute;left:16px;bottom:14px;background:rgba(9,9,11,.82);color:#fff;
  font-size:11px;font-weight:900;letter-spacing:.08em;padding:6px 12px;border-radius:999px;backdrop-filter:blur(6px)}
.tp-hub-body{padding:26px 24px 28px}
.tp-hub-card h3{font-size:1.24rem;color:var(--tp-ink)}
.tp-hub-card p{margin-top:10px;font-size:13.8px;color:var(--tp-ink3);line-height:1.8}
.tp-hub-more{margin-top:16px;font-size:13px;font-weight:900;color:var(--tp-accent-deep)}

/* ---------- Category chips ---------- */
.tp-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:36px}
.tp-chip{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border:1.5px solid var(--tp-line);
  border-radius:999px;font-size:13px;font-weight:800;color:var(--tp-ink2);background:#fff;transition:.18s}
.tp-chip:hover{border-color:var(--tp-accent);color:var(--tp-accent-deep);transform:translateY(-1px)}
.tp-chip .c{font-size:10.5px;color:var(--tp-accent);font-weight:900}

/* ---------- Pick cards (厳選LP) ---------- */
.tp-picks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
@media(max-width:980px){.tp-picks{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.tp-picks{grid-template-columns:1fr}}
.tp-pick{background:var(--tp-surface);border:1px solid var(--tp-line);border-radius:6px;padding:26px 24px;
  transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,border-color .2s ease}
.tp-pick:hover{transform:translateY(-4px);box-shadow:0 26px 52px -30px rgba(13,13,15,.45);border-color:var(--tp-accent)}
.tp-pick-cat{font-size:10.5px;font-weight:900;letter-spacing:.12em;color:var(--tp-accent);text-transform:uppercase}
.tp-pick h3{margin-top:9px;font-size:1.04rem;line-height:1.6}
.tp-pick p{margin-top:9px;font-size:13px;color:var(--tp-ink3);line-height:1.8}
.tp-pick .go{display:inline-flex;margin-top:14px;font-size:12.5px;font-weight:900;color:var(--tp-accent-deep)}

/* ---------- Editorial split ---------- */
.tp-split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.tp-split.rev .tp-split-media{order:2}
@media(max-width:900px){.tp-split{grid-template-columns:1fr;gap:36px}.tp-split.rev .tp-split-media{order:0}}
.tp-split-media img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px;box-shadow:var(--tp-shadow)}
.tp-split-body p{margin-top:20px;color:var(--tp-ink2)}
.tp-split-body p + p{margin-top:16px}

/* ---------- Steps (dark) ---------- */
.tp-flow{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid rgba(255,255,255,.14)}
@media(max-width:820px){.tp-flow{grid-template-columns:1fr}}
.tp-flow-step{padding:32px 26px 36px;border-right:1px solid rgba(255,255,255,.14)}
.tp-flow-step:last-child{border-right:0}
@media(max-width:820px){.tp-flow-step{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}}
.tp-flow-no{font-size:2.5rem;font-weight:900;color:var(--tp-accent-soft);line-height:1;letter-spacing:-.03em}
.tp-flow-step h3{margin-top:16px;font-size:1.06rem;color:#fff}
.tp-flow-step p{margin-top:9px;font-size:13.5px;color:rgba(255,255,255,.62);line-height:1.8}

/* ---------- Final ---------- */
.tp-final{position:relative;overflow:hidden;background:var(--tp-ink)}
.tp-final-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.24}
.tp-final-in{position:relative;z-index:2;max-width:820px;margin:0 auto;padding:112px 28px;text-align:center}
.tp-final h2{font-size:clamp(1.8rem,4vw,2.7rem);color:#fff;line-height:1.35}
.tp-final p{margin:26px auto 0;color:rgba(255,255,255,.76);max-width:52ch}
.tp-final .tp-btn{margin-top:40px}

/* ---------- Footer ---------- */
.tp-foot{background:var(--tp-ink);border-top:1px solid rgba(255,255,255,.1);padding:44px 0 36px;text-align:center}
.tp-foot-nav{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:18px}
.tp-foot-nav a{font-size:12.5px;color:rgba(255,255,255,.72);font-weight:600}
.tp-foot-nav a:hover{color:#fff}
.tp-foot p{font-size:11.5px;color:rgba(255,255,255,.44);line-height:1.9;max-width:760px;margin:0 auto}

@media(max-width:860px){
  .tp-hero{min-height:auto}
  .tp-hero-in{padding:132px 24px 62px}
  .tp-hero-veil{background:linear-gradient(180deg,rgba(9,9,11,.76) 0%,rgba(9,9,11,.86) 58%,rgba(9,9,11,.96) 100%)}
  .tp-sec{padding:72px 0}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}
