Parcourir la source

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud lee il y a 5 ans
Parent
commit
753e8df4f1

+ 49 - 11
src/main/java/com/style24/front/biz/service/TsfCounselService.java

@@ -1,9 +1,11 @@
 package com.style24.front.biz.service;
 
+import java.io.File;
 import java.util.Collection;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -14,6 +16,8 @@ import com.style24.persistence.domain.Counsel;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
 import com.gagaframework.web.util.GagaStringUtil;
 
 /**
@@ -28,6 +32,9 @@ public class TsfCounselService {
 
 	@Autowired
 	private TsfCounselDao counselDao;
+	
+	@Autowired
+	private Environment env;
 
 	/**
 	 * 1:1문의 생성
@@ -42,20 +49,51 @@ public class TsfCounselService {
 		counsel.setCustNo(TsfSession.getInfo().getCustNo());
 		counsel.setCellPhnno(TsfSession.getInfo().getCellPhnno());
 		counsel.setEmail(TsfSession.getInfo().getEmail());
-
-		if (StringUtils.isNotBlank(counsel.getFile1SysFileNm())) {
-			counsel.setOrgFileNm1(counsel.getFile1OrgFileNm());
-			counsel.setSysFileNm1(counsel.getFile1SysFileNm());
-		}
-
-		if (StringUtils.isNotBlank(counsel.getFile2SysFileNm())) {
-			counsel.setOrgFileNm2(counsel.getFile2OrgFileNm());
-			counsel.setSysFileNm2(counsel.getFile2SysFileNm());
-		}
-
 		counsel.setRegNo(TsfSession.getInfo().getCustNo());
 		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
 		counselDao.createOneToOneQna(counsel);
+		
+		if(counsel.getOrgFileNmArr() != null) {
+			int ind = 1;
+			String[] orgItem = counsel.getOrgFileNmArr();
+			String[] sysItem = counsel.getSysFileNmArr();
+			
+			for (int i = 0; i < orgItem.length; i++) {
+				String imgInd = String.valueOf(ind);
+				if (ind < 10) {
+					imgInd = "0" + imgInd;
+				}
+				String planUploadPath = env.getProperty("upload.default.target.path");
+				String yearMonth = GagaDateUtil.getToday().substring(0, 6);
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, "/counsel");
+				File newFile = new File(GagaFileUtil.getConcatenationPath(planUploadPath, sysItem[i]));
+				planUploadPath = GagaFileUtil.getConcatenationPath(planUploadPath, yearMonth);
+				String newFilename = "COUNSEL_" + GagaDateUtil.getTodayDateTime() + "_" + imgInd + "." + org.springframework.util.StringUtils.getFilenameExtension(sysItem[i]);
+				File uniqueFile = GagaFileUtil.getUniqueFile(new File(GagaFileUtil.getConcatenationPath(planUploadPath, newFilename)));
+				// Rename a file
+				File path = new File(planUploadPath);
+				if (!path.exists()) {
+					path.mkdir();
+				}
+				newFile.renameTo(uniqueFile);
+				
+				if (i == 0) {
+					counsel.setOrgFileNm1(orgItem[i]);
+					counsel.setSysFileNm1("/counsel/" + yearMonth + "/" + newFilename);
+				}else {
+					counsel.setOrgFileNm2(orgItem[i]);
+					counsel.setSysFileNm2("/counsel/" + yearMonth + "/" + newFilename);
+				}
+				
+				ind++;
+			}
+			
+			counselDao.updateOneToOneQna(counsel);
+		}
+		
+
+		
+		
 	}
 
 	/**

+ 2 - 2
src/main/java/com/style24/persistence/domain/Counsel.java

@@ -68,9 +68,9 @@ public class Counsel extends TscBaseDomain {
 	}
 	
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] fileOrgFileNm;
+	private String[] orgFileNmArr;
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private String[] fileSysFileNm;
+	private String[] sysFileNmArr;
 
 
 	// Pagination

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfCounsel.xml

@@ -15,7 +15,7 @@
 	</sql>
 	
 	<!-- 1:1문의 생성 -->
-	<insert id="createOneToOneQna" parameterType="Counsel">
+	<insert id="createOneToOneQna" parameterType="Counsel" useGeneratedKeys="true" keyProperty="counselSq">
 		/* TsfCounsel.createOneToOneQna */
 		INSERT INTO TB_COUNSEL (
 		       COUNSEL_SQ

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -1117,7 +1117,7 @@
 	<!-- 브랜드 전체 조회 -->
 	<select id="getAllBrandList" parameterType="BrandGroup" resultType="BrandGroup">
 		/* TsfDisplay.getAllBrandList */
-		SELECT	Z.BRAND_GROUP_NO
+		SELECT	DISTINCT Z.BRAND_GROUP_NO
 		      , FN_GET_BRAND_INITIAL(Z.BRAND_GROUP_NM) AS BRAND_INITIAL
 		      , Z.BRAND_GROUP_NM
 		      , Z.DISP_NM_LANG

+ 5 - 13
src/main/webapp/WEB-INF/views/mob/callcenter/OneToOneQnaFormMob.html

@@ -150,17 +150,9 @@
 											<div class="input_wrap">
 												<!-- 이미지첨부 -->
 												<div class="form_field">
-													<div class="imgUpload">
-														<label for="fileAdd" class="fileAdd">업로드</label>
-														<input type="file" id="fileAdd" name="file1">
-														<input type="hidden" name="file1OrgFileNm"/>
-														<input type="hidden" name="file1SysFileNm"/>
-													</div>
 													<div class="imgUpload">
 														<label for="fileAdds" class="fileAdd">업로드</label>
 														<input type="file" id="fileAdds" name="file2">
-														<input type="hidden" name="file2OrgFileNm"/>
-														<input type="hidden" name="file2SysFileNm"/>
 													</div>
 												</div>
 												<!-- //이미지첨부 -->
@@ -329,14 +321,14 @@
 					if (!gagajf.isNull(item.sysFileNm1)) {
 						tag += '		<span class="thumb_pic">\n';
 // 						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
-						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="">\n';
+						tag += '			<img src="' + _uploadImageUrl + '/' + item.sysFileNm1 + '" alt="">\n';
 						tag += '		</span>\n';
 					}
 					
 					if (!gagajf.isNull(item.sysFileNm2)) {
 						tag += '		<span class="thumb_pic">\n';
 // 						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/image/bg_profile.png\'">\n';
-						tag += '			<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="">\n';
+						tag += '			<img src="' + _uploadImageUrl + '/' + item.sysFileNm2 + '" alt="">\n';
 						tag += '		</span>\n';
 					}
 					
@@ -462,8 +454,8 @@
 				, file
 				, function(result) {
 					// 업로드한 파일명 설정
-					$('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
-					$('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
+					$(".pics").children().last().append("<input type='hidden' name='orgFileNmArr' value='"+result.oldFileName+"'>");
+					$(".pics").children().last().append("<input type='hidden' name='sysFileNmArr' value='"+result.newFileName+"'>");
 				}
 		);
 	}
@@ -483,7 +475,7 @@
 						, function() {
 							cfnGoToPage(_PAGE_ONETOONE_QNA);
 						}
-				);
+				); 
 			}
 		});
 	});

