@charset "UTF-8";

html, body, div, span, h1, h2, h3, h4, h5, p, a, img, ul, li, header, section {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: bottom;
}

/* HTML5 display-role reset for older browsers */
header, section {
  display: block;
}

body {
  line-height: 1;
}

ul {
  list-style: none;
}

/* 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;
}



/* hover img alpha2 */

/* for sp link */



body {
  margin: 0;
  padding: 0;
  width: 100% !important;
 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体","ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.02em;
  z-index: 1;

   -webkit-text-size-adjust: 100%; /*スマホ自動調整対策*/
  -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "pwid";
  background: #fff;
}


.social_box {
   text-align: center;
  padding-top: 5px;
  padding-bottom: 5px;
}

.social_buttons {
   display: inline-block;
   text-align: left;
}

.wrap {
  width: 100%;
  border-top: 4px solid #000;
  margin: 0 auto;
  position: relative;
}




.head_img_01 {
   margin: 50px auto 0;
  width: 100%; /* android view point */
  height: 0;
  padding-top: calc(560/1100 * 100%); /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url(img_mv.jpg) top center / cover no-repeat;
  position: relative;
}

h1 {
   text-indent: 100%;
   white-space: nowrap;
   overflow: hidden;
}


.leadarea {
   width: 100%;
   position: relative;
   margin: 0 auto;
}


.lead {
  width: 94%;
  max-width: 820px;
  margin: 0 auto;
  padding: 40px 0;
 font-size: 17px;
  line-height: 1.8;
  text-align: justify;
  font-weight: bold;
  color: #000;
  border-top: 2px solid #8ebd20;
  border-bottom: 2px solid #8ebd20;
}


main {
  width: 100%;
  margin: 0 auto;
   position: relative;
   z-index:1;
}




main img {
  width: 100%;
}

main p {
  font-size: 1.05rem;
  line-height: 2;
  text-align: justify;
  text-indent: 1.05rem;
  padding-bottom: 2%;
}

.pb40 {
   padding-bottom: 40px !important;
}

.sec1 {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  width: 100%;
}

.bg_sec1 {
  background: #f5f5f5;
}


.sec2_inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 860px;
  height: 100%;
  margin: 0 auto;
  padding: 20px;
  color: #000;
  position: relative;
}

.pb40 {
   padding-bottom: 40px !important;
}


h2 {
  margin: 30px  auto 35px;
  padding: 0 15px 15px 24px;
  width: 100%;
  font-size: clamp(1.1rem, calc(1vw + 1rem), 1.8rem);
  line-height: 1.25;
   font-weight: 700;
  position: relative;
   text-align: left;
   letter-spacing: 0.05em;
   color: #04552e;
   border-bottom: 1px solid #8ebd20;
}

h2:before {
   content:'';
   position: absolute;
   top: 0;
   left: 0;
   width: 20px;
   height: calc(100% - 5px);
   background: url(bg_h2.svg) top left / cover no-repeat;
}



h3 {
   margin: 0 auto 10px ;
  padding: 8px 12px 10px;
  width: 100%;
  font-size: clamp(1rem, calc(1vw + 1rem), 1.5rem);
   font-weight: 700;
  line-height: 1.3;
  text-align: left;
  color: #fff;
  background: #8ebd20;
  position: relative;
}

h3:before {
  content:'';
  position: absolute;
  width: 10px;
  height: 10px;
  bottom: 5px;
  right: 5px;
  background: url(bg_h3.svg) bottom right / cover no-repeat;
  
}

h4 {
  margin: 0 auto 12px;
  padding: 5px 20px 10px 12px;
  width: 100%;
  font-size: 1.1rem;
  font-weight: bold;
  line-height: 1.3;
  text-align: left;
  position: relative;
  display: block;
  color: #000;
   border-bottom: 1px solid #8ebd20;
}


h5 {
  margin: 0 auto;
  padding: 5px 20px 0 12px;
  width: 100%;
  font-size: 1.1rem;
  font-weight: bold;
  line-height: 1.3;
  text-align: left;
  position: relative;
  display: block;
  color: #008785;
}



.img_box1 {
   width: 100%;
   margin: 30px auto 40px;
}

.img_box1 img {
   width: 100%;
}

.img_box2 {
   width: 100%;
   margin: 0 auto;
   position: relative;
   display: flex;
   z-index:2;
   justify-content: space-between;
  gap: 15px;
}

.img_box2_inner {
  width: 49%;
}

.img_box2 img {
   width: 100%;
}

.caption {
   width: 100%;
  margin: 0 auto;
  padding: 20px 15px;
  font-size: 0.9rem;
  color: #000;
  line-height: 1.5;
  text-align: justify; 
}

