
@import url('https://fonts.googleapis.com/css?family=Ubuntu+Mono');
/* ===== リセット ===== */
*{
  margin:0; /* デフォルト余白リセット */
  padding:0; /* デフォルトパディングリセット */
  box-sizing:border-box; /* 幅計算にパディング/ボーダーを含める */
  font-family:"游ゴシック体", "Yu Gothic", YuGothic, sans-serif;/*"Helvetica Neue",Arial,sans-serif;*/ /* フォント指定 */
	
}
a {
  margin:0;
  padding:0;
  font-size:100%;
  vertical-align:baseline;
  background:transparent;
}
body{
  background:#fff; /* 背景白 */
  color:#111; /* 文字色 */
  overflow-x:hidden; /* 横スクロール禁止 */
}

/* =========================
   全画面固定背景
========================= */
body{
  background-color:#fff;
}

/* ===== PC背景 ===== */
@media(min-width:769px){
  body{
    background-attachment: fixed;
  }
}

/* ===== ヒーロースペース ===== */
.hero-space{ height:30vh; } /* 背景画像だけ見せるスペース */

/* ===== ハンバーガー ===== */
.hamburger{
  position:fixed; top:25px; right:25px;
  width:30px; height:24px;
  cursor:pointer; z-index:100;
}
.hamburger span{
  position:absolute; width:100%; height:2px;
  background:#575757; left:0;
  transition:0.4s ease; /* アニメーション */
}
.hamburger span:nth-child(1){ top:0; }
.hamburger span:nth-child(2){ top:10px; }
.hamburger span:nth-child(3){ top:20px; }
/* ハンバーガーを×に変形 */
.hamburger.active span:nth-child(1){ transform:rotate(45deg); top:10px; }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform:rotate(-45deg); top:10px; }


/* ===== メニュー ===== */
.menu{
  position:fixed; top:0; right:-260px; /* 最初は右外 */
  width:260px; height:100%;
  /*background:#e5e7eb;*/ /* グレー背景 */
  background-image: linear-gradient(to right top, #008793,#1198a7, #009c84,  #f1985e);
  padding:100px 30px;
  transition:0.4s;
  z-index:18;
}
/*.menu a:hover{
  border-bottom: 1px solid #fff;
}
*/

.menu a{
  display:block;
  margin-bottom:25px;
  padding-bottom:10px; /* ←余白追加 */

  text-decoration:none;
  color:#FFFFFF;
  font-size: 1.5em;
  font-weight: 600;
  transform: skewX(-7deg);
  letter-spacing: 0.05em;
border-bottom: 1px solid rgba(255,255,255,0.2); /* 線 */
	transition:0.3s;
	position:relative;
}


.menu a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:1px;
  border-bottom:1px solid #fff;
  transition:0.4s;
}

.menu a:hover::after{
  width:100%;
}


.menu.active{ right:0; } /* メニュー表示 */
.blur-overlay{
  position:fixed; inset:0;
  backdrop-filter:blur(8px); /* 背景ぼかし */
  background:rgba(0,0,0,0.3);
  opacity:0;
  transition:0.4s;
  pointer-events:none;
  z-index:17;
}
.blur-overlay.active{ opacity:1; pointer-events:auto; }


.logo_lead{padding:0 150px;}
.logo_lead img{width: 100%;
height: 100%;
filter: drop-shadow(0 8px 20px rgba(0,0,0,0.25));}






/* =========================
   フッター
========================= */

.site-footer{
  background:linear-gradient(
  to bottom,
 /* rgba(0,134,114,0.00),*/
rgba(0,134,114,0.50),
	  rgba(0,156,129,1)
  /*rgba(0,156,132,0.95)*/
);
  color:#fff;
  padding:80px 0 40px;
  margin-top:120px;
  position:relative;
  }

.footer-inner{
  width:90%;
  max-width:1200px;
  margin:0 auto;
  text-align:left;
}

.footer-logo img{
  height:40px;
  margin-bottom:30px;
  filter:brightness(0) invert(1); /* ロゴを白化 */
}

.footer-nav{
  margin-bottom:40px;
}

.footer-nav a{
  color:#fff;
  text-decoration:none;
  margin:0 15px;
  font-size:14px;
  letter-spacing:0.05em;
  transition:0.3s;
}

