/*
Theme Name: 地方財務協会theme
Theme URI: https://www.chihou-zaimu.com
Version: 1.1
Description: 
Author: eufonia inc.
Author URI: https://eufonia.co.jp/
template: bb-theme
*/

/* Add your custom styles here...Remember to change the Version number above! */ 

html {
  font-size: 100%;
}

body {
  color: #2C2C2C;
  font-size: 1rem;/* remで指定（1rem = 16px） */
  line-height: 1;
}
a {
  transition: color 0.4s;
}

#topicon_block .pp-infobox{
	width:100%;
}

.ly_siteWrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.ly_header {
  padding: 15px 56px;
}
.ly_header_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, 880px);
  margin: 0 auto;
}
.ly_main {
  background-color: #fafafa;
  flex: 1;
  overflow-x: hidden;
}
.ly_section {
  padding: 90px 0;
}
.ly_section_inner {
  padding: 0 15px;
  text-align: center;
  width: min(100%, 880px);
  margin: 0 auto;
}
.bl_headerList {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bl_headerList > * + * {
  margin-left: 56px;
}
.bl_headerList a {
  line-height: 1.5;
  padding: 10px;
}

.sizebtn_block{
	text-align:right;
}

/********************/
/* ボタンのスタイル */
/********************/
#header-top .fl-html{
	text-align:right;
}

.bl_sizeBtn_wrap {
  display: inline-flex;
  align-items: center;
	font-weight: 500;
}
.bl_sizeBtn_wrap > span {
  font-size: 12px;
  letter-spacing: 0.05em;
  margin-right: 5px;
  color:#fff;
}
.bl_sizeBtn_wrap > * + * {
  margin-left: 3px;
}
.bl_sizeBtn {
  background-color: #ddd;
  border-radius: 4px;
  color: #666;
  padding: 5px;
  transition: opacity 0.4s;
}
.bl_sizeBtn:first-of-type {
  font-size: 13px;
}
.bl_sizeBtn:nth-of-type(2) {
  font-size: 13px;
}
.bl_sizeBtn:nth-of-type(3) {
  font-size: 13px;
}
/* 選択したボタンのスタイル */
.bl_sizeBtn.is_active {
  background-color: #2b7bb9;
  color: #fff;
}

//* ボタンのスタイルここまで */

.bl_sampleList {
  margin-top: 1em;
}
.bl_sampleList li {
  line-height: 1.7;
}
.bl_sampleList span {
  font-weight: 700;
  padding: 0 0.3em;
}
/* サイズ固定のテキスト */
.bl_fzPx {
  font-size: 16px;
}
.el_lv2Heading {
  font-size: 2rem;
  font-weight: 700;
}

@media (hover: hover) and (pointer: fine) {
  .bl_headerList a:hover {
color: #246a92;
  }
  .bl_sizeBtn:hover {
opacity: 0.8;
  }
}

#books_lineup .owl-carousel{
	padding-top:30px;
	padding-bottom:30px;
}


/* --- 検索アイコン --- */


.c-icon-hero {
    width: clamp(64px, 5vw, 100px);
    height: auto;
    transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    
    transform-origin: center; 
}

.c-icon-hero:hover {
    transform: scale(1.15); 
}

.searchicon-text{

	font-weight :bold;
	font-size:0.9rem;
}

#feas-searchform-0{
	display:flex;
	   gap: 10px;
}


/* --- トップメニューの動き --- */
/* 外枠（JSで作ったラッパー）：こいつが常に元の高さをキープしてガタつきを防ぐ */
#header-wrapper {
    display: block !important;
    width: 100% !important;
    position: relative !important;
}

/* ヘッダー本体：画面最上部に固定 */
#header-wrapper header.fl-builder-content {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background-color: #fff !important; /* 背景を白で塗りつぶす */
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    will-change: transform;
}

/* ★ここが最重要：スティッキー時にヘッダー全体を上にスライド */
#header-wrapper.is-sticky-mode header.fl-builder-content {
    /* 消したい #header-top の「高さ分だけ」マイナスして、
       ヘッダー全体を上に突き上げます。
       もし隙間が空くなら、この数値を -50px, -60px と増やしてください。
    */
    transform: translateY(-46px) !important; 
    
    box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
}

/* スライドして画面外へ追い出した部分は、念のため透明にする */
#header-wrapper.is-sticky-mode #header-top {
    opacity: 0 !important;
    transition: opacity 0.2s ease !important;
}

/* メイン部分は背景をしっかり白にして、隙間から後ろが見えないようにする */
#header-main {
    background-color: #fff !important;
    position: relative;
}

/* スティッキー時に上部をフェードアウトさせて、
   万が一の隙間から中身が見えるのを防ぐ */
header.fl-builder-content {
    background-color: #fff !important;
}

/* ラッパー自体は透明でOK（場所を確保するだけ） */
#header-wrapper {
    background-color: transparent !important;
}

/* ヘッダー本体：背後を完全に遮断する */
header.fl-builder-content {
    background-color: #ffffff !important;
}

/* 中身のメイン部分は常に表示 */
#header-main {
    background-color: #ffffff !important;
    position: relative;
    z-index: 10;
}

/* --- トップメニューの動き ここまで--- */


#header_pcmenu {
    display: flex;
    gap: 0px;
}

.fl-button-group-button {
    flex:1;
}

.fl-button-width-full{
	width:100%;
}


/* V3 ヘッダーティッカー調整 */
#new_info div.fl-row-content-wrap {
	z-index: 10; /* 他のコンテンツより最前面に */
}

.fl-builder-edit #new_info div.fl-row-content-wrap {
    z-index: auto !important;
}

