@charset "UTF-8";

html, body, div, span, h1, h2, h3, p, a, img, footer, header, section {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: bottom;
}

/* HTML5 display-role reset for older browsers */
footer, header, section {
  display: block;
}

body {
  line-height: 1;
}

/* box-sizing */
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

html {
  scroll-behavior: smooth;
}

/* hover img alpha2 */

/* for sp link */



body {
  margin: 0;
  padding: 0;
  width: 100% !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, Roboto, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;

  font-size: 1.8rem;
  font-weight: normal;
  color: #000;
  letter-spacing: 0.02em;
  z-index: 1;

   -webkit-text-size-adjust: 100%; /*スマホ自動調整対策*/
  -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
  -moz-font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "pwid";
  background: #fff;
  animation: show 1.6s ease 0s 1 normal;
}

@keyframes show {
	0% {
		opacity:0;
                                                                filter: blur(10px);
	}
	100% {
		opacity:1;
                                                                filter: blur(0);
	}
}


.article_header {
  width: 100%; /* android view point */
  margin: 0 auto;
   position: relative;
  border-top: 4px solid #000;
  overflow: hidden;
}

.article_header:before {
  content:'';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 43.5%;
  background: #f4f4f4;
}

.header_link {
  position: relative;
  margin: 0 auto;
  height: 0;
  width: 1100px;
  padding-top: calc(182/1100 * 1100px); 
  background: url(bg_header.jpg) top center / cover no-repeat;
  border-bottom: 1px solid #000;
}

.link_item {
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 29%;
  text-align: center;
  z-index: 10;
}

.link_item img {
  width: 100%;
}


.header_box {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  padding-top: 50px;
}

.head_img {
  position: relative;
  margin: 0 auto;
  width: 100%;
  height: 0;
  padding-top: calc(500/1100 * 100%);
  background: url(img_mv.jpg) top center / cover no-repeat;
}


.leadarea {
   width: 100%;
   position: relative;
   margin: 0 auto;
}

.lead {
  width: 94%;
  position: relative;
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 0;
 font-size: 17px;
  line-height: 1.8;
  text-align: justify;
  font-weight: bold;
  color: #000;
  z-index:10;
}




main {
  width: 100%;
  margin: 0 auto;
   position: relative;
   z-index:1;
   background: #f4f4f4;
   border-bottom: 6px solid #000;
}



main img {
  width: 100%;
}

main p {
  font-size: 1.05rem;
  line-height: 1.8;
  text-align: justify;
   padding-bottom: 2%;
}

.pb40 {
   padding-bottom: 40px !important;
}

.sec1 {
  position: relative;
  margin: 0 auto 50px;
  width: 94%;
  max-width: 1100px;
  background: #fff;
  border-top: 4px solid #000;
  border-bottom: 4px solid #000;
}

.sec1:before {
  content:'';
  position: absolute;
  top: 0;
  left: 0;
  width: 600px;
  height: 272px;
  background: url(bg_h2.jpg) top left / cover no-repeat;
}




.sec1_inner {
  box-sizing: border-box;
  width: 94%;
  max-width: 920px;
  height: 100%;
  margin: 0 auto;
  padding: 0 30px 0;
  color: #000;
  text-align: center;
  position: relative;
}

.pb40 {
   padding-bottom: 40px !important;
}

h2 {
   position: relative;
  width: 100%; /* android view point */
  margin: 0 auto 30px;
  padding: 50px 20px 5px 0;

  font-weight: 700;
  font-size: clamp(1.1rem, calc(1vw + 1.1rem), 1.8rem);
  line-height: 1.4;
  text-align: left;
  z-index: 2;
  color: #046a38;
}

h2:before {
  content:'';
  position: absolute;
  top: 0;
  left: -30px;
  width: 1px;
  height: 248px;
  background: #000;
}

h3 {
   margin: 10px auto;
  width: 100%;

  font-weight: 700;
  font-size: clamp(1.1rem, calc(1vw + 1.1rem), 1.35rem);
  line-height: 1.2;
  text-align: center;
  position: relative;
  color: #046a38;
}