.footer-nav a:hover{
  opacity:0.7;
}

/* 外部リンクのアイコン */
.icon-window-img{
  width:17px;
  margin-left:5px;
  vertical-align:middle;
}


/* =========================
   フッター2階層ナビ
========================= */
.footer-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:40px;
  margin-bottom:60px;
}

.footer-column h3{
  opacity:0.7;
  font-size:28px;
  margin-bottom:20px;
  font-weight:600;
  letter-spacing:0.05em;
transform: skewX(-10deg);/* 文字ななめ*/
}

.footer-column ul{
  list-style:none;
  padding:0;
}
.footer-column li{
  margin-bottom:12px;
	line-height: 1.5;
}

.footer-column a{
font-size:14px;
  opacity:0.8;
  color:#fff;
  font-weight: 500;
  text-decoration:none;
  transition:0.3s;
  text-shadow:0 0.4px 12px rgba(0, 0, 0, 0.35);
}

/* ホバー */
.footer-column a:hover{
	color: #fff;
  opacity:1;
}
.footer-column a:hover::after{
  width:100%;
}

/* 城北信用金庫リンク */
p.link_text{text-align: center;}
p.link_text a{
	font-size:16px;
	opacity:0.8;
	transition:0.4s;}
p.link_text a:link{
	text-decoration: none;
	color:#FFFFFF;
}
p.link_text a:hover{
	color: #fff;
	opacity:1;}
p.link_text a:visited{
	color: #fff;
	opacity:1;}
.copyright{text-align: center;
  font-size:10px;
font-weight: 100;
	opacity: 0.6;
margin-top: 20px;
}

.footer-column a,
.link_text a{
  position:relative;
  display:inline-block;/* 幅をテキストに合わせる */
}

/* 線 */
.footer-column a::after,
.link_text a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:0;
  height:1px;
  border-bottom:1px solid #fff;
  transition:0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.footer-column a:hover::after,
.link_text a:hover::after{
  width:100%;
}

/* =================================
   スマホレイアウト
================================= */

@media(max-width:768px){
/* ===== フッター ===== */
.site-footer{
  margin-top:0px;
	
background:linear-gradient(
  to bottom,
 /* rgba(0,134,114,0.00),*/
#00b89c,
	  rgba(0,156,129,1)
  /*rgba(0,156,132,0.95)*/
);
}
.footer-grid{
  grid-template-columns:1fr 1fr;
  gap:40px;
}

.footer-column h3{
  font-size:26px;
}

.footer-column a{
  font-size:13px;
}
}



/* =================================
   スマホレイアウトまとめ
================================= */

@media(max-width:768px){

/* ===== split layout ===== */

.split-wrapper{
  display:block;
}

.left-fixed{
  position:relative;
  width:100%;
  height:5vh;
}

.right-content{
  width:100%;
  margin-left:0;

  position:relative;
  overflow:hidden;

  background:linear-gradient(
    120deg,
    
    #00b89c/*f1985e*/,
    #008793,
    #009c84,
    #00b89c
  );

  background-size:300% 300%;
  animation:gradientFlow 12s ease infinite;
}



/* ===== スマホトップ画像 ===== */

body{
  background:none;
}

.hero-space{
  width:100%;
  height:auto;
  aspect-ratio:750 / 1042;
  background:url('../img/top_all_sp.jpg') center / cover no-repeat;
}
	
/* ===== リード文 ===== */
	.hero span{font-size: 1.0rem}
p.accent span{font-size:1.8rem; }
	.lead-text{padding: 10px 20px;
	margin: 10px;}	
	
/* ===== カードレイアウト ===== */

.card{
  flex-direction:column !important;
  text-align:center;
  gap:20px;
  padding:25px 20px 35px;
}

.card-image{
  width:100%;
  aspect-ratio:1/1;
  height:auto;
  flex:none;
  margin-bottom:10px;
}

.card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}


/* 2枚目4枚目の順番 */

.card-02 .card-image{
  order:1;
}

.card-02 .card-body{
  order:2;
}


/* ===== カードヘッダー ===== */

.card-header{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}

.card-header .subtitle{
  font-size:13px;
}

