@charset 'utf-8';
/* ============ STYLE ============ */
.page {
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 600;
}
.noto-sans {
    font-family: "Noto Sans JP", sans-serif;
}
.color_f2c900 {
    color: #f2c900;
}

/* -----------------------
  header / footer
-------------------------- */
/* header */
header {
    position: relative;
}
.logo-header {
    position: absolute;
    top: 1rem;
    left: 1rem;
    width: 15rem;
}

/* footer */
footer {
    padding: 3rem 0 9rem;
}
footer.footer-no-margin {
    margin-top: 0;
}
/* fixed button */
.link-fixed {
    position: fixed;
    bottom: .3rem;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    max-width: 360px;
    margin: 0 auto;
    z-index: 999;
    isolation: isolate;
}
.link-reservation,
.link-confirm {
    display: inline-block;
    width: 100%;
    padding: 1.6rem !important;
    font-size: 1.6rem;
    font-weight: 500;
    text-align: center;
    border-radius: .5rem;
}
.link-reservation {
    color: #fff;
    background-color: #007c53;
}
.link-confirm {
    color: #007c53;
    background-color: #f2c900;
}

/* -----------------------
  headding
-------------------------- */
.section__title {
    font-size: 3.6rem;
    font-weight: 900;
    line-height: 1em;
}

/* -----------------------
  button
-------------------------- */
.button {
    width: 100% !important;
    font-size: 1.8rem !important;
    font-weight: 600 !important;
    letter-spacing: .1rem;
    border-radius: 0 !important;
}
.button--submit,
.button--return {
    padding-right: 3.2rem;
    color: #c21b0f;
}
.button--submit {
    background-color: #f2c900;
}
.button--return {
    background-color: #fff;
}
.button--cancel {
    padding-right: 3.2rem;
    color: #fff;
    border: solid 1px #fff;
}
.button--submit::after,
.button--return::after,
.button--cancel::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 2rem;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px 0 6px 9px;
    border-color: transparent transparent transparent currentColor;
    pointer-events: none;
}

button.underline {
    text-decoration: underline;
}

/* -----------------------
  section
-------------------------- */
.section--intro {
    background: #c8001c;
}
.section--flow {
    color: #fff;
    background: #036d47;
}
.section--form {
    background: #c8001c;
}

/* -----------------------
  recommend slider
-------------------------- */
.recommend_slider .recommend_cake-frame {
    position: relative;
    overflow: hidden;
    display: grid;
    place-items: center;
    height: 18rem;
}
.recommend_slider .recommend_cake-frame::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url("../img/lp/recommend__slide-wrap.png")
                center / contain no-repeat;
    z-index: 0;
}
.recommend_slider .recommend_cake-frame img {
    position: relative;
    z-index: 1;
    max-width: 100%;
    max-height: 100%;
    width: 16rem;
    height: 16rem;
    object-fit: contain;   /* 枠からはみ出さずに収める */
    display: block;
}
.recommend_cake-name {
    margin: 1rem 0 0;
    padding: 0 1rem;
    color: #fff;
    font-size: 1.8rem;
    text-align: center;
}


/* -----------------------
  flow
-------------------------- */
.toggle_contents-flow {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    display: block;
    margin: 0;
    padding: 0;
}
.toggle_title-flow {
    height: 4.3rem;
    padding-left: 2rem;
    position: relative;
    text-align: left;
    cursor: pointer;
    font-size: 1.6rem;
    line-height: 3.9rem;
    border-bottom: solid 1px #fff;
}
.toggle_btn-flow {
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
    height: 4.3rem;
    display: block;
    width: 2.8rem;
    height: 2.8rem;
    transition: all .3s ease;
}
.toggle_btn-flow:before, .toggle_btn-flow:after {
  display: block;
  content: '';
  background-color: #fff;
  position: absolute;
  width: 1.6rem;
  height: 2px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: .3s;
}
.toggle_btn-flow:before {
  width: 2px;
  height: 1.6rem;
}
.toggle_title-flow.selected .toggle_btn-flow {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%) rotate(90deg);
}