.img_box2 {
   width: 100%;
   margin: 30px auto;
   position: relative;
}


footer {
  width: 100%;
  margin: 0 auto 30px;
   padding: 30px 0 40px;
   position: relative;
  border-bottom: 1px solid #000;
}

.logo {
  width: 100%;
   margin: 0 auto;   
  text-align: center;
   padding: 10px 0 20px;
}


.logo img {
  margin: 2% auto 0;
  width: 250px;
  text-align: center;
}

/* 単語ごとに改行 */
.sub_wb {
   display: inline-block;
  vertical-align: baseline;
}


/* pager */

.interviewer {
   color: #666;
   font-weight: bold;
   border-bottom: 1px dotted #26890d;
   margin-bottom: 2%;
}

.interviewer2 {
   color: #666;
   font-weight: bold;
   border-top: 1px dotted #26890d;
   border-bottom: 1px dotted #26890d;
   margin-top: 2%;
   padding-top: 2%;
   margin-bottom: 2%;
}

.name1 {
   color: #26890d;
   font-weight: bold;
}

.name2 {
   color: #816600;
   font-weight: bold;
}

.name {
   width: 100%;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.3;
   text-align: left;
   color: #000;
  vertical-align: baseline;
  padding-bottom: 5px;
}


.name_large {
  font-size: 1.2rem;
  font-weight: bold;
  line-height: 1.8;
  vertical-align: baseline;
}

.prof {
   width: 100%;
   padding: 0;
   color: #000;
   font-size: 0.87rem;
   line-height: 1.4;
  text-align: justify;
}

.caption2 {
   width: 100%;
   max-width: 600px;
  margin: 10px auto 0;
  padding: 0;
  font-size: 0.95rem;
  color: #333;
  line-height: 1.5;
  text-align: justify;
  position: relative;
  z-index: 10;
}

/* navi */

/* navi */


.photo, .photo2 {
  width: 100%;
  margin: 30px auto 90px;
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  box-sizing: border-box;
}

