@charset "utf-8";
/* CSS Document */ 
:root {
  --primary: #68ba94;
  --white: #fff;
  --black: #000000;
  --gray-333: #333;
  --gray-888: #888;
  --gray-ccc: #ccc;
  --rose: #f56359;
  --yellow: #f5db56;
  --orange: #ec971f;
  --btn-bg: #2c8e9b;
  --beige: #f4ecef;
}
* {
  scroll-behavior: smooth;
}
*, ::before, ::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
  min-width: 0;
}
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}
body {
  margin: 0;
}
main {
  display: block;
}
p, table, blockquote, address, pre, iframe, form, figure, dl {
  margin: 0;
}
p, div, h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  margin: 0;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
}
ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}
pre {
  font-family: monospace, monospace;
  font-size: inherit;
}
address {
  font-style: inherit;
}
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}
abbr[title] {
  text-decoration: underline dotted;
}
b, strong {
  font-weight: bolder;
}
code, kbd, samp {
  font-family: monospace, monospace;
  font-size: inherit;
}
small {
  font-size: 80%;
}
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
svg, img, embed, object, iframe {
  vertical-align: bottom;
}
button, input, optgroup, select, textarea {
  -webkit-appearance: none;
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
}
button, [type="button"], [type="reset"], [type="submit"] {
  cursor: pointer;
}
button:disabled, [type="button"]:disabled, [type="reset"]:disabled, [type="submit"]:disabled {
  cursor: default;
}
:-moz-focusring {
  outline: auto;
}
select:disabled {
  opacity: inherit;
}
option {
  padding: 0;
}
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}
legend {
  padding: 0;
}
progress {
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
  height: auto;
}
[type="search"] {
  outline-offset: -2px; /* 1 */
}
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
[type="number"] {
  -moz-appearance: textfield;
}
label[for] {
  cursor: pointer;
}
details {
  display: block;
}
summary {
  display: list-item;
}
[contenteditable]:focus {
  outline: auto;
}
table {
  border-color: inherit;
  border-collapse: collapse;
}
caption {
  text-align: left;
}
td, th {
  vertical-align: top;
  padding: 0;
}
th {
  text-align: left;
  font-weight: bold;
}
p {
  font-size: 16px;
  padding: 0.6em;
  font-weight: 600;
  letter-spacing: 0.12rem;
  line-height: 2;
  text-align: center;
}
.wrapper {
  position: relative;
  z-index: 1;
  overflow: hidden;
  background: #68ba94;
  background: var(--primary);
}
.wrap__left {
  padding-top: calc(80 / 768 * 100dvh);
  position: fixed;
  width: calc((100vw - 470px) / 2);
  display: grid;
  justify-items: center;
}
@media screen and (max-width: 1200px) {
  .wrap__left {
    padding-top: 0;
    width: 50%;
  }
}
@media screen and (max-width: 900px) {
  .wrap__left {
    width: 42%;
  }
}
@media screen and (max-width: 768px) {
  .wrap__left {
    display: none;
  }
}
.s-aside-left {
  max-width: 341px;
  margin: 15px 0 0 0;
  color: var(--white);
}
.s-aside-left-how-to {
  margin-top: 20px;
  width: 100%;
  position: relative;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 1200px) {
  .s-aside-left-how-to {
    margin-top: 10px;
  }
}
.how-to-text {
  font-size: 14px;
  line-height: calc(34 / 14);
  border-radius: 30px;
  min-width: 126px;
  padding-left: 1.2em;
  padding-right: 1.2em;
  border: 1px solid currentColor;
  font-weight: 700;
  text-align: center;
}
.s-aside-left-how-to::before {
  content: "";
  width: 100%;
  height: 1px;
  background-color: currentColor;
  flex: 1;
}
.s-aside-left-how-to::after {
  content: "";
  width: 100%;
  height: 1px;
  background-color: currentColor;
  flex: 1;
}
.s-aside-left__img {
  max-width: 340px;
}
@media screen and (max-width: 768px) {
  .s-aside-left__img {
    max-width: 90%;
  }
}
.s-aside-left-plan__term {
  font-size: 16px;
  font-weight: 700;
  line-height: calc(24 / 16);
}
.s-aside-right {
  color: var(--white);
}
.how-to__h3 {
  line-height: 1.6;
  margin: 1em 0 2em 0;
}
@media screen and (max-width: 768px) {
  .how-to__h3 {
    padding: 0.8em;
  }
}
.info-box {
  padding: 0.5em;
  border: var(--white) solid 1px;
  border-radius: 10px;
  width: 70%;
  margin: 0 auto;
}
@media screen and (max-width: 1200px) {
  .info-box {
    border: var(--gray-333) solid 1px;
    margin: 3em auto 5em auto;
  }
}
.info-box__h4 {
  text-align: center;
  font-size: 20px;
  line-height: 2;
  font-weight: bold;
}
.info-box__h5 {
  text-align: center;
  font-size: 24px;
  line-height: 2;
  font-weight: bold;
}
.info-box__h6 {
  text-align: center;
  font-size: 30px;
  line-height: 1;
  font-weight: bold;
  padding: 0.3em;
}
.info-box__p {
  text-align: center;
  font-size: 12px;
}
.wrap__right {
  position: fixed;
  top: 0;
  right: 0;
  width: calc((100vw - 470px) / 2);
  height: 100%;
  padding-bottom: 45px;
  padding-left: calc(2 * var(--gutter));
  padding-right: calc(2 * var(--gutter));
  display: grid;
  justify-items: center;
  padding-top: calc(150 / 768 * 100dvh);
  overflow-y: auto;
}
@media screen and (max-width: 1201px) {
  .wrap__right {
    padding-top: calc(180 / 768 * 100dvh);
    padding-left: calc(1.5 * var(--gutter));
    padding-right: calc(1.5 * var(--gutter));
  }
}
@media screen and (max-width: 1200px) {
  .wrap__right {
    display: none;
  }
}
.pref-number__list {
  list-style-type: none;
  counter-reset: number 0;
  line-height: 2;
}
@media screen and (max-width: 1200px) {
  .pref-number__list {
    margin: 2em 0;
  }
}
.pref-number__list li::before {
  counter-increment: number 1;
  content: counter(number) ". ";
}
.area-number__list {
  list-style-type: none;
  counter-reset: number;
  padding: 0 0 1em 1em;
}
.area-number__list li::before {
  counter-increment: number 1;
  content: counter(number) ". ";
}
.wrap__main {
  position: relative;
  max-width: 470px;
  width: 100%;
  background-color: var(--beige);
  margin: -20px auto 0 auto;
  z-index: 2;
  overflow: hidden;
  box-shadow: 2px 4px 7px var(--gray-888);
  color: var(--gray-333);
}
@media screen and (max-width: 1200px) {
  .wrap__main {
    float: right;
    margin: 0 1em 0 0;
  }
}
@media screen and (max-width: 768px) {
  .wrap__main {
    max-width: inherit;
    width: 80%;
    margin: 0 10%;
  }
}
@media screen and (max-width: 680px) {
  .wrap__main {
    max-width: inherit;
    width: 100%;
    margin: 0;
  }
}
@media screen and (min-width: 769px) {
  .sec-sp-top {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .sec-sp-top {
    display: block;
    background: var(--primary);
    text-align: center;
    padding: 0.5em 0;
  }
}
.sec-about {
  position: relative;
  margin: 3em 0 0 0;
}
@media screen and (max-width: 768px) {
  .sec-about {
    margin: 2em 0 0 0;
  }
}
.sec-about__ttl {
  position: relative;
}
.sec-about-h3 {
  position: relative;
  font-size: calc(16px + 4 * (100vw - 320px)/448);
  color: var(--gray-333);
  line-height: 2;
  letter-spacing: 5px;
  font-weight: bold;
  text-align: center;
  background: url("/shikoku-marche/images/sec-about-ttl.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
  padding: 0 5px 10px 5px;
}
.sec-about__ttl::before {
  position: absolute;
  content: "";
  background-image: url("/shikoku-marche/images/icons/icon-souvenir.png");
  background-size: 100%;
  background-repeat: no-repeat;
  width: 35px;
  height: 65px;
  left: 15px;
  top: 22px;
  bottom: 0;
  margin: auto;
  transform-origin: center bottom;
  animation: yurayura-01 2s linear infinite;
}
@keyframes yurayura-01 {
  0%, 100% {
    transform: rotate(7deg);
  }
  50% {
    transform: rotate(-7deg);
  }
}
@media screen and (max-width: 1200px) {
  .sec-about__ttl::before {
    left: 25px;
  }
}
@media screen and (max-width: 768px) {
  .sec-about__ttl::before {
    left: 20px;
  }
}
@media screen and (max-width: 470px) {
  .sec-about__ttl::before {
    left: 8px;
  }
}
.sec-about__ttl::after {
  position: absolute;
  content: "";
  background-image: url("/shikoku-marche/images/icons/icon-drink.png");
  background-size: 100%;
  background-repeat: no-repeat;
  width: 33px;
  height: 45px;
  right: 18px;
  top: 8px;
  bottom: 0;
  margin: auto;
  animation: fuwafuwa 3s ease-in-out infinite alternate;
  transition: 1.5s ease-in-out;
}
@keyframes fuwafuwa {
  0% {
    transform: translate(0, 0) rotate(-10deg);
  }
  50% {
    transform: translate(0, -10px) rotate(0deg);
  }
  100% {
    transform: translate(0, 0) rotate(10deg);
  }
}
@media screen and (max-width: 1200px) {
  .sec-about__ttl::after {
    right: 33px;
  }
}
@media screen and (max-width: 768px) {
  .sec-about__ttl::after {
    right: 28px;
  }
}
@media screen and (max-width: 470px) {
  .sec-about__ttl::after {
    right: 15px;
  }
}
.sec-about-under__img {
  max-width: 80%;
  margin: 3em 10% 2em 10%;
}
.svg-90 {
  width: 90%;
  margin: 0 auto;
  display: block;
}
.svg-60 {
  width: 60%;
  display: block;
}
.svg-40 {
  width: 40%;
  display: block;
}
.sec-pref {
  background-color: var(--white);
  /*margin: 3em 0;*/
  padding: 3em 0;
}
.kagawa-sec-pref {
  padding: 10em 0 3em 0 !important;
  margin: 50px 0 0 0;
}
@media screen and (max-width: 768px) {
  .kagawa-sec-pref {
    margin: 2em 0 0 0;
  }
}
.area-inner {
  margin: 3em 1em 1em 1em;
}
.area-inner-h1 {
  text-align: left;
  font-size: 24px;
  color: var(--gray-333);
  line-height: 2;
  letter-spacing: 5px;
  font-weight: bold;
  background: url("/shikoku-marche/images/area-ttl.png");
  background-size: cover;
  background-repeat: no-repeat;
  padding: 0 0 0 2.2em;
}
@media screen and (max-width: 768px) {
  .area-inner-h1 {
    height: 63px;
    padding: 0 0 0 3em;
  }
}
.pref-ttl__img img {
  width: 90%;
  margin: 0 auto;
  display: block;
}
.pref-ttl-h2 {
  font-size: min(30px, calc(38 / 470 * 100vw));
  line-height: calc(56 / 38);
  text-align: center;
  font-weight: 700;
  margin: 0 0 1em 0;
}
.pref-ttl-h6 {
  font-size: 14px;
  text-align: center;
  font-weight: 700;
}
.element-2 {
  margin: 2em 0 0 0;
  animation: bounce 2s infinite;
}
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}
.speechBubble {
  position: relative;
  display: inline-block;
  margin: 0 15% 10px;
  width: 70%;
  padding: 15px;
  border: 1px solid var(--gray-333);
  border-radius: 8px;
  background-color: var(--yellow);
  text-align: center;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--gray-333);
}
.speechBubble::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 10px 10px 0 10px;
  border-color: #333333 transparent transparent;
  translate: -50% 100%;
}
.speechBubble::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 8.6px 8.6px 0 8.6px;
  border-color: #f5db56 transparent transparent;
  translate: -50% 100%;
}
/* 各コンテンツ */
.thumbnail {
  margin: 1em 0;
}
.shop-ttl {
  display: flex;
  justify-content: flex-start;
  margin: 0 0.5em;
}
.shop-ttl-h2 {
  text-align: left;
  font-size: calc(18px + 2 * (100vw - 320px)/448);
  color: var(--gray-333);
  line-height: 2;
  font-weight: bold;
  margin: 0 0 0 0.3em;
}
.letter-space-5 {
  letter-spacing: 5px;
}
.letter-space-2 {
  letter-spacing: 2px;
}
.letter-space-0 {
  letter-spacing: 0;
}
.border-square {
  border: 1px var(--gray-333) solid;
  margin: 1em 0.6em 0.5em 0.6em;
  padding: 0.2em 0.5em;
  font-size: 13px;
  display: inline-block;
}
.border-square:hover {
  background: var(--gray-333);
  color: var(--white);
}
.shop__p {
  text-align: left;
  font-size: 16px;
  color: var(--gray-333);
  margin: 0 0.5em;
}
/* 店舗詳細 */
.detail {
  margin: 0.5em 1em;
}
.detail dl {
  display: flex;
  flex-flow: row wrap;
  width: 100%;
}
.detail dt {
  flex-basis: 25%;
  padding: 10px;
  border-bottom: 1px solid var(--gray-ccc);
}
.detail dd {
  flex-basis: 75%;
  padding: 10px;
  border-bottom: 1px solid var(--gray-ccc);
}
/* category-icon*/
.category-icon {
  padding: 1em 0.5em;
}
.category-icon__ul {
  display: flex;
  justify-content: flex-start;
}
.category-icon__ul li {
  font-size: 12px;
  background: var(--yellow);
  color: var(--black);
  padding: 0.2em 0.5em 0.5em 0.5em;
  margin: 0 0.5em;
  border-radius: 2px;
  width: 50px;
  text-align: center;
}
.loopSlider {
  margin: 0 auto;
  width: 100%;
  height: 245px;
  text-align: left;
  position: relative;
  overflow: hidden;
}
.loopSliderWrap {
  top: 0;
  left: 0;
  overflow: hidden;
  position: absolute;
}
.loopSlider ul {
  float: left;
  overflow: hidden;
}
.loopSlider ul li {
  float: left;
  overflow: hidden;
  padding: 5px;
  width: 290px;
}
.loopSlider ul li img {
  width: 280px;
  max-width: 280px;
  height: 210px;
  max-height: 210px;
  border-radius: 20px;
}
.benefit-box {
  position: relative;
  width: 90%;
  border: var(--btn-bg) 3px solid;
  margin: 0 auto;
  padding: 3.5em 0 0 0;
  border-radius: 20px;
}
.benefit-box::before {
  position: absolute;
  content: "";
  background-image: url("/shikoku-marche/images/benefits.png");
  background-size: 100%;
  background-repeat: no-repeat;
  width: 100px;
  height: 50px;
  left: 8px;
  top: 15px;
  margin: auto;
  transform-origin: center bottom;
  animation: yurayura-01 2s linear infinite;
}
/* クーポン表示ボタン */
.coupon-btn {
  max-width: 250px;
  margin: 0 auto 1em auto;
  padding: 1em 0;
  line-height: 60px;
}
.coupon-btn a {
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  background: var(--btn-bg);
  text-align: center;
  border: 3px solid var(--btn-bg);
  color: var(--white);
  font-size: 16px;
  font-weight: bold;
  border-radius: 35px;
  -webkit-border-radius: 35px;
  -moz-border-radius: 35px;
  transition: all 0.5s ease;
}
.coupon-btn a:hover {
  background: var(--white);
  color: var(--btn-bg);
  margin-left: 0px;
  margin-top: 0px;
  border: 3px solid var(--btn-bg);
  box-shadow: none;
}
/* モーダル */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.7);
  animation: fadeIn 0.3s ease-out;
}
.modal-content {
  background-color: #fefefe;
  margin: 20% auto;
  padding: 20px;
  border: 1px solid var(--gray-888);
  width: 90%;
  max-width: 500px;
  border-radius: 8px;
  position: relative;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
/* 閉じるボタン */
.close-btn {
  color: var(--white);
  position: absolute;
  top: 20px;
  right: 25px;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  transition: color 0.2s;
}
@media screen and (max-width: 470px) {
  .close-btn {
    top: 25px;
    font-size: 30px;
  }
}
.close-btn:hover, .close-btn:focus {
  color: var(--gray-ccc);
}
/* クーポン内容のスタイル */
.coupon-content {
  background: var(--white);
  padding: 0;
  border: var(--btn-bg) 5px solid;
}
.coupon-h6-ttl {
  font-size: calc(18px + 2 * (100vw - 320px)/448);
  font-weight: bold;
  text-align: center;
  color: var(--white);
  line-height: 1.6;
  padding: 10px 1.7em 10px 5px;
  background: var(--btn-bg);
}
.coupon-p {
  font-size: calc(16px + 2 * (100vw - 320px)/448);
  font-weight: 900;
  color: var(--btn-bg);
  text-align: center;
  padding: 0.6em 0.6em 0.2em 0.6em;
}
.coupon-caution {
  font-size: calc(12px + 2 * (100vw - 320px)/448);
  color: var(--black);
  text-align: center;
  padding: 0 0.6em 0.6em 0.6em;
}
/* フェードインアニメーション */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* footer*/
.sp-footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  left: 0;
  display: none;
  z-index: 10000;
}
@media screen and (max-width: 1200px) {
  .sp-footer {
    display: revert;
  }
}
.sp-footer__inner {
  position: relative;
  max-width: 470px;
  width: 100%;
  background-color: var(--white);
  margin: -20px auto 0 auto;
  padding: 15px 0 10px 0;
  z-index: 2;
  overflow: hidden;
  box-shadow: 2px 4px 7px var(--gray-888);
  color: var(--gray-333);
}
@media screen and (max-width: 1200px) {
  .sp-footer__inner {
    float: right;
    margin: 0 1em 0 0;
  }
}
@media screen and (max-width: 768px) {
  .sp-footer__inner {
    margin: 0 10% 0 10%;
    max-width: inherit;
    width: 80%;
  }
}
@media screen and (max-width: 680px) {
  .sp-footer__inner {
    margin: 0;
    max-width: inherit;
    width: 100%;
  }
}
.sp-footer__layout {
  display: flex;
  justify-content: space-evenly;
}
.sp-footer__layout > * {
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.sp-footer__layout > *:not(:first-child) {
  border-left: 1px solid currentColor;
}
.sp-footer-pref .-icon {
  width: min(14px, calc(14 / 470 * 100vw));
}
.sp-footer-pref {
  display: grid;
  column-gap: min(7px, calc(7 / 470 * 100vw));
  align-items: center;
  outline: none;
  padding: 0;
  width: 25%;
}
.sp-footer-pref:focus-visible {
  outline: none;
}
.sp-footer-pref .-name {
  white-space: nowrap;
  text-align: center;
}
.sp-footer-pref .en-name {
  font-size: 10px;
  text-align: center;
}
.pagetop {
  height: 50px;
  width: 50px;
  position: fixed;
  right: 20px;
  bottom: 50px;
  background: var(--gray-333);
  border: solid 2px var(--white);
  border-radius: 4px;
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 2;
  cursor: pointer;
}
.pagetop__arrow {
  display: block;
  height: 10px;
  width: 10px;
  border-top: 3px solid var(--white);
  border-right: 3px solid var(--white);
  transform: translateY(20%) rotate(-45deg);
}
.pc-none {
  display: none;
}
@media screen and (max-width: 1200px) {
  .pc-none {
    display: inherit;
  }
}
.mw-none {
  display: none;
}
@media screen and (max-width: 768px) {
  .mw-none {
    display: inherit;
  }
}
@media screen and (min-width: 1201px) {
  .mw-1200-inherit {
    display: none;
  }
}
@media screen and (max-width: 1200px) {
  .mw-1200-inherit {
    display: inherit;
  }
}
.info-box-none {
  display: inherit;
}
@media screen and (max-width: 1200px) {
  .info-box-none {
    display: none;
  }
}
.p-top-about__wave._upper {
  position: absolute;
  bottom: -200px;
  z-index: 3;
  width: 104%;
  max-width: 104%;
  translate: -2% 3.5%;
}
@media screen and (max-width: 540px) {
  .p-top-about__wave._upper {
    bottom: -150px;
  }
}
@media screen and (max-width: 380px) {
  .p-top-about__wave._upper {
    bottom: -120px;
  }
}