.toggle_title-flow.selected .toggle_btn-flow:after {
  content: normal;
}
.toggle_contents-flow dd {
  display: none;
}
.toggle_contents_bk-flow {
  padding: 20px 10px;
  font-size: 13px;
  line-height: 1.5em;
  color: #000;
  text-align: justify;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* -----------------------
  form
-------------------------- */
.form__text-upper {
    padding: .5rem;
    color: #fff;
    text-align: center;
    border: solid 1px #fff;
    border-radius: 5rem;
}

.form__frame {
    position: relative;
    padding: 3rem 1.6rem 4rem;
    background: #fff;
}
.form__frame::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 8px;
    background:
        linear-gradient(
            #f2c900 0 4px,
            transparent 4px 6px,
            #f2c900 6px 8px
        );
    pointer-events: none;
}
.form__frame::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 8px;
    background:
        linear-gradient(
            #f2c900 0 2px,
            transparent 2px 4px,
            #f2c900 4px 8px
        );
    pointer-events: none;
}

.product-wrap {
    display: flex;
    align-items: stretch;
    gap: 1.6rem;
}
.product-img {
    flex: 0 0 38%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
}
.product-img img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
.product-information {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

.product-name {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4em;
}
.sale-seal {
    display: inline-block;
    margin-top: .5rem;
    padding: 0 .7rem;
    color: #fff;
    font-size: 1.4rem;
    line-height: 1.5em;
    align-self: flex-start;
    background-color: #c21b0f;
    border-radius: 3px;
}
.product-price {
    margin-top: .5rem;
    font-size: 3.2rem;
    line-height: 1em;
}
.product-price span {
    font-size: 1.6rem;
}
.reservation-num {
    margin-top: 1rem;
    padding-top: .7rem;
    border-top: solid 1px #aaaaaa;
}
.product-wrap ul {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: solid 1px #000;
}

.border-dot {
    margin: 0 0 3rem;
    padding: 0 0 3rem;
    background: url(../img/lp/line-dot.png);
    background-position: bottom center;
    background-repeat: no-repeat;
    background-size: 100%;
}
.form__frame .product-wrap.border-dot:last-of-type {
    margin: 0;
    padding: 0;
    background: none;
}

.product-num {
	display: flex;
	justify-content: flex-end;
	align-items: center;
    margin-top: 1.6rem;
	gap: 3px;
	font-size: 1.4rem;
}

/* フォーム 入力  */
.select {
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
	background: none;
	border: none;
	font-size: 1.6rem;
	width: 100%;
	height: 100%;
}
.select.num {
	padding: 0 3rem 0 1rem;
	text-align: right;
}
.select::-ms-expand {
	display: none;
}
.select_cake {
	width: 70px;
	height: 30px;
	position: relative;
	z-index: 1;
	border: 1px solid #d7cfcd;
}
.select_cake::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 21px;
	height: 100%;
	background: #251c1a;
	pointer-events: none;
	z-index: -1;
}
.select_cake::after {
	content: "";
	width: 7px;
	height: 7px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	position: absolute;
	right: 7px;
	top: 10px;
	transform: rotate(135deg);
	pointer-events: none;
	z-index: -1;
}

/* 予約情報入力 */
.form__input-title span {
    margin-left: 1rem;
    padding: 0 .5rem;
    color: #fff;
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 2rem;
    background-color: #c21b0f;
    border-radius: 3px;
}


/* -----------------------
   tabs
------------------------ */
.contentsTabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
}

/* buttons (labels) */
.contentsTabItem__cat01,
.contentsTabItem__cat02,
.contentsTabItem__cat03,
.contentsTabItem__cat04 {
    width: 49%;
    height: auto;
    display: block;
    padding: 0 0 6px;
    transition: all 0.2s ease;
    cursor: pointer;
}
.contentsTabItem__cat01 img,
.contentsTabItem__cat02 img,
.contentsTabItem__cat03 img,
.contentsTabItem__cat04 img {
    display: block;
    width: 100%;
    height: auto;
}

/* hide radios */
input[name="contentsTabItem"] { display: none; }

/* panels wrapper must take full row */
.contentsTabContent__inner {
    width: 100%;
    display: block;
}