#new_info div.fl-row-content-wrap .my-ticker-item .date {
margin-right:1em;
}

.fl-builder-edit #new_info div.fl-row-content-wrap {
	z-index: 0;
}


/* --- トップページ新刊パレード --- */
/* --- カルーセル内の高さを揃えるためのカード全体設定 --- */
.my-book-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%; /* カルーセル内で他のカードと高さを揃えます */
    background-color: #ffffff;
    overflow: hidden;
    padding: 30px 20px 20px;
}

/* --- 新刊リボン --- */
.book-ribbon1,.book-ribbon2,.book-ribbon3 {
    position: absolute;
    top: -6px;
    left: -6px;
    width: 80px;
    height: 80px;
    z-index: 10;
}
.book-ribbon1 span,.book-ribbon2 span,.book-ribbon3 span {
    position: absolute;
    display: block;
    width: 120px;
    padding: 4px 0;
    background-color: #ffe600;
    color: #111;
    font-size: 11px;
    font-weight: bold;
    text-align: center;
    transform: rotate(-45deg);
    top: 20px;
    left: -28px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.book-ribbon2 span {
    background-color: #c10e0e;
    color: #fff;
}

.book-ribbon3 span {
    background-color: #70d2eb;
}



/* --- アイキャッチ（表紙） --- */
.book-cover {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}
.book-cover a {
    display: inline-flex;
}
.book-cover img {
    max-width: 100px;
    height: auto;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.3);
}

/* --- 書籍情報エリア --- */
.book-info {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* 書籍ジャンル（タイトルの上） */
.book-genre-wrap {
    margin-bottom: 12px;
}
.book-tag {
    display: inline-block;
    background-color: #f1f5f9;
    color: #334155;
    font-size: 0.7em;
    padding: 5px 10px;
}

/* タイトル */
.book-title {
    font-size: 1.2em;
    font-weight: bold;
    color: #111;
    line-height: 1.4;
    margin: 0 0 0.4em 0;
}
.book-title a {
    color: inherit;
    text-decoration: none;
}
.book-title a:hover {
    color: #3b82f6;
}

/* 著者 */
.book-author {
    font-size: 0.8em;
    color: #333;
    line-height: 1.6;
    margin: 0 0 0.5em 0;
}

/* --- 価格と日付（最下部に固定） --- */
.book-meta-bottom {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;/* 右寄せ */
  gap: 7px;
	padding-top: 10px;
}

.book-price {
    display: inline-block;
    font-size: 0.8em;
    font-weight: bold;
    color: #111;
}
.book-date {
    font-size: 0.8em;
    color: #333;
}

/* ① カルーセル全体を囲むコンテナの基準点を設定 */
.my-fade-carousel {
    position: relative;
    overflow: hidden; /* 外側にはみ出たぼかしをカットします */
}

/* ② 左側の白いぼかし（疑似要素を利用） */
.my-fade-carousel::before {
    content: ""; /* 空の要素を作り出します */
    position: absolute;
    top: 0;
    left: 0;
    width: 20%; /* ぼかす幅（お好みで15%などに変更可能です） */
    height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,1) 5%, rgba(255,255,255,0) 100%);
    z-index: 10;
    
    /* 【超重要】マウスのクリックやスワイプを貫通させる */
    pointer-events: none; 
}

/* ③ 右側の白いぼかし */
.my-fade-carousel::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 20%;
    height: 100%;
    background: linear-gradient(to left, rgba(255,255,255,1) 5%, rgba(255,255,255,0) 100%);
    z-index: 10;
    
    pointer-events: none;
}

/* ④ ナビゲーションアローを「ぼかし」よりさらに前面に出す */
.my-fade-carousel .owl-prev,
.my-fade-carousel .owl-next{
    z-index: 20 !important; /* ぼかしの z-index: 10 より大きな数値を指定 */
}


/* --- トップページ新刊パレードここまで --- */

/* ---トップページ (News & Seminars) --- */

.news-block { flex: 0 0 60%;
			height:23vh;
			padding-right:20px;
		  overflow-y: auto;
}

.seminar-block { flex: 1; }

/* News List Style */
.news-list { list-style: none; padding: 0; margin-bottom: 20px; }

