@charset "utf-8";

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}
body {
  line-height: 1;
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

/* remember to define focus styles! */
:focus {
  outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
  text-decoration: none;
}
del {
  text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/*--------------------------*/
#menu {
  width: 960px;
  margin: 0 auto;
  background: #200807;
  position: relative;
  z-index: 10;
  text-align: center;
}
#back {
  width: 960px;
  margin: 10px auto 0 auto;
  padding-bottom: 0;
  text-align: center;
}

/*--------------------------*/
#to_top {
  clear: both;
  padding: 20px 50px 20px 50px;
  text-align: right;
}

.LyFoot {
  margin-top: 0 !important;
}
.backtotop a {
  background-color: transparent !important;
  padding: 0 !important;
}

/*  */
/* Fixed/Floating Menu Trigger */
/*
  サイド要素（ロゴ・メニュー・左右イラスト）はメインカラムの外縁を基準に
  calc(50% ± メイン半幅 ± 余白) で配置する。サイズ・位置はブラウザ幅に関わらず一定。
  ブラウザを狭めるとメインカラムの外縁自体が中央に寄ってくるため、
  サイド要素は自然に viewport の外へ押し出され、overflow-x: hidden により
  外側から徐々に見切れる（隠れたり、メインの裏に回ったりはしない）。
*/
:root {
  --content-half: 250px; /* .main-contents max-width の半分 */
  --side-gap: 32px; /* メイン外縁からのすき間 */
  --pc-ttl-w: 288px;
  --pc-ttl-top: 128px;
  --nav-w: 496px;
  --nav-top: 112px;
  --illust-w: 30vw;
}
html,
body {
  /* 共通CSS（style_lp.css）の body { min-width: 984px } を無効化。
     これが残っていると、通常フロー（.main-contents 側）は 984px 基準でレイアウトされる一方、
     position: fixed のサイド要素は実ビューポート幅基準で計算されるため、
     984px 未満でメインカラムとサイド要素の基準がズレて重なってしまう。 */
  min-width: 0;
  overflow-x: hidden;
}
main {
  background-image: url(../img/bg-blank.png);
  background-position:
    bottom center,
    center top 50px;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  overflow: hidden;
  position: relative;
}
.main-contents {
  display: block;
  width: 100%;
  max-width: 500px;
  background-color: #fff;
  box-shadow: 0px 12px 12px 0px rgba(0, 0, 0, 0.26);
  -webkit-box-shadow: 0px 12px 12px 0px rgba(0, 0, 0, 0.26);
  -moz-box-shadow: 0px 12px 12px 0px rgba(0, 0, 0, 0.26);
  margin: 0 auto;
  position: relative;
  z-index: 30;
}
.nav-list {
  list-style: none;
  width: 100%;
}

.nav-item-01 img {
  width: 14%;
}
.nav-item-02 img {
  width: 18%;
}
.nav-item-03 img {
  width: 25%;
}
.nav-item-04 img {
  width: 44%;
}
.nav-item-05 img {
  width: 30%;
}
.nav-item-06 img {
  width: 20%;
}
.nav-item-07 img {
  width: 18%;
}
.nav-item-08 img {
  width: 40%;
}
.banner-btn img {
  width: 55%;
}
.nav-pc .nav-list {
  margin-bottom: 3%;
}
.nav-item:not(:last-of-type) {
  margin-bottom: 2.5%;
}
main a {
  transition: opacity 0.2s ease;
}
main a:hover {
  opacity: 0.7;
}

.nav-item a {
  display: block;
  padding: 2% 0;
}

.nav-item a:hover {
  opacity: 0.7;
}
.nav-item.sub-item a {
}

/* 左ロゴ: メイン左端の外側に固定。狭くすると左側が自然に見切れる */
.pc-ttl {
  display: block;
  width: var(--pc-ttl-w);
  position: fixed;
  top: var(--pc-ttl-top);
  left: calc(44% - var(--content-half) - var(--pc-ttl-w) - var(--side-gap));
  z-index: 1;
}
/* 左下イラスト: 右端をメイン左端に合わせる。狭くすると左側が見切れる */
.bottom-left {
  display: block;
  width: 700px;
  position: fixed;
  bottom: 0;
  right: 63%;
  z-index: 1;
}
/* 右下イラスト: 左端をメイン右端に合わせる。狭くすると右側が見切れる */
.bottom-right {
  display: block;
  width: 620px;
  position: fixed;
  bottom: 0;
  left: calc(53% + var(--content-half));
  right: auto;
  z-index: 1;
}
/* 右メニュー: メイン右端の外側に固定。狭くすると右側が見切れる */
.nav-pc {
  transition: top 0.3s ease;
  position: fixed;
  top: var(--nav-top);
  left: calc(50% + var(--content-half) + var(--side-gap));
  right: auto;
  width: var(--nav-w);
  z-index: 10;
}
.nav-pc.is-at-footer {
  top: 0 !important;
}

/* 1280px以上: 参照と同じ right: -8vw / width: 30vw の可変配置に切り替え、
   画面が広いほど右側の余白が自然に増える。1280px未満はメインカラムに重ならないよう
   固定ギャップ配置（上の calc(50% + ...)）を維持する */
@media screen and (min-width: 1280px) {
  .nav-pc {
    left: auto;
    right: -8vw;
    width: 30vw;
  }
}

/* メインカラムが大きくなる幅では、サイド基準点だけ合わせる（サイズは不変） */
@media screen and (min-width: 2000px) {
  :root {
    --content-half: 350px;
  }
  .main-contents {
    max-width: 700px;
  }
}
@media screen and (min-width: 2500px) {
  :root {
    --content-half: 400px;
  }
  .main-contents {
    max-width: 800px;
  }
}
.is-stopped {
  position: absolute !important;
  bottom: auto !important;
}
/* fv */
main img {
  width: 100%;
  position: relative;
}

