@charset "utf-8";
/* CSS Document */

/****************************************
clearfix
*****************************************/
.cf:before,
.cf:after {
display: table;
content: "";
}
.cf:after {
clear: both;
}
.cf {
zoom: 1;
}
.section .component:after,
.section .item:after,
.cols:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.section .component,
.section .item,
.cols {
zoom: 1;
}

.Noto_Sans {
font-family: 'Noto Sans JP', sans-serif;
}
.Noto_Serif {
font-family: 'Noto Serif JP', serif;
}
.shippori_mincho {
font-family: "Shippori Mincho", serif;
}
.Lato {
font-family: 'Lato', sans-serif;
}
.inter {
font-family: 'Inter', sans-serif;
}

#contents {
font-family: 'Inter','Noto Sans JP', sans-serif;
font-weight: 400;
font-feature-settings: "palt";
-webkit-font-feature-settings: "palt";
letter-spacing: 0.05em;
text-align: left;
}
#pageBody {
background: none;
zoom: 100%;
overflow: hidden;
}

.section .item {
position: relative;
display: flex;
flex-direction: column;
gap: 40px;
margin-bottom: 45px;
}
.section .item::after {
display: none;
}
.section .item h4 {
margin-bottom: 8px;
width: 100%;
font-size: 16px;
font-weight: 700;
line-height: 1.38;
}
.section .item h4 span {
display: inline-block;
margin: 7px 0 -5px 0;
font-size: 13px;
font-weight: 400;
}
.section .item .cnt {
margin-bottom: 3px;
font-size: 13px;
line-height: 1.35;
}
.section .item p.price {
font-size: 14px;
line-height: 1.35;
}
.section .item p.price strong {
font-size: 20px !important;
}
.section .item div.price {
position: relative;
}
.section .item div.price .special {
margin-bottom: 5px;
font-weight: 600;
font-size: 15px;
line-height: 1.30;
color: #ee0000;
}
.section .item div.price .special span {
font-size: 24px;
}
.section .item div.price .normal {
margin-top: -3px;
font-size: 13px;
}
.section .item .more {
display: flex;
flex-wrap: wrap;
align-items: center;
margin-top: 11px;
}
.section .item .lnk {
font-family: dnp-shuei-mgothic-std, sans-serif;
font-weight: 500;
font-style: normal;
font-size: 13px;
line-height: 30px;
letter-spacing: 0;
text-align: center;
}
.section .item .lnk a {
box-sizing: border-box;
display: block;
position: relative;
background-color: #ffcc33;
border-radius: 9999px;
padding-right: 9px;
width: 130px;
height: 30px;
color: #000;
}
.section .item .lnk a::after {
transform: translateY(-50%);
content: "\f054";
position: absolute;
right: 10px;
top: 50%;
font-family: "Font Awesome 5 Free";
font-weight: 900;
font-size: 10px;
color: #ff6600;
}
.section .item .lnk a:hover {
background-color: #ff8800;
color: #fff;
text-decoration: none;
}
.section .item .lnk a:hover::after {
color: #fff;
}
.section .item .number {
display: flex;
flex-wrap: wrap;
margin: 0 0 11px 0;
line-height: 21px;
text-align: center;
}
.section .item .number dt {
background-color: #000;
border-right: none;
border: solid 1px #000;
border-radius: 3px 0 0 3px;
width: 60px;
font-size: 11px;
color: #fff;
}
.section .item .number dd {
background-color: #fff;
border: solid 1px #000;
border-radius: 0 3px 3px 0;
border-left: none;
padding: 0 4px;
min-width: 42px;
font-size: 12px;
}

.section .item .off {
box-sizing: border-box;
position: absolute;
right: 14px;
top: -15px;
background-color: #ee0000;
border-radius: 50%;
padding-top: 19px;
width: 80px;
height: 80px;
letter-spacing: 0;
line-height: 1.1;
font-size: 16px;
text-align: center;
color: #fff;
}
.section .item .off span {
font-weight: 500;
font-size: 27px;
}
.section .item .btn {
position: absolute;
right: 30px;
bottom: 30px;
box-sizing: border-box;
background-color: #f58811;
border-radius: 10px;
padding: 20px 0 20px 0;
width: 320px;
text-align: center;
}
.section .item .btn a {
display: block;
margin: 18px auto 0 auto;
background-color: #fff588;
border-radius: 5px;
width: 280px;
height: 54px;
font-family: dnp-shuei-mgothic-std, sans-serif;
font-weight: 600;
font-style: normal;
font-size: 24px;
line-height: 54px;
letter-spacing: 0;
text-align: center;
color: #553322;
}
.section .item .btn a:hover {
background-color: #553322;
color: #fff;
text-decoration: none;
}