.news-list li { border-bottom: 1px dotted #ccc; padding: 10px 0; display: flex; align-items: baseline; gap: 10px; font-size: 0.9em; }

.news-date { color: #0056b3; font-weight: bold; min-width: 10em; }

.news-cat1,.news-cat2,.news-cat3,.news-cat4 { font-size: 0.7em;  color: #fff; padding: 2px 6px; border-radius: 5px; margin-right: 5px; min-width: 60px; text-align: center; display: inline-block; }
    .news-cat1{	background: #aa4444}
    .news-cat2{	background: #aaaa44}
    .news-cat3{	background: #44aaaa}
    .news-cat4{	background: #4444aa}

.news-list a,
.news-list a:visited{
	color:#2C2C2C;
}

.news-list a:hover{
	color:#2421ca;
}


/* Seminar Block Style */

.seminar-list {
			list-style: none; padding: 0;
}

h3.section-title{
	font-size:1.1em;
	margin-top:0;
	color:#020085;
	margin-bottom:25px;
}

h3.section-title img.enoji {
  fill: #020085;
}

.seminar-box2 .seminar-item {
	margin-bottom: 20px;
	padding-bottom:0;
	padding-left:15px;
	border-bottom:none;
	border-left: 5px solid #e0e0e0;
}

.seminar-box2 .sem-date { font-size: 13px; font-weight: bold; color: #333; display: block; margin-bottom: 5px; }

.seminar-box2 .sem-title {
	font-size: 15px;
	font-weight: bold; 
	color: #333;
	text-decoration: none;
	margin-bottom: 5px;
	line-height: 1.4;display: inline-block;
}

.seminar-box2 .sem-status { display: inline-block; font-size: 0.7em; padding: 2px 10px; margin-left:5px; border-radius: 5px; color: #fff; }

/* Seminar Block Style色 */
.status-open { background: #4c4; }
.status-close { background: #a44; }
.status-soon { background: #44c; }

.info1 { background: #4bb; }
.info2  { background: #44c; }
.info3  { background: #44c; }
.info4  { background: #44c; }
.info5 { background: #44c; }


.seminar-box2 .btn {
	width:100%;
	box-sizing:border-box;
	text-align:right;
  font-size: 0.9em;
	margin: 0;
}
.seminar-box2 .btn:hover {
	color:#2421ca;
	text-decoration: underline;
  transition: background 0.3s;
}

/* ---トップページ (News & Seminars)ここまで --- */




/****************************/
/* 下層ページ調整 */
/****************************/

.midashi1{
	font-size:1.2em;
	margin-top:30px;
	font-weight:bold;
	text-align:center;
}

.midashi2{
	font-size:1.1em;
	margin-top:40px;
	font-weight:bold;
}


/*  出版物案内（書籍一覧） */
#book_pickup .pp-content-grid-post-image {
	    text-align: center;
}

#book_pickup .pp-content-grid-post-image img {
    max-width: 100px;
    height: auto;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.3);
}

#book_pickup .pp-content-grid-post {
    display: flex;
    flex-direction: column;
    height: 100%;
}
#book_pickup .pp-content-grid-post-text {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

#book_pickup .bookstate,
#book_pickup .bookstate_a,
#book_pickup .bookstate_b,
#book_pickup .bookstate_c,
#book_pickup .bookstate_d{
	display: inline-block;
	width:100%;
	padding: 4px 10px;
  border-radius: 2px;
  margin-bottom: 8px;
	background:rgb(255, 255, 255);
	color: #fff;
  font-size: 0.9em;
  font-weight: bold;
}

#book_pickup .bookstate_a {
	background:#3b8a55;
}

#book_pickup .bookstate_b {
	background:#777e3e;
}

#book_pickup .bookstate_c {
	background:#a45a3a;
}

#book_pickup .bookstate_d {
	background:#b62511;
}

#book_pickup .pp-content-grid-post-title {
	font-size: 1.3em;
	font-weight: bold;
	color: #003366;
	margin: 0 0 10px;
	line-height: 1.4;
}

#book_pickup .pp-content-grid-post-meta {
		 display: flex;
    flex-direction: column;
    flex-grow: 1;
		font-size: 1.3em;
		margin:0 0 1em;
	padding:0 3px;
}

#book_pickup .pp-content-grid-post-meta .book-author {
	color: #333;
	margin: 0;
}

#book_pickup .pp-content-grid-post-meta .book-meta-bottom {
	line-height: 1.3;
    margin-top: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
		gap: 7px;
		padding-top: 0.8em;
}

#book_pickup .pp-content-grid-post-meta .book-price {
    display: inline-block;
    font-weight: bold;
    color: #111;
}

#book_pickup .pp-content-grid-post-meta .book-date {
	color: #333;
}


#book_pickup .pp-content-grid-post-more-link {
        display: block;
        text-align: center;
        color: #003366;
        margin-top: auto;
        border-radius: 15px;
        font-size: 0.9em;
        font-weight: bold;
        padding: 8px 20px;
        border: 1px solid #003366;
}

#book_pickup .pp-content-grid-post-more-link:hover,
#book_pickup .pp-content-grid-post-more-link a:hover{
	color: #ffffff!important;
	background: #003366;
}

/* 出版物案内（書籍一覧） */
/* アコーデオン内リスト仮 */
#book-list ul{
	padding-left:0;
}

#book-list ul li.book{
	margin-bottom: 0;
	  list-style: none;
}

.compact-list {
        padding: 0;
    }
