/* v0.7.0: Amelia標準UIを土台にした受講プラン組み合わせ拡張 + Extras数量検証 */


/* v0.5.3: 親受講プランへ集約済みのため、Amelia標準の「他の受講プランを見る」は不要。
 * display:none によりポインター/キーボード操作の対象からも外します。 */
.amelia-v2-booking .am-fcis__include-heading__btn {
  display: none !important;
  pointer-events: none !important;
}

/* 標準Catalog上の管理対象「子」Packageだけを隠します。 */
.am-fcil__item.asm-native-managed-package-card {
  display: none !important;
}

/* v0.4.0由来の旧クラスが残っても上位コンテナを隠しません。 */
.asm-native-managed-child {
  display: revert !important;
}
.am-fcil__item.asm-native-managed-child {
  display: none !important;
}

/* 講座詳細 / Step-by-step内の管理対象子Package案内。 */
.asm-native-managed-inline-offer {
  display: none !important;
}

.asm-native-parent-card,
.asm-native-parent-inline-offer {
  position: relative !important;
}

/* v0.5.1: 講座詳細/予約画面の親受講プランは、画像をカード全面に敷かず
 * Ameliaのinclude行の左端へ正方形サムネイルとして表示します。 */
.asm-native-parent-inline-offer.am-fcis__include .am-fcis__include-hero {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  min-width: 0 !important;
  background-image: none !important;
  background-color: transparent !important;
}

.asm-native-parent-inline-offer.am-fcis__include .am-fcis__include-img {
  display: block !important;
  flex: 0 0 76px !important;
  width: 76px !important;
  min-width: 76px !important;
  height: 76px !important;
  min-height: 76px !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 7px !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  overflow: hidden !important;
}

.asm-native-parent-inline-offer.am-fcis__include .am-fcis__include-text {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
}

.asm-native-parent-inline-offer.am-fcis__include .asm-native-inline-parent-price {
  margin-left: auto !important;
}

@media (max-width: 640px) {
  .asm-native-parent-inline-offer.am-fcis__include .am-fcis__include-hero {
    gap: 10px !important;
  }
  .asm-native-parent-inline-offer.am-fcis__include .am-fcis__include-img {
    flex-basis: 62px !important;
    width: 62px !important;
    min-width: 62px !important;
    height: 62px !important;
    min-height: 62px !important;
  }
}

.asm-native-parent-card .asm-native-suppress-price,
.asm-native-parent-inline-offer .asm-native-suppress-price,
.am-fcil__item .asm-native-suppress-price {
  display: none !important;
}

.asm-native-parent-price,
.asm-native-service-price,
.asm-native-inline-parent-price {
  display: inline-flex;
  align-items: center;
  margin-top: 6px;
  margin-left: auto;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 500;
  color: var(--am-c-card-text, var(--am-c-main-text, #1A2C37));
  white-space: nowrap;
}

.asm-native-parent-overlay,
.asm-native-inline-parent-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 50 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.asm-native-parent-overlay:focus,
.asm-native-inline-parent-overlay:focus {
  outline: none !important;
  box-shadow: none !important;
}

.asm-native-parent-overlay:focus-visible,
.asm-native-inline-parent-overlay:focus-visible {
  outline: none !important;
  box-shadow: inset 0 0 0 3px var(--am-c-primary, currentColor) !important;
}

/* v0.4.4: モーダルを閉じた後にAmelia側のfocus-within枠が親カードへ残らないようにします。 */
.asm-native-parent-card:focus,
.asm-native-parent-card:focus-within,
.asm-native-parent-inline-offer:focus,
.asm-native-parent-inline-offer:focus-within {
  outline: none !important;
}

html.asm-native-modal-open,
body.asm-native-modal-open {
  overflow: hidden !important;
}

.asm-native-course-modal,
.asm-native-course-modal *,
.asm-native-direct-package,
.asm-native-direct-package * {
  box-sizing: border-box;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif);
}

.asm-native-course-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  color: var(--am-c-main-text, #1A2C37);
}

.asm-native-course-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(20, 26, 33, .48);
  backdrop-filter: blur(1px);
}

