@charset "UTF-8";

/*************************
font_import
*************************/

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');

/*************************
reset
*************************/

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,main,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}*[hidden]{display:none}body{line-height:1}menu,ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body.noscroll{overflow:hidden}.iframe{width:100%;height:100%}.overlay{position:fixed;top:0;left:0;height:100vh;width:100%}.overlay.hidden{top:-100vh}#header.fixed{top:0;height:48px;position:sticky;box-shadow:0 2px 10px #2121211a}#header,#footer{overflow:hidden}@media screen and (min-width: 768px){#header.fixed{height:64px}}

*, *::before, *::after { box-sizing: border-box; }

#header {
	position: relative;
	z-index: 100;
}

#drawer.overlay,
#search-modal.overlay { z-index: 101; }

#drawer.overlay.hidden,
#search-modal.overlay.hidden {
	opacity: 0;
	z-index: 0;
}

/*************************
custom properties
*************************/
#LP {
	--lp-color_white: #fff;
	--lp-color_gray: #ccc;
	--lp-color_lightGray: #ddd;
	--lp-color_black: #333;
	--lp-color_red: #c80000;

	--lp-color_shadow-black: rgba(0, 0, 0, .15);

	--lp-color_kv-skyBlue: #aedde9;
	--lp-color_contents-yellowLight: #fffbd5;

	--lp-color_coupon-blueLight: #f2fcff;
	--lp-color_coupon-blueDark: #aedde9;

	--lp-color_entry-greenLight: #fafff7;
	--lp-color_entry-greenDark: #dcfdcd;
	--lp-color_entry-blueMedium: #1778b2;
	--lp-color_entry-wineRed: #eb1364;

	--lp-color_andmall-blue: #2882ff;
	--lp-color_outlet-orange: #f08200;
	--lp-color_line-greenDark: #3aae36;
	--lp-color_line-greenLight: #f0ffea;
	--lp-color_appPush-paleBrown: #fff6e5;
}

/*************************
animation keyframes
*************************/

/* エントリーボタン挙動 */
@keyframes loadingAnimation {
	from { transform: rotate(0turn); }
	to { transform: rotate(1turn); }
}

@keyframes backgroundFlash {
    0% { transform: scale(0) rotate(45deg); }
	100% { transform: scale(50) rotate(45deg); }
	0%, 100% { opacity: 0; }

	80% {
		transform: scale(0) rotate(45deg);
		opacity: .5;
	}
    81% {
		transform: scale(4) rotate(45deg);
		opacity: 1;
	}
}

@keyframes objectScaleInOut {
    0% { transform: scale(.5); }
	50% { transform: scale(1.1); }
	100% { transform: scale(1); }
}

/* フローティングボタン挙動 */
@keyframes floatingObject {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/*************************
main
SP_layout（980px未満）
*************************/

/* ---------------------------
ページ共通
--------------------------- */
#LP {
	counter-reset: number 0;
	color: var(--lp-color_black);
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	line-height: 1.5;
	text-decoration: none;
	overflow: hidden;
	width: 100%;
}
#LP.is_end { pointer-events: none; }

body:has(.is_end) { overflow-y: hidden; }

#LP a {
	color: var(--lp-color_red);
	text-decoration: none;
}

#LP img {
	user-select: none;
	vertical-align: bottom;
	width: 100%;
	height: auto;
}

#LP time,
#LP span {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
}

#LP .textBlock {
	color: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
	display: block;
}

#LP .textBold { 
	font-weight: 700;
	padding: 0 .2em;
}

#LP .textOrange { color: var(--lp-color_outlet-orange); }

#LP .device_sp { display: block; }
#LP .device_pc { display: none; }

/* ボタン共通 */
#LP .common__button a {
	background-color: var(--lp-color_black);
    border-radius: 100px;
    color: var(--lp-color_white);
	cursor: pointer;
    font-size: 3vw;
    font-weight: 700;
    line-height: 1.4;
    display: flex;
    flex-flow: column wrap;
    align-items: center;
    justify-content: center;
	text-align: center;
    text-decoration: none;
	transition: .4s filter, .4s background, .4s border, .4s color;
	user-select: none;
    position: relative;
    margin: 0 auto;
    padding: .5em 1em;
    width: 88%;
    min-height: 4em;
}
#LP .common__button.square a { border-radius: 0; }
#LP .common__button a:hover { filter: brightness(.7); }

