/* CSS Document */

/*基本指定*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
    background: transparent;
    border: 0;
    font-size: 100%;
    margin: 0;
    outline: 0;
    padding: 0;
    vertical-align: baseline;
}

/*画像指定*/
img{ border: none; max-width: 100%; height: auto; vertical-align: middle; }
a img { border: none; }

/* リンク色（ページ全体） */
a { color: #005ab3; text-decoration: underline; }
a:hover { color: #ff9900; text-decoration: none; }

/*文字装飾*/
.red { color: #ff0000; }
.b { font-weight: bold; }
.yline { background: linear-gradient(transparent 60%, #ffff66 60%); }

/*回り込み解除*/
.c_both{ clear:both;}

/*コンテンツ指定*/
body {
	text-align: center;
	font-size:16px;
	font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Meiryo, メイリオ, Osaka, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
	background-color: #f4f8fb;
	background-image: url(img/body_bg.gif);
	background-repeat: repeat;
	margin-right: auto;
	margin-left: auto;
    color: #333;
    line-height: 1.7;
}
.sp_only { display: none; }

/*==============================
 PC用スタイル (641px以上)
==============================*/
@media screen and (min-width: 641px){

.img_r{ float:right; padding-left:15px; margin: 0 0 5px 15px; }
.float-right { margin: 5px 0 10px 15px; float:right; display:inline; }
.float-left { margin: 5px 15px 10px 0; float:left; display:inline; }

#wrapper{ 
    width:820px; 
    background-image: url(img/bg.gif); 
    margin: 0 auto; 
    padding: 0px; 
    box-shadow: 0 0 15px rgba(0,0,0,0.1); 
}

/* ▼▼▼ ヘッダー ▼▼▼ */
#header{ 
    width:800px; 
    margin:0 auto; 
    position: relative; 
}
#header a { text-decoration: none; }
#head_img{ 
    position: relative; 
    border-bottom:5px solid #336699; 
    margin-bottom:30px;
    height: 350px;
    overflow: hidden;
}
#head_img img { 
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}
#header a:hover #head_img img {
    transform: scale(1.05);
}
h1{
	position: absolute;
	bottom: 35px; /* 下からの位置を調整 */
	left: 0;
	right: 0;
	margin: 0 auto;
	padding: 15px 20px;
	background-color: rgba(0, 42, 85, 0.7);
	color: #FFFFFF;
	font-size: 28px;
	font-weight: bold;
	text-align: center;
	line-height: 1.4;
	text-shadow: 1px 1px 3px #000;
    width: 90%;
    box-sizing: border-box;
}

/* ▼▼▼ メインコンテンツ ▼▼▼ */
h2{ 
    font-size: 22px; 
    font-weight:bold; 
    clear:both; 
    color: #FFFFFF; 
    text-align: center; 
    padding: 12px 10px;
    margin: -16px -16px 20px -16px;
    border-radius: 5px 5px 0 0;
    background: #005ab3;
    background: linear-gradient(to right, #005ab3, #007bff);
}
h3{ 
    font-size: 20px; 
    font-weight:bold; 
    border-bottom: 3px solid #ffcc00;
	border-left: 10px solid #005ab3;
    margin: 25px 0 20px; 
    padding: 8px 15px; 
    line-height: 1.5; 
}

#content{ 
    width:760px; 
    margin: 0 auto; 
    padding: 0 20px 20px 20px;
    background: #fff;
}
.inner{ 
    margin: 10px 0 30px 0; 
    border: 1px solid #cce0f4; 
    padding: 15px; 
    background: #fff; 
    border-radius: 5px; 
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}
.inner p{ 
    margin:0 0 15px; 
    font-size: 16px; 
    text-align:justify; 
}
.inner ol.reason-list {
    margin: 15px 0 15px 25px;
    padding: 0;
}
.inner ol.reason-list li {
    margin-bottom: 15px;
    padding-left: 10px;
}

/* おすすめ商品 */
.recommend-box { margin-top: 20px; }
.recommend-item {
    overflow: hidden;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px dashed #ccc;
}
.recommend-item:last-child { border-bottom: none; margin-bottom: 0; }
.recommend-item h4 {
    font-size: 18px;
    color: #005ab3;
    margin-bottom: 15px;
    font-weight: bold;
}
.recommend-item img { border: 1px solid #ddd; padding: 4px; background: #fff; border-radius: 4px; }
.recommend-text { font-size: 16px !important; margin: 0 !important; }

/* 口コミ */
.review-box { margin-top: 20px; }
.review-comment {
    background: #f0f8ff;
    border: 1px solid #a2c1de;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 15px !important;
    position: relative;
}
.review-comment:last-child { margin-bottom: 0 !important; }
.review-meta {
    display: block;
    text-align: right;
    margin-top: 10px;
    font-size: 14px;
    color: #555;
}

/* ▼▼▼ フッター ▼▼▼ */
#footer{ text-align: center; clear: both; overflow:hidden; }
#footer p { margin: 15px 30px; text-align: center; font-size: 14px; }
address { 
    font-style: normal; 
    color: #FFFFFF; 
    text-align: center; 
    display: block; 
    background: #333; 
    font-size: 12px; 
    margin: 30px auto 0px auto; 
    padding: 10px 0px; 
    width: 820px; 
}

/*フリースペース*/
#space{ 
    margin: 20px 0; 
    padding: 20px; 
    font-size: 14px; 
    border: 2px dashed #ff9900; 
    background: #fff8e1; 
    clear: both; 
    text-align: left; 
    line-height: 1.8; 
    border-radius: 5px; 
}
#space p { font-weight: bold; margin: 0; }

/*ボタン*/
.bt_c{ text-align:center; clear:both; margin: 30px auto; }
.bt_c a { display:inline-block; }
.bt_c a img{
    border-radius: 8px;
    box-shadow: 0 4px 0 #c66200;
    transition: all 0.2s ease;
}
.bt_c a:hover img{
    transform: translateY(2px);
    box-shadow: 0 2px 0 #c66200;
    opacity: 0.9;
}
}