/* #mainVisual
================================================== */
#mainVisual {
position: relative;
margin: 0 auto 0 auto;
width: 375px;
font-size: 0;
line-height: 0;
}
#mainVisual .title {
box-sizing: border-box;
position: relative;
background: url("../img/title.jpg") no-repeat center center;
background-size: 375px auto;
padding: 33px 0 0 0;
height: 520px;
text-align: center;
}
#mainVisual .title p {
margin-bottom: 12px;
font-family: "Shippori Mincho", serif;
font-weight: 400;
text-shadow: 0 0 5px rgba(0,0,0,0.8);
font-size: 21px;
line-height: 1.6;
color: #fff;
}
#mainVisual .title h1 {
font-family: "Shippori Mincho", serif;
font-weight: 400;
text-shadow: 0 0 5px rgba(0,0,0,0.8);
font-size: 32px;
line-height: 1.6;
color: #fff;
}
#mainVisual .btn img {
display: block;
width: 100%;
height: auto;
}

/* mainContents section
================================================== */
#contents .banner a:hover img,
#mainVisual a:hover img {
filter: alpha(opacity=100);
-moz-opacity:1.0;
opacity:1.0;
}

/* #Power
================================================== */
#Power  {
background: url("../img/pow_bg.png") repeat center center;
background-size: 30px auto;
}
#Power .cont {
box-sizing: border-box;
position: relative;
margin: 0 auto;
padding: 51px 0 47px 0;
width: 330px;
}
#Power h2 {
padding-bottom: 49px;
font-weight: 300;
font-family: 'Noto Serif JP', serif;
font-size: 30px;
line-height: 1.4;
white-space: nowrap;
letter-spacing: -0.05em;
text-align: center;
}
#Power dl {
display: flex;
flex-direction: column;
gap: 16px;
position: relative;
background-color: #fff;
border-radius: 5px;
padding: 27px 30px;
}
#Power dt {
transform: translate(-50%,-50%);
position: absolute;
left: 50%;
top: 0;
padding-bottom: 10px;
font-weight: 400;
font-family: 'Noto Serif JP', serif;
font-size: 20px;
white-space: nowrap;
color: #ff7722;
}
#Power dd {
position: relative;
padding-left: 32px;
font-size: 16px;
}
#Power dd::before {
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background: url("../img/icn_check.png") no-repeat center center;
background-size: 26px auto;
width: 26px;
height: 23px;
}
#Power p {
margin-top: 34px;
font-size: 15px;
line-height: 1.87;
text-align: left;
}

/* #Component
================================================== */
#Component  {
margin-bottom: 44px;
}
#Component .cont {
box-sizing: border-box;
margin: 0 auto;
padding: 55px 0 0 0;
width: 330px;
}
#Component .head {
margin-bottom: 24px;
text-align: center;
}
#Component .head p {
margin-bottom: 3px;
font-size: 18px;
letter-spacing: 0;
line-height: 1.5;
}
#Component .head h2 {
font-weight: 300;
font-family: 'Noto Serif JP', serif;
font-size: 32px;
line-height: 1.32;
letter-spacing: -0.05em;
color: #ff7722;
}
#Component .lead {
margin-bottom: 35px;
font-size: 15px;
line-height: 1.87;
text-align: left;
}
#Component .list {
display: flex;
flex-direction: column;
gap: 25px;
position: relative;
}
#Component .block {
position: relative;
overflow: hidden;
background-color: #fff2d2;
border-radius: 8px;
}
#Component .block img {
width: 100%;
height: auto;
}
#Component .block .pack {
padding: 20px 20px 24px;
}
#Component .block h3 {
margin-bottom: 6px;
font-weight: 500;
font-size: 20px;
color: #ff7722;
}
#Component .block p {
font-size: 15px;
line-height: 1.87;
}