.compact-item {
        display: flex;
        align-items: flex-start; /* 上揃え */
        padding:30px 10px 30px 0;
        border-bottom: 1px solid rgba(0, 0, 77, 0.7);
        transition: background 0.2s;
    }
    .compact-item:last-child { border-bottom: none; }
    .compact-item:hover { background: #fbfbfb; }

    /* アイテム内レイアウト */
    .c-thumb {
        width: 95px;
        height: 120px;
        background: #fff;
        flex-shrink: 0;
        margin:0 20px 0 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.8em;
        color: #999;
        border: 1px solid #eee;
    }
    .c-info {
        flex: 1;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .c-head {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 15px;
    }
    .c-title {
        font-size: 1.3em;
        font-weight: bold;
        color: #333;
        margin: 0;
        line-height: 1.4;
    }
    .c-author {
        font-size: 0.8em;
        color: #fff;
        display: inline-block;
        background: #006699;
        padding: 2px 8px;
        border-radius: 4px;
        margin-top: 5px;
    }
    .c-desc {
        font-size: 0.95em;
        color: #444;
        line-height: 1.6;
        margin-top: 5px;
    }
    .c-btn {
        flex-shrink: 0;
        font-size: 0.85em;
        padding: 6px 20px;
        border: 1px solid #003366;
        border-radius: 15px;
        color:#003366;
        background: #fff;
        font-weight: bold;
        white-space: nowrap;
        margin-left: auto; /* 右寄せ */
    }
    .c-btn:hover {
			background: #003366;
			color: #fff;
			text-decoration:none;
}

/* ボタン変化のアニメーション */
.fl-button {transition: all 0.5s ease-in-out !important;}


/* =============================
   月刊誌ページデザイン
=============================== */
.magazine-custom-layout {
    width: 100%;
}

/* 1. 上部：画像とテキストの2カラム */
.magazine-top-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 30px;
}

/* --- 左カラム（画像） --- */
.magazine-left-col {
    width: 400px; /* 画像エリアの幅を400pxに固定 */
    flex-shrink: 0; /* 画面が狭くなっても400pxを維持しようとする */
}

.magazine-left-col-a {
    width: 80px;
    flex-shrink: 0;
}

/* Themerが出力するimgタグに対する指定 */
.magazine-left-col img {
    width: 100%;
    height: auto;
    border: 1px solid #cccccc; /* 1pxのボーダー */
    display: block; /* 画像下部の不要な隙間を消す */
}

/* --- 右カラム（テキスト） --- */
.magazine-right-col {
    padding: 0 20px;
    flex-grow: 1;
}

.magazine-price-box {
    font-size: 1.1em;
    font-weight: bold;
    margin-bottom: 15px;
}

.magazine-size {
    margin-right: 10px;
}

.magazine-notice {
    color: #cc0000; /* 赤文字 */
    font-weight: bold;
    margin-bottom: 20px;
}

.magazine-desc {
    margin-bottom: 30px;
}

.magazine-list {
    font-weight: bold;
	    line-height: 2;
}

/* 2. 中部：ボタン（横並び） */
.magazine-buttons-row {
    display: flex;
    gap: 20px; /* ボタン同士の隙間 */
    margin-top: 50px;
}

.magazine-btn-wrap {
    flex: 1; /* 2つのボタンを均等な幅にする */
}

.magazine-btn {
    display: block;
    text-align: center;
    padding: 15px 10px;
    border-radius: 30px; /* ボタンの丸み */
    text-decoration: none;
    border: 2px solid;
    line-height: 1.4;
}

.magazine-btn:hover {
    text-decoration: none;
}

.btn-small {
    font-size: 1.0em;
}

.btn-large {
    font-size: 1.1em;
    font-weight: bold;
}

/* 青色ボタン */
.btn-blue {
    border-color: #000080; /* 紺色 */
    color: #000080;
	  transition: .4s;
}
.btn-blue:hover {
    border-color: #000080; /* 紺色 */
    color: #ffffff;
	background-color:#000080;
}

/* グレー色ボタン */
.btn-gray {
    border-color: #888888;
    color: #888888;
	  transition: .4s;
}
.btn-gray:hover {
    border-color: #888888;
    color: #ffffff;
	background-color:#888888;
}

/* 3. 下部：目次画像 */
.magazine-bottom-img {
	margin-top:50px;
	text-align:center;
}

.magazine-bottom-img .magazine-table-title{
	font-size:1.7em;
	color:#000088;
	margin-bottom:20px;
	padding-bottom:10px;
	border-bottom:3px solid #000088;
}

.magazine-bottom-img img {
    width: 90%;
    height: auto;
    border: 1px solid #cccccc; /* 下部画像にも念のためボーダーを付けています */
}


/* 月刊誌個別 調整 */

/* リスト全体の初期化（100%幅） */
.magazine-backnumber-list {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
}

/* 各項目の区切り線（上下の線を綺麗につなぐ） */
.backnumber-item {
    border-bottom: 1px solid #e2e8f0; /* 薄いグレーの線 */
}
.backnumber-item:first-child {
    border-bottom: 1px solid #e2e8f0; 
}

/* リンクエリア全体 */
.backnumber-link {
    display: flex;
    align-items: center;
    padding: 10px 8px; 
    text-decoration: none;
    color: #333333;
    transition: background-color 0.2s ease;
}

/* マウスを乗せた（ホバー）時の背景色変化 */
.backnumber-link:hover {
    background-color: #f8fafc;
}

/* サムネイル画像を包む枠（アスペクト比を崩さない設定） */
.backnumber-thumb {
    flex-shrink: 0;   
    width: 85px;
    height: auto; 
}

/* 画像自体のサイズ微調整 */
.backnumber-thumb img,
.backnumber-thumb svg {
    width: 100%;
    height: auto;     /* 縦横比を完全に維持 */
    display: block;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15); 
}

/* テキスト情報エリア（日付とタイトルを包む箱） */
.backnumber-info {
    flex: 1;          /* 残りの横幅をいっぱいに使う */
    margin-left: 20px; /* 画像との間に適度な隙間をあける */
    display: flex;
    align-items: center; /* PC環境では日付とタイトルを1行に並べる */
    gap: 16px;         /* 日付とタイトルの間の隙間 */
}

/* 発売日のスタイル */
.backnumber-date {
    font-size: 0.85rem; 
    color: #64748b;
    flex-shrink: 0;    /* 日付が途中で改行されないように固定 */
    white-space: nowrap;
}

/* タイトルのスタイル */
.backnumber-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    color: #1e293b;
    transition: color 0.2s ease;
}

/* ホバー時 */
.backnumber-link:hover .backnumber-title {
    color: #0284c7; 
}


/* ============
　法人案内
============================= */

/* 法人案内関連 */
#gaiyou table th {
	background-color:#efefef;
}

.privacy_policy .fl-module-content .pp-sub-heading p,.privacy_policy .fl-module-content .pp-sub-heading ul{
	margin:1em 2em;
}

.pdflinkblock {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 1.5rem;
}

.pdflinkblock .pp-button-wrap.pp-button-width-auto {
    display: inline-block;
}