.notice {
   width: 96%;
  max-width: 820px;
  margin: 30px auto;
  padding: 4%;
  font-size: 0.9rem;
  color: #000;
  line-height: 1.6;
  text-align: justify; 
  background: #fff;
  border-top: 1px solid #888;
  border-bottom: 1px solid #888;
}

.annotation {
   width: 100%;
  margin: 0 auto;
  padding: 10px 15px 0;
  font-size: 0.78rem;
  color: #444;
  line-height: 1.5;
  text-align: justify; 
  letter-spacing: -0.01em;
}

.add_border {
   border-bottom: 2px solid #000;

}

.logo {
  width: 100%;
   margin: 0 auto 40px;   
  text-align: center;
   padding: 30px 0 35px;
  border-top: 1px solid #000;
}


.logo img {
  margin: 2% auto;
  width: 100px;
  text-align: center;
}

/* 単語ごとに改行 */
.sub_wb {
   display: inline-block;
  vertical-align: baseline;
}



.img_add2 {
   float: left;
   width: 320px;
   margin: 5px 30px 30px 0;
   position: relative;
}

.img_add2 img {
  width: 100%;
  margin-bottom: 10px;
}

.img_br {
  border-radius: 7px;
}

.name {
   margin: 0 auto;
   width: 100%;
  font-weight: bold;
  font-size: 0.95rem;
  line-height: 1.3;
   text-align: left;
   color: #000;
  vertical-align: baseline;
  letter-spacing: -0.02em;
}


.name_large {
  font-size: 1.4rem;
  line-height: 1.8;
  vertical-align: baseline;
}


.arrow-button{
    background: linear-gradient(to right,  rgba(255,0,0,1) 0%,rgba(115,0,0,1) 20%,rgba(115,0,0,1) 80%,rgba(255,0,0,1) 100%);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    display: block;
    margin: 50px auto 20px;
    padding: 0.7em 50px;
    position: relative;
    text-align: center;
    text-decoration: none;
    width: 96%;
    max-width: 760px;
    overflow: hidden;
    transition: 0.3s;
    border-radius: 100vh;
}

.arrow-button:hover {
    opacity:0.8;
}

.arrow-button:after{
    content: '';
    border: 0;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    display: inline-block;
    width: 8px;
    height: 8px;
    position: absolute;
    top: 50%;
    right: 25px;
    transform: translateY(-50%) rotate(45deg); 
    transition: 0.3s;
}

.arrow-button:hover:after{
    right: 15px;
}


.footer_name {
  width: 94%;
  margin: 0% auto !important;
  font-size: 0.9rem;
  line-height: 1.5;
  text-align: center;

  font-weight: normal;
  padding-bottom: 1%;
}

.b_txt {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: bold;
}

/* ============================================================
   ヘッダー全体レイアウト
============================================================ */
.interview-header {
  width: 100%;
  overflow-x: hidden;
  background-color: #ffffff;
}

/* 共通インナー幅（左揃えの基準線） */
.header-inner {
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
  position: relative;
}

/* ------------------------------------------------------------
   1. MVエリア（img_mv.jpg）
------------------------------------------------------------ */
.header-mv-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  /* 左から右へのフェードイン */
  animation: fadeSlideIn 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.header-mv-viewport {
  width: 100%;
  height: auto;
  overflow: hidden;
  background: #02552e;
  padding-bottom: 73px;
}

.header-mv-img {
  display: block;
  width: 106%; /* 移動余白を確保 */
  max-width: none;
  height: auto;
  /* 10秒かけてゆっくり画像が動く（Ken Burns効果） */
  animation: mvSlowPan 10s ease-out forwards;
}

