
/* ========================
  concept page
======================== */

.concept-page *{
  font-family: serif;
  font-size: 18px;
}
.concept-section{
  padding: 5em 0;
}
@media only screen and (max-width: 768px) {
  .concept-page *{
    font-size: 14px;
  }
  .concept-section{
    padding: 2.5em 0;
  }
}

.concept-page img{
  width:auto;
  max-width:100%;
}
.entry-content .concept-page h2{
  text-align: left;
  margin-bottom: 1.5em;
}
.entry-content .concept-page h2:before {
  display:none;
}
.concept-inner{
  width: 100%;
  max-width: calc(1100px + 2em);
  margin: 0 auto;
  padding: 0 1em;
}
.concept-lead{
  text-align: center;
}
.concept-lead.wh{
  color: #fff;
}
.concept-text{
}
.concept-page .left-line{
  position: relative;
  padding: .3em ;
  padding-left: 1em;
}
.concept-page .left-line::before{
  position: absolute;
  transform : translate( 0%, -50% );
  top : 50%;
  left : 0%;
  display: block !important;
  content: "";
  background-image: linear-gradient(180deg, rgba(208, 169, 0, 1) 40%, rgba(255, 249, 230, 1));
  height: 100%;
  width: 0.18em;
}

/* ------------------- concept-intro */
.concept-intro .concept-inner{
  text-align: center;
}


