@charset "UTF-8";

/******特典箇所両脇キャラクター非表示******/
.osechi_benefit img.explanation {
    width: 100%!important;
}
.osechi_benefit img.character {
	display: none;
}
/******特典箇所両脇キャラクター非表示******/

html, body {
	margin: 0;
	padding: 0;
}

.osechi_wrapper button {
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
}

.osechi_wrapper .sp {
    display: none;
    visibility: hidden;
}

.osechi_wrapper img {
    max-width: 100%;
    vertical-align: bottom;
	width: 100%;
}

.osechi_tab_attention {
	margin: 24px 0 10px;
}

.osechi_tab_attention > img {
	max-width: fit-content;
}

.osechi_wrapper {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
    margin-top: auto;
    margin-bottom: -230px;
    text-align: center;
	position: relative;

}

.bg_wrap{
    background: url(../images/bg.webp);
	background-repeat: repeat-y;
	background-size: cover;
    padding-bottom: 40px;
}

.osechi_main {
	position: relative;
    
}

.osechi_main .main_01 {
	/*margin-bottom: 40px;*/
	position: relative;
	background-image: url(../images/kv_bg.webp);
	background-repeat: no-repeat;
	background-position: top;
	background-size: contain;
}

.osechi_main .main_01 img {
	max-width: 900px;
}

.icon_wrap{
	width: 640px;
	margin: 0 auto;
}

.kv_icon1{
	width: calc(90 / 1500 * 100vw) !important;
    position: absolute;
    top: 27px;
    left: 32%;
}

.kv_icon2{
	width: calc(84 / 1500 * 100vw) !important;
    position: absolute;
    top: 27px;
    right: 31%;
}

.osechi_main .main_02 {
	padding-bottom: 50px;
}

.osechi_main .main_02 img {
	max-width: 620px;
}

.osechi_benefit {
    
}

.bg_white{
	/*max-width: 100% !important;
	width: 100%;
	background-color: #fff;*/
}

.osechi_benefit > div {
	position: relative;
	max-width: 800px;
	margin: 0 auto;
}

.osechi_benefit > div + div {
	margin-top: -95px;
}

.benefit_1{
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 1) 60%, rgba(0, 0, 0, 1) 100%);
}

.benefit_2,.benefit_3,.benefit_4,.benefit_5,.benefit_6{
    background-color: #000;
}

.osechi_benefit > div + div.benefit_4 {
	
}

.osechi_benefit img.explanation {
    max-width: 800px;
	position: relative;
	z-index: 1;
}

.osechi_benefit img.character_deku {
	position: absolute;
    width: 243px;
    bottom: -59px;
    left: -238px;
}

.osechi_benefit img.character_ochaco {
	position: absolute;
	width: 170px;
    top: 100px;
    right: -177px;
}

.osechi_benefit img.character_todoroki {
	position: absolute;
	width: 230px;
    top: 84px;
    right: -221px;
}

.osechi_benefit img.character_bakugo {
	position: absolute;
	width: 303px;
    bottom: -118px;
    left: -257px;
}

.osechi_benefit img.character_kirishima {
	position: absolute;
    width: 261px;
    bottom: -60px;
    right: -199px;
}

.osechi_benefit img.character_joro {
	position: absolute;
	width: 255px;
    top: -145px;
    left: -252px;
}

.character {
  animation: floating-y 1.8s ease-in-out infinite alternate-reverse;
}
@keyframes floating-y {
  0% {
    transform: translateY(-3%);
  }
  100% {
    transform: translateY(3%);
  }
}

.osechi_benefit::before {
    /*content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #ffff00;
    transform: skewY(-3.6deg) translateY(90px);
    z-index: -1;*/
}

.osechi_intro {
    position: relative;
	padding: 28px 0 0;
}

.osechi_intro > h2{
    font-size: 48px;
    font-family: "Noto Serif JP", serif;
    color: #fff;
}