#LP .common__button a::after {
	border-top: 2px solid var(--lp-color_white);
    border-right: 2px solid var(--lp-color_white);
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 1vw);
    right: 1em;
    transform: rotate(45deg);
    transition: border .4s, filter .4s;
    width: 2vw;
    height: 2vw;
}

#LP .anchorLink a::after { transform: rotate(135deg); }

#LP .common__headerRibbon {
    background-color: var(--lp-color_black);
    color: var(--lp-color_white);
    clip-path: polygon(0 0, 100% 0, 96% 50%, 100% 100%, 0 100%, 4% 50%);
    font-size: 4.2vw;
    font-weight: 700;
    line-height: 1.2;
    display: flex;
    flex-flow: column wrap;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin: 0 auto;
	margin-bottom: 1.5em;
    min-height: 3.2em;
}

#LP .andmall .common__headerRibbon,
#LP a.andmall { background-color: var(--lp-color_andmall-blue); }

#LP .outlet .common__headerRibbon,
#LP a.outlet { background-color: var(--lp-color_outlet-orange); }

#LP .common__bubble {
	font-weight: 900;
	text-align: center;
	position: relative;
	margin: 0 auto;
	padding-bottom: .5em;
	width: fit-content;
}

#LP .common__bubble::before,
#LP .common__bubble::after {
	position: absolute;
	top: calc(50% - 1em);
}

#LP .common__bubble::before {
	content: "\FF3C";
	left: -1em;
}
#LP .common__bubble::after {
	content: "\FF0F";
	right: -1em;
}

#LP .common__bubble > .textBlock { display: inline-block; }

/* ---------------------------
キービジュアル
--------------------------- */
#LP .kv {
	background-color: var(--lp-color_kv-skyBlue);
	width: 100%;
	height: auto;
}

#LP .kv__h1 {
	margin: 0 auto;
	width: 100%;
}

/* ---------------------------
メインコンテンツ共通
--------------------------- */
#LP .contents { background-color: var(--lp-color_contents-yellowLight); }

#LP .contents__inner {
	margin: 0 auto;
	padding: 6% 0 8% 0;
	width: 100%;
	max-width: 1280px;
}

#LP .contents__section:not(:last-of-type) { margin-bottom: 6%; }

/* ---------------------------
タブ共通
--------------------------- */
#LP .tab { position: relative; }

#LP .tab__block:not(:last-of-type) { margin-bottom: 3em; }

#LP .tab__title {
	background-color: var(--lp-color_contents-yellowLight);
	display: flex;
	list-style: none;
	user-select: none;
	position: relative;
	transition: .4s box-shadow ease;
}

#LP .tab__title .textOrange { font-size: 1.33em; }

#LP .tab__title > li {
	box-shadow: none;
	box-sizing: border-box;
	border-radius: 15px 15px 0 0;
	cursor: pointer;
	flex: 1;
	font-size: 3vw;
	font-weight: 900;
	line-height: 1.2;
	text-align: center;
	position: relative;
	z-index: 0;
	padding: .75em .5em;
}

#LP .tab__title > li::before {
	background-color: transparent;
	content: "";
	display: block;
	transition: none;
	position: absolute;
	left: 0;
	right: 0;
	bottom: -10px;
	z-index: 1;
	width: 100%;
	height: 12px;
}

#LP .tab__title > li.is_active {
	box-shadow: 0 0 10px var(--lp-color_shadow-black);
	z-index: 2;
}
#LP .tab__title > li.is_active::before { z-index: 2; }

#LP .tab__title > li:nth-of-type(1),
#LP .tab__title > li.is_active:nth-of-type(1)::before { background-color: var(--lp-color_coupon-blueLight); }

#LP .tab__title > li:nth-of-type(2),
#LP .tab__title > li.is_active:nth-of-type(2)::before { background-color: var(--lp-color_entry-greenLight); }

