@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400..600&display=swap");
html {
  scroll-behavior: smooth;
}

.o-main {
  padding-top: 0;
}

@media (max-width: 768px) {
  .o-main {
    padding-inline: 6.66667vw;
  }
}

.p-newcampaigncontentsbody_inner img {
  max-width: 100%;
}

.p-newcampaigncontentsbody_inner .a-text a, .p-newcampaigncontentsbody_inner .c-list-marked a {
  color: #011a6b;
  text-decoration: underline;
  font-weight: 600;
}

.p-newcampaigncontentsbody_inner .c-list-marked li {
  margin: 0;
  font-size: min(2.93333vw, 14px);
}

.p-newcampaigncontentsbody_inner .a-text {
  font-size: min(3.2vw, 14px);
}

@media (max-width: 768px) {
  .p-newcampaigncontentsbody_inner {
    margin-top: 0;
  }
}

.qx-floating-banner {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 20;
  width: calc(100vw - 280px);
  background: rgba(255, 255, 255, 0.9);
  padding-block: min(2vw, 20px) min(4.8vw, 20px);
  transform: translateY(100%);
  transition: all .5s;
}

.qx-floating-banner.is-fixed {
  transform: translateY(0);
}

@media (max-width: 1365px) {
  .qx-floating-banner {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .qx-floating-banner .qx-btn-area {
    width: 80vw;
    margin-inline: auto;
  }
  .qx-floating-banner.is-scroll-up {
    bottom: 65px;
  }
}

.qx-inner {
  max-width: 650px;
  margin-inline: auto;
}

@media (max-width: 768px) {
  .qx-inner {
    padding-inline: 6.66667vw;
  }
}

.qx-txt-secondary {
  color: #011a6b;
}

.qx-text-link a {
  font-weight: 600;
  color: #011a6b;
  text-decoration: underline;
}

.qx-text--fukidashi, .qx-text--fukidashi-white {
  position: relative;
  color: #011a6b;
  text-align: center;
  width: fit-content;
  margin-inline: auto;
  padding-inline: 1em;
  font-weight: 600;
}

.qx-text--fukidashi::before, .qx-text--fukidashi-white::before, .qx-text--fukidashi::after, .qx-text--fukidashi-white::after {
  display: block;
  content: '';
  width: 1px;
  height: 100%;
  background-color: #011a6b;
  position: absolute;
  bottom: .2em;
}

.qx-btn-area .qx-text--fukidashi::before,
.qx-btn-area .qx-text--fukidashi::after
{
  background-color: #72ae2c;
}

.qx-text--fukidashi:before, .qx-text--fukidashi-white:before {
  transform: translateY(0.15em) rotate(-20deg);
  left: 0;
}

.qx-text--fukidashi:after, .qx-text--fukidashi-white:after {
  transform: translateY(0.15em) rotate(20deg);
  right: 0;
}

.qx-text--fukidashi-white {
  color: #fff;
}

.qx-text--fukidashi-white::before, .qx-text--fukidashi-white::after {
  background-color: #fff;
}

.qx-btn-area {
  text-align: center;
}

.qx-btn-area .qx-text--fukidashi {
  color: #1a1a1a;
}

@media (min-width: 769px) {
  .qx-btn-area img {
    max-width: 500px;
  }
}

.qx-btn-area:not(:first-child) {
  margin-top: min(4vw, 30px);
}

.qx-btn-txt {
  font-size: min(4vw, 20px);
  margin-bottom: 0.5em !important;
}

.qx-btn-txt-small {
  font-size: min(3.2vw, 16px);
  margin-bottom: 0.5em !important;
}

.qx-accordion__title-icon {
  width: min(6.66667vw, 40px);
  height: min(6.66667vw, 40px);
  background-color: #011a6b;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.qx-accordion__title-icon::before, .qx-accordion__title-icon::after {
  display: block;
  content: '';
  width: min(4vw, 20px);
  height: 3px;
  background-color: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 2px;
  transition: opacity .4s;
}

.qx-accordion__title-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.qx-is-open .qx-accordion__title-icon::after {
  opacity: 0;
}

.qx-swiper {
  margin-bottom: 30px;
}

.qx-swiper .swiper-slide:not(.swiper-slide-active) {
  transform: scale(0.8);
  transition-duration: 0.5s;
}

.qx-kv {
  margin-left: calc((100vw - 100% - 280px) / -2);
  margin-right: calc((100vw - 100%) / -2);
  max-width: calc(100vw - 280px);
  min-width: 1024px;
}

@media (max-width: 1365px) {
  .qx-kv {
    margin-left: calc((100vw - 100%) / -2);
    max-width: initial;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .qx-kv {
    margin-left: calc((100vw - 100% - (1024px / 2)) / 2);
    margin-right: calc((100vw - 100% - (1024px / 2)) / 2);
  }
}

@media (max-width: 768px) {
  .qx-kv {
    min-width: 0;
  }
}

.qx-kv__img img {
  width: 100%;
}

.qx-kv-inner {
  max-width: 950px;
  margin-inline: auto;
}

.qx-kv--lower {
  background-color: #011a6b;
  text-align: center;
  padding-block: 25px;
}

@media (max-width: 768px) {
  .qx-kv--lower {
    padding-inline: 1.33333vw;
    padding-block: 1.6vw;
  }
}

@media (max-width: 768px) {
  .qx-kv-period {
    padding-inline: 6.66667vw;
  }
}

.qx-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  margin-top: min(2.66667vw, 10px);
}

.qx-menu > * {
  flex: 1 1 calc(100% / 4 - 20px);
  box-sizing: border-box;
}

.qx-menu a {
  border: 2px solid #e4b12c;
  padding: 10px 10px 30px;
  display: block;
  position: relative;
}

.qx-menu a::after {
  content: '';
  width: 12px;
  height: 12px;
  transform: rotate(45deg);
  display: inline-block;
  border-bottom: 2px solid #fcce56;
  border-right: 2px solid #fcce56;
}

.qx-menu a::after {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%) rotate(45deg);
}

