  /* コーポレート専用 */
  .hero { position: relative; background: var(--navy); color: #fff; overflow: hidden; }
  .hero::before {
    content: ""; position: absolute; inset: 0;
    background:
      radial-gradient(circle at 85% 20%, rgba(31,111,178,.55), transparent 45%),
      radial-gradient(circle at 70% 90%, rgba(143,184,224,.25), transparent 40%);
  }
  .hero .lines { position: absolute; right: -80px; top: 0; bottom: 0; width: 55%; opacity: .18; }
  .hero .container { position: relative; padding-top: 140px; padding-bottom: 140px; }
  .hero .en { font-family: "Montserrat", sans-serif; letter-spacing: .3em; font-size: 13px; color: #8fb8e0; }
  .hero h1 { font-size: 52px; line-height: 1.4; margin: 18px 0 24px; letter-spacing: .04em; }
  .hero p { max-width: 640px; color: #d3dee9; font-size: 16.5px; }
  .hero .btns { margin-top: 40px; display: flex; gap: 16px; flex-wrap: wrap; }

  .philosophy { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
  .philosophy .catch { font-size: 34px; font-weight: 700; color: var(--navy); line-height: 1.6; letter-spacing: .05em; }
  .philosophy .catch em { font-style: normal; color: var(--blue); }
  .values { margin-top: 32px; display: grid; gap: 16px; }
  .values li { display: flex; gap: 16px; padding: 18px 20px; background: #fff; border-left: 3px solid var(--blue); }
  .values b { color: var(--navy); min-width: 88px; }
  .values span { color: var(--muted); font-size: 14.5px; }

  .biz-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
  .biz-card .ph { min-height: 160px; border-radius: 0; }
  .biz-card .body { padding: 26px 24px 28px; flex: 1; display: flex; flex-direction: column; }
  .biz-card .label { font-family: "Montserrat", sans-serif; font-size: 11px; letter-spacing: .2em; color: var(--blue); font-weight: 600; }
  .biz-card h3 { margin-top: 6px; }
  .biz-card .more { margin-top: auto; padding-top: 18px; }

  .facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.15); }
  .facts div { padding: 36px 20px; border-right: 1px solid rgba(255,255,255,.15); text-align: center; }
  .facts div:last-child { border-right: 0; }
  .facts .num { font-family: "Montserrat", sans-serif; font-size: 40px; font-weight: 700; }
  .facts .num small { font-size: 16px; margin-left: 4px; font-family: "Noto Sans JP"; }
  .facts .lbl { font-size: 13px; color: #c5d3e2; }

  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
  .recruit-box { display: grid; grid-template-columns: 1fr 1fr; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
  .recruit-box .ph { border-radius: 0; min-height: 320px; }
  .recruit-box .body { padding: 48px; }
  .recruit-box h3 { font-size: 26px; color: var(--navy); line-height: 1.6; margin: 8px 0 16px; }

  .service-banner {
    display: flex; justify-content: space-between; align-items: center; gap: 24px;
    background: var(--sky); border: 1px solid #cfe0f0; border-radius: var(--radius); padding: 32px 40px; margin-top: 40px;
  }
  .service-banner b { font-size: 18px; color: var(--navy); display: block; }
  .service-banner span { font-size: 14px; color: var(--muted); }

  @media (max-width: 960px) {
    .facts { grid-template-columns: 1fr 1fr; }
    .facts div:nth-child(2) { border-right: 0; }
    .facts div { border-bottom: 1px solid rgba(255,255,255,.15); }
  }
  @media (max-width: 768px) {
    .hero .container { padding-top: 88px; padding-bottom: 88px; }
    .hero h1 { font-size: 32px; }
    .philosophy, .two-col, .recruit-box { grid-template-columns: 1fr; gap: 32px; }
    .philosophy .catch { font-size: 25px; }
    .recruit-box .body { padding: 28px 20px; }
    .recruit-box .ph { min-height: 200px; }
    .facts .num { font-size: 30px; }
    .service-banner { flex-direction: column; align-items: flex-start; padding: 24px 20px; }
  }

  @media (max-width: 768px) {
    .facts div { padding: 28px 8px; }
    .facts .lbl { font-size: 12px; line-height: 1.6; }
  }


  #recruit .recruit-box { box-shadow: 0 8px 28px rgba(11,42,74,.06); }


  /* ===== ヒーロー：写真＋コスト削減のビジュアル（v3） ===== */
  .hero.hero-photo { background: #071d33; }
  .hero.hero-photo::before { display: none; }
  .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; transform: scaleX(-1); filter: saturate(.75); }
  .hero-shade { position: absolute; inset: 0; background:
      linear-gradient(90deg, rgba(7,29,51,.97) 0%, rgba(7,29,51,.9) 32%, rgba(11,42,74,.62) 58%, rgba(11,42,74,.45) 100%),
      linear-gradient(0deg, rgba(7,29,51,.55), rgba(7,29,51,0) 45%); }
  .hero-photo .container { position: relative; z-index: 2; padding-top: 150px; padding-bottom: 160px; }
  .hero-photo h1 { text-shadow: 0 2px 18px rgba(0,0,0,.35); }
  .cost-visual { position: absolute; z-index: 1; right: 0; top: 0; height: 100%; width: min(62%, 860px); }
  .cost-visual .badge circle { fill: rgba(11,42,74,.78); stroke: rgba(255,255,255,.75); stroke-width: 1.5; }
  .cost-visual .badge text { fill: #fff; font-size: 14px; font-weight: 700; text-anchor: middle; font-family: "Noto Sans JP", sans-serif; paint-order: stroke; stroke: rgba(7,29,51,.7); stroke-width: 4px; }
  .cost-visual .cr1, .cost-visual .cr2 { fill: #fff; font-family: "Montserrat", sans-serif; font-weight: 500; letter-spacing: .04em; opacity: .95; }
  .cost-visual .cr1 { font-size: 62px; }
  .cost-visual .cr2 { font-size: 42px; letter-spacing: .08em; }
  @media (max-width: 960px) {
    .cost-visual { width: 80%; opacity: .55; }
    .cost-visual .cr1, .cost-visual .cr2 { display: none; }
  }
  @media (max-width: 768px) {
    .hero-photo .container { padding-top: 88px; padding-bottom: 120px; }
    .hero-shade { background: linear-gradient(180deg, rgba(7,29,51,.92) 0%, rgba(7,29,51,.82) 60%, rgba(11,42,74,.7) 100%); }
    .cost-visual { width: 100%; height: 55%; top: auto; bottom: 0; opacity: .6; }
  }
  @media (max-width: 768px) {
    .hero-photo .container { padding-bottom: 300px; }
    .cost-visual { height: 280px; width: 100%; bottom: 0; opacity: 1; }
    .cost-visual .cr1, .cost-visual .cr2 { display: block; }
    .cost-visual .cr1 { font-size: 54px; }
    .cost-visual .cr2 { font-size: 36px; }
    .hero-shade { background: linear-gradient(180deg, rgba(7,29,51,.94) 0%, rgba(7,29,51,.88) 55%, rgba(11,42,74,.55) 100%); }
  }
  @media (max-width: 1024px) and (min-width: 769px) {
    .hero-photo .container { padding-top: 96px; padding-bottom: 330px; }
    .cost-visual { width: 100%; height: 320px; top: auto; bottom: 0; opacity: 1; }
    .cost-visual .cr1, .cost-visual .cr2 { display: block; }
    .hero-shade { background: linear-gradient(180deg, rgba(7,29,51,.94) 0%, rgba(7,29,51,.85) 55%, rgba(11,42,74,.5) 100%); }
  }

  /* 矢印・アイコン・文字を外した後の調整（山型グラフだけを薄く残す） */
  .cost-visual { opacity: 1; }
  @media (max-width: 1024px) and (min-width: 769px) {
    .hero-photo .container { padding-bottom: 150px; }
    .cost-visual { height: 45%; }
  }
  @media (max-width: 768px) {
    .hero-photo .container { padding-bottom: 110px; }
    .cost-visual { height: 40%; }
  }

  /* 山型グラフを削除したので、下の余白を通常に戻す */
  @media (max-width: 1024px) and (min-width: 769px) { .hero-photo .container { padding-bottom: 110px; } }
  @media (max-width: 768px) { .hero-photo .container { padding-bottom: 88px; } }


  /* 事業紹介カードの画像（ICT：写真／エネルギー：グリーン／マーケティング：Urizo風） */
  .biz-visual { height: 170px; overflow: hidden; position: relative; }
  .biz-visual svg { width: 100%; height: 100%; display: block; }
  .biz-ict { background: #e9ecef; }
  .biz-ict img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; transition: transform .4s; }
  .biz-card:hover .biz-ict img { transform: scale(1.04); }
  .biz-card:nth-child(2) .label { color: #2e9e5b; }
  .biz-card:nth-child(2) .more { color: #237a46; }
  .biz-card:nth-child(3) .label { color: #1458e4; }
  .biz-card:nth-child(3) .more { color: #1458e4; }
  .biz-ict { background: radial-gradient(ellipse at 50% 45%, #c9cacc 0%, #a9aaac 55%, #85868a 100%); }
  .biz-ict img { object-fit: contain; object-position: 50% 50%; height: 118%; width: 100%; margin-top: -9%; }
  .biz-ict { background: linear-gradient(180deg, #9a9b9d 0%, #afb0b1 50%, #bdbebf 100%); }
  .biz-ict img { -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 22%, #000 78%, transparent 100%); }
  .biz-ict { background: #e9ecef; }
  .biz-ict img { object-fit: cover; object-position: 50% 50%; height: 100%; margin-top: 0; -webkit-mask-image: none; mask-image: none; }

  .biz-card:nth-child(2) .label { color: #237a46; }


  /* ICTカード：写真＋地球儀・ネットワークの重ね絵 */
  .biz-ict::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(10,40,80,.55) 0%, rgba(20,70,130,.35) 45%, rgba(220,235,250,.15) 100%); pointer-events: none; }
  .biz-ict img { filter: saturate(.8) brightness(.95); }
  .ict-overlay { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
  .ict-overlay .net-lines line { stroke: #fff; stroke-opacity: .55; stroke-width: .7; }
  .ict-overlay .net-nodes circle { fill: #fff; }
  .biz-card:hover .biz-ict img { transform: scale(1.04); }

  /* ICTカード：写真なしのイラスト版 */
  .biz-ict::after { display: none; }
  .biz-ict .ict-art { width: 100%; height: 100%; display: block; }
  .ict-art .globe-dark circle { fill: #1f5fa8; }
  .ict-art .net-lines line { stroke: #fff; stroke-opacity: .85; stroke-width: .8; }
  .ict-art .net-nodes circle { fill: #fff; }

  /* ICTカード：写真風（写真＋世界地図の地球儀＋ネットワーク） */
  .biz-ict { background: #2b3440; }
  .biz-ict img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 55%; filter: grayscale(.85) brightness(.8) contrast(1.05); margin: 0; }
  .biz-ict::after { display: block; content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(14,26,44,.72) 0%, rgba(40,60,90,.45) 45%, rgba(210,220,232,.18) 100%); pointer-events: none; z-index: 0; }
  .biz-ict .ict-art { position: absolute; inset: 0; z-index: 1; }
  .ict-art .world circle { fill: #fff; }
  .ict-art .world circle.o { fill: #cfe0f5; }
  .ict-art .net-lines line { stroke: #fff; stroke-opacity: .7; stroke-width: .55; }
  .ict-art .net-dash line { stroke: #fff; stroke-opacity: .5; stroke-width: .6; stroke-dasharray: 1.5 2.5; }
  .ict-art .net-nodes circle, .ict-art .net-nodes polygon { fill: #fff; }
  .ict-art .spark-lines line { stroke: #ffb27a; stroke-opacity: .8; stroke-width: .5; }
  .biz-card:hover .biz-ict img { transform: scale(1.04); }

  /* 採用：握手の写真（暖かい光で明るく） */
  .recruit-photo { position: relative; min-height: 320px; overflow: hidden; background: #f3e7da; }
  .recruit-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; filter: brightness(1.18) contrast(.92) saturate(.9) sepia(.18); transition: transform .5s; }
  .recruit-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; background:
      radial-gradient(ellipse at 18% 8%, rgba(255,246,228,.85) 0%, rgba(255,240,215,.35) 35%, rgba(255,240,215,0) 60%),
      linear-gradient(180deg, rgba(255,250,240,.22), rgba(255,250,240,0) 60%); }
  .recruit-box:hover .recruit-photo img { transform: scale(1.03); }
  @media (max-width: 768px) { .recruit-photo { min-height: 220px; } }
  .recruit-photo img { transform-origin: 57% 42%; transform: scale(1.45); }
  .recruit-box:hover .recruit-photo img { transform: scale(1.5); }


  /* 採用ページ上部：握手の写真＋ネットワーク */
  .page-hero.recruit-hero { background: #0b2440; min-height: 420px; display: flex; align-items: center; }
  .page-hero.recruit-hero::before { display: none; }
  .rh-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; filter: saturate(.55) brightness(.9); }
  .rh-shade { position: absolute; inset: 0; background:
      linear-gradient(90deg, rgba(8,28,52,.95) 0%, rgba(10,40,78,.82) 34%, rgba(20,70,120,.45) 62%, rgba(40,100,160,.3) 100%),
      linear-gradient(0deg, rgba(110,170,230,.25), rgba(110,170,230,0) 60%); }
  .rh-net { position: absolute; inset: 0; width: 100%; height: 100%; }
  .rh-net .lines polyline { fill: none; stroke: #e8f4ff; stroke-opacity: .75; stroke-width: 1.4; }
  .rh-net .dots circle { fill: #fff; }
  .rh-net .nums text { fill: #e8f4ff; fill-opacity: .7; font-family: Montserrat, sans-serif; font-size: 17px; letter-spacing: 1px; }
  .recruit-hero .container { position: relative; z-index: 2; width: 100%; padding-top: 96px; padding-bottom: 96px; }
  .recruit-hero h1 { text-shadow: 0 2px 16px rgba(0,0,0,.35); }
  .recruit-hero p { color: #dce8f4; }
  @media (max-width: 768px) {
    .page-hero.recruit-hero { min-height: 380px; }
    .rh-shade { background: linear-gradient(180deg, rgba(8,28,52,.9) 0%, rgba(10,40,78,.78) 55%, rgba(20,70,120,.5) 100%); }
    .rh-net { opacity: .7; }
    .recruit-hero .container { padding-top: 64px; padding-bottom: 64px; }
  }
  .rh-bg { left: auto; right: 0; width: 66%; object-position: 50% 58%; }
  .rh-shade { background:
      linear-gradient(90deg, rgba(8,28,52,1) 0%, rgba(8,28,52,.96) 34%, rgba(10,40,78,.55) 50%, rgba(20,70,120,.28) 72%, rgba(40,100,160,.22) 100%),
      linear-gradient(0deg, rgba(110,170,230,.22), rgba(110,170,230,0) 60%); }
  @media (max-width: 768px) {
    .rh-bg { width: 100%; object-position: 50% 58%; }
    .rh-net .icons, .rh-net .nums { display: none; }
    .rh-net { opacity: .45; }
    .rh-shade { background: linear-gradient(180deg, rgba(8,28,52,.92) 0%, rgba(10,40,78,.8) 60%, rgba(20,70,120,.55) 100%); }
  }
  .recruit-hero p { max-width: 520px; }

  /* ぱくたその横長写真：握手が右寄りに来るよう配置 */
  .rh-bg { width: 70%; object-position: 62% 50%; filter: saturate(.6) brightness(.92); }
  @media (max-width: 768px) { .rh-bg { width: 100%; object-position: 70% 50%; } }

  .rh-bg { object-position: 50% 40%; transform: scale(1.3); transform-origin: 50% 42%; }
  @media (max-width: 768px) { .rh-bg { object-position: 50% 40%; transform: scale(1.5); transform-origin: 52% 42%; } }

  @media (max-width: 768px) { .recruit-hero h1 { font-size: 23px; } }

  @media (max-width: 768px) { .rh-net { opacity: 1; } }


  /* 採用ページ「仕事内容」：トップの事業カードと同じ画像 */
  .work-card .biz-visual { height: 220px; }
  .work-card .body { padding: 26px 28px 30px; }
  .work-card .label { font-family: "Montserrat", sans-serif; font-size: 11px; letter-spacing: .2em; color: var(--blue); font-weight: 600; }
  .work-card:nth-child(2) .label { color: #237a46; }
  .work-card h3 { margin-top: 6px; }
  @media (max-width: 768px) { .work-card .biz-visual { height: 180px; } }
  .work-card .biz-visual { height: auto; aspect-ratio: 320 / 170; }
  @media (max-width: 768px) { .work-card .biz-visual { height: auto; } }