#LP .tab__body {
	border-radius: 0 0 16px 16px;
	box-shadow: 0 1px 10px var(--lp-color_shadow-black);
	overflow: hidden;
	transition: .4s background ease;
	position: relative;
	z-index: 1;
	margin: 0 auto;
	width: 100%;
}
#LP .tab__body:has(.coupon.is_active) {
	background-image: linear-gradient(
		180deg,
		var(--lp-color_coupon-blueLight),
		var(--lp-color_coupon-blueDark)
	);
}
#LP .tab__body:has(.point.is_active) {
	background-image: linear-gradient(
		180deg,
		var(--lp-color_entry-greenLight),
		var(--lp-color_entry-greenDark)
	);
}

#LP .tab__contents {
	display: flex;
	align-items: flex-start;
	transition: transform .4s ease, .8s height;
	position: relative;
	margin: 0 auto;
	width: 100%;
}

#LP .tab__value {
	flex-shrink: 0;
	opacity: 0;
	transition: .8s opacity;
	position: relative;
	z-index: -1;
	padding: 8% 0;
	width: 100%;
	min-width: 100%;
	height: auto;
}
#LP .tab__value.is_active {
	opacity: 1;
	z-index: 1;
}

#LP .tab__block {
	margin-left: auto;
	margin-right: auto;
	padding: 0 4.26%;
	width: 100%;
}

/* ---------------------------
EC導線
--------------------------- */
#LP .ecLink {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1em;
}
#LP .ecLink__button { width: 100%; }

/* ---------------------------
各コンテンツ固有スタイル
--------------------------- */

/* 訴求文言 */
#LP .appeal { text-align: center; }

#LP .appeal__detail {
	font-size: 4vw;
	font-weight: 900;
}

#LP .appeal__detail__limit {
	color: var(--lp-color_outlet-orange);
	font-size: 1.6em;
	margin-top: .75em;
}

#LP .appeal__detail__limit .textMiddle,
#LP .appeal__detail__limit .textSmall {  font-weight: 800; }

#LP .appeal__detail__limit .textMiddle { font-size: .85em; }
#LP .appeal__detail__limit .textSmall { font-size: .7em; }

/* 導線文言 */
#LP .conductor { max-width: 980px; }

#LP .conductor > div:not(:last-of-type) { margin-bottom: 1.5em; }

#LP .conductor__list {
	display: flex;
	flex-flow: column wrap;
	align-items: center;
	justify-content: space-between;
	margin: 0 auto;
	width: 85%;
	max-width: 850px;
}

#LP .conductor__list > li {
	background-color: var(--lp-color_white);
	border: 5px solid var(--lp-color_entry-blueMedium);
	margin: 0 auto;
	padding: 6% 4% calc(6% + 5px) 4%;
	width: 100%;
}
#LP .conductor__list > li:not(:last-of-type) { margin-bottom: 3%; }

#LP .conductor__list__block:not(:last-child) { margin-bottom: 5%; }

#LP .conductor__block:not(:last-child),
#LP .conductor__button:not(:last-of-type) { margin-bottom: 5%; }

#LP .common__button.conductor__button.anchorLink a { width: 100%; }

#LP .conductor__list__block > .conductor__button a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .2s ease, box-shadow .2s ease, filter .4s ease;
	width: 100%;
}
#LP .conductor__list__block > .conductor__button:hover a { transform: translateY(5px); }

#LP .conductor__list__block > .conductor__button a.andmall { box-shadow: 0 5px 0 #015ddb; }
#LP .conductor__list__block > .conductor__button a.outlet { box-shadow: 0 5px 0 #aa7002; }

#LP .conductor__list__block > .conductor__button:hover a {
	transform: translateY(5px);
	box-shadow: 0 0 0 transparent;
}

/* スライダー */
#LP .sliders {
	margin: 0 auto;
	max-width: 1100px;
}

#LP .sliders > .tab__block__inner {
	background-color: var(--lp-color_white);
	border-radius: 16px;
	padding: 3em 3%;
}

#LP .sliders__baloon {
	font-size: 5vw;
	text-align: center;
}

#LP .sliderDynamic {
	margin-right: auto;
	margin-left: auto;
	max-width: 980px;
	width: 100%;
}

#LP .sliderDynamic:not(:last-of-type) { margin-bottom: 3em; }

#LP .sliders__block { margin-bottom: 3em; }

#LP .silders__header {
	font-size: 4.4vw;
	margin-bottom: 4%;
}