@media (max-width: 768px) {
  .qx-menu {
    gap: 3px;
  }
  .qx-menu a {
    border-width: 1px;
    padding: 5px 5px 15px;
  }
  .qx-menu a:after {
    border-width: 1px;
    bottom: 5px;
    width: 8px;
    height: 8px;
  }
  .qx-menu img {
    width: auto;
    height: 6.66667vw;
  }
}

.qx-campaign {
  gap: 10px;
  padding-block: min(4.66667vw, 30px) min(8vw, 40px);
  align-items: center;
}

.qx-campaign .c-list-marked {
  margin-top: 10px;
}

.qx-campaign .c-list-marked:not(:last-child) {
  margin-bottom: 15px;
}

.qx-campaign-plus {
  position: relative;
  width: min(10.66667vw, 60px);
  height: min(10.66667vw, 60px);
  margin-inline: auto;
  margin-block: min(2.66667vw, 15px);
}

.qx-campaign-plus::before, .qx-campaign-plus::after {
  display: block;
  content: '';
  width: inherit;
  height: 12px;
  background-color: #b4044d;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.qx-campaign-plus:after {
  transform: translate(-50%, -50%) rotate(90deg);
}

@media (max-width: 768px) {
  .qx-campaign-plus {
    height: 10.66667vw;
  }
  .qx-campaign-plus::before, .qx-campaign-plus::after {
    height: 6px;
  }
}

.qx-campaign__img {
  margin-inline: auto;
  text-align: center;
}

@media (max-width: 768px) {
  .qx-campaign__img {
    width: 71.33333vw;
  }
}

.qx-campaign__text {
  text-align: center;
  font-weight: 600;
  font-size: min(3.46667vw, 16px);
  letter-spacing: -0.05em;
  color: #011a6b;
}

.qx-campaign-block {
  border: 2px solid #011a6b;
  max-width: 650px;
  margin-inline: auto;
}

.qx-campaign-block--upper {
  margin-top: 100px;
}

.qx-campaign-block--upper .qx-campaign-block-body {
  padding-block: 0;
}

.qx-campaign-block--upper .c-list-marked {
  padding-inline: 30px;
}