+ 11 - 0
src/main/webapp/WEB-INF/views/mob/display/CategoryMainFormMob.html

@@ -115,6 +115,17 @@
 												<p class="itemPrice"><span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</span>[[${#numbers.formatInteger(item.currPrice,1,'COMMA')}]]
 													<span class=" itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 												</p>
+												<div class="itemcolorchip">
+													<th:block th:each="option, idx : ${item.colorArr}" th:with="colorArray=${#strings.arraySplit(idx.current,':')}">
+														<span th:if="${colorArray[1]=='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';border:1px solid #aaa;'}" class="chip_color" th:value="${colorArray[0]}"></span>
+														<span th:if="${colorArray[1]!='#FFFFFF'}" th:style="${'background-color:'+colorArray[1]+';'}" class="chip_color" th:value="${colorArray[0]}"></span>
+													</th:block>
+												</div>
+												<p class="itemBadge">
+													<th:block th:each="option, idx : ${item.benefitArr}" th:with="iconArray=${#strings.arraySplit(idx.current,':')}" >
+														<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
+													</th:block>
+												</p>
 												<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 											</a>
 										</div>

+ 44 - 22
src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html

@@ -315,8 +315,8 @@
 	}
 
 	$(document).ready(function(){
-		//setHtop();
-
+		setHtop();
+		more_br();
 		var spc = $('.swiper-pagination-current');
 		var spt = $('.swiper-pagination-total');
 		setInterval(function(){
@@ -356,6 +356,38 @@
 		}
 	}
 
+	// 210609_ 추가 : '더보기' 노출관련 (show/hide, 토글)
+	// 더보기 show/hide
+	function more_br(){
+		var desc_br = $('.lb_text .active').height();
+		if (desc_br < 50) {
+			$('.lb_text .active').css({"height": "auto"});
+			$('.lb_text .btn').css({"display": "none"});
+			return 0;
+		}else{
+			$('.lb_text .active').css({"height": "3.4rem"});
+			$('.lb_text .btn').css({"display": "inline-block"});
+		};
+	};
+	// 더보기 토글
+	var count = 0;
+	function view_fold(){
+		document.querySelector(".lb_text button").onclick = function () {
+			if(count === 0) {
+				$('.lb_text .active').css('height', 'auto');
+				document.querySelector(".lb_text .btn p").innerText="접기";
+				document.querySelector(".lb_text .btn span").style.background="url(/images/mo/br_arrow_up.png)";
+				count = 1;
+			} else {
+				$('.lb_text .active').css('height', '3.4rem');
+				document.querySelector(".lb_text .btn p").innerText="더보기";
+				document.querySelector(".lb_text .btn span").style.background="url(/images/mo/br_arrow_down.png)";
+				count = 0;
+			}
+		}
+	};
+	view_fold();
+
 	// 룩북 슬라이드
 	var rcmdPicimgSwiper = new Swiper('.recommendedArea .area_slider .swiper-container', {
 		loop: true,
@@ -371,7 +403,7 @@
 		//},
 		on: {
 			slideChange:function(){
-				// 05.06_ 추가 : .ioTit , .ioBtn
+				// 210506_ 추가 : .ioTit , .ioBtn
 				$('.text_cont').removeClass('active');
 				$('.ioTit').removeClass('active');
 				$('.itemsOut').removeClass('active');
@@ -380,6 +412,9 @@
 				$('.ioTit').eq(this.realIndex).addClass('active');
 				$('.itemsOut').eq(this.realIndex).addClass('active');
 				$('.ioBtn').eq(this.realIndex).addClass('active');
+				// 210609_ 추가 : '더보기' 노출관련
+				$('.text_cont').removeAttr("style");
+				more_br();
 			}
 		},
 	});
@@ -406,26 +441,13 @@
 		//},
 	});
 
-	// 더보기
-	var count = 0;
-	function view_fold(){
-		document.querySelector(".lb_text button").onclick = function () {
-			if(count === 0) {
-				//document.querySelector(".lb_text .text_cont").style.height = "auto";
-				$('.lb_text .text_cont').css('height', 'auto');
-				document.querySelector(".lb_text .btnText p").innerText="접기";
-				document.querySelector(".lb_text .btnText span").style.background="url(/images/mo/br_arrow_up.png)";
-				count = 1;
-			} else {
-				//document.querySelector(".lb_text .text_cont").style.height = "3.4rem";
-				$('.lb_text .text_cont').css('height', '3.4rem');
-				document.querySelector(".lb_text .btnText p").innerText="더보기";
-				document.querySelector(".lb_text .btnText span").style.background="url(/images/mo/br_arrow_down.png)";
-				count = 0;
-			}
-		}
+	//210527_ 추가 : #htopSub 서브헤더와 페이지 키클래스 .br을 가지고 있을 시 여백 조정.
+	if($('#htopSub').length && $('main').hasClass('br')){
+		$('section.br_lookbook').css('marginTop','5.5rem');
+	}else{
+		$('section.br_lookbook').css('marginTop','11rem');
 	}
-	view_fold();
+
 	/*]]>*/
 </script>
 

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html

@@ -32,7 +32,7 @@
 											<div class="img">
 												<img th:src="${@environment.getProperty('domain.image') + item.imgPath2}" alt="">
 											</div>
-											<div class="txtWrap">
+											<div class="txtWrap" th:classAppend="${(item.strVar7 == 'BLACK') ? '' :'w'}">
 												<p class="subject">
 													<input type="hidden" name="mainTitle" th:value="${item.strTitle1}"/>
 												</p>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaFormWeb.html

@@ -199,13 +199,13 @@
 					
 					if (!gagajf.isNull(item.sysFileNm1)) {
 						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm1 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
 						tag += '					</span>\n';
 					}
 					
 					if (!gagajf.isNull(item.sysFileNm2)) {
 						tag += '					<span class="thumb_pic">\n';
-						tag += '						<img src="' + _uploadImageUrl + '/counsel/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
+						tag += '						<img src="' + _uploadImageUrl + '/' + item.sysFileNm2 + '" alt="" onerror="this.src=\'/images/pc/thumb/bg_item_none.png\'">\n';
 						tag += '					</span>\n';
 					}
 					

+ 6 - 6
src/main/webapp/WEB-INF/views/web/callcenter/OneToOneQnaRegisterFormWeb.html

@@ -84,14 +84,14 @@
 													<div class="imgUpload">
 														<label for="fileAdd" class="fileAdd">첫번째업로드</label>
 														<input type="file" id="fileAdd" name="file1"/>
-														<input type="hidden" name="file1OrgFileNm"/>
-														<input type="hidden" name="file1SysFileNm"/>
+														<input type="hidden" name="orgFileNmArr" id="file1OrgFileNm"/>
+														<input type="hidden" name="sysFileNmArr" id="file1SysFileNm"/>
 													</div>
 													<div class="imgUpload">
 														<label for="fileAdds" class="fileAdd">두번째업로드</label>
 														<input type="file" id="fileAdds" name="file2"/>
-														<input type="hidden" name="file2OrgFileNm"/>
-														<input type="hidden" name="file2SysFileNm"/>
+														<input type="hidden" name="orgFileNmArr" id="file2OrgFileNm"/>
+														<input type="hidden" name="sysFileNmArr" id="file2SysFileNm"/>
 													</div>
 												</div>
 												<!-- //이미지첨부 -->
@@ -185,8 +185,8 @@
 				, file
 				, function(result) {
 					// 업로드한 파일명 설정
-					$('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
-					$('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
+					$('input[id=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
+					$('input[id=' + obj.name + 'SysFileNm]').val(result.newFileName);
 				}
 		);
 	}

+ 4 - 2
src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html

@@ -70,7 +70,7 @@
 			<th:block th:if="${contentsLoc=='004'}">
 				<div class="content wide dp_category">
 					<div class="cont_head">
-						<h4>카테고리 바로가기</h4>
+						<h4 th:text="${contentsTitle!=null and contentsTitle!=''}?${contentsTitle}:'카테고리 바로가기'"></h4>
 					</div>
 					<div class="cont_body">
 						<div class="dp_cate_list">
@@ -120,7 +120,9 @@
 			<th:block th:if="${contentsLoc=='003'}">
 				<div class="content dp_best_list" th:if="${bestGoodsList != null}">
 					<div class="cont_head">
-						<h3 class="displayH" th:text="${contentsTitle}">베스트</h3>
+						<div>
+						<h4 th:text="${contentsTitle}">베스트</h4>
+						</div>
 					</div>
 					<div class="cont_body">
 						<div class="list_content">

+ 9 - 2
src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html

@@ -56,10 +56,11 @@
 				</div>
 			</div>
 
-			<div class="content br_lookbook_view cont_txts" th:if="${lookbookDetailList != null}">
+			<div class="content br_lookbook_view cont_txts" id="lbImgDesc" th:if="${lookbookDetailList != null}">
 				<div class="cont_body">
 					<th:block th:each="item, stat : ${lookbookDetailList}">
-						<div class="text_cont" th:text="${item.imgDesc}">
+						<div class="text_cont">
+							<input type="hidden" name="title" th:value="${item.imgDesc}">
 						</div>
 					</th:block>
 				</div>
@@ -395,6 +396,12 @@
 		}
 	});
 
+	$('#lbImgDesc .text_cont').each(function (){
+		var brText = $(this).find("input[name=title]").val();
+		let tag = brText.replace(/(?:\r\n|\r|\n)/g, '<br>');
+		$(this).append(tag);
+	});
+
 /*]]>*/
 </script>
 

+ 34 - 31
src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html

@@ -182,40 +182,43 @@
 /*<![CDATA[*/
 	$(document).ready(function() {
 		fnSetCategory1Depts();
-	});
 
-	/* SLIDE - 상단 스크롤 슬라이드 배너 */
-	var submain_slide = new Swiper('.dp_submain .swiper-container', {
-		slidesPerView: 4,
-		spaceBetween: 20,
-		freeMode:true,
-		scrollbar: {
-			el: '.dp_submain .swiper-scrollbar',
-			hide: false,
-		},
-	});
+		/* SLIDE - 상단 스크롤 슬라이드 배너 */
+		var submain_slide = new Swiper('.dp_submain .swiper-container', {
+			slidesPerView: 4,
+			spaceBetween: 20,
+			freeMode:true,
+			scrollbar: {
+				el: '.dp_submain .swiper-scrollbar',
+				hide: false,
+			},
+		});
 
-	/* SLIDE - MD ITEMS */
-	var dp_submain_mditem = new Swiper('.dp .md_item .swiper-container', {
-		slidesPerView: 5,
-		spaceBetween: 20,
-		watchSlidesProgress: true,
-		watchSlidesVisibility: true,
-		allowTouchMove: false,
-		speed : 1000,
-		autoplay: {
-			delay: 3000,
-			disableOnInteraction:false,
-		},
-		navigation: {
-			nextEl: '.dp .md_item .swiper-button-next',
-			prevEl: '.dp .md_item .swiper-button-prev',
-		},
-		pagination: {
-			el: '.dp .md_item .swiper-pagination',
-			clickable: true,
-		},
+		/* SLIDE - MD ITEMS */
+		var dp_submain_mditem = new Swiper('.dp .md_item .swiper-container', {
+			slidesPerView: 5,
+			slidesPerGroup: 5,
+			spaceBetween: 20,
+			loop: true,
+			watchSlidesProgress: true,
+			watchSlidesVisibility: true,
+			allowTouchMove: false,
+			speed : 1000,
+			// autoplay: {
+			//     delay: 3000,
+			//     disableOnInteraction:false,
+			// },
+			navigation: {
+				nextEl: '.dp .md_item .swiper-button-next',
+				prevEl: '.dp .md_item .swiper-button-prev',
+			},
+			pagination: {
+				el: '.dp .md_item .swiper-pagination',
+				clickable: true,
+			},
+		});
 	});
+
 // 카테고리1Depts 설정
 	var fnSetCategory1Depts = function() {
 		let allCate = [[${allCateList}]];

+ 6 - 4
src/main/webapp/ux/mo/css/layout_m.css

@@ -1717,8 +1717,9 @@
 .dp .dp_outlets .outlets_visual img {width: 100%;}
 .dp .dp_outlets .outlets_visual .swiper-pagination-fraction {bottom: 4rem ; width:auto; left: 2rem; background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .dp .dp_outlets .outlets_visual .swiper-pagination-current {font-weight: 600;}
-.dp .dp_outlets .outlets_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: fff;}
-.dp .dp_outlets .outlets_visual .txtWrap p {color: #fff; font-size: 3rem; font-weight: 500; line-height: 1.2;}
+.dp .dp_outlets .outlets_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: #222;}
+.dp .dp_outlets .outlets_visual .txtWrap.w {color: #fff;}
+.dp .dp_outlets .outlets_visual .txtWrap p {font-size: 3rem; font-weight: 500; line-height: 1.2;}
 .dp .dp_outlets .outlets_visual .txtWrap p.txt_xs {font-size: 1.4rem; margin-top: 1.6rem; font-weight: 300;}
 .dp .dp_outlets .dp_cate_list {margin:-1.2rem 0;}
 .dp .dp_outlets .dp_cate_list:after {content:''; display: block; clear: both;}
@@ -2311,8 +2312,9 @@
 .br .br_main .submain_visual img {width: 100%;}
 .br .br_main .submain_visual .swiper-pagination-fraction {position:absolute; bottom: 4rem ; width:auto; left: 2rem; background: rgba(34,34,34,.5); color: #fff; font-weight: 300;padding:0.5rem 0.7rem; line-height: 1; font-size: 1.2rem; border-radius:2rem;}
 .br .br_main .submain_visual .swiper-pagination-current {font-weight: 600;}
-.br .br_main .submain_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: fff;}
-.br .br_main .submain_visual .txtWrap p {color: #fff; font-size: 3rem; font-weight: 500; line-height: 1.2;}
+.br .br_main .submain_visual .txtWrap {position: absolute; left: 2rem; bottom: 9rem; color: #222;}
+.br .br_main .submain_visual .txtWrap.w {color: #fff;}
+.br .br_main .submain_visual .txtWrap p {font-size: 3rem; font-weight: 500; line-height: 1.2;}
 .br .br_main .submain_visual .txtWrap p.txt_xs {font-size: 1.4rem; margin-top: 1.6rem; font-weight: 300;}
 .br .br_main .br_top_info{position:relative; margin-top:-1rem;}
 .br .br_main .br_top_info .br_subtitle{text-align:left;}