@charset "UTF-8";
@-ms-viewport {width: device-width;}

/*
	Theme Name: 
	Description: main css
	Theme URI: 
	Author: MASAHIRO YAMAMOTO
	Author URI: https://d-architects.com/
	Version: 1.0.1(2024.12.29)
	Tags: 

*/


/*---------------------------------------------------------------
	HEADER
---------------------------------------------------------------*/

.header_wrap{
	position: fixed;
	padding: 2rem 3.5rem;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 2rem;
	background-color: rgba(26, 26, 26, 0.7);
	z-index: 9999;
}
.header_wrap .logo{
	width: 100%;
	max-width: 28rem;
}
.header_wrap .logo a{
	display: block;
}
.header_wrap .logo img{
	width: 100%;
	height: auto;
}


@media only screen and (min-width:1025px) {
}/*-----------/@media only screen and (min-width:1025px)--------*/

@media screen and (min-width: 521px) and (max-width: 1024px) {
}/*-----------/@media screen and (min-width: 521px) and (max-height: 1024px)--------*/

@media only screen and (max-width:520px) {
	.header_wrap{
		padding: 1rem 3.5rem;
	}
}/*-----------/@media only screen and (max-width:520px)--------*/


/*---------------------------------------------------------------
	NAV
---------------------------------------------------------------*/

.gnav{
	display: flex;
	justify-content: flex-end;
	gap: 2rem;
	font-family: "Noto Serif JP", sans-serif;
}
.gnav li {
	position: relative;
}
.gnav li a{
	text-decoration: none;
	color: var(--clr-wh);
}

@media only screen and (min-width:1025px) {
	.openbtn{display: none;}
}/*-----------/@media only screen and (min-width:1025px)--------*/

@media only screen and (max-width:1024px) {
	.gnav{
		justify-content: flex-start;
		flex-direction: column;
	}
	.gnav li a{
	text-decoration: none;
	color: var(--clr-bk);
		font-size: 0.875rem;
}
	
	
	/*---ハンバーガー---*/
.openbtn{
	position: fixed;
	top: 24px;
	right: 24px;
	z-index: 9999;
	cursor: pointer;
	width: 32px;
	height: 24px;
}

.openbtn span{
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background-color: #fff;
}
.openbtn span:nth-last-of-type(1){
	top: 0;
}
.openbtn span:nth-last-of-type(2){
	top: 47%;
}
.openbtn span:nth-last-of-type(3){
	bottom: 0;
}
.openbtn.active span:nth-last-of-type(1){
	top: 0;
	transform: translateY(11px) rotate(-45deg);
}
.openbtn.active span:nth-last-of-type(2){
	opacity: 0;
}
.openbtn.active span:nth-last-of-type(3){
	bottom: 0;
	transform: translateY(-11px) rotate(45deg);
}

#g-nav.panelactive #g-nav-list{
	position: fixed;
	z-index: 9999;
	width: 100%;
	height: 100vh;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}
#g-nav{
	position: fixed;
	z-index: 9999;
	top: 6rem;
	right: -120%;
	width: 50%;
	height: 100vh;
	background: #fff;
	transition: all 0.6s;
}
#g-nav.panelactive{
	padding: 2.5rem;
	right: 0;
	}
	
	.gnav li {
		padding-left: 1rem;
	}
	.gnav li::before{
		position: absolute;
		content: "";
		transform: translateY(-50%);
		top: 50%;
		left: 0;
		width: 7.98px;
		height: 12px;
		background-repeat: no-repeat;
		background-size: contain;
		background-image: url("../../../img/arrow-right-bk.png");
	}
}/*-----------/@media only screen and (max-width:1024px)--------*/


/*---------------------------------------------------------------
	FOOTER
---------------------------------------------------------------*/