.box-card{
  padding:8px 14px;
  border-radius:6px;
}

.box-card h2{
  font-size:18px;
  line-height:1.4;
}

/* =========================
   スマホ：タイトル縦並び
========================= */


  .links-card-header{
    flex-direction:column;
    align-items:center;
    gap:10px;
    text-align:center;
  }


/* ===== ボタン ===== */

.card button{
  margin-top:10px;
  padding:10px 22px;
  font-size:14px;
}


/* ===== ギャラリー ===== */

.gallery-track img{
  width:280px;
  height:380px;
}


/* ===== フッター ===== */
.site-footer{
  margin-top:0px;
}
.footer-grid{
  grid-template-columns:1fr 1fr;
  gap:40px;
}

.footer-column h3{
  font-size:26px;
}

.footer-column a{
  font-size:13px;
}

}



/* =========================
   スマホ　PCの時消す対応
========================= */
@media screen and (min-width:769px){.pc-hide{display: none !important; /* 確実に非表示 */}}

@media screen and (max-width: 768px){.sp-hide{display: none !important; /* 確実に非表示 */}}

/*左右背景*/
.bg-left,
.bg-right {
  position: fixed;
  top: 0;
  width: 600px;
  height: 100%;
  background-repeat: repeat-y;
  background-size: contain;
  pointer-events: none;
  z-index: -1; /* 必ず背景を最背面に */
}

/* それぞれ背景画像を指定 */
.bg-left {
  left: 0;
  background: url('../about/img/back_left.jpg') left top / contain repeat-y;
	
}

.bg-right {
  right: 0;
  background: url('../about/img/back_right.jpg') right top / contain repeat-y;
}


/*スマホで左右画像を薄く表示*/
@media (max-width:768px){
.bg-left,
.bg-right{
  opacity:0.7;      /* 薄くする */
  width:120px;      /* サイズ小さめ */
}
}

.media-box {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 0 0 40px;
  padding-top: 0px;/*ロゴと画像の間隔調整*/
}
.media-box > div {
  display: table;
}
.media-colmn .media-box > div {
  align-self: flex-start;
}
.media-box > div > :last-child {
  margin-bottom: 0;
}
.media-box .media {
  margin: 0 0 10px;
  position: relative;
}
.media-box .media a {
  display: block;
  max-width: 600px;
}
.media-box .media a.no-limit {
  max-width: 100%;
}
.media-box .media a img {
  transition-duration: 0.3s;
  transition-property: opacity;
}
.media-box .media a:hover img {
  opacity: 0.8;
}
.media-box .media img {
  height: auto;
  max-width: 100%;
  width: 100%;
}

/* ===== 左上ロゴ ===== */
/*.site-logo{
 margin-top: 25px;
	margin-left: 25px;
  z-index: 1000;
}

.site-logo img{
  height:160px;   
  width:auto;
  display:block;
}*/

/* ===== レスポンシブ ===== */
/*@media(max-width:768px){
  .site-logo img{
    height:100px;
  }
}*/

/* ===== 左上固定ロゴ ===== */
.site-logo{
  position:fixed;
  top:25px;
  left:25px;
  z-index:1000;
  display:block;
}

.site-logo img{
  height:40px;   /* サイズ調整 50px→40px*/
  width:auto;
  display:block;
  transition:0.3s ease;
}

/* ===== BOOST宣言とは===== */
 
.boost-purpose{
max-width:1050px;
margin:120px auto;
padding:0 20px;
text-align:center;
}
 
/* ライン付きタイトル */
 
.line-title{
font-size:42px;
color:#00896B;
margin-bottom:50px;
position:relative;
display:inline-block;
padding:0 30px;
}
 
.line-title:before,
.line-title:after{
content:"";
position:absolute;
top:50%;
width:80px;
height:2px;
background:#00896B;
}
 
.line-title:before{
left:-80px;
}
 
.line-title:after{
right:-80px;
}
 
/* 大きめメッセージ */
 
.boost-message p{
font-size:26px;
font-weight:600;
margin:20px 0;
letter-spacing:2px;
}

.boost-message p:nth-child(1) {
  margin-bottom: 70px; /* 1つ目と2つ目の間 */
}
 