.osechi_intro_bg{
	background: linear-gradient(to right, #3F0005 0%, #B3000E 50%, #3F0005 100%);
}

.osechi_intro img {
	max-width: 1000px;
}

.osechi_intro2{
	position: relative;
    padding-bottom: 277px;
}

.osechi_intro2 > p{
	width: auto;
    margin: 0px auto;
    font-size: 24px;
    color: #fff;
	font-weight: bold;
    font-family: "Noto Serif JP", serif;
    line-height: 2;
    margin-bottom: 20px;
}

.osechi_intro_tab_wrapper {
    position: relative;
	top: -250px;
}

.oshinagaki,
.osechi_maker {
    position: relative;
	top: -250px;
}

.tabs {
    display: flex;
    position: relative;
	justify-content: center;
	align-items: end;
}

.tabs img {
	width: 55%;
}

.active .tab_title {
}

div.space-50 {
    width: 50px;
}

div.space-20 {
    width: 16px;
}

div.black-boder {
    width: 100%;
    height: 24px;
    background-color: #E9D681;
    position: absolute;
    bottom: -24px;
    left: 0;
}

/* Tab2 が選択されたとき */
.black-boder.tab2-active {
    background-color: rgba(255, 247, 110, 1);
}

.tab-button {
    cursor: pointer;
    transition: filter 0.3s;
    flex: 1;
    text-align: center;
    border-radius: 14px 14px 0 0;
    border: 4px solid;
	max-width: 200px;
	font-size: 30px;
    line-height: 0;
    height: 56px;
	font-weight: bold;
	color: #fff;
    font-family: "Noto Serif JP", serif;
}

.tab-button.tab1 {
    position: relative;
    left: 3px;
	background: url(../images/tab_01.webp);
    background-repeat: no-repeat;
    background-position: center;
    color: #000;
}

.tab-button.tab2 {
    background: url(../images/tab_02.webp);
    background-repeat: no-repeat;
    background-position: center;
    color: #000;
}

.tab-button.tab3 {
    background: url(../images/tab_pc_off.webp);
    background-repeat: no-repeat;
    background-position: center;
    position: relative;
    right: 3px;
}

.tab-button:hover {
    filter: brightness(105%);
}

.tab-button.active {
    border-bottom: none;
}

.tab-button.active {
    height: 70px;
}

.tab-content {
    display: none;
    padding: 10px 0 24px;
}

.tab-content-title {
    width: 100%;
    margin: 12px auto;
    position: relative;
}

.tab-content-title img {
    width: auto;
	display: block;
	margin: 0 auto;
	max-width: 100%;
}

#Tab1 .tab-content-title img {
	max-width: 100%;
}

.tab-content-title img.title_ju {
	margin-bottom: 30px;
}

.osechi_obi{
    padding: 20px 0;
    background-color: #000;
    color: #F1E824;
    margin: 0;
    font-size: 23px;
    margin-bottom: 30px;
}

.osechi_icon1{
	position: absolute;
    top: -6%;
    left: 24%;
    width: calc(185 / 1500 * 100vw) !important;
}

.osechi_icon2{
	position: absolute;
    top: -13%;
    right: 24%;
    width: calc(185 / 1500 * 100vw) !important;
}

.osechi2_icon2{
	position: absolute;
    top: -11%;
    right: 24%;
    width: calc(165 / 1500 * 100vw) !important;
}

.osechi3_icon2{
	position: absolute;
    top: -11%;
    right: 24%;
    width: calc(165 / 1500 * 100vw) !important;
}

.tab-content.tab1 {
    background:url(../images/osechibg.webp);
	background-repeat: no-repeat;
	background-position: center;
    background-size: cover;
}

.tab-content.tab2 {
    background:url(../images/osechibg2.webp);
	background-repeat: no-repeat;
	background-position: center;
    background-size: cover;
}

.tab-content.tab3 {
    background:url(../images/osechi_03_bg.webp);
	background-repeat: no-repeat;
	background-position: center;
}

.tab-content.active {
    display: block;
}

