/* ===========================================================
   株式会社山富士 コーポレートサイト共通スタイル（白ベース×ブルー）
   =========================================================== */
:root{
  --navy:#0000ff;
  --navy-deep:#0000b3;
  --navy-light:#3d3dff;
  --gold:#0000ff;
  --gold-light:#5c85ff;
  --bg:#ffffff;
  --bg-alt:#eef3fc;
  --text:#16213a;
  --text-muted:#5b6b85;
  --border:#dde5f2;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 12px 32px rgba(20,40,90,.10);
  --shadow-sm:0 4px 14px rgba(20,40,90,.08);
  --maxw:1160px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.02em;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.4;}
p{margin:0;}
section{position:relative;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* ---------- 共通ユーティリティ ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;letter-spacing:.18em;font-weight:700;
  color:var(--gold);text-transform:uppercase;margin-bottom:14px;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold);display:inline-block;}
.section-head{max-width:680px;margin:0 0 46px;}
.section-head h2{font-size:clamp(1.5rem,3.2vw,2.15rem);color:var(--navy);}
.section-head p{margin-top:14px;color:var(--text-muted);font-size:.98rem;}
.section-pad{padding:88px 0;}
.bg-alt{background:var(--bg-alt);}
.center{text-align:center;margin-left:auto;margin-right:auto;}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 30px;border-radius:999px;font-weight:700;font-size:.92rem;
  border:1px solid transparent;transition:.25s ease;cursor:pointer;
}
.btn-primary{background:var(--gold-light);color:#fff;}
.btn-primary:hover{background:var(--gold);transform:translateY(-2px);}
.btn-outline{border-color:rgba(255,255,255,.55);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-light);transform:translateY(-2px);}
.btn-sm{padding:10px 20px;font-size:.82rem;}
.btn svg{width:16px;height:16px;flex:none;}

/* ---------- ヘッダー ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.header-inner{
  max-width:var(--maxw);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;color:#fff;}
.logo .mark{height:34px;width:auto;flex:none;border-radius:6px;}
.logo .txt{display:flex;flex-direction:column;line-height:1.2;}
.logo .txt strong{font-size:1.08rem;letter-spacing:.04em;white-space:nowrap;}
.logo .txt span{font-size:.62rem;letter-spacing:.22em;color:rgba(255,255,255,.75);font-weight:700;}

.nav-desktop{display:flex;align-items:center;gap:34px;}
.nav-desktop a{font-size:.9rem;font-weight:700;color:#fff;position:relative;padding:6px 0;}
.nav-desktop a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:rgba(255,255,255,.85);
  transition:.25s;
}
.nav-desktop a:hover::after,.nav-desktop a.active::after{width:100%;}
.nav-desktop .btn{margin-left:6px;}
.nav-desktop a.btn-navy{color:#fff;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.6);}
.nav-desktop a.btn-navy:hover{background:rgba(255,255,255,.28);}
.nav-desktop a.btn-navy::after{display:none;}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:.25s;}

.nav-mobile{
  display:none;flex-direction:column;gap:2px;background:var(--bg-alt);
  border-top:1px solid var(--border);padding:10px 24px 20px;
}
.nav-mobile a{padding:12px 4px;font-weight:700;color:var(--navy);border-bottom:1px solid var(--border);}
.nav-mobile a:last-child{border-bottom:none;}

@media (max-width:900px){
  .nav-desktop{display:none;}
  .nav-toggle{display:block;}
  .nav-mobile.open{display:flex;}
}

/* ---------- パンくず / ページヒーロー(下層) ---------- */
.page-hero{
  padding:64px 0 56px;background:linear-gradient(155deg,var(--bg-alt) 0%,var(--bg) 100%);
  color:var(--text);position:relative;overflow:hidden;border-bottom:1px solid var(--border);
}
.page-hero::after{
  content:"";position:absolute;right:-60px;bottom:-40px;width:320px;height:200px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cpath d='M0 120 L60 30 L80 55 L120 5 L200 120 Z' fill='none' stroke='%230000ff' stroke-opacity='.14' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/contain;
  pointer-events:none;
}
.page-hero .crumb{font-size:.78rem;color:var(--gold);letter-spacing:.1em;margin-bottom:14px;}
.page-hero .crumb a{color:var(--navy);opacity:.75;}
.page-hero h1{font-size:clamp(1.7rem,3.6vw,2.4rem);color:var(--navy);}
.page-hero p{margin-top:14px;color:var(--text-muted);max-width:640px;}

