/*
Theme Name: JSD - Japan Super Dispatch
Theme URI: https://example.com/
Author: 株式会社JSD
Description: 株式会社JSD（Japan Super Dispatch）公式サイト用テーマ。白ベース × レッドアクセントの派遣会社向けワンページ構成。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jsd
*/

/* ============ Tokens ============ */
:root{
  --jsd-accent:#e11d2e;
  --jsd-ink:#0f172a;
  --jsd-body:#334155;
  --jsd-muted:#64748b;
  --jsd-soft:#475569;
  --jsd-line:#e2e8f0;
  --jsd-bg-alt:#f8fafc;
  --jsd-max:1280px;
}

/* ============ Reset ============ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:#fff;
  color:var(--jsd-ink);
  font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,p,dl,dd,dt,figure{margin:0;}
.jsd-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.jsd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

.jsd-wrap{max-width:var(--jsd-max);margin:0 auto;padding:0 24px;}
.jsd-eyebrow{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;letter-spacing:.2em;color:var(--jsd-accent);font-weight:700;margin-bottom:16px;}
.jsd-h2{font-size:clamp(30px,4.4vw,48px);font-weight:900;line-height:1.2;letter-spacing:-.01em;}

/* ============ Header ============ */
.jsd-header{position:fixed;inset:0 0 auto 0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.05);}
.jsd-header__inner{max-width:var(--jsd-max);margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.jsd-logo{display:flex;align-items:center;gap:8px;}
.jsd-logo__mark{height:32px;padding:0 8px;display:flex;align-items:center;justify-content:center;background:var(--jsd-accent);color:#fff;font-weight:900;font-size:14px;letter-spacing:.1em;}
.jsd-logo__text{font-weight:700;letter-spacing:.08em;}
.jsd-nav{display:none;align-items:center;gap:32px;font-size:14px;}
.jsd-nav a:hover{color:var(--jsd-accent);}
.jsd-nav ul{display:flex;align-items:center;gap:32px;list-style:none;margin:0;padding:0;}
.jsd-btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;padding:14px 30px;transition:.2s;}
.jsd-btn--accent{background:var(--jsd-accent);color:#fff;}
.jsd-btn--accent:hover{opacity:.9;}
.jsd-btn--outline{border:2px solid var(--jsd-ink);color:var(--jsd-ink);}
.jsd-btn--outline:hover{background:var(--jsd-ink);color:#fff;}
.jsd-btn--white{background:#fff;color:var(--jsd-accent);}
.jsd-btn--white:hover{background:#f1f5f9;}
.jsd-header .jsd-btn{display:none;padding:8px 20px;}

/* ============ Hero ============ */
.jsd-hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:#fff;}
.jsd-hero__panel{display:none;}
.jsd-hero__media{position:absolute;inset:0;}
.jsd-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center;}
.jsd-hero__ghost{position:absolute;left:0;bottom:0;font-size:18vw;line-height:.85;font-weight:900;color:rgba(225,29,46,.06);user-select:none;pointer-events:none;}
.jsd-hero__inner{position:relative;max-width:var(--jsd-max);margin:0 auto;padding:128px 24px 80px;width:100%;}
.jsd-hero__card{max-width:640px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);padding:24px;border-radius:8px;box-shadow:0 20px 40px -12px rgba(15,23,42,.25);}
.jsd-hero__title{font-size:clamp(38px,7vw,72px);font-weight:900;line-height:1.15;letter-spacing:-.02em;}
.jsd-hero__title span{color:var(--jsd-accent);}
.jsd-hero__lead{margin-top:32px;color:#1e293b;font-weight:500;font-size:16px;}
.jsd-hero__lead p+p{margin-top:8px;}
.jsd-hero__cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px;}
.jsd-hero__scroll{position:absolute;left:24px;bottom:32px;font-size:12px;letter-spacing:.2em;color:var(--jsd-muted);}

/* ============ About ============ */
.jsd-section{padding:112px 0;border-top:1px solid rgba(0,0,0,.05);background:#fff;}
.jsd-about__grid{display:grid;gap:48px;align-items:center;}
.jsd-about__text p{color:var(--jsd-body);}
.jsd-about__text p+p{margin-top:16px;}
.jsd-about__meta{margin-top:40px;display:grid;grid-template-columns:repeat(2,1fr);gap:24px;font-size:14px;}
.jsd-about__meta div{border-left:2px solid var(--jsd-accent);padding-left:16px;}
.jsd-about__meta dt{color:var(--jsd-muted);}
.jsd-about__meta dd{margin:4px 0 0;font-weight:700;}
.jsd-about__fig{position:relative;}
.jsd-about__badge{position:absolute;left:-12px;bottom:-24px;background:var(--jsd-accent);color:#fff;padding:16px 24px;}
.jsd-about__badge strong{display:block;font-size:30px;font-weight:900;line-height:1;}
.jsd-about__badge strong small{font-size:18px;}
.jsd-about__badge span{font-size:11px;font-weight:700;letter-spacing:.2em;}

/* ============ Jobs ============ */
.jsd-jobs{background:var(--jsd-bg-alt);}
.jsd-jobs__head{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-end;justify-content:space-between;margin-bottom:56px;}
.jsd-jobs__head p.jsd-note{max-width:440px;color:var(--jsd-soft);}
.jsd-grid{display:grid;gap:1px;background:var(--jsd-line);}
.jsd-card{position:relative;background:#fff;padding:32px;overflow:hidden;}
.jsd-card__bar{position:absolute;top:0;left:0;height:4px;width:0;background:var(--jsd-accent);transition:width .3s;}
.jsd-card:hover .jsd-card__bar{width:100%;}
.jsd-card__tag{font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.2em;color:var(--jsd-accent);margin-bottom:24px;}
.jsd-card__title{font-size:20px;font-weight:700;margin-bottom:16px;}
.jsd-card__desc{font-size:14px;color:var(--jsd-soft);}

/* ============ Results ============ */
.jsd-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--jsd-line);}
.jsd-stats div{background:#fff;padding:32px;}
.jsd-stats strong{display:block;font-size:clamp(40px,6vw,60px);font-weight:900;line-height:1;color:var(--jsd-accent);}
.jsd-stats span{display:block;margin-top:16px;font-size:14px;color:var(--jsd-soft);}
.jsd-strength{margin-top:64px;display:grid;gap:24px;}
.jsd-strength article{border:1px solid var(--jsd-line);padding:24px;}
.jsd-strength .jsd-card__tag{margin-bottom:12px;}
.jsd-strength h3{font-size:16px;font-weight:700;margin-bottom:8px;}
.jsd-strength p{font-size:14px;color:var(--jsd-soft);}

/* ============ Recruit ============ */
.jsd-recruit{position:relative;overflow:hidden;padding:112px 0;background:var(--jsd-accent);color:#fff;}
.jsd-recruit__ghost{position:absolute;right:0;top:0;font-size:18vw;line-height:.85;font-weight:900;color:rgba(255,255,255,.1);pointer-events:none;user-select:none;}
.jsd-recruit__grid{position:relative;display:grid;gap:48px;align-items:center;}
.jsd-recruit .jsd-eyebrow{color:rgba(255,255,255,.8);}
.jsd-recruit h2{font-size:clamp(32px,5.5vw,60px);font-weight:900;line-height:1.15;}
.jsd-recruit__lead{margin-top:24px;color:rgba(255,255,255,.9);max-width:440px;}
.jsd-recruit__row{display:flex;gap:24px;align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:16px;}
.jsd-recruit__row+.jsd-recruit__row{margin-top:16px;}
.jsd-recruit__row dt{width:96px;flex:0 0 auto;font-weight:700;font-size:14px;}
.jsd-recruit__row dd{margin:0;font-size:14px;}
.jsd-recruit .jsd-btn{margin-top:24px;}

/* ============ Contact ============ */
.jsd-contact{text-align:center;}
.jsd-contact .jsd-wrap{max-width:900px;}
.jsd-contact h2{margin-bottom:24px;}
.jsd-contact__lead{margin-bottom:40px;color:var(--jsd-soft);}
.jsd-contact__grid{display:grid;gap:16px;}
.jsd-contact__card{border:2px solid var(--jsd-line);padding:32px;transition:border-color .2s;}
.jsd-contact__card:hover{border-color:var(--jsd-accent);}
.jsd-contact__card small{display:block;font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.2em;color:var(--jsd-muted);margin-bottom:8px;}
.jsd-contact__card b{font-size:24px;font-weight:700;}
.jsd-contact__card:hover b{color:var(--jsd-accent);}
.jsd-contact__card em{display:block;font-style:normal;font-size:12px;margin-top:8px;color:var(--jsd-muted);}

/* ============ Footer ============ */
.jsd-footer{background:var(--jsd-ink);color:#fff;padding:48px 0;}
.jsd-footer__inner{max-width:var(--jsd-max);margin:0 auto;padding:0 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;}
.jsd-footer__copy{font-size:12px;color:rgba(255,255,255,.5);}

/* ============ Generic page/post ============ */
.jsd-page{padding:160px 0 96px;}
.jsd-page .jsd-wrap{max-width:860px;}
.jsd-page h1{font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1.3;margin-bottom:24px;}
.jsd-entry{color:var(--jsd-body);}
.jsd-entry h2{font-size:24px;font-weight:800;margin:40px 0 12px;}
.jsd-entry h3{font-size:19px;font-weight:700;margin:32px 0 8px;}
.jsd-entry p{margin:0 0 16px;}
.jsd-entry a{color:var(--jsd-accent);text-decoration:underline;}
.jsd-entry ul,.jsd-entry ol{margin:0 0 16px;padding-left:1.4em;}
.jsd-entry blockquote{margin:0 0 16px;border-left:3px solid var(--jsd-accent);padding-left:16px;color:var(--jsd-soft);}
.jsd-list{display:grid;gap:32px;}
.jsd-list article{border-bottom:1px solid var(--jsd-line);padding-bottom:24px;}
.jsd-list h2{font-size:22px;font-weight:800;}
.jsd-list time{font-size:12px;color:var(--jsd-muted);font-family:ui-monospace,Menlo,monospace;}
.jsd-pagination{margin-top:48px;display:flex;gap:8px;flex-wrap:wrap;}
.jsd-pagination .page-numbers{padding:8px 14px;border:1px solid var(--jsd-line);}
.jsd-pagination .current{background:var(--jsd-accent);color:#fff;border-color:var(--jsd-accent);}

/* ============ Responsive ============ */
@media (min-width:768px){
  .jsd-nav{display:flex;}
  .jsd-header .jsd-btn{display:inline-flex;}
  .jsd-hero__panel{display:block;position:absolute;top:0;bottom:0;right:0;width:50%;background:var(--jsd-accent);clip-path:polygon(20% 0,100% 0,100% 100%,0% 100%);}
  .jsd-hero__media{left:auto;right:0;width:50%;}
  .jsd-hero__card{padding:40px;}
  .jsd-hero__lead{font-size:18px;}
  .jsd-about__grid{grid-template-columns:1fr 1fr;gap:64px;}
  .jsd-grid{grid-template-columns:repeat(2,1fr);}
  .jsd-strength{grid-template-columns:repeat(3,1fr);}
  .jsd-recruit__grid{grid-template-columns:1fr 1fr;}
  .jsd-contact__grid{grid-template-columns:1fr 1fr;}
  .jsd-about__badge{left:-24px;}
}
@media (min-width:1024px){
  .jsd-grid{grid-template-columns:repeat(4,1fr);}
  .jsd-stats{grid-template-columns:repeat(4,1fr);}
  .jsd-stats div{padding:40px;}
}