.qx-campaign-block-header {
  background-image: linear-gradient(90deg, #dba100, #f5d687 50%, #dba100 100%);
  color: #fff;
  text-align: center;
  font-size: min(3.86667vw, 24px);
  font-weight: 500;
  padding-block: min(2.66667vw, 15px);
  margin: 1px;
}

.qx-campaign-block-body {
  padding-inline: min(3.2vw, 20px);
  padding-block: min(5.33333vw, 20px);
}

@media (max-width: 768px) {
  .qx-campaign-block--upper {
    margin-top: 13.33333vw;
  }
}

.qx-campaign__title {
  margin-top: -90px;
  margin-inline: auto;
  text-align: center;
}

@media (max-width: 768px) {
  .qx-campaign__title {
    margin-top: -12vw;
  }
}

.qx-campaign-accordion {
  border-top: 2px solid #011a6b;
  margin-top: min(4vw, 25px);
}

.qx-campaign-accordion__title {
  text-align: center;
  font-weight: 600;
  font-size: min(4.8vw, 24px);
  padding-block: min(5.33333vw, 20px);
  margin-bottom: 0 !important;
  position: relative;
  cursor: pointer;
}

.qx-campaign-accordion__title:hover {
  opacity: .7;
}

.qx-campaign-accordion-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s;
  text-align: center;
}

.qx-campaign-accordion-body > div {
  padding-block: 20px;
  border-top: 2px solid #011a6b;
}

.qx-campaign-accordion .qx-accordion__title-icon {
  right: min(4.4vw, 30px);
}

.qx-campaign-accordion.qx-is-open .qx-campaign-accordion-body {
  max-height: 1000px;
}

.qx-merit--upper {
  margin-left: calc((100vw - 100% - 280px) / -2);
  margin-right: calc((100vw - 100%) / -2);
  max-width: calc(100vw - 280px);
  min-width: 1024px;
  background: #011a6b;
  padding-block: 10px 60px;
  position: relative;
}

