@charset "UTF-8";

:root{
 --dmk--maincolor: #1d2088;	/* DMKメインカラー（紺）： #1d2088 */
 --dmk--subcolor: #0883cd;	/* DMKアクセントカラー（水色）： #0883cd */
  --radius: 12px;
  --border: 1px solid #d8e3f2;
  --q-bg: #f8fbff;
  --q-color: #1a3e78;
  --muted: #7f9bbf;
  --shadow: 0 4px 14px rgba(26,62,120,.08);
  --transition: 240ms ease;
  --maxw: 920px;
  --shadow: 0 4px 14px rgba(26,62,120,.08);
  --text-main: #192c55;
  --text-muted: #6a8c9e;

  --accent: #0883cd;           /* ラベルのアクセント（濃い線にも使用） */
  --line-strong: #0883cd;      /* 項目名用（濃い） */
  --line-weak: #cfe0ef;        /* 詳細用（薄い） */

  --pad-x: 28px;
  --pad-y: 28px;
  --icon-size: 22px;       /* 表示サイズ（正方形） */
  --gap-col: 24px;
  --gap-row: 25px;
  
    --bg: #ffffff;
  --text: #1a1a1a;
  --muted: #6b7280;
  --brand: #2563eb;     /* ブルー */
  --brand-2: #10b981;   /* グリーン */
  --card: #f8fafc;
  --border: #e5e7eb;
  --text-color: #192c55;
 	--job_title--line-color:#E5E7EB;
  

  --color-bg:#fff;
  --ring-track:#e5e7eb;
  
  --brand-2: #10b981;   /* グリーン */
    
    --bg: #ffffff;

    --si-maincolor:#1d2088;	/* システム開発 */
    --ie-maincolor:#f31b9b;	/* ITインフラ */
    --sm-maincolor:#47c1b8;	/* システム運用 */
    
    --man:#9deee8;
    --woman:#ffa8db;
}
    
    img { 
		max-width: 100%;
		display: block; 
	}
	
.contents{
	background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)), url('../images/bg.png');
	width:100%;
	background-repeat:repeat-y;
	background-size: contain;
}

/*===============
 仕事を知る
===============*/
#whatwedo{
	width: 90%;	
	margin:0 auto;
}

.sec-whatwedo .flexRow img {
	width :35%;
	height:auto;
	margin:10px;
}

.section__header{	
  display: flex;
  flex-direction: column;
  margin:0 auto;
  width:90%;
}
.section__eyebrow{
  color: var(--dmk--subcolor);
  font-weight: 800;
  letter-spacing: .06em;
  font-size: clamp(12px, 2.6vw, 14px);
}
.section__title{
  font-size: clamp(20px, 4vw, 32px);
  font-weight: 800;
  margin: 0;
  color: var(--text-color);
}
.sec-whatwedo{
	width: 80%;
	margin:0 auto;
	
}
.job_title-si,
.job_title-ie,
.job_title-sm{
	position:relative;
	color: var( --text-color);
	font-weight:bold;
	font-size:clamp(22px, 4vw, 24px);
	text-align:left;
	margin:10px 0 auto;
	width:100%;
	padding-left:10px;
	border-bottom: 3px solid var(--job_title--line-color);
}

.job_title-si{
    display: flex;
  	align-items: center;
 	gap: 8px;
    color: var(--si-maincolor);
}

.job_title-icon{
		width: 30px;
		height: 30px;
}

.job_title-ie{
	display: flex;
  	align-items: center;
 	gap: 8px;
    color: var(--ie-maincolor);
}

.job_title-sm{
	display: flex;
  	align-items: center;
 	gap: 8px;
    color: var(--sm-maincolor);
}

 .job_title-si::before,
 .job_title-ie::before,
 .job_title-sm::before{
    content: "";
    position: absolute;
    bottom: -3px;
    left: 0px;
    display: block;
    width:150px;
    height: 3px;
}

.job_title-si::before{
    background: var(--si-maincolor);
}

.job_title-ie::before{
    background: var(--ie-maincolor);
}

.job_title-sm::before{
    background: var(--sm-maincolor);
}

.job_div-si,
.job_div-ie,
.job_div-sm{
	 font-weight: bold;
	 font-size: 20px;
}

.job_div-si{
	 color: var(--si-maincolor);
}

.job_div-ie{
	 color: var(--ie-maincolor);
}

