@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP');

#content_wrapper {
    max-width: 62em;
    width: 100%;
    margin: 10px auto 0px auto;
}

.cl { clear: both; }
.cl_space { border-bottom: 1em; }
.width100 { width: 100%; }

/* メインタイトルバナー */
.main_title_img {
    max-width: 64em;
    width: 100%;
    height: auto;
    margin-top: 1em;
    margin-bottom: 1em;
    border-radius: 8px !important;
    border: 1px solid rgba(228, 160, 160, 0.4) !important;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.02);
}

.bar_img {
    width: 100%;
    height: auto;
    margin-top: 0;
    margin-bottom: 0em;
}

p {
    font-family: 'Noto Sans JP', sans-serif !important;
    line-height: 180%;
    margin-left: 1em;
    margin-right: 1em;
}


/* =========================================================
   1. 新刊案内エリア（専用クラスで干渉を完全遮断）
   ========================================================= */
.shinkan {
    border: 1px solid #e2ece9 !important;
    border-radius: 12px !important;
    background-color: #fcfdfd !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
    padding: 1.2em !important;
    margin-bottom: 2em !important;
}

.col2_shinkan {
    width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    background-color: transparent !important;
    margin: 0 !important;
}

.col2_shinkan .col2_shinkan_img {
    width: 35% !important;
    flex-shrink: 0 !important;
    padding: 10px 15px 10px 10px !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.col2_shinkan .col2_shinkan_txt {
    width: 65% !important;
    flex-grow: 1 !important;
    padding: 10px !important;
    box-sizing: border-box !important;
}

.col2_shinkan_txt p {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.col2_shinkan .img_book {
    box-shadow: 3px 3px 3px -2px #343832;
    border-radius: 0px;
    border: 1px solid #cccccc;
    margin: 0 auto;
    max-width: 100% !important;
    height: auto;
    display: block;
}

.col2_shinkan .upcoming {
    display: inline-block;
    font-size: 1em;
    color: #FFFFFF;
    background-color: #9D3D35;
    font-weight: 500;	
    padding: 0em 0.5em;
    margin: 0.5em auto 0 0 !important;
    border-radius: 6px;
}

.col2_shinkan .product_title_static {
    font-size: 1.3em;
    font-weight: 800;
    margin: 0.5em 0 0 0 !important;
}

.col2_shinkan .product_title_static a {
    color: #a42d2d !important; 
    text-decoration: none;
}

.col2_shinkan .product_title_static a:hover {
    text-decoration: underline;
}

.col2_shinkan .subtitle {
    font-size: 1.1em;
    color: #000000 !important;
    margin: 0 0 0.8em 0 !important;
}

.col2_shinkan .book-lead {
    margin: 0 !important;
    font-size: 13px;
    color: #333333;
    font-weight: 100;
    line-height: 150%;
}


/* =========================================================
   2. メニューエリア（上下の余白をゆったり調整）
   ========================================================= */
#menu {
	border: 1px solid #dbe7df !important;
	border-radius: 12px !important;
	overflow: hidden !important;
	background-color: #f6fdf8 !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
	margin: 1em 0 2em 0 !important;
}

.menu_bar {
	font-size: 1.2em !important;
	color: #FFFFFF !important;
	background: #3e8e5b !important;
	text-align: left !important;
	margin: 0 !important;
	padding: 0.35em 1.2em !important;
	font-weight: bold !important;
	letter-spacing: 0.05em !important;
	text-shadow: 1px 1px 2px rgba(20, 70, 40, 0.5), -1px -1px 2px rgba(20, 70, 40, 0.3) !important;
}

/* メニューリスト全体の上下パディング（一番上と一番下のあき具合を拡大） */
#menu ul {
	margin: 0 !important;
	padding: 0.6em 0 1.2em 0 !important; /* ←上下にゆとりの余白を追加 */
}

.menu_list {
	margin: 0.8em 2em !important;
}


/* =========================================================
   3. 関連書籍 帯エリア（下側の角丸を解除してmenu帯と統一）
   ========================================================= */
#kanren_shoseki {
	border: 1px solid #ebdada !important;
	border-radius: 12px 12px 0 0 !important; /* 枠自体も上のみ角丸に */
	overflow: hidden !important;
	background-color: #fff9f9 !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03) !important;
	margin: 1em 0 2.5em 0 !important;
	width: 100% !important;
}

