@charset "utf-8";

/*----------------------------
	top
------------------------------*/

/* bgWrap */
.bgWrap {
	position: relative;
	padding-bottom: 8rem;
}
.bgWrap::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background: #004136;
	z-index: -1;
}

/* mvWrap */
.mvWrap h1 {
	width: 100%;
	max-width: 110rem;
	margin: 0 auto;
}
.mvWrap h1 img {
	margin: 0 auto;
}

/* leadWrap */
.leadWrap {
	position: relative;
	padding: 9.5rem 0 7rem;
	font-family: "Noto Serif CJK JP", serif;
	font-weight: 500;
}
.leadWrap::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 113.4rem;
	background: url(/base/pc/store/special/christmas/2025/img/top/bg.png) no-repeat top center;
	background-size: 100% 113.4rem;
	top: -16.6rem;
	left: 0;
	z-index: -1;
}
.leadWrap .leadTtl {
	width: 42.7rem;
	margin: 0 auto;
	line-height: 1;
}
.leadWrap .leadJp {
	margin-top: 1.5rem;
	padding-bottom: 3.5rem;
	font-size: 2.3rem;
	text-align: center;
	position: relative;
}
.leadWrap .leadJp::after {
	content: "";
	position: absolute;
	background: #000;
	width: 3rem;
	height: 0.3rem;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
.leadWrap .leadTxt {
	padding: 4rem 0 0;
	font-size: 2rem;
	line-height: 5rem;
	text-align: center;
}
@media (max-width: 2000px) {
	.leadWrap::before {
		background-size: 200rem 113.4rem;
	}
}
@media (max-width: 768px) {
	.leadWrap {
		padding: 9rem 0 7.5rem;
	}
	.leadWrap::before {
		width: 100%;
		height: 133.6rem;
		background: url(/base/pc/store/special/christmas/2025/img/top/bg_sp.png) no-repeat top center;
		background-size: 100% 133.6rem;
		top: -6.6rem;
	}
	.leadWrap .inner {
		padding: 0;
	}
	.leadWrap .leadTtl {
		padding: 0;
		width: 53.5rem;
	}
	.leadWrap .leadJp {
		font-size: 3.3rem;
	}
	.leadWrap .leadJp::after {
		width: 4.8rem;
		height: 0.3rem;
	}
	.leadWrap .leadTxt {
		padding: 3rem 0 0;
		font-size: 2.8rem;
		line-height: 6.8rem;
	}
}

/* btn */
.btn a {
	display: block;
	width: 100%;
	font-size: 2rem;
	line-height: 1;
	font-weight: 600;
	text-align: center;
	border: solid 1px #000;
	padding: 0.5rem 0 0.6rem;
	position: relative;
	margin: 0 auto;
}
.btn a::after {
	content: "";
	position: absolute;
	border-top: solid 1px #000;
	border-right: solid 1px #000;
	width: 1.2rem;
	height: 1.2rem;
	top: calc(50% - 0.7rem);
	right: 1.2rem;
	transform: rotate(45deg);
}
.btn.comming a {
	color: #969696;
	border: solid 1px #969696;
	pointer-events: none;
}
.btn.comming a::after {
	border-top: solid 1px #969696;
	border-right: solid 1px #969696;
}
@media (max-width: 768px) {
	.btn a {
		font-size: 3.7rem;
		padding: 1.1rem 0 1.2rem;
	}
	.btn a::after {
		width: 2.2rem;
		height: 2.2rem;
		top: calc(50% - 1.2rem);
		right: 2rem;
	}
}

/* sec */
.sec + .sec {
	margin-top: 8rem;
}
.sec .box {
	padding: 5rem;
}
@media (max-width: 768px) {
	.sec .box {
		padding: 6rem 4rem 7rem;
	}

}

/* sec01 */
.sec01 .box {
	padding: 5.8rem 10rem 5rem;
}
.sec01 h2 {
	width: 50.7rem;
	margin: 0 auto;
}
.sec01 .lead {
	font-size: 2.2rem;
	text-align: center;
	margin-top: 2.8rem;
	color: #004136;
	font-weight: bold;
}
.sec01 .message {
	position: relative;
	margin: 5rem auto 0;
	padding: 2.5rem 0;
	width: 59rem;
	text-align: center;
}
.sec01 .message:before,
.sec01 .message:after { 
	content: "";
	position: absolute;
	display: inline-block;
	width: 3rem;
	height: 3rem;
}
.sec01 .message:before {
	border-left: solid 1px #CF0000;
	border-top: solid 1px #CF0000;
	top: 0;
	left: 0;
}
.sec01 .message:after {
	border-right: solid 1px #CF0000;
	border-bottom: solid 1px #CF0000;
	bottom: 0;
	right: 0;
}
.sec01 .message h3 {
	color: #CF0000;
	font-size: 1.9rem;
	font-weight: 600;
}
.sec01 .message p {
	margin-top: 1.2rem;
	font-size: 1.8rem;
	line-height: 3.8rem;
	font-weight: bold;
}
.sec01 .profile {
	margin-top: 2.5rem;
	font-size: 1.6rem;
	line-height: 2.7rem;
	text-align: center;
	font-weight: bold;
}
.sec01 .limitedPresent {
	margin: 4.5rem auto 0;
	letter-spacing: 0;
}
.sec01 .limitedPresent h3 {
	font-size: 2.2rem;
	font-weight: bold;
	color: #fff;
	text-align: center;
	background: #CF0000;
	padding: 0.3rem 0 0.4rem;
	border-radius: 4rem;
}
.sec01 .limitedPresent h3 + .presentPic {
	margin-top: 2.5rem;
}
.sec01 .limitedPresent .presentPic + h4 {
	margin-top: 2.7rem;
}
.sec01 .limitedPresent .presentPic + p {
	margin-top: 3rem;
}
.sec01 .limitedPresent h4 {
	font-size: 2rem;
	line-height: 3rem;
	font-weight: bold;
	color: #CF0000;
}
.sec01 .limitedPresent .presentLead {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: 600;
	margin-top: 0.6rem;
}
.sec01 .limitedPresent .presentLead span {
	font-size: 1.3rem;
}
.sec01 .limitedPresent .presentTxt {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: 600;
	margin-top: 2.3rem;
}
.sec01 .limitedPresent .presentNote {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 600;
}
.sec01 .limitedPresent .presentTarget {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: bold;
	margin-bottom: 0.4rem;
}
.sec01 .limitedPresent .limitedWrap .flexWrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5rem 4rem;
	margin: 2rem auto 3.5rem;
}
.sec01 .limitedPresent .limitedWrap .flexWrap .presentPic,
.sec01 .limitedPresent .limitedWrap .flexWrap .txtWrap {
	width: calc((100% - 4rem)/2);
}
.sec01 .limitedPresent .limitedWrap .presentNote {
	margin-top: 2.3rem;
}
.sec01 .limitedPresent .presentWrap {
	margin: 6rem auto 0;
	display: flex;
	flex-wrap: wrap;
	gap: 5rem 4rem;
}
.sec01 .limitedPresent .presentWrap li {
	width: calc((100% - 4rem)/2);
}
.sec01 .limitedPresent .btn {
	margin: 3rem auto 0;
	max-width: 32.8rem;
}
@media (max-width: 768px) {
	.sec01 .box {
		padding: 7rem 4rem;
	}
	.sec01 h2 {
		width: 46.6rem;
	}
	.sec01 .lead {
		font-size: 3.5rem;
		line-height: 6.5rem;
		margin-top: 6.5rem;
	}
	.sec01 .message {
		margin: 3.5rem auto 0;
		padding: 3.5rem 0;
		width: 100%;
	}
	.sec01 .message:before,
	.sec01 .message:after { 
		content: "";
		position: absolute;
		display: inline-block;
		width: 4.3rem;
		height: 4.3rem;
	}
	.sec01 .message h3 {
		font-size: 3rem;
	}
	.sec01 .message p {
		margin-top: 3rem;
		font-size: 3rem;
		line-height: 6rem;
	}
	.sec01 .profile {
		margin-top: 4rem;
		font-size: 2.8rem;
		line-height: 4.6rem;
	}
	.sec01 .limitedPresent {
		margin: 6.5rem auto 0;
	}
	.sec01 .limitedPresent h3 {
		font-size: 4rem;
		padding: 0.1rem 0 0.2rem;
		border-radius: 7rem;
	}
	.sec01 .limitedPresent h3 + .presentPic {
		margin-top: 3rem;
	}
	.sec01 .limitedPresent .presentPic + h4,
	.sec01 .limitedPresent .presentPic + p {
		margin-top: 2.5rem;
	}
	.sec01 .limitedPresent .presentPic + p {
		margin-top: 2.5rem;
	}
	.sec01 .limitedPresent h4 {
		font-size: 3.6rem;
		line-height: 5.5rem;
	}
	.sec01 .limitedPresent .presentLead {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-top: 1.2rem;
	}
	.sec01 .limitedPresent .presentLead span {
		font-size: 2.4rem;
	}
	.sec01 .limitedPresent .presentTxt {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-top: 4rem;
	}
	.sec01 .limitedPresent .presentNote {
		font-size: 2.4rem;
		line-height: 3.6rem;
		margin-top: 0.3rem;
	}
	.sec01 .limitedPresent .presentTarget {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-bottom: 0.4rem;
	}
	.sec01 .limitedPresent .limitedWrap .flexWrap {
		display: block;
		margin: 4rem auto 5rem;
	}
	.sec01 .limitedPresent .limitedWrap .flexWrap .presentPic,
	.sec01 .limitedPresent .limitedWrap .flexWrap .txtWrap {
		width: 100%;
	}
	.sec01 .limitedPresent .limitedWrap .flexWrap .txtWrap {
		margin-top: 3rem;
	}
	.sec01 .limitedPresent .limitedWrap .flexWrap .txtWrap .presentTxt {
		margin-top: 4rem;
	}
	.sec01 .limitedPresent .limitedWrap .presentTxt {
		margin-top: 0;
	}
	.sec01 .limitedPresent .limitedWrap .presentNote {
		margin-top: 4rem;
	}
	.sec01 .limitedPresent .presentWrap {
		margin: 8rem auto 0;
		gap: 8rem 0;
	}
	.sec01 .limitedPresent .presentWrap li {
		width: 100%;
	}
	.sec01 .limitedPresent .btn {
		margin-top: 4rem;
		max-width: 100%;
	}
}

