body {
    padding-top: 50px;
}

.company-hero{
  position: relative;
  background: url('../images/company_mv.jpg') center/cover no-repeat;
  height: 550px;
  background-position:center;
	z-index:1001;
}

.company-hero::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0; bottom:0;
  background: rgba(255,255,255,0.05);
  z-index: 0;
}

.hero-text-com{
  position: absolute;
  bottom: -50px; /* 画像の下にはみ出す量 */
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  width: 300px;       /* 文字ボックスの幅を調整 */
  display: flex;
  flex-direction: column;
  align-items: center;
	border-radius:5px;
	text-align:center;
}
.hero-text-com h2,
.hero-text-com .subtitle-com{
  background: rgba(255,255,255,1);
  padding: 8px 15px;
  display: block;   /* 幅いっぱいに広げる */
  width: 100%;      /* 親の幅に合わせる */
  margin: 0;
}
.hero-text-com h2{
	border-radius:10px 10px 0 0;
}
.subtitle-com{
	border-radius:0 0 10px 10px;
}
.section-title{
  font-size: 50px;
  margin-bottom: 10px;
	margin-top:0 !important;
}

.subtitle-com{
  font-size: 1.2rem;
}


.inner{
	max-width:1000px;
	text-align:center;
}
.philosophy{
  padding:80px 20px;
	background:#f0f4fa;
}
.mission-inner{
	 background:#fff;
	border-radius:20px;
	box-shadow:0 10px 30px rgba(0,0,0,0.08);
	padding:50px 0;
}
.mission-text{
  max-width:700px;
  margin:40px auto 0;
  line-height:2;
  font-size:18px;
}
.section-title{
  position: relative;
  display: inline-block;
	margin-top:30px;
	margin:0 auto;
}

.title-bg{
  display:block;
  width:350px;
}

.title-text{
  position:absolute;
  top:50%;
  left:45%;
  transform:translate(-50%,-50%);
  font-size:28px;
  font-weight:bold;
	width:300px;
	text-align:center;
}
span.title-text {
    color: #fff;
}
.mission-main{
  font-size:28px;
  font-weight:600;
  text-align:center;
  letter-spacing:0.05em;
}

/* 理念説明 */
.mission-text{
  max-width:720px;
  margin:30px auto 0;
  line-height:2;
  font-size:16px;
  text-align:center;
}




.message-content{
  display:flex;
  gap:40px;
  align-items:flex-start;
	padding-top:0;
	padding-bottom:0;
}
.message-text{
  line-height:2;
	transform:rotate(0);
	padding-bottom:5px;
	margin-top:30px;
}
.message-paper p{
	text-align:left;
}
.ceo-name{
	font-family: "Zen Kurenaido", serif !important;
  margin-top:27px;
  font-weight:bold;
	text-align:right !important;
	font-size: 24px !important;
    line-height: 1.6 !important;
}
.ceo-intro{
  display:flex;
  gap:30px;
  align-items:flex-start;
}

.ceo-intro p{
  flex:1;
  line-height:2;
	text-align:left;
}

.ceo-photo img{
  width:300px;
  border-radius:15px;
  border: 5px solid #fff;
}
.ceo-photo {
    transform: translateY(-40px) translateX(10px) rotate(6deg);
}
.message-paper-wrapper::after {
	display:none;
}
.message-p2 {
    margin-top: -55px;
	text-align:left;
}
.message-p5 {
    margin-top: 20px;
}
.message-p6 {
    margin-top: 25px;
}
.ceo-message {
    padding: 50px 0 50px;
}





.company-info{
  padding:80px 20px;
}

.company-table{
  width:100%;
  max-width:800px;
  margin:40px auto 0;
  border-collapse:collapse;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 10px 25px rgba(0,0,0,0.08);
}

.company-table th,
.company-table td{
  padding:18px 15px;
  border-bottom:1px solid #ddd;
  text-align:left;
	background:#fff;
}

.company-table th{
  width:180px;
  font-weight:600;
  background:#f5f5f5;
}

/* Concept */
.concept{
padding:80px 0;
background:#f0f4fa;
}

.concept-lead{
text-align:center;
max-width:700px;
margin:30px auto 50px;
line-height:1.8;
}

.concept-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:20px;
justify-items:center;
}

.concept-card{
width:220px;
height:220px;
border-radius:50%;
padding:30px;
display:flex;
flex-direction:column;
justify-content:center;
text-align:center;
box-shadow:0 10px 20px rgba(0,0,0,0.06);
}

