@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+Antique:wght@500;700&display=swap');
:root {
    --mayo1-color: #860500; /*濃厚BBQソース味*/
    --mayo1-color-op06: rgb(134 5 0 / .6); /*濃厚BBQソース味 透過60%*/
    --mayo2-color: #EC7DA7; /*甘辛スイートチリ味*/
    --mayo2-color-op06: rgb(236 125 167 / .6); /*甘辛スイートチリ味 透過60%*/
}
/*-- reset --*/
html {
    margin: 0;
    padding: 0;
}
body {
    margin: 0;
    padding: 0;
}
figure {
    margin: 0;
}
h1, h2, h3, h4, h5, h6 {
    margin: 0;
    padding: 0;
    line-height: inherit;
    font-weight: normal;
    font-size: inherit;
}
ul, ol {
    margin: 0;
    padding-left: 0;
}
ul li, ol li {
    margin-left: 0;
    list-style-type: none;
}
dl, dt, dd {
    margin: 0;
    padding: 0;
}
a img {
    border: none;
    margin: 0;
    padding: 0;
}
p {
    margin: 0;
}
img {
    line-height: 1;
}
hr {
    border: none;
    margin: 0;
    padding: 0;
}
button {
    line-height: inherit;
    margin: 0px;
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
}
input {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
textarea {
    border: none;
    -webkit-border-image: none;
    border-image: none;
    resize: none;
}
table {
    border-collapse: collapse;
    border: 0px;
}
html {
    overflow-x: hidden;
    width: 100%;
    line-height: 2;
}
body {
    position: relative;
    color: #4C2C12;
    background: #fff;
    font-family: "Roboto", "YakuHanJP", 'Noto Sans JP', "BaseFont-JP", Helvetica, Arial, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    -webkit-print-color-adjust: exact;
    letter-spacing: .05em;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
/*==========================================

 PC & ALL

==========================================*/
.main {
    font-size: 18px;
    line-height: 1.4;
}
.main img {
    width: 100%;
    vertical-align: top;
}
.main a {
    color: var(--text-color);
    text-decoration: none;
}
.header {
    position: relative;
    padding: 100px 0 30px;
    font-family: "Zen Kaku Gothic Antique", serif;
    font-weight: 700;
    font-style: normal;
    background: #FFFAE8;
    text-align: center;
}
.header::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100px;
    background: url("/cp/202502-sekai-mayonnaise/assets/img/header-mayonnaise.svg") repeat-x center / cover;
    top: 0;
    left: 0;
}
.h1-block {
    padding-top: 30px;
}
.h1-copy {
    font-size: 16px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 20px;
}
.h1-copy::before {
    position: relative;
    content: "";
    display: block;
    width: 132px;
    height: 100px;
    background: url("/cp/202502-sekai-mayonnaise/assets/img/icon-mayonnaise.png") no-repeat center /contain;
}
.h1-copy2 {
    display: block;
    font-size: 32px;
}
h1 {
    margin-top: 30px;
    font-size: 60px;
}
.header-copy {
    width: 695px;
    margin: 30px auto 0;
}
.header-info-item {
    margin-top: 45px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 30px 64px;
}
.header-info-item-img {
    width: 72px;
    margin: 0 auto;
}
.header-info-item-link {
    width: 240px;
    height: 80px;
    margin-top: 30px;
    font-size: 20px;
    border-radius: 10px;
    color: #fff !important;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.item01 .header-info-item-link {
    background: var(--mayo1-color);
}
.item02 .header-info-item-link {
    background: var(--mayo2-color);
    letter-spacing: 0;
}
.header-info-item-note {
    width: 100%;
    font-size: 14px;
}
.header-info-item-note-txt::before {
    content: "※";
}
.header-info-date {
    width: 355px;
    margin: 30px auto 0;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.header-info-date-dt {
    height: 24px;
    font-size: 16px;
    color: #fff;
    background: #e4002b;
    line-height: 24px;
}
.header-info-date-dd {
    height: 62px;
    font-size: 28px;
    line-height: 62px;
}
.header-info-date-dd span {
    font-size: 20px;
}
.header-info-note {
    margin-top: 30px;
}
.header-info-note-txt1 {
    font-size: 16px;
}
.header-info-note-txt2 {
    font-size: 14px;
}
.header-info-note-txt2::before {
    content: "※";
}
#requirements {
    position: relative;
    padding: 100px 0 60px;
}
#requirements::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100px;
    background: url("/cp/202502-sekai-mayonnaise/assets/img/header-mayonnaise.svg") repeat-x center / cover;
    top: 0;
    left: 0;
}
.requirements-inner {
    width: 1040px;
    margin: 0 auto;
    padding-top: 48px;
}
.requirements-ttl {
    font-size: 54px;
    font-weight: bold;
    text-align: center;
}
.requirements-list {
    margin-top: 48px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 48px normal;
}
.requirements-list-dt {
    width: 290px;
    flex-shrink: 0;
    font-weight: bold;
    color: #e4002b;
}
@media screen and (min-width: 769px), print {
    .requirements-list-dt {
        text-align: right;
    }
}
.requirements-list-dd {
    width: 715px;
    flex-shrink: 0;
}
.requirements-list-dd p + p {
    margin-top: .8em;
}
.requirements-list-dd li {
    padding-left: 1em;
    position: relative;
}
.requirements-list-dd li::before {
    position: absolute;
    content: "・";
    top: 0;
    left: .2em;
}
.requirements-list-dd a {
    text-decoration: underline;
}
a[data-gtm="tocomlink"]::after {
    display: inline-block;
    content: "";
    width: 13px;
    height: 13px;
    background: url("/cp/202502-sekai-mayonnaise/assets/img/icon-window.svg") no-repeat center / contain;
    margin-left: .1em;
    margin-right: .2em;
}
.requirements-btn-area {
    margin-top: 48px;
    display: flex;
    justify-content: center;
    gap: 64px;
}
.requirements-btn-link {
    width: 240px;
    height: 80px;
    margin-top: 30px;
    font-family: "Zen Kaku Gothic Antique", serif;
    font-weight: 700;
    font-size: 20px;
    border-radius: 10px;
    color: #fff !important;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.requirements-btn-link.item01 {
    background: var(--mayo1-color);
}
.requirements-btn-link.item02 {
    background: var(--mayo2-color);
    letter-spacing: 0;
}
.requirements-btn-txt {
    margin-top: 16px;
    font-size: 14px;
    text-align: center;
}
.requirements-btn-txt::before {
    content: "※";
}
.requirements-btn-ntoe {
    width: 544px;
    margin: 30px auto 0;
    text-align: right;
}
.requirements-btn-ntoe-link {
    font-size: 15px;
    color: #e4002b !important;
    position: relative;
}
.requirements-btn-ntoe-link::after {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-left: 5px;
    background: url("/cp/202502-sekai-mayonnaise/assets/img/icon-arrow-red.svg") no-repeat center / contain;
}
@media screen and (min-width: 769px), print {
    .main a, .main a figure {
        -webkit-transition: all .3s;
        transition: all .3s;
    }
    .item01 a:hover.header-info-item-link, a:hover.requirements-btn-link.item01 {
        background: var(--mayo1-color-op06);
    }
    .item02 a:hover.header-info-item-link, a:hover.requirements-btn-link.item02 {
        background: var(--mayo2-color-op06);
    }
    a:hover .header-info-item-img {
        opacity: .8;
    }
    .u-none--pc {
        display: none !important;
    }
}
/*==========================================

 SP

==========================================*/
@media screen and (max-width: 768px) {
    .main {
        font-size: calc((18 / 375) * 100vw);
        line-height: 1.4;
    }
    .header {
        padding: calc((60 / 375) * 100vw) 0 calc((30 / 375) * 100vw);
    }
    .header::before {
        height: calc((60 / 375) * 100vw);
    }
    .h1-block {
        padding-top: calc((15 / 375) * 100vw);
    }
    .h1-copy {
        font-size: calc((14 / 375) * 100vw);
        gap: calc((10 / 375) * 100vw);
    }
    .h1-copy::before {
        width: calc((76 / 375) * 100vw);
        height: calc((70 / 375) * 100vw);
    }
    .h1-copy2 {
        font-size: calc((20 / 375) * 100vw);
    }
    h1 {
        margin-top: calc((30 / 375) * 100vw);
        font-size: calc((40 / 375) * 100vw);
    }
    .header-copy {
        width: calc((350 / 375) * 100vw);
        margin-top: 0;
    }
    .header-info-item {
        margin-top: calc((30 / 375) * 100vw);
        gap: normal calc((30 / 375) * 100vw);
    }
    .header-info-item-img {
        width: calc((72 / 375) * 100vw);
    }
    .header-info-item-link {
        width: calc((160 / 375) * 100vw);
        height: calc((80 / 375) * 100vw);
        margin-top: calc((30 / 375) * 100vw);
        font-size: calc((16 / 375) * 100vw);
        border-radius: calc((10 / 375) * 100vw);
    }
    .header-info-item-note {
        width: calc((330 / 375) * 100vw);
        margin: calc((20 / 375) * 100vw) auto 0;
        font-size: calc((12 / 375) * 100vw);
        text-align: left;
    }
    .header-info-item-note-txt {
        padding-left: 1em;
        position: relative;
    }
    .header-info-item-note-txt::before {
        position: absolute;
        top: 0;
        left: 0;
    }
    .header-info-date {
        width: calc((355 / 375) * 100vw);
        margin-top: calc((30 / 375) * 100vw);
    }
    .header-info-date-dt {
        height: calc((24 / 375) * 100vw);
        font-size: calc((16 / 375) * 100vw);
        line-height: calc((24 / 375) * 100vw);
    }
    .header-info-date-dd {
        height: calc((62 / 375) * 100vw);
        font-size: calc((26 / 375) * 100vw);
        line-height: calc((62 / 375) * 100vw);
    }
    .header-info-date-dd span {
        font-size: calc((20 / 375) * 100vw);
    }
    .header-info-note {
        margin-top: calc((30 / 375) * 100vw);
    }
    .header-info-note-txt1 {
        font-size: calc((16 / 375) * 100vw);
    }
    .header-info-note-txt2 {
        font-size: calc((12 / 375) * 100vw);
    }
    #requirements {
        padding: calc((60 / 375) * 100vw) 0 calc((30 / 375) * 100vw);
    }
    #requirements::before {
        height: calc((60 / 375) * 100vw);
    }
    .requirements-inner {
        width: calc((330 / 375) * 100vw);
        padding-top: calc((30 / 375) * 100vw);
    }
    .requirements-ttl {
        font-size: calc((34 / 375) * 100vw);
    }
    .requirements-list {
        margin-top: calc((48 / 375) * 100vw);
        flex-direction: column;
        gap: normal;
    }
    .requirements-list-dt {
        width: 100%;
    }
    .requirements-list-dt:not(:first-of-type) {
        margin-top: 2em;
    }
    .requirements-list-dd {
        width: 100%;
        margin-top: 1em;
    }
    a[data-gtm="tocomlink"]::after {
        width: calc((12 / 375) * 100vw);
        height: calc((12 / 375) * 100vw);
    }
    .requirements-btn-area {
        width: calc((340 / 375) * 100vw);
        margin-top: calc((30 / 375) * 100vw);
        margin-left: calc((5 / 375) * 100vw * -1);
        gap: calc((20 / 375) * 100vw);
    }
    .requirements-btn-link {
        width: calc((160 / 375) * 100vw);
        height: calc((80 / 375) * 100vw);
        margin-top: calc((30 / 375) * 100vw);
        font-size: calc((16 / 375) * 100vw);
        border-radius: calc((10 / 375) * 100vw);
    }
    .requirements-btn-txt {
        width: calc((330 / 375) * 100vw);
        margin: calc((15 / 375) * 100vw) auto 0;
        padding-left: 1em;
        font-size: calc((12 / 375) * 100vw);
        text-align: left;
        position: relative;
    }
    .requirements-btn-txt::before {
        position: absolute;
        top: 0;
        left: 0;
    }
    .requirements-btn-ntoe {
        width: calc((330 / 375) * 100vw);
        margin-top: calc((30 / 375) * 100vw);
    }
    .requirements-btn-ntoe-link {
        font-size: calc((14 / 375) * 100vw);
    }
    .requirements-btn-ntoe-link::after {
        width: calc((10 / 375) * 100vw);
        height: calc((10 / 375) * 100vw);
        margin-left: calc((5 / 375) * 100vw);
    }
    .u-none--sp {
        display: none !important;
    }
}
/* キャンペーン終了 */
.endAnnounce {
    display: block;
    width: 1000px;
    border: 4px #ccc solid;
    color: #eb0028;
    background: #fff;
    font-size: 1.6rem;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
    margin: 20px auto;
    padding: 20px;
    box-sizing: border-box;
}
.type_fin {
    color: #eb0028;
    font-weight: bold;
}
@media screen and (max-width: 768px) {
    .endAnnounce {
        font-size: calc(20 / 375 * 100vw);
        width: 96%;
    }
}