footer{padding-bottom: 4rem;}
.footer_nav {
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.footer_nav a {
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  position: relative;
  padding-right: 20px;
  color: #fff;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.footer_copy {
  color: #999999;
  margin-top: 48px;
  text-align: center;
  font-size: 14px;
  font-size: 0.875rem;
}

@media only screen and (min-width:1025px) {
}/*-----------/@media only screen and (min-width:1025px)--------*/

@media screen and (min-width: 521px) and (max-width: 1024px) {
}/*-----------/@media screen and (min-width: 521px) and (max-height: 1024px)--------*/

@media only screen and (max-width:520px) {
	.footer_nav {gap: 4px;}
}/*-----------/@media only screen and (max-width:520px)--------*/

/*---------------------------------------------------------------
	MV
---------------------------------------------------------------*/

.mv_v1{
	padding-top: 9rem;
	background: var(--clr-bk);
}

@media only screen and (min-width:1025px) {
}/*-----------/@media only screen and (min-width:1025px)--------*/

@media screen and (min-width: 521px) and (max-width: 1024px) {
}/*-----------/@media screen and (min-width: 521px) and (max-height: 1024px)--------*/

@media only screen and (max-width:520px) {
	.mv_v1{
	padding-top: 5rem;
	}
}/*-----------/@media only screen and (max-width:520px)--------*/


/*---------------------------------------------------------------
	COMMON
---------------------------------------------------------------*/

.inner{
	margin: 0 auto;
	width: 80rem;
}

/*--section--*/
.sec_wrap{}



/*--column--*/

.col-2{
	display: flex;
	justify-content: space-between;
	gap: 4rem;
}

.col-2 .col{
	width: calc((100% - 4rem) / 2);
}


.tac{text-align: center;}

.mb01{margin-bottom: 1rem;}
.mb02{margin-bottom: 2rem;}
.mb03{margin-bottom: 3rem;}
.mb04{margin-bottom: 4rem;}


.vsp{display: none;}

@media only screen and (min-width:1025px) {
}/*-----------/@media only screen and (min-width:1025px)--------*/

@media screen and (min-width: 521px) and (max-width: 1024px) {
}/*-----------/@media screen and (min-width: 521px) and (max-height: 1024px)--------*/

@media only screen and (max-width:520px) {
	.inner{width: 94%;}
	
	.col-2{
		flex-direction: column;
	}
	.col-2 .col{
		width: 100%;
	}
	.vsp{display: block;}
}/*-----------/@media only screen and (max-width:520px)--------*/



/*---------------------------------------------------------------
	LAYOUT
---------------------------------------------------------------*/
.wrap_assoc_d_rev{
	padding: 8rem 0;
	position: relative;
}

.wrap_page_head{
	width: 100%;
	position: relative;
}

.pagetit{
	margin-bottom: 3.3333333333333335vw;
	width: 50%;
	position: relative;
	z-index: 1;
}
.pagetit img{
	width: 100%;
	height: auto;
}

.img_pic{
	width: calc(50% - 3.3333333333333335vw);
	position: absolute;
	top: 0; right: 0;
}

.wrap_outline{
	margin-bottom: 8rem;
	padding: 4rem;
	width: 74.74452554744525vw;
	max-width: 1024px;
	background: #eee;
	position: relative;
	z-index: 0;
}
.wrap_outline section{
	margin-bottom: 4rem;
}
.wrap_outline section:last-child{
	margin-bottom: 0;
}
.tit_outline{
	margin-bottom: 0.5rem;
	padding-top: 1rem;
	font-size: 2rem;
	line-height: 1.0;
	font-weight: 700;
	font-family: "Noto Serif JP", sans-serif;
	text-align: center;
}
.subtit_outline{
	margin-bottom: 4rem;
	padding-top: 1rem;
	font-size: 1.5rem;
	line-height: 1.0;
	font-weight: 700;
	font-family: "Noto Serif JP", sans-serif;
	text-align: center;
}
.head_outline{
	margin-bottom: 2rem;
	padding-top: 1rem;
	font-size: 1.5rem;
	line-height: 1.0;
	font-weight: 700;
	font-family: "Noto Serif JP", sans-serif;
	border-top: solid 2px #fe641c;
}
.desc_outline{
}

.txt{
	font-size: 1rem;
	line-height: 1.5;
}
.txt_wh{
	color: var(--clr-wh);
}
.txt.advocacy{
	padding: 2rem 0;
	font-weight: bold;
}

.human_resources th,.human_resources td{
	padding-bottom: 1rem;
}
.human_resources th{
	padding-right: 1rem;
	display: flex;
	justify-content: space-between;
}
.ob_list{
	margin-bottom: 1rem;
	list-style-type: disc;
	list-style-position: inside;
	display: flex;
	flex-wrap: wrap;
	gap:1.0rem;
}



.wrap_notice{
	padding: 8rem 0;
	background: #383838;
	position: relative;
	z-index: 0;
}
.wrap_notice_outline{
	padding: 0 4rem 0 0;
}
.wrap_notice_form{
	padding: 3rem 0 0;
}
.head_notice{
	margin-bottom: 4rem;
	padding-top: 2rem;
	font-size: 3rem;
	line-height: 1.2;
	font-weight: 700;
	font-family: "Noto Serif JP", sans-serif;
	color: var(--clr-wh);
	border-top: solid 1px var(--clr-wh);
}
.wrap_notice small{
	padding-top: 1rem;
	color: #DF2935;
	display: block;
}

.details_event{
	color: var(--clr-wh);
}
.details_event dt{font-weight: bold;}
.details_event dd{margin-bottom: 1rem;}
.details_event dd:last-child{margin-bottom: 0;}

.details_event table td{
	padding: 0 0 0.5rem 1rem;
}


.head_notice_form{
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	font-size: 1.5rem;
	line-height: 1.0;
	font-weight: 700;
	color: var(--clr-wh);
	font-family: "Noto Serif JP", sans-serif;
	border-bottom: solid 2px var(--clr-wh);
}
#form-input dl,
#form-confirm dl{
	padding-bottom: 2rem;
}
#form-input dt,
#form-confirm dt{
	margin-bottom: 1rem;
	line-height: 1.0;
	font-weight: 700;
	color: var(--clr-wh);
}