/* #Step
================================================== */
#Step  {}
#Step .head {
box-sizing: border-box;
position: relative;
margin: 0 auto 28px auto;
padding: 0;
width: 330px;
text-align: center;
}
#Step .head::before {
content: '';
display: block;
position: absolute;
left: -90px;
top: 95px;
background: url("../img/stp_obj1.jpg") no-repeat center center;
background-size: 160px auto;
width: 160px;
height: 152px;
mix-blend-mode: multiply;
z-index: 1;
}
#Step .head::after {
content: '';
display: block;
position: absolute;
right: -130px;
top: 65px;
background: url("../img/stp_obj2.jpg") no-repeat center center;
background-size: 242px auto;
width: 242px;
height: 333px;
mix-blend-mode: multiply;
z-index: 1;
}
#Step .head p {
margin-bottom: -2px;
font-weight: 300;
font-family: 'Noto Serif JP', serif;
font-size: 20px;
line-height: 1.5;
letter-spacing: -0.05em;
}
#Step .head h2 {
font-weight: 300;
font-family: 'Noto Serif JP', serif;
font-size: 32px;
font-style: italic;
line-height: 1.38;
letter-spacing: -0.05em;
color: #ff7722;
}
#Step .step:nth-of-type(odd) {
background-color: #fff2d2;
}
#Step .inner {
display: flex;
flex-direction: column;
flex-wrap: wrap;
gap: 0;
margin: 0 auto;
padding: 60px 0;
width: 330px;
}
#Step .image {
position: relative;
margin-bottom: 30px;
}
#STEP2 .image {
margin-top: -30px;
}
#STEP1 figcaption img {
position: absolute;
left: 31px;
top: -21px;
mix-blend-mode: multiply;
}
#STEP2 figcaption img {
position: absolute;
left: 18px;
top: 6px;
mix-blend-mode: multiply;
} 
#STEP3 figcaption img {
position: absolute;
left: 17px;
top: -21px;
mix-blend-mode: multiply;
}
#STEP4 figcaption img {
position: absolute;
left: 13px;
top: -25px;
mix-blend-mode: multiply;
}
#Step .inner .pack {
position: relative;
flex: 1;
text-align: left;
}
#Step .inner .catch {
margin-bottom: 33px;
}
#Step .inner .catch h3 {
margin-bottom: 23px;
font-weight: 500;
font-family: 'Noto Serif JP', serif;
font-size: 27px;
line-height: 1.41;
letter-spacing: -0.05em;
white-space: nowrap;
}
#Step .inner .catch p {
font-size: 15px;
line-height: 1.87;
}
#Step .inner .voice {
box-sizing: border-box;
position: relative;
background-color: #fff;
border: solid 1px #ee6600;
border-radius: 5px;
padding: 18px 20px 16px 20px;
}
#Step .inner .voice h4 {
transform: translateY(-50%);
position: absolute;
left: 15px;
top: 0;
font-weight: 400;
font-size: 14px;
line-height: 2;
color: #ee6600;
}
#Step .step:nth-of-type(odd) .inner .voice h4 span {
background:linear-gradient(#fff2d2 50%, #fff 50%);
padding: 0 5px;
}
#Step .step:nth-of-type(even) .inner .voice h4 span {
background:linear-gradient(#fff 50%, #fff 50%);
padding: 0 5px;
}
#Step .inner .voice p {
font-size: 14px;
line-height: 1.86;
}
#Step .inner .awa {
padding: 15px 0 47px 0;
}
#Step .inner .awa p {
margin-top: 24px;
font-size: 15px;
line-height: 1.87;
}

/* #Quality
================================================== */
#Quality  {
background: url("../img/pow_bg.png") repeat center center;
background-size: 30px auto;
}
#Quality .cont {
box-sizing: border-box;
position: relative;
margin: 0 auto;
padding: 51px 0 56px 0;
width: 330px;
}
#Quality .cont::after {
display: none !important;
}
#Quality h2 {
margin-bottom: 19px;
font-weight: 300;
font-family: 'Noto Serif JP', serif;
font-size: 30px;
line-height: 1.4;
white-space: nowrap;
letter-spacing: -0.05em;
color: #ee6600;
text-align: center;
}
#Quality p {
margin-bottom: 31px;
font-size: 15px;
line-height: 1.87;
text-align: left;
}
#Quality ol {
display: flex;
flex-direction: column;
gap: 57px;
margin: 0 auto;
width: 270px;
font-size: 14px;
}
#Quality li {
position: relative;
white-space: nowrap;
text-align: center;
}
#Quality li::after {
transform: translateX(-50%);
content: '';
display: block;
position: absolute;
left: 50%;
bottom: -37px;
background: url("../img/icn_arw.png") no-repeat center center;
background-size: 35px auto;
width: 35px;
height: 21px;
}
#Quality li:last-child::after {
display: none;
}
#Quality li img {
display: block;
border-radius: 7px;
margin-bottom: 11px;
}


.campaignBanner_middle {
position: relative;
margin: -92px auto;
width: 345px;
}

#contents a:hover,
#contents a:hover img {
opacity: 1 !important;
}