#LP .category__slider__more {
	display: none;
	text-align: right;
    position: absolute;
    top: 0;
    right: 0;
}

#LP .is_show .category__slider__more { display: block; }

#LP .category__slider__more a {
	border-bottom: 2px solid var(--lp-color_black);
	color: var(--lp-color_black);
	font-size: 3.5vw;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	text-decoration: none;
	opacity: 0;
	padding: .25em;
}
#LP .is_show .category__slider__more a { opacity: 1; }

#LP .is_show .category__slider__more a::after {
    border-top: 3px solid var(--lp-color_black);
    border-right: 3px solid var(--lp-color_black);
    content: '';
    vertical-align: middle;
    transform: rotate(45deg);
    width: .5em;
    height: .5em;
}

/* 注意事項 */
#LP .notes { max-width: 820px; }

#LP .notes > .tab__block__inner {
	background-color: var(--lp-color_white);
	border-radius: 6px;
	padding: 2.5em 1.5em;
}

#LP .notes__h3 {
	font-size: 4vw;
	font-weight: 900;
	letter-spacing: -.05em;
	text-align: center;
	margin-bottom: 4%;
}
#LP .grGoOut .notes__h3 { color: var(--lp-color_entry-blueMedium); }
#LP .thanks .notes__h3 { color: #e77979; }

#LP .notes__list {
	margin: 0 auto;
	max-width: 800px;
}
#LP .notes__list:not(:last-child) { padding-bottom: 1.5em; }

#LP .notes__list a {
	border-bottom: 1px solid var(--lp-color_andmall-blue);
	color: var(--lp-color_andmall-blue);
    text-decoration: none;
	padding: 0 .5%;
}

#LP .notes__list time {
	font-weight: 600;
	padding: 0 .2em;
}

#LP .notes__list .point {
	border-bottom: 2px solid var(--lp-color_black);
	letter-spacing: -.05em;
}

#LP .notes__list > li {
	color: var(--lp-color_black);
	font-size: 3vw;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: -.05em;
	text-align: left;
	padding-left: 1em;
}
#LP .notes__list > li::before {
    content: '※';
	display: inline-block;
	text-align: center;
	margin-left: -1em;
	width: 1em;
}
#LP .notes__list > li:not(:last-of-type) { margin-bottom: .35em; }

/* 初回ログイン */
#LP .newUser { max-width: 980px; }

#LP .newUser__banner { margin-bottom: 2.5em; }

#LP .common__button.newUser__button.anchorLink a { width: 100%; }

/* ---------------------------
予告 & LINE ID 連携方法
--------------------------- */
#LP .joint { max-width: 980px; }

#LP .joint__block:not(:last-of-type) { margin-bottom: 3em; }

/* 予告 */
#LP .notice {
	margin: 0 auto;
	max-width: 960px;
}

#LP .notice__header {
	margin: 0 auto;
	padding-bottom: 2em;
	width: 60%;
	max-width: fit-content;
}

#LP .notice__text {
	font-size: 3.6vw;
	font-weight: 600;
	line-height: 1.8;
	text-align: center;
}
#LP .notice__text .textOrange {
	border-bottom: 2px solid var(--lp-color_outlet-orange);
	font-size: 1.25em;
	font-weight: 900;
}

/* LINE ID 連携 プッシュ通知 */
#LP .lineID,
#LP .appPush { padding: 6%; }

#LP .lineID { background-color: var(--lp-color_line-greenLight); }
#LP .appPush { background-color: var(--lp-color_appPush-paleBrown); }

#LP .lineID__header,
#LP .appPush__header {
	display: flex;
	flex-flow: column wrap;
	align-items: center;
	justify-content: center;
}

#LP .lineID__baloon,
#LP .appPush__baloon {
	font-size: 3.6vw;
	text-align: center;
}

#LP .lineID__baloon { color: var(--lp-color_line-greenDark); }

#LP .appPush__baloon {
	display: inline-block;
	width: fit-content;
}
#LP .appPush__baloon .device_sp { display: block; }

#LP .appPush__baloon::before { transform: rotate(15deg); }
#LP .appPush__baloon::after { transform: rotate(-15deg); }