/* panels default hidden */
.contentsTabContent__cat01,
.contentsTabContent__cat02,
.contentsTabContent__cat03,
.contentsTabContent__cat04 {
    display: none;
}

/* show the selected panel */
#cat01Area:checked ~ .contentsTabContent__inner #cat01Tab { display: block; }
#cat02Area:checked ~ .contentsTabContent__inner #cat02Tab { display: block; }
#cat03Area:checked ~ .contentsTabContent__inner #cat03Tab { display: block; }
#cat04Area:checked ~ .contentsTabContent__inner #cat04Tab { display: block; }

/* -----------------------
  shop select
-------------------------- */
.section--shop-list .inner-menu {
    display: none;
    list-style-type: none;
}
.section--shop-list .parentmenu {
    padding: 1.5rem;
    background-color: #EAF8F9;
    border: solid #fff;
    border-width: 2px 0 0;
}
.section--shop-list .childmenu {
    padding: 1rem 1.5rem !important;
    background-color: #f1f1f1;
    border: solid 1px #fff;
}
.section--shop-list .shopList {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0 auto;
    padding: 1.3rem 0 !important;
}
.section--shop-list .shopListItem {
    flex: 0 0 calc(50% - 1rem);
    box-sizing: border-box;
    font-size: 1.5rem;
    line-height: 1.4em;
}
.section--shop-list .shopListItem span {
    cursor: pointer;
}

/* CHECKBOX */
.section--shop-list .parentmenu label,
.section--shop-list .shopList label {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
}
.section--shop-list .shopList span {
    padding-left: 1.4rem;
}
.section--shop-list .shopList input[type="checkbox"] {
    margin: .2em 0 0;
    padding: 0;
    vertical-align: top;
}
.section--shop-list .parentmenu span {
    padding-left: 1.6rem;
}
.section--shop-list .parentmenu input[type="checkbox"] {
    margin: .3em 0 0;
    padding: 0;
    vertical-align: top;
}

.section--shop-list input[type="checkbox"]::before,
.section--shop-list input[type="checkbox"]:checked::after{
    width: 1.8rem;
    height: 1.8rem;
    transform: translateY(0);
}
.section--shop-list .shopList input[type="checkbox"]{
    margin: .2em 0 0;
    padding: 0;
    vertical-align: top;
}
.section--shop-list .shopListItem span{
    display: block;
}




















/* -----------------------
  lp
-------------------------- */
/* what's new */
.whatsnew-wrap {
    margin-top: -2.5rem;
    padding: 3.4rem 2rem 2.4rem;
    color: #fff;
    background-color: #0059AA;
}

/* gallery */
.gallery_wrap {
  position: relative;
  padding: 5px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  background-color: #fff;
}
.gallery_wrap_toggle {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.gallery_wrap_item {
  padding: 3px;
  width: 33.3333333%;
}
.gallery_wrap::after {
  display: block;
  content:"";
  width: 33.3333333%;
}

/* -----------------------
  toggle
-------------------------- */
.toggle_title {
  position: absolute;
  top: calc(100% + 20px);
  left: 50%;
  transform: translateX(-50%);
  width: 93%;
  cursor: pointer;
}
.toggle_contents dd {
  display: none;
}

/* -----------------------
  modal
-------------------------- */
/* modal */
.modal {
  position: fixed;
  display: none;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100vh;
  z-index: 100;
}
.modal__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .6);
  z-index: 100;
}
.modal__content {
  position: absolute;
  width: 90%;
  max-width: 540px;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 120;
}





/* -----------------------

　クイズスタンプラリー

-------------------------- */
.color_0A5AC9 {
    color: #0A5AC9;
}
.color_E7468A {
    color: #E7468A;
}
.bg-stamp {
    background-color: #EAF8F9;
}
.bg-stamp-white {
    position: relative;
    background-color: #fff;
    border-radius: 1.5rem;
}