.nav-pc img {
  display: block;
  max-width: 100%;
  height: auto;
}
.fv {
  padding: 10% 0;
  background-image: linear-gradient(to bottom, #ffffff 44%, transparent 50%), url(../img/fv-bg-02.png);
  background-size: 100% auto;
  background-position: top, center;
  background-repeat: repeat;
}

.fv-ttl {
  width: 85%;
  margin: 0 auto;
}
.fv-btns {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin: 0 12%;
  margin-top: 8%;
}

.fv-text {
  margin: 8% 6% 4%;
}
.fv-img-01 {
  display: block;
  width: 100%;
  margin: 0 !important;
  margin-top: -7% !important;
}

.fv-img-02 {
  display: block;
  margin: 0 6% !important;
}
/* cta */
.cta {
  background-color: #e5dae6;
  padding: 10% 6% 9%;
}
.cta-btn {
  display: block;
  margin: 4% auto 0;
  width: 85%;
}
/* stores */
.frozen-stores {
  background-image: url(../img/frozen-stores-bg.png);
  background-position: top left;
  background-repeat: repeat;
  background-size: 100% auto;
  padding: 10% 8%;
}
.frozen-stores-inner {
  background-color: #fff;
  border-radius: 40px;
  padding: 10% 8%;
}
.frozen-stores-ttl {
  margin-bottom: 6%;
}
/* Button Image Base */
.accordion-btn {
  background-color: #fff;
  border: none;
  padding: 0;
  cursor: pointer;
  display: block;
  width: 100%;
}

.accordion-btn-img {
  width: 100%;
  height: auto;
  display: block;
}

.accordion-item:not(:last-of-type) {
  margin-bottom: 6%;
}

/* Accordion Smooth Height Transition */
.accordian-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 28px;
  padding: 4% 5% 7%;
  padding-top: 10%;
  border: 3.5px solid #285797;
  border-radius: 20px;
  border-top: none;
  border-top-right-radius: unset;
  border-top-left-radius: unset;
}
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.accordion-item.is-active .accordion-content {
  margin-top: -4%;
}

.accordian-list-item {
  position: relative;
}
.access-btn {
  display: block;
  width: 92%;
  left: 50%;
  transform: translate(-50%, 0);
  position: absolute;
  top: 38%;
}
.store-btn {
  display: block;
  width: 92%;
  position: absolute;
  left: 50%;
  transform: translate(-50%, 0);
  bottom: 8%;
}
.west .access-btn {
  width: 92%;
  top: 38%;
}
.west .store-btn {
  width: 92%;
  bottom: 8%;
}

.chubu .access-btn {
  width: 92%;
  top: 38%;
}
.chubu .store-btn {
  width: 92%;
  bottom: 8%;
}

.sth-kanto .access-btn {
  width: 92%;
  top: 38%;
}
.sth-kanto .store-btn {
  width: 92%;
  bottom: 8%;
}
.sth-kanto-01 {
  padding-bottom: 28%;
}
.sth-kanto-01 .access-btn {
  top: 72%;
}
/* frozen info */
.frozen-info-ttl {
  width: 85%;
  margin: 0 auto 10%;
}
.frozen-info {
  padding: 6% 12%;
  padding-top: 16%;
  border-top: 8px solid #0e589a;
  position: relative;
}
.frozen-info::before {
  content: '';
  display: block;
  height: 8px;
  width: 100%;
  background-color: #ec8037;
  position: absolute;
  top: 0.5%;
  left: 0;
}
.frozen-info-text {
  margin-top: 2%;
  margin-bottom: 7%;
  display: block;
  font-size: 3.733%;
  color: #000000;
  font-weight: bold;
  line-height: 2;
  text-align: center;
}
/* frozen */
.frozen {
  background-image: url(../img/frozen-bg.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 10% 12%;
  padding-bottom: 0;
}
.frozen-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 24px;
  margin-bottom: 8%;
}
.frozen-text {
  margin-top: 1%;
  margin-bottom: 7%;
  display: block;
  font-size: 3.733%;
  color: #0e589a;
  font-weight: bold;
  line-height: 2;
  text-align: center;
}
.frozen-ttl {
  width: 100%;
  margin: 0 auto 10%;
}

/* recommend */
.recommended {
  padding: 5% 8%;
  padding-top: 10%;
  margin-bottom: 10%;
}

/* inpage */
.inpage-nav {
  padding: 5% 8%;
  padding-bottom: 14%;
}
.inpage-nav-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 28px;
}
.inpage-nav-list li {
  width: 85%;
}
.inpage-nav-list li a {
}

/* menu items */
.menu-items {
  padding: 5% 8%;
  font-family: 'Noto Sans JP', sans-serif;
}
.menu-items-ttl {
  margin-bottom: 3%;
}
.menu-items-txt {
  display: block;
  font-size: 3.48%;
  color: #646464;
  line-height: 1.5;
  text-align: center;
  font-weight: 200;
}
.menu-items-txt small {
  display: block;
  font-size: 2.6667%;
  margin-top: 6%;
  text-align: center;
}
.menu-items-list {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 28px;
  margin-top: 0;
}

/* end */
.end-01 {
  display: block;
  width: 100%;
  margin: 6% auto 10%;
}

.backtotop {
  width: 6%;
}
.backtotop img {
  width: 100%;
}
.backtotop a {
  background-color: unset !important;
  opacity: 1 !important;
}
.backtotop {
  display: none !important;
}
#back {
  display: none !important;
}