#LP .lineID__headerRibbon {
	background-color: var(--lp-color_line-greenDark);
	font-size: 4.4vw;
	min-height: 2.4em;
}

#LP .lineID__headerRibbon,
#LP .appPush__headerRibbon { width: 100%; }

#LP .lineID__illustration,
#LP .appPush__illustration {
	margin: 0 auto;
	padding-bottom: 2em;
	max-width: fit-content;
	width: 100%;
}

#LP .lineID__button a {
	background-color: #3bae36;
	box-shadow: 5px 5px 0 #fce633;
}

#LP .appPush__illustration { margin: 0 auto; }

#LP .appPush__introduction {
	background-color: #f5f5f5;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	gap: 2em;
	align-items: center;
	margin: 0 auto;
	padding: 4%;
	width: 100%;
}

#LP .appPush__introduction__left {
	display: flex;
	flex-flow: column wrap;
	justify-content: space-between;
	align-items: center;
	flex: 2;
	gap: 1em;
}

#LP .appPush__introduction__h4 {
	color: var(--lp-color_black);
	font-size: 3.2vw;
	font-weight: 900;
}

#LP .appPush__introduction__list {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

#LP .appPush__introduction__list > li:first-of-type { width: 42%; }
#LP .appPush__introduction__list > li:last-of-type { width: 52%; }

#LP .appPush__introduction__right { flex: .75; }

/* エントリー条件 */
#LP .tab__block.terms { max-width: 1000px; }

#LP .terms__block:not(:last-of-type) { margin-bottom: 2.5em; }

#LP .terms__header {
	font-size: 4vw;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1em;
	position: relative;
	margin-bottom: 1em;
	width: 100%;
}

#LP .terms__header::before,
#LP .terms__header::after {
	background-color: var(--lp-color_black);
	content: "";
	flex: 1;
	width: 100%;
	height: 2px;
}

#LP .terms__list { max-width: 100%; }

/* キャンペーン参加方法 */
#LP .tab__block.step {
	font-size: 5vw;
	text-align: center;
	margin-bottom: 0;
	padding-bottom: 1em;
	max-width: 1000px;
}

#LP .step__block:not(:last-of-type) { margin-bottom: 1.5em; }

#LP .step__header {
    background: linear-gradient(transparent 70%, #f4c542 70%);
    color: var(--lp-color_entry-blueMedium);
    display: inline-block;
    font-weight: 900;
    margin-bottom: 1em;
    padding: 0 .25em;
}

#LP .step__text {
	font-size: .75em;
    font-weight: 600;
}

#LP .step__list > li:not(:last-of-type) { margin-bottom: 2em; }

#LP .step__list > li > *:not(:last-child) { margin-bottom: 1em; }

#LP .step__button a,
#LP .step__list__button a { background-color: var(--lp-color_entry-blueMedium); }

#LP .step__button a.entry { background-color: var(--lp-color_entry-wineRed); }

#LP .step__button:not(:last-of-type) { margin-bottom: .5em; }

#LP .step__notes { max-width: 100%; }

#LP .step__list__image {
	background-color: var(--lp-color_white);
	margin: 0 auto;
	padding: 1.5em 1em;
	width: 100%;
}

#LP .step__list__image img {
	margin: 0 auto;
	width: 100%;
}

#LP .step__03 .step__list__block {
	background-color: var(--lp-color_white);
	padding: 1.5em 1em;
}
#LP .step__03 .step__list__block > .step__list__image {
	margin-bottom: 1.5em;
	padding: 0;
}

/* エントリーエリア */
#LP .tab__block.entry {
	background-color: #fff48e;
	clip-path: polygon(
		0 0,
		50% 3em,
		100% 0,
		100% 100%,
		0 100%
	);
	font-size: 5vw;
	text-align: center;
	padding-top: 3em;
}

#LP .entry > .tab__block__inner {
	padding-top: 1.5em;
	padding-bottom: 2.5em;
}

#LP .entry__header {
	background: linear-gradient(
		transparent 70%,
		#f4c542 70%
	);
	color: var(--lp-color_entry-blueMedium);
	display: inline-block;
	font-weight: 900;
	margin-bottom: 1em;
	padding: 0 .25em;
}

#LP .entry__list { max-width: 980px; }