/* sec02 */
.sec02 h2 {
	width: 35.3rem;
	margin: 0 auto;
}
.sec02 h3 {
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
	margin: 4rem -2rem 0;
	color: #004136;
	letter-spacing: 0;
}
.sec02 .daysWrap {
	text-align: center;
	margin-top: 1.2rem;
}
.sec02 .daysWrap .days {
	text-align: left;
	display: inline-block;
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: bold;
}
.sec02 .daysWrap .days span {
	font-size: 1.3rem;
}
.sec02 .lead {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: bold;
	text-align: center;
	margin: 1.5rem -4rem 0;
	letter-spacing: 0;
}
.sec02 .content {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4rem;
	margin-top: 2.5rem;
}
.sec02 .content .pic {
	width: 24rem;
}
.sec02 .content dl {
	width: calc(100% - 28rem);
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: 600;
}
@media (max-width: 768px) {
	.sec02 h2 {
		width: 52.7rem;
		margin: 0 auto;
	}
	.sec02 h3 {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin: 3rem -4rem 0;
	}
	.sec02 .daysWrap {
		margin-top: 3rem;
	}
	.sec02 .daysWrap .days {
		font-size: 2.8rem;
		line-height: 4.4rem;
	}
	.sec02 .daysWrap .days span {
		font-size: 2.4rem;
	}
	.sec02 .lead {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-top: 3rem;
	}
	.sec02 .content {
		display: block;
		margin-top: 4rem;
	}
	.sec02 .content .pic {
		width: 46rem;
		margin: 0 auto;
	}
	.sec02 .content dl {
		width: 100%;
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-top: 3.5rem;
	}
}