.photo:before {
  content:'';
  position: absolute;
  top: 30px;
  left: 30px;
  width: calc(100% + 90px);
  height: 100%;
  background: #f4f4f4;
  border-image: linear-gradient(0deg,#86bc25 2px,#0000 0) fill 0//0 100vw 0 0;
}

.photo2:before {
  content:'';
  position: absolute;
  top: 30px;
  left: 30px;
  width: calc(100% + 90px);
  height: 100%;
  background: #f4f4f4;
  border-image: linear-gradient(0deg,#816600 2px,#0000 0) fill 0//0 100vw 0 0;
}


.photo_item1 {
  width: 60%;
  z-index:2;
}

.photo_item1 img {
  width: 100%;
}

.photo_item2 {
  width: 35%;
  padding-left: 20px;
  align-self: flex-end;
  z-index:2;
}

.btn-flat-simple1 {
  width: 90%;
  max-width: 600px;
  display: block;
  position: relative;

  font-size: 1.1rem;
  line-height: 1.6;
  font-weight: 900;
  text-align: center;
  margin: 20px auto;
  padding: 20px 50px;
  text-decoration: none;
  color: #000;
  background: #86bc25;
  border-radius: 100vh;
  transition: .3s;
  vertical-align: baseline;
}

.btn-flat-simple1:after {
  content:'';
  position: absolute;
  top: 50%;
  right: 0;
  width: 40px;
  height: 2px;
  background: #FFF;
  transition: .3s;
}

.btn-flat-simple1:hover {
  opacity: 0.8;
}

.btn-flat-simple1:hover:after {
  content:'';
  position: absolute;
  top: 50%;
  right: 0;
  width: 0;
  height: 2px;
  background: #FFF;
}

.txt_size {
  font-size: 1.4rem !important;
  vertical-align: baseline;
}


.share_box {
  margin: 35px auto;
  padding: 0;
  position: relative;
  text-align: center;
  color: #aaa;
  font-size: 14px;
  font-weight: bold;
}

.footer_sns_btn {
  text-align: center;
  margin: 15px auto 30px;
}

.footer_sns_btn img {
  height: 42px;
  border-radius: 100vw;
  padding: 5px;
}

/* ボタン本体（fixedを解除） */
.totop-btn {
  position: relative; /* fixedから変更 */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  margin: 40px auto; /* ページ内中央揃えや余白調整用（必要に応じて変更可） */
  text-decoration: none;
  text-align: center;
}


/* 背景画像（緑の爆発エフェクト） */
.totop-bg {
  position: absolute;
  inset: 0;
  background-image: url("img_totop.jpg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  mix-blend-mode: multiply;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
  z-index: 1;
}

/* ホバー時に背景のみ滑らかに拡大 */
.totop-btn:hover .totop-bg {
  transform: scale(1.12);
}

/* 中央テキスト・矢印エリア */
.totop-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  pointer-events: none;
}

/* 上向き矢印 */

/* TOP テキスト */
.totop-text {
  width: 160px;
  height: 160px;
}

@media screen and (min-width: 1920px) {

header,main,.leadarea,.logo,footer {
  width: 100%; /* android view point */
  max-width: 1600px;
  height: 100%;
  margin: 0 auto;
   position: relative;
  overflow: hidden;
}


}

@media screen and (max-width: 1099px) {


.header_link {
  position: relative;
  margin: 0 auto;
  height: 0;
  width: 100%;
  padding-top: calc(182/1100 * 100%); 
  background: url(bg_header.jpg) top center / cover no-repeat;
  border-bottom: 1px solid #000;
}

.photo:before {
  content:'';
  position: absolute;
  top: 30px;
  left: 30px;
  width: calc(100% + 5%);
  height: 100%;
  background: #f4f4f4;
  border-image: linear-gradient(0deg,#86bc25 2px,#0000 0) fill 0//0 100vw 0 0;
}

.photo2:before {
  content:'';
  position: absolute;
  top: 30px;
  left: 30px;
  width: calc(100% + 5%);
  height: 100%;
  background: #f4f4f4;
  border-image: linear-gradient(0deg,#816600 2px,#0000 0) fill 0//0 100vw 0 0;
}



}

@media screen and (max-width: 999px) {

.link_item {
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 29%;
  text-align: center;
  z-index: 10;
}


.lead {
  width: 94%;
  
  max-width: 92%;
  font-size: 1rem;
  line-height: 1.8;
}



.sec1_inner {
  box-sizing: border-box;
  width: 94%;
  max-width: 94%;
  height: 100%;
  margin: 0 auto;
  padding: 0 3% 3%;
  color: #000;
  text-align: center;
  position: relative;
}



h3 {
  font-size: 1.5rem;
}

.prof {
   width: 100%;
   padding: 0;
   color: #000;
   font-size: 0.87rem;
   line-height: 1.2;
  text-align: justify;
}


.photo_item2 {
  width: 39%;
  padding-left: 12px;
  align-self: flex-end;
  z-index:2;
}

.name {
   width: 100%;
  font-weight: 700;
  font-size: 0.87rem;
  line-height: 1.2;
   text-align: left;
   color: #000;
  vertical-align: baseline;
  padding-bottom: 2px;
}

.photo:before {
  content:'';
  position: absolute;
  top: 15px;
  left: 15px;
  width: calc(100% + 5%);
  height: 100%;
  background: #f4f4f4;
  border-image: linear-gradient(0deg,#86bc25 2px,#0000 0) fill 0//0 100vw 0 0;
}

.photo2:before {
  content:'';
  position: absolute;
  top: 15px;
  left: 15px;
  width: calc(100% + 5%);
  height: 100%;
  background: #f4f4f4;
  border-image: linear-gradient(0deg,#816600 2px,#0000 0) fill 0//0 100vw 0 0;
}

.pb40 {
   padding-bottom: 5% !important;
}




}



@media screen and (max-width: 767px) {

.header_box {
  padding-top:0;
}



.head_img {
  position: relative;
  margin: 0 auto;
  width: 100%;
  height: 0;
  padding-top: calc(750/1150 * 100%);
  background: url(img_sp_mv.jpg) top center / cover no-repeat;
}

.lead {
  font-size: 1.05rem;
  line-height: 1.6;
  padding: 2% 0 3%;

}

h2:before {
  left: -20px;
}



h3 {
  font-size: 1.2rem;
}


.sec1 {
  position: relative;
  overflow: hidden;
  margin: 0 auto 4%;
  padding:  0;
  z-index: 16;
  width: 100%;
}

.sec1_inner {
  width: 100%;
  max-width: 96%;
}

.photo, .photo2 {
  width: 90%;
  margin: 4% auto;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-sizing: border-box;
}

.photo:before {
  content:'';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #f4f4f4;
  border-image: none;
  border-bottom: 2px solid #86bc25;
}

.photo2:before {
  content:'';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #f4f4f4;
  border-image: none;
  border-bottom: 2px solid #816600;
}


.photo_item1 {
  width: 100%;
  z-index:2;
}

.photo_item1 img {
  width: 100%;
}

.photo_item2 {
  width: 100%;
  padding-left: 0;
  padding: 15px;
  align-self: flex-start;
  z-index:2;
}



}

@media screen and (max-width: 639px) {

.article_header {
  width: 100%; /* android view point */
  margin: 0 auto;
   position: relative;
  border-top: 4px solid #000;
  background-image: none;
  background: #000;
  background-size: auto auto;
  overflow: hidden;
}


.head_img {
  position: relative;
  margin: 0 auto;
  width: 100%;
  height: 0;
  padding-top: calc(900/1200 * 100%);
  background: url(img_sp_mv.jpg) top center / cover no-repeat;
}



h3 {
  width: 100%;
  padding: 0;
}

.photo, .photo2 {
  width: 100%;
  margin: 3% auto 4%;
  position: relative;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.interviewer {
   text-indent: 0;
   margin-left: 0;
}

}


@media screen and (max-width: 479px) {

h2:before {
  display: none;
}


.btn-flat-simple1 {
  font-size: 0.9rem;
  text-align: center;
}

.btn-flat-simple1:after {
  content:'';
  position: absolute;
  top: 50%;
  right: 0;
  width: 20px;
  height: 1px;
  background: #FFF;
  transition: .3s;
}

.btn-flat-simple1:hover:after {
  content:'';
  position: absolute;
  top: 50%;
  right: 0;
  width: 0;
  height: 1px;
  background: #FFF;
}


}


@media screen and (max-width: 375px) {

.btn-flat-simple1 {
  padding: 10px;
  font-size: 0.85rem;
}

}

/* メインビジュアルのコンテナ枠 */

    /* --- メインビジュアル（右から左へフェードイン） --- */

    /* PC版: テキスト背景のグラデーション（可読性担保） */

    /* --- テキストコンテンツ（左から右へフェードイン） --- */
    .hero-content {
      position: absolute;
      top: 50%;
      left: 0;
      transform: translate(0, -50%);
      z-index: 3;
      display: flex;
      flex-direction: column;
      justify-content: center;
      width: 380px;
      animation: fadeInFromLeft 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
      opacity: 0;
    }

    /* サブタイトル（緑色のテキスト） */
    .hero-subtitle {

  font-weight: 700;
  text-align: left;
  font-size: 1.75rem;
      color: #0b724b;
      line-height: 1.15;
      letter-spacing: 0.05em;
      padding: 20px 0 10px 30px;
    }

    /* タイトルとサブタイトルの間の区切りライン */
    .hero-divider {
      width: 100%;
      height: 1.5px;
      background-color: #0b724b;
      margin: 10px 0 0 0;
    }

    /* メインタイトル */
    .hero-title {

      font-size: 2.8rem;
      font-weight: 700;
      color: #1a1a1a;
      line-height: 1.15;
      letter-spacing: 0.04em;
      padding: 15px 0 20px 30px;
/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ffffff+0,ffffff+100&1+0,0+100 */
background: linear-gradient(to right,  rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */

    }

    /* --- CSSアニメーション定義 --- */

    @keyframes fadeInFromLeft {
      from {
        opacity: 0;
        transform: translate(-40px, -50%);
      }
      to {
        opacity: 1;
        transform: translate(0, -50%);
      }
    }


    @media (max-width: 999px){
    /* サブタイトル（緑色のテキスト） */
    .hero-subtitle {

  font-weight: 700;
  text-align: left;
  font-size: clamp(0.9rem, calc(0.9vw + 1rem), 1.3rem);
      color: #0b724b;
      line-height: 1.15;
      letter-spacing: 0.05em;
      padding: 0 0 10px 30px;
    }

      .hero-content {
        width: 38%;
      }



    /* タイトルとサブタイトルの間の区切りライン */
    .hero-divider {
      width: 100%;
      height: 1.5px;
      background-color: #0b724b;
      margin: 10px 0 0 0;
    }

    /* メインタイトル */
    .hero-title {

      font-size: clamp(1.6rem, calc(1.4vw + 1.2rem), 4rem);
      font-weight: 700;
      color: #1a1a1a;
      line-height: 1.15;
      letter-spacing: 0.04em;
      padding: 15px 0 20px 30px;
    }

}

    /* --- レスポンシブ対応（スマホ・タブレット向け縦並び） --- */
    @media (max-width: 767px) {


      /* 2. その下に被らずにテキスト群を配置 */
    .hero-content {
      position: relative;
      top: 0;
      left: 0;
      transform: translate(0, 0);
      z-index: 3;
      display: flex;
      flex-direction: column;
      justify-content: center;
      width: 100%;
      animation: fadeInFromLeft 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
      opacity: 0;
      margin: 0 auto 2%;
      border-bottom: 2px solid #046a38;
    }
    @keyframes fadeInFromLeft {
      from {
        opacity: 0;
        transform: translate(-20px, 0);
      }
      to {
        opacity: 1;
        transform: translate(0, 0);
      }
    }




      .hero-subtitle {
        padding: 4% 2% 2%;
        font-size: 1.15rem;
      }

      .hero-divider {
        margin: 16px 0 10px 0;
      }

      .hero-title {
        font-size: 1.75rem;
        background: none;
        padding: 2% 2% 4%;
      }
    }

/* ============================================================
   カコミ枠（背景画像・断ち切り・上下グレー罫線）
============================================================ */
.summary-box {
  position: relative;
  max-width: 600px;
  width: 100%;
  margin: 40px auto;
  padding: 28px 24px;
  background-color: #ffffff;
  border-top: 1px solid #707070;
  border-bottom: 1px solid #707070;
  box-sizing: border-box;
  overflow: hidden; 
}

/* 背景画像レイヤー（文字の背後に敷き、画像だけを透過） */
.summary-box::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;

  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  background-image: url('bg_summary-box.jpg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  opacity: 0.25;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 1;
}

/* テキスト本体 */
.summary-text {
  position: relative;
  z-index: 2;
  font-size: 1rem;       /* PC・スマホ共通で 1rem */
  font-weight: 700;
  line-height: 1.85;
  color: #000000;        /* 墨文字 #000 */
  letter-spacing: 0.02em;
  margin: 0;
  text-align: justify;
}

/* 最終行の半レディング相殺 */
.summary-box p:last-child {
  margin-bottom: calc(-0.75 * (1lh - 1em));
}

/* スマホ対応（余白のみ調整し、文字サイズは 1rem を維持） */
@media (max-width: 640px) {
  .summary-box {
    padding: 22px 18px;
    margin: 30px auto;
  }
  .summary-box::before {
    width: 100%;
    height: 100%;
  }
}