.opacity {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.opacity-visible {
    opacity: 1;
    transform: translateY(0);
}

.oshinagaki {
    background-image: url('https://deagostini.jp/resources/images/select/product/osechi/heroaca_2026/oshinagaki_bg.webp');
	background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
	padding: 40px 0 60px;
	font-family: "Noto Serif JP", serif;
}

.oshina_title{
	font-size: 24px;
}

.oshinagaki img {
	max-width: 620px;
	margin: 0 auto;
}

.osechi_maker {
    background-image: url('https://deagostini.jp/resources/images/select/product/osechi/heroaca_2026/maker_bg.webp');
	background-position: center top;
	background-repeat: repeat-x;
	padding: 53px 0 30px;
}

.osechi_maker img {
	max-width: 620px;
	margin: 0 auto;
}

/* おせち紹介 */
.area_tab_content {
	display: flex;
	max-width: 800px;
    margin: 0 auto;
    justify-content: space-between;
	align-items: center;
/*	flex-direction: row-reverse;*/
}
.area_tab_content .osechi_link {
	width: 65%;
	position: relative;
}
.osechi_detail {
	width: 42%;
}
.click_attention {
    width: 214px;
    height: 182px;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 64%;
    margin: auto;
    z-index: 100;
    pointer-events: none;
}
.click_attention img {
    width: 100%;
}
.click_attention p {
	font-size: 14px;
	text-align: center;
	margin: 15px 0 0;
	font-weight: 700;
}
img.pointer {
	width: 100%;
}
.osechi_link span {
	width: 6%;
	display: block;
	height: auto;
	cursor: pointer;
}
.osechi_link .Tab1_box_01 {
	position: absolute;
    top: 20%;
    left: 38%;
}
.osechi_link .Tab1_box_02 {
    position: absolute;
    top: 8%;
    left: 33%;
}
.osechi_link .Tab1_box_03 {
    position: absolute;
    top: 15%;
    left: 53%;
}
.osechi_link .Tab1_box_04 {
    position: absolute;
    top: 20%;
    left: 28%;
}
.osechi_link .Tab1_box_05 {
    position: absolute;
    top: 8%;
    right: 22%;
}
.osechi_link .Tab1_box_06 {
    position: absolute;
    top: 22%;
    right: 18%;
}
.osechi_link .Tab1_box_07 {
    position: absolute;
    top: 38%;
    left: 33%;
}
.osechi_link .Tab1_box_08 {
    position: absolute;
    top: 43%;
    left: 60%;
}
.osechi_link .Tab1_box_09 {
    position: absolute;
    top: 32%;
    right: 15%;
}
.osechi_link .Tab1_box_10 {
    position: absolute;
    top: 50%;
    right: 12%;
}
.osechi_link .Tab1_box_11 {
    position: absolute;
    top: 65%;
    right: 10%;
}
.osechi_link .Tab1_box_12 {
    position: absolute;
    top: 77%;
    left: 32%;
}
.osechi_link .Tab1_box_13 {
    position: absolute;
    top: 60%;
    right: 38%;
}
.osechi_link .Tab1_box_14 {
	position: absolute;
    top: 73%;
    right: 38%;
}
.osechi_link .Tab1_box_15 {
    position: absolute;
    top: 73%;
    right: 20%;
}


.osechi_link .Tab2_box_01 {
    position: absolute;
    top: 20%;
    left: 21%;
}
.osechi_link .Tab2_box_02 {
    position: absolute;
    top: 18%;
    left: 50%;
}
.osechi_link .Tab2_box_03 {
    position: absolute;
    top: 29%;
    left: 24%;
}
.osechi_link .Tab2_box_04 {
    position: absolute;
    top: 30%;
    right: 45%;
}
.osechi_link .Tab2_box_05 {
    position: absolute;
    top: 28%;
    left: 40%;
}
.osechi_link .Tab2_box_06 {
    position: absolute;
    top: 25%;
    right: 28%;
}
.osechi_link .Tab2_box_07 {
    position: absolute;
    top: 53%;
    left: 35%;
}
.osechi_link .Tab2_box_08 {
    position: absolute;
    top: 50%;
    right: 22%;
}
.osechi_link .Tab2_box_09 {
    position: absolute;
    top: 78%;
    left: 24%;
}
.osechi_link .Tab2_box_10 {
    position: absolute;
    top: 65%;
    left: 33%;
}
.osechi_link .Tab2_box_11 {
    position: absolute;
    top: 74%;
    left: 40%;
}
.osechi_link .Tab2_box_12 {
    position: absolute;
    top: 78%;
    right: 43%;
}
.osechi_link .Tab2_box_13 {
    position: absolute;
    top: 76%;
    right: 25%;
}

#Tab2 .osechi_tab_attention,
#Tab3 .osechi_tab_attention {
	/*color: #ffffff;*/
}
.Tab3_box_10_sp {
	position: relative;
}
.swipe {
	max-width: 500px;
	position: relative;
	overflow: scroll;
	width: 100%;
	margin: 0 auto;
	display: flex;
}
.swipe p {
	width: 1000px;
	height: 300px;
}
.swipe img {
	display: block;
}
.swipe_icon {
	position: absolute;
	top: 9%;
    border: 0;
    right: 5px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
	pointer-events: none;
}
.swipe_icon img {
	width: 100%;
}