#LP .entry__button {
    background-color: var(--lp-color_gray);
    border-radius: 100px;
    cursor: no-drop;
	color: var(--lp-color_black);
    font-size: 3.3vw;
    font-weight: 700;
    line-height: 1.4;
    display: flex;
    flex-flow: column wrap;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    text-decoration: none;
    transition: .4s filter, .4s background, .4s border, .4s color;
    user-select: none;
    position: relative;
    margin: 0 auto;
    padding: .5em 1em;
    width: 80%;
	min-height: 4em;
}

#LP .entry__button:hover { filter: initial; }

#LP .entry__button:empty {
	background-color: var(--lp-color_gray);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-flow: row-reverse wrap;
	gap: .5em;
}
#LP .entry__button:empty::before {
	animation: loadingAnimation 1s ease-out infinite;
	border: .2em solid var(--lp-color_white);
	border-top-color: var(--lp-color_lightGray);
	border-radius: 50%;
	content: "";
	display: block;
	width: 1.25em;
	height: 1.25em;
}
#LP .entry__button:empty::after {
    border: none;
	content: "エントリー情報を送受信中";
    position: initial;
    transform: rotate(0);
	width: fit-content;
	height: auto;
}
#LP .entry__button:empty::before,
#LP .entry__button:empty::after { opacity: .7; }

#LP .member.licensed .entry__button {
	background-color: var(--lp-color_entry-wineRed);
	cursor: pointer;
	color: var(--lp-color_white);
	pointer-events: all;
	overflow: hidden;
}

#LP .member.licensed .entry__button::before {
    animation: backgroundFlash 3s ease-in-out infinite;
	background-color: rgba(255, 255, 255, .4);
    content: "";
    display: inline-block;
	position: absolute;
    top: -100px;
    left: 0;
    width: 30px;
    height: 100%;
}

#LP .member .entry__button.is_complate { animation: objectScaleInOut .4s ease-in-out; }

#LP .member:not(.licensed) .entry__button::after { border: none; }

#LP .entry__conditions,
#LP .entry__error {
	font-size: 2.4vw;
	text-align: center;
	transition: .4s opacity ease, height .4s ease, padding .4s ease;
	opacity: 0;
	pointer-events: none;
	margin: 0 auto;
	width: 100%;
	max-width: fit-content;
	height: 0;
}
#LP .guest .entry__conditions,
#LP .entry__error.is_show {
	opacity: 1;
	pointer-events: all;
	padding-top: 1em;
	height: calc-size(auto, size);
}

#LP .entry__error { color: var(--lp-color_red); }

#LP .entry__conditions a {
	border-bottom: 2px solid currentColor;
	font-weight: 700;
	padding: 0 .2em;
}

/* フローティングボタン */
#LP .floating {
    transition: .4s opacity, transform .4s ease;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    z-index: 8;
    right: 0;
    bottom: 0;
    transform: translateY(2em);
    width: 100%;
}
#LP .floating.is_visible {
    opacity: 1;
    transform: translateY(0);
}

#LP .floating__inner {
    margin: 0 auto;
    width: 100%;
    max-width: 1920px;
}
#LP .is_visible .floating__inner { pointer-events: none; }

#LP .floating a {
    animation: floatingObject 4s infinite ease-in-out;
    background-color: var(--lp-color_entry-wineRed);
    border-radius: 1000px;
    box-shadow: 0 0 2px var(--lp-color_shadow-black);
    color: var(--lp-color_white);
    display: flex;
    flex-flow: column wrap;
    align-items: center;
    justify-content: center;
    gap: .25em;
    font-size: 3vw;
    font-weight: 700;
    letter-spacing: .01em;
    transition: bottom 1s ease-in-out, .4s background, .4s color;
    text-align: center;
    pointer-events: none;
    position: relative;
    right: 1.5vw;
    bottom: 1.5vw;
    user-select: none;
    line-height: 1.2;
    margin-left: auto;
    width: 22vw;
    height: 22vw;
}
#LP .floating.is_visible a { pointer-events: auto; }

#LP .floating a:hover {
    background-color: var(--lp-color_white);
    border: 2px solid var(--lp-color_black);
    color: var(--lp-color_black);
}

#LP .floating .textBlock.arrow {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: center;
	gap: .25em;
	position: relative;
}