.pdflinkblock a.pp-button {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 10px 2px 10px !important;
		display: inline-flex !important;
    align-items: center;
    font-size: 0.9rem !important;
    color: rgb(2, 0, 133) !important;
    border-bottom: 2px solid rgb(2, 0, 133) !important;
    transition: opacity 0.2s ease;
}

.pdflinkblock .pp-button-icon{
	margin-right:10px;
}

.pdflinkblock a.pp-button:hover {
	text-decoration:none;
}


/* 役員・評議員 表*/
.sync-table-width table {
    table-layout: fixed;
    width: 100%;
}
.sync-table-width table td{
    padding:5px;
}

/* 1列目の幅 */
.sync-table-width table th:nth-child(1),
.sync-table-width table td:nth-child(1) {
    width: 30%; 
}

/* 2列目の幅 */
.sync-table-width table th:nth-child(2),
.sync-table-width table td:nth-child(2) {
    width: 25%;
}

/* 3列目の幅 */
.sync-table-width table th:nth-child(3),
.sync-table-width table td:nth-child(3) {
    width: 45%;
}


/* ============
　研修会・講習会調整
============================= */

/.kensyu1 table th {
	background-color:#efefef;
	width:15%;
}

.kensyu2 table th {
	background-color:#ffe18f;
	width:15%;
}

.kensyu3 table th {
	background-color:#f0afd0;
	width:15%;
}

.linkblock1{
	margin-left:1.5em;
}

.application1 .pp-infobox-wrap .pp-button-wrap {
	text-align:right;
}

/* 研究会 list調整 */
.research-list .fl-list-item-content{
	margin:0 0 0 3.6em;
	padding-right:4em;
}

/* 協賛会員ページ 調整 */
.supporting p{
}


/* ============

	自治福利厚生会会員ページ 調整 ============================= */

.post-password-required h1.fl-post-title{
display: none !important;
}

/* パスワードゲート */

/* 全体の背景 */
.p-gate {
    padding: 0 20px 130px;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* フォームを包む白いカード */
.p-gate__inner {
    background-color: #f0f4f8;
    max-width: 480px;
    width: 100%;
    padding: 60px 40px;
    border-radius: 24px;
    box-shadow: 0 40px 80px -20px rgba(2, 0, 133, 0.15); /* ブランドカラーを混ぜた影 */
    text-align: center;
}

/* アイコン */
.p-gate__icon {
    font-size: 40px;
    color: rgb(2, 0, 133);
    margin-bottom: 20px;
}

.p-gate__inner h3 {
    font-size: 24px;
    color: #1a202c;
    margin-bottom: 15px;
    letter-spacing: 0.05em;
}

.p-gate__msg {
    font-size: 15px;
    color: #718096;
    margin-bottom: 30px;
    line-height: 1.6;
}

/* 入力フィールド */
.p-gate__form input[type="password"] {
    width: 100%;
    padding: 16px;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    margin-bottom: 20px;
    font-size: 16px;
    transition: all 0.3s;
    outline: none;
}

.p-gate__form input[type="password"]:focus {
    border-color: rgb(2, 0, 133);
    box-shadow: 0 0 0 4px rgba(2, 0, 133, 0.1);
}

/* 決定ボタン */
.p-gate__form button {
    background-color: rgb(2, 0, 133);
    color: #ffffff;
    width: 100%;
    padding: 16px;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.p-gate__form button:hover {
    background-color: #0300a5; /* わずかに明るく */
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(2, 0, 133, 0.2);
}



/* ========================================
　注文フォーム 調整
========================================= */

.section-title {
	
}

div.orderlist_block {
	margin-bottom:3em !important;
}

.applicant-info.ff-t-container,.applicant-info2.ff-t-container {
    border: 1px solid #ccc !important;
}

.applicant-info.ff-t-container .ff-t-cell,.applicant-info2.ff-t-container .ff-t-cell {
	padding: 15px !important;
	background-color: #fff;            
  box-sizing: border-box; /* 枠線を幅に含める */
}

.applicant-info.ff-t-container.ff-column-container,.applicant-info2.ff-t-container.ff-column-container {
    margin-bottom: 15px;
}

.applicant-info .ff-el-group {
    display: flex;
    flex-direction: column !important; /* 縦並び */
    align-items: flex-start !important;
    margin: 0 !important;              /* 余計なマージンを排除 */
}

.applicant-info .ff-el-input--label {
    width: 100% !important;
    margin: 0 0 5px 0 !important;          padding: 0 !important;
    line-height: 1.4 !important;
}

.applicant-info #ff_3_zip{
	width:65% !important;
	display:inline-block;
}


/* インプット自体の調整 */
.applicant-info .ff-el-input--content {
    width: 100% !important;
    margin: 0;
}

input.address-upper{
	margin-bottom:20px!important;	
}

.applicant-info .ff-el-form-control {
    width: 100% !important;
}

.orderlist_block .ff-el-input--label{
	font-size:1.4em;
	margin-bottom:0.5em;
}

.orderlist_block .ff_repeater_table {
    table-layout: fixed;
    width: 100% !important;
    border-collapse: collapse;
}
.orderlist_block .ff_repeater_table  th .ff-el-input--label {
	font-size:1.3em;
	margin:0;
}

.orderlist_block .ff_repeater_table th:nth-child(1),
.orderlist_block .ff_repeater_table td:nth-child(1) {
    width: 75% !important;
    padding: 15px;
}

.orderlist_block .ff_repeater_table th:nth-child(2),
.orderlist_block .ff_repeater_table td:nth-child(2) {
    width: 20% !important;
    padding: 15px;
}

.orderlist_block .ff_repeater_table th:nth-child(3),
.orderlist_block .ff_repeater_table td:nth-child(3) {
    width: 5% !important;
    padding: 7px;
}


.orderlist_block .ff_repeater_table tbody tr td {
    border: 1px solid #ccc !important;
}

.orderlist_block .ff_repeater_table td:nth-child(2) .ff-el-input--content {
	display:inline-flex;
}

.orderlist_block .ff_repeater_table td:nth-child(2)  .ff-el-input--content::after {
  content:"部";
	margin-left:5px;
}

.order-confirmation #confirmation-content td:has(> span:nth-of-type(2)) {
    display: grid;
    grid-template-columns: 1fr auto; /* 1列目（書籍名）を最大、2列目（数量）を右寄せ */
    gap: 10px 30px; /* 行間10px、書籍名と数量の間30px */
    align-items: center;
}

