@charset "UTF-8";

/* =========================================================
   Base & Variables
========================================================= */
:root {
  --color-text: #333333;
  --color-main: #004469; /* 紺色（ロゴや見出し） */
  --color-accent: #00a1e9; /* 少し明るい青 */
  --color-bg-light: #E8F4FB; /* 薄い青背景 */
  --color-line: #A6C4DF; /* 見出し横の線など */
}

/* =========================================================
   Layout
========================================================= */
.l-inner {
	max-width: 1280px;
  margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
}

.p-section {
  padding: 80px 0;
}

/* =========================================================
   Components
========================================================= */
.c-section-title {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 700;
  color: var(--color-main);
  margin-bottom: 50px;
  text-align: center;
}

.c-section-title::before,
.c-section-title::after {
  content: "";
  display: block;
  width: 60px;
  height: 1px;
  background-color: var(--color-main);
  margin: 0 20px;
}

/* =========================================================
   Project: Hero
========================================================= */
.p-hero {
  background: url('images/bg_hero.jpg') no-repeat bottom right;
  background-size: contain;
  padding: 120px 0 100px;
  color: var(--color-main);
}

.p-hero__label {
  display: flex;
  flex-direction: column;
  margin-bottom: 20px;
  font-weight: bold;
}

.p-hero__label-en {
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--color-accent);
}

.p-hero__label-ja {
  font-size: 20px;
}

.p-hero__title {
  font-size: 56px;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 20px;
	text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff;
}

.p-hero__lead {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 20px;
	text-shadow: 0 0 3px #fff, 0 0 10px #fff, 0 0 15px #fff;
}

.p-hero__desc {
  font-size: 14px;
  color: #555;
	display: inline;
	background: linear-gradient(transparent 0%, #fff 0%);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

/* =========================================================
   Project: Solution 
========================================================= */
.p-solution {
  background-color: var(--color-bg-light);
}

.p-solution__list {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.p-solution__item {
  flex: 1;
  text-align: center;
  padding: 10px;
}

.p-solution__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 15px;
  background-color: var(--color-main);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-solution__icon img {
  height: 50px;
}

.p-solution__title {
  font-size: 16px;
  font-weight: bold;
  color: var(--color-main);
  margin-bottom: 10px;
  line-height: 1.5;
}

.p-solution__text {
  font-size: 13px;
  color: #666;
}

/* =========================================================
   Project: Feature 
========================================================= */
.p-feature__list {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}

.p-feature__item {
  flex: 1;
}

.p-feature__img {
  margin: 0 0 15px 0;
  border-radius: 8px;
  overflow: hidden;
}

.p-feature__head {
  display: flex;
  align-items: baseline;
  margin-bottom: 10px;
  border-bottom: 2px solid var(--color-line);
  padding-bottom: 5px;
}

.p-feature__num {
  font-size: 32px;
  font-weight: bold;
  color: var(--color-line);
  margin-right: 10px;
  line-height: 1;
}

.p-feature__title {
  font-size: 16px;
  font-weight: bold;
  color: var(--color-main);
}

.p-feature__text {
  font-size: 13px;
  color: #666;
}

/* =========================================================
   Project: Case 
========================================================= */
.p-case {
  background-color: var(--color-bg-light);
}

.p-case__container {
  background: #fff;
  border-radius: 8px;
  position: relative;
  padding: 50px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.p-case__label {
  position: absolute;
  top: -20px;
  left: 40px;
  background-color: var(--color-main);
  color: #fff;
  font-weight: bold;
  font-size: 18px;
  padding: 5px 20px;
  border-radius: 20px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.p-case__content {
  display: flex;
  gap: 40px;
}

.p-case__info {
  flex: 1;
}

.p-case__company {
  display: block;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 5px;
}

.p-case__logo {
  margin-bottom: 20px;
}

.p-case__logo img {
  height: 140px;
}

.p-case__catch {
  font-size: 20px;
  font-weight: bold;
  color: var(--color-accent);
  margin-bottom: 20px;
}

.p-case__desc {
  font-size: 14px;
  margin-bottom: 30px;
}

.p-case__details {
  display: flex;
  gap: 20px;
  background: var(--color-bg-light);
  padding: 15px;
  border-radius: 8px;
}

.p-case__detail-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}

.p-case__detail-icon {
  width: 2em;
  flex-shrink: 0;
}

.p-case__detail-label {
  font-weight: bold;
  color: var(--color-main);
}

.p-case__images {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.p-case__img-main {
  margin: 0;
}

.p-case__img-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}

.p-case__img-sub {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.p-case__img-sub figure {
  margin: 0;
  flex: 1;
}

.p-case__img-sub img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}

/* =========================================================
   Responsive 
========================================================= */
@media screen and (max-width: 768px) {
	br.pc {
	display: none;
	}
  .p-hero {
    padding: 60px 0;
		background-position: center center;
		background-size: cover;
		position: relative;
	}
  .p-hero:before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 0;
		background: rgba(232,244,251,0.7);
		backdrop-filter: blur(4px);
	}
	.p-hero__inner {
		position: relative;
		z-index: 10;
	}
  .p-hero__title {
    font-size: 28px;
  }
	.p-hero__title,
	.p-hero__lead {
		text-shadow: none;
	}
	.p-hero__desc {
		background: none;
	}
  .p-solution__list,
  .p-feature__list,
  .p-case__content {
    flex-direction: column;
  }
	
  .c-section-title {
		font-size: 23px;
  }
  .c-section-title::before,
  .c-section-title::after {
    width: 24px;
		margin: 0 10px;
  }
	.p-solution__title br{
		display: none;	
	}
  .p-case__container {
    padding: 40px 20px;
  }
  .p-case__label {
    left: 20px;
  }
  .p-case__details {
    flex-direction: column;
  }
  .p-case__images {
    grid-template-columns: 1fr;
  }
  .p-case__img-sub {
    flex-direction: row;
  }
}