/*==============================
 スマホ用スタイル (640px以下)
==============================*/
@media screen and (max-width: 640px){
body { font-size: 15px; }
.sp_only { display: block; } 

.img_r{ float: none; display: block; margin: 15px auto; max-width: 100%; height: auto;}
.float-left, .float-right { float:none; display: block; margin: 10px auto; max-width: 90%; height:auto; }

#wrapper, address { width: 100%; }

/* ▼▼▼ ヘッダー ▼▼▼ */
#header { width: 100%; position: relative; }
#header a { text-decoration: none; }
#head_img{ 
    position: relative; 
    border-bottom: 4px solid #336699; 
    height: auto; 
    margin-bottom: 20px;
    max-height: 250px;
    overflow: hidden;
}
#head_img img { 
    display: block;
    width: 100%;
    object-fit: cover;
}
h1{
	position: absolute;
	bottom: 4px;
	left: 0;
	right: 0;
	margin: 0;
	padding: 10px;
	background-color: rgba(0, 42, 85, 0.7);
	color: #FFFFFF;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	line-height: 1.5;
	text-shadow: 1px 1px 2px #000;
	width: 100%;
    box-sizing: border-box;
}

/* ▼▼▼ メインコンテンツ ▼▼▼ */
h2{ 
    font-size: 18px; 
    font-weight:bold; 
    color: #FFFFFF; 
    padding: 12px; 
    margin: -11px -11px 15px -11px;
    text-align: left; 
    border-radius: 5px 5px 0 0;
    background: #005ab3;
    background: linear-gradient(to right, #005ab3, #007bff);
}
h3{ 
    font-size: 17px; 
    font-weight:bold; 
    border-bottom: 2px solid #ffcc00;
    border-left: 8px solid #005ab3;
    padding: 10px 12px; 
    margin: 20px 0 15px; 
}
#content{ padding: 0 10px 10px; }
.inner{ 
    margin: 0 0 20px; 
    border: 1px solid #cce0f4; 
    padding: 10px; 
    background: #fff; 
}
.inner p{ font-size: 15px; margin-bottom: 1em; }
.inner ol.reason-list {
    margin: 15px 0 15px 20px;
    padding: 0;
}
.inner ol.reason-list li {
    margin-bottom: 10px;
}

.recommend-item h4 { font-size: 16px; margin-bottom: 10px; }
.recommend-text { font-size: 15px !important; }

.review-comment { padding: 15px; }
.review-meta { font-size: 13px; }

.bt_c a img { max-width: 90%; height: auto; }
#space { margin: 15px 0; padding: 15px; font-size: 13px; }

#footer p { margin: 15px; font-size: 12px; }
address { margin-top: 20px; padding: 8px 0; }
}


/*==============================
 アコーディオン (共通スタイル)
==============================*/
.accordion-container {
    width: 100%;
    margin: 20px auto;
}
.accordion-item {
    border: 1px solid #a2c1de;
    margin-bottom: 10px;
    border-radius: 5px;
    overflow: hidden;
}
.accordion-title {
    background-color: #f0f8ff;
    color: #005ab3;
    padding: 15px;
    cursor: pointer;
    font-weight: bold;
    position: relative;
    font-size: 16px;
    transition: background-color 0.3s ease;
}
.accordion-title:hover {
    background-color: #e6f4ff;
}
.accordion-title::after {
    content: '+';
    position: absolute;
    right: 20px;
    font-size: 24px;
    transition: transform 0.3s ease;
    line-height: 1;
}
.accordion-title.active::after {
    transform: rotate(45deg);
}
.accordion-content {
    background-color: #ffffff;
    padding: 0 20px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out, padding 0.4s ease-out;
}
.accordion-content p {
    margin: 0 !important;
    font-size: 15px;
    line-height: 1.8;
    padding: 20px 0;
}
.accordion-item.active .accordion-content {
    /* JavaScriptでmax-heightが設定されるため、ここでは不要 */
}

@media screen and (max-width: 640px){
    .accordion-title { font-size: 15px; padding: 12px; }
    .accordion-content p { font-size: 14px; padding: 15px 0; }
}