.boost-message p:nth-child(2) {
  margin-bottom: 70px; /* 2つ目と3つ目の間 */
}
 
.boost-message p:nth-child(3) {
  margin-bottom: 0; /* 最後は不要 */
}

/*スマホ対応*/
@media(max-width:768px){
 
.line-title{
font-size:28px;
}
 
.line-title:before,
.line-title:after{
width:40px;
}
 
.line-title:before{
left:-45px;
}
 
.line-title:after{
right:-45px;
}
 
.boost-message p{
font-size:18px;
}
 
}

/*projectセクション*/
/* ===== セクション全体 ===== */

.activity-section{
  max-width:1200px;
  margin:120px auto;
  text-align:center;
  padding:0;               /* グリッド側で余白管理 */
}

 
/* ===== タイトル ===== */

.line-title{

  font-size:36px;

  color:#00896B;

  margin-bottom:60px;

  position:relative;

  display:inline-block;

}

.line-title:before,

.line-title:after{

  content:"";

  position:absolute;

  top:50%;

  width:80px;

  height:2px;

  background:#00896B;

}

.line-title:before{ left:-90px; }

.line-title:after{ right:-90px; }
 
/* ===== グリッド ===== */

.activity-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);  /* PC 5カラム */
  gap:30px;
  padding:0;                            /* PCは画面いっぱいでOK */
  box-sizing:border-box;
　 position: relative;
  z-index: 0;  /* 背景が前に出ないように */
}

.activity-grid a{text-decoration: none;}
 
/* ===== カード ===== */

.activity-item{
	background:rgba(0,137,107,0.08);
	border-radius:15px;
	box-shadow:0 15px 30px rgba(0,0,0,0.1);
	padding:10px;
	transition:0.4s;
	 position: relative;
  z-index: 0;  /* 背景が前に出ないように */
}

.activity-item:hover{

  box-shadow:0 0 10px #209783,0 0 20px #209783,0 0 20px #209783 inset;

  transform:translateY(-5px);

}
 
/* サブタイトル */

.activity-item .subtitle{

  font-size:1rem;

  color:#e66a00;

  font-weight:600;
  

}
 
/* 写真（正方形） */

.project-img img{

  width:100%;

  aspect-ratio:1/1;

  object-fit:cover;

  border-radius:12px;

  margin-bottom:15px;

}
 
/* プロジェクト名 */

.activity-item p.projectname{

  margin-top:20px;

  margin-bottom:10px;

  font-size:20px;

  line-height:1.6;

  color:#333;

  font-weight:700;

}

.activity-item p.tag{
	margin-top:20px;
	margin-bottom:10px;
	font-size:14px;
	line-height:1.6;
	color:#333;
	font-weight:100;
}
 
/* ===== スマホ対応 ===== */

@media(max-width:768px){

  .line-title{

    font-size:28px;

  }

  .line-title:before,

  .line-title:after{

    width:40px;

  }

  .line-title:before{ left:-45px; }

  .line-title:after{ right:-45px; }
 
  .activity-grid{

    grid-template-columns:1fr;  /* 1列表示 */

    gap:20px;

    padding-left:15px;          /* 左右余白 */

    padding-right:15px;

    width:100%;

    box-sizing:border-box;

    margin:0 auto;

    max-width:none;

  }
 
  .project-img img{

    aspect-ratio:1/1;           /* 正方形維持 */

  }
 
  .activity-item p.projectname{

    font-size:18px;             /* 文字サイズ調整 */

  }
 
  .activity-item .subtitle{

    font-size:14px;

  }

}

.activity-item .projectname{
	margin-top: 20px;
	margin-bottom: 10px;
	font-size: 20px;
	color: 333;
	font-weight: 700;
}
 


/*ふわっとアニメーション*/
/* 初期状態：下から透明で移動 */
.fade-up{
  opacity:0;
  transform:translateY(40px);
  transition:1.5s ease-out;
}
 
/* スクロールで表示されたとき */
.fade-up.show{
  opacity:1;
  transform:translateY(0);
}

/*トップの画像、スマホだけ少し下に*/
@media screen and (max-width: 768px) {
  #top_boostabout {
    position: relative;
    top: 50px;
  }
}









