
/* ===== IN PAGE COMMON ===== */



/* ===== Hero with background image ===== */
.pageHero--image{
  position: relative;
  padding: 60px 0;
  background-image: url("/img/main_bg.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

/* 黒オーバーレイ */
.pageHero--image::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,.45) 0%,
    rgba(0,0,0,.15) 40%,
    rgba(0,0,0,.65) 100%
  );
  z-index:1;
}

/* 中央テキスト */
.pageHeroInner{
  position: relative;
  z-index:2;
  text-align:center;
}

.pageHeroInner h1{
  font-family: "Zen Old Mincho", serif;
  font-size: 32px;
  letter-spacing: .05em;
  background: linear-gradient(180deg, #978e79 0%, #fff 20%, #978e79 70%, #978e79 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;

  text-shadow: 0 4px 20px rgba(0,0,0,.8);
}
.pageHeroInner h1::after{
  content:"";
  display:block;
  width:min(520px, 70vw);;
  height:1px;
  margin:20px auto 0;
  background: linear-gradient(90deg, transparent, #d4a647, transparent);
}


.sectionTitle{
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(28px, 4vw, 40px);
  letter-spacing:.05em;
  text-align:center;
  margin-bottom: 40px;
  color:#c0b7a2;
  background: linear-gradient(180deg, #978e79 0%, #fff 20%, #978e79 70%, #978e79 100%);
    background-clip: border-box;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
h2::after{
  content:"";
  display:block;
  width:80px;
  height:1px;
  margin:18px auto 0;
  background: linear-gradient(90deg, transparent, #d4a647, transparent);
}

/* ===== Message PAGE ===== */
.messageSection,
.profileSection,
.contactSection{
  padding: 80px 0 0;
}

.messageInner,
.profileInner,
.contactInner{
  width:min(90vw,1100px);
  margin:0 auto;
}

.messagePhoto img{
  width:80%;
  border-radius:8px;
  margin: 20px auto;
}

.ceoName{
  margin-top:20px;
  font-size:15px;
  text-align:center;
  line-height:1.6;
}

.messageText{
  font-family: "Zen Old Mincho", serif;
  line-height:2;
  font-size:16px;
  text-align: center;
}
.messageText p {
  margin: 30px 0;
}
.profileBox p{
  margin:10px 0;
  line-height:1.8;
  font-family: "Zen Old Mincho", serif;
}

.profileTableWrap{
  margin-top: 30px;
}

.profileTable{
  width: 75%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .05em;
  margin: 0 auto;
}

.profileTable th,
.profileTable td{
  padding: 14px 10px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  vertical-align: top;
}

.profileTable th{
  width: 180px;
  font-weight: 600;
  color: #c0b7a2;
  text-align: left;
}

.profileTable td{
  color: rgba(238,242,251,.85);
}

.profileTable tr:last-child th,
.profileTable tr:last-child td{
  border-bottom: none;
}

.contactForm{
  max-width:600px;
  margin:0 auto;
}

.formGroup{
  margin-bottom:20px;
}

.formGroup label{
  display:block;
  margin-bottom:6px;
}

input, textarea{
  width:100%;
  padding:12px;
  border:1px solid #ccc;
  background:#111;
  color:#fff;
}
.radio-btn input{
  width: auto;
}

.submitBtn{
  padding:14px 30px;
  background:linear-gradient(180deg,#c0b7a2,#c79a3a);
  border:none;
  font-weight:bold;
  cursor:pointer;
}
/* ===== Message responsive fix ===== */
@media (max-width: 768px){
.pageHero{
  padding: 40px 0;
}

.pageHero h1{
  font-size: 24px;
  letter-spacing: .1em;
}
  .messageGrid{
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .messagePhoto{
    text-align:center;
  }
  .messagePhoto img{
    width: 80%;
    max-width: 320px;
    margin: 0 auto;
  }
  .ceoName{
    font-size: 15px;
    line-height: 1.7;
  }
  .messageText{
    font-size: 15px;
    line-height: 1.9;
    padding: 0 6px;
  }
  .profileTable {
    width: 95%;
  }
  .profileTable th {
    width: 25%;
  }
  .profileTable td {
    width: 75%;
  }
  
}


/* ===== HIRE PAGE ===== */

.hireInner{
  width:min(85vw,1100px);
  margin:0 auto;
  padding:60px 0 0;
}
.hireInner p.hire_mh {
  font-size: clamp(16px, 3vw, 20px);
  margin: 0 0 40px 0;
}
.hireLead{
  text-align:center;
  margin-top:30px;
  line-height: 180%;
}

.leadMain{
  font-size:18px;
  font-weight:600;
  letter-spacing:.15em;
  color:#c0b7a2;
}

.serviceBlock{
  margin-bottom:40px;
  text-align:center;
}

.serviceBlock h3{
  font-family: "Zen Old Mincho", serif;
  font-size:20px;
  color:#c0b7a2;
  margin-bottom:15px;
  letter-spacing:.1em;
}

.serviceBlock p{
  font-family: "Zen Old Mincho", serif;
  line-height:2;
  font-size:16px;
}

.galleryGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.galleryGrid img{
  width:100%;
  border-radius:8px;
  object-fit:cover;
  height:220px;
}

.hireValue{
  text-align:center;
  line-height:2;
}

.valueBox{
  margin: 0 auto 90px;
  padding: 30px 0;
  border:3px solid rgba(200,168,90,.4);
  border-radius:8px;
  background: linear-gradient(135deg, rgba(200,168,90,.30), rgba(255, 255, 255, 0.09));
  width: min(85vw,985px);
}
.valueBox h3 {
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.4;
  margin: 30px 0 20px;
  font-family: "Zen Old Mincho", serif;
}
.valueBox p {
  text-align: center;
  font-size: 18px;
  margin: 0 20px;
  font-family: "Yu Mincho","Noto Serif JP",serif;
  line-height: 2;
}
.hireBanner{
  text-align:center;
  padding:35px 0 80px 0;
  width: min(85vw,750px);
  margin: 0 auto;
}

.hireBanner a{
  display: inline-block;
  padding: 25px 70px;
  background: #a67b20;
  font-weight: bold;
  letter-spacing: .05em;
  text-decoration: none;
  font-size: 18px;
  border-radius: 10px;
  color: #fff;
}
.hireBanner a .ctaTelBtnArrow {
  font-size: 18px;
  line-height: 1;
  color: rgba(240,212,138,.95);
  margin: 0 20px 0 0;
}
@media (max-width: 768px){
.valueBox{
  width: 80%;
}
.valueBox p{
  text-align: left;
  font-size: 15px;
}
.hireBanner a{
  padding:25px 25px;
  letter-spacing:.1em;
  font-size: 18px;
}
}


/* ===== Hire cards (Top photo / Bottom text) ===== */
.hireCards{
  padding: 10px 0 20px;
}

.hireCardGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.hireCard{
  border-radius: 12px;
  overflow:hidden;
  border: 3px solid rgba(200,168,90,.25);
  background: linear-gradient(135deg, rgba(251, 217, 135, 0.77), rgba(255, 245, 221, 0.93));
  box-shadow: 0 14px 34px rgba(0,0,0,.35);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  color: #000;
}

.hireCardPhoto{
  margin:0;
}

.hireCardPhoto img{
  width:100%;
  height: 190px;
  object-fit: cover;
  display:block;
  filter: contrast(1.03) saturate(1.03) brightness(.98);
}

.hireCardBody{
  padding: 18px 18px 20px;
  text-align:center;
}

.hireCardTitle{
  margin: 0 0 10px;
  color:#000;
  font-size: 18px;
  letter-spacing:.10em;
}

.hireCardText{
  margin:0;
  color: #000000c7;
  line-height: 1.9;
  font-size: 15px;
  letter-spacing:.03em;
  text-align: left;
}

/* ===== Responsive ===== */
@media (max-width: 1100px){
  .hireCardGrid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .hireCards{padding: 0 0 0}
  .hireCardGrid{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .hireCardPhoto img{
    height: 200px;
  }
}

/* ===== COMPANY CAR PAGE ===== */
.carInner{
  width:80%;
  margin:0 auto;
  padding:60px 0;
}

.carGalleryTop{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:40px;
}

.carGalleryTop img{
  width:100%;
  height:240px;
  object-fit:cover;
  border-radius:8px;
}

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

.leadMain{
  font-size: 22px;
  font-weight:600;
  letter-spacing:.15em;
  color:#c0b7a2;
  
}

.carIntroText{
  font-family: "Zen Old Mincho", serif;
  line-height:2;
  text-align:center;
}

.companyCarStrength{
  background:rgba(255, 255, 255, 0.12);
}

.strengthItem{
  margin-bottom:40px;
  text-align:center;
  font-family: "Zen Old Mincho", serif;
}

.strengthItem h3{
  color:#c0b7a2;
  font-size:18px;
  margin-bottom:10px;
}

.galleryGrid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.galleryGrid img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:8px;
}

.compareGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}

.compareBox{
  padding:30px;
  border:3px solid rgba(255, 255, 255, 0.59);
  border-radius:8px;
  background: rgba(193, 193, 193, 0.24);
}

.compareBox h3{
  margin-bottom:15px;
  color:var(--text);
  border-bottom: 1px solid;
  padding: 0 0 10px 0;
  font-size:  clamp(18px, 3vw, 20px);
  margin: 0 auto;
  text-align: center;
  text-shadow: 0 4px 10px rgba(0,0,0,.8);
}
.compareBox.highlight h3{
  color:#c0b7a2;
}
.compareBox ul{
  list-style: none;
  padding-left: 20px;
}

.compareBox li{
  position: relative;
  padding-left: 22px;
  margin-bottom: 10px;
  font-size: 17px;
}
.compareBox li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 8px;
  height: 8px;
  transform: rotate(45deg);
  background: linear-gradient(135deg,#c0b7a2,#c79a3a);
}
.highlight{
  border-color:rgba(200,168,90,.5);
  background:rgba(200, 168, 90, 0.24);
}

.strengthRow{
  display:flex;
  grid-template-columns: 1fr 1fr;
  gap:40px;
  align-items:center;
  margin-bottom:60px;
}

.strengthRow.reverse .strengthText{
  direction: ltr;
}

.strengthPhoto img{
  width:240px;
  object-fit:cover;
  border-radius:10px;
  margin: 0 auto;
}

.strengthText h3{
  color:#c0b7a2;
  margin-bottom:15px;
}

.strengthText p{
  line-height:2;
  font-family: "Zen Old Mincho", serif;
}

@media (max-width: 900px){
  .strengthRow{
    grid-template-columns:1fr;
  }
  .strengthRow {
  display: block;
  }
  .compareGrid {
  display: block;
}
.compareBox {
  margin: 0 auto 20px;
  padding: 30px 10px;
}
.compareBox li {
  padding-left: 16px;
  margin-bottom: 8px;
  font-size: 15px;
}
.strengthPhoto img {
  width: 100%;
}
}

/* ===== CONTACT PAGE ===== */
.contact-txt{
  text-align: center;
}
.contact-txt .tel{
  font-size: 2.2em;
  font-weight: 600;
}
.contact-txt .tel span{
  font-size: .85rem;
  display: block;
}
.contact-wrap{
  background: linear-gradient(135deg, rgba(200,168,90,.20), rgba(255, 255, 255, 0.05));
  padding: 4vw;
  width: 980px;
  max-width: 100%;
  margin: 3em auto 2em auto;
}
.contact-wrap .form_btn{
  padding: 14px 18px;
  border-radius: 2px;
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.06)), linear-gradient(135deg, rgba(200,168,90,.50), rgba(120,80,20,.30));
  color: rgba(255,255,255,.92);
  font-weight: 800;
  letter-spacing: .02em;
  box-shadow: 0 10px 26px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.18);
  font-size: 1.2em;
}
#form_list{
  width: 100%;
}
#form_list th{
  width: 25%;
  text-align: left;
  padding: 1.3em 0;
}
#form_list th span{
  border: 1px solid #a67b20;
  color: #a67b20;
  font-size: .7em;
  padding: 2px 6px;
  margin-left: 10px;
}
#form_list td{
  width: 75%;
  text-align: left;
}
#form_list input{
  padding: 10px;
}
.f60 {
  box-sizing: border-box;
  width: 60%;
}
.form{
  text-align: center;
  padding: 2em 0 0;
}
.thanks{
  text-align: center;
}
.thanks strong{
  display: block;
  font-size: 1.3rem;
  padding-bottom: 10px;
}
@media screen and (min-width: 992px) {
  .flow-box-inner{
    width: 70%;
  }
  .flow-box-img{
    width: 26.5%;
  }
}
@media screen and (max-width: 991px) {
  #form_list th,#form_list td{
    display: block;
    width: 100%;
  }
  #form_list th{
    padding-bottom: 8px;
    font-size: 14px;
  }
  #form_list textarea{
    width: 100%;
  }
  .f60, .data{
    width: 100%;
  }
  .form .form_btn{
    font-size: 14px;
  }
}