.osechi_wrapper img.w400{
    width: 400px;
}

@media screen and (max-width: 1400px) {
	.osechi_benefit > div + div {
		margin-top: -100px;
	}
	.osechi_benefit img.explanation {
		width: 80%;
	}
	.osechi_benefit img.character_ochaco {
		width: 146px;
        right: -87px;
        top: 49px;
	}
	.osechi_benefit img.character_deku {
		width: 203px;
        left: -128px;
	}
	.osechi_benefit img.character_todoroki {
		width: 191px;
        right: -104px;
	}
	.osechi_benefit img.character_bakugo {
		width: 261px;
        left: -159px;
    }
	.osechi_benefit img.character_kirishima {
		width: 221px;
        right: -89px;
	}
	.osechi_benefit img.character_joro {
		width: 238px;
        left: -135px;
	}
	.osechi_benefit > div + div.benefit_4 {
		/*margin-top: -42px;*/
	}
}

@media screen and (max-width: 1200px) {
	.p_0_20 {
		padding: 0 20px;
	}
	.tab-content-title {
		/*padding: 0 20px;*/
	}
}

@media screen and (max-width: 1150px) {
	.osechi_benefit img.explanation {
		width: 75%;
	}
	.osechi_benefit img.character_ochaco {
		width: 135px;
        right: -37px;
	}
	.osechi_benefit img.character_deku {
        width: 174px;
        left: -71px;
	}
	.osechi_benefit img.character_todoroki {
		width: 169px;
        right: -34px;
	}
	.osechi_benefit img.character_bakugo {
		width: 218px;
        left: -88px;
	}
	.osechi_benefit img.character_kirishima {
		width: 212px;
        right: -40px;
	}
	.osechi_benefit img.character_joro {
		width: 213px;
        left: -78px;
	}
}

@media screen and (max-width: 1036px) {
	.p_0_18 {
		/*padding: 0 18px;*/
	}
}