/* 数量の後ろに「部」を追加 */
.order-confirmation #confirmation-content td > span:nth-of-type(even)::after {
    content: " 部";
    color: #333;
    font-weight: normal;
}

/* ボタンを包むコンテナの調整 */
.orderlist_block .ff-el-repeat-buttons-list {
    display: flex;
	justify-content: center !important;
    gap: 0px; 
}

/* プラス・マイナスボタン共通のスタイル */
.orderlist_block .ff-el-repeat-buttons-list span svg {
    width: 32px !important; 
    height: 32px !important;
    transition: transform 0.2s ease, opacity 0.2s ease;
    cursor: pointer;
}

/* ボタンの色の変更 */
.orderlist_block .ff-el-repeat-buttons-list span svg path {
    fill: rgb(2, 0, 133) !important; 
}

.orderlist_block .ff-el-repeat-buttons-list span:hover svg {
    transform: scale(1.1);
    opacity: 0.8;
}

/* 削除ボタン（マイナス）を少しだけ区別 */
.orderlist_block .ff-el-repeat-buttons-list .repeat-minus svg path { fill: #666 !important; } 


.form-explanation{
	margin-top:-3em;
}


/* 注文フォーム プレビュー部分調整 */

/* 全体 */
.book-preview {
    display: flex; 
    align-items: flex-start; 
    gap: 20px; 
    border: 1px solid #e2e8f0;
    border-radius: 12px; /* 角丸 */
    padding: 16px;
    margin-top: 15px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); /* 軽い影で浮かせる */
    box-sizing: border-box;
    width: 100%;
    overflow: hidden;
}

/* サムネイルエリア */
.book-preview .p-thumb-area {
    flex: 0 0 30% !important;
    max-width: 30%;
}

/* サムネイル画像 */
.book-preview .p-thumb {
    width: 100% !important;
    height: auto !important;
    display: block;
    border: 1px solid #aaa;
    object-fit: contain; /* 画像が歪まないように調整 */
}

/* 情報エリア（残り70%） */
.book-preview .p-info-area {
    flex: 1; /* 残りのスペースをすべて使う */
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* 書籍タイトル */
.book-preview .p-title {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.4;
    color: #1a202c;
    margin-bottom: 4px;
}

/* 詳細情報ラベルと値 */
.book-preview .p-info-area div {
    font-size: 0.9rem;
    color: #4a5568;
}

.book-preview .p-info-area div span {
    color: #000;
    margin-left: 4px;
}


/* 月刊誌定期購読申込 */

#magazine-form1 h3{
	margin-top:2em;
}

#magazine-form1 .seikyu-info{
	margin-top:2em;
	padding-top:3em;
	border-top:solid 1px #aaa;
}

#magazine-form1 .seikyu-info1{
	padding-left:2em;
	padding-right:2em;
}

#magazine-form1 .seikyu-info2{
	margin-bottom:3em;
	padding-left:2em;
	padding-right:2em;
	padding-bottom:2em;
	border-bottom:solid 1px #aaa;
}

#magazine-form1 .important-notice1{
	margin-top:1em;
	font-size:1rem;
}

#magazine-form1 .fluentform .ff_input-group {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important; 
  width: 100% !important;
}

#magazine-form1 .fluentform .ff_input-group-prepend,
#magazine-form1 .fluentform .ff_input-group-append {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}

#magazine-form1 .fluentform .ff_input-group-text {
  display: inline-block;
  white-space: nowrap;
  padding: 0 8px; 
background-color: #fff;
}

#magazine-form1 .fluentform .ff_input-group .ff-el-form-control {
  flex-grow: 1 !important; 
  width: 100% !important;  
  min-width: 0 !important; 
}

#magazine-form1 .fluentform .ff-el-form-control::placeholder {
  color: #ccdddd !important;
  opacity: 1 !important;
}

#magazine-form1 .fluentform .ff_input-group,
#magazine-form1 .fluentform .ff_input-group * {
  box-sizing: border-box !important;
}




.message_section{
	margin-top:5em;
}

/* 検索ページ */