/* ---------- ホーム ヒーロー ---------- */
.hero{
  position:relative;overflow:hidden;color:var(--text);
  background:radial-gradient(1100px 560px at 82% -12%,var(--bg-alt) 0%,transparent 60%),var(--bg);
  padding:50px 0 100px;
}
.hero-fuji{
  position:absolute;left:50%;bottom:-6%;transform:translateX(-50%);
  width:min(1400px,180vw);opacity:.6;pointer-events:none;
}
.hero-inner{position:relative;z-index:2;max-width:820px;}
.hero h1{font-size:clamp(1.5rem,2.9vw,2.2rem);letter-spacing:.02em;color:var(--navy);white-space:nowrap;}
.hero h1 em{display:block;color:var(--gold-light);font-style:normal;font-size:.5em;letter-spacing:.22em;margin-bottom:16px;font-weight:700;}
.hero p.lead{margin-top:22px;font-size:1.05rem;color:var(--text-muted);max-width:600px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;}

.hero-grid{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;}
.hero-photo{
  margin-bottom:48px;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(135deg,var(--navy),var(--navy-light));
  padding:14px;box-shadow:0 24px 50px rgba(20,40,90,.22);
}
.hero-photo img{width:100%;display:block;max-height:480px;object-fit:cover;object-position:center 30%;border-radius:10px;}
@media (max-width:700px){
  .hero-photo img{max-height:300px;}
}
@media (max-width:640px){
  .hero h1{white-space:normal;font-size:1.5rem;}
}
.hero-stats{
  position:relative;z-index:2;margin-top:56px;display:grid;
  grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--border);padding-top:28px;
}
.hero-stats div{padding-right:20px;}
.hero-stats strong{display:block;font-size:1.7rem;color:var(--navy);font-weight:700;}
.hero-stats span{font-size:.78rem;color:var(--text-muted);}
@media (max-width:760px){.hero-stats{grid-template-columns:repeat(2,1fr);row-gap:26px;}}

/* ---------- 事業カード ---------- */
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.biz-card{
  background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);
  padding:32px 28px;box-shadow:var(--shadow-sm);transition:.25s;display:flex;flex-direction:column;height:100%;
}
.biz-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.biz-card .icon{
  width:52px;height:52px;border-radius:14px;background:linear-gradient(150deg,var(--navy),var(--navy-light));
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.biz-card .icon svg{width:26px;height:26px;stroke:#fff;}
.biz-card .tag{font-size:.72rem;letter-spacing:.1em;color:var(--gold);font-weight:700;margin-bottom:8px;}
.biz-card h3{font-size:1.15rem;color:var(--navy);margin-bottom:12px;}
.biz-card p{color:var(--text-muted);font-size:.9rem;flex:1;}
.biz-card .more{
  margin-top:20px;display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:700;color:var(--navy);
}
.biz-card .more svg{width:14px;height:14px;transition:.2s;}
.biz-card:hover .more svg{transform:translateX(4px);}
.biz-card .ext{font-size:.7rem;color:var(--text-muted);font-weight:400;margin-left:4px;}
@media (max-width:960px){.biz-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.biz-grid{grid-template-columns:1fr;}}

/* ---------- 選ばれる理由 ---------- */
.reason-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.reason-card{text-align:center;padding:8px;}
.reason-card .num{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--gold-light);color:var(--navy);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-weight:700;
}
.reason-card h3{font-size:1rem;color:var(--navy);margin-bottom:10px;}
.reason-card p{color:var(--text-muted);font-size:.86rem;}
@media (max-width:900px){.reason-grid{grid-template-columns:repeat(2,1fr);row-gap:36px;}}

/* ---------- ニュース / 沿革 ---------- */
.news-list{border-top:1px solid var(--border);}
.news-item{
  display:flex;gap:24px;padding:20px 0;border-bottom:1px solid var(--border);align-items:baseline;
}
.news-item time{flex:none;width:110px;font-size:.84rem;color:var(--gold);font-weight:700;}
.news-item p{color:var(--text);font-size:.92rem;}

.timeline{border-left:2px solid var(--border);margin-left:8px;}
.timeline li{position:relative;padding:0 0 30px 28px;}
.timeline li::before{
  content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;
  background:var(--navy);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--navy);
}
.timeline time{display:block;font-size:.8rem;color:var(--gold);font-weight:700;margin-bottom:4px;}
.timeline p{color:var(--text-muted);font-size:.92rem;}