h2.title-stamp {
    position: absolute;
    top: -2.8rem;
    left: 50%;
    transform: translateX(-50%);
    width: 25.45rem;
    height: 5.6rem;
    margin: 0 auto;
    padding: .95rem;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    line-height: 1em;
    background-image: url(../img/stamp/bg-h2.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
h3.title-stamp {
    position: relative;
    padding: 1rem 0 0 6rem;
    color: #E7468A;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.4em;
}
h3.title-stamp span {
    position: absolute;
    top: 0;
    left: 0;
    width: 5rem;
    height: 5rem;
    color: #fff;
    font-size: 2.4rem;
    text-align: center;
    line-height: 5rem;
    letter-spacing: .1rem;
    background-color: #2C7DED;
    border-radius: 50%;
}

.title-stamp--appform {
    padding: 1rem 1.4rem;
    color: #fff;
    font-weight: 600;
    background-color: #E7468A;
    border-radius: 1rem;
}

.title-stamp-mypage {
    padding: 2rem 1.6rem;
    color: #E7468A;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    background-color: #fff;
    border: solid 2px #E7468A;
    border-radius: 1rem;
}

.triangle-down {
    width: 0;
    height: 0;
    border-left: 1.4rem solid transparent; /* 左の透明部分 */
    border-right: 1.4rem solid transparent; /* 右の透明部分 */
    border-top: 1.3rem solid #E7468A; /* 下向き三角形の色 */
    margin: 0 auto; /* 中央寄せ（必要な場合） */
}




/* stamp mypage */
.stamp-area {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: space-between;
    margin: 0 auto;
}
.stamp-area__btn {
    width: calc(50% - 8px);
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}
.stamp-area__btn img {
    display: block;
    width: 100%;
    height: auto;
}
.stamp-area__btn:nth-child(5) {
    margin-left: auto;
    margin-right: auto;
}

/* スタンプモーダル */
.stamp-modal {
    position: fixed;
    inset: 0;
    z-index: 999;
    display: none;              /* ← ここは必ず none のまま */
    align-items: center;        /* ↓ 開いた時に効く（noneでも定義OK） */
    justify-content: center;
    padding: 2rem;
    box-sizing: border-box;
}

.stamp-modal.stamp-is-open {
    display: flex;
}

.stamp-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.4);
    z-index: 0;
}

.stamp-modal__dialog {
    position: relative;
    z-index: 1;
    max-width: 360px;
    width: 100%;
    margin: 0;                  /* ← margin 中央寄せは使わない */
    background: #fff;
    border: 1px solid #000;
    border-radius: 12px;
    overflow: hidden;
    max-height: calc(100vh - 4rem);
    display: flex;
    flex-direction: column;
}

.stamp-modal__close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 36px;
    height: 36px;
    border: 0;
    font-size: 24px;
    text-align: center;
    background-color: #fff;
    border: solid 1px #000;
    border-radius: 50%;
    cursor: pointer;
}

.stamp-modal__body {
    max-height: 90vh;
    overflow: auto;
    padding: 3rem 1.4rem;
}

.stamp-modal__title {
    padding: 2rem 0;
    color: #fff;
    font-size: 2.4rem;
    font-weight: 600;
    text-align: center;
}
.stamp-modal__title--sub {
    margin-top: 2rem;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
}
.stamp-modal__quiz-title {
    padding: .7rem 0;
    color: #fff;
    font-weight: 600;
    text-align: center;
}

/* モーダル表示中の背面スクロール抑止 */
body.stamp-body--modal-open {
    overflow: hidden;
}

.stamp-modal__body table {
    width: 100%;
}
.stamp-modal__body th {
    width: 2rem;
    padding: 2rem;
    color: #fff;
    text-align: center;
    font-size: 2.2rem;
    border-bottom: solid 2px #fff;
}

.stamp-modal__body td {
    padding: 2rem 1.4rem;
    font-size: 1.6rem;
    line-height: 1.4em;
}

.color_1B596C {
    color: #1B596C;
}
.color_FA7186 {
    color: #FA7186;
}
.color_0FC4CE {
    color: #0FC4CE;
}
.color_FFB426 {
    color: #FFB426;
}
.color_00AC50 {
    color: #00AC50;
}

#stamp-modal-healthcare input[type="submit"],
#stamp-modal-healthcare .stamp-modal__title,
#stamp-modal-healthcare .stamp-modal__quiz-title,
#stamp-modal-healthcare .stamp-modal__body th {
    background-color: #1B596C;
}
#stamp-modal-healthcare .stamp-modal__body td {
    border-bottom: solid 2px #1B596C;
}