#LP .floating .textBlock.arrow::after {
    border-top: 3px solid var(--lp-color_white);
    border-right: 3px solid var(--lp-color_white);
    border-radius: 0 3px 0 0;
    content: "";
    display: inline-block;
    transform: rotate(45deg);
    transition: border .4s, transform .4s;
    width: 2vw;
    height: 2vw;
}

#LP .floating a:hover .textBlock.arrow::after {
    border-top-color: var(--lp-color-black);
    border-right-color: var(--lp-color-black);
}

#LP .floating .textBlock.arrow:hover::after {
    border-top-color: var(--lp-color-black);
    border-right-color: var(--lp-color-black);
    transform: rotate(45deg) translate(5px, -5px);
}

/* モーダル本体 */
#LP .modal {
	background-color: var(--lp-color_white);
	border-radius: 8px;
	box-sizing: border-box;
	font-size: 3.6vw;
	text-align: center;
	display: flex;
	flex-flow: column wrap;
	gap: 1.5em;
	transform: translateY(10px);
	transition: transform .3s ease;
	padding: 2em 1em;
	width: 90%;
	max-width: 500px;
}
@media screen and (min-width: 768px) {
	#LP .modal { font-size: 3vw; }
}

#LP .modal .supplement {
	font-size: .8em;
	display: block;
	margin-top: .5em;
}

/* モーダル背景オーバーレイ */
#LP .modal__overlay {
	background: rgba(0, 0, 0, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease;
	z-index: 1000;
}

/* モーダル本体表示状態 */
#LP .modal__overlay.isActive {
	opacity: 1;
	visibility: visible;
}

/* モーダル本体表示時のアニメーション */
#LP .modal__overlay.isActive .modal { transform: translateY(0); }

/* モーダルテキスト: ボタン */
#LP .modal__close {
	background-color: var(--lp-color_red);
	border: none;
	border-radius: 8px;
	color: var(--lp-color_white);
	cursor: pointer;
	font-size: .75em;
	font-weight: 500;
	margin: 0 auto;
	padding: .5em 1.5em;
	width: 50%;
}

/**************************************************
main
PC_layout（980px以上）
**************************************************/