/* sec03 */
.sec03 h2 {
	width: 12.9rem;
	margin: 0 auto;
}
.sec03 .content {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	margin-top: 5rem;
}
.sec03 .content .pic {
	width: 25rem;
}
.sec03 .content .txtWrap {
	width: calc(100% - 28rem);
}
.sec03 .content h3 {
	font-size: 2.2rem;
	font-weight: bold;
	color: #fff;
	text-align: center;
	background: #CF0000;
	padding: 0.3rem 0 0.4rem;
	border-radius: 4rem;
}
.sec03 .content ul {
	margin-top: 3rem;
}
.sec03 .content .txtWrap ul li {
	font-size: 2rem;
	line-height: 3rem;
	font-weight: 600;
	text-indent: -1em;
	padding-left: 1em;
}
.sec03 .content .txtWrap .txt {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: 600;
	margin-top: 2.5rem;
}
.sec03 .content .txtWrap .note {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 600;
	margin-top: 0.2rem;
}
@media (max-width: 768px) {
	.sec03 h2 {
		width: 19.3rem;
	}
	.sec03 .content {
		display: block;
		margin-top: 6.5rem;
	}
	.sec03 .content .pic {
		width: 45.8rem;
		margin: 4rem auto 0;
	}
	.sec03 .content .txtWrap {
		width: 100%;
	}
	.sec03 .content h3 {
		font-size: 4rem;
		line-height: 5.5rem;
		padding: 1.3rem 0 1.4rem;
		border-radius: 14rem;
	}
	.sec03 .content ul {
		margin-top: 3.5rem;
	}
	.sec03 .content .txtWrap ul li {
		font-size: 4rem;
		line-height: 6rem;
	}
	.sec03 .content .txtWrap .txt {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-top: 4.5rem;
	}
	.sec03 .content .txtWrap .note {
		font-size: 2.4rem;
		line-height: 3.6rem;
		margin-top: 0.5rem;
	}
}