#stamp-modal-beauty input[type="submit"],
#stamp-modal-beauty .stamp-modal__title,
#stamp-modal-beauty .stamp-modal__quiz-title,
#stamp-modal-beauty .stamp-modal__body th {
    background-color: #FA7186;
}
#stamp-modal-beauty .stamp-modal__body td {
    border-bottom: solid 2px #FA7186;
}

#stamp-modal-food input[type="submit"],
#stamp-modal-food .stamp-modal__title,
#stamp-modal-food .stamp-modal__quiz-title,
#stamp-modal-food .stamp-modal__body th {
    background-color: #0FC4CE;
}
#stamp-modal-food .stamp-modal__body td {
    border-bottom: solid 2px #0FC4CE;
}

#stamp-modal-homecare input[type="submit"],
#stamp-modal-homecare .stamp-modal__title,
#stamp-modal-homecare .stamp-modal__quiz-title,
#stamp-modal-homecare .stamp-modal__body th {
    background-color: #FFB426;
}
#stamp-modal-homecare .stamp-modal__body td {
    border-bottom: solid 2px #FFB426;
}

#stamp-modal-exhibition input[type="submit"],
#stamp-modal-exhibition .stamp-modal__title,
#stamp-modal-exhibition .stamp-modal__quiz-title,
#stamp-modal-exhibition .stamp-modal__body th {
    background-color: #00AC50;
}
#stamp-modal-exhibition .stamp-modal__body td {
    border-bottom: solid 2px #00AC50;
}

#stamp-modal-healthcare .stamp-modal__body tr:first-child th,
#stamp-modal-beauty .stamp-modal__body tr:first-child th,
#stamp-modal-food .stamp-modal__body tr:first-child th,
#stamp-modal-homecare .stamp-modal__body tr:first-child th,
#stamp-modal-exhibition .stamp-modal__body tr:first-child th {
    padding: 0 0 .5rem;
    color: #000;
    font-size: 1.2rem;
    background-color: #fff;
    border: none;
}

/* 回答ボタン（A/B） */
.form__group--answer {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 横2つ */
    gap: 1rem;
    align-items: stretch;
}

.form__radio--answer {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 7rem;
    padding: 0;
    border-radius: 9rem;
    color: #fff;
    font-size: 3.2rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    cursor: pointer;
    user-select: none;
    transition: transform 0.06s ease, filter 0.2s ease, box-shadow 0.2s ease;
    /* 影・境界の初期値（必要なら調整） */
    box-shadow: 0 1px 0 rgba(0,0,0,.08), 0 4px 14px rgba(0,0,0,.08);
}

.form__group--answer .form__radio--answer:nth-child(1) {
    background: #FF5353;
}
.form__group--answer .form__radio--answer:nth-child(2) {
    background: #2C7DED;
}

.form__radio--answer > input[type="radio"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
.form__radio--answer:active { transform: translateY(1px) scale(0.99); }
.form__radio--answer:has(input[type="radio"]:focus-visible) {
    outline: 0;
    box-shadow:
        0 0 0 3px #fff inset,
        0 0 0 3px #fff,
        0 0 0 6px rgba(0,0,0,.25);
}
.form__radio--answer:has(input[type="radio"]:checked) {
    filter: brightness(0.95);
    box-shadow:
        0 0 0 3px rgba(255,255,255,1.85) inset,
        0 6px 18px rgba(0,0,0,.16);
}
.form__radio--answer:has(input[type="radio"]:disabled) {
    opacity: .5;
    cursor: not-allowed;
    filter: grayscale(20%);
}
@media (hover: hover) {
    .form__radio--answer:hover {
        filter: brightness(1.03);
    }
}
@media (prefers-reduced-motion: reduce) {
    .form__radio--answer { transition: none; }
}

.stamp-modal__body input[type="submit"] {
    display: block;
    margin: 0 auto;
    padding: 2rem;
    color: #fff;
    font-size: 1.8rem;
    text-align: center;
    background-color: #ddd;
}

/* hidden が付いた submit は表示しない */
input[type="submit"][hidden] {
    display: none !important;
}

/* 参加賞クーポン */
.coupon-limit {
    padding: 1rem 0;
    color: #fff;
    text-align: center;
    background-color: #E76AA3;
    border-radius: .7rem;
}
.coupon-wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* 横2つ */
    gap: 1rem;
    align-items: stretch;
    width: 90%;
    margin: 2rem auto 0;
}
.coupon-wrap .stamp-modal__back,
.coupon-wrap input[type="submit"] {
    padding: 2rem 0;
    color: #fff;
    font-size: 2rem;
    font-weight: 600;
    text-align: center;
    letter-spacing: .2rem;
    border-radius: 9rem;
}
.coupon-wrap .stamp-modal__back {
    background-color: #2C7DED;
}
.coupon-wrap input[type="submit"] {
    width: 100%;
    background-color: #E74877!important;
}