@media (max-width: 1365px) {
  .qx-merit--upper {
    margin-left: calc((100vw - 100%) / -2);
    max-width: initial;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .qx-merit--upper {
    margin-left: calc((100vw - 100% - (1024px / 2)) / 2);
    margin-right: calc((100vw - 100% - (1024px / 2)) / 2);
  }
}

@media (max-width: 768px) {
  .qx-merit--upper {
    min-width: 0;
  }
}

.qx-merit--upper::after {
  content: '';
  border-style: solid;
  display: inline-block;
  border-width: 65px 50px 0 50px;
  border-color: #011a6b transparent transparent transparent;
}

.qx-merit--upper::after {
  position: absolute;
  left: 50%;
  bottom: -45px;
  transform: translate(-50%) scaleY(0.5);
}

.qx-merit--lower {
  padding-bottom: 5px;
}

.qx-merit--lower::before, .qx-merit--lower::after {
  margin-left: calc((100vw - 100% - 280px) / -2);
  margin-right: calc((100vw - 100%) / -2);
  max-width: calc(100vw - 280px);
  min-width: 1024px;
  display: block;
  content: '';
  height: 15px;
  background-image: repeating-linear-gradient(-45deg, #de0000, #de0000 2px, #ffffff 2px, #ffffff 4px);
}

@media (max-width: 1365px) {
  .qx-merit--lower::before, .qx-merit--lower::after {
    margin-left: calc((100vw - 100%) / -2);
    max-width: initial;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .qx-merit--lower::before, .qx-merit--lower::after {
    margin-left: calc((100vw - 100% - (1024px / 2)) / 2);
    margin-right: calc((100vw - 100% - (1024px / 2)) / 2);
  }
}

@media (max-width: 768px) {
  .qx-merit--lower::before, .qx-merit--lower::after {
    min-width: 0;
  }
}

.qx-merit--lower .qx-inner {
  text-align: center;
  padding-block: 20px 40px;
}

.qx-merit__title {
  max-width: 650px;
  margin-inline: auto;
}

.qx-merit__title img {
  width: 100%;
}

@media (max-width: 768px) {
  .qx-merit__title {
    max-width: none;
  }
  .qx-merit--lower .qx-inner {
    padding-block: 20px;
  }
}

.qx-merit__text--fukidashi {
  font-size: 24px;
  font-weight: 600;
  margin-top: 40px;
}

@media (max-width: 768px) {
  .qx-merit__text--fukidashi {
    font-size: 14px;
  }
}

.qx-merit-accordion {
  background: url(../images/bg_line03.png) no-repeat left bottom / 100% auto,url(../images/bg_line01.png) no-repeat left top / 100% auto,url(../images/bg_line02.png) repeat-y left top / 100% auto;
  padding-inline: 17px;
  position: relative;
}

.qx-merit-accordion.qx-is-open .qx-merit-accordion-body {
  max-height: 500px;
}

@media (max-width: 768px) {
  .qx-merit-accordion {
    padding-inline: 10px;
  }
}

.qx-merit-accordion__title {
  position: relative;
  padding-block: 10px;
  padding-right: 40px;
  cursor: pointer;
}

.qx-merit-accordion__title .qx-accordion__title-icon {
  right: 0;
}

@media (max-width: 768px) {
  .qx-merit-accordion__title {
    padding-right: 35px;
  }
  .qx-merit-accordion__title img {
    width: auto;
    height: 50px;
  }
}

@media (max-width: 500px) {
  .qx-merit-accordion__title img {
    height: 7.33333vw;
  }
}

.qx-merit-accordion-body {
  margin: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s;
}

.qx-merit-accordion-body-row {
  border-top: 2px solid #011a6b;
  display: flex;
  gap: 10px;
}

@media (max-width: 768px) {
  .qx-merit-accordion-body {
    border-width: 1px;
  }
  .qx-merit-accordion-body-row {
    position: relative;
  }
  .qx-merit-accordion__link {
    position: absolute;
    bottom: 15px;
    right: 0;
    width: 100%;
  }
}

.qx-merit-accordion__img {
  width: 120px;
  padding-block: 15px;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .qx-merit-accordion__img {
    width: 85px;
  }
}

.qx-merit-accordion__text {
  padding-block: 15px;
  display: flex;
  flex-direction: column;
}

@media (max-width: 768px) {
  .qx-merit-accordion__text p {
    font-size: 12px;
  }
  .qx-merit-accordion__text p:first-of-type {
    margin-bottom: 35px;
  }
}

.qx-merit-accordion__link {
  text-align: right;
  margin-top: auto;
}

.qx-gift {
  margin-left: calc((100vw - 100% - 280px) / -2);
  margin-right: calc((100vw - 100%) / -2);
  max-width: calc(100vw - 280px);
  min-width: 1024px;
  padding-block: min(8vw, 40px) min(10.66667vw, 40px);
  background-color: #e4b12c;
}

@media (max-width: 1365px) {
  .qx-gift {
    margin-left: calc((100vw - 100%) / -2);
    max-width: initial;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .qx-gift {
    margin-left: calc((100vw - 100% - (1024px / 2)) / 2);
    margin-right: calc((100vw - 100% - (1024px / 2)) / 2);
  }
}

@media (max-width: 768px) {
  .qx-gift {
    min-width: 0;
  }
}

.qx-gift .qx-inner {
  background: url(../images/gift_icon.png) no-repeat center 110px;
  background-size: 770px auto;
  max-width: 840px;
}

.qx-gift-ttl {
  text-align: center;
  margin-block: 0;
}

.qx-gift-txt {
  text-align: center;
  font-weight: 600;
  font-size: min(3.2vw, 18px);
}

.qx-gift-calendar {
  margin-block: min(8vw, 30px) min(5.33333vw, 20px);
  position: relative;
}

.qx-gift-period {
  position: absolute;
}

.qx-gift-period a {
  font-size: min(4vw, 24px);
  color: #011a6b;
  font-weight: 600;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(calc(-50% + 25px), -50%);
  border-bottom: 2px solid #011a6b;
  line-height: 1;
  white-space: nowrap;
}

.qx-gift-period a::after {
  width: min(3.2vw, 17px);
  height: min(3.2vw, 17px);
  display: inline-block;
  content: '';
  background: url(../images/gift_search_icon.png) no-repeat center center;
  background-size: 100% auto;
  margin-left: min(1.33333vw, 5px);
}

.qx-gift-period a:hover {
  border-bottom-color: transparent;
}

.qx-gift-period-scallop {
  top: 80px;
  left: 40px;
}

.qx-gift-period-oyster {
  top: 80px;
  right: 5px;
}

.qx-gift-period-eel {
  top: 160px;
  left: 40px;
}

.qx-gift-period-muscat {
  top: 240px;
  left: 40px;
}

.qx-gift-period-salmon {
  top: 320px;
  left: 210px;
}

.qx-gift-period-rice {
  top: 400px;
  left: 310px;
}

.qx-gift-banner {
  text-align: center;
  color: #fff;
}

.qx-gift-banner .qx-text--fukidashi {
  font-size: min(3.2vw, 24px);
 
}

@media (min-width: 769px) {
  .qx-gift-banner {
    overflow: hidden;
  }
  .qx-gift-banner .qx-text--fukidashi {
    margin-top: 20px;
  }
}

.qx-gift-banner a {
  display: block;
  width: fit-content;
  margin-inline: auto;
}

.qx-gift-banner a:not(:last-child) {
  margin-bottom: min(2.66667vw, 20px);
}

@media (max-width: 768px) {
  .qx-gift .qx-inner {
    background: url(../images/gift_icon.png) no-repeat center 100px;
    background-size: calc(100% - (50 / 750 * 100vw)) auto;
  }
  .qx-gift-period a {
    transform: translate(calc(-50% + (27 / 750 * 100vw)), -50%);
  }
  .qx-gift-period-scallop {
    width: 30.66667vw;
    top: 10.93333vw;
    left: 3.33333vw;
  }
  .qx-gift-period-oyster {
    width: 22.4vw;
    top: 10.93333vw;
    right: 0.66667vw;
  }
  .qx-gift-period-oyster a {
    font-size: 2.53333vw;
  }
  .qx-gift-period-oyster a::after {
    width: 2vw;
    height: 2vw;
  }
  .qx-gift-period-eel {
    width: 30.66667vw;
    top: 22vw;
    left: 3.33333vw;
  }
  .qx-gift-period-muscat {
    width: 65.33333vw;
    top: 33.06667vw;
    left: 3.33333vw;
  }
  .qx-gift-period-salmon {
    width: 48.53333vw;
    top: 43.46667vw;
    left: 20.66667vw;
  }
  .qx-gift-period-rice {
    width: 36.8vw;
    top: 54.4vw;
    left: 28.66667vw;
  }
}

@media (max-width: 500px) {
  .qx-gift .qx-inner {
    background-position: center 20vw;
  }
}

.qx-benefits {
  max-width: 650px;
  margin-inline: auto;
  padding-block: min(4vw, 40px) 0;
}

.qx-benefits-inner {
  max-width: 650px;
  margin-inline: auto;
  border-bottom: 2px solid #011a6b;
  padding-bottom: min(6.66667vw, 40px);
}

@media (max-width: 768px) {
  .qx-benefits-inner {
    border-width: 1px;
  }
}

.qx-benefits__title {
  text-align: center;
  margin-inline: auto;
  margin-block: 0 min(5.33333vw, 40px);
  color: #011a6b;
  font-size: min(4.6vw, 36px);
  font-weight: 600;
}

.qx-benefits__title::before, .qx-benefits__title::after {
  display: block;
  content: '';
  width: 100%;
  height: 10px;
  background-image: repeating-linear-gradient(-45deg, #011a6b, #011a6b 3px, #ffffff 3px, #ffffff 6px);
}

.qx-benefits__title::before {
  margin-bottom: 15px;
}

.qx-benefits__title::after {
  margin-top: 15px;
}

@media (max-width: 768px) {
  .qx-benefits__title::before, .qx-benefits__title::after {
    height: 8px;
    background-image: repeating-linear-gradient(-45deg, #011a6b, #011a6b 2px, #ffffff 2px, #ffffff 4px);
  }
  .qx-benefits__title::before {
    margin-bottom: 8px;
  }
  .qx-benefits__title::after {
    margin-top: 8px;
  }
}

.qx-benefits-contents {
  text-align: center;
  margin-block: 0 40px;
}

.qx-benefits-contents .c-list-marked {
  margin-block: 10px min(5.33333vw, 30px);
}

@media (max-width: 768px) {
  .qx-benefits-contents {
    padding-inline: 3.33333vw;
  }
}

.qx-summary {
  padding-top: min(6.66667vw, 50px);
}

.qx-summary-inner {
  max-width: 650px;
  margin-inline: auto;
}