.concept-card h3{
margin-bottom:10px;
font-size:19px;
}

.concept-card p{
line-height:1.7;
}

.concept-card:nth-child(1){
background:rgba(142,209,252,0.35);
}

.concept-card:nth-child(2){
background:rgba(255,193,203,0.35);
}

.concept-card:nth-child(3){
background:rgba(173,216,230,0.35);
}

.concept-card:nth-child(4){
background:rgba(170,230,200,0.35);
}

.vision{
padding:50px 0 50px;
text-align:center;
background: #f0f4fa;
}

.vision-catch{
font-size:35px;
font-weight:600;
line-height:1.6;
margin:30px 0;
}

.vision-text{
max-width:700px;
margin:0 auto;
line-height:1.9;
}
.vision-catch::after{
content:"";
display:block;
width:80%;
height:3px;
background:#8ed1fc;
margin:20px auto 0;
}


.values{
padding:50px 0 50px;
}

.values-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:40px;
}

.value-item{
background:#fffdf5;
padding:30px;
border-radius:10px;
box-shadow:0 6px 20px rgba(0,0,0,0.05);
position:relative;
}

.value-num{
font-size:28px;
font-weight:bold;
color:#8ed1fc;
display:block;
margin-bottom:10px;
}

.value-item h3{
font-size:18px;
margin-bottom:10px;
}

.value-item p{
line-height:1.8;
}






.slogan-section {
  padding: 60px 20px;
  text-align: center;
  background: #f0f4fa;
}

.main-slogan {
  font-size: 35px;
  font-weight: bold;
	margin-top:30px;
  margin-bottom: 50px;
  line-height: 1.4;
}

.slogan-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
}

.slogan-item {
  background: #fff;
  padding: 50px 20px;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  flex: 1 1 250px; /* 3つ並ぶが画面小さいと折り返す */
  max-width: 300px;
}

.slogan-item h3 {
  font-size: 18px;
  margin-bottom: 10px;
  color: #1a1a1a;
}

.slogan-item p {
  font-size: 16px;
  color: #555;
  line-height: 1.6;
}





.philosophy-section {
  padding: 60px 20px;
  text-align: center;
  font-family: sans-serif;
}
.philosophy-card {
  background: #fffdf5;
  padding: 40px 30px;
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
  gap: 25px; /* 理念間の余白 */
  max-width: 700px;
  margin: 30px auto 0; /* 中央寄せ */
}

.philosophy-card p {
  font-size: 20px;
  line-height: 1.8;
  margin: 0;
	text-align:left;
	padding-left:70px;
}



.brand-section{
  padding:80px 0;
  background:#f0f4fa;
}

.brand-card{
  background:#fff;
  border-radius:20px;
  padding:30px 50px;
  max-width:800px;
  margin:30px auto 0;
  box-shadow:0 10px 30px rgba(0,0,0,0.08);
}

/* ロゴ */

.brand-logo{
  text-align:center;
  margin-bottom:30px;
}

.brand-logo img{
  max-width:400px;
	margin:0 auto;
}

/* キャッチコピー */

.brand-catch{
  text-align:center;
  font-size:22px;
  line-height:1.8;
  margin-bottom:50px;
  font-weight:500;
}

/* ポイント */

.brand-points{
  display:flex;
  flex-direction:column;
  gap:30px;
}

.brand-point{
  padding-left:20px;
  border-left:4px solid #6fa8dc; /* 青アクセント */
}

.brand-point h4{
  font-size:18px;
  margin-bottom:8px;
  font-weight:bold;
}

.brand-point p{
  line-height:1.7;
  color:#555;
}
.brand-link{
  text-align:center;
  margin-top:40px;
}

.brand-btn{
  display:inline-block;
  padding:14px 28px;
  background:#6fa8dc;
  color:#fff;
  text-decoration:none;
  border-radius:30px;
  font-size:16px;
  transition:0.3s;
}