/* ------------------- concept-luxury */
.concept-luxury{
  background-image: url(./images/concept-luxury-bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.concept-luxury-wrap{
  display: flex;
}
.concept-luxury-content{
  width: calc(100% - 385px);
}
.concept-luxury-img{
  width: 385px;
  padding-top: 50px;
  padding-left: 50px;
}
@media only screen and (max-width: 768px) {
  .concept-luxury-wrap{
    flex-direction:column;
  }
  .concept-luxury-content{
    width: 100%;
  }
  .concept-luxury-img{
    width: 100%;
    padding-left: 0;
  }
}
.concept-luxury-img span{
  display: block;
  text-align: right;
  font-size: 0.7em;
  margin-top: 0.5em;
}
.concept-luxury-title{
  font-size: 2em !important;
  letter-spacing: 0.15em;
  line-height: 1.4 !important;
  margin-bottom: 1.5em !important;
}
.concept-luxury-title span{
  display: block;
  font-size: .7em !important;
}

/* ------------------- concept-production */
.concept-production-title{
  font-size: 1.5em !important;
  text-align: center !important;
}

.concept-production-content{
  display: flex;
  flex-wrap: wrap;
  gap: 3em;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  margin-top: 3em;
}
.concept-production-content-item{
  width: calc((100% - 6em)/3);
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .concept-production-content{
    flex-direction:column;
  }
  .concept-production-content-item{
    width: 100%;
  }
}

/* ------------------- concept-works */
.concept-works{
  margin-top: 3em;
  padding-top: 3em;
  position: relative;
}
.concept-works::before{
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  background-image: linear-gradient(90deg, rgba(208, 169, 0, 1), rgba(106, 86, 0, 1));
  content: "";
}

.concept-works-title{
  font-size: 1.5em !important;
  line-height: 1.1 !important;
  letter-spacing: 0.1em;
}
.concept-works-title span{
  display: block;
  font-weight: normal;
  letter-spacing: 0;
}

.concept-works-content{
  display: flex;
  flex-wrap: wrap;
  gap: 1.5em;
  margin-top: 1.5em;
}
.concept-works-content-item{
  width: calc((100% - 3em)/3);
}
.concept-works-content-cap{
  margin-top: 0.5em;
}
@media only screen and (max-width: 768px) {
  .concept-works-content{
    flex-direction:column;
  }
  .concept-works-content-item{
    width: 100%;
  }
}

/* ------------------- concept-material */
.concept-material{
  background-color: #314049;
}
.concept-material-title{
  color: #fff;
}
.concept-material-title-sub{
  color: #fff;
  font-weight: bold;
  font-size: 1.8em ;
  margin-top: 1.5em;
}
.concept-material-title-sub span{
  color: #fff;
  font-weight: normal;
  margin-left: 1em;
}
.concept-material-metal-content{
  display: flex;
  flex-wrap: wrap;
  gap:2em 1em;
  margin-top: 1em;
}
.concept-material-metal-content-item{
  width: calc((100% - 3em)/4);
}
.concept-material-metal-content-cap{
  color: #fff;
  text-align: center;
  font-size: 0.9em;
  margin-top: 0.5em;
}
@media only screen and (max-width: 768px) {
  .concept-material-metal-content-item{
    width: calc((100% - 1em)/2);
  }
}

.concept-material-other-content{
  display: flex;
  flex-wrap: wrap;
  width: 90%;
  margin: 0 auto;
  gap: 1em;
  margin-top: 1em;
}
.concept-material-other-label{
  display: block;
  width: calc((100% - 2em)/3);
  text-align: center;
  color: #fff;
  background-color: #3f515c;
  border: 1px solid #fff;
  padding: .4em;
}
@media only screen and (max-width: 768px) {
  .concept-material-other-content{
    width: 90%;
  }
  .concept-material-other-label{
    width: calc((100% - 1em)/2);
  }
}


/* ------------------- concept-technology */
.concept-technology-content{
  display: flex;
  flex-direction: column;
  gap: 2em;
  margin-top: 2em;
}
.concept-technology-content-item{
  display: flex;
  background-color: #FBFBFB;
  border:1px solid #D9D9D9;
}
.concept-technology-content-img{
  width: 30%;
  background-color: #f3f3f3;
}
.concept-technology-content-article{
  width: 70%;
  padding: 1em 1.5em;
}
@media only screen and (max-width: 768px) {
  .concept-technology-content-item{
    flex-direction: column;
  }
  .concept-technology-content-img{
    width: 100%;
  }
  .concept-technology-content-article{
    width: 100%;
    padding: 1em 1.5em;
  }
}
.concept-technology-content-title{
  font-size: 1.2em;
  letter-spacing: 0.05em;
}
.concept-technology-content-sub{
  font-weight: bold;
  margin-top: .2em;
}
.concept-technology-content-text{
  position: relative;
  padding-top: 1.8em;
  font-size: 0.95em;
}
.concept-technology-content-text::before{
  position: absolute;
  display: block;
  content: "-";
  top : 0;
  left : 0;
}

/* ------------------- concept-size */
.concept-size{
  background: linear-gradient(-90deg, #F7F7F7 0%, #F7F7F7 50%, #fff 50%, #fff 100%);
  padding: 0;
}
.concept-size-content{
  display: flex;
  background-color: #F7F7F7;
}
.concept-size-img{
  width: 50%;
  padding: 2em;
  position: relative;
  text-align: right;
}
.concept-size-title{
  position: absolute;
  top: 1.5em;
  left: 1.5em;
  font-size: 1.5em;
  text-decoration: underline;
}
.concept-size-text{
  width: 50%;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media only screen and (max-width: 768px) {
  .concept-size-content{
    flex-direction: column;
  }
  .concept-size-img{
    width: 100%;
    text-align: center;
  }
  .concept-size-title{
    position: absolute;
    top: 1.5em;
    left: 1.5em;
    font-size: 1.5em;
    text-decoration: underline;
  }
  .concept-size-text{
    width: 100%;
    padding-bottom: 3em;
  }
}

/* ------------------- concept-flow */
.concept-flow-title{
  font-size: 1.5em !important;
  text-align: center !important;
  margin-bottom: .8em;
}
.concept-flow-content{
  display: flex;
  justify-content: space-between;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  margin-top: 2.5em;
}
.concept-flow-content-item{
  border: 1px solid #DECBCB;
  padding: .2em 1.3em 0;
}
.concept-flow-content-num{
  font-weight: bold;
  font-size: 1.5em;
  display: block;
  text-align: center;
}
.concept-flow-content-text{
  writing-mode: vertical-rl;
  letter-spacing: 0.5em;
  text-align: center;
  display: block;
  height: 13em;
}
.concept-flow-content-arrow{
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media only screen and (max-width: 768px) {
  .concept-flow-content{
    flex-direction: column;
    justify-content: space-between;
    width: 80%;
    gap: .8em;
  }
  .concept-flow-content-item{
    padding: 1em;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .concept-flow-content-num{
    display: inline-block;
    text-align: left;
    margin-right: 1em;
    font-size: 1.2em;
  }
  .concept-flow-content-text{
    writing-mode: unset;
    letter-spacing: 0.1em;
    text-align: left;
    display: inline-block;
    height: auto;
  }
  .concept-flow-content-arrow{
    transform : rotate( 90deg );
  }
  .concept-flow-content-arrow img{
    width: 1.2em;
  }
}

/* ------------------- concept-cta */
.concept-cta{
  background-color: #314049;
}
.concept-cta-title{
  text-align: center !important;
  color: #fff;
}
.concept-cta-content{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}
.concept-cta-content-item{
  text-align: center;
  width: 50%;
}
@media only screen and (max-width: 768px) {
  .concept-cta-content{
    flex-direction: column;
    gap: 3em;
  }
  .concept-cta-content-item{
    width: 100%;
  }

}
.concept-cta-content-title{
  text-align: center;
  color: #fff;
  text-decoration: underline;
  letter-spacing: 0.05em;
  margin-bottom: 0.5em;
}
.concept-cta-content-tel{
  text-align: center;
  color: #fff;
  font-size: 0.8em;
  line-height: 1;
}
.concept-cta-content-tel span{
  display: block;
  color: #fff;
  font-size: 2.2em;
  letter-spacing: 0.05em;
  font-weight: bold;
}
.concept-cta-content-mail{
  display: inline-block;
  margin-top: 1em;
}
.concept-cta-content-mail img{
  width: 50px;
}


/* -------------------------------- base - image */
.img_1-1 {
  display: block;
  width: 100%;
  position: relative;
  padding-top:100%;
}
.img_2-1 {
  display: block;
  width: 100%;
  position: relative;
  padding-top:50%;
}
.img_3-2 {
  display: block;
  width: 100%;
  position: relative;
  padding-top:66.66%;
}
.img_1-1 img,
.img_2-1 img,
.img_3-2 img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  object-fit: cover;
  object-position: center;
}
/* ========================
  concept page - sections added in the 2026 renewal
  (lead / philosophy-mission-vision / three strengths)
  Selectors are prefixed with .concept-page and font-size uses !important
  because .concept-page * sets font-size site-wide on this page.
  Existing rules above are untouched.
======================== */

.concept-page .concept-add-rule {
  display: block;
  width: 80px;
  height: 2px;
  margin: 1.4em auto;
  background-image: linear-gradient(90deg, rgba(208, 169, 0, 1), rgba(106, 86, 0, 1));
}

.concept-page .concept-message {
  background-color: #FAF8F3;
}
.concept-page .concept-message-head {
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
}
.entry-content .concept-page .concept-message-title {
  font-size: 2.2em !important;
  text-align: center;
  letter-spacing: 0.18em;
  line-height: 1.5 !important;
  margin: 0 0 0.5em !important;
  text-indent: 0.18em; 
}
.concept-page .concept-message-en {
  font-size: 0.85em !important;
  letter-spacing: 0.42em;
  text-indent: 0.42em;
  color: #8a7100;
  margin: 0;
}
.concept-page .concept-message-en::after {
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 1.6em auto 0;
  background-image: linear-gradient(90deg, rgba(208, 169, 0, 1), rgba(106, 86, 0, 1));
}
.concept-page .concept-message-tagline {
  margin-top: 1.6em;
  font-size: 1.15em !important;
  line-height: 2;
  letter-spacing: 0.08em;
}
.concept-page .concept-message-body {
  max-width: 820px;
  margin: 3em auto 0;
}
.concept-page .concept-message-text {
  line-height: 2.1;
  letter-spacing: 0.04em;
  margin-top: 1.6em;
}
.concept-page .concept-message-text:first-child {
  margin-top: 0;
}

.concept-page .concept-message-text--def {
  margin-top: 2.4em;
  padding: 1.4em 1.6em;
  background-color: #fff;
  border-left: 3px solid rgba(208, 169, 0, 1);
}

@media only screen and (max-width: 768px) {
  .entry-content .concept-page .concept-message-title {
    font-size: 1.55em !important;
    letter-spacing: 0.12em;
    text-indent: 0.12em;
  }
  .concept-page .concept-message-en {
    letter-spacing: 0.3em;
    text-indent: 0.3em;
  }
  .concept-page .concept-message-tagline {
    font-size: 1em !important;
    line-height: 1.9;
    text-align: left;
  }
  .concept-page .concept-message-body {
    margin-top: 2em;
  }
  .concept-page .concept-message-text {
    line-height: 1.95;
  }
  .concept-page .concept-message-text--def {
    padding: 1.1em 1.2em;
  }
}

.concept-page .concept-philosophy {
  background-color: #314049;
}
.concept-page .concept-philosophy-item + .concept-philosophy-item {
  margin-top: 3.5em;
  padding-top: 3.5em;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.concept-page .concept-philosophy-label {
  color: #fff;
  font-size: 1.15em !important;
  letter-spacing: 0.2em;
  margin: 0 0 0.9em;
}
.concept-page .concept-philosophy-statement {
  color: #fff;
  font-size: 1.5em !important;
  line-height: 1.7;
  letter-spacing: 0.06em;
  margin: 0;
}
.concept-page .concept-philosophy-body {
  margin-top: 1.6em;
  max-width: 900px;
}
.concept-page .concept-philosophy-body p {
  color: rgba(255, 255, 255, 0.88);
  line-height: 2.1;
  letter-spacing: 0.04em;
  margin-top: 1em;
}
.concept-page .concept-philosophy-body p:first-child {
  margin-top: 0;
}

@media only screen and (max-width: 768px) {
  .concept-page .concept-philosophy-item + .concept-philosophy-item {
    margin-top: 2.4em;
    padding-top: 2.4em;
  }
  .concept-page .concept-philosophy-statement {
    font-size: 1.2em !important;
    line-height: 1.65;
  }
  .concept-page .concept-philosophy-body p {
    line-height: 1.95;
  }
}

.entry-content .concept-page .concept-strength-title {
  font-size: 1.5em !important;
  text-align: center !important;
  letter-spacing: 0.08em;
  margin-bottom: 0.6em !important;
}
.concept-page .concept-strength-title::after {
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 0.8em auto 0;
  background-image: linear-gradient(90deg, rgba(208, 169, 0, 1), rgba(106, 86, 0, 1));
}
.concept-page .concept-strength-content {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  width: 100%;
  max-width: 1000px;
  margin: 3em auto 0;
}
.concept-page .concept-strength-content-item {
  width: calc((100% - 4em) / 3);
  background-color: #FBFBFB;
  border: 1px solid #D9D9D9;
  border-top: 2px solid rgba(208, 169, 0, 1);
  padding: 2em 1.6em;
}
.concept-page .concept-strength-num {
  display: block;
  font-size: 1.4em !important;
  line-height: 1;
  letter-spacing: 0.08em;
  color: rgba(208, 169, 0, 1);
}
.entry-content .concept-page .concept-strength-name {
  font-size: 1.3em !important;
  letter-spacing: 0.08em;
  margin: 0.6em 0 0 !important;
  padding-bottom: 0.7em;
  border-bottom: 1px solid #E4E0D2;
}
.concept-page .concept-strength-text {
  font-size: 0.95em !important;
  line-height: 2;
  letter-spacing: 0.03em;
  margin-top: 1.1em;
}

@media only screen and (max-width: 768px) {
  .concept-page .concept-strength-content {
    flex-direction: column;
    gap: 1.2em;
    margin-top: 2em;
  }
  .concept-page .concept-strength-content-item {
    width: 100%;
    padding: 1.5em 1.3em;
  }
  .concept-page .concept-strength-text {
    line-height: 1.9;
  }
}