/* ---------- テーブル(会社概要・料金) ---------- */
.info-table{width:100%;border-collapse:collapse;}
.info-table th,.info-table td{
  text-align:left;padding:18px 20px;border-bottom:1px solid var(--border);vertical-align:top;
  font-size:.92rem;
}
.info-table th{width:180px;color:var(--navy);font-weight:700;background:var(--bg-alt);}
.info-table td{color:var(--text-muted);}
@media (max-width:640px){
  .info-table,.info-table thead,.info-table tbody,.info-table th,.info-table td,.info-table tr{display:block;width:100%;}
  .info-table th{background:none;padding-bottom:4px;border-bottom:none;}
  .info-table td{padding-top:0;padding-bottom:20px;}
}

/* ---------- CTA帯 ---------- */
.cta-band{
  background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:#fff;
  padding:70px 0;text-align:center;
}
.cta-band h2{font-size:clamp(1.4rem,3vw,1.9rem);}
.cta-band p{margin-top:14px;color:rgba(255,255,255,.75);}
.cta-band .hero-actions{justify-content:center;margin-top:30px;}

/* ---------- カード(汎用/求人/事業詳細) ---------- */
.detail-block{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;
  padding:70px 0;border-bottom:1px solid var(--border);
}
.detail-block:last-child{border-bottom:none;}
.detail-block .visual{
  border-radius:var(--radius);background:linear-gradient(155deg,var(--navy),var(--navy-light));
  min-height:260px;display:flex;align-items:center;justify-content:center;position:sticky;top:110px;
  overflow:hidden;
}
.detail-block .visual svg{width:96px;height:96px;stroke:#fff;}
.detail-block .visual.has-photo{background:none;padding:0;}
.detail-block .visual.has-photo img{width:100%;height:100%;object-fit:cover;display:block;min-height:260px;}

/* サイトプレビュー(ブラウザ風フレーム) */
.browser-frame{width:100%;border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);}
.browser-frame .bar{height:34px;background:var(--navy-deep);display:flex;align-items:center;gap:6px;padding:0 14px;flex:none;}
.browser-frame .bar span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.3);}
.browser-frame .shot{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top;display:block;}