/* SP */
@media screen and (max-width: 768px) {
	.osechi_main{
		/*padding-top: 24px;*/
	}
	.kv_icon1 {
    width: calc(62 / 365 * 100vw) !important;
    position: absolute;
    top: 18px;
    left: 2%;
	}
	.kv_icon2 {
    width: calc(60 / 365 * 100vw) !important;
    position: absolute;
    top: 14px;
    right: 2%;
	}
    .bg_wrap{
        padding-bottom: 24px;
    }
	.osechi_wrapper {
		margin-bottom: -350px;
	}
    .osechi_wrapper .pc {
        display: none;
        visibility: hidden;
    }

    .osechi_wrapper .sp {
        display: block;
        visibility: visible;
        margin: auto;
    }

    .osechi_intro_tab_wrapper {
        top: -320px;
        margin: auto;
    }

	.osechi_benefit {
		/*padding: 44px 0;*/
		background-size: 346px auto;
		/*margin-top: 24px;*/
	}

	.osechi_benefit img.explanation{
		width: 100% !important;
	}

	.osechi_benefit > div + div.benefit_3 {
		/*margin-top: 27px;*/
	}

	.osechi_benefit > div + div.benefit_4 {
		/*margin-top: 27px;*/
	}

	.osechi_intro {
		padding: 28px 0 0;
	}

    .osechi_intro > h2{
    font-size: 32px;
    margin: 0;
    }
	.osechi_intro2 > p {
    max-width: 85%;
    margin: 0 auto 64px;
    padding: 14px 14px 0;
    font-size: 18px;
    line-height: 1.4;
    text-align: left;
	}

	.tabs{
	justify-content: space-evenly;
	}

	.osechi_intro img {
    max-width: 100%;
	}

    div.space-50,div.space-20 {
        /*width: 7px;*/
    }

    .tab-content-title img {
        width: 100%;
    }

    .tab-button {
        max-width: 40%;
        font-size: 20px;
		height: 40px;
    }

	.tab-button.active {
		height: 50px;
	}

	div.black-boder {
    height: 16px;
    bottom: -16px;
	}

	.tab-content .swiper-button-next, .tab-content .swiper-button-prev {
		top: var(--swiper-navigation-top-offset, 50%);
	}
	
	.tab-content-title {
        padding: 0;
        margin: 0;
        max-width: 100%;
		margin-bottom: 20px;
    }

	.tabs .tab_title {
		margin-bottom: 15px;
		width: 77%;
	}

    .osechi_obi{
        padding: 8px 12px;

    }

	.osechi_intro_bg{
		background-position: center top -300px;
	}

	.osechi_icon1{
	width: calc(90 / 365 * 100vw) !important;
    left: 4px;
    top: 55%;
	}

	.osechi_icon2{
	width: calc(90 / 365 * 100vw) !important;
    right: 4px;
    top: 55%;
	}

	.osechi2_icon2{
	width: calc(82 / 365 * 100vw) !important;
    right: 4px;
    top: 55%;
	}

	.osechi3_icon2{
	width: calc(78 / 365 * 100vw) !important;
    right: 0;
    top: 55%;
	}

    .osechi_tab_attention{
        padding: 0 8px;
        text-align: left;
       font-size: 14px;
    }

	.tab-content .swiper_attention {
		margin: 0 auto 13px;
		font-size: 12px;
		font-weight: 700;
	}

    .oshinagaki, .osechi_maker {
        top: -320px;
    }
	
	.oshinagaki img {
		width: 72%;
	}

	.oshina_title {
    font-size: 16px;
	text-align: center;
	}

	.oshinagaki {
		padding: 8px 20px 24px;
        font-size: 14px;
		text-align: left;
	}

	.osechi_main .main_01 {
		/*margin-bottom: 8px;*/
	}
	
	.osechi_maker {
		padding: 0 0 35px;
	}

	.tab-content-title img.title_ju {
		margin-bottom: 0;
	}
	
	/* おせち紹介 */
	.area_tab_content {
		display: block;
	}
	.area_tab_content .osechi_link {
		width: 90%;
/*		margin: 0 auto;*/
		margin: 0 auto 20px;
	}
	.osechi_detail {
		width: 90%;
		margin: 0 auto 20px;
	}
	.tab-content {
		background-size: 182%;
	}
	.click_attention {
		width: 36%;
        left: 69%;
        height: fit-content;
        top: 0;
        bottom: -88%;
	}
	.click_attention p {
		font-size: 12px;
		margin: 9px 0 0;
	}
	.osechi_benefit > div + div {
		margin-top: -47px;
	}
}

/* バスケット風ジャンプ */
@keyframes basket_jump{

    /* 待機 */
    0%,15%,100%{
        transform:translateY(0) scale(1);
    }

    /* しゃがむ */
    20%{
        transform:translateY(5px) scaleY(0.9);
    }

    /* ジャンプ */
    40%{
        transform:translateY(-25px) scale(1.05);
    }

    /* 着地 */
    50%{
        transform:translateY(0) scale(1);
    }
}

/* SP */
@media screen and (max-width:768px){

    .jump_title_box{
        gap:8px;
    }

    .jump_player{
        width:60px;
    }
}

.jump_player{
	animation: basket_jump 3s ease-in-out infinite;
}

@keyframes basketJumpLeft{

    /* 待機 */
    0%,15%,100%{
        transform:translateY(0) scaleY(1);
    }

    /* しゃがむ */
    20%{
        transform:translateY(3px) scaleY(0.92);
    }

    /* ジャンプ */
    35%{
        transform:translateY(-25px) scaleY(1.05);
    }

    /* 着地 */
    45%{
        transform:translateY(0) scaleY(1);
    }
}

@keyframes basketJumpRight{

    0%,55%,100%{
        transform:translateY(0) scaleY(1);
    }

    60%{
        transform:translateY(3px) scaleY(0.92);
    }

    75%{
        transform:translateY(-25px) scaleY(1.05);
    }

    85%{
        transform:translateY(0) scaleY(1);
    }
}
.chara_right {
    animation: basketJumpRight 3s infinite;
    transform-origin: center bottom;
}
.chara_left {
    animation: basketJumpLeft 3s infinite;
    transform-origin: center bottom;
}