/* 検索エリア全体 */
.search-container {
    max-width: 500px;
    margin: 2rem auto;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

/* タブボタンエリア */
.search-tabs {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}
.search-tab-btn {
    flex: 1;
    padding: 1.1rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    color: #64748b;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}
.search-tab-btn:hover {
    background: #f1f5f9;
    color: #1e293b;
}
/* アクティブなタブのスタイル */
.search-tab-btn.active {
    color: #0284c7; /* 財団サイトに合う信頼感のあるブルー */
    background: #fff;
    border-bottom: 3px solid #0284c7;
}

/* パネルの表示・非表示制御 */
.search-panels {
    padding: 2rem;
}
.search-panel {
    display: none; /* 初期状態はすべて非表示 */
}
.search-panel.active {
    display: block; /* activeクラスがついたパネルだけ表示 */
}

/* サイト内検索の簡易スタイリング */
.site-search-input-group {
    display: flex;
    gap: 10px;
}
.site-search-input-group .search-field {
    flex: 1;
    padding: 0.75rem 1rem;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 1rem;
}
.site-search-input-group .search-submit {
    padding: 0.9rem 2rem;
    background: #0284c7;
    color: #fff;
    border: none;
    border-radius: 4px;
    font-weight: bold;
    cursor: pointer;
    white-space: nowrap;
}
.site-search-input-group .search-submit:hover {
    background: #0369a1;
}

.feas-field-wrap{
	margin-bottom:1em;
}

.field-category1 label.feas_clevel_01,
.field-category2 label.feas_clevel_01 {
margin-left:0.5em;
}

.field-submit{
	margin-top:2em;
	text-align:center;
}

.field-submit [type="submit"]{
	padding:7px 2em;
}

.field-submit [type="reset"]{
	padding:3px 1em;
	margin-left:0.5em;
}


/* ========================================
　フッター
========================================= */

.footer-titles .pp-heading-content .pp-sub-heading {
	border-top:1px solid #ccc;
	padding-top:15px;
}

.footer-titles .pp-heading-content .pp-sub-heading .f-nav{
	padding-left:50px;
}

.footer-titles .pp-heading-content .pp-sub-heading .f-nav a{
	color:#333;
}


/*-- ストアへのフローティングボタン本体の設定 --*/
.floating-cart-btn {
    position: fixed;
    bottom: 150px;
    right: 12px;
    z-index: 9999; 
    width: 120px;
    height: 120px;
	  border:2px solid #ffffff;
    border-radius: 50%;
    background-color: #f97316;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #ffffff; /* 文字色 */
  box-shadow: 0 4px 12px rgba(249, 115, 22, 0.4);
    overflow: hidden; /* 重要 */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* マウスホバー時にボタン自体を少し上に浮かせ、影を濃くする（任意） */
.floating-cart-btn:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(249, 115, 22, 0.5);
text-decoration: none !important;
}

/* 中身（アイコンと文字）の設定 */
.fl-icon, .cart-text {
  position: relative;
  z-index: 2;
	color: #ffffff;
  transition: color 0.4s ease;
}

.fl-icon i {
    font-size: 30px;
    margin-bottom: 10px;
    transition: color 0.4s ease; 
}
.cart-text {
	text-align:center;
    font-size: 1.1em;
    font-weight: 700;
    line-height: 1.3;
}

/* ホバー時 */
.floating-cart-btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120%;
    height: 120%;
    background-color: #ffffff; /* 反転後の背景色（白） */
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.4s ease-out;
    z-index: 1;
}
.floating-cart-btn:hover::before {
    transform: translate(-50%, -50%) scale(1);
}

.floating-cart-btn:hover .cart-text,
.floating-cart-btn:hover .fl-icon i {
    color: #f97316 !important;
	text-decoration: none !important;
}


	
/*-- ストアへのフローティングボタン本体の設定 ここまで --*/



/* ページトップへ戻るボタン調整 */
/* トップに戻るボタンの基本デザイン */

#fl-to-top {
    /* 1. 形状とサイズ */
    width: 118px !important;
    height: 118px !important;
    border-radius: 50% !important;    
    background-color: #0073aa !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    border: 3px solid #ffffff;
    padding: 0 !important;
    transition: 0.5s !important;
}

#fl-to-top span.sr-only {
    display: none !important;
}

/* 矢印アイコンを「親の真ん中」に強制固定 */
#fl-to-top i {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;    
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
#fl-to-top i::before {
    content: "\f077"; 
    font-size: 24px;
    font-weight: 900;
}

/* ホバー時の挙動 */
#fl-to-top:hover {
    background-color: rgb(2, 0, 97) !important;
    transform: translateY(-5px); 
    transition: 0.4s;
}


.fl-builder-edit #fl-to-top {
	display:none !important;
}

/* ページトップへ戻るボタン調整ここまで */



/* =========================================
   📱 スマホ・タブレット用（レスポンシブ対応）
========================================= */


    /* normal Responsive */
    @media (max-width: 992px) {
			
			.jichi-fukuri { width:400px;
			margin-left: auto !important;
      margin-right: auto !important;
        float: none !important;
			}

}

/* 注文フォームのプレビューボックスのモバイル対応：画面が狭いときは自動幅に戻す（お好みで） */
@media (max-width: 600px) {
    .ff_repeater_table {
        table-layout: auto;
    }
    .ff_repeater_table th, .ff_repeater_table td {
        width: auto !important;
    }
}


@media screen and (max-width: 768px) {
	
#header_pcmenu {
    display: none;
	}
.seminar-block {  }
.seminar-box { width:100%; padding: 20px; }
	
	/* 2カラムを縦積みに変更 */
.magazine-top-row,
.magazine-buttons-row {
    flex-direction: column;
    }
    
/* スマホ時は画像幅を100%（最大400px）にして中央寄せ */
    .magazine-left-col {
        width: 100%;
        max-width: 400px;
        margin: 0 auto 20px;
    }

    /* スマホ時はテキストの左右余白をリセット（親要素の余白に依存させる） */
    .magazine-right-col {
        padding: 0; 
    }

    /* ボタンエリアの上下隙間調整 */
    .magazine-btn-wrap {
        width: 100%;
    }
			