/* sec04 */
.sec04 h2 {
	width: 17.8rem;
	margin: 0 auto;
}
.sec04 h3 {
	margin-top: 3rem;
	font-size: 2.8rem;
	line-height: 3.8rem;
	color: #004136;
	font-weight: bold;
	text-align: center;
}
.sec04 h3 span {
	font-size: 2rem;
	line-height: 3rem;
	display: block;
}
.sec04 .days {
	margin-top: 2.5rem;
	text-align: center;
}
.sec04 .days span {
	font-size: 2rem;
	font-weight: bold;
	color: #fff;
	text-align: center;
	background: #004234;
	padding: 0.5rem 3rem 0.6rem;
	border-radius: 4rem;
}
@media (max-width: 768px) {
	.sec04 h2 {
		width: 26.3rem;
	}
	.sec04 h3 {
		margin-top: 5rem;
		font-size: 4rem;
		line-height: 6rem;
	}
	.sec04 h3 span {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-bottom: 0.5rem;
	}
	.sec04 .days {
		margin-top: 4rem;
	}
	.sec04 .days span {
		font-size: 2.8rem;
		line-height: 4.4rem;
		display: block;
		padding: 0.9rem 2rem 1rem;
		border-radius: 10rem;
	}
}
/* sec04 rose */
.sec04 .content .rose {
	padding: 2.5rem 0;
}
.sec04 .content .rose .txtMain {
	font-size: 2.4rem;
	font-weight: bold;
	text-align: center;
	color: #CF0000;
}
.sec04 .content .rose .pic {
	width: 38.5rem;
	margin: 1rem auto 0;
}
.sec04 .content .rose .txt01 {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: bold;
	text-align: center;
	margin-top: 2rem;
}
.sec04 .content .rose .card {
	width: 49.5rem;
	margin: 1.5rem auto 0;
}
.sec04 .content .rose .txt02 {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: bold;
	margin-top: 2rem;
	padding: 0 4.5rem;
}
.sec04 .content .rose .note {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 600;
	margin-top: 0.2rem;
	padding: 0 4.5rem;
}
@media (max-width: 768px) {
	.sec04 .content .rose {
		padding: 3.5rem 0;
	}
	.sec04 .content .rose .txtMain {
		font-size: 3.6rem;
	}
	.sec04 .content .rose .pic {
		width: 100%;
		margin: 2.5rem auto 0;
	}
	.sec04 .content .rose .txt01 {
		font-size: 2.3rem;
		line-height: 3.5rem;
		text-align: left;
		margin-top: 4.5rem;
		letter-spacing: 0;
	}
	.sec04 .content .rose .card {
		width: 100%;
		margin: 3rem auto 0;
	}
	.sec04 .content .rose .txt02 {
		font-size: 2.3rem;
		line-height: 3.5rem;
		margin-top: 3rem;
		padding: 0;
	}
	.sec04 .content .rose .note {
		font-size: 2.3rem;
		line-height: 3.5rem;
		padding: 0;
	}
}
/* sec04 point */
.sec04 .content .point {
	border-top: 1px solid #004136;
	border-bottom: 1px solid #004136;
	padding: 2.5rem 0;
}
.sec04 .content .point .txtMain {
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
	color: #004136;
}
.sec04 .content .point ul {
	display: flex;
	margin-top: 1.8rem;
}
.sec04 .content .point ul li {
	width: 50%;
}
.sec04 .content .point ul li:nth-child(1) {
	margin: 0 1rem 0 -1rem;
}
.sec04 .content .point ul li:nth-child(2) {
	border-left: 1px dotted #004136;
	margin: 0 -2rem 0 0;
	padding-left: 2rem;
	width: calc(50% + 2rem);
}
@media (max-width: 768px) {
	.sec04 .content .point {
		padding: 3rem 0 3.5rem;
	}
	.sec04 .content .point .txtMain {
		font-size: 2.8rem;
		line-height: 4.4rem;
	}
	.sec04 .content .point ul {
		display: block;
		margin-top: 3.5rem;
	}
	.sec04 .content .point ul li {
		width: 100%;
	}
	.sec04 .content .point ul li:nth-child(1) {
		margin: 0 auto;
	}
	.sec04 .content .point ul li:nth-child(2) {
		border-top: 1px dotted #004136;
		border-left: none;
		margin: 3.5rem auto 0;
		padding: 3.5rem 0 0;
		width: 100%;
	}
}
/* sec04 btn */
.sec04 .btn {
	margin-top: 5rem;
}
.sec04 .btn a {
	width: 32.8rem;
}
.sec04 .btnTxt {
	font-size: 1.5rem;
	font-weight: bold;
	text-align: center;
	margin-top: 1.2rem;
}
@media (max-width: 768px) {
	.sec04 .btn {
		margin-top: 6.5rem;
	}
	.sec04 .btn a {
		width: 100%;
	}
	.sec04 .btnTxt {
		font-size: 3rem;
		margin-top: 1.5rem;
	}
}