@media screen and (min-width: 980px) {
	/* ---------------------------
	ページ共通
	--------------------------- */
	#LP {
		overflow: hidden;
		margin: 0 auto;
		width: 100%;
		min-width: 1000px;
	}

	#LP .device_sp { display: none; }
	#LP .device_pc { display: block; }

	/* ボタン共通 */
    #LP .common__button a::after {
        border-top-width: 3px;
        border-right-width: 3px;
        top: calc(50% - (14px / 2));
        width: 14px;
        height: 14px;
    }

	#LP .common__button a {
        font-size: 20px;
        max-width: 450px;
        width: 100%;
    }

	#LP .anchorLink a { max-width: 650px; }

	#LP .common__headerRibbon {
        font-size: 28px;
        min-height: 3em;
        max-width: 650px;
    }

	/* ---------------------------
	キービジュアル
	--------------------------- */
	#LP .kv__inner {
		background-image:
			url("../images/pc/wh_kv_main-background.png"),
			linear-gradient(#67b059, #67b059);
		background-size:
			1920px auto,
			100% 45px;
		background-position:
			center,
			bottom;
		background-repeat:
			no-repeat,
			repeat-x;
	}
	#LP .kv__h1 { width: fit-content; }

	/* ---------------------------
	メインコンテンツ共通
	--------------------------- */
	#LP .contents__inner {
		padding: 48px 20px;
		width: 100%;
	}

	#LP .contents__section:not(:last-of-type) { margin-bottom: 48px; }

	/* ---------------------------
	タブ共通
	--------------------------- */
	#LP .tab__value { padding: 60px 0; }

	#LP .tab__block { padding: 0; }

	#LP .tab__block__inner { padding: 0 10px; }

	#LP .tab__title > li {
		font-size: 24px;
		padding: .5em;
	}

	/* ---------------------------
	EC導線
	--------------------------- */
	#LP .ecLink { flex-direction: row; }
	#LP .ecLink__button { max-width: 450px; }

	/* ---------------------------
	各コンテンツ固有スタイル
	--------------------------- */

	/* 訴求文言 */
	#LP .appeal__detail { font-size: 24px; }

	/* 導線文言 */
	#LP .conductor__list {
		flex-flow: column wrap;
		align-items: center;
		justify-content: space-between;
		margin: 0 auto;
		max-width: 850px;
	}

	#LP .conductor__list > li {
		display: flex;
		flex-flow: row nowrap;
		align-items: center;
		justify-content: center;
		gap: 15px;
		padding: 15px 15px 20px 15px;
	}
	#LP .conductor__list > li:not(:last-of-type) { margin-bottom: 15px; }


	#LP .conductor__block:not(:last-child),
	#LP .conductor__button:not(:last-of-type) { margin-bottom: 40px; }

	#LP .conductor__block:not(:last-child),
	#LP .conductor__list { width: 100%; }

	#LP .conductor__button:not(:last-of-type) { margin-bottom: 20px; }

	#LP .conductor__list__block { flex: 1; }
	#LP .conductor__list__block:not(:last-child) { margin-bottom: 0; }

	#LP .conductor__list__block > img {
		margin: 0 auto;
		width: 90%;
	}
	#LP .conductor__list__block > .conductor__button a { font-size: 1em; }

	/* スライダー */
	#LP .sliders { padding: 0 10px; }

	#LP .sliders > .tab__block__inner { padding: 3em 10px; }

	#LP .sliders__baloon { font-size: 32px; }

	#LP .silders__header {
		font-size: 36px;
		margin-bottom: 1em;
	}

	#LP .is_show .category__slider__more a { font-size: 22px; }

	/* 予告 */
	#LP .notes { padding: 0 10px; }

	#LP .notes__h3 {
		font-size: 26px;
		margin-bottom: 25px;
		letter-spacing: .01em;
	}

	#LP .notes__list > li {
		font-size: 14px;
		line-height: 1.35;
	}

	#LP .notice__header { width: 100%; }

	#LP .notice__text {
		font-size: 26px;
		font-weight: 900;
		text-align: center;
	}

	/* LINE ID 連携 プッシュ通知 */
	#LP .lineID,
	#LP .appPush { padding: 50px 50px 60px 50px; }

	#LP .lineID__baloon,
	#LP .appPush__baloon { font-size: 26px; }

	#LP .appPush__baloon .device_sp { display: inline; }

	#LP .appPush__baloon::before,
	#LP .appPush__baloon::after { transform: rotate(0); }

	#LP .lineID__headerRibbon {
		font-size: 42px;
		min-height: 2em;
	}

	#LP .appPush__introduction {
		justify-content: center;
		gap: 2em;
		padding: 20px 35px;
		width: 700px;
	}

	#LP .appPush__introduction__left { flex: 2.5; }

	#LP .appPush__introduction__h4 { font-size: 30px; }

	/* エントリー条件 */
	#LP .terms__header { font-size: 18px; }

	#LP .terms__block img {
		margin: 0 auto;
		width: 100%;
		max-width: fit-content;
	}

	/* キャンペーン参加方法 */
	#LP .tab__block.step { font-size: 36px; }

	#LP .step__button a.entry { max-width: 450px; }

	#LP .step__list__image img,
	#LP .step__03 .step__list__block > .step__list__image { max-width: fit-content; }

	/* エントリーエリア */
	#LP .tab__block.entry { font-size: 36px; }

	#LP .entry__button {
		font-size: 20px;
		max-width: 450px;
		width: 100%;
	}

	#LP .entry__explanation { margin-bottom: 48px; }
	#LP .entry__component:not(:last-of-type) { margin-bottom: 72px; }

	#LP .entry__text { font-size: 24px; }

	#LP .entry__button:empty::before {
		border-width: 4px;
		width: 1.5em;
		height: 1.5em;
	}

	#LP .entry__conditions,
	#LP .entry__error { font-size: 16px; }

    /* フローティングボタン */
    #LP .floating { transform: translateY(25px); }

    #LP .floating a {
        font-size: 15px;
        bottom: 25px;
        right: 25px;
        width: 120px;
        height: 120px;
    }

	#LP .floating .textBlock.arrow::after {
        width: 12px;
        height: 12px;
    }

	/* モーダル本体 */
	#LP .modal { font-size: 20px; }
}