
/* ---------- sub ttl ---------- */
.subpage-ttlbox {
  padding: 80px 0 30px;
  text-align: center;
}
.subpage-ttl__sub {
  font-weight: 700;
  font-size: 30px;
  margin-bottom: 18px;
  color: #40200e;
}
.subpage-ttl__main‐archive {
  font-size: 48px;
  font-weight: 900;
  letter-spacing: .08em;
  color: #40200e;
}
.subpage__breadcrumb {
  margin-top: 20px;
  font-size: 14px;
  max-width: calc(100% - 10px);
  width: 1300px;
  margin: 60px auto 0;
  border-bottom: solid 1px #c2c2c2;
  display: flex;
  flex-wrap: wrap;
  justify-content: baseline;
  align-items: center;
  padding-bottom: 10px;
  gap: 5px;
}
.subpage__breadcrumb a {
  text-decoration: none;
}

.subpage__breadcrumb img{
  width: 5px;
}
.subpage-ttl__main‐archive img{
  margin: 0 auto;
}

/* ---------- FILTER ---------- */
.information-archive{
  position: relative;
}
.information-single{
  position: relative;

}
.info__filter {
  background: #fff;
  padding: 110px 0 40px;
  text-align: center;
}
.info__filter__list {
  list-style: none;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0; padding: 0;
}
.info__filter__list li:first-child a{
  width: 150px;
}
.info__filter__list a {
  display: inline-block;
  padding: 10px 35px;
  border: 1px solid #a07855;
  color: #5a3b1e;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: .05em;
  border-radius: 5px;
  min-width: 150px;
}
.info__filter__list li.is-active a {
  background: #5a3b1e;
  color: #fff;
  border-color: #5a3b1e;
}

/* ---------- GRID ---------- */
.info__list {
  background: #fff;
  margin: 40px auto 140px;
  width: 920px;
  max-width: 100%;
}
.info__cards {
  display: flex;
  gap: 70px 37.5px;
  flex-wrap: wrap;
}
.info__card {
  text-align: left;
  width: calc(33.333% - 25px);
}
.info__thumb{
  aspect-ratio: 4/3;
}
.info__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  border-radius: 4px;
  border: solid 1px #c0c0c0;
}

/* ---------- META ---------- */
.info__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 26px;
  margin: 10px 0 4px;
  font-size: 14px;
}
.info__meta time { 
  font-size: 16px;
}
.info__cat {
  display: inline-block;
  background: #b79576;
  color: #fff;
  font-size: 12px;
  padding: 3px 20px;
  line-height: 1.2;
  border-radius: 3px;
}

/* ---------- TITLE ---------- */
.info__title {
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.6;
  color: #333;
}