.form-required{
	margin-left: 0.5rem;
	color: #DF2935;
}


@media only screen and (min-width:1025px) {
}/*-----------/@media only screen and (min-width:1025px)--------*/

@media screen and (min-width: 521px) and (max-width: 1279px) {
	


}/*-----------/@media screen and (min-width: 521px) and (max-width: 1024px)--------*/

@media only screen and (max-width:520px) {
	.wrap_assoc_d_rev{
		padding: 4rem 0;
	}
		
	.pagetit{
	margin-bottom: 2rem;
	width: 100%;
	position: relative;
	z-index: 1;
	}
	
	.img_pic{
		margin-bottom: 2rem;
	width: 100%;
	position: static;
	}

	.tit_outline{
	font-size: 1.36rem;
		line-height: 1.2;
	}
.subtit_outline{
	margin-bottom: 3rem;
	font-size: 1rem;
	line-height: 1.0;
}
	.head_outline{
		font-size: 1.12rem;
	line-height: 1.4;
	}
	.wrap_outline{
	margin-bottom: 4rem;
	padding: 1rem;
	width: 100%;
		max-width: none;
	}
	.ob_list li{
	width: 100%;
	}
	.wrap_notice{
	padding: 4rem 0;
	}
	.wrap_notice_outline{
	padding: 0;
	}
	.head_notice{
	font-size: 2.4rem;
	}
}/*-----------/@media only screen and (max-width:520px)--------*/


/* ----------------------------------------
nakauchi banner
---------------------------------------- */
.nakauchi__banner {
  display: block;
  position: fixed;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  top: 180px;
  left: 0;
  z-index: 8;
}
@media screen and (max-width: 975px) {
  .nakauchi__banner {
    top: unset;
    bottom: 24px;
  }
}

.nakauchi__banner img {
  width: 104px;
  height: auto;
}
@media screen and (max-width: 975px) {
  .nakauchi__banner img {
    width: 64px;
  }
}