/* sec05 */
.sec05 h2 {
	width: 21.4rem;
	margin: 0 auto;
}
.sec05 .content {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	margin-top: 5rem;
}
.sec05 .content .pic {
	width: 38rem;
	margin-top: 0.6rem;
}
.sec05 .content .pic .cap {
	font-size: 1.3rem;
	font-weight: 600;
	margin-top: 0.5rem;
}
.sec05 .content .txtMain {
	width: calc(100% - 41rem);
}
.sec05 .content .txtMain h3 {
	font-size: 2rem;
	line-height: 3rem;
	font-weight: bold;
	color: #004136;
}
.sec05 .content .txtMain .txt {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: 600;
	margin-top: 0.5rem;
}
.sec05 .content .txtMain .txt span {
	position: relative;
}
.sec05 .content .txtMain .txt span::before {
	content: "";
	position: absolute;
	background: #000;
	width: calc(100% - 2px);
	height: 1px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transform: translateX(-50%);
}
.sec05 .txtWrap {
	margin-top: 2.5rem;
}
.sec05 .txtWrap .txt01,
.sec05 .txtWrap .txt02 {
	font-size: 1.5rem;
	line-height: 2.3rem;
	font-weight: 600;
}
.sec05 .txtWrap .txt03 {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 500;
	margin-bottom: 0.2rem;
}
.sec05 .txtWrap .note {
	font-size: 1.3rem;
	line-height: 2rem;
	font-weight: 500;
	margin-top: 2.5rem;
}
@media (max-width: 768px) {
	.sec05 h2 {
		width: 31.8rem;
	}
	.sec05 .content {
		display: block;
		margin-top: 7rem;
	}
	.sec05 .content .pic {
		width: 100%;
		margin-top: 0;
	}
	.sec05 .content .pic .cap {
		font-size: 2.4rem;
	}
	.sec05 .content .txtMain {
		width: 100%;
	}
	.sec05 .content .txtMain h3 {
		font-size: 4rem;
		line-height: 6rem;
		margin-top: 3rem;
	}
	.sec05 .content .txtMain .txt {
		font-size: 2.8rem;
		line-height: 4.4rem;
		margin-top: 1rem;
	}
	.sec05 .txtWrap {
		margin-top: 5rem;
	}
	.sec05 .txtWrap .txt01,
	.sec05 .txtWrap .txt02 {
		font-size: 2.8rem;
		line-height: 4.4rem;
		letter-spacing: 0;
	}
	.sec05 .txtWrap .txt03 {
		font-size: 2.4rem;
		line-height: 3.6rem;
		letter-spacing: 0;
	}
	.sec05 .txtWrap .note {
		font-size: 2.4rem;
		line-height: 3.6rem;
		margin-top: 4.5rem;
		letter-spacing: 0;
	}
}

/* secBnr */
.secBnr .txt {
	font-size: 2rem;
	line-height: 3rem;
	font-weight: bold;
	text-align: center;
	color: #004136;
}
.secBnr .pic {
	margin-top: 1rem;
}
.secBnr .pic a {
	display: block;
}
.secBnr li + li {
	margin-top: 4rem;
}
@media (max-width: 768px) {
	.secBnr .txt {
		font-size: 3rem;
		line-height: 4.4rem;
	}
	.secBnr .pic {
		margin-top: 3rem;
	}
	.secBnr li + li {
		margin-top: 6rem;
	}
}