.asm-native-course-dialog {
  position: relative;
  width: min(720px, 100%);
  max-height: min(82vh, 760px);
  overflow: auto;
  background: var(--am-c-main-bgr, #fff);
  border-radius: 12px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .23);
  padding: 24px;
  color: var(--am-c-main-text, #1A2C37);
}

.asm-native-course-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.asm-native-course-head h2 {
  margin: 0 0 5px;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: 1.35rem;
  line-height: 1.45;
  font-weight: 600;
  color: var(--am-c-main-heading-text, #33434C);
}

.asm-native-course-lead {
  margin: 0;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  color: var(--am-c-main-text, #1A2C37);
  opacity: .68;
}

/* v0.4.2: Ameliaのplain/iconボタンに寄せたシンプルな閉じるボタン。 */
.asm-native-course-close {
  position: relative;
  flex: 0 0 auto;
  width: 36px !important;
  min-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: var(--am-c-main-text, #1A2C37) !important;
  box-shadow: none !important;
  cursor: pointer;
}

.asm-native-course-close:hover,
.asm-native-course-close:focus-visible {
  background: rgba(26, 44, 55, .06) !important;
  outline: none !important;
}

.asm-native-close-glyph,
.asm-native-close-glyph::before,
.asm-native-close-glyph::after {
  position: absolute;
  display: block;
  content: "";
}

.asm-native-close-glyph {
  inset: 0;
}

.asm-native-close-glyph::before,
.asm-native-close-glyph::after {
  left: 17px;
  top: 8px;
  width: 1.5px;
  height: 20px;
  border-radius: 999px;
  background: currentColor;
}

.asm-native-close-glyph::before { transform: rotate(45deg); }
.asm-native-close-glyph::after { transform: rotate(-45deg); }

.asm-native-course-list {
  display: grid;
  gap: 12px;
}

.asm-native-child-card {
  --asm-course-accent: var(--am-c-primary, #1788FB);
  position: relative;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 14px;
  min-height: 92px;
  padding: 12px 14px 12px 12px;
  border: 1px solid var(--am-c-card-border, rgba(0,0,0,.12));
  border-left: 4px solid var(--asm-course-accent);
  border-radius: 10px;
  background: var(--am-c-card-bgr, #fff);
  color: var(--am-c-card-text, var(--am-c-main-text, #1A2C37)) !important;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  text-decoration: none !important;
  box-shadow: 0 2px 9px rgba(0,0,0,.04);
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.asm-native-child-card:hover,
.asm-native-child-card:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 5px 17px rgba(0,0,0,.09);
  border-color: var(--asm-course-accent);
  outline: none;
}

.asm-native-child-thumb {
  width: 92px;
  height: 68px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

.asm-native-child-body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.asm-native-child-name {
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: 1rem;
  line-height: 1.45;
  font-weight: 500;
}

.asm-native-child-description {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: .88rem;
  line-height: 1.5;
  opacity: .68;
}

.asm-native-child-price {
  margin-top: 2px;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-weight: 600;
  font-size: 1rem;
}

.asm-native-child-arrow {
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: 30px;
  line-height: 1;
  opacity: .5;
}

/* 子受講プラン選択後の標準Package詳細ページ上部。 */
.asm-native-direct-head {
  margin: 0 0 16px;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
}

.asm-native-direct-back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-height: 36px !important;
  padding: 6px 8px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: var(--am-c-primary, #265CF2) !important;
  box-shadow: none !important;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}

.asm-native-direct-back:hover,
.asm-native-direct-back:focus-visible {
  background: rgba(38, 92, 242, .06) !important;
  text-decoration: none !important;
  outline: none !important;
}

/* v0.4.4: icon fontへ依存せずSVGで戻る矢印を描画し、文字化けを防ぎます。 */
.asm-native-direct-back-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 16px !important;
  color: currentColor !important;
}

.asm-native-direct-back-icon svg {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  overflow: visible !important;
}

@media (max-width: 640px) {
  .asm-native-course-modal {
    align-items: flex-end;
    padding: 0;
  }

  .asm-native-course-dialog {
    width: 100%;
    max-height: 88vh;
    border-radius: 16px 16px 0 0;
    padding: 19px 16px 22px;
  }

  .asm-native-child-card {
    grid-template-columns: 70px minmax(0, 1fr) 18px;
    gap: 11px;
    padding: 10px 11px 10px 9px;
  }

  .asm-native-child-thumb {
    width: 70px;
    height: 58px;
  }
}

/* --------------------------------------------------------------------------
 * v0.5.0: 参加人数 <= Extras（メニュー）数量合計のバリデーション
 * -------------------------------------------------------------------------- */
.asm-extra-quantity-error {
  display: block !important;
  width: 100% !important;
  margin: 12px 0 8px !important;
  padding: 10px 12px !important;
  border: 1px solid color-mix(in srgb, var(--am-c-error, #B4190F) 30%, transparent) !important;
  border-radius: 6px !important;
  background: color-mix(in srgb, var(--am-c-error, #B4190F) 7%, transparent) !important;
  color: var(--am-c-error, #B4190F) !important;
  font-family: var(--am-font-family, "Amelia Poppins", sans-serif) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  box-sizing: border-box !important;
}

/* color-mix未対応ブラウザ用フォールバック。 */
@supports not (background: color-mix(in srgb, red 10%, transparent)) {
  .asm-extra-quantity-error {
    border-color: rgba(180, 25, 15, .28) !important;
    background: rgba(180, 25, 15, .06) !important;
  }
}


/* v0.7.0: 参加人数 → メニュー → オプション */
.asm-native-wizard-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 18px;font-size:12px;color:color-mix(in srgb,var(--am-c-main-text,#1A2C37) 55%,transparent)}
.asm-native-wizard-progress span{padding:7px 8px;border-radius:7px;background:color-mix(in srgb,var(--am-c-main-text,#1A2C37) 5%,transparent);text-align:center}.asm-native-wizard-progress span.is-current{background:color-mix(in srgb,var(--am-c-primary,#265CF2) 10%,transparent);color:var(--am-c-primary,#265CF2);font-weight:600}.asm-native-wizard-progress span.is-done{color:var(--am-c-success,#019719)}
.asm-native-wizard-body{display:block}.asm-native-participant-card{padding:16px 18px;border:1px solid var(--am-c-inp-border,#D1D5D7);border-radius:10px;background:var(--am-c-main-bgr,#fff)}.asm-native-participant-main{display:flex;align-items:center;justify-content:space-between;gap:18px}.asm-native-participant-label{display:inline-flex;align-items:center;gap:8px;font-size:1rem;font-weight:500}.asm-native-participant-control{display:grid;grid-template-columns:42px 50px 42px;align-items:center;min-height:48px;border:1px solid var(--am-c-inp-border,#D1D5D7);border-radius:9px;overflow:hidden}.asm-native-participant-control button{width:42px;height:46px;border:0;background:transparent;color:var(--am-c-main-text,#1A2C37);font:inherit;font-size:22px;cursor:pointer}.asm-native-participant-control button:hover:not(:disabled){background:color-mix(in srgb,var(--am-c-primary,#265CF2) 7%,transparent)}.asm-native-participant-control button:disabled{opacity:.35;cursor:default}.asm-native-participant-value{text-align:center;font-size:16px;font-weight:500}.asm-native-wizard-note{margin:10px 2px 0;font-size:13px;line-height:1.55;color:color-mix(in srgb,var(--am-c-main-text,#1A2C37) 68%,transparent)}
.asm-native-wizard-choice-list,.asm-native-wizard-option-list{display:grid;gap:10px}.asm-native-wizard-choice,.asm-native-wizard-option{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:68px;padding:13px 15px;border:1px solid var(--am-c-card-border,#D1D5D7);border-radius:10px;background:var(--am-c-card-bgr,#fff);color:var(--am-c-card-text,var(--am-c-main-text,#1A2C37));font:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.asm-native-wizard-choice:hover,.asm-native-wizard-choice:focus-visible,.asm-native-wizard-option:hover,.asm-native-wizard-option:focus-within{border-color:var(--am-c-primary,#265CF2);outline:none}.asm-native-wizard-choice[data-selected="1"],.asm-native-wizard-option[data-selected="1"]{border-color:var(--am-c-primary,#265CF2);box-shadow:inset 0 0 0 1px var(--am-c-primary,#265CF2);background:color-mix(in srgb,var(--am-c-primary,#265CF2) 4%,var(--am-c-card-bgr,#fff))}.asm-native-choice-main,.asm-native-option-main{display:flex;flex-direction:column;min-width:0;gap:2px}.asm-native-choice-main strong,.asm-native-option-main strong{font-size:15px;font-weight:500}.asm-native-choice-main small{opacity:.62;font-size:12px}.asm-native-choice-price,.asm-native-option-price{flex:0 0 auto;color:var(--am-c-primary,#265CF2);font-weight:600;white-space:nowrap}
.asm-native-option-check{position:relative;flex:0 0 22px;width:22px;height:22px}.asm-native-option-check input{position:absolute;inset:0;opacity:0;cursor:pointer}.asm-native-option-check span{display:block;width:22px;height:22px;border:1.5px solid var(--am-c-inp-border,#D1D5D7);border-radius:5px;background:var(--am-c-main-bgr,#fff)}.asm-native-wizard-option[data-selected="1"] .asm-native-option-check span{border-color:var(--am-c-primary,#265CF2);background:var(--am-c-primary,#265CF2)}.asm-native-wizard-option[data-selected="1"] .asm-native-option-check span::after{content:"";display:block;width:8px;height:4px;margin:6px 0 0 5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}.asm-native-wizard-option{justify-content:flex-start}.asm-native-wizard-option .asm-native-option-price{margin-left:auto}
.asm-native-wizard-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--am-c-main-text,#1A2C37) 12%,transparent)}.asm-native-wizard-footer .asm-native-wizard-next{min-width:145px}.asm-native-wizard-footer button:disabled{opacity:.45;cursor:not-allowed}.asm-native-wizard-error{margin:10px 0 0;color:var(--am-c-error,#B4190F);font-size:13px;font-weight:500}
@media(max-width:640px){.asm-native-wizard-progress{font-size:11px;gap:5px}.asm-native-wizard-progress span{padding:6px 3px}.asm-native-participant-main{align-items:flex-start;flex-direction:column}.asm-native-participant-control{align-self:stretch;grid-template-columns:1fr 56px 1fr}.asm-native-participant-control button{width:100%}.asm-native-wizard-choice,.asm-native-wizard-option{min-height:62px;padding:11px 12px}.asm-native-wizard-footer{position:sticky;bottom:-22px;margin-left:-16px;margin-right:-16px;padding:14px 16px 18px;background:var(--am-c-main-bgr,#fff)}}

/* --------------------------------------------------------------------------
 * v0.8.0: Customer Panel Package追加予約の人数選択
 * -------------------------------------------------------------------------- */
html.asm-native-panel-modal-open,
body.asm-native-panel-modal-open { overflow: hidden !important; }
.asm-native-panel-party-modal{position:fixed;inset:0;z-index:2147482500;display:flex;align-items:center;justify-content:center;padding:20px;font-family:var(--am-font-family,"Amelia Poppins",sans-serif)}
.asm-native-panel-party-backdrop{position:absolute;inset:0;background:rgba(14,25,32,.38);backdrop-filter:blur(1px)}
.asm-native-panel-party-dialog{position:relative;z-index:1;width:min(540px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box;padding:22px;border-radius:12px;background:var(--am-c-main-bgr,#fff);color:var(--am-c-main-text,#1A2C37);box-shadow:0 18px 55px rgba(14,25,32,.22)}
.asm-native-panel-party-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.asm-native-panel-party-head h2{margin:0;color:var(--am-c-main-heading-text,#33434C);font:600 20px/1.4 var(--am-font-family,"Amelia Poppins",sans-serif)}
.asm-native-panel-party-plan{margin:5px 0 0;color:color-mix(in srgb,var(--am-c-main-text,#1A2C37) 66%,transparent);font-size:13px;line-height:1.5}
.asm-native-panel-party-note{margin:11px 2px 0;color:color-mix(in srgb,var(--am-c-main-text,#1A2C37) 68%,transparent);font-size:13px;line-height:1.6}
.asm-native-panel-party-footer{display:flex;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--am-c-main-text,#1A2C37) 12%,transparent)}
.asm-native-panel-party-continue{min-width:150px}
@media(max-width:640px){.asm-native-panel-party-modal{align-items:flex-end;padding:0}.asm-native-panel-party-dialog{width:100%;max-width:none;max-height:88vh;border-radius:16px 16px 0 0;padding:19px 16px 22px}.asm-native-panel-party-footer{position:sticky;bottom:-22px;margin-left:-16px;margin-right:-16px;padding:14px 16px 18px;background:var(--am-c-main-bgr,#fff)}}

/* v0.8.7: 「受講プランからのみ予約」対象サービスの単発予約開始操作 */
.asm-native-course-only-action {
  display: none !important;
  pointer-events: none !important;
}

/* v0.8.10: Element Plus の数量＋は span[role=button] のため disabled 属性が効かない。
   メニュー合計が参加人数へ達した後はポインター/キーボード操作を物理的に遮断する。 */
.asm-menu-exact-limit {
  pointer-events: none !important;
  cursor: not-allowed !important;
  opacity: .42 !important;
}