.brand-btn:hover{
  background:#5a95cc;
  transform:translateY(-2px);
}
.cta-button {
    padding: 0 20px;
}
.footer-col {
    text-align: left;
}
.company-map {
    padding: 0 20px;

}
.company-map .inner{
	max-width: 900px;
	display: flex;
	flex-direction: column;
	gap: 80px;
	text-align: left;
}
.map-item .location{
	font-weight: bold;
}
.map-item .comment{
	margin-bottom: 1rem;
}
.map-title{
	font-size:22px;
	font-weight:700;
	margin-bottom:20px;
	border-left:4px solid #2b6cb0;
	padding-left:12px;
}
.map-title.head::after{
	content:"HEAD OFFICE ACCESS";
	font-size:12px;
	color:#888;
	margin-left:10px;
	letter-spacing:1px;
}
.map-title.aichi::after{
	content:"AICHI OFFICE ACCESS";
	font-size:12px;
	color:#888;
	margin-left:10px;
	letter-spacing:1px;
}
.map iframe{
width:100%;
height:400px;
border-radius:10px;
}
.ceo-message_title {
    font-size: 24px;
    padding-top: 20px;
}
.ceo-profile{
max-width:900px;
margin:60px auto;
padding:0 20px;
}

.profile-title{
font-size:22px;
font-weight:700;
margin-bottom:20px;
border-left:4px solid #2b6cb0;
padding-left:12px;
}

.profile-card{
background:#f3f3f3;
padding:30px;
border-radius:10px;
line-height:1.9;
box-shadow:0 4px 15px rgba(0,0,0,0.05);
}

.profile-text{
margin-bottom:18px;
}

.profile-hobby{
margin-top:15px;
padding-top:15px;
border-top:1px solid #e2e2e2;
font-size:15px;
}
.profile-title::after{
content:"PROFILE";
font-size:12px;
color:#888;
margin-left:10px;
letter-spacing:1px;
}
.company-nav-fixed{
  position:fixed;
  left:40px;
  top:200px;
  width:200px;
  opacity:0;
  transition:.3s;
  z-index:999;
}

.company-nav-fixed.show{
  opacity:1;
}

.company-nav-fixed ul{
  list-style:none;
  padding-left:20px;
  margin:0;
}

.company-nav-fixed li{
  margin-bottom:14px;
}

.company-nav-fixed a{
  text-decoration:none;
  color:#555;
  display:block;
  padding-left:12px;
  position:relative;
  transition:.2s;
}

/* 縦線（通常はグレー） */

.company-nav-fixed a::before{
  content:"";
  position:absolute;
  left:-12px;
  top:50%;
  transform:translateY(-50%);
  width:3px;
  height:18px;
  background:#cfd8e3;
  transition:.2s;
}

/* hover */

.company-nav-fixed a:hover{
  color:#0b63ce;
}

/* active */

.company-nav-fixed a.active{
  color:#0b63ce;
  font-weight:600;
}

.company-nav-fixed a.active::before{
  background:#0b63ce;
  height:24px;
}
.company-nav-fixed a.active{
  color:#0b63ce;
  font-weight:600;
  transform:translateX(4px);
}
.bread-inner {
    position: relative;
    z-index: 1000;
}
.logo-lead{
  font-size:24px;
  font-weight:600;
  margin-bottom:30px;
  line-height:1.8;
  margin-top:20px;
}

/* 横並び */

.logo-visual-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:60px;
  margin-bottom:40px;
}

/* ロゴ */

.logo-box{
  width:280px;
}

.logo-box img{
  width:100%;
}

/* お花 */

.ohana-visual{
  position:relative;
  width:260px;
  height:260px;
}

/* 中央 */

.ohana-center{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:90px;
  height:90px;
  background:#f9d125;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
  font-size: 15px;
}

/* 花びら */

.petal{
  position:absolute;
  width:80px;
  height:80px;
  background:#f15c27;
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  transition:.2s;
}

/* 配置 */

.p1{
  top:0;
  left:50%;
  transform:translate(-50%, 0);
}

/* 右上 */
.p2{
  top:40%;
  right:0;
  transform:translate(0, -50%);
}

/* 右下 */
.p3{
  bottom:20%;
  right:10%;
  transform:translate(0, 50%);
}

/* 左下 */
.p4{
  bottom:20%;
  left:10%;
  transform:translate(0, 50%);
}

/* 左上 */
.p5{
  top:40%;
  left:0;
  transform:translate(0, -50%);
}

/* 説明文 */

.logo-text{
  max-width:800px;
  margin:0 auto;
}

.logo-text p{
  line-height:1.9;
  margin-bottom:18px;
}
.ohana-line{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.ohana-line path{
  stroke-dasharray:500;
  stroke-dashoffset:500;
  animation:flow 2s ease forwards;
}

@keyframes flow{
  to{
    stroke-dashoffset:0;
  }
}
td p{
	margin:20px 0;
}
td p:first-child{
	margin-top:0;
}
td p:last-child{
	margin-bottom:0;
}

.movie{
	width: 250px;
	height: auto;
	display: block;
	margin: 50px auto 0;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