/* ------------------------------------------------------------
   2. 発電所名
------------------------------------------------------------ */
.header-name-badge {
  position: absolute;
  top: 50px; /* MV写真の左上に被せる位置（環境に合わせて微調整可） */
  left: calc(50% - 480px);
  z-index: 5;
  opacity: 0;
  border-image-source: linear-gradient(#fff,#fff);
  border-image-slice: 0 fill;
  border-image-outset: 0 0 0 100vw;
  /* スライドイン */
  animation: fadeSlideIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.25s forwards;
}

.img-name {
  height: 45px;
  width: auto;
  display: block;
}

/* ------------------------------------------------------------
   3. サブタイトル帯（img_subtitle.png）
------------------------------------------------------------ */
.header-subtitle-bar {
  width: 100%;
  max-width: 960px;
  position: absolute;
  z-index: 10;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.header-subtitle-wrap {
  opacity: 0;
  /* 続けてスライドイン */
  animation: fadeSlideIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.7s forwards;
}

.img-subtitle {
  display: block;
  max-width: 100%;
  height: auto;
  border-image-source: url(bg_sub.svg);
  border-image-slice: 0 fill;
  border-image-outset: 0 0 0 100vw;
}

/* ------------------------------------------------------------
   4. メインタイトル（img_title.png）
------------------------------------------------------------ */
.header-title-area {
  margin: 0 auto;
  background-color: #ffffff;
}

.header-title-wrap {
  opacity: 0;
  /* 最後にスライドイン */
  animation: fadeSlideIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) 1.15s forwards;
}

.img-title {
  display: block;
  max-width: 100%;
  height: auto;
}

/* ------------------------------------------------------------
   CSS アニメーションキーフレーム
------------------------------------------------------------ */
/* 左から右へスライドしながらフェードイン */
@keyframes fadeSlideIn {
  0% {
    opacity: 0;
    transform: translateX(-40px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* MV画像の10秒間スロースライド */
@keyframes mvSlowPan {
  0% {
    transform: translateX(-5%);
  }
  100% {
    transform: translateX(0%);
  }
}

/* ------------------------------------------------------------
   1000px以下表示用
------------------------------------------------------------ */
@media (max-width: 999px) {
  .header-inner {
    padding: 0;
  }
  .header-name-badge {
  top: 0; /* MV写真の左上に被せる位置（環境に合わせて微調整可） */
  left: 0;
  }
  .img-name {
    height: 30px;
  }
  .header-subtitle-wrap {
    margin-top: -16px;
  }
  .header-title-area {
    padding: 20px 0 28px 0;
  }
}

/* ------------------------------------------------------------
   スマホ用header
------------------------------------------------------------ */
.sp_header {
  display: none;
}

@media (max-width: 639px) {

.interview-header {
  display: none;
}

.sp_header {
  display: block;
  margin: 0 auto 40px;
}

  .img-name {
    height: 25px;
  }

.sp_main_title {
  margin: 0 auto;
  width: 100%; /* android view point */
  height: 0;
  padding-top: calc(390/1100 * 100%); /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url(img_sp_title.svg) top center / cover no-repeat;
  position: relative;
}


h1 {
   text-indent: 100%;
   white-space: nowrap;
   overflow: hidden;
}

}

.pc_br {
  display: block;
}



@media screen and (max-width: 1259px) {


main p {
  font-size: 1.05rem;
  line-height: 1.75;
  text-align: justify;
   padding-bottom: 1.6%;
}

}

@media screen and (max-width: 999px) {


.head_img_01 {
   margin: 0 auto;
  width: 100%; /* android view point */
  height: 0;
  padding-top: calc(560/1100 * 100%); /* calc(画像高さ ÷ 画像横幅 × 100%) */
  background: url(img_mv.jpg) top center / cover no-repeat;
  position: relative;
}

.head_img_01:before {
  display: none;
}




.lead {
  width: 94%;
  
  max-width: 94%;
  font-size: 1.1rem;
  line-height: 1.8;
}


.sec1 {
  width: 100%;
}

.sec2_inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 2%;
  color: #000;

  position: relative;
}


.img_box1 img {
   box-shadow: none;
}


.img_add2{
   float: left;
   width: 320px;
   margin: 10px 30px 30px 0;
   position: relative;
}

h2 {
  max-width: 100%;
}

h4 {
  text-align: left !important;
}

.name {
  font-size: 0.75rem;
 }

}





@media screen and (max-width: 767px) {

.lead {
  font-size: 1.05rem;
  line-height: 1.6;
  padding: 2% 0 3%;

}



h4 {
  font-size: 1.2rem;
  text-align: left;
}

h5 {
  font-size: 1.1rem;
}


.sec1 {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  padding:  3% 0;
  z-index: 16;
  width: 100%;
  background-image: none;
}

.sec2_inner {
  width: 100%;
  max-width: 94%;
  padding: 0;
}


}

@media screen and (max-width: 639px) {

.img_add2{
   float: none;
   width: 80%;
   margin: 20px auto 30px;
   position: relative;
}

.pc_br {
  display: none;
}


.img_box2 {
   width: 100%;
   margin: 0 auto;
   position: relative;
   display: flex;
   z-index:2;
   flex-direction: column;
  gap: 15px;
}

.img_box2_inner {
  width: 100%;
}


}


@media screen and (max-width: 479px) {


h1 {
  font-size: clamp(1.6rem, calc(1.4vw + 1.6rem), 3.2rem);
}

.img_add2{
   float: none;
   width: 90%;
   margin: 20px auto 30px;
   position: relative;
}



}

@media screen and (min-width: 1920px) {

header,main,.leadarea,.add_border,.logo {
  width: 100%; /* android view point */
  max-width: 1600px;
  height: 100%;
  margin: 0 auto;
   position: relative;
}


}