/*---------------------------------------------------------------
	Contact Form7用
---------------------------------------------------------------*/

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select{
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	padding: 2%;
	width: 100%;
	font-size: 1rem;
	line-height: 1.0;
	border: 1px solid rgba(77,80,87,0.4);
	border-radius: 4px;
	vertical-align: central;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 textarea{
	background: #fff;
	box-shadow: 1px 1px 3px rgba(0,0,0,.1) inset;
}
.wpcf7 textarea{
	max-width: 100%;
	max-height: 20vh;
}
.wpcf7 select{position: relative;}
.wpcf7 select::after {
	content: "▼";
	font-size: 1.2rem;
	position: absolute;
	top: 0; right: 0;
	padding: 5px 15px;
	border-left: 5px solid rgba(77,80,87,0.4);
	color: #EF8D4C;
}

.wpcf7 input[type="submit"],
.wpcf7 input[type="button"],
.wpcf7 button[type="button"]{
	margin: 0 auto;
	padding: 0.5rem;
	width: 100%;
	box-sizing: border-box !important;
	font-size: 1rem;
	text-align: center;
	background: #383838; color: #eee;
	cursor: pointer;
	border-radius: 24px;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border:2px solid #eee;
	transition: all 0.5s ease;
	&::-webkit-search-decoration {display: none;}
	&::focus {outline-offset: -2px;}
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="button"]:hover,
.wpcf7 button[type="button"]:hover{
	background:#eee;
	color: #383838;
	border:2px solid #1a1a1a;
}

.wpcf7 .ajax-loader{
    display: block !important;
	text-align: center;
}

#form-input .wpcf7-submit {
  display: none !important;
}
#form-confirm .wpcf7-submit {
  display: inline-block !important;
}

span.wpcf7-spinner{
	margin: 0 auto;
	display: block !important;
	background-color: #fff;
}

.col_btn{
	display: flex;
	justify-content: center;
	gap: 2rem;
}
.wpcf7 form .wpcf7-response-output{
	color: var(--clr-wh) !important;
}


/*---------------------------------------------------------------
	シン流会　記録ページ用
---------------------------------------------------------------*/
/* ----------------------------------------
シン・流通革命を考える会ページからのバナー
---------------------------------------- */
.shinryukai-bnr{
  width: 35%;
  box-shadow: 0 8px 20px 4px rgba(0,0,0,.25);
  transition:
    transform 0.25s ease-out,
    box-shadow 0.25s ease-out;
}

/* スマホは幅60%に */
@media (max-width: 520px){
  .shinryukai-bnr{
    width: 60%;
  }
}

/* PCだけホバーで浮き上がり */
@media (hover: hover) and (pointer: fine){
  .shinryukai-bnr:hover{
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0,0,0,.35); 
  }
}

/* 3カラム（PC）/ 2カラム（スマホ）レイアウト */
.shinryukai-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* PCは3列 */
  gap: 28px;                                        /* 画像間の余白 */
  align-items: start;
}

/* グリッド内では画像幅を100%に上書き（既存の35%/60%より優先） */
.shinryukai-grid .shinryukai-bnr{
  width: 100%;
  height: auto;
  display: block;
}

/* スマホは2カラムに */
@media (max-width: 520px){
  .shinryukai-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  .shinryukai-grid .shinryukai-bnr{
    width: 100%; /* 念のため明示 */
  }
}