/* 関連サイト帯 */
.related-band{background:#3b2a1e;padding:38px 0;}
.related-label{display:block;text-align:center;color:#b9c3d9;font-size:.8rem;letter-spacing:.22em;font-weight:700;margin-bottom:22px;}
.related-links{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;}
.related-links a{
  display:inline-flex;align-items:center;gap:10px;
  background:#4a372a;border:1px solid #6b5540;border-radius:999px;
  padding:14px 26px;color:#fff;font-size:.86rem;font-weight:700;
  transition:.2s;white-space:nowrap;
}
.related-links a:hover{background:#5a4433;transform:translateY(-2px);}
.related-links a svg{width:20px;height:20px;flex:none;}
@media (max-width:700px){
  .related-links a{white-space:normal;padding:12px 20px;font-size:.82rem;}
}

/* フッター上部 大阪バナー */
.osaka-band{background:var(--bg-alt);border-top:1px solid var(--border);padding:22px 0;}
.osaka-band img{width:100%;height:auto;display:block;margin:0 auto;border-radius:var(--radius-sm);}
.footer-badge{background:#fff;border-radius:8px;padding:6px 12px;display:inline-block;margin-top:16px;}
.footer-badge img{display:block;height:22px;width:auto;}
.detail-block h3{color:var(--navy);font-size:1.5rem;margin-bottom:6px;}
.detail-block .tag{font-size:.75rem;letter-spacing:.12em;color:var(--gold);font-weight:700;text-transform:uppercase;}
.detail-block .lead{margin:16px 0 22px;color:var(--text-muted);}
.feature-list li{
  position:relative;padding-left:26px;margin-bottom:12px;font-size:.92rem;color:var(--text);
}
.feature-list li::before{content:"✓";position:absolute;left:0;color:var(--navy);font-weight:700;}
.detail-block .actions{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;}
@media (max-width:860px){
  .detail-block{grid-template-columns:1fr;gap:26px;}
  .detail-block .visual{position:static;min-height:160px;}
}

/* ---------- 求人カード ---------- */
.job-card{
  background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);
  padding:30px;box-shadow:var(--shadow-sm);margin-bottom:24px;
}
.job-card h3{color:var(--navy);font-size:1.1rem;margin-bottom:16px;display:flex;align-items:center;gap:10px;}
.job-card h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--navy);}
.job-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;}
.job-grid div{font-size:.88rem;padding:8px 0;border-bottom:1px dashed var(--border);}
.job-grid div b{color:var(--gold);display:block;font-size:.72rem;letter-spacing:.06em;margin-bottom:3px;}
@media (max-width:640px){.job-grid{grid-template-columns:1fr;}}

/* ---------- お問い合わせ ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.contact-card{
  background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);
  padding:34px;box-shadow:var(--shadow-sm);
}
.contact-card h3{color:var(--navy);margin-bottom:18px;font-size:1.1rem;}
.contact-line{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px;font-size:.92rem;}
.contact-line svg{width:20px;height:20px;flex:none;stroke:var(--navy);margin-top:2px;}
.contact-line a.big{font-size:1.4rem;font-weight:700;color:var(--navy);}
.map-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;}
.map-frame iframe{width:100%;height:360px;border:0;display:block;}
.map-frame img{width:100%;display:block;}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr;}}

/* ---------- グループサイト一覧 ---------- */
.group-links{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.group-links a{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:18px 16px;text-align:center;font-size:.82rem;font-weight:700;color:var(--navy);
  box-shadow:var(--shadow-sm);transition:.2s;
}
.group-links a:hover{border-color:var(--gold-light);color:var(--gold);transform:translateY(-3px);}
@media (max-width:900px){.group-links{grid-template-columns:repeat(3,1fr);}}
@media (max-width:560px){.group-links{grid-template-columns:repeat(2,1fr);}}

/* ---------- フッター ---------- */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,.72);padding:64px 0 26px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-grid h4{color:#fff;font-size:.85rem;letter-spacing:.08em;margin-bottom:18px;}
.footer-grid ul li{margin-bottom:10px;font-size:.86rem;}
.footer-grid ul li a:hover{color:var(--gold-light);}
.footer-brand .logo .txt strong,.footer-brand .logo{color:#fff;}
.footer-brand p{margin-top:16px;font-size:.84rem;color:rgba(255,255,255,.55);max-width:280px;}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:22px;
  font-size:.76rem;color:rgba(255,255,255,.45);
}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;row-gap:34px;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- スクロールフェード ---------- */
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
[data-reveal].in{opacity:1;transform:none;}