/* タイトルとボタンの並びを「横」から「縦」に変更します */
    .c-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px; /* タイトルとボタンの間の余白（お好みで調整してください） */
    }

    /* タイトルと著者名を囲んでいる部分を、空いた幅いっぱいに広げます */
    .c-head > div {
        width: 100%;
    }

    /* ボタンを囲んでいる p タグを幅いっぱいに広げます */
    .c-head > p {
        width: 100%;
        text-align: center; /* ボタンを右側に配置します（左側に置きたい場合は left にします） */
    }
    .c-head p {
			margin-bottom:0;
			}
			.c-btn {
font-size:0.8em;
				padding:5px 10px;
				display: inline-block;
    }			
			
#fl-to-top {
  bottom: 10px !important;
  right: 10px !important;
    }


/*=======================================
 月刊誌（横幅が狭いときの設定）
======================================= */

	/* 日付とタイトルを上下2行に並び替える */
    .backnumber-info {
        flex-direction: column; 
        align-items: flex-start;
        gap: 2px;
        margin-left: 12px;
    }
    
    .backnumber-date {
        font-size: 0.75rem;
    }
    
    .backnumber-title {
        font-size: 0.88rem;
    }

}


/* 注文フォーム */
@media (max-width: 480px) {
    .book-preview {
        gap: 12px;
        padding: 12px;
    }
    .book-preview .p-title {
        font-size: 1rem;
    }
}


/* ====================================
  印刷用スタイル設定
 ====================================== */


@media print {
	
@page {
    size: A4 portrait; 
    margin: 20mm 15mm 20mm 15mm;
	}
	
.fl-page, 
  #page, 
  .site-container,
  main {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
}

#toppage-hero .fl-row-content-wrap {
		min-height:18vh;
	}

			/* --- カートボタンを消去 --- */
.floating-cart-btn,
  .fl-node-jbo7sw192xaf {
    display: none !important;
    visibility: hidden !important;
  }
	
	img, 
  tr,
  h1, h2, h3 {
 break-inside: avoid !important;
 page-break-inside: avoid !important; /* 古いブラウザ対応 */
  }

/* 本物の固定ヘッダー（全ページに貼り付く原因）は、印刷時にこの世から完全に消す */
  #header-wrapper {
    display: none !important;
  }

  /* JSで作った「印刷専用ヘッダー」は通常要素（static）として1ページ目だけに表示 */
  #header-wrapper-print {
    display: block !important;
    position: static !important;
  }
  #header-wrapper-print header.fl-builder-content {
    position: static !important;
    width: 100% !important;
  }

  /* 余計なスマホメニューやモーダルが溢れるのを防ぐ防波堤 */
  #header-wrapper-print .pp-offcanvas-content-wrap,
  #header-wrapper-print .fl-menu-mobile-toggle,
  #header-wrapper-print .fl-visible-mobile {
    display: none !important;
  }
}

/* --- アニメーションによる透明化・消失バグを根元から強制上書き --- */
  .bottom-button-block .fl-col.fl-animation {
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    
    /* ブラウザが印刷時にアニメーション処理をフリーズさせるのを防ぐ */
    animation: none !important;
    -webkit-animation: none !important;
    transform: none !important;
    -webkit-transform: none !important;
  }

  /* --- ボタンモジュール自体とそのラッパーも確実に表示 --- */
  .bottom-button-block .fl-module-button-group,
  .bottom-button-block .fl-button-group-button,
  .bottom-button-block .fl-button-wrap,
  .bottom-button-block .fl-button {
    opacity: 1 !important;
    visibility: visible !important;
    display: inline-block !important;
  }

  /* FontAwesomeなどのアイコン（iタグ）が消える場合の対策 */
  .bottom-button-block .fl-button-icon {
    opacity: 1 !important;
    visibility: visible !important;
    display: inline !important;
  
/* --- 1. タイトルエリアの高さバグを根本から治療（自動で極小サイズになります） --- */
  .page-title-area {
    display: block !important;
    height: auto !important;       /* 高さを中身（文字）に自動で合わせる */
    min-height: 0 !important;
    max-height: none !important;
    padding-top: 15mm !important;    /* タイトルの上の余白 */
    padding-bottom: 25mm !important; /* カーブを表現するために下部に広めの余白を確保 */
    margin: 0 !important;
    position: relative !important;
    overflow: visible !important;
  }

  /* --- 2. 【核心】暴れて高さを広げていた本物のSVG波線を完全に消去 --- */
  .page-title-area .pp-row-separator {
    display: none !important;
  }

  /* --- 3. 【新技】CSSのカーブを使って、印刷専用の美しい下部波線を再現 --- */
  .page-title-area::after {
    content: "" !important;
    position: absolute !important;
    bottom: -30mm !important; /* エリアの下側に配置 */
    left: -50% !important;    /* 画面外まで大きく広げる */
    width: 200% !important;   /* 巨大な正円を描くための横幅 */
    height: 40mm !important;
    background-color: #ffffff !important; /* 印刷背景の白 */
    border-radius: 50% !important;        /* これで綺麗な「下向きのカーブ（波線）」を作ります */
    z-index: 1 !important;
  }

  /* --- 4. タイトルやパンくずが白いカーブの裏に隠れないように手前に引き出す --- */
  .page-title-area .fl-row-content-wrap {
    position: relative !important;
    z-index: 2 !important;
    display: block !important;
    height: auto !important;
    padding: 0 !important;
  }

  /* 下のブロック（パンくずなど）も手前に引き出す */
  .fl-builder-content-764 .fl-row:not(.page-title-area) {
    position: relative !important;
    z-index: 3 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 2mm 0 !important;
    margin: 0 !important;
  }
	

}