/* ----------------------------------------
メイン画像
---------------------------------------- */
/* PCデフォルト：画面いっぱい */
.photo-gallery{
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.photo-gallery img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* タブレット＆スマホ：横幅いっぱい＋上下マージン */
@media (max-width: 1024px){
  .photo-gallery{
    width: 100%;
    height: auto;
    overflow: visible;
    margin-block: clamp(80px, 15vw, 200px);
  }
  .photo-gallery img{
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

@media (min-width: 768px) and (max-width: 1024px){
  .photo-gallery{
    margin-block: clamp(120px, 18vw, 260px);
  }
}

/* ----------------------------------------
タイトル
---------------------------------------- */
/* タイトル１ */
.gallery__title1{
  position: relative;
  margin: 0 0 36px;
  text-align: center;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #ffffff;
}

.gallery__title1::after{
  content: "";
  display: block;
  width: 120px;
  height: 3px;
  margin: 15px auto 0;
  background: #fe641c;   /* ボタンと同じオレンジ */
  border-radius: 999px;
  opacity: 0.9;
}

/* タイトル２ */
.gallery__title2{
  --bar-color: #fe641c;   /* 縦線の色 */
  --bar-width: .18em;     /* 縦線の太さ（文字の太さになじむ） */
  --gap: .7em;            /* 縦線と文字の間隔 */

  position: relative;
  margin: 0 0 28px;
  padding-left: calc(var(--bar-width) + var(--gap));
  text-align: left;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  font-weight: 700;
  letter-spacing: .05em;
  line-height: 1.35;
  color: #ffffff;
}

.gallery__title2::before{
  content: "";
  position: absolute;
  left: 0;
  top: .12em;             /* 上下の見た目微調整 */
  bottom: .12em;
  width: var(--bar-width);
  background: var(--bar-color);
  border-radius: 999px;   /* 角をやや丸く */
}


/* ----------------------------------------
画像スクロール
---------------------------------------- */
.archive-page{
  margin-block: clamp(80px, 15vw, 200px);
}
.pg-gallery{
  margin: 0;
}

/* スライダー全体：横幅100%（コンテンツ幅いっぱい） */
.pgg-slider{
  width: 100%;
  margin: 0 auto;
}

/* 表示領域 */
.pgg-viewport{
  position: relative;
  overflow: hidden;
  width: 100%;
}

/* 中身の横並び */
.pgg-track{
  display: flex;
  will-change: transform;
}

/* デフォルト：PCでは3枚見せ（1枚=1/3幅） */
.pgg-slide{
  flex: 0 0 33.3333%;
  padding: 0 8px;           /* ← ここが画像と画像のすき間 */
  box-sizing: border-box;
}

.pgg-fig{
  margin: 0;
  background: var(--pgg-bg);
  border-radius: var(--pgg-radius);
  box-shadow: var(--pgg-shadow);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr;
}

.pgg-fig img{
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.pgg-cap{
  padding: 10px 12px;
  font-size: 0.9rem;
  line-height: 1.6;
  color: #fff;
	text-align: center;
  background: #1a1a1a;
	border-top: none !important;
}
.pgg-cap:empty{ display: none; }

/* 矢印オーバーレイ：中央のスライドの中に収まる */
.pgg-arrows{
  position: absolute;
  inset: 0;
  width: 33.3333%;          /* PC時：真ん中スライドの幅に合わせる */
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

.pgg-nav{
  pointer-events: auto;
  position: absolute;
  top: 43%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--pgg-border);
  background: rgba(255,255,255,.95);
  display: grid;
  place-items: center;
  box-shadow: 0 3px 14px rgba(0,0,0,.15);
  cursor: pointer;
  user-select: none;
}
.pgg-nav svg{
  width: 18px;
  height: 18px;
	transform: translateY(0px);  
}
.pgg-prev{ left: 8px; }
.pgg-next{ right: 8px; }

/* タブレット＆スマホ：1枚だけ表示＋矢印レイヤーも全幅に */
@media (max-width: 1024px){
  .pgg-slide{
    flex-basis: 100%;
  }
  .pgg-arrows{
    width: 100%;
  }
}

@media (max-width: 520px){
  .pgg-nav{
		top: 42%;
    width: 34px;
    height: 34px;
  }
  .pgg-nav svg{
    width: 16px;
    height: 16px;
		transform: translateY(0px);
  }
  .pgg-prev{ left: 6px; }
  .pgg-next{ right: 6px; }
}

/* ----------------------------------------
PDFギャラリー
---------------------------------------- */

.pdf-gallery{
  max-width: 1100px;
  margin: clamp(60px, 10vw, 120px) auto 0;
  padding: 0 1.5rem;
  color: #fff;
}

.pdf-gallery__title::after{
  content: "";
  display: block;
  width: 120px;
  height: 3px;
  margin: 15px auto 0;
  background: #fe641c;   /* ボタンと同じオレンジ */
  border-radius: 999px;
  opacity: 0.9;
}

/* ボタンを並べるグリッド */
.pdf-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  row-gap: 26px;   /* 行（タテ）のすき間 */
  column-gap: 18px;/* 列（ヨコ）のすき間 */
  margin-bottom: 50px;
}

/* ボタンデザイン */
.pdf-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  min-height: 46px;
  border-radius: 999px;
  background: #fe641c;
  color: #fff;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 600;
  text-align: center;
  white-space: normal;
  line-height: 1.4;
  transition:
    background 0.3s ease-out,
    color 0.3s ease-out,
    transform 0.15s ease-out;
}

.pdf-btn:hover{
  background: #fff;
  color: #fe641c;
  transform: translateY(-1px);
}

/* タブレット：2列 */
@media (max-width: 1024px){
  .pdf-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* スマホ：1列 */
@media (max-width: 520px){
  .pdf-gallery{
    padding: 0 1rem;
  }
  .pdf-grid{
    grid-template-columns: 1fr;
  }
}


		