.job_div-sm{
	 color: var(--sm-maincolor);
}

.jobdisp_list {
  list-style-position: inside;
  padding-left:0;
}

.jobdisp_list li{
	 margin-top:10px;
	 font-weight: bold;
}
 
  .jobdisp_list p{
	color: #333;
	font-weight: normal;
	text-indent:1em;
	margin:0;
  }

.activity-card-img figcaption{
	color:lightgray;
}
/*===============
 福利厚生を知る
===============*/
.benefits{ 
	width: 75%; 
	margin: 0 auto; 
}

.benefits__grid{
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	column-gap: var(--gap-col);
	row-gap: var(--gap-row);
	align-items: start;
}

.benefit{
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--dmk--subcolor);
	text-decoration: none;
}

.benefit:focus-visible{
	outline: 3px solid color-mix(in srgb, var(--dmk--subcolor) 55%, white);
	outline-offset: 3px;
	border-radius: 6px;
}

/* 画像アイコン用 */
.benefit__icon{
	width: var(--icon-size);
	height: var(--icon-size);
	flex: 0 0 var(--icon-size);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.benefit__icon img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.benefit__text{
	font-size: clamp(14px, 1.8vw, 16px);
	letter-spacing: .01em;
	color: var(--dmk--subcolor);
}

/*===============
 アクティビティを知る
===============*/
.activity-list{
	display: block;
	margin:0;
	padding:0;
}

.activity-card{
	color:#333333;
	box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.2);
	width:80%;
	margin:20px auto;
	padding:5px;
	background-color: var(--card);
	border-radius: 10px;
}

.activity-card h4{
	font-weight: bold;
	color: var(--dmk--subcolor);
	border-bottom: var(--dmk--subcolor) 1px solid;
	padding:10px 0;
	text-indent:0;
	margin:0 0 10px;
}

.activity-card p{
	margin:0;
}

.activity-card-img{
	margin:0 auto;
	padding:0;
	width:30%;
	text-align: center;
}

.activity-card-img img{
	width:100%;
	margin:0;
	padding:0;
}

.activity-card .flexCol{
	margin-left:15px;
	width:70%;
}

.activity-card-inner{
	display: flex;
	flex-direction: row;
	margin:20px auto;
	width:90%;
}

figure{
	margin:0;
	padding:0;
}

figcaption{
	text-align: right;
	font-size: 10px;
}