/* ---------- PAGER ---------- */
.info__pager {
  margin-top: 120px;
  text-align: center;
}
.info__pager .page-numbers {
  border: 1px solid #aaaaaa;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 10px;
  text-decoration: none;
  color: #aaaaaa;
  font-size: 20px;
  border-radius: 3px;
}
.info__pager .current {
  background: #40200e;
  color: #fff;
  border-color: #40200e;
}
.screen-reader-text {
	display: none;
}
.navigation{
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-links{
  display: flex;
  align-items: center;
  justify-content: center;
}
.info__pager .prev-icon,
.info__pager .next-icon{
  position: relative;
}
.info__pager .next-icon::before{
  content:"";
  width: 11px;
  height: 19px;
  background: url(../image/common/arrow04.webp);
  background-size: contain;
  background-repeat: no-repeat;
  top:50%;
  right: 50%;
  display: block;
}
.info__pager .prev-icon::before{
  content:"";
  width: 11px;
  height: 19px;
  background: url(../image/common/arrow04.webp);
  background-size: contain;
  background-repeat: no-repeat;
  top:50%;
  right: 50%;
  display: block;
  transform: rotate(-180deg)
}
.page-numbers.dots{
  position: relative;
  width: 60px;
  height: auto;
  border:none;
  color: transparent; 
}
/* 色をブランド寄りに */
.info__pager .dots::after {
  content: "••••";           /* 文字を変えたい場合 */
  letter-spacing: 1px;
  color: #aaaaaa;
  font-size: 25px;
  position: absolute;
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
}

/* ---------- SP ---------- */


@media (max-width: 768px) {
  .info__list{
        margin: 40px auto 60px;
  }
  .subpage-ttl { padding: 80px 0 40px; }
  .subpage-ttl__title { font-size: 36px; }
  .info__cards { gap: 20px; }  
  .info__card {
    text-align: left;
    width: calc(50% - 10px);
  }
  .info__filter{
    padding: 40px 0 40px;
  }
  .info__filter__list li:first-child a {
      min-width: 100px;
  }
  .info__filter__list a {
      padding: 5px 20px;
      font-size: 14px;
      border-radius: 5px;
      min-width: 100px;
  }
  .info__meta {
    gap: 5px 10px;
    margin: 10px 0 4px;
    font-size: 14px;
  }
  .info__pager{
    margin-top: 30px;
  }
  .info__pager .page-numbers {
      width: 35px;
      height: 35px;
      font-size: 16px;
      border-radius: 3px;
      margin: 0 5px;
  }
  .info__pager .next-icon::before {
    width: 7px;
    height: 13px;
  }
  .kinoko-illustr01 {
    top:300px;
  }
  .kinoko-illustr02 {
    bottom:0;
  }
  .kinoko-illustr03 {
    top:400px;
  }
  .kinoko-illustr04 {
    top:400px;
  }
  .kinoko-illustr05 {
    bottom:0;
  }
}

.info__article{
    width: 100%;
    max-width: 1100px;
    margin: 110px auto 140px;
}

/* ---------- メタ情報 ---------- */
.single__meta {
  display: flex;
  align-items: center;
  gap: 35px;
  font-size: 16px;
  max-width: 1100px;
  margin: 0 100px;
}
.single__cat {
  display: inline-block;
  background: #b79576;
  color: #fff;
  font-size: 16px;
  padding: 5px 15px;
  line-height: 1.2;
  border-radius: 3px;
}

/* ---------- タイトル ---------- */
.single__title {
  font-size: 38px;
  font-weight: 700;
  line-height: 1.6;
  padding: 16px 100px 30px;
  margin-bottom: 30px;
  border-bottom: solid 1px #c2c2c2;
}

/* ---------- 本文 ---------- */
.single__content {
  font-size: 16px;
  font-family: 400px;
  line-height: 2.5;
  margin: 45px 100px 36px;
  letter-spacing: -0.05em;
}
.single__content  .wp-block-image{
  margin: 35px auto;
}

.page h3,
.single h3{
  position: relative;
  line-height: 1.3;
  font-weight: bold;
  font-size: 24px;
  padding: 5px 0;
  margin: 5px 0;
  border-bottom: solid 2px #40200e;
}
.page h4,
.single h4{
  font-size: 22px;
  margin: 5px 0;
  font-weight: 700;
  width: 100%;
  color:#40200e;
}
.page h5,
.single h5{
  font-size: 20px;
  margin: 5px 0;
  font-weight: bold;
}
.page h6,
.single h6{
  font-size: 16px;
  font-weight: 500;
  color:#40200e;
}
.info__content p { margin-bottom: 1.6em; }



/* ---------- アイキャッチ ---------- */
.info__image {
  margin: 60px 0;
}
.info__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* ---------- 戻るボタン ---------- */
.info__back {
  text-align: center;
  margin-top: 110px;
}
.info__back__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 26px;
  color: #222;
  text-decoration: none;
  font-weight: 700;
  border-bottom: 1px solid #222;
  transition: opacity .3s;
}
.info__back__btn:hover { opacity: .7; }
.info__back__icon { color: #c69c6d; }
.info__back__arrow {
  margin-left: 6px;
  font-size: 18px;
}
.info__back  {
    margin: 35px auto 0;
    display: flex;
    justify-content: center;
}

.info__back a{
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #4a4a4a;
    text-decoration: none;
    font-size: 18px;
    font-weight: 700;
    padding: 15px 10px;
    gap: 30px;
    min-width: 310px;
}
.btn-ttl{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
.btn-arrow{
  width: 8px;
}
/* ---------- SP ---------- */
@media (max-width: 768px) {
  .info__article{
      width: 100%;
      max-width: 1100px;
      margin: 30px auto 40px;
  }
  .single__meta{
    margin: 0 0;
  }
  .single__title{
    margin: 0 0;
    padding: 15px 0 30px;
  }
  .single__title{
    font-size: 24px;
  }
  .single__content{
    margin: 30px 0 30px;
  }
  .single-info .inner { padding: 60px 20px; }
  .info__title { font-size: 22px; margin-bottom: 28px; }
  .info__image { margin: 40px 0; }
  .info__back a{
    font-size: 16px;
    min-width: 250px;
  }
}



.subpage-ttlbox-page{
    padding: 0;
    position: relative;
    height: 470px;
    margin-top: -40px;
}

.subpage-ttlbox-page-bg{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.subpage-ttlbox-page-bg img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.subpage-ttlbox-page .subpage-ttl__sub{
  position: absolute;
  text-shadow: #333 1px 0 10px;
  color:#fff;
  top: 155px;
  left: calc(50% - 620px);
  font-size: 30px;
  font-weight: 700;

}
.subpage-ttlbox-page .subpage-ttl__main{
  position: absolute;
  top: calc(50% + 30px);
  transform: translate(0 , -50%);
  left: calc(50% - 640px);
}

/* section head */
.section-head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 28px;
  position: relative;
}
.section-head__jp {
  font-weight: 700;
  font-size: 40px;
  color:#40200e;
  writing-mode: vertical-rl;
  text-orientation: mixed; 
  position: absolute;
  left: -30px;
  top: 36px;
  height: 300px;
}
.section-head__en {
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
}
@media (max-width: 1300px) {
    .subpage-ttlbox-page .subpage-ttl__main{
      left: 30px;
    }
}
@media (max-width: 768px) {
    .section-head__en {
      height: 36px;
    }
    .section-head__en img{
      height: fit-content;
      max-height: 100%;
    }
    .section-head__jp{
        left: -10px;
        top: 15px;
        font-size: 18px;
        height: 100px;
    }
    .subpage-ttlbox{
      padding: 40px 0 30px;
      text-align: center;
    }
    .subpage-ttlbox-page{
        height: 250px;
        margin-top: -40px;
    }
    .subpage-ttlbox-page .subpage-ttl__main{
      position: absolute;
      top: 50%;
      left: 30px;
      transform: translate(0, -50%) scale(0.5);
    }
    
    .subpage-ttlbox-page .subpage-ttl__main{
      position: absolute;
      top: 50%;
      left: 30px;
      transform: translate(0, -50%);
      transform-origin: top left;
    }
    .subpage-ttlbox-page .subpage-ttl__main img{      
      transform-origin: center left;
      transform: scale(0.6);
    }
    .subpage-ttl__sub{
      font-size: 24px;
    }
    .info__title{
      font-size: 18px;
    }
    .subpage-ttl__main‐archive{
      height: 32px;
    }
    .subpage-ttl__main‐archive img{
      height: 32px;
    }
}




.company-page {
  background: #fff;
  color: #232323;
  position: relative;
}

/* 基本レイアウト */
.company__layout {
  margin: 130px 100px 50px;
  align-items: flex-start;
  position: relative;
}

.company__info{
  margin: 120px auto 80px;
  width: 760px;
  max-width: 100%;
}
.company__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 60px;
  font-weight: 400;
}
.company__table th,
.company__table td {
  border-bottom: 1px solid #e6e6e6;
  padding: 16px 8px;
  vertical-align: top;
}
.company__table th {
  width: 265px;
  margin: 0 60px;
  font-weight: 700;
  padding: 34px 0 34px 90px;
  line-height: 1.8;
}
.company__table td {
  margin: 0 60px;
  font-weight: 700;
  padding: 34px 90px 34px 0;
  line-height: 1.8;
}

/* MAP */
.company__map {
  width: 100%;
  height: 360px;
  margin-bottom: 40px;
  border: 1px solid #eee;
}
.company__map iframe{
  width: 100%;
  height: 360px;
}

/* HISTORY */
.company__history {
  margin: 200px 0 50px;
}
.company__history__box {
  background: #faf8f4;
  padding: 40px 30px;
  line-height: 1.9;
  font-size: 15px;
  color: #333;
}
.company__main{
  margin: 170px auto 110px;
}

/* SP用 */
@media (max-width: 768px) {
  .company__layout {
    margin: 50px 0 50px;
    align-items: flex-start;
    position: relative;
  }

  .company__info { 
    margin: 80px auto 80px;
  }
  .company__table tr{
    display: block;
    width: 100%;
  }
  .company__table th {
    width: 100%;
    display: block;
    margin: 0;
    padding: 30px 10px 5px;
    border-bottom: none;
    font-size: 14px;
  }
  .company__table td {
    width: 100%;
    margin: 0;
    display: block;
    padding: 5px 10px 30px;
    font-size: 14px;
  }
  .company__map { height: 280px; }
  .company__main{
    margin: 70px auto 110px;
  }
}



.contact-page {
  position: relative;
}

/* ---- TEL BOX ---- */
.contact__tel {
  background: #f4f2ef;
  padding: 40px 0 30px;
  text-align: center;
  max-width: 650px;
  width: calc(100% - 60px);
  margin: 120px auto 80px;
  border-radius: 8px;
}
.contact__tel__text {
  margin-bottom: 20px;
  line-height: 2;
}
.contact__tel__num {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 38px;
  font-weight: 700;
  color:#40200e;
  letter-spacing: 0.14rem;
  line-height: 1.4;
}

/* ---- FORM ---- */
.contact__form {
  padding: 40px 0 120px;
  background: #fff;
}
.contact__form__ttl {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  padding: 25px 0;
  letter-spacing: .14em;
  background: #e8e4d9;
  width: 100%;
  max-width: 850px;
  margin: 0 auto;
  color:#40200e;
}
.form-table {
  background: #fcfbf9;
  border: 1px solid #e8e4d9;
  padding: 30px 75px 52px;
  width: 100%;
  max-width: 850px;
  margin: 0 auto;
}

/* ---- TABLE STRUCTURE ---- */
.form-row {
  display: flex;
  gap: 10px;
  border-bottom: solid 1px #c2c2c2;
}
.form-row:last-child{
  border: none;
}
.form-row  .form-input{
  width: calc(60% - 10px);
  padding:30px 30px 10px 10px;
}
.form-input input[name="your-email"]{
  margin-bottom: 5px;
}
.form-item{
  width: 40%;
  padding: 40px 0 40px 30px;
  font-size: 18px;
  color: #40200e;
  font-weight: 700;
}
.form-row label {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.item-name{  
  display: block;
}
.req {
  display: block;
  background: #80cecd;
  color: #fff;
  font-size: 12px;
  padding: 2px 15px;
  font-weight: 700;
  border-radius: 3px;
}
.placeholder{  
  font-size: 14px;
}
/* ---- INPUTS ---- */
input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
  width: 100%;
  border: 1px solid #ccc;
  background: #fff;
  padding: 10px 12px;
  font-size: 15px;
  font-family: inherit;
  box-sizing: border-box;
}
textarea { 
  height: 200px; 
  resize: vertical; 
}

/* ---- CHECKBOX ---- */
.wpcf7-checkbox input {
  margin-right: 4px;
}
.wpcf7-checkbox label {
  margin-right: 12px;
}
.wpcf7-checkbox{
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
}
.wpcf7-checkbox .wpcf7-list-item{
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 10px 0;
}

/* ---- SUBMIT ---- */
.form-submit {
  text-align: center;
  margin-top: 80px;
  position: relative;
}
.form-submit input[type="submit"] {
  background: #185c30;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  padding: 20px 70px 20px 50px;
  width: 380px;
  border: none;
  cursor: pointer;
  letter-spacing: .02em;
  transition: opacity .3s;
  border-radius: 3px;
}
.form-submit:after{
  content:"";
  position: absolute;  
  background: url(../image/common/arrow03.webp);
  background-size: contain;
  background-repeat: no-repeat;
  transform: translate(0, -50%);
  width: 9px;
  height: 19px;
  top:50%;
  right: calc(50% - 125px);
}
.form-submit input[type="submit"]:hover {
  opacity: .8;
}

/* ---- SP ---- */
@media (max-width: 768px) {
  .contact__tel{
    margin: 60px auto 40px;
  }
  .contact__tel {
    padding: 40px 0;
  }
  .contact__tel__num {
    font-size: 22px;
  }
  .form-table{
    padding: 20px 10px 20px;
  }
  .form-row{
    display: block;
  }
  .form-item{
    width: 100%;
    padding: 20px 10px 10px;
  }
  .form-row .form-input{
    width: 100%;
    padding: 0 10px 20px;
  }
  .form-submit{
    margin-top: 30px;
  }
  .form-submit input[type="submit"]{
    font-size: 16px;
    padding: 15px 40px 15px 15px;
    width: 240px;
  }
  .form-submit:after{
    width: 7px;
    height: 13px;
    right: calc(50% - 110px);
  }
  .wpcf7-spinner{
    display: none;
  }
}
/* ---- MESSAGE ---- */
.thanks__message {
  padding: 60px 0 120px;
}
.thanks__ttl {
  font-size: 24px;
  font-weight: 700;
  margin: 100px 0 -60px;
  text-align: center;
}
.thanks__links .btn-arrow,
.thanks__links .btn-ttl{
  flex-shrink: 0;
}
/* ---- SUBTITLE ---- */
.thanks__subttl {
  font-size: 18px;
  font-weight: 700;
  margin: 25px 0 50px;
  text-align: center;
}

/* ---- LINKS ---- */
.thanks__links {
  display: flex;
  justify-content: center;
  gap: 2px;
  flex-wrap: wrap;
}
.thanks__links a{
  position: relative;
}
.thanks__link-txt{
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #fff;
  color:#fff;
  text-decoration: none;
  font-size: 20px;
  font-weight: 700;
  padding: 15px 10px;
  gap: 30px;
  position: absolute;
  top:50%;
  right: 50%;
  transform: translate(50%, -50%);
}
.thanks__link {
  width: calc(50% - 1px);
}
.thanks__link-img img {
  width: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
/* ---- SP ---- */
@media (max-width: 768px) {
  .thanks__ttl{
    margin: 50px 0 -40px;
  }
  .thanks__message { padding: 20px 0 80px; }
  .thanks__telbox { width: 90%; padding: 24px 20px; }
  .thanks__tel { font-size: 20px; }
  .thanks__links { flex-direction: column; align-items: center; }
  .thanks__link { width: 90%; }
}



.kinoko-illustr01{
 right: 0;
 top:350px;
 position: absolute;
}
.kinoko-illustr02{
 left: 0;
 bottom:10%;
 position: absolute;
}
.kinoko-illustr03{
 right: 0;
 top:750px;
 position: absolute;
}
.kinoko-illustr04{
 left: 0;
 top:750px;
 position: absolute;
}
.kinoko-illustr05{
 right: 0;
 bottom:10%;
 position: absolute;
}
@media (max-width: 1300px) {  
  .kinoko-illustr01 img,
  .kinoko-illustr02 img,
  .kinoko-illustr03 img,
  .kinoko-illustr04 img,
  .kinoko-illustr05 img{
    width: 75px;
  }
}

@media (max-width: 768px) {
  .kinoko-illustr01 {
    top:300px;
  }
  .kinoko-illustr02 {
    bottom:0;
  }
  .kinoko-illustr03 {
    top:400px;
  }
  .kinoko-illustr04 {
    top:400px;
  }
  .kinoko-illustr05 {
    bottom:0;
  }
}