/* lottely result */
#resultArea {
  display: none;
}
#resultArea.active{
  display: block;
  animation: appear 8s ease;
}
@keyframes appear {
  0%{
    opacity: 0;
  }
  100%{
    opacity: 1;
  }
}


/* stamp footer */
.footer__nav-stamp {
    margin: 3rem auto;
}
.footer__nav-stamp li {
    font-size: 1.4rem;
    text-align: center;
    line-height: 2em;
}

.footer__logo-yutaka--stamp {
    width: 20.7rem;
    margin: 0 auto;
}
.footer__logo-festa--stamp {
    width: 18.7rem;
    margin: 1rem auto 0;
}

/* -----------------------
  form
-------------------------- */
.form__group--basic {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
    margin: 0 auto;
}  
.form__radio--basic {
    display: flex;
    align-items: center;
    position: relative;
    padding: 0 0 0 2rem;
    cursor: pointer;
}  
.form__radio--basic input[type="radio"] {
    display: none;
} 
.form__radio--basic::before {
    content: '\25ef';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.6rem;
}
.form__radio--basic:has(input[type="radio"]:checked) .form__radio-label--quest {
    font-weight: 600;
}
.form__radio--basic:has(input[type="radio"]:checked)::before {
    content: '\25cf';
    position: absolute;
    font-size: 1.6rem;
}
.form__radio-label--basic {
    display: block;
    width: 100%;
    text-align: left;
    font-size: 1.6rem;
    border-radius: 6px;
}

/* -----------------------
  shop select
-------------------------- */
.section--shop-list .inner-menu {
    display: none;
    list-style-type: none;
}
.section--shop-list .parentmenu {
    padding: 1.5rem;
    background-color: #EAF8F9;
    border: solid #fff;
    border-width: 2px 0 0;
}
.section--shop-list .childmenu {
    padding: 1rem 1.5rem !important;
    background-color: #f1f1f1;
    border: solid 1px #fff;
}
.section--shop-list .shopList {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0 auto;
    padding: 1.3rem 0 !important;
}
.section--shop-list .shopListItem {
    flex: 0 0 calc(50% - 1rem);
    box-sizing: border-box;
    font-size: 1.5rem;
    line-height: 1.4em;
}
.section--shop-list .shopListItem span {
    cursor: pointer;
}

/* CHECKBOX */
.section--shop-list .parentmenu label,
.section--shop-list .shopList label {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
}
.section--shop-list .shopList span {
    padding-left: 1.4rem;
}
.section--shop-list .shopList input[type="checkbox"] {
    margin: .2em 0 0;
    padding: 0;
    vertical-align: top;
}
.section--shop-list .parentmenu span {
    padding-left: 1.6rem;
}
.section--shop-list .parentmenu input[type="checkbox"] {
    margin: .3em 0 0;
    padding: 0;
    vertical-align: top;
}

.section--shop-list input[type="checkbox"]::before,
.section--shop-list input[type="checkbox"]:checked::after{
    width: 1.8rem;
    height: 1.8rem;
    transform: translateY(0);
}
.section--shop-list .shopList input[type="checkbox"]{
    margin: .2em 0 0;
    padding: 0;
    vertical-align: top;
}
.section--shop-list .shopListItem span{
    display: block;
}