/*===============
 データを知る
===============*/
	/* ---------------------------
       KPIカード
    ---------------------------- */
    #sec-numbers{
		text-align: center;
		margin:0 auto;
		width :90%;
		
	}
	
    .grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin:0 auto;
      width:90%;
    }
    
	article .card {
		grid-column: span 6;
		display: flex;
		align-items: center;
		gap: 16px;
		text-align: left;
	}

	article{
		display: flex;
		flex-direction: column;
		border: 1px solid var(--border);
		background: var(--card);
		padding:18px;
		border-radius: 16px;
		box-shadow: var(--shadow);
		
	}

    article.card .icon img{
		width: 100px; 
		height: 100px;
	}
    
	article.card .meta { 
		flex: 1;
		text-align:center;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		width:85%;
		align-items: center;
		margin:15px auto;
	}
	
    article.card .label { 
		color: var(--muted); 
		font-weight: 600; 
		font-size: 18px;
	}
	
	article.card .value {
		font-size: clamp(22px, 4vw, 42px);
		font-weight: 800;
		letter-spacing: -0.02em;
	}
    .badge {
		display: inline-block; margin-top: 8px;
		font-size: 12px; color: var(--brand);
		background: color-mix(in oklab, var(--brand) 10%, var(--bg) 90%);
		border: 1px solid color-mix(in oklab, var(--brand) 30%, var(--border) 70%);
		padding: 4px 8px; 
		border-radius: 999px;
		margin:2px;
    }

	.flexCol{
		display: flex;
		flex-direction: column;
	}

	.flexRow{
		display: flex;
		flex-direction: row;
		align-items: center;
	}

	.semi-wrap{
		display:grid;
		grid-template-columns: 420px 1fr;
		gap:24px;
		align-items:center;
	}

	.semi{
	  width:100%;
	  aspect-ratio: 2 / 1;
	  position:relative;
	  display:grid; place-items:center;
	}
	.semi svg{
		width:100%;
		height:auto;
	}

	.center-label{
		position:absolute;
		inset:auto 0 10% 0;
		text-align:center;
	}

	.center-label .main{
		font-size:clamp(1.1rem,3.5vw,1.8rem);
		font-weight:800;
		letter-spacing:.02em;
	}

	.center-label .sub{
		font-size:clamp(.8rem,2.2vw,1rem);
		opacity:.75;
	}

	.track{
		stroke: var(--ring-track);
	}

	.segment{
		transition: stroke-dasharray 900ms ease, stroke-dashoffset 900ms ease;
	}

	.legend{
		display:grid;
		gap:10px;
		justify-items: center;
	}

	.legend-item{
		display:flex;
		align-items:center;
		gap:8px;
		text-align:center;
	}

	.swatch{
		inline-size:14px;
		block-size:14px;
		border-radius:4px;
	}

	.swatch.arts{
		background:var(--arts);
	} 

	.swatch.science{
		background:var(--science);
	}

	.num{
		font-weight:700;
		font-variant-numeric:tabular-nums lining-nums;
	}

	.desc  {
		opacity: .8;
		margin-top: -2px;
	}

	.wrap {
		display: grid; grid-template-columns: 520px 1fr; gap: 24px; align-items: center;
	}

	.semi {
		width: 100%; aspect-ratio: 2 / 1; position: relative; display: grid; place-items: center;
	}

	.semi svg { width: 100%; height: auto; }
	/* ラベル（下側中央） */
	.center-label {
		position: absolute; inset: auto 0 8% 0; text-align: center;
	}

	.center-label .main { font-weight: 800; font-size: clamp(1rem, 3.2vw, 1.5rem); letter-spacing: .02em; }
	.center-label .sub  { font-size: clamp(.8rem, 2.2vw, 1rem); opacity: .75; }

	.track { stroke: var(--track); }
	.seg   { transition: stroke-dasharray 900ms ease, stroke-dashoffset 900ms ease; }

	/* 丸みを出したいときは round。重ね合わせをキレイにしたいときは butt 推奨 */
	.round { stroke-linecap: round; }
	.butt  { stroke-linecap: butt; }

	/* 凡例 */
	.legend { display: grid; gap: 10px; }
	.legend-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; }
	.swatch { inline-size: 14px; block-size: 14px; border-radius: 4px; }
	.num { font-weight: 700; font-variant-numeric: tabular-nums lining-nums; }
	.muted { opacity: .76; }

	/* ツールチップ（簡易） */
	.tooltip {
		position: absolute; pointer-events: none; transform: translate(-50%, -120%);
		background: #111; color: #fff; font-size: .85rem; padding: 6px 8px; border-radius: 6px;
		box-shadow: 0 4px 12px rgba(0,0,0,.18); white-space: nowrap; display: none;
	}
 
	@media screen and (max-width: 480px) { 
	.contents{
		background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)), url('../images/bg_phone.png');
	}
	
	/*仕事を知るセクション*/
	.sec-whatwedo{
		width: 90%;
		margin:0 auto;
	}
	
	/*仕事を知る 業務内容リスト */
	.jobdisp_list{
		padding-left:0;
		width:100%;
		margin:0 auto;
	}
	
	/*福利厚生*/
	.benefits{ 
		width: 90%; 
		margin: 0 auto; 
	}

	.benefits__grid{
	 	display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 10px;
		row-gap: 10px;
		align-items: start;
	}
	
	.benefit__icon{
		display: none;
	}
	
	/*	アクティビティを知る*/
	.activity-card{
		text-align: center;
	}

    .activity-card-inner{
		display: flex;
		flex-direction: column;
		width:100%;
	}
	
	.activity-card .flexCol{
		text-align: left;
		margin:0 auto;
		width:80%;
	}
	
	.activity-card-img{
		width:80%;
	}
	
	/*	データで知る*/
    .grid {
      display: grid;
      grid-template-columns: repeat(1, 1fr);
      gap: 20px;
      margin:0 auto;
      width:90%;
    }

    article.card .icon img {
		width:80px;
		height:80px;
	}
	
	article.card .meta { 
		justify-content: space-around;
	}
	
	.sec-whatwedo .flexRow{
		flex-direction: column-reverse;
	}
	
	.sec-whatwedo .flexRow img {
		width :90%;
		height:auto;
		margin-top:10px;
	}
}