.shoseki_header_bar {
	background: linear-gradient(135deg, #e4a0a0 0%, #d88b8b 100%) !important;
	padding: 1.0em 1.4em !important;
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	border-radius: 11px 11px 0 0 !important; /* ←下側の角丸を無くして上側のみ角丸に */
}

.shoseki_header_title {
	color: #ffffff !important;
	font-size: 1.3em !important;
	font-weight: bold !important;
	margin: 0 !important;
	letter-spacing: 0.08em !important;
	text-shadow: 1px 1px 2px rgba(120, 40, 40, 0.5), -1px -1px 2px rgba(120, 40, 40, 0.3) !important;
}

.badge_shoseki {
	background-color: #ffffff !important;
	color: #c85a5a !important;
	font-size: 1.05em !important;
	font-weight: bold !important;
	padding: 0.2em 0.85em !important;
	border-radius: 20px !important;
	letter-spacing: 0.05em !important;
	border: 1px solid rgba(200, 90, 90, 0.15) !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}


/* =========================================================
   4. 下部コンテンツ（書籍リスト）
   ========================================================= */
:not(.shinkan) > .col2_book {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    background-color: #FFF;
    color: #000;
    text-align: left;
    margin-bottom: 1em;
}

:not(.shinkan) > .col2_book > div {
    width: 43%;
    padding: 10px;
    margin: 1em auto 2em auto;
}

:not(.shinkan) > .col2_book > div > img,
:not(.shinkan) > .col2_book > div > a > img {
    margin: 0 auto;
    display: block;
    text-align: center;
}

.center { text-align: center; }

.line, .line_2nd {
    margin: 1em auto 2em auto;
    background-color: #E0E0E0;
    border: none;
    height: 2px;
}

@media screen and (min-width: 640px) {
    .line_2nd { display: none; }	
}

.lead_book {
    margin-bottom: 1em;
    font-weight: 800;
    font-size: 1.2em;
    color: #5BC8AC;
}

.book_title {
    margin: 1em auto 0 0.9em;
    font-weight: 800;
    font-size: 1.2em;
    color: black;
}


/* =========================================================
   5. その他のWEBコンテンツエリア（強力リセット＋完全横並び）
   ========================================================= */
.pulldown_lead {
    color: black !important;
    text-align: center !important;
    margin: 1em 0em 0em 0em !important;
    font-size: 1em !important;
}

.side_menu_block_v2 {
    background-color: rgba(236, 234, 255, 1.00) !important;
    width: 100% !important;
    padding: 0.1em !important;
    margin-bottom: 1em !important;
}

/* Flexboxによる強力な左右2カラム配置 */
.side_menu_block_v2 .col_2_button {
    width: 80% !important;
    margin: 0 auto 1em auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

.side_menu_block_v2 .col_2_button > div {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50% !important;
    float: none !important;
    padding: 10px !important;
    box-sizing: border-box !important;
    text-align: center !important;
}

.btn_menu_01 {
    border: none !important;
    text-transform: uppercase !important;
    color: #fff !important;
    cursor: pointer !important;
    border-radius: 5px !important;
    font-weight: bold !important;
    padding: 10px 10px !important;
    background: #26aa57 !important;
    transition: .2s ease-in-out !important;
    display: inline-block !important;
    margin: 0px auto !important;
    width: 70% !important;
}

.btn_menu_02 {
    border: none !important;
    text-transform: uppercase !important;
    color: #fff !important;
    cursor: pointer !important;
    border-radius: 5px !important;
    font-weight: bold !important;
    padding: 10px 10px !important;
    background: #287bbb !important;
    transition: .2s ease-in-out !important;
    display: inline-block !important;
    margin: 0px auto !important;
    width: 70% !important;
}


/* =========================================================
   6. スマホ表示用メディアクエリ（640px以下）
   ========================================================= */
.sp_disp { display: none; }
.pc_disp { display: block; }

@media screen and (max-width: 640px) {
    .sp_disp { display: block; }
    .pc_disp { display: none; }
    
    .col2_shinkan {
        flex-wrap: wrap !important;
    }
    .col2_shinkan .col2_shinkan_img,
    .col2_shinkan .col2_shinkan_txt {
        width: 100% !important;
        padding: 5px !important;
    }
    
    :not(.shinkan) > .col2_book > div {
        width: 100% !important;
    }
    
    .shoseki_header_bar {
        padding: 0.7em 0.9em !important;
    }
    .shoseki_header_title {
        font-size: 1.05em !important;
    }
    
    /* スマホ時のみ縦並び */
    .side_menu_block_v2 .col_2_button {
        flex-direction: column !important;
        flex-wrap: wrap !important;
    }
    .side_menu_block_v2 .col